(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
04-29-24 04:50 AM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Super Mario 64 Text Wrangler 1.0b Release! New poll | |
Pages: 1 2Add to favorites | Next newer thread | Next older thread
User Post
Yoronosuku

Toss Tortoise


 





Since: 11-17-05
From: Massachusetts is my new home..

Last post: 6279 days
Last view: 6279 days
Skype
Posted on 04-14-06 01:32 AM Link | Quote
I already have the sample format done and extracted them all a very long time ago....and I think it was Bouche or Keitaro who knew the music format, one of them more extensively (which makes me think it was Bouche..)
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6279 days
Last view: 6279 days
Posted on 04-14-06 02:05 AM Link | Quote
Keitaro sent me a bunch of samples extracted from the game, but IIRC he just used a tool to rip them. I also seem to remember Bouche saying things about the music format being MIDI-like.
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6470 days
Last view: 6470 days
Posted on 04-14-06 02:11 AM Link | Quote
I'm %99 sure that it's midi. This is what n64lib use and Mario 64 is using it. The main problem is that it's compressed using a Nintendo format. I never checked in RAM though... maybe they are there uncompressed?

It's clear to me that Dire Dire Docks was played by a human on a standard pressure sensitive midi keyboard (I would guess, Koji Kondo himself?).
DJ Bouche

Koopa


 





Since: 11-22-05
From: Bligh Park, NSW, Australia

Last post: 6441 days
Last view: 6441 days
Posted on 04-19-06 10:27 AM Link | Quote
The music is not MIDI. You can extract it to MIDI, but as far as I am concerned it still looks like a total mess to me. Yes, it's MIDI-based, as in it's still 7-bit note based, 7-bit instrument based and such. I do have very minimal amount of information on this format I'll gladly post if you want. In short the song itself consists of some big mama sequence that assigns read addresses for each MIDI track, and such and blah, and crap that leads to sub-sequences that seem to call sub-seqences.. etc etc... of course I could just be looking at it all wrong, after all I didn't get much time for this.

Samples can be easily extracted by SRIP, and as you can see from the header file, it uses a different format (as in the way the sample/inst properties are structured) from the common (only other games I know off-hnad which use this are Zelda series, MK64, Animal Crossing)

To be straight, this is NOT the common compressed MIDI format that is in that common library, and those games use the initial structure that SRIP supported (and can properly display the names of the properties). This MIDI format actually is just MIDI with some tweaks to allow for loops and note on/off events are simplified to a single note on event with a length param. This one is used in many many N64 games including but not limited to: Goldeneye, Perfect Dark, Mario Party, and other stuff I can't be bothered to recall.

And MIDI keyboards have been used miles back, wouldn't be surprised if they aided in even NES games. If you listen to Yoshi Island music and hear how some things are delayed a little bit after the beat or triggered slightly before the beat and the natural variation of velocity, you could argue that it was recorded from a MIDI keyboard. SM64 songs are like that too, and DDD being the most obvious (and you have my confirmation that it is humanly playable note for note ).

And both the table of sequence pointers and the sequences themselves are uncompressed in the ROM, they are not stored in MIO0 or anything like that.
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6470 days
Last view: 6470 days
Posted on 04-19-06 07:37 PM Link | Quote
What you stumbled upon is the ABI (Audio Binary Interface) commands. These control the MIDI player, assign instruments to tracks, add loops and override various other things that can be already part of the MIDI data. As described in the some n64 doc: "The N64 Audio Lib supports the play of musical sequence that conform to the Standard MIDI Files 1.0 spec for Type 0 MIDI files." And then they refer to the "Standard MIDI Files 1.0" specification. Nothing is said about having a special modified MIDI file. I don't know why they would have bothered to do otherwise.

The only thing is that Nintendo uses its own compression format to compress the actual midi data. What you found refers to what's inside the compressed MIDI files.

There are two ways of playing MIDI files using the n64 lib. One is using the compressed MIDI music player which will play music by itself, and the other using some ABI commands to go step by step in the MIDI file. I guess for Mario 64 it's the latter, but still it's supposed to refer to standard MIDI files.

Music on the NES was first only possible through Nintendo's own limited musical tools on the NES devkit. Hirokazu "Hip" Tanaka built his own tools, and did a lot of audio programming on paper Other companies may have built their own tools. While at some point, some NES development tools may have imported MIDI files, the NES and devkit itself never played MIDI files directly and was not made with MIDI in mind. To make a NES tune sound good and with a distinctive tone, you had to have much more than just notes, it required a lot of tricks.

But do you know what keyboard was probably used to compose some of the most famous NES tunes? It's called the "Casio VL-Tone"

The SNES had a powerful sound chip that was also best harnessed by custom tools and was not necessarily built to fit the MIDI spec. Again, MIDI imports were probably feasible, but intermediary formats were probably used to fit the sound chip capabilities better.

The n64 has no sound chip, Nintendo decided to build a software MIDI player instead of inventing yet another format for music. Nintendo didn't produce a music editing program for the n64, how do you expect developers to produce music if like you say it's non-standard MIDI?

I guess that somehow we are both right or both wrong

So where did you found all that data? Any addresses?
d4s

Shyguy








Since: 12-01-05

Last post: 6401 days
Last view: 6299 days
Posted on 04-19-06 08:10 PM Link | Quote
Originally posted by VL-Tone
The SNES had a powerful sound chip that was also best harnessed by custom tools and was not necessarily built to fit the MIDI spec. Again, MIDI imports were probably feasible, but intermediary formats were probably used to fit the sound chip capabilities better.


just a sidenote:
the american snes devkit (emulator se) has hardware midi-support built-in.
apart from the normal workram, it has a special spc program on an eprom and you can directly record and play back midi sequences with it.
it is even able to produce brr samples directly from an analog feed.

however, its beyond me how youre supposed to create nice-sounding, small and good-looping brr-samples from an analog input.

it usually takes a lot of tweaking to get them to sound and especially loop good even if youre editing them digitally on a per-sample basis.

didnt get my emulator se to run yet, so i cant comment on how good it actually works, but thats what the manual says.


(edited by d4s on 04-19-06 07:11 PM)
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6470 days
Last view: 6470 days
Posted on 04-21-06 01:41 AM Link | Quote
I didn't know that about the SNES devkit... interesting

Still I don't think SNES carts contained actual MIDI files, even compressed, but my point though is that on the N64 it's different. I don't know any valid reason why they wouldn't use standard MIDI, as Nintendo wrote their N64 music player entirely in software.
jensthecomposer

Paratroopa


 





Since: 05-18-06
From: Norway

Last post: 6283 days
Last view: 6279 days
Posted on 05-20-06 04:49 PM Link | Quote
VL-Tone, could you make a option to replace the sound samples?? It would be great!!
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6280 days
Posted on 05-20-06 05:01 PM Link | Quote
Oh this is awsome, great work!
Pages: 1 2Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Super Mario 64 Text Wrangler 1.0b Release! |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.016 seconds; used 393.22 kB (max 483.59 kB)