vic20 update

I’ve uploaded a new binary with 8kb more RAM (28kb in total) and cartridge multipart support.

To run multipart crt’s turn on “CRT with load address:yes” and load the lower part first.
Use the Tosec crt’s without the “[a]” in the name because we need the load address. Load the $4000 or $6000 part first and then the $A000 part. The $A000 crt will trigger a reset and starts the game.

Status

vic20 update

Another update for the vic20. The 16K expansion can now be disabled and I added a 3K expansion. There’s no lock to prevent enabling both ram expansion but I think that doesn’t work (but I have no idea how the real hardware would have handled it).
At least unexpanded and 3K games seems to work now but I still see problems with some basic games. They just stop sometimes with a type mismatch or similar. Anyone has an idea what that could be?

vic20 for the MiST released (part 5)

Finally I got some issues ironed out and most games work fine. The port accepts prg uploads for expanded vics and rom cartridges with the auto start sequence. The often as .a0 seen roms needs to be renamed to .prg and the program type in the osd needs to be set to rom.
The vic20 has a 16kb ram expansion in block1 and block2.
Due to the different memory layouts between an unexpanded and an expanded vic currently only games for expanded vics will work. There’re still some glitches on some games but in general it works pretty well. Below some impressions of the core:

Laserzone

Galaxian

Death_Race

Binary: https://code.google.com/p/mist-board/source/browse/trunk/bin/cores/vic20
Source: https://github.com/wsoltys/mist-cores/tree/master/vic20

vic20 part 4

Sometimes it’s like two steps forward and one step backwards but I already learned a lot of the vic20 inner workings.
The roms with the additional two bytes I mentioned in the previous post are simply autostart cartridge roms “converted” to the .prg format which contains the in memory starting address in the first two bytes.
To upload those roms with the MiST interface would require a continuous block of ram instead of the multi blocks I use currently. But using one big block requires multiplexing of the different signals to the ram (ram and block select).
After I did this the vic20 didn’t work anymore. The screen went mad or – the best case – just blinks with the ready. I didn’t figured out why it behaved like that but using again single blocks for the basic working ram, the screen ram and the screen color ram helped to make it stable again. But cartridge uploads to the big block still won’t work.
I can make an own block for the blk5 memory block again but something is wrong with the multiplexing and it would be nice if I could find and fix it.