Jump to content

Superbanking from 8k all the way up to 1MB

Atari Charles

Recommended Posts

Superbanking SB

-if you write a game 32K up to 1MB it doesn't require a rewrite of the bankswitching, you just expand the program and keep on going. Based on the board you use of course. You could use SB to write an 8K game or up to 1 MB if you wish. The key is being able to make games as small or as large as you like. 1MB seems to be the limit with current technology. 256k seemed to be the limit both in the program and in hardware, until more recently.

Link to comment
Share on other sites

To answer your question try to understand this:


Bankswitching is a trick in which a larger storage chip is divided in multiple equal parts.

Most of the time, the game console can only see 1 part(a bank). Which bank is seen by the console is controlled by the cartridge pcb.


The pcb has some logic chips which will change the selected bank depending on a trigger(condition)

What this condition is, is chosen by the designer of the pcb. This can not be changed within the software.


A cartridge gets a very limited amount of data from the console. Basically the only thing a cartidge can tell is 1)if it gets power, 2) what the location of the last byte was that was accessed, 3) what data bits were send during a write.


This is not much to go by, so most cartridges would select a bank by hotspots in memory. In that case each bank has its own unique memory location that will trigger the bank being selected.


Another way would be to combine a hotspot with the data bits. That would trigger depending on the byte being written.


If I'm not mistaking then the system where this Superbanking is based on, will use a very basic counter. you can only advance one bank furter each time. The good thing is, there is NO limit in the design. The limit is decided by the size of the storage chip and the counter. But for most games this is useless since changing to any bank besides the one directly after the current one, will take too long. Unless you add other ways of triggering there is no fast way to jump to other banks.



Now for the simple answer... there is no real limit. But besides a multicard for 2k and 4k games, I see no use for this bankswitching.


a small note for noobies: cartridges like Melody and Symphony are a different story. They contain processors that run there own software. They can adapt to the needed bankswitching because deep inside is a processor faster and more powerfull then the one in the Atari itself.

Link to comment
Share on other sites

My new bankswitch board is not linear, you can select any bank within 256K, it supports super banking in two different ways, because it also supports a SARA chip. I did not want to go beyond 256K, because it would require a CPLD, or 2 PLD's, which is not cost effective and requires a lot more soldering. :P



Link to comment
Share on other sites

He was referring to a particular board which uses a bankswitching that he calls Super banking.

I'm not known to this particular board or what method of bankswitching it exactly supports. But of what I read in the other post, it is based on F0 (megaboy).

Which is nothing more than a counter triggered by accessing 1FF0.


I'm not sure if the information in the other post was correct though.

It actually confuses me since the name Superbanking was already in use for the banking your(meaning CPUWIZ's) new PCB supports.



Within the homebrew community we have a few boards that support large roms. I'm not sure if at current time any have been build with more than 256 banks, but I know of a few that do support 256k and which can be triggered to switch to any bank with a single opcode.

To add to the list, Blinky's MDMC supports 256 4k banks, which would result in 1MB of rom storage. I have yet to make a rom this size, but it is possible.

If you look at MDMC then you will notice that it has very much in common with SB. The one thing it does lack is CE RAM.

Edited by DrWho198
Link to comment
Share on other sites

Now for the simple answer... there is no real limit. But besides a multicard for 2k and 4k games, I see no use for this bankswitching.

I see some super-unrolled code and data which maybe shaved off a few cycles in a kernel here and there. At the cost of a lot of bankswitching and extreme code/data redundancy. Probably something like DPC(+) would be the better alternative here.


Else, for games, you need more RAM to be able to utilize that much ROM efficiently. E.g. you can design a really huge world map, but without RAM it becomes static and boring. So without RAM, this bankswitching is IMO more or less limited to storing bigger amounts of data which require little code (e.g. digital audio or video).

Edited by Thomas Jentzsch
  • Like 1
Link to comment
Share on other sites

I now realize that I mixed up what was mentioned in the oher post (Mega Board) with Super banking which was also mentioned there. It just made no sence to me.

It was this Mega Board that I was refering to, that seems to be useless unless you want to make a 4K game multicard.


Superbanking on the other hand is not useless, it is about the same as MDMC but supports less banks.

Although as you mentioned Thomas, for developing a single game on these carts, RAM should be added. But I don't think most poeple would use such big storage for a single game anyway.

I have been thinking about adding ram to an MDMC though, but I have other things on my mind right now. Besides, that would make the logic more complex anyway.

Edited by DrWho198
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.

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.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...