Wednesday, December 23, 2009

New version of PrC and WM

WallMarket and Proud Clod have been updated. A few fixes. Nothing special. You can edit Ultimate Weapons' and Sephiroth's scripts again without it dying. Also fixed a few things with Materia not updating and description text not saving. Merry Christmas! :D

Thursday, December 17, 2009

UN-No New Game+ :)

There's a light at the end of the tunnel. Apparently, someone at GFAQs uploaded a save game that starts right before the first battle with the two MPs. The guards are already knocked out, but nothing they still have their potions. So it's possible to start at the beginning after the first movie, but before anything significant. I'd like to be able to tweak it, just a hair, to get it to start as AVALANCHE is jumping out of the train. It will likely take some trial & error changing to get it right.

Thanks to secondadvent for alerting me to this save file.

EDIT:
I just finished my Adamant set in Dissidia without using the FuSoYa ghost. Man, that took a while, but I discovered what a kick-butt fighter WoL is! He's my new favorite! :D

Monday, December 7, 2009

No New Game+ :(

Thanks to some help I managed to find the initial point where the new game data gets dumped into. Aali told me that in the US ff7pc v1.02 this map begins at memory address 0xDBFD38. Sure enough, that's where I found it all! Seems easy enough to copy and put into a save file with other initial data from the KERNEL.BIN and such. Well, turns out it's not so easy. The game is supposed to load a save game and "pick-up" where it left off. Problem is that since my initial game didn't have any "this point here" data like the game assumed a save file SHOULD have it crashes and dies. I had assumed that it would load the data, put it all in its proper place, then start the game mode based on that data. Turns out to be wrong. I think the most thing is that continuing a game can't start with an FMV like the game starts out with. Also, there is no condition in continuing a game to start at the beginning where there's no save point at all.

So it looks like there's every reason to believe that it CAN'T work without modding the executable. I don't want to do that so the "New Game+" project is officially ended (by me).

Back to Dissidia for me....

Wednesday, November 18, 2009

New Proud Clod at least...

So I added a few new things to PrC to make it a little more convenient. First, and most importantly, it can now use the Windows Clipboard to copy-paste! The documentation doesn't reflect this yet, but the function's there. The format must look more or less like the code displayed in the AI window. Each opcode gets its own line and values associated with that opcode must be the last few characters on the line depending on the code.

eg:
12 2060
10 4000
80
60 01
90

that copy-pastes just fine as.... kill script owner, basically. ;) The following variations also work:

12 89789985 2060
10 check me out! 4000
80
6001
90

copying that should also result in successful pasteing. A few more things have been added and not documented:
"Check attacks" button in AI editing should show you any potential conflicts in using the 92 (Perform Action) code. There are some things it won't catch, but it should be able to tell you if you try to use an attack that the enemy doesn't have access to or if the animation isn't set for.
On a related note, the allowed attacks lists have changed slightly. Now it shows the attack index (like I said it would) so you can distinguish between identical named attacks.

Have fun! Let me know if anything's wrong.

Thursday, November 12, 2009

Next thing...

I'm going to start working on a way to use the clipboard while editing AI. It's a LONG process, entering all that code, and no one REALLY wants to do it more than once if they can help it. Probably after this feature is working I'll release new versions with the fixes I've mentioned before.

Well....copying is the easy part. Took me five minutes max. Pasteing's a little harder. The string will have to be checked and parsed before injecting it into the code. I can do it in a few minutes, likely.

Monday, November 2, 2009

Uh-oh

Someone pointed out a little WM bug to me (that's likely been around since 1.2) that'll need to get fixed. Simple enough fix too. I'm also likely going to add attack index to the animations tab so users won't have to guess at which "Pyramid" attack Reno's using. It won't tell which direction he's facing, but at least people will know that he's not attempting to face the same direction every time.

Actually, they're three different attacks so the AI knows which Pyramid to summon. That's hardly important to the issue, though.

Wednesday, October 28, 2009

Something's missing...

So I have recently moved into a new house. My first house. A brand-new house. I'm excited about that, but unpacking takes away from lots of things. I haven't been able to do any of the enemy playthroughs that I've wanted to do because my computer isn't hooked up.

Thing is, I HAVE given more thought to the copy/paste functionality in the AI. My biggest issue was what if someone attempted to paste straight text into it. If you tried that, it would crash the program pretty hard! XP Anyway, that was with my original ideas. I've had a few more since then and I've decided that I'm going to add that feature, but do some pre-processing to make sure it's valid and paste it directly into the visible script if it is. That way people can create templates and modify them outside WM/PrC (which I really don't recommend too much because that'll screw up some jumps in some cases) and paste them into either. I know some of my devoted followers have requested such a feature and it's time I deliver.

So, two things have to happen before I do this:
1) I have to finish moving/unpacking. I can't just let it half-go.
2) I have to at least unlock the Blackjack course in Dissidia. I've completed 3 DOs and Shade Impulse with Cloud. I've got a ways to go with that. :(

Oh yeah, one more thing. The odd thing about this is that if I want it to be pasted into a text box like Notepad or whatnot then I'll have to format the data. With that in mind, I'll have to include cr/lfs (carriage return/line feed or "hard return") in the output. It just so happens that this corresponds to "-*" in FFtext. So try not to include that particular combination in your texts, K? ;) In reality it'll be up to me for that to not destroy this copy/pasting.

Monday, October 12, 2009

New versions

Just in time for Columbus Day (whoopie) new versions of PrC and WM are ready! Get 'em!

Thursday, October 8, 2009

Next planned feature

So I'm pretty confident that I found all the problems with PrC and WM's working now. I've been toying with the idea of loading actual battle models into PrC when the battle preview is selected. Good idea, huh? Yeah, I thought so. :)
I've also decided that there will be a little dot where the camera's focus will be. Still working on it, but I've got less and less time each day. At least for a while.

Friday, October 2, 2009

This is going to take a while...

I just thought of a new thing this should do, but it's going to take a while to make. Basically, I want to indicate to the user whether or not an attack is usable by a given enemy. There are two conditions to this:
1. The attack's index is LESS than 65535 (NULL)
2. The enemy's animation associated with each attack is LESS than 255 (NULL)
If these conditions are true the background color of the allowed attack will be window colored (usually white), indicating that the attack is usable. Otherwise the background color will be form colored (varies with desktop theme), indicating that it will cause an error if the enemy tries to use that attack.
If I REALLY REALLY wanted to go above and beyond, I'd make error checking on the AI. Accounting for allowed attacks and such. But I won't. ;)

Tuesday, September 29, 2009

New thoughts...

I fixed WM to include text changes, hopefully now under all conditions. I also added the feature to delete objects from the KERNEL.BIN. When I say "delete" I really mean "NULLify". In any given entry of an object (Weapon/Armor/Command/Attack, etc) it has a name, a description, and a set of data associated with it. Deleting the entry will blank out the name and descriptions while the data will be replaced with all NULLs. This allows the file size to be smaller for the convenience of PSX modders. There's also a large amount of data that can be removed between discs. You wouldn't need any data related to Pandora's Box until Disc 3 because you can't get it until then. You wouldn't need the text of Aeris's Limit Breaks after Disc 1, nor Sephiroth's or the "love" scripts. You get the idea, right? Well, you can now micro-manage like that to get some extra space out of it. PC modders need not delete since the size of the compressed KERNEL.BIN isn't the issue.

I also decided to allow users to delete entire scenes in PrC for the same reason. I also thought it would be nice to add some labels in the formation tab. Formations will now be referenced with the full formation ID rather than just "Formation 1", "Formation 2", etc. For example, it will now be "Form [0045]" for Formation 1 in scene 11.
Camera Coords are now grouped properly. They are labeled and two bytes are together in one cell.
Same thing with Formation Data. I'm still working out the bugs caused by joining them, but I'm getting close to being done.

I haven't uploaded either of these. I thought of uploading WM first then tail it with PrC in a few days. It just won't happen today because I lost my DSL at home for the time being (long, stupid story). I have to resort to dial-up for now (YUCK!) so no updating will occur there.

Tuesday, September 22, 2009

Current Issue

So far, it's all been working fine. The only problem that I see is that sometimes WallMarket won't save changes made to text. This doesn't happen to me, but I know it happens to others. As soon as this gets fixed I'll formally issue my challenge once again.

Introducting...

I've been in development of these two tools for nearly a year. It's gotten quite complex and I think it's time I start chronicling my efforts. I guess I should say a little about them:

WallMarket:
This was the first of the two that I made. It's a KERNEL.BIN editor for Final Fantasy 7. To those that don't know what that means, almost all non-enemy battle-related data is located here. This includes magic attack data, weapon strengths, materia attributes, accessory effects, etc. It's a LOAD of stuff. I've worked on it off-and-on for nearly a year now and I'm finally happy with the result. I'm proud to say that it can edit virtually every byte of significance in the KERNEL.BIN file! It was named this because Wall Market is a location in the game that was the trading hub of the Midgar Slums. My original desire for this was just to make the Ultima Weapon give growth slots and to increase the number of Materia slots on the armors. Since it modifies every item/materia, it was logical to name it after a large market. :)

Proud Clod:
This was originally called Heidegger and was, for a short time, little more than an attack editor for the scene.bin. This is the file that stores all enemy-related (not "monster-related" since not all enemies are monsters) data. This was originally made because it was made known to me that the attack data in the scene.bin was in the same format as the data in the KERNEL.BIN. So all this did was modify the 32 attacks in each scene. After I got further in development of WallMarket, I decided that this needed to edit much more about each enemy. The AI that guided the enemy, for example. Thus Proud Clod was born. Since this, it has been given the ability to edit enemy formations within a scene (placement of enemies, for example). It can also modify the attacks they're allowed to use. This is intended to be a companion tool with Hojo by Squall78 to complete the total manipulation of the scene.bin file! I believe I went through the data on this file and the two modify everything.

As far as my interpretation of the EULA goes, these tools do not violate it. The EULA basically says "Don't illegally distribute any pieces of this game" and "Don't reverse engineer this for the purpose of taking its contents for your own works". I'm not ripping anything out that I'm going to commercially use (or even personally use). As such, however, I do not endorse the usage of these tools to either end! The latest versions of each of these allow you to save the modifications you've made to a file that CAN be legally distributed because it is not a working piece of the game. There also isn't any "don't modify the contents of the game" for various reasons, but I would say "I can modify any byte of stored data on my computer that I WANT!"

So now that introductions are out of the way, let me say that I'll use this blog to provide information about my progress to their development. I'm not completely happy with them yet and I'd welcome suggestions to make them better. I'm pretty sure there's little more to do with WallMarket other than bug fixes, but if anyone comes up with a REALLY good feature request I'll consider it.