The Wavetable

Strictly for discussing ZSNES development and for submitting code. You can also join us on IRC at irc.libera.chat in #zsnes.
Please, no requests here.

Moderator: ZSNES Mods

Post Reply
cnwhitedragon

The Wavetable

Post by cnwhitedragon »

From what I understand from reading emulator sites the SNES used a wave table to create the music and sounds. (If I am wrong then feel free to yell at me wavetable info from http://www.emulator-zone.com/doc.php/snes/ ).

Well I am working on a project to build "retro" (i hate that word but couldn't think of a better one) game sounds. I was wondering if it is indeed the case that SNES uses a wavetable is it possible to get your hands on it. Is it inside the ZSNES code or is it inside the ROM. If anyone has the wavetable sounds preferably in .wav format then could you let me have them..

Also if there is a really complicated way of getting the sounds out of zsnes then remember i am a java coder not a c++ coder and prob have no idea what your talking about sorry.

Sorry if this post is in the wrong place i couldn't think where else to put it. please feel free to delete, move, lock or give me a slap...

thanks in advance for any help offered.

cheers
Stifu
Regular
Posts: 245
Joined: Fri Dec 10, 2004 10:02 pm

Re: The Wavetable

Post by Stifu »

cnwhitedragon wrote:Well I am working on a project to build "retro" (i hate that word but couldn't think of a better one) game sounds.
How about "vintage" or "oldschool" ? And I don't know anything about the topic, but I just thought I'd reply to this.
MisterJones
Trooper
Posts: 387
Joined: Fri Jul 30, 2004 6:25 am
Location: Mexico
Contact:

Post by MisterJones »

How about Snessor?
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

You can disable certain channels... might be useful for single sounds.

The APU (audio processing unit) uses compressed samples and a game-specific program to play them; SPC files contain both.
CPU: 65c816 (16-bit)
CPU speed: 1.78977, 2.68 and 3.58 Mhz
RAM memory: 1 Mbit (128 Kbyte)
Picture Proc. Unit: 15-bit
Video RAM: 0.5 Mbit (64 Kbyte)
Resolution: 512 x 478 pixels max hi-res and interlaced modes
Colors Available: 32,768 colors
Max colors per line: 256 colors
Max colors on screen: 32,768 colors
Max sprite size: 64 x 64 pixels
Max sprites: 128
Min/Max Cart Size: 2 Mbit - 48 Mbit
Sound chip: 8-bit Sony SPC700
Sound channels: 8, uses compressed wave samples
Fixed. Others might find more to fix.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
Nightcrawler
Romhacking God
Posts: 922
Joined: Wed Jul 28, 2004 11:27 pm
Contact:

Post by Nightcrawler »

Let me shed some light on this for you.

No one can really give you 'the wavetable'. There isn't just one. The wavetable samples are custom samples loaded by each game.

While they are technically stored in the ROM, it's really a pain to find everything you're looking for easily.

An easier way to obtain all this information is to use .spc files. You can extract the APU program, notes, and samples from an spc file.

http://www.snesmusic.org/

They have an archive of spc files for many games.

http://www.romhacking.net/docs/SPCFormat_031.txt

That's the file format spec.

That should be enough to get you started. It won't be easy. You'll probably need to look up some information on the SPC700 sound chip and DSP to really know what's going on.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

Nightcrawler wrote:An easier way to obtain all this information is to use .spc files. You can extract the APU program, notes, and samples from an spc file.
He'd still need a sample decompressor. :?
Nightcrawler wrote:While they are technically stored in the ROM, it's really a pain to find everything you're looking for easily.
Was there ever a game that generated compressed sample blocks in software? :lol: Surely not in real-time, but in theory it's possible...
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
Nightcrawler
Romhacking God
Posts: 922
Joined: Wed Jul 28, 2004 11:27 pm
Contact:

Post by Nightcrawler »

I doubt it. There's no real reason to have uncompressed sample blocks in the ROM. I suppose if you were to take one sample and create several new modified samples, you may then generate compressed samples to load in the ROM. However, I don't think any game did anything like that.

Wavetable sound was still a young technology then.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

creaothceann wrote:Was there ever a game that generated compressed sample blocks in software? :lol: Surely not in real-time, but in theory it's possible...
Well you've got the guys who were unhappy with only 8 channels and made a software mixer to go up to 16... but they still used compressed base samples, iinm.
Crazy enough, heh.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
MisterJones
Trooper
Posts: 387
Joined: Fri Jul 30, 2004 6:25 am
Location: Mexico
Contact:

Post by MisterJones »

MisterJones wrote:How about Snessor?
_-|-_
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

Heh. The only trouble I had with SNESSOR is the stupid 256 limit. ToP and SO (and prolly other games) have way~ more than that, and they're all lost due to stupid hardcoded limit.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
MisterJones
Trooper
Posts: 387
Joined: Fri Jul 30, 2004 6:25 am
Location: Mexico
Contact:

Post by MisterJones »

Was there any reason for such limit?
_-|-_
cnwhitedragon

Post by cnwhitedragon »

Ok this was more complicated than I imagined. I had the crazy notion that there would be a standard wave table of sounds that you would then trigger to form the music. i.e a midi style system. though in the back of my mind from thinks that I had read i was unsure whether this was the case or not.

I will explore the solutions that you guys have suggested very grateful cheers :D. I have a feeling that I will have to explore another solution though has I will be unable to build an instrument as it doesn't work the way that I believed.

Instead of been able to build an instrument that uses original SNES sounds I will have to build one that emulates SNES sounds.

As normal I missed the point a bit.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

MisterJones wrote:Was there any reason for such limit?
Stupidity ?
It's like assuming noone will EVER make an object with more than 512 ressources, and setting a #define MAX_RES 512 as boundary in your scanning code.

That's what I think, at least. Easy enough to check if the snessor source is available somewhere.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

http://home.comcast.net/~brad.martin1/snes.htm

Source might be in one of the archives.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
Post Reply