Making sense of cht files using Metroid Zero Mission

Yemeth

Active Member
OP
Newcomer
Joined
Dec 28, 2020
Messages
27
Trophies
0
XP
104
Country
United States
I'm using an EZ Flash Omega (not DE) to play Metroid Zero Mission and the cht file provided in the cheat library seems kind of odd.

First some things that are common to the cht files like the strange descriptions stand out. Google translate identified the symbols under [GameInfo] as Chinese text. So I figure the descriptions must be poor translations.

All spaces are ignored when displayed causing the words to clump up. So even if the description was clear it's still hard to read. I did a find and replace to change spaces to underscore.

There's also a code set aside after the game info so that it doesn't show up.

Then there's the codes themselves. Many of them say "with an upper limit" meaning they set the maximum as well as the current value. This gives you numbers that are higher than you can reach by playing the game. It also means there is no change from collecting energy and missile tanks while the code is active.

This isn't what I wanted so some searching lead me to https://ar2cht.netlify.app/ and https://gamehacking.org/

Lets try finding a better code for missiles,
Missiles Current by Deuce X. Machina looks promising and there's a slider to say how many missiles I want to set it to.
The game gives you 5 when you first collect them so let's start there.
The Decrypted GameShark Advance/Action Replay code is 03001538 00000005

Converting that gives me this.
[Set_Missiles]
ON=01538,5

I try that in game and nothing happens. Looking through the provided codes they all start with 4. So if I change the address to 41538 and that's in the vicinity of 41532 used in the provided code.

ON=41538,5 locks the missiles at 5.

As long as you always have 1 missile you have infinite missiles. But they still get recharged at certain points and the Metroid Fusion cht gave you a selection of values so you can pick the one closer to your maximum.

[Set_Missiles]
5=41538,5
50=41538,32
100=41538,64
150=41538,96
200=41538,C8
250=41538,FA

Now lets try Energy.
HP Current by Deuce X. Machina
03001536 00000063
Remember to change the first digit.

[Set_Energy]
ON=41536,63

I was mid way through the game and my maximum was 699. This code locked my energy but not at 99. The code locked it at 511. Let's try another value.

[Set_Energy]
199=41536,C7

This code did not lock my energy. In fact running into the weakest enemy reduced my energy by half. I did something wrong.

The provided code was this.
9999=41530,F,27
With missiles the values were easy to convert between Decimal and Hexidecimal. But how do 15 and 39 produce 9,999. Something doesn't add up.
Going the other way 9,999 = 270F. The octets are flipped.

Knowing that I made some adjustments and came up with this.
[Set_HP]
99=41536,63,00
199=41536,C7,00
299=41536,2B,01
399=41536,8F,01
499=41536,F3,01
599=41536,57,02
699=41536,BB,02
799=41536,1F,03
899=41536,83,03
999=41536,E7,03
1099=41536,4B,04
1199=41536,AF,04
1299=41536,13,05

Now I can set the current energy to any value I want.

I used a spreadsheet to come up with those values quickly. Here is a rundown for that.
A 99
B =DEC2HEX(A1,4)
C =RIGHT(B1,2)
D =LEFT(B1,2)
E =A1 & "=41536," & C1 & "," & D1

What about the completion time?
Hours by Deuce X. Machina
Minutes by Deuce X. Machina
Seconds by Deuce X. Machina

It looks like address can be combined with a semicolon so let's try that.
[X_Hours,0_Minutes,0_Seconds]
1=40150,1;40151,0;40152,0
2=40150,2;40151,0;40152,0
3=40150,3;40151,0;40152,0
4=40150,4;40151,0;40152,0

Go in game, turn cheats on, save again, reset, go in game. Success, the save file reports 1:00:00.

In summary:
Use Underscore in place of space in descriptions.
Change the first digit of the address after using ar2cht.
Registers that hold large values have the octets reversed.
 
Last edited by Yemeth,
  • Like
Reactions: hippy dave

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    realtimesave @ realtimesave: @SylverReZ :creep: