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.

you are viewing a single comment's thread
view the rest of the 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