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.

    • FarraigePlaisteaċ@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      7 days ago

      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
      
      • DosDude@retrolemmy.comM
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        6 days 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"

      • over_clox@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 days 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.

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

    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.

    • FarraigePlaisteaċ@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 days ago

      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!

      • over_clox@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 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
          ·
          6 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
            6 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.