Jump to content
IGNORED

What is considered a normal cart size for 7800?


Gorf

Recommended Posts

Does anyone know the 'standard' 7800 cart? I also would like to know

how you do more than the norm. From what I can tell the total 'normal'

space is the sally's 16 bit address space-registers and RAM or 64k.

 

Does the coder tell the 7800 via the header in the cart that it is larger?

Also how much more RAM can be added to the 7800 cart?

 

If I could have the internal RAM for graphic needs and have some cart

RAM for the variables and such some pretty nice graphical tricks could

no doubt be displayed.

 

Is there a link with this type of info somewhere on AA?

 

Thanks in advance,

 

Gorf

Link to comment
Share on other sites

The supercart has 8k of ram at $4000 as well as the 4k built into the console.. ( The memory space was 16k for ram )

I never used it in code at the time , Chronicles was designed as a 128K rom only game ( 16k code, and 6 banks of 16k for each level + 16k for the shop ) - but there was a lot of wastage. If I finished it today I wouldn't bother compressing it though :)

All the Atari carts are 16k fixed at $c000-$ffff , and a 16k bank switched in at $8000-$bfff ( I switched by writing 0-7 to $8000 )

Do you have the 7800_Devkit pdf? I think it's documented more fully there

Link to comment
Share on other sites

The supercart has 8k of ram at $4000 as well as the 4k built into the console.. ( The memory space was 16k for ram )

I never used it in code at the time , Chronicles was designed as a 128K rom only game ( 16k code, and 6 banks of 16k for each level + 16k for the shop ) - but there was a lot of wastage. If I finished it today I wouldn't bother compressing it though :)

All the Atari carts are 16k fixed at $c000-$ffff , and a 16k bank switched in at $8000-$bfff ( I switched by writing 0-7 to $8000 )

Do you have the 7800_Devkit pdf? I think it's documented more fully there

 

 

This is good info......

 

My real question though is does MESS or ProSystem emu detect this

or do I have to tell either? I dont have a 7800 for dev so an EMU is

the only way I can do it right now.

Link to comment
Share on other sites

My real question though is does MESS or ProSystem emu detect this

or do I have to tell either? I dont have a 7800 for dev so an EMU is

the only way I can do it right now.

If you put the file in A78 format (which I think is the only version MESS supports), the header has the bank switching, RAM, and POKEY config in it.

With bin files emulators (and the CC2) utilities may use databases/files of games (probably MD5 Checksums) to identifying games and select the appropriate format (or may ask you).

 

--Ken

Link to comment
Share on other sites

My real question though is does MESS or ProSystem emu detect this

or do I have to tell either? I dont have a 7800 for dev so an EMU is

the only way I can do it right now.

If you put the file in A78 format (which I think is the only version MESS supports), the header has the bank switching, RAM, and POKEY config in it.

With bin files emulators (and the CC2) utilities may use databases/files of games (probably MD5 Checksums) to identifying games and select the appropriate format (or may ask you).

 

--Ken

 

Excellent! Do you have any info as to how to set up the header? I would like

to do an A78 file using the 4k RAM and the highest amount of ROM without

bankswitching and the same with bankswitching.

 

Any links or info on this would be most appreciated.

 

Thanks Ken,

 

Steve

Link to comment
Share on other sites

My real question though is does MESS or ProSystem emu detect this

or do I have to tell either? I dont have a 7800 for dev so an EMU is

the only way I can do it right now.

If you put the file in A78 format (which I think is the only version MESS supports), the header has the bank switching, RAM, and POKEY config in it.

With bin files emulators (and the CC2) utilities may use databases/files of games (probably MD5 Checksums) to identifying games and select the appropriate format (or may ask you).

 

--Ken

 

Excellent! Do you have any info as to how to set up the header? I would like

to do an A78 file using the 4k RAM and the highest amount of ROM without

bankswitching and the same with bankswitching.

 

Any links or info on this would be most appreciated.

 

Thanks Ken,

 

Steve

 

Here's the A78 header documentation.

 

/*	Header format
0	  Header version	 - 1 byte
1..16  "ATARI7800	  "  - 16 bytes
17..48 Cart title		 - 32 bytes
49..52 data length		- 4 bytes
53..54 cart type		  - 2 bytes
bit 0 0x01 - pokey cart
bit 1 0x02 - supercart bank switched
bit 2 0x04 - supercart RAM at $4000
bit 3 0x08 - additional ROM at $4000

bit 8-15 - Special
	0 = Normal cart
	1 = Absolute (F18 Hornet)
	2 = Activision

55	 controller 1 type  - 1 byte
56	 controller 2 type  - 1 byte
0 = None
1 = Joystick
2 = Light Gun
57  0 = NTSC/1 = PAL

100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes

Versions:
Version 0: Initial release
Version 1: Added PAL/NTSC bit. Added Special cart byte.
		   Changed 53 bit 2, added bit 3

*/

 

I've never seen a game with 4K RAM on the cart. It's usually 8K or 16K of RAM on there.

For non bankswitched games you basically have 48K to work with. I would guess that 32K of ROM and 16K of RAM would be the easiest without bankswitching. If you are using bankswitching the skys the limit. If you are trying to stay within what Atari used back in the day then it would be 128K ROM and 16K RAM.

 

Mitch

Link to comment
Share on other sites

The issue wouldn't just be one of speed. I would expect a normal RAM cart to control its enable using the phi2 clock for synchronization. The phi2 clock is not meaningful, however, during a DL or DLL fetch.

 

Makes sense.

 

But I could still use that cart RAM as a character definition map, no?

 

I m thinking some outboard RAM would be great to set up a vic-20 like

hi-res buffer using RAM for the character map instead of ROM. Then you

just arrange a screenful all the characters order from top to bottom and

then left and right.

 

Its more of a pain to deal with than a straight forward linear bit map buffer

but at least you could have some animations going onscreen in the back

ground and have an easier time of drawing lines and points and circles.

 

Let's say for instance, if I were to try to pull off an accurate Gorfian Flagship

explosion on the 7800 it would be much better served in such a buffered setup.

Im certainly open to ideas on how I might otherwise pull such a graphical

explosion off without a frame buffer of sorts.

 

If there are reasons as to why this may not work, I'd like to hear them as well.

 

Thanks supercat

Link to comment
Share on other sites

My real question though is does MESS or ProSystem emu detect this

or do I have to tell either? I dont have a 7800 for dev so an EMU is

the only way I can do it right now.

If you put the file in A78 format (which I think is the only version MESS supports), the header has the bank switching, RAM, and POKEY config in it.

With bin files emulators (and the CC2) utilities may use databases/files of games (probably MD5 Checksums) to identifying games and select the appropriate format (or may ask you).

 

--Ken

 

Excellent! Do you have any info as to how to set up the header? I would like

to do an A78 file using the 4k RAM and the highest amount of ROM without

bankswitching and the same with bankswitching.

 

Any links or info on this would be most appreciated.

 

Thanks Ken,

 

Steve

 

Here's the A78 header documentation.

 

/*	Header format
0	  Header version	 - 1 byte
1..16  "ATARI7800	  "  - 16 bytes
17..48 Cart title		 - 32 bytes
49..52 data length		- 4 bytes
53..54 cart type		  - 2 bytes
bit 0 0x01 - pokey cart
bit 1 0x02 - supercart bank switched
bit 2 0x04 - supercart RAM at $4000
bit 3 0x08 - additional ROM at $4000

bit 8-15 - Special
	0 = Normal cart
	1 = Absolute (F18 Hornet)
	2 = Activision

55	 controller 1 type  - 1 byte
56	 controller 2 type  - 1 byte
0 = None
1 = Joystick
2 = Light Gun
57  0 = NTSC/1 = PAL

100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes

Versions:
Version 0: Initial release
Version 1: Added PAL/NTSC bit. Added Special cart byte.
		   Changed 53 bit 2, added bit 3

*/

 

I've never seen a game with 4K RAM on the cart. It's usually 8K or 16K of RAM on there.

For non bankswitched games you basically have 48K to work with. I would guess that 32K of ROM and 16K of RAM would be the easiest without bankswitching. If you are using bankswitching the skys the limit. If you are trying to stay within what Atari used back in the day then it would be 128K ROM and 16K RAM.

 

Mitch

 

Also, just in case you don't have the Atari dev docs, you can find them here.

 

Mitch

Link to comment
Share on other sites

Here's the A78 header documentation.

 

Header format

0 Header version - 1 byte

1..16 "ATARI7800 " - 16 bytes

17..48 Cart title - 32 bytes

49..52 data length - 4 bytes

53..54 cart type - 2 bytes

bit 0 0x01 - pokey cart

bit 1 0x02 - supercart bank switched

bit 2 0x04 - supercart RAM at $4000

bit 3 0x08 - additional ROM at $4000

 

bit 8-15 - Special

0 = Normal cart

1 = Absolute (F18 Hornet)

2 = Activision

 

55 controller 1 type - 1 byte

56 controller 2 type - 1 byte

0 = None

1 = Joystick

2 = Light Gun

57 0 = NTSC/1 = PAL

 

100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes

 

Versions:

Version 0: Initial release

Version 1: Added PAL/NTSC bit. Added Special cart byte.

Changed 53 bit 2, added bit 3

 

 

I understand the header but where does this get placed?

I am assuming this is in the source code somewhere, no?

 

Thanks

Link to comment
Share on other sites

I understand the header but where does this get placed?

I am assuming this is in the source code somewhere, no?

 

Thanks

 

It sits at the start of the code. I'm not sure how real coders do it, I usually just open a hex editor and copy and paste the header from another game with similar attributes. Then I modify the name section and anything else that needs to be changed.

Dan Boris also has a small utility on his web site that will generate one for you. http://atarihq.com/danb/a7800.shtml Look in the development tools section.

 

Mitch

Link to comment
Share on other sites

I understand the header but where does this get placed?

I am assuming this is in the source code somewhere, no?

 

Thanks

 

It sits at the start of the code. I'm not sure how real coders do it, I usually just open a hex editor and copy and paste the header from another game with similar attributes. Then I modify the name section and anything else that needs to be changed.

Dan Boris also has a small utility on his web site that will generate one for you. http://atarihq.com/danb/a7800.shtml Look in the development tools section.

 

Mitch

 

 

Yup I figured it out today that 78hdr.exe just needs the correct parameters. I now have 6 channels of sound

for my game.

 

Thanks.

Link to comment
Share on other sites

MESS handles the supercart with 4k RAM just fine. What it does not handle is the ram used by the prototype of "rescue on fractalus" by Lucasarts.

 

 

The RoF cart setup would probably not suit my needs anyway but what I'd like to be able

to do is a pokey and RAM on the cart. It seems that is not possible. When I set the header

for pokey only the game works fine. If I set the pokey and RAM bits it don't work.

 

I am assuming the pokey speads itself across the area where the RAM would go

and is why RAM cant be used along side it.

Link to comment
Share on other sites

Yes MESS shows pokey sitting at the same address range that Supercart RAM would normally sit.

 

0x4000-0x7FFF...

 

:(

 

Sad indeed! I'll have to just deal with a 2 channel sound. It boggles the mind though....

 

Why waste an entire 8 k block of potential RAM space for a chip that only requires 16 registers

worth of i/o? I guess they save on decoding. Im sure there is a way to electronically have both

on a cart but it seems it was never done. Im sure a new pcb design would be needed as you'd

need decode. I'd set it up so you'd have pokey a $7FF0 this way everything from $4000-$7FEF

would be RAM for more enhanced games and even a REAL(faked with char maps of course :P )

frame buffer.

Link to comment
Share on other sites

I think it has more to do with the fact that no one has done it so they don't bother to emulate it. On a real 7800 it should work, you would need a custom cart board though since none of the current ones can handle that.

 

Mitch

 

 

That's the trouble here. I dont have a 7800 outside of my play unit. I wont hack that one up.

Im depending on the emulator. I dont know if Dan B. released the source to his emu but if

so, maybe its time I looked at it and added such support....that or MESS...MESS however is

exactly that...a friggin mess!!!

Link to comment
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...