News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Mega Man 8 .PAC files and General Modding  (Read 2884 times)

ArcadeGamer1929

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Mega Man 8 .PAC files and General Modding
« on: April 06, 2021, 11:38:03 am »
Hi, this is my first post on ROMhacking.net, as the title says, this post is about Mega Man 8 .PAC files and modding (for both PSX and Saturn), I don't plan on reconstructing disc image files — just for game structure reference and hopefully full-on modding efforts by others in the future —, so I won't be dealing with expanding disc image sizes and other similar things, I'll just be post my findings here.

Graphics aren't the things I'm most interested about, but they're the first thing I made a major discovery about: raw pixel data is stored at the end of a lot of .PAC files, found out by checking them in YY-CHR in the SNES 128x128 mode (this area is garbled in the Saturn files, I'll check this tool when I have access to my laptop later https://github.com/doyousketch2/SatRGB).

In the same .PAC files, there's also some unknown data (and a decent amount of blank data), one of my wild assumptions of it is code, but there could be anything there, I'm pretty sure that — in the level/stage files —part of it is level data; I tried the Rockman 8 BMS script (and also an older version of BioFAT (BioHazard File Archive Tool)), but it only splits the files, sure it's good for separating blank, unknown and image data, but we still have the issue of reading the unknown data, the closest thing I could find that might be able to read this is an unreleased .PAC extraction tool that works for both PSX and Saturn .PAC files by MarkGrass mentioned in the reply in the link http://www.romhacking.net/forum/index.php?topic=17158.msg251100#msg251100.

As for the other files, I don't know where the sound files are in the Saturn version from a glance of the filesystem (it's either somewhere in there, or the app I'm using forgot about the 2nd disc layer), along with the executable in the PSX version (might be SLUS_004.53); there are a couple of .BIN files in the Saturn version which go by the names LOGO.BIN and MAP.BIN, I don't have the means to check them now, but like I mentioned somewhere above, I'll see what I can find out about them when I have access to my laptop later; again in the Saturn version, there's a few WARNING*.BG files and a .TSK file (SDDRVS.TSK) that I didn't come across before.

We have the video files in their respective locations, sound files in the PSX version's SOUND folder, the Saturn-exclusive bonus files and RMs, 1STREAD.PRG and 2NDREAD.PRG are the Saturn executables, ASCII.DOT is probably the font, and a few text files in the Saturn version with Capcom copyright text for the title screen and ending.

I'm interested in finding out how the player works (i.e: movement, hitboxes, buster, etc.) along with finding out how the level data works, but that would probably require looking through the executables and debugging the game, maybe it'll be in the PLAYER.PAC file, who knows.

Anyway that's all for now, if I find out anything later, I'll post more in the replies - Arcade out.

acediez

  • Hero Member
  • *****
  • Posts: 544
    • View Profile
Re: Mega Man 8 .PAC files and General Modding
« Reply #1 on: April 07, 2021, 03:29:11 pm »
Mega Man 8's PAC files are packs of various files concatenated together (not compressed).
IIRC, the header has the same basic structure as Mega Man X4's ARC files, explained here: https://www.romhacking.net/forum/index.php?topic=21714.msg303268#msg303268
There's lots of empty space because each file is padded with 00s to fill a disc sector multiple.

The music in this game, AFAIK, is not in a wavelength audio format like XA, it's in a sequence format similar to what you would find in older consoles (sample audio bits + a sequence file, something like a MIDI). But I don't any specifics about the format or which files are they exactly. The only exception being the END1.DA file (STAFROLL.DA in the japanese version), the ending song. I suppose it was kept on this format on the USA version because it's a fully voiced song in the japanese version.

There's a custom table of contents of the disc that needs to be updated whenever files change location/size within the disc.
It's at 0x77778 inside SLUS_004.53
The structure is: [File Type ID (4 bytes)][File LBA (4 bytes)][File Size (4 bytes)]

Unlike X4, the undub for this game was pretty straightforward: I just had to replace the files in the /SOUND/ directory, the video files, and update the table of contents with the new file locations and sizes, so this is pretty much all I know of this game.
 
Good luck with your documentation!

MeganGrass

  • Jr. Member
  • **
  • Posts: 67
    • View Profile
    • GitHub
Re: Mega Man 8 .PAC files and General Modding
« Reply #2 on: April 28, 2021, 02:00:42 pm »
Hello!

Here's the basic utility I created for MegaMan 8 PAC files. Sorry..! Thought I had released it before..!!
 https://drive.google.com/file/d/1fOKFTdv3OE0TmC2KrNlo_I5BeEWyapgQ/view?usp=sharing

It does reassemble the extracted data to PAC archives (for both PS and Saturn), but it does not disassemble the data within. Also, never mind the "MHP" option in the GUI menu; it was testing for another game entirely.

There's also an option to update the LBA stored within the PS executables, if you plan to modify the PAC containers beyond their original size. Additionally, there's some commandline options built-in to this, like so:

<EXE> PS DIS <FILENAME>
<EXE> PS ASM <FILENAME>
<EXE> PATCHEXE <FILENAME>

Sadly, I don't quite recall exactly how the LBA updater works atm, but I can look into it if needed; I still have the source. Just DM me.


I initially had plans to reverse-engineer this game after I discovered the retail build had a fully functional debug menu hidden within, but I got extremely busy with work plus college, and kind of moved on with other things.

What I do remember is is what you've already mentioned: there's raw pixel and palette data in the PAC files. Specifically for the PS version, the palette data is stored in huge chunks, where each palette is 0x20 bytes (4bpp).

There's also chunks of code in some of these, more commonly referred to as overlays. I don't recall if they're statically or dynamically placed in memory, as this is about the point where I stopped. There's a GUI option to inject the overlays into the executable for debugging (this was pre-Ghidra days).

Beyond that, here are some notes I made when going through this executable with IDA years ago:

Code: [Select]
// SLUS_004.53

// Controller
801B2954 // Controller 1
801B2958 // Controller 1 (delay)
801B295C // Controller 2
801B2960 // Controller 2 (delay)

800F8864 // ref in main
800FED58 // SOUND TEST
800FEF94 //
800FF47C //
800FF5C0 //
80101488 // (unused reference)
801019D0 // Main Game
80103B14 // (unused reference)

// STR
800FD30C // CAPCOM STR
800FD444 // Controller Input for Miscellaneous STR
800FD5B8 // Miscellaneous STR
800FD654 // STR Playback (StSetStream, DecDCT) 0x2CC bytes
800FD9C8 // STR Playback (DecDCT) 0x284 bytes

// General
800FCD84 // Pre-Graphic (Swirl, Block, etc)
800FEBEC // Dr. Light's Lab
801003FC // Lost Life, Reset Level (use args)
80100438 // Lost Life, Reset Level (use args)
801004A8 // Now Loading (use args)
80100660 // Lost Life, Reset Level at Continue Point (use args)
8010073C // Now Loading (use args)
801008C8 // Exit to Stage Select
80100954 // Exit to Stage Select
80100A20 // Exit to Stage Select
80100A34 // Initialize Intro Stage
80100C34 // Initialize Stage
801010B0 // Graphic + Stage Clear + Save Game
8010123C // Stage Clear + Save Game
80101460 // End Credits
801017A4 // Display Tile Data
801218C0 // Save Game
80121CD4 // End Credits
80134944 // Title Screen
80134AFC // Title Screen
80134C2C // Title Screen

// Debug
80134E7C // Debug Menu
80134FA0 // MAIN MENU
801350F0 // FLAGCHANGE
80135368 // WORKVIEW
80135738 // VABVIEW
80135A8C // POWERUP
80135D74 // PARTS
8013609C // Statistical Display for FLAGCHANGE
801363F4 // Preset Variables for FLAGCHANGE
80136438 // Selection Cursor
801364D8 // WORKVIEW (Page 1)
801365D8 // WORKVIEW (Page 2)
80136728 // WORKVIEW (Page 3)
801367C4 // WORKVIEW (Page 4)
801368C4 // SOUND TEST
80136AF8 // SOUND TEST Equalizer

// Variables
8015E282 // Invulnerable (0x01=MAX)
8015E283 // Energy (0x80=MAX)
801C336E // Level ID
801C3370 // Lives (0x09=MAX)
801C3371 // Level Point ID
801C3373 // Level Load Flag (if 1, stage file is reloaded from disc)
801C3374 // Level Continue Pt Flag (if 1, "Continue Point" screen is displayed)
801D28F8 // Current BGM ID

Code: [Select]
This code controls which graphic will display when entering levels, etc.

li $v0, 1
sb $v0, 0x801D1848
j 0x80102E84
li $a0, 0x02 ; argument values range from 0x00~0x13
j 0x800FCD84
nop

// values
0x00 Multi Swirl (Stage Load)
0x01 Multi Swirl (Stage Load)
0x02 Block Zoom (Title Screen) (Screen black as visible block area gets larger)
0x03 Block Zoom (Title Screen) (opposite of above)
0x04 Snake Domino (Screen black as visible block produces domino effect)
0x05 Snake Domino (opposite of above)
0x06 Ripple 1 (Screen black as visibility ripples downward)
0x07 Ripple 2 (Screen black as visibility ripples upward)
0x08 Ripple 3 (Screen black as visibility ripples leftward)
0x09 Ripple 4 (Screen black as visibility ripples rightward)
0x0A Ripple 5 (Stage Select)
0x0B Ripple 6 (Stage Select)
0x0C Ripple 7 (Stage Select) (Wily)
0x0D Ripple 8 (Stage Select) (Wily)
0x0E Time Swirl (Continue Point)
0x0F Time Swirl (Continue Point)
0x10 Multi Block Pt 1 (Status Screen)
0x11 Multi Block Pt 2 (Status Screen)
0x12 Same as Ripple 4, but faster
0x13 Same as Ripple 3, but faster

256x240

Code: ("STAGE00.PAC") [Select]
03 Has something to do with layout (visual)
04 Has something to do with layout (collision)
05 Has something to do with enemy sprites
09 4bpp CLUT
10 ???
11 TEXTURE
12 TEXTURE
13 TEXTURE
14 4bpp CLUT
15 Item Description, Cutscene Text
16 TEXTURE
17 TEXTURE

Code: ("SELECT") [Select]
----------------
File #09
----------------
CLUT for File #11

----------------
File #10
----------------
CLUT for File #12

----------------
File #11
----------------
4bpp
256x256
0x8000 bytes per chunk

00 Earth (Pt. 1)
01 Earth (Pt. 1), Font, Cursors
02 Stage Previews
03 Enemy Avatars
04 Enemy Sprites (Pt. 1)
05 Enemy Sprites (Pt. 2)
06 Enemy Sprites (Pt. 3)
07 Enemy Sprites (Pt. 4)

----------------
File #12
----------------
"Disco" graphics


April 28, 2021, 02:08:02 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Also, I found some assembly hacks I made with armips: https://drive.google.com/file/d/1-WFv0OrkbugN9A0ubB57Ui25ovN7rp7l/view?usp=sharing

More specifically, these hacks enable the debug menu in MegaMan 8 USA Retail (SLUS_004.53) executable. The file-dates on this stuff is from 2012/2013, so I don't know if current builds of armips will play nicely with it.

Please note that "Stage Select" is not part of the vanilla debug menu; I created it from scratch and added it to aid any an debugging/modding efforts. Beyond that, I recall having to patch the Sound Test to get it properly working.
« Last Edit: April 28, 2021, 02:08:02 pm by MeganGrass »

pianohombre

  • Sr. Member
  • ****
  • Posts: 336
    • View Profile
    • My personal website of short stories and comics
Re: Mega Man 8 .PAC files and General Modding
« Reply #3 on: April 28, 2021, 05:53:39 pm »
This is a bit off-topic, but I enjoyed playing cutman and woodman, in beautiful 32-bit architecture, on the sega saturn for mm8.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Linus Torvalds

ArcadeGamer1929

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Mega Man 8 .PAC files and General Modding
« Reply #4 on: April 30, 2021, 06:06:26 pm »
Hello!

Here's the basic utility I created for MegaMan 8 PAC files. Sorry..! Thought I had released it before..!!
 https://drive.google.com/file/d/1fOKFTdv3OE0TmC2KrNlo_I5BeEWyapgQ/view?usp=sharing

It does reassemble the extracted data to PAC archives (for both PS and Saturn), but it does not disassemble the data within. Also, never mind the "MHP" option in the GUI menu; it was testing for another game entirely.

There's also an option to update the LBA stored within the PS executables, if you plan to modify the PAC containers beyond their original size. Additionally, there's some commandline options built-in to this, like so:

<EXE> PS DIS <FILENAME>
<EXE> PS ASM <FILENAME>
<EXE> PATCHEXE <FILENAME>

Sadly, I don't quite recall exactly how the LBA updater works atm, but I can look into it if needed; I still have the source. Just DM me.


I initially had plans to reverse-engineer this game after I discovered the retail build had a fully functional debug menu hidden within, but I got extremely busy with work plus college, and kind of moved on with other things.

What I do remember is is what you've already mentioned: there's raw pixel and palette data in the PAC files. Specifically for the PS version, the palette data is stored in huge chunks, where each palette is 0x20 bytes (4bpp).

There's also chunks of code in some of these, more commonly referred to as overlays. I don't recall if they're statically or dynamically placed in memory, as this is about the point where I stopped. There's a GUI option to inject the overlays into the executable for debugging (this was pre-Ghidra days).

Beyond that, here are some notes I made when going through this executable with IDA years ago:

Code: [Select]
// SLUS_004.53

// Controller
801B2954 // Controller 1
801B2958 // Controller 1 (delay)
801B295C // Controller 2
801B2960 // Controller 2 (delay)

800F8864 // ref in main
800FED58 // SOUND TEST
800FEF94 //
800FF47C //
800FF5C0 //
80101488 // (unused reference)
801019D0 // Main Game
80103B14 // (unused reference)

// STR
800FD30C // CAPCOM STR
800FD444 // Controller Input for Miscellaneous STR
800FD5B8 // Miscellaneous STR
800FD654 // STR Playback (StSetStream, DecDCT) 0x2CC bytes
800FD9C8 // STR Playback (DecDCT) 0x284 bytes

// General
800FCD84 // Pre-Graphic (Swirl, Block, etc)
800FEBEC // Dr. Light's Lab
801003FC // Lost Life, Reset Level (use args)
80100438 // Lost Life, Reset Level (use args)
801004A8 // Now Loading (use args)
80100660 // Lost Life, Reset Level at Continue Point (use args)
8010073C // Now Loading (use args)
801008C8 // Exit to Stage Select
80100954 // Exit to Stage Select
80100A20 // Exit to Stage Select
80100A34 // Initialize Intro Stage
80100C34 // Initialize Stage
801010B0 // Graphic + Stage Clear + Save Game
8010123C // Stage Clear + Save Game
80101460 // End Credits
801017A4 // Display Tile Data
801218C0 // Save Game
80121CD4 // End Credits
80134944 // Title Screen
80134AFC // Title Screen
80134C2C // Title Screen

// Debug
80134E7C // Debug Menu
80134FA0 // MAIN MENU
801350F0 // FLAGCHANGE
80135368 // WORKVIEW
80135738 // VABVIEW
80135A8C // POWERUP
80135D74 // PARTS
8013609C // Statistical Display for FLAGCHANGE
801363F4 // Preset Variables for FLAGCHANGE
80136438 // Selection Cursor
801364D8 // WORKVIEW (Page 1)
801365D8 // WORKVIEW (Page 2)
80136728 // WORKVIEW (Page 3)
801367C4 // WORKVIEW (Page 4)
801368C4 // SOUND TEST
80136AF8 // SOUND TEST Equalizer

// Variables
8015E282 // Invulnerable (0x01=MAX)
8015E283 // Energy (0x80=MAX)
801C336E // Level ID
801C3370 // Lives (0x09=MAX)
801C3371 // Level Point ID
801C3373 // Level Load Flag (if 1, stage file is reloaded from disc)
801C3374 // Level Continue Pt Flag (if 1, "Continue Point" screen is displayed)
801D28F8 // Current BGM ID

Code: [Select]
This code controls which graphic will display when entering levels, etc.

li $v0, 1
sb $v0, 0x801D1848
j 0x80102E84
li $a0, 0x02 ; argument values range from 0x00~0x13
j 0x800FCD84
nop

// values
0x00 Multi Swirl (Stage Load)
0x01 Multi Swirl (Stage Load)
0x02 Block Zoom (Title Screen) (Screen black as visible block area gets larger)
0x03 Block Zoom (Title Screen) (opposite of above)
0x04 Snake Domino (Screen black as visible block produces domino effect)
0x05 Snake Domino (opposite of above)
0x06 Ripple 1 (Screen black as visibility ripples downward)
0x07 Ripple 2 (Screen black as visibility ripples upward)
0x08 Ripple 3 (Screen black as visibility ripples leftward)
0x09 Ripple 4 (Screen black as visibility ripples rightward)
0x0A Ripple 5 (Stage Select)
0x0B Ripple 6 (Stage Select)
0x0C Ripple 7 (Stage Select) (Wily)
0x0D Ripple 8 (Stage Select) (Wily)
0x0E Time Swirl (Continue Point)
0x0F Time Swirl (Continue Point)
0x10 Multi Block Pt 1 (Status Screen)
0x11 Multi Block Pt 2 (Status Screen)
0x12 Same as Ripple 4, but faster
0x13 Same as Ripple 3, but faster

256x240

Code: ("STAGE00.PAC") [Select]
03 Has something to do with layout (visual)
04 Has something to do with layout (collision)
05 Has something to do with enemy sprites
09 4bpp CLUT
10 ???
11 TEXTURE
12 TEXTURE
13 TEXTURE
14 4bpp CLUT
15 Item Description, Cutscene Text
16 TEXTURE
17 TEXTURE

Code: ("SELECT") [Select]
----------------
File #09
----------------
CLUT for File #11

----------------
File #10
----------------
CLUT for File #12

----------------
File #11
----------------
4bpp
256x256
0x8000 bytes per chunk

00 Earth (Pt. 1)
01 Earth (Pt. 1), Font, Cursors
02 Stage Previews
03 Enemy Avatars
04 Enemy Sprites (Pt. 1)
05 Enemy Sprites (Pt. 2)
06 Enemy Sprites (Pt. 3)
07 Enemy Sprites (Pt. 4)

----------------
File #12
----------------
"Disco" graphics


April 28, 2021, 02:08:02 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Also, I found some assembly hacks I made with armips: https://drive.google.com/file/d/1-WFv0OrkbugN9A0ubB57Ui25ovN7rp7l/view?usp=sharing

More specifically, these hacks enable the debug menu in MegaMan 8 USA Retail (SLUS_004.53) executable. The file-dates on this stuff is from 2012/2013, so I don't know if current builds of armips will play nicely with it.

Please note that "Stage Select" is not part of the vanilla debug menu; I created it from scratch and added it to aid any an debugging/modding efforts. Beyond that, I recall having to patch the Sound Test to get it properly working.
This is great! While I did lose interest in this, your reply made me decide to dig a little deeper into this game, what I've done so far is related to the sound files (along with a few other minor findings in a Discord server), so I will document that for now:

This might be common knowledge at this point, as some people have managed to extract and edit some of the songs, but the PSX version's music files do seem to be samples and MIDIs (much like what acediez was saying), found in the SOUND folder, they can be opened with VGMTrans and converted into a MIDI/SF2 (or DLS) combo, or the files can be extracted with VGMToolbox's PSF tools (manually, 00000001-00000003 are the VH, VB and SEQ files respectively).

For the Saturn version's sound effects (and possibly music), they're in PAC files that are usually 168 KB or very close to it, 00000001 (otherwise known as the 2nd/last part of the archive) can be opened as raw audio data, with Audacity, the settings to import them are Signed 8-bit PCM, Little-endian, 1 Channel (Mono), and Sample rate 11025 Hz (Start offset can be set to 4576 bytes I think if importing the PAC archive, but there's usually no need since the data before the audio is little), some of the sound effects are sped up or slowed down for whatever reason, but that can usually be corrected by speeding up or slowing down the audio by 25% or 50%, there are also song samples which I'll talk about below.

An alternative way to grab the Saturn version's sound effects along with potential music would be to use CyberWarriorX's seq2mid and toncnv tools, the former of which is harder to use being a 16-bit program, which requires either DOSBox or a 32-bit PC, toncnv however is a 32-bit program, which can either output the samples as WAV files or a DLS soundfont file. Both can be downloaded here http://cyberwarriorx.com/saturn-utilities.

Tile Molester seems to view the PSX version's sprites just fine (4bpp linear, reverse order; 2-Dimensional), but a lot of the player sprites seem to be stretched and "lined" (don't know what the word for it is):



I've also tried going through the Saturn version's sprites, but they seem to be using some sort of data jumbling method which makes them unviewable in sprite viewers.

And that's all I have for now!

ArcadeGamer1929

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Mega Man 8 .PAC files and General Modding
« Reply #5 on: June 09, 2021, 03:30:54 pm »
I'm back, I had an itch to try and document more Mega Man 8 stuff today, so I did that, and this is what I've found so far:

I managed to find out how to somewhat view the Saturn version's sprites using the same tool as before, it's a little squished, but it's viewable.
Code: [Select]
PLAYER.PAC (Saturn): 8bpp linear, 1-Dimensional, Row-interleaved
What I also noticed with the Saturn version of the sprites, is that there isn't palette data scattered all across the file, if I had to guess, it would be because the Saturn doesn't use the PSX's style of CLUTs.

Similar discovery with stage tiles, they use a different codec in the Saturn version.
Code: [Select]
STAGE00.PAC (Saturn): 4bpp linear, 1-Dimensional

I found this out once when I was bored and completely forgot to document it, every file in the Saturn version's BONUS folder (where the official artwork images are) is viewable in greyscale using the same sprite viewer.
Code: [Select]
ILL00.PAC (any ILL**.PAC file works): 32bpp RGBA (8888), 1-Dimensional

ST***.PAC in the Saturn version seems to be where level music (and first 2 boss themes) are stored. LOGO.BIN is the Saturn version's equivalent of CAPCOM15.STR (Capcom logo FMV) from the PSX Version. MEG8_ABS.TXT, MEG8_BIB.TXT and MEG8_CPY.TXT from the Saturn version is a description of the game, the credits "Presented by Capcom" text, and the title screen copyright text respectively.

And that's all at the moment, side thought I had, I've been thinking about making a list detailing what every file contains (music, graphics, etc.) for reference and for if I feel like making graphics and sound rips for this game one day.

pianohombre

  • Sr. Member
  • ****
  • Posts: 336
    • View Profile
    • My personal website of short stories and comics
Re: Mega Man 8 .PAC files and General Modding
« Reply #6 on: June 09, 2021, 09:14:20 pm »
You should try and see if you can find the sprite and palette information for Cutman and Woodman in the Saturn version, and the code for their behavior then try and include it in the PSX version. If that's something you'd like to try let me know.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Linus Torvalds

ArcadeGamer1929

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Mega Man 8 .PAC files and General Modding
« Reply #7 on: June 13, 2021, 03:20:10 pm »
You should try and see if you can find the sprite and palette information for Cutman and Woodman in the Saturn version, and the code for their behavior then try and include it in the PSX version. If that's something you'd like to try let me know.
I know how to view the Cut Man and Wood Man sprites, everything else is a little complicated though, I know where the palettes are but I don't know how to actually view them, the code is also outside my knowledge at the moment, it'll probably be possible in the future when a code documentation/disassembly becomes a thing.
Additionally, I don't know how to view the sprites without some sort of squishing or stretching, but it shouldn't be hard with a little hex editing to see what pixel mode it uses.

Code: [Select]
STAGE09.PAC / STAGE08.PAC (Saturn): 8bpp linear, 1-Dimensional

And that's all at the moment, side thought I had, I've been thinking about making a list detailing what every file contains (music, graphics, etc.) for reference and for if I feel like making graphics and sound rips for this game one day.
In 2-3 days along with countless sidetracks, I've finished making the filesystem descriptions for both versions of the game, they're available in the attachment at the bottom of the post in the filesystem-descriptions folder.

I've also converted some tracks to MIDIs, being: Tengu Man's Stage (Sega Saturn), Tengu Man's Stage (PlayStation), Cut Man's Theme (Sega Saturn exclusive), Wood Man's Theme (Sega Saturn exclusive); only PSX Tengu Man has a soundfont, since seq2mid can't choose the correct instruments due to a limitation with the Sega Saturn's SEQ format, and accurate soundfonts for the Sega Saturn version might be impossible at the moment (trust me I spent hours trying) because of toncnv not being to grab loop points, a couple of conversions from .DLS to .SF2 haven't helped either, maybe it's possible with an emulator...?
With that aside, the MIDIs are available in available in the attachment at the bottom of the post in the MM8-MIDIs folder.

Quote
seq2mid
Speaking of seq2mid, I've managed to fix the compiler errors with the original C code, which allows non-16-bit (Win32/64-bit) builds to be made, it's a simple fix: just add these lines of code near the top of seq2mid.c
Code: [Select]
#define MAXPATH   80
#define MAXDRIVE  3
#define MAXDIR   66
#define MAXFILE   9
#define MAXEXT   5
...then compile it with the command
Code: [Select]
gcc seq2mid.c decode0.c(replace gcc with your compiler of choice). If you can't compile it for whatever reason, then it's available in the attachment at the bottom of the post as seq2mid-fixed/seq2mid-win32-gcc.exe.


https://www.dropbox.com/s/rjmu2ldt6npt5jv/mm8-stuff.zip?dl=0