unebonnevie Posted September 7, 2015 Share Posted September 7, 2015 I saw Space Rocks and WOW! It's a 32KB ROM. I frankly didn't know that the Atari 2600 can take 32KB ROM. How is that wired? Thanks! Quote Link to comment Share on other sites More sharing options...
+FujiSkunk Posted September 7, 2015 Share Posted September 7, 2015 I'll leave the more technical details to those in the know, but the essential magic trick is called "bank switching". Pretty much all cartridge-based consoles can do it, though some support it more officially than others. Basically, a console can only see so much of a cartridge's program at a time. On the Atari 2600, it's 4KB. If you want to program a game with more than 4KB, you have to design your cartridge with more intelligent hardware so that when the console is told to access a particular spot within that 4KB, the hardware within the cartridge takes that as a cue to make a different 4KB of programming visible to the console -- to "switch banks" in other words. The console itself is none the wiser, and so it's up to the programmer to make these jumps without breaking the flow of the program. While people have more recently figured out how to make even 512KB programs work on the 2600, there actually was one 32KB game for the system while it was still officially on the market: Fatal Run, one of Atari's last releases for the 2600. Exactly how a cartridge is "wired" for bank switching depends on the bank switching method the programmer users. There are several popular standards to choose from, and a Google search on 2600 bank switching will dig up all the nitty gritty if no one else here offers the minutia. A game like Space Rocks however, needs a lot more than bank switching. Some really intelligent homebrewers have designed a cartridge that contains its own CPU and memory, and some other really intelligent homebrewers, like the guy who wrote Space Rocks, have written games that take advantage of that extra CPU and memory. Essentially those games are programmed to run on two completely different systems that are decades apart in technology, and then make sure the data used and generated by each system is shared properly with the other system. Search for details on the 2600 Melody Board and the Harmony Cartridge, and you'll have all you want to know. Here might be a good place to start. Quote Link to comment Share on other sites More sharing options...
unebonnevie Posted September 7, 2015 Author Share Posted September 7, 2015 I'll leave the more technical details to those in the know, but the essential magic trick is called "bank switching". Pretty much all cartridge-based consoles can do it, though some support it more officially than others. Basically, a console can only see so much of a cartridge's program at a time. On the Atari 2600, it's 4KB. If you want to program a game with more than 4KB, you have to design your cartridge with more intelligent hardware so that when the console is told to access a particular spot within that 4KB, the hardware within the cartridge takes that as a cue to make a different 4KB of programming visible to the console -- to "switch banks" in other words. The console itself is none the wiser, and so it's up to the programmer to make these jumps without breaking the flow of the program. While people have more recently figured out how to make even 512KB programs work on the 2600, there actually was one 32KB game for the system while it was still officially on the market: Fatal Run, one of Atari's last releases for the 2600. Exactly how a cartridge is "wired" for bank switching depends on the bank switching method the programmer users. There are several popular standards to choose from, and a Google search on 2600 bank switching will dig up all the nitty gritty if no one else here offers the minutia. A game like Space Rocks however, needs a lot more than bank switching. Some really intelligent homebrewers have designed a cartridge that contains its own CPU and memory, and some other really intelligent homebrewers, like the guy who wrote Space Rocks, have written games that take advantage of that extra CPU and memory. Essentially those games are programmed to run on two completely different systems that are decades apart in technology, and then make sure the data used and generated by each system is shared properly with the other system. Search for details on the 2600 Melody Board and the Harmony Cartridge, and you'll have all you want to know. Here might be a good place to start. Thanks! I found the site http://www.grandideastudio.com/portfolio/pixels-past/, which the explanation AND the PCB and schematic files as well. 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.