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 - Akari

Pages: 1 ... 3 4 5 6 7 [8] 9 10 11 12 13 ... 31
176
Q-Gears / Re: What's left to be done?
« on: 2010-04-08 07:43:02 »
Now set iso to extract in cmd from as "extract.exe isofile.iso"

177
Q-Gears / Re: What's left to be done?
« on: 2010-04-06 17:19:54 »
Well call me dumb. But as previously mentioned it just opens and closes...Nothing to type or specify. Also is that the tool you uploaded?

First run cmd.exe.
Then run xenogears extractor through it.
Then you will see something like:

Code: [Select]
Xenogears Main Disk Dumper v0.9.67
Created by Graph and _Ombra_
USAGE:'extract.exe isofile' extract files from xeno cd image.

178
Q-Gears / Re: What's left to be done?
« on: 2010-04-06 08:29:39 »
Quote
What CD extraction tool did you get? My version of tool write messages to console about what went wrong.

This http://q-gears.svn.sourceforge.net/viewvc/q-gears/trunk/utilites/xeno/cd_extract/extract.exe?view=log

Don't know how to use it though use seems to shut right down...Also were on SVN did you upload it to link please. OH and thank you so much for your help very kind of you.



This is console application. You need to specify xenogears iso to extract from it.

179
Q-Gears / Re: What's left to be done?
« on: 2010-04-05 12:03:19 »
Hey Akari just wonderin if you have a Xenogears sprite/background dumper available. Also wondering about any dumper really for Xenogears.

I only have script dumper. I have not start write model dumper yet. Though I has a lot of pieces of code that can display this models.

Thanks you two hey guys you think you could let me use such a tool in the near future?. Also chaosdeathfish could I please use your proggy to when its complete?. Thanks again for such a quick reply.

EDIT: Got the CD extraction tool. But it just seems to open and close right away can anybody give me directions on how to use this tool.

I upload everything to SVN, you could get everything there.

What CD extraction tool did you get? My version of tool write messages to console about what went wrong.

180
Q-Gears / Re: What's left to be done?
« on: 2010-04-04 12:17:54 »
Hey Akari just wonderin if you have a Xenogears sprite/background dumper available. Also wondering about any dumper really for Xenogears.

I only have script dumper. I have not start write model dumper yet. Though I has a lot of pieces of code that can display this models.

181
FF7 Tools / Wall Market, FFVII KERNEL.BIN editor
« on: 2010-03-30 18:36:38 »
Going back to this, could it be accurate to call this section "Battle Victory" and sections 8-15 be "Custom Event"? I can't get any scripts 8-14 to fire (The Midgar Zolom is acting really weird. Executing script that I erased and confirmed isn't in the scene anymore. Spooky...), but that's likely what they would do.

I'd pretty much agree with that naming scheme, yes.  If any further information about how they can be used turns up, it can always be changed again.

Battle Victory - What is the id of this script?

182
FF7 Tools / Wall Market, FFVII KERNEL.BIN editor
« on: 2010-03-30 18:30:14 »
Quote
3x: Physical, 100% Hit
4x: Magical, 100% Hit
5x: Magical, 100% Hit

Acording to my notes they all the same. And they do nothing (not calculate miss chance and not calculate critical chance). So it's simple "100% hit, no critical".

183
Quote
Beats me. Akari's farther along on animation scripts. He might have found this info by now.

Yeah, I know how to do this. But to edit this script you need someone like NFITC1 to write editor. =)
It's not that hard, really =)

If you PM me the info you have I can see what I can cook up.

I have info about PSX file. Do you need it? Though opcodes itself are crossplatform.

Can't hurt. It'd give me something to go on and how to make an editor cross-platform too.

Send PM.
In addition there is topic here (http://forums.qhimm.com/index.php?topic=9345.0) for anyone who is interested.

184
Q-Gears / Re: What's left to be done?
« on: 2010-03-19 11:06:45 »
Field data and algorithms are known at 95%
Battle algorithms are known at 50-70%
Battle data are not yet has dumpers and viewers. In addition huge amount of this data are consist of different effects (magic, summons, skills, limits) are hardcoded. A lot of transition effects of camera and movements are hardcoded. This not yet known. So data in battle are known at 5-10%
Worldmap are almost unknown at all. No one has found or documents it's scripts, settings, battle settings (TF not counted, he doesn't describe format). Algorithms of worldmap are unknown.

This is it =)

As for progress. Mostly reversing and try to unify algorithms for FFIX, FFVII and Xenogears.
Now I'm writing dumper for field script (I need dumper for PSX). Writing dumper for texts (for PSX, japanese and english one).
Writing exporter for battle models (including all textures). That's all folks =)

ps: don't forget that lastest changes and result of all my works you can found at http://q-gears.svn.sourceforge.net/viewvc/q-gears/

185
Quote
Beats me. Akari's farther along on animation scripts. He might have found this info by now.

Yeah, I know how to do this. But to edit this script you need someone like NFITC1 to write editor. =)
It's not that hard, really =)

If you PM me the info you have I can see what I can cook up.

I have info about PSX file. Do you need it? Though opcodes itself are crossplatform.

186
Quote
Beats me. Akari's farther along on animation scripts. He might have found this info by now.

Yeah, I know how to do this. But to edit this script you need someone like NFITC1 to write editor. =)
It's not that hard, really =)

187
Sorry for double post but I can't delete it ><

If you are interested in BSX file the format are follows
Code: [Select]
// BSX model header
+
+ 4 [][][][] number of models.
+ 8 [][][][] offset to texture.
+ c [][][][] offset to something. We copy enviroment settings for models here.



// BSX model enviroment settings
+ 0
+ 2 [][]     scale (12 bix fixed point).
+ 4 [][][][] offset to something.
+ 8 []       R
+ 9 []       G
+ a []       B
+12 []       start index of additional bone.
+17 []       additional number of bones.
+1e []       start index of additional parts.
+23 []       additional number of parts.
+2a []       start index of additional animations.
+2f []       additional number of animations.
+30



// model parts header
+00 []       0 - not calculate stage lighting and color. 1 - calculate.
+01 []       bone to which this part attached to.
+02 []       number of vertex.
+03 []
+04 []       number of textured quads (Gourad Shading) (3C 3E).
+05 []       number of textured triangles (Gourad Shading) (34 36).
+06 []       number of textured quads (Flat Shading) (2C 2E).
+07 []       number of textured triangles (Flat Shading) (24 26).
+08 []       number of monochrome triangles (20).
+09 []       number of monochrome quads (28).
+0a []       number of gradated triangles (30).
+0b []       number of gradated quads (38).
+0c []       number of data in block 4.
+0d []
+0e [][]     offset to polygon block.
+10 [][]     offset to texture coordinates block (0x02 each).
+12 [][]     offset to 4th block.
+14 [][]     offset to 5th block.
+16 [][]     size of buffer for packet drafts.
+18 [][][][] offset to data block (vertex block first).
+1c [][][][] offset to precompiled packet draft (bone matrixes already skipped).

// start of data
+0 [][][][] some flag indicates that we applied scale. if 1 then we will not scale this parts.

// textured quads (Gourad Shading) data
+00 []       vertex 1 index
+01 []       vertex 2 index
+02 []       vertex 3 index
+03 []       vertex 4 index
+04 [][][]   BGR 1
+07 []       normal index 1
+08 [][][]   BGR 2
+0b []       normal index 2
+0c [][][]   BGR 3
+0f []       normal index 3
+10 [][][]   BGR 4
+13 []       normal index 4
+14 []       tex coord index for vertex 1
+15 []       tex coord index for vertex 2
+16 []       tex coord index for vertex 3
+17 []       tex coord index for vertex 4

// textured triangles (Gourad Shading) data
+00 []       vertex 1 index
+01 []       vertex 2 index
+02 []       vertex 3 index
+03 []
+04 [][][]   BGR 1
+07 []       normal index 1
+08 [][][]   BGR 2
+0b []       normal index 2
+0c [][][]   BGR 3
+0f []       normal index 3
+10 []       tex coord index for vertex 1
+11 []       tex coord index for vertex 2
+12 []       tex coord index for vertex 3
+13 []

// 4th block data
+0 [][][][] texture settings. Indexed by 5th block data.
            0x0000003f - 0 - if set we use global texture.
                         1 - if set we use global texture.
                         2 - if 2 then we use clut X and Y as defined. Add model_id to Y otherwise.
            0x000000c0 - clut type (4bpp, 8bpp, 15bpp)
            0x00000f00 - texture page X.
            0x00001000 - texture page Y.
            0x003f0000 - CLUT X.
            0x7fc00000 - CLUT Y.

// 5th block data
+0 []       one byte stream for every packet with texture.
            0x0f - index for 4th block data.
            0x10 - transparency on/off
            0x60 - blending type

// animation header
+00 [][]     number of frames.
+02 []       number of bones.
+03 []       number of frames translation sequenses (bones).
+04 []       number of static translation (bones).
+05 []       number of frames rotation sequenses (bones).
+06 [][]     local offset to frames translation.
+08 [][]     local offset to static translation.
+0a [][]     local offset to frames rotation.
+0c [][][][] offset to data block (static frames block first).

// animation data
+ 0 [][][][] some flag indicates that we applied scale. if 1 then we will not scale this animations.
// idle bone data
// for each bone
+ 0 [] mask byte that tells which rotation or translation is changed every frame (0 TZ TY TX 0 RZ RY RX)
+ 1 [] x rotation
+ 2 [] y rotation
+ 3 [] z rotation
+ 4 [] x translation start id
+ 5 [] y translation start id
+ 6 [] z translation start id
+ 7 [] unused

188
On field you can only use animation from BCX and BSX files. Animation opcode starts animation by index. It's always local.
For character models (cloud aeris and others) there are BCX files that has models and 3 animation (stand walk and run). All other models has their animation in BSX files.
By the way - there are number of animations in DAT file in 7 part of this file.

Code: [Select]
// 7 block in dat
+00 [][] size
+02 [][] number of models
// model data
+00 [] palette in global texture
+01 [] number of bones
+02 [] number of model parts
+03 [] number of animation
+04 [] we set model number (from now on used as model id) here or 0xff if model not enabled.
+05 [] enabled model or not.
+06 [] global model loaded
+07 [] global model

189
Scripting and Reverse Engineering / Re: Action opcodes.
« on: 2010-01-24 17:58:30 »
0xec - if effect not loaded we will call this opcode until it does. For magic, summon, limit, enemy skill and enemy attack we execute loaded effect. All effects are hardcoded so they can do whatever they want (play sounds, display damage, request hurt for target and so on).
0xf7 - F7[wait XX] after wait time ends execute hurt action, effect, sound. This will display damage and effect.
0xc2 - C2[wait XX] after wait time ends show damage.
0xbe - BE[wait XX] after wait time ends execute hurt action, effect, sound. This will NOT display damage and barriers effect.

0xf6 - F6 play die effect (depends on die type) if unit is dead. Used in enemy hurt actions.

190
Scripting and Reverse Engineering / Re: Action opcodes.
« on: 2010-01-11 20:53:04 »
This routine use for loading additional effect:

first we call opcode
0xe8 - E8 start load effect requested during attack (attack type id and attack id are used to determinate what effect to load).

then we create cycle where we will call some animation to hide load time

0xc9 - C9 do nothing just go to next opcode. Used as marker when jump up.
0xca - CA jump to first meet C9 at start of this script if something loading in background.

this is it =)
Just as Aali said =)

ps: 2 Aali: do you have some more opcodes that you know? I might help me a bit. =)

191
Scripting and Reverse Engineering / Re: Action opcodes.
« on: 2010-01-07 22:40:46 »
New discovery:
0xd8 - D8[wait XX][sound XXXX] play sound using attacker settings after waiting given number of frames.

As you may know there is no sound for attack itself in attack data in scene files. There are only sounds for impact (they played when target getting hit). Here it is. This opcode give you chance to play every sound you want.
For example MP's machinegun use this opcode to play sound of shooting.

0xb6 - B6[animation XX] pause camera scripts and then continue to play animation given animation from frame that already set. Used to smoothly finish idle animation before start of anything else. Camera paused because we want camera be sync with start of action (this is just finish animation that was already started).

0xaa - AA unpause camera scripts. As I see it usually uses right after 0xb6.

0xb9 - B9[camera_script_id XX] set camera script id to use. This is use then we want to play given camera script. this is shame, because Guard Scorpion when changing his stance has defined camera in this attack, but it's never used. Instead it uses camera defined in action script.

0xf3 - F3 repeat reading this opcode until wait time for script not reach 0. It descrease by 1 each tome this opcode called.

0xf4 - F4[wait XX] set frames to wait.

0xc5 - C5 set value from 0x800f8374 (unit fade time) as wait time for action script.

0xc6 - C6[wait XX] set value to 0x800f8374 (unit fade time) for futher use.

0xc9 - C9 do nothing just go to next opcode. Used as marker when jump up.

0xc1 - C1 jump to first meet C9 from start of script.

192
Scripting and Reverse Engineering / Re: Action opcodes.
« on: 2010-01-05 17:43:15 »
Just to be clear, this is the stuff stored in the ??ab files for the PC version, right?

I don't really know about PC version cause I work with PSX. In psx this is in second file in LZS pack.

First 0x68 bytes are model settings. Next are offsets to action scripts (0x4 bytes each) starting from beginning of this file. In enemy file there are always 0x20 scripts. After script offsets start script data itself.

If you can send me this file for MP then i can tell you is this it or not.

193
Scripting and Reverse Engineering / Action opcodes.
« on: 2010-01-05 12:29:30 »
I desided to create topic where I will post what I found in sequence of action opcodes.

Action opcodes determitate how unit and surroundings will behave itself during action. For example when MP wants to hit you with tonfa his action script do folowinf actions:
- set start direction for units. Because we want attacker and target look at each other.
- set effect of dust to it's foot
- play animation with id 6
- perform move to target. note that sometimes there are animation that moves unit forwars (for example during shoting from machinegun), but when we want to hit enemy with short range weapon we want that we hit enemy itself and not air or something behind target. This movement use target collision radius and attack radius.
- next we set dust effect again
- play animation with id 7
- next we set timer for hurt target action. When this timer is over we hear sound of attack, see number of hitpoints we damage it
- play animation with id 8
- next we instantly return our position to initial position
- and play dust effect again
- play animation with id 9
- next we return to initial direction.
- and finally return to idle action script.

So as you can see this is one of main part that determinate how attack will look like. We can display attack name here, play different effects, perform various movement and the main thing - we play animations here.

This opcodes is simple. If it's from 0x00 to 0x8d - then this is animation to play. When animation is played opcodes sequence execution is paused.

Here some of already known opcodes:

0xad - AD[joint XX][distance XXXX][start XX][end XX] Attach effect (machinegun) to joint 07 with given distance from joint which starts at frame 01 and ends at frame 0x0a. Always machingun fire. If end 0x80 byte is set then we do not add shell effect.

0xd1 - D1[distance XXXX][XXXX][steps XX] move to enemy using linear movement function by number of steps. Stop distance is distance to target collision radius.

0xe5 - E5 set initial (idle) direction for current unit acording to situation.

0xea - EA show attack name.

0xee - EE reset to idle. Script pointer to 0.

0xf0 - F0 set effect (foot_dust).

0xfa - FA instantly set default position for units.

0xfc - FC set direction for targets (delayed) and attacker acording to situation.

194
Tried to figure that out myself, haven't made much progress.
Seems you can't set it from the script, in fact the only thing you can do from there is set a magic (player magic) animation to be loaded.
The script I'm talking about is of course the stuff in the ??ab files on the PC version, the script engine for these seems to be the only thing that is accessing the animation loader.

Maybe it's some kind of static data loaded from those files, maybe it's stored somewhere else or maybe it's just hardcoded to different situations.

At least can you tell me attacks with same effect animation id that looks different? I can try to search this thing.

195
Where this "context" is set?

196
Q-Gears / Re: To Clear up some things.
« on: 2009-12-07 12:32:18 »
Really? Hmmm it was a lot harder for me to find the models et al than 7 and 9 .. at least 9 had a nifty index system that was .. obvious :D

Oh well such is life.

Cyb

It's maybe easier to find without reversing, but when you reverse all the code - FFIX is much harder. Scripting system in FFIX is a bit different and resource system is very big and annoying. FFVII, Xenogears - much easier.

ps: I start with reversing of graphical pipeline. Trace and reverse all data that formed into render packets.

197
Q-Gears / Re: To Clear up some things.
« on: 2009-12-04 18:49:06 »
I will not work on FFVIII, only FFVII, Xenogears and FFIX. If anyone have courage to face up FFVIII - welcome.

Please excuse my ignorance, but what exactly is the difference between them?
FF8 is a bit trickier than the others. There isn't as much information also. I remember poking around with it some. I suppose I should get back to playing with some of this. It will be after I have ported PCSX 1.9df to the beagle board however. That should take a week or two as I am a bit backed up. I've started actually taking vacation .. so maybe I'll get around too it sooner?  I still haven't started any of my AT91SAM7S projects (I have all the dev stuff too) heh. Lots of projects just not enough time I guess. :D

Bottom line though FF8 data requires a bit more work (on the PSX variant) Qhimm has done a lot of deciphering along with numerous others (back in the days). Not as much people play with Ff8 I guess. I have some save data yet to finish with (the bit data for each thing you do in the game is but one of many).


Cyb

FFVIII don't harder than others (in fact FFIX is hardest), but I don't like it that much and don't want to spent time to understand it formats. Now I almost finish reversing of FFIX field model format and prepare to work on exporter. Next will be models in Xeno.

Is there any fans that want to work on FFVIII? I can explain how, but it takes a lot of time so be prepared.

198
Q-Gears / Re: To Clear up some things.
« on: 2009-12-03 12:23:55 »
So any idea when this q project will be up and running for ff7? i suppose reading the comments above it'll be usable with ff8 aswell?

oh and my 1st post! :-D yay! great site guys keep it up!

I will not work on FFVIII, only FFVII, Xenogears and FFIX. If anyone have courage to face up FFVIII - welcome.

199
FF7 Tools / Official Proud Clod 1.0 Topic
« on: 2009-11-26 19:09:36 »
Quote
You need to change animation script to see damage =)
It's still calculated though.

I'm not quite sure what you mean...

Could it be that one can change the animation script in order to see the damage from each hit in multiple hit attacks that used to be single hit, but that even if one doesn't, the game still calculates the damage from each hit (and therefore takes off the right amount of HP) even though the damage is not shown?

edited for crappy typing

Tha game handles attack as follows:
first you or game ai assigh action to do and it added to queue
next when time comes action is executed, damage calculated and stored to unit data (ie unit can be dead by this time and you can't attack it). Togather with this there are few structues is filled.
one is the action data where all info about camera, effect and action script stored
second one is scructure that can display different things (damage is one of them)
this strucures can hold multiple items and some action add 2 or 3 of them and even more.
When action data structure is executed it starts unit action script (or animation script) and start camera script.
In action script there is commands to play animation, play different effects and there are few show damage command. When this command is executed it add new action data to scructure which will start damage action to unit that receive attack and play it animation. Togather with thai it add sounds to play, damage to show, effect to play.

If you didn't play show damage - unit will still be dead, but it won't disapear from field (because this is called in enemy take damage action)

Hope it clears thing.

200
Q-Gears / Re: To Clear up some things.
« on: 2009-11-26 04:06:41 »
It's now supposed to be a general 2.5d RPG engine, which I think can't actually directly use the original game data.

But has imported data from many games!

Pages: 1 ... 3 4 5 6 7 [8] 9 10 11 12 13 ... 31