<?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/"
	>

<channel>
	<title>UNROM &#8211; Set Side B</title>
	<atom:link href="https://setsideb.com/tag/unrom/feed/" rel="self" type="application/rss+xml" />
	<link>https://setsideb.com</link>
	<description>The Flipside of Gaming</description>
	<lastBuildDate>Thu, 26 Sep 2024 05:45:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://setsideb.com/wp-content/uploads/2022/04/cropped-mascot512-32x32.png</url>
	<title>UNROM &#8211; Set Side B</title>
	<link>https://setsideb.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Nicole Express on Twin Famicom Compatibility with Guardic Gaiden</title>
		<link>https://setsideb.com/nicole-express-on-twin-famicom-compatibility-with-guardic-gaiden-the-guardian-legend/</link>
		
		<dc:creator><![CDATA[rodneylives]]></dc:creator>
		<pubDate>Thu, 26 Sep 2024 14:00:00 +0000</pubDate>
				<category><![CDATA[retro]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[DisplayHacks]]></category>
		<category><![CDATA[famicom]]></category>
		<category><![CDATA[guardianlegend]]></category>
		<category><![CDATA[GuardicGaiden]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[nes]]></category>
		<category><![CDATA[nicoleexpress]]></category>
		<category><![CDATA[ProgrammingMadness]]></category>
		<category><![CDATA[UNROM]]></category>
		<guid isPermaLink="false">https://setsideb.com/?p=8357</guid>

					<description><![CDATA[Nicole Express is so knowledgable. How many blog posts have you seen about an obscure hardware issue, itself with obscure hardware, and the Japanese version of one specific cult game? Which the writer tested herself with her own unit and cartridge? Then went in to investigate herself with a freaking multimeter? Whaaa? I won&#8217;t keep &#8230; <a href="https://setsideb.com/nicole-express-on-twin-famicom-compatibility-with-guardic-gaiden-the-guardian-legend/" class="more-link">Continue reading<span class="screen-reader-text"> "Nicole Express on Twin Famicom Compatibility with Guardic Gaiden"</span></a>]]></description>
										<content:encoded><![CDATA[
<p>Nicole Express is <em>so knowledgable</em>. How many blog posts have you seen about an obscure hardware issue, itself with obscure hardware, and the Japanese version of one specific cult game? Which the writer tested herself with her own unit and cartridge? Then went in to investigate herself with a freaking multimeter? Whaaa?</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="850" height="423" src="https://setsideb.com/wp-content/uploads/2024/09/image-17.png" alt="" class="wp-image-8359" srcset="https://setsideb.com/wp-content/uploads/2024/09/image-17.png 850w, https://setsideb.com/wp-content/uploads/2024/09/image-17-300x149.png 300w, https://setsideb.com/wp-content/uploads/2024/09/image-17-768x382.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption class="wp-element-caption">Nicole&#8217;s two Twin Famicoms</figcaption></figure>



<p>I won&#8217;t keep you waiting for the link: <a href="https://nicole.express/2024/twin-famicom-destroyed-with-guardic-and-irq.html">here it is</a>. And here is my grossly simplified summary, intended to inspire you to go to the original article, if you have the time, and get all the deets.</p>



<p>Guardic Gaiden, known in the US as The Guardian Legend, uses a weird trick to put its status bar at the bottom of the screen, instead of, as usually seen in an UNROM game, at the top. To create a fixed status window requires stopping whatever the processor is doing at a very precise time while the display is being drawn to the TV, and then changing some PPU registers to display the status.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="511" height="448" src="https://setsideb.com/wp-content/uploads/2024/09/image-18.png" alt="" class="wp-image-8360" srcset="https://setsideb.com/wp-content/uploads/2024/09/image-18.png 511w, https://setsideb.com/wp-content/uploads/2024/09/image-18-300x263.png 300w" sizes="(max-width: 511px) 85vw, 511px" /><figcaption class="wp-element-caption">Guardic Gaiden&#8217;s title screen</figcaption></figure>
</div>


<p>More complex and versatile mappers, like the MMC family, have the ability to trigger interrupts at specific screen lines, but Guardic Gaiden/Guardian Legend doesn&#8217;t use an MMC. It doesn&#8217;t even have a raster line counter, so the game simply doesn&#8217;t know where on screen the raster beam is drawing.</p>



<p>There are still lots of games on the system that have status windows, even with MMC chips. The PPU has a built-in feature called Sprite 0 Hit, where the chip can signal when Sprite 0 (of the system&#8217;s 64 sprites) is being drawn on top of non-transparent background data. So what older games commonly do is put Sprite 0 in an unobtrusive place at the bottom of the status window at the top of the screen. When the Sprite 0 Hit register indicates a collision, the code knows it&#8217;s time to set up the PPU to display the main portion of the game screen.</p>



<p>There is a really big problem with this setup, though. Sprite 0 Hit doesn&#8217;t trigger an interrupt. It doesn&#8217;t stop the code to let it switch the graphics. It&#8217;s not even proper to say it &#8220;sends a signal.&#8221; It&#8217;s up to the code to <em>check</em> if Sprite 0 Hit has been triggered. If it has, then it&#8217;s time to set the scroll register to the right place, and maybe switch to the proper background tileset, and do whatever else needs to happen, and the code can then be off to run essential game logic, the actual game part of the game.</p>



<p>If it hasn&#8217;t&#8230; then, the code has to check again, and <em>immediately</em>. And if it hasn&#8217;t triggered then, to do it again. It has to literally check as quickly as it can, because if it delays in its check, the game screen might not get set up at the right moment, which will be perceptible as the bar straying down one extra line that one frame. Not the end of the world, but it looks glitchy. And this code will be running every frame, so if it strays down once, it might do it again, which is a more perceptible glitchiness.</p>



<p>Sprite 0 is set to trigger its hit at the top of the screen, because the code won&#8217;t have to spin its wheels checking the hit over and over. It wastes time, but not that much. This is why UNROM games put their status lines, with the score, timer, health bar and life counters, at the top of the screen.</p>



<p>Well, The Guardian Legend is an UNROM game, and maybe because creators Compile wanted to show off, they decided they&#8217;d put the bar at the bottom of the screen. And yet, their game doesn&#8217;t waste most of each frame just in maintaining the status bar.</p>



<p>How? And what does that have to do with the Twin Famicom? For that I&#8217;m going to direct you to Nicole Express&#8217; blog post. May you find it as fascinating as I did!</p>



<p><a href="https://nicole.express/2024/twin-famicom-destroyed-with-guardic-and-irq.html">Nicole Express: Is the Twin Famicom Flawed? The Case of Guardic Gaiden</a></p>



<p></p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='rodneylives' src='https://secure.gravatar.com/avatar/cb688ada8b517e838b06bdbcddb8d1ea3dd56de2e66848938e8c6568002a4fa9?s=100&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/cb688ada8b517e838b06bdbcddb8d1ea3dd56de2e66848938e8c6568002a4fa9?s=200&#038;d=mm&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a href="https://setsideb.com/author/rodneylives/" class="vcard author" rel="author"><span class="fn">rodneylives</span></a></div><div class="saboxplugin-desc"><div itemprop="description"></div></div><div class="clearfix"></div><div class="saboxplugin-socials "><a title="Twitter" target="_self" href="https://twitter.com/rodneylives" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path d="M26.37,26l-8.795-12.822l0.015,0.012L25.52,4h-2.65l-6.46,7.48L11.28,4H4.33l8.211,11.971L12.54,15.97L3.88,26h2.65 l7.182-8.322L19.42,26H26.37z M10.23,6l12.34,18h-2.1L8.12,6H10.23z" /></svg></span></a><a title="Instagram" target="_self" href="https://www.instagram.com/rodneysnotdead/" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-instagram" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></span></a><a title="Html5" target="_self" href="https://www.metafilter.com/user/23306" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-html5" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"></path></svg></span></a><a title="Mastodont" target="_self" href="https://cybre.space/@rodneylives" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-mastodont" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 417 512"><path fill="currentColor" d="M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"></path></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
