Short: JFDuke3D Amiga Port Author: 3D Realms, JonoF, port by Szilard Biro Uploader: col lawrence gmail com (Szilard Biro) Type: game/shoot Version: 1.3 Architecture: m68k-amigaos >= 3.0.0 Prepare Yourself for the Ultimate 3D Slugfest! Murderous aliens have landed in futuristic Los Angeles, and the humans suddenly find themselves atop the endangered species list. The odds are a million-to-one, just the way Duke likes it! Now, it's up to Duke Nukem to stop the onslaught against Earth, by doing what he does best -- KICKING ALIEN ASS! Requirements: - 68060 processor with FPU - Kickstart 3.0 - AGA chipset or RTG card - 16 MB Fast RAM - 45 MB disk space (+ more for the audio tracks) Unsupported features: - playback of the original attract demos Game data: Visit this site for links to the Registered and Shareware versions: http://www.jonof.id.au/buildgames/duke3d.html The only file you need is DUKE3D.GRP, do not copy DUKE3D.CFG from other versions! It's incompatible if JFDuke3D, and will prevent the game from properly saving your settings. For Multiplayer games you can also copy DUKE.RTS to enable the Remote Ridicule feature. Duke Caribbean: Life's A Beach: To play this expansion you need the following files if you have the retail CD version: - DEFS.NOC - GAME.NOC - USER.NOC - VACATION.PRG If you have the Megaton Edition of the game, you only need VACATION.GRP from the addons. Once you have the necessary files, start the game with the "vacation" scripts. For Duke Caribbean specific WAV and MP3 music packs see the Music section. Duke It Out In D.C.: To play the retail CD version of this expansion copy the following files into the game drawer, and start the game regularly: - BLANK.VOC, DUKEDC.VOC - CINEOV3.ANM - RADLOGO.ANM - DUKEDC1.MAP, ..., DUKEDC9.MAP - DUKEDCSL.MAP - TILES009.ART - TILES014.ART - USER.CON If you have the Megaton Edition of the game, you only need the DUKEDC.GRP file, and you can start the game with the "duke3d.060 -gDUKEDC.GRP" command. Performance considerations: FFS is quite slow at seeking in large files which can lead to pauses in-game when new data has to be loaded from the GRP file. It can be improved by adding more buffers, but it's recommended to run the game from a PFS or SFS volume. The texture/sound cache is also sensitive to memory fragmentation, so if you have 32 MB or less memory, it's best to start the game after a clean reboot. If your accelerator doesn't have any on-board RAM the game will likely not be playable, as access to the motherboard RAM is not fast enough for the renderer. To enable the framerate counter type the DNRATE cheat in-game. Vampire V2 users: If the 060 executables don't work, please use the 040 executables. Sound: The game defaults to stereo Paula DMA audio, but AHI is also supported for sound card users. To use AHI, after the first start open DUKE3D.CFG in a text editor, and in the [Sound Setup] section set FXDevice = 8 and ReverseStereo = 1. To switch back to Paula, change both values back to 0. The game will use the Music Unit for sound playback, make sure it's properly configured in the AHI prefs. 16-bit modes are much slower than 8-bit, so these are not recommended unless you have a very fast machine. Music: The game natively supports MIDI music via CAMD if you have an external synth. The game will use the first MIDI port it finds (usually "out.0"), but this can be overridden with the "DefMidiOut" environment variable if needed. Without MIDI WAV and MP3 replacement tracks are also supported. The music is streamed from memory, so it might not fit if you have less than 32 MB RAM. To use them simply put the replacement tracks into the game's drawer, don't create any subdirectories. For WAV I recommend 22 KHz 8-bit mono, which is a good balance between sound quality and size. I have uploaded a converted WAV music pack to my site: http://bszili.morphos.me/stuff/dn3d-music-wav.zip WAV pack for Duke Caribbean: http://bszili.morphos.me/stuff/dn3d-vaca-wav.zip For MP3 playback you need an MHI-compatible sound or music card. If your card only supports the older mpeg.device standard, you can use this wrapper library: http://aminet.net/package/mus/play/mhimdev Make sure you don't have any incompatible MHI drivers in LIBS:MHI, only the one for your device. It's a good idea to verify if MP3 playback is working with AmigaAMP or any other MHI-compatible player before trying the game. I have pre-converted MP3 music pack available on my site: http://bszili.morphos.me/stuff/dn3d-music-mp3.zip MP3 pack for Duke Caribbean: http://bszili.morphos.me/stuff/dn3d-vaca-mp3.zip Keyboard and mouse or PlayStation controller: In the menu open "Options / Input settings", and pick Use Modern Defaults. Warning: this will reset all of the customized controls. To enable Mouse Aiming and disable lookspring, press the [U] key in-game. The game also supports PlayStation gamepads connected via PSXPort. Keyboard-only or CD32 controller: In the menu open "Options / Input settings", and pick Use Classic Defaults. Warning: this will reset all of the customized controls. This preset is also recommended for 7-button CD32-compatible controllers. Fullscreen: The game asks the OS for the best Mode ID for a given resolution, but this can lead to unexpected results if there are unused monitor drivers in Devs:Monitors. I recommend putting these away into Storage:Monitors, but if this is not possible, you can use these tooltypes to force specific modes: - FORCEMODE: filters the available modes via the mode name. possible values: PAL, NTSC, DBLPAL, DBLNTSC, EURO36, EURO72, SUPER72, MULTISCAN - FORCEID: forces a specific mode, the value is a Mode ID in hexsadecimal format Windowed mode: You can play the game in window on high color (15-bit) or better RTG screens. The game will still render in 8-bit color, the higher color depth is required to avoid the expensive color remapping necessary on paletted screens. This is not a issue in fullscreen, as the game can freely change the palette of its custom screen. To release the mouse pointer bring up the in-game console. This is bound to the NumLock key by default, but it can be changed under "Input Settings / Keys Setup". To override which public screen the window opens on, you can set the "PUBSCREEN" tooltype. Level editor: The Duke Nukem 3D-specific version of Build Editor is also included, but it requires a 640x480 screen, so it's best used with RTG cards. Multiplayer: The game supports multiplayer up to 8 players via TCP/IP networks. Any TCP/IP stack with a bsdsocket.library compatible interface should work. The game uses the 23513 UDP port by default, but this can be changed when starting a new game. Multiplayer games can be started with command-line parameters, and can use either of two communication modes: hosted and peer-to-peer. Hosted mode: Choose a system to be the host of the game, and each other player will connect to that host. The "net options" for this mode are: -pportnum - host the game on a different UDP port to the default 23513. -nm - be host of a 2-player game. -nm:num - be host of a num-player game. -nm host-name-or-ip - join a game hosted by host-name-or-ip. -nm host-name-or-ip:port - join a game hosted by host-name-or-ip on non-default port port. For example, a three-player hosted game is launched like so: (Player 1, hosts) duke3d.060 -net -nm:3 (Player 2, joins) duke3d.060 -net -nm host1 (Player 3, joins) duke3d.060 -net -nm host1 Where host1 is the address of the host machine. Peer-to-peer mode: In this mode each player sends data to each other player in the game directly, which is only really practical in non-firewalled LAN-like environments. The list of peers specified on the command line must be consistently ordered amongst all players, and each peer will launch the game with slightly different options. The "net options" for this mode are: -pportnum - communicate with other peers on a different UDP port to the default 23513. -np ordered-peer-list... - participate in a peer-to-peer game. . or * - identify the local machine in the ordered peer list. host-name-or-ip - identify a peer at host-name-or-ip in the ordered peer list. host-name-or-ip:port - identify a peer at host-name-or-ip on non-default port port in the ordered peer list. For example, a three-player peer-to-peer game is launched like so: (Player 1) duke3d.060 -net -np . host2 host3 (Player 2) duke3d.060 -net -np host1 . host3 (Player 3) duke3d.060 -net -np host1 host2 . Where host1, host2 and host3 are the addresses of the machines connecting to each other. Source code: https://github.com/BSzili/jfduke3d/tree/amiga Special thanks: - Duke Nukem 3D: 3D Realms - Build Engine: Ken Silverman - JFDuke3D, JFBuild, JFAudioLib, JFMACT: Jonathon Fowler - 68030+ assembly: Dante/Oxyron - 68060 optimizations: Cosmos - 8-bit C2P routines: Kalms - CAMD MIDI support: mheyer32 - GCC6 toolchain: bebbo - Roland SC-55 music packs: Brandon Blume Changelog: 1.3 - improved game code performance - small CON interpreter speedup - fixed some crashes when quitting multiplayer games - keymap support for text input - fixed the MP3 tracks always starting at full volume - faster slope rendering and 2D sprite drawing - support for native Amiga resolutions: 1280x512, 1280x400, 1280x256, 1280x200, 640x256, 640x200, 320x512, 320x400, 320x256 - fixed a potential hang in the double-buffering code - improved audio mixer performance 1.2 - slightly improved CAMD MIDI performance - keymap support for text input - increased the minimum stack from 50KB to 100KB - added scripts and music packs for the Duke Caribbean expansion 1.1 - pressing the left key on the lowest resolution now works in full screen - added Amiga-specific controller presets - FXDevice no longer resets at exit - fixed the stack swap code in the executable 1.0 - initial release