"Multi-cart" menu programming project
Moderator: Moderators
"Multi-cart" menu programming project
I don't have a lot of spare time lately, my programming skills are limited, and I prefer working with a soldering iron .
I'm proposing a Denial forum member "Multi-cart" programming project for menu development.
This would be open to all Denial forum members.
All those participating in the project will have name entered into a drawing for the hardware prize pictured here:
(winner to pay actual shipping charges & responsible for any applicable import duties.)
Note: the picture depicted is not the final revision - which includes expanded ram write line inhibit logic.
I will update this post the final hardware picture when I find the scan of it.
Here are some initial basic rules:
i) Drawing to be done by independent third party
ii) I will build up game BIN image files and burn eproms to suit NTSC or PAL land winner.
iii) Target dates - start April 27th end June 30th (or earlier)
iv) Participants must be Denial forum members as at 04/27/2007 00:00 UTC
v) Winner must post photo of "Multi-cart" with Denial menu in action in their home setup
vi) Credits list must be included within menu to include all those already recognized at TPUG presentation of the hardware, and all those that participate in the menu programming project.
vii) Denial Multi-Cart Menu must be written in assembler and distributed as open source
viii) I will be available to assist with testing and debuging
ix) Project participants will decide via vote when project is completed (subject to minimum functional requirements)
x) Participantion in this project includes contributions for (a) programming of menu (b) music (c) custom character set (d) animations
xi) Denial Forum members to vote on development milestones
I think the above allows for greater participation and will generate some great ideas in the forum.
Plus, joining in the fun, Denial members have a chance to win a limited edition Vic-20 "multi-cart"
Please advise if there is any interest in this group project.
If there is, I will post minimum functional requirements and operational details to select games, perform reset, etc.
I'm proposing a Denial forum member "Multi-cart" programming project for menu development.
This would be open to all Denial forum members.
All those participating in the project will have name entered into a drawing for the hardware prize pictured here:
(winner to pay actual shipping charges & responsible for any applicable import duties.)
Note: the picture depicted is not the final revision - which includes expanded ram write line inhibit logic.
I will update this post the final hardware picture when I find the scan of it.
Here are some initial basic rules:
i) Drawing to be done by independent third party
ii) I will build up game BIN image files and burn eproms to suit NTSC or PAL land winner.
iii) Target dates - start April 27th end June 30th (or earlier)
iv) Participants must be Denial forum members as at 04/27/2007 00:00 UTC
v) Winner must post photo of "Multi-cart" with Denial menu in action in their home setup
vi) Credits list must be included within menu to include all those already recognized at TPUG presentation of the hardware, and all those that participate in the menu programming project.
vii) Denial Multi-Cart Menu must be written in assembler and distributed as open source
viii) I will be available to assist with testing and debuging
ix) Project participants will decide via vote when project is completed (subject to minimum functional requirements)
x) Participantion in this project includes contributions for (a) programming of menu (b) music (c) custom character set (d) animations
xi) Denial Forum members to vote on development milestones
I think the above allows for greater participation and will generate some great ideas in the forum.
Plus, joining in the fun, Denial members have a chance to win a limited edition Vic-20 "multi-cart"
Please advise if there is any interest in this group project.
If there is, I will post minimum functional requirements and operational details to select games, perform reset, etc.
Last edited by 6502dude on Wed May 23, 2007 8:09 pm, edited 2 times in total.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
Re: "Multi-cart" menu programming project
Woo-hoo! I qualify!6502dude wrote:iv) Participants must be Denial forum members as at 04/27/2007 00:00 UTC
After a bit of consideration, I'll bite. Post some more details and in particular repeat how each game is going to be selected. I saw from your presentation that you write three values to 38912-14 and then the program gets switched in and the computer does a soft reset (?) to start it.
Anders Carlsson
Thanks for your interest in this projectcarlsson wrote:Post some more details and in particular repeat how each game is going to be selected.
The logic of game/application selection is as follows:
- poke 38913,x is used to select game in 8K cell in eprom #1
- poke 38914,y is used to select game in 8k cell in eprom #2
- poke 38916,z to perform software reset & start the game (the value of z is not relevant).
Where a game is only 4K or 8K (not spanning eproms), the value of 255 is used for x or y to disable the eprom which is not used for the game.
This may be all be done via a look up table of values since this will be defined when eprom images are built for NTSC for PAL cart.
ie: GAME_NAME, EPROM#1_Value,EPROM#2_Value
Where:
GAME_NAME = displayed value via call to $FFD2
x=EPROM#1_Value
y=EPROM#2_Value
Example from:
http://www.bjlyons.com/cbm/vic20/multic ... 7-2007.xls
Frogger would be: "Frogger", $06, $FF
Predator would be: "Predator",$FF,$06
An example of a game > 8K
Donkey Kong would be: "Donkey Kong",$03,$03
32K Expanded RAM would be: "32K Expanded",$FF,$FF
Expanded RAM Write Inhibit would be: "text here",$80,$FF
In each case, a JSR may be invoked to do a reset (poke38916,z) to start the game.
The values of 38913, 38914, & 38916 may change after I look at I/O2 address space conflict for Q-bert game.
However, the fundental logic of selecting independant address to enable / disable each eprom and perform reset will not change.
The lookup table of game names and their relative addressing (based on "multi-cart") is expected to be located in top 8K block of Eprom #2. This should appear at address $C000 in Vic-20 memory.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
I think Carlsson is the right men, if you need help ask me, in any case i may contribute with other PRG to CART conversion to load other, at the moment, unexpanded games.
It's possible to start standard 8k or 16k games too ?, i may release some special cart in $a000 or $a000+$6000 that move itself to $1200> but the menu must select ram in bank 1 or 1 and 2 before start it.
It's possible to start standard 8k or 16k games too ?, i may release some special cart in $a000 or $a000+$6000 that move itself to $1200> but the menu must select ram in bank 1 or 1 and 2 before start it.
Yes, the hardware will support storing a game which must run from ram space.nbla000 wrote:It's possible to start standard 8k or 16k games too ?, i may release some special cart in $a000 or $a000+$6000 that move itself to $1200> but the menu must select ram in bank 1 or 1 and 2 before start it.
As noted, a copy utility can simply move pgm fom ROM to RAM, and then start it.
This feature will allow storing your favourite game in ROM and not needing to modify any address in the code, to make it run from $A000. Also, when stored in ROM, there is need to lug along a floppy disk and drive to play your favourite .prg games.
I was thinking of modifying the Scott Adams games loader to be more generic and to accomodate rom to ram moves for Scott Adams games + .prg games.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
- Schema
- factor
- Posts: 1430
- Joined: Tue Mar 23, 2004 7:07 am
- Website: http://www.jammingsignal.com
- Location: Toronto, Ontario
All contributions are welcome for the hardware prize.Schema wrote:Aw man. I have a head-start on this, but I have zero time at the moment to contribute further. Have fun though!
I don't play games, so holding onto the hardware is somewhat pointless for me.
If someone else can derive enjoyment from the hardware, I would rather see that, then it sitting idle for years, or discarded for parts on use of the board for another project.
This is an idea that I considered several weeks ago, at the outset of hardware design.
Also, I would like to see hardware capabilities realized via software development.
My next hardware project is an analogue to digital conversion idea.
I plan to have this done for September TPUG meeting and will present it, if there is interest in TPUG group for a demo.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
Heh. BBC News had coverage of the Sinclair Spectrum 25 years last week, and in the text they had written something about how the computer lives on through emulation and now the games can be enjoyed digitally (as opposed to the analogue 1980's). I suppose the writer tried to refer to loading from audio cassettes, but once the data is converted in the computer, it should be just as digital as it appears in the emulator.
Anders Carlsson
The writer of the story either didn't know what they were writing about (which is pretty common) or they were try to play upon general public's perception that digital is superior to analogue.carlsson wrote:.....games can be enjoyed digitally (as opposed to the analogue 1980's)
I still think it is funny to see ads for "digital" speakers.
I'm glad I don't do product marketing anymore.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
Since the cat is out of the bag, I suppose I can post the link to the menu software as of now. I believe it is the most recent revision, although not by far the final one (e.g. credits need to be improved, and some bugs need to be fixed). I also included two musics, of which 6502dude linked his demo with the Mozart piece if I understand correctly.
http://www.cbm.sfks.se/multicart/
The PRG file is possible to attach in VICE, but if you select a game from the menu the program will crash out, because you don't have access to the multicart hardware itself.
http://www.cbm.sfks.se/multicart/
The PRG file is possible to attach in VICE, but if you select a game from the menu the program will crash out, because you don't have access to the multicart hardware itself.
Anders Carlsson
Very good work, nice char and music but i think that was much more fun if you implement more categories and in mixed mode, for example a game like ALPHA ZOO may be in "A" menu and in "Educational" Menu or in PAL/NTSC, Sport, platforms, Classics and why not favorites using a disk/tape to store favorites info, i think it's a nice idea.
What do you think ? i may do some tests using your sources ?
What do you think ? i may do some tests using your sources ?
Everything is possible. The sky is the limit.
In order to make it simple, I decided to list each program only in one place. Also, to not require scrolling of pages, I limited each subpage of entries to 16-18. That is why S is divided into two parts. As the number of real cartridge games increases - I think there are quite a number of images not present on this list - as well as some other software also is converted to run from ROM, we would have to look over how to implement the menus.
I don't know about favorites. It means you would have to load data into RAM, which in the worst case may be overwritten once you start a game. Perhaps if the multicart has some battery backuped or writable Flash memory. This is way beyond my league and also out of the scope for this project I think. But anyone is free to experiment. That is why I made the sources public. I know in theory how to implement this list of favorites, but it also requires the menu software to have a mechanism to compose favorites.
In order to make it simple, I decided to list each program only in one place. Also, to not require scrolling of pages, I limited each subpage of entries to 16-18. That is why S is divided into two parts. As the number of real cartridge games increases - I think there are quite a number of images not present on this list - as well as some other software also is converted to run from ROM, we would have to look over how to implement the menus.
I don't know about favorites. It means you would have to load data into RAM, which in the worst case may be overwritten once you start a game. Perhaps if the multicart has some battery backuped or writable Flash memory. This is way beyond my league and also out of the scope for this project I think. But anyone is free to experiment. That is why I made the sources public. I know in theory how to implement this list of favorites, but it also requires the menu software to have a mechanism to compose favorites.
Anders Carlsson
ok, i take a look.carlsson wrote:we would have to look over how to implement the menus.
Yes, my idea is to optionally use a SEQ file "MULTICART.SEQ" from a disk with just some pointers for each favorite cart, yes i need to reload it after a reset but i think that doesn't require too much time and in any case it's optional, only if user wants.I don't know about favorites. It means you would have to load data into RAM, which in the worst case may be overwritten once you start a game.
I don't think to modify hardware in any case may be possible to use 3k ram with battery because doesn't change video pointers.Perhaps if the multicart has some battery backuped or writable Flash memory. This is way beyond my league and also out of the scope for this project I think.
This is my first MENU layout.
Heart symbol it's used to identify favorite games, in red there is the actual selected game, by pressing return start the game.
Up/Down arrows to move selection
F1 to enter in the Help screen ???
F2 to set/unset selected game as favorite
F3 To enter to the Filter Menu (see below)
F4 Music On/OFF
F5 Page Up
F7 Page Down
Filter Menu settings idea:
and for each element the choice is (YES/NO/ALL)
My typical setting may be:
I need just one byte in ROM for each menu element to check F1/F8 filters and 10 bytes to store the filters selection and music choice + 255 bytes or 255/8 bytes if i'm not lazy on disk to load Favorite Option (255 games max right ?).
My idea is to check if exist a Drive from #4 to #30 and if exist automatically load "MULTICART.SEQ" file, if during game selection the user changes filters or set/unset favorite resave the "MULTICART.SEQ" file before start the game.
That's all, what do you think ?
Heart symbol it's used to identify favorite games, in red there is the actual selected game, by pressing return start the game.
Up/Down arrows to move selection
F1 to enter in the Help screen ???
F2 to set/unset selected game as favorite
F3 To enter to the Filter Menu (see below)
F4 Music On/OFF
F5 Page Up
F7 Page Down
Filter Menu settings idea:
Code: Select all
F1 NTSC
F2 PAL
F3 ARCADE
F4 SPORT
F5 SHOT EM UP
F6 PLATFORMS
F7 ADVENTURES
F8 EDUCATIONAL
C= FAVORITE
My typical setting may be:
Code: Select all
F1 NTSC ALL
F2 PAL YES
F3 ARCADE ALL
F4 SPORT ALL
F5 SHOT EM UP ALL
F6 PLATFORMS ALL
F7 ADVENTURES NO
F8 EDUCATIONAL NO
C= FAVORITE YES
My idea is to check if exist a Drive from #4 to #30 and if exist automatically load "MULTICART.SEQ" file, if during game selection the user changes filters or set/unset favorite resave the "MULTICART.SEQ" file before start the game.
That's all, what do you think ?