News: 11 March 2016 - Forum Rules

Author Topic: Mech Platoon GBA Hack  (Read 692 times)

UOcelot16

  • Newbie
  • *
  • Posts: 1
    • View Profile
Mech Platoon GBA Hack
« on: July 29, 2021, 10:28:32 am »
Hello community,

I'm working currently on a Game called Mech Platoon which was
EU: November 28, 2001
JP: November 30, 2001
NA: December 20, 2001
released. The changes that I want to make are translating Text and changing Pictures.

I've found out that not every text can be changed for example in HxD Editor but not everything is crypted or compressed. For example the Textsearch for Winning / Losing Conditions can be easily changed.

Sadly my work stagnates because I can't find a solution for repointing text passages. I know that it's in a way possible to repoint to sections which are not used but I don't know how. Most Videoreferences on Youtube are for specific games not for a general solution. Even exactly searching for .gba specified content is a problem. So I've tried searching for a documentation which maybe could help but also there seems to be none OR they're no more available. It's said that it should be possible to do so if for example the token Offset 07B030|08 will be changed to 30B007|08 should lead to the pointer. Sadly it leads to a not used area within the file and I don't know why so I cannot repoint the selected text.

So I've tried changing Pictures in the game. It exists buttons with english text which I've changed with only symbols. A "x"-button for no and and a "o"-button for yes, more self explained for every language. Other Pictures which I've found are listed below:

Code: [Select]
Between 007C838 (Pictures), Icons to 7E0800 end
Between 0029D780 HP Bar, Symbols, Icons, Letters, Units till 0056B800 end

empty at 7E3178

Compressed
2AB0F4 Yes Button
2AB298 No Button
2AFD04 Mission (not fitted)

Uncompressed
7D5E74 2P / Com Color

The changing process in switching pictures is also not quite easy. Not every picture which I want to change is uncompressed within the file and there is the next problem. Again the search for a general solution of finding compressed pictures is the same procedure as with the text changing.

Maybe somebody has an advice for one or both described problems.

till then

UOcelot16

FAST6191

  • Hero Member
  • *****
  • Posts: 3286
    • View Profile
Re: Mech Platoon GBA Hack
« Reply #1 on: July 30, 2021, 08:04:48 am »
ROM hacking videos are a bit thin on the ground; nobody has yet managed to figure out a way to teach general ROM hacking with one anywhere nearly as well as with text based approaches and I am at something of a loss for that one as well.

There is a fair bit for the GBA
http://www.romhacking.net/forum/index.php/topic,14708.0.html
https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial
plus a whole host of game specific stuff that can be spun out into general usage.

http://problemkaputt.de/gbatek.htm
https://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm
http://members.iinet.net.au/~freeaxs/gbacomp/ having a bit more on compression if you want that.


"07B030|08"

That is an interesting format. Don't think I have seen that before.
I assume that is supposed to be 07B030 within the ROM but 0807B030 within the memory layout of the device (the standard location for GBA cartridges in memory being 08000000 through 09FFFFFF, though the 09 range corresponding to the last 16 megabytes which most games do not have).
Pointers have been seen in both big endian and little endian formats which is probably what is causing fun here (does not tend to completely reverse it like the second bit), though there remains the outside possibility that something got copied to RAM (especially if it was decompressed first, in which case the pointer might instead be part of an instruction) or it is using one of the other waitstate mirrors rather than the 08-09 stuff.

If you suspect compression as causing fun and games, or simply want a more sure fire means of finding the pointers, then https://www.romhacking.net/documents/361/ (a process generally known as tracing) is for an older version of VBA, today for debugging most would probably look at no$gba debug version (same site as has gbatek above http://problemkaputt.de/gba.htm ) but has all the same features with a nice GUI. If you know where it is in the ROM you can set a break on read (bpr) for that area and whatever ultimately fetches it will likely have had its pointer generated in the 20 or so instructions preceding the read itself (or at least enough for your next part of the tracing session).