Jump to content

Whai

Member
  • Posts

    32
  • Joined

Everything posted by Whai

  1. You didn't answer my question but it look likes you put the code in the right tab. Retry the 16:9 one : And if it doesn't work, post a screen of where you put the code
  2. Did you paste the code in the AR Codes tab or in the Gecko Codes tab ? Because the code is a Gecko Code, not an AR Code. Test the 16:9 (the one you used before I gave you 4:3 code) code as a Gecko Code and if that doesn't work, test the 4:3 as a Gecko Code.
  3. Those codes don't need to be ported since I already ported them. As for your issues, Is there already a slim sword in your convoy ? if that is the case, try to take it and then your convoy should be full. Are you playing in 4:3 ? this code only works on 16:9. I don't know how your mobile app works but I think there should be an option play in 16:9 and if not, try this code : Can learn literally all non-hidden skills (4:3) 0870F8B4 00000000 2050002C 00000000 0870F8BC 00000002 0023002C 00000000 0870F8C0 80710B04 2023002C 00000000 Oh and i also ported this code in 4:3 : All Skills don't require skill points (4:3) 0870F8BA 00000000 0050002C 00000000
  4. You have to add 0x80 to the address, and in this case, you also have to add 0x80 to the value : 04884F4C 80B60E50
  5. Okay, turns out I was wrong, there is an easier way. Thanks to : @VincentASM for his thread FE10: Radiant Dawn Hacking Notes explaining how data are structured, especially Skill's data and Evan Zhang for his blog Fire Emblem: Radiant Dawn (FE10) Modding #2: Data Reference explaining how data are structured, especially Skill's data and Table of Skills' conditions data Which means I improved the "Can learn all skills" : Can learn literally all non-hidden skills 0870F8A8 00000000 2050002C 00000000 0870F8B0 00000002 0023002C 00000000 0870F8B4 80710B04 2023002C 00000000 Note : A character having either Tempest or Serenity ("dummy" skills) cannot have access to the list of non-assignable skills. You have to remove from the character these skills first.
  6. You are welcome. Adding Formshift to the list might be difficult, because I think to achieve this you have to work with ASM instructions
  7. It's weird. This might be bothersome to you but I'm going to ask you to enable debug on Dolphin : Go to Dolphin's shortcut Right click on it Click "properties" Add "/d" (see the screenshot below) (It enables the debug) Now launch Dolphin from this shortcut Go to "View" and click on "Memory" (see the screenshot below) Launch the game, start a savefile (or create one if you don't have any) Once the savefile loaded, go to Memory tab and look for the address "80B5FE10" (see screenshot below) Now screenshot and send it to me (here or send it to me by DM) If you want to remove the debug mod, remove the "/d"
  8. What kind of method did you use ? it might help. Do you have "Enable Cheats" checked ?
  9. To get x4 EXP add 0x0800 to the value : Gain x2 EXP (Universal) : 04120830 57E30E3E Now add 0x0800 : 04120830 57E30E3E -> 04120830 57E3163E Gain x4 EXP (Universal) : 04120830 57E3163E You can do it again : 04120830 57E3163E -> 04120830 57E31E3E Gain x8 EXP (Universal) : 04120830 57E31E3E You can only multiply by 2 (1 -> 2 -> 4 -> 8 -> 16 -> ...) so you cannot have x3 EXP. Try this code 20B5411C 50320A46 4A000000 80B5FE10 600000CA 00000000 3A000038 FFFE0001 92010000 00000039 86000000 00000001 94010000 00000039 E2000001 00000000 4A100000 00000050 62000000 00000000 E0000000 80008000
  10. Do you remember the code I improved it ! Enable Stats Bonus [g6flavor, Whai] 2A3CB07E FFFB0004 82000000 803CB07F 86000000 00000004 84000000 803CB07F E0000000 80008000 Amount of Stats Bonus [g6flavor, Whai] You can now filter which team get stats bonus and which stats bonus they get Player's Units don't have stat bonus [Whai] Enemy's Units have stats bonus [Whai] Here is an example : Code used :
  11. Are you playing in 16:9 or in 4:3 ? Because gecko codes in this thread work in 16:9 Are you playing in Easy difficulty or Normal/Hard difficulty ? Gecko codes (in this thread) involving units don't work on easy difficulty
  12. To be honest, I am a total beginner about ASM. It is often trial and error. I didn't name the functions because I didn't grasp the entire purpose of the functions but here are my notes : 0x800D5798 - Start of the menu function (Add items (Attack, Arrive, Gamble, etc...) to the menu) The function call -> 0x80050248 - Start of the function that iterates all items' slots to check if you can attack This is where it is being called : The function call -> 0x80039AE4 - Start of the function that checks if it is a valid target (In range ? enemy ? ...) This is where it is being called : 1. The function call -> 0x801107C0 - Start of the function that checks if the target is in range (item's max range) 2. The function call -> 0x801107A0 - Start of the function that checks if the target is in range (item's min range) This is where both functions are being called : Notes : r23 -> Unit's position Y, r24 -> Unit's position X 3. The function call -> 0x8003C924 - Start of the function that checks if the target is an enemy It is being called by the instruction bctrl Notes : r0 -> target's team
  13. Hello, This is my first time creating cheat codes involving ASM so there might have side effects. Gain x2 EXP (Univseral) 04120830 57E30E3E Now it also works on skills (Sacrifice/Steal/...), galdr, etc... Display other encounter (Push R and + on Wii Classic Controller) 283D79BA 00FF0600 0402CB68 40820004 001221CF 00000000 CC000000 00000000 0402CB68 408200E8 001221CF 00000001 E0000000 80008000 You will be able to observe the encounter between Other/Ally and Enemy units Push R and + to toggle on/off Can attack anyone 0003C96B 00000004 You will be able to attack every player/ally/other/enemy units except when they are pacifists to each other (e.g. Micaiah vs Ilyana, Haar vs Jill, ...) Here is a demo :
  14. 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 2) Main 3) Result 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 :
  15. 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. You find it at the address 0x803C9C60 or more precisely at the address 0x803C9C64 Yes indeed this is better. I changed the code on my post and on the pastebin.
  16. 024CB75A 0000012C 024CB762 0000012C 024CB766 000092A0 024CB76A 0000012C 024CB76E 000092A0 024CB772 0000012C 024CB776 000092A0 You also have to add 0x80 on the 9220 because if you go to the address on the game's memory via Dolphin's debug or a 3rd party software like Dolphin Memory Engine : You notice at the address 0x804CB764, its value being another address : 0x803EA240. In conclusion : You have to add 0x80 on 9220 because it is an address and since address on v1.01 are often shifted compared to the v1.00 you have to add an offset. On side note : If you take a look at the code Have All Items in Convoy and Skills (296 items) [ShadowX39] on my thread : [...] 083E92A0 80B5FE10 [...] This address (0x803E92A0) is also used at the address 0x804CB754. It is the address of the Dawn Brigade's convoy. So the code Enable Max Storage (300) in Convoy for All Chapters [g6flavor], set the max storage to 300 for all parts and set the Dawn Brigade convoy for all parts.
  17. 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 ?
  18. Yes, in in this case you have to add 0x80 on both
  19. You have to add 0x80 on the address AND on the value, because you can notice that it looks like an address (since it starts with 80______). In conclusion : 04884E84 8066B8B0
  20. 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 : For examples : Nihil for both, Vantage, Gamble : Attacker : Adept, Wrath, Resolve, Lethality, Mercy; Defender : Resolve Sol, Cancel 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 Attacker : Critical Hit; Defender : Mantle Attacker : Miss Attacker : Hit; Defender : Aurora 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 :
  21. 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 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 : 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.
  22. 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 : And here a code that I managed to create : Set the unit's side to controlled by [Whai] 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/
  23. It's been a while, I want to share my creation which is kind of funny : Test it yourself. If you only want the item being blessed, use this code : As for the name of the forged weapon, it uses the ASCII table There you go : I don't see the why do you want to use AR codes instead of Gecko codes but here are the codes : Gecko Codes : Translated for AR codes : It is because the addresses of codes like this are also used in the opening cutscene which leads to crash the game if we change values. To solve this issue, you have to either activate the code once you loaded your file or add another piece of code like this : 20b5411c 50320a46 [insert your code that crash at the start of the game] e0000000 80008000
  24. Try this 04191B08 28000003 04052CD8 28000003 04067C9C 28000003 You have to add 0x80 on adresses. Try this 283D795A 00000410 003CB07C 00000004 E0000000 80008000
  25. Here are links that helped me to convert : gecko codetypes (archive) AR codetypes
×
×
  • Create New...