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.

all 10 comments

sorted by: hot top controversial new old
[–] 1 point 1 year ago (4 children)

I'm not home right now, but I once wrote a batch script to help do exactly that as a context menu option for Windows systems, to boot an IMA/IMG image directly into DOSBox.

Once I get home, I'll see if I can locate those old scripts and try to share. Granted the difference between Windows and Mac, but the basic command lines for DOSBox should effective work the same.

No promises, but if I find those script files (holy crap I have way too many files!), I'll see about sharing them later, translation to the Mac environment will be up to you though.

I think my approach was to copy the default dosbox.conf file to a temporary file, then append the temporary file with what image to boot from under [AUTOEXEC], and just consider the temp dosbox.conf as exactly that, temporary, to be rewritten every time I used my custom DOSBox Boot Floppy context menu thing.

I dunno, I'll see later, when/if I get a good chance soon.

  • source
  • hideshow 4 child comments
  • [–] [S] 2 points 1 year ago (3 children)

    No pressure but I appreciate the effort. I'm sure I'd be able to make something for macOS based on it.

    Funnily enough, just a few comments back in my profile I've offered to find a config file for someone else and I also have absolutely no idea where to find it yet!

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 1 year ago (2 children)

    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.
    
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 1 point 1 year ago (1 child)

    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!

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 year 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.

  • source
  • parent
  • [–] 3 points 1 year ago* (4 children)
  • [–] [S] 1 point 1 year ago* (2 children)

    Appreciate the link! According to this I have to create a custom config file. Do I need one of those for each game?

    open -a DOSBox --args -conf path/to/your-config.conf
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 1 year ago*

    You don't have to. It was to show how to use custom arguments. You can load a different config for different games if you'd like, but for your first example it should probably be:

    open -a /Location/Of/dosbox -c "imgmount a '/Users/io/Downloads/Prince.img' -t floppy" -c "a:" -c "dir /p"

  • source
  • parent
  • [–] 2 points 1 year ago

    For totally generic games that boot straight off the floppy disk, the default config tends to work just fine. Like I said in my other comment though, I used a temporary config file, based on the default config, but I would append the boot image filename/path to the [AUTOEXEC] section at the end of the temporary dosbox.conf file.

    It might be easier for you for now to make individual config files for each game, but it should be possible like I said to make a generic script to boot basically any PC floppy disk image directly.

    I'll see later whatever I have around.

  • source
  • parent