<?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>Robert Hurst &#187; VIC20</title>
	<atom:link href="http://robert.hurst-ri.us/tag/vic20/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.hurst-ri.us</link>
	<description>The life &#38; times of an information systems engineer</description>
	<lastBuildDate>Thu, 02 Sep 2010 20:03:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Atarileaf&#8217;s Video Review</title>
		<link>http://robert.hurst-ri.us/2010/07/23/atarileafs-video-review/</link>
		<comments>http://robert.hurst-ri.us/2010/07/23/atarileafs-video-review/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 12:08:01 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=753</guid>
		<description><![CDATA[I ran across this avid YouTube poster and retro gamer fan from Canada who was showcasing his latest find in Omega Race on the VIC 20.  Great video review, so after a few emails exchanged, I shipped a couple of cassette tapes housing my homebrew video games in Berzerk MMX, Omega Fury, and Quikman+.  Watch [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across this <a title="Atarileaf" href="http://www.youtube.com/user/atarileaf" target="_blank">avid YouTube poster</a> and retro gamer fan from Canada who was showcasing his latest find in <a href="http://www.youtube.com/user/atarileaf#p/u/15/SrjwTJ3O5KM" target="_blank">Omega Race</a> on the VIC 20.  Great video review, so after a few emails exchanged, I shipped a couple of cassette tapes housing my homebrew video games in Berzerk MMX, Omega Fury, and Quikman+.  Watch and listen to what he has to say:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/h-1ivobMp7s" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/h-1ivobMp7s"></embed></object></p>
<p>Cool.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/07/23/atarileafs-video-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New High Score!</title>
		<link>http://robert.hurst-ri.us/2010/07/01/new-high-score/</link>
		<comments>http://robert.hurst-ri.us/2010/07/01/new-high-score/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 01:30:15 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=736</guid>
		<description><![CDATA[Yes, it is a rare treat to surpass my typical game-playing abilities, and today I set a personal best score at my Quikman video game.  I think it helped playing it on a real VIC 20, too, although it really should not matter.  Perhaps there is old muscle memory kicking in from squeezing the bat-handled [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, it is a rare treat to <a title="Quik Death" href="http://robert.hurst-ri.us/2009/01/01/quik-death/" target="_blank">surpass</a> my typical game-playing abilities, and today I set a personal best score at my <a title="Quikman+8k" href="http://robert.hurst-ri.us/2009/09/22/quikman-8k/" target="_blank">Quikman</a> video game.  I think it helped playing it on a real VIC 20, too, although it really should not matter.  Perhaps there is old muscle memory kicking in from squeezing the bat-handled joystick.  Or, maybe it is the smoother animation that can only come from a 13&#8243; phosphor screen, flickering away at 60hz.  Regardless, I will be extremely challenged to make it back to the 3rd key level, as shown from this camera-phone picture:</p>
<p style="text-align: center;">
<div id="attachment_738" class="wp-caption aligncenter" style="width: 370px"><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/07/quikman-hiscore.jpg"><img class="size-medium wp-image-738 " title="Quikman hi-score" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/07/quikman-hiscore-360x480.jpg" alt="VIC 20 screenshot" width="360" height="480" /></a><p class="wp-caption-text">VIC 20 screenshot</p></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/07/01/new-high-score/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running VICE</title>
		<link>http://robert.hurst-ri.us/2010/03/13/running-vice/</link>
		<comments>http://robert.hurst-ri.us/2010/03/13/running-vice/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 19:37:51 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[C64]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=425</guid>
		<description><![CDATA[VICE is a conglomerate of Commodore 8-bit emulators.  For the inexperienced user looking to do some retro-gaming from those wildly popular machines from the late &#8217;70s and throughout the &#8217;80s, it can be a daunting and frustrating task to operate those &#8220;friendly&#8221; computers.  Particularly because you had varying-sized game cartridges, floppy software, cassette software, and [...]]]></description>
			<content:encoded><![CDATA[<p>VICE is a conglomerate of Commodore 8-bit emulators.  For the inexperienced user looking to do some retro-gaming from those wildly popular machines from the late &#8217;70s and throughout the &#8217;80s, it can be a daunting and frustrating task to operate those &#8220;friendly&#8221; computers.  Particularly because you had varying-sized game cartridges, floppy software, cassette software, and a ranging mix of memory expansions that can cause the most grief in booting up an old game.</p>
<p>Fear not, it&#8217;s <a title="Listen to Boray's music" href="http://listen.to/boray" target="_blank">Boray</a> to the rescue!  He provides <a title="PRG Starter" href="http://user.tninet.se/~jad615g/prgstarter/" target="_blank">a nice link</a> to a Windows utility, <strong>PRG Starter</strong>, that will deter those PRG loading blues &#8212; particularly for PET, VIC 20, and C64 BASIC programs &#8212; although there is quite a bit of logic for the more esoteric program loads, too, and for the other VICE emulated machines.</p>
<p>After permission to examine his source code, I decided I could use a simply elegant utility such as this for my Fedora desktop &#8212; after all, like Windows, GNOME offers the same customized launching feature via an associated filetype extension.  You can find the <a title="run.zip" href="http://robert.hurst-ri.us/files/linux/run.zip" target="_blank">C source archive</a> to the simple launcher dubbed <strong>run</strong>.</p>
<p>After associating filetypes, such as .prg, p00, .a0, .crt, .d64, .g64, and .rom, to launch a customized command, <strong>run</strong>, you simply double-click the Commodore 8-bit binary file and it will run the correct VICE emulator with any associated command-line options, such as memory expansion, attach as a cartridge, or boot from a floppy or tape.</p>
<p>You can even do this from the command-line.  Here are some examples (with the verbose option on):</p>
<p>$ <strong>run -v quikman2k8.prg</strong><br />
**** Commodore VIC 20 ML program ****<br />
xvic -memory none &#8220;quikman2k8.prg&#8221;</p>
<p>$ <strong>run -v berzerk-mmx+.prg </strong><br />
**** Commodore VIC 20 ML program with 16kb memory expansion ****<br />
xvic -memory all &#8220;berzerk-mmx+.prg&#8221;</p>
<p>$ <strong>run -v Super\ Zaxxon.crt</strong><br />
**** Commodore 64 game cartridge ****<br />
x64 -cartcrt &#8220;Super Zaxxon.crt&#8221;</p>
<p>And of course my favorite:</p>
<p>$ <strong>run -v mega-cart.rom</strong><br />
**** Commodore VIC 20 with Mega-Cart ****<br />
xvic -cartmega &#8220;mega-cart.rom&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/03/13/running-vice/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Berzerk MMX</title>
		<link>http://robert.hurst-ri.us/2010/03/05/berzerk-mmx/</link>
		<comments>http://robert.hurst-ri.us/2010/03/05/berzerk-mmx/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 12:32:56 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=418</guid>
		<description><![CDATA[Today, I release another arcade classic clone for the venerable Commodore VIC 20.  This time it is based on the 1980 Stern hit, Berzerk.  It did not take a span of 24-years to complete like Quikman possessed me, just a mere couple of months between commuter rail rides and some weekend tinkering.  Still, it came [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://robert.hurst-ri.us/images/berzerk-mmx-large1.jpg" target="_blank"><img title="Startup screenshot" src="/images/berzerk-mmx-small1.jpg" alt="Startup screenshot" width="200" height="135" align="right" /></a>Today, I release another <a title="berzerk-mmx.zip" href="http://robert.hurst-ri.us/files/vic20/berzerk-mmx/berzerk-mmx.zip">arcade classic clone</a> for the venerable Commodore VIC 20.  This time it is based on the 1980 Stern hit, <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Berzerk" target="_blank">Berzerk</a>.  It did not take a span of 24-years to complete like <a title="1984 revisited" href="http://robert.hurst-ri.us/2008/10/27/quikman-1984-revisited/" target="_blank">Quikman</a> possessed me, just a mere couple of months between commuter rail rides and some weekend tinkering.  Still, it came out pretty good because of my improved software sprite stack and floor generator.</p>
<p>And I got all of it to fit with only the minimal 8kb memory expansion required for those software sprites &#8212; with BASIC reporting only 1-byte free after LOAD.  Funny how that always makes me feel good.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/LUol3yWLvRo&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="360" src="http://www.youtube.com/v/LUol3yWLvRo&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object><br />
<a href="http://www.youtube.com/watch?v=LUol3yWLvRo">Berzerk MMX on VIC= 20</a></p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/03/05/berzerk-mmx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Old Trick for a New Game for an even Older Computer</title>
		<link>http://robert.hurst-ri.us/2010/02/17/an-old-trick-for-a-new-game-for-an-even-older-computer/</link>
		<comments>http://robert.hurst-ri.us/2010/02/17/an-old-trick-for-a-new-game-for-an-even-older-computer/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 15:05:55 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=411</guid>
		<description><![CDATA[During the Amiga heyday in the early 1990s, I wrote a standalone BBS program called &#8216;Hack &#38; Slash&#8217;.  It was a port from an Apple ][ BASIC program, but heavily customized and enhanced using C and &#8220;modern&#8221; telecommunications and protocols for color, graphics, and sound. I thought I was really clever at the time writing [...]]]></description>
			<content:encoded><![CDATA[<p>During the Amiga heyday in the early 1990s, I wrote a standalone BBS program called &#8216;Hack &amp; Slash&#8217;.  It was a port from an Apple ][ BASIC program, but heavily customized and enhanced using C and &#8220;modern&#8221; telecommunications and protocols for color, graphics, and sound.</p>
<p>I thought I was really clever at the time writing my random dungeon level generator &#8212; it was my first practical use outside of a classroom to implement a recursive function.  Because the dungeon &#8216;walls&#8217; were probability driven, a function was needed to validate that every &#8217;tile&#8217; in the arbitrarily-sized dungeon floor was accessible by the hero.  Without this kind of validation, the hero would eventually find himself &#8216;trapped&#8217; on a floor with no means to escape.</p>
<p>The recursive function was simply invoked as chkroom(0,0), whereas the 0,0 passed were parameters to the starting point in the dungeon map matrix.  Upon entering each tile, a flag is cleared for that element in the matrix.  Next, a condition is checked if the tile to its right is accessible.  If it is, call chkroom() with +1 added to X.  If not, do the same condition checks for down, left, and up directions calling chkroom() passing values Y+1, X-1, and Y-1 respectively.</p>
<p>And at the conclusion of all this recursion, do a loop through the dungeon matrix to check if ALL of the flags had been cleared.  If any persist, do the dungeon regeneration and this validation again until it has passed.  The higher the frequency of random walls generated increases the pattern complexity of the floor, which exponentially increases the probability that the floor will not pass with an &#8216;all clear&#8217;.</p>
<p>Today, I am working on a port of an old arcade favorite, <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Berzerk" target="_blank">Berzerk</a>, for the Commodore VIC 20.  The playfield for the game is a fixed 3-row by 5-column matrix for each floor.  Given that the game needs to be written using 8-bit assembler, I quickly dismissed the idea that using my C algorithm to validate a floor could be feasible.  After all, VIC 20 is a relic machine running at 1mHz and limited memory of only a few thousand bytes available for the program, graphics, and sound all the while using a 256-byte system stack.  Ah, but the challenge by it all . . .</p>
<p>Generating the random walls for each floor is a simple matter, but validating that all its &#8216;rooms&#8217; are accessible was turning out to be very problematic.  Every time I thought I could solve this puzzle using bit operators (OR, AND, XOR) to assure that its rooms and corridors could not trap the hero, I would only later stumble upon an instance where even my most elaborate of schemes failed.  This was getting a bit frustrating, pun intended.</p>
<p>So I wandered back to my dungeon floor validation and decided it was so simple of an algorithm that it may be possible to translate it to assembler and still keep it within reason of the machine&#8217;s constraints.  After some writing and whittling, the resulting code turned out perfect!  It is called by simply zero-ing the starting cell (R0) and invoking CRAWL.  Here is its listing:</p>
<pre>CRAWL:
  LDX R0
  LDA MAZE,X
  CMP #$80
  BCC @fini        ; been here?
  AND #$7F         ; clear accessible bit
  STA MAZE,X

@right:
  LSR
  BCS @down        ; right wall?
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  INC R0
  JSR CRAWL        ; explore right cell
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls

@down:
  LSR
  BCS @left        ; bottom wall?
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  CLC
  ADC #5
  STA R0
  JSR CRAWL        ; explore cell below
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls

@left:
  LSR
  BCS @up
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  DEC R0
  JSR CRAWL        ; explore left cell
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls

@up:
  LSR
  BCS @fini        ; top wall?
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  SEC
  SBC #5
  STA R0
  JSR CRAWL        ; explore cell above
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls
@fini:
  RTS</pre>
<p>This old dog is always happy to re-implement an old trick!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/02/17/an-old-trick-for-a-new-game-for-an-even-older-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCBM</title>
		<link>http://robert.hurst-ri.us/2010/01/03/opencbm/</link>
		<comments>http://robert.hurst-ri.us/2010/01/03/opencbm/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 18:24:43 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=385</guid>
		<description><![CDATA[With it freezing and snowing today, I decided to make use of the idle time by hooking up my pristine VIC-1541 floppy disk drive to my workstation and do some file archiving to real 5-1/4&#8243; media using OpenCBM under Linux. OpenCBM provides an API library and some useful command-line tools.  The following is an example [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00626.jpg"><img class="size-thumbnail wp-image-386" title="VIC-1541" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00626-112x150.jpg" alt="VIC-1541 on my PC workstation" width="112" height="150" align="right" /></a>With it freezing and snowing today, I decided to make use of the idle time by hooking up my pristine <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Commodore_1541" target="_blank">VIC-1541</a> floppy disk drive to <a title="Eightball Deluxe" href="http://robert.hurst-ri.us/2008/02/07/new-workstation/" target="_blank">my workstation</a> and do some file archiving to real 5-1/4&#8243; media using <a title="SourceForge" href="http://sourceforge.net/projects/opencbm/" target="_blank">OpenCBM</a> under Linux.</p>
<p>OpenCBM provides an API library and some useful command-line tools.  The following is an example of how to format and copy Commodore files to the floppy drive:</p>
<pre>$ <strong>sudo modprobe cbm</strong>

$ <strong>dmesg | tail</strong>
cbm_init: using passive (XM1541) cable (auto), irq 7
cbm: resetting devices
cbm: waiting for free bus...

$ <strong>cbmctrl detect</strong>
 8: 1540 or 1541 

$ <strong>cbmctrl command 8 "N0:VIC20 3-JAN-2010,10"</strong>
$ <strong>cbmctrl status 8</strong>
00, ok,00,00
$ <strong>cbmctrl dir 8</strong>
0 ."vic20 3-jan-2010" 10 2a
664 blocks free.
00, ok,00,00

$ <strong>cbmwrite 8 quikman+8k.prg</strong>
[Info] writing quikman+8k.prg -&gt; QUIKMAN+8K.PRG,P,W
[Info] identified a 1540 or 1541 drive
............-
[Info] 00, OK,00,00
$ <strong>cbmwrite 8 omega-fury.prg </strong>
[Info] writing omega-fury.prg -&gt; OMEGA-FURY.PRG,P,W
[Info] identified a 1540 or 1541 drive
....................\
[Info] 00, OK,00,00

$ <strong>cbmctrl dir 8</strong>
0 ."vic20 3-jan-2010" i1 2a
47   "quikman+8k.prg"   prg
76   "omega-fury.prg"   prg
541 blocks free.
00, ok,00,00</pre>
<p>Of course, I can now hook-up this drive to a real VIC 20 computer and play what&#8217;s on the diskette(s).  But for giggles, I can even use the Commodore 8-bit emulator, <a title="VICE Team" href="http://www.viceteam.org" target="_blank">VICE</a>, to test drive my floppies, for example:</p>
<pre>$ <strong>xvic -memory 8k -device8 2 +truedrive \
-keybuf 'LOAD "QUIKMAN+8K.PRG",8\0D'</strong>
...
sucessfully loaded libopencbm.so
/dev/cbm opened.
...</pre>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 394px"><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00627.jpg"><img class="size-medium wp-image-387  " title="VICE using real VIC-1541 floppy disk drive" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00627-640x480.jpg" alt="VICE" width="384" height="288" /></a><p class="wp-caption-text">VICE 2.2 on a 24&quot; HP display</p></div>
<p>Nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/01/03/opencbm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mega-Cart ROM dump</title>
		<link>http://robert.hurst-ri.us/2009/12/23/mega-cart-rom-dump/</link>
		<comments>http://robert.hurst-ri.us/2009/12/23/mega-cart-rom-dump/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 20:51:43 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=364</guid>
		<description><![CDATA[A clever programmer (Daniel) created this special tool for Mega-Cart that does appropriate bank-switching and dumps the memory blocks to an IEC-based device &#8212; such as a Commodore 1581 floppy at .5mb chunks or the full 2mb dump of the cartridge to a more modern uIEC/SD device.  There were some failure issues on every attempt, [...]]]></description>
			<content:encoded><![CDATA[<p>A clever programmer (Daniel) created this special tool for <a href="http://www.mega-cart.com" target="_blank">Mega-Cart</a> that does appropriate bank-switching and dumps the memory blocks to an IEC-based device &#8212; such as a Commodore 1581 floppy at .5mb chunks or the full 2mb dump of the cartridge to a more modern uIEC/SD device.  There were some failure issues on every attempt, but interestingly enough, I could get a complete dump if I slaved the uIEC/SD off of the Commodore drive instead of directly hooking it up to the VIC 20 &#8212; guessing that it made for more tolerance during its write-phase.  The programmer had no issues with his tool using a European PAL VIC, so perhaps the American NTSC version adds to the mystery.</p>
<p>Nevertheless, I am perfectly fine with a backup dump of my Mega-Cart, to be played using the new release of <a href="http://www.viceteam.org" target="_blank">VICE</a> 2.2 which supports the <a title="Mega-Cart ROM dump" href="http://robert.hurst-ri.us/files/vic20/mega-cart.rom">2mb image</a>, <a title="Mega-Cart NvRAM dump" href="http://robert.hurst-ri.us/files/vic20/mega-cart.nv">8kb NvRAM</a>, and all the appropriate bank-switching.  Cool!!</p>
<div id="attachment_365" class="wp-caption aligncenter" style="width: 438px"><a href="http://www.youtube.com/watch?v=HsveK_EH7eM" target="_blank"><img class="size-medium wp-image-365" title="VICE running Mega-Cart" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/12/vice-mega-cart.png" alt="VICE Mega-Cart" width="428" height="289" /></a><p class="wp-caption-text">VICE Mega-Cart</p></div>
<p><strong>xvic -cartmega mega-cart.rom -mcnvramwriteback -mcnvramfile mega-cart.nv</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2009/12/23/mega-cart-rom-dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Omega Fury</title>
		<link>http://robert.hurst-ri.us/2009/11/01/omega-fury-2/</link>
		<comments>http://robert.hurst-ri.us/2009/11/01/omega-fury-2/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 22:12:29 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=319</guid>
		<description><![CDATA[This past winter I envisioned making a sequel to the Bally-Midway arcade hit, Omega Race, and a favorite among many VIC 20 users when Commodore bought the licensing rights to make its home computer versions.  Three months later, I released a beta version of the fully playable game.  At the time, I did not think [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_324" class="wp-caption aligncenter" style="width: 426px"><a href="http://robert.hurst-ri.us/files/vic20/omega-fury/omega-fury.pdf" target="_blank"><img class="size-medium wp-image-324" title="Omega Fury" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/11/omega-fury1.png" alt="Opening screen title" width="416" height="253" /></a><p class="wp-caption-text">Opening screen title</p></div>
<p>This past winter I <a title="opening sequence" href="http://robert.hurst-ri.us/2009/02/27/omega-fury/" target="_blank">envisioned making a sequel</a> to the Bally-Midway arcade hit, <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Omega_Race" target="_blank">Omega Race</a>, and a favorite among many VIC 20 users when Commodore bought the licensing rights to make its home computer versions.  Three months later, I released a <a title="Omega Fury BETA" href="http://robert.hurst-ri.us/2009/05/30/omega-fury-beta/" target="_blank">beta version</a> of the fully playable game.  At the time, I did not think I would spend much more time with it, because it was so close to the game I thought it could be.</p>
<p>But there lies the problem &#8212; it was close.  Again, that feeling of an incomplete job, so after a nice break with the Summer days, I came back to this personal gaming project and began looking for ways to get it done.  Here is a list of changes made that brings the game to a new milestone:</p>
<ul>
<li>some core software sprite library optimizations for speed;</li>
<li>energy bolts fired from the Fury&#8217;s ship travel faster;</li>
<li>energy replenishment was increased to keep the pace of the action intense;</li>
<li>all Thargoid ships round their turns, rather than jerky N-S-E-W moves;</li>
<li>animations for Fury&#8217;s death and game over has been re-sequenced to incite the user to play again;</li>
<li>a new firing solution AI for Thargoid scouts and space carrier.</li>
<li>and of course, many bug fixes!</li>
</ul>
<p>I am pretty excited how these improvements and finishing touches have made the game more playable and more appealing.  It has a nice arcade feel to it with the progressive, intense action.</p>
<p>The binary and its source code for VIC 20 can be downloaded from my <a title="VIC 20 software downloads" href="http://robert.hurst-ri.us/files/vic20/" target="_blank">tribute page</a>. The current version can be played online <a title="Omega Fury for the VIC 20" href="http://robert.hurst-ri.us/retrocomputing/" target="_blank">here</a>.  And a demo of the game play can be watched <a title="Omega Fury for VIC 20" href="http://www.youtube.com/watch?v=7bX1uz-rQEk" target="_blank">here</a>.  Happy hunting!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2009/11/01/omega-fury-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quikman + 8k</title>
		<link>http://robert.hurst-ri.us/2009/09/22/quikman-8k/</link>
		<comments>http://robert.hurst-ri.us/2009/09/22/quikman-8k/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 23:07:18 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=295</guid>
		<description><![CDATA[Last year, I re-discovered a Pac-Man clone I wrote way back in 1984 for the Commodore VIC 20.  A month later, I enhanced the game, yet kept it within the memory constraints of a stock VIC 20 &#8212; quite the personal accomplishment and it received a few unexpected accolades afterward. This past year, I moved [...]]]></description>
			<content:encoded><![CDATA[<p>Last year, I re-discovered a <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Pac-Man_clones#Recent_clones" target="_blank">Pac-Man clone</a> I wrote way back in <a title="QUIKMAN: 1984 revisited" href="http://robert.hurst-ri.us/2008/10/27/quikman-1984-revisited/" target="_blank">1984</a> for the Commodore VIC 20.  <a title="Programmer's Delight" href="http://robert.hurst-ri.us/2008/11/01/programmers-delight/" target="_blank">A month later</a>, I enhanced the game, yet kept it within the memory constraints of a stock VIC 20 &#8212; quite the personal accomplishment and it received a few unexpected <a title="Quik Death" href="http://robert.hurst-ri.us/2009/01/01/quik-death/" target="_blank">accolades</a> afterward.</p>
<p>This past year, I moved on to other VIC 20 related projects, including a slick software sprite library and <a title="Omega Fury" href="http://robert.hurst-ri.us/2009/05/30/omega-fury-beta/" target="_blank">a sequel to Omega Race</a> that <a title="play online" href="http://robert.hurst-ri.us/files/vic20/jarvic/omega-fury.html" target="_blank">implemented</a> the new graphics handler.  This past week, I returned to Quikman to retro-fit it with the improved video&#8230; and a few more features.</p>
<p><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/09/quikman8k.png"><img class="alignright size-thumbnail wp-image-297" title="Quikman 8k" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/09/quikman8k-150x91.png" alt="screenshot" width="150" height="91" align="right" /></a>The result is <a title="play online" href="http://robert.hurst-ri.us/files/vic20/jarvic/quikman+8k.html" target="_blank">Quikman+</a> requiring an additional 8k of memory expansion, mainly due to the software sprite&#8217;s requirement to double-buffer the video display.  For those not familiar with the term &#8220;k&#8221;, it was short for &#8220;kilobyte&#8221; which is 1,024 bytes.  Yes, read that again &#8212; a <em>thousand</em> bytes, not millions as in megabytes and certainly not billions as in gigabytes.  So, eight of those are an additional 8,192 bytes over the 3,584 bytes available in a stock VIC 20.  In 8-bit computing, that is a sizeable amount to do some nifty programming.  You can appreciate these meager numbers more if you compare it to a simple Windows cursor file in C:\Windows\Cursors &#8212; some of those simplest of icons would challenge the VIC 20&#8242;s ability to load it into memory!</p>
<p><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/09/quikman8k-menu.png"><img class="alignleft size-thumbnail wp-image-298" title="Quikman menu" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/09/quikman8k-menu-150x91.png" alt="" width="150" height="91" align="left" /></a>With the double-buffering in place, the game play is smoother because of the flicker-free animation.  But the expanded address space allowed the game&#8217;s core to be expanded to include:</p>
<ul>
<li>an opening splash screen (top)</li>
<li>a gaming options menu (left)</li>
<li>one or two player mode</li>
<li>choice of arcade maze run: original Pac-Man or progression through the four Ms. Pac-Man mazes (sample of the first one below)</li>
<li>starting fruit level</li>
<li>pressing the STOP key aborts the current game in progress; at the menu, it returns the machine back to BASIC</li>
</ul>
<div id="attachment_299" class="wp-caption aligncenter" style="width: 426px"><a href="http://robert.hurst-ri.us/files/vic20/jarvic/quikman+8k.html"><img class="size-medium wp-image-299  " title="Quikman screenshot" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2009/09/quikman8k-newlevel.png" alt="1st new level" width="416" height="253" /></a><p class="wp-caption-text">1st new level</p></div>
<p>A bonus feature was the inclusion of auto-detection code for the presence of a <a title="VIC 20 magic!" href="http://www.mega-cart.com" target="_blank">Mega-Cart</a>.  If this cartridge is plugged in, the game&#8217;s high score will be saved to its NVRAM, allowing its persistence to be retrieved by future games to try to beat.  Cool!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2009/09/22/quikman-8k/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Omega Fury BETA</title>
		<link>http://robert.hurst-ri.us/2009/05/30/omega-fury-beta/</link>
		<comments>http://robert.hurst-ri.us/2009/05/30/omega-fury-beta/#comments</comments>
		<pubDate>Sat, 30 May 2009 12:17:26 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=235</guid>
		<description><![CDATA[I released an almost feature-complete version yesterday. I have always wanted to write a space shooter in 100% assembly, just to see how it might handle on this hobby computer &#8212; it took a few iterations of re-engineering the sprite engine to squeeze out &#8220;just enough&#8221; performance on the later levels. And the effort met [...]]]></description>
			<content:encoded><![CDATA[<p>I released an almost feature-complete version <a href="http://sleepingelephant.com/ipw-web/bulletin/bb/viewtopic.php?t=3454&amp;postdays=0&amp;postorder=asc&amp;start=58" target="_blank">yesterday</a>.  I have always wanted to write a space shooter in 100% assembly, just to see how it might handle on this hobby computer &#8212; it took a few iterations of re-engineering the sprite engine to squeeze out &#8220;just enough&#8221; performance on the later levels.  And the effort met the challenge, so I am satisfied with the results:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/E8bkwvcDXAc&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/7bX1uz-rQEk&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Or click to watch the <a href="http://www.youtube.com/watch?v=E8bkwvcDXAc">demo on YouTube</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2009/05/30/omega-fury-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
