Jump to content

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


Whai
 Share

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]
223E92A0 80B5FE10
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]
003CABD7 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
Mistake on "Number of times Game had been CLEARED" fixed
Link to comment
Share on other sites

  • Replies 61
  • Created
  • Last Reply

Top Posters In This Topic

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
Link to comment
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
Link to comment
Share on other sites

  • 2 weeks later...
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 ?

Link to comment
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. 

Link to comment
Share on other sites

  • 4 months later...

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
Link to comment
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
Link to comment
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
Link to comment
Share on other sites

  • 4 weeks later...
On 10/25/2022 at 12:38 AM, bobothedragon68 said:

Can someone explain how to make item creation code and provide the list of character address info? Using NTSC 1.01 on Dolphin 5

All offsets need to be increased by +0x80. This also includes item IDs, not just location offset. All on this site should be 1.01.

 

For instance, codes from this site - https://web.archive.org/web/20170220214945/http://geckocodes.org/?c=RFEE01#7

Nolan Item Slot 1 [ShadowX39]
04884ECC XXXXXXXX

Nolan Blessed Item Slot 1 [ShadowX39]
04884ED0 27100000

80B5FD90 - Slim Sword

 

To update them to 1.01, we add +0x80 to all locations.

Nolan Item Slot 1 [ShadowX39] - Slim Sword in slot one
04884F4C 80B5FE10 <- You have to increase the item slot as well because it is actually the location of the weapon in the game

Nolan Blessed Item Slot 1 [ShadowX39]
04884F50 27100000

 

Hope this helps.

Edited by pineapple21
Provided example
Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
On 11/27/2022 at 11:08 PM, Kingarsene11037 said:

Heya I was wondering how would you change a character Weapon level experience as I was trying to figure out how to add weapon level to characters like for example giving Micahiah Dark tome weapon level experience

This one is a bit weird... Someone may be able to find a better way, but this is what I was able to come up with.

It is a two part code. The first one needs to stay active at all times you want her to be able to use dark tome. The second one can be turned off after loading and saving the game once with Micaiah, though the code should actually only run once and should be safe to leave on as well. 

Let me know if it works for you 😁

 

ps: this will also allow Micaiah to get SS in Dark and Staff.

Spoiler

$Micaiah Can use Dark Tome (1/2)(Always On)

20B54158 8070F8BC

04B57750 00B50000

04B57DF8 00FB00FB

04B58910 014B014B

E0000000 80008000

 

$Micaiah Can use Dark Tome (2/2)(Single Use)

2E886FF8 00000001

04886EC4 8070F310

02886EC8 00000003

00886FF9 00000001

E0000000 80008000

 

Link to comment
Share on other sites

On 12/9/2022 at 4:51 PM, pineapple21 said:

This one is a bit weird... Someone may be able to find a better way, but this is what I was able to come up with.

It is a two part code. The first one needs to stay active at all times you want her to be able to use dark tome. The second one can be turned off after loading and saving the game once with Micaiah, though the code should actually only run once and should be safe to leave on as well. 

Let me know if it works for you 😁

 

ps: this will also allow Micaiah to get SS in Dark and Staff.

  Hide contents

$Micaiah Can use Dark Tome (1/2)(Always On)

20B54158 8070F8BC

04B57750 00B50000

04B57DF8 00FB00FB

04B58910 014B014B

E0000000 80008000

 

$Micaiah Can use Dark Tome (2/2)(Single Use)

2E886FF8 00000001

04886EC4 8070F310

02886EC8 00000003

00886FF9 00000001

E0000000 80008000

The second one work really well, its just the first one that didn't work tho the second one gave me E rank in Dark tome (Edit: Ok I figured out that it seems like I needed both of them on but they don't give SS rank only E rank)

 

Edited by Kingarsene11037
Link to comment
Share on other sites

5 hours ago, Kingarsene11037 said:

The second one work really well, its just the first one that didn't work tho the second one gave me E rank in Dark tome (Edit: Ok I figured out that it seems like I needed both of them on but they don't give SS rank only E rank)

Correct. The first one edits the class info to allow her classes to use dark tome. Without the first code on the game will overwrite those values again to be 0 and not allow her to use dark tome. The second one is actually placing weapon exp and a skill under her character data. I only put 1 exp for E rank without considering that there probably isn't an E level dark tome. 

Try these below. I am unsure how these codes affect different parts, but I do hope that it stays working. This should give her SS in Light, Dark and Staff.

Spoiler

$Micaiah Can use Dark Tome (1/2)(Always On)

20B54158 8070F8BC

04B57750 014B014B

04B57DF8 014B014B

04B58910 014B014B

E0000000 80008000

$Micaiah Can use Dark Tome (2/2)(Single Use)

2E886FF8 00000001

04886EC4 8070F310

02886EC8 00000003

02886FF6 0000014B

04886FF8 014B014B

E0000000 80008000

 

Link to comment
Share on other sites

15 hours ago, pineapple21 said:

Correct. The first one edits the class info to allow her classes to use dark tome. Without the first code on the game will overwrite those values again to be 0 and not allow her to use dark tome. The second one is actually placing weapon exp and a skill under her character data. I only put 1 exp for E rank without considering that there probably isn't an E level dark tome. 

Try these below. I am unsure how these codes affect different parts, but I do hope that it stays working. This should give her SS in Light, Dark and Staff.

  Reveal hidden contents

$Micaiah Can use Dark Tome (1/2)(Always On)

20B54158 8070F8BC

04B57750 014B014B

04B57DF8 014B014B

04B58910 014B014B

E0000000 80008000

$Micaiah Can use Dark Tome (2/2)(Single Use)

2E886FF8 00000001

04886EC4 8070F310

02886EC8 00000003

02886FF6 0000014B

04886FF8 014B014B

E0000000 80008000

 

So it gives her a big attack and Crit numbers instead of the ranks as her rank is still an E even after I turned off the single use dark tome.

Link to comment
Share on other sites

On 12/13/2022 at 4:37 PM, Kingarsene11037 said:

So it gives her a big attack and Crit numbers instead of the ranks as her rank is still an E even after I turned off the single use dark tome.

Apologies. I must have messed something up when editing. I changed this around a bit. The top code should be left on always. The second code should only be activated once, or at times the game decides she shouldn't be using dark magic lol.

Going between parts may make it so she is no longer able to use dark magic. Just activate the second code any time that happens. Hopefully this one works for you.

***See second spoiler for keybind options. You can always figure out more using Whai's guide on this page if you don't use either of these controllers.***

Spoiler

$Micaiah Can use Dark Tome (Must be on)

20B54158 8070F8BC

02B5774E 0000014B

04B57750 014B014B

02B57DF6 0000014B

04B57DF8 014B014B

02B5890E 0000014B

04B58910 014B014B

02886FF6 0000014B

04886FF8 014B014B

E0000000 80008000

$Micaiah Can use Dark Tome (ZL+ZR+START)

283D79BA 00000484

04886EC4 8070F310

02886EC8 00000003

04886EBC 8070F33C

02886EC0 00000003

E0000000 80008000

*If Micaiah ever loses the ability to use dark tone, use this code

Spoiler

Here are two different trigger codes that can replace the first line in the second code. 

GameCube Controller (L+R+START) - I personally haven't tested this one so let me know if it doesn't work.

283D7928 00001003

Classic Controller Extension (ZL+ZR+START)

283D79BA 00000484

 

Link to comment
Share on other sites

11 hours ago, pineapple21 said:

Apologies. I must have messed something up when editing. I changed this around a bit. The top code should be left on always. The second code should only be activated once, or at times the game decides she shouldn't be using dark magic lol.

Going between parts may make it so she is no longer able to use dark magic. Just activate the second code any time that happens. Hopefully this one works for you.

***See second spoiler for keybind options. You can always figure out more using Whai's guide on this page if you don't use either of these controllers.***

  Hide contents

$Micaiah Can use Dark Tome (Must be on)

20B54158 8070F8BC

02B5774E 0000014B

04B57750 014B014B

02B57DF6 0000014B

04B57DF8 014B014B

02B5890E 0000014B

04B58910 014B014B

02886FF6 0000014B

04886FF8 014B014B

E0000000 80008000

$Micaiah Can use Dark Tome (ZL+ZR+START)

283D79BA 00000484

04886EC4 8070F310

02886EC8 00000003

04886EBC 8070F33C

02886EC0 00000003

E0000000 80008000

*If Micaiah ever loses the ability to use dark tone, use this code

  Hide contents

Here are two different trigger codes that can replace the first line in the second code. 

GameCube Controller (L+R+START) - I personally haven't tested this one so let me know if it doesn't work.

283D7928 00001003

Classic Controller Extension (ZL+ZR+START)

283D79BA 00000484

 

Its work it gives her SS in light and dark! now I need a tome!

Link to comment
Share on other sites

  • 4 weeks later...
On 5/6/2022 at 12:24 PM, drexrg said:

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. 

Indeed, the "Have All Items in Convoy and Skills (296 items)" didn't work. However I updated the code so that should work, I totally forgot to notify you that I edited my post. My apologies for this very late reply.

On 5/6/2022 at 4:29 PM, COnstance von Nuvelle said:

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

 

where i find the ?

You find it at the address 0x803C9C60 or more precisely at the address 0x803C9C64

unoo.png.66ce74ba84e3ba4dda09a479ed5c8cf4.png

On 9/23/2022 at 4:20 AM, pineapple21 said:

[...]

*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.

[...]

Yes indeed this is better. I changed the code on my post and on the pastebin.

Edited by Whai
Link to comment
Share on other sites

  I rewrote the guide since I cannot edit my previous post. I really hope I clarified and removed my mistakes on my previous post

 

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 is composed of 2 main sections :

I. Combat Script (start at 0x803C9C64)
II. Combat Settings (start at most at 0x803CA460)

 

I) Combat Script (start at 0x803C9C64)
The Combat Script operates with blocks of data (each block's size is 32 bits/4 bytes).
It is composed of 3 parts :

1. Initialization
2. Main
3. Result

1) Initialization

Spoiler

It is where we initialize Fighters' stats for the battle and skills that need to used at the very beginning (e.g Nihil, Vantage, Parity...)

This part has 3 categories :

A. Skill
B. Stats
C. Unknown

A) Skill
It starts with the value 0x7400xxxx
xxxx (in hex) means the category has xxxx block(s) of data
Exemple : 0x74000003 means there are 3 blocks of data (3*4 = 12 bytes)

Now let's dig in those blocks :

  • The first byte represent the skill ID.
  • The 3 other bytes : I have no idea, just put zeros.

Here is the list of skill IDs :

Spoiler


0A & 1B = Nihil
15 & 1C = Nihil (Defender) 
3D = Parity
3F = Vantage (Defender) 
40 = Gamble
41 = Flourish 

 

B) Stats
It starts with the value 0x7300xxxx
xxxx (in hex) means the category has xxxx block(s) of data
Exemple : 0x7300000C means there are 12 blocks of data (12*4 = 48 bytes)

Now let's dig in those blocks :

  • The first byte represent the stat ID.
  • The second byte : I have no idea, just put zero
  • The last 2 bytes represent the value of that stat

Here is the list of stat IDs :

Spoiler


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

 

Note : Do NOT set the max HP too high otherwise, it is not the game that will crash but Dolphin itself. 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.

Note 2 : 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.

B) Unknown
It starts with the value 0x7200xxxx
xxxx (in hex) means the category has xxxx block(s) of data (each block's size is 32 bits/4 bytes)
Exemple : 0x72000000 means there is no block of data

I have no idea what this category is for.

2) Main

Spoiler

It represents the script of this encounter.
This part has a limited number of act.

Those acts are delimited by :


24000000
[...]
2A000000

Now, let's see the act' structure :

  • The first block of data represent the actor that will do the following actions

Here is the list of actors :

Spoiler


25000000 = Attacker
26000000 = Defender
28000000 = Attacker indirectly
29000000 = Defender indirectly

 

  • The next blocks of data are the actions

This part has 3 categories :

A. Stats
B. Skill
C. Attack

A) Stats
It's the same category we saw beforehand.
It starts with the value 0x7300xxxx
xxxx (in hex) means the category has xxxx block(s) of data

This part inform about updated stat value.
For exemple, when any actor loses HP, it updates their HP on the next act; when someone use resolve, it updates the Hit stat; etc...

To be honest, I always remove this part when I mod the combat animation because I don't see the point of its existence since I don't see any visual change and because I want save space since the combat animation script is limited at most at 0x803CA460

B) Skill
It's the same category we saw beforehand.
It starts with the value 0x7400xxxx
xxxx (in hex) means the category has xxxx block(s) of data

Here is now the list of other skill IDs :

Spoiler


42 = Astra
43 = Sol
44 = Aether
45 = Adept
46 = Resolve
47 = Resolve (the other actor)
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 (the other actor)
5F = Miracle (the other actor)
60 = Mercy
63 = Stun
64 = Counter
69 = Aurora
6A = Mantle (the other actor)
6C = Guard
6D = No Damage (yeah this is not a skill but when the one who attacks does no damage, the game uses this)

 

C) Attack
It starts with the value 0x7500xxxx
xxxx (in hex) means the category has xxxx block(s) of data

There are in total (as far as I know) 2 types of block :

  • Amount of damage/heal

1400XXXX = Defender's HP modifier
0900XXXX = Attacker's HP modifier

XXXX is the amount of damage/heal
negative = damage
positive = heal

Exemples :
FFFF = -1 = HP took 1 damage
000B = 11 = HP healed by 11
  • Nature of the attack

6E000000 = HIT
6F000000 = CRITICAL HIT
70000000 = MISS

 

3) Result

Spoiler

It determines :

  • Who won the encounter

0B000000 = Defender Won
16000000 = Attacker Won
  • The EXP of the player unit that will earn

2D00XXXX = Initial amount of EXP (negative number won't display properly)
2E00XXXX = EXP modifier

XXXX is a signed 16bits number
  • The level and stats that will grow up after a level-up

3100XXXX = Next level
3200XXXX = MAX HP stat
3300XXXX = STR stat
3400XXXX = MAG stat
3500XXXX = SKL stat
3600XXXX = SPD stat
3700XXXX = LCK stat
3800XXXX = DEF stat
3900XXXX = RES stat

XXXX = the amount (can be negative)
  • The end of the battle animation script

2B000000 00000000

 

II) Combat Settings (start at 0x803CA460)
I only managed to identify the purpose of 3 addresses :

  • Range of the combat (at 0x803CA46B)
  1. Melee = 0x01
  2. Range = 0x02

 

  • The view of the combat (at 0x803CA46C)
  1. On :
  • Normal = 0x20 (0x00 + 0x20, 0x20 only display the exp gained after the combat animation not after combat(map))
  • Fixed = 0x30 (0x20 + 0x10, 0x10 which is the Fixed Camera)
  • Static (?) = 0x08 (+0x20 to display the exp after the combat animation)
  • Combat in range (however it has different camera angle if we compare 0x803CA46B) = 0x04 (+0x20 to display the exp after the combat animation)
  1. Map only = 0x80
  2. Off = 0xC0

 

  • Outcome of the combat (at 0x803CA46E)
  1. Exp Gained = 0x04
  2. Level up : 0x08

 

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

 

Link to comment
Share on other sites

On 10/30/2022 at 5:48 PM, pineapple21 said:

All offsets need to be increased by +0x80. This also includes item IDs, not just location offset. All on this site should be 1.01.

 

For instance, codes from this site - https://web.archive.org/web/20170220214945/http://geckocodes.org/?c=RFEE01#7

Nolan Item Slot 1 [ShadowX39]
04884ECC XXXXXXXX

Nolan Blessed Item Slot 1 [ShadowX39]
04884ED0 27100000

80B5FD90 - Slim Sword

 

To update them to 1.01, we add +0x80 to all locations.

Nolan Item Slot 1 [ShadowX39] - Slim Sword in slot one
04884F4C 80B5FE10 <- You have to increase the item slot as well because it is actually the location of the weapon in the game

Nolan Blessed Item Slot 1 [ShadowX39]
04884F50 27100000

 

Hope this helps.

I'm new with trying to convert old codes into working ones like the link you posted. How would you convert the 255% crit to the updated code version. It's mainly when the code is all 0000000

Edited by FireEmblemFanatic1991
Link to comment
Share on other sites

On 1/15/2023 at 7:08 PM, FireEmblemFanatic1991 said:

I'm new with trying to convert old codes into working ones like the link you posted. How would you convert the 255% crit to the updated code version. It's mainly when the code is all 0000000

Old Code:

08B5FDAF 000000FF
00CA0050 00000000

 

New Code: (Bold is code I added / changed)

20B54158 8070F8BC
08B5FE2F 000000FF
00CA0050 00000000
E0000000 80008000

 

One thing about the old codes is that a lot of them edit codes before a save game is loaded and can cause issues with the game loading. I added a check so that this code is ran after a save file is loaded. I did test this and it seems to be working. Please let me know if you run into any issues.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
On 2/7/2023 at 8:34 AM, hegan98175 said:

any codes for player units to have max avoid?

To my knowledge, I do not think this is possible. A characters avoidance is based on their stats and what they are holding (if weight > strength). Since it isnt a hard coded value, there isn't a stored location for it. 

 

I could be wrong though. Someone else may know a way to do it or if it is possible.

Link to comment
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.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...