Luigi's Mansion and Pikmin 1 MIDI Files! by Yoshimaster96 at 6:55 PM EDT on October 15, 2015
I ripped them, finally:

https://www.dropbox.com/s/d9vv2vyg6pc5anr/luigiseq.zip?dl=0

https://www.dropbox.com/s/f09sjm8n09ggiu0/pikiseq.zip?dl=0

edited 6:56 PM EDT October 15, 2015
by dj4uk6cjm at 7:40 PM EDT on October 15, 2015
Yayy! How did you get your BMSDEC3 app to support the Luigi's Mansion bms files? Very awesome that you were able to rip them anyway, thanks.
by Yoshimaster96 at 7:58 PM EDT on October 15, 2015
I actually created a new program, BMS_DEC.

https://www.dropbox.com/s/qj8lcq42wk1rmz0/BMS_DEC.C?dl=0

edited 8:04 PM EDT October 15, 2015
by dj4uk6cjm at 8:08 PM EDT on October 15, 2015
Ah nice, were there more games that didn't support the old bms to midi website method? I know LM was one, didn't know pikmin conversion never worked either.
by Yoshimaster96 at 8:13 PM EDT on October 15, 2015
The PHP script was always buggy, I could never get it to work with any game. So I made a C script. The advantage of mine is that it only uses <stdio.h>, so is platform independent.
by hcs at 8:39 PM EDT on October 15, 2015
IPFS mirrors:
luigiseq.zip
pikiseq.zip

Thanks Yoshimaster96, you might consider putting this up on github. In the meantime:
BMS_DEC.C

edited 8:40 PM EDT October 15, 2015

edited 4:31 AM EDT October 16, 2015
by Yoshimaster96 at 6:31 PM EDT on October 16, 2015
Finally put it on GitHub:

https://github.com/Yoshimaster96/BMS_DEC
by robotortoise at 1:59 AM EDT on October 17, 2015
This is fantastic, Yoshimaster96!

I can't wait to try it out!
by Koto at 12:06 PM EDT on October 17, 2015
Cool, but there's a proper soundfont to play this? Will be released another sets of BMS in the future?

Thanks
by Yoshimaster96 at 1:21 PM EDT on October 17, 2015
You mean the instruments? Those are not in the BMS file at all, they're in separate AW files. It's easy enough to extract the waves, but the note mapping, ADSR envelopes and the like are not documented.
by dj4uk6cjm at 4:03 PM EDT on October 17, 2015
I believe koopatroop ripped the wav files for Luigi's Mansion a while back and made a thread about here: http://hcs64.com/mboard/forum.php?showthread=37532 specifically this link. It has all the instruments, wish there was a way to make a soundfont.
by kode54 at 5:59 AM EDT on October 18, 2015
Congratulations on an excellent start in the world of data analysis! Identifying the rest of those data structures may also yield even more data, such as the envelope or key data for the instruments, assuming that is stored in the BMS files.
by Yoshimaster96 at 8:25 AM EDT on October 18, 2015
Sorry, but the BMS files don't contain that information. They're in a separate "initialization" file.
by Yoshimaster96 at 6:13 PM EDT on October 18, 2015
Donkey Kong Jungle Beat:
https://www.dropbox.com/s/ijkw86r702fa8me/dkjbseq.zip?dl=0

Mario Kart Double Dash:
https://www.dropbox.com/s/3oddq29zcf1pcr6/mkddseq.zip?dl=0
by robotortoise at 3:45 PM EDT on October 19, 2015
The Wind Waker bms sequences work, though Four Swords Adventures and Twilight Princess don't. Presumably it's a newer version of bms.
by kode54 at 3:35 AM EDT on October 22, 2015
Debugging the parser on those files may yield information needed to find as yet unparsed message numbers. Of course, it will probably require examination in a hex editor and a keen eye to determine those messages' lengths, and whether or not they're anything that should be translated, or simply skipped.

Future hints for development. Don't be afraid to use memory allocation, especially if it can help avoid use of tiny temporary files. Don't worry about allocating memory out of order, either. You can just allocate the blocks you need, then assemble them into the file when you write it to disk.

I probably would have read the entire BMS to memory, depending on how large they are, and skip forward using the pointer and the size. Since we're talking C here, clever use of macros could probably reduce the code footprint of running range checks on the size remaining in memory.

ie.

#define skip(n) { ptr += (n); size -= (n); if (size < 0) handle error; }
#define read(ptr, n) { if (size < (n)) handle error; memcpy((ptr), file_ptr, (n)); file_ptr += (n); }


Or, alternatively, using the same macro definitions to check for errors from fseek and fread, in case file truncation should result in a safe failure.

Unknown messages should obviously result in a big honking error reporting the exact message code, so you don't have to run it under a debugger to find the problem.

Congratulations on what you've done so far, though. There probably haven't been any major format breakthroughs in the MIDI-like format community since the foobar2000 author cracked HMI and HMP over 10 years ago, which I later rewrote. (He gave me his code way back when, and instead of rewriting the ugly bunch of it like I should have, I used it verbatim, the dunce I am.)
by Yoshimaster96 at 8:54 AM EDT on October 23, 2015
There are BMS files in Mario Kart Double Dash, but some of them are empty. The files are as follows:

0001.bms : JA_BGM_TITLE
0002.bms : JA_BGM_SELECT
0003.bms : JA_BGM_OPTION
0004.bms : JA_BGM_RECORD
0005.bms : JA_BGM_START_FANFARE
0006.bms : JA_BGM_START_FANFARE2
0008.bms : JA_BGM_START_FANFARE4
0009.bms : JA_BGM_START_FANFARE5
0010.bms : JA_BGM_START_FANFARE6
0011.bms : JA_BGM_STAR
0012.bms : JA_BGM_FINALLAP_FANFARE
0013.bms : JA_BGM_WANWAN

11, 12, and 13 appear empty in my ROM. Maybe it's a bad ROM, so I'll have to test that.
by dj4uk6cjm at 10:59 AM EDT on October 23, 2015
At least there were some themes kept worthy enough for bms format as opposed to being streamed, let me know what you find out about MKDD. Would very much like to have all the midis from the game even if they are such a few, maybe try a NTSC rom version of the game if there is one (can't remember) and see if that works. Thanks.
by Yoshimaster96 at 6:23 PM EDT on October 23, 2015
I tried to test the star music, and it played. This confirms that the music is elsewhere.

[EDIT]

Confirmed. By ripping the instruments with wsyster, it turns out the last three songs are instruments, and not sequences.

edited 10:56 AM EDT October 24, 2015
by dj4uk6cjm at 4:01 PM EDT on October 25, 2015
Cool find! Do you mind uploading the instrument samples? I could use them for something I'm sure, thanks.
by Yoshimaster96 at 7:31 AM EDT on October 26, 2015
All of the samples, or just the songs?
by dj4uk6cjm at 8:49 AM EDT on October 26, 2015
I don't need the songs if they are streamed so just the samples.
by Yoshimaster96 at 9:26 AM EDT on October 26, 2015
There are songs in the samples, that's what I mean.
by robotortoise at 6:53 PM EDT on October 27, 2015
Do you think you could implement this into VGMtrans? That would be the best way to future-proof this BMS to midi conversion and continue development of it, as VGMtrans is pretty popular, IMO.

https://github.com/vgmtrans/vgmtrans
by dj4uk6cjm at 7:11 PM EDT on October 27, 2015
I see xD silly of me to get that confused, okay I'll take what I can get if you still have them and can obliged, thanks and I agree with robo we need more VGM formats supported into that program. Hope you would consider working with the author loveemu in the future.
by Uikri at 2:57 AM EST on November 20, 2015
Whoa! Could this be used to rip the music from Pikmin 2?! Do you have the soundfonts (or whatever they're called)?

edited 3:03 AM EST November 20, 2015


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source