Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Topher

Pages: 1 [2] 3
26
Scripting and Reverse Engineering / New Scene.bin Editor
« on: 2005-08-08 13:33:43 »
Alright, over the past few days I've been writing a scene.bin editor in Visual C++ (in my quest to learn C++).

Functionality-wise it should be on par with SceneEdit (I tried to make sure of that before release :P), albeit I think it is much easier to use. (No offense to Mav, I just found Scene Edit kind of annoying for mass editing)

You will need a decompressed scene.bin, from scene1 (not scene001) to scene256. The program doesn't currently handle exceptions when a file is read-only or doesn't exist and will most likely crash or display garbage.

It is my first VC++ project, so if there are any bugs (aside from the aforementioned), please let me know ASAP so I can try to fix them! I weeded out a few nasty ones when I switched to the release build from the debug build.

Download here! (Version 0.5)

'Changelog':
v0.5
- You can now change whether enemies can be Manipulated, and what attacks (maximum of 3).
- Changed attack name changing so only the currently selected enemy's attacks appear (probably caused some bugs).
- Probably some more but I forgot about them.

v0.4
- Added basic formation editing (pretty buggy)
- Fixed text editing bug (hopefully)
- Removed copy/paste restriction but added warning (use at caution)

v0.3
- Moved some crap around
- Added level changing
- Added copy/paste function
- Added attack name changing
- Probable 1600% increase in bugs/errors.

Plans for the future:
- Number One Priority: Fix reported bugs
- Add status immunity modification (need to find that part of the file first)
- Complete formation editing
- Discover more of scene.bin

Anyways, hope you enjoy it as much as I enjoyed learning from it's development.

27
You, dear sir, are my saviour!

Thank you so much for your help! (and of course thanks to fice for helping you back in the day)

28
I'm learning C++, and as a learning project I'm trying to write an application that will read the information from an FF7 save file ("savexx.ff7") and display it on screen.

I've created the following structures:

Code: [Select]
struct FF7HEAD { // The header part of the FF7 save
    unsigned char dummy [11];
} ;

struct FF7DESC { // The save description part
    USHORT checksum;
    BYTE level;
    BYTE charOne, charTwo, charThree;
    STRING name[16];
    short charCHP;
    short charMHP;
    short charCMP;
    short charMMP;
    long gil;
    long time;
    STRING location[32];
} ;

struct FF7SLOT { // The individual save slot
    FF7DESC description;
} ;

struct FF7 { // The save file as a whole.
    FF7HEAD header;
    FF7SLOT slotOne;
} ff7file;


In my main() function, I load the save file into the memory location of ff7file (see above for it)

Code: [Select]
int main() {
    FILE *ff7save;
    char ff7name[] = "save00.ff7";
    ff7save = fopen(ff7name, "rb");
    fread(&ff7file, sizeof(ff7file), 1, ff7save);
    cout << "Header:\n";
    for(int i=0; i<11; i++) {
            cout << (int)ff7file.header.dummy[i] << " ";
    }
    [snip -- just output code here]
}


the above code doesn't load the correct values into the right spot (i think they're offset a bit but i'm too tired to check right now).

when you jumble the code around and load the FF7HEAD and FF7 object (minus the header) seperately it does work... except when you get to loading gil, where it loads the 4 bytes two bytes after the current file position.

I'm pretty much a newb at c++ (have experience with PHP and java) and this is giving me a real headache... you guys are great at this kind of stuff... can you help me please?

Do note there are a bunch of shortcuts in there (the header simply contains 'dummy[]' instead of actual variables, etc), since I suck so much at C++.

(footnote: the above code was sloppily 'renewed' back to the original loading method so if anything doesn't work i screwed it up -- or i'm just a newb)

Oh, and the output that version creates is...

Code: [Select]
Header:
113 115 39 6 0 1 0 0 0 5 99

Checksum:
1792

Character Level: 0

Character 1: Barret
Character 2: None
Character 3: Unknown

HP: 14080/11777
MP: 14592/16384

Gil Held: 135168 4

Playtime: 240070144 seconds


And I'm using Dev-C++ if you wanted to know.

Mod Edit: Do not double-post

29
General Discussion / Final Fantasy VII Fighting Game
« on: 2005-07-15 13:36:25 »
I'm pretty sure the arcade version did have (at least) some of the FF7 characters... I remember playing it in the arcade a few years ago -- in 2001, I think.

30
General Discussion / Glitches in FF7 on the PS2?
« on: 2005-01-25 02:46:42 »
I don't remember any box glitches on the PS1, but it's common with PS1 games on the PS2 to have slightly intransparent sections/boxes around sprites with transparency.

31
I think Halkun will be very pleased with this... :)

32
Quote from: Synergy Blades
- He stumbles upon a group that gives the game it's title, the Dirge of Cerberus.


That's not quite correct. The group you are referring to is known as the Deep Ground SOLDIERs (Or DG for short).

"Cerberus" in the title is referring to his gun, afaik (because it has 3 holes) and in one of the SE docs it says "his gun will play the dirge" (or something like that) hence "Dirge of Cerberus".

33
Scripting and Reverse Engineering / FF7 Damage Formulas?
« on: 2004-08-11 03:01:18 »
Didn't Terence already do that?

34
Archive / 32Bit Hex codes
« on: 2004-08-09 03:13:44 »
So get version 1.02?

35
General Discussion / Playthrough Request
« on: 2004-07-20 09:16:42 »
As explained (by Cyberman?) in a previous topic, aside from the chocobo glitch, all other crashes and glitches in Final Fantasy VII (PC) are induced by a random quantum event.

I am beginning to doubt this however, I now believe it is caused by the exact universal co-ordinate of the moon in relation to the Andromeda galaxy when you installed Final Fantasy VII.

That, or it was just poorly coded.

36
General Discussion / Playthrough Request
« on: 2004-07-20 04:00:11 »
I'm doing it now...

Edit:
Sorry, FF7's decided to not work... *fiddles with stuff*

Edit 2:
Got it working. The save is in the mail.

37
General Discussion / ff7AC characters
« on: 2004-07-15 11:44:20 »
Quote from: Darkdevil
You think you have it bad.
"Oh no, the japanese get it 3 months before we do, Oh noes!!!"

Then theres us.

"Well its 2 years on now and we STILL dont have animal crossing and only just have mario golf."

stop whining.  You get it good.


Animal Crossing? The GC one (I don't know if there's more)?

It's already out in Europe... I hired it months ago, when I first got my GC (April).

That is, unless Nintendo treat Australia and Europe as seperate regions... unlike most Sony developers...

38
I found these in "ebexit6.fs" (Disc 1, field.fi):

Code: [Select]
squall
zell
selphie
quistis
rinoa
irvine
edea
dic

squall
squall::default
squall::talk
squall::push

zell
zell::default
zell::talk
zell::push
zell::bami
zell::oti

selphie
selphie::default
selphie::talk
selphie::push
selphie::bami
selphie::oti

quistis
quistis::default
quistis::talk
quistis::push
quistis::bami
quistis::oti

rinoa
rinoa::default
rinoa::talk
rinoa::push

irvine
irvine::default
irvine::talk
irvine::push
irvine::bami
irvine::oti

edea
edea::default
edea::talk
edea::push
edea::bami
edea::oti

dic
dic::defalut
dic::talk
dic::push


I don't know if it's just leftovers from development if it actually has something to do with the scripting engine, though. (And yes, dic::defalut is how it was spelled)

39
I'm willing to bet the opcodes are similar, but it wouldn't surprise me if they were dual-byte instead of single-byte.

Actually, I might take a look at some FF8 files in a short while.

40
It says:

"Attack it while it's tail's up"
"It's gonna counterattack with it's laser!"

In two seperate lines.

It should say "If you attack it when the tail's up", "It'll counterattack with it's laser".

41
FF7's scripting language is more like ASM than C/C++, however if you were willing to spend some time, you could make a program that decompiles the script into a C/C++ style language and then recompiles it when you save.

Also Halkun, I see in your doc you have:
Quote
3. No (野) - Itsushige Nojima (野島一成)

The correct translation is actually Kazushige Nojima.

Technically, Itsushige is right, too (same kanji), but it should be Kazushige.

42
After poking around the source of Hack7 and playing with some PC files I managed to figure out how to tell how many events there are (it seems to be limited to 256/map) and how to list them all...

I'm still trying to figure out how to tell how many scripts there are per event, and how many commands there are per script...

43
-- Removed --

Lasyan3 just sent me one.

Thanks!

44
Is there a way to convert the PC data into PSX data so Hack7 will open it?

45
I'm trying to read the scripts in a hex editor, and I can understand it for the most part (how it calls functions with args, etc), but I can't understand how you seperated it into (ex. startmap)

- dic
- cloud
- tifa
- cid
- yufi

I see the names at the start of the file, but I can't figure out how the engine tells where one script ends/another begins, or who it belongs to.

Can you explain a bit more clearly how it works?

46
Quote from: trickstar66
you've been mourning a bunch of polygons and textures for about 7 years!


Aren't the characters vertex-shaded, not textured? Except for the eyes, that is. :P

47
You never fail to amaze me, halkun.

48
Do you still want those screens? (I noticed you have some in the doc. now)

I can cap some when I get home, but you'll need to be a bit more specific (What menus, etc.).

49
After Googling yielded results pointing towards OpenOffice, I started to download it last night, but I got abysmal transfer rates, so I gave up. I'll try again later.

Update: Just downloaded OpenOffice at school, it's installing now, not long left.

Update #2: Just finished reading. Looking good so far!

50
Halkun, you are my idol.

It's a shame I can't read the document (yet) *goes to download compatible software*

Pages: 1 [2] 3