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

Pages: 1 [2] 3 4 5
Hi everyone.

I wrote extractor for FF7CC game data. Hope it'll be useful to many of you.

1. Place game data files to "data" directory (files from PSP_GAME/USRDIR on game disc);
2. Run ff7cc_extractor for Linux, or ff7cc_extractor.exe for windows (there is two binaries in archive as well as source code);
3. Wait :), there is 1.6 Gb of files.

If anyone finds something about data formats used in this files, post here or PM me.

General Discussion / Re: FFVII (PSX)
« on: 2007-09-23 19:51:34 »
Look here, source code is available by SVN, you can download binary version for available features.

General Discussion / Re: FFVII (PSX)
« on: 2007-09-21 19:36:18 »
Try to look in Tech-Related forum section, there is a lot information about FF7.
However you can always use Q-Gears sources :)

Scripting and Reverse Engineering / AKAO Wiki
« on: 2007-09-21 19:32:06 »
Check this out, I began to fill this today:
For AKAO support in Q-Gears it's needed to understand two field opcodes: AKAO and AKAO2, for sequence there is a lot of unknown AKAO opcodes, I'll try to reverse-engeneer unknown AKAO opcodes one-by-one and fill info on Wiki and add support for them to my AKAO player, unreleased yet :).
We still need help!  :-P

Scripting and Reverse Engineering / Re: FF8 Field Models
« on: 2007-09-17 10:43:11 »
Hm, I forgot, that PAL and NTSC versions can be different...
I'll try to get PAL FF7 version and look what we have there
I think game data isn't very different, if you want, you can modify my extractor for PAL region support

Scripting and Reverse Engineering / Re: FF8 Field Models
« on: 2007-09-16 15:13:09 »
Can you share info about offsets of your extracted files (I am trying to regulate and extract PSX FF8 data and finish my extractor, see

Scripting and Reverse Engineering / Re: Sound / AKAO
« on: 2007-08-29 18:04:02 »
Actually programming FF9 sound is on queue. We will work on it after finishing FF7 sound support in Q-Gears. - there is current AKAO sources with sample loading and other sound-related code, we are working on. Actually this is working player for FF7 AKAO frames, but it isn't ready yet...

For dumping you'll need to load instrument data, load sample to channel and dump sample from channel to file. For reference look in AkaoParser::AerisTest(), or contact me by ICQ or PM

(from Akari)
When looking through memory dump I found opcode names.
Among them was opcode names for special opcode.
Synergy Blade, I think you will be interested:

F4 ????? - it was this way.
F5 arrow - pointer
F6 pname - don't know
F7 gmspd - get message speed
F8 smspd - set message speed
F9 flmat - fill materia
FA flitm - fill item
FB btlck - battle lock
FC mvlck - movie lock
FD spcnm - special name
FE rsglb - reset (don't remember what reset)
FF clitm - clear item

FF8 Tools / Re: FF8 PSX File Extractor
« on: 2007-08-27 16:58:24 »
Yesterday worked on that extractor again...
Now it extracts near 120Mb of data.
:) Mirror:

There is holes in image file, for which I cann't find yet any offsets for rest files.
0x000eb800 - 0x03f4f800 [62Mb]
0x03f69000 - 0x0a99c800 [106Mb]
after 0x121cf800 offset [~300Mb] - 95% there is streaming data such as video and adpcm sound
If look in hex editor first two "holes" I can clearly see rest files, just cann't find offsets for them in image file - maybe I'll extract them directly sector by sector later  :evil:

Q-Gears / Re: Halkun can't be "The Leader Guy" anymore....
« on: 2007-08-24 11:14:15 »
I want to be one of candidates for this job :)

FF8 Tools / Re: FF8 PSX File Extractor
« on: 2007-07-25 13:41:31 »
Has anybody here had any success with cdromreadraw?
If you are using windows, IOCTL calls isn't supported for RAW data mode, only for audio cd. You need to use SCSI/ASPI layer commands.

FF8 Tools / Re: FF8 PSX File Extractor
« on: 2007-07-23 19:48:22 »
Do you have any idea why the number 0x33a was added to the offsets in the ff8discX.img file?
Yes, I have :)
0x33a is PSX CD-ROM sector number of beginning ff8discX.img file. PSX CD-ROM can access info only by sector (actually by time information, but it's almost the same).

FF8 Tools / Re: FF8 PSX File Extractor
« on: 2007-07-22 19:37:45 »
I wonder if there is any way to recognize the format of the PS1's video data format.
It isn't problem at all, to look through rest data and to find video frames, but I want an elegant :) solution for this.
Today I am finished with FF8 exploration - I am writing SoundManager for AKAO.

Q-Gears / Re: Advetising?
« on: 2007-07-22 16:34:49 »
It would be a great, if you'll join Q-Gears project! (year or two ago I have visited your web-page - Great Work!)

FF8 Tools / [PSX] File Extractor (Missing Download)
« on: 2007-07-22 16:18:46 »
As I couldn't find any extractors for this on the net, I wrote this utility to extract data from PSX FF8 image file.
For now it extracts only near 22Mb of files from image. Extracting seems to be correct, although I don't know format of most extracted files (I know some AKAO frame files :) )...

download link: [source + windows binary]
Usage: ff8extractor.exe <path_to_your_ff8discX.img> <output_directory_path>

WARNING: output directory must exist.
After extraction, file with name 025.ff8 (checked it only from ff8disc1.img) at offset 0x000499b4 contain more offsets for the rest files (I think, that "rest files" contain movie and field files) in ff8discX.img. I don't fully understand format of this file yet, but later I'll extract that too.
Happy hacking!  :-D

Scripting and Reverse Engineering / Re: Sound / AKAO
« on: 2007-07-22 15:54:58 »
No, this info isn't on the wiki yet. I need password and time to add this to wiki. :-D

Q-Gears / Re: Advetising?
« on: 2007-07-10 14:48:59 »
Any of you, who want to PR Q-Gears - you are welcome.
We need programmers, testers, wiki-writers, and any, who can help. Akari tried to PR Q-Gears on number of sites, and no one wants to join project.
I think it's a great idea to advertise project on FF forums.

Scripting and Reverse Engineering / Sound / AKAO
« on: 2007-06-24 19:25:48 »
Me and Zidane_2 were reverse-engeneering AKAO sequence format for ff7.

AKAO sequence format consists of following sections:
1. Header:
   struct AkaoHeader
      uint8_t magic[4];   // string "AKAO"
      uint16_t id;            // AKAO frame ID
      uint16_t length;     // frame length - sizeof(header)
      uint16_t unused1; // unused data in AKAO parser code
      uint32_t unused2; // unused data in AKAO parser code
      uint8_t unused3;   // unused data in AKAO parser code
      uint8_t unused4;   // unused data in AKAO parser code

2. Channels info:
uint32_t with used only 24-bit - mask for used SPU channels (example: 0x00000003 - 11b, 11b means that there is only channel 1 & channel 2)

3. Array of N uint16_t offsets to channel sequence data, where N is channel count. Every channel offset counts from position of this offset number in AKAO frame.

4. Sequence data:
After array of pointers there is sequence data for every enabled channel.
For any channel there is only one sample that are playing using 14 different tones and configuration.
Sequence data consists of SPU "configuration" section and "stream" section.
Configuration section consists of random 1-byte control bytes with parameters (we can say, that "control byte" is "sound opcode"). Every opcode has it's own number of parameters. Every opcode constant is > then A0. Processing of opcodes is finished, when AKAO parser finds byte < A0. This byte and following bytes to the end of channel data is "stream" section. Stream section format isn't fully understood for now, but we are working on it ;). There is timing, tone and length information for playing a sample. As we see later, all sample has 14 "tones" for playing. If any byte of the stream section is < 14 * 0x0b it selects length and tone for loaded sample, maybe something else.

***** MAIN INFO *****
Filename: sensui.snd
Frame ID: 0x59
Frame Length: 44 bytes
Unknown Data 1:0x04
Unknown Data 2:0x22181296
Unknown Data 3:0x46
Unknown Data 4:0x28
Channels count: 2

***** CHANNELS INFO *****
Channel 0:
Length: 0x13
e8 a8 66 [(?Tempo) Parameter: 0x66a8]

ea 00 50 [Parameter: 0x5000]
SPU Right Reverb depth: 0x5000
SPU Left  Reverb depth: 0x5000

a8 0d [Volume A8 modifier: 0x0d]
aa 40 [Volume AA modifier: 0x40]
SPU Right volume: 0x0339
SPU Left  volume: 0x032c

a1 0c [sample number]
a5 03
stream data:
66 96 ca

Channel 1:
Length: 0x11
aa 40 [Volume AA modifier: 0x40]
a8 11 [Volume A8 modifier: 0x11]
SPU Right volume: 0x0437
SPU Left  volume: 0x0426

a1 15 [sample number]
a5 05
stream data:
66 96 ca 00 00 00

This file contains data for each sample in INSTRx.ALL
   struct SampleIndex
      uint32_t attack_offset;       // offset to begin of "attack" part of sample (actually for INSTR.ALL real offset is: attack_offset - 0xff0)
      uint32_t loop_offset;          // offset to begin of "loop?" part of sample (actually for INSTR.ALL real offset is: loop_offset - 0xff0)
      uint16_t parameters[4];    // unknown for now
      uint32_t tones[12];           // possible "tone" constants for sample

Also I want to welcome a new developer Zidane_2 to Q-Gears! He is a great help in reverse-engeneering of AKAO format. He is a fan of FF9, so maybe FF9 support in the future, hehe ;)

P.S. If anyone has a time - clean up this info and add it to the Wiki.

just the in-game stuff like doors opening/closing, ambient noises, elevator, etc...
Are you sure, that these noices in PSX version, are not in INSTR.ALL (using psound)?
I am creating new topic about Sound/AKAO related, look there for more info, check it later


Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2007-06-05 11:08:59 »
Why to reinvent a bicycle?
Those of you, who are interested in mode2 files grabber - look in Q-Gears SVN q-gears/trunk/src/utils/moviedump/ - an utility to dump ff7 movies from image - for making it work with CD-ROM it's just enough to replace fstream iF calls with appropriate calls for reading sector of CD-ROM.

My extractor doesn't do any conversion so the output is a plain STR file.
I don't know if this is correct, and I can't check, because none of the psx movie players I found in internet play any of the movies in ff7.
I wonder why you doesn't just check MOV files with Q-Gears but searching closed-source players to check?
I see, that there are only a few people, that are interested in progress of Q-Gears, and these people know, that movies are working in Q-Gears, ADPCM sound is working too, and there actually _is_ utilities in utils directory, which makes life easier. There are so many things that need to be done on engine - battle module, intro, ... But I see - no one wants to write something new - you just reinvent your bicycles...

halkun, sorry, that I don't modify moviedump yet - me & Zidane are reverse-engeneering AKAO format, and there is some progress on it.

only *.MOV files are in XA format.

Q-Gears / Re: Pulling the win32 release (temporary)
« on: 2007-05-21 20:06:14 »
I am already writing some code to test Direct I/O access to CD-ROM on windows uising Win32 API.

Q-Gears / Re: Pulling the win32 release (temporary)
« on: 2007-05-21 19:17:57 »
I don't know, whether ioctl method is supported on windows. I'll try to write win32 program.

Q-Gears / Re: Pulling the win32 release (temporary)
« on: 2007-05-21 16:53:30 »
source of my utility is in the svn (q-gears/src/utils/moviedump/) it requires one argument - path of binary image of any ff7cd. But it's only for cd-image :( - I'll try to write code for direct reading of cd through ioctl for Linux tonight.
If there is a need of Linux GUI extractor - say me, I have skills in GTK2+.

Scripting and Reverse Engineering / Re: XYZI opcode
« on: 2007-04-26 07:29:59 »
On the first map it's used entity replacement with XYZI in runtime. Without this it isn't working. There is a possibility that it's once only for player entity

Pages: 1 [2] 3 4 5