Jump to content

1234567890num

Member
  • Posts

    41
  • Joined

  • Last visited

Recent Profile Visitors

866 profile views

1234567890num's Achievements

Newbie

Newbie (1/14)

  1. This looks amazing and might finally let us not deal with hex and pointers ^_^. I made a PR that clarifies some of the unknowns with what I discovered but hidden within the thread including FE10Data.cms' ChapterData. I hope mess files and script files can have modules written soon.
  2. Not sure if it's even possible to change how the game reads the data.
  3. You need to install those modules using pip.exe (and command prompt), which should be in the Scripts section of your Python directory. I don't think you can just download the releases from github to make it work. My script uses struct module, which should've been included automatically on Python. Just run it on Python and everything should be self-explanatory (hopefully).
  4. If you wanna do things manually, you'll need to know the format of ItemData entries (the one in the first post is outdated). 00 02 AA A0 Pointer -> IID_FLORETE - Item ID, determines what item it is. 00 02 E7 18 Pointer -> MIID_FLORETE - Name ID, determines what text is shown as the name. 00 02 CC E7 Pointer -> MH_I_FLORETE - Desc ID, determines the text shown in the description. 00 03 42 D0 Pointer -> sword - Determines weapon rank used. 00 03 42 D0 Pointer -> sword - Determines damage type. 00 03 16 08 Pointer -> N - Weapon rank required. 00 00 00 00 - Blank - EID used for magic. 00 02 9A B8 Pointer -> EID_FLORETE 00 00 00 00 - Blank - EID used for Laguz weapons. 00 - Unknown 10 - Item Icon. 00 C8 - Cost per use. 0E 5F 0F 05 2D 04 - Might, Accuracy, Critical, Weight, Uses, Weapon Exp. 01 02 01 - Min range, Max range. 01 - Unknown 00 00 00 04 - Unknown 03 - Amt of Attributes 00 - Amt of SFXC 00 - Gives Stat Boosts (Boolean) 00 03 43 1B Pointer -> valuable - Additional attributes (can be a few or none) 00 03 41 6E Pointer -> eqB 00 03 42 C8 Pointer -> stormsw [SFXC would go here if there's any] [Stat Boosts would go here if there's any] You need to add the amount of SFXC by 1 and add a pointer to the corresponding SFXC. However, the entire file after that will be offset by 4, so you'll have to change most pointers. I made a Python script to do that for you (Add Free Bytes Others.py). The offsetting problem will also happen when you try to add Worm into the forge and Dark Magic into the weapon store. You can also use the same script for that.
  5. - You need to add SFXC_BEAST, SFXC_DRAGON, and SFXC_FLY into those weapons. Honestly it's complicated and the info in the first post is VERY outdated, so you're better off using HeartlessSeph's tool to do this. - I made a post about shopdata here. Keep in mind that if you want Worm to ALWAYS be available, you'll have to add it into EVERY SINGLE FSHOP/WSHOP ENTRY. - No idea, but you can make them rejoin later (albeit you can't pick which party they go to anymore). - No idea. Something to do with FE8Data.bin but nobody ever delve into it much yet.
  6. My zmap scripts add 104 bytes (68 in hex), which is the data for each unit. It does not add any data regarding that new unit or the string/object list. So if you want to add them, you should do some repointing (or use my other script). In conclusion: use zmap scripts to free up some spaces for new units before using other script/manually adding new bytes for the new pid/iid. Yes, free bytes others is the better way to add things to shop. HeartlessSeph's tool does not require any extra pointing. It does rebuild stuff from scratch and may change the order of the data. No big deal for normal play, but if you want to make a patch it can bloat the patch size. Mounted unit's Mov penalty is in FE10Data. Particularly the ChapterData. However, last I checked it's not shown on the program, so check my post above for details.
  7. The ones still listed above are unknowns for now. As for the rest, all of them are editable on decompressed FE10Data. You can either use HxD or use Heartless Seph's tool here. Locking the skills should entail changing the number of SID and SFXC table entries in SkillData into 0, but I haven't test this.
  8. Turns out the problem was that the new file wasn't in the encoding that supports Japanese texts. I guess xlsxwriter takes care of that problem automatically. I found out a bit more about your FE10Data Editor. In your Biorhythm Data, compared to the data in the first post of this thread: the numbers in your Hidden Item% are actually the Skill Activation%, the numbers in your unk[4] are actually Hidden Item%, while the numbers in your Skill Activation% are actually unknown. Also, back in Chapter Data, I was half-correct; the 6th byte is the group's BEXP stash. I also found out that the 7th byte is the group's Convoy from 0-6 (0 is No Convoy, the rest follows the same order as the BEXP stash). The 8th byte is the mounted units' Mov addition (on indoor maps they're set to FE, which is -2); you can use this to add Mov, but the final Mov are all still capped at 20. I don't know how to change groups (as in actual units), but I'm pretty sure it's not in ChapterData or Scripts.
  9. Yeah, it works. I also figured out that the "SIDTables" are actually mandatory requirement to equipping the skills with the 00/01 being Must/Mustn't respectively (like mustn't have the skill already equipped, must a dragon, etc). "SFXCTables" are similar but they're optional; only one of them are needed to fulfill the requirement. Regarding your FE10Data editor, I do have some comments. First of all, for some reason some of the support type tables have a value of 65280-ish. In PersonData your unk1 is the starting Lv (although the game chooses the higher one within this and the corresponding zmap file) and the basemov doesn't work. In JobData your unk1 and unk3 are Armor weight and Mount weight respectively (which can also be negative). In ChapterData the Chapter#s determine the used BGM+Shop files, Mess file, and Script file respectively. Your Loss Conditions (Maniac) all have the number 1. There's also Win Condition 3 and Loss Condition 5 for each difficulty that isn't used (and you skipped as padding) since there's only 6 lines available and the texts will overlap if you put in too many. Finally, within your 8 bytes of "unknowns", the 1st byte is the Map ID (which brings you to the Debug Map if tampered) and the 6th byte is the group you're following in order from 0-5: Dawn Brigade, Crimean Knights, Greil Mercenaries, Laguz Alliance (Crimea + Greil), Everyone (Dawn + Crimea + Greil). How did you decode the Japanese texts in Python?
  10. What exactly did you do? I removed that and now nobody can equip it, not even Elincia. I couldn't figure out how to bypass the Ragnell & Ike check entirely, so I ended up just copying the part of the function after the check (where Ashera dies for real) into the part of the function where Ashera revives and nullifying the function's bytes that comes after that. Skips all the Ashera-killing fanfare, but it works well enough.
  11. Mucked around the zmap files a bit and I found out about the unit data. Taking from VincentASM's example on the first page (and based on Wooster's analysis on the fifth page), These units are divided into groups. The most common zmap groups are mikata (PC), teki (default enemies), zoen (reinforcements), midori (green units), and ki (yellow units). For mikata, all of these are unimportant except one: Starting and ending XY co-ordinates. Remember that the first byte in a group's definition (more details here) shows how many units are in that particular group. So, if you want to add deployment slots/enemies/yellow soldiers, here's what you have to do: Grab the appropriate zmap file Find the group definition and modify the first byte to reflect the number of units you want it to be Add 68 hex bytes for each unit within that group. You can put it anywhere in that group as long as it's not within the other unit's data. Repoint ALL the pointers in the Unit Data since you're moving all the strings in the object list. If you see above, there are at least 8 for each unit so...yeah. Repoint SOME of the pointers in the Pointer List and Group List. At least for this one you don't have to deal with pointers toward data before your new unit. Adding whatever data you want for the new unit. If you only want to add deployment slots, you can just copy paste another ally unit's data wholesale, changing only the XY coordinates. Making sure the new pointers are all properly documented on the Pointer List Making sure the headers are all correct As you can see, it's a lot of work. However, I made a script that can do step 2-5 for you, so the work isn't THAT much. The link also has a similar script that you can use for similar file types (mess, shopitem, decompress FE10data) but it's less automatic. PS: Tower deployment map is emap0407d, not bmap0407a. An unrelated note: @LordMewtwo73 Did you figure out how to make Mercy equippable to others?
  12. There's SID_IMMORTAL and SID_INVINCIBILITY. They're in her unit block in zmap407e. Seems like the former is the one tied with Ike/Ragnell and the latter is the one tied with the auras. I guess I could remove the SID_IMMORTAL to let anyone kill her (haven't tried it yet), but that still leaves the question about how to make both Ike and Micaiah be able to kill her. E: that didn't work Also, does anyone know how to guarantee Lehran's recruitment (remove his requirements)?
  13. @LordMewtwo73 How did you make Ashera killable without Ragnell? Would it be possible to make it so that either Ike or Micaiah can kill her? Or so that anyone can?
×
×
  • Create New...