It is currently Sat Sep 21, 2019 4:48 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: MMC1/MMC3 mashup mapper?
PostPosted: Tue May 14, 2019 1:42 pm 
Offline

Joined: Tue May 14, 2019 1:25 pm
Posts: 5
I'm looking into the possibility of making a mashup between two games, one of which is MMC3 (Crystalis) and the other MMC1 (Castlevania 2 or Metroid, haven't decided yet). I would like this to be able to run on native hardware, so I think I need to find a multicart mapper that is capable of switching modes between these two original mappers. Or else "upgrade" the MMC1 game to MMC3 and then I only need an MMC3-like mapper that can swap out the fixed bank and do some page-swapping on PRG RAM.

I've done some searching but haven't had much success - can anybody point me to some resources that would be helpful here?

Thanks!


Top
 Profile  
 
PostPosted: Tue May 14, 2019 2:28 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 976
In the commercial era, iNES mapper 116 would have done exactly that. But it should not be too hard to hack an MMC1 game to use MMC3, so that is the approach that I would take. You might even find a hack already done in GoodNES, depending on the game.

You might have more difficulty combining a CHR-ROM game like Crystalis with a CHR-RAM game like Metroid.


Top
 Profile  
 
PostPosted: Tue May 14, 2019 4:17 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21595
Location: NE Indiana, USA (NTSC)
TQROM (mapper 119) allocates banks 0-63 to CHR ROM and 64-71 to CHR RAM. But that's not big enough for Crystalis, which is the same size as Super Mario Bros. 3, using 128 KiB of CHR ROM. How expensive is a 128Kx8 SRAM or PSRAM?

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Tue May 14, 2019 4:57 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8564
Location: Seattle
For 5V parallel RAMs, people in the US can buy the IS62C1024 right now for $1.64/@1 down to $1.23/@100 from Arrow. (octopart price search engine query for 5V parallel RAMs)


Top
 Profile  
 
PostPosted: Tue May 14, 2019 6:22 pm 
Offline

Joined: Tue May 14, 2019 1:25 pm
Posts: 5
Thanks for the helpful information. The hardware stuff is beyond me. I'm mainly looking for something that will run on emulators and powerpak/everdrive. But I'd like to design it in a way that doesn't prevent someone from flashing onto a real cart someday if they decide to (cf. SMaLTTP randomizer).

So it sounds like a good choice for the second game would be one that uses CHR ROM instead of RAM, and converting it to MMC3 would be a good idea.

This leaves me needing a mapper that allows (a) doubling the number of PRG and CHR pages to 64x8k and 256x1k, respectively, (b) swapping out the fixed PRG page, and possibly (c) swapping PRG RAM if the second game uses it. That doesn't seem like too crazy of a requirement - MMC3 already supports the first one I believe - but I'm not sure where to find the other two.


Top
 Profile  
 
PostPosted: Tue May 14, 2019 6:34 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8564
Location: Seattle
steve_hacks wrote:
This leaves me needing a mapper that allows [...] (b) swapping out the fixed PRG page, and possibly (c) swapping PRG RAM if the second game uses it.
While b isn't too hard – even Nintendo made two PCBs that did this (m37 & m47) – c is almost unheard of. Pirates preferred to make multicarts of games that would operate without save RAM.


Top
 Profile  
 
PostPosted: Tue May 14, 2019 10:20 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 976
I am not aware of any standard MMC3-based mapper that allows you to bank PRG-RAM, and the non-standard ones that do, such as Mapper 176, are not supported on flash cartridges, and not by many emulators.


Top
 Profile  
 
PostPosted: Tue May 14, 2019 11:25 pm 
Offline

Joined: Tue May 14, 2019 1:25 pm
Posts: 5
Oh, that's a bummer. I'd been hoping 176 would be the fix I needed. It looks like not only do 37 and 47 not support swapping PRG RAM, but they don't support any PRG RAM at all. I don't see any mention of PRG RAM in the documentation for 116, either - does anyone know if that's a thing?

Crystalis has some slack in its PRG RAM usage, so swapping may not be necessary if I combine a game with no PRG RAM at all. But I still need at least the standard MMC3 8k available.


Top
 Profile  
 
PostPosted: Wed May 15, 2019 2:39 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 4208
Location: A world gone mad
"... making a mashup between two games ..." mean one of three things to me:

a) You're trying to create a multi-cart that lets you pick which game you want to play: run Crystalis (MMC3) or Metroid (MMC1) or Castlevania 2 (MMC1)
b) You're trying to create some kind of combination game (read: insane romhack) of all 3, which means actual detailed reverse-engineering of all the titles involved,
c) You're trying to create something brand new using these games' assets.

If it's (a): yeah, you're in for pain unless you can find a mapper that supports both MMC1 (no additionals) + and MMC3 (w/ battery-backed 8KB PRG-RAM), thus may be forced to do what's described in (b),
If it's (b): you don't need some crazy mapper that can do both: you need MMC3, and you get to convert the MMC1 games to MMC3. You're going to have to do some form of this anyway to deal with the fact that Crystalis is CHR-ROM and Metroid is CHR-RAM,
If it's (c): pick whatever mapper suits your needs / minimises your pain of development (and expect to be DMCA'd by Nintendo for using their assets in Metroid -- yes they are watching).

Have you done romhacking before? Have you done NES work before? This is your first post, so if I seem apprehensive about it, hopefully that explains why.

P.S. -- Absolutely none of the games mentioned for mapper 116 are in BootGod's database. So knowing whether or not they can work with battery-backed PRG-RAM is... well... you're putting a lot of faith/hope into something with no guarantee, IMO. Better off sticking with a known/familiar mapper.


Top
 Profile  
 
PostPosted: Wed May 15, 2019 3:17 am 
Offline

Joined: Tue May 14, 2019 1:25 pm
Posts: 5
Thanks for that info. It's very much option (b). I've done some pretty extensive work hacking Crystalis (read: disassembled the vast majority of the game and rebuilt it with completely rearranged and relocated data tables), and was hoping to find another game to join in the fun.

Unfortunately, MMC3 doesn't seem like it quite works, because of the fixed bank at $C000..$FFFF, which is why I was looking for some sort of commonly-supported multi-cart. But it seems like that doesn't really exist.

I'm now wondering i how feasible it would be to convert Crystalis to MMC5. The game makes extensive use of the scanline IRQ, which would need to be adjusted and recalibrated for the different cycle where it occurs, but it would allow all the necessary PRG and CHR ROM arrangements I need, and it supports swapping out PRG RAM pages. Castlevania 2 uses CHR ROM, so that might be a smoother option. It also already has a full disassembly available thanks to Bisqwit.

Is MMC3 to MMC5 something that's been done before? Are there any other gotchas in that might be relevant?


Top
 Profile  
 
PostPosted: Wed May 15, 2019 4:24 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 976
MMC3 to MMC5 has been done before. It was done to create an MMC5-based "Super Mario All-Stars" NES multicart.
IRQs might need adjusting, but then again, Crystalis' split screens look dirty enough already so that it might not matter.
koitsu wrote:
Absolutely none of the games mentioned for mapper 116 are in BootGod's database. So knowing whether or not they can work with battery-backed PRG-RAM is... well... you're putting a lot of faith/hope into something with no guarantee, IMO. Better off sticking with a known/familiar mapper.
The SOMARI-P PCB has no provisions for WRAM. And the Everdrive N8 does not support it, either. Come to think of it, I am not sure that the Everdrive N8 properly swaps PRG-RAM banks on MMC5, especially since it does not look at the NES 2.0 PRG-RAM size field.


Top
 Profile  
 
PostPosted: Wed May 15, 2019 7:51 am 
Offline
User avatar

Joined: Sat Jul 04, 2015 9:58 am
Posts: 960
Location: -29.794229 -55.795374
If all you want to do is a multicart, there's a Metroid MMC3 hack and Bisqwit's vending machine, that allows you to customise your Castlevania 2 patch, including MMC3 support.


Top
 Profile  
 
PostPosted: Wed May 15, 2019 11:37 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 4208
Location: A world gone mad
steve_hacks wrote:
I'm now wondering i how feasible it would be to convert Crystalis to MMC5.

I think this is also a bad idea, for the reasons lidnariq outlined in an unrelated thread. It's also reminding me distantly of Retro City Rampage/ROM City Rampage/Grandtheftendo (in the sense that it was too big for its britches, and why the author opted to just focus on the PC release. I believe he stated this somewhere publicly in an interview/blog/something as well). I say all this because, quote, one of your desires/requirements is:

Quote:
... I would like this to be able to run on native hardware ...

I strongly suspect this would require a custom board/mapper given all the nuances, which means "getting social approval" for a new mapper number (and finding someone to do the hardware part, i.e. probably having to pay them), and also accepting greatly limited emulator support (only recent-ish emulators adding support for said mapper would be able to play it). Games didn't tend to dictate hardware (generally speaking), on the NES it's often the other way around (I say this well in admittance of the fact that many weird/obscure mappers were driven by programmer or "market" needs.) I've talked before about how this aspect of the NES is actually what gives it some of its "charm".

Battery-backed PRG-RAM tends to throw a wrench into the mix, ditto if you need a mapper that has no "true" fixed bank.

I'm not sure what else to say on the matter, really. I'm not trying to be down on the project, I think it's just a lot of effort for little-to-no gain. If you've already done the RE work on Crystalis, it might be better to just start from scratch and take assets/code from it as needed.


Top
 Profile  
 
PostPosted: Wed May 15, 2019 1:04 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 976
The problem is that you want maximum support on three platforms: emulators, flashcarts, and real cartridge hardware. I see no way of doing that realistically with just one ROM hack. If you are willing to do two, you can hack for one mapper for real hardware and newer emulators, and another one for flashcarts and older emulators.

For example, you could use the MMC3-based COOLBOY/Mindkids (which I have read is still being manufactured and can be ordered in China) for real hardware and most emulators either as UNIF or NES 2.0. COOLBOY/Mindkids is particularly nice because it supports both CHR-ROM and CHR-RAM (because you basically have 256 KiB of CHR-RAM) and can use 8 KiB of battery-backed PRG-RAM. You would have to choose a second game that does not need PRG-RAM, naturally.

Flashcarts really are the bottleneck in terms of support. I don't even know which MMC3-capability-equivalent mapper without a mandatory fixed PRG bank is supported by them other than MMC5. J.Y. Company's ASIC comes to mind, which on real hardware can use WRAM, but I don't think any of the flashcarts emulate that capability of it.


Top
 Profile  
 
PostPosted: Wed May 15, 2019 4:21 pm 
Offline

Joined: Tue May 14, 2019 1:25 pm
Posts: 5
Of all the requirements, I'd be willing to give up real hardware first. Flash carts and emulators are far higher priority for me. So the fancy new mappers are more of a non-starter.

Thanks for the heads-up about lack of PRG RAM swapping support in MMC5 emulators. I do think it's probably feasible to convert Crystalis to MMC5. It needs the one 8k page of PRG RAM, so even if swapping isn't supported, as long as the single page works, that's doable. That seems to narrow the requirements for any companion game to be (1) CHR ROM, (2) no PRG RAM usage, (3) convertible to MMC5 (which MMC1 should be easily enough).

I definitely understand that this isn't a trivial effort. Crystalis has been a year-long project (so far) and I imagine this will take years as well.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group