Jump to content
Whai

Gecko codes for [NTSC-U, 16:9] v1.01

Recommended Posts

Hello cheaters/hackers,

In this post, I am going to share you codes that I managed (and sometimes edited) to port for the NTSC-U 16:9 v1.01.
Codes have been tested on Dolphin Emulator, 16:9 screen, on normal difficulty. I will show you how to customize in another post

Here are the codes I managed to port for v1.01 :

Spoiler

Number of Enemies Killed(mainly for Part 3 Endgame) [ShadowX39]
043CABF8 000000XX
Putting 01 at the end will keep the counter at 1

Everyone Attacks Everyone [ShadowX39]
08723C48 00000000
20F10004 00000000
Units like Jill will attack Haar and so on, affects everyone

No Cap Limits [ShadowX39]

Spoiler

20B5411C 50320A46
08B54114 7F7F7F7F
20A1011C 00000000
08B54118 7F7F7F7F
20A1011C 00000000
08B540E0 014B014B
20A1011C 00000000
08B540E4 014B014B
20A1011C 00000000
08B540E8 014B014B
20A1011C 00000000
08B540EC 014B014B
20A1011C 00000000
08B540F0 014B014B
20A1011C 00000000
08B540F4 014B014B
20A1011C 00000000
E0000000 80008000

Always Perfect Level-Ups [ShadowX39]
088C361A 64646464
216500FC 00000000
088C361E 64646464
216500FC 00000000
Can learn all skills [kronosx]
0870F8AB 00000000
0050002C 00000000
dont need the scrolls to learn

All Skills don't require skill points [kronosx]
0870F8AE 00000000
0050002C 00000000

All Weapons have a 255% Critical Rate [ShadowX39]
20B5411C 50320A46
08B5FE2F 000000FF
00CA0050 00000000
E0000000 80008000

All Weapons have a Brave Effect [ShadowX39, Whai]

Spoiler

20B5411C 50320A46
A8000000 00000001
4A000000 80B5FE10
600000CA 00000000
3A00003E FEFF0100
92010000 0000003E
86000000 00000001
94010000 0000003E
E2000001 00000000
4A100000 00000050
62000000 00000000
E0000000 80008000

Like Brave Axe and Amiti
v2 : I edited the code so that it doesn't affect other effects like venin weapons, bronze weapons (the effect to be not able to land crits), etc...

Every Unit can use Every Weapon [ShadowX39]
20B5411C 50320A46
08B5FE4C 00000000
00CA0050 00000000
08B5FE4B 00000000
00CA0050 00000000
E0000000 80008000
As in, Ragnell, Cymbeline, etc.

All Weapons Unlocked [ShadowX39]
20B5411C 50320A46
08B5FE48 00000000
00CA0050 00000000
E0000000 80008000
Locked weapons such as Amiti can be traded

All Weapons have Infinite Use [ShadowX39, Whai]

Spoiler

20B5411C 50320A46
A8000000 00000001
4A000000 80B5FE10
600000CA 00000000
3A000038 FFFE0001
92010000 00000039
86000000 00000001
94010000 00000039
E2000004 00000000
4A100000 00000050
62000000 00000000
E0000000 80008000

Think Ragnell or Alondite
v2 : I edited the code so that it doesn't affect other characteristics like staffs that heal the user at each player phase, item's not sellable, etc...

All Weapons can Attack at Close Range [ShadowX39]
20B5411C 50320A46
08B5FE30 00000001
00CA0050 00000000
E0000000 80008000

All Weapons have its max range added by xx [ShadowX39, Whai]

Spoiler

20B5411C 50320A46
A8000000 00000001
4A000000 80B5FE10
600000CA 00000000
3E000020 FF0000XX
92010000 00000021
86000000 000000xx
94010000 00000021
E2000001 00000000
4A100000 00000050
62000000 00000000
E0000000 80008000

It doesn't affect items that use the "mag/2" range.
Change xx to any value from 0x01 to 0xFE (both included), then change the XX with the value of : [0xFF - xx]

Every Single Unit's First Item is Blessed [ShadowX39, Whai]

Spoiler

4A000000 80884D90
600000A1 00000000
3E0001C0 FFEF0010
92010000 000001C1
86000000 00000010
94010000 000001C1
E2000001 00000000
4A100000 000003F0
62000000 00000000
E0000000 80008000

Every Single Unit always has 99 Exp [ShadowX39]
08884E8F 00000063
00A103F0 00000000

BEXP Level Up, 3 categories restriction lifted [g6flavor]
0006DAB7 000000xx
xx = 1 to 8

Level Up Stats + Mod [g6flavor]
0006D303 000000xx
0006D35F 000000xx
xx = 5 mean +5 on Stats, 9 means +9, etc...

Gain 2x EXP [g6flavor]
0406C518 54040E3E
0406C66C 54040E3E
0406C7F8 54040E3E
https://web.archive.org/web/20170920181111/http://gamehacking.org/wiird/forum/index.php/topic,70.msg17645.html#msg17645

Weapon Level Max after Battle [g6flavor]
283C9416 0000B8BC
023C9154 000B014B
E0000000 80008000
283C9416 0000B8B0
023C95F4 000B014B
E0000000 80008000

Seraph Robe Will Instantly Max Stats [ShadowX39]
20B5411C 50320A46
00B63DA2 00070032
E0000000 80008000
Use a Seraph Robe once and your unit's stats will be maxed out

Boots Will Instantly Max Movement [ShadowX39]
20B5411C 50320A46
00B6402B 00000014
E0000000 80008000

Make all Enemies Played Controlled (works in all Chapters and all Difficulties) (Wii Classic Controller) [ShadowX39]
20B5411C 50320A46
66100004 00000000
283D79BA 0000xxxx
0066B8C4 00000000
CC000000 00000000
0066B8C4 00000001
E0000000 80008000
xxxx = button value

RecoverHP after battle on player turn [g6flavor]
283C8F76 0000B8B0
2E3C8F98 0000F000
003C8F94 00000063
E0000000 80008000

RecoverHP after battle on enemy turn [g6flavor]
283C9416 0000B8B0
2E3C9438 0000F000
003C9434 00000063
E0000000 80008000

ALWAYS Alive enemy turn [g6flavor]
283C9416 0000B8B0
2E3C9438 0000F000
283C9434 00000000
003C9434 00000063
E0000000 80008000

ALWAYS Alive player turn [g6flavor]
283C8F76 0000B8B0
2E3C8F98 0000F000
283C8F94 00000000
003C8F94 00000063
E0000000 80008000

Enable Max Storage (300) in Convoy for All Chapters [g6flavor]
024CB75A 0000012C
024CB762 0000012C
024CB766 000092A0
024CB76A 0000012C
024CB76E 000092A0
024CB772 0000012C
024CB776 000092A0

Have All Items in Convoy and Skills (296 items) [ShadowX39, Whai]
203E92A0 00000000
083E92A0 80B5FE10
21270028 00000050
083E92A4 0000007F
01270028 00000000
E0000000 80008000
Make sure to activate the cheat code : "Enable Max Storage (300) in Convoy for All Chapters"
Make sure that there is nothing in the convoy otherwise you will lose the items.
If you want to regenerate items once you picked up : take out the slim sword, it will regenerate all items that you took out from the convoy

Number of times Game had been CLEARED [g6flavor]
003CABE7 000000xx
xx = 2 = Cleared once, xx = 3 = Cleared twice
You can use this to enable Pelleas and Sephiran on a first play through

Chapter Warping [ShadowX39]
003CAB48 000000XX
You can activate this code during the screen that asks you to save your game once a chapter has finished, it'll directly send you to your chosen chapter once you pass this screen!
Below is the list of chapters, place the digits in place of XX:

Spoiler

00 = Test Map
01 = Part 1 - Prologue, Under Gray Skies
02 = Part 1 - Ch.1, Maiden of Miracles
03 = Part 1 - Ch.2, The Dispossessed
04 = Part 1 - Ch.3, A Faint Light
05 = Part 1 - Ch.4, A Distant Voice
06 = Part 1 - Ch.5, The Lost Heir
07 = Part 1 - Ch.6, Raise the Standard
08 = Part 1 - Ch.7, A Gathering Hope
09 = Part 1 - Ch.8, Glory Unwanted
0A = Part 1 - Ch.9, One Survives
0B = Part 1 - Endgame, Daein, Arise!
0C = Part 2 - Prologue, On Drifting Clouds
0D = Part 2 - Ch.1, Winds of Rebellion
0E = Part 2 - Ch.2, Tides of Intrigue
0F = Part 2 - Ch.3, Geoffrey's Charge
10 = Part 2 - Endgame, Elincia's Gambit
11 = Part 3 - Prologue, The Great Advance
12 = Part 3 - Ch.1, Laguz and Beorc
13 = Part 3 - Ch.2, Stormclouds
14 = Part 3 - Ch.3, River Crossing
15 = Part 3 - Ch.4, The General's Hand
16 = Part 3 - Ch.5, Retreat!
17 = Part 3 - Ch.6, A Reason to Fight
18 = Part 3 - Ch.7, Rivals Collide
19 = Part 3 - Ch.8, Incandescent Glow
1A = Part 3 - Ch.9, Marauders
1B = Part 3 - Ch.10, The Heart of Crimea
1C = Part 3 - Ch.11, Just Cause
1D = Part 3 - Ch.12, The Price
1E = Part 3 - Ch.13, Blood Contract
1F = Part 3 - Endgame, From Pain, Awakening
20 = Part 4 - Prologue, Chaos Named
21 = dummy
22 = dummy
23 = Part 4 - Ch.1, Road to Empire
24 = dummy
25 = dummy
26 = Part 4 - Ch.2, Silent World
27 = dummy
28 = dummy
29 = Part 4 - Ch.3, Distortions
2A = dummy
2B = dummy
2C = Part 4 - Ch.4, Revelations
2D = dummy
2E = dummy
2F = Part 4 - Ch.5, Unforgivable Sin
30 = dummy
31 = dummy
32 = Part 4 - Endgame, Rebirth (1)
33 = Part 4 - Endgame, Rebirth (2)
34 = Part 4 - Endgame, Rebirth (3)
35 = Part 4 - Endgame, Rebirth (4)
36 = Part 4 - Endgame, Rebirth (5)
37 = Epilogue
38-4F = freezes
50-53 = The levels shown in the Guide, no way to clear them.
54-60 = freezes

Inf. Movement [AlexWong]
04053508 7C601B78

Move reposition Spot WiiRemote with Classic Controller [g6flavor]

Spoiler

283D79BA 00000202
A8000000 00000001
82000000 803E7328
86000000 000000FF
84000000 803E7328
E0000000 80008000
283D79BA 00008200
A8000000 00000001
82000000 803E7328
86000000 00000001
84000000 803E7328
E0000000 80008000
283D79BA 00000201
A8000000 00000001
82000000 803E7329
86000000 000000FF
84000000 803E7329
E0000000 80008000
283D79BA 00004200
A8000000 00000001
82000000 803E7329
86000000 00000001
84000000 803E7329
E0000000 80008000

buttons : R + D-Pad Directions

No Forced Characters [kronosx]

Spoiler

283CAB4A 00000001
4A000000 80884E7C
600000A1 00000000
3A000020 00000000
10000021 00000000
E2000001 80000000
5A010000 000003F0
62000000 00000000
E0000000 80008000

Can unselect Ike, Micaiah or Sothe in their chapters and select anyone in the tower

No Character limit [kronosx]
283CABD4 FF000001
206E63DC FFFFFFFF
0066B8B8 00000004
E2100000 00000000
0066B8B8 00000000
E0000000 80008000

Goldoa Dragons WILL Attack Ena and Kurthnaga [shadowofchaos]

Spoiler

04723E44 00000000
04723E4C 00000000
04723E74 00000000
04723E7C 00000000
04723EA4 00000000
04723EAC 00000000
04723ED4 00000000
04723EDC 00000000
04723F04 00000000
04723F0C 00000000

All Character Portaits [g6flavor]
044290D4 FFFFFFFF
044290D8 FFFFFFFF
044290DC FFFFFFFF
004290E3 000000FF

Unlock All Extras [g6flavor]
00427843 000000FF

100% PoR Support Archive [g6flavor]
04429068 FFFFFFFF
0442906C FFFFFFFF
04429070 FFFFFFFF
04429074 FFFFFFFF
04429078 FFFFFFFF
0442907C FFFFFFFF
04429080 FFFFFFFF

All Musics in Sound Room [g6flavor]
044290C0 FFFFFFFF
044290C4 FFFFFFFF
044290C8 FFFFFFFF

All Replay Event [g6flavor]
0442905C FFFFFFFF
04429060 FFFFFFFF
04429064 FFFFFFFF
00429068 000000FF

Enable All Stats +5 Bonus (Easy Mode Only) [g6flavor]
003CB07D 00000085
023CB07E 0000A305

Enable enemy ranges on hard mode [?]
04191B08 28000003
04052CD8 28000003
04067C9C 28000003

Quick Game Over (push B+A on WiiRemote then end move) [g6flavor]
283D795A 00000C00
003CB07C 00000002
E0000000 80008000

Quick End Chapter {Win} (Push B and + on WiiRemote then end move)* [g6flavor]
283D795A 00000410
003CB07C 00000004
E0000000 80008000

BEXP Part 1 [Am3692]
043CAB5C 48694000
BEXP Part 2 [Am3692]
043CAB60 48694000
BEXP Part 3/Ike [Am3692]
043CAB64 48694000
999999 part 1/Micaiah Gold [Am3692]
043CAB50 000F423F
999999 Gold Part 2/Elincia [Am3692]
043CAB54 000F423F
999999 Gold part 3/Ike [Am3692]
043CAB58 000F423F

And here a code that I managed to create :

Set the unit's side to controlled by [Whai]

Spoiler

283D79BA 00000204
A8000000 00000001
224CB568 00000000
48000000 804CB568
3E0000F6 FF0000D4
92010000 000000F7
86000000 0000000C
94010000 000000F7
E0000000 80008000
283D79BA 00000280
A8000000 00000001
224CB568 00000000
48000000 804CB568
3C0000F6 FF0000B0
92010000 000000F7
86000000 000000F4
94010000 000000F7
E0000000 80008000

While in the player phase, put your cursor on the unit then press :
R+ZL and/or R+ZR via the WiiRemote with Classic Controller to change the unit's "controlled by". You can press the buttons multiple times to browse which side the unit will fight for.
It works on easy/normal mode, for hard mode change at the :
- 3rd to 12th line of the cheat code from 224CB568 to 223DB348
- 4th and 13th line of the cheat code from 804CB568 to 803DB348

Here are the files so no need to copy/paste :

RFEE01 v1.00 (Pastebin) | RFEE01 v1.01 (Pastebin)

Download the one with the version you have (if you continued to read up here I guess you have the v1.01) and save it as RFEE01.ini in <Your user home directory>/Documents/Dolphin Emulator/GameSettings/

Edited by Whai
Enable max storage convoy fixed

Share this post


Link to post
Share on other sites

Now, I'm going to show you how to customize codes.

First of all, you should understand the Gecko CodeType, I recommend to read this CodeType Documentation than the previous one because it is where I understood more easily about the CodeType (of course, to really understand it, you have to practice).

For example in the 32 bits Write & Fill

From the documentation, the "______" is the offset for the ba (base address) which is set by default at 0x80000000.

Which is why we remove the "80" of the address you want to modify :

The address of the Bonus EXP for the Dawn brigade is 803CAB5C, you want to change the value at this address, then since the base address is set by default on 0x80000000, you have this code

BEXP Part 1 [Am3692]
043CAB5C 48694000

So Dolphin emulator recognise that :

  • We want to do a 32 bits Write
  • at the address of ba + 0x3CAB5C
  • and ba + 0x3CAB5C = 0x80000000 + 0x3CAB5C = 803CAB5C
  • It then writes what we want on the address 803CAB5C

Change Controller

So, certain codes I posted above use the WiiRemote with Classic Controller and but you don't use this controller, you prefer to use the Gamecube Controller or just the WiiRemote Controller ? Or you just want use other buttons than the ones that the code need ?

No need to panic,

buttons.txt

Spoiler
Those address are for the v1.01, if you want for the v1.00, just subtract the address by 0x80.

[Gamecube Controller]
	Address : 
		- 803D7928 | 2 bytes
			Values :
				https://wiigeckocodes.github.io/buttonconditionals.html (Section Gamecube Controller)

		- 803D792A | 2 bytes
			Values [Control Stick] :
				- Up :		0048
				- Down :	00B8
				- Right :	4800
				- Left :	B800
				Notes :
					- Combining 2 directions doesn't do what we expect, here are the values (without the modifier) :
						- Left + Up :		D12E
						- Left + Down :		D1D1
						- Right + Up :		2F2F 
						- Right + Down :	2ED1
					- Combining 2 opposites directions will have the result of 00 (e.g Left + Right + Up : 0048)
	
		- 803D792C | 2 bytes
			Values [C stick] :
				- Up :		003B
				- Down :	00C5
				- Right :	3B00
				- Left :	C500
				Notes :
					- Combining 2 directions doesn't do what we expect, here are the values (without the modifier) :
						- Left + Up :		E11F
						- Left + Down :		E1E1
						- Right + Up :		1F1F 
						- Right + Down :	1FE1
					- Combining 2 opposites directions will have the result of 00 (e.g Left + Right + Up : 003B)
				
		- 803D792E | 2 bytes
			Values [For some reason, this address is for L and R buttons but with different values than the ones at https://wiigeckocodes.github.io/buttonconditionals.html] :
				- L :	B400
				- R :	00B4


[WiiRemote Controller]
	Address : 
		803D795A, 803D79DE (I have no clue why there is a second address, choose which one you want) | 2 bytes
			Values :
				https://wiigeckocodes.github.io/buttonconditionals.html (Section Wii Remote + Nunchuck, just ignore C and Z buttons)


[WiiRemote with Classic Controller]
	Address : 
		- 803D79BA, 803D7A3E, 803D7AC2, 803D7B46 (Now there is 4 of them ?!) | 2 bytes
			Values :
				https://wiigeckocodes.github.io/buttonconditionals.html (Section Classic Controller)
				
		- 803D79C4, 803D7A48, 803D7ACC, 803D7B50 | 2 bytes
			Values [Left Stick]* :
				I am so done with those weird values...
				- Right :	3F80
				- Left :	BF80
				
		- 803D79C8, 803D7A4C, 803D7AD0, 803D7B54 | 2 bytes
			Values [Left Stick]* :
				- Up :		3F80
				- Down :	BF80
				
		- 803D79CC, 803D7A50, 803D7AD4, 803D7B58 | 2 bytes
			Values [Right Stick]* :
				- Right :	3F80
				- Left :	BF80
				
		- 803D79D0, 803D7A54, 803D7AD8, 803D7B5C | 2 bytes
			Values [Right Stick]* :
				- Up :		3F80
				- Right :	BF80
		
		*Notes : You may be asking where are the values of combining directions ? That is easy to answer, I gave up. Fuck those weird values ! I am fed up !

 

With this, replace the code where there is the controller's address with the one you want.

For example :

Make all Enemies Played Controlled (works in all Chapters and all Difficulties) (GameCube Controller) [ShadowX39]
20B5411C 50320A46
66100004 00000000
283D7928 0000xxxx
0066B8C4 00000000
CC000000 00000000
0066B8C4 00000001
E0000000 80008000
xxxx = button value

Always Alive/RecoveryHP [team] on [team] turn

You have the [Always Alive/RecoveryHP after battle] on enemy/player turn, but you are tired of green/yellow units dying, triggering the game-over like for example in 3-11 Tibarn getting too cocky that he went to fighting the boss which has the Aqqar and then dying miserably which trigger the game over and of course you always forget to battle save so you have to F*CKING restart the WHOLE chapter and command the yellow unit to retreat on a safe spot ? (No, of course I didn't experienced that, no... NO!)

So, first of all you have to understand the code, let's take for example the "Always Alive" code :

ALWAYS Alive enemy turn [g6flavor]

283C9416 0000B8B0
2E3C9438 0000F000
283C9434 00000000
003C9434 00000063
E0000000 80008000

283C9416 0000B8B0

this line check in which side the DEFENDER is, in our case it checks if it is on the player side
Values can be found geckocodes.org (archive), of course those values are for the v1.00, BUT you can port it to v1.01 just by adding 0x80 to the address :
 

Spoiler

 

v1.00 :

48 = other
54 = partner
3C = enemy
30 = player

v1.01 :

C8 = other
D4 = partner
BC = enemy
B0 = player

 

With that said,

ALWAYS Alive enemy turn (for Partner units)

283C9416 0000B8D4
2E3C9438 0000F000
283C9434 00000000
003C9434 00000063
E0000000 80008000

Voilà ! now Tibarn can get cocky as much as he wants.

Address of the attacker : 803C8F6C

Address of the defender : 803C940C

It looks like the data have the same structure as the characters' but it starts at the model offset.

I suggest you to take a look about the structure. Here is 2 links pointing to spreedsheat files : this and mine. The difference is that the first one is more completed but there are some offsets that are wrong. You should use both.

Which means that since it starts with the model offset,

if you add from the base :

+0x4 : Class
+0xA (or preferably 0xB) : Controlled by
...
+0x24 : Conditions
...

With this knowledge, you can do for example :

Enemy is asleep for 6 turns after combat

283C9416 0000B8BC
2E3C9438 0000F000
003C9430 00000003
E0000000 80008000

2E3C9438 0000F000 (the second line) -> it checks the defender's affinity (I have no clue why the author put it)

Characters

You may noticed that I did not put any codes regarding on modifying units. That is because it is better to be posted in this post where we talk about customization.

As I mentionned before, download/take a look on this spreedsheat and mine and use both.

So, I will take Nolan (or Pugo) for the example since it is the very first character on the characters data address. (The size of each blocks of character's data is 0x3F0 which means that the next character's data after Nolan is his address+0x3F0)

The base address of Nolan is 0x80884D90.

Wanna change his class into a Reaver ? First of all, search the Reaver's class value at geckocodes.org (archive) :

526C - Reaver

Now, port it for the v1.01 :

0x526C + 0x80 = 0x52EC

Now, according to my speadsheat, the offset of the class value is 0xF2 (It should be 0xF0 but since we will only modify 2 bytes).

0x80884D90 + 0xF2 = 0x80884E82

We wants to do a 16 bits Write or in other world a 2 bytes Write.

According to the the CodeType Documentation,

16 bits Write & Fill
02______ YYYYXXXX
 
So now we have the code :
Nolan is a Reaver
02884E82 000052EC
 
We can do other things like
Set Nolan's MVT to the max
00884EA6 00000014
 
Items
Same thing as characters except that we already know the address of each items (and models and skills) thanks to Wooster, Am3692 and ShadowX39. Address are at geckocodes.org (archive)
For example, we want meteor being able to also use at close range :
Meteor's address : 0x80B61BE0
Meteor's address for the v1.01 : 0x80B61C60
Offset of the minimum range : 0x20
We will do a 8 bits write.
Code :
Meteor can attack at close range
00B61C80 00000001
 
With my speadsheat, you will also need :
How to calculate offset ?
You need a calculator that can calculate with hex values.
The Windows 10 calculator can be used. Since the Windows 10 calculator is not set by default for being able to manipulate hex values, here is how to do it :
 
  • 792478195_calculatorstep.png.f1ad1d81fbe7dc0bb40a6bc945353258.png
  • voila.png.712df8266f9aaebea6e83483afce4280.png
  • ???
  • Profit

 

If you are on GNU/Linux or MAC, my apologies I don't have any name of software to suggest you

If you have any question feel free to ask. I will try answer it.

Edited by Whai

Share this post


Link to post
Share on other sites

This post will only talk about the battle animation script. Credits to shadowofchaos and g6flavor.

Link of the post : gamehacking.org/wiird (archive)

Battle Animation Modding

The address of the battle animation start at 0x803C9C60 (0x803C9BE0  for the v1.00). This address determines the flow of the battle so we should not touch it, so we will start to manipulate at the address 0x803C9C64.
First of all, we have to understand the main structure of the Battle Animation Script.
The Battle Animation has 3 sections :

  1. The very beginning of the battle data
  2. The battle data
  3. After the encounter

I) The very beginning of the battle data

Since it is the very beginning, the address start at 0x803C9C64.
It is where we initialize characters' stats for the battle and put skills that need to used at the very beginning (e.g Nihil, Vantage, Parity...)
Here is an example of the very beginning of the battle data : When Edward fights the first bandit at 1-P on Normal mode

74000000
7300000C
03000013 04000013 05000000 06000005 07000064 0800000A 0E000019 0F000019 10000009 11000003 12000033 13000000
72000000

1) The 1st line is the part for skills but there is no skills being used in this example.
74000000 is a value to say that we are in skills part.

2) The 2nd line and the 3rd line is the part for characters's stats.
First, let's talk about the 2nd line :
7300000C means that we are in the stats part. The "0C" points out the number of 4 bytes' array (in other words, it determines the limit of this part), you can notice that on the 3rd line, there are 12 arrays of 4 bytes.
So now let's talk about the 3rd line. As we understood, those arrays are characters' stats data.
Let's look over the first byte of each array :
03, 04, 05, 06, 07, 08, 0E, 0F, 10, 11, 12, 13
The first byte determines which character and his stat is manipulated :

03 - Attacker's Max HP
04 - Attacker's Current HP
05 - Attacker's Strength
06 - Attacker's Defense
07 - Attacker's Hit
08 - Attacker's Crit
----
0E - Defender's Max HP
0F - Defender's Current HP
10 - Defender's Strength
11 - Defender's Defense
12 - Defender's Hit
13 - Defender's Crit

The last byte (or should I say the last 2 bytes since values are signed 16bits) of the array is, you guessed, the value of the stat.
So that means :
03000013 -> Attacker's Max HP = 19
0800000A -> Attacker's Crit = 10
12000033 -> Defender's Hit = 51
etc...

3) The 4th line.
I have no idea what this part is for.

 

II) The battle data

This part is self-explanatory.
Let's take the same example as above : When Edward fights the first bandit at 1-P on Normal mode

24000000
	25000000 
	73000000
	74000000
	75000002
	1400FFF5
	6E000000
2A000000

24000000
	26000000
	73000001
	0F00000E
	74000000
	75000002
	0900FFFC
	6E000000
2A000000

24000000
	25000000
	29000000
	73000001
	0400000F
	74000000
	75000002
	1400FFF5
	6E000000
2A000000

I intended so that you can visualize the data block .
Alright, I'll explain that, let's split in 3 smaller blocks.

1)

24000000
	25000000 
	73000000
	74000000
	75000002
	1400FFF5
	6E000000
2A000000

The first and last line demarcate the action data.
25000000 -> The attacker moves to combat the defender (in our case, Edward moves to the bandit)
73000000 -> Stats part
74000000 -> Skills part
75000002 -> Attack part, the "02" means the number of 4 bytes array
1400FFF5 -> HP modifier to the defender, since it is a signed 16bits, the value is in negative : -11; negative value = damage, positive value = heal; 0 value = treat as if it does damage but do 0 damage (It is different than No Damage)
6E000000 -> The attack successfully landed

2)

24000000
	26000000
	73000001
	0F00000E
	74000000
	75000002
	0900FFFC
	6E000000
2A000000

The first and last line demarcate the action data.
26000000 -> The defender moves to combat the attacker (so in our case, the bandit counterattack)
73000001 -> Stats part, "01" mean
0F00000E -> Defender's current HP, since the attacker (Edward) sucessfully hit the defender, the defender's current HP is 14
74000000 -> Skills part
75000002 -> Attack part
0900FFFC -> HP modifier to the attacker, since it is a signed 16bits, the value is in negative : -4
6E000000 -> The attack successfully landed

3)

With explanations above, you will understand easily.
Except :
29000000 -> I have no idea what it does

 

III) After the encounter

This part determines :

  • who won the encounter
  • the EXP of the player unit earn
  • If he levels up, the stats that will grow up
  • The end of the battle animation script

Let's take the same example as above :

2D000000 2E000009
2B000000 00000000

"2D" -> It is the amount of EXP before the fight. The value is a signed 16bits (althought negative numbers will not be displayed properly)
"2E" -> It is the amount of EXP to add. The value is a signed 16bits
2B000000 00000000 -> End of the battle animation script

Note : Since Edward did not kill the bandit, the code to say who won the encounter is not here. And since he did not level up, the same applies too.

 

How to customize Battle Animation

Now that we understood how the battle animation works, let's customize it !

I) Stats part

It is simple. No need a how-to-do.

Note : You may have noticed, but there is no "Dmg" stat, only "Strength" and "Defense" stats, so you have to calculate yourself to set the display damage you want.

Note 2 : Do NOT set the value of the Max HP too high otherwise not only the game but Dolphin will crash because out of memory space. However, you can change the value of the Current HP as much as you want because the Green HP Bar to display is limited to the Max HP.

II) Skills part

As we knows, the skills part is after the : "7400NNNN" with NNNN the number of arrays of 4 bytes.
Skills values :

Spoiler
0A & 1B = Nihil (Beginning of Battle) [Skill value before anything]
15 & 1C = (Defender) Nihil (Beginning of Battle) [Skill value before anything]
3D = Parity (Beginning of Battle) [Skill value before anything]
3F = (Defender) Vantage (Beginning of Battle) [Skill value before anything]
40 = Gamble (Beginning of Battle) [Skill value before anything]
41 = Flourish (Beginning of Battle) [Skill value before anything]
42 = Astra
43 = Sol
44 = Aether
45 = Adept
46 = Resolve
47 = (Defender) Resolve
48 = Deadeye
49 = Wrath
4A = Impale
4B = Luna
4C = Eclipse
4D = Flare
4E = Corona
4F = Bane
50 = Lethality
51 = Colossus
52 = Roar
53 = Rend
54 = Savage
55 = Tear
56 = Ire
57 = Howl
58 = Quickclaw
59 = Shriek
5A = Maelstrom
5B = Corrosion
5C = Disarm
5D = Cancel
5E = Pavise
5F = Miracle
60 = Mercy
63 = Stun
64 = Counter
69 = Aurora
6A = Mantle
6C = Guard
6D = No Damage (yeah this is not a skill but when the one who attacks does no damage, the game uses this)

 

For examples :

  • Nihil for both, Vantage, Gamble :
Spoiler
74000004
0A000000 15000000 3F000000 40000000

And since they are skills that have to be activated right at the start of the encounter, this code have to be placed in the I) The very beginning of the battle data

  • Attacker : Adept, Wrath, Resolve, Lethality, Mercy; Defender : Resolve
Spoiler
25000000
730000..
[...]
74000006
45000000 46000000 49000000 50000000 60000000 47000000 
750000..
[...]

You notice that the Resolve for the Defender is in the Attacker's action part. That's normal, that is the purpose of having 2 values for resolve, the one for attacker the other for the defender.

  • Sol, Cancel
Spoiler
74000002
43000000 5D000000 

 

 

III) Attack part

The attack part is after the : "7500NNNN" with NNNN the number of arrays of 4 bytes.
It is composed of the HP modifier of the opponent and/or/or not the HP modifier for himself, and how the attack landed

Values of how-the-attack-landed :

6E = Hit
6F = Critical Hit
70 = Miss

For examples :

  • Defender : Sol, Critical Hit
Spoiler
26000000
730000..
[...]
74000001
43000000
75000003
1400XXXX 0900HHHH 6F000000

With XXXX the amount of damage dealt (Do not forget that it has to be a negative number for the damage) and HHHH the amount of HP received

  • Attacker : Critical Hit; Defender : Mantle
Spoiler
25000000
730000..
[...]
74000002
6A000000 6D000000
75000002
14000000 6F000000

You notice that 6D000000 is present, without that, the attacker would do 0 damage BUT the defender will flinch whereas when it is here : the defender will not flinch

  • Attacker : Miss
Spoiler
25000000
730000..
[...]
74000000
75000002
14000000 70000000

 

  • Attacker : Hit; Defender : Aurora
Spoiler
25000000
730000..
[...]
74000001
69000000
75000003
1400XXXX
0900xxxx

With XXXX the amount of damage dealt and xxxx the amount of damage received (both have to be negative numbers otherwise they instead heal).

 

IV) After the encounter

Who won the encounter :

0B000000 = Defender Won
16000000 = Attacker Won

EXP : Already explained

LVL UP :

310000SS with "SS" the level after the level-up

When leveling-up, you can modify the which stats grow and how many they grow :

UU00GGGG

0xUU: Stat value :
32 = HP
33 = Str
34 = Mag
35 = Skl
36 = Spd
37 = Lck
38 = Def

GGGG = Stats to grow

For Examples :

  • Start with 50 EXP, earning 100 EXP, Level-Up to 20,  +4 Strength, +1 Skill, - 10 Luck, +24 Defense
2D000032 2E000064 31000014
33000004 35000001 3700FFF6 38000018
  • Start with 90 EXP, lose 70 EXP
2D00005A 2E00FFBA

V) Important Notes

  • The Battle Animation Script is only for visual, which means that the result is not determined with the script. It is determined at the address : 0x803C8F6C and 0x803C940C You should recognize these address, they are used, for example, on codes like ALWAYS Alive enemy turn.
  • And since it is only for visual, the level-up panel will only show when the unit would truly level-up. However, for some reason, if the unit truly level-up and you modify the values of stats that grow, it will apply the change
  • Aether and Astra are special cases where they are activated in multiple steps which means that when, for example, Astra is used you have to do 5 data blocks in a row where the one who use astra attack instead of the classic : attacker moves, defender moves, attacker moves...
  • The address 0x803C9C60 is not only used for the battle animation script, it is also used for Bonus EXP, Ashera Revives, ... So activate the cheat code only when you start the map.

VI) Gecko Codes and demonstration

For the Gecko Code, use the String Patch CodeType,

06______ YYYYYYYY
d1d2d3d4 d5d6....

Writes each byte (d1, d2, d3, ...) consecutively, starting at address ba+______
YYYYYYYY is the number of bytes to write

Here is a demonstration of what we can achieve :

Here is the Gecko code :

Spoiler
063C9C64 000001C0
74000005 0A000000
1C000000 3D000000
3F000000 40000000
7300000C 03000046
04000046 05000018
0600000F 07000064
08000000 0E000050
0F000050 10000038
11000028 1200005F
13000000 72000000
24000000 26000000
73000000 74000001
45000000 75000002
09000000 6F000000
2A000000 24000000
26000000 74000004
5E000000 47000000
52000000 6D000000
75000002 09000000
6E000000 2A000000
24000000 25000000
73000001 04000005
74000004 41000000
46000000 4C000000
5F000000 75000002
14000000 6F000000
2A000000 24000000
26000000 73000001
0F00004F 74000005
47000000 46000000
4F000000 6A000000
6D000000 75000002
09000000 6F000000
2A000000 24000000
25000000 73000000
74000005 46000000
47000000 45000000
50000000 60000000
75000002 14000000
6E000000 2A000000
24000000 25000000
73000001 0F00004E
74000003 46000000
47000000 5F000000
75000002 14000000
70000000 2A000000
24000000 26000000
73000001 04000016
74000008 46000000
47000000 49000000
52000000 53000000
54000000 56000000
5B000000 75000002
0900FF00 6F000000
2A000000 0B000000
2B000000 00000000

Don't mind the the stats part on action blocks, it was at the time where I didn't understand the purpose of this part. Now, I don't see the utility of this part

 

Edited by Whai

Share this post


Link to post
Share on other sites

Hey so, every code thats made my ShadowX39 doesn't work, the other work just fine, i'm trying to get the all weapons unlocked cheat working, if you know how to help i would appreciate it.

Share this post


Link to post
Share on other sites
On 5/5/2022 at 1:31 AM, drexrg said:

Hey so, every code thats made my ShadowX39 doesn't work, the other work just fine, i'm trying to get the all weapons unlocked cheat working, if you know how to help i would appreciate it.

Are you using the game's version 1.01 or 1.00 ? And I do not have any idea of why only ShadowX39's codes don't work for you. I tried on easy difficulty and on 4:3 aspect ration, and both worked.

Did you test the code on the Part 1 - Prologue ?

Share this post


Link to post
Share on other sites

I'm using 1.01 and most codes have worked, but some don't. Im playing on normal version, that may have something to do with it, im also on 16:9 ratio. Ive been able to get every code ive wanted to work, the only one missing is the all items one. 

Share this post


Link to post
Share on other sites
74000000
7300000C
03000013 04000013 05000000 06000005 07000064 0800000A 0E000019 0F000019 10000009 11000003 12000033 13000000
72000000

 

where i find the ?

 
 
 
 
 
 
 
Edited by COnstance von Nuvelle

Share this post


Link to post
Share on other sites

I don't know how to get all items for the code:
"Have All Items In Convoy And Skills"

But I figured something out because the code Whai created doesn't work, so if you use this code:

083E92A0 80B5FE10

212700A8 00000050

 

And change the last numbers to any others number you get different items. I added only 80 hex everytime. If you change to much you get none working swords but starting with the 50 changing to D0 gave me new items. The only thing that keeps the same is the slim sword and it adds only I think 10 items. Also all items have 0 uses but if you use the other cheat "Every Single Unit's first Item is Blessed" or the other one then it shouldn't be a problem. So you have to save and change everytime this code, but at least you get items.

 

Edit: the attack items do zero damage and disappear after use, so worth only to sell them

Edited by IdontCare
Found something new about it the code out

Share this post


Link to post
Share on other sites
On 9/20/2022 at 1:06 AM, IdontCare said:

I don't know how to get all items for the code:
"Have All Items In Convoy And Skills"

But I figured something out because the code Whai created doesn't work, so if you use this code:

083E92A0 80B5FE10

212700A8 00000050

 

And change the last numbers to any others number you get different items. I added only 80 hex everytime. If you change to much you get none working swords but starting with the 50 changing to D0 gave me new items. The only thing that keeps the same is the slim sword and it adds only I think 10 items. Also all items have 0 uses but if you use the other cheat "Every Single Unit's first Item is Blessed" or the other one then it shouldn't be a problem. So you have to save and change everytime this code, but at least you get items.

 

Edit: the attack items do zero damage and disappear after use, so worth only to sell them

Whai's code is mostly right. With one little change to the condition should have it working properly.

 

*Original Code*

203E92A0 00000000 <- This condition is checking the first memory location of the convoy and running the code if the first spot is empty. 

083E92A0 80B5FE10

21270028 00000050

083E92A4 0000007F

01270028 00000000

E0000000 80008000

 

*New Code* (Code for copying in spoiler)

223E92A0 80B5FE10 <- This now checks if the first memory location of the convoy is NOT a Slim Sword. If it is not a Slim Sword, the code will run and replenish the convoys items.

083E92A0 80B5FE10

21270028 00000050

083E92A4 00000050 <- Edit the "50" for Number of Uses. Note that this is a hex value, so Hex 50 = Integer 80. Meaning all items will have 80 uses. Max is "7F" or uses go negative.

01270028 00000000

E0000000 80008000

 

You can pull out all the items you want and the convoy will not replenish until the Slim Sword is pulled out or sold.

Let me know if it worked for you.

Spoiler

223E92A0 80B5FE10

083E92A0 80B5FE10

21270028 00000050

083E92A4 00000050

01270028 00000000

E0000000 80008000

 

Edited by pineapple21

Share this post


Link to post
Share on other sites
On 9/23/2022 at 6:20 AM, pineapple21 said:

Whai's code is mostly right. With one little change to the condition should have it working properly.

Thanks your change helped. I don't know if that works with the slim sword. But the items were useable. I check later if the code works perfect fine.

Edit: The code works perfect fine. Thanks.

Edited by IdontCare
Tested code

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...