Official M3 firmware download and discussion thread - FW1.9--new UI theme, various UI improvements

Discussion in 'FiiO' started by fiio, Dec 18, 2015.

  1. iancraig10
    It looks like an easy fix tbh and it's surprising that this hasn't been looked at yet. I took mine on holiday and in the daylight, it was impossible for me to select a file to play due to low brightness and tiny font. A simple black and white would be easier for access in these kinds of conditions.

    It's really not a bad player for what you pay and that one 'fix' would make things so much easier.

    I ended up just selecting random folders in the end.
     
  2. emklap
    Step 1, decrypting the M3.HEX file looks using the atj2127 decrypt tool. The tool has creates the following 26 files.
    26 File(s) 52.665.856 bytes

    brecf644.bin 199.168 bytes = 194.5 Kb
    brecf645.bin 199.168 bytes
    brecf646.bin 199.168 bytes
    brecf647.bin 199.168 bytes
    brecf648.bin 199.168 bytes
    brecf649.bin 199.168 bytes
    brecf650.bin 199.168 bytes
    brecf651.bin 199.168 bytes
    brecf652.bin 199.168 bytes
    brecf653.bin 199.168 bytes
    cardbrec.bin 199.168 bytes
    cardfwsc.bin 27.648 bytes
    flash_id.bin 33.792 bytes = 33 Kb
    fwimage.fw 50.132.992 bytes = 48958 Kb = 47.81 Mb
    fwscf644.bin 27.648 bytes = 27 Kb
    fwscf645.bin 27.648 bytes
    fwscf646.bin 27.648 bytes
    fwscf647.bin 27.648 bytes
    fwscf648.bin 27.648 bytes
    fwscf649.bin 27.648 bytes
    fwscf650.bin 27.648 bytes
    fwscf651.bin 27.648 bytes
    fwscf652.bin 27.648 bytes
    fwscf653.bin 27.648 bytes
    mbrec.bin 1.024 bytes = 1 Kb
    nandhwsc.bin 3.072 bytes = 3 Kb

    Next step is to figure out which file contains the FW image and Fonts.
    The file fwimage.fw is the only file containing the words "Fiio " and "M3: and should be it and is the next file to decrypt.

    The search continue .....
     
    Last edited: Aug 23, 2017
    TheoS53 likes this.
  3. TheoS53
    Best of luck, I really hope you'll be able to figure it out. It seems the only way that we'll get any improvement out of the M3 is to do it ourselves.
     
  4. emklap
    I do my best, have 1 1/2 week and then I will be very busy for a while and unable to spend any time on this project If I make progress I will continue somewhere in October. I hope someone else read this can contribute.
     
  5. emklap
    step 2 completed extracted 114 files from fwimage.fw. The MP3 sample plays, the text files are readable confirming the file are oké
    Only need to trim some 0x0 data from the end of the files.

    2 files found that could be fonts files UNICODE.FON and UNICODEL.FON. *.TBL and *.$$$ are also involved in fons selection/generation
    New tools found with Chinese pdf explaining how to build FW. https://github.com/Suber/PD196_ATJ2127

    Hhere the complete list of files
    KERNEL.DRV
    KER_TEXT.BIN
    KER_INIT.BIN
    KER_DATA.BIN
    FMTDATA.BIN
    CARD.DRV
    CARDS.DRV
    NAND.DRV
    UHOST.DRV
    FAT32N.DRV
    FAT16N.DRV
    EXFATN.DRV
    AUD_DEV.DRV
    MMM_MP.AL
    ADWMA.AL
    ADWAV.AL
    ADMP3.AL
    ADAPE.AL
    ADFLAC.AL
    MMM_ID.AL
    MMM_VP.AL
    MMM_MR.AL
    AEWAV.AL
    AEMP3.AL
    ADOGG.AL
    ADAAX.AL
    ADAUD.AL
    ADAAC.AL
    ADAIN.AL
    ADACT.AL
    AEACT.AL
    FWDEC.AL
    UPGRADE.STY
    UPGRADE1.STY
    FWUPDATE.AP
    CONFIG.BIN
    CONFIG.SPC
    CONFIG.TXT
    LEGAL.TXT
    M_TYPE.TXT
    ALARM1.MP3
    FMTOOL.CFG
    SETTING.INI
    DRV_LCD.DRV
    DRV_UI.DRV
    KEY.DRV
    DRV_FM.DRV
    V936GBK.TBL
    V950BIG.TBL
    V932JIS.TBL
    V949KOR.TBL
    V874.TBL
    V1250.TBL
    V1251.TBL
    V1252.TBL
    V1253.TBL
    V1254.TBL
    V1255.TBL
    V1256.TBL
    V1257.TBL
    FTBL_GB.$$$
    FTBL_B5.$$$
    FTBL_JP.$$$
    FTBL_KR.$$$
    874L.TBL
    1250L.TBL
    1251L.TBL
    1252L.TBL
    1253L.TBL
    1254L.TBL
    1255L.TBL
    1256L.TBL
    1257L.TBL
    UNICODE.FON
    UNICODEL.FON
    COMMON.STY
    COMMON1.STY
    MAINMENU.STY
    MUSIC.STY
    MUSIC1.STY
    PICTURE.STY
    BROWSER.STY
    BROWSER1.STY
    SETTING.STY
    SETTING1.STY
    PLAYLIST.STY
    PLAYLST1.STY
    TOOLS.STY
    UDISK.STY
    UDISK1.STY
    CONFIG.STY
    CONFIG1.STY
    LOGO.STY
    LOGO1.STY
    END.STY
    END1.STY
    MAINMENU.MCG
    MUSIC.MCG
    PICTURE.MCG
    BROWSER.MCG
    SETTING.MCG
    TOOLS.MCG
    MANAGER.AP
    CONFIG.AP
    MAINMENU.AP
    MUSIC.AP
    MENGINE.AP
    BROWSER.AP
    PICTURE.AP
    UDISK.AP
    SETTING.AP
    PLAYLIST.AP
    TOOLS.AP
    FMENGINE.AP

    /* end of file list */
     
    Last edited: Aug 25, 2017
    noknok23 likes this.
  6. kaegell
    Mind if I join? :stuck_out_tongue_winking_eye:
     
  7. iancraig10
    It would make it a really good player once the font is made bigger, so anyone able to help would be great!!!!!
     
  8. emklap
    ' Title: split.vbs
    ' Visual basic script to split atj2127/atj2129/1tj2123 fwimage file into its separate files
    ' Usage:
    ' - Copy to a text file on Windows.
    ' - Rename to split.vbs
    ' - Create clean folder
    ' - Copy fwimage.fw and split.vbs into the empty folder.
    ' - Run / double-click split.vbs
    ' - A fillist.txt file is created containing all files in the fwimage
    ' - plus all files are extracted form the fwimage in 512 byte blocks!
    ' - Due to the fixed 512 byte block size extra 0x00 bytes are appended to most files

    '************************************* Start of Script ***************************************************
    Const ForReading = 1
    Const ForWriting = 2

    CurrentScriptFolder = Left(Wscript.ScriptFullName, Len(Wscript.ScriptFullName) - Len(Wscript.ScriptName))
    set WshShell = WScript.CreateObject("WScript.Shell")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Input_file_name=CurrentScriptFolder +"\fwimage.fw"
    Set FWFile = objFSO.OpenTextFile(Input_file_name, ForReading, True)

    Output_file_name=CurrentScriptFolder +"\FileList.txt"
    Set Outputfiletxt = objFSO.OpenTextFile(Output_file_name, ForWriting, True)

    Skip=FWFile.Read(512)

    FileName=RTrim(FWFile.Read(8)) +"."+RTrim(FWFile.Read(3))
    do while asc(left(filename,1)) <>0 and FWFile.AtEndOfStream <> True

    Skip=FWFile.Read(5)

    MyStart=asc(FWFile.Read(1))
    MyStart=MyStart+asc(FWFile.Read(1))*256
    MyStart=MyStart+asc(FWFile.Read(1))*256*256
    MyStart=MyStart+asc(FWFile.Read(1))*256*256*256
    MyStart=MyStart*512

    MySize=asc(FWFile.Read(1))
    MySize=MySize+asc(FWFile.Read(1))*256
    MySize=MySize+asc(FWFile.Read(1))*256*256
    MySize=MySize+asc(FWFile.Read(1))*256*256*256

    Skip=FWFile.Read(8)
    Outputfiletxt.WriteLine(Filename+","+CStr(MyStart)+","+CStr(MySize))

    FileName=RTrim(FWFile.Read(8)) +"."+RTrim(FWFile.Read(3))
    loop
    Outputfiletxt.close
    FWFile.close

    '************************************************************************************
    Input_file_name=CurrentScriptFolder +"\FileList.txt"
    Set Inputfiletxt = objFSO.OpenTextFile(Input_file_name, ForReading, True)

    Input_Fwfile_name=CurrentScriptFolder +"\fwimage.fw"
    Set InputFW = objFSO.OpenTextFile(Input_Fwfile_name, ForReading, True)

    MyLine = Inputfiletxt.ReadLine
    MyComma = InStr(Myline, chr(44))
    MyStart = Mid(MyLine,MyComma+1)
    MyComma2=InStr(MyStart, chr(44))
    MyStart = left(MyStart,MyComma2-1)

    for count = 1 to MyStart
    MyChar=InputFW.Read(1)
    next

    Do While Inputfiletxt.AtEndOfStream <> True

    MyComma = InStr(Myline, chr(44))
    MyFile = left(Myline,MyComma-1)

    MyComma =InStr(MyComma+1,Myline, chr(44))
    MySize = Mid(MyLine,MyComma+1)

    Output_file_name=CurrentScriptFolder +MyFile
    Set Outputfiletxt = objFSO.OpenTextFile(Output_file_name, ForWriting, True)

    Mychar=InputFW.Read(MySize)
    Outputfiletxt.Write(MyChar)
    Outputfiletxt.close
    MyLine = Inputfiletxt.ReadLine

    Loop

    Inputfiletxt.close
    InputFW.close
    MsgBox("The script has finished, you can look a the results now.")
     
  9. emklap
    https://github.com/Suber/PD196_ATJ2127
    This location contains some nice tools One of tem is a UI editor.

    To change the UI editor language from Chinese to English
    - rename lan_CHS.dll to lan_CHS2.dll
    - rename lan_ENG.dll to lan_CHS.dll
    - This will change the menu's to English

    - rename folder CHS to CHS2
    - rename folder ENG to CHS
    - This will change the window titles also to English
     
    Last edited: Aug 25, 2017
  10. uboligu
    Any luck in the project? I don't know much programing but if you need any help let me know.
     
  11. JK1
    The M3 platform seems nice, however I hate the buttons on the M3, and want a Fiio clip on player with radio(HD radio preferred). As for making the M3 better with more firmware updates, I suggest allowing the displayed font to be increased, and a choice to have the display in white letters on a black background, which greatly increases readability in bright light. My Sandisk Clip Zip with Rockbox is set to display white letters on a black background.
     
  12. JK1
    It seems like the M3 is probably discontinued. Will Fiio soon release the M5? I'm waiting for a clip on player with FM radio. I'm tired of the Sandisk clip on players, and want something better. The M3 platform was good.
    If Fiio builds a new player based on that, but with FM radio, a built in clip, and much better buttons than the M3 has, many will be happy. Some might want Bluetooth as well. Other might want HD radio.
     
  13. Howlin Fester
    Take a look at the Benji S5 and see if that ticks the boxes for you.it has FM radio, small form factor, there is no built in clip, but does have a small area on the top where you should be able to attach some kind of lanyard or something.

    As for performance, I haven't found any significant differences in the M3 and S5.

    And S5 is not as expensive.
     
  14. TheoS53
    Another workaround might be the Fiio BTR1. No, it's not a standalone device, but it does have good sound quality (better than X1ii IMO)
     

Share This Page