- Joined
- Jan 25, 2024
- Messages
- 8,668
- Points
- 38
- Age
- 39
- Location
- USA
- Website
- gameparadise.org
- Credits
- 143,985
I start this thread to share the findings of the Rune Factory 4 Special data structures.
Pretty much all data is identical to the 3ds structure, including all types documented at https://gameparadise.org/threads/rune-factory-4-rom-hacking-test-hack.1271/
In fact, I've been using the files from the hack in that thread with only an header modification in my playtrough.
The US version uses 9.x encryption while the J version uses 8.x encryption, so if you plan to decrypt your own rom, be wary of that.
I'll include a ready to use version of the 3ds hack for LayeredFS (minus accessory recipe changes until I figure if there are new accessories recipes or not) and a cheat file with the Field Stat codes (including one with Field Speed only, for lighter use). They were all tested in SXOS, but should work with Atmosphere and Edizon.
Feel free to use this thread to discuss anything RF4S Hacking related, be it cheats or Rom Hacking.
Edit 1:
After spending an afternoon trying to create a change item code (type, quantity, the works), I managed to find the format the items are stored and where they are stored. However, SX cheats do not allow me to create a simple "Press R3 to get 9 Lv10 materials" because of no way to store a register value. So, I'll dump here the item types, and how to make a "Create Item From Scratch" code:
Heap + 2dda399c = 1st backpack slot. Add 0x28 to it for the second slot and so on.
Items
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4-0xC levels of each item in the stack
0xd+ - 0x0
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
Fish
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4 level
0x8 Size in milimeters
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
Dish
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4 level
0x6 Ingredient 1
0x8 Ingredient 2
0xa Ing 3
0xc Ing 4
0xe Ing 5
0x10 Ing 6
0x12 != 0 for blue name
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
Weapons, Tools and armor
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4 level
0x6 total level
0x8 Base weapon + ???<<10
0xa ???
0xc Build item 1 + build item 2<<10 + build item 3 <<20
0x10 upgrade item 1,2,3
0x14 upgrade item 4,5,6
0x16 upgrade item 7,8,9
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
In order to create an item, fill the following code with the desired values:
Edit: added Item Index list as attatchment
Edit2: Updated cheat code to use UTF-8 Encoding and added Inf HP/RP and Time of Day codes.
Pretty much all data is identical to the 3ds structure, including all types documented at https://gameparadise.org/threads/rune-factory-4-rom-hacking-test-hack.1271/
In fact, I've been using the files from the hack in that thread with only an header modification in my playtrough.
The US version uses 9.x encryption while the J version uses 8.x encryption, so if you plan to decrypt your own rom, be wary of that.
I'll include a ready to use version of the 3ds hack for LayeredFS (minus accessory recipe changes until I figure if there are new accessories recipes or not) and a cheat file with the Field Stat codes (including one with Field Speed only, for lighter use). They were all tested in SXOS, but should work with Atmosphere and Edizon.
Feel free to use this thread to discuss anything RF4S Hacking related, be it cheats or Rom Hacking.
Edit 1:
After spending an afternoon trying to create a change item code (type, quantity, the works), I managed to find the format the items are stored and where they are stored. However, SX cheats do not allow me to create a simple "Press R3 to get 9 Lv10 materials" because of no way to store a register value. So, I'll dump here the item types, and how to make a "Create Item From Scratch" code:
Heap + 2dda399c = 1st backpack slot. Add 0x28 to it for the second slot and so on.
Items
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4-0xC levels of each item in the stack
0xd+ - 0x0
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
Fish
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4 level
0x8 Size in milimeters
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
Dish
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4 level
0x6 Ingredient 1
0x8 Ingredient 2
0xa Ing 3
0xc Ing 4
0xe Ing 5
0x10 Ing 6
0x12 != 0 for blue name
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
Weapons, Tools and armor
0x0 ItemId + quantity<<11
0x2 1 if homemade
0x4 level
0x6 total level
0x8 Base weapon + ???<<10
0xa ???
0xc Build item 1 + build item 2<<10 + build item 3 <<20
0x10 upgrade item 1,2,3
0x14 upgrade item 4,5,6
0x16 upgrade item 7,8,9
0x18 always 00 08 00 10
0x20 always 90 39 3a 74
0x24 always 0
In order to create an item, fill the following code with the desired values:
Code:
[Override item in slot 1 with Material]
04100000 2dda399c 0000(ItemId + quantity<<11)
04100000 2dda39a0 09090909 //replace 09s with [level -1]
04100000 2dda39a4 09090909
04100000 2dda39a8 00000009
04100000 2dda39ac 00000000
08100000 2dda39b0 00000000 00000000
04100000 2dda39b8 10000800
04100000 2dda39bc 743a3990
04100000 2dda39c0 00000000
[Override item in slot 1 with Fish]
04100000 2dda399c 0000(ItemId + quantity<<11)
04100000 2dda39a0 0000000(level-1)
04100000 2dda39a4 0000(size in mm)
08100000 2dda39a8 00000000 00000000
08100000 2dda39b0 00000000 00000000
04100000 2dda39b8 10000800
04100000 2dda39bc 743a3990
04100000 2dda39c0 00000000
[Override item in slot 1 with Weapon]
04100000 2dda399c 0000(ItemId + quantity<<11)
04100000 2dda39a0 00(total level)000(level-1)
04100000 2dda39a4 0000(base weapon ID)
04100000 2dda39a8 (Build item 1 + build item 2<<10 + build item 3 <<20)
04100000 2dda39ac (upgrade item 1+ upgrade item 2<<10 ,upgrade item 3<<20)
04100000 2dda39b0 (upgrade item 1+ upgrade item 2<<10 ,upgrade item 3<<20)
04100000 2dda39b4 (upgrade item 1+ upgrade item 2<<10 ,upgrade item 3<<20)
04100000 2dda39b8 10000800
04100000 2dda39bc 743a3990
04100000 2dda39c0 00000000
Edit: added Item Index list as attatchment
Edit2: Updated cheat code to use UTF-8 Encoding and added Inf HP/RP and Time of Day codes.