ROM Hack Xenoblade Chronicles 2 File Structure

RichardTheKing

Honestly XC2>XC3...
OP
Member
Joined
Mar 18, 2020
Messages
942
Trophies
1
Age
25
XP
2,613
Country
Australia
Recently, I've been looking for a way to reset a Blade's Affinity Chart progress, so I can go through New Game + as though it was a standard New Game, but with the NG+ additions available for extra content and convenience.
However, the game has a check in place to prevent lost Affinity Chart progress, which is known as "Achievement ID" - so just importing a 'blank' Affinity Chart file from an actual NG save doesn't work. If I try that, the Chart just refills upon next booting up the game and checking it in-game, thanks to the internal Achievements.

I've been looking through a NG+ save in the 010 Editor, using x43x61x69's binary template, and while I can find Pyra's Affinity Chart and each node's Achievement ID (struct SDataBlades Blades -> struct gf_SDataBlade Blade[0] -> struct gf_AchievInfo BArtsAchieve[3] -> struct gf_AchievInfo BArtsAchieve[0/1/2] -> struct gf_AchievQuest[5] -> struct gf_AchievQuest[0-4] -> short AchievementID), I cannot find where else it's stored.

There is one more reference to the search term "Achieve" in here, that being "struct FixedVector_TaskAchieve_128 Achievement Tasks", which contains the data XC2Bf2SaveNETThingy also calls Achievement Tasks on the first, Misc, tab. However, I have no idea what any of this does or means; editing it also has no effect on Affinity Chart progress. So this seems to be a bust.

The XC2Bf2SaveNETThingy editor also provides a link to this list of data tables, of which the most applicable tables seem to be this one about FLD_AchievementSets, and this one about a FLD_AchievementList. I don't know who compiled these tables, nor how they compiled them, so I don't know if this data is stored in the save file (bf2savefile.sav) or can be found in a RomFS dump.

Speaking of, I did dump the game's RomFS, except everything save the "movies" is in the .nop file format. I don't know how to open and examine these, either, nor where these tables come into play.

If anyone has any experience datamining games and can help me, I'd really appreciate it; I don't know how to continue from here.
 
  • Like
Reactions: greatondeck

masagrator

The patches guy
Member
Joined
Oct 14, 2018
Messages
5,731
Trophies
3
XP
10,708
Country
Poland
Last edited by masagrator,

RichardTheKing

Honestly XC2>XC3...
OP
Member
Joined
Mar 18, 2020
Messages
942
Trophies
1
Age
25
XP
2,613
Country
Australia
https://gbatemp.net/threads/xenoblade-chronicles-2-graphics-settings.529436/

Download Xenoblade2set.zip, unpack it, run quickbms.exe, first choose .bms script included in folder, then choose bf2.arh from romfs dump, then choose output folder for files.

Idk how you have missed 10 GB bf2.ard file if you found only nop files.
I was looking in the "stream" folder, which has folders explicitly named "blade" and "event" (and whatever "cs" means) - thus I thought this was where the important stuff's located.
 

RichardTheKing

Honestly XC2>XC3...
OP
Member
Joined
Mar 18, 2020
Messages
942
Trophies
1
Age
25
XP
2,613
Country
Australia
https://gbatemp.net/threads/xenoblade-chronicles-2-graphics-settings.529436/

Download Xenoblade2set.zip, unpack it, run quickbms.exe, first choose .bms script included in folder, then choose bf2.arh from romfs dump, then choose output folder for files.

Idk how you have missed 10 GB bf2.ard file if you found only nop files.
Okay, so I copied the bf2.ard file from my romFS dump and opened it with quickbms_4gb_files.exe, using Xenoblade2ard.bms as the BMS script.
However, it resulted in this:

signature of 4 bytes at offset 0x0000000000000000 doesn't match the one
expected by the script:
this one: "xbc1"
78 62 63 31 xbc1
expected: "arh1"
61 72 68 31 arh1
- 0 files found in 0 seconds
coverage file 0 0% 4 11026779714 . offset 0000000000000004
coverage file 1 0% 0 11026779714 . offset 0000000000000000

I...don't know what to do now. Help?
 

masagrator

The patches guy
Member
Joined
Oct 14, 2018
Messages
5,731
Trophies
3
XP
10,708
Country
Poland
Okay, so I copied the bf2.ard file from my romFS dump and opened it with quickbms_4gb_files.exe, using Xenoblade2ard.bms as the BMS script.
However, it resulted in this:



I...don't know what to do now. Help?
I wrote bf2.ARH, not bf2.ARD. both files are needed, but you need to open ARH file.
 
  • Like
Reactions: RichardTheKing
General chit-chat
Help Users
  • Skelletonike @ Skelletonike:
    link doesn't work
    +2
  • Skelletonike @ Skelletonike:
    1H left, such a slow week.
  • Sonic Angel Knight @ Sonic Angel Knight:
    Okay, I had spaghetti :P
  • SylverReZ @ SylverReZ:
    Hope they made lots of spaget
  • K3N1 @ K3N1:
    Chill dog
  • SylverReZ @ SylverReZ:
    Chilli dog
  • Skelletonike @ Skelletonike:
    Damn, I'm loving the new zelda.
  • xtremegamer @ xtremegamer:
    loving the new zelda, i started a game, it was so fucking good, so i
    am waiting on my friend to get home so we can start a new one together
  • Skelletonike @ Skelletonike:
    I just dislike that they don't let me choose the voices before the game starts. Happened with botw as well, had to change to japanese and restart.
  • K3N1 @ K3N1:
    But the important question is can you choose gender
  • Skelletonike @ Skelletonike:
    Same way you can choose Gerald's gender.
  • Skelletonike @ Skelletonike:
    *Geralt, damn autocorrect.
  • Psionic Roshambo @ Psionic Roshambo:
    But can he be trans? Lol
  • K3N1 @ K3N1:
    Zelda transforms into link
  • Psionic Roshambo @ Psionic Roshambo:
    Link I'm not the princess your looking for.... *Pulls a crying game*
  • K3N1 @ K3N1:
    *skirt up* it's exactly what I always wanted
  • Skelletonike @ Skelletonike:
    Just scanned all my zelda amiibos, took a while but didn't get anything that cool, did get the lon lon ranch hylian fabrics though.
  • Skelletonike @ Skelletonike:
    It was pretty funny when I scanned wolf link and got a shit load of meat.
  • K3N1 @ K3N1:
    @Skelletonike, btw I ran that custom for mgs4 on the deck I'm amazed it got that far in game
  • K3N1 @ K3N1:
    Plug in*
  • K3N1 @ K3N1:
    Your favorite activity
    K3N1 @ K3N1: Your favorite activity