Megami Tensei NES translation reproduction

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Megami Tensei NES translation reproduction
by on (#166740)
Hi guys,

Decided to join this forum since I've been learning 6502 the passed few weeks (hacking mario bros 3 and zelda 1 has been quite fun).

I have come here to ask a question that has been bothering me for a very long time... Do you think it's possible to make a reproduction of this game? It's probably TOUGH or impossible, and I'll try to explain despite me not being adept at reproducing.

Digital Devil Monogatari: Megami Tensei
Game in question: http://bootgod.dyndns.org:7777/profile.php?id=2308

Translation: http://www.romhacking.net/translations/2287/

So, I suppose I may understand how the development of a repro works, I think. Find a matching mapper that supports a high enough CHR/PRG rom, etc. That's all I know at least.

According to bootgod, Digital Devil Monogatari has mapper 76, which is unique to that game only. Mapper 76 supports a maximum CHR or 128kb, and a maximum PRG of 128kb.

At least according to nes dev wiki, Mapper 76 seems to be derivative of mapper 206. Mapper 206 has a max capacity of 128KB PRG, and a max capacity of 64kb CHR. Mapper 76 though sacrifices something from Mapper 206 I believe to increase its CHR to 128kb, allowing for 256kb total memory.

http://wiki.nesdev.com/w/index.php/INES_Mapper_206 -> 206
http://wiki.nesdev.com/w/index.php/INES_Mapper_076 -> 76

So, with that said, I believe the only suitable donor for a translation of Digital Devil Monogatari: Megami Tensei would quite literally only be the the game itself: Digital Devil Monogatari Megami Tensei.

The hard part I think though, is that the translation actually expands the rom size. Specifically its PRG gets doubled.

The patch will make the rom a 256/128 PRG/CHR respectively.

So, now the problem I see myself is that the only suitable donor cart we could use is no longer suitable, as mapper 76's maximum supported PRG is 128kb.

Now we're entering territory that goes beyond the scope of what I know heh. My question to you, was if you'd have any idea how to make this work?

I've tested the translated rom on Krikks'z Everdrive-N8 and it works, but I'm looking to specifically have a reproduction. It feels a lot better to boot into the game instead of booting into an OS where I can browse folders to boot my game. Heck, I'd even settle for Everdrive having an option to boot straight to my game, but Krikkz has refused to add that option unfortunately =|

Heck, you know... Mapper 76 derives from 206, but 206 apparently derives from MMC3. I'm reading anyway that 206 is a stripped down MMC3.

http://wiki.nesdev.com/w/index.php/MMC3

MMC3 says it's got a PRG capacity of 512kb and a CHR capacity of 256, which is perfect, but I think I've said too much now. I don't know enough to know whether MMC3 could actually be used for this game or not.

Also, of course, I have no experience whatsoever doing this kind of thing. I've had a few repro sellers attempt it for me but they failed, except for one person who showed me just a tiny bit of a progress and has never messaged me back. I think he's been busy so I just gave up on him. For whomever could achieve this, I would love to learn the challenge and would also gladly throw my green paper at you.

My apologies for writing so much. This is something I've wanted for a very long time and I figured I'd drop by here to get definitive answers on whether its possible or not. Thanks for reading.
Re: Megami Tensei NES translation reproduction
by on (#166741)
So, N108 (m206) supports 8+8+16F PRG banking, to a maximum of 128 KiB. So does the MMC3, as long as the values written to $8000 have the MSbits clear.

However, DDS:MT (m76) only supports 4x2 CHR banking, which is different from almost all other mappers.

You should be able to rewire an MMC3 in the same way as the N108 is rewired on m76, to get an end result that supports 512 KiB each PRG and CHR.

Alternatively, you could mapper hack the translation to just target MMC3 (by writing to CHR bank registers R0, R1, R2+R3, R4+R5 instead of just R2, R3, R4, R5)
Re: Megami Tensei NES translation reproduction
by on (#166810)
lidnariq wrote:
Alternatively, you could mapper hack the translation to just target MMC3 (by writing to CHR bank registers R0, R1, R2+R3, R4+R5 instead of just R2, R3, R4, R5)



This could actually work indeed. It already runs on an MMC3 board! It just needs software modification to clear up the CHR corruption. I have a nice label to share with OP if he manages this.

I attempted to make it look like a VHS tape from the 90's haha. Especially like the Logo. Image
Re: Megami Tensei NES translation reproduction
by on (#166911)
That is delicious!

Though, I would not be able to do this myself. I'm wondering if anyone else could, since I am not adept at this at all ;_;
Re: Megami Tensei NES translation reproduction
by on (#166975)
At some point in the future, I might see about mapper hacking the translation. Right now I'm just not feeling up to it, so no promises.

The rewiring instructions to inflate the MMC3 in the same way as in Mapper 76 are straight-forward, if full of a bunch of steps:

* Disconnect MMC3 PPU A12 from card edge and tie high
* Rewire MMC3 PPU A10, A11 to instead PPU A11, A12
* Rewire MMC3 CHR A10..A15 to instead CHR A11..A16
* Connect PPU A10 to CHR A10

If that doesn't work, additionally try the following:
* Disconnect MMC3 /IRQ from card edge (disable /IRQs, since N108 doesn't support IRQs)
* Disconnect CIRAM A10 from MMC3 and tie to PPU A10 (hard-wired mirroring, since N108 doesn't support changing mirroring)
* Disconnect MMC3 CPU D6,D7 from card edge and tie low (disable MMC3 PRG and CHR layout controls)
Re: Megami Tensei NES translation reproduction
by on (#205568)
I have been doing some digging on this topic and trying to get this to work in Nestopia. Would increasing some some of the PRG and CHR capacity work? I know this isn't a ticket forum for nestopia and moreso in hardware, but it seems like it might be an easier fix and i dont want to clog up the forums with a thread for this.

Any input would be appreciated.

According to the patch notes:

======================================================
Known Issues
======================================================
This patch is not compatible with the latest official
release of Nestopia and possibly other emulators.
To our knowledge this is not a problem with our translation,
but rather a limitation with the emulator's mapper system.
Megami Tensei's mapper is a unique mapper made solely for
this game, but it appears to be basically an MMC3 mod given
the many similarities between the two. Therefore it is logical
to assume it possesses the same capabilities. The game has
been tested on an NES with a Powerpak, so you can play the
game on an NES if you want.
Re: Megami Tensei NES translation reproduction
by on (#205570)
Wow, just fixed it. Nevermind. That was easy. :)
Re: Megami Tensei NES translation reproduction
by on (#205571)
A mapper 76 game with more than 128 KiB PRG and CHR is not supported by the original hardware and thus should not be supported by emulators.

It's the same argument as why MMC3 shouldn't support 1 MiB PRG.

To address this bit:
To our knowledge this is not a problem with our translation, but rather a limitation with the emulator's mapper system. Megami Tensei's mapper is a unique mapper made solely for this game, but it appears to be basically an MMC3 mod given the many similarities between the two.
And that's true, it is a modified MMC3 but it's a modified MMC3 that can't possibly support more than 128KiB PRG and CHR.

So, yes, it is a problem with their translation, and mapper hacking it to target an ordinary MMC3 instead of defining new fictitious hardware would be the correct solution.

The game has been tested on an NES with a Powerpak, so you can play the game on an NES if you want.
An error in being too permissive in one emulator's implementation of a mapper—and that's exactly what the PowerPak is—does not constitute an error in failing to be overly permissive by other emulators.
Re: Megami Tensei NES translation reproduction
by on (#205573)
Yes, well put lidnariq. :beer: The fix i was thinking of was more of leave the mapper alone and simply just add a database entry for it based on crc so both games will run and the original will still run accurately.

EDIT**

Looks like that will not work either since the nst.board is coded to not go over that amount. Even when i add the entry the board code has it at 128 and it still cpu jams. It sucks, because this translation is fun to play, but i don't know if it's worth it at the cost of accuracy. :cry: Decisions, decisions, i guess.
Re: Megami Tensei NES translation reproduction
by on (#209152)
I heard that Megami Tensei II has sound / music menu - is it possible to modify the rom with the game to make this menu right at the beginning of the game (even if it was just the music menu after starting the rom).

I would like to make a cart with music from this game to use the DRAGON NINJA card for this purpose.
Re: Megami Tensei NES translation reproduction
by on (#222558)
I don't know how I missed this thread, but reading through it has certainly bemused me. I'm the hacker and the game plus the translation are a real mess. It's a real horror show and converting that game plus translation to another mapper sounds like a nightmare.

I say who cares the ROM was expanded past its limitation. It was done for a good cause and plus with these new flashcarts, the sky's the limit. Besides converting the game to another mapper would only lead to someone becoming besieged by capitalism and producing a glut of reproductions.