I’d like to just casually boot straight into a game sometimes, or at least a mounted floppy. I don’t want to type commands is DOSbox for casual situations like this.

I’m focussing on games that can run straight from the floppy drive. Thanks!

Edit: I tried variations of this command in the macOS terminal:

/Applications/DOSBox\ Staging.app/Contents/MacOS/dosbox -c "imgmount a '/Users/io/Downloads/Prince.img' -t floppy" -c "a:" -c "dir /p"

The idea is that it would open DOSbox in the A: location, run dir /p. I should see prince.exe listed. Unfortunately what actually happens is I’m given a listing of Z: instead. When I try to switch to A:, I’m told that it needs to be mounted first. But I thought my terminal command takes care of that.

  • over_clox@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 days ago

    I found the core script file, BAT format for Windows though, that I used to do exactly what you’re looking for…

    
    REM BootImg.Bat
    
    @echo off
    C:
    cd "C:\Program Files\DOSBox-0.72"
    if not exist bootimg.conf COPY dosbox.conf bootimg.conf
    copy bootimg.conf temporary.conf /y
    echo @echo off>>temporary.conf
    echo cls>>temporary.conf
    echo imgmount 0 %1 -t floppy -fs none>>temporary.conf
    echo echo.>>temporary.conf
    echo boot -l a>>temporary.conf
    start dosbox.exe -noconsole -conf temporary.conf
    
    
    REM BootImg.reg (Proprietary to Windows, to make a context menu item for IMG files)
    
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\WinImage\shell\Boot\command]
    @="\"C:\\Program Files\\DOSBox-0.72\\BootImg.bat\" \"%1\""
    
    
    
    REM Default dosbox.conf for DOSBox 0.72, might wanna use the default for your current version though
    
    # This is the configurationfile for DOSBox 0.72.
    # Lines starting with a # are commentlines.
    # They are used to (briefly) document the effect of each option.
    
    [sdl]
    # fullscreen -- Start dosbox directly in fullscreen.
    # fulldouble -- Use double buffering in fullscreen.
    # fullresolution -- What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
    # windowresolution -- Scale the window to this size IF the output device supports hardware scaling.
    # output -- What to use for output: surface,overlay,opengl,openglnb,ddraw.
    # autolock -- Mouse will automatically lock, if you click on the screen.
    # sensitiviy -- Mouse sensitivity.
    # waitonerror -- Wait before closing the console if dosbox has an error.
    # priority -- Priority levels for dosbox: lowest,lower,normal,higher,highest,pause (when not focussed).
    #             Second entry behind the comma is for when dosbox is not focused/minimized.
    # mapperfile -- File used to load/save the key/event mappings from.
    # usescancodes -- Avoid usage of symkeys, might not work on all operating systems.
    
    fullscreen=false
    fulldouble=false
    fullresolution=original
    windowresolution=original
    output=surface
    autolock=true
    sensitivity=100
    waitonerror=true
    priority=higher,normal
    mapperfile=mapper.txt
    usescancodes=true
    
    [dosbox]
    # language -- Select another language file.
    # memsize -- Amount of memory DOSBox has in megabytes.
    # machine -- The type of machine tries to emulate:hercules,cga,tandy,pcjr,vga.
    # captures -- Directory where things like wave,midi,screenshot get captured.
    
    language=
    machine=vga
    captures=capture
    memsize=16
    
    [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.
    #           Supported are none,normal2x,normal3x,advmame2x,advmame3x,hq2x,hq3x,
    #                         2xsai,super2xsai,supereagle,advinterp2x,advinterp3x,
    #                         tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x.
    #           If forced is appended (like scaler=hq2x forced), the scaler will be used
    #           even if the result might not be desired.
    
    frameskip=0
    aspect=false
    scaler=normal2x
    
    [cpu]
    # core -- CPU Core used in emulation: normal,simple,dynamic,auto.
    #         auto switches from normal to dynamic if appropriate.
    # cycles -- Amount of instructions DOSBox tries to emulate each millisecond.
    #           Setting this value too high results in sound dropouts and lags.
    #           You can also let DOSBox guess the correct value by setting it to max.
    #           The default setting (auto) switches to max if appropriate.
    # cycleup   -- Amount of cycles to increase/decrease with keycombo.
    # cycledown    Setting it lower than 100 will be a percentage.
    
    core=auto
    cycles=auto
    cycleup=500
    cycledown=20
    
    [mixer]
    # nosound -- Enable silent mode, sound is still emulated though.
    # rate -- Mixer sample rate, setting any devices higher than this will
    #         probably lower their sound quality.
    # blocksize -- Mixer block size, larger blocks might help sound stuttering
    #              but sound will also be more lagged.
    # prebuffer -- How many milliseconds of data to keep on top of the blocksize.
    
    nosound=false
    rate=22050
    blocksize=2048
    prebuffer=10
    
    [midi]
    # mpu401      -- Type of MPU-401 to emulate: none, uart or intelligent.
    # device      -- Device that will receive the MIDI data from MPU-401.
    #                This can be default,alsa,oss,win32,coreaudio,none.
    # config      -- Special configuration options for the device. In Windows put
    #                the id of the device you want to use. See README for details.
    
    mpu401=intelligent
    device=default
    config=
    
    [sblaster]
    # sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16.
    # sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of the soundblaster.
    # mixer -- Allow the soundblaster mixer to modify the DOSBox mixer.
    # oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3.
    #            On auto the mode is determined by sblaster type.
    #            All OPL modes are 'Adlib', except for CMS.
    # oplrate -- Sample rate of OPL music emulation.
    
    sbtype=sb16
    sbbase=220
    irq=7
    dma=1
    hdma=5
    mixer=true
    oplmode=auto
    oplrate=22050
    
    [gus]
    # gus -- Enable the Gravis Ultrasound emulation.
    # gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the 
    #            Gravis Ultrasound. (Same IRQ's and DMA's are OK.)
    # gusrate -- Sample rate of Ultrasound emulation.
    # 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=true
    gusrate=22050
    gusbase=240
    irq1=5
    irq2=5
    dma1=3
    dma2=3
    ultradir=C:\ULTRASND
    
    [speaker]
    # pcspeaker -- Enable PC-Speaker emulation.
    # pcrate -- Sample rate of the PC-Speaker sound generation.
    # tandy -- Enable Tandy Sound System emulation (off,on,auto).
    #          For auto Tandysound emulation is present only if machine is set to tandy.
    # tandyrate -- Sample rate of the Tandy 3-Voice generation.
    # disney -- Enable Disney Sound Source emulation. Covox Voice Master and Speech Thing compatible.
    
    pcspeaker=true
    pcrate=22050
    tandy=auto
    tandyrate=22050
    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).
    # timed -- enable timed intervals for axis. (false is old style behaviour).
    # 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=true
    
    [serial]
    # serial1-4 -- 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.
    #              for directserial: realport (required), rxdelay (optional).
    #              for modem: listenport (optional).
    #              for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
    #                             transparent, port, inhsocket (all optional).
    #              Example: serial1=modem listenport:5000
    
    serial1=dummy
    serial2=dummy
    serial3=disabled
    serial4=disabled
    
    [dos]
    # xms -- Enable XMS support.
    # ems -- Enable EMS support.
    # umb -- Enable UMB support.
    # keyboardlayout -- Language code of the keyboard layout (or none).
    
    xms=true
    ems=true
    umb=true
    keyboardlayout=none
    
    [ipx]
    # ipx -- Enable ipx over UDP/IP emulation.
    
    ipx=false
    
    [autoexec]
    # Lines in this section will be run at startup.
    
    
    • FarraigePlaisteaċ@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 days ago

      Thank you very much! My memory of these files is coming back seeing your syntax, although this is more advanced than anything I wrote in my DOS days. I’m looking forward to experimenting with it!

      • over_clox@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        8 days ago

        I wrote that back in my Windows XP days, so keep that in mind when looking at my BootImg.bat script. I had it writing the template and temporary config scripts directly to the Program Files folder like a dummy, I should have used the %TEMP% folder instead.

        And of course you’ll still have to translate, adapt and overcome to get the same sort of thing working on a Mac.

        Good luck fellow stranger, let me know how it goes!

        Edit: Don’t mind the registry file too much, it’s not only proprietary to Windows, it also depends on WinImage being installed and also the default program to open IMA/IMG files. But the command itself was solid.