Jump to content
bluejay

Softloading VIC-20 Cartridges

Recommended Posts

So far what I know is that I can load a pre-made .prg for a cartridge that are commonly found with LOAD "*",8,1 and for a 16k image I need to load $A000 first, type NEW, then load $6000. After everything perform a soft reset. However, some games apparently require me to do a hard reset to reset the VIAs; why is that, and wouldn't that wipe the contents in RAM?

Share this post


Link to post
Share on other sites

It might be because the game requires the VIAs to be in the reset state and unconfigured, probably taking shortcuts since it's safe to assume registers are at reset states.  And yes, a hard reset would wipe RAM.  You might be able to accomplish what you want, though, by using a RAM expansion cart like UltiMEM (caveat, I sell that unit) which has ram that you can writeprotect. 

  • Like 2

Share this post


Link to post
Share on other sites

Very few games require a known VIA state. Things like Atarisoft's Pole Position might. Obviously it is due to lazy programming in the first place, but it is too late to fix now.

 

Somehow there ought to be a SYS to call to set those parameters as well, without wiping the RAM content. I'd have to look around in the startup routines for one that does.

  • Like 2

Share this post


Link to post
Share on other sites

That sucks. Anyways, do let me know if you end up finding that SYS call to reset the VIA parameters!

 

Meanwhile I've been trying a bunch of cartridge games I wanted to try but couldn't. They're all lackluster, but I should've guessed they would be, you know, because VIC-20.

  • Sad 1

Share this post


Link to post
Share on other sites

There's a mod you can do on the RAM expansion to add a reset switch that does not wipe RAM.

 

I don't know if this differs from the user-port reset switch mod.  I think they are the same.   Resetting the computer does not wipe memory unless you power cycle it.   I modded a 16K board with a reset switch and also to sit in BLK3 and BLK5.  I used to use it to play cartridge dumps before I got a Mega Cart.  

 

As @carlsson stated, there are not many carts that need it this switch.  They were mostly Atarisoft titles.  Probably your best option today is buy one of @brain UltiMEM carts, but if you're not enjoying what you're finding you might be better off just concentrating on what you do enjoy.

 

Share this post


Link to post
Share on other sites

This discussion started in a status update where @bluejay wrote that almost all of his gaming systems were packed into boxes to prepare for his move, leaving the VIC-20 as just about the only system not yet packed. As you may have noticed, he recently designed and manufactured his own 35K RAM expansion with built-in SD2IEC which he has been selling a few units of in the Marketplace. For these two reasons, I'm not sure he would be in the market to buy a different RAM expansion right now, since the reason he made his own to begin with was to save on costs.

 

If most of the existing VIC-20 library feels lackluster to a 13-14 year old of today, I'm not sure the last few cartridges that need special operations to run will make a lot of difference. Simply put, we must realize that the 14 year olds in 1982 to most part didn't know of anything better than what existed and learned to like what they had. I realize the gaming world has moved on a lot in the last 40 years and accept that teenagers of today, even those generally into retro gaming, may have a more objective view on playability on those reasonably early game computers.

 

At least he learned about the opportunity to load and play cartridge games, beyond loading regular unexp / 3K / 8K / 16K / 24K games and the few 35K games (e.g. DOOM) that exist.

  • Like 1

Share this post


Link to post
Share on other sites

Well, I mean, the main reason I didn't like the games I've tried so far is that I don't have a joystick handy, so I can't play all the more fun stuff that requires one. I love my VIC-20 and loved playing the few authentic cartridge games I owned, but mostly because I had a joystick to play them with. Keyboard controls on many VIC-20 games(or all Commodore computer games for that matter) are extremely clunky and poorly mapped; that's what ruins everything for me.

 

I could easily breadboard a controller but at this point it's kind of pointless. I can just go back to playing the proper MS-DOS Doom. Regardless, thanks @carlsson for teaching me a new way to play cartridge games. I will most certainly try this again in the future when I have my joystick and figure out how to reset the VIA parameters.

 

And like he mentioned I already have all the stuff I need, and I wouldn't buy a RAM cartridge even if I didn't due to my current situation.

 

By the way @oracle_jedi, the RAM cartridge I designed already features a soft reset switch. However, some games require a power cycle (hard reset) in order to clear VIA parameters, like the fellows above mentioned. And what we're trying to figure out is how to reset those parameters through software in order to not kill the contents in RAM.

  • Like 1

Share this post


Link to post
Share on other sites
10 hours ago, bluejay said:

 

By the way @oracle_jedi, the RAM cartridge I designed already features a soft reset switch. However, some games require a power cycle (hard reset) in order to clear VIA parameters, like the fellows above mentioned. And what we're trying to figure out is how to reset those parameters through software in order to not kill the contents in RAM.

 

Which games?    Because Pole Position is not one of them.  

 

Share this post


Link to post
Share on other sites
Just now, oracle_jedi said:

 

Which games?    Because Pole Position is not one of them.  

 

Most Atarisoft games, INCLUDING Pole Position, Ms. Pac Man, Moon Patrol, etc. I haven't tried anything but Ms. Pac Man yet, but the website says I need to perform a hard reset, so I'm pretty sure I need to perform a hard reset.

Share this post


Link to post
Share on other sites
9 minutes ago, bluejay said:

Most Atarisoft games, INCLUDING Pole Position, Ms. Pac Man, Moon Patrol, etc. I haven't tried anything but Ms. Pac Man yet, but the website says I need to perform a hard reset, so I'm pretty sure I need to perform a hard reset.

 

Like I said.  There is a RAM cart mod that performs a non destructive reset, allowing the Atarisoft titles to start.   Yes INCLUDING Pole Position.

Share this post


Link to post
Share on other sites
2 minutes ago, oracle_jedi said:

 

Like I said.  There is a RAM cart mod that performs a non destructive reset, allowing the Atarisoft titles to start.   Yes INCLUDING Pole Position.

Doesn't that involve shorting the RESET pin to GND? That's a non-destructive reset that keeps RAM contents but also keeps VIA parameters which is what I need gone.

Share this post


Link to post
Share on other sites

Yes, it was grounding the RESET pin.  The original VIC20 RAM expansion carts used HM6116P static RAM chips, so as long as they got power, the contents were not lost.

 

 

Share this post


Link to post
Share on other sites
13 hours ago, oracle_jedi said:

Yes, it was grounding the RESET pin.  The original VIC20 RAM expansion carts used HM6116P static RAM chips, so as long as they got power, the contents were not lost.

 

 

Again, I already have that on my cartridge, but I need to clear the VIAs which can only be done by power cycling the machine as far as I know.

Share this post


Link to post
Share on other sites

If you are speaking of those particular cart games that require you to reset after the game is loaded (Ms. Pac Man comes to mind) when I was using one of these I used the reset button on it and that would work:

 

https://www.ebay.com/itm/New-Commodore-VIC-20-35KB-Switchable-Memory-RAM-Expansion-SD2IEC-VIC-2066-735/114126572862?hash=item1a92794d3e:g:8QUAAOSwByxgCEFK

 

I believe I was also able to use a userport reset adapter to do the same thing. I have a few of these:

 

File:Resettaster1.JPG

 

Share this post


Link to post
Share on other sites

Well, if Bluejay wired a reset button to his own 35K expansion memory, I doubt the exact same reset button on somebody else's expansion memory would behave differently unless he made a mistake in treating/debouncing the signal.

 

As noted, the majority of games can be started with SYS for a soft reset or press a regular reset button. A few games rely on VIA timers set in a routine that only is executed on power on, not when pressing the reset button. Eventually I'll dig through disassemblies to figure out which routine this is, or if the pure circuit breaking causes the difference in how the VIA loads its values.

Share this post


Link to post
Share on other sites
1 hour ago, carlsson said:

Well, if Bluejay wired a reset button to his own 35K expansion memory, I doubt the exact same reset button on somebody else's expansion memory would behave differently unless he made a mistake in treating/debouncing the signal.

 

@eightbit has confirmed the user-port reset button allows the Atarisoft titles (Pole Position, Ms. Pac-Man, Moon Patrol) to start.   I can confirm the RAM expansion reset-hack allows the same titles to start.  

 

That leaves several possibilities:

 

The software files bluejay is loading are corrupt.  They will never work. 

Bluejay's hardware design is wrong.  It works on a real Commodore RAM expansion but not his.

Bluejay's VIC20 is in someway different from the ones eightbit and I are using.  Later VICs could not play Jelly Monsters due to initialization differences with earlier models.

The RAM chip bluejay used is losing its contents upon reset.  Some newer static RAM chips have an auto-power-down mode whereupon if the CE line goes low, it basically turns itself off, losing the contents.  Load up any Commodore cartridge image and press the reset button.  The game should start.

 

2 hours ago, carlsson said:

A few games rely on VIA timers set in a routine that only is executed on power on, not when pressing the reset button. Eventually I'll dig through disassemblies to figure out which routine this is, or if the pure circuit breaking causes the difference in how the VIA loads its values.

 

Which ones?   Pole Position, Ms. Pac-Man and Moon Patrol can be started with the reset button eightbit detailed.

 

Share this post


Link to post
Share on other sites

Any kind of RAM would lose its contents when a hard reset is performed. Keep in mind it *might* be because I made a mistake while loading the program (i.e. accidentally typed load "mspacman",8 instead of 8,1)

I'll try it again and see how it turns out.

 

Update: turns out the reset button on mine works. I must have accidentally loaded $6000 before $A000.

Edited by bluejay

Share this post


Link to post
Share on other sites

In practice the order you load files should not matter, but you indeed need NEW to restore BASIC pointers to allow LOAD to work when loading files into such high RAM.

 

It might be so that the ROM files available on various sites these days have been patched compared to the ones that were around 15-20 years ago, so you no longer are having VIA issues with some of those cartridges. I haven't checked recently but remember it used to be a problem earlier.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...