+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Possible to use MP3s as music in SNES ROMs?
Pages: [1] 2 3 ... 5
Author Topic: Possible to use MP3s as music in SNES ROMs?  (Read 3041 times)
Strat
Guest
« on: July 31, 2007, 08:42:07 am »

Hello, all. 1st post here, so be gentle. Smiley

My dream is to use orchestrated versions of tunes I have on CD of the Final Fantasy and Dragon Quest games in SNES ROMs as opposed to the MIDI synth versions we're all used to. Although the SNES CPU didn't have the power to play MP3s, I'm wondering if it would be possible to make this a reality via emulators. Or if it would be possible to bundle in the WAVs into the game.

I realize how bloated the ROM would eventually get, but I can't say that I care too much about its eventual size.

***My goal is to be playing my favorite RPGs and hear the orchestrated soundtracks in all their glory in real-time.***

Can this be done? I have zero programming experience, but can supply the tracks for this project.
Gideon Zhi
Guest
« Reply #1 on: July 31, 2007, 08:50:15 am »

Pretty much completely impossible, the least of reasons is that the largest SNES games can possibly be is about 6 megabytes.
Maegra
Guest
« Reply #2 on: July 31, 2007, 09:01:24 am »


d4s did something similar in his BoF2 hack, Monovibes sound system he called it.
Not sure if it was mp3s in particular, but he added the song from the BoF2 commercial.
KaioShin
Guest
« Reply #3 on: July 31, 2007, 09:08:05 am »

A whole soundtrack is something different from an intro.

However, I think the topic creator meant more a cheat emulator much like Texture replacement plugins for the N64. Won't happen, totally waste of time as support had to be handcrafted specifically for every single game. And I think we already had a topic about this not long ago...
Strat
Guest
« Reply #4 on: July 31, 2007, 09:19:37 am »

Nah. I actually meant if the ROM itself could be hacked for this. Apparently, it could theoretically be done, but only up to 6 megs.

Playing Dragon Quest 8 with the symphonic music spoiled me. Going back to MIDI synth when I listen to the symphonic stuff on my MP3 player all the time was a letdown.
Griff Morivan
Guest
« Reply #5 on: July 31, 2007, 09:53:35 am »

Quote from: Strat on July 31, 2007, 09:19:37 am
only up to 6 megs.
Not exactly. What he means is that that's the total size. Music, game play, everything. So if you wanted to gut a game to put in a song, go for it, but that'd be all, and you'd be better off putting together something in Windows Movie Maker.
creaothceann
Guest
« Reply #6 on: July 31, 2007, 10:37:17 am »

Quote from: Gideon Zhi on July 31, 2007, 08:50:15 am
Pretty much completely impossible, the least of reasons is that the largest SNES games can possibly be is about 6 megabytes.

... without non-standard address decoders in the "cartridge" (i.e. ROM + emulator). You could hack the game to use a custom "mapper".
Gideon Zhi
Guest
« Reply #7 on: July 31, 2007, 10:42:34 am »

Yeah, but it'd never run on the real hardware, and then what's the point? Might as well just build a homebrew PC game to do what you want, it'd be easier.
Strat
Guest
« Reply #8 on: July 31, 2007, 11:10:10 am »

Huh???

Who cares if it doesn't play on the real hardware? Emulators have a million features the actual hardware lacks, so whether it works on an actual SNES or not is a moot point. I specified in my original thread that how big the ROM gets doesn't matter. Even if the sound files would need to be in WAV and therefore the ROM would bloat to 900 megs, it wouldn't bother me at all. Wink

Due to the fact that I'm entirely inexperienced in the programming field, how much work is involved in creating a custom mapper? I just assumed (wrongfully, I guess) that you could "reroute" the musical points to various files outside of the ROM or different sections from within that same ROM (MP3 integrated into the ROM).
byuu
Guest
« Reply #9 on: July 31, 2007, 11:20:36 am »

Strat, without programming knowledge you won't be able to pull this off, and I would strongly recommend against bugging emulator authors and/or ROM hackers to help you with it. You're very unlikely to get any assistance. I'm sorry if that dashes your hopes or seems blunt.

However, just for the sake of discussion ...

You could pull this off by adding a special new register to the SNES, where you write a special signature, followed by a track number, and the emulator will start playing and mixing an mp3 with that track number in the same folder as the ROM. Add your hook to exactly where the game used to enable the audio tracks, so that you still get sound effects and MP3 audio, with no classical audio tracks playing on top. Otherwise, you'd need one hell of a mapper, as streaming audio on the SNES cannot be compressed (much, if at all) and still played back in real-time. Not enough power. Said game would end up the size of a CD very quickly like that, though.

All of the above can be said for video playback, too.

Quote
Yeah, but it'd never run on the real hardware, and then what's the point? Might as well just build a homebrew PC game to do what you want, it'd be easier.

While I agree that most of the fun is gone when your game does not run on real hardware ... you certainly have to admit that modifying an emulator to play MP3s is easier than rewriting a huge RPG such as FF6 from scratch, right?

I still think it'd be fun to make improvement patches like this for classics. Add new stuff like force feedback, redbook audio and FMVs from latter remakes if applicable. Maybe even bundle the emulator very closely with the game, so the whole package runs just like a native PC game.
Gideon Zhi
Guest
« Reply #10 on: July 31, 2007, 11:40:20 am »

Quote from: byuu on July 31, 2007, 11:20:36 am
Quote
Yeah, but it'd never run on the real hardware, and then what's the point? Might as well just build a homebrew PC game to do what you want, it'd be easier.

While I agree that most of the fun is gone when your game does not run on real hardware ... you certainly have to admit that modifying an emulator to play MP3s is easier than rewriting a huge RPG such as FF6 from scratch, right?

I still think it'd be fun to make improvement patches like this for classics. Add new stuff like force feedback, redbook audio and FMVs from latter remakes if applicable. Maybe even bundle the emulator very closely with the game, so the whole package runs just like a native PC game.

I don't mind this, so long as you no longer claim the result as an SNES game, because it's not. What you're doing, in effect, is creating fictional hardware that never existed and likely never will. Even if someone deigns to produce a "cartridge" of such a thing (and I can't even imagine what kind of Frankenstein's Monster monstrosity it'd be) it would never see anything even close to wide release, where "wide" is defined by the number of units needed to accomplish a successful commercial release, irregardless of publication rights or licensing. Even most HK or Taiwanese pirates saw more than 1000 units produced, I'd wager.

Modifying an emulator to properly hook into a fictional mapper is an interesting theoretical question and technical challenge, but I don't think the result can even be tangentially classified as "romhacking" or "emulation."
Strat
Guest
« Reply #11 on: July 31, 2007, 12:24:43 pm »

Quote from: byuu on July 31, 2007, 11:20:36 am
Strat, without programming knowledge you won't be able to pull this off, and I would strongly recommend against bugging emulator authors and/or ROM hackers to help you with it. You're very unlikely to get any assistance. I'm sorry if that dashes your hopes or seems blunt.
Frankly, I wasn't bugging anybody. Just asking if it was possible. Now, if somebody were to be interested in accomplishing the aforementioned goal, that would be sweet. But it wasn't my initial intention.
Quote from: byuu on July 31, 2007, 11:20:36 am
Otherwise, you'd need one hell of a mapper, as streaming audio on the SNES cannot be compressed (much, if at all) and still played back in real-time. Not enough power. Said game would end up the size of a CD very quickly like that, though.
Yes, I mentioned this previously. I was thinking of having the emulator trigger an external player like, say, WinAmp to accomplish this or having an emulator plug-in developed for this or that emulator (for instance, ZSNES).
Quote
Yeah, but it'd never run on the real hardware, and then what's the point? Might as well just build a homebrew PC game to do what you want, it'd be easier.
I guess I'm not expressing myself correctly. I'm using my 60" Sony A2000 HDTV as an HTPC (Home-Theatre PC). Running an emulator with filters to make it look half-decent is *MUCH* more pleasing than plugging a SNES via RCA or S-Video into said TV. The difference is insane. Plus, I don't own or plan to own a device that lets me copy game ROMs into a blank cartridge either. As I mentioned earlier, emulators have features that I crave. And again, they open up a world of possibilities. There's only so much that can be done with console hardware.
Quote
I don't mind this, so long as you no longer claim the result as an SNES game, because it's not. What you're doing, in effect, is creating fictional hardware that never existed and likely never will.
Honestly, all of this is pointless hair-splitting and knitpicking. Let's drop the semantics and keep this on-topic, please. We're not talking about a port onto a Playstation 2, here. Simply adding an extra feature that is (IMHO) lacking. Otherwise, why don't we all just state that every single game that's been released after being hacked is no longer a SNES game, since it was never officially published as such? See where I'm going with this? We might as well simply drop the matter entirely as I don't see its relevance to my initial post.
Gideon Zhi
Guest
« Reply #12 on: July 31, 2007, 12:33:54 pm »

Quote from: Strat on July 31, 2007, 12:24:43 pm
Quote
I don't mind this, so long as you no longer claim the result as an SNES game, because it's not. What you're doing, in effect, is creating fictional hardware that never existed and likely never will.
Honestly, all of this is pointless hair-splitting and knitpicking. Let's drop the semantics and keep this on-topic, please. We're not talking about a port onto a Playstation 2, here. Simply adding an extra feature that is (IMHO) lacking. Otherwise, why don't we all just state that every single game that's been released after being hacked is no longer a SNES game, since it was never officially published as such? See where I'm going with this? We might as well simply drop the matter entirely as I don't see its relevance to my initial post.

The difference is that we work within the confines of the system. Our hacks on the original hardware - a lot of people have copiers or flashcarts, have played hacked games on their systems, and can verify this. (I own a copier, myself.) It's not splitting hairs at all - what you suggest requires the modification of the SNES's inherent capabilities and not just the original game. You're talking about the emulation of hardware that does not exist in any physical form. This is fine, but it's not emulation - it's bytecode or virtual machine or whatever the hell Java and the like are.

This is different because you're talking about modifying the system at the absolute base level. Graphical filters or savestates are something different - they take the resulting output of the original hardware and spiff it up a bit. Creating a new mapper based conceptual hardware and then writing code to "emulate" that virtual hardware is something else entirely.
« Last Edit: July 31, 2007, 12:40:39 pm by Gideon Zhi »
Lenophis
Guest
« Reply #13 on: July 31, 2007, 12:36:50 pm »

Quote from: Strat on July 31, 2007, 11:10:10 am
Huh???

Who cares if it doesn't play on the real hardware?
A lot of us care whether or not something we do runs on the actual hardware. Otherwise, as it has been stated already, it's an emulator hack and pointless, and you may as well make a homebrew (PC or otherwise).

Quote
Emulators have a million features the actual hardware lacks, so whether it works on an actual SNES or not is a moot point.
You clearly don't even know what "emulation" means. An emulator makes all attempts to act like the original system it is trying to emulate. The instant you stray away from that it's no longer an emulator.

Quote
Due to the fact that I'm entirely inexperienced in the programming field, how much work is involved in creating a custom mapper?
Far too much to be worth it. If you don't believe me, take up a language and make an attempt at it. You'll see first hand just how much work would go into it then. Wink

Quote from: Strat on July 31, 2007, 12:24:43 pm
Frankly, I wasn't bugging anybody. Just asking if it was possible.
Short answer: no.
byuu
Guest
« Reply #14 on: July 31, 2007, 12:46:05 pm »

Quote
Otherwise, as it has been stated already, it's an emulator hack and pointless, and you may as well make a homebrew (PC or otherwise).

Please tell me I'm misunderstanding you and you're not advocating rewriting an entire game from scratch just to add a small feature or two, after I just posted on how absurd an idea that was :/

It would take me maybe two or three days to get an SNES game hacked and playing MPEGs and streaming audio. It would take me maybe two or three years to port an entire game to the PC, and it'd never be even close to identical to the original. Little details like algorithms for battle damage would be different, etc.

The idea really is a cool one. It would only work though if we could all agree and standardize on an interface for the new features. But that'd never happen. Most people don't even want to acknowledge the potential of the idea. However, I do agree that we should be very careful not to call it an SNES game. Because it would not be. Yes, anything can be ... fuck, you can hardwire a Core 2 Duo and use it in an SNES game if you want. Or stick an eSATA connector on the top of a cart. But since nobody has it but you, and it was never commercially sold (not to mention officially), it doesn't really matter whether or not a hardware proof of concept exists.

The semantics are important: with idiots like Cowering indexing anything ending in SMC, it would easily blur the line between what really is an SNES-compatible game, and what is specific to one particular emulator. We already have this problem with fan translations. I've received more than one bug report now about a fan translation not working on my emulator, when the reality is that it doesn't work on real hardware, either. It just so happened to run on emulators that failed to emulate the SNES' limitations. Some people go out of their way to verify their works run on real hardware, eg Gideon with his recent re-release of Ys 4, and they should be commended for that. We don't want to dillute emulation in the future to accomodate hacks.

I would absolutely be using a new file extension for this. I'd probably even make a separate emulator and not call that an SNES emulator anymore.
« Last Edit: July 31, 2007, 12:51:37 pm by byuu »
Pages: [1] 2 3 ... 5  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC