Wednesday, February 16, 2011

Don't think to deeply about this

It's not completely ready yet. Click for better view.

Tuesday, February 8, 2011

Meaningful changes

As some of you might be aware due to posts on qhimm, WM is going through a pretty big change now. I'm trying to make the text work correctly and even make it more non-English language friendly. (Did you know that the exp range for a character is between 31851 and 8123024? You can't make a character need exp outside of that range to get to level 99. Just thought I'd throw that in.) As such, there are going to be two major changes and several minor ones.

First off, WallMarket.dat will be OUT and WallMarket.xml will be IN (yay!). WallMarket.xml will have all the battle info that WallMarket.dat had, but it will be structured differently and not have the character map at the beginning that wasn't really working anyway. It will have things like attack descriptions and materia types in it that if you don't like the way I wrote it, you can re-write it or translate it into a different language. This would allow for multi-language support under most conditions.

Secondly, the text boxes are going to change to look like they would in the game. So instead of seeing the name of the item in black against a white background, you can see the actual font used by FFVII against the default FFVII dialog background colors! This, of course, will mean you can import your own font faces in case you're using a different one! That will probably be in a directory and require an entry in the xml to distinguish between which one(s) to use.

Lots of minor things are going to be changed too like the weapons' menu actions not updating correctly or the materia subtypes not changing properly, etc. Exp curves will now max out at the level 99 value whatever that will be so you can get the clearest view of the growth curve. Drop-downs menus will expand to fit the name of the things that contain them. Lots of really neat stuff. :D

PrC will probably undergo SOME of these changes too (definitely the xml idea), but not many. I don't know if font changes will be worth what I'm doing to WM because of the low level of text usage in the scene.bin. I'll probably still allow for raw data manipulation, though.

Monday, January 24, 2011

A "fix" to the embarassing error

Apparently, someone got me to take a closer look at what was happening. As it turns out (I believe), the whole "text from the WallMarket.dat file" thing is screwed up. I only did that for people that wanted to use a different font type and I never got around to implementing that exactly. What I'm going to do next is create a default font face based on the game's used font and allow users to substitute their own in there. That would eliminate a LOT of processing when saving text because it will be saved as binary already and won't have to go through decoding/encoding when loading stuff. That will likely cut down on loading time immensely. Expect that to take a while in coming though. I only vaguely remember my PoC working, but I haven't done anything to WM or PrC that relates to it.

On another note, I'm happy to announce that I've finally ordered a new laptop! This will replace the four year old one whose screen barely works with a pretty snazzy one. I feel a little traitorous because it's an HP (for now anyway) and I don't really like buying computers from corporations. I don't have much choice anymore sadly. No one really "builds" laptops from the ground up. :( Here's hoping this one lives up to what I want out of it.

Tuesday, December 21, 2010

Another embarassing error

So I finally found someone that had an error that I could play with. Armorvil was kind enough to send me his kernel2.bin that wasn't loading correctly. Well, WM wasn't loading it correctly at any rate. He thought it was weird that once WM failed to load it, the original text would still be displayed. Indeed it is a bit strange, but that's because it's already loaded the text from the KERNEL.BIN that the PSX uses. So if it tries to load kernel2.bin and fails, WM will use the KERNEL.BIN text that it keeps handy. Pretty neat, huh? :)

Anyway, what the problem really was is that the buffer I had allocated for uncompressed file size wasn't large enough for the text he had compressed. I try to dynamically allocate memory so not to use too much or too little so I just set the uncompressed buffer to twice the compressed file's size. Not a bad theory, but his compression ratio was GREATER than 2:1! That means the resultant uncompressed file is MORE than twice the size of the compressed one so the buffer I had allocated to hold it was no longer large enough. Bummer. Since I know now that the normal limit for uncompressed text in FFVII.exe is 27K (refer to previous entry) then I set the size to 32K (since I know that Aali's customizations allow for larger text sizes).

Also, I've been getting complaints that after lots of editing, sometimes the text will get jumbled and confused with other texts. I believe this is a problem with the way I'm compressing text on listboxes. So if you had.....something like... aww, heck with it. I have no idea what it thinks it's doing. It changed

Cotton Dress
Satin Dress
Silk Dress
Wig
Dyed Wig
Blonde Wig
Glass Tiara
Ruby Tiara
Diamond Tiara
Cologne
Flower cologne
Sexy Cologne
Member's Card

into:

Cotton Dress
Satin Dress
Silk Dress
Wig
Dyed Wig
Blonde Wig
Glass Tiara
Ruby Tiara
Diamond Tiara
Colog lower colog Sexy Colog Member's Card
lower colog Sexy Colog Member's Card
Sexy Cologne Member's Card
Member's Card

If anyone has an explanation or theory as to how "ne\n" gets changed into " " let me know.

Friday, December 10, 2010

NEW UPDATE!!!

Rejoice! I actually did something! DLBP from qhimm contacted me two days ago and requested that enemies be able to be synced across the scene.bin. So I did. Since I was able to copy/paste enemies already (although they should really be called "actors") I just used that to copy the enemy data and AI and replace others using the same model. THAT'S THE TRICK, THOUGH. Every enemy uses a different model number even if the contents of the models are identical. There are at least six different Chocobo models alone and all of them are identical except for the files that contain them. Obviously you wouldn't want to replace the Wonderful Chocobo with the Poor one, so I'm going to have to restrict it by model ID. Characters of the same model ID can be synced with its copies. For example, Grunt (model ID of 0013h) exists in eight different scenes. I want to modify all of them, but to keep it straight I can now just modify one and say "sync all enemies with model ID 0013h". It's actually a rather quick process and I'm pleased with it's performance.

If another custom enemy is using that model it will be replaced, name and all! The way to prevent that is set the custom enemy to some bogus model number (which is being moved to the new stat editing screen) and then do the replacement then switch the custom enemy back.

Thursday, December 9, 2010

Long overdue news

You ready for this? I got nothing. Really. This has been a tough last quarter-year for me and I haven't had the chance to even look at the code for either WM or PrC. I was taking a class that just ended today, I had two (sort of, it's complicated) deaths in the immediate family within a week of each other, my lappy's finally hit the big one, and I got a new laptop at work which won't take my external backup of my older one that had all my FFVII reversing info on it.

I'm not back to square one or anything, but I haven't had IRL time to devote thought to these projects. Hopefully, come the new year I'll be less constrained and have a new laptop.

I haven't given up on or lost motivation any of this. There just technically isn't time to do anything with it.

Friday, October 8, 2010

A little random thought....

WM 1.4.5 is out now and the links to it are on Qhimm's forums. Blogspot is being a pest and won't let me update them. When I'm able (and remember to) I'll do that. A few things were added and fixed so check them out.

Last Saturday was WM's second birthday! Or do you call those "compile days" for computer programs? Meh, one of the two I'm sure.

Since that's done I've been working on a camdat editor. I'm getting closer to what I want it to be. It's really basic because most of the cam script is unknown and I'm just basing it on what I DO know. Mostly what codes take what arguments and such. It's not done, but it's coming along nicely. Of course, the last 10% of it is likely going to take 90% of the time as usual.