[PSX/PC] Battle editor - Proud Clod (1.5.0/FINAL)

  • Thread starter Thread starter nfitc1
  • Start date Start date
Status
Not open for further replies.
This looks really good; it seems as if we can now edit almost everything in the scene.bin that's been discovered. When I get my computer fixed, I'll see if I can find out about some more of the unknown things in the file.
 
I'll look into getting another mirror. I've still got that mediafire account. Would that work?

UPDATE:
Freakin' wow! I can now move the camera position and center around in real-time and see what position looks good. Now I might really have to load models. :)
That's freakin amazing! I can't wait to play around with that if you ever release it!
 
guys if you need mirrors to provide download links message me, I can provide ftp access to webspace, and users wont need to fill in captcha forms etc. direct download links will work.
 
I'll look into getting another mirror. I've still got that mediafire account. Would that work?
Oh, thanks a bunch, NFITC1. Yes, Mediafire is just fine. Mediafire and Skydrive are my favorite. (I hope my ISP don't dive headlong into legal issues with any other service provider.)
guys if you need mirrors to provide download links message me, I can provide ftp access to webspace, and users wont need to fill in captcha forms etc. direct download links will work.
Thanks for your offer. At the moment, any mirror is just fine.
 
Whew! I finally got the formation editor window to act the way it should. It does a lot of neat things. The camera can move to about anywhere in any way and the enemies can be positioned and/or aligned to an axis, another enemy, or a player's character. Just need to do a few more bounds checking and it'll be released tomorrow. Didn't get the formation labeled or the multi-pass disassembling working. Take what you can get. ;)
I'll put it on Filefront and Mediafire so everyone can get it.

UPDATE: OK, new version's up now.
After all this work on it I'm forced to conclude that the PSX can't handle arrays of 3. This would explain the "fourth" enemy ID and "fourth" camera being NULL. It must have been an indexed array. This almost (but not quite) explains some of the NULLs in the KERNEL.BIN as well.
 
Last edited:
error when trying to insert a new value when the is none in the ai editing


System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.DataGridViewSelectedCellCollection.get_Item(Int32 index)
   at ProudClod.Form2.EditCharAI_DoubleClick(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.DataGridView.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.DataGridView.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)
 
I think there is a serious bug with the program. It crashes upon loading a Japanese SCENE.BIN altered with my program (which has just translated and expanded AI strings). The original SCENE loads fine (other than text being a mess of symbols) in your program, and my custom file (you can get a copy here) works perfectly when inserted in game, so I guess the problem is somewhere in your code for handling the AI, or maybe the file de-indexing.

Log:
Code: [Select]
Code:
System.ArgumentException: Lunghezza della matrice di origine insufficiente. Controllare srcIndex, la lunghezza e i limiti inferiori della matrice.   in System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)   in ProudClod.Form1.Load_Attack()   in ProudClod.Form1.OpenSCENEBINToolStripMenuItem_Click(Object sender, EventArgs e)   in System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)   in System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)   in System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)   in System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)   in System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)   in System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)   in System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)   in System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)   in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)   in System.Windows.Forms.Control.WndProc(Message& m)   in System.Windows.Forms.ScrollableControl.WndProc(Message& m)   in System.Windows.Forms.ToolStrip.WndProc(Message& m)   in System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)   in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)   in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)   in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 
I think there is a serious bug with the program. It crashes upon loading a Japanese SCENE.BIN altered with my program (which has just translated and expanded AI strings). The original SCENE loads fine (other than text being a mess of symbols) in your program, and my custom file (you can get a copy here) works perfectly when inserted in game, so I guess the problem is somewhere in your code for handling the AI, or maybe the file de-indexing.
I believe the scenes are loaded as needed, unlike the KERNEL which is loaded before the game begins. So you really wouldn't notice an error until you're in battle. The texts of the scenes in your modified one look fine except that once they're terminated by a NULL (FFh) and then the rest of the space is filled with 00h. I don't think this is enough to crash the game or my prog, but I did find this oddity in Ultimate Weapon's Script: (Scene 70, beginning at 0xF04)

Code: [Select]
Code:
A0 04 48 50 20 3D 20 25 64 20 20 53 43 46 4C 41 47 20 25 64 2C 25 64 2C 25 64 00A0 04 00 00 00 5E 00 00 00 FD FD FD FD AB AB AB AB AB AB AB AB EE FE EE FE 00
I think this second A0 call is going to cause problems during the battle. First of all, it will pop four values off the stack. Secondly, the text ends with a 00 in A0 calls. So this makes the game think the code would be handled like this:

Code: [Select]
Code:
A0 04 0000 00 5E   (which is out of range for battle addresses I belive)00 00 00FD .....   (invalid opcode)
I think there are errors with the AI caused by your program (I'm seeing a lot of extraneous A0 calls in U.Weapon's scripts), but that doesn't mean that PrC is flawless. The errors you were getting occur before I load the AI so you're not getting errors caused by this. I just don't remember using an Array.Copy() in Load_Attack. I'll look into it later today. I do highly recommend you attempt to get in a battle with Ultimate Weapon using this scene.bin and make sure it doesn't crash.

error when trying to insert a new value when the is none in the ai editing

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.DataGridViewSelectedCellCollection.get_Item(Int32 index)
   at ProudClod.Form2.EditCharAI_DoubleClick(Object sender, EventArgs e)
I'll look into this as well. I might have missed some condition.

EDIT:
Zach Fair, I found and fixed the problem by making that last 73 readonly. That's what was going wrong. If it's not 73 I made PrC assume it wasn't the last cell.

Gemini, Your scene only has 246 scenes in it! That explains why it's not opening correctly. If you've removed some for space reasons that's great and it should still work fine in game, but PrC always assumed that there'd be 256. I changed the way it opens and saves now and I can open it. I'd still look at that AI if I were you.

I just uploaded it with these fixes.
 
Last edited:
Thanks for the new MediaFire mirror, NFITC1. At last, the fabled Proud Clod... I'm about to give it a whirl

Oh, and please do not forget to mirror Wall Market too.
 
Seems like the debug print code was causing several problems with the way my program rebuilds jumps in the AI script, in fact Ultima Weapon froze the battle as soon as the script is executed. I've fixed that and Ultima is working just fine now, but I keep getting that error. So, well, you know. :p The new updated scene is online if you wanna give it a look (same link as above).
As for the 246 scenes, I can't really remember removing any of them, even if I actually wanted to avoid inserting the empty entries to save space (not that zlib doesn't crunch them enough).

PS: Seems like I was actually missing the last chunk of scene subfiles (completely forgot to flush last sectors). My bad, it seems to be loading fine now, other than the symbols still being messed up. :p
 
Last edited:
... it seems to be loading fine now, other than the symbols still being messed up. :p
This is why you have the ProudClod.dat file. Replace the text, one character per line in the first 256 lines to change the text that PrC will use to display the names of things. Since this is a Japanese scene.bin you're looking at, all the names will be in Japanese fonts. If you can get a character map of that power to you. Otherwise you'll just have to work with the symbols.
 
That would cover only the first part of the whole font, which is like 6 times bigger in the Japanese versions. The whole encoding uses F800-FED1 for accessing the rest of the font, which I'm not sure can be done with the dat text file.
 
My first post in this forum. Hi guys.

First of all, NFITC1 is a genius.

Second, I've downloaded the Proud Clod 1.2 program (I had the previous version). And I don't know what the dumping feature does. I've clicked on the name dump option, and it asked me to save (to my desktop). Okay so what do I do with that?

Thanks guys. PSX version on the go ftw.
 
My first post in this forum. Hi guys.
Greetings! Welcome to the most intense FFVII modding community anywhere!

First of all, NFITC1 is a genius.
Can't argue with that. ;)

Second, I've downloaded the Proud Clod 1.2 program (I had the previous version). And I don't know what the dumping feature does. I've clicked on the name dump option, and it asked me to save (to my desktop). Okay so what do I do with that?
Yeah, PrC has now gotten so complex that it needs its own readme. I'll get around to that soon.
The dumps are just listings of raw data associated with whatever it is you're "dumping". You don't really "do" anything with it except use it to compare data between multiple items. Take the enemy name dump you mentioned. That will give you the name and enemy ID of every enemy in each scene (a max of three enemies per scene). Not terribly helpful as there is an enemy search option. The others will dump raw data so you can compare them to other data sets and see the commonality to them if you want to report that you've found some unknown. I just learned that the players' battle locations are at points (3.90625, 0, -15.625), (0, 0, -15.625), and (-3.90625, 0, -15.625) by looking at these.
It's not really useful unless you're searching for values like what those last flags are in the formation data and the like.
 
Hey guys, I've been sneaking around this forum for a while now but I never really had anything to contribute until now. I've been working on sort of a "Player's cut" version of FFVII, by fixing bugs, updating models, updating the soundtrack, making a simple .exe installer that covers all bases, etc...

I've been using ProudClod and Wallmarket recently (which are both "RAD to the power of SICK" btw :wink:), and so far, I've updated Safer Sephi's AI, effectively making him not so much of a pushover, fixed the Adamantaimai Big Guard glitch, retranslated the dialogue during the Guard Scorpion boss battle, and added/changed a few spells and materia, and so far, I've had a few problems.

1) Firstly (as Zack Fair mentioned) Proud Clod (I haven't tried this in Wallmarket) still (as of 1.2.0) doesn't let you write scripts for the AI in a section that currently has no code (i.e. modifying the General Counter script in Safer Sephiroth's AI). It gives you the error:

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.DataGridViewSelectedCellCollection.get_Item(Int32 index)
   at ProudClod.Form2.EditCharAI_DoubleClick(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.DataGridView.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.DataGridView.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)

...when I double click to create a new cell. This error actually happens pretty much all the time, not just exclusively in this case. It makes it kind of difficult to code the scripts without things f*ing up, but the main inconvenience is that I can't add code under new conditions, which is important if I'd want to change somebody's AI around.

2) I've been playing around with ProudClod and WallMarket, adding and changing spells (for instance, so far, I've successfully added the spells Holy, Drain, Blind, and Horology), but it takes so much time because there's no reference that lets me know what animation indexes do what. At first I just plugged in random animation indeces, until I realized that, as a general rule:

Player Spells = Enemy Spells + 4E

so for instance if you want to convert an enemy's attack animation into a magic spell, you add 4E to it, and voila! It works!

But now that I'm trying to change enemy spells around I find out that Enemy Spells, Enemy Skills, Magic, and Item animations all work differently!!! I'd greatly appreciate it if there were a way to dump animation Indexes with some kind of graphic or name or just any identifier at all associated with it at all so that it's easy to know which animations do what without having to go into the game and test them out one by one, and also the offsets used in certain cases (i.e. 4E for most enemies--assuming cure is the first animation).

3) Does anybody know a way to modify enemy names and drop, steal, or morph items? That'd be great.

Lastly, a million thanks to everybody here for keeping the spirit of FFVII alive and kicking. Screw Square-Enix, if they refuse to make a remake, we'll just make our own! :-D
 
2) I've been playing around with ProudClod and WallMarket, adding and changing spells (for instance, so far, I've successfully added the spells Holy, Drain, Blind, and Horology), but it takes so much time because there's no reference that lets me know what animation indexes do what. At first I just plugged in random animation indeces, until I realized that, as a general rule:

Player Spells = Enemy Spells + 4E

so for instance if you want to convert an enemy's attack animation into a magic spell, you add 4E to it, and voila! It works!

But now that I'm trying to change enemy spells around I find out that Enemy Spells, Enemy Skills, Magic, and Item animations all work differently!!! I'd greatly appreciate it if there were a way to dump animation Indexes with some kind of graphic or name or just any identifier at all associated with it at all so that it's easy to know which animations do what without having to go into the game and test them out one by one, and also the offsets used in certain cases (i.e. 4E for most enemies--assuming cure is the first animation).
See this

3) Does anybody know a way to modify enemy names and drop, steal, or morph items? That'd be great.
Use Hojo
 
2) I've been playing around with ProudClod and WallMarket, adding and changing spells (for instance, so far, I've successfully added the spells Holy, Drain, Blind, and Horology), but it takes so much time because there's no reference that lets me know what animation indexes do what. At first I just plugged in random animation indeces, until I realized that, as a general rule:

Player Spells = Enemy Spells + 4E

so for instance if you want to convert an enemy's attack animation into a magic spell, you add 4E to it, and voila! It works!

But now that I'm trying to change enemy spells around I find out that Enemy Spells, Enemy Skills, Magic, and Item animations all work differently!!! I'd greatly appreciate it if there were a way to dump animation Indexes with some kind of graphic or name or just any identifier at all associated with it at all so that it's easy to know which animations do what without having to go into the game and test them out one by one, and also the offsets used in certain cases (i.e. 4E for most enemies--assuming cure is the first animation).
See this

3) Does anybody know a way to modify enemy names and drop, steal, or morph items? That'd be great.
Use Hojo
EDIT: Thanks!  :lol:

really have to get more used to these formatting tags....
 
Last edited:
Hey guys, I've been sneaking around this forum for a while now but I never really had anything to contribute until now. I've been working on sort of a "Player's cut" version of FFVII, by fixing bugs, updating models, updating the soundtrack, making a simple .exe installer that covers all bases, etc...

I've been using ProudClod and Wallmarket recently (which are both "RAD to the power of SICK" btw :wink:),
Rad to the...power of......sick? O_o ?

and so far, I've updated Safer Sephi's AI, effectively making him not so much of a pushover, fixed the Adamantaimai Big Guard glitch, retranslated the dialogue during the Guard Scorpion boss battle, and added/changed a few spells and materia, and so far, I've had a few problems.

1) Firstly (as Zack Fair mentioned) Proud Clod (I haven't tried this in Wallmarket) still (as of 1.2.0) doesn't let you write scripts for the AI in a section that currently has no code (i.e. modifying the General Counter script in Safer Sephiroth's AI). It gives you the error:

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.DataGridViewSelectedCellCollection.get_Item(Int32 index)
   at ProudClod.Form2.EditCharAI_DoubleClick(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.DataGridView.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.DataGridView.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)

...when I double click to create a new cell. This error actually happens pretty much all the time, not just exclusively in this case. It makes it kind of difficult to code the scripts without things f*ing up, but the main inconvenience is that I can't add code under new conditions, which is important if I'd want to change somebody's AI around.
Easy answer: don't. The AI editing was meant to be done entirely with the keyboard. Just press Enter to make a new cell. That works fine.
 
Rad to the...power of......sick? O_o ?
It's a geekologie reference, check it out.

Easy answer: don't. The AI editing was meant to be done entirely with the keyboard. Just press Enter to make a new cell. That works fine.
Well I'll be damned. I didn't know that worked. I always assumed you had to click on something for it to gain focus of the keyboard, and click = fail. Thanks. I can make progress again now.
 
I always assumed you had to click on something for it to gain focus of the keyboard...
You do. But if either of the listboxes is focused when you press enter it passes focus from itself to the character AI frame.
 
Status
Not open for further replies.
Back
Top