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

therealbenwiley

New Member
OP
Newbie
Joined
Feb 23, 2024
Messages
2
Trophies
0
XP
8
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: 15
  • Like
Reactions: Titney

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Materia_tofu @ Materia_tofu:
    im not a very bright individual, but we live and we learn
  • SylverReZ @ SylverReZ:
    @Materia_tofu, We do learn a lot from plenty of talented individuals.
  • Materia_tofu @ Materia_tofu:
    this is true! i learned how to make soundfont remixes from a friend back in 2021
    +1
  • BakerMan @ BakerMan:
    Update on my brother: He's home now, tired and hungry, obviously, but other than that, seems to be doing fine.
    +2
  • Veho @ Veho:
    That's a relief to hear. Do you know what happened?
  • SylverReZ @ SylverReZ:
    @BakerMan, Any idea what happened? I hope that your brother's doing good.
  • BakerMan @ BakerMan:
    Well, from what I've heard from my parents, he had a seizure last night, perhaps an epileptic episode, fucking died, had a near death experience, my dad called the paramedics, they showed up, took him to the hospital, and he woke up covered in tubes, and started complaining.
  • BakerMan @ BakerMan:
    He couldn't eat until after his MRI, when he had a bomb pop.
  • BakerMan @ BakerMan:
    What matters now is that he's doing alright.
  • Veho @ Veho:
    But you still don't know what it was?
  • Veho @ Veho:
    Has he had seizures before?
  • The Real Jdbye @ The Real Jdbye:
    apparently stress can cause seizures, my brother had one during a test once
  • The Real Jdbye @ The Real Jdbye:
    never had one before that, and never had one since
  • Redleviboy123 @ Redleviboy123:
    Question about game texture chanching Do i need an own game id?
  • The Real Jdbye @ The Real Jdbye:
    @Veho for those that want to
    experience being sonic the hedgehog
  • Veho @ Veho:
    Ah, you mean
    furries.
  • The Real Jdbye @ The Real Jdbye:
    well, sonic fans are a whole separate thing from furries
  • The Real Jdbye @ The Real Jdbye:
    like bronys
  • The Real Jdbye @ The Real Jdbye:
    sonic porn is too weird even for me
  • Dumpflam @ Dumpflam:
    bruh
  • Dumpflam @ Dumpflam:
    guys how do i delete a post
  • The Real Jdbye @ The Real Jdbye:
    you don't
  • The Real Jdbye @ The Real Jdbye:
    you can report it and request deletion
    The Real Jdbye @ The Real Jdbye: you can report it and request deletion