Some hacking (or ASM hacking) questions for Mother 1+2

Started by John Enigma, April 16, 2016, 05:08:23 PM

Previous topic - Next topic

John Enigma

I've been meaning to ask these questions for a while, so here it goes:

I. For those who played Mother 1+2 for the GBA, when you go to game select menu and you choose between (Mother or Mother 2) it takes you directly to the game and stuff, right? But of course, there's is one thing that I noticed: even if you go to the title screen to any game there, you seem to be stuck there. Like you can't go back to the game select menu, nor the intro screen just to select the other game.

1. What do I mean by this?

If you look at the Super Mario Advance series, you notice that all of them come bundled with a second game which is a remake of the original Mario Bros. That's it. But take a good look at this again, because there are two ways for you to go back to the intro screen and the game select menu: when you play Super Mario Bros. 2 and pause it, there is the "Save and Quit" option, in where you, obviously, save and quit the game. Where does it take you? It takes you back to the intro screen. From there you can press the Start button or A button to begin and select your game. As for Mario Bros., it has its own intro screen. But when you press the B button, it actually takes you to the game select menu which is cool in case you wanna play the other one. (Although, this also has the "Quit" option during pause time, where it takes you to the Mario Bros. intro screen.)

2. Where am I going with this?

I'm going with this because apparently Mother 1+2 doesn't have the B button feature like the Mario Bros. Game that always came bundled with the SMA series. Sure, there's the "End" option that appears whenever you talk to your father, that ends the games, and takes you back to the intro screen, in which you can select the other game if you want.

But here's my point: is it possible to actually ASM hack the game so you can add the B button code, so you can go back to the game select menu, and select the other game, in the same fashion of Mario Bros. from the Super Mario Advance series? You know, you press the B button whenever you're in the title/intro screen of any game, and takes you to either the game select menu or the intro screen of Mother 1+2?

That's my first question.

II. And now for the second one, which is about restoration.

As you can see in here, you can see that there are a lot of changes that were done in both games. Most of the changes in Mother 1 were, from the start, from the EarthBound Beginnings prototype, but there are some things that I noticed in which some of the other changes were made because of the GBA hardware limitations, like the scene scrolling effect in Mother 1. The list also mentions several other changes that were done that truly differ it from its original predecessors, like in:

1. Mother:

A) The double-iris effect when entering a battle is replaced by a mosaic effect.

B) Both of the Dragon Quest IV and Super Mario Bros. 7 references were removed with "That game."

C) Ana is put first in slot #2, where Loid is suppose to go, instead of slot #3.

2. Mother 2

A) The flies landing in some guy's soup in Burglin Park.

B) The Rock Candy/Condiment glitch.

C) The Exit Mouse in the Cave of the Past glitch.

D) More screen scrolling effects.

Aside from the music (which is another thing that REALLY needs to be fixed on both, BOTH games) and colorization (in this case, for Mother 2), is it possible or impossible to restore all the features that are presented here, and in the list up there?

That'll be all.

MOD/ADMIN EDIT: Usually, I ask this stuff in the "Hack Ideas" post, but I wanted to do it here because I wanted your opinions.

FAST6191

Multi game collections and returning to menus can vary, and there are some notable cases on the GBA (it troubles cheats in some cases so it is covered there http://doc.kodewerx.org/hacking_gba.html#nonstandard ). However if there is an option to do it elsewhere in the game then it should be possible to add something to vblank routine or whatever to jump back to the menu by checking whether b is pressed, even without it you could probably done some kind of reset to get there. It is not the most work, in fact some of it might have already been done http://www.romhacking.net/forum/index.php/topic,20795.0.html , but most people do usually go the other way like in that thread and force boot a game -- most would say if you are butter fingers enough to keep booting the wrong game then you probably want to learn to stop that as it will make playing games in general quite hard, if you are worried about a DS lite power switch then fair enough.

"GBA hardware limitations" is less likely and more that it would be developer laziness, or that they figure it does not matter as long as there is something. You might get that for some of the SNES effects if they used the special chips but no way for anything you see on the NES. Music does seem to pose a problem for many devs doing GBA ports, one go with some of the Final Fantasy restorations though should dispel notions of weaker GBA hardware, it was different and that might make porting annoying but weaker is a bigger stretch.

First question though. Is it worth fixing these over running a NES emulator? The GBA has some decent ones and if you are running a custom ROM you can run a version of one of those easily enough. GBA SNES emulation is a bigger worry (even the DS struggles quite hard with it) so that could still be in the running.

Otherwise yeah I can not seeing it being an impossible task to restore bugs or tweaked things. Whether you will find someone with the motivation to do so rather than modify the originals (which are pretty well documented) is a different matter. If it is a learning project for yourself then go for it -- you will probably end up a pretty decent GBA hacker as it will cover most things you meet.


John Enigma

#2
I want to learn but I'm a little nervous. I'm afraid that I might screw up. I don't know which tools am I suppose to use, or where am I suppose to go.

For the "Go back by pressing the B button" feature hack for Mother 1+2 (GBA), here's how I picture it:

* You choose Mother > it takes you to the title screen > you only press the B button > the screen fades in to white > YOUR CHOICE: after fading out, it takes you back to the either the game select menu OR the Mother 1+2 title screen.

* The same can be applied to Mother 2, but after pressing B, the screen fades in to black, and...

...well, you get the drill.

As for the GBA hardware limitations, I still wanna know if all the changes that were made for the GBA remakes could be restored to their original predecessors. The thought about what you said of "how they couldn't REALLY figure it out" or "developer's laziness", adds more fuel to the fire that the developers never made a great job making these ports. I could be wrong, though. Because, again, if you look at the SMA ports, they look 100% different than their OG predecessors, although they look, sound, feel, and play like the originals.

On the other hand, like you said, that's not the case on the Final Fantasy Advance series, in which they were ported horribly. (And is kinda ironic, becuase SE took notice of that, and the re-re-releases they did for the first six Final Fantasy games to iOS and Android, look average to decent from what I've seen.)

FAST6191

Afraid you might screw up a project done yourself on your own time so hard that we all laugh at you? If you waste the time of translators or others (in this case if you drag someone else in that knows about music), especially if you claim you are more competent than you are, then that is not cool but pit yourself against a ROM and come up short and nobody will mind.

Fading to black and fancy stuff is more annoying than normal jumping -- I just watched a video and it does fade from white in the normal game so you could use that.

Dev laziness vs that'll do. No doubt many things could be put at the feet of devs, however you might be looking at it slightly cynically -- for the double iris stuff vs other things then the dev logic could go "is there a transition effect that looks OK? Yes? Great" rather than wanting to do a 1:1 replication. There is an argument in game design that having a random battle thing be noted by such an effect is a bad thing and should not be done (it takes you out of the experience) but let us not go there. Similarly does Loid and Ana swapping make a difference to how the game plays? The Psy power order (or does it improve things/make the game better for some people? Why should the dev care if they make something that works or is even an improvement over the original?

Changes wise then looking at the list of things a lot of it might be putting bugs back in. Somewhat of a novelty (usually we fix bugs) but changing how something works to basically create a bug is not much different to fixing it -- the random battle steps reset on leaving the menu thing would mainly be to add some code that resets the steps upon leaving the menu, dropping the rate would probably involve the calculation it uses being changed.

The Super Mario and Dragon Quest and Rocky 5000 thing sounds like a text change. Quite doable, probably also done as a trademark related thing (I hear in general a lot of this happens when mother games leave Japan).

Tools to do the job. Tile editor, text editor, debugger... same tools every time really but you want them to work on the console you are working on. The GBA has some slightly different ones to the NES and SNES but if you do have to change they are about as refined as anything you get there, you might not even have to if you already use the newer tools. I cover a bunch of them in http://www.romhacking.net/forum/index.php?topic=14708.0
Debugger wise most split between no$gba ( http://problemkaputt.de/gba.htm ) and vba-sdl-h ( http://www.romhacking.net/documents/361/ ).

John Enigma

Quote from: FAST6191 on April 17, 2016, 02:38:50 AM
Afraid you might screw up a project done yourself on your own time so hard that we all laugh at you? If you waste the time of translators or others (in this case if you drag someone else in that knows about music), especially if you claim you are more competent than you are, then that is not cool but pit yourself against a ROM and come up short and nobody will mind.
You're making it sound like it's a bad thing, even though I know next to nothing in full on romhacking.

FAST6191

That was not my intention. There are occasions where people that waste time are not appreciated in hacking circles, typically those that put together a team and then find themselves unable to finish because they were not as good as claimed. It is usually fairly obvious to other people that would join a team before you get anywhere though.
If it is just your own time you are spending and you are not working with anybody then take as much time as you like, experiment however you will and if you fail then the worst that will happen will be if you fail to share info you might have found that someone else might end up repeating your mistakes.

A quote I once saw on maths (I think from Benoit Mandelbrot) was something along the lines of maths is great because you can put a problem on the shelf and come back in 50 years and it will be the same. These days 50 years in science is usually world changing. It is kind of the same for ROMs in that they are just the same as they were on the day the production run started so if it turns out you need to go away and learn something first then it is all good and you can come back later. The techniques and the tools might have improved in the meantime -- my 486 had 16 megs of memory for a long time, that means the average 16 bit era ROM would have taken up a sizeable percentage of memory and influenced the ways the tools worked where today such a thing is somewhere between a rounding error and what I waste running a 64 bit system with unicode despite only caring about having English or European languages displayed 99% of the time, or in ROM hacking this means I have some crazy search options available to me and some better emulation as far as searches, time rewind and such but it is still the same ROM underneath it all with the same limitations in what can be done.