Anyway here we go
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:
Z80 Simulator IDE (the trial will do
2085RES (from our yahoo page)
And
S1FWX (from wires page at http://www.s1mp3.de)
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:
- Code: Select all
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:
- Code: Select all
C:\S1FWX>s1fwx x xxxxxxxx.bin
[b]After it has finished[/b]
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
- Code: Select all
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]))
- Code: Select all
+--------+-----------+
| 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, email me: ian <dot> hawdon <at> gmail <dot> com
5. Next, fire up 2085RES, press tab then hit enter this should open a Open File dialogue, open your firmware (the .bin file)
6. Choose FWIMAGE.FW then KY_HARD.DRV
7. Find the reference number to your code.
E.G. if the line said:
- Code: Select all
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
8. 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.
9. Make a file name.
10. open your player and put it into recovery mode ( http://www.s1mp3.org/en/docs_deadrec.php#short )
11. then flash your new firmware.
12. all the buttons SHOULD work now.

