#Rom

Atari 2600 Cartridge Emulation – Part 3

After having had a bit of a look at how the cartridges work in general in Part 1 and working on the Pico photo frame application in Part 2 this post looks at a few options for actual custom 2600 ROMs.

Specifically, I’m looking at two options a the moment, one for a basic single ROM image and one that allows switching between different images.

Single ROM

For the single ROM variant, I’ve created a variation of the following: https://www.pcbway.com/project/shareproject/A_simple_Atari_VCS_2600_2_or_4K_game_cartridge_f6e80523.html

To be honest, I’m not sure where I found the original (the above is apparently based on this one: https://longhornengineer.com/2011/07/26/atari-2600-cart-2k4k-pcb/), but I wanted a way to break out the cart signals for some future experiments, so I added some extra headers into the KiCAD project.

This has a footprint for a 2732 EPROM on the back with a single 74LS04 and 100nF capacitor on the front.

I managed to get some 2732 EPROMs online and was able to successfully read them with my XGecu Pro, but could see they already had some data in them. After asking on Mastodon about UV EPROM erasers, I eventually decided I could work with a cheap one from overseas. As long as I wasn’t going to hang around in the same room whilst it was on 😉

The EPROMs erased fine, as far as I could see, but when it came to reprogramming them I was struggling. The devices all have the markings “MBM2732-45” and what, according to this list, is the logo for Fujitsu. Sure enough, in my XGecu programmer that is an option, but when selected, the programming doesn’t work.

What does seem to happen however, is that a single byte, or sometimes half a byte, gets programmed before verification fails. From this, I wondered if either the programming voltage wasn’t high enough or maybe the pulses used for programming weren’t long enough.

Looking at the chips in detail, I also suspect it is quite likely they’ve been rebadged at some point, so to be honest, they could be anything under the markings.

I took a punt on some different options, looking for some other models with an “M” and tried Intel, “M2732” and curiously that seemed to work fine!

The key differences were programming voltage (VPP=25V) and Pulse delay (500uS) compared to the MBM2732 settings (21V, 200uS). Both use the same VDD Write (5.5V) and VCC Verify (5.0V). After a little experimenting, it turns out that even back on the Fujitsu MBM2732 setting, changing VPP up to 25V from 21V is enough to reprogram all four of the devices I have.

Loading up a basic 4K Space Invaders ROM, seems to now work fine.

Switched ROM

To support switching between different ROM image, I’m using this one unmodified, i.e. straight as it comes: https://www.pcbway.com/project/shareproject/ATARI_2600_MULTI_GAME_CARTRIDGE_PCB.html

This PCB supports up to a 27C512 ROM, allowing for 16 x 4K images. It states it could also be used with a 27C64, 128 or 256 with naturally less images available. It uses four DIP switches (or jumper headers if preferred) to set the state of A12-A15 for the ROM and thus determine which part of the 64K ROM will be in use.

Here is an annotated version of the PCB.

From this we can see that the EPROMs A12-A15 will be pulled HIGH by default via the resistors, but that setting any of the DIP switches will pull them to GND. This provides ROM addresses as follows:

A15A14A13A12ROM Addr2600 AddrHHHHF000-FFFFF000-FFFFHHHLE000-EFFFF000-FFFFHHLHD000-DFFFF000-FFFFLLLL0000-0FFFF000-FFFF

As is common with the 2600 the convention is to put the ROM at F000 in the Atari’s memory map, even though, with just 13 address lines, it could be at any of 8 mirrored positions in the address space.

Also as is common with 2600 cartridges, the Atari’s A12 line is used, via one of the inverters in a 74LS04, as the ROM chip enable /CE line. The unused inputs for the 74LS04 are tied to 5V.

To load 16 4K ROMs onto the device, I’ve used my XGecu Pro to program a 27C512. It is possible to load 4K binary files at different addresses as shown below.

The “TO Buffer Start Addr(Hex)” should be set to the relevant 4K chunk, so 00000, 01000, 02000, through to 0E000 and finally 0F000. But the “Clear Buffer when loading the file” option has to be selected to “Disable” otherwise it clears the rest of the buffer on load. Unfortunately this has to be selected every time.

But once all 16 bin files have been loaded the resultant buffer can be saved as a new, combined bin file for later use.

Here is the full BOM for this PCB:

  • 1x 27C512 EEPROM
  • 1x 74LS04 hex inverter
  • 4x 10K resistors
  • 1x 100nF capacitor
  • 1x 4-way DIP switch or 2×4 pin headers
  • 1x 28-way wide DIP socket
  • 1x 14-way DIP socket

Having used the cart, I am wondering if I should build another one with a ZIF socket for the ROM as getting it in and out of the socket feels like I am guaranteed to lose a leg off the chip at some point…

Conclusion

After a few false starts, eventually both of these options turned out to be fairly straightforward to get going.

I already have an option for a “soft ROM”, as described in Atari 2600 Cartridge Emulation – Part 2, but having recently read about OneROM, I’m now wondering if that could act as a drop-in replacement for the 2732.

It is designed to replace the 2332 used on Commodore computers, but the pinouts are very similar and I think there might be options in the code to configure it for use as a 2732 too.

I’ve sent off my first PCB assembly order using the details provided by Piers Rocks for the OneROM Fire (RP2350 – 24 pin variant – fire-24-c), so fingers crossed. There was one component from the BOM that seemed unavailable – the 4u7 0402 capacitors, but I’ve substituted in what appear to be compatible ones.

When I get it back, I’ll come back here and add a note about how it goes. I suspect getting it up and running with be a complete post in its own right.

Another option is the Uno Cart 2600, more on that here: https://github.com/robinhedwards/UnoCart-2600.

Kevin

#atari #atari2600 #rom

ntv Nachrichten - inoffiziellntv@anonsys.net
2026-01-07
In Rom wird vor 48 Jahren auf drei Neofaschisten geschossen, sie sterben sofort beziehungsweise nach kurzer Zeit. Bis heute wird an den Vorfall erinnert. Dabei kommt es mehrmals zum Zeigen einer unter Umständen verbotenen Geste.#International #FratellidItalia #Demonstrationen #Rom #Gedenken #Rechtsextremismus #Rechtspopulismus #GiorgiaMeloni
Gedenken von Mussolini-Anhängern: Hunderte zeigen bei Versammlung in Rom Faschistengruß
Goalimpactgoalimpact
2026-01-06

Lecce host Roma in Serie A. Roma slight favorite in a tight three-way clash; Lecce hopeful, a draw is plausible. Kickoff 18:00 CET.

US Lecce 32.4%
Draw 30.8%
AS Rom 36.8%

Starting XIs

US Lecce: Wladimiro Falcone, Tiago Gabriel, Esmevânio Kialonda Gaspar, Antonino Gallo, Danilo Veiga, Ylber Ramadani, Youssef Maleh, Mohamed Kaba, Riccardo Sottil, Lameck Banda, Francesco Camarda
AS Rom: Mile Svilar, Jan Ziolkowski, Daniele Ghilardi, Zeki Çelik, Wesley, Bryan Cristante, Kouadio Koné, Niccolò Pisilli, Stephan El Shaarawy, Paulo Dybala, Evan Ferguson

US Lecce 32.4%, Draw 30.8%, AS Rom 36.8%.
2026-01-06

#CfP Quo vadis, impegno? Tendenzen und Ideen engagierter Musik von den 1960er Jahren bis heute. Symposium zu Ehren von Luca Lombardis 80. Geburtstag

📌 #Symposium in #Rom | 27./28.03.2026 am #DHIRom und am #GoetheInstitutRom

📅 Deadline: 13.01.2026

🔗dhi-roma.it/fileadmin/user_upl

Portrait Luca Lombardi
VCD Nordrhein-Westfalenvcdnrw@nrw.social
2026-01-05

#Rom führt im Zentrum #Tempo30 ein! Damit will die Gemeinde die Zahl der Verkehrstoten auf Null senken (#VisionZero). Die Maßnahme soll die Sicherheit erhöhen, Lärm reduzieren und die Stadt für #Radfahrende und #Fußgänger*innen attraktiver machen. 🚲🚶‍♀️
derstandard.at/story/300000030

DER SPIEGEL | inoffiziellderspiegel_de@anonsys.net
2026-01-04
Agrippina die Ältere kam aus der römischen Kaiserfamilie und bewahrte mehrere römische Legionen in Germanien und ihren Mann vor Desastern. Doch damit schuf sie sich in der Heimat einflussreiche Feinde.#Geschichte #RömischesReich #Rom #Rhein #Augustus
(S+) Agrippina die Ältere: Diese Frau rettete römische Legionen vor dem Untergang
Goalimpactgoalimpact
2026-01-03

Atalanta slight favorite to win, a draw is possible, Roma ready to respond in a tight Serie A showdown. Kickoff 20:45 CET.

Atalanta Bergamo 40.0%
Draw 30.5%
AS Rom 29.4%

Starting XIs

Atalanta Bergamo: Marco Carnesecchi, Berat Djimsiti, Giorgio Scalvini, Sead Kolasinac, Lorenzo Bernasconi, Marten de Roon, Éderson, Nicola Zalewski, Davide Zappacosta, Charles De Ketelaere, Gianluca Scamacca
AS Rom: Mile Svilar, Jan Ziolkowski, Gianluca Mancini, Mario Hermoso, Zeki Çelik, Devyne Rensch, Bryan Cristante, Kouadio Koné, Matías Soulé, Paulo Dybala, Evan Ferguson

Atalanta Bergamo 40.0%, Draw 30.5%, AS Rom 29.4%.

Is there a good sql query builder library for #ruby for chainable wheres?

I've got a ~1000 line toy project that I spurted out this week as an exercise in building a web application with minimal dependencies, and right now it's just #rack, #puma, and #sqlite3...

I've spent too much time database wrangling, and I don't _mind_ that but would like something light-and-tight that is small enough I can read most of the code in an afternoon...

Mostly what I really want is something to make chainable where statements 😅

I started looking at both #ROM and #Sequel both do A Lot.

#RubyLang #Programming #AskFedi

2026-01-01
Happy New Year mes amis 🥳✨
Stay curious!

#digitalart #toronto #ROM #ballet
2025-12-31

Dieser Artikel erschien schon vor einigen Tagen in der "Westfalenpost", ich habe aber versäumt, ihn zu posten - was ich hiermit nachhole. #Kirche #Katholisch #Orden #Schwestern #Nonnen #Goldenstein #Salzburg #Österreich #Kloster #Altenheim #Vatikan #Rom #Papst #SocialMedia #Pause #Kirchenrecht

2025-12-30

Zum #Jahresausklang hier eine Idee für das #Neujahr:

Wer die internationale #Politik verfolgt, dem sollte klar sein, dass #Europa und die #EU eine riesige Chance sind - für #Deutschland wie für #Frankreich oder für #Polen für #Sachsen wie für #Bayern oder #Hessen, für #Madrid #Rom oder #Athen - schlicht alle Europäer!

Nur mit #Zusammenhalt und #Zusammenarbeit können wir unsere #Souverenität erhalten und werden kein Spielball von #Putin und #Russland, #Trump, #Bigtech und den #USA oder #Xi und #China

Dazu müssen wir Europa von innen stärken. Wir müssen die Insel sein, der das #Leben für die Mehrheit der #Menschen erstrebenswert ist, in der #Wissenschaft respektiert wird, in der #Daten uns gehören und die ihre eigenen #Werte des #Humanismus hochhält.

Auf dieser Basis können wir anschließend #Vorbild und #Partner auch für andere Länder oder sogar Regionen dieser #Welt sein!

Lasst uns damit anfangen - jetzt!

eab-berlin.eu/europa-jetzt-abe

Goalimpactgoalimpact
2025-12-29

ASR hold a slim edge in a tight Serie A clash vs Genua. Expect a balanced, purposeful battle as both sides chase a crucial win. Kickoff 20:45 CET.

AS Rom 48.4%
Draw 29.0%
Genua CFC 22.6%

Starting XIs

AS Rom: Mile Svilar, Jan Ziolkowski, Gianluca Mancini, Mario Hermoso, Zeki Çelik, Wesley, Bryan Cristante, Kouadio Koné, Matías Soulé, Paulo Dybala, Evan Ferguson
Genua CFC: Daniele Sommariva, Leo Østigård, Johan Vásquez, Sebastian Otoa, Aarón Martín, Brooke Norton-Cuffy, Morten Frendrup, Mikael Egill Ellertsson, Ruslan Malinovskyi, Caleb Ekuban, Vitinha

AS Rom 48.4%, Draw 29.0%, Genua CFC 22.6%.
TugaTech 🖥️tugatech@masto.pt
2025-12-29

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst