Author Topic: [TECHNICAL] FF7Voice Programmer's Discussion Thread  (Read 16010 times)

FF7Voice

  • Guest
Welcome to the Technical Discussion thread for FF7Voice. Please keep MP3 Demos inside Pre-Release thread. This thread exists to allow Qhimm Users involved in FF7Voice the ability to discuss any technical aspects of the project without having it all mixed up with the mass of MP3 Demos we've received.

WHO IS INVOLVED?
There isn't a specific person assigned as the Project Manager. Everyone involved with FF7Voice is a Project Manager. We all have a say in what's involved and what direction the project is headed. If you would like to become involved with the technical aspects of FF7Voice, please E-mail [email protected] The E-mail will be directed to the appropriate individual(s).
« Last Edit: 2008-06-29 19:03:50 by Mesden »

Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #1 on: 2008-06-16 02:27:17 »
Since we're moving on to another thread, here's the latest relevant info I posted in the other one :

As I've mentioned in the other thread, I've been testing voices during a play through with relative success.  I have yet to hear about anybody else doing so at this point though.

From my testing here is what I've so far found :
- The script catcher defaults to the default character name no matter how you named them (good thing)
- It sometimes freezes when you alt-tab out of the game (haven't noticed a pattern yet as it doesn't happen on a regular basis)
- The included wav files by ficedula creates a memory error if played at the same time as ff7music but regular wavs work fine.  I guess its the way they've been encoded
- I have to test this further as I have no nearby saves by it didn't pick up the text in Lucrecia's waterfall (zz4).  That is the only area I had an issue with text not picking up. (UPDATE further down)
- The ztuck area (cloud's flashback about zack in the mansion) was picked up correctly but immediately renamed it to a odd string of characters before dialog started, nullifying any configured script lines.  It is always the same random string of characters though so it could be worked around.

That's all I can think of for now.

For people wanting to try out the program (found in the original voice-over thread by ff7heart) here's a quick tutorial :

- download the voices pack and unzip it in your ff7 folder
- download ficedula's save and unzip it in your saves folder
- start ff7
- alt-tab out of it
- double click voices.exe in ff7 folder
- click start (NO MESSAGE WILL COME UP - THIS IS NORMAL)
- go back to ff7
- go into save slot 4
- choose the "highwind" save (it's in the first 5 ones I believe)
- talk to people in the cockpit and post back your results!

I would also recommend you try running the program as a normal script catcher as well to see if there are any areas where there might be issues with the text not being picked up.

Using ficedula's save file, I found out the one at 53h28 was just by the waterfall cave with Vincent's event not yet triggered so I played it through.  The program detects the change of location (zz4) but does not detect anything afterwards, no field file changes, no dialog.

I also found out that the problem is not related to the text of the waterfall cave not being picked up because even if I leave the waterfall after the event, it stops picking up field field changes and dialogue in the airship and this is text I've picked up before so I know it does work.  So initiating the waterfall event totally stops the voices program (although voices itself does not crash - it just stands there doing nothing).

So there must be something when either the zz4 area is loaded or as the first line of dialog initializes that "breaks" the hooks of the voices program into ff7.

This is the only area I've tested where this happens so far (I've played the huge materia quest to just before getting back in midgar) so I'm thinking it might be a unique coding patern specific to that area interfering with the program.

Ficedula : Quick update on the Vincent waterfall issue.  Enough time had went by so I could go by the waterfall and pick up chaos and death penalty in my game.  Voices picked up that event properly so I would think the bug is related to the initialization of the first line of dialog for the Lucrecia event.  Looking at zz4 in cosmo, I don't see anything out of the ordinary in the first lines of dialog though ...

yongkykun

  • Cool newbie
  • *
  • Posts: 50
  • Karma: 0
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #2 on: 2008-06-16 03:19:50 »
I have a somewhat unrelated question here... Who'll be acting director for this voiceover project? Honestly, some of those people's voices are good, but they lack drama and character. We need a director that can make them bring life to the characters.

auxili160

  • Insane poster
  • *
  • Posts: 262
  • Karma: 0
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #3 on: 2008-06-16 03:22:16 »
Well, I wouldn't say we're expecting professionally performed voiceovers (not to sound the least offensive). This is a community effort and is simply a whole bunch of fun.

Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #4 on: 2008-06-16 03:29:58 »
We do have a director who's very rigourous so no worries there.  More info might be found in the pre-release thread on the artistic side of things though.

This one is for the program itself, script editing, etc.

revenile

  • Guest
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #5 on: 2008-06-16 03:50:02 »
Mesden is coaching the Actors, but Calavera, Revenile, and Berri all equally assist by trading their ideas.
« Last Edit: 2008-06-16 03:58:52 by revenile »

FF7Voice

  • Guest
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #6 on: 2008-06-16 20:25:07 »
Marcis, who are we sending these completed MP3s to for implementation into the Scene?

Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #7 on: 2008-06-16 23:20:16 »
So far, that hasn't been established.

You could upload it to my ftp server and I could do the setup if you'd like.

However, currently, the program only supports wavs.

FF7Voice

  • Guest
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #8 on: 2008-06-16 23:24:40 »
Yeah, Alright Marcis. You appear to know a lot about how to implement the .WAVs. Once all the .WAVs have been received from the Voice Actors, they will be E-mailed to you. From there, you will be responsible for placing them into the actual scene itself. Where should they be E-mailed to?

JordieBo

  • Crazy poster
  • *
  • Posts: 220
  • Karma: 2
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #9 on: 2008-06-16 23:51:04 »
Hi, I'm just showing my results for the voice demo here.
Okay.
I'm on vista so i expected problems when I first instal FF7, when I installed it, it would load up and then mess up a lil' on the first mission.
I uninstalled it did a few things and reinstalled it. Now it would only load up, black screen, five seconds later it would turn off. So I put it in compatibility mode 98 and run as administrator. TADA! It worked :P
Okay so then i tried out this program. I put it in my FF7 directory, ran the game in Compatibility mode 98 and run as admin, got to title, Alt+Tab and ran voices. I clicked start ONCE, and it said an error message saying something like "ff7.exe process not located". I started again, and did a re-test. Same error message. So i thought since I have FF7 in compatibility mode and in run as admin. Maybe I should do the same for Voices. I put it in compatibility mode and run as admin tried again and it worked! I think this was because, FF7 was run as admin that voices didnt have permission or that because FF7 was running as it would in 98 maybe voices had to too. Either way i didnt bother to test which of the two or if it was both that did the job.
When I tested it i noticed that the voices where VERY quiet. So i had to turn my volume in the config actually IN THE FF7 GAME MENU down to about 2.
Other than that it was awsome!

Tsetra

  • Insane poster
  • *
  • Posts: 322
  • Karma: 1
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #10 on: 2008-06-16 23:57:54 »
Yeah, Alright Marcis. You appear to know a lot about how to implement the .WAVs. Once all the .WAVs have been received from the Voice Actors, they will be E-mailed to you. From there, you will be responsible for placing them into the actual scene itself. Where should they be E-mailed to?

Don't forget to process them to raise their quality. Just a reminder.

Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #11 on: 2008-06-17 00:28:39 »
I sent you info about that.

As I've mentioned a few times as well, everyone interested in this project would do us a great service to try the proof of concept Ficedula posted.  This would show it works across a wide array of system configuration and help improve the program if need be.  The link to it is in ff7heart's thread (do a search for ff7hearth's posts if you can't find it, he doesn't have many).

I also have a question for Ficedula, and anyone one else interested in developing this program.  Is this a program you guys actually have interest to move forward and fine tune ?  I know I wouldn't want to impose so I feel this is a question that we should ask.  None of us currently have the programming knowledge to make this work and even though I most likely could learn if needed, I currently have no base for it and my knowledge of ff7's inner workings is limited.  I feel a program written by skilled programmers would be far more elegant and far less buggy than what I could eventually come up with!

If you guys are on board then assuming we take ficedula's program as a base here are the major extra features that have been requested by the team so far :
- Ability to work alongside ff7music
- Ability to use MP3's for output
- Ability to play multiple MP3's at one time (multiple party members speak at the same time)
- Ability to play sound after a certain amount of time has gone by when a specific movie starts playing (ex: speech starts after x number of seconds after the nibelheim movie where spehiroth rips jenova's head starts since speech is hardcoded into it).
- Ability to play MP3's in specific battles (when text is displayed or specific events happen - ex: war cry by cloud at beginning of battle after aerith is killed or music played when reno runs away along with displayed text).  The speech when text is displayed is the more important of the two.

Thanks!

 edit : some further testing info.

I finished testing until the end of disc 2.  Everything in those areas seems perfect except for the very last scene of disc 2.  When I switched back to windows, I noticed there were multiple access violation errors (no sound file configurations done for those areas yet so not due to file access).  I don't know if this is relevant debug info but the Access violation address was always 0045C768 and the read address varied.  I got 5 or 6 different read address but the 3 most common were 00000000, 00000038 and 6E695693.  I also know the program continued to pickup the text even though it was having these issues but it stopped picking it up at the very last part, the one where you get to the main cockpit area and you find out everyone has come back while you were sleeping with Tifa.  Don't know if they are related issues or not though.
« Last Edit: 2008-06-17 03:33:44 by Marcis »

dziugo

  • No life
  • *
  • Posts: 1474
  • Karma: 3
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #12 on: 2008-06-17 08:28:18 »
With multiple MP3s played at the same time, you can just prepare one mixed MP3, and bind it to one character, leaving the rest silent. Same result, much less effort.

Mesden

  • Cool newbie
  • *
  • Posts: 79
  • Karma: 0
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #13 on: 2008-06-17 23:36:46 »
Marcis suggested that they be done in .WAV, rather than .MP3

dziugo

  • No life
  • *
  • Posts: 1474
  • Karma: 3
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #14 on: 2008-06-18 06:13:52 »
With multiple MP3s played at the same time, you can just prepare one mixed MP3, and bind it to one character, leaving the rest silent. Same result, much less effort.
Replace all occurrences of MP3/MP3s with WAV/WAVs.

Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #15 on: 2008-06-18 12:13:53 »
Marcis suggested that they be done in .WAV, rather than .MP3

No, actually I may not have been clear abpout this as this isn't what I meant.

I suggested that we record and edit the project files as wavs.  However, from there they can be encoded in the best codec for release, most likely MP3 as there really is no advantage to do a final release as wav's.  Even though wav's might be "slightly" higher quality, they do take up a very significant amount of space compared to MP3's.

Wav's really are the base of all audio formats.  Once past the recording and editing stage, there's no need to keep them as wav's except as a source for safekeeping.

Sorry if I didn't explain what I meant better.

The Pezman

  • Fast newbie
  • *
  • Posts: 21
  • Karma: 0
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #16 on: 2008-06-20 16:56:01 »
I am a voice actor on the project, but I am also a Computer Science major.  I've been lurking around the forums every now and again and was hoping that my involvement in the project (although in another area of it) could allow me to learn about FF7 hacking and exactly what goes into it.  Would this be possible?

Prince Lex

  • Freak
  • *
  • Posts: 883
  • Karma: 1
  • Opinionfact is Redundancy
    • View Profile
    • Myspace Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #17 on: 2008-06-22 15:14:12 »
Just tried the Voices program with Ficedula's proof of Concept.

Tried it initially with FF7Music... didn't work but we knew that anyway... tried it without, worked fine, no glitches, no crashes. Made me laugh!


Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #18 on: 2008-06-22 19:47:19 »
Thanks for testing and reporting back.  For my info, what OS do you use ?

I've also been looking at how we could be playing sound during battle when text pops up.  The first step in this would be to find out how the game calls up in battle text so I've been searching the forum for info on that.

The text is found in the scene files in scene.bin.

After further digging, I can confirm that the opcode used to call text in battle is 93 LoadString opcode as it is the one used to pull the "Attack while its tail's up" text during guard scorpion battle (scene 82).  The argument following the opcode is the text to display (in Scene Edit anyway).

Prince Lex

  • Freak
  • *
  • Posts: 883
  • Karma: 1
  • Opinionfact is Redundancy
    • View Profile
    • Myspace Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #19 on: 2008-06-22 22:35:19 »
Windows XP Media Centre Edition Service Pack 2

Intel Pentium D Dual Core @3.2GHz
512mb RAM (Terrible I know)
ATI Radeon 9600 Series (Also terribly old... it does what I want it to... except anti-aliasing in FF7 *sniff*)


Also since the first post I booted from my other OS on my other drive which is Vista Ultimate and everything worked without a hitch on there too!

Mesden

  • Cool newbie
  • *
  • Posts: 79
  • Karma: 0
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #20 on: 2008-06-28 00:04:45 »
I have a thought.. Once this is all done, rather than the user replacing one LGP File with another, we should have Marcis or Ficedula create an installer that will do everything for the user automatically... BUT, the crucial thing I would like to suggest is that the Installer scans the Final Fantasy VII Directory to verify that the user is indeed playing a legitimate copy of Final Fantasy VII and not a pirated copy. It's one thing to say that a user cannot use FF7Voice without a legitimate copy of the game, but it's another to prevent the user from completing the installation without a legitimate copy of the game :)

Cyberman

  • No life
  • *
  • Posts: 1575
  • Karma: 8
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #21 on: 2008-06-28 01:50:00 »
Judging from what I've read you do not plan on editing the script to queue the voices at the beginning of a dialog?
I suppose you might be able to hook into the script and entity data for it. What do you plan on doing for custom named characters? IE instead of Tifa "Babe" and Aris/Erith "Nuttso" Cid "ElCide" etc etc.

Side note "what would Palmer sound like?" Just the thought is rather amusing to me.

Erstwhile, Depending on Q-gears progress it may be an interesting 'addition' to put into Q-gears.

I am trying to remember if multiple simultaneous dialogs occur in FF7.

I should play it again sometime. :D

I assume you plan on numerous language variants?

Cyb

Marc

  • Moderator
  • Insane poster
  • *
  • Posts: 445
  • Karma: 0
  • I hear Voices ... in my head
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #22 on: 2008-07-05 18:35:31 »
Sorry for the long time to respond Cyberman.  This has been a rather busy week on my end.

The current pattern of the program is that it "hooks" into ff7.exe to listen for when the MSG opcode is used in the game and then proceed to extract info about that line of text.  That info is the actual text displayed, who spoke the text in-game and in what field file what it spoken from.

With that info, using a text file based config, we can allocate a wav (or mp3 down the road) to that specific line in that specific scene.  It really is a really easy system to setup that Ficedula came up with.  Also, as in Loveless and Cosmo, the character names actually appears as default in the catched text even if you customized them. That means that changing names in game won't affect the sound bites.  Obviously though the recorded dialog will use the default names.

I haven't heard Palmer's voice actor so far.  I'm pretty curious about it too!

As for Q-Gears integration, I personally don't see any issue with that since I also remember Q-Gears planned to require an original game to run as well.  Of course this is a team project so my opinion is only one of many but as for myself, I would be more than happy if you did so.

As for multiple dialogs being spoken, it does happen at a few select times such as on the highwind operations room after cloud wakes up.

And for multiple languages, the program is not, as far as I can tell, language specific.  However, we won't be recording lines in a language other than english.  If people did want to make other languages versions, they'd need to record their own lines and do their own scripts in their native language and do the game files setup.  It is certainly technically possible however.

PS : for people who have been following this thread, I spoke to Ficedula via e-mail and he's agreed to continue developing this project in the time he does have.  He also mentioned that if anybody wanted to take a shot a it, he's also open to that so interested people might want to get in touch with him.

The Pezman

  • Fast newbie
  • *
  • Posts: 21
  • Karma: 0
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #23 on: 2008-07-08 19:53:41 »
As I mentioned, I'd be interested in helping out in whatever way I can.  I'm a pretty quick learner if I'm taught.

Cyberman

  • No life
  • *
  • Posts: 1575
  • Karma: 8
    • View Profile
Re: [TECHNICAL] FF7Voice Programmer's Discussion Thread
« Reply #24 on: 2008-07-09 22:48:21 »
Sorry for the long time to respond Cyberman.  This has been a rather busy week on my end.
Somehow I wish I got overtime in how much I've been putting in :D
The current pattern of the program is that it "hooks" into ff7.exe to listen for when the MSG opcode is used in the game and then proceed to extract info about that line of text.  That info is the actual text displayed, who spoke the text in-game and in what field file what it spoken from.
That greatly simplifies things on your part.
With that info, using a text file based config, we can allocate a wav (or mp3 down the road) to that specific line in that specific scene.  It really is a really easy system to setup that Ficedula came up with.  Also, as in Loveless and Cosmo, the character names actually appears as default in the catched text even if you customized them. That means that changing names in game won't affect the sound bites.  Obviously though the recorded dialog will use the default names.
Err wav? Wow.. you could end up with some MASSIVE sound files if you went with high quality data. Unless you used ADPCM wav data (still would be big just not AS big).  Ogg probably would work too (hey it's Open Source LOL).  Sorry I am a media encoder freak.  I assume the data is likely something like 16bit LPCM 48khz mono then? (DVD default sound quality).
I haven't heard Palmer's voice actor so far.  I'm pretty curious about it too!
Of all the characters I thought Palmer was the most .. eccentric.
As for Q-Gears integration, I personally don't see any issue with that since I also remember Q-Gears planned to require an original game to run as well.  Of course this is a team project so my opinion is only one of many but as for myself, I would be more than happy if you did so.
Well considering philosophies of development and functionality that wasn't an issue.  The main issue would be 'what API is needed' for the data to run. Judging from the messaging/event oriented system. This would be relatively easy to adapt to Qgears.

As for multiple dialogs being spoken, it does happen at a few select times such as on the highwind operations room after cloud wakes up.
How do you consider that would be handled? a single Mix of voices or a polyiphony of voices?

And for multiple languages, the program is not, as far as I can tell, language specific.  However, we won't be recording lines in a language other than english.  If people did want to make other languages versions, they'd need to record their own lines and do their own scripts in their native language and do the game files setup.  It is certainly technically possible however.
Hmmm I see I am wondering what system to make Q-gears multilanguaged.

PS : for people who have been following this thread, I spoke to Ficedula via e-mail and he's agreed to continue developing this project in the time he does have.  He also mentioned that if anybody wanted to take a shot a it, he's also open to that so interested people might want to get in touch with him.
Fice is still around? Well it is understandable he wants to work. I work too myself and sadly I am putting in 10 or more hours per day (that's just work).  I would rather work on projects those extra couple hours.

Cyb