Jump to content

FE10: Radiant Dawn Hacking Notes


VincentASM
 Share

Recommended Posts

24 minutes ago, dioxide_carbonite said:

I got everything working on the first try somehow. Thanks for the help!
Now let's hope it can do what I wanted.
I'm guessing it's not supposed to give an error trying to open items, or has that not been added yet?

Nah, items should work fine without issues. Classes might've been fixed but that was giving me issues at first.

Link to comment
Share on other sites

  • Replies 614
  • Created
  • Last Reply

Top Posters In This Topic

21 hours ago, dioxide_carbonite said:

I got everything working on the first try somehow. Thanks for the help!
Now let's hope it can do what I wanted.
I'm guessing it's not supposed to give an error trying to open items, or has that not been added yet?

I'm able to open the items editor without any issues on the latest commit - what error are you getting?

Link to comment
Share on other sites

Now that we can add stuff to the forge we face yet another roadblock before we can really implement new forge items fully. Attempting to add anything but forge items that were already there initially causes the game to crash. Even cloning an item and adding the necessary weapon reference in FE10Battle causes the crash so I might have to revisit FE10Battle and see if anything I did in there is incorrect.

Link to comment
Share on other sites

  • 2 weeks later...
18 hours ago, thane98 said:

Not 100% done with Radiant Dawn support, but everything that's done is now in the latest release: https://github.com/thane98/paragon/releases/tag/Rewrite-Alpha-2

There's a script and dialogue editor, but they're very rough. I'd like to have something better in the next version.

Awesome stuff. Using this I did realize that the MNPID is located in epilogue.m so a reference to that could be added, though it'll probably add blank entries to epilogue.m if you do so since characters like Izuka and Dheginsea have MNPID's that don't exist anywhere.

Also, would it be possible to add item and weapon references to Dispos? I tried to do it but it throws key errors because Radiant Dawn uses /D after an item's IID to indicate if it is droppable or not. I'm not all that knowledgeable in writing modules so I don't know if there's a clever workaround for this or not. Same thing with affinities using invalid to indicate no affinity.

Link to comment
Share on other sites

4 hours ago, HeartlessSeph said:

Awesome stuff. Using this I did realize that the MNPID is located in epilogue.m so a reference to that could be added, though it'll probably add blank entries to epilogue.m if you do so since characters like Izuka and Dheginsea have MNPID's that don't exist anywhere.

Also, would it be possible to add item and weapon references to Dispos? I tried to do it but it throws key errors because Radiant Dawn uses /D after an item's IID to indicate if it is droppable or not. I'm not all that knowledgeable in writing modules so I don't know if there's a clever workaround for this or not. Same thing with affinities using invalid to indicate no affinity.

Both of these would require some code changes. The affinities one should be simple - there's already a way to set a default value for index-based references, but not strings. Just need to add a way to do that.

Items will be a little more complicated since there's more information in the value than the reference.

Edited by thane98
Link to comment
Share on other sites

Just now, thane98 said:

Both of these would require some code changes. The affinities one should be simple - there's already a way to set a default value for index-based references, but not strings. Just need to add a way to do that.

Items will be a little more complicated since there's more information in the value than just the reference.

Cool, for now I just did a regular reference for affinities, since invalid and putting just nothing there actually functions the same way in the game. For items, only thing I saw so far was /L and /D which are locking the item/weapon and making the item/weapon droppable. Skills also have some variables that they use but I haven't actually checked to see what they do yet.

Link to comment
Share on other sites

On 8/17/2021 at 9:44 PM, HeartlessSeph said:

Now that we can add stuff to the forge we face yet another roadblock before we can really implement new forge items fully. Attempting to add anything but forge items that were already there initially causes the game to crash. Even cloning an item and adding the necessary weapon reference in FE10Battle causes the crash so I might have to revisit FE10Battle and see if anything I did in there is incorrect.

the game can't find the forged weapon models, that's why. Check out DATA\files\xwp\forge. If there's not a proper .cmp file for the weapon in that folder, the game won't like that.

Link to comment
Share on other sites

  • 3 weeks later...

Wow looks like the tools sure are developing nicely in here, I spent awhile using the tools Seph designed which were extremely useful and farting around in the hex editor to make my own rebalance patch . Dunno how to make new threads on this place for the life of me. so I figured i'd just shove it into here. I think i'm most proud of was figuring out how to use the Runesword model.

https://www.youtube.com/watch?v=pWLGbYH54zg

Link to comment
Share on other sites

I'm kinda at a loss for FE10 Battle.cms repacking. I can extract it just fine and rebuilding it shows that all the pointers are intact but going in-game has all units in battle showing without textures. I haven't documented enough of FE10Battle's unit tex honestly and it could be that some stuff are being referenced by other indices but I'm kinda burnt out for now. If anyone wants to take a look at it, here's the 010 template and the Extract/Repack Scripts:

 

https://www.dropbox.com/s/ofnqmmfcbcm0z6z/FE10Battle.bt?dl=0

https://www.dropbox.com/s/vy1f1aob4hkqak8/FE10Battle_Creator.py?dl=0

https://www.dropbox.com/s/6005jcsateh6fdx/FE10Battle_Builder.py?dl=0

Link to comment
Share on other sites

4 hours ago, HeartlessSeph said:

I'm kinda at a loss for FE10 Battle.cms repacking. I can extract it just fine and rebuilding it shows that all the pointers are intact but going in-game has all units in battle showing without textures. I haven't documented enough of FE10Battle's unit tex honestly and it could be that some stuff are being referenced by other indices but I'm kinda burnt out for now. If anyone wants to take a look at it, here's the 010 template and the Extract/Repack Scripts:

Ive for sure been able to change for example: Trueblade Mia's model back into Swordmaster.

Edited by lightcosmo
Link to comment
Share on other sites

8 minutes ago, lightcosmo said:

Ive for sure been able to change for example: Trueblade Mia's model back into Swordmaster.

Using my FE10Battle tools? The ones I posted were broken and didn't rebuild FE10Battle properly. FE10Data can change the models of units so that's probably the one you're thinking of. I think I found the source of my woes though so mine should be fixed pretty soon.

EDIT: Yup, I got it fixed. Now to start writing a module for Thane's paragon build so editing it can be easy peasy.

Edited by HeartlessSeph
Link to comment
Share on other sites

On 8/31/2021 at 8:25 PM, LordMewtwo73 said:

the game can't find the forged weapon models, that's why. Check out DATA\files\xwp\forge. If there's not a proper .cmp file for the weapon in that folder, the game won't like that.

Okay, so this seems to be correct but there's something interesting about this. The forged model that's used in the base is not the one that shows in-game. To test this, I changed the Iron Lance's model to Amiti and the Iron Lance model still showed in the forge. But once I went in-game, the model changed from the Iron Lance to Amiti like you would expect. Maybe the forge names in xwp\forge is actually based on the IID's name rather than the name of the model itself in FE10Battle.

Link to comment
Share on other sites

7 minutes ago, Gagnetar said:

Oh cool, I wonder if that means it's possible to switch particles and stuff now. I take skill activations are still an uneditable variable lmao.

Skill activations are held in main.dol which unfortunately means reverse engineering the file parts of the file if you want to make any meaningful edits. I barely have any information on that yet besides naming like 2 functions because I'm trying to get as much as the regular files reversed before I head into naming functions. If we had symbols, it'd be a hell of a lot easier to do that type of stuff.

But it technically is editable and has been for a while. You can take a look at shadowofchaos' old video as an example: 

 

Link to comment
Share on other sites

2 hours ago, HeartlessSeph said:

Using my FE10Battle tools? The ones I posted were broken and didn't rebuild FE10Battle properly. FE10Data can change the models of units so that's probably the one you're thinking of. I think I found the source of my woes though so mine should be fixed pretty soon.

EDIT: Yup, I got it fixed. Now to start writing a module for Thane's paragon build so editing it can be easy peasy.

Ah no i used the old fashion method of changing the pointers in FE10battle.tpl

Edited by lightcosmo
Link to comment
Share on other sites

Since no one did it (to my knowledge) I made a cmp extractor/repacker. Didn't actually test if the repacking works honestly, it's kinda late. First, download this and extract lzss.exe from the 7z http://www.romhacking.net/utilities/826/

Then download this https://www.dropbox.com/s/5fo33oh7kofrw1j/Tellius-CMP-PAK.exe?dl=0 and place both of them into the same folder. Then all you have to do is drag and drop the cmp file that you want to extract. To repack, drag and drop a folder with the cmp files you want to repack (the structure should be the same as it is when extracted). Not much else to it. Hope it helps, especially for Path of Radiance hacking. Let me know if any issues pop up.

Link to comment
Share on other sites

On 8/31/2021 at 8:25 PM, LordMewtwo73 said:

the game can't find the forged weapon models, that's why. Check out DATA\files\xwp\forge. If there's not a proper .cmp file for the weapon in that folder, the game won't like that.

Success! You were absolutely correct, the forge weapon needs to have something present that matches the IID in xwp/forge to properly work. You can just extract another weapon (in this case, ironsword_b) and rename everything to windsword_b. Then repack and place it in forge. Go to the forge files and add IID_WINDSWORD to Item #5 (MIK_SW, MDV_HND) and go in-game. The model will look busted in the forge menu but once you go in-game it'll work perfectly. We functionally can create forges of any weapon now.

Link to comment
Share on other sites

4 hours ago, HeartlessSeph said:

Skill activations are held in main.dol which unfortunately means reverse engineering the file parts of the file if you want to make any meaningful edits. I barely have any information on that yet besides naming like 2 functions because I'm trying to get as much as the regular files reversed before I head into naming functions. If we had symbols, it'd be a hell of a lot easier to do that type of stuff.

But it technically is editable and has been for a while. You can take a look at shadowofchaos' old video as an example

oh wow I forgot about this video, are you saying he went into that file and managed to create these edits? I probably would have assumed they were gecko codes or ram codes. Also that makes sense. Guess I'll go find that thing and see if it's even remotely intelligible to me

Edited by Gagnetar
Link to comment
Share on other sites

6 hours ago, Gagnetar said:

oh wow I forgot about this video, are you saying he went into that file and managed to create these edits? I probably would have assumed they were gecko codes or ram codes. Also that makes sense. Guess I'll go find that thing and see if it's even remotely intelligible to me

I don't know whether he did them by editing RAM or main.dol but the same effect can be achieved with either method iirc. You can see posts of people modifying it back in 2013 and LordMewtwo has main edits to it as well. I personally use Ghidra to look through it and it's been serving me well so far.

I'll update my FE10Battle tools so the file can be freely edited then post a tutorial of some sort for adding new forge weapons without causing crashes to the game.

Link to comment
Share on other sites

3 hours ago, HeartlessSeph said:

I don't know whether he did them by editing RAM or main.dol but the same effect can be achieved with either method iirc. You can see posts of people modifying it back in 2013 and LordMewtwo has main edits to it as well. I personally use Ghidra to look through it and it's been serving me well so far.

I'll update my FE10Battle tools so the file can be freely edited then post a tutorial of some sort for adding new forge weapons without causing crashes to the game.

that'd be awesome! I'd love to fix Guard, Quickclaw, Maelstrom and Vantage aswell as add the Wind Edge to the forge for my rebalance mod.

Honestly I feel like it's incomplete without vantage working. I wonder if it'd be possible make renewal restore 30%

Thanks for your hardwork!

Edited by Gagnetar
Link to comment
Share on other sites

40 minutes ago, Gagnetar said:

that'd be awesome! I'd love to fix Guard, Quickclaw, Maelstrom and Vantage aswell as add the Wind Edge to the forge for my rebalance mod.

Honestly I feel like it's incomplete without vantage working. I wonder if it'd be possible make renewal restore 30%

Thanks for your hardwork!

Things like making renewal restore 30% would be on the simpler side most likely. There'd still be a lot of stuff to decipher but finding the 10% and changing it to 30% would be one of the easier parts.

What do you mean incomplete without Vantage working? Does it not work in-game?

Wind Edge not being in forge was a travesty. If they're going to have Hand axes and javelins be forgeable then Wind Edge should have been forgeable too.

Link to comment
Share on other sites

Not going to make this too long but I'll be detailing how to make a custom forge weapon. I'll be using the Wind Edge in this case. First, get the CMP extractor set up as detailed here: https://discord.com/channels/146435968746913792/181220193345732608/889376897715302470

After you do that, go to your Radiant Dawn root folder and get one of the models from xwp/forge to use as a base for your new forge weapon. It can be any one in there, but I'll be using the ironsword_b.cmp since that's somewhat close looking to Wind Edge. Copy that to the folder where you saved Tellius-CMP-PAK.exe. Then, drag and drop the cmp onto the exe to extract it. Once it's extracted, go into the extracted folder and rename everything in there after the IID of the weapon you are making it go over. In this case, I'll be naming them windsword_b. If you had added a new weapon, for example IID_RUNESWORD, you would instead name it runesword_b.

After renaming all of the files, repack the cmp by drag and dropping the extracted folder onto Tellius-CMP-PAK.exe. You'll see a new cmp file saved that's named after the extracted folder. Once again, rename it to the IID of the weapon you're using as the base. Once that's done, you can place the extracted CMP back into the xwp/forge folder. 

To actually use the new forge item in-game, download Thane's Paragon and open the Shop Data module. You'll see tabs at the top after opening the module, navigate to Forge Data and choose the Item that corresponds to the chapter whose forge data you want to edit. Then navigate to through the item list of that forge. You'll see Mik and Mkv to the right of each item. The Mik shows the weapon type (sword, lance, etc) and Mkv shows the category (thrown, iron, silver, etc.). I'll be navigating to Item #9 for C0108 since that's where I'm at to test this. Then, I'll go to Item #5 in that list which is MIK_SW and MDV_HND which is basically the thrown section for swords and add the IID into where it says IID (IID_WINDSWORD in my case).

After all of this is done, you can then go in-game and test out the result. You'll see that the colors will be massively screwed in the forge menu but it won't crash and once you go in-game everything will work as it should.

image.thumb.png.133bb7ed13d1c0ee18d42e6eb7983e9b.png

Link to comment
Share on other sites

11 hours ago, HeartlessSeph said:

Things like making renewal restore 30% would be on the simpler side most likely. There'd still be a lot of stuff to decipher but finding the 10% and changing it to 30% would be one of the easier parts.

What do you mean incomplete without Vantage working? Does it not work in-game?

Wind Edge not being in forge was a travesty. If they're going to have Hand axes and javelins be forgeable then Wind Edge should have been forgeable too.

It does technically work but if you can't count on something it's not a good stratedgy. Vantage is good in other games because it will work 100% of the time, allowing you to create cool counterattack builds. Just like how with Guard you can't rely upon it to protect a unit if you don't know it'll activate.

Link to comment
Share on other sites

Awesome to see more and more stuff become available. i'll have to update my tools soon. Currently haven't had the time, but I'll get to it soon.

As for activation percentages, you'll need assembly knowledge for that. It's stored in main.dol, correct, but some bytes have a specific meaning and change depending on the value. it's how LM73 found out and how we got negative growths working in the end.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...