Coder Social home page Coder Social logo

jeffman / mother2gbatranslation Goto Github PK

View Code? Open in Web Editor NEW
184.0 184.0 26.0 11.03 MB

A translation of MOTHER 2 for the GBA.

License: MIT License

C# 28.10% Assembly 27.69% C 40.54% PowerShell 3.25% Makefile 0.01% Dockerfile 0.36% Shell 0.06%

mother2gbatranslation's People

Contributors

batwing321 avatar ds886 avatar epidgin avatar jeffman avatar john-enigma avatar lorenzooone avatar malbound avatar patrickstankard avatar phoenixbound avatar sterophonick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mother2gbatranslation's Issues

Several major issues

  • Calling your dad crashes the game, but calling your mom works fine, but she acts like your dad. This is
    not the case in the cave of the past. wat
  • Game crashes on 3rd prayer of Giygas Fight
  • Displaying numbers is weird, mainly when they are variables, such as how much experience you need
    to get to the next level. This only happens in dialogue sequences.
  • Displaying choices such as Yes or No displays a graphical glitch.
  • Items menu has trouble rendering items, sometimes items will not appear unless highlighted, other
    times, the screen will not be cleared, and the text will overlap. Most of the time, it will display a
    graphical glitch.

New strings are on my fork.

Displaying "the" before enemy names

"The" display is tricky. It works sometimes.

  • There's no way to hint the capitalization of "the" right now, so it always prints capitalized. (In EarthBound, this was handled by a control code, [01] the user/target control codes seem to check if the last printed character was a bullet point/@ symbol. More testing is needed to confirm this.)
  • "The" prints even when letters are used to distinguish enemies. EarthBound hides the "the" when there are multiple of the same enemy.
  • No "the" code has been added for [AD FF]/action targets, only [9F FF]/action performers. This can be seen in the battle menu when selecting an enemy to attack.

M1+2 codelist inaccuracies

I'm 99% sure of these:

  • SuppressNextEnd should be false for [03 FF]
  • [1C FF]'s description is inaccurate. It does not return after the jump.

Player naming screens

Forgot to add this before.

The in-game naming screens (i.e. the ones in Summers/Tenda Village) are way too spacious for the strategies this hack uses to print text strings. Surprisingly it looks half-decent with the strings currently in place, but eventually the guts of the display part need to be torn out, and the actual entry part needs to be implemented too.

(For the time being, the scripts relating to the naming screen are untouched from M2GBA's control codes. EarthBound uses the same naming screen for both locations, but for now they're kept as two different events to make sure a legible player name can be created for the final boss fight.)

Item selection bugs

Most of the item menu display has been implemented by now, but a few things remain:

  • The flashing cursor isn't cleared when it is moved
  • The menu does not print items properly when there is a single party member or the item menu is brought up in a battle. (Possibly related to this, redrawing the menu after Help text doesn't happen.)
  • When an item is chosen, the game doesn't currently take into account whether it's equipped or not and always prints it at the same X coordinate.

Strong PSI attacks, like PSI Rockin', against Ness' Nightmare & Giygas disappear after spamming for like four or five times

To Ness' Nightmare: In like the fourth or fifth time of throwing PSI Rockin' Yotta at him, my attacks just disappear. And yes, he has PSI Shield Beta on him. I don't know if it's the shield itself, or the hack, but I am not winning this fight. Every time I kept spamming the PSI Rockin' Yotta attack at him, at some point the attacks don't phase him.

To Giygas: Same thing happens on Giygas' fight in phase two, after Porky stops annoyingly taunting me. This where Giygas starts making his infamous attacks "that I cannot grasp."

If you want to see what I'm talking about or want to replicate this problems, here's some save states:

  1. In front of Ness' Nightmare (not during battle) - https://cdn.discordapp.com/attachments/448360568428953611/540924334957658113/m12.ss1
  2. During Giygas' second phase (where he's constantly saying "You cannot grasp..." for the first time) - https://cdn.discordapp.com/attachments/448360568428953611/540937356593725450/m12.ss3

Printing the 24-character "English" player name is impossible

67 FF is the control code that returns a character from the player name. It's been downgraded since the SNES game: it can only read from the 12-character player name, not any arbitrary stat.

There seems to be a function related to this control code at around 0x80EEB16. It does something involving start and end offsets that I couldn't understand.

Different structure of inventory management text

Mother 2's inventory management text ("X gave the Y to Z" and related messages) differs greatly in structure from EarthBound.

Mother 2's text follows this basic structure:

  • Load script vars for L2142
  • Call L2142 to print the giver, a description of the party, and the item (as necessary; determined by control codes, made possible with script registers)
  • Load script vars for next message
  • Through ASM, choose the proper verb after considering whether the recipient and giver are the same, etc. That is, call L2143, L2144, or L2145 as appropriate.

EarthBound still retains this control code logic in unused text ("himself.") but has a different system.

  • Every situation has its own line; the logic for which line to display is entirely in ASM.
  • While many pieces of the system use script variables, the recipient is printed by the mysterious name(0xFF) command, which reads from window memory. (No idea when it's copied to that place.)

I would give more details but I haven't touched the OPEN_MENU_BUTTON routine in EarthBound in a while.

These systems are pretty incompatible, even if we wanted to try to implement them. L2142 has no knowledge of who the recipient is.

Missing text pointers

  • Timed events, like Escargo Express delivery/pickup people and For Sale sign people
  • The cow TPT in Happy Happy, but only when it's blue for some reason.
  • Added 30 Jan: Monotoli building elevator ladies (apparently TPT?). Check before the flag is set to go up high into the Monotoli building, because I checked after and it was working fine.
  • The infamous "All right... on to Threed!" message that the Runaway Five display when leaving Fourside. (Check these last two, just in case something went wrong with John's build process.)

Text boxes open too quickly

In the Onett police fights, and similar situations when a text box is opened immediately after a battle, a single character is printed before the fade back to the overworld begins. Then the game realizes it's supposed to be fading in and stops printing text before continuing.

It's a bit difficult to describe, but listening to the text noises will highlight the problem.

Scrolling up in the equip menu

When there are multiple items in an equip menu (e.g. going "Weapons" and selecting from two or more weapons), it is impossible to scroll up to the top option from the second option.

Menu widths carry over to text printing

After two-choice menus were implemented, certain scripts started printing incorrectly:
m12-39

These scripts use the generic jump table control code (95 FF) instead of 04/05 FF.

The solution would be setting the window X to 0 after a menu choice is selected, I guess.

Dropped items are not always added

When enemies drop an item, depending on the dialogue branch called (more testing needed), it may not be added. This is probably a script issue but it's a strange one.

Mother 1+2 seems to have an additional [87 FF] in L2124, but it's strange that some codepaths work correctly.

Escargo Express window header

Seemed separate from the item menu for its own issue.

If you ask for delivery from Escargo Express, the "Stored goods" at the top will display incorrectly.

It used to just be "Stored g" but I got this result when testing from the save "Before Shyness Book."
m12-2

Phone window clearing doesn't work properly

In most places with phones, once a person to call is chosen, the text for phone contacts remains in the tiles. When the text for the phone call is displayed, the phone contacts' names obscure parts of the text in places where there was previously no text.

It's a little hard to explain in words, but we've encountered it for a while. Example screenshot (Lost Underworld gets hit especially hard since it has such a short text line):

image

Ness's Nightmare enemy name prints incorrectly

Normally, the musical note character gets converted to Ness's name in the name of Ness's Nightmare. In this hack, though (at least for battle users; unclear if battle targets use the same code) it remains a musical note.

image

(Thanks to John for the screenshot and for finding this issue.)

Musical note in JP is 0xF8 (248) and in EN is 0xAC (172), so it might be a simple fix for mismatched character IDs?

Carpainter graphics obscure text box

When Carpainter attacks Ness with lightning in the overworld but it's reflected, the text box opens while the lightning is still on screen. When the lightning finally goes away, a portion of the text box is cleared.
m12-45

Possibly related to #34

Text Boxes Still Open Too Quickly, But Only In Idle And Not In Battle

Similar to issue #34, you can see and hear the text boxes opening too quickly when you're not in battle, by hearing its sound opening and closing two times.

This happens:

  1. When you open Equip.
  2. When you open and close any of the properties from Equip (Weapons, Body, etc.).
  3. When you open and close any of the properties from the PSI Info submenu (Offense, Recover, etc.), from the Status menu.

It's not gamebreaking, but it is annoying.

XKAS -> ARMIPS

I know you've got a lot of stuff already working with xkas but as your aware that's pretty much dead and unavailable these days.

Would you consider moving to something like ARMIPS which is open source and supports all the features of xkas and also has built in support for table files and a lot of other useful features.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.