/=======================\ | ReDuke | | -=-=-=-=-=-=-=-=-=-=- | | Duke Nukem | | Re-Engineered | | - - - - - - - - - - - | | © 2011-2015 K1n9_Duk3 | \=======================/ Version: Beta 4 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. About "ReDuke": =============== ReDuke is a re-engineered version of the original Duke Nukem game(s). Everything in ReDuke was implemented from scratch, based on the audiovisual output of the original game. The original game was NOT decompiled or disassembled. (Unless you consider extracting strings from the executables "disassembling", that is.) This project would not have been possible without DOSBOX and its video capture capabilities. Features: ========= * ReDuke runs natively in Windows - no DOS emulator required * ReDuke supports all three Episodes of the original Duke Nukem game * All produced files (high scores, saved games, keyboard controls and game speed) are compatible with the original DOS versions * ReDuke can automatically convert the spelling "NUKUM" back to "NUKEM" and restore the original title screen * ReDuke includes a built-in frontend with automatic game detection * Text strings can be read from external files, making the games moddable (see STRINGS.TXT for an example) * ReDuke can convert all graphics to PNG images and sound effects to WAV files * ReDuke can use high-quality sounds and graphics instead of the original ones * ReDuke supports music System Requirements: ==================== Basically any PC made in the last 10 years should be able to run ReDuke, as long as the following requirements are met: * Windows PC (tested on Windows XP SP3 and Windows Vista SP2) * OpenGL compatible graphics card * DirectSound compatible sound card The oldest/slowest PC available for testing was a 1.3 GHz Athlon with 512 MB RAM, a GeForce 2 MX (32 MB) and a SoundBlaster Live! running Windows XP (SP3). It was able to run ReDuke smoothly when using the original graphics and a resolution no higher than 640x400 pixels. High-quality graphics and higher resolution, however, slowed the game down to being unplayable. In addition, the high-quality fullscreen images (1280x800 pixels) were not displayed properly. This might be caused by the graphics card not supporting textures larger than 1024x1024 pixels. An Athlon XP 3000+ (clocked down to 1.3 GHz) with a 64 MB GeForce 2 MX was able to run ReDuke smoothly at the default resolution of 640x400 pixels, even when using the hi-res images. Getting Started: ================ To run ReDuke, simply extract ReDuke.exe to any folder you like. You can put the executable in your Duke Nukem folder, which will make things very easy for you, but you don't have to. As of ReDuke Beta 4, you can simply run ReDuke.exe to bring up the built-in frontend. The frontend allows you to create and manage your own list of Duke Nukem games (a.k.a. Episodes 1-3 and/or user-created modifications). If your game list is empty, the frontend will automatically add all supported games in your ReDuke folder to your game list. So if you put the executable in your Duke Nukem folder, you can almost instantly start playing Duke Nukem. Bypassing The Frontend (Advanced Users): ======================================== You can still start any episode or modification directly without having to use the frontend. To do so, you must run ReDuke with command-line parameters. For example: ReDuke /dir=C:\DOSGAMES\DUKE1 /ext=DN2 will tell ReDuke that your Duke Nukem folder is C:\DOSGAMES\DUKE1 and you want to play Episode 2. ReDuke recognizes the following parameters: ------------------------------------------- /dir= set Duke Nukem folder (default: ReDuke folder) /ext= set extension (default: DN1) /width= set window width (default: 640) /height= set window height (default: 400) /bpp= set color depth (default: 0 - windowed) /hz= set refresh rate (default: 60 Hz) /fixratio enforce a 4:3 aspect ratio regardless of the current resolution (add black borders or border images if present) /patch convert spelling from "NUKUM" to "NUKEM" /keeptitle do not patch the title screen (useful for modifications) /export export strings, graphics and sounds /nomirrors disable mirror effects (for slow machines) /nomipmap disable mip-mapping for hi-res images (less video memory usage) /nofilter disable bilinear filtering for hi-res images /classic disable high-quality resources (less memory usage) /waitkey game startup waits for a key to be pressed (for video capture) /asp enables original debug cheats Notes: ------ * The slash at the beginning of each parameter is optional. For example, you can use "/asp" or "-asp" or just "asp" to enable the debug cheats. ("/-/-/-/-/-/----///asp" also works, but you're not that crazy, are you?) * Both the backslash at the end of the argument and the dot at the beginning of the extension are optional. You can even use normal slashes instead of backslashes if you like. * If the path to your Duke Nukem folder contains spaces, you must set the entire dir parameter in quotes: reduke "dir=c:\my games\duke1" ext=dn3 Controls: ========= The controls are pretty much like in the original DOS version of the game. The only differences are: * You can use the arrow keys and Enter to select an option in the menus. * While in the game, you can press F5 to create a quicksave at any time. Press F9 to load the latest quicksave. * You can press F12 at ANY time to switch between original resources and high- quality resources. Creating High-Quality Resources: ================================ If you wish to create high-quality resources for ReDuke, you should export the original graphics and sounds from the game and use them to get you started. Run ReDuke with the "/export" parameter to export the graphics (they will be saved in your ReDuke directory). High-quality resources will also be read from this directory, so you don't have to move them around. The filenames of the exported graphics will start with an underscore (so the sprites are exported as "_sprites.png"). The filenames of the high-quality images must match the names defined in "hrp.ini" (for the sprites, that would be "hq_sprites.png") and the tile images (border, font, sprites and tiles) must fit the sizes declared in that file. "hrp.ini" also contains the names of the music files. For the full-screen images and the backdrops, ReDuke will now stretch images of any size to the required size. The images can now be in a native 4:3 format instead of having to use 16:10 format images that would then be stretched to 4:3 by the game. Note: You'll get the correct aspect ratio for all images when you scale the original graphics to 5x the original width and 6x the original height. The resulting images are large enough for full-HD resolutions (320x200 pixels get scaled up to 1600x1200 pixels, but the 4:3 viewport in 1920x1080 pixels is only 1440x1080 pixels). The filenames of the exported sound effects will be "XXX-name.wav", where "XXX" is the number of the sound (with leading zeroes) and "name" is the name of the sound, as stored in the original sound files. High-quality sounds for use with ReDuke must be named "XXX.wav" or "XXX.ogg". ReDuke will try to load "XXX.wav" first, then it tries to load "XXX.ogg". OGG files take a lot longer to load, because the entire sound has to be decoded to WAV format before it can be played. ToDo List: ========== Major Issues: * joystick/gamepad support is not implemented Minor Issues: * some explosions or sound effects might still be missing * flying TechBots will always fly to the right when they crash Unfixable(?) Issues: * FadeIn/FadeOut in the DOS version sets one palette entry after another to black, white or the original color, which is impossible to recreate in a true-color graphics mode (ReDuke uses alpha blending instead) Additional Features: * Speech support for intro/extro cutscenes (Duke & Dr. Proton) Other Notes: ============ If you want to use modified strings, run ReDuke with the /export parameter and use the exported _STRINGS.DN?.TXT as a basis. That file contains ALL strings stored in the string files that are included in ReDuke.exe (and ONLY those). Edit the strings to fit your needs and rename the file to STRINGS.DN?.TXT, then either copy it into the game's folder or leave it in the ReDuke folder. The strings in such an external file override the strings read from the internal ones. This also means that you can remove all unmodified strings from the external file, as ReDuke will then use the included strings instead. ReDuke is based on version 2.0 of the game. It was also tested with a shareware episode of version 1.0 and worked just fine. However, ReDuke does not extract any strings from the executable, so all the in-game texts will be the same in both versions. Use the /patch parameter to convert the spelling "Nukum" (v2.0) back to "Nukem" (v1.0). ReDuke only supports OpenGL graphics. Adding support for Direct3D 7 or Direct3D 9 would be trivial, but these graphics modes have proven to be very slow when it comes to drawing the mirror surfaces. If you see any artifacts on the screen (like large white squares instead of text), you should get the most recent OpenGL drivers for your graphics card. The mirror surfaces are the most demanding operations and can really slow the game down to the point of being unplayable. ReDuke monitors the time spent drawing the mirrors and will automatically deactivate all mirrors if two consecutive frames each take longer than 88 milliseconds to compute (which means the frame rate would be reduced to 11 FPS or less). Once the mirrors are deactivated, there is no way to re-enable them in the game. You must restart ReDuke to get the mirrors working again. ReDuke will only save the current high scores to disk when you quit the game properly. If you terminate the application by using ALT-F4 or closing the game window, the high scores will not be saved! The quicksave feature (introduced in Beta 2) should be a nice addition as the original game can be very tough, especially in the later levels of episodes two and three. On the other hand, it is almost like cheating and could really ruin the gameplay. That's why it's basically a "hidden" feature (the in-game menus still won't allow you to save mid-level), although that could be changed. The DOS end screens used by ReDuke (introduced in Beta 3) are raw memory dumps (also known as B800 screens). The original game draws the DOS screens line by line using hard-coded strings instead of using these raw memory dumps. ReDuke uses the B800 format to allow modified versions of these end screens. The files must be named "DOSTEXT.DN?" (with your game's proper extension) and be located in your game folder or your ReDuke folder (the game folder is checked first). The end screens for the original episodes are included in ReDuke.exe. ReDuke will also convert the spelling "Nukum" to "Nukem" in these end screens if the /patch parameter is used. Version History: ================ Beta 4: (????-??-??) ------- - added: frontend to select episodes and edit game settings - added: text from DNHINT.EXE can be viewed (frontend) - added: more explosions and sounds for Dr. Proton's death (Episode 3) - added: version information, CRC and command-line parameters are now written to log file - added: game speed is now read from and written to SPEED.DN? - BUG ADDED: messing up priorities The DOS version uses a wrong offset value when reading the sound data from "DUKE1-B.DN?", which results in the game using the low byte of the sound's offset value as the sound's priority instead of the actual priority value. ReDuke will now do the same. Remember: "It's not a bug. It's a feature!" Beta 3: (2013-07-03) ------- - added: Duke can now do somersaults - bugfix: HoverBots can now ascend "stairs" properly - bugfix: EnemyShots are less likely to fly through walls - added DOS end screens (a.k.a. B800 screens) - added DOS keycode mapper (ReDuke now uses the original KEYS.DN? file to load and store key codes. Keyboard controls should now be exactly like in the DOS version.) - fixed a bug where files included in the executable could not be read due to case-sensitive extensions Beta 2: (2013-06-10) ------- - added QuickSave & QuickLoad - added customizable controls - added demo recording - added auto-scaling for backdrops and full-screen images and custom tile sizes - added music support - added "/fixratio", "/nomipmap", "/nofilter" and "/waitkey" parameters - added support for JPEG images - improved mirror code (less glitches when screen height is no multiple of 200 pixels) - main demo now uses last level in the list defined in the string files instead of the hard-coded value 20 (allows variable number of levels) - external string files now override individual string sections instead of replacing the internal files completely Beta 1: (2013-05-20) ------- - first public release Legal Stuff: ============ Duke Nukem is Copyright 1991 Apogee Software, Ltd. Please do not contact Apogee with any questions regarding this program. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.