The Chalkboard


Remapping buttons on an S1MP3 player

Last Updated: [2024-12-20 Fri 08:51]

Introduction

Many years ago, I was involved with a project aiming to create a custom firmware for cheap MP3 players that were being produced in China under the name of "S1 Mp3 player". Whilst the goal was never reached, we were able to connect many people together who had had issues with their devices and ended up being a tech support community around these players.

I was one of many people who bricked their player when messing with the upgrade firmware function. Whilst there were many devices all identifying themselves are the same device by the same manufacturer (Wilson Co. Ltd.), in reality most devices were totally incompatible with each other.

I was able to get my player back up and running with a slightly different firmware that happened to have a couple of extra features, but all the buttons were mapped incorrectly. With help from a forum member going by the name timber0001, we were able to bodge the firmware my player was now using to have its buttons match the labelling on the case.

I posted this guide to the S1MP3 forum in the October of 2005, so enjoy the rambings of 15 year old me!

HOWTO: fix button configuration

This is a lengthy procedure; it will make you wonder why you tried to upgrade the thing in the first place!!!

Anyway here we go :wink:

The story so far?

You have just killed your player, and the only firmware that will work, is one with the buttons in the wrong order!

Important: all the buttons have to be there, but in wrong order

The tools you will need:

And

Ok, we are now ready to reprogram!

1, Firstly, check if the firmware you flashed (and worked) is encrypted. You can tell because the encrypted version took about 3 minutes to flash and the non encrypted version took about 3 seconds!!! If it is NOT encrypted, skip step 2.

2, If it is encrypted, use S1FWX to decrypt it:

C:\S1FWX>s1fwx l xxxxxxxx.bin

This should create a file called xxxxxxxx.bi~

Rename this file so it ends with .bin

3, Using S1FWX, unpack the firmware:

C:\S1FWX>s1fwx x xxxxxxxx.bin

After it has finished

C:\S1FWX>s1fwx x FWIMAGE.FW

4, Open Z80 Simulator IDE and choose Tools --> disassembler

When the window opens, choose file --> select program

Select the file KY_HARD.DRV (you will need to change the file types on the bottom to All Files (**.**)

Then Tools --> Disassemble

Save the file then use notepad to open it.

5, Look from about line 0500

From there you are looking for references like

0550   0256 3E 01               LD A,01H

The LD A,01H is a button (to be more precise: LD A,xxH is a button!)

The reference of that button is at 0257 (256 with one added because that line shows two references and we are interested in the second one)

Using the table below, figure out what your buttons are and what they should be, and their reference number (the second number on that line plus 1 (P.S. it is in hexadecimal [i.e. 0 1 2 3 4 5 6 7 8 9 A B C D E F]))

+--------+-----------+
| Number |   Action  |
+--------+-----------+
|   00   |    Null   |
|   01   | Play/Stop |
|   02   |  Loop Key |
|   03   |    Vol -  |
|   04   |    Vol +  |
|   05   |    Prev   |
|   06   |    Next   |
|   07   |    Enter  |
|   10   |    Mode   |
|   11   |    rec    |
|   12   |     EQ    |
|   21   |  Standby  | (not used)
|   22   |  Hold On  |
|   24   |  Hold Off |
+--------+-----------+
|   30   |Short Press|
|   31   | Long Press|
+--------------------+

These should be right now, if not, contact me

6, Next, fire up 2085RES, press tab then hit enter this should open a Open File dialogue, open your firmware (the .bin file)

7, Choose FWIMAGE.FW then KY_HARD.DRV

8, Find the reference number to your code.

E.G. if the line said:

0550   0256 3E 01               LD A,01H

You would look for number 0257

Scroll down to 0x250 and count each two digit number from left to right up to 7 remember, the first number is 0 (0x250)

You should reach a two digit number called 01

That means the button is currently assigned to Play, with the help of your player and the table, find out what it is meant to be.

Change the number in 2085RES

9, Continue to do that for the rest of the buttons and then when you are finished, goto were it says the version number (usually 3042) and use the back tab function. (that is shift then the tab button.

10, Make a file name.

11, open your player and put it into recovery mode ( http://www.s1mp3.org/en/docs_deadrec.php#short )

12, then flash your new firmware.

13, all the buttons SHOULD work now.


DISCLAIMER: The information provided on this website is generated from my own notes and is provided "as is" and without warranties. Robert Ian Hawdon can not be held responsible for damages caused by following a guide published on this site. This website contains links to other third-party websites. Such links are provided as convienice of the reader. I do not endorce the contents of these third party sites.