Forbidden Four: Make your own pirate multi

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Forbidden Four: Make your own pirate multi

Post by tepples » Mon Mar 19, 2007 10:15 pm

Someone in another topic wants to pirate an official MMC1 multicart. That got me thinking about how I could make my own MMC1 multicart. It took me one night to develop a framework for a pirate multicart on an SNROM board, which I called Forbidden Four. You need the following ROM images (not included):
  • The Legend of Zelda or any other 1 Mbit game with the same init code
  • Two NROM-128 games
  • One NROM-256 game
The multicart engine itself is free software. I got it to work on FCEU, Nestopia, and Nintendulator. Does this work on the real thing? And why is it called Forbidden Four?

User avatar
Dwedit
Posts: 4236
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Mon Mar 19, 2007 11:08 pm

I wonder if you could also squeeze Galaxian in there...
Fun fact: Over 90% of "Menu Only" multicart roms also contain Galaxian.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Tue Mar 20, 2007 6:14 am

Dwedit wrote:I wonder if you could also squeeze Galaxian in there...
Fun fact: Over 90% of "Menu Only" multicart roms also contain Galaxian.
The menu is 24 KiB, and I plan to use all 8 KiB of its CHR ROM in future versions. How much CHR does Galaxian use?

User avatar
Dwedit
Posts: 4236
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Tue Mar 20, 2007 6:36 am

Probably 8k. But CHR is compressible.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Tue Mar 20, 2007 6:53 am

I am familiar with CHR compression, having used PackBits RLE before in Who's Cuter. But it would still be a tight squeeze. I'd have to get at least 1.25:1 compression to put the CHR of five NROM games (menu, bros, ice, galaxian, smb) into a single 32 KiB bank, using an NES-friendly decoder, to make room. Or I'd have to piece together unused parts of LoZ. But I don't find it worth the effort because Galaxian doesn't fit with the theme of the collection, which might make the menu lose HRA points. If you want to try, go right ahead.

Dwedit: You have a defect report waiting for you on PH.

EDIT: I've updated the menu with a better logo.

User avatar
Dwedit
Posts: 4236
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Tue Mar 20, 2007 10:53 am

Pucrunch was originally for the 6502 (C64) until it was ported to other platforms.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Tue Mar 20, 2007 12:47 pm

Doesn't the Pucrunch unpacker need access to the entire previously decompressed data? The Commodore 64 computer had 64 KiB of RAM, but the NES has only 2 KiB of internal RAM, and I don't want to disturb LoZ's saved data.

User avatar
Dwedit
Posts: 4236
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Tue Mar 20, 2007 12:55 pm

Hack it to read and write from vram (with screen off), but then it would probably get slow. Or make it operate in 1k chunks.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

User avatar
AWal
Posts: 132
Joined: Wed Oct 06, 2004 8:00 am
Location: Northern New York
Contact:

Post by AWal » Tue Mar 20, 2007 1:37 pm

Love the title screen...just puttin' that out...got it to work just fine.

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

Post by Bregalad » Wed Mar 21, 2007 9:14 am

Doesn't the Pucrunch unpacker need access to the entire previously decompressed data? The Commodore 64 computer had 64 KiB of RAM, but the NES has only 2 KiB of internal RAM, and I don't want to disturb LoZ's saved data.
<tepples mode on>
What about using the FDS ?
</tepples mode off>
Life is complex: it has both real and imaginary components.

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Wed Mar 21, 2007 11:51 am

FDS has a fixed ROM bank in CPU $E000-$FFFF that cannot be mapped out. NROM games would need to be disassembled, shuffled around to fit in $6000-$DFFF, and reassembled. An MMC3-based pirate multi that doesn't use a submapper would have the same problem.

Galaxian isn't in Animal Crossing. (Neither is Pitfall or Golden Axe, but that's another story.) I could (barely) fit Tetramino into the menu segment, but that's not in AC either, and my whole point of making something AC-related is to get as far away from Tetris as I can.

User avatar
AWal
Posts: 132
Joined: Wed Oct 06, 2004 8:00 am
Location: Northern New York
Contact:

Post by AWal » Wed Mar 21, 2007 8:26 pm

Dwedit wrote:"Menu Only" multicart roms
Most of these are dumped this way because all the games they contained were either already dumped or they were based on existing dumps, right?

...how many of them actually banked 1 8K segment mirrored 4 times and not 1 32K segment mirrored in rom?

...Just pondering...


...I also would imagine a "Forbidden Five" near impossible...

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

Post by Bregalad » Thu Mar 22, 2007 10:41 am

Actually, SXROM could handle, say 2 SNROM games (one of them being 128k, and the other either 256k or 128k), and sevral NROM-256/NROM-128 games for the last 256k/128k. It could even have 2 SOROM games (among several NROM games), or more SNROM games that only switch 32kb ROM banks and don't rely on a fixed bank at $c000-$ffff.
It could be done like that :
BANK 0-6 : SNROM/SOROM game 1
BANK 7-14 : Various NROM games
BANK 15 : SNROM/SOROM game 1 fixed bank, reset code
BANK 16-23 : SNROM/SOROM game 2
BANK 24-30 : SNROM/SOROM game 2 OR various NROM games
BANK 31 : SNROM/SOROM game 2 fixed bank, reset code
Life is complex: it has both real and imaginary components.

User avatar
No Carrier
Posts: 290
Joined: Tue Dec 13, 2005 4:19 pm
Location: Gainesville, FL - USA
Contact:

Post by No Carrier » Mon Mar 26, 2007 11:49 am

AWal wrote:Love the title screen...just puttin' that out...got it to work just fine.
Yeah, the title screen looks awesome. I plan on trying this out soon!

NC

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Thu Oct 11, 2007 8:44 am

For the record, the title screen looks like this:
Image
Why "Double Crossing"? Google it. Also Google "Body Harvest Moon".
AWal wrote:...I also would imagine a "Forbidden Five" near impossible...
It would be possible to add Punch-Out!! by converting PxROM to FxROM by duplicating the $A000 bank, converting Zelda to FxROM by replacing MMC1 write subroutines with MMC4 write subroutines, adding a "submapper" to switch between Punch-Out!! and F4 and between CHR ROM and CHR RAM (like TQROM?), and following mostly the same guide. Or you could just ask _Lao@Tzu for a trade code.
Bregalad wrote:Actually, SXROM
Very not common.
Bregalad wrote:or more SNROM games that only switch 32kb ROM banks
Like which?

Post Reply