Monday Mar 09, 2015
Another blog update means we’re one day closer to 3D Out Run launching on the Nintendo 3DS on March 12th! In the previous two updates (part 1, part 2) we discussed the technical details in building 3D Out Run, as well as adding in new features or fixing old bugs. Starting today we look at the sound from 3D Out Run and tomorrow we’ll have an update covering the music!
Lots of really interested stuff as always, it’s especially cool to learn that 3D Out Run is the first version to fix a few lingering sound and music bugs from the original arcade hardware. All through a good ear and a strong attention to detail – incredible. As always, we appreciate hearing what you think of these updates!
Reproducing a Game’s Sound Isn’t as Straightforward as You’d Think!
– Alright, let’s bring Namiki-san into the conversation, and ask about sound-related topics as they pertain to 3D Out Run.
Manabu Namiki (below MN): SEGA graciously allowed us to record our sounds for After Burner II as well as the ones for Out Run at their warehouse back [in 2013]. We took these back and edited them, and set them aside as standbys for when any actual work was needed. So I actually did the core work for 3D Out Run’s sound back in October of 2013.*
There were a number of things we ran into when doing the sound recreation for Out Run. The first problem was this one bit in the waveform data for one of the PCM ROMs that is always on and the ROM itself was mass manufactured with it that way. In other words, one of the ROMs in the production version of Out Run has corrupted wave data.
Naoki Horii (below NH): He’s correct. And people who are well-informed on the topic might be aware of it. Even the Sega Saturn version had to address this issue.
– I see…
Yosuke Okunari (below YO): This problem cropped up back when Wavemaster was doing the soundtrack for the 20-year Anniversary Box Edition, and we were recording sounds straight off the arcade board itself. We asked the original composer, Hiro-shishou, to review the data, and there was something “off” about it. The fact that sound being recorded straight from the board was “off” was “off” in and of itself. Anyway, since the sound coming off the arcade board was apparently incorrect, they knew were going to have to re-record it, so we burnt a new ROM with the sound data and recorded off of that. So the issue is fixed in that soundtrack.
MN: In other words, in a similar fashion to what we were talking about in the 3D After Burner II interview, Sega pulled the source file off an 8” floppy disk and burnt that onto a new ROM for that 20th Anniversary Box Edition, which they used to restore the master waveform data to the state before it was corrupted during mass manufacturing, and thus allowing us to record it in its originally intended form. That recovered waveform data is what we are using in 3D Out Run.
– (Laughs) I see.
MN: Another thing was “Splash Wave.” There’s this glitch later in the song where the melody and other parts of the song get out of sync. This even happens on the version included in the 20th Anniversary Box Edition, but we fixed this in our version with the exception of the Arcade Mode. We used the same technique we used to fix the song “Defeat” in 3D Galaxy Force II.
Let me explain: First in regards to the melody getting off beat, I thought this might be caused by a part of the melody’s music data that indicates how long a note should play. So I listened to the recorded version of the music to figure out where exactly the song gets out of sync and started my search there. It wasn’t really something you could spot visually by looking at the digital data, so I tried narrowing down the location by listening to it. At the same time, we were analyzing the playback programming on the Z80 and the music note data, and finally found the telltales we needed to track down the notes we were looking for.
I ended up going through the hexadecimal music data to find the intro part of the song, then followed along saying, “Okay, yes, these are the notes for this part.” I found the request number for “Splash Wave” in the sound program and followed that to the entry tables it referenced—in other words, I tracked down the address where the song data was stored, and just started reading that data. I found the melody part within each track, and followed that data from the start. As I did that, I was able to narrow it down to the later part of the song.
NH: What was it? A specific channel’s clock was off by one?
MN: Well, let me take a look right now.
NH: Back in the X68000 days, I used to make my own sound drivers and editors as a hobby, and when I would compile things I could look at the total clock count data. So it was pretty easy to notice, “Hey wait, this one channel has a few too many in it.”
MN: That was possible because the compiler was counting the steps. But this time around, there wasn’t any useful function like that we could use.
– So this means Namiki-san dumped the binary data and went through it all himself? Wow, that’s impressive.
MN: I found it by basically writing comments next to every single line of hexadecimal, like “This is the intro here.” To an outsider, it looks like a fool’s errand.
NH: Well you say “a fool’s errand,” but for us, it’s more like being a museum curator.
YO: You never come in contact with this sort of thing unless you are actually doing the porting work for a game.
NH: If you only play the games, these aren’t issues you typically experience.
YO: Even when making soundtracks, you typically don’t go this deep either.
MN: I suppose so. The desync we are talking about here is very subtle, at a level where you might completely miss it if you weren’t really following along with the melody. Oh, here, I found the sound data! The count value that sets the length of a note was 6 counts over, so it was 48 milliseconds too long. The song is perfectly synched until partway through, but this caused the desync toward the end. With that fixed, it plays correctly all the way through. I believe this puts it back into the form Hiro-shishou originally intended. This is the first time this fix has ever been made, right?
YO: Personally, it’s not something I can really discern the difference for, but if it wasn’t done for the Sega Saturn version or the 20 Anniversary Box Edition, then yes, it’d be a first. By the way, if you want to hear the original, just put the game in Arcade Mode and everything will play like the original.
MN: And actually, there was one more thing. This is for “Splash Wave” as well. In the intro part of the song, I found this issue where a ride cymbal in the PCM’s rhythm palette starts taking over the PCM channels reserved for the background music, overwriting other instruments like snare and bass drums. This affects the 20th Anniversary Box Edition’s intro portion as well, resulting in sounds getting cut off during the song.
It looks like all the versions that have been released to date have been in this state, and it’s subtle enough that if you just listen to it, you’d probably think that’s the way it’s supposed to be, without giving it a second thought. But for better or worse, since I am involved in the project, and I found the issue, it really bothered me…
MN: Normally, Out Run reserves 6 PCM channels for background music. The remaining 10 channels are used for sound effects. But in this case, the ride cymbal was taking over those 6 background music channels. In the meantime, though, during the intro part of the song the game itself is just getting started, so the number of channels you need for sound effects like the car peeling out from the start line is limited. Leaving PCM channels reserved for sound effects but not using them—well, that’s a waste, so I worked with our programmer, Saito-kun, to see if we could reserve some of those sound effect channels for music for a limited time.
NH: I’d heard you guys were doing that. Is that something you could burn onto a ROM and fix the PCM on the original arcade board?
MN: That wouldn’t be possible, as we didn’t fix it directly using Z80 code.
NH: So you fixed the data after it had been emulated.
MN: It’s not that it wouldn’t be possible to modify the Z80 code directly, but doing so would probably have some effect on the sound effects. For 3D Out Run, we change the reserved channels only for certain parts of the timeline, to avoid affecting the sound effects. It’s kind of hardcore.
NH: Well I think everyone’s really impressed with you, too, Namiki-san, even the people reading this interview. There’s not much difference. You two are almost equally impressive, and that slight difference is only noticeable in our office.
YO: As always, a fine example of the elite and talented motley crew at M2.
MN: Yeah, this sort of collaboration could only happen with comrades in the motley crew.
NH: In a typical environment, people wouldn’t even understand what you were saying.
MN: The response would be, “What the heck are you talking about?” And that would be the end of the conversation.
– (laughs) You guys.
MN: We work at M2, the Promised Land, after all.
NH: Cut it out with this “Promised Land” nonsense.
YO: Well, you’re one of the chosen few who has wandered the desert and arrived at this “Promised Land,” Namiki-san. (laughs)
– That’s right. (laughs)
MN: Well now that the issue is fixed, that sound of the PCM hitting those beats without interruption just feels good. That rhythm section in the intro, you know? And if you switch it back to Arcade mode, it reverts to the original set up, so the interruption in the sound is restored.
NH: The Out Run fans really pay attention to this sort of thing.
– That reminds me. You mentioned it earlier, but environmental sounds are included this time, correct?
YO: Everyone expects this stuff from the games now, so we hadn’t mentioned it yet. But yes, Moving Cabinets and Environmental Sounds are in.
NH: The Deluxe and Standard kits are included, of course. And as a little bonus, we threw in the Upright arcade cabinets as well.
YO: However, note that not every behavior associated with the cabinets is reproduced this time around, so in a way, you could say this is all just extra stuff on the side.
– What do you mean?
YO: The basic movement for the Out Run arcade machine is that the part you sit on moves left and right, but the front part of the machine where the monitor is doesn’t really move. So, if we had tried to reproduce that on the 3DS, you wouldn’t see any motion on the 3DS screen itself.
NH: We tried a lot of things back at the office, and we decided that including cabinet motion would be pointless if no one could tell it was happening. So we enhanced the motion a little, to convey the general impression rather than stick to exact realism.
YO: It ended up as a bit of a mix with Space Harrier’s cabinet behavior.
NH: The background is the same background that’s in 3D Galaxy Force II, so it’s like playing the next game in that same arcade.
YO: We didn’t put a Chiba background in there this time, so please don’t bother looking for it.*
* 3D Galaxy Force II features a hidden 3rd background type that looks like countryside in Chiba Prefecture, southeast of Tokyo. You can access it by going to the “Background” settings and holding A with TYPE highlighted for about 5 seconds.
The Moving Cabinets and Environmental Sounds are part of this project’s appeal.
NH: We just barely got it in, so we didn’t have any time at all to go and take pictures.
– (laughs) OK, backing up a bit, can I ask you to talk in detail about the environmental sounds? Did anything interesting happen during the recording process?
MN: So regarding the machine sounds, we basically put the sound assets in like we always do, but for Out Run, I made a specific adjustment to them. You know the sound that the pedals on the Deluxe and Standard machines make when you press them, that “bak bak bak” sound? I really wanted to get that right.
NH: We’re getting into “What the heck are you talking about?” territory again. (laughs)
MN: Relative to the sound when you throw the steering wheel all the way to one side, or the “gacha” sound when you switch gears, I dressed up the sound for the pedal a bit more, accenting the “bak” sound and making it sound like perhaps it’s coming from beneath you. So it’s a little different than just integrating the recorded sound. This is the first time I’ve tried this for these physical games in the 3D Remaster Project. This is the first game that came equipped with a pedal, after all.
YO: That’s true. It’s the first car driving game, and 3D Super Hang-On didn’t have pedals, nor did we record environmental sounds for it.
MN: I have strong memories of playing Out Run and the feeling of pressing that pedal down. And while you can’t actually press a real pedal with your foot on 3DS, I thought it would be neat if when you play it with the Environmental Sounds turned on, it would feel just like you are sitting in the cabinet and hearing the sounds. So I put a lot of work into it. I think it’s at a point where if you have memories of playing the original arcade machine, by playing with the brake and accelerator sounds, those memories will come flooding back. Please give it a try.
YO: I’d like to add one more thing to the sound topic, and again this is one of those things that everyone has just come to expect, but you can adjust the volumes for the music, the game sound effects, and the environmental sound effects separately. Even though it’s all emulated internal sound. (laughs)
On top of that, there are 3 levels of engine volume you can switch between, separate from the volume settings. Many of the previous ports allocated more sound resources to the background music and sound effect playback, rather than the engine sounds. So we thought that there may be players who aren’t really used to the arcade version’s engine sounds if they had been playing the ported versions. Turning the engine sounds off completely makes it all feel a little empty, so we decided to put in 3 levels of volume. So for people who care about that sort of thing, feel free to adjust it per your preferences.
– (laughs) Such attention to detail!
Join us Tomorrow for Part 4!
Tomorrow we finish our blog series on 3D Out Run with a look at some of the music and the creation of new tracks. We hope you enjoyed this update and are excited for the release of 3D Out Run on March 12th!
Posted by Julian in SEGA 3D Classics on 1:33:22PM Mar 09, 2015
SEARCH BY GAME
|No public Twitter messages.|
VIEW THE GALLERIES