[FF6] [OPEN BETA] Dancing Mad - FF6 Audio Replacement using MSU-1

  • Thread starter Thread starter insidious611
  • Start date Start date
Status
Not open for further replies.
Good bugs! I'll try to get time to work on them, but I've gone back to school so my time is more limited atm.

The shadow thing is odd, if it calls for shadow's theme via normal means that should be caught

edale is likely on track with the Phantom Train thing. It's likely a fade-to-silence and we've not cracked getting fading working without glitches yet.
 
Were you running the i386 installer or the amd64 one?

Ehh, I'll just report both.
 
I386.

I think its another fade issue. I think the town music didnt fade out. The Shadow theme had already finished playing.
Its not the Shadow theme. It's the first Shadow dream. Where it just has a singular low note over and over.

Hope this helps.
 
Thanks for this quick fix. I'll test this tomorrow.. and sorry about the typo D8 instead of D2 if it was misleading, I kinda assumed it was hex when writing my post, I even debugged the thing before this and I was in the correct bank lol.

On a side note I was partially wrong about the FF6 ROM always using $C0 as a base, the only case I've found in original ROM is the NMI hook (JSL $001500) at C0/FF10 and some bank $C3 function that queue function calls by code and do not use and bank number based on $C0.
 
Good bugs! I'll try to get time to work on them, but I've gone back to school so my time is more limited atm.

The shadow thing is odd, if it calls for shadow's theme via normal means that should be caught

edale is likely on track with the Phantom Train thing. It's likely a fade-to-silence and we've not cracked getting fading working without glitches yet.
I was waiting to test the phantom train bit before reposting it on the GitHub, so I knew how to report it, or if it was working as it was supposed to.

For Shadow's dreams... Maybe it uses a similar routine as the Sabin intro in Figaro Castle? Didn't that scene used to have a similar problem before you put whatever fix you currently have for it in?
 
Phantom train scene reported on GitHub: https://github.com/Insidious611/DancingMadFF6/issues/74

After some testing, I'm still mostly sure it's a fading issue, but there are a few special tracks called around the phantom train section of the game, and I think the "train pulling away from the station" sound effect might be one of those effects, so there's a chance it's linked to that.
 
Last night I did the opera scene on the sd2snes with Brave New World over Dancing mad. It all lines up pretty well. Only for the very last page (4 or so lines) did it start to get out of sync, but not by much. I think it all went over very well. I did notice a bit of a rough cut/jump when Draco sings when he comes in on the chocobo. But I was really quite impressed.

I did record it, but You Tube wouldn't let me upload it. Probably due to my account settings.
 
Avast just got back to me on the false positive. They've fixed it in their definitions which should be updated within 24-48 hours :)
 
When using this hack on Brave New World all seemed to be going well. Untill I got to the floating continent. When here it stopped Shadow gaining SP (spell learning points used in BNW), and when he left the party all the SP appeared to go to another character.

I also cross checked it with BNW without Dancing Mad, and the SP gain worked as normal
I'm pretty sure that this may be outside the scope of things you want to fix. But I thought i'd let you know.

Cheers.
 
[post removed because what was stated is not true, I don't know what I did or test but it doesn't work]
 
Last edited:
This is honestly pretty excellent work! I love how well structured the code is. I'm still pretty new to ASM and have never used bass, but I could understand what you were doing pretty well! No slight against DarkShock's work but I had a much harder time understanding it when I was first getting started with this project. I particularly like your clever use of macros and how clean they make everything.

If you have any questions about what I'm doing in the current version and why, feel free to ask.

One warning, I noticed you're storing a lot of state variables in $7E1xxx. That's safe most of the time but FF6 craps all over that area of RAM during the ending sequence, which is part of why I laid my variables out partly in there and partly in $1Exx. When I relied on memory in the $7E1xxx block earlier it caused repeated restarts of the ending theme due to not being able to properly check if it was already playing.

I'm not sure how far you wanted to go with your version or if you wanted to contribute the code directly to the project, but provided you can reach feature parity with current code without any regressions (look at the closed bugs on github), I'd be more than willing to incorporate this version of the patch directly into the project. If you'd rather keep it a seperate project that's cool too. If you're contributing this as is with an eye to me finishing it up, I'm alright with that idea too but it'd take me a while to get truly comfortable with this codebase.

On an only semi-related note, I wanted to apologize to everyone for the lack of bug fixing movement lately. I went back to college as of a month ago and have been super busy, so I haven't really had the time to devote to this project that I want to. Rest assured bug reports *are* being paid attention to and I've been brainstorming fixes.
 
Last edited:
One warning, I noticed you're storing a lot of state variables in $7E1xxx. That's safe most of the time but FF6 craps all over that area of RAM during the ending sequence, which is part of why I laid my variables out partly in there and partly in $1Exx. When I relied on memory in the $7E1xxx block earlier it caused repeated restarts of the ending theme due to not being able to properly check if it was already playing.
$7E0000-$7E1FFF is a mirror of $000000-$001FFF and $001600-$001FFF is save ram, so those unused SRAM bytes are ok to use, unless my info on free SRAM was not accurate. Really the only reason I used it this way is because CT MSU-1 hack had it laid down this way and I did not changed it. Anyway in bass doing a STA.w or LDA.w on a 3 bytes variable result in assembling LDA or STA $1EXX (high byte is ignored). And since majority of time DB is set to $00 in FF6, it write and read  from/to $001EXX.

I'm not sure how far you wanted to go with your version or if you wanted to contribute the code directly to the project, but provided you can reach feature parity with current code without any regressions (look at the closed bugs on github), I'd be more than willing to incorporate this version of the patch directly into the project. If you'd rather keep it a seperate project that's cool too. If you're contributing this as is with an eye to me finishing it up, I'm alright with that idea too but it'd take me a while to get truly comfortable with this codebase.
I'll keep this version of the hack for an "enhanced audio" mod I plan to do (some music related mod with Ocarina of Time elements). I find it much simpler dealing with relevant SPC commands ($10 for play, $14 interrupt, $81 fade in/out and the subsong one used for Dancing Mad song) and include extra ones as each "bug" is encountered. But I labeled all SPC command used in game there are 7 or 8 but 2-3 of those are still unknown to me as for their effect. But really this approach and hooking the MSU-1 routine to the calls to $C50004 rather than in $C50004 was easier for me because I was at ease already with FF6 music code and knew a majority of the hooks already.

But you are really close to your goal, I would prefer forking your project on Github and make a separated branch for the fading only and then have people test the thing deeply (because I am a bad tester that don't spend enough time testing) and after submit a merge request to be in the official release when we are sure it is fully compatible and working. It will be a good way to learn WLA too. Howevere I'm busy with university project and finals until end of April so I can't guarantee a short integration in time of the fading code.
 
Last edited:
Sounds like a good plan, fork away! And no rush, as I said I'm pretty busy myself at the moment.
 
*head perks up* Did someone say testing?  :-D (granted, I haven't even touched testing the new ExHiROM mod to the codebase yet...)

I'm already pretty familiar with the bigger issues we've had with fading (might I finally be able to get my PCM for the 'wind' effect working in South Figaro's Rich Man's House? Not to mention the recently discovered Phantom Train scene issue).

Looking forward to this fork showing up on the GitHub.
 
Guys, I just found out about this mod and was listening to the many remastered editions of FFVI to choose which ones to patch into my game, and I just fell in love with Sean Schafianski's versions of the tracks. Is there any chance you guys are gonna include his unfinished Disk 2 tracks to the mod?
 
I admittedly wasn't even aware he'd done any disc two work. Yeah, I'd be happy to include it, provided I can find a download. I purchased a copy of the Disc One album in FLAC form to make the original MSU-1 PCMs, and I'm only finding the Disc Two work in non-downloadable form on SoundCloud atm.

---

Progress report on the hack: At the moment I'm mostly trying to consider how to tackle the current bugs. A lot of them are due to the way I'm handling (or, to be more accurate,  currently *not* handling) the fading commands. Madsiur's list of SPC commands from his patch is really helpful for me as far as trying to fix that issue, but I'm mulling over whether I really want to put in workarounds I'll have to take out later once the actual fade code is in.

To be specific, while I haven't had time to test this theory re issue #73, it and issues #38, and #32 stem primarily from the fact FF6 sometimes relies on a song having faded to 0 in order to have silence in a scene, and as I don't directly handle SPC command $81 at all, the songs continue playing at whatever volume they were last set to instead of fading to 0.

The workaround in this case, at least, the easiest one I can think of atm, would be to hook SPC command $81 with a simple routine that checks the requested volume, and, if it's 0, mute the MSU-1. This would turn all fade outs into sudden silences, *hopefully* not breaking anything in the process but probably fixing these bugs for the moment.

However, this entire routine (aside the actual hooking of SPC command $81 which will likely be vital to the fading code) would need to be cut out whenever actual fading is implemented.

Issue #74, the phantom train issue, is likely a combination of not handling $81 (fading) and not correctly handling $82 (subsong switching). Right now, I only handle $82 for Dancing Mad, because it's the only song (set of songs really) in the game that absolutely *needs* subsong switching to work at all. However, Phantom Train uses subsong switching to switch between the actual song and the train sounds, and my current $82 code ignores any calls that aren't during Dancing Mad.

The subsong part of #74 may be an easy fix, but it may just expose a lingering fading-based issue as I bet the train sound will continue looping at full volume.
 
Last edited:
Guys, I just found out about this mod and was listening to the many remastered editions of FFVI to choose which ones to patch into my game, and I just fell in love with Sean Schafianski's versions of the tracks. Is there any chance you guys are gonna include his unfinished Disk 2 tracks to the mod?
Sean Schafianski's tracks are the SSC option in the installer.

*edit- and I totally missed Insidious' reply, and the revelation that we don't have all his tracks already (SS's tracks were done by the previous audio guy, and I haven't really looked at them past getting all the older stuff normalized).

But yea, if I can get a copy of the audio, I can convert them easily.

And @insidious611 there are sites that let you download soundcloud music that soundcloud doesn't natively allow you to download. (*edit- Found a Chrome extension that just adds a download button right to the soundcloud page. EASY downloading)

edit2- Oh wow, I  :-* LOVE :-* this version of Techno de Chocobo!

The Opera stuff is good too (I love any version that vocalizes the narration), but several parts of the Opera are missing, and a broken up version isn't viable in-game (it's why all 8 or so tracks in the Opera are under one option radial in the installer).

And Another World of Beasts... Might be right up there with CrystalChameleon's version of Dark World as one of the best remasters I've ever heard. Of anything.
 
Last edited:
Guys, I just found out about this mod and was listening to the many remastered editions of FFVI to choose which ones to patch into my game, and I just fell in love with Sean Schafianski's versions of the tracks. Is there any chance you guys are gonna include his unfinished Disk 2 tracks to the mod?
Sean Schafianski's Disk 2 PCMS:
https://mega.nz/#!SVYyyCxR!9nb0okEsbo3N0-e-zSd2ynjqs-FcBfFs1yaCkIVhpyQ

Enjoy.

They're made from SoundCloud rips, if anyone can find a FLAC copy, I'll redo them.

Just pop these in the folder with the existing PCM files for the mod, overwrite the old ones, and you're good to go.
 
Last edited:
Sean Schafianski's Disk 2 PCMS:
https://mega.nz/#!SVYyyCxR!9nb0okEsbo3N0-e-zSd2ynjqs-FcBfFs1yaCkIVhpyQ

Enjoy.

They're made from SoundCloud rips, if anyone can find a FLAC copy, I'll redo them.

Just pop these in the folder with the existing PCM files for the mod, overwrite the old ones, and you're good to go.
Wow, that was fast! I really appreciate it, thanks! Also, a pity that he abandoned this project, leaving even the Opera incomplete.
 
So this is interesting. Madsiur, remember how you said you didn't know what SPC command $89 does? Well, I still don't know for sure, but I do know where it's used! >.<

The phantom train does *not* use $82 for its subsong switching. When it calls for track $20 (decimal 32, phantom train), the bit with the train noise plays by default, and then it calls $89 when it's time to switch to the actual song (still with $20 and $ff in $1301 and $1302).

This is going to need a lot more investigation than I thought, and it means the fix I tried to make for it is pointless :P

An interesting side effect of this in a vanilla ROM that I never realized before: All of the save rooms in the phantom train segment are specially coded to trigger SPC Command $89 when you leave them. So, when you save and reload your game, it plays the train sound effect, but the minute you go to leave it segues into the music.
 
Last edited:
Status
Not open for further replies.
Back
Top