Skip to content
Document代码类型命名规则
举个例子 :
    Type E3(代码类型)
    3.0.3.1.x (数字代码类型):
    00XXXXXX  : (如00000130 -> C7000130)
    ZZZZZZZZ  : 将数据 ZZZZZZZZ 写到地址 $4XXXXXX($符号表示后面的值是一个十六进制数)
3.0.3.1.x (16进制加代码类型解释): 第一个字符 3 = 数据大小,这里的Z表示数据,类型E3有8位16进制数占用4字节,所以用计算机里的3表示(0、1、2、3); 第二个字符 0 = 代码类型(0 到 7); 第三个字符 3 = 代码子类型(0 到 3); 第四个字符 1 = 特殊位(0 到 1); 第五个字符 x = 未使用位(0 到 3)。
3.0.3.1.0 转化为2进制 = 11.000.11.1.00
将其反转并拼接在一起 : 00.1.11.000.11 = 0011100011(2进制) = E3(16进制) = 代码类型.
I choose to take this numbering to make it that the Ram 8bits write (Type 0), Ram 16bits write Type 1 andRam 32bits write (Type 2) have the same type number than for AR/GS V1/2. Moreover, If I didn't "reverse" the numbers, we've gotten almost only even code type number, which, IMHO, sounds really strange...
1) Normal RAM Write Codes Type 00
0.0.0.x.x (02024EA4 -> 00224EA4) 原始代码地址部分转换为中间代码左边部分规则 后5位不变,前2位变成00,第2位右移一位
Fill area (XXXXXXXX) to (XXXXXXXX+YYYYYY) with Byte ZZ.
注意这里的(XXXXXXXX)指代的是原始代码地址02024EA4,意思是用字节 ZZ 将从(02024EA4)到(02024EA4+YYYYYY)的地址区域填满。 XXXXXXXX(中间代码左边 00224EA4)
YYYYYYZZ(中间代码右边) Type 01
1.0.0.x.x (02024EA4 -> 02224EA4)
Fill area (XXXXXXXX) to (XXXXXXXX+YYYY*2) with Halfword ZZZZ. XXXXXXXX
YYYYZZZZ Type 02
2.0.0.x.x (02024EA4 -> 04224EA4)
Write the Word ZZZZZZZZ to address XXXXXXXX. XXXXXXXX
ZZZZZZZZ 2) Pointer RAM Write Codes Type 20
0.0.1.x.x (02024EA4 -> 40224EA4)
Writes Byte ZZ to ([the address kept in XXXXXXXX]+[YYYYYY]). XXXXXXXX
YYYYYYZZ Type 21
1.0.1.x.x (02024EA4 -> 4224EA4)
Writes Halfword ZZZZ ([the address kept in XXXXXXXX]+[YYYY*2]). XXXXXXXX
YYYYZZZZ Type 22
2.0.1.x.x (02024EA4 -> 4424EA4)
Writes the Word ZZZZZZZZ to [the address kept in XXXXXXXX]. XXXXXXXX
ZZZZZZZZ 3) Add Codes Type 40
0.0.2.x.x (02024EA4 -> 80224EA4)
Add the Byte ZZ to the Byte stored in XXXXXXXX. XXXXXXXX
000000ZZ Type 41
1.0.2.x.x (02024EA4 -> 82224EA4)
Add the Halfword ZZZZ to the Halfword stored in XXXXXXXX. XXXXXXXX
0000ZZZZ Type 42
2.0.2.x.x (02024EA4 -> 84224EA4)
Add the Word ZZZZ to the Halfword stored in XXXXXXXX. XXXXXXXX
ZZZZZZZZ 4) Write to $4000000 (IO Registers!) Type 63
3.0.3.0.x (00000130 -> C6000130)
Write the Halfword ZZZZ to the address $4XXXXXX 00XXXXXX
0000ZZZZ Type E3
3.0.3.1.x (00000130 -> C7000130)
Write the Word ZZZZZZZZ to the address $4XXXXXX 00XXXXXX
ZZZZZZZZ 5) If Equal Code (= Joker Code) Type 04
0.1.0.x.x (02024EA4 -> 08224EA4)
If Byte at XXXXXXXX = ZZ then execute next code. XXXXXXXX
000000ZZ Type 24
0.1.1.x.x (02024EA4 -> 48224EA4)
If Byte at XXXXXXXX = ZZ then execute next 2 codes. XXXXXXXX
000000ZZ Type 44
0.1.2.x.x (02024EA4 -> 88224EA4)
If Byte at XXXXXXXX = ZZ execute all the codes below this one in the same row (else execute none of the codes below). XXXXXXXX
000000ZZ Type 64
0.1.3.x.x (02024EA4 -> C8224EA4)
While Byte at XXXXXXXX <> ZZ turn off all codes. XXXXXXXX
000000ZZ Type 05
1.1.0.x.x (02024EA4 -> 0A224EA4)
If Halfword at XXXXXXXX = ZZZZ then execute next code. XXXXXXXX
0000ZZZZ Type 25
1.1.1.x.x (02024EA4 -> 4A224EA4)
If Halfword at XXXXXXXX = ZZZZ then execute next 2 codes. XXXXXXXX
0000ZZZZ Type 45
1.1.2.x.x (02024EA4 -> 8A224EA4)
If Halfword at XXXXXXXX = ZZZZ execute all the codes below this one in the same row (else execute none of the codes below). XXXXXXXX
0000ZZZZ Type 65
1.1.3.x.x (02024EA4 -> CA224EA4)
While Halfword at XXXXXXXX <> ZZZZ turn off all codes. XXXXXXXX
0000ZZZZ Type 06
2.1.0.x.x (02024EA4 -> 0C224EA4)
If Word at XXXXXXXX = ZZZZZZZZ then execute next code. XXXXXXXX
ZZZZZZZZ Type 26
2.1.1.x.x (02024EA4 -> 4C224EA4)
If Word at XXXXXXXX = ZZZZZZZZ then execute next 2 codes. XXXXXXXX
ZZZZZZZZ Type 46
2.1.2.x.x (02024EA4 -> 8C224EA4)
If Word at XXXXXXXX = ZZZZZZZZ execute all the codes below this one in the same row (else execute none of the codes below). XXXXXXXX
ZZZZZZZZ Type 66
2.1.3.x.x (02024EA4 -> CC224EA4)
While Word at XXXXXXXX <> ZZZZZZZZ turn off all codes. XXXXXXXX
ZZZZZZZZ 6) If Different Code Type 08
0.2.0.x.x (02024EA4 -> 10224EA4)
If Byte at XXXXXXXX <> ZZ then execute next code. XXXXXXXX
000000ZZ Type 28
0.2.1.x.x (02024EA4 -> 50224EA4)
If Byte at XXXXXXXX <> ZZ then execute next 2 codes. XXXXXXXX
000000ZZ Type 48
0.2.2.x.x (02024EA4 -> 90224EA4)
If Byte at XXXXXXXX <> ZZ execute all the codes below this one in the same row (else execute none of the codes below). XXXXXXXX
000000ZZ Type 68
0.2.3.x.x (02024EA4 -> D0224EA4)
While Byte at XXXXXXXX = ZZ turn off all codes. XXXXXXXX
000000ZZ Type 09
1.2.0.x.x (02024EA4 -> 12224EA4)
If Halfword at XXXXXXXX <> ZZZZ then execute next code. XXXXXXXX
0000ZZZZ Type 29
1.2.1.x.x (02024EA4 -> 52224EA4)
If Halfword at XXXXXXXX <> ZZZZ then execute next 2 codes. XXXXXXXX
0000ZZZZ Type 49
1.2.2.x.x (02024EA4 -> 92224EA4)
If Halfword at XXXXXXXX <> ZZZZ disable all the codes below this one. XXXXXXXX
0000ZZZZ Type 69
1.2.3.x.x (02024EA4 -> D2224EA4)
While Halfword at XXXXXXXX = ZZZZ turn off all codes. XXXXXXXX
0000ZZZZ Type 0A
2.2.0.x.x (02024EA4 -> 14224EA4)
If Word at XXXXXXXX <> ZZZZZZZZ then execute next code. XXXXXXXX
ZZZZZZZZ Type 2A
2.2.1.x.x (02024EA4 -> 54224EA4)
If Word at XXXXXXXX <> ZZZZZZZZ then execute next 2 codes. XXXXXXXX
ZZZZZZZZ Type 4A
2.2.2.x.x (02024EA4 -> 94224EA4)
If Word at XXXXXXXX <> ZZZZZZZZ disable all the codes below this one. XXXXXXXX
ZZZZZZZZ Type 6A
2.2.3.x.x (02024EA4 -> D4224EA4)
While Word at XXXXXXXX = ZZZZZZZZ turn off all codes. XXXXXXXX
ZZZZZZZZ 7) [If Byte at address XXXXXXXX is lower than ZZ] (signed) Code Signed means : For bytes : values go from -128 to +127. For Halfword : values go from -32768/+32767. For Words : values go from -2147483648 to 2147483647. For exemple, for the Byte comparison, 7F (127) will be > to FF (-1). Type 0C
0.3.0.x.x (02024EA4 -> 18224EA4 or 28224EA4)
If ZZ > Byte at XXXXXXXX then execute next code. XXXXXXXX
000000ZZ Type 2C
0.3.1.x.x (02024EA4 -> 58224EA4 or 68224EA4)
If ZZ > Byte at XXXXXXXX then execute next 2 codes. XXXXXXXX
000000ZZ Type 4C
0.3.2.x.x (02024EA4 -> 98224EA4 or A8224EA4)
If ZZ > Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX
000000ZZ Type 6C
0.3.3.x.x (02024EA4 -> D8224EA4 or E8224EA4)
While ZZ <= Byte at XXXXXXXX turn off all codes. XXXXXXXX
000000ZZ Type 0D
1.3.0.x.x (02024EA4 -> 1A224EA4 or 2A224EA4)
If ZZZZ > Halfword at XXXXXXXX then execute next line. XXXXXXXX 0000ZZZZ Type 2D
1.3.1.x.x (02024EA4 -> 5A224EA4)
If ZZZZ > Halfword at XXXXXXXX then execute next 2 lines. XXXXXXXX 0000ZZZZ Type 4D
1.3.2.x.x (02024EA4 -> 9A224EA4)
If ZZZZ > Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX 0000ZZZZ Type 6D
1.3.3.x.x (02024EA4 -> DA224EA4)
While ZZZZ <= Halfword at XXXXXXXX turn off all codes. XXXXXXXX 0000ZZZZ Type 0E
2.3.0.x.x (02024EA4 -> 1C224EA4)
If ZZZZZZZZ > Word at XXXXXXXX then execute next line. XXXXXXXX ZZZZZZZZ Type 2E
2.3.1.x.x (02024EA4 -> 5C224EA4)
If ZZZZZZZZ > Word at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 4E
2.3.2.x.x (02024EA4 -> 9C224EA4)
If ZZZZZZZZ > HWord at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 6E
2.3.3.x.x (02024EA4 -> DC224EA4)
While ZZZZZZZZ <= Word at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ 8) [If Byte at address XXXXXXXX is higher than ZZ] (signed) Code Signed means : For bytes : values go from -128 to +127. For Halfword : values go from -32768/+32767. For Words : values go from -2147483648 to 2147483647. For exemple, for the Byte comparison, 7F (127) will be > to FF (-1). Type 10
0.4.0.x.x , 0.6.0.x.x (02024EA4 -> 20224EA4 or 30224EA4)
If ZZ < Byte at XXXXXXXX then execute next code. XXXXXXXX
000000ZZ Type 30
0.4.1.x.x (02024EA4 -> 60224EA4 or 70224EA4)
If ZZ < Byte at XXXXXXXX then execute next 2 codes. XXXXXXXX
000000ZZ Type 50
0.4.2.x.x , 0.6.2.x.x (02024EA4 -> A0224EA4 or B0224EA4)
If ZZ < Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX
000000ZZ Type 70
0.4.3.x.x (02024EA4 -> E0224EA4 or F0224EA4)
While ZZ => Byte at XXXXXXXX turn off all codes. XXXXXXXX
000000ZZ Type 11
1.4.0.x.x, 1.6.0.x.x (02024EA4 -> 22224EA4 or 32224EA4)
If ZZZZ < Halfword at XXXXXXXX then execute next line. XXXXXXXX 0000ZZZZ Type 31 1.4.1.x.x (02024EA4 -> 62224EA4)
If ZZZZ < Halfword at XXXXXXXX then execute next 2 lines. XXXXXXXX 0000ZZZZ Type 51 1.4.2.x.x, 1.6.2.x.x (02024EA4 -> A2224EA4 or B2224EA4)
If ZZZZ < Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX 0000ZZZZ Type 71 1.4.3.x.x (02024EA4 -> E2224EA4) While ZZZZ => Halfword at XXXXXXXX turn off all codes. XXXXXXXX 0000ZZZZ Type 12 2.4.0.x.x, 2.6.0.x.x (02024EA4 -> 24224EA4 or 34224EA4) If ZZZZ < Halfword at XXXXXXXX then execute next line. XXXXXXXX 0000ZZZZ Type 32 2.4.1.x.x (02024EA4 -> 64224EA4) If ZZZZ < Halfword at XXXXXXXX then execute next 2 lines. XXXXXXXX 0000ZZZZ Type 52 2.4.2.x.x,2.6.2.x.x (02024EA4 -> A4224EA4 or B4224EA4) If ZZZZ < Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX 0000ZZZZ Type 72 2.4.3.x.x (02024EA4 -> E4224EA4) While ZZZZ => Halfword at XXXXXXXX turn off all codes. XXXXXXXX 0000ZZZZ 9) [If Value at adress XXXXXXXX is lower than...] (unsigned) Code Unsigned means : For bytes : values go from 0 to +255. For Halfword : values go from 0 to +65535. For Words : values go from 0 to 4294967295. For exemple, for the Byte comparison, 7F (127) will be < to FF (255). Type 14 0.5.0.x.x (02024EA4 -> 28224EA4) If ZZZZZZZZ > Byte at XXXXXXXX then execute next line. XXXXXXXX ZZZZZZZZ Type 34 0.5.1.x.x (02024EA4 -> 68224EA4) If ZZZZZZZZ > Byte at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 54 0.5.2.x.x (02024EA4 -> A8224EA4) If ZZZZZZZZ > Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 74 0.5.3.x.x (02024EA4 -> E8224EA4) While ZZ <= Byte at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ Type 15 1.5.0.x.x (02024EA4 -> 2A224EA4) If ZZZZZZZZ > Halfword at XXXXXXXX then execute next line. XXXXXXXX ZZZZZZZZ Type 35 1.5.1.x.x (02024EA4 -> 6A224EA4) If ZZZZZZZZ > Halfword at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 55 1.5.2.x.x (02024EA4 -> AA224EA4) If ZZZZZZZZ > Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 75 1.5.3.x.x (02024EA4 -> EA224EA4) While ZZZZZZZZ <= Halfword at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ Type 16 2.5.0.x.x (02024EA4 -> 2C224EA4) If ZZZZZZZZ > Word at XXXXXXXX then execute next line. XXXXXXXX ZZZZZZZZ Type 36 2.5.1.x.x (02024EA4 -> 6C224EA4) If ZZZZZZZZ > Word at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 56 2.5.2.x.x (02024EA4 -> AC224EA4) If ZZZZZZZZ > Word at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 76 2.5.3.x.x (02024EA4 -> EC224EA4) While ZZZZZZZZ <= Word at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ 10) [If Value at adress XXXXXXXX is higher than...] (unsigned) Code Unsigned means For bytes : values go from 0 to +255. For Halfword : values go from 0 to +65535. For Words : values go from 0 to 4294967295. For exemple, for the Byte comparison, 7F (127) will be < to FF (255). Type 18 0.6.0.x.x (02024EA4 -> 30224EA4) If ZZZZZZZZ < Byte at XXXXXXXX then execute next line.. XXXXXXXX ZZZZZZZZ Type 38 0.6.1.x.x (02024EA4 -> 70224EA4) If ZZZZZZZZ < Byte at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 58 0.6.2.x.x (02024EA4 -> B0224EA4) If ZZZZZZZZ < Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 78 0.6.3.x.x (02024EA4 -> F0224EA4) While ZZZZZZZZ => Byte at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ Type 19 1.6.0.x.x (02024EA4 -> 32224EA4) If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line. XXXXXXXX ZZZZZZZZ Type 39 1.6.1.x.x (02024EA4 -> 72224EA4) If ZZZZZZZZ < Halfword at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 59 1.6.2.x.x (02024EA4 -> B2224EA4) If ZZZZZZZZ < Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 79 1.6.3.x.x (02024EA4 -> F2224EA4) While ZZZZZZZZ => Halfword at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ Type 1A 2.6.0.x.x (02024EA4 -> 34224EA4) If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line. XXXXXXXX ZZZZZZZZ Type 3A 2.6.1.x.x (02024EA4 -> 74224EA4) If ZZZZZZZZ < Halfword at XXXXXXXX then execute next 2 lines. XXXXXXXX ZZZZZZZZ Type 5A 2.6.2.x.x (02024EA4 -> B4224EA4) If ZZZZZZZZ < Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX ZZZZZZZZ Type 7A 2.6.3.x.x (02024EA4 -> F4224EA4) While ZZZZZZZZ => Halfword at XXXXXXXX turn off all codes. XXXXXXXX ZZZZZZZZ 11) If AND Code Type 1C
0.7.0.x.x (02024EA4 -> 38224EA4)
If ZZ AND Byte at XXXXXXXX <> 0 (= True) then execute next code. XXXXXXXX
000000ZZ Type 3C
0.7.1.x.x (02024EA4 -> 78224EA4)
If ZZ AND Byte at XXXXXXXX <> 0 (= True) then execute next 2 codes. XXXXXXXX
000000ZZ Type 5C
0.7.2.x.x (02024EA4 -> B8224EA4)
If ZZ AND Byte at XXXXXXXX <> 0 (= True) then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX
000000ZZ Type 7C
0.7.3.x.x (02024EA4 -> F8224EA4)
While ZZ AND Byte at XXXXXXXX = 0 (= False) then turn off all codes. XXXXXXXX
000000ZZ Type 1D
1.7.0.x.x (02024EA4 -> 3A224EA4)
If ZZZZ AND Halfword at XXXXXXXX <> 0 (= True) then execute next code. XXXXXXXX
0000ZZZZ Type 3D
1.7.1.x.x (02024EA4 -> 7A224EA4)
If ZZZZ AND Halfword at XXXXXXXX <> 0 (= True) then execute next 2 codes. XXXXXXXX
0000ZZZZ Type 5D
1.7.2.x.x (02024EA4 -> BA224EA4)
If ZZZZ AND Halfword at XXXXXXXX <> 0 (= True) then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX
0000ZZZZ Type 7D
1.7.3.x.x (02024EA4 -> FA224EA4)
While ZZZZ AND Halfword at XXXXXXXX = 0 (= False) then turn off all codes. XXXXXXXX
0000ZZZZ Type 1E
2.7.0.x.x (02024EA4 -> 3C224EA4)
If ZZZZZZZZ AND Word at XXXXXXXX <> 0 (= True) then execute next code. XXXXXXXX
ZZZZZZZZ Type 3E
2.7.1.x.x (02024EA4 -> 7C224EA4)
If ZZZZZZZZ AND Word at XXXXXXXX <> 0 (= True) then execute next 2 codes. XXXXXXXX
ZZZZZZZZ Type 5E
2.7.2.x.x (02024EA4 -> BC224EA4)
If ZZZZZZZZ AND Word at XXXXXXXX <> 0 (= True) then execute all following codes in the same row (else execute none of the codes below). XXXXXXXX
ZZZZZZZZ Type 7E
2.7.3.x.x (02024EA4 -> FC224EA4)
While ZZZZZZZZ AND Word at XXXXXXXX = 0 (= False) then turn off all codes. XXXXXXXX
ZZZZZZZZ 12) "Always..." Codes For the "Always..." codes: -XXXXXXXX can be any authorised address BUT 00000000 (use 02000000 if you don't know what to choose). -ZZZZZZZZ can be anything. -The "y" in the code data must be in the [1-7] range (which means not 0). Type 07 3.y.0.x.x (02024EA4 -> 0E224EA4) Always skip next line. XXXXXXXX ZZZZZZZZ Type 27 3.y.1.x.x (02024EA4 -> 4E24EA4) Always skip next 2 lines. XXXXXXXX ZZZZZZZZ Type 47 3.y.2.x.x (02024EA4 -> 8E224EA4) Always Stops executing all the codes below. XXXXXXXX ZZZZZZZZ Type 67 3.y.3.x.x (02024EA4 -> CE224EA4) Always turn off all codes. XXXXXXXX ZZZZZZZZ 13) 1 Line Special Codes (= starting with "00000000") Type z00
0.0.0.0.0 End of the code list (even if you put values in the 2nd line). 00000000 Type z04
x.1.0.x.x AR Slowdown : loops the AR XX times 0800XX00 14) 2 Lines Special Codes (= starting with '00000000' and padded (if needed) with "00000000")Note: You have to add the 0es manually, after clicking the "create" button. Type z08
0.2.0.x.x (02024EA4 -> 10224EA4)
Writes Byte ZZ to address XXXXXXXX when AR button is pushed. XXXXXXXX
000000ZZ Type z09
1.2.0.x.x (02024EA4 -> 12224EA4)
Writes Halfword ZZZZ to address XXXXXXXX. XXXXXXXX
0000ZZZZ Type z0A
2.2.0.x.x (02024EA4 -> 14224EA4)
Writes Word ZZZZZZZZ to address XXXXXXXX. XXXXXXXX
ZZZZZZZZ Type z0C
0.3.0.x.x (02024EA4 -> 18224EA4)
Patches ROM address (XXXXXXXX << 1) with Halfword ZZZZ. XXXXXXXX
0000ZZZZ Type z0D
1.3.0.x.x (02024EA4 -> 1A224EA4)
Patches ROM address (XXXXXXXX << 1) with Halfword ZZZZ. Does not work on V1/2 upgraded to V3. Only for a real V3 Hardware? XXXXXXXX
0000ZZZZ Type z0E
2.3.0.x.x (02024EA4 -> 1C224EA4)
Patches ROM address (XXXXXXXX << 1) with Halfword ZZZZ. Does not work on V1/2 upgraded to V3. Only for a real V3 Hardware? XXXXXXXX
0000ZZZZ Type z0F
3.3.0.x.x (02024EA4 -> 1E224EA4)
Patches ROM address (XXXXXXXX << 1) with Halfword ZZZZ. Does not work on V1/2 upgraded to V3. Only for a real V3 Hardware? XXXXXXXX
0000ZZZZ Type z20
x.0.1.x.x (00000000 -> 40000000)
(SP = 0) (means : stops the "then execute all following codes in the same row" and stops the "else execute none of the codes below)". 00000000
00000000 Type z30
x.4.1.x.x (00000000 -> 60000000)
(If SP <> 2 -> SP = 1) (means : start to execute all codes until end of codes or SP = 0). (bypass the number of codes to executes set by the master code). 00000000
00000000 Type z40
0.0.2.x.x (02024EA4 -> 80224EA4)
Writes Byte YY at address XXXXXXXX. Then makes YY = YY + Z1, XXXXXXXX = XXXXXXXX + Z3Z3, Z2 = Z2 - 1, and repeats until Z2 < 0. XXXXXXXX
000000YY
Z1Z2Z3Z3 Type z41
1.0.2.x.x (02024EA4 -> 82224EA4)
Writes Halfword YYYY at address XXXXXXXX. Then makes YYYY = YYYY + Z1, XXXXXXXX = XXXXXXXX + Z3Z3*2, XXXXXXXX
0000YYYY
Z1Z2Z3Z3 Type z42
2.0.2.x.x (02024EA4 -> 84224EA4)
Writes Word YYYYYYYY at address XXXXXXXX. Then makes YYYYYYYY = YYYYYYYY + Z1, XXXXXXXX = XXXXXXXX + Z3Z3*4, Z2 = Z2 - 1, and repeats until Z2<0. XXXXXXXX
YYYYYYYY
Z1Z2Z3Z3 WARNING: There is a BUG on the REAL AR (v2 upgraded to v3, and maybe on real v3) with the 32Bits Increment Slide code. You HAVE to add a code (best choice is 80000000 00000000 : add 0 to value at address 0) right after it, else the AR will erase the 2 last 8 digits lines of the 32 Bits Inc. Slide code when you enter it !!!15) Special Codes -Master Code-
Type 62
2.0.3.x.x (address to patch -> address to patch AND $1FFFFFE)
Master Code settings. XXXXXXXX
0000YYYY -ID Code-
Type 62
2.0.3.x.x word at address 080000AC
Must always be 001DC0DE XXXXXXXX
001DC0DE -DEADFACE- Must always be DEADFACE
New Encryption seed. DEADFACE
0000XXXX Final Notes
SP = 0 : normal (execute n codes before giving back the hand to the game).
        SP = 1 : execute all codes until SP <>1 (or end of codes).
        SP = 2 : don't execute anymore codes.
        Each time the GSA starts to execute codes (= each time "it has the hand"), SP = 0.
        The 'execute all the codes below this one in the same row' makes SP = 1.
        The '(else execute none of the codes below)' makes SP = 2.
        The 'turn off all codes' makes an infinite loop (that can't be broken, unless 
        the condition becomes True).