db Himself

Sega Saturn Internal Memory Mod with FRAM – no battery required

I was burned too many times when I power up my Sega Saturn to notice that my CR2032 had died. The CR2032 on the Sega Saturn is responsible for maintaining power to the internal battery-backed SRAM (i.e. your internal saves) and maintaining the system’s RTCC (real-time clock and calendar). When the battery dies, which seems to happen MUCH too frequently on my Saturn, you lose both the clock’s time and the internal saves. You can easily tell this has happened when you power up the system and you get the following screen prompting you to re-enter the time and date.

 

Ah Snap! If you’re busy like I am, you probably forgot to transfer your saves to a Cartridge Backup the last time you played – and now you’ve lost everything, including all meaning to your life!
A couple of weeks ago this happened to me for the hundredth time and I decided to do something about it! I usually am not a strong supporter of modding consoles but this time I set out to modify my Sega Saturn to use a non-volatile form of internal memory in order to get rid of this problem once and for all.

BRAM Circuit in Sega Saturn and Pinout Comparisons

I decided the ideal technology to use would be Ferroelectric RAM – it is designed in most cases to be a direct replacement to battery-backed SRAM applications. Below, from left to right, is:
  • Schematic of battery-backed SRAM from Sega Saturn
  • Pinout of Sega Saturn’s UPD43257B
  • Pinout of FM1808 (my candidate replacement chip)

The pinouts are almost perfect matches except for one pin. The UPD43257B has an active-high CE signal on pin 22 (driven by signal SCE2 on the schematic) whereas the FM1808 has an active-low #OE signal on pin 22. Tracing back the SCE2 on the Sega Saturn Schematics I found that it is originating from a battery management IC. This type of chip usually prevents bad writes during power down cycles. Clearly, this signal would not be necessary for the proper operation of the FM1808. So how to address the #OE signal issue on FM1808?

#WE Controlled Timing

Looking at the Saturn’s BRAM schematic more carefully, you’ll notice that it operates with only 2 control signals: SRAMCE and MWR. Inspecting the UPD43257B datasheet reveals device operation as follows:
  • Read – #CE1 = ‘0’ and #WE = ‘1’
  • Write – #CE1 = ‘0’ and #WE = ‘0’
Therefore, the Saturn doesn’t use an #OE signal for the BRAM. It simply strobes SRAMCE to read the BRAM contents. Luckily, the FM1808 can operate in a similar mode – #WE controlling timing. Below is an excerpt from the FM1808 datasheet.
As can be seen, the FM1808 can be operated with #OE being held low. If only #CE is strobed, then a read cycle occurs and dataout is present on DQ0-7 after a small delay. If however, #WE is also strobed after #CE, the read cycle is aborted (after T-wz) and a write cycle starts. This setup should result in minimal contention when a read cycle is aborted – 10ns to 15ns according to the datasheet. I figure this is safe since the BRAM isn’t accessed very often anyway. I decided to go ahead and try this!
I got a little surprise when I opened up the Saturn, I don’t have a UPD43257B SRAM in there, but luckily my UM62257M is equivalent so all my research was still relevant!

UM62257M SRAM in my Sega Saturn Replaced with Ramtron FM1808  #OE hardwired low
I will note that, even though I like to think of myself as a soldering expert, removing this chip proved to be slightly difficult. I’ve lifted many chips in my lifetime and never have I lifted 3 pads. I even used my hot-air station in order to be extra careful! Not sure if that has anything to do with the age or quality of the PCB. Either way, it’s nothing that couldn’t be fixed. Notice on the “#OE hardwired low” picture how I repaired pins 25, 21 and 3 with 28AWG bare wire. And before anyone asks, yes I did clean the board after these pictures were taken.

It’s Working!

Put everything back together and power up the Saturn, BAM! Internal memory is detected and holding save files. I powered down the console for 2 days (probably a bit excessive) with a save file in the FRAM in order to be certain that it was operating correctly. There’s no picture really that can show this is working properly but I figured I would show a picture of the memory being detected by my 3rd party Action Replay Cart. The Sega Saturn’s internal memory manager also cannot tell the difference between the new FRAM and the stock chip.

One Downside

So now I won’t lose my saves for at least 45 years according to the FM1808 datasheet. But, removing the CR2032 completely from the Saturn means that the system will prompt you at EVERY power up to re-enter the date and time. Is it worth it? For a busy guy like me who always forgot to transfer my latest save files, it sure is!
You could leave the CR2032 in the Saturn and remove the Battery power from the FM1808 (it doesn’t need it anyway). But my measurements show that the power hungry component in there is in the fact the RTC. So, even though you won’t lose your saves anymore, the battery will still die after just a few months of RTC.
Liked it? Take a second to support db Himself on Patreon!