View Single Post
Old June 3rd, 2012 (10:05 AM). Edited May 4th, 2015 by Incineroar.
Incineroar's Avatar
Incineroar Incineroar is offline
the spirit of the fighter
  • Moderator
  • Platinum Tier
  • Developer
Join Date: May 2009
Location: Iki Town
Age: 22
Gender: Male
Nature: Brave
Posts: 13,577
IDB Here:

So last night I was talking to Darthatron about his VB6 Hex Editing Modules, and that they wouldn't work on VB.NET and that there are better alternatives in VB.NET as well. I then mentioned my idea of making (for now) a Text Editor for this game. He then mentioned he had an interest in wanting to hack this game, as I do too, because I see a lot of potential for fangames. Anyways, I have a little bit of information documented so far, and I just wanted a place where I could get together information and have others contribute to finding info on this game.

Anyways, let's get on to what I do have (And what little there is.)

UnLZ.GBA graphics info (I can't get pallet data because pallets don't load correctly) :
7- Fog? (IMG 052EDE8)
8- Unknown graphic (IMG 0052EDE8)
10- Unknown graphic (Possibly level parts) (IMG 053156C)
11- BG Parts? (IMG 05351E0)
20- Crash Head (IMG 07D63CB)
21- Crunch Head (IMG 07D6964)
22- Coco Head (IMG 07D64C4)
23- Fake Crash Head (IMG 07D6548)
24- N. Trance Head (IMG 07D65CC)
25- N. Trophy Head (IMG 07D66D4)
26. Uka Uka? Head (Img 07D66D4)
27. Dingodile Head (IMG 07D6754)
28. Tiny Head (IMG 07D67D0)
29. N. Gin Head (IMG 07D685C)
30. Neo Cortex Head (IMG 07D68D8)
31. Left Edge Textbox (IMG 07D6964)
32. Middle Textbox (IMG 07D69FC)
33. Aku Aku talking Textbox Right (IMG 07D6D90)
34. Red Arrow (Right)(IMG 07D6D90)
35. Crunch Menu Head (IMG 07D7B24)
36. Part of Left Arrow? (IMG 07DB660)
37. Part of Right Arrow? (IMG 07DB69C)
38. Small Game Font (IMG 052A9BC)
42. Crash Menu Head (IMG 07D79E0)
43. ? Crate (IMG 07D7DE4)
44. Crown (IMG 07D7F64)
45. Flag (IMG 07D8060)
46. KO (IMG 07D811C)

Text Information
All text displayed in the game is stored in standard ASCII, making it easy to modify.

Regional Differences contribute to slightly different offsets for the text in each region.
At 0x001D153C begins all of the English text, going through 0x001D3984. (EUR & US)

At 0x001D3C94 begins all of the French text, going through 0x001D5C1F. (EUR)

At 0x001D5F30 begins all of the German text, going through 0x001D7F4F. (EUR)

At 0x001D8260 begins all of the Spanish text, going through 0x001DA157. (EUR)

At 0x001DA468 begins all of the Italian text, going through 0x001DC443. (EUR)

Finally, at 0x001DC754 begins all of the Dutch text, going through 0x001DE72F. (EUR)

It seems there is also the ability to format text too.
Value - Color - Usage
0x00 - None - None
0x01 - Orange - Used for normal stuff
0x02 - White/None - Not used?
0x03 - Green - Used for names

Other tidbits of Text info:
Pointers to in-game text (All of them are 0x310 bytes in length)
English: 0x001D3984
French: 0x001D5C20
German: 0x001D7F50
Spanish: 0x001DA158
Italian: 0x001DC444
Dutch: 0x001DE730

Table Layout:
No. - Meaning - Use

0 - Pointer to "press start" - Titlescreen
1 - Pointer to "new game" - Main menu
2 - Pointer to "load game" - Main menu
3 - Pointer to "link game" - Main menu
4 - Pointer to "credits" - Main menu
5 - Pointer to "atlasphere" - Link Game sub-menu
6 - Pointer to "link race" - Link Game sub-menu
7 - Pointer to "back" - Link Game sub-menu
195 - Pointer to "use <#> to brake..." - Controls for..? - Last entry

-00 00 ends the text, but MAY require 00 00 00 00

Regional Differences
  • The EUR version of the game has a language select, the USA version does not.
  • There are graphical differences, and encoding differences for the JAP releases.

Offset - Purpose
02000010 to 02000014 - Timer? (Goes up by one each frame)
02000018 to 0200001C - Key state

> 0000FC00 - Nothing
> 0000FC01 - A button
> 0000FC02 - B button
> 0000FC04 - Select
> 0000FC08 - Start
> 0000FC20 - Left
> 0000FC10 - Right
> 0000FC40 - Up
> 0000FC80 - Down
> 0000FD00 - R button
> 0000FE00 - L button

020001CC to 020001D0 - Another timer?
02000E54 to 02000E5B - Player's sprite frame
02000E5C to 02000E60 - Altitude of player. All extra will be F if A is pressed, or 0 is not.

For example, if the player is jumping, and his altitude is 23A, it would look like this: 0000023A.
However, if the A button is being pressed, if would look like this: FFFFF23A.

Now, I want to also figure out how levels are stored in the game (All three kinds: 2D sidescrolling, isometric atlasphere levels, and Mode 7 wakeboarding and Space Coco levels), where the graphics are, and how time trial relic data is stored, as well as gem shard data, and how we can edit all of it. Last thing I want to do is music as the game doesn't use the standard Sappy engine most GBA games do. Any input and other research you all do is welcomed too because I don't think I can do all of the research, especially ASM. :3

Right as of now, we know of:
  • Song Test (Unknownfile - HCS Forum)
  • Speed increaser (Team Fail - PC)
  • Complete Audio Engine crash handler (Team Fail - PC)
Due to the fact that these two debugging options exist, that means there must be more within the game's code. Help us find it and be credited!

Lastly, now that people want to contribute, I want to provide my thanks to Darthatron for showing interest in this unloved game, and agentgeo/itari for providing some more information.
Reply With Quote