FF7 PSX sound effects format

  • Thread starter Thread starter Phanoo
  • Start date Start date
Status
Not open for further replies.
I just finished reverse almost all the opcodes. I write them down later. You can see them here (https://github.com/Akari1982/q-gears_reverse/blob/master/ffvii/DISC/SCUS_941_akao.cpp). This is all code that handles sound sequenses in FFVII. SPU and DMA library are separate and comes from PSYQ. You can search opcodes by names like "AKAO_opcode_f2"
 
Opcodes in sounds and in music are the same and do same things. Difference is that music uses a lot of channels with separate sequence for each channel. I think you can adapt your player to play music.

I'm especially interested by the LFO table, which is too much work to reverse engineer by ear. Can you confirm it's your "akao_wave_table" array ?
Yes. This is LFO table. You can use values from c++ files. They taken from binaries and used in PSX version.

If you have question about specific opcode feel free to ask. I look at them more closely and reverse it deeper.
 
Hello everyone.
I see you guys have already reversed almost everything regarding the FF7 music engine, good job and thank you  :)

I've had a similar project about figuring out the opcodes and studying how to actually insert music into the PS version of the game, so maybe I should contribute to your project too.
My documentation is very compact and incomplete in some parts so I still need to tidy it up before posting, but here's the table for the note values.

I'm sorry about the way I chose to present it, but if you're okay with sheet music it should be quite fast to use.



Here's also a plain text "disassembly" from the first track of the boss battle music. The link will expire in february and hopefully gets obsolete before that.
I don't have the know-how to create converting software. Deciding the output format still has to be standardized too. Plaintext could be the best choice because of the specific capabilities of the engine, I think.

h0B_chu akao disasm data; 01_ORGAN1,STRINGS2.txt
 
Last edited:
I took a backup of the text file from 2 posts ago, since he said the link will expire this month.  Just hit me up if you want it.  This is great work happening in this thread, I'd hate to see progress fall short due to an expired link.
 
Hello again! It's great to see other people too who are still interested.
Haven't updated for a while since others working on this seem to be pretty inactive lately.

I don't even know how many opcodes (Akari, I think I need your help..) and other tidbits I'm still missing out but here are my notes anyway.

INSTR.DAT and INSTR.ALL information
This one will expire in 6 months, just to force me to release updates!

Most of the AKAO opcodes Partially translated from a Japanese source which had a lot of incorrect information. Lots of question marks here.
Expires in just one month.


These following all expire in 6 months just to make sure, though they're all probably 99% complete and in the final format already.

SENSUI.SND (h59_sensui.akao) disasm data
 The submarine minigame track!

h52_lb2.akao disasm data; 01_FLUTE,HORN,BELLS.txt
One Winged Angel - Channel 01 data - instruments used: h2E, h22, h32, h22, h32

h52_lb2.akao disasm data; 02_HORN,PF.txt ("PF" being the name used for instrument "Low Piano" in PC version MIDI files)
One Winged Angel - Channel 02 data - instruments used: h22, h28, h22, h28


I've also extracted and uncompressed all 99 samples (instruments and voices) from the final release and 78 samples from the beta release, along with the loop points. I'll share a spreadsheet file later along the uncompressed samples.
ADSR data is also there but currently I have no idea how to use it easily. For example "Sine Wave 1" instrument uses an attack rate of h06 but in practice the attack rate even has key tracking, meaning the lower notes use natural envelope of the sample and higher notes use increasingly softer attack rate.

It's funny how there are a few instruments which most probably had been intended to use bi-directional looping, but it doesn't seem to be working and instead they loop normally, sounding weird :D
I'll post more about this when I'm able to demonstrate it in effect with some sound effects.


Also the biggest obstacle when recreating the instruments using other synthesizers and workstations seems to be that how to create a filter and envelope that reproduces the same sound out of the same raw sample that PSX does. FF7 sound engine is also able to create envelopes with quite fast modulation (refresh rate) which might be troublesome to imitate. Easier approach could be multisampling the instruments out of an SPDIF modified console OR to create a software synth which uses the original sound engine or something like that. Maybe a VST plugin, anyone?


And something funny from the technical point of view, track number h42 named "wind" consists of all sixteen channels, all playing the "White noise" instrument h05 ;D 8-)
Looking forward notating that one out!
 
Last edited:
Status
Not open for further replies.
Back
Top