News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: AD0220's FF3 and MMC5  (Read 3145 times)

aspiringnobody

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
AD0220's FF3 and MMC5
« on: January 07, 2016, 01:57:27 am »
Hello all;

I've been playing around with AD0220's FF3 translation patcher and trying to make it play on (more) emulators.

By patching the source FF3 (J) rom with the MMC5 patch and THEN patching with AD0220's executable, I've been able to get the game to play in a few more emulators, some work perfectly (Nestopia), some play the audio but only a blue screen that later changes to black after the intro finishes (nintendulator) (note: you can enter a new save and "play the game" -- just no video output), and some appear to function except with garbled text and sprites (FCEUltra).  Interestingly enough, FCEUltra works fine without the MMC5 patch.

Obviously the MMC5 patch wasn't around with AD0220 was making his patch.  I don't have the knowledge to find a "real" solution to the problem, and have achieved my personal objective (playing in Nestopia on my shield), but I thought I'd make a post because it seems that someone with a little knowledge could maybe fix this patch to work as an MMC5 game on all emulators with minimal effort.

- Evan

tvtoon

  • Sr. Member
  • ****
  • Posts: 360
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #1 on: January 07, 2016, 11:24:47 am »
I don't understand your request, first you tell us that the combo works on some emulators, notably the accurate Nestopia which you can use, and then you want people to "fix the patch" to work anywhere... That is kind of silly, but the "real" solution would be: investigate whether these patches are meant to work together, if that is true, fix the emulators to make them work correctly.

Also, FCEUltra got random problems with games, better use FCEUX nowadays.

aspiringnobody

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #2 on: January 07, 2016, 01:04:36 pm »
I don't understand your request, first you tell us that the combo works on some emulators, notably the accurate Nestopia which you can use, and then you want people to "fix the patch" to work anywhere... That is kind of silly, but the "real" solution would be: investigate whether these patches are meant to work together, if that is true, fix the emulators to make them work correctly.

Also, FCEUltra got random problems with games, better use FCEUX nowadays.

The patches are definitely not meant to work together.

I'm just throwing this out there.  I don't expect anyone to do anything.  I just thought given its nearly working status it might be something trivial and someone interested might want to take a look.  FCEUX behaves the same way.

Disch

  • Hero Member
  • *****
  • Posts: 2746
  • NES Junkie
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #3 on: January 07, 2016, 06:01:15 pm »
I'm not familiar enough with these hacks, but it seems like the easiest solution here would be to fix the translation patch without bothering with MMC5 at all.  Unless the translation is doing something nuts like pushing beyond max PRG.

... Is that what it's doing?

aspiringnobody

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #4 on: January 07, 2016, 07:20:01 pm »
I'm not familiar enough with these hacks, but it seems like the easiest solution here would be to fix the translation patch without bothering with MMC5 at all.  Unless the translation is doing something nuts like pushing beyond max PRG.

... Is that what it's doing?

That's exactly what it's doing.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6928
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #5 on: January 07, 2016, 07:29:36 pm »
I'm not familiar enough with these hacks, but it seems like the easiest solution here would be to fix the translation patch without bothering with MMC5 at all.  Unless the translation is doing something nuts like pushing beyond max PRG.

... Is that what it's doing?

It expands the ROM to 1MB PRG.
"My watch says 30 chickens" Google, 2018

Disch

  • Hero Member
  • *****
  • Posts: 2746
  • NES Junkie
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #6 on: January 08, 2016, 07:59:48 pm »
Yikes... really?  What ever happened to working within boundaries!

I don't know how many mappers actually support 1MB PRG.  MMC5 is probably the most accessible, but using it with CHR-RAM is questionable.

So yeah the next thing I would try is just taking the translation and hacking it to use MMC5 (but actually doing it directly, rather than applying a patch to do it -- pre-made mapper hacks are all but worthless)

I might look at this for a bit.  If I'm able to come up with anything I'll let you know.  But don't count on it.

aspiringnobody

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #7 on: January 08, 2016, 10:01:17 pm »
I didn't think FFIII used any CHR rom.  It's just the PRG rom AFAIK.

From what I can piece together, part of the problem is that there's some pointer remapping going on to make ad0220's hack work, that's no longer needed once it's remapped to MMC5.

I'm curious as to what would happen if we apply the .diff and recompile his patcher.exe with the nintendulator patch, it seems to disable some of the mmc3 detection routine.  Well make it less restrictive at least.

It won't compile on VS community edition though (that's the only compiler I have installed atm).

- Evan

Kea

  • Jr. Member
  • **
  • Posts: 53
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #8 on: January 09, 2016, 02:25:03 am »
Only other mapper to support 1MB PRG-ROM that's compatible with MMC3's features that I know of is mapper 245.

I could take a look at this as well; most of FF3's bankswapping is done using one of three routines in the fixed banks - most likely all bank swaps except those related to music loading are done there - so depending on how ad0220's patcher works it could overwrite code there; alternatively it might be introducing new bankswap code to load in the expanded text data. Though that wouldn't fit with how it works perfectly on Nestopia.

Only problem for me is that I can't seem to download the ad0220 translation, either on Firefox or IE - the connection times out instantly. It's the only file on the site that does this to me too.

aspiringnobody

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #9 on: January 09, 2016, 06:48:34 am »
Only other mapper to support 1MB PRG-ROM that's compatible with MMC3's features that I know of is mapper 245.

I could take a look at this as well; most of FF3's bankswapping is done using one of three routines in the fixed banks - most likely all bank swaps except those related to music loading are done there - so depending on how ad0220's patcher works it could overwrite code there; alternatively it might be introducing new bankswap code to load in the expanded text data. Though that wouldn't fit with how it works perfectly on Nestopia.

Only problem for me is that I can't seem to download the ad0220 translation, either on Firefox or IE - the connection times out instantly. It's the only file on the site that does this to me too.

I'd assume the first scenario is the case based on how it behaves.  Audio works in all emulators once patched to mmc5, so that seems to fit.  Depending on the emulator you get garbled or no graphics indicating that it's looking in the wrong place for stuff.

Given that his patch works fine on its own without the MMC5 hack in the other two emulators i tested on its own, but fails in Nestopia, I assume that the following is happening (although this is just conjecture.  It just seems to fit the facts):

The first thing the rom does when it boots is check to make sure it can access the expanded rom areas.  If it can it then remaps some shit.  Since Nestopia fails here, it gets a warning screen and locks up.  When patched with the mmc5 hack Nestopia passes the simple check to see if it can address the expanded PRG rom; however for some reason it either ignores the remapping or the remapping itself has a more "complete" check that fails so it never happens.

That's my 2cp at least.

Disch

  • Hero Member
  • *****
  • Posts: 2746
  • NES Junkie
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #10 on: January 09, 2016, 11:19:51 am »
NEStopia might be flat out rejecting MMC5+CHR-RAM since that's an "iffy" cart layout (no commercial boards with MMC5 had CHR-RAM)

Or it might be doing different setup and is relying on the status of some regs that the MMC5 patch is failing to initialize.

Reiska

  • Full Member
  • ***
  • Posts: 135
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #11 on: January 10, 2016, 01:38:03 pm »
My understanding is that at the time AD0220 produced this translation (which was like 15 years ago or something), there was just less knowledge of the actual technical limitations of MMC3 generally available to the 'public', and most emulators of the time were inaccurate enough to accept an MMC3 ROM with 8 megabits of PRG-ROM without issues.  Such a configuration is, of course, impossible on actual hardware.

For what it's worth, the translation won't boot on most accurate emulators.  FCEUX will boot the ROM, and it appears to run fine... until you reach the underground lake dungeon where you fight Gutsco - from that point on in the game, battles in dungeons stop functioning - they just fail to load entirely.  Random battles never happen, and boss battles are simply skipped.  I verified this was the case for both Gutsco's dungeon and the Fire Crystal dungeon in FCEUX, and didn't play further.

(That being said, I played all the way through the ad0220 translation on an older emulator in the past which was less accurate - imbNES on PSX - and the game didn't exhibit these issues there.  So it's almost certainly an artifact of FCEUX having incorrect *enough* MMC3 emulation to satisfy the ROM's check for said inaccurate emulation on bootup, but simultaneously correct enough MMC3 emulation that the game doesn't actually function as intended.)

Bregalad

  • Hero Member
  • *****
  • Posts: 2650
    • View Profile
Re: AD0220's FF3 and MMC5
« Reply #12 on: January 10, 2016, 01:47:33 pm »
Such a configuration is, of course, impossible on actual hardware.
On a real MMC3 it is indeed impossible, but it would be possible to run the game on real hardware with a MMC3 clone suporting oversize PRG.

The MMC3 itself is at it's origin an oversize clone of some Namco mapper, with added supports for IRQ and mirroring control