Jump to content
IGNORED

New Atari 2600 Mappers and Hardware Document


kevtris

Recommended Posts

Well I finally finished my "mega" document on mappers (bankswitching) and various pieces of peripheral hardware.

 

In it is all the mappers I know about, and the Supercharger, Supercharger demo unit, the tape format for same, and the Compumate.

 

If there's anything I missed lemme know and I will add it.

 

http://blog.kevtris....0%20Mappers.txt

  • Like 5
Link to comment
Share on other sites

As for 4A50, writes and reads to the same memory location are handled by an ingenious method called "magic writes." I'm not an expert on them, but as I understand it requires a FPGA or other hardware with bus hold circuitry (which provides a weak pullup/pulldown to the last logic level asserted on the bus).

 

As I understand, it works like this: Pretend the access is a read for the first part of the cycle - fetch the data and put it on the bus. Then, float the bus before any contention occurs (writes don't use the bus until late in the cycle.)

 

Then, late in the cycle, pretend the access is a write. Grab the value, store it to cart RAM.

 

If the access was actually a read, the bus hold will keep the value active so the 6507 can fetch it. And, the same value will be written back to cart RAM.

 

If the access was actually a write, the 6507 will override the bus hold circuitry, and the value will be written to cart RAM.

 

Pretty clever, huh? (oh, and I think this is right, but anyone correct me if I'm wrong!)

Link to comment
Share on other sites

Do the F8, F6 and F4 mappers have any reset circuitry? In other words, do they start on a random bank or is there a RC thing on /RST to ensure the latch is inited to the zeroth bank?

For Minutes and a Bit I assumed F8 starts on a random bank and put a jump to the bank 0 in bank 1's Start. I've seen demos assume otherwise (probably due to testing on a Harmony).

Link to comment
Share on other sites

Do the F8, F6 and F4 mappers have any reset circuitry? In other words, do they start on a random bank or is there a RC thing on /RST to ensure the latch is inited to the zeroth bank?

For Minutes and a Bit I assumed F8 starts on a random bank and put a jump to the bank 0 in bank 1's Start. I've seen demos assume otherwise (probably due to testing on a Harmony).

They start up in a random bank.

Link to comment
Share on other sites

I asked about this in another thread, but I guess it's somewhat related to this too. Any chance someone has more info on the CompuMate for improving its emulation in Stella? Specifically, how to communicate with the cassette player for loading/saving your own files, as well as accessing the SongMate and PictureMate tapes??

Link to comment
Share on other sites

Well I updated the things mentioned so far, except for the A450 and DPC+ stuff since I have not implemented them yet into my FPGA 2600. I updated the Compumate stuff, and you're right. I looked at the schematic of it I drew out and RAM's at 1800-1FFF. There's a huge chain of NAND gates used to generate its chip enable and I got 1 extra inversion in there.

 

I can document the Gameline modem, too... but I am wonder how useful this would be. I own several and have one taken apart, and I dumped the ROM on it awhile back. I also have VHS footage somewhere of the menu and it loading and running games.

 

Oh yeah, I should add information on how the atarivox works too.

 

Also, does anyone have ROM images I can use to test some of these homebrew mappers? I want to make sure my FPGA implementations work, and to verify my documentation is correct. I need examples for the following:

 

0840 econobanking

MC megacart

X07 Atariage

4A50

DPC+

 

 

I will update the posted version after I add a few more things.

Link to comment
Share on other sites

Also, does anyone have ROM images I can use to test some of these homebrew mappers? I want to make sure my FPGA implementations work, and to verify my documentation is correct. I need examples for the following:

 

0840 econobanking

MC megacart

X07 Atariage

4A50

DPC+

 

 

I will update the posted version after I add a few more things.

 

I wrote a bunch of demos a while back, 0840, x07, and 4A50 are attached to this post:

 

http://www.atariage....ost__p__1883110

 

The 4A50 demo probably isn't too useful because as far as I remember, it doesn't very many of the features. Supercat's Ruby Runner is a much better choice:

 

http://www.atariage....obile-monsters/

 

For x07, there's also this Mega Boy conversion:

 

http://www.atariage....44#entry1547344

 

There's DPC+ stuff here:

 

http://www.atariage....pc-programming/

 

I don't think the MC format has ever been used. I tried doing a demo once, and couldn't get it to work properly. Not really sure what happened with that.

 

You may also want to take a look at the new FA2 method being used in Star Castle:

 

http://www.atariage....astle-playable/

Link to comment
Share on other sites

I don't think the MC format has ever been used. I tried doing a demo once, and couldn't get it to work properly. Not really sure what happened with that.

 

If you were using Stella to test an MC cart, it could explain why you couldn't get it to work. MC has never been tested in Stella, since I don't have any test ROMs. In fact, I just noticed I added this comment to the top of the CartMC class:

 

// TODO - much more testing of this scheme is required
//	    No test ROMs exist as of 2009-11-08, so we can't be sure how
//	    accurate the emulation is
//	    Bankchange and RAM modification cannot be completed until
//	    adequate test ROMs are available
// TODO (2010-10-03) - support CodeAccessBase functionality somehow

Link to comment
Share on other sites

Well I updated the things mentioned so far, except for the A450 and DPC+ stuff since I have not implemented them yet into my FPGA 2600. I updated the Compumate stuff, and you're right. I looked at the schematic of it I drew out and RAM's at 1800-1FFF. There's a huge chain of NAND gates used to generate its chip enable and I got 1 extra inversion in there.

 

If you can find any documentation on how the CompuMate 'talks' to the cassette player, that would be great. Emulating the CompuMate itself is relatively easier (moreso because of your documentation), but what it does after pressing 'Load' or 'Save' as a command is more involved.

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