Homebrew MusicPlayer Advance: ID-ing compression algorithm from 2003 homebrew

therealbenwiley

New Member
OP
Newbie
Joined
Feb 23, 2024
Messages
2
Trophies
0
XP
18
Country
Canada
Hi there, I'm new to these forums, looking for folks who might know about GBA homebrew toolchains from 2003.

I came because I'm working on trying to reverse engineer the ROM-building process for MusicPlayer Advance, Neimod's 2003 WinAMP-inspired homebrew for GBA. I know there are better-maintained music player solutions like GSMPlayer, but I find MPA to be charming and the Windows software for converting audio and packing it into the ROM still works!

The (somewhat tedious) process goes like this:
1. Convert audio files to PCM (WAV) with specific bitrate and sample rate
2. Use MPAWRITE.exe to convert PCM to "MPA" format (mystery compression), one file at a time.
3. Use MPAWRITE.exe to insert a playlist of MPA format tracks into the music player ROM.

I'm a web dev and I want to build a web app that automates this whole process, so you upload a list of songs and it spits out a MusicPlayer Advance ROM with your music included.

I already successfully spec'd the format used for packing MPA into the ROM, but I haven't figured out what compression is used to convert PCM to the MPA format. I figured folks familiar with early GBA homebrew toolchains might be able to provide insights. Were there common types of file compression, or common audio file types, used for homebrew games at the time?

I have attached a folder with all the MusicPlayer Advance files, plus a text file where I describe the spec of the MPA audio storage in the GBA ROM, and also a before/after sample of PCM converted to MPA.
 

Attachments

  • MusicPlayer_Advance_2-20240224T170549Z-001.zip
    1.4 MB · Views: 21
  • Like
Reactions: Titney

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    I'm doing good, just made my first drink of the day, so better now, Captain and Coke today. I had to cut grass all day, then get my hair cut. I messed with my wifey, she knew I was going to get hair cut, and I went and bought a purple dyed wig, and came home wearing it, she freaked out, thinking I dyed my hair purple, was funny.
    +1
  • SylverReZ @ SylverReZ:
    @BigOnYa, Hey BigOnYa
  • BigOnYa @ BigOnYa:
    Hey hope all is well
    +1
  • SylverReZ @ SylverReZ:
    @BigOnYa, And you too :)
    +1
  • S @ salazarcosplay:
    @BigOnYa how are you doing
  • S @ salazarcosplay:
    any mushroom trip adventures you can share
  • JakobAir @ JakobAir:
    Damn, I haven't been on here in while. My wife and I went on a mushroom trip like 10 years ago. A friend had a PS3TV with the glasses and some racing game. It hit when I was playing the game and I freaked out because I thought I was really driving and crashed.
  • K3Nv2 @ K3Nv2:
    Orange ocean Hawaiian punch is pretty good but @BigOnYa keeps putting vodka in it
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    With enough Vodka everything is good
    +1
  • Xdqwerty @ Xdqwerty:
    Im back
  • Xdqwerty @ Xdqwerty:
    We are having a bbq
  • Sicklyboy @ Sicklyboy:
    Nice! Hopefully the weather is good today?
  • Xdqwerty @ Xdqwerty:
    @Sicklyboy, it's a bit cloudy but Yea it's good
    +1
  • K3Nv2 @ K3Nv2:
    80 for us all that rain then mother nature's like have some sun burn
  • Sicklyboy @ Sicklyboy:
    @Xdqwerty, good weather, good food, what's not to like about that? Hope you have a lovely day dude
  • K3Nv2 @ K3Nv2:
    Got some porkchops marinating in honey teriyaki hope it comes out good
  • Sonic Angel Knight @ Sonic Angel Knight:
    Porkchop was the name of that dog in that one cartoon, DOUG! :P
  • Xdqwerty @ Xdqwerty:
    @Sonic Angel Knight, never watched doug
  • Xdqwerty @ Xdqwerty:
    I might play Roblox again
  • BigOnYa @ BigOnYa:
    Nuh jump back to gdevelop
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, i say "play Roblox" not "make games on Roblox"
    Xdqwerty @ Xdqwerty: @BigOnYa, i say "play Roblox" not "make games on Roblox"