The Mystery of the SxROM Board Series

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderators: B00daW, Moderators

Post Reply
Great Hierophant
Posts: 745
Joined: Tue Nov 23, 2004 9:35 pm

The Mystery of the SxROM Board Series

Post by Great Hierophant » Fri Dec 17, 2004 8:59 pm

While the other boards in Nintendo's naming system have documented differences, the SxROM board series is puzzling. There are a lot of boards, someused in one game, others used in a few and one used in 100 games. While some of these boards have been identified, others have not.

Now, some boards have 32 pin ROMs, others have only 28 pin ROMs. For Program ROM, a 28 pin socket can house a 128KB ROM or lower. But for a Character ROM, a 28 pin socket can only house a 64KB or lower ROM. 32 pin sockets can house 256KB PRG ROMs and 128KB CHR ROMs.

SAROM
128KB PRG ROM (28 pin) (64KB Max)
64KB CHR ROM (28 pin) (16KB Max)
8KB WRAM
battery

SBROM
128KB PRG ROM (28 pin) (64KB Max)
64KB CHR ROM (28 pin) (32KB Max)

SCROM
128KB PRG ROM (28 pin)
128KB CHR ROM (32 pin)

SC1ROM
128KB PRG ROM (28 pin) (64KB Max)
128KB CHR ROM (28 pin)
74LS32

SEROM - How does this differ from SBROM?
128KB PRG ROM (28 pin) (32KB Max)
64KB CHR ROM (28 pin) (32KB Max)

SFROM
256KB PRG ROM (28 pin ROM/32 pin socket)
64KB CHR ROM (28 pin)

SGROM
256KB PRG ROM (128KB ROM 28 pin/32 pin socket)
8KB CHR RAM

SHROM
128KB PRG ROM (28 pin) (32KB Max)
128KB CHR ROM (32 pin)

SH1ROM
128KB PRG ROM (28 pin) (32KB Max)
128KB CHR ROM (28 pin)
74LS32

SJROM
256KB PRG ROM
64KB CHR ROM (28 pin)
battery

SKROM
256KB PRG ROM (128KB Max)
128KB CHR ROM
8KB WRAM
battery

SLROM
256KB PRG ROM
128KB CHR ROM

SL1ROM
256KB PRG ROM (128KB Max)
128KB CHR ROM (28 pin)
74LS32

SL2ROM - I dont have this cart, presumably used only in some copies of Blaster Master. Considering Blaster Master is a 128KB/128KB cart, I don't see how this would differ from SL1ROM.

SL3ROM - Again, what is the real difference between this and SL1ROM?
256KB PRG ROM
128KB CHR ROM (28 pin)
74LS32

SLRROM - Is this another extended board? If not, how would it differ from SLROM?
256KB PRG ROM (128KB Max)
128KB CHR ROM

SNROM
256KB PRG ROM
8KB CHR RAM
8KB WRAM
battery

SOROM
256KB PRG ROM
8KB CHR RAM
8KB WRAM x2 (CHR bit used for banking)
battery

SUROM
512KB PRG ROM (CHR bit used for banking)
8KB CHR RAM
8KB WRAM
battery

SVROM - I have an idea which game uses this board. My guess is that the Famicom combo Final Fantasy I + II cart uses it. It probably has two 8KB W-RAMs, both battery backed, so that the games would not overwrite each other's save games. Thus it is a combination of SOROM and SUROM. (The method those boards is mutually exclusive, however.) Otherwise how would you account for the extra large size cart?

Guest

Post by Guest » Fri Dec 17, 2004 9:34 pm

The FF1&2 cartridge definitely has two 8k SRAMs, one for each game. On emulators (which treat the game as having a single 8k SRAM) playing FF2 erases the FF1 saved game, and playing FF1 even as far as the Continue/New Game screen erases the first FF2 save slot (it erases all of them if you actually start playing the game)

Great Hierophant
Posts: 745
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Fri Dec 17, 2004 11:14 pm

I had expected as much. I will buy one the next time one pops up on eBay for a reasonable price. For now, how are we to implement this unnamed board? Let us remember that Final Fantasy I and Final Fantasy II both used SNROM boards, which didn't allow W-RAM banking. So I believe that the programmers, adapting the code to this cart, did not want to rock the boat. I would suggest that they used the 8KB banking method exclusively, eschewing SOROM's ability to bank in 4KB. That method does not seem to be incompatible with SUROM's method of addressing 512KB of PRG-ROM. (There is room for both bits in the register.) Am I correct?

AWJ

Post by AWJ » Fri Dec 17, 2004 11:53 pm

I've just investigated the FF1&2 ROM using FCEUD.

The menu program and FF1 are located in the lower 256k of the ROM, and FF2 is located in the upper 256k. When the game is reset, 0x00 is written to MMC1 register 1 (address $BFFF). When Final Fantasy 2 is selected from the menu, 0x18 is written to register 1. I suspect that bit 4 of this register selects the lower or upper 256k of PRG ROM (as in SUROM) and bit 3 selects the WRAM bank (as in SOROM)

I seem to remember that in Nesticle (which "emulated" the nonexistent "MMC1 with 1024k PRG" configuration in order to run the overdumps of DQ4 and DW4) this ROM would either hang or return to the menu immediately if you selected FF2.

By the way, Heirophant, SOROM doesn't have the capability to switch WRAM in 4k banks. You've misunderstood the documentation (Kevin Horton's, right?). Rather, the register bits you use to select the 8k WRAM bank differ depending on whether CHR ROM is being switched in 4k or 8k banks (the SOROM board has CHR ROM, unlike the SUROM board and the board FF1&2 uses)

Great Hierophant
Posts: 745
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Sat Dec 18, 2004 10:15 am


By the way, Heirophant, SOROM doesn't have the capability to switch WRAM in 4k banks. You've misunderstood the documentation (Kevin Horton's, right?). Rather, the register bits you use to select the 8k WRAM bank differ depending on whether CHR ROM is being switched in 4k or 8k banks (the SOROM board has CHR ROM, unlike the SUROM board and the board FF1&2 uses)
You are partially correct, I misread the documentation. While the board switches W-RAM only in 8KB banks, it can still switch CHR-RAM, (SOROM does not have CHR-ROM) in 4KB banks. Why would anyone want to do this is a mystery.

AWJ

Post by AWJ » Sat Dec 18, 2004 12:41 pm

Whoops, my bad. I thought SOROM had CHR ROM for some reason. Must've confused it with another board.

Anyway, I think all MMC1 (and MMC3) boards with CHR RAM can bankswitch the CHR RAM just as if it were CHR ROM.

Great Hierophant
Posts: 745
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Tue Dec 21, 2004 8:10 pm

The menu program and FF1 are located in the lower 256k of the ROM, and FF2 is located in the upper 256k. When the game is reset, 0x00 is written to MMC1 register 1 (address $BFFF). When Final Fantasy 2 is selected from the menu, 0x18 is written to register 1. I suspect that bit 4 of this register selects the lower or upper 256k of PRG ROM (as in SUROM) and bit 3 selects the WRAM bank (as in SOROM)
What I gather from this is the following. The two games are dumb, not really updated for the new cartridge hardware. If the player selects Final Fantasy I, the menu program doesn't do squat other than point to the beginning of the program. Final Fantasy I will play just as if it was alone on the cart, using both the lower 256KB of PRG-ROM and the default 8KB of W-RAM But if the player were to select Final Fantasy II, then the menu must also set the bit to select the high 256KB of PRG-ROM and the other 8KB of W-RAM. Final Fantasy II will play just as if it were alone on the cart, not knowing that its bankswitching is being manipulated from without.

User avatar
Bregalad
Posts: 7767
Joined: Fri Nov 12, 2004 2:49 pm
Location: Chexbres, VD, Switzerland

Post by Bregalad » Wed Dec 22, 2004 12:27 am

VitruaNES seems to emulate this cartidge correctly. I'm able to save both FF1 and FF2 at the same time and the .sav file is 16kb large.
Life is complex: it has both real and imaginary components.

Great Hierophant
Posts: 745
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Tue Jan 18, 2005 11:21 am

One note, Dragon Warrior IV does use SUROM, just like Dragon Warrior III. At least my cart does.

Post Reply