Gorf Posted November 8, 2008 Share Posted November 8, 2008 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 Quote Link to comment Share on other sites More sharing options...
Crazyace Posted November 8, 2008 Share Posted November 8, 2008 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 Quote Link to comment Share on other sites More sharing options...
+Mitch Posted November 8, 2008 Share Posted November 8, 2008 This page might be helpful. Mitch Quote Link to comment Share on other sites More sharing options...
DracIsBack Posted November 8, 2008 Share Posted November 8, 2008 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. :-) Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 9, 2008 Author Share Posted November 9, 2008 This page might be helpful. Mitch Now dat's wut im talkin' 'bout! Thanks Mitch! Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 9, 2008 Author Share Posted November 9, 2008 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. Quote Link to comment Share on other sites More sharing options...
kenfused Posted November 9, 2008 Share Posted November 9, 2008 My real question though is does MESS or ProSystem emu detect thisor 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 Quote Link to comment Share on other sites More sharing options...
Shannon Posted November 9, 2008 Share Posted November 9, 2008 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. Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 9, 2008 Author Share Posted November 9, 2008 My real question though is does MESS or ProSystem emu detect thisor 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 Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 9, 2008 Author Share Posted November 9, 2008 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 Quote Link to comment Share on other sites More sharing options...
supercat Posted November 9, 2008 Share Posted November 9, 2008 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. Quote Link to comment Share on other sites More sharing options...
+Mitch Posted November 9, 2008 Share Posted November 9, 2008 My real question though is does MESS or ProSystem emu detect thisor 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 Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 9, 2008 Author Share Posted November 9, 2008 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 Quote Link to comment Share on other sites More sharing options...
+Mitch Posted November 10, 2008 Share Posted November 10, 2008 My real question though is does MESS or ProSystem emu detect thisor 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 Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 15, 2008 Author Share Posted November 15, 2008 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 Quote Link to comment Share on other sites More sharing options...
+Mitch Posted November 15, 2008 Share Posted November 15, 2008 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 Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 15, 2008 Author Share Posted November 15, 2008 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. Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 18, 2008 Author Share Posted November 18, 2008 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. Quote Link to comment Share on other sites More sharing options...
Shannon Posted November 18, 2008 Share Posted November 18, 2008 Yes MESS shows pokey sitting at the same address range that Supercart RAM would normally sit. 0x4000-0x7FFF... Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 18, 2008 Author Share Posted November 18, 2008 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 ) frame buffer. Quote Link to comment Share on other sites More sharing options...
+Mitch Posted November 18, 2008 Share Posted November 18, 2008 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 Quote Link to comment Share on other sites More sharing options...
Gorf Posted November 18, 2008 Author Share Posted November 18, 2008 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!!! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.