[FE8] Voice Acting Tech Demo (FE6/7 Supp.)

#1

Please move if the category is wrong.

Voice Acting within a hack has been a topic casually discussed over and over in the server, and has been brushed aside often - for good reason, at that. Fully acting a hack would be very improbable given the ambitious length of most hacks, and for that reason you don’t see anyone implementing it in hacks, as far as I’ve seen.
But, being the WAV-loving loner I was, I thought, “what if”? As such, I decided to take a break from my current ventures and make a short demo on what a potential scene might look like if this is executed.
I bring you the result in the form of a hack, or even this video in the case that you don’t feel like going through the process of patching it (which is more understandable, though the patch is still present).

As you can see here (or if you view it for yourself in the patch link below), it works. I’ve also left the sound room open so you can hear all the voices if need be in the patch.
I don’t believe anyone has doubted its potential, but I personally have never seen it done anywhere before even as a test like this. With that said, however, and aside other factors in the video, there are things I just want to address through a technical point of view. Most people are not going to ever need to use this unless they want to have a few special scenes with VAing, but for the few who are interested or don’t know how this was done, you can read on.

The Details

Firstly, I want to talk about how this was accomplished. Bear in mind I am using this all in FEBuilder and have no knowledge on how to do this through buildfiles, though I imagine there are similar names for commands that will be present.
This is how a part of the conversation appears as:image
As you can see, there’s quite a few [LoadOverworldFaces] here. You might have seen it around in the World Map segments, or you may not exactly know what it does, like I did. While the name seems suited for the mugs appearing on the WM, this is actually just a command that lets you continue an event parallel to the dialogue that’s happening. You’ll see what I mean in just a second.
This is how my events look. And prepare your eyes, because you’re either going to find it satisfying or disgusting.


Yep, it just goes on and on - for every single audio file I have. Just so that we’re clear, this is a repeat of playing a SFX (which is an imported WAV onto empty tracks), TEXTCONT, and TEXTEND.
So to understand the relationship between LOF and this repeating pattern, look back to the dialogue. Before the text begins, we put in LOF, and what that does is continue the event. And what is (usually) following suit? Playing a SFX. So what we are doing is playing the associated voice line at that time as the text is playing to make it seem like proper voice acting. What TEXTCONT and TEXTEND’s job is to halt the event from proceeding any further past what is intended to be played. That is why we always put LOF right after the [A] press so that the SFX/voice plays only that line of text and doesn’t accidentally skip to the bottom of the events. It’s a long repeat of SFX>CONT>END, but it works. In this case, you can think of LOF as “PlayVoice” instead, though LOF is something we can apply to many other ideas - this is just one of them.

You can see for yourself how simple the process is, though there can be several issues one could address. Syncing is one of them, as clearly text may be too slow or too fast at finishing on time with the voice to hit [A] at the same time, though this could be circumvented with heavy planning - at that point, however, you shouldn’t sacrifice your writing for it.
Another thing to note is, well, space. Filesize. Aside from the macro-ing I did trying to get the WAVs to sound loud enough (and still pushing through 500% volume in FEB), this was the result of all the stuff I used:
image
This was just for one scene, and not much of a long one at that. Perhaps I should note that I used 11025 Hz sampling, though I imagine 8000 as the usual could quickly catch up. Half a megabyte may not be much for a single conversation, but someone who is ambitious enough can quickly see it rack up over multiple conversations.
At this point, I can only say that if someone really wanted to throw in constant voice acting into their hack, they would have to do it for a comparably short hack or one that is only a few chapters, for space restraints might arise were one to do it over a long hack. However, I personally think I might try implementing this system into my own hacks where there are major moments in battle that could cause a turning point. This is all up to execution and writing, and again, this would have to be properly planned out to avoid running into size issues.

The last issue I want to bring up, which is personally the most major for me, is the letter-by-letter sound usually heard in-game. Did you notice that this was missing from the conversation?
I happened to just mute the default sound (known as 0x6E) muted, which helps make the voices isolated and sound fine, but since we clearly aren’t going to have voices 100% of the time, we aren’t going to disable the lettering sound, are we? If we got rid of it, the rest of the game would then sound really silent (as seen after the battle). Perhaps one could get used to it, but if there’s a way we can mute and un-mute the sound on demand, it would make things much easier. (I’m definitely not rushing to get that as a feature, but… Wizards?)

All in all, though, I really like the outcome of this demo. The game runs perfectly fine when playing the audio, and no weird overlapping issues occur when you press A way too quickly - the next voice line plays while cutting out the last, just what I had hoped for!
I’d like to believe this could bring more ventures into WAV wizardry and perhaps people delving into voiced scenes, though at the end of the day it was for my personal investigation that might come in handy for a future (and serious) project. Thank you for reading this far in, and I’d like to thank Xenith for letting me use his project’s assets (mugs and battle theme), Clyde “Tomato” Mandelin for his posted translation of SoTN’s prologue, “Nicholas” for the SoTN Prologue theme, and 7743 again for FEB’s functionality.
P.S. - I’ve been told that since LOF is present in FE6 and 7, this should be possible on those versions. But why not use 8?
P.P.S. - With the posting of this thread, I plan to clean up my general postings thread, and have actually begun working on an online directory of my findings and resources, so I’ll be posting onto my thread when I get the chance.

Patch:
http://mof.x10.bz/projects/fegba/Voice_Acting_Tech_Demo.ups

6 Likes
#2

I wish we could use more capacity…

GBA cannot exceed 32MB ROM size. (DS can use up to 256MB. )
compressed audio sources such as mp3 are not yet available.
Therefore, if you install a lot of wav, it will reach the capacity limit.
If you use full voice like FE3H, you will be required to have a gigabyte capacity.

If it is possible now, is it a game that advances by switching multiple ROMs like the old PlayStation game?

ch1 -ch10 is rom1.gba
ch11-ch20 is rom2.gba
ch21-ch30 is rom3.gba

It may be in the form of taking over the saved data sav and reading it.
That may be possible.(It is the worst UI, but it may be possible.)

1 Like
#3

Have you really not seen this in TLP?

100% doable. One of the things I demo’d in my FEE3 text hax - 3 years ago - was setting the pitch with text codes (it worked basically by selecting a different “song” from the array, using that sfx as the “instrument”). Muting it would be at least as easy.

But I need to organize all of that stuff better and make it properly installable with EA dsa.

mp3 is (to my understanding) a quite complicated format, and I think the GBA is not powerful enough to decompress it in real-time and also play the game. But maybe we could implement something along the lines of https://sneslab.net/wiki/BRR_Compression ?

1 Like
#4

We just need to port the gba roms to ds and then we do not have the sizeissue Kappa

#5

or maybe port GBA to PC and give a fuck about size limitation :smiley:

#6

4 Years late

8 Years late
4 Likes
#7

https://youtu.be/KiPkOgSYtjI I’m more surprised this wasn’t brought up. TLP had quite a bit of VA work.

#8

hire me :dark_sunglasses:

#9

Yes, I’m aware that TLP had voiceovers (I mean, who doesn’t at this point?), but unless I didn’t play that far in I don’t recall a fully voiced scene?
Also wow I thought halfmugs were more of a recent development

#10

Well, Ipatix told me that he is working on a new version of the improved sound mixer which will have support for compressed data.

Here's what he told me:

I always wanted to get some support decent support for short streamed
audio (compressed sample data). Something along what Pokemon uses for
the cries. However, their compression algorithm is very crude, doesn’t
sound very good, and only is about halve the size of normal 8 bit PCM
sample data.

I realized that if I wanted to change the decompression being used while
still remaining reasonably fast, I’d have to split the mixing and
decompression in two phases. With the current state of the code this is
pretty much impossible and it needs some rewrites (which I’m currently
working on). At this stage I realize that rewriting assembly code is
kinda painful when it’s not just replacing one part of the code.

If you don’t care about that, there is no need for you to wait for me to
finish that.

2 Likes
#11

Anything you think is a cool, badass new hack development was probably done ten+ years ago, and better, by Ryrumeli. Dude was ahead of his time. And then his computer exploded, he ragequit, and ascended to the heavens, never to grace us mortals with his presence ever again.

#12

flyingace’s PC is the same

#13

…Is Flyingace the same person as Ryrumeli?

Also just because someone has the same pc doesn’t mean their pc didn’t explode and lose all their data.

#14

Well as I remembered, FlyingAce’s PC somehow broken, he lost all data and cancelled his project Devourer of World

#15

There is a library called 8ad.
I found this in an article about someone porting a PC game to gba.
However, I think it is very difficult to incorporate this.

8ad
http://www.pineight.com/gba/#8ad

Those who are porting PC games to GBA are trying this library.
http://akkera102.sakura.ne.jp/gbadev/index.php?Doc.15%20PC�������ּ��פΰܿ���ˡ(1)

#16

I look forward to Ipatix achievements.

#17

Halfbodies were done 8 years ago by ryru but his gf killed his pc, i redid it a year ago by looking at his old work and trying to replicate it

#18

This is really cool!!!
I wonder if it could be used to have characters say something when leveling up…

#19

Oh man, Ipatix is still around? Awesome. I hope we do get something :soon:. And yeah, that assessment of heavy asm work is definitely accurate :slight_smile:

AFAIK it would have to be ASM’d in and I don’t think there’s documentation on where to start. I know there have been hacks to the level-up screen but I assume those hook into the box-drawing stuff and don’t really impact on the procedure of what happens on level-up. It seems like like a tractable problem with the current state of knowledge, though.

1 Like
#20

Something that also needs to be considered is that current sound mechanics only allow for up to 12 instruments at once - voice wavs would count as 1, so anyone using BGM with 12 tracks would have one constantly dipping in/out.