【天堂论坛】玩机到天堂 买机找海洋西门子 6688……黑白经典.MP3机王 → Mp3 Playlist Patch single 突破三十了
查看完整版本:Mp3 Playlist Patch single 突破三十了
2008/6/29 18:16:15

Mp3 Playlist Patch single V1.0 (2008-6-26更新到V1.0)

<div class=t_msgfont id=postmessage_4340366>*** MPP. Mp3 Playlist Patch V1.0  ***

;Authors:mamaich, Charger, Seklth, rizapn
;移植:云卷.云舒
;适用:6688V5508
;日期:2008-6-4
;地址:[0x4839E0-0x483FF0] 占用RAM地址:36:3FF8 36:3FFA

;主要作用:可以播放大于31首的MP3播放列表.随机模式下也能播放前一首


;2008-6-26更新
;更新版本v1.0,刷过的请更新一下

;v1.0
;- Go to last track from first
;- Work when repeat not selected (mp3 dialog close after last track)
;新增功能:彻底改掉了原有的重复播放模式,增加了播放下一首的挂钩,从第一首开始就能进上一首,不需要必须选重复播放,播放完最后一首自动退出,重新改写了部分代码,补丁更稳定

;要完全撤销原来刷的补丁,占用地址有扩大[0x4839E0-0x483FF0],刷之前请查一下保证你的这片地址是空白的,补丁还是直接写入地址格式,所以请用V_KLAY3.2以上版本刷
;!!!还是不能播放中文(包括含有中文符号)的曲名!!!  列表名称可以是中文

;----------------------------------------------------------------------------------------------------------------------
;Mp3 Playlist Patch single V1.0  VKP


; reduce playlist size to 1 song on allocate 分配时播放列表歌曲首数改为1首
;这里5508的原始数据是26FC1E00,刷过DONG的30首MP3不死机的补丁才变成26FC1C00
0x36CE6C: 26FC1C00 28C1CC00
; increase filename length to 126 chars 将歌曲文件名大小改为126字符
0x36CD98: 20C608C1 E6FC7F00
; reduce playlist size to 1 song on free 空闲时播放列表歌曲首数改为1首
0x36C8BA: 8DE5 CC00
; increase playlist file size to 8190 bytes 将播放列表文件大小改为8190字节
0x36D06E: E6FF0807 E6FFFE1F
; Disable standart repeat NEW!!!禁用标准的重复播放模式
0x36C976:EA300ECA FAD60ECA

; Hook "Analyze&play mp3 file" function 挂于"分析与播放"功能
0x36CF54:DAD6ECCB DAE8B83B
0x36D2A6:DAD6ECCB DAE8B83B
0x36D40C:DAD6ECCB DAE8B83B
0x36D9D2:DAD6ECCB DAE8B83B
; hook playlist memory alloc挂于播放列表内存分配
0x36E0FE: DAD38C89 DAE8E039
0x36E1DC: DAD38C89 DAE8E039
; hook mem free挂于自由内存
0x3389D4: FAB4DC86 FAE8FA39
;DialogMP3GUI_onCreate
0x36DDAA:88908880 DAE8063A
;DialogMP3GUI_onClose
0x36E22C:88908880 DAE8183A
;KeyPressMP3 Up Key mp3上一首按上键
0x36C184:E6FCE835 DAE8F23A
;KeyPressMP3 Down Key NEW!!! mp3下一首按下键
0x36C16C:E6FCE835 DAE80E3B
;RAM
;36:3FF8 36:3FFA(DBFF8)-->5508
;37:32E8 37:32EA 37:32EC(DF2EC)-->37:3A54 37:3A56 37:3A58
;0D:25DC 0D:25DE 0D:25E0(365DC)时间 分 时 日 -->5508
#pragma enable old_equal_ff
0x4839E0: D7503600F2F4F83FF2F5FA3FF0C4F0D5E00EE6FF0020FAC7168446FF2B003D01
0x483A00: DB00FAB4DC868890888088D088C0DAE8A03A98C098D0DB008890888088D088C0;FAB4DC86(5508)
0x483A20: DAE8CA3A98C098D0DB00D7403700F3F2583A3D0CE01CD7503700F6FC543AF68E
0x483A40: 563AE114D7403700F7F4583AE6FA6D4ED7503700F2F4543AF2F5563AE6FBC641
0x483A60: DAC78EEE06F439301850D7503700F6F4543AF6F5563AE00AE01BDAC7CCEFE005
0x483A80: E6FA0080E00BDAC714EFD7600D0002F4DC2502F4DE2502F4E025DB00CC00CC00
0x483AA0: E6FCDA1EE0EDE6FE0828DAB43C85D7503600F6F4F83FF6F5FA3FF0C4F0D5E00E;DAB43C85(5508)
0x483AC0: E6FF0828DAC71684DB00E6FCDA1EE0EDD7503600F2FEF83FF2FFFA3FDAB4DC86;DAB4DC86(5508)
0x483AE0: E00CE00DD7503600F6FCF83FF6FDFA3FDB00E6FCFFFFD7503600F2FDF83FF2FE
0x483B00: FA3FDC4EC4CD0428E6FCE835DB00E01CD7503600F2FDF83FF2FEFA3FDC4EC4CD
0x483B20: 0428E6FCE835DB00E00F48E0BD0AF01F5C11F02CF03D0021DC43B8F208F140FE
0x483B40: CDF6DB008890888088708860F09EE008F0695C2620694860BD2A88C088D0DAE8
0x483B60: 2A3AF6F40EFE4B99F2F70CFE98D098C088C088D0DAE82A3AF6F40EFE4B99F2FE
0x483B80: 0CFE98D098C05C17F01CF02D0017DC42A8F15C1EF07EF0ECF03D00E7DC43A87E
0x483BA0: DC42B871DC43B8FE08814068ADD69860987098809890DB008890888088708860;DAE83BB8挂于"分析与播放"功能
0x483BC0: 2804F07DF06CF0E6F0F706FE3A00DC5F981EA82E06F12600DC5298C1A8D1F0ED
0x483BE0: 70ECEA20283ED740360042FCF83F2D0AF0ECF0FDD7503600F2FCF83FF2FDFA3F
0x483C00: DAC71685E018D7503600F2FEF83FF2FFFA3F06FE0228DC4FB88ED7503600F2FC
0x483C20: F83FF2FDFA3FDC4DA92C2D1FDC4DA92C47F20A003D16DC4FA88E0881DC4FB88E
0x483C40: DC4DA92C2D0EDC4DA92C47F220009D0908C1DC4DA92C2D05DC4DA92C47F22000
0x483C60: 8DF708C1DC4DA92C3DE128C1DC4DA92C47F233003D22F01CF02D06F1FFFFDC42
0x483C80: A96147F670002D05DC42A92147F250003D14F01CF02D06F1FEFFDC42A96147F6
0x483CA0: 6D002D05DC42A92147F24D003D06DC4DF42CFDFF47F22E002D05DC4FA88E2881
0x483CC0: DC4FB88EDC4DA92C47F233003D22F01CF02D06F1FFFFDC42A96147F670002D05
0x483CE0: DC42A92147F250003D14F01CF02D06F1FEFFDC42A96147F66D002D05DC42A921
0x483D00: 47F24D003D06DC4DF42CFDFF47F22E002D2BE102DC4DB92C28C1DC4DA94C47F4
0x483D20: 33003DF7F01CF02D06F1FFFFDC42A96147F670002D05DC42A92147F250003DE9
0x483D40: F01CF02D06F1FEFFDC42A96147F66D002D05DC42A92147F24D003DDBDC4DF42C
0x483D60: FDFF47F22E003DD5D7503600F2FCF83FF2FDFA3F06FC0020DC4FA8EEDAE8283B
0x483D80: E008888088808880E0498890E6FC2C14E08D00D066FDFF3FF2FE02FEF0F8DAB4;DAB472FB(5508)
0x483DA0: 72FB06F00800A880D49002009AF81440D7503600F2FCF83FF2FDFA3F06FC0020
0x483DC0: D7503600F2FEF83FF2FFFA3FF01EDC4FD4E10228DAE8443BA880D49002009AF8
0x483DE0: 0B80E01CD7503600F2FDF83FF2FEFA3FDC4EC4CD06280D0AE008D7503600F2F9
0x483E00: F83FF2FCFA3FDC4CC4890628E6F8FFFFD7503600F2F9F83FF2FCFA3FE00DDC5C
0x483E20: C4890028C4D90428D7503600F2FCF83FF2FDFA3FF08CF09DD7503600F2FEF83F
0x483E40: F2FFFA3FDC4FD41E04283D2006FE0028DC4FA81E0811DC4FB81ED7503600F2F1
0x483E60: F83FF2F2FA3FDC42D43106283D29DC4FA8EEDC42D431022840E33D2288C088D0
0x483E80: E01CDAF334ED98D098C00D1AD7503600F2F1F83FF2F2FA3F06F10028DC42A831;DAF334ED(5508)NEW!!!
0x483EA0: D7503600F2FEF83FF2FFFA3F06FE0428DC4FA84E0034DC42B831E001DC4FB81E
0x483EC0: D7503600F2FEF83FF2FFFA3F06FE0028DC4FA81E4810DD11DC4FA81ED7503600
0x483EE0: F2F2F83FF2F3FA3FDC43D44202280014DC5FB81EA81E4810CDEFDC4FA81EF031
0x483F00: D7503600F2F1F83FF2F2FA3F06F10228DC42A8414034CD0CDC4FA83EDC42A841
0x483F20: 2034DC5FB83EA83EDC42A8414034DDF4DC4FA8EE5C1ED7503600F2FFF83FF2F2
0x483F40: FA3F00FEDC42D41F0020DC4DA96C2D1F4810BD1DDC4DA94C47F40A003D14DC4D
0x483F60: A94C2D0EDC4DA94C47F420009D0908C1DC4DA94C2D05DC4DA94C47F420008DF7
0x483F80: F08CF09D281108C1DC4DA94C3DE1E00CDC49A92847F21F00FD0908C1F0D8F0E9
0x483FA0: 00DCDC4EA92D47F21F00EDF7F0F6F01706FF5600DC5198DFA8EFF0FE70FD2D14
0x483FC0: 88C088D088E088C0D4D00200D4C00400F0E8F0F9DAC7B483080298E098D098C0
0x483FE0: E10200DCDC4EB92DF0C6F0D7E00EE00FDAD6ECCB08049860987098809890DB00;DAD6ECCB(5508)
#pragma disable old_equal_ff

;----------------------------------------------------------------------------------------------------------------------------------------------------
;旧版本,供撤销


;补丁具体原理见下面英文说明

;- 56版补丁英文说明和XINSHOU的译文:
;- ! Patch works only when "repeat" mode is on.本补丁在选择"重复播放"模式时起作用  
;- Otherwise play only the first track ,否则只播放第一首
;- Increase number of songs in playlist above 31使播放列表里歌曲首数大于31首
;- Increase max playlist file size - 8190 bytes 将播放列表文件大小改为8190bytes
;- Increase max size of the filename - 126 chars (include"a:\mp3\")  将歌曲文件名大小改为126字符(包括"a:\mp3\")
;- Go to previous track (and in "Shuffle" mode too) 可播放前一首在随机模式下也可以;(Charger)
;- Corrected algorithm of the shuffle order (Charger)改正了"随机"模式的算法
;- Use other ram area, not conflict with binaries (by 所用RAM与bin不冲突;Seklth)

;注意:这里的补丁格式是直接写入地址,必须用V_KLAY3.2以上版本刷,刷补丁地址冲突不会显示强刷,所以必须保证你的手机0x483AA0-0x483FF0地址是空白的,改地址的话注意调用和已经标出来的几个内部跳转的修改

;现在的问题是:原补丁是针对SL45V5601版,移植过来后无法识别中文曲名,所以播放含中文字符的曲名的MP3会显示找不到文件 跳到下一首
;目前的解决办法是:MP3曲名改成字母,或者重新改写补丁...



;----------------------------------------------------------------------------------------------------------------------------------------------------
;VKP
; reduce playlist size to 1 song on allocate 分配时播放列表歌曲首数改为1首
0x36CE6C: 26FC1C00 28C1CC00;这里5508的原始数据是26FC1E00,刷过DONG的30首MP3不死机的补丁才变成26FC1C00
; increase filename length to 126 chars 将歌曲文件名大小改为126字符
0x36CD98: 20C608C1 E6FC7F00
; reduce playlist size to 1 song on free空闲时播放列表歌曲首数改为1首
0x36C8BA: 8DE5 CC00
; increase playlist file size to 8190 bytes将播放列表文件大小改为8190字节
0x36D06E: E6FF0807 E6FFFE1F
; Hook "Analyze&play mp3 file" function 挂于"分析与播放"功能
36CF54:DAD6ECCB DAE85C3C
36D2A6:DAD6ECCB DAE85C3C
36D40C:DAD6ECCB DAE85C3C
36D9D2:DAD6ECCB DAE85C3C
; hook playlist memory alloc挂于播放列表内存分配
0x36E0FE: DAD38C89 DAE8A03A
0x36E1DC: DAD38C89 DAE8A03A
; hook mem free挂于自由内存
0x3389D4: FAB4DC86 FAE8BA3A
;DialogMP3GUI_onCreate
0x36DDAA:88908880 DAE8C63A
;DialogMP3GUI_onClose
0x36E22C:88908880 DAE8D83A
;KeyPressMP3 Up Key mp3上一首按上键
0x36C184:E6FCE835 DAE8EA3A

;RAM
;36:3FF8 36:3FFA(DBFF8)-->(5508)
;37:32E8 37:32EA 37:32EC(DF2E8)-->(5508)37:3A54 37:3A56 37:3A58(DFA54)
;0D:25DC 0D:25DE 0D:25E0(365DC)系统分时日 -->(5508)


#pragma enable old_equal_ff
0x483AA0: D7503600F2F4F83FF2F5FA3FF0C4F0D5E00EE6FF0020FAC7168446FF2B003D01;-->FAC71684(5508)
0x483AC0: DB00FAB4DC868890888088D088C0DAE8883B98C098D0DB008890888088D088C0
0x483AE0: DAE8A43B98C098D0DB00D7503600F2FDF83FF2FEFA3F06FD0028DC4EA8CD2D05
0x483B00: 46FCFFFF2D0528C20D0128C1DC4EB8CDE6FCE835DB00D7403700F3F2583A3D0C
0x483B20: E01CD7503700F6FC543AF68E563AE114D7403700F7F4583AE6FA6D4ED7503700
0x483B40: F2F4543AF2F5563AE6FBC641DAC78EEE06F439301850D7503700F6F4543AF6F5;-->DAC78EEE(5508)
0x483B60: 563AE00AE01BDAC7CCEFE005E6FA0080E00BDAC714EFD7600D0002F4DC2502F4;-->DAC7CCEF(5508)-->DAC714EF(5508)
0x483B80: DE2502F4E025DB00
0x483B88: E6FCDA1EE0EDE6FE0428DAB43C85D7503600F6F4F83FF6F5FA3FDB00E6FCDA1E;DAC1D8BC-->DAB43C85(5508)
0x483BA8: E0EDD7503600F2FEF83FF2FFFA3FDAB4DC86E00CE00DD7503600F6FCF83FF6FD;DAC178BE-->DAB4DC86(5508)
0x483BC8: FA3FDB00E00F48E0BD0AF01F5C11F02CF03D0021DC43B8F208F140FECDF6DB00
0x483BE8: 8890888088708860F09EE008F0695C2620694860BD2A88C088D0DAE8163BF6F4
0x483C08: 0EFE4B99F2F70CFE98D098C088C088D0DAE8163BF6F40EFE4B99F2FE0CFE98D0
0x483C28: 98C05C17F01CF02D0017DC42A8F15C1EF07EF0ECF03D00E7DC43A87EDC42B871
0x483C48: DC43B8FE08814068ADD69860987098809890DB00889088802804F09DF08CF0E8
0x483C68: F0F906FE3A00DC5F981EA82E06F12600DC5298C1A8D1F0ED70ECEA208E3ED740
0x483C88: 360042FCF83F2D0AF0ECF0FDD7503600F2FCF83FF2FDFA3FDAC71685E01CD750;-->DAC71685(5508)
0x483CA8: 3600F2FEF83FF2FFFA3F06FE0228DC4FB8CED7503600F2FCF83FF2FDFA3FDC4D
0x483CC8: A92C2D1FDC4DA92C47F20A003D16DC4FA81E0811DC4FB81EDC4DA92C2D0EDC4D
0x483CE8: A92C47F220009D0908C1DC4DA92C2D05DC4DA92C47F220008DF708C1DC4DA92C
0x483D08: 3DE128C1DC4DA92C47F233003D22F01CF02D06F1FFFFDC42A96147F670002D05
0x483D28: DC42A92147F250003D14F01CF02D06F1FEFFDC42A96147F66D002D05DC42A921
0x483D48: 47F24D003D06DC4DF42CFDFF47F22E002D05DC4FA81E2811DC4FB81EDC4DA92C
0x483D68: 47F233003D22F01CF02D06F1FFFFDC42A96147F670002D05DC42A92147F25000
0x483D88: 3D14F01CF02D06F1FEFFDC42A96147F66D002D05DC42A92147F24D003D06DC4D
0x483DA8: F42CFDFF47F22E002D2BE102DC4DB92C28C1DC4DA94C47F433003DF7F01CF02D
0x483DC8: 06F1FFFFDC42A96147F670002D05DC42A92147F250003DE9F01CF02D06F1FEFF
0x483DE8: DC42A96147F66D002D05DC42A92147F24D003DDBDC4DF42CFDFF47F22E003DD5
0x483E08: D7503600F2FCF83FF2FDFA3F06FC0020DC4FA8EEDAE8CC3BE00C88C088C088C0
0x483E28: E04D88D0E6FC2C14E08D00D066FDFF3FF2FE02FEE00FDAB472FB06F00800A8C0;DAC2BA30-->DAB472FB(5508)
0x483E48: D4D002009AFC1440D7503600F2FCF83FF2FDFA3F06FC0020D7503600F2FEF83F
0x483E68: F2FFFA3FF01EDC4FD4E10228DAE8E83BE6FCFFFFD7503600F2FDF83FF2FEFA3F
0x483E88: DC4EC4CD0028D7503600F2FCF83FF2FDFA3FF01CF02DD7503600F2FEF83FF2FF
0x483EA8: FA3F06FE0028DC4FA83E0831DC5FB83EA83E4830DD11DC4FA83ED7503600F2F4
0x483EC8: F83FF2F5FA3FDC45D4A40228003ADC5FB83EA83E4830CDEFDC4FA83EF043D750
0x483EE8: 3600F2F3F83FF2FAFA3F06F30228DC4AA8534045CD0CDC4FA84EDC4AA8532045
0x483F08: DC5FB84EA84EDC4AA8534045DDF4DC4FA8EE5C1ED7503600F2FFF83FF2F4FA3F
0x483F28: 00FEDC44D43F0020DC4DA9AC2D1F4830BD1DDC4DA98C47F80A003D14DC4DA92C
0x483F48: 2D0EDC4DA92C47F220009D0908C1DC4DA92C2D05DC4DA92C47F220008DF7F01C
0x483F68: F02D283108C1DC4DA98C3DE1E00CDC42A96147F61F00FD0908C1F0D1F0E200DC
0x483F88: DC4EA96D47F61F00EDF7F0F8F03906FF5600DC5398DFA8EFF0FE70FD2D198810
0x483FA8: 882088C088E088D088C0D4D00400D4C00200D4F00800D4E00A00DAC7B4830802;DAC7B483-->DAC7B483(5508)
0x483FC8: 98D098E098C00804E10200DCDC4EB92DF0C8F0D9E00EE00FDAD6ECCB08049880;DADBAEB5-->DAD6ECCB(5508)
0x483FE8: 9890DB00
#pragma disable old_equal_ff




;----------------------------------------------------------------------------------------------------------------------------------------------------






</div>
2008/6/29 18:17:55

我是故意转的.是太过于........

太谢谢你了.云姐姐.

2008/6/29 22:59:50

很不错

下一步就是对中文文件名支持的研究了

2008/7/7 12:04:30
下一版应该会加入这个了应该```
2008/7/14 14:07:42
都真么強的
Powered by BBSXP 2007 ACCESS © 1998-2024
Processed in 0.02 second(s)