[PSX/PC] General editor - Hades Workshop (0.50b)

  • Thread starter Thread starter Tirlititi
  • Start date Start date
Status
Not open for further replies.
That's correct.

Yes, the "SetCharacterData" is almost a "one-time event" (actually not one time but 2 or 3 times depending on the character), ie. it is triggered once when the character is initialised and if the character was initialised with the "temporary" flag, that character will keep that flag for the rest of the game or until it gets re-initialised.

=> If you load a save in which the character was already initialised with this flag, it will keep this flag, no matter what change you did to the event scripts of "Prima Vista".
=> Also, the temporary characters are re-initialised a couple of time: Blank is re-initialised right before the Plant Brain battle (there's a line "SetCharacterData" for Blank a bit above the line that triggers the Plant Brain battle in its nest) / Marcus is re-initialised before the 2nd fight against Black Waltz 3 battle / Beatrix is initialised once in Queen's Chamber before fighting Bandersnatches and is re-initialised in Alexandria's marketplace during Bahamut's attack.

=> You are able remove that "temporary" flag even in your end-game saves if you add new "SetCharacterData" lines at places where there wasn't before. For example, you can add a "SetCharacterData" at the end of a "Main_Init" function of any place so that it removes the flag. Make sure that you use the equipement set "255", which is the value for "don't touch the equipment", otherwise you could lose/duplicate pieces of equipments.
Thanks for the tips. I'll try soon to put tantalus and/or Beatrix in the party by this way on psx.

Now, for trance issue (softlock in game for Blank and the others no trance guys) I got the answer: I remove the lines "change model" from the [Trance_activate]. It does this: no trance model for anybody, so everyone simply is lighting up after trasformation, battle menù changes correctly, maybe the bad status have the same rate that affect the normal model. When trance are finished, characters stop lighting up, trasformations are ok. I've tried this on Tantalus and Beatrix, they without trance bar, have a trance menu that works fine, and if you set trance abilities, like i do, they work as well. Even if no trance bar, they trance off after two or three moves, like the normal trance guys, because of the trance formula i think.

Such a great job is HW!!!

Question:
1-Is it possible to add in some point, a npc that changes the party, allowing to put in Beatrix or Tantalus? (I think it's impossible to have for example amarant and blank, 'cause they share the same code in psx, correct?)

2-Or maybe, npc, allowing to switch between Eiko-Marcus, Quina-Cinna, Amarant-Blank, someoneelse-Beatrix?

I can do that by gameshark codes, but i ask for permanent changes.

Any other tips?
 
Hi.

It's not easy to add a brand new NPC even with minimal interaction, but it is possible to add Beatrix in the party, even in the PSX version. Indeed it's impossible to have both Blank and Amarant simultaneously because they share a common slot. It'd also be problematic to switch between Blank and Amarant back and forth because it would lose some of Amarant's datas in the process.
Basically, you need to add this kind of function to a NPC in a field script. You can add a NPC that normally doesn't appear by adding an entry, but beware that 3D models are field-dependant on the PSX version and you can't have a NPC appearing in a field in which they would never appear otherwise.
Code: [Select]
Code:
Function Man_SpeakBTN    ifnot ( IsMovementEnabled ) {        return    }    set VAR_GlobBool_158 = 0    if ( VAR_GlobBool_159 == 1 ) {        DisableMove(  )        if ( VAR_GlobBool_144 == 0 ) {            DisableMenu(  )        } else {            Wait( 1 )        }    }    SetTriangleFlagMask( 127 )    WindowSync( 2, 128, XXX ) // Use whatever dialog line you want, like "Hello, here's a Beatrix for your party."    set Setting_PartyReserve = 511 // 511 is "all the usual party members + Beatrix    Party( 4, 1 ) // Open the party menu to allow the player to place Beatrix in    set VAR_GlobBool_158 = 1    if ( VAR_GlobBool_159 == 1 ) {        if ( VAR_GlobBool_156 == 0 ) {            EnableMove(  )            SetTriangleFlagMask( 255 )            if ( VAR_GlobBool_144 == 0 ) {                EnableMenu(  )            }        }    }    return
You can add things like "TurnTowardObject( 250, 32 ) / WaitTurn(  )" to make add fanciness, but the main line is changing the "Setting_PartyReserve". Also, if you use this code before Beatrix joined your party the first time, you need a line like "SetCharacterData( 8, 1, 13, 22, 15 )" as well.

By the way, whether it's Blank or Amarant in your party depends on the flag "temporary character" in the corresponding "SetCharacterData" line that was last used on their shared slot.
Code: [Select]
Code:
SetCharacterData( 11, 1, 10, 21, 12 ) // Setup BlankSetCharacterData( 7, 0, 7, 5, 7 ) // Setup Amarant instead
 
Hi, is it possible to use your tool to swap the fmvs of the psx version with PC ones?
 
Hi. I wished I have this kind of almighty power ^^'
No, it is not possible to increase the data size of the PSX version to my knowledge, so inserting the heavy FMVs of the PC version in the PSX disc image is out of reach, even before considering format discrepancies.

If you want to do the other way around, it might be possible with other tools. You should be able to extract FMVs from the disc image using generic PSX ISO tools (something like that). And then surely video editing tools should be able to change the format of whatever you extracted from PSX into an OGG video, which can then replace the OGG videos used for the PC version (the audio tracks of FMVs are not as easily accessible on PC but are archived in p0data62.bin; more infos there).
 
Hi. I wished I have this kind of almighty power ^^'
No, it is not possible to increase the data size of the PSX version to my knowledge, so inserting the heavy FMVs of the PC version in the PSX disc image is out of reach, even before considering format discrepancies.
I had to ask :) I know it won't run on original psx even if I managed to swap them but I'm hoping it's somehow possible when emulating in RetroArch for example.

If you want to do the other way around, it might be possible with other tools.
Why would I want to swap those high res movies? xD
Anyway, thanks for your time :)
 
Update to v0.50
-------------------


- Added compatibility with many of Memoria's features when it is installed:
-- You can create new spells, supporting abilities, commands, playable characters, sword magic sets, (key) items, (synthesis) shops, with custom IDs. Many limitations are also removed, like the number of abilities taught by items, the recipe ingredient count for synthesised items, etc...
-- Many numerical values or IDs are not capped anymore. This doesn't apply to the datas for enemies as they still use the native binary format, even when modding with Memoria. To bypass these limits, you need to manually use Memoria's BattlePatch.txt feature.
-- You can attach weapon / armor / usable effects to any item, so weapons and jewels can increase defensive stats and exotic items can have multiple usages.
-- HW provides an interface to multiple recent Memoria features (boosted supporting abilities, custom textures for weapons...).
-- When adding custom playable characters, you can setup various datas that are required for them to be full-fledged characters. That includes the set of battle animations that they use. However, this isn't magic: you still need to create animations for them as they will have a limited set of animations available from the base game anyway. On top of that, Memoria doesn't like it if you use the same battle animation for two different logical animations (eg. if you use the same animation for "stand" and "stand weak"). The solution for now is to duplicate these animations (using eg. the Unity Assets Viewer) and just give another name to the duplicate. Eventually, Memoria will do that automatically I guess. Also, you'll most likely need to use Memoria's Model Viewer to see at least the skeleton and know which bone ID corresponds to which part of the model.
-- The CSV generated entries are now compared with Memoria's default database and only the new entries and the modified entries are kept. For example, if you only change Thunder Slash's effect, the corresponding CSV will only contain Thunder Slash's entry. This improves mod compatibility and can also help for writing down a description of your mod (keeping track of what you've modified more easily). The same goes for the .mes files (which contain entry names and descriptions).
-- Added a feature for completing the scripting system with custom functions. That's not really something you can use for now but it will be used in the future when Memoria accept new functions to be used in scripts (like, for example, a function "SetCharacterLevel" or "GetTetraMasterRank" to be used in cutscenes). It will allow me to implement support for these functions without having to update the tool each time.

- The list of equipments that each character can equip can now be modified both in the "Inventory -> Items" panel and in the "Party -> Stats" panel. This makes it easier depending on whether you want to think of equipment availability as a per character or per item feature. The equipment availability of custom characters may only be changed in the "Party -> Stats" panel.

- Fixed a couple of errors when de-compiling scripts (AI scripts, field and world map scripts): in some situations, a "break" keyword was added outside of any breakable block. It made it impossible to recompile directly the concerned functions. Sometimes, that "break" was only an extra line that should have just been removed, but sometimes it was a symptom of a more problematic error in the de-compilation of switch(ex) blocks. Now, a commented "// JMP(0)" line is written as placeholders for these exotic situations. Example of functions that were concerned are:
-- "Blue_Narciss_Loop" in World Map scripts, and similar functions for the other transport vehicles,
-- A couple of functions in Scarlet Hair's script (also in a fight against Zorn & Thorn if I recall correctly),
-- A couple of model "Init" functions in fields that just had an extra "break" line where it shouldn't.

- Reworked the way that argument expressions (and "set" expressions) are parsed: they now take operation priority into account so you less need to add parentheses everywhere to force the priority. For example, the expression "set x = 3 * 2 + 5" now parses as "set x = ((3 * 2) + 5)" instead of "set x = (3 * (2 + 5))".

- Fixed a bad practice in my C++ coding that lead the executable's size (and the compilation time!) to be much bigger than it should have (approx. x4).

- Improved a bit (or at least tried) the interface for a couple of panels. The IDs of entries are shown directly when selecting them, which makes things easier in specific situations in which a number corresponds to an ID (eg. for the effect of the Blue Magic "Angel's Snack" in which the spell's power corresponds to the ID of the item used).

- Added a bit of readability for the World Map functions that trigger on specific areas: the region concerned is now shown on the minimap. Also, the keyword "forward" is now used in these scripts instead of having an empty function. It means "use the same code as the one in the next function" and it can only be used if it's the only line of the function.

- Fixed batch script importing not working correctly depending on the Unicode encoding of the .txt.

- Various small bug and typo fixes.


For the first time ever, I could successfully batch export all the field scripts of the game and batch import (and thus compile) them back with no problem. I did that with multiple steps because it gets very slow and very long if you batch-import just one huge file containing all the scripts of the game, but it worked flawlessly. Until now, there was always a couple of rare functions that had a de-compilation problem and required manual fixes.

On the downside, I do not guarantee the Randomizer embedded tool to work correctly if you have more spells than the base 192 spell slots or things like that.

Most of "Creating new spell / command / etc" features are accessible only with a right-click: don't hesitate to try right-clicking on lists to see if you can add or remove entries.
When adding new supporting abilities, you need to manually create an effect for them in AbilityFeatures.txt: that part cannot be done inside Hades Workshop.

EDIT: Updated with a hotfix to remove the error message when "ScriptAPI.txt" doesn't exist.
 
Last edited:
Thank you very much for this update, in an incredible job that you are doing, during Saturday and Sunday I will test
 
What a great tool, I used it on the psx version to set the lv 2 required exp to 9999999 to enforce a lv1 challenge :) Thanks!
 
Update to v0.50b:
- Fix shops having trailing hammers to sell in some situations.
- Fix "ObjectUID_" in scripts so they adapt if you add or remove entrie.
- Add a copy/paste feature for texts. Only enemy, world map and field texts can use this feature.
- Text files (.mes) are not generated anymore if they are empty.
- item icon colors are not limited to just 15 anymore, but the color 15 should still be used solely for the "disabled" icon of the kind.
- Add a couple of interface improvements (mainly some more IDs are displayed).
- Add a couple of functions that can be used in scripts with Memoria.

The new available script functions will only work in-game when using the latest commit of Memoria. So that's something going on together with Memoria updates. For now, the new functionalities are these:
- "SetCharacterEquipment / GetCharacterEquipment" => control over individual pieces of equipements within scripts, so you are not restricted by "initial equipement sets" anymore.
- "SetCharacterLevel / SetCharacterExp / GetCharacterLevel / GetCharacterExp / GetLevelExperience" => control over character experience and levels.
- "AddShopItem / AddShopSynthesis / IsItemInShop / IsSynthesisInShop" => dynamically add or remove items that are sold by specific shops. I was thinking of a kind of synthesis recipe system in which you can find key items that unlock new items/synthesis to be bought.
- "WalkEx / TurnTowardObjectEx / SetLogicalAnimationEx" => more flexible control for cutscenes. Using these should make it easier as more cutscene code can be written in a single function and not splitted apart.
- "CardWinCount / CardLossCount / CardDrawCount / GetCardPoints / GetCardRank / GetTreasureHunterPoints" => access some mini-game points in scripts.
- "ConvertRegularItemId" / etc... => some utility functions required because of the fact you can add items over the 256 limitation.
- "GetPartyMember" => know which characters are in the party, a bit different from the existing "IsInParty".
- "GetItemFullCount" => the number of items of a specific type taking the equipped ones into account as well.
- "IsAbilityLearnt / IsSupportEnabled" => know more about what the party members can do combat-wise.


EDIT: I made a short video showing some of these script possibilities in action.
Link to video
Link to the corresponding script code

EEDIT: I made another small update (still calling it v0.50b) to fix a crash that happened sometimes when selecting negative numbers in the script editor.
 
Last edited:
Stuck in the marsh.

Hi Tirlititi,
I've an issue with my psx mod.
I'm trying to replace Quina, Eiko and Amarant by Cinna, Marcus and Blank with their own trance, obtained by removing change model line in the trance activate spell animation, and their own support abilities, by a trick in the beginning of the game.
CD1 works fine: for example in Burmesia, with this code for Cinna 5,1,255,21,8 the game thinks Quina is in the party, so on field and on the cinematic scenes she is present, but in the menù and in battle Cinna is on. (In the Marsh, i've to modify in some fields the lines isinparty(5) to isinparty(9) 'cause only like this you can start the frog game, for some reason in these fields the game "see" Cinna and not Quina, with the code 5,1,255,21,8.
Now in cd2 the issue is this.
I'm going to start Fossil Roo sequence.
To do that, after destroyed lindblum, i've to go to qu's Mars, and find the enter of Fossil Roo.
Now...the game with that code for Quina/Cinna, thinks i'm with Cinna...so the quina's find fossil roo entrance sequence is triggered and i cant find it, so i'm stuck in the marsh.
So many tries to use RemoveParty lines before that point of the game but useless, the game see Cinna's code like yet.
So I've tried, but with no working results, to modify field region range code for fields 0655, 0660... to directly access to the Fossil Roo entrance in field 0662...
(Isinparty check moved from 5 to 9 in 0655 and in 0660, no results ; in 0660 field change the region that allow the access to 0655 field, moved from 0655 to 0662, no results).

Can you help me to do that?
Or suggest other options?


Hi.

It's not easy to add a brand new NPC even with minimal interaction, but it is possible to add Beatrix in the party, even in the PSX version. Indeed it's impossible to have both Blank and Amarant simultaneously because they share a common slot. It'd also be problematic to switch between Blank and Amarant back and forth because it would lose some of Amarant's datas in the process.
Basically, you need to add this kind of function to a NPC in a field script. You can add a NPC that normally doesn't appear by adding an entry, but beware that 3D models are field-dependant on the PSX version and you can't have a NPC appearing in a field in which they would never appear otherwise.
Code: [Select]
Code:
Function Man_SpeakBTN    ifnot ( IsMovementEnabled ) {        return    }    set VAR_GlobBool_158 = 0    if ( VAR_GlobBool_159 == 1 ) {        DisableMove(  )        if ( VAR_GlobBool_144 == 0 ) {            DisableMenu(  )        } else {            Wait( 1 )        }    }    SetTriangleFlagMask( 127 )    WindowSync( 2, 128, XXX ) // Use whatever dialog line you want, like "Hello, here's a Beatrix for your party."    set Setting_PartyReserve = 511 // 511 is "all the usual party members + Beatrix    Party( 4, 1 ) // Open the party menu to allow the player to place Beatrix in    set VAR_GlobBool_158 = 1    if ( VAR_GlobBool_159 == 1 ) {        if ( VAR_GlobBool_156 == 0 ) {            EnableMove(  )            SetTriangleFlagMask( 255 )            if ( VAR_GlobBool_144 == 0 ) {                EnableMenu(  )            }        }    }    return
You can add things like "TurnTowardObject( 250, 32 ) / WaitTurn(  )" to make add fanciness, but the main line is changing the "Setting_PartyReserve". Also, if you use this code before Beatrix joined your party the first time, you need a line like "SetCharacterData( 8, 1, 13, 22, 15 )" as well.

By the way, whether it's Blank or Amarant in your party depends on the flag "temporary character" in the corresponding "SetCharacterData" line that was last used on their shared slot.
Code: [Select]
Code:
SetCharacterData( 11, 1, 10, 21, 12 ) // Setup BlankSetCharacterData( 7, 0, 7, 5, 7 ) // Setup Amarant instead
 
Hi paky-outsider,

Wouldn't it work to just replace all the occurences of "IsInParty(5)" by "IsInParty(9)", as you've started to do?
You can batch-export the field scripts and do some "search & replace" operation. Normally, you should even be able to batch-reimport the scripts easily then, even though I've not tested with the PSX version and it may bug if there are too many scripts.

The problem with making links to other fields in the PSX version is that it doesn't work well as the game needs to preload some datas. I wouldn't try to hijack the field exits like that in the PSX version.
 
Thanks for the fast reply Tirlititi.
Tonight I'll make a couple of tries to figure it out by replacing isinparty(9) all over marsh's fields.

In order the HW's new features in yours recent posts, is possible to use them with psx version?

EDIT: In my previous attempts I've missed one single isinparty's check, exactly in 0655 field, function main. Now it works.


Hi paky-outsider,

Wouldn't it work to just replace all the occurences of "IsInParty(5)" by "IsInParty(9)", as you've started to do?
You can batch-export the field scripts and do some "search & replace" operation. Normally, you should even be able to batch-reimport the scripts easily then, even though I've not tested with the PSX version and it may bug if there are too many scripts.

The problem with making links to other fields in the PSX version is that it doesn't work well as the game needs to preload some datas. I wouldn't try to hijack the field exits like that in the PSX version.
 
Last edited:
Hey Tirlititi,

Fist off, thank you for the awesome update. I didn't even realize you were still working on it.

I had a question. I know you edited the game so that Quan's Dwelling scene couldn't be done until disc four, and I was wondering if I could do something similar. I wanted to edit the colored stone deposit shrine on the Conde Petie Mountain Path (1554: Mountain Path/Roots) so that you can't deposit the items on disc 2, only on disc 3. I was hoping to simply edit the message that pops up if you try to do it on disc two with something along the lines "looks like it's not working."

If this is too difficult, or not possible, it occurred to me that I can just hide one of the stones somewhere else in the world only available in disc three, and make the player come back later.
 
Hey Tirlititi,

Fist off, thank you for the awesome update. I didn't even realize you were still working on it.

I had a question. I know you edited the game so that Quan's Dwelling scene couldn't be done until disc four, and I was wondering if I could do something similar. I wanted to edit the colored stone deposit shrine on the Conde Petie Mountain Path (1554: Mountain Path/Roots) so that you can't deposit the items on disc 2, only on disc 3. I was hoping to simply edit the message that pops up if you try to do it on disc two with something along the lines "looks like it's not working."

If this is too difficult, or not possible, it occurred to me that I can just hide one of the stones somewhere else in the world only available in disc three, and make the player come back later.
I just thought of something. The easiest solution would be replacing one of the stones with an ore. The other solution would be having a message pop up at one of the stone shrines that says "it seems to be empty," and then placing the stone somewhere else. My only problem is I have no idea how to go about doing that.
 
@paky-outsider: No, they are mostly done for the PC version and even for the PC version that is modded with the Memoria Engine Mod.
These 3 points apply to the PSX version as well, but that's pretty much it.
- Fix "ObjectUID_" in scripts so they adapt if you add or remove entries.
- Add a copy/paste feature for texts. Only enemy, world map and field texts can use this feature.
- Add a couple of interface improvements (mainly some more IDs are displayed).


@g_west: These are handled by the field scripts (in "Environment -> Fields -> Edit Script" windows).

The functions that are relevant to this side-quest are mostly those:
1) Picking up the Red Stone: Field Mountain Path/Trail (1550), Function Zidane_48
2) Picking up the Blue Stone: Field Mountain Path/Trail (1551), Function Zidane_15
3) Picking up the Yellow Stone: Field Mountain Path/Roots (1555), Function Zidane_22
4) Picking up the Green Stone: Field Mountain Path/Roots (1557), Function Zidane_14
5) Placing all the stones: Field Mountain Path/Roots (1554), Function Zidane_16

The picking-up functions all look roughly the same. Something like that:
Code: [Select]
Code:
Function Zidane_48    TimedTurn( Angle(2000, 850), 32 )    WaitTurn(  )    SetStandAnimation( 2605 ) // Crouch    RunAnimation( 2607 ) // Idle crouching    WaitAnimation(  )    SetTextVariable( 0, 300 ) // "Red Stone"    WindowSync( 0, 0, 143 ) // "[Item] is set on the stone. Take it out Leave it alone"    if ( !GetDialogChoice ) {        Wait( 10 )        RunSoundCode3( 53248, 1340, 0, -128, 125 ) // Play Sound        Wait( 10 )    }    SetStandAnimation( 200 ) // Idle    RunAnimation( 2591 ) // Stand up    if ( !GetDialogChoice ) {        RunSoundCode3( 53248, 108, 0, -128, 125 ) // Play Sound        AddItem( 300, 1 ) // Add the Red Stone key item        SetTextVariable( 0, 300 ) // "Red Stone"        if ( 1 ) {            WindowSync( 7, 0, 58 ) // "  Received [Item]!  "        } else {            WindowSync( 7, 0, 59 ) // Unused - "  Received [Item] Card!  "        }        set VARL_GenBool_2864 = 1    }    WaitAnimation(  )    return
So you see, by changing the ID "300" to something else, you can change the item given at these statues. It also shows how items are given to the player so you can do something similar later on on disk 3.

The function for placing the stones is a bit more complicated (in particular, it uses a variable "VARL_GenUInt8_358" with bitwise operations to keep track of which stones are already placed). It could be done to add another stone requirement (like a custom made "White Stone" or whatever) that would only be picked up in disk 3, but indeed the easiest is to change the reward in one of the pickup spot above + add the missing stone later on in disk 3.

In order to give the missing stone later on, check how to change a chest content that I wrote a long time ago. Most of the time, you'll want to search for the "Chest" functions in field scripts or possibly the "Zidane_XX" functions when the items are placed on the floor and not inside a chest.
It is also possible to add a whole new chest, so you don't replace any other treasure. For that, you mostly need to:
1) Create a new entry in the "Edit Entries" window, of type "Object" (because it will be linked to a chest 3D object).
2) Add functions for that new entry, at least a "Init" (a function of type 0) and a "Range" (a function of type 2). Adding functions is done by right-clicking on the list of functions in the script window. These two functions should be like the functions for existing chests. The "Init" function for instance could look like that:
Code: [Select]
Code:
Function ChestA_Init    SetModel( 75, 0 ) // The model of "ChestA"    CreateObject( [COORDINATES: Chest position on the field] )    TurnInstant( [ANGLE: Chest facing angle on the field] )    SetObjectLogicalSize( 1, 40, 45 )    SetStandAnimation( 7340 ) // Dummy Close    SetWalkAnimation( 7340 ) // Dummy Close    SetRunAnimation( 7340 ) // Dummy Close    SetObjectFlags( 5 )    SetHeadFocusMask( 2, 0 )    if ( [CONDITION: Chest content already picked up] ) {        SetStandAnimation( 7338 ) // Dummy Open    } else {        SetStandAnimation( 7339 ) // Dummy Close    }    SetObjectFlags( 49 )    EnableHeadFocus( 0 )    return
3) Add a line "InitObject" next to the others in the function "Main_Init" to actually create the chest object when entering the field.


Sorry for the late answers.
 
I ran into some issues with the Moguri mod and would like to double-check some things.

As far as I understand, Alternate Fantasy should be compatible with Moguri.
Hades Workshop is compatible with memoria, but not with Moguri.
Ive got a copy of the unmodded assembly-csharp.dll. If I now rename it to assembly-csharp.bak and copy that into ff9_Data/managed, Hades should work again. Will this disable features from Moguri?
Also, there is something mentioned about it being recommended to run Hades Workshop with Memoria installed. Will any of those functionalities be impacted?
 
No, that's not it.

1) The Moguri Mod includes the Memoria mod. When you install Moguri, it automatically installs an (old) version of Memoria.
2) When installing the Memoria mod, either with Moguri or with the Memoria Patcher, it creates the Assembly-CSharp.bak if it doesn't exist already. So whatever you do, you should have a correct .bak if you don't delete or replace it.
3) Hades Workshop works the same whichever version of Memoria you use. But it has more functionalities (especially the ones from the last version of HW) when you have Memoria installed compared to when you have the PC version without Memoria.

If you try to make the .bak manually yourself, you should use an unmodded DLL for it. In any case, if HW works and tells you that it uses a .bak when opening the game, that means you have a correct .bak (it wouldn't work if you make a .bak using a modded DLL as a basis).

I hope that clears things up. Mod inter-compatibilities are not always very simple ^^'
 
When I install moguri(and update memoria after, as per instruction), I get the error message with Hades.

Soo, in short.. install ff9->install latest version of memoria->copy the csharp.bak.>install moguri->update memoria->copy the .bak into the proper folder. That correct? And to ask again, will the functionality of moguri be impacted by that or not?

Yeah, compatibility can be a bitch sometimes x.x
 
Ah, I see. Doing it in this order works. I followed memorias install instruction for moguri(install moguri, then update memoria), but that seems to not work out as cleanly.
Everything seems to work just fine now, thanks a lot.
 
Status
Not open for further replies.
Back
Top