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

  • Thread starter Thread starter nfitc1
  • Start date Start date
Status
Not open for further replies.
these tools are superb, are the opcodes etc. documented anyway? or is learn as you go?
 
these tools are superb, are the opcodes etc. documented anyway? or is learn as you go?
Are you asking how NFITC1 figured all of this out, or are you asking whether there's anywhere you can go to find some more help.

If it's the latter, there's the help file that comes with WallMarket, the .dat file that comes with it (open it in notepad and scroll down), and this page on the wiki.
 
there's the help file that comes with WallMarket, the .dat file that comes with it (open it in notepad and scroll down), and this page on the wiki.
All of which I wrote.  :wink:  . . . mostly from TFergusson's research.  :cry:
 
Okay.. i downloaded the power packs... i didn't see them at first xD..... and I'm using the latest version of Wall Market and now it seems to work perfectly ... Thank you :D

Thank you
Broken Crow
 
Last edited:
it would be very nice if you would add the ability for the user to edit the enemy attack id's

I thought it could.... Do you have the newest version?
what i meant was the area in the scene.bin for the specific enemy's attacks it is able to use, as well as the animation it uses for the attack. normally the MP enemy has only two attacks that it is able to use, machine gun (0110), and tonfa (0111), and even if the attack data in the scene allows for more attacks for every enemy in the scene, they still have to point to the attack in their specific part of the file (in the enemy data section), and give an actual animation for the ability, else the game locks up. i meant it would be nice if you could change each specific enemy's attack pointers and animation pointers through PC so that it didn't have to be done through hex editing. i have the PC 1.0 version, and it does not have this feature, it would require being able to choose a specific enemy in the group to see their animation/attack pointers, and each would need room for all 32 pointers (16 for attack pointer, each at 2 bytes, 16 for animation, each at one byte).

for example:
MP                                   Guard Hound                      [EMPTY]
atk 1 [xxxx]  ani 1 [xx]        atk 1 [xxxx]  ani 1 [xx]        atk 1 [xxxx]  ani 1 [xx]
atk 2 [xxxx]  ani 2 [xx]        atk 2 [xxxx]  ani 2 [xx]        atk 2 [xxxx]  ani 2 [xx]
...                                    ...                                     ...
atk 16 [xxxx]  ani 16 [xx]    atk 16 [xxxx]  ani 16 [xx]     atk 16 [xxxx]  ani 16 [xx]

the [xxxx] being the editable hex boxes. there is definately nothing similar to this that i saw in PC, so i am assuming you forgot about it, or that i am just blind as to where it could be  :evil:


what all is needed to make an enemy, such as the MP, use, say the fire spell?

First of all you'll have to add the fire attack data to the scene attack data. You might want to have a side-by-side comparison to WM for this. The attack doesn't even have to be 100% the same as the "Fire" attack in the KERNEL.BIN, but if you want to have that spell exactly you'll probably want to copy it.
Second, you'll have to add a reference to it in the attacker's AI. Make sure they have enough MP to cast it or you'll get the "Not enough MP!!" warning. To do this you'll have to set the target and use 92 to perform the command. When it gets around to that spot in the AI it will then try to perform it.
what i meant here is that the enemy MP will not be able to use the fire spell normally (just by calling it in the ai) after setting it's attack/animation pointers to actually show the spell fire. the MP has only two attack animations (that i know of) written as 03 (machine gun attack) and 04 (tonfa attack), and nothing for any magical attacks (all versions (i think) of the MP, including palette swaps, have no animation for casting magic). if i give it any animation id (from the few i tried) past 04, it just sits there as if i didn't even set them to use the ability, and i believe that the earlier animations are for idle and hurt animations. however, if i set it to 03/04, it will use that normal attack animation, with no name, and do the fire spell's damage (though with no fire animation). what i was asking was how to make it so that they actually cast the fire spell on the enemy instead of doing a normal attack animation. would i need to actually create an animation for them in the battle.lgp file (which i have no clue how to do... kimera has issues reading them) allowing for spell casting?

the kernel is only loaded at the start of a new game

This is incorrect. The kernel is loaded when you load the game and is never re-loaded while you're actually playing. Saving, modding, and re-loading will reflect any changes you wish to make in the KERNEL.BIN.
i think i was thinking of using savestates in the psx version... my bad :-P
 
it would be very nice if you would add the ability for the user to edit the enemy attack id's

I thought it could.... Do you have the newest version?
what i meant was [....] or that i am just blind as to where it could be  :evil:
I'm not blind...., but I did forget that those were important info pieces. My current goal is to make this do everything to the scene.bin that Hojo won't. I already nearly obsoleted Teioh with WM 1.0 so I don't want to quash any more of Squall's accomplishments.


what all is needed to make an enemy, such as the MP, use, say the fire spell?

First of all you'll have to add the fire attack data to the scene attack data. You might want to have a side-by-side comparison to WM for this. The attack doesn't even have to be 100% the same as the "Fire" attack in the KERNEL.BIN, but if you want to have that spell exactly you'll probably want to copy it.
Second, you'll have to add a reference to it in the attacker's AI. Make sure they have enough MP to cast it or you'll get the "Not enough MP!!" warning. To do this you'll have to set the target and use 92 to perform the command. When it gets around to that spot in the AI it will then try to perform it.
what i meant here is [....] allowing for spell casting?
You have to make new animations for them if you don't want to use what they already have. Unless you can discover new anims. If you want, say, the machine gun attack anim to perform Fire, just change the Anim that is performed to match that of the machine gun's.

the kernel is only loaded at the start of a new game

This is incorrect. The kernel is loaded when you load the game and is never re-loaded while you're actually playing. Saving, modding, and re-loading will reflect any changes you wish to make in the KERNEL.BIN.
i think i was thinking of using savestates in the psx version... my bad :-P
S'all good. :)

Okay.. i downloaded the power packs... i didn't see them at first xD..... and I'm using the latest version of Wall Market and now it seems to work perfectly ... Thank you :D

Thank you
Broken Crow
Good! Now I can help you if you have a problem. :D
 
I'm not blind...., but I did forget that those were important info pieces. My current goal is to make this do everything to the scene.bin that Hojo won't. I already nearly obsoleted Teioh with WM 1.0 so I don't want to quash any more of Squall's accomplishments.
i said that I was blind not you :-P

You have to make new animations for them if you don't want to use what they already have. Unless you can discover new anims. If you want, say, the machine gun attack anim to perform Fire, just change the Anim that is performed to match that of the machine gun's.
that is what i do not know how to do. i have no idea on how to make new animations for the enemy, or i'd be good to go.

now through the ai i have managed to make enemies cause status ailments to you when you attack them (at a random chance), give them auto statuses like protect/barrier, perform a damage taken check (as a general counter) to see how much damage they received from that attack, if any, and then automatically restore a %age of that damage (kinda like the ffta/2 damage absorb reaction ability) so that their actual life seems longer than it is, and if you are weak they last much longer, though if you are strong they still last more than their base hp (sans 1HKO) normally would, making your strength even more important. I'd like to make a reverse of that, where they heal less if you do lesser damage and heal more when you do more damage, so that the stronger you are, the more hp they gain, but i will likely just make enemies level as you do with similar stat growths as your characters, but that will be a long process to do and will take up much room in the ai unless i can compress it down some. even still that'd be a nice improvement in my opinion over set enemy strengths, and is another reason why I wanted to know about adding drops via ai, so that i could do this little trick. similar to ffviii enemy growing style, but making sure they stay challenging throughout.

tried to fix the MP's machine gun so that it actually dealt long range damage (does 1 hp when i am or it is in the back row, and 4 in the front) by temporarily setting their back row target's back row mod to 00 (front row) in the main, and setting it back to 01 in the post-attack script, though it still did 1 damage... i do not know how to make the enemy's direct attack do more damage (say... double) with direct multiplication (damage x 2 for instance) since there is seemingly no damage check that i can see, and i do not know if i can make the target suffer back attack damage in place of this (and to replace the non-working row change attempt).

i have plenty of ai room for the MP now, since i shrunk it's ridiculously high 861 byte ai down to a reasonable 67 byte ai doing essentially the same (kept the check for enemy row by targeting a random enemy and checking it's row and going form there), making it do more tonfa attacks on front row enemies and more gun shots on back row, removed specific row checks since it doesn't really need them (crappy move set anyway, so not really going to waste time adding that), as well as checking it's own row, though it is pretty easy to add that in (essentially -> if (self back row = 1) -> jump to back row enemy script (in which is the random mod for choosing the gun attack more commonly), and that would be all that is needed to change).

working on getting enemies to have auto-life, so that when they die they can come back to life one time (or more for some fights... make a minion always come back until the master is dead, then losing rezzing capability) or so, though it'd be pretty funny if phoenix could be summoned by the enemy :evil:. hopefully it goes as smoothly as everything else has been recently, since i am getting to know the ai programming pretty well.
 
Last edited:
ProudClod will be great if we can change battle dialogs without bugs ! :-P
 
I haven't tried battle dialogue yet, but i guess i can try it in my next little project, since a message would be nice to see anyway if an enemy is reviving itself.

edit: dialogue definitely works correctly, but my insta rezzing isn't... gonna move it from death counter to an hp checking post-attack script and see if that works. dunno the exact details about bringing someone to life, so im not too sure about it  :|
 
Last edited:
now through the ai i have managed to make enemies cause status ailments to you when you attack them (at a random chance)
That's an excellent idea; I'm going to try it  :wink:

perform a damage taken check (as a general counter) to see how much damage they received from that attack, if any, and then automatically restore a %age of that damage
This is a good idea as well; I think that I'll have them perform counter attacks after taking a certain amount of damage. Perhaps some enemies could have one attack that they only use after taking a lot of damage.

working on getting enemies to have auto-life, so that when they die they can come back to life one time (or more for some fights... make a minion always come back until the master is dead, then losing rezzing capability) or so, though it'd be pretty funny if phoenix could be summoned by the enemy evil. hopefully it goes as smoothly as everything else has been recently, since i am getting to know the ai programming pretty well.
Not sure exactly what you're planning here, but when reviving minions, wouldn't it be easier (and fairer, from the players POV) to have more enemies use life and life2 on each other?
 
Discussion of PrC (my new abbreviation of Proud Clod to prevent it from sharing one with PC) has been moved here. It's getting too cluttered in here for two program's to be discussed in the same thread. This should now only contain WallMarket-related questions/comments/bug reports.
 
i know it'd be better, and i do plan on giving enemies life, but i'd like some enemies have an auto-life status under certain circumstances... and i did it, but the enemy is invisible (death animation happened, and stayed that way XD). gonna see if it will be visible by setting it to be visible, else i will put it in the post attack ai (found out it was an error on my part... still learning :-P).

thanks... i didn't know that my ideas were this good. if it helps, that is great, since the more ideas that are out there, the better the hacks can become :evil:. if you want to see some of my code as an example tell me and i will put some up here for reference.

also, nfitc1, it'd be nice if there were a copy/paste feature available for the ai editing, since it isn't fun to have to re-type long pieces of code when moving it around >_>.
 
WallMarket's Attack tab -> Status Attack "Change: X / 63" value is a bit confusing
Percentual change is actually 4x value and 63 is just biggest allowed value.

For example
Death
11 / 63 [44% change inflicting Death]
Slow
25 / 63 [100% change inflicting slow]
Remove
63 / 63 [252% change killing enemies, hits allways since propability can't decrease under 100% even with Quadra Magic]

I'm not saying there's any bugs or problems in this program. I was only confused for a few minutes when I scrolled through some status inflicting changes and couldn't figure out how could 11/63 be 0.44
Then I remembered orginal HEX values 01-3F (h19 being 100%)

EDIT:
Question

Is it possible to change Additional Effects in any way?
Particularly
15 Raises base damage and defense by (100 - [])%([] not to exceed 200)
- Raises Att Mod, MAt Mod, Def Mod and MDf Mod by X
  (Hero Drink +30%)
1C Raises base damage and defense by (100 - [])%([] not to exceed 200)
- Def Mod and MDf Mod by X
  (Dragon Force +50%)

I'd like to remove Def Mod and MDf Mod completely because immortality isn't fun. Change them to Att Mod and MAt Mod because boosted damage is fun at times.
 
Last edited:
WallMarket's Attack tab -> Status Attack "Change: X / 63" value is a bit confusing
Percentual change is actually 4x value and 63 is just biggest allowed value.

For example
Death
11 / 63 [44% change inflicting Death]
Slow
25 / 63 [100% change inflicting slow]
Remove
63 / 63 [252% change killing enemies, hits allways since propability can't decrease under 100% even with Quadra Magic]

I'm not saying there's any bugs or problems in this program. I was only confused for a few minutes when I scrolled through some status inflicting changes and couldn't figure out how could 11/63 be 0.44
Then I remembered orginal HEX values 01-3F (h19 being 100%)
No...the chances just are out of 63. 11/63 ~ 17.5% chance. So 63/63 is 100%. It should all be in the helpfile, but it's been a while since I've looked at that.

EDIT:
Question

Is it possible to change Additional Effects in any way?
Particularly
15 Raises base damage and defense by (100 - [])%([] not to exceed 200)
- Raises Att Mod, MAt Mod, Def Mod and MDf Mod by X
  (Hero Drink +30%)
1C Raises base damage and defense by (100 - [])%([] not to exceed 200)
- Def Mod and MDf Mod by X
  (Dragon Force +50%)

I'd like to remove Def Mod and MDf Mod completely because immortality isn't fun. Change them to Att Mod and MAt Mod because boosted damage is fun at times.
Not by editing the KERNEL. You'll have to change the way it's handled in the game.
 
No...the chances just are out of 63. 11/63 ~ 17.5% chance. So 63/63 is 100%. It should all be in the helpfile, but it's been a while since I've looked at that.
I'm allmost 100% sure that values I posted earlier are correct
Death
11 / 63 [44% change inflicting Death]
Slow
25 / 63 [100% change inflicting slow]
Remove
63 / 63 [252% change killing enemies, hits allways since propability can't decrease under 100% even with Quadra Magic]

Remember that if you couldn't have change higher than 100% spells like Esuna and similar spells would fail quite often when used with All- or Quadra-Magic -materia
 
No...the chances just are out of 63. 11/63 ~ 17.5% chance. So 63/63 is 100%. It should all be in the helpfile, but it's been a while since I've looked at that.
I'm allmost 100% sure that values I posted earlier are correct
Death
11 / 63 [44% change inflicting Death]
Slow
25 / 63 [100% change inflicting slow]
Remove
63 / 63 [252% change killing enemies, hits allways since propability can't decrease under 100% even with Quadra Magic]

Remember that if you couldn't have change higher than 100% spells like Esuna and similar spells would fail quite often when used with All- or Quadra-Magic -materia
What I had here before was a little cheeky so I'll give you a better answer and if you read it before I'm sorry. If you didn't read it, don't worry about it. ;)

That Chance/63 is the chance to inflict the status. That is a chance out of 63 (this 11/63 ~ 17.5% chance to inflict IF THE ATTACK HITS using the mathematical 100% probability scale). The chance that the attack actually hitting the target is reflected in the Attack% and THAT is out of 255. I believe we had a misunderstanding before, but this is correct.
 
Last edited:
What I had here before was a little cheeky so I'll give you a better answer and if you read it before I'm sorry. If you didn't read it, don't worry about it. ;)

That Chance/63 is the chance to inflict the status. That is a chance out of 63 (this 11/63 ~ 17.5% chance to inflict IF THE ATTACK HITS using the mathematical 100% probability scale). The chance that the attack actually hitting the target is reflected in the Attack% and THAT is out of 255. I believe we had a misunderstanding before, but this is correct.
I didn't confuse status inflict change with attack%
What I meant that 25/63=100% inflict status before modifications and 63/63=Allways 100%
Example
Slow
Attack Status: Slow, Change 25/63
inflicts slow 100% of the time without mods
inflicts slow 67% of the time when used with all materia
Haste
Attack Status: Haste, Change 63/63
inflicts Haste 100% of the time without mods
inflicts Haste 100% of the time when used with all materia

I remember mostly the orginal hex values
00-19 (0%-100%)
19-3F (100%-inflict status allways(252%))
7F Toggle status
I don't remember all values since it's been about year a two since the last time played around with hex-editor.

But I'm 100% sure that Slow has 100% change inflicting status (25/25) and not ~40% (25/63)
 
Last edited:
warbaque is correct. I once added a status to an enemy's physical attack, and wanted it to trigger about half the time. So I put '30' in the accuracy field, but in game, the status would always work. It was when I put 12 or 13 in the accuracy field, that the status finally had ~50% chance to take effect.
 
What I had here before was a little cheeky so I'll give you a better answer and if you read it before I'm sorry. If you didn't read it, don't worry about it. ;)

That Chance/63 is the chance to inflict the status. That is a chance out of 63 (this 11/63 ~ 17.5% chance to inflict IF THE ATTACK HITS using the mathematical 100% probability scale). The chance that the attack actually hitting the target is reflected in the Attack% and THAT is out of 255. I believe we had a misunderstanding before, but this is correct.
I didn't confuse status inflict change with attack%
What I meant that 25/63=100% inflict status before modifications and 63/63=Allways 100%
Example
Slow
Attack Status: Slow, Change 25/63
inflicts slow 100% of the time without mods
inflicts slow 67% of the time when used with all materia
Haste
Attack Status: Haste, Change 63/63
inflicts Haste 100% of the time without mods
inflicts Haste 100% of the time when used with all materia

I remember mostly the orginal hex values
00-19 (0%-100%)
19-3F (100%-inflict status allways(252%))
7F Toggle status
I don't remember all values since it's been about year a two since the last time played around with hex-editor.

But I'm 100% sure that Slow has 100% change inflicting status (25/25) and not ~40% (25/63)
Huh. Now that I'm looking at Haste and Slow I'm seeing that there's a difference. Haste does always work on everyone and it's 63/63. So do you think that the "/63" label should read "* 4 (%)" or something? I was assuming it was out of 63 because Toad and Mini are 18 and they don't seem to work 72% of the time.
 
Huh. Now that I'm looking at Haste and Slow I'm seeing that there's a difference. Haste does always work on everyone and it's 63/63. So do you think that the "/63" label should read "* 4 (%)" or something? I was assuming it was out of 63 because Toad and Mini are 18 and they don't seem to work 72% of the time.
I think good label would be "/63 [automatically calculated % value next to it]" so you would know exact change% and it would also show the maximum allowed value. Not that there's a big difference what some label reads as long as I can edit value easily.

By the way. Do enemies use kernel.bin spell data or do they have have their own custom spells in scene.bin?
For example if I wanted to change Fire3 do ice-elemental damage would it be enough to change it only in kernel.bin or would I need to edit tens or hundreds Fire3 entrys in every enemys personal attack data?

If it is the latter, like it most likely is, is there any fast way/trick to copy-paste changes made into Fire3 to all attack datas?

And third and last question. You mentioned at some point about co-operating with Squal78, the creator of Hojo enemy editor. Did you get any reply? I wouldn't mind seeing an ultimate scene.bin editor.
 
Status
Not open for further replies.
Back
Top