You have said that you do not compiled patches but only write in asm code and translate them by IDA? I want to learn some asm code to learn how to make MasterPatch and how to change original patch to MP. My questions will be some already exist patches. 1. 09C716C: 00 0i55 ; 55s tips in call time If I want to change this patch to MP.How? 2. 035DA66: C6F048EE E7F7FBFF ;S7Cv47 Change "Calls dialled" to "Call records" on green button on Mainscreen" Also something like Question 1. How to change it into this? When the MasterPatch switched on,we function the first jump "E7F7FBFF",or if the patch switched off we function the second. 3. ;S7Cv47 - unending light the screen illumination v0.01 ;(c) benj9 ;(i) StarFriend ;2006-11-14 01B695C:0080A0E1740D9FE5 785D9FE52636FBEB #pragma enable old_equal_ff 0x084200: 3F402DE928009FE530FF2FE10060A0E1 0x084210: 3F00BDE8FF0056E30200001A000050E3 0x084220: 0000001AFF20A0E30080A0E10500A0E1 0x084230: 0080BDE8ABB628A0 #pragma disable old_equal_ff 0x084214: FF 05 ; profile 6 (hex 0 - 7) 0x084224: FF 0i002 ;screen illu (dec 0 - 100) ;------------------------------------------- ;M6C v50 - unending light the screen illumination v0.01 ;(c) benj9 ;(p) StarFriend; ;2005-12-29 ;In set profile(default Prof6)keep the screen illu on. 122BD04: 0160A0E180179FE5 84579FE57C53D7EB +800B00 #pragma enable old_equal_ff 00: 3F402DE930009FE530FF2FE10060A0E1 10: 3F00BDE8FF0056E30400001A000050E3 20: 0200001A000052E30000001AFF20A0E3 30: 0160A0E10510A0E10080BDE80D1D8DA0 #pragma disable old_equal_ff 14: FF 05 ; profile 6 (hex 0 - 7) 2C: FF 0i100 ; screen illu (dec 0 - 100) +0 4. And here is asm code of "Vibra at call end" by BingK How to change it into MP? #define _RAMTMR 0xA8A7F180 #define PDO_VIBRA 0xA01B11F3 #define GBS_StartTimerProc_adr 0xA0093278 RSEG VIBRA_AT_CALL_PEND_HOOK CODE16 LDR R4, =VIBRA_AT_CALL_PEND_ BLX R4 RSEG VIBRA_AT_CALL_PEND_BODY CODE16 VIBRA_AT_CALL_PEND_ //S7Cv47 ROM:A1562000 MOV R4, LR LDR R0, POWER LDR R1, =PDO_VIBRA BLX R1 LDR R0, =_RAMTMR LDR R1, TIME LDR R2, =VIBRA_OFF LDR R3, =GBS_StartTimerProc_adr //0134: 0xA0093278 ; 4D: void GBS_StartTimerProc(void *htimer, long ms, void ptr()) BLX R3 MOV R3, R5 MOV R1, #0 MOV R0, #0xFF ADD R0, #0x10 LDR R2, [R4, R0] ////+10F, //A02F9AE4 DCD dword_A04645D0 ADD R2, #0x70 ADD R4, #4 BX R4 VIBRA_OFF MOV R0, #0 LDR R1, =PDO_VIBRA //unsigned int SetVibration(unsigned int power) BX R1 DATA TIME DCD 100 POWER DCD 50 -Z(CODE)VIBRA_AT_CALL_PEND_BODY=A1562000-FFFFFFFF -Z(CODE)VIBRA_AT_CALL_PEND_HOOK=A02F99D0-FFFFFFFF If I can complete this four patches myself under your help,I think it should be a big step. I do have some books about asm codes(ARM and THUMB). And I know simple ADD SUB MOV LSL etc.but I do not know how they work. eg. ROM:A0000000 FF B5 PUSH {R0-R7,LR} ROM:A0000002 80 20 MOV R0, #0x80 //which lib function does this call? ROM:A0000004 C7 DF SWI 0xC7 ROM:A0000006 25 01 LSL R5, R4, #4 //what does R6 stored? ROM:A0000008 06 1C ADD R6, R0, #0 ROM:A000000A 06 A1 ADR R1, ZBin ROM:A000000C 80 22 MOV R2, #0x80 //and here which lib function does this call?somebody telled me C7 is a blank lib used for call lib after 0xFF in THUMB //^_^,you seemed good at ARM. ROM:A000000E C7 DF SWI 0xC7 ROM:A0000010 6C 01 LSL R4, R5, #5 ROM:A0000012 00 22 MOV R2, #0 ROM:A0000014 00 21 MOV R1, #0 ROM:A0000016 30 1C ADD R0, R6, #0 ROM:A0000018 94 DF SWI 0x94 ROM:A000001A 30 1C ADD R0, R6, #0 ROM:A000001C C7 DF SWI 0xC7 ROM:A000001E 29 01 LSL R1, R5, #4 ROM:A0000020 FF BD POP {R0-R7,PC} ROM:A0000020 //ROM:A0000020 //ROM:A0000022 FF DCB 0xFF //ROM:A0000023 FF DCB 0xFF ZBin DCB "0:\\ZBin\\others\\mc\\mc.elf" //ROM:A0000024 30 3A 5C 5A+s_0ZbinOthersMc DCB "0:\ZBin\others\mc\mc.elf",0 //ROM:A0000024 42 69 6E 5C+ ; DATA XREF: ROM:A000000Ao //ROM:A000003D FF DCB 0xFF