About Me

Curriculum Vitae

A brief list of my current skill set


Gosh This Site Is Old
Thursday, 18th November 2021, 22:08

I might update this one day, but until I do take a lot of it with a pinch of salt!

Automatically Cropping Images is Hard
Monday, 21st October 2013, 19:00

But maybe we can use face detection?

The Git Cheat Sheet
Friday, 6th September 2013, 11:30

for github, bitbucket, that kinda stuff

CoffeeScript and TypeScript are a Burden
Saturday, 17th August 2013, 11:21

Be sure you understand the cons as well as the pros

Changing the Order of the jQuery Event Queue
Wednesday, 3rd July 2013, 20:27

It's just a push to the left

Projects and Sillyness

MAME Cabinet Diary

How I built my own arcade cabinet

Loading Screen Simulator

I don't miss the ZX Spectrum, I still use it!

The Little Guy Chat Room

It's a Pitfall inspired chat room


A fully featured MP3 player what I wrote

GP Space Invaders

My first little emulator

GP32 Development Page

Some info and links about this cute little handheld

Disney Nasties

Uncensored images, you must be 18 to view them

Diary of a Hamster

Learn about how hamsters think, first hand


Time Calculator

A simple little online utility for working out how many hours to bill a client

A Few Links


The MP3 player which is part of the GP32 default firmware is just pants, only handling 128kps stereo bitrates, and very unresponsive. Since the main reason for me to listen to MP3 files is for the purpose of talking books, I need to seek backwards and forwards through running times of up to 30 minutes or more, otherwise I have to sit through the same crap over and over again just to hear the last 50 seconds of a chapter I nodded off during.

So you can already see that having to convert existing MP3 files to the right bitrate is a pain, and added to the lack of seeking functions, all before you consider the poor responsiveness of the built in player, is reason enough to write my own.

Well, actually not entirely write my own, more like create a wrapper for the MAD decoder , the output of which is described as having been, "tested and found to satisfy the ISO/IEC 11172-4 computational accuracy requirements for compliance. In almost all configurations, MAD is a Full Layer III ISO/IEC 11172-3 audio decoder as defined by the standard."

There is a newer version of the built-in MP3 player under development which has had various betas released and does indeed play more than the original 128kps bitrates, however within 5 minutes of testing I found it had difficulties with some MP3 files and caused break-ups, plus it still doesn't offer seeking functions and I doubt it will ever have all the addons that I'd like to use.

The Feature List

The following are implimented and working, although this is no guarantee they are perfectly operating as I want:

  • MP3 playback of all Layer III files at any bitrate and samplerate
  • Seek backward/forward
  • Next track/previous track
  • Pause
  • ID3 tag support
  • ID3v2 tag support
  • Graphical interface
  • Attenuator
  • 7 Band graphic equaliser presets
  • Sort on filename/trackname/album & track number
  • Shuffle play (random sort)
  • Two levels of key lock
  • Cpu clock rate selection
  • Clipping protection
  • Remove silence from start and end
  • Built in GpDrive (shows up as a removeable HD in Windows)
  • Scrollable playlist with track selection
  • Help screens

To-do list

The following are features I did plan to add at some point and the version in which I expected them to appear, before I abandoned the project completely after getting an iPod:

  • Repeat options (version 2)
  • Configurable graphic equaliser (version 2)
  • File browser (version 3)
  • M3U playlist support (version 3)
  • Playlist editor (version 3)
  • Auto power off (version 3 if it is even possible)
  • Visualisations (version 4)

Requested features

The following are things people requested and I did consider putting into the player at some point, but were so far down the list they didn't stand a chance really:

  • OGG support
  • CDG Karaoke text support
  • Configurable buttons
  • Skins



Source Code

  • GpMad Mp3 v1.0 Source - I have no idea how much work would be required to compile this with GCC, don't ask for any help!


I would not have been able to produce this software without the direct aid, advice and source code of Mr Spiv, Rob Leslie, Mr Mirko, the GP Font Maker and source by Oankali, Squidge and his GpDrive source, and DJWillis for his GCC assistance. Thanks guys you are all stars!


Add Your Own Comment