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

  • Thread starter Thread starter nfitc1
  • Start date Start date
Status
Not open for further replies.
There is an editor for chocobo names in Teioh?  I believe you're thinking of Jenova save game editor.
 
That doesn't edit the inbuilt names during the chocobo races.  The translation project may require the use of soemthing that can edit the names of the racers.  Certainly Teioh.
 
Last edited:
hey... not quite sure when you will be back on here (due to the current stuff you are implementing), but a friend of mine noticed an issue with WM... it seems that when you modify the upper bounds for HP past 9999, the cap either does not save, or is not displayed if it is over 9999, even if it was saved correctly. MP correctly changes, i tested it at 2000 and the graph and the stats correctly changes (didn't test saving it though), but even making the limit for HP over 9999 before saving shows no change, even at 30000.
 
hey... not quite sure when you will be back on here (due to the current stuff you are implementing), but a friend of mine noticed an issue with WM... it seems that when you modify the upper bounds for HP past 9999, the cap either does not save, or is not displayed if it is over 9999, even if it was saved correctly. MP correctly changes, i tested it at 2000 and the graph and the stats correctly changes (didn't test saving it though), but even making the limit for HP over 9999 before saving shows no change, even at 30000.
I fixed this now. Text changes should also work when saving. This might be the last thing I do here for the rest of the month. I'm pretty busy with moving.

Also, check out the blog on the first post now. It's been there for a while and I'm not sure anyone has looked at it. I forgot my password (again) so I can't get in at the moment.
 
nah, i have been following your blog... i am your one and only follower :3.

however, i cannot seem to be able to comment there for whatever reason... so i have had to do so here  :|. glad to see that new versions are finally out though :D
 
EDIT: Looking for info on attack animation indexes? Get the full table of offsets for PC and PSX versions here: https://www.ff7catalog.com/posts/99155/

I'm not sure if this has been noted before, but I thought I'd share nonetheless.

I've been trying to make my own spells on the PSX version of FF7, but I've not had much success with animation IDs. For instance, using the anim. ID AA gives me a water effect rather than Aero 3.

After a little experimentation, it seems - and don't take this as gospel - that when using enemy attack animations on the PSX, you might need to modify the base index by 60h rather than 4Eh. BC gives me Aero 3. Yay! That would explain the prior difficulties: I'd been getting waterball rather than Aero3. (AA-60h = 4A = 74 in dec, which is the waterball ID)

I noticed that putting in E9 gave me Bizarro Energy. A quick look at the AttackAnims document suggests...

148   Bizzarro Enegy
148 = 94h
Add 60h to that... gives us F4  :?
This would suggest that some attacks demand a difference of 55h.

Well, let's try F4 then.

bizn.png


: /

However, according to the "60h rule", if I want to use

81   Sewer         
82   Hot Springs         
83   Magma   
I need to input -

81d = 51h, 51h + 60h = b1
82d = 52h, 52h + 60h = b2
83d = 53h, 53h + 60h = b3

And what do you know? They work just fine.

Interesting. Any explanations? I'm going to keep trying with 60h, and failing that 60h plus or minus multiples of 5. I'll tell you if I find anything of note.

BTW: This is the case on both a PAL and an NTSC version of the game. They are being run on ePSXe, and being patched via CDmage.
 
Last edited:
It would be good to have separate animation lists for both PC and PSX versions.  :roll:
 
Thanks for pointing this out. It's interesting news!

Kudistos Megistos has been working with the PSX version (I think) and he says that my animation document is correct. It's possible that he has a different version than the one you're playing on. Check on this a little more (find out how much each category is increased by) and I'll add it to my "document".
 
I'll keep you updated on any findings.

The AttackAnims document itself seems to be correct, and the attack Anim no.s attached to the enemies in PROUD CLOD confirm it. It's just the +4E for enemy spells thing that seems to be in question. It's interesting, though, if Kudistos hasn't found this whilst working on the NTSC-U PSX version. Puzzling...
 
I've done a little modding on the (PAL! :-D) PSX version of the game, but I've never tried making any new spells, which would explain why I haven't found anything like that :-P

I'll try to remember to have a look at this later tonight. I suppose it's possible that there might be different attack indexes for the PSX version, but I can't think of any reason why; the scene.bin and kernel.bin are the same for both the PC and the PSX, n'est-ce pas? :|
 
Presumably the variable that alters Anim ID on the basis of Attack ID differs? That wouldn't be located in the KERNEL.BIN. I don't know where it sits in the PSOne version.
 
Last edited:
I've got moar info, now on enemy skills.

Playing around with custom E.Skills, I found that, as you might expect, the 'add 36' rule that applies otherwise doesn't work. Dayum. What to do? Mash the keyboard, of course, until I found an animation that not only worked, but that I could recognize.

I found that 6C looks like grand spark, and that 73 is sewer tsunami. Knowing this, I tried the entire section of attacks that covered. Here's what I found

66   Grand Spark   - 6c works         
67   Bomb Blast      - 6d works
68   Northern Cross   - invisible? No animation appears, but attack produces its effects
69   Dragon Cannon   - crashes game      
70   Rolling Fire      - 70h works
71   Twin Burner   - 71h works   
72   Sewer Tsunami   - 72h crashes game   
73   Sewer Tsunami   - 73h works like a charm
From this, I worked out that the number to add to enemy exclusive attacks when dealing with Enemy Skills is 2A.

Let me give an example to those who have been reading, but haven't quite followed my (fairly telegraphic) prose: If I want an enemy skill that looks like Dyne's S-Mine, relative animation index 58, or 3A in hex, I need to add 2A in hex to find the animation ID I need to enter into Wallmarket. That turns out to be 64. And what do you know? Setting the Anim. ID as 64, sure enough, makes the Enemy Skill look like S-Mine.
 
Last edited:
I've done a little modding on the (PAL! :-D) PSX version of the game, but I've never tried making any new spells, which would explain why I haven't found anything like that :-P

I'll try to remember to have a look at this later tonight. I suppose it's possible that there might be different attack indexes for the PSX version, but I can't think of any reason why; the scene.bin and kernel.bin are the same for both the PC and the PSX, n'est-ce pas? :|
Since it's all based on a "relative increase" then this is not unlikely if the absolute indexes are different between the PSX version Bosola is experimenting on and the PC version. Since the increase is larger in the PSX version, they either have more animations than the PC version, or wanted to start on a "friendlier number". In binary, 60h is 1100000 where 4Eh is 1001110. Maybe this is significant since none of the player magics go above 40h.

I've got moar info, now on enemy skills.

Playing around with custom E.Skills, I found that, as you might expect, the 'add 36' rule that applies otherwise doesn't work. Dayum. What to do? Mash the keyboard, of course, until I found an animation that not only worked, but that I could recognize.

I found that 6C looks like grand spark, and that 73 is sewer tsunami.

...

From this, I worked out that the number to add when dealing with Enemy Skills is 2A.

Let me give an example to those who have been reading, but haven't quite followed my (fairly telegraphic) prose: If I want an enemy skill that looks like Dyne's S-Mine, relative animation index 58, or 3A in hex, I need to add 2A in hex to find the animation ID I need to enter into Wallmarket. That turns out to be 64. And what do you know? Setting the Anim. ID as 64, sure enough, makes the Enemy Skill look like S-Mine.
...

    * For E.Skill attacks, increase by 2Ah (in hex)
    * For Enemy-exclusive attacks, increase by 60h (in hex)
Your logic is flawed here. E.Skill increase CANNOT be any less than 35h (which is Shield's animation).
HOWEVER, what you DID find was that E.Skill's relative offset is 2Ah LESS than 60h since you have to increase the E.Skill's relative index by that much to get enemy attacks. That would make the E.Skill offset be:

60h - 2Ah = 36h
-AND-
60h (Enemy Att offset) + 3Ah (S-Mine relative offset) = 9Ah (S-Mine absolute index)
XXh (E.Skill Att offset) + 64h (E.Skill relative offset) = 9Ah (E.Skill absolute index)
XX = 36h

which is what it is for the PC version.

That leaves absolute animations 4Eh-5Fh unidentified for the PSX version. That's 18 animations. There are 16 summons. Perhaps this is where they come in the PSX animation order. Which leaves two unaccounted for!! O_O Someone make some E.Skills with indexes between 18h - 29h and make videos of the results RIGHT NOW!!! :D
 
You're right. My maths is in a spin. These numbers have me overwhelmed! I'll try those Anim indexes, though from what I've seen, I'm guessing they won't work.
 
Last edited:
My god! They seem to work! Setting an E.Skill to Anim 18 produces a Choco-Mog animation, albeit sans. the Chocobo model. 19 yields a Shiva-less Shiva. ePSXe crashes on 28 and 29, though 29 turns the screen turn slowly dark before the emulator apparently freezes. KOTR works absolutely fine, and still has the Knight models, unlike the other summons seem to.
 
Last edited:
My god! They seem to work! Setting an E.Skill to Anim 18 produces a Choco-Mog animation, albeit sans. the Chocobo model. 19 yields a Shiva-less Shiva. ePSXe crashes on 28 and 29, though 29 turns the screen turn slowly dark before the emulator apparently freezes. KOTR works absolutely fine, and still has the Knight models, unlike the other summons seem to.
Very interesting. Now we know what the absolute PSX indexes are for the summons. Thanks!

Still, why would Choco/Mog NOT have the chocobo? Hmmm.......
 
Did a few spells and enemy skills for the PSOne version, obtaining the animations as described. YouTube video is here:
 
So I update to 1.3.1, boot up the kernel I've been working on and get this.

Code: [Select]
Code:
************** Exception Text **************System.InvalidCastException: Conversion from string ": 86" to type 'Short' is not valid. ---> System.FormatException: Input string was not in a correct format.   at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)   at Microsoft.VisualBasic.CompilerServices.Conversions.ToShort(String Value)   --- End of inner exception stack trace ---   at Microsoft.VisualBasic.CompilerServices.Conversions.ToShort(String Value)   at WallMarket.Form1.Load_Growth()   at WallMarket.Form1.Open_KERNEL(Char kernel)   at WallMarket.Form1.OpenKERNELBINToolStripMenuItem_Click(Object sender, EventArgs e)   at WallMarket.Form1.Form1_Load(Object sender, EventArgs e)   at System.EventHandler.Invoke(Object sender, EventArgs e)   at System.Windows.Forms.Form.OnLoad(EventArgs e)   at System.Windows.Forms.Form.OnCreateControl()   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)   at System.Windows.Forms.Control.CreateControl()   at System.Windows.Forms.Control.WmShowWindow(Message& m)   at System.Windows.Forms.Control.WndProc(Message& m)   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)   at System.Windows.Forms.ContainerControl.WndProc(Message& m)   at System.Windows.Forms.Form.WmShowWindow(Message& m)   at System.Windows.Forms.Form.WndProc(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Okay, I can continue...except some parts just refuse to be shown at all. Like character growths.

Code: [Select]
Code:
************** Exception Text **************System.ArgumentOutOfRangeException: InvalidArgument=Value of '128' is not valid for 'SelectedIndex'.Parameter name: SelectedIndex   at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)   at WallMarket.Form1.CharGrowthList_SelectedIndexChanged(Object sender, EventArgs e)   at System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)   at System.Windows.Forms.ListBox.WmReflectCommand(Message& m)   at System.Windows.Forms.ListBox.WndProc(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
What's the deal? Booting up a fresh kernel works and allows itself to be edited without errors, but I don't want to resort to that for obvious reasons.
 
A String to short conversion in Load_Growth? That's odd.

That might lead the the second error you're getting. The Attack names aren't loading correctly. When Cloud's "Braver" tries to load it doesn't see that that combobox has that many entries. So I guess the first error occurred before that....

Nothing's coming to mind right now; I'll have to look at it. I don't have the code in front of me, but it seems like something screwed up your KERNEL. It's likely an easy fix.

UPDATE:
OK, I figured out what the issue is. I'm surprised that it hasn't come up until now. Your AI block within the KERNEL.BIN is too small. You deleted all the AI except Vincent's didn't you? Well, that caused a TINY glitch in WM (your KERNEL's fine, don't worry about it) when it tries to display the total size of all scripts. It's actually doing this incorrectly for some reason.

How to fix: First, make a back up of the KERNEL that crashes WM. Open it and press "Continue" like you have before. Without editing anything, select "Piece Management" and "Create KERNEL.BIN pieces" and close WM. This part is going to require using a Hex editor. There are plenty of free ones that will do this. At address 0x634 it should start:
Code: [Select]
Code:
FF FF 20 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
change that to:
Code: [Select]
Code:
FF FF 20 00 FF FF FF FF FF FF FF FF FF FF 50 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Then at 0x684 add this:
Code: [Select]
Code:
61 00 00 91 60 00 91 60 00 91 60 00 91 73
That's an innocuous script that won't harm anything put into a code block that doesn't fire (as far as anyone can tell). Now, re-open WM and tell it to load the pieces instead of the actual KERNEL. You shouldn't get the error after that. re-compile your KERNEL and don't delete any of the AI scripts. ;)
This will make WM think the total script size is over 100 bytes and it won't cause that error again. Just keep total script size into triple digits for now. I'll fix it later this week.
 
Last edited:
Status
Not open for further replies.
Back
Top