DOSBox-Core can't save Scaling Options

Aside from checking for any errors saving in the log, I would go to your ‘config’ directory and see if the overrides are actually being created and, if so, what’s in them.

It’s there, but I don’t see anything about the video scaling settings. Does it not save those by default?

Scratch that, it’s only creating the .opt file, not the .cfg file.

I manually created a DOSBox-core.cfg file with the appropriate lines, but it is not loaded when I start the core.

Can you post a log of it failing to load? It should say whether it’s finding it (and subsequently rejecting it for some reason) or not.

Just to be clear, DOSBox-core is loading, it’s just not loading the custom viewport settings.

I’m not sure where a log would be. The “logs” folder in retroarch is empty, so not there.

Edit: I turned on logging. I’ll post that

[INFO] [CONTENT LOAD]: Updating firmware status for: /home/pi/.config/retroarch/cores/dosbox_core_libretro.so on /home/pi/.config/ret$[INFO] [CORE]: No content, starting dummy core.
[INFO] [CORE]: Arg #0: retroarch
[INFO] [CORE]: Arg #1: --menu
[INFO] [CORE]: Arg #2: -s
[INFO] [CORE]: Arg #3: /home/pi/.config/retroarch/saves
[INFO] [CORE]: Arg #4: -S
[INFO] [CORE]: Arg #5: /home/pi/.config/retroarch/states
[INFO] [CORE]: Arg #6: -c
[INFO] [CORE]: Arg #7: /home/pi/.config/retroarch/retroarch.cfg
[INFO] [CORE]: Arg #8: -L
[INFO] [CORE]: Arg #9: /home/pi/.config/retroarch/cores/dosbox_core_libretro.so
[INFO] [CORE]: Arg #10: -v
[INFO] Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [CORE]: Unloading core..
[INFO] [CORE]: Unloading core symbols..
[INFO] [Video]: Average monitor Hz: 60.052847 Hz. (2.159 % frame time deviation, based on 2048 last samples).
[INFO] === Build =======================================
[INFO] Capabilities:  NEON VFPv3 VFPv4
[INFO] Built: Jun 26 2020
[INFO] Version: 1.8.9
[INFO] =================================================
[INFO] [CORE]: Loading dynamic libretro core from: "/home/pi/.config/retroarch/cores/dosbox_core_libretro.so"
[INFO] [Environ]: SET_SUPPORT_NO_GAME: yes.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] Controller port: 1
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Gamepad (ID: 1)
[INFO]    Joystick (ID: 517)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 2
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Gamepad (ID: 1)
[INFO]    Joystick (ID: 517)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 3
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 4
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 5
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 6
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] [Overrides]: Redirecting save file to "/home/pi/.config/retroarch/saves/DOSBox-core.srm".
[INFO] [Overrides]: Redirecting save state to "/home/pi/.config/retroarch/states/DOSBox-core.state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[libretro DEBUG] [DOSBox] Setting pixel format to RETRO_PIXEL_FORMAT_XRGB8888.

ah, thanks! Unfortunately, that log doesn’t include the bits we need, but I think if you set the logging verbosity options from settings > logging to ‘debug’, it should tell us more.

I did actually already have it set to debug. I did it again and output looks similar. The debug output is a single line at the bottom.

[INFO] [CONTENT LOAD]: Updating firmware status for: /home/pi/.config/retroarch/cores/dosbox_core_libretro.so on /home/pi/.config/ret$[INFO] [CORE]: No content, starting dummy core.
[INFO] [CORE]: Arg #0: retroarch
[INFO] [CORE]: Arg #1: --menu
[INFO] [CORE]: Arg #2: -s
[INFO] [CORE]: Arg #3: /home/pi/.config/retroarch/saves
[INFO] [CORE]: Arg #4: -S
[INFO] [CORE]: Arg #5: /home/pi/.config/retroarch/states
[INFO] [CORE]: Arg #6: -c
[INFO] [CORE]: Arg #7: /home/pi/.config/retroarch/retroarch.cfg
[INFO] [CORE]: Arg #8: -L
[INFO] [CORE]: Arg #9: /home/pi/.config/retroarch/cores/dosbox_core_libretro.so
[INFO] [CORE]: Arg #10: -v
[INFO] Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [CORE]: Unloading core..
[INFO] [CORE]: Unloading core symbols..
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] === Build =======================================
[INFO] Capabilities:  NEON VFPv3 VFPv4
[INFO] Built: Jun 26 2020
[INFO] Version: 1.8.9
[INFO] =================================================
[INFO] [CORE]: Loading dynamic libretro core from: "/home/pi/.config/retroarch/cores/dosbox_core_libretro.so"
[INFO] [Environ]: SET_SUPPORT_NO_GAME: yes.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] Controller port: 1
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Gamepad (ID: 1)
[INFO]    Joystick (ID: 517)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 2
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Gamepad (ID: 1)
[INFO]    Joystick (ID: 517)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 3
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 4
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 5
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] Controller port: 6
[INFO]    Keyboard + Mouse (ID: 3)
[INFO]    Disconnected (ID: 0)
[INFO] [Overrides]: Redirecting save file to "/home/pi/.config/retroarch/saves/DOSBox-core.srm".
[INFO] [Overrides]: Redirecting save state to "/home/pi/.config/retroarch/states/DOSBox-core.state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[libretro DEBUG] [DOSBox] Setting pixel format to RETRO_PIXEL_FORMAT_XRGB8888.

Hmm, it should usually have some lines about not/finding remaps and core-specific shaders, etc., but nevertheless, it looks like it is overriding something, insofar as the saves and savestates are being redirected.

Is that something in your override?

Not that I can tell. There isn’t anything like that in my dosbox-core .cfg or .opt at all.

My suspicion is that this has something to do with the way that Dosbox “starts” rather than loads with a game. Most games require some command line arguments to get correct, so it isn’t particularly convenient to load the core with a game. The log shows retroarch loading a dummy core and then setting up the environment for the retroarch defaults.

Edit: I also found a error logging setting in the dosbox options menu that was set to off. Turning it on makes it so that no log is made at all. Strangely.

Scratch that, my regular logging settings got reset. I have new log info. Posting below.

[INFO] Reset.
[INFO] [GL]: VSync => off
[INFO] [Environ]: GET_VARIABLE dosbox_core_log_level:
	debug
[INFO] [Environ]: GET_VARIABLE dosbox_core_log_method:
	frontend
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: GET_VARIABLE dosbox_core_core_timing:
	external
[INFO] [Environ]: GET_VARIABLE dosbox_core_thread_sync:
	wait
[INFO] [Environ]: GET_VARIABLE dosbox_core_use_options:
	true
[INFO] [Environ]: GET_VARIABLE dosbox_core_adv_options:
	true
[INFO] [Environ]: GET_VARIABLE dosbox_core_machine_type:
	svga_s3
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_type:
	sb16
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_base:
	220
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_irq:
	7
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_dma:
	1
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_hdma:
	5
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_opl_mode:
	auto
[INFO] [Environ]: GET_VARIABLE dosbox_core_sblaster_opl_emu:
	compat
[INFO] [Environ]: GET_VARIABLE dosbox_core_gus:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_gusrate:
	44100
[INFO] [Environ]: GET_VARIABLE dosbox_core_gusbase:
	240
[INFO] [Environ]: GET_VARIABLE dosbox_core_gusirq:
	5
[INFO] [Environ]: GET_VARIABLE dosbox_core_gusdma:
	3
[INFO] [Environ]: GET_VARIABLE dosbox_core_joystick_force_2axis:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_emulated_mouse:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_emulated_mouse_deadzone:
	30
[INFO] [Environ]: GET_VARIABLE dosbox_core_mouse_speed_factor_x:
	1.00
[INFO] [Environ]: GET_VARIABLE dosbox_core_mouse_speed_factor_y:
	1.00
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_type:
	auto
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_core:
	auto
[INFO] [Environ]: GET_VARIABLE dosbox_core_aspect_correction:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_scaler:
	none
[INFO] [Environ]: GET_VARIABLE dosbox_core_joystick_timed:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_mode:
	fixed
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_realmode:
	3
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_multiplier_realmode:
	1000
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_fine_realmode:
	0
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_multiplier_fine_realmode:
	100
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles:
	1
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_multiplier:
	10000
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_fine:
	0
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_multiplier_fine:
	1000
[INFO] [Environ]: GET_VARIABLE dosbox_core_cpu_cycles_limit:
	100%
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_pcspeaker:
	true
[INFO] [Environ]: GET_VARIABLE dosbox_core_mpu_type:
	intelligent
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_midi_driver:
	mt32
[INFO] [Environ]: GET_VARIABLE dosbox_core_bassmidi.soundfont:
	none
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_bassmidi.sfvolume:
	0.6
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_bassmidi.voices:
	100
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.soundfont:
	none
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.gain:
	0.4
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.polyphony:
	256
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.cores:
	1
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.samplerate:
	44100
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.reverb:
	true
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.reverb.roomsize:
	0.2
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.reverb.damping:
	0.0
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.reverb.width:
	0.5
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.reverb.level:
	0.9
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.chorus:
	true
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.chorus.number:
	3
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.chorus.level:
	2.0
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.chorus.speed:
	0.3
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_fluid.chorus.depth:
	8
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.type:
	cm32l
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.thread:
	false
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.partials:
	32
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.analog:
	2
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.reverse.stereo:
	false
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.dac:
	0
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.reverb.mode:
	auto
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.reverb.time:
	5
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.reverb.level:
	3
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.rate:
	44100
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.src.quality:
	2
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.niceampramp:
	true
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.thread:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.chunk:
	16
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_mt32.prebuffer:
	32
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_midi_port:
	Midi Through:Midi Through Port-0
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: GET_VARIABLE dosbox_core_ipx:
	false
[INFO] [Environ]: GET_VARIABLE dosbox_core_tandy:
	off
[INFO] [Environ]: GET_VARIABLE dosbox_core_voodoo:
	false
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.

It’s best to use a .conf file for each game. Here’s how my Ultima VIII.conf file looks like, for example:

[autoexec]
@echo off
mount c /mnt/Data/emu/dosbox
mixer sb 40:40 /noshow
c:
cd games\u8
u8
exit

You can also scan your .conf files using the manual content scanner to create a DOS playlist:

1 Like

Does that mean I can launch the games using the .conf file?

Also, for some reason, the dosbox overrides no longer save (it says error saving overrides). I want to disable the core options file because I don’t want to worry about conflicting settings. Do you know how I can restore the ability to save overrides? Or if not, maybe do you know the syntax of the line which turns on/off the core option settings so that I can manually add it to DOSBox-core.opt?

EDIT: Ok. I realized that you can’t save overrides without “content” loaded. Answered that question. And I also figured out how to load from a .conf file, so that should work for me now.

Thanks,

Yeah. .conf files are treated as content. All you need in your conf files is an [autoexec] section that launches the game the way you want. That way you can save not only RA configuration overrides per-game if you want, but also core option overrides, which you need most of the time since different DOS games can require different core settings.

You can also put mount commands in your conf files for CD-ROM games. Here’s my Simon the Sorcerer.conf file for example:

[autoexec]
@echo off
mount c /mnt/Data/emu/dosbox -freesize 1024
imgmount d "/mnt/Data/downloads/games/dos/SIMON_THE_SORCERER.ISO" -t cdrom
mixer sb 60:60 /noshow
c:
cd games\simon
call simon.bat
exit

Okay. Thanks for that. So far, I’m basically just using a whole dosbox-core.conf file for each game rather than splitting the configs up into two places. Honestly, I’m a little confused still about the core-specific options and having the second conf file made it even more confusing. Unless there is something I should be paying attention to in the opts. Currently, I have core options set to “off”.

Do you have any performance tips? I am setting rather low framerates on Dark Forces. It seems to bogged down now and again. I have the vsync set re: James-F’s sync guide here: Perfect Audio Video Synchronization

This seems to make a huge difference for certain cores (especially genesis) but not really for the more complex DOS titles. (well, Dark Forces isn’t really that complex, but it’s at least 3d).

Thanks agian. :slight_smile:

Well, if you do that then you can’t configure dosbox in the core options. You need to instead use .conf file settings. You can do that if you want, but I prefer to configure my games in the core options instead, so I have that option enabled. That way, I don’t have any configuration options in my .conf files. There’s only an [autoexec] section in there to launch the game. I then configure the dosbox options in the core options and save them for each game (meaning for each .conf file.)

For example for Jazz Jackrabbit I enable Gravis Ultrasound emulation. For U8 I use SoundBlaster + MIDI. For Monkey Island I use MT-32 emulation. This is IMO much more user friendly than having to edit these settings in each game’s .conf file by hand.

Yes. Set the “CPU cycles mode” core option to “Fixed” and use a cycle amount that makes the game run at the correct speed. “Auto” cycles mode does not work well on many systems (the “auto” algorithm doesn’t behave well when dosbox is running as a libretro core.) For “modern” DOS games like Dark Forces, you should use something like 100.000 cycles for example. Basically bump it up until the game runs well. Some games will start to run well at 50k, some at 100k, some others might need 150k. Depends on the game. Fortunately, you can save the core options per-game, as discussed above. So you just configure a cycle count that works best on a game by game basis.

Remember though that to actually create a core options file for the specific game (meaning the game-specific .conf file) you have loaded, you need to trigger the “Save Game Options File” option in the core options (it’s the first choice at the top.) Once you do that, every time you load that .conf file, the core options for that game will be used.

Ok. Awesome. Thanks for the tips! I’ll try setting the cycles to a fixed rate. Do you think the core should be dynamic?

If I leave the core options set to “off” does that disable both the core overrides and the game overrides?

tbh, I always just assumed that the “game” and “core” overrides were the same settings, but the core file effects all games played on that core globally while the game file only effects and individual game (and supercedes the core settings)

You’re not saying that the game and core overrides are different settings altogether or anything, are you?

Thanks again too. It’s really been a lot of help. RA is a complicated beast. :stuck_out_tongue:

You’re confusing core option overrides with RA settings overrides. They are unrelated.

RA settings overrides are stored in .cfg files and contain RetroArch configuration settings. They can be overridden per-core, per-game, or even per-directory.

Core options overrides are stored in .opt files and contain core option settings. They can only be per-game, since “per-core” core options isn’t something that makes logical sense :slight_smile: Core options are “per-core” naturally, because what else could they be?

1 Like

Alright. Thanks for the further clarification! I think maybe I get it this time.

So, the overrides menu stored RA settings either per game or per core.

The core overrides are are automatically stored and will store per game if I select the “create game options file” selection. The “.opt” files are not handled by the options in the “Overrides” menu at all. (only the .cfg files)

btw, do you recommend selecting “dynamic recompiler?” It seems to make things a bit smoother to me, so I’m just leaving it for now. I guess it would be bad for older games.

Correct.

Also correct.

The dynamic recompiler (also referred to as “dynarec” or “dynrec” sometimes) is the fastest CPU emulator. By far. It’s impossible to run most “modern” DOS games at acceptable speeds without it. You can not emulate something like 100k cycles for example on anything but he dynarec. The other CPU core emulators (“interpreter” and “simple”) are there for older games that require more accurate timing and low cycles (like less than 10k.)

1 Like

Ok. Great. I think I got the hang of things now. It’s amazing how all these little points can make getting things setup so much more complicated. I know dosbox for the pc pretty well, I’ve been using it for years, but mixing it with all the settings in RA really made my head spin.

Thanks again for your guidance. You’ve really been a lot of help! :smiley: