Whai Posted April 16, 2022 Share Posted April 16, 2022 (edited) 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 February 11, 2023 by Whai Mistake on "Number of times Game had been CLEARED" fixed Quote Link to comment Share on other sites More sharing options...
Whai Posted April 16, 2022 Author Share Posted April 16, 2022 (edited) 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 80008000xxxx = 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 : Item Characteristics values.txtWeapon Types values.txt 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 : ??? 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 April 21, 2022 by Whai Quote Link to comment Share on other sites More sharing options...
Whai Posted April 21, 2022 Author Share Posted April 21, 2022 (edited) 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 : The very beginning of the battle data The battle data 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 April 21, 2022 by Whai Quote Link to comment Share on other sites More sharing options...
drexrg Posted May 5, 2022 Share Posted May 5, 2022 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. Quote Link to comment Share on other sites More sharing options...
Whai Posted May 6, 2022 Author Share Posted May 6, 2022 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 ? Quote Link to comment Share on other sites More sharing options...
drexrg Posted May 6, 2022 Share Posted May 6, 2022 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. Quote Link to comment Share on other sites More sharing options...
COnstance von Nuvelle Posted May 6, 2022 Share Posted May 6, 2022 (edited) 74000000 7300000C 03000013 04000013 05000000 06000005 07000064 0800000A 0E000019 0F000019 10000009 11000003 12000033 13000000 72000000 where i find the ? Edited May 6, 2022 by COnstance von Nuvelle Quote Link to comment Share on other sites More sharing options...
IdontCare Posted September 20, 2022 Share Posted September 20, 2022 (edited) 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 September 20, 2022 by IdontCare Found something new about it the code out Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted September 23, 2022 Share Posted September 23, 2022 (edited) 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 September 23, 2022 by pineapple21 Quote Link to comment Share on other sites More sharing options...
IdontCare Posted September 26, 2022 Share Posted September 26, 2022 (edited) 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 September 29, 2022 by IdontCare Tested code Quote Link to comment Share on other sites More sharing options...
bobothedragon68 Posted October 25, 2022 Share Posted October 25, 2022 Can someone explain how to make item creation code and provide the list of character address info? Using NTSC 1.01 on Dolphin 5 Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted October 30, 2022 Share Posted October 30, 2022 (edited) 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 November 2, 2022 by pineapple21 Provided example Quote Link to comment Share on other sites More sharing options...
Kingarsene11037 Posted November 28, 2022 Share Posted November 28, 2022 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 Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted December 9, 2022 Share Posted December 9, 2022 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 Quote Link to comment Share on other sites More sharing options...
Kingarsene11037 Posted December 13, 2022 Share Posted December 13, 2022 (edited) 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 December 13, 2022 by Kingarsene11037 Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted December 13, 2022 Share Posted December 13, 2022 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 Quote Link to comment Share on other sites More sharing options...
Kingarsene11037 Posted December 13, 2022 Share Posted December 13, 2022 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. Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted December 16, 2022 Share Posted December 16, 2022 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 Quote Link to comment Share on other sites More sharing options...
Kingarsene11037 Posted December 17, 2022 Share Posted December 17, 2022 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! Quote Link to comment Share on other sites More sharing options...
Whai Posted January 12, 2023 Author Share Posted January 12, 2023 (edited) 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 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 January 12, 2023 by Whai Quote Link to comment Share on other sites More sharing options...
Whai Posted January 13, 2023 Author Share Posted January 13, 2023 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 0x7400xxxxxxxx (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 0x7300xxxxxxxx (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 0x7200xxxxxxxx (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 0x7300xxxxxxxx (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 0x7400xxxxxxxx (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 0x7500xxxxxxxx (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) Melee = 0x01 Range = 0x02 The view of the combat (at 0x803CA46C) 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) Map only = 0x80 Off = 0xC0 Outcome of the combat (at 0x803CA46E) Exp Gained = 0x04 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 Quote Link to comment Share on other sites More sharing options...
FireEmblemFanatic1991 Posted January 16, 2023 Share Posted January 16, 2023 (edited) 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 January 16, 2023 by FireEmblemFanatic1991 Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted January 18, 2023 Share Posted January 18, 2023 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. Quote Link to comment Share on other sites More sharing options...
hegan98175 Posted February 7, 2023 Share Posted February 7, 2023 any codes for player units to have max avoid? Quote Link to comment Share on other sites More sharing options...
pineapple21 Posted February 24, 2023 Share Posted February 24, 2023 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.