<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>Retro Gaming PC Build Log Archives - Krystof.IO</title>
	<atom:link href="https://krystof.io/series/retro-gaming-pc-build-log/feed/" rel="self" type="application/rss+xml" />
	<link>https://krystof.io/series/retro-gaming-pc-build-log/</link>
	<description>Numerous hobbies, various ramblings.</description>
	<lastBuildDate>Fri, 09 Sep 2022 01:56:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>

<image>
	<url>https://krystof.io/wp-content/uploads/2019/10/cropped-site-icon-low-32x32.jpg</url>
	<title>Retro Gaming PC Build Log Archives - Krystof.IO</title>
	<link>https://krystof.io/series/retro-gaming-pc-build-log/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Retro Gaming PC Build Log Part 3 : PC Games with GOG</title>
		<link>https://krystof.io/retro-gaming-pc-build-log-part-3-pc-games-with-gog/</link>
					<comments>https://krystof.io/retro-gaming-pc-build-log-part-3-pc-games-with-gog/#respond</comments>
		
		<dc:creator><![CDATA[Eric R. Krystof]]></dc:creator>
		<pubDate>Fri, 19 Aug 2022 19:35:16 +0000</pubDate>
				<category><![CDATA[Retro Gaming]]></category>
		<category><![CDATA[MS-DOS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Build Log]]></category>
		<category><![CDATA[Dos Box]]></category>
		<category><![CDATA[Featured]]></category>
		<guid isPermaLink="false">https://krystof.io/?p=1984</guid>

					<description><![CDATA[<p>Working through LaunchBox and DOSBOX / Windows configurations for GOG.com games</p>
<p>The post <a rel="nofollow" href="https://krystof.io/retro-gaming-pc-build-log-part-3-pc-games-with-gog/">Retro Gaming PC Build Log Part 3 : PC Games with GOG</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="post-modified-info">Last Updated on August 26, 2022.</p>
<p>I felt the need to separate GOG game installs from DOS games I&#8217;ve got that I&#8217;ll be setting up manually or through Steam.  The great thing about GOG (Good Old Games) games is that they do a lot of the legwork for getting old games to run on modern systems.  However, they&#8217;re not always great &#8211; they sometimes have issues, or occasionally lack content I&#8217;ve got on my original CDs or floppy images I&#8217;ve saved off.  Plus, I may want to run these with a different version of DOSBox, since a lot of the GOG games come packaged with DOSBOX 0.74-XXX.  I&#8217;d like to try some of these with DOSBOX-X and take advantage of save states and shaders which seem to be better supported there.</p>



<p>Nevertheless, they&#8217;ve tweaked a lot of the DOSBOX settings for CPU cycles and such on their end already, so that should save me some heavy lifting and fine-tuning&#8230; hopefully.</p>



<p>Here are some of the software / utilities I used when bringing in some GOG games:</p>



<figure class="wp-block-table"><table><tbody><tr><td><a href="https://www.gog.com/galaxy" target="_blank" rel="noreferrer noopener">GOG Galaxy</a></td><td>This is effectively their management tool for installed games, referencing your GOG account&#8217;s purchases.</td></tr><tr><td><a href="https://dosbox-x.com" target="_blank" rel="noreferrer noopener">DOSBOX-X</a></td><td>Currently using 0.84.2  There&#8217;s a really nice <a href="https://dosbox-x.com/wiki/DOSBox%E2%80%90X%E2%80%99s-Feature-Highlights" target="_blank" rel="noreferrer noopener">feature list</a> where the X team has added functionality above and beyond the standard DOSBOX build.  Running Windows 9X from this version sounds interesting, I&#8217;m going to give that a shot sometime.  The primary reason I&#8217;m using this is for when I feel like adding some opengl shaders.  I went with the vsbuild-win64.  Inside that archive, I went with the SDL2 release.</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">GOG install and personal tweaks to GOG&#8217;s DOSBOX</h2>



<p>So, I installed GOG Galaxy, linked my account, and found the myriad of games I&#8217;ve purchased over the years.  First stop, a personal favorite &#8211; Heroes Of Might and Magic.  I&#8217;m going to focus on the first of the series, which uses DOSBOX.</p>



<p>Now, my personal flavors on DOSBOX gaming are that I&#8217;d like full screen (I&#8217;d prefer borderless window but that&#8217;s not something I&#8217;m sure I can do with DOSBOX) at the host machine&#8217;s resolution, so I don&#8217;t encounter a crap ton of resolution switching on my monitor if I want to look at manuals or reference cards.  </p>



<p>In the past, I would manually tweak  a GOG games unique DOSBOX config to my liking, with generally these settings:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#91;sdl]
fullscreen=true
fullresolution=desktop
output=opengl

&#91;render]
aspect=true
</pre></div>


<p>GOG stores the main dosbox config for each game in the game&#8217;s <code>dosbox&lt;abbreviation&gt;.conf</code> file.  So for Heroes of Might and Magic 1, that ends up being <code>dosboxHOMM1.conf</code>.  I may automate some of these changes, but for now I&#8217;m manually doing these to see how things play out first.  In fact, each GOG game gets its own DOSBOX copy stored underneath the game&#8217;s main directory:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="670" height="280" src="https://krystof.io/wp-content/uploads/2022/08/image-26.png" alt="" class="wp-image-1993" srcset="https://krystof.io/wp-content/uploads/2022/08/image-26.png 670w, https://krystof.io/wp-content/uploads/2022/08/image-26-300x125.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-26-585x244.png 585w" sizes="(max-width: 670px) 100vw, 670px" /></figure></div>


<p>The game loads up fine, though I do find it annoying that if I alt-tab out to look up a page in the manual and go back, DOSBOX reverts to the window, I have to hit alt-enter to go back to full screen.  At least I don&#8217;t have the monitor itself changing resolutions on top of it.  DOSBOX-X, thankfully, doesn&#8217;t do that, but we&#8217;ve not converted our GOG HOMM to DOSBOX-X yet.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-25-1024x770.png" alt="" class="wp-image-1992" width="512" height="385" srcset="https://krystof.io/wp-content/uploads/2022/08/image-25-1024x770.png 1024w, https://krystof.io/wp-content/uploads/2022/08/image-25-300x226.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-25-768x578.png 768w, https://krystof.io/wp-content/uploads/2022/08/image-25-1170x880.png 1170w, https://krystof.io/wp-content/uploads/2022/08/image-25-585x440.png 585w, https://krystof.io/wp-content/uploads/2022/08/image-25-1320x993.png 1320w, https://krystof.io/wp-content/uploads/2022/08/image-25.png 1436w" sizes="(max-width: 512px) 100vw, 512px" /><figcaption>Nostalgia nosebleed!</figcaption></figure></div>


<h2 class="wp-block-heading" id="h-dosbox-x-install-and-initital-configuration">DOSBOX-X install and initital configuration</h2>



<p>Now, I&#8217;ve installed my generic DOSBOX-X copy in a single directory under my D:\Emulators path:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="725" height="470" src="https://krystof.io/wp-content/uploads/2022/08/image-27.png" alt="" class="wp-image-1994" srcset="https://krystof.io/wp-content/uploads/2022/08/image-27.png 725w, https://krystof.io/wp-content/uploads/2022/08/image-27-300x194.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-27-585x379.png 585w" sizes="(max-width: 725px) 100vw, 725px" /></figure></div>


<p>Now, as far as DOSBOX-X goes, I&#8217;ve edited the dosbox-x.conf that comes with the download and tweaked to my liking.  </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#91;sdl]
output=opengl
fullscreen=true
autolock=true
autolock_feedback = none

&#91;render]
aspect         = true
aspect_ratio   = 4:3
glshader       = crt-lottes-krystof.glsl

</pre></div>


<div data-padding="10" class="wp-block-simple-blocks-info-block" style="background-color:#000000;color:#ffffff;padding:10px"><div data-iconsize="20" data-iconspace="20" class="icon" style="margin-right:20px"><span class="dashicon dashicons dashicons-info"></span></div><div>While I used opengl, the default output of DOSBOX-X is &#8216;ttf&#8217;, which looks really, really cool, but totally breaks retro immersion. 🙂<br><br>Also, you&#8217;ll notice I&#8217;m now forcing everything to 4:3.  Will that bite me later? Maybe, and probably for specific games, we&#8217;ll see.</div></div>



<p>You may notice the glshader entry in there.  That&#8217;s a custom one I was tweaking &#8211; you can make your own or point to one of the built in defaults under the glshaders directory.  Definitely something to play around with.</p>



<h2 class="wp-block-heading">Swapping HOMM&#8217;s DOSBOX for my DOSBOX-X</h2>



<p>If I run dosbox-x.exe, it works, and everything is happy.  Now, the question I have&#8230; Can I somehow swap out the DOSBox that my GOG Heroes of Might and Magic usses to use my global DOSBox-X directly?  It leads me to other questions:</p>



<ul><li>How do we point a GOG game to use my dosbox-X under D:\emulators\dosbox-x?  What about configs?</li><li>If we can swap a GOG&#8217;s dosbox to dosbox-x, can one dosbox-x config handle all the GOG games? Probably not</li><li>How do we have a common config and allow overrides as needed with dosbox-x? </li><li>How can we take a GOG&#8217;s customized DOSBOX-.74 config and overlay them on top of my global DOSBOX-X config?</li></ul>



<p>First off, the manual approaches.  Even if this works for one game, that doesn&#8217;t mean it will work for all, so I anticipate having to come back and make changes.  Perhaps I can automate some of them.</p>



<p>HOMM GOG&#8217;s DOSBox has multiple configuration files:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-28.png" alt="" class="wp-image-1995" width="220" height="91"/></figure></div>


<p>The launcher link also calls this, and starts with the current directory set to <em> inside it&#8217;s local DOSBOX folder</em>:</p>



<p><code>"D:\GOG Galaxy\Games\HoMM\DOSBOX\DOSBox.exe" -conf "..\dosboxHOMM1.conf" -conf "..\dosboxHOMM1_single.conf" -noconsole -c "exit"</code></p>



<p>So we can see they&#8217;re already using overrides &#8211; the &#8216;single&#8217; conf file overrides their HOMM global config file.  We also have some relative paths in there, going to the parent directory (which is the HOMM install).  The &#8216;single&#8217; file seems to be more of the autoexec related work, and doesn&#8217;t try to override much in the way of rendering, though it does shut ipx off.</p>



<h3 class="wp-block-heading">Brute Force &#8211; Duplicate DOSBOX-X and use it against the GOG HOMM&#8217;s DOSBOX 0.74 configs</h3>



<p>How can I swap out the EXE?  I could just copy all of dosbox-x and duplicate a game-unique DOSBOX install inside HOMM&#8217;s dosbox directory, which is effectively what they do.  Let&#8217;s try that, and rename dosbox-x.exe to just dosbox.  This means we won&#8217;t have to change the shortcut.  I did that and to be sure, deleted any dosbox-x.config files in my HOMM dosbox copy.  So now we have the DOSBOX-X binary being executed, but using the dosboxHOMM config files, which we know target the original DOSBOX-0.74 version.  <strong>Just because we&#8217;re using DOSBOX-X binaries doesn&#8217;t mean we can assume DOSBOX 0.74 configs will just work 100% without flaw.</strong>  At least I wouldn&#8217;t think so.  Perhaps I have trust issues.</p>



<p><strong>Result?  Successful </strong><em>proof of concept</em>.  It worked &#8211; with a side note.  I had to click into the program and heard an audible &#8216;click&#8217; when I activated the window.  I don&#8217;t recall that being a thing.  But we aren&#8217;t taking advantage of any spiffy DOSBOX-X configs, and if there are any defaults in our global dosbox-x we set, we&#8217;re not picking them up, since we made a complete duplicate dosbox-x.  It&#8217;s not what I want long term.</p>



<h3 class="wp-block-heading">Next step &#8211; Overwrite dosboxHOMM1.conf with our dosbox-x global config contents.</h3>



<p>I tried this just to see if it would still load.  Now what this also means is that we would lose ANY HOMM specific dosbox configurations since we&#8217;re going to replace it with dosbox-x.  So things like CPU cycle settings, sound card configs, xms,ems settings, etc. that GOG curators put in there would be lost.  This probably won&#8217;t fly long term, just wanted to see how well it would work.  So, I wiped did a copy and paste of the file contents of my global dosbox-x.conf into the file dosboxHOMM1.conf.</p>



<p><strong>Result? Mixed but doable</strong>.  We did get the shader working, but a couple of oddities.  The mouse only worked in full screen mode.  In window mode (for dosbox x you toggle full screen with F11-F) I couldn&#8217;t get a mouse cursor anymore.  Switching back to fullscreen fixed that.  To solve this, I needed to change my dosbox-x.config:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#91;sdl]
autolock=true
autolock_feedback = none
</pre></div>


<p>autolock_feedback set to none removes the &#8216;click&#8217; when dosbox locks the mouse (that same audible click I heard the first attempt).  Your call.  You can hit CTRL-F10 to unlock the mouse again.  </p>



<p>Dont&#8217;t forget, we <em>copied</em> our dosbox-x.conf contents into dosboxHOMM1.conf.  That&#8217;s not a good long term solution, we&#8217;re just doing proof of concept.</p>



<p>So, that worked, but it worked <em>this time.</em>.. I totally expect some games to not tolerate this, because something in the game specific DOSBOX config would be lost if we did this for each game.  You can see with the autolock we already had a deviation from the dosbox-x default, but in this case, I&#8217;m fine with changing it.  However, it won&#8217;t always be the case &#8211; what if a DOS game wants EMS memory setup but another DOS game crashes because of it?  I suspect I&#8217;ll have to handle those cases.</p>



<p>What would be useful is a program that parses dos box config files, looks for values that don&#8217;t match default or ignorable patterns, and reports just meaningful differences.   Then we can take those differences, put them in the override dosbox config (<code>e.g. dosboxHOMM1_single.conf</code>), and still use our generic dosbox-x.conf as the primary for <strong>all</strong> of our games.  That&#8217;d be great, because if we want a different shader, they automatically apply to all the games.  We can still use the override file if we want to change it for a specific game, too.</p>



<p>What about those .lnk (Windows Shortcut) files?  GOG is using those to launch from it&#8217;s launcher.  If I import GOG games into LaunchBox, it&#8217;s going to use those .lnk files as well.  I&#8217;d like to leave the link intact, but I may need to modify them if I want to try to make some global dosbox.config usable.  But say I could do that, what does that look like?</p>



<h2 class="wp-block-heading">Attempting to use a single DOSBOX-X install and base config for multiple GOG games</h2>



<p>Let&#8217;s see if this even works before I worry about modifying Windows Shortcut links.</p>



<p>Resetting our GOG HOMM from scratch again&#8230;(Backups backups backups)</p>



<p>Recall our initial .lnk shortcut pointed this way and starts with the current directory set to <em> inside it&#8217;s local DOSBOX folder</em>:</p>



<p><code>"D:\GOG Galaxy\Games\HoMM\DOSBOX\DOSBox.exe" -conf "..\dosboxHOMM1.conf" -conf "..\dosboxHOMM1_single.conf" -noconsole -c "exit"</code></p>



<p>That means <code>dosboxHOMM1_single.conf</code> is referencing paths from the standpoint of our GOG HOMM&#8217;s DOSBox directory.  So we must start our command there just like the link does.  But if we want to use a global DOSBOX config in our <code>D:\Emulators\dosbox-x</code>, we&#8217;re at a bit of an impasse.  </p>



<p>So, in a command line prompt, I switched to the GOG HOMM DOSBOX directory and ran this command line instead from the GOG HOMM DOSBOX dir:</p>



<p><code>D:\GOG Galaxy\Games\HoMM\DOSBOX&gt; d:\Emulators\dosbox-x\dosbox-x.exe -conf "d:\Emulators\dosbox-x\dosbox-x.conf" -conf "../dosboxHOMM1_single.conf"</code></p>



<p>This actually worked.  I was surprised, since I half expected it to not find my custom shader, but it looks like dosbox-x is looking in it&#8217;s folders appropriately.  But what about any DOSBOX junk in the GOG HOMM folder left over?  We&#8217;re not actually using that DOSBOX anymore, we&#8217;re just starting in that directory so the relative paths in our <code>dosboxHOMM1_single.conf </code>work. </p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="767" src="https://krystof.io/wp-content/uploads/2022/08/image-29-1024x767.png" alt="" class="wp-image-2001" srcset="https://krystof.io/wp-content/uploads/2022/08/image-29-1024x767.png 1024w, https://krystof.io/wp-content/uploads/2022/08/image-29-300x225.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-29-768x575.png 768w, https://krystof.io/wp-content/uploads/2022/08/image-29-1170x876.png 1170w, https://krystof.io/wp-content/uploads/2022/08/image-29-585x438.png 585w, https://krystof.io/wp-content/uploads/2022/08/image-29-1320x989.png 1320w, https://krystof.io/wp-content/uploads/2022/08/image-29.png 1442w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Nostalgia nosebleed with DOSBOX-X and custom shader</figcaption></figure></div>


<p>My current plan is as follows for each GOG game, and summarizes the plan based on our results above:</p>



<ul><li>Modify the .lnk to point to our DOSBox-X base config, but still utilize the game-specific override config<ul><li>I&#8221;ll look at this GitHub repo and maven artifact: <a href="https://github.com/DmitriiShamrikov/mslinks" target="_blank" rel="noreferrer noopener">https://github.com/DmitriiShamrikov/mslinks</a> which seems to allow me to edit windows shortcuts programmatically.</li><li>Using that, I now have some throwaway-ish Java code that does the following:<ul><li>Spin through GOG games via network share to my retro machine</li><li>Look for a shortcut in each game root folder</li><li>If shortcut has dosbox in its target, make backups of the GOG DOSBOX config files.</li><li>Point the first config in the shortcut to our dosbox-x global config under <code>D:\Emulators\dosbox-x</code> instead of the GOG game specific primary dosbox.config</li><li>Change the shortcut target to point to our dosbox-x.exe in <code>D:\Emulators\dosbox-x</code></li></ul></li></ul></li><li><strong>If a game doesn&#8217;t &#8216;just work&#8217; with DOSBox-X: </strong>Look at the now abandoned &#8216;GOG-specific&#8217; dosbox config and determine if anything unique to that GOG game needs to be put in the override config.  See if we can automate this looking for the most common reasons a DOSBox game would have issues (e.g. cpu cycles)<ul><li>I&#8217;ll have to find a DOSBox properties parser or roll my own.  We need to support [bracket] sections and retain linefeeds and comments.  <strong>I searched around a bit and </strong>though I found some INI file parsers, they didn&#8217;t handle the DOSBOX autoexec section very well (since they&#8217;re not key-value pairs).  Ended up rolling my own simple parsing mechanism that gets the job done.  </li></ul></li></ul>



<h2 class="wp-block-heading">Progressing through my GOG installs</h2>



<p>After figuring out how to do this for Heroes of Might and Magic 1 and 2 (the rest in the series are native windows apps from GOG), I continued on with my other GOG installs.  Anything of interest noted below:</p>



<h2 class="wp-block-heading">DOSBOX Settings I take from the GOG install and put into the override file before pointing a GOG game at DOSBOX-X</h2>



<p>My thought is that I only want to take certain settings out of GOG&#8217;s DOSBOX-0.74 config and put them into the override file.  If I take everything, it would overwrite full screen and shader settings that I want to utilize with the DOSBOX-X binaries and my global config.  </p>



<p>I thought it&#8217;d be an interesting exercise to look at ALL GOG DOSBOX configs at once and count occurrences of unique key value pairs.  Here&#8217;s the raw dump:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
Occurences of keys/values across all dosbox GOG configs:
83	 cpu.core.auto
4	 cpu.core.dynamic
3	 cpu.core.normal
9	 cpu.core.simple
1	 cpu.coretype.auto
5	 cpu.cputype.386_slow
5	 cpu.cputype.486_slow
86	 cpu.cputype.auto
1	 cpu.cputype.pentium_slow
3	 cpu.cycledown.100
88	 cpu.cycledown.1000
1	 cpu.cycledown.10000
2	 cpu.cycledown.20
1	 cpu.cycledown.50
2	 cpu.cycledown.500
2	 cpu.cycledown.5000
1	 cpu.cycles.10000
1	 cpu.cycles.100000
1	 cpu.cycles.11000
1	 cpu.cycles.15000
2	 cpu.cycles.19000
2	 cpu.cycles.20000
1	 cpu.cycles.300
1	 cpu.cycles.3000
1	 cpu.cycles.35000
1	 cpu.cycles.4000
3	 cpu.cycles.500
2	 cpu.cycles.5000
1	 cpu.cycles.50000
1	 cpu.cycles.7500
2	 cpu.cycles.8000
1	 cpu.cycles.80000
1	 cpu.cycles.9000
29	 cpu.cycles.auto
2	 cpu.cycles.auto limit 16000
1	 cpu.cycles.fixed 10000
1	 cpu.cycles.fixed 12500
2	 cpu.cycles.fixed 14000
1	 cpu.cycles.fixed 15000
2	 cpu.cycles.fixed 30000
1	 cpu.cycles.fixed 35000
1	 cpu.cycles.fixed 6000
1	 cpu.cycles.fixed 60000
1	 cpu.cycles.fixed 7000
1	 cpu.cycles.fixed 8000
33	 cpu.cycles.max
2	 cpu.cycleup.10
3	 cpu.cycleup.100
88	 cpu.cycleup.1000
1	 cpu.cycleup.10000
1	 cpu.cycleup.50
2	 cpu.cycleup.500
2	 cpu.cycleup.5000
1	 dos.automount.true
2	 dos.ems.false
97	 dos.ems.true
1	 dos.files.127
93	 dos.keyboardlayout.auto
6	 dos.keyboardlayout.none
99	 dos.umb.true
99	 dos.xms.true
98	 dosbox.captures.capture
98	 dosbox.language.
98	 dosbox.machine.svga_s3
1	 dosbox.machine.vesa_nolfb
83	 dosbox.memsize.16
9	 dosbox.memsize.30
3	 dosbox.memsize.32
3	 dosbox.memsize.63
1	 dosbox.memsize.8
1	 dosbox.vmemsize.4
1	 glide.glide.true
1	 glide.grport.600
1	 glide.lfb.full
3	 gus.dma1.3
3	 gus.dma2.3
96	 gus.gus.false
2	 gus.gus.true
96	 gus.gusbase.240
93	 gus.gusdma.3
93	 gus.gusirq.5
7	 gus.gusrate.22050
89	 gus.gusrate.44100
3	 gus.irq1.5
3	 gus.irq2.5
96	 gus.ultradir.C:\ULTRASND
1	 innova.innova.false
1	 innova.quality.0
1	 innova.samplerate.22050
1	 innova.sidbase.280
2	 ipx.Connection.0
2	 ipx.Enable.0
7	 ipx.ipx.false
98	 joystick.autofire.false
64	 joystick.buttonwrap.false
34	 joystick.buttonwrap.true
1	 joystick.joysticktype.2axis
97	 joystick.joysticktype.auto
95	 joystick.swap34.false
3	 joystick.swap34.true
6	 joystick.timed.false
92	 joystick.timed.true
1	 log.bios.true
1	 log.cpu.true
1	 log.dma_control.true
1	 log.dosmisc.true
1	 log.exec.true
1	 log.fcb.true
1	 log.files.true
1	 log.fpu.true
1	 log.gui.true
1	 log.int10.true
1	 log.io.true
1	 log.ioctl.true
1	 log.keyboard.true
1	 log.logfile.
1	 log.misc.true
1	 log.mouse.true
1	 log.paging.true
1	 log.pci.true
1	 log.pic.true
1	 log.pit.true
1	 log.sblaster.true
1	 log.vga.true
1	 log.vgagfx.true
1	 log.vgamisc.true
4	 midi.config.
4	 midi.device.default
94	 midi.midiconfig.
94	 midi.mididevice.default
98	 midi.mpu401.intelligent
1	 midi.mt32rate.auto
87	 mixer.blocksize.1024
10	 mixer.blocksize.2048
2	 mixer.blocksize.4096
98	 mixer.nosound.false
6	 mixer.prebuffer.20
3	 mixer.prebuffer.240
68	 mixer.prebuffer.25
1	 mixer.prebuffer.30
4	 mixer.prebuffer.40
1	 mixer.prebuffer.512
16	 mixer.prebuffer.80
5	 mixer.rate.22050
93	 mixer.rate.44100
1	 mixer.swapstereo.false
1	 ne2000.macaddr.AC:DE:48:88:99:AA
1	 ne2000.ne2000.true
1	 ne2000.nicbase.300
1	 ne2000.nicirq.3
1	 ne2000.realnic.list
1	 parallel.parallel1.disabled
1	 parallel.parallel2.disabled
1	 parallel.parallel3.disabled
1	 printer.docpath..
1	 printer.dpi.360
1	 printer.height.110
1	 printer.multipage.false
1	 printer.printer.true
1	 printer.printoutput.png
1	 printer.timeout.0
1	 printer.width.85
73	 render.aspect.false
26	 render.aspect.true
1	 render.char9.false
99	 render.frameskip.0
1	 render.linewise.false
1	 render.multiscan.false
1	 render.scaler.hardware2x
2	 render.scaler.none
96	 render.scaler.normal2x
1	 sblaster.dma.0
98	 sblaster.dma.1
1	 sblaster.hardwarebase.220
99	 sblaster.hdma.5
1	 sblaster.irq.10
33	 sblaster.irq.5
65	 sblaster.irq.7
4	 sblaster.mixer.true
4	 sblaster.oplemu.compat
89	 sblaster.oplemu.default
1	 sblaster.oplemu.old
96	 sblaster.oplmode.auto
2	 sblaster.oplmode.opl3
7	 sblaster.oplrate.22050
91	 sblaster.oplrate.44100
99	 sblaster.sbbase.220
94	 sblaster.sbmixer.true
93	 sblaster.sbtype.sb16
6	 sblaster.sbtype.sbpro1
98	 sdl.autolock.true
99	 sdl.fulldouble.false
5	 sdl.fullresolution.
74	 sdl.fullresolution.desktop
20	 sdl.fullresolution.original
99	 sdl.fullscreen.true
70	 sdl.mapperfile.mapper-0.74-2.map
16	 sdl.mapperfile.mapper-0.74.map
1	 sdl.mapperfile.mapper-SVN.map
2	 sdl.mapperfile.mapper.map
10	 sdl.mapperfile.mapper.txt
1	 sdl.output.OpenGL
5	 sdl.output.ddraw
1	 sdl.output.direct3d
5	 sdl.output.opengl
84	 sdl.output.overlay
3	 sdl.output.surface
1	 sdl.overscan.0
1	 sdl.pixelshader.none
98	 sdl.priority.higher,normal
95	 sdl.sensitivity.100
3	 sdl.sensitivity.500
98	 sdl.usescancodes.true
98	 sdl.waitonerror.true
99	 sdl.windowresolution.original
1	 serial.serial1.disabled
97	 serial.serial1.dummy
97	 serial.serial2.dummy
1	 serial.serial2.nullmodem port:23
98	 serial.serial3.disabled
98	 serial.serial4.disabled
1	 speaker.disney.false
97	 speaker.disney.true
9	 speaker.pcrate.22050
89	 speaker.pcrate.44100
98	 speaker.pcspeaker.true
98	 speaker.tandy.auto
9	 speaker.tandyrate.22050
89	 speaker.tandyrate.44100
1	 vsync.vsyncmode.off
1	 vsync.vsyncrate.75

</pre></div>


<p>I did this just to get a quick look at how many configs really change between all the GOG Games.  As I suspected, we find a wide variety of cpu section settings.  We had 2 that turned off EMS memory, and a few that changed the memsize.  Quite a few twists in the joystick section, and a few other oddities here and there.  So just by looking at this, I changed my program to take some additional overrides.</p>



<p>So, the little local snippet of code I wrote looks at my DOSBOX-X main config and each GOG&#8217;s DOSBOX config and compares the following, taking the GOG config and overriding just for that game.  </p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Section Name</strong></td><td><strong>Keys of Note</strong></td></tr><tr><td>[sdl],[render]</td><td>I don&#8217;t bring the GOG values into the game specific override, this is typically where we&#8217;re configuring my preferred aspect ratio and shader usage.</td></tr><tr><td>Any other sections, e.g. [cpu], [dos], [dosbox], [joystick], [sblaster], [midi], [mixer], [speaker],[gus]&#8230;.</td><td>I took all values from GOG&#8217;s game and put them in the override file.</td></tr></tbody></table></figure>



<p>While HOMM worked just fine without taking [cpu] settings, the next game I tried was Alone in the Dark, and with default DOSBox-X settings, it slowed to a crawl.  Turns out GOG had tweaked their primary Alone in the Dark DOSBOX-0.74 config:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
core -&gt; simple
cputype -&gt; pentium_slow
cycles -&gt; 11000
cycleup -&gt; 1000
cycledown -&gt; 1000
</pre></div>


<p>This is why [cpu] is one of the sections I take from GOG&#8217;s curated game-specific configuration.</p>



<h2 class="wp-block-heading">Game specific tweaks I had to make</h2>



<p>Here&#8217;s the log of games I installed and any interesting tweaks I had to make to convert them to use my DOSBox-X install.</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Game</strong></td><td><strong>Notes</strong></td></tr><tr><td>Magic Carpet Plus</td><td>I manually override the cpu config and render to shut the shader off, makes it easier to see the minimap dots.<br>CPU Config:<br>cycles=fixed 70000<br>cycleup=5000<br>cycledown=5000<br><br>This is so we can use &#8216;high res&#8217; mode by hitting &#8216;R&#8217; when the game starts.  Until then, it runs extremely fast.  <br></td></tr></tbody></table></figure>



<p></p>



<p></p>



<p></p>
<p>The post <a rel="nofollow" href="https://krystof.io/retro-gaming-pc-build-log-part-3-pc-games-with-gog/">Retro Gaming PC Build Log Part 3 : PC Games with GOG</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://krystof.io/retro-gaming-pc-build-log-part-3-pc-games-with-gog/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<series:name><![CDATA[Retro Gaming PC Build Log]]></series:name>
	</item>
		<item>
		<title>Retro Gaming PC Build Log Part 2 : Commodore 64</title>
		<link>https://krystof.io/retro-gaming-pc-build-log-part-2-commodore-64/</link>
					<comments>https://krystof.io/retro-gaming-pc-build-log-part-2-commodore-64/#respond</comments>
		
		<dc:creator><![CDATA[Eric R. Krystof]]></dc:creator>
		<pubDate>Mon, 15 Aug 2022 01:10:25 +0000</pubDate>
				<category><![CDATA[Retro Gaming]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Build Log]]></category>
		<category><![CDATA[Emulation]]></category>
		<category><![CDATA[VICE]]></category>
		<category><![CDATA[Commodore]]></category>
		<guid isPermaLink="false">https://krystof.io/?p=1882</guid>

					<description><![CDATA[<p>Working through LaunchBox and VICE emulator configs for Commodore 64 game emulation</p>
<p>The post <a rel="nofollow" href="https://krystof.io/retro-gaming-pc-build-log-part-2-commodore-64/">Retro Gaming PC Build Log Part 2 : Commodore 64</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="post-modified-info">Last Updated on September 8, 2022.</p>
<p>Figured I&#8217;d start off with my favorite system &#8211; The Commodore 64.  Here are the key software components I used:</p>



<figure class="wp-block-table"><table><tbody><tr><td><a href="https://c64preservation.com/dp.php?pg=nibtools" target="_blank" rel="noreferrer noopener">Nib Tools</a></td><td>Used to convert any images that are .nib format to .G64 format that VICE can read.  D64 images are for unprotected (no copy protection) disks, while  .g64 and .nib are two formats that retain all of the copy protection.  So we&#8217;re going from NIB -&gt; G64</td></tr><tr><td>VICE 3.6.1 (<a href="https://vice-emu.sourceforge.io/windows.html" target="_blank" rel="noreferrer noopener" class="broken_link">Windows 64-bit SDL version</a>)</td><td>VICE is the emulator I&#8217;m most familiar with from my Diorama project and RetroPie tinkering, so I&#8217;ll continue with that here, same reason for the SDL version over GTK3.  </td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="h-nibconv-and-nib-disks">Nibconv and .NIB disks</h2>



<p>I have some disk images that are already the D64 or G64 type, and some that are .NIB.  I need to convert those using the nibconv from the Nib Tools package first.  A simple batch file that worked for me (drop it in the folder where you have nibconv.exe and .NIB files and it will handle the rest.  It deletes the G64 file first since mine would lock if the file already existed.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
for %%f in (*.nib) do (
	del &quot;%%~nf.g64&quot;
	nibconv &quot;%%~nf.nib&quot; &quot;%%~nf.g64&quot;
)
pause
</pre></div>


<h2 class="wp-block-heading">VICE install</h2>



<p>VICE doesn&#8217;t install &#8211; it just unpacks into a directory.  I put mine in a common emulators folder D:\Emulators\SDL2VICE-3.6.1-win64.  Underneath there are all sorts of binaries and such but the primary one is x64sc, and that&#8217;s what I&#8217;ll be configuring as I test out some games.</p>



<h2 class="wp-block-heading">First LaunchBox import and adding VICE as an emulator</h2>



<p>I put my Bruce Lee G64 file in a temporary directory just to try this out.  I&#8217;m going to let LaunchBox manage the Commodore 64 ROM files necessary, so it will &#8216;move it&#8217; into the LaunchBox Games directory on import:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image.png" alt="" class="wp-image-1892" width="542" height="399" srcset="https://krystof.io/wp-content/uploads/2022/08/image.png 722w, https://krystof.io/wp-content/uploads/2022/08/image-300x221.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-585x431.png 585w" sizes="(max-width: 542px) 100vw, 542px" /></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-1.png" alt="" class="wp-image-1893" width="545" height="404" srcset="https://krystof.io/wp-content/uploads/2022/08/image-1.png 727w, https://krystof.io/wp-content/uploads/2022/08/image-1-300x222.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-1-585x434.png 585w" sizes="(max-width: 545px) 100vw, 545px" /></figure></div>


<p>Now here is where I may deviate from most.  I like the <em>idea</em> of RetroArch, and perhaps I&#8217;ll revisit it in the future, but I found while I can create global configurations to be shared across multiple emulators, I really liked having features in the later versions of emulators that don&#8217;t have an updated RetroArch core, or the core has crippled some features I desire.  So in general, I rarely use RetroArch at this time.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-2.png" alt="" class="wp-image-1894" width="548" height="409" srcset="https://krystof.io/wp-content/uploads/2022/08/image-2.png 731w, https://krystof.io/wp-content/uploads/2022/08/image-2-300x224.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-2-585x436.png 585w" sizes="(max-width: 548px) 100vw, 548px" /><figcaption>This page REALLY messed me up.  It actually populated RetroArch into the Associated Platforms list of the &#8216;Manually Configured Emulator&#8217;.  So I had to wipe those out (read on to see how that was diagnosed)</figcaption></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-3.png" alt="" class="wp-image-1928" width="549" height="413" srcset="https://krystof.io/wp-content/uploads/2022/08/image-3.png 732w, https://krystof.io/wp-content/uploads/2022/08/image-3-300x225.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-3-585x440.png 585w" sizes="(max-width: 549px) 100vw, 549px" /></figure></div>


<p>For starters, all I&#8217;m populating is the name (VICE 64) and the location to x64sc.exe (The VICE C64 binary)</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="564" height="111" src="https://krystof.io/wp-content/uploads/2022/08/image-4-edited.png" alt="" class="wp-image-1932" srcset="https://krystof.io/wp-content/uploads/2022/08/image-4-edited.png 564w, https://krystof.io/wp-content/uploads/2022/08/image-4-edited-300x59.png 300w" sizes="(max-width: 564px) 100vw, 564px" /></figure></div>


<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="732" height="176" src="https://krystof.io/wp-content/uploads/2022/08/image-6.png" alt="" class="wp-image-1934" srcset="https://krystof.io/wp-content/uploads/2022/08/image-6.png 732w, https://krystof.io/wp-content/uploads/2022/08/image-6-300x72.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-6-585x141.png 585w" sizes="(max-width: 732px) 100vw, 732px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="733" height="129" src="https://krystof.io/wp-content/uploads/2022/08/image-7.png" alt="" class="wp-image-1935" srcset="https://krystof.io/wp-content/uploads/2022/08/image-7.png 733w, https://krystof.io/wp-content/uploads/2022/08/image-7-300x53.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-7-585x103.png 585w" sizes="(max-width: 733px) 100vw, 733px" /></figure>



<p>I let it populate all the checkboxes for both LaunchBox and EMU Movies.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-8.png" alt="" class="wp-image-1936" width="548" height="410" srcset="https://krystof.io/wp-content/uploads/2022/08/image-8.png 731w, https://krystof.io/wp-content/uploads/2022/08/image-8-300x224.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-8-585x437.png 585w" sizes="(max-width: 548px) 100vw, 548px" /></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-9.png" alt="" class="wp-image-1937" width="543" height="403" srcset="https://krystof.io/wp-content/uploads/2022/08/image-9.png 724w, https://krystof.io/wp-content/uploads/2022/08/image-9-300x223.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-9-585x434.png 585w" sizes="(max-width: 543px) 100vw, 543px" /></figure></div>


<p>I leave these options as default:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="549" height="309" src="https://krystof.io/wp-content/uploads/2022/08/image-10.png" alt="" class="wp-image-1938" srcset="https://krystof.io/wp-content/uploads/2022/08/image-10.png 549w, https://krystof.io/wp-content/uploads/2022/08/image-10-300x169.png 300w" sizes="(max-width: 549px) 100vw, 549px" /></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="722" height="204" src="https://krystof.io/wp-content/uploads/2022/08/image-11.png" alt="" class="wp-image-1939" srcset="https://krystof.io/wp-content/uploads/2022/08/image-11.png 722w, https://krystof.io/wp-content/uploads/2022/08/image-11-300x85.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-11-585x165.png 585w" sizes="(max-width: 722px) 100vw, 722px" /></figure></div>


<p>After searching the online databases for media, I now show Bruce Lee in my LaunchBox main view:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="628" height="420" src="https://krystof.io/wp-content/uploads/2022/08/image-12.png" alt="" class="wp-image-1940" srcset="https://krystof.io/wp-content/uploads/2022/08/image-12.png 628w, https://krystof.io/wp-content/uploads/2022/08/image-12-300x201.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-12-585x391.png 585w, https://krystof.io/wp-content/uploads/2022/08/image-12-263x175.png 263w" sizes="(max-width: 628px) 100vw, 628px" /></figure></div>


<h2 class="wp-block-heading">Testing the first game &#8211; Failure and Fix</h2>



<p>Double clicking on Bruce Lee does&#8230; nothing.  I see nothing.  I got nothing.  What gives?</p>



<p>I decide to launch the emulator directly (x64sc.exe in the VICE directory) and it worked fine:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-13.png" alt="" class="wp-image-1943" width="338" height="272" srcset="https://krystof.io/wp-content/uploads/2022/08/image-13.png 676w, https://krystof.io/wp-content/uploads/2022/08/image-13-300x241.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-13-585x470.png 585w" sizes="(max-width: 338px) 100vw, 338px" /></figure></div>


<p>I then decided to load the G64 image directly through VICE, bypassing LaunchBox.  Result:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-14.png" alt="" class="wp-image-1944" width="336" height="268" srcset="https://krystof.io/wp-content/uploads/2022/08/image-14.png 671w, https://krystof.io/wp-content/uploads/2022/08/image-14-300x239.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-14-585x466.png 585w" sizes="(max-width: 336px) 100vw, 336px" /></figure></div>


<p>Okay.  So now I now there&#8217;s something up with LaunchBox dealing with VICE.  I&#8217;m actually used to loading VICE first on my RetroPie and loading the image directly.  So this means I&#8217;ve got a command line argument issue.  Turns out LaunchBox tried to force my hand with RetroArch even though I wanted to configure the emulator manually!</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="288" height="224" src="https://krystof.io/wp-content/uploads/2022/08/image-16.png" alt="" class="wp-image-1946"/><figcaption>I didn&#8217;t ask for this, and I don&#8217;t want it.  It also pre populated entries in the &#8216;Associated Platforms&#8217; screen which causes it to think it needs a -f parameter and a RetroArch core.  </figcaption></figure></div>


<p>Perhaps I should have set the emulator up first, but if you run into this, you&#8217;ll see in your emulator config under &#8216;associated platforms&#8217; a WIDE list of items, and they also populate well known RetroArch cores.  </p>



<p>I missed the little &#8216;pop up&#8217; that stated it populated RetroArch for me.  I wish it hadn&#8217;t done that, it caused me a small headache.  So I went back into my VICE config and wiped out ALL of the associated platforms, left that tab, went back to an empty one (so it doesn&#8217;t show the RetroArch core column), and added one entry for Commodore 64 like so:</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="143" src="https://krystof.io/wp-content/uploads/2022/08/image-15-1024x143.png" alt="" class="wp-image-1945" srcset="https://krystof.io/wp-content/uploads/2022/08/image-15-1024x143.png 1024w, https://krystof.io/wp-content/uploads/2022/08/image-15-300x42.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-15-768x108.png 768w, https://krystof.io/wp-content/uploads/2022/08/image-15-585x82.png 585w, https://krystof.io/wp-content/uploads/2022/08/image-15.png 1164w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>After that, VICE finally launched from LaunchBox properly:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/image-17.png" alt="" class="wp-image-1947" width="669" height="514" srcset="https://krystof.io/wp-content/uploads/2022/08/image-17.png 669w, https://krystof.io/wp-content/uploads/2022/08/image-17-300x230.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-17-585x449.png 585w" sizes="(max-width: 669px) 100vw, 669px" /><figcaption>Finally!</figcaption></figure></div>


<h2 class="wp-block-heading">Configuring VICE on Windows</h2>



<p>Great, now we know we can launch at least one game from LaunchBox using VICE.  Now I need to configure it to my tastes.  First off, it&#8217;s a tiny window in the center of the screen, and not full screen.  There are plenty of other things I like to configure for VICE, and here is where I&#8217;ll record those &#8216;default&#8217; settings I immediately set into the VICE configuration when I first install VICE.  I may tweak this over time but the settings below are my current reference settings of choice.</p>



<p>First off, VICE by default is storing it&#8217;s settings in C:\Users\&lt;userid&gt;\AppData\Roaming\vice.  Underneath there is a sdl-vice.ini after saving the first time and vice.log for any interesting execution log statements.  Good to know.</p>



<p>Side note: Try out wireless gamepads for the PC (Like XBOX controllers).  Luna loves chewing cables.</p>



<p>Here are the highlights for my VICE 3.61 Windows SDL version&#8217;s settings that deviate from the known defaults.</p>



<ul><li>SDL audio instead of WMM &#8211; Things sounded horrendous otherwise.</li><li>NTSC Mode vs Pal- I had NTSC, but sometimes images I have require PAL.  So I set up both</li><li>I set the VICE snapshots directory to the Snapshots directory I created underneath my C64 LaunchBox game folder for easier visibility.</li><li>I set the drive sound emulation to 1.  It&#8217;s just music to my ears.</li><li>Joystick &#8211; I set by default, Joystick 2 to my game controller (a generic gamepad), and Joystick 1 to the numeric keypad.  VICE by default sets my A button to Joystick firing, B button to bring up the VICE menu.  I manually set the Y button to toggle WARP speed on and off, and the X button to &#8216;swap&#8217; the Joystick ports.  I also set the left trigger to the &#8216;Load snapshot&#8217; menu, and the right trigger to &#8216;Save snapshot&#8217; menu.</li></ul>



<p>What I ended up doing was creating two emulator profiles &#8211; one for NTSC and one for PAL.  The two config files allow me to tweak the two &#8216;versions&#8217; of C64 emulation differently, and sometimes I just need to do that for some games.</p>



<p>VICE 64 &#8211; NTSC setup example (points to NTSC config)</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="648" height="200" src="https://krystof.io/wp-content/uploads/2022/08/image-23.png" alt="" class="wp-image-1978" srcset="https://krystof.io/wp-content/uploads/2022/08/image-23.png 648w, https://krystof.io/wp-content/uploads/2022/08/image-23-300x93.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-23-585x181.png 585w" sizes="(max-width: 648px) 100vw, 648px" /></figure>



<p>VICE 64 PAL &#8211; PAL setup example (points to PAL config)</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="619" height="205" src="https://krystof.io/wp-content/uploads/2022/08/image-22.png" alt="" class="wp-image-1977" srcset="https://krystof.io/wp-content/uploads/2022/08/image-22.png 619w, https://krystof.io/wp-content/uploads/2022/08/image-22-300x99.png 300w, https://krystof.io/wp-content/uploads/2022/08/image-22-585x194.png 585w" sizes="(max-width: 619px) 100vw, 619px" /></figure>



<p>Current reference settings:</p>



<p><strong>sdl-vice-ntsc.ini:</strong></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#91;C64SC]
SDLStatusbar=1
SoundDeviceName=&quot;sdl&quot;
VirtualDevice1=1
MachineVideoStandard=2
IECReset=1
CIA1Model=0
CIA2Model=0
KernalRev=-1
VICIIFullscreen=1
VICIIModel=3
SidModel=0
JoyPort10Device=0
JoyPort9Device=0
JoyPort8Device=0
JoyPort7Device=0
JoyPort6Device=0
JoyPort5Device=0
JoyPort4Device=0
JoyPort3Device=0
JoyDevice1=4
EventSnapshotDir=&quot;D:\LaunchBox\Games\Commodore 64\Snapshots\&quot;
GlueLogic=0
DriveSoundEmulation=1

</pre></div>


<p><strong>sdl-vice-pal.ini:</strong></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#91;C64SC]
SDLStatusbar=1
SoundDeviceName=&quot;sdl&quot;
VirtualDevice1=1
IECReset=1
CIA1Model=0
CIA2Model=0
KernalRev=-1
VICIIFullscreen=1
VICIIModel=0
SidModel=0
JoyPort10Device=0
JoyPort9Device=0
JoyPort8Device=0
JoyPort7Device=0
JoyPort6Device=0
JoyPort5Device=0
JoyPort4Device=0
JoyPort3Device=0
JoyDevice1=4
EventSnapshotDir=&quot;D:\LaunchBox\Games\Commodore 64\Snapshots\&quot;
GlueLogic=0
DriveSoundEmulation=1

</pre></div>


<p>LaunchBox specific settings:</p>



<p>Command line parameters:</p>



<ul><li>-chdir &#8220;D:\LaunchBox\Games\Commodore 64&#8221;  (Sets the autostart image directory to our games folder)</li></ul>



<h2 class="wp-block-heading">Game Specific Settings</h2>



<p>Game specific tweaks and oddities</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Game</strong></td><td><strong>Command Line</strong></td></tr><tr><td>Jingle Disks</td><td>Couldn&#8217;t fix this with command line alone.  Must manually Load &#8220;Jingle&#8221;,8,1 and go from there.</td></tr></tbody></table></figure>
<p>The post <a rel="nofollow" href="https://krystof.io/retro-gaming-pc-build-log-part-2-commodore-64/">Retro Gaming PC Build Log Part 2 : Commodore 64</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://krystof.io/retro-gaming-pc-build-log-part-2-commodore-64/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<series:name><![CDATA[Retro Gaming PC Build Log]]></series:name>
	</item>
		<item>
		<title>Retro Gaming PC Build Log Part 1 : Host PC and Front End</title>
		<link>https://krystof.io/retro-gaming-pc-build-log-part-1-host-pc-and-front-end/</link>
					<comments>https://krystof.io/retro-gaming-pc-build-log-part-1-host-pc-and-front-end/#respond</comments>
		
		<dc:creator><![CDATA[Eric R. Krystof]]></dc:creator>
		<pubDate>Sun, 14 Aug 2022 18:10:49 +0000</pubDate>
				<category><![CDATA[Retro Gaming]]></category>
		<category><![CDATA[MS-DOS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[GOG]]></category>
		<category><![CDATA[Build Log]]></category>
		<category><![CDATA[Emulation]]></category>
		<category><![CDATA[Featured]]></category>
		<guid isPermaLink="false">https://krystof.io/?p=1841</guid>

					<description><![CDATA[<p>A fresh install of Windows and software for emulating and playing old installs from my software collection and third parties like Steam and GOG</p>
<p>The post <a rel="nofollow" href="https://krystof.io/retro-gaming-pc-build-log-part-1-host-pc-and-front-end/">Retro Gaming PC Build Log Part 1 : Host PC and Front End</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="post-modified-info">Last Updated on August 14, 2022.</p>
<h2 class="wp-block-heading" id="h-the-goal">The Goal</h2>



<p>It seems when I&#8217;m able to come anywhere near close to dusting off some retro gaming work, I boot up whatever RetroPie or Windows based system I&#8217;ve set up for some retro gaming years back and can&#8217;t for the life of me remember how I set things up from either a taxonomy standpoint, controller setup, emulator configurations, and more.  I&#8217;m using these build logs to document my thought processes at the time and &#8216;Figure it out&#8217;.</p>



<h2 class="wp-block-heading" id="h-the-hardware">The Hardware</h2>



<p>Now, I&#8217;m not a retro gaming purist.  I&#8217;m at best <em>retro gaming purist adjacent.</em>  This means I love playing games on the older hardware, but with limited space, I can&#8217;t set up <em>all the things.</em>  I can set up some retro systems here and there, but I can&#8217;t set up everything in one big retro corner.  I&#8217;ve taken up enough corners in this house with my hobbies.  In fact, I&#8217;m fresh out of corners.  So, I&#8217;m going to emulate quite a bit, whether it&#8217;s Stella for the Atari 2600 or DOSBOX for Ultima Underworld.  I very much enjoy playing games on the original hardware when I can &#8211; but when it comes to easily streaming live content or looking up videos and articles about the game, it is very much easier to do it on a PC running emulation software.  Plus, I get to compare how the emulators compare to the real deal at my leisure. </p>



<p>Most of the time you don&#8217;t need a fancy machine to emulate old retro games &#8211; look at <a href="https://retropie.org.uk" target="_blank" rel="noreferrer noopener">RetroPie </a>for example.  You can emulate a metric crap ton of games on a Raspberry Pi.  The machine I chose is a bit beefier than I would need, but that&#8217;s because it&#8217;s available to me.  Why not a Pi?  I have a lot of DOS and Windows games as part of my &#8216;<a href="https://krystof.io/bucket-list/">Bucket List</a>&#8216; which rules out the Pi right quick &#8211; the Pi is great for certain computer and console emulation, but starts to have some issues in retro libraries of later eras (like Windows 9X games).  Plus, some of those may require some video acceleration &#8211; and for that I&#8217;ve an NVIDIA card to take care of the heavy lifting.  It&#8217;s not for the latest and greatest, but it will do for the oldest and greatest just fine.</p>



<p>It&#8217;s a 2018 ASUS GR8 II-6GT024Z VR Ready Mini PC Gaming Desktop with Intel Core i7-7700 and GeForce GTX 1060 6G Video Card.  All things considered it&#8217;s a powerhouse when it comes to what I need for retro gaming, even if it&#8217;s not available for purchase anymore and won&#8217;t be supported by Windows 11.</p>



<div class="wp-block-group is-layout-flow"><div class="wp-block-group__inner-container">
<div class="wp-block-columns is-layout-flex wp-container-3">
<div class="wp-block-column is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2022/08/asus-retro-machine.jpg" alt="" class="wp-image-1858" width="255" height="440" srcset="https://krystof.io/wp-content/uploads/2022/08/asus-retro-machine.jpg 509w, https://krystof.io/wp-content/uploads/2022/08/asus-retro-machine-174x300.jpg 174w" sizes="(max-width: 255px) 100vw, 255px" /><figcaption>I&#8217;ll run your Windows 10, pal, but that&#8217;s about it.  My dial doesn&#8217;t go to 11.</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow">
<p>Here are the basic specs:</p>



<figure class="wp-block-table"><table><tbody><tr><th>Processor</th><td>‎4.2 GHz core_i7</td></tr><tr><th>RAM</th><td>‎16 GB DDR4</td></tr><tr><th>Hard Drive</th><td>‎1 TB SSD</td></tr><tr><th>Graphics Coprocessor</th><td>‎NVIDIA GeForce GTX 1060</td></tr><tr><th>Chipset Brand</th><td>‎NVIDIA</td></tr><tr><th>Card Description</th><td>‎Dedicated</td></tr><tr><th>Graphics Card Ram Size</th><td>‎6 GB</td></tr><tr><th>Wireless Type</th><td>‎802.11ab</td></tr><tr><th>Number of USB 3.0 Ports</th><td>‎4</td></tr></tbody></table></figure>
</div>
</div>
</div></div>



<p class="has-text-align-left">So, while I type this, I&#8217;m performing that fresh Windows 10 install to start from scratch and begin the documentation process.  While we wait for that, let&#8217;s talk about the <strong>primary</strong> front end I&#8217;ll be using.</p>



<h2 class="wp-block-heading">Don&#8217;t forget to pack your LaunchBox</h2>



<p>I&#8217;ve tried a few front ends over the years, and most of the time they&#8217;re targeting specific emulating systems (MAME for example, has plenty of front ends, but that&#8217;s assuming you&#8217;re primarily dealing with MAME things).  I really adored HyperSpin in the mid 2010s, but I haven&#8217;t checked it out lately.  I think I&#8217;ll still use HyperSpin for a dedicated MAME cabinet (Project Pedestal), but I&#8217;m not considering it for this round.</p>



<p>I played around with LaunchBox quite a few years ago when it was in the early years, and I&#8217;ve been enjoying seeing the updates and enhancements (like BigBox) since then.  With the inherent support for multiple platforms and the capability for me to examine the datafiles (they&#8217;re stored in XML files inside the LaunchBox directory) easily, I can use LaunchBox to store configurations for the various games and I can also export that data to my &#8216;<a href="https://krystof.io/bucket-list/">Bucket List</a>&#8216; database, and from there I can auto populate my Twitch stream with box art, game metadata, and my personal high scores and playtime.  </p>



<p>I also wanted to be able to have some custom data points, which LaunchBox supports.  For example:</p>



<ul><li>Series Index &#8211; I use a field I call Series Index to indicate what order I should play a game when it&#8217;s part of a series.  Sometimes the titles aren&#8217;t an indicator (looking at you, GoldBox RPGs), and while I could use release date, I liked having a dedicated data-point.</li><li>Port Indicator &#8211; I don&#8217;t do this for all the games, but for some where I want to try out different versions, like say &#8216;BurgerTime&#8217; on Atari 2600, Intellivision, Commodore 64, etc. &#8211; I use this to link together individual game/platform combinations together.</li></ul>



<p>LaunchBox also has created a database to pull a lot of metadata down for recognized games, along with <a href="https://emumovies.com" target="_blank" rel="noreferrer noopener">EmuMovies </a>integration for video and additional art.  We can also pull down manuals, which is a big help so I don&#8217;t have to find the ASCII text files or open my game boxes up needlessly.  </p>



<p>So, I head over to the <a href="https://www.launchbox-app.com" target="_blank" rel="noreferrer noopener">LaunchBox </a>site, purchased a lifetime license, and went to work on the install.  You can of course install the free version, but I purchased it a looooong time ago, so I&#8217;m going to use my permanent license.</p>



<p>I&#8217;m leaving some hard drive space for the OS, but most of my stuff will be installed on a D: drive so I can keep some parts separated from the main OS.  We&#8217;ll see how well that works &#8211; ideally nothing should FORCE me to stay on the C: drive but you never know.  Personal preference, really &#8211; I could do all this on C: if I really wanted to.</p>



<p>After launching LaunchBox, I attached my GOG profile and my EmuMovies account subscription for future game and metadata downloads.</p>



<p>That&#8217;s it for this round.  Next chapters will probably be platform specific as I set up emulators and related utilities.</p>
<p>The post <a rel="nofollow" href="https://krystof.io/retro-gaming-pc-build-log-part-1-host-pc-and-front-end/">Retro Gaming PC Build Log Part 1 : Host PC and Front End</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://krystof.io/retro-gaming-pc-build-log-part-1-host-pc-and-front-end/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<series:name><![CDATA[Retro Gaming PC Build Log]]></series:name>
	</item>
	</channel>
</rss>
