ROM Hack Harvest Moon - A new beginning => Scripts etc in Plain Text

HoboKen95

Banned!
Banned
Joined
Feb 17, 2015
Messages
137
Trophies
0
Age
33
XP
65
Country
United States
I downloaded a mp3-file, converted it to wav (used DVDVideoSoft for it).
After this, I downloaded this TOOL. converted the wav to brstm and then the brstm to bcstm.
After I did this, I replaced the old bcstm-file w ith the new one :)
that's what I did... maybe it was a bad rom?
 

ChrisX930

Banned!
OP
Banned
Joined
Sep 3, 2013
Messages
788
Trophies
0
Location
Germany
XP
458
Country
Gambia, The
I still need help with getting a DARC-Unpacker/Repacker tool... Right now, there's no tool which provides this features.
EveryFileExplorer can open/read this archives and ectract files from it, but reimporting files is not possible right now :/
Can someone help me with this, please?
 

ChrisX930

Banned!
OP
Banned
Joined
Sep 3, 2013
Messages
788
Trophies
0
Location
Germany
XP
458
Country
Gambia, The
yeah is fun to mess with HM scripting lol, add new event and manage them. well is seems working replace model id on itemdatabase, and add them new item with different itemID.
yep, it works really well :)
Right now, I only need a way to modify (unpack/repack) darc-files, xbb-files, modify pp-files (strings inside of the xbb-files) and a better bcmdl-tool.
If all this would work, I could completly rewrite this game :)
 

andibad

Soon™
Member
Joined
Sep 14, 2009
Messages
701
Trophies
0
Location
hospital
XP
247
Country
Indonesia
well pp file on HM ANB and SOS is always have extra file is always an blank files and have size 8 byte (on last file). I don't know the specific reason, but is seems be used on their ItemData system is called on script or just prevent system.

today, i poking around on shop data, ANB and SOS is have different structure since is different purpose too.

on ANB have 6 Config STR :
  • ShopAnimal
  • ShopBlendFish
  • ShopBlendFlower
  • ShopFood
  • ShopItem
  • ShopTrade
on SOS have 2 kind of Config STR :
  • BasicData
  • OneItemData (only different on config STR and more smaller 8 byte than basicData without CSTR)
is tricky to identify each config since is only have start offset of CSTR, basically config file is always have this structure :
  • 0x00 : Data Lenght
    0x04 : Config Value Count
  • 0x08 : Start Offset Config STR, other rest is depend on what CSTR. // not have identifier STR so you can't called that by their ID STR but with their aliases (filename).
  • 0x0c : second config data, it will be used end offset of config STR if is have any data after config STR. Second data after CSTR.
on SOS, shopdata structure is more complex but simply than on ANB. On SOS, each data is on item shop, and on ANB is group of item STR.

ShopData structure on SOS :
  • 0x0c : Item ID (from ItemList.xbb) // uint
    0x10 : Price // uint
    0x14 : Spring Flag (Shop) // 1 yes, 0 no
    0x18 : Summer Flag (Shop) //^
    0x1c : Fall Flag (Shop) //^
    0x20 : Winter Flag (Shop) //^
    0x24 : Conquest Flag (Unlocking Criteria) // uint
    0x28 : Year Flag (Unlocking Criteria) // uint
    0x2c : Season Flag (Unlocking Criteria) // uint, 0 = spring ~ 3 = winter
  • 3 * 20 byte for additional condition
  • Extra 2 byte for BasicData STR, is only for min and max stock.
and for ANB, is have simple structure so no need to explain in here. and i notice fogu.com/sos1 on general store page is have 3 item is missing on her list. i have darc, pp, xbb un/packer, and tarc (only unpacker) but not ready to release yet. i still no have time to figure out about uniqueID on XBB file.

so far my test for shopdata is seems working added normal item, but i still need to check about additional condition (since is related to another file and script), is take more time.
 

ChrisX930

Banned!
OP
Banned
Joined
Sep 3, 2013
Messages
788
Trophies
0
Location
Germany
XP
458
Country
Gambia, The
well pp file on HM ANB and SOS is always have extra file is always an blank files and have size 8 byte (on last file). I don't know the specific reason, but is seems be used on their ItemData system is called on script or just prevent system.

today, i poking around on shop data, ANB and SOS is have different structure since is different purpose too.

on ANB have 6 Config STR :
  • ShopAnimal
  • ShopBlendFish
  • ShopBlendFlower
  • ShopFood
  • ShopItem
  • ShopTrade
on SOS have 2 kind of Config STR :
  • BasicData
  • OneItemData (only different on config STR and more smaller 8 byte than basicData without CSTR)
is tricky to identify each config since is only have start offset of CSTR, basically config file is always have this structure :
  • 0x00 : Data Lenght
    0x04 : Config Value Count
  • 0x08 : Start Offset Config STR, other rest is depend on what CSTR. // not have identifier STR so you can't called that by their ID STR but with their aliases (filename).
  • 0x0c : second config data, it will be used end offset of config STR if is have any data after config STR. Second data after CSTR.
on SOS, shopdata structure is more complex but simply than on ANB. On SOS, each data is on item shop, and on ANB is group of item STR.

ShopData structure on SOS :
  • 0x0c : Item ID (from ItemList.xbb) // uint
    0x10 : Price // uint
    0x14 : Spring Flag (Shop) // 1 yes, 0 no
    0x18 : Summer Flag (Shop) //^
    0x1c : Fall Flag (Shop) //^
    0x20 : Winter Flag (Shop) //^
    0x24 : Conquest Flag (Unlocking Criteria) // uint
    0x28 : Year Flag (Unlocking Criteria) // uint
    0x2c : Season Flag (Unlocking Criteria) // uint, 0 = spring ~ 3 = winter
  • 3 * 20 byte for additional condition
  • Extra 2 byte for BasicData STR, is only for min and max stock.
and for ANB, is have simple structure so no need to explain in here. and i notice fogu.com/sos1 on general store page is have 3 item is missing on her list. i have darc, pp, xbb un/packer, and tarc (only unpacker) but not ready to release yet. i still no have time to figure out about uniqueID on XBB file.

so far my test for shopdata is seems working added normal item, but i still need to check about additional condition (since is related to another file and script), is take more time.
tghats very much useful information, really great! would be awsome if you could share your actual tools with me :) I'm already wairing for a long time for it :) especially a working darc-files would be great :) the already released tool is unfinished, it can repack the archives almost completely, but the files don't load ingame because some functions are missing, i guess
 

ubergeek77

Post editing world champ.
Member
Joined
Dec 6, 2014
Messages
584
Trophies
0
XP
607
Country
United States
Looking through Story of Season's scripts, I see a function called "GameData" that gets called a lot, but I can't find where this function is defined anywhere. Also, I haven't been able to identify the script that sets up the game, as in, the script that handles character creation. I would assume the values that get retrieved when GameData is called are set by this. "SceneGameInitSetting.nut" is just a few simple functions that both call "InitPlayerAvatarCommon()," but that is a dead end as well.

Has anyone taken a look at this yet? I'd love to be able to change what gets written to GameData during Character Creation (or even better, be able to modify it altogether). I haven't found anything particularly useful in my save file.


Edit: Just wanted to clarify:
Using /Script/Util/Player.nut as an example, GameData is used like this:
Code:
GameData.GetPlayerName();
GameData.IsPlayerBoy();

So the first one will grab the name of the player, and the second one will return true/false depending on what gender was chosen. But nowhere in the scripts can I find where the name or gender is actually set.
 
  • Like
Reactions: Margen67

Margen67

Dirty entited pirate
Banned
Joined
Nov 3, 2014
Messages
1,100
Trophies
0
XP
1,741
Country
United States
Added more Clothes that can be used at start :D
11021043_912547172109youo5.jpg


changed:
Code:
function InitPlayerAvatarBoy()
{
    InitPlayerAvatarCommon()
 
    // 服
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_1"))
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_3"))
 
 
    // 髪
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_FARM_STYLE"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_NORMAL_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_NATURAL_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_ACTIVE_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_CASUAL_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_YURU_PERMA"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_DEKO_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_ELITE_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_STRAIGHT_HAIR"))
 
}
to
Code:
function InitPlayerAvatarBoy()
{
    InitPlayerAvatarCommon()
 
    // 服
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_1"))
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_2")) //not available at character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_3"))
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_4"))  //not available at character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_5"))  //not available at character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_6"))  //not available at character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_7"))  //not available at character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("M_UNIFORM_8"))  //not available at character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_1"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_2"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_3"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_4"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_5"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_6"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_7"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarBody(PlayerAvatarData.GetBodyId("W_UNIFORM_8"))  //not available at male character creation
 
    // 髪
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_FARM_STYLE"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_NORMAL_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_NATURAL_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_ACTIVE_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_CASUAL_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_YURU_PERMA"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_DEKO_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_ELITE_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("M_HAIR_STRAIGHT_HAIR"))
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_FARM_STYLE"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_SHORT_HAIR"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_LAYER_BOBU"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_ODANGO"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_LOOSE_SHORT"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_MEDIUM_PERMA"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_OSAGE"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_PONYTAIL"))  //not available at male character creation
    PlayerAvatarData.GetPlayerAvatarHair(PlayerAvatarData.GetHairId("W_HAIR_STRAIGHT_LONG"))  //not available at male character creation
}
What happens if you add invalid data?
 

ChrisX930

Banned!
OP
Banned
Joined
Sep 3, 2013
Messages
788
Trophies
0
Location
Germany
XP
458
Country
Gambia, The
What happens if you add invalid data?
Black Screen

Looking through Story of Season's scripts, I see a function called "GameData" that gets called a lot, but I can't find where this function is defined anywhere. Also, I haven't been able to identify the script that sets up the game, as in, the script that handles character creation. I would assume the values that get retrieved when GameData is called are set by this. "SceneGameInitSetting.nut" is just a few simple functions that both call "InitPlayerAvatarCommon()," but that is a dead end as well.

Has anyone taken a look at this yet? I'd love to be able to change what gets written to GameData during Character Creation (or even better, be able to modify it altogether). I haven't found anything particularly useful in my save file.


Edit: Just wanted to clarify:
Using /Script/Util/Player.nut as an example, GameData is used like this:
Code:
GameData.GetPlayerName();
GameData.IsPlayerBoy();

So the first one will grab the name of the player, and the second one will return true/false depending on what gender was chosen. But nowhere in the scripts can I find where the name or gender is actually set.

Some of this informations may be encrypted in the xbb-files. Still need a unpacker/repacker for this files and a PAPA-File editor
 
  • Like
Reactions: Margen67

ubergeek77

Post editing world champ.
Member
Joined
Dec 6, 2014
Messages
584
Trophies
0
XP
607
Country
United States
Some of this informations may be encrypted in the xbb-files. Still need a unpacker/repacker for this files and a PAPA-File editor

Encrypted? But looking at it, a lot of it is just text. Speaking of that, could you share how you were able to do this?

Ahh, and here are the messages from this Event.
I managed to unpack xbb-files and almost finished pp-file decrypting
(need to build a repacker next).
msg-jpg.16271

I don't need to be able to repack it. I just want to be able to look through all these .xbbs for stuff and be able to search through folders of them with Notepad++. Having to look at them in hex and r.e.a.d. .t.h.e. .d.i.a.l.o.g.u.e. .l.i.k.e. .t.h.i.s. is a real pain.


Edit: Eh, I'm already here. Might as well ask this:

Where should I look to find out whether or not an NPC shows their friendship value? It's the flower thing with leaves that displays on eligible bachelor/ettes:

3579dbd72c6a7284ee61fcf6ed2bcc81.jpg


I've looked pretty hard and I can't come up with anything. It's only normally visible to eligible bachelor/ettes of the opposite gender, meaning the game has checks in place to determine whether or not it gets displayed. This has me curious as to what actually determines whether or not it is displayed while you are talking with them. Like, would I be able to make it visible for all villagers, even non-bachelor/ettes? That would be neat. It has almost nothing to do with romance - its basically just a fancy friendship meter. The romance event scripts don't reference this at all, and only care about how high your friendship is. The flower is just an indicator.

You could do some cool things with this, like, say, adding a whole new bachelor/ette to the game. Pick a villager that isn't already bachelor/ette (like Dessie or Witchie). Find out how to enable the friendship meter/flower display on their dialogue box, and add that particular villager to the MaleTable or FemaleTable. Everyone's favorite items are already in the game, so just cook up a few new Event scripts (which would take a while but not be too difficult), add new messages for those scripts to the Msg.xbb (in hex, since we can't repack it yet), make a few changes to the marriage scripts and a few other things, and bam! You've got yourself a new bachelor/ette (I know it's a tad more involved than that, but those are the basic things. The game is really modular - I don't see why things like that wouldn't work).

I'm a bit ambitious when it comes to romhacking :P

But yeah, I'd really like to know how to turn that flower meter on or off. If we haven't figured it out yet, I'll gladly help. Just point me in the right direction.
 

andibad

Soon™
Member
Joined
Sep 14, 2009
Messages
701
Trophies
0
Location
hospital
XP
247
Country
Indonesia
Encrypted? But looking at it, a lot of it is just text. Speaking of that, could you share how you were able to do this?

is not encrypted, is just an archive file which containing various data format, commonly is containing any config data on bokujou monogatari games started on ds generation before grand bazaar. yeah some of them is used an plain text (shift-JIS japanese (or just used ascii), and Unicode / UTF-16). first data on array is always start offset of configID, and read them byte by byte if next byte is 0x0, just stop, if config count is 0.

Looking through Story of Season's scripts, I see a function called "GameData" that gets called a lot, but I can't find where this function is defined anywhere. Also, I haven't been able to identify the script that sets up the game, as in, the script that handles character creation. I would assume the values that get retrieved when GameData is called are set by this. "SceneGameInitSetting.nut" is just a few simple functions that both call "InitPlayerAvatarCommon()," but that is a dead end as well.

Has anyone taken a look at this yet? I'd love to be able to change what gets written to GameData during Character Creation (or even better, be able to modify it altogether). I haven't found anything particularly useful in my save file.


Edit: Just wanted to clarify:
Using /Script/Util/Player.nut as an example, GameData is used like this:
Code:
GameData.GetPlayerName();
GameData.IsPlayerBoy();

So the first one will grab the name of the player, and the second one will return true/false depending on what gender was chosen. But nowhere in the scripts can I find where the name or gender is actually set.

Not all script is stored on nut file, some is on "code.bin" like function is related to native thing (ram manipulation, save game, etc), all of them stored on code.bin. also ANB, SOS JP, SOS EN (XSEED) is used different config pattern on their pp file.

well i only interest to dump all data on harvest moon game, and i started it from october 2014 last year, alongside with fantasy life. however my tool can repack them too, but only my own private project for that game, i no have plan to share them, sorry.
 

ChrisX930

Banned!
OP
Banned
Joined
Sep 3, 2013
Messages
788
Trophies
0
Location
Germany
XP
458
Country
Gambia, The
well i only interest to dump all data on harvest moon game, and i started it from october 2014 last year, alongside with fantasy life. however my tool can repack them too, but only my own private project for that game, i no have plan to share them, sorry.
Stop tell us about this, then...
I'm searching for help with the tools for months and you're talking about "hehe, I have a repacker but I don't give a fuck! I don't wanna share it.

Please go.. leave this place
 

ubergeek77

Post editing world champ.
Member
Joined
Dec 6, 2014
Messages
584
Trophies
0
XP
607
Country
United States
well i only interest to dump all data on harvest moon game, and i started it from october 2014 last year, alongside with fantasy life. however my tool can repack them too, but only my own private project for that game, i no have plan to share them, sorry.
This is a forum, not your personal gloating area. If you have something to add to the discussion, please do so - we enjoy constructive conversation and the sharing of tools here. But if you want to sit here and gloat about a tool "you made but won't release" in an attempt to look cool, with almost no evidence to back up your claim, kindly see yourself out. Otherwise, please reconsider and share what you've learned.

Anyway ChrisX930, what else can I do or look for? I'm looking through MsgTag.xbb right now and it looks fairly suspicious. Oh, and how were you able to unpack the .xbbs? That would come in handy.

Edit:

Oooh I'm getting closer. In the Layout folder, Msg.arc and MsgHeart.arc contain the textures for that meter thing. Now we just need to find where this thing gets referenced.

Edit2:
Alright so I found where they're being referenced, I just don't see where the villager it gets displayed on gets determined. I'm only seeing how the color gets picked:

Code:
//Script/Talk/CHARA_GENERAL.nut
//Lines 1801-1885
 
else if(IsInTheRoom())
{
    local love = npcWrap.GetFriendShip();
 
    if(IsInFriendsHouse(npcWrap))
    {
        // ランダム
        if(ElectedRandomDecision())
        {
            npcWrap.OpenMsg("MES_HOUSE_FRIEND");
            return;
        }
    }
    // 愛情度
    if(60000 <= love)
    {
        local msgId = GetNpcStateStr(npcWrap,
            "MES_HEART_RED",
            "MES_LOVER_HEART_RED",
            "MES_MARRIAGE_HEART_RED"
        );
        npcWrap.OpenMsg(msgId);
        return;
    }
 
......................
 
else
    {
        local msgId = GetNpcStateStr(npcWrap,
            "MES_HEART_WHITE",
            "MES_LOVER_HEART_WHITE",
            "MES_MARRIAGE_HEART_WHITE"
        );
        npcWrap.OpenMsg(msgId);
        return;
    }

It's most likely somewhere in GetNpcStateStr. I'll keep looking tomorrow, it's pretty late.

Edit3:
Well, that's a dead end. I've really got nothing right now. The above snippets of code only choose an NPC's dialogue based on how high the friendship is. At this point, it's not looking like it's a simple "if(NPCisBachelor){displayFlowers();}" or something like that.

I feel like I got really close to figuring this out, but there isn't much more for me to look for. It's either some weird name I haven't thought to search for yet yet (as I've been recursively searching for text within every file in the Script folder), or it gets handled in any one of the outside functions that get called (there's 'GameData' and a few Msg functions), that could very well be in code.bin, which we can't change.

I'm really disappointed. I'm sure there's more knowledgeable people that may want to take a crack at this - and I'd like to help if they do - but I just don't know where else I could look.

But to be brutally honest it looks like I'm one of the few people who are actually invested in hacking these games... :'(
 

andibad

Soon™
Member
Joined
Sep 14, 2009
Messages
701
Trophies
0
Location
hospital
XP
247
Country
Indonesia
iirc i already posting an working code to extract/read and is possibility to write too (need add a bit code on it). is already posted on 6 september 2014, no anyone interesting to see that. just modified it and compile it, you will got an tool for it.

haha sorry for my last reply, i just disappointed, hope too high to op which until now he only looking for an tools and show off it (have zero interesting to hacking this game). ah is enough, no single one in here interesting to hack for this game. so i will leave.
 
  • Like
Reactions: ChrisX930

ChrisX930

Banned!
OP
Banned
Joined
Sep 3, 2013
Messages
788
Trophies
0
Location
Germany
XP
458
Country
Gambia, The
iirc i already posting an working code to extract/read and is possibility to write too (need add a bit code on it). is already posted on 6 september 2014, no anyone interesting to see that. just modified it and compile it, you will got an tool for it.

haha sorry for my last reply, i just disappointed, hope too high to op which until now he only looking for an tools and show off it (have zero interesting to hacking this game). ah is enough, no single one in here interesting to hack for this game. so i will leave.
I would like to see a finished tool that can extract AND repack xbb- and pp-files for this Game.
For now, there are some tools that are able to read-/extract this files but none of them can rebuild them yet :/
 

ubergeek77

Post editing world champ.
Member
Joined
Dec 6, 2014
Messages
584
Trophies
0
XP
607
Country
United States
I would like to see a finished tool that can extract AND repack xbb- and pp-files for this Game.
For now, there are some tools that are able to read-/extract this files but none of them can rebuild them yet :/
The tools posted on Xentax don't do what you need? You were on the thread where an xbb extractor and repacker was posted. I managed to use those to extract a bunch of PAPA files. Then what I did was open those PAPA files in EditPad Pro as text documents with UTF-16 encoding. I was able to open a PAPA and edit it it like it's a plain text document (being careful not to remove any special characters). When you're done, revert it to the default encoding (Windows 1252 or something), and that's it.

So you can't unpack PAPA files, but they're essentially just text documents. I've run a few tests with a diff tool, and I found that editing them directly doesn't ruin the structure - just remove the first 2 bits when you're done (FF FE) and that's it. Do all that, repack the PAPA files to the .xbb you extracted it from, and the changes should work in game.

Is that what you need?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/FdYTKAVSsXY?si=9E-2AU0JN-4hRZi3