Duke Nukem 3D



  • And on the PI3, on highest resolution (800x600) with acceptable speed. It was just a syntax error in my installation files. It is minimum as quick as on my old PC from this years.
    I also changed in dosbox.cfg memsize to 63 instead of the default 16 what after my impression has a positive influence.
    My dosbox.bat is this

    @echo off
    :menu
    cls
    echo.
    echo. 
    echo.
    echo.
    echo.
    echo DUKE NUKEM 3D
    echo.
    echo 1 = Play Game
    echo 2 = Setup
    echo.
    echo 3 = Quit
    echo.
    choice /n /c:123 Make a selection:
    if errorlevel ==3 goto leave
    if errorlevel ==2 goto setup
    if errorlevel ==1 goto play
    goto end
    
    :play
    DUKE3D.EXE
    goto menu
    
    :setup
    SETUP.EXE
    goto menu
    
    :leave
    exit
    :end
    

    alt text



  • If you install the game, I found a solution for the important joystick deadzone in this game, when you map it to the directional keyboard keys.
    It is necessary to configurate in the game setup that you use keyboard and mouse, even if no mouse is connected. After this, map your joystick to the mouse instead of the directional keys. The gameplay becomes more accurate, the movement slower. And on the top of all this, you can modify the mouse sensitivity in the setup, so adapt it further.



  • alt text

    Are you waiting ......................... for October 13th ????



  • Or you could use the PSX version which has 3 pad layouts in the option menu, is analog compatible and an exclusive episode :)



  • @david-frété
    Thanks, that would be nice to compare the speed under dosbox and under PSX emulator. Somebody should test.



  • @David-Frété
    I was loading up today the bin file from DN3 PSX on my bartop for checking.
    I can just tell you, with a resolution of 320x240, it is unplayable. The picture is just horrible, you can even not read what is written on the cinema panel in one of the first scenes.
    I tried to modify in retroarch screen resolution to enhanced (slow), but no improvement in screen. Image is distored, but I think this is possible to resolve, I didnt go further --> delete.



  • @Dragu Sorry to read that.
    After reading you, I converted my french disc for a test run.
    I do not think image is horrible (maybe it's because I played a lot of this game and that's the only version which is french dubbed) but it's sure less flattering than PC.
    On my version, enhancing screen resolution does nothing. Worse, sometimes, it's lagging. And the speed hack option just freeze the picture.
    OK for the text on the cinema ; the further you are, the worse it is.
    For those who wants to give it a shot, here's some screens (with scanlines).
    4_1508680971388_screenshot-2017-10-22T13-48-45-038Z.png 3_1508680971384_screenshot-2017-10-22T13-48-38-258Z.png 2_1508680971384_screenshot-2017-10-22T13-48-05-005Z.png 1_1508680971384_screenshot-2017-10-22T13-47-56-010Z.png 0_1508680971383_screenshot-2017-10-22T13-46-09-065Z.png



  • @David-Frété
    I also tried the french .bin. The screen on PSX was 5", and my screen is 19". So you can see the low resolution very good on bigger screen. But framerate is better as on dosbox. Anyway all this is retro because I also have somewhere the HD version. When the point is just on playing, this is for sure the best on PC.



  • I can´t get this running -.-
    I used your bat file and after pressing 1 for play, it says "using Duke3d.grp" and starts with
    "compiling: Game.con"
    including: devs.con
    including user.con

    Than ist says multiple configuration files found
    dd.cfg
    duke3d.cfg

    Doesn´t matter which one i choose I end up on the start screen where i can choose 1, 2 or 3 again.

    What do I need to change the memory to 63? can´t find a row for that in dosbox.cfg

    Thanks



  • @elikka
    no prob to share my dosbox.cfg
    but there can be other issues

    # This is the configuration file for DOSBox 0.74. (Please use the latest version of DOSBox)
    # Lines starting with a # are comment lines and are ignored by DOSBox.
    # They are used to (briefly) document the effect of each option.
    
    [sdl]
    #       fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
    #            vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
    #                   It can reduce screen flickering, but it can also result in a slow DOSBox.
    #   fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
    #                     Using your monitor's native resolution with aspect=true might give the best results.
    #                     If you end up with small window on a large screen, try an output different from surface.
    # windowresolution: Scale the window to this size IF the output device supports hardware scaling.
    #                     (output=surface does not!)
    #           output: What video system to use for output.
    #                   Possible values: surface, texture, texturenb.
    #         renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
    #                   Possible values: auto, opengl, software.
    #         autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
    #      sensitivity: Mouse sensitivity.
    #      waitonerror: Wait before closing the console if dosbox has an error.
    #         priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
    #                     pause is only valid for the second entry.
    #                   Possible values: lowest, lower, normal, higher, highest, pause.
    #       mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
    
    fullscreen=true
    vsync=false
    fullresolution=desktop
    windowresolution=1024x768
    output=opengl
    renderer=auto
    autolock=true
    sensitivity=100
    waitonerror=true
    priority=higher,normal
    mapperfile=nukem3D.map
    
    [dosbox]
    # language: Select another language file.
    #  machine: The type of machine DOSBox tries to emulate.
    #           Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
    # captures: Directory where things like wave, midi, screenshot get captured.
    #  memsize: Amount of memory DOSBox has in megabytes.
    #             This value is best left at its default to avoid problems with some games,
    #             though few games might require a higher value.
    #             There is generally no speed advantage when raising this value.
    
    language=
    machine=svga_s3
    captures=capture
    memsize=63
    
    [render]
    # frameskip: How many frames DOSBox skips before drawing one.
    #    aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
    #    scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
    #            then the scaler will be used even if the result might not be desired.
    #            Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
    
    frameskip=0
    aspect=false
    scaler=normal2x
    
    [cpu]
    #      core: CPU Core used in emulation. auto will switch to dynamic if available and
    #            appropriate.
    #            Possible values: auto, dynamic, normal, simple.
    #   cputype: CPU Type used in emulation. auto is the fastest choice.
    #            Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
    #    cycles: Amount of instructions DOSBox tries to emulate each millisecond.
    #            Setting this value too high results in sound dropouts and lags.
    #            Cycles can be set in 3 ways:
    #              'auto'          tries to guess what a game needs.
    #                              It usually works, but can fail for certain games.
    #              'fixed #number' will set a fixed amount of cycles. This is what you usually
    #                              need if 'auto' fails (Example: fixed 4000).
    #              'max'           will allocate as much cycles as your computer is able to
    #                              handle.
    #            Possible values: auto, fixed, max.
    #   cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
    # cycledown: Setting it lower than 100 will be a percentage.
    
    core=dynamic
    cputype=auto
    cycles=max
    cycleup=100
    cycledown=100
    
    [mixer]
    #   nosound: Enable silent mode, sound is still emulated though.
    #      rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
    #            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
    # blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
    #            Possible values: 1024, 2048, 4096, 8192, 512, 256.
    # prebuffer: How many milliseconds of data to keep on top of the blocksize.
    
    nosound=false
    rate=44100
    blocksize=1024
    prebuffer=20
    
    [midi]
    #     mpu401: Type of MPU-401 to emulate.
    #             Possible values: intelligent, uart, none.
    # mididevice: Device that will receive the MIDI data from MPU-401.
    #             Possible values: default, win32, alsa, oss, coreaudio, coremidi, none.
    # midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
    #               or in the case of coreaudio, you can specify a soundfont here.
    #               When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
    #               In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
    #               See the README/Manual for more details.
    
    mpu401=intelligent
    mididevice=default
    midiconfig=
    
    [sblaster]
    #  sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
    #          Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
    #  sbbase: The IO address of the soundblaster.
    #          Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
    #     irq: The IRQ number of the soundblaster.
    #          Possible values: 7, 5, 3, 9, 10, 11, 12.
    #     dma: The DMA number of the soundblaster.
    #          Possible values: 1, 5, 0, 3, 6, 7.
    #    hdma: The High DMA number of the soundblaster.
    #          Possible values: 1, 5, 0, 3, 6, 7.
    # sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
    # oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
    #          Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
    #  oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
    #          Possible values: default, compat, fast.
    # oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
    #          Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
    
    sbtype=sb16
    sbbase=220
    irq=7
    dma=1
    hdma=5
    sbmixer=true
    oplmode=auto
    oplemu=default
    oplrate=44100
    
    [gus]
    #      gus: Enable the Gravis Ultrasound emulation.
    #  gusrate: Sample rate of Ultrasound emulation.
    #           Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
    #  gusbase: The IO base address of the Gravis Ultrasound.
    #           Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
    #   gusirq: The IRQ number of the Gravis Ultrasound.
    #           Possible values: 5, 3, 7, 9, 10, 11, 12.
    #   gusdma: The DMA channel of the Gravis Ultrasound.
    #           Possible values: 3, 0, 1, 5, 6, 7.
    # ultradir: Path to Ultrasound directory. In this directory
    #           there should be a MIDI directory that contains
    #           the patch files for GUS playback. Patch sets used
    #           with Timidity should work fine.
    
    gus=false
    gusrate=44100
    gusbase=240
    gusirq=5
    gusdma=3
    ultradir=C:\ULTRASND
    
    [speaker]
    # pcspeaker: Enable PC-Speaker emulation.
    #    pcrate: Sample rate of the PC-Speaker sound generation.
    #            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
    #     tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
    #            Possible values: auto, on, off.
    # tandyrate: Sample rate of the Tandy 3-Voice generation.
    #            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
    #    disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
    
    pcspeaker=true
    pcrate=44100
    tandy=auto
    tandyrate=44100
    disney=true
    
    [joystick]
    # joysticktype: Type of joystick to emulate: auto (default), none,
    #               2axis (supports two joysticks),
    #               4axis (supports one joystick, first joystick used),
    #               4axis_2 (supports one joystick, second joystick used),
    #               fcs (Thrustmaster), ch (CH Flightstick).
    #               none disables joystick emulation.
    #               auto chooses emulation depending on real joystick(s).
    #               (Remember to reset dosbox's mapperfile if you saved it earlier)
    #               Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
    #        timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
    #     autofire: continuously fires as long as you keep the button pressed.
    #       swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
    #   buttonwrap: enable button wrapping at the number of emulated buttons.
    
    joysticktype=auto
    timed=true
    autofire=false
    swap34=false
    buttonwrap=false
    
    [serial]
    # serial1: set type of device connected to com port.
    #          Can be disabled, dummy, modem, nullmodem, directserial.
    #          Additional parameters must be in the same line in the form of
    #          parameter:value. Parameter for all types is irq (optional).
    #          for directserial: realport (required), rxdelay (optional).
    #                           (realport:COM1 realport:ttyS0).
    #          for modem: listenport (optional).
    #          for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
    #                         transparent, port, inhsocket (all optional).
    #          Example: serial1=modem listenport:5000
    #          Possible values: dummy, disabled, modem, nullmodem, directserial.
    # serial2: see serial1
    #          Possible values: dummy, disabled, modem, nullmodem, directserial.
    # serial3: see serial1
    #          Possible values: dummy, disabled, modem, nullmodem, directserial.
    # serial4: see serial1
    #          Possible values: dummy, disabled, modem, nullmodem, directserial.
    
    serial1=dummy
    serial2=dummy
    serial3=disabled
    serial4=disabled
    
    [dos]
    #            xms: Enable XMS support.
    #            ems: Enable EMS support. The default (=true) provides the best
    #                 compatibility but certain applications may run better with
    #                 other choices, or require EMS support to be disabled (=false)
    #                 to work at all.
    #                 Possible values: true, emsboard, emm386, false.
    #            umb: Enable UMB support.
    # keyboardlayout: Language code of the keyboard layout (or none).
    
    xms=true
    ems=true
    umb=true
    keyboardlayout=de129
    
    [autoexec]
    # Lines in this section will be run at startup.
    # You can put your MOUNT lines here.
    # mount d "/recalbox/share/roms/dos/nukem3D.pc" D:
    


  • For the configuration files, everything with .cfg behind attracts him.
    dd.cfg is without your modifications.
    dosbox.cfg, he should keep his nose out.
    duke3d.cfg is the right one,
    I also wait 9 seconds.



  • @dragu Thanks for sharing.
    Now I´m using your bat and cfg files and it´s still the same.
    Strange. Maybe I should get another game and try again.



  • @ekilla
    I can just help you with my DN 3D file list that I have on Recalbox.
    alt text
    Forget this with _ok behind :) and /ten is ballast in our case.



  • Very late answer...

    Thank again anyways.
    turns out I´m missing the nukem3D.map.
    Silly me -.-

    Searching...



  • @ekilla
    The map you must create by yourself. Is the file from the dosbox keymapper. :)
    I can copy you mine, but as all buttons configurations are different, it will not help you, I think.

    hand_shutdown "key 66 mod1" 
    hand_capmouse "key 67 mod1" 
    hand_fullscr "key 40 mod2" 
    hand_restart "key 74 mod1 mod2" 
    hand_pause "key 72 mod2" 
    hand_mapper "key 58 mod1" 
    hand_speedlock "key 69 mod2" 
    hand_recwave "key 63 mod1" 
    hand_caprawmidi "key 65 mod1 mod2" 
    hand_scrshot "key 62 mod1" 
    hand_video "key 62 mod1 mod2" 
    hand_decfskip "key 64 mod1" 
    hand_incfskip "key 65 mod1" 
    hand_cycledown "key 68 mod1" 
    hand_cycleup "key 69 mod1" 
    hand_caprawopl "key 64 mod1 mod2" 
    hand_swapimg "key 61 mod1" 
    key_esc "key 41" "stick_0 button 10" 
    key_f1 "key 58" 
    key_f2 "key 59" 
    key_f3 "key 60" 
    key_f4 "key 61" 
    key_f5 "key 62" 
    key_f6 "key 63" 
    key_f7 "key 64" 
    key_f8 "key 65" 
    key_f9 "key 66" 
    key_f10 "key 67" 
    key_f11 "key 68" 
    key_f12 "key 69" 
    key_grave "stick_1 button 3" "key 53" 
    key_1 "stick_0 button 8" "key 30" 
    key_2 "stick_0 button 6" "key 31" 
    key_3 "stick_0 button 9" "key 32" 
    key_4 "key 33" 
    key_5 "key 34" 
    key_6 "key 35" 
    key_7 "key 36" 
    key_8 "key 37" 
    key_9 "key 38" 
    key_0 "key 39" 
    key_minus "key 45" 
    key_equals "key 46" 
    key_bspace "key 42" 
    key_tab "stick_0 button 1" "key 43" 
    key_q "key 20" 
    key_w "key 26" 
    key_e "key 8" 
    key_r "stick_1 button 4" "key 21" 
    key_t "key 23" 
    key_y "key 28" 
    key_u "stick_0 button 0" "key 24" 
    key_i "stick_0 button 2" "key 12" 
    key_o "key 18" 
    key_p "key 19" 
    key_lbracket "stick_1 axis 0 0" "key 47" 
    key_rbracket "stick_1 axis 0 1" "key 48" 
    key_enter "stick_0 button 7" "key 40" 
    key_capslock "key 57" 
    key_a "stick_0 button 3" "key 4" 
    key_s "key 22" 
    key_d "key 7" 
    key_f "key 9" 
    key_g "key 10" 
    key_h "stick_1 button 0" "key 11" 
    key_j "stick_1 button 1" "key 13" 
    key_k "key 14" 
    key_l "key 15" 
    key_semicolon "key 51" 
    key_quote "stick_1 axis 3 0" "key 52" 
    key_backslash "stick_1 axis 3 1" "key 49" 
    key_lshift "stick_0 button 5" "key 225" 
    key_lessthan "key 100" 
    key_z "stick_0 button 4" 
    key_x "key 27" 
    key_c "key 6" 
    key_v "key 25" 
    key_b "key 5" 
    key_n "stick_1 button 2" "key 17" 
    key_m "stick_1 button 5" "key 16" 
    key_comma "key 54" 
    key_period "key 55" 
    key_slash "key 56" 
    key_rshift "key 229" 
    key_lctrl "stick_1 button 8" "key 224" 
    key_lalt "key 226" 
    key_space "stick_1 button 9" "key 44" 
    key_ralt "key 230" 
    key_rctrl "key 228" 
    key_printscreen "key 70" 
    key_scrolllock "key 71" 
    key_pause "key 72" 
    key_insert "key 73" 
    key_home "key 74" 
    key_pageup "key 75" 
    key_delete "key 76" 
    key_end "key 77" 
    key_pagedown "key 78" 
    key_up "key 82" 
    key_left "key 80" 
    key_down "key 81" 
    key_right "key 79" 
    key_numlock "key 83" 
    key_kp_divide "key 84" 
    key_kp_multiply "key 85" 
    key_kp_minus "key 86" 
    key_kp_7 "key 95" 
    key_kp_8 "key 96" 
    key_kp_9 "key 97" 
    key_kp_plus "key 87" 
    key_kp_4 "key 92" 
    key_kp_5 "key 93" 
    key_kp_6 "key 94" 
    key_kp_1 "key 89" 
    key_kp_2 "key 90" 
    key_kp_3 "key 91" 
    key_kp_enter "key 88" 
    key_kp_0 "key 98" 
    key_kp_period "key 99" 
    mbutton_left 
    mbutton_middle 
    mbutton_right 
    maxis_y- "stick_0 axis 3 0" 
    maxis_x- "stick_0 axis 0 0" 
    maxis_y+ "stick_0 axis 3 1" 
    maxis_x+ "stick_0 axis 0 1" 
    jbutton_0_0 "stick_0 button 0" 
    jbutton_0_1 "stick_0 button 1" 
    jaxis_0_1- "stick_0 axis 1 0" 
    jaxis_0_1+ "stick_0 axis 1 1" 
    jaxis_0_0- "stick_0 axis 0 0" 
    jaxis_0_0+ "stick_0 axis 0 1" 
    jbutton_1_0 "stick_1 button 0" 
    jbutton_1_1 "stick_1 button 1" 
    jbutton_0_2 "stick_0 button 2" 
    jbutton_0_3 "stick_0 button 3" 
    jaxis_1_0- "stick_1 axis 0 0" 
    jaxis_1_0+ "stick_1 axis 0 1" 
    jaxis_1_1- "stick_1 axis 1 0" 
    jaxis_1_1+ "stick_1 axis 1 1" 
    jaxis_0_2- "stick_0 axis 2 0" 
    jaxis_0_2+ "stick_0 axis 2 1" 
    jaxis_0_3- "stick_0 axis 3 0" 
    jaxis_0_3+ "stick_0 axis 3 1" 
    jbutton_0_4 "stick_0 button 4" 
    jbutton_0_5 "stick_0 button 5" 
    jhat_0_0_0 "stick_0 hat 0 1" 
    jhat_0_0_3 "stick_0 hat 0 8" 
    jhat_0_0_2 "stick_0 hat 0 4" 
    jhat_0_0_1 "stick_0 hat 0 2" 
    mod_1 "key 224" "key 228" 
    mod_2 "key 226" "key 230" 
    mod_3 
    


  • Oh ok, I thought the .map files are levels, since all fan maps you can load ar in that format.
    I thought since Duke isn´t freeware but shareware it is missing the original levels and you have to buy it to get them.
    I even tried to use one of them and renamed it to nukem3D.map.

    By "you have to create ist yourself" you mean by configuring ingame and save it or manually create that file and fill it?
    I created it myself and copied everything from above in it and it´s still the same.
    -.-

    That can´t be possible. Am I stupid?


  • Themer

    @ekilla @Dragu

    The map file is only for the control, it doesn't prevent the game from running if it doesn't exist.



  • @ekilla
    Yes, just dosbox controller configuration. That you can define by yourself if you push at the start of the game Ctrl+F1. But you dont yet are there.
    You copy standard dosbox.conf to dosbox.cfg in "nukem3D.pc" and made the changements inside ?
    If yes, another possibility is to start DUKE3D.EXE on the commandline. For this just safe your dosbox.bat somewhere and delete it in "nukem3D.pc" Maybe he would show you some error.


Log in to reply
 

Want to support us ?

Join us on :

229
Online

28833
Users

14648
Topics

110710
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.