Temp:How to fix buttons

From S1MP3 Wiki
Jump to: navigation, search

This guide will teach you how to "remap" the button configuration of your s1mp3. You should use this guide if the only firmware that will work on your player does not map your buttons correctly. Important: all the buttons HAVE TO be working, but in wrong order.

Get the needed tools

  • Z80 Simulator IDE (the trial will do) (link)
  • 2085RES (link)
  • S1FWX (link)

Remove any encryptions

Firstly, check if the firmware you flashed (and worked) is encrypted. An encrypted firmware takes about 3 minutes to flash, while a non encrypted one takes about 20 seconds. If it is NOT encrypted, skip to the next step.

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

Unpack

Using S1FWX, unpack the firmware:

C:\S1FWX>s1fwx x xxxxxxxx.bin
(...)“After it has finished”
C:\S1FWX>s1fwx x FWIMAGE.FW

Disassemble

Open Z80 Simulator IDE and choose “Tools” --> “disassemble”. 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.

Look up the keys

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 |
+--------+--------+
|   01   |  Play  |
|   03   |  Vol - |
|   04   |  Vol + |
|   05   |  Prev  |
|   06   |  Next  |
|   10   |  Mode  |
|   11   | A/B rec|
|   12   | Enter  |
+-----------------+

If anyone knows how to remap the HOLD button, please, contact us(link).


Open the 2085res

Press “tab” then hit “enter”. This should open a “Open File” dialogue, open your firmware (the .bin file). Choose FWIMAGE.FW then KY_HARD.DRV

(image)

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”

(image)

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

Continue to do that for the rest of the buttons and then when you are finished, go to were it says the version number (usually 3042) and use the “back tab” function. (SHIFT + TAB, then press ENTER).

Make a file name.

Flash it!

Open your player, put it on dead recovery mode by shorting the memory pins (link), then flash your new firmware. All the buttons SHOULD work now.