| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Making your own cartridge ROM
Hello!
I wonder if there is any good reference/tutorial/info text material on creating your own cart ROM (primarily in "Retro Replay format"). I never did this myself, but I am planning to do so. I know there is a special "header" ("CBM80" or something?) first of all which makes the c64 recognize that a cart is plugged in, and then there is all the bank switching stuff (there are docs from Jens Schoenfeld on that I guess), and also assemblers with special features for memory bank handling and so on (dreamass has some features in this direction, or...?). Is the "action replay" source code available somewhere (I heard that this was "floating around on the net")? I think all kind of info like this would be nice to have on http://codebase64.org
The main point here is not primarily that I wouldn't be able to figure things out from various sources of information, but rather that it would be nice to collect already existing info on this on codebase, since there isn't that much on this topic there right now.
Anyone got some info/tutorials on this topic? If there isn't any available, then I would love to see someone write a little about the requirements for making cart software on codebase. Yeah?
(By the way.. Is it just me, or do you people also get "Frantic" as one of the hotlinks on google when searching for "CSDb"? Huh? I guess I must be a very important c64 scener? ;)
//FTC
|
|
... 20 posts hidden. Click here to view all posts.... |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
two very useful things that i didnt find anywhere else are:
- a pseudo op that returns the bank number of a symbol. this allows to very easily build tables with bank/adress for a cross-bank-call-api
- the assembler can put functions into banks as they fit automatically, so you dont have to worry about memory layout. |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Ah! That sounds very useful indeed! Thanks for the info! |
| |
AlexC
Registered: Jan 2008 Posts: 299 |
Speaking about assemblers another "useful" feature popped into my head, but just for limited number of users and coders: Z80 support for C128. Again the use will be quite limited as Z80 speed is not astonishing to say at least but maybe if you were to build cart for CP/M... any other ideas? ;) |
| |
Bregalad Account closed
Registered: Jul 2008 Posts: 42 |
Speaking of that I have some experience with WLA-DS beacuse I wanted to code for many platforms.
It is pretty good, but it assumes the code is compiled into ROM, and does lack some proper supports for relocatable code (altough there is workarrounds for it).
Handling bankswitching with is is very convenient overall. A big drawback is that the author is not really caring any longer about it like he was before. |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Quote: two very useful things that i didnt find anywhere else are:
- a pseudo op that returns the bank number of a symbol. this allows to very easily build tables with bank/adress for a cross-bank-call-api
- the assembler can put functions into banks as they fit automatically, so you dont have to worry about memory layout.
@Groepaz: I looked in to this today, but didn't really find any info about this stuff that you mention here in the DreamAss docs. Are these features undocumented, or so? |
| |
AlexC
Registered: Jan 2008 Posts: 299 |
Quote: @Groepaz: I looked in to this today, but didn't really find any info about this stuff that you mention here in the DreamAss docs. Are these features undocumented, or so?
I think it's segment functionality but I'm not sure. Take a look at chapter 5 of DreamAss documentation if I remember correctly.
|
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
I eventually found the info. It was "hidden" in a section called "Terms" (I would have called that section "operators" or something like that). There is a operator called "segmentof" which is what I was looking for (and this operator is not mentioned in the manual section which deals with segments). I still didn't find any info regarding Groepaz second statement though... |
| |
AlexC
Registered: Jan 2008 Posts: 299 |
@enthusi: nice code :) Thanks for posting. The only problem is when your code after relocation goes higher than $8000 I guess.
I need to take a look at crt description because right now I'm looking for a solution to load packed code from cartridge and than relocate it into RAM and than have RAM at $0000-$FFFF or at least up to $CFFF. |
| |
MisterMSK Account closed
Registered: Jul 2009 Posts: 37 |
@enthusi: I was curious. What compiler you used for your cartridge making code? |
Previous - 1 | 2 | 3 - Next |