The DIY cartridge: JOLLY CARTRIDGE!

Modding and Technical Issues

Moderator: Moderators

Post Reply
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

Finally a basic DIY cartridge that can be any standard cartridge you want (and more):
the JOLLY CARTRIDGE is here!


PROTO.jpg
NAKED.jpg

Perfect for fiddling with all possible RAM expansion capabilities,
as a new cart for old downloaded software or as a support for your own new software even in small production batches.

The JOLLY CARTRIDGE supports up to two memory chips: U1 (ROM only) and U2 (ROM or RAM).

ROM chip(s):
64k EEPROM W27C512 (or equivalent) is recommended:
it doesn't need UV erasing, it's cheap, and it covers all possible JOLLYCART functions.

RAM chip:
32k SRAM HM62256 (or equivalent) is recommended:
it's cheap and it covers all possible JOLLYCART functions.

U1 (ROM) is mapped to I/O2 and 3, and can also be selected in BLK5.
All U1 areas can be switched between 2 banks ("L"/"H") via the J2 jumper.

U2 (ROM or RAM) is mapped to BLK2 and BLK3.
It can be selected in BLK1, and either in BLK5 or RAM1,2,3 (3k).


Memory_Map7.GIF



How to configure the JOLLY CARTRIDGE

J2:
Pin1 is not connected.
Pin2 is the A14 of U1 with a pull-up resistor (A14="H" if pin2 is not connected)
Pin3 is GND ("L").
J2 can select the desired “U1 bank” using a small 2.54mm switch, or a jumper, or a drop of solder or by leaving it not connected....

J1 is a bit more complicated.
Remember that the VIC20 decodes the memory areas enabling (in J1) the lines BLK5, 3KB, BLK1.
I/O2+3 are stably connected to U1,
BLK2+3 are stably connected to U2.
The on board memory "slices" that can be enabled by J1 are U1B5, U2B5, U2B1.
The rule is that a decoded line can only be connected to a single "memory slice" and that a "memory slice" can only be connected to a single decoded line.

SIGNALS.jpg

The combinations of J1 and J2 cover almost all the mapping possibilities of U1 U2 chips inside a cartridge!


Some examples...


Two different 8K games in autostart BLK5:
BI_8K_GAME.jpg


A 16K(or more) game, any two (or more) BLKs combination,
for example into BLK 5 can be placed a launcher for the Scott Adams adventures.
16k_games.jpg
The previous configuration permit up to 32k of ROM, for example a multigame cart containing 9 games for unexpanded VIC20:
the chosen game will be copied to the VIC20 RAM and launched
IMG-20211022-WA0003.jpeg


Three games: 1x16k + 2x8k
3GAME.jpg


Always (SJload or Rabbit) into I/O2,3 and
{32kram or [24kram + (Tools for BASIC or ML)]}
TOOLS+RAM.jpg


Ram expansion +3k or +32k (SJload on I/O2,3):
RAM+SJLOAD.jpg
A variant:
+32k expansion RAM: +24k RAM for BASIC +8k RAM into BLK5
+hidden into I/O areas: SJLOAD (7) for using your jiffydos modded disk drive (SYS40000)
+hidden into "no basic" RAM1,2,3 areas: EASYLOAD+ (7) for speed up your not jiffydos disk drive
RAM+SJLOAD+easyload.jpg
P_20211104_113243.jpg


A diagnostic cartridge PAL/NTSC
(for complete working it need also specific test harness):
DIAG20.jpg

This configuration is for new games that work only if loaded into RAM expansion....(two diode 1N4148 will be needed)
+24k ram expansion +13k ROM (BLK5+I/O2,3+RAM1,2,3).
At power up (or at reset) the firmware into BLK 5 will be auto started,
into the expanded ram the rom content will be copied and launched.
A 12.75k game can be performed (or a bigger game, if compressed...)
+13rom.JPG
The precedent configuration (+24kRAM, +13kROM) is like a "lite version" of a "DREAMCART" (+37kRAM, +64kROM): viewtopic.php?f=10&t=9950

Another information about JOLLY CARTRIDGE "naked board" version:
the PCB factory can't made the "45°fingers chamfered" because the PCB has a dimension too small,
then whoever chooses the "naked board" will have to smooth the two edges with a nail file or other tool.
The other versions (proto, games, ...) will be supplied with the edges already rounded.
Last edited by MCes on Tue Feb 01, 2022 8:54 am, edited 8 times in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
doug_in_nc
Vic 20 Enthusiast
Posts: 156
Joined: Wed Feb 24, 2021 11:32 am
Location: NC, USA
Occupation: Engineer

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by doug_in_nc »

That looks really nice. I like the flexibility of being able to use it for pretty much whatever you want. One question though - will you be selling these, putting them on Github etc?
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

It looks cool! My ideal cartridge PCB would:

(1) Be able to accept a 28C64B and locate it as ROM at block 3
(2) Add 8KB RAM at block 5

Would this one be able to do that?

If so, my other question's the same as Doug's; how do we get them?
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

doug_in_nc wrote: Mon Oct 18, 2021 7:28 am That looks really nice. I like the flexibility of being able to use it for pretty much whatever you want. One question though - will you be selling these, putting them on Github etc?
The JOLLY CARTRIDGE has been designed bearing in mind that a reduction in costs can be achieved by producing a batch that is not too small, this numbers can be motivated by using it for a lot of different application (the necessity of the flexibility).

With these parameters the result is:
1) very flexible use
2) a good quality PCB (with gold plating)
3) a good quality SMD components and mounting
4) cheap price/piece

This cannot be achieved by ordering 5 or 10 pieces from the PCB/SMD factory,
so I made a bet ordering a batch to allow me to offer the JOLLY CARTRIDGE for sale at a good price.

I am thinking of a "25€ minimum order" that can be reached by purchasing my projects, for JOLLY CARTRIDGE:
5 € / pc naked JOLLY CARTRIDGE
15 € / pcs JOLLY CARTRIDGE "prototype board" + 2ROM + 1RAM

Now I want to develop a little firmware (it's not easy for me, I'm an HW-boy...)
that permit to put into an "all ROM" JOLLY CARTRIDGE 8..9 games for unexpanded VIC20:
at startup a small menu requires the choice, then the game is copied into VIC20 memory and launched....
I'm not a good games player, so I asked to ORION70 a list of good little games selected from "zimmers" page!
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

chysn wrote: Tue Oct 19, 2021 9:22 am It looks cool! My ideal cartridge PCB would:

(1) Be able to accept a 28C64B and locate it as ROM at block 3
(2) Add 8KB RAM at block 5

Would this one be able to do that?

If so, my other question's the same as Doug's; how do we get them?
Your is a strange configuration for a RAM/ROM cart: RAM is required into the auto boot area BLK5, and ROM into other(s) BLK(s)....
I think that it can be done adding a wire.....
RAMROMRAM.JPG
I not recommend to use for U2 an EEPROM with WRITE on pin 27 because this U2 pin is connected to VIC20 write line and attempting to write from VIC20 to EEPROM blocks a data corruption could be done (U1 hasn't this connection on pin 27)
Also for this reason I prefer something as W27C512 EEPROM
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

MCes wrote: Tue Oct 19, 2021 11:00 am Your is a strange configuration for a RAM/ROM cart: RAM is required into the auto boot area BLK5, and ROM into other(s) BLK(s)....
Yes, it is strange. It would be a development environment with RAM in BLK5 for testing cartridge code, and development tools in BLK3. With the cartridge inserted, the VIC-20 would start up as an "unexpanded" machine, as far as BASIC is concerned. I call it the wAxpander, and I've been trying to figure out how to realize this strange configuration for a while now.

I'm probably down for the minimum order of naked JOLLY PCBs, once you get everything finalized. Do they fit OK in TFW8B cartridge cases? It looks like they should be a good fit.
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
orion70
VICtalian
Posts: 4337
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by orion70 »

Thanks Max, here's another incredible, flexible product of yours :) .

Yes, I've been asked to select some unexpanded games from the Zimmers collection - but anyone can do his own list, e.g. with Jeff's excellent games, or one dedicated to a particular genre, etc.

As for other possible applications, i was wondering if one could simply put a single game for the 16k expanded VIC, and use it as a cartridge version of your favourite, just for the fun of it, of course :mrgreen:. Max (Mces) told me it's possible, as long as the game doesn't exceed 13k.

Many years ago, almost 15 in fact (geez, I'm so old), i had fun with an old school RPG for the expanded machine called Sorcery. It was state of the art back then, well before the whole Realms of Quest series came to light, and still is a good example of a decent role playing game. It also comes with a great manual, and in 2006 it was modified to fit in a single 12.5k file, crunched, and bug-fixed.

For more info, here's the original thread:
viewtopic.php?f=10&t=1406

And the link to the author's website:
http://www.kdef.com/geek/vic/vicbjsw.html#RPG

Now, it would be great for me to have my own Sorcery cartridge, with its box and manual! Can we do it Max?

Image

EDIT: I was able to retrieve the map of the dungeon procedurally generated by pressing the "B" key at title screen. I elaborated it with a bit of fantasy, imagining that it was a ruined city, sunk in the depths of earth after a huge cataclysm.
doug_in_nc
Vic 20 Enthusiast
Posts: 156
Joined: Wed Feb 24, 2021 11:32 am
Location: NC, USA
Occupation: Engineer

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by doug_in_nc »

Now I have looked at it a bit deeper, and I understand how the jumpers behave (I think), I have one further question - how do you create the ROMs? Obviously I don't mean how do you burn them, but where in the 512Kbits of a 27C512 does what go?, ie how do I combine for example SJLoad and 2x8K ROMs into a single image for burning. I'm definitely interested in placing an order with you BTW.
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

chysn wrote: Tue Oct 19, 2021 12:21 pm (..)
Do they fit OK in TFW8B cartridge cases? It looks like they should be a good fit.
I try to always use the same shape of the cart because it is easy to pull out by hand,
it does not protrude from the cartridge compartment,
and it can be placed inside the shells of standard cartridges......
P_20211021_110419.jpg
orion70 wrote: Wed Oct 20, 2021 1:19 am Yes, I've been asked to select some unexpanded games from the Zimmers collection - but anyone can do his own list, e.g. with Jeff's excellent games, or one dedicated to a particular genre, etc.
The "3K5 GAMES ORION70 LIST" is ready! ("Sorcery" could be the next experiment.....)
IMG-20211021-WA0012.jpeg
Last edited by MCes on Thu Oct 21, 2021 3:12 pm, edited 1 time in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
orion70
VICtalian
Posts: 4337
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by orion70 »

MCes wrote: Wed Oct 20, 2021 2:51 pm("Sorcery" could be the next experiment.....)
I'm confident you'll be able to do it, to the point that I did already prepare the cart box and label :mrgreen:

Oh, and HERE's the manual in booklet format (print double-side and cut in the middle, or simply fold, to obtain an A5 booklet). Great to fit inside a cartridge box :).

[wonder if Brendan is still lurking after all these years...]
Attachments
Sorcery_label.jpeg
Sorcery_back.jpg
Sorcery_side.jpg
Sorcery_front.jpg
User avatar
orion70
VICtalian
Posts: 4337
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by orion70 »

(Just uploaded new images)
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

orion70 wrote: Wed Oct 20, 2021 1:19 am Now, it would be great for me to have my own Sorcery cartridge, with its box and manual! Can we do it Max?
P_20211021_093939.jpg
The beta cartridge is ready...(remember that I can't supply the plastic shells) I have to test the game!
P_20211021_105159.jpg
This configuration (+24kRAM, +13kROM) is like a "lite version" of a "DREAMCART" (+37kRAM, +64kROM): viewtopic.php?f=10&t=9950
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
orion70
VICtalian
Posts: 4337
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by orion70 »

Excellent 👌😊
Please, refer to the manual to thoroughly test the game.
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

+24k RAM, +12.75k ROM self-loading on RAM.
How does it work?


The autostart launcher occupy 1 page into BLK5 (<256Bytes)
and starts copying to RAM the 31 pages present in the remaining BLK5 area: 7.75kBytes.
The launcher continuous copying to RAM 8page (2K) from I/O2,3 areas, then it end copying to RAM 12page (3K) from RAM1,2,3 areas: 31+8+12=51pages (12,75kByte),
then a BASIC "RUN" command is performed

This strategy permit to:
1)if the game is "<9,75k" the jollycart setting is simply: J1(U1B5onBLK5, U2B1onBLK1) J2(NO CONNECTIONS)
NOTE: in this case the cart can contain 2 games! (select via J2 L/H)

2) if the game is "9.75k <SW <12.75k" the jollycart setting is:
on J1 "U1B5" the anode of 2 diodes (one diodes's cathode is connected to "BLK5", the other is connected to "3kb" and also to the central pin of J2), "U2B1" connected to "BLK1"


The 2 diodes enable the "U1B5" slice if VIC20 addresses the BLK5 or RAM1,2,3 areas.
So 2 areas overlap on 1 slice,
for avoiding this the "3kb" line (RAM1,2,3) also change the U1 BANK from "H" to "L" (wire between J1 "3kb" and central pad of j2)

If the sw is bigger than 12.75k and/or more RAM is needed (35k..37k) the solution could be a DREAMCART

+13rom.JPG
Last edited by MCes on Tue Feb 01, 2022 9:03 am, edited 4 times in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

doug_in_nc wrote: Wed Oct 20, 2021 1:52 pm Now I have looked at it a bit deeper, and I understand how the jumpers behave (I think), I have one further question - how do you create the ROMs? Obviously I don't mean how do you burn them, but where in the 512Kbits of a 27C512 does what go?, ie how do I combine for example SJLoad and 2x8K ROMs into a single image for burning. I'm definitely interested in placing an order with you BTW.
The JOLLY CARTRIDGE was developed to be very flexible in HW configuration,
this implies some compromise into ROM address determination.

Starting address (DEEPS: BLKs= 8k, I/O2,3= 2K)

Code: Select all

U1	J2:"H"/("L")
I/O2,3	$D800/($9800)
BLK5	$E000/($A000)

U2
BLK1	$E000
BLK2	$C000
BLK3	$6000
BLK5	$4000
13k ROM configuration on U1 (2diodes + 1wire) is: BLK5 (J2=H) on U1$E000, +3kb (J2=L) on U1$A400.

I have prepared a couple of empty .BIN files to help insert your software into U1 or U2,
they have DATAs indicating which slice is related to that addressed area:
jolly cart U1 U2 empty.zip
(989 Bytes) Downloaded 83 times
Last edited by MCes on Mon Oct 25, 2021 3:16 am, edited 1 time in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
Post Reply