Jump to content



0

What is considered a normal cart size for 7800?


21 replies to this topic

#1 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sat Nov 8, 2008 11:48 AM

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

#2 Crazyace OFFLINE  

Crazyace

    Stargunner

  • 1,012 posts
  • Location:London / HK / Tokyo / San Fransisco

Posted Sat Nov 8, 2008 12:17 PM

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

#3 Mitch OFFLINE  

Mitch

    Quadrunner

  • 5,768 posts
  • 7800 Guy
  • Location:Southern California, USA

Posted Sat Nov 8, 2008 12:49 PM

This page might be helpful.

Mitch

#4 DracIsBack ONLINE  

DracIsBack

    River Patroller

  • 3,963 posts
  • Location:Toronto, Canada

Posted Sat Nov 8, 2008 1:04 PM

View PostCrazyace, on Sat Nov 8, 2008 1:17 PM, said:

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

Nice way to casually toss out a bone. :-)

#5 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sat Nov 8, 2008 6:23 PM

View PostMitch, on Sat Nov 8, 2008 1:49 PM, said:

This page might be helpful.

Mitch

Now dat's wut im talkin' 'bout!

Thanks Mitch!

#6 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sat Nov 8, 2008 6:26 PM

View PostCrazyace, on Sat Nov 8, 2008 1:17 PM, said:

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.

#7 kenfused OFFLINE  

kenfused

    Stargunner

  • 1,192 posts
  • Location:Columbus, Ohio

Posted Sat Nov 8, 2008 8:57 PM

View PostGorf, on Sat Nov 8, 2008 7:26 PM, said:

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

#8 Shannon OFFLINE  

Shannon

    Born To Be Insane

  • 7,186 posts
  • Pac-man Fever
  • Location:Arcade

Posted Sun Nov 9, 2008 12:49 AM

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.

#9 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sun Nov 9, 2008 5:01 AM

View Postkenfused, on Sat Nov 8, 2008 9:57 PM, said:

View PostGorf, on Sat Nov 8, 2008 7:26 PM, said:

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

#10 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sun Nov 9, 2008 5:03 AM

View PostShannon, on Sun Nov 9, 2008 1:49 AM, said:

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.


Hey Shannon,

Do you know if the cart RAM is fast enough to handle the DLL/DL's?

Thanks,
Steve

#11 supercat OFFLINE  

supercat

    Quadrunner

  • 6,367 posts

Posted Sun Nov 9, 2008 11:31 AM

View PostGorf, on Sun Nov 9, 2008 5:03 AM, said:

Do you know if the cart RAM is fast enough to handle the DLL/DL's?

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.

#12 Mitch OFFLINE  

Mitch

    Quadrunner

  • 5,768 posts
  • 7800 Guy
  • Location:Southern California, USA

Posted Sun Nov 9, 2008 4:11 PM

View PostGorf, on Sun Nov 9, 2008 3:01 AM, said:

View Postkenfused, on Sat Nov 8, 2008 9:57 PM, said:

View PostGorf, on Sat Nov 8, 2008 7:26 PM, said:

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

#13 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sun Nov 9, 2008 4:13 PM

View Postsupercat, on Sun Nov 9, 2008 12:31 PM, said:

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

#14 Mitch OFFLINE  

Mitch

    Quadrunner

  • 5,768 posts
  • 7800 Guy
  • Location:Southern California, USA

Posted Sun Nov 9, 2008 10:40 PM

View PostMitch, on Sun Nov 9, 2008 2:11 PM, said:

View PostGorf, on Sun Nov 9, 2008 3:01 AM, said:

View Postkenfused, on Sat Nov 8, 2008 9:57 PM, said:

View PostGorf, on Sat Nov 8, 2008 7:26 PM, said:

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

#15 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sat Nov 15, 2008 5:59 AM

View PostMitch, on Sun Nov 9, 2008 11:40 PM, said:

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

#16 Mitch OFFLINE  

Mitch

    Quadrunner

  • 5,768 posts
  • 7800 Guy
  • Location:Southern California, USA

Posted Sat Nov 15, 2008 1:33 PM

View PostGorf, on Sat Nov 15, 2008 3:59 AM, said:

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

#17 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Sat Nov 15, 2008 5:31 PM

View PostMitch, on Sat Nov 15, 2008 2:33 PM, said:

View PostGorf, on Sat Nov 15, 2008 3:59 AM, said:

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.

#18 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Tue Nov 18, 2008 7:18 AM

View PostShannon, on Sun Nov 9, 2008 1:49 AM, said:

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.

#19 Shannon OFFLINE  

Shannon

    Born To Be Insane

  • 7,186 posts
  • Pac-man Fever
  • Location:Arcade

Posted Tue Nov 18, 2008 7:47 AM

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

0x4000-0x7FFF...

:(

#20 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Tue Nov 18, 2008 10:04 AM

View PostShannon, on Tue Nov 18, 2008 8:47 AM, said:

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.

#21 Mitch OFFLINE  

Mitch

    Quadrunner

  • 5,768 posts
  • 7800 Guy
  • Location:Southern California, USA

Posted Tue Nov 18, 2008 10:49 AM

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

#22 Gorf OFFLINE  

Gorf

    River Patroller

  • 4,633 posts

Posted Tue Nov 18, 2008 10:55 AM

View PostMitch, on Tue Nov 18, 2008 11:49 AM, said:

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!!!




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users