[PSX/PC] KERNEL.BIN editor - WallMarket (v1.4.5)

  • Thread starter Thread starter nfitc1
  • Start date Start date
Status
Not open for further replies.
Every .MNU file are in the FF7.EXE but, as far as I know, there isn't good compiler/decompiler to extract FF7.EXE data. If you find so, tell me :)

EDIT : I have a request for the next release (if there is so) : The possibility of editing limit breaks data. Some can be edited, but not all. It would be good IMO.
 
Last edited:
I know double-posting isn't generally allowed, but I have a request for the next release (if there is so) : The possibility of editing limit breaks data. Some can be edited, but not all. It would be good IMO.
You know, not many people are active everyday so regardless, they'll see your posts. Just edit them.

Secondly, I doubt NFITC1 will update his program, unless there are some bugs that need ironing or someone figures out what the many "unknown" values control. All should be editable, but they're not all in the KERNEL.BIN they're in the ff7.exe (for the PC version)
 
I know double-posting isn't generally allowed, but I have a request for the next release (if there is so) : The possibility of editing limit breaks data. Some can be edited, but not all. It would be good IMO.
You know, not many people are active everyday so regardless, they'll see your posts. Just edit them.

Secondly, I doubt NFITC1 will update his program, unless there are some bugs that need ironing or someone figures out what the many "unknown" values control. All should be editable, but they're not all in the KERNEL.BIN they're in the ff7.exe (for the PC version)
Limit data isn't held in the KERNEL. Use my application, Libre, to modify their stats in the LIMITMENU.MNU.
 
...I doubt NFITC1 will update his program, unless there are some bugs that need ironing or someone figures out what the many "unknown" values control....
While not entirely true, I am not accepting new feature requests. There are still more things I'm going to do with WM, but they'll be cosmetic rather than functional.
 
I renamed that WallMarketdat file, but text corruptions still happen.  Also still happening is the Limit Breaks having } before them.  This was a clean Kernel file original, and I saved 1 change (I changed D.blow to D-Blow).
 
I renamed that WallMarketdat file, but text corruptions still happen.  Also still happening is the Limit Breaks having } before them.  This was a clean Kernel file original, and I saved 1 change (I changed D.blow to D-Blow).
On further inspection that file will soon be out anyway. It is the cause of a lot of problems. I've had some promising results from WallMarket.xml recently. Allows for WAY more customization and even partial language support! You will now be able to fill in those missing functions yourself without having to wait for me to hard-code that result in the program.
Take the Attack Effects drop-down. Right now 0Ah-0Dh are blank. They may not have any effect, but assume that they did and you made an attack with one and found out what it does. Hooray! :D Right now, you'd have to tell me what that was so I could insert that information into Wall Market so it wouldn't be a "??" anymore. With the WallMarket.xml you can just add the line yourself and tell EVERYONE to add that line too! I'd like to be able to make this an online thing where you could check for the latest xml file and all that, but it'll probably just be a separate download from my Filefront/Mediafire pages. Battle Address info could be handled much the same way. Much nicer than some clunky old flat file.
And the character thing is going away soon too. I'm going to allow the user to play directly with the strings like Loveless does. Even be able to import their own font faces so it could even (in theory) edit the Japanese texts.

- I think this is just a graphical incongruity, but the drawn down menus in like the "limit break" under the
  "Initial Data" tab and "Character Growth" sub-tab has a fixed narrowness (they're not stretched like other
  tabs) that disables the view of full names, but this 'glitch' may not be restricted to only that one.
I fixed this in the best way I could figure out. Every drop down window ought to be able to show all text in it including the limit attacks. For some reason, the method I'm using to resize them (dynamically and programmatically so you, the user, don't have to do anything different) cuts it a few pixels short and some characters from the longer texts like "{BOX:RED}Doom of the Living" gets cut off a bit.
 
Even better, you could add validation, so that circulated Wallmarket.XML files can't crash users' machines. Writing an XML parser / validator might be handy for future projects.

I'm a big fan of your idea to push interface strings into an XML file. I don't know if VB.NET is very good at that sort of thing (I think it prefers to work with resx or something?), but it'd be a cool feature. You mentioned that you were developing WM / PC to gain work-related experience, and learning to create translatable interfaces would be a great boon.

If you ever have to work with a tech. comms department on an interface, being able to give them a transportable, easy-to-open file would be a huge advantage. And if you can find a way to store these interface strings in XML, you've won gold - tech. comms folk use XML for just about everything.

Sounds really promising.
 
Last edited:
Even better, you could add validation, so that circulated Wallmarket.XML files can't crash users' machines. Writing an XML parser / validator might be handy for future projects.
ATM, the only "validation" is if it doesn't work, report it and end. ;) Yes, I'm going to make it revert to a set of defaults if it doesn't work. Nice thing about it the way it is currently set up, I can choose to include only a few entries. Say I don't have anything in the <Effects> tag. I can leave it blank and the defaults will come up. If I figured out what 0Ah does I can add:
<Effect index="10">Nifty little effect</Effect> and that will appear along with the "default" effect descriptions that are built into WM already.
Pretty much everything that's in a drop-down that isn't an item or materia list can be altered. That includes Command Cursor descriptions to Status Effect Names to Stats.
I kinda jumped the gun describing it, but I want to make it more non-English-user-friendly and I thought I'd let people know.

I'm a big fan of your idea to push interface strings into an XML file. I don't know if VB.NET is very good at that sort of thing (I think it prefers to work with resx or something?), but it'd be a cool feature. You mentioned that you were developing WM / PC to gain work-related experience, and learning to create translatable interfaces would be a great boon.
VB.NET isn't great at it. I had to track it carefully at first to see when I needed to force a .Read() and when I didn't need to. I thought it would load an entire node at once, but the reader that I'm using doesn't work that way. Oh well. When you see the file the format will be evident.

If you ever have to work with a tech. comms department on an interface, being able to give them a transportable, easy-to-open file would be a huge advantage. And if you can find a way to store these interface strings in XML, you've won gold - tech. comms folk use XML for just about everything.

Sounds really promising.
XML is a little less reliable for interface strings IMO. You have to load them in separately and I've already run into formatting issues. A language pack (which may or may not be an XML) would be the better way to go since you can link all the items to an entry in that database. I suppose it's up to the platform on which format to store those languages in.
 
I could have sworn this was fixed a year or two ago, but I find that in the latest version of WallMarket I cannot set the upper bounds of HP growth above 9999.
 
I could have sworn this was fixed a year or two ago, but I find that in the latest version of WallMarket I cannot set the upper bounds of HP growth above 9999.
You can't set it permanently, if that's what you're wondering. It's for display purposes only. If that's what you're talking about, yes, I noticed it wasn't working as planned. It'll be fixed in the next version, with which you'll just have to be patient. There's too many IRL events happening to me right now for me to focus on this like I used to.
 
While I think about it, there is a little annoyance involving the Materia section. I think it has been mentionned earlier, but I thought I'd bring this up again.

Let's imagine you want to reduce the number of spells available in a certain materia. I'll take Destruct as an example. Currently, the materia has 3 spells : DeBarrier, Despell and Death. Let's try and reduce that to just Debarrier and Despell.

It involves deleting the '24' in 'Materia Type Modifier 3', and the level 4 Total AP amount ('450'). Problem is, you can delete 24, but 450 won't go away by just deleting the number. Sure you can do that, but as soon as you select another materia and go back to Destruct, you'll notice the 450 is back. Same thing if you save and reload the kernel. So, in our example, the only way (aside from using a hex editor, of course) to remove Death, is to put the amount of AP needed to learn the previous magic (in this example, Despell) in place of our 450. In game, the materia will still have the same number of levels, but the final two stars will be obtained at the same time.

Slight annoyance, but if an amount of AP could be blanked out, it would look better in-game and clear some player-confusion ("huh ? The materia has only two magics but it has four stars ?!").
 
Last edited:
While I think about it, there is a little annoyance involving the Materia section. I think it has been mentionned earlier, but I thought I'd bring this up again.

Let's imagine you want to reduce the number of spells available in a certain materia. I'll take Destruct as an example. Currently, the materia has 3 spells : DeBarrier, Despell and Death. Let's try and reduce that to just Debarrier and Despell.

It involves deleting the '24' in 'Materia Type Modifier 3', and the level 4 Total AP amount ('450'). Problem is, you can delete 24, but 450 won't go away by just deleting the number. Sure you can do that, but as soon as you select another materia and go back to Destruct, you'll notice the 450 is back. Same thing if you save and reload the kernel. So, in our example, the only way (aside from using a hex editor, of course) to remove Death, is to put the amount of AP needed to learn the previous magic (in this example, Despell) in place of our 450. In game, the materia will still have the same number of levels, but the final two stars will be obtained at the same time.

Slight annoyance, but if an amount of AP could be blanked out, it would look better in-game and clear some player-confusion ("huh ? The materia has only two magics but it has four stars ?!").
Two things:
1. The materia AP isn't saving correctly if you want to remove a level. That's going to be fixed in the next version.

2. I'm not going to make it Blank out levels if there's no spell involved. Look at Elemental. You get 40000 AP on it and it says "now you can absorb! want another? Master me with another 40000!" Effects are independent on the level for that. There's no reason for it to have two levels that do nothing, but there's nothing saying that it can't.
 
Two things:
1. The materia AP isn't saving correctly if you want to remove a level. That's going to be fixed in the next version.
That's what I meant with my *long* post and that's great to hear !  :D

2. I'm not going to make it Blank out levels if there's no spell involved. Look at Elemental. You get 40000 AP on it and it says "now you can absorb! want another? Master me with another 40000!" Effects are independent on the level for that. There's no reason for it to have two levels that do nothing, but there's nothing saying that it can't.
I don't understand what you're saying. In your elemental example, if I wanted to get rid of its absorbing capabilities, I'd still need to blank out the final level. Its materia Type Modifiers would go from 94-0-1-2 to 94-0-1 (final level = nullify element), and the last AP amount should still be blanked out.

Anyways, I don't care much if you can only allow the user to blank out AP amounts for green materias, but I don't understand the reason behind it since they basically work the same way. Instead of going DeBarrier -> Despell -> Death, Elemental goes : Halve element -> Nullify element -> Absorb element. Just like Destruct, if you want Elemental to only have one of those, you'll definitely want to blank out the extra AP amounts related to the unused levels.
 
Last edited:
I wasn't understanding what you were saying. Now I get it. For now you can blank out a materia's AP requirements making it 65535. That will eliminate levels. You could also set the appropriate bytes using the "Raw Data" panel to FF FF.

You also don't need to have the same number of levels as you do magics. Ultima and Shield are examples of that. You could also add levels to the end to say "Want to master this? Get more AP!" Then you can have four levels to a materia with three spells or even five levels to a materia with one spell, but that's more of an annoyance factor than anything else.
 
I wasn't understanding what you were saying. Now I get it. For now you can blank out a materia's AP requirements making it 65535. That will eliminate levels. You could also set the appropriate bytes using the "Raw Data" panel to FF FF.
Oh, F**** !!... ...Of coarse !... ...Inputing 65535 in the box is the same as FFFF, so it deletes it :D
Me and my habit of using the backspace key on my keyboard -_-
Okay, my problem is fixed, I just didn't know how to remove an AP amount ^^

Still, I have no idea how to access this Raw data panel. Bah, it doesn't really matter anyway ^^

You also don't need to have the same number of levels as you do magics. Ultima and Shield are examples of that. You could also add levels to the end to say "Want to master this? Get more AP!" Then you can have four levels to a materia with three spells or even five levels to a materia with one spell, but that's more of an annoyance factor than anything else.
Yeah, my problem was just about removing materia levels. Can't believe I didn't think of inserting the max value  :-[ Sorry about that and thank you for your time  :)

EDIT:

Never mind about the raw data panel. I forgot that you access it when you double-click a materia name.
 
Last edited:
I was just wondering about the kernel.bin pieces.  I read the first several pages, and searched for a bit, but I couldn't find out how the pieces are seperated.  Are they individual tabs inside WallMarket?  I am wondering because my freakin Cait Sith is broken and was wondering if I can transplant kernel.bin pieces from an unaltered kernel.bin into my Revisited kernel.bin - specifically Character Data, Character Growth, and Character AI under the Initial Data tab.
 
I think ArmorVil is *the* person to ask because he worked a lot with the pieces in the past and so know these things. You can PMing me these if you want, I'll take a look at that (either the whole kernel or the pieces)
 
Status
Not open for further replies.
Back
Top