F.A.Q по портированию замэйновых патчей : Патчестроение : Форум |
Страница 3 из 7: « 1 2 [3] 4 5 6 7 » |
MNS81: |
14.08.10, 12:15 |
Storm_68, Попробуй так, заодно посмотри где ошибся Код: ;K790 SW-R8BF003 ;Удалить чёрный фон при просмотре 3х3 и 5х5 ;(c) Therion include "x.inc" ; --------------------------------------------------------------------------- org 0x452CCA6A LDR R3, off_452CCA70 BX R3 NOP off_452CCA70 DCD patch+1 ; --------------------------------------------------------------------------- org 0x45CF7DE0 patch: MOVS R1, 1 ADDS R0, R4, 0 LDR R3, off_45CF7DF0 BLX R3 LDR R3, off_45CF7DEC BX R3 off_45CF7DEC DCD 0x452CCA7A+1 off_45CF7DF0 DCD 0x45317B90+1 |
Storm_68: |
14.08.10, 13:22 |
D3mon, MNS81, вот, почти так сразу получилось, а потом чего-то перемудрил на ночь глядя))) Большое спасибо всем, кто откликнулся на мою проблему :) |
vetel: |
20.08.10, 20:05 |
Вот почему через patsearchnt адреса не всегда находит?либо находит кучу либо ничего,портирую патч уже вторые сутки и никак, может иногда надо патерн как то по другому составлять? |
UltraShot: |
20.08.10, 20:09 |
vetel, ищите по x-ref'ам |
vetel: |
20.08.10, 20:19 |
UltraShot спасибо только я не в курсе как это делать, первый раз слышу про такое,можно ли ссылочку на это? Добавлено 22.8.10 09:06 как же все таки искать ареса по x-ref'ам? |
MAVER145: |
10.11.10, 19:16 |
KIDLIF, можно. в принципе также как и обычно портировать. только ты сначала научись в пределах одной платформы портировать. |
SIRIUS-SE: |
07.06.11, 16:49 |
Парни. Вообщем. Вот. Создал исходник. Вроде как по мануалу все верно. Немного придержался на паттерне,потому как ничего не находит. Зы. В архиве есть скрин-то что получается. Зы2. Кто бы мог проверить на правильность исходника? Буду очень благодарен. Ах да. Забыл. В начале исходника когда пишем инклуд и адреса,есть ли разница сколько перевода строки нужно ставить? Потому как в мануале,сделано 3 перевода. (Вроде как мелочь,ну все же. Хочется быть увереным в мелочах таких) Добавлено 7.6.11 15:55 Вот. Исходник под номером 4. Это конечный. Последний исходник. Предыдущие это так. Сохранял на всякий пожарный. |
Vov4ик: |
07.06.11, 17:01 |
SIRIUS-SE, этот код у тебя повторяется два раза Код: ; --------------------------------------------------------------------------- MOV R0, SP LDRB R0, [R0,4] CMP R0, 2 BEQ loc_45DB0920 CMP R0, 1 BEQ loc_45DB0924 MOV R7, 1 B loc_45DB0926 ; --------------------------------------------------------------------------- loc_45DB0920>loc_45DB0920 ; CODE XREF: ROM:45DB0916j MOV R7, 2 B loc_45DB0926 ; --------------------------------------------------------------------------- loc_45DB0924>loc_45DB0924 ; CODE XREF: ROM:45DB091Aj MOV R7, 0 loc_45DB0926>loc_45DB0926 ; CODE XREF: ROM:45DB091Ej ; ROM:45DB0922j LDR R0, [R4,0x18] MOV R1, 3 BL sub_45DB0A22 LDR R1, =(loc_45DB098E+1) LDR R0, [R4,0x18] BL sub_45DB0A26 ADD R1, R7, 0 LDR R0, [R4,0x18] BL sub_45DB0A2A LDR R7, =(loc_44D87A30+1) BX R7 ; --------------------------------------------------------------------------- MOV R5, 0 STR R5, [SP] BL sub_45DB0A2E CMP R0, 0 BEQ loc_45DB0956 CMP R0, 1 BEQ loc_45DB095A MOV R6, 2 B loc_45DB095C ; --------------------------------------------------------------------------- loc_45DB0956>loc_45DB0956 ; CODE XREF: ROM:45DB094Cj MOV R6, 1 B loc_45DB095C ; --------------------------------------------------------------------------- loc_45DB095A>loc_45DB095A ; CODE XREF: ROM:45DB0950j MOV R6, 4 loc_45DB095C>loc_45DB095C ; CODE XREF: ROM:45DB0954j ; ROM:45DB0958j LDR R7, =(loc_44D87A7C+1) BX R7 ; --------------------------------------------------------------------------- LDR R0, [R4,0x18] MOV R1, SP LDRB R1, [R1,4] CMP R1, 2 BEQ loc_45DB0974 CMP R1, 1 BEQ loc_45DB0986 ADD R2, R5, 0 MOV R1, 0xE2 B loc_45DB098A ; --------------------------------------------------------------------------- loc_45DB0974>loc_45DB0974 ; CODE XREF: ROM:45DB0968j LDR R2, =0xFFFF MOV R1, 0 adr R0, aSuperEconomic ; "Super Economic" BL sub_45DB0A32 ADD R2, R5, 0 ADD R1, R0, 0 LDR R0, [R4,0x18] B loc_45DB098A ; --------------------------------------------------------------------------- loc_45DB0986>loc_45DB0986 ; CODE XREF: ROM:45DB096Cj ADD R2, R5, 0 MOV R1, 0xE3 loc_45DB098A>loc_45DB098A ; CODE XREF: ROM:45DB0972j ; ROM:45DB0984j LDR R7, =(loc_44D87AFA+1) BX R7 ; --------------------------------------------------------------------------- loc_45DB098E>loc_45DB098E ; DATA XREF: ROM:off_45DB0A7Co PUSH {R0-R7,LR} ADD R4, R0, 0 MOV R5, 0 BL sub_45DB0A36 CMP R0, 1 BNE loc_45DB09C6 ADD R0, R4, 0 BL sub_45DB0A3A CMP R0, 0 BEQ loc_45DB09B8 CMP R0, 1 BEQ loc_45DB09BC LDR R2, =0xFFFF MOV R1, 0 adr R0, aSuperEconomicM ; "Super Economic mode powered" BL sub_45DB0A32 ADD R1, R0, 0 B loc_45DB09BE ; --------------------------------------------------------------------------- loc_45DB09B8>loc_45DB09B8 ; CODE XREF: ROM:45DB09A4j LDR R1, =0x1BF B loc_45DB09BE ; --------------------------------------------------------------------------- loc_45DB09BC>loc_45DB09BC ; CODE XREF: ROM:45DB09A8j LDR R1, =0x29C loc_45DB09BE>loc_45DB09BE ; CODE XREF: ROM:45DB09B6j ; ROM:45DB09BAj ADD R0, R4, 0 BL sub_45DB0A3E MOV R5, 1 loc_45DB09C6>loc_45DB09C6 ; CODE XREF: ROM:45DB099Aj ADD R0, R5, 0 POP {R0-R7,PC} ; --------------------------------------------------------------------------- PUSH {R0-R7,LR} SUB SP, SP, 8 ADD R4, R0, 0 MOV R1, SP MOV R0, 0 STR R0, [R1] MOV R0, SP BL sub_45DB0A42 CMP R0, 0 BMI loc_45DB0A00 LDR R2, [SP] LDR R0, [SP] LDR R2, [R2] ADD R1, SP, 4 LDR R2, [R2,0x54] BLX R2 MOV R3, SP LDRB R0, [R3,4] CMP R0, 2 BEQ loc_45DB0A14 LDR R2, [SP] LDR R0, [SP] LDR R2, [R2] ADD R1, R4, 0 LDR R2, [R2,0x3C] BLX R2 loc_45DB0A00>loc_45DB0A00 ; CODE XREF: ROM:45DB09DEj ; ROM:45DB0A20j LDR R0, [SP] CMP R0, 0 BEQ loc_45DB0A10 LDR R1, [SP] LDR R0, [SP] LDR R1, [R1] LDR R1, [R1,0xC] BLX R1 loc_45DB0A10>loc_45DB0A10 ; CODE XREF: ROM:45DB0A04j ADD SP, SP, 8 POP {R0-R7,PC} ; --------------------------------------------------------------------------- loc_45DB0A14>loc_45DB0A14 ; CODE XREF: ROM:45DB09F2j LDR R2, [SP] LDR R0, [SP] LDR R2, [R2] MOV R1, 0 LDR R2, [R2,0x3C] BLX R2 B loc_45DB0A00 loc_45DB0920>loc_45DB0920 это ваще че такое? а это LDR R1, = (loc_45DB098E+1) ? вместо этого DCB 0x71 ; q DCB 0x60 ; ` DCB 0xC6 ; Ж DCB 0x44 ; D будет dw 0x44C66070+1 а DCB 0xFF DCB 0xFF это align 4 а паттерн кстати прикольный |
SIRIUS-SE: |
07.06.11, 17:24 |
Vov4ик пишет: SIRIUS-SE, этот код у тебя повторяется два раза Код: ; --------------------------------------------------------------------------- MOV R0, SP LDRB R0, [R0,4] CMP R0, 2 BEQ loc_45DB0920 CMP R0, 1 BEQ loc_45DB0924 MOV R7, 1 B loc_45DB0926 ; --------------------------------------------------------------------------- loc_45DB0920>loc_45DB0920 ; CODE XREF: ROM:45DB0916j MOV R7, 2 B loc_45DB0926 ; --------------------------------------------------------------------------- loc_45DB0924>loc_45DB0924 ; CODE XREF: ROM:45DB091Aj MOV R7, 0 loc_45DB0926>loc_45DB0926 ; CODE XREF: ROM:45DB091Ej ; ROM:45DB0922j LDR R0, [R4,0x18] MOV R1, 3 BL sub_45DB0A22 LDR R1, =(loc_45DB098E+1) LDR R0, [R4,0x18] BL sub_45DB0A26 ADD R1, R7, 0 LDR R0, [R4,0x18] BL sub_45DB0A2A LDR R7, =(loc_44D87A30+1) BX R7 ; --------------------------------------------------------------------------- MOV R5, 0 STR R5, [SP] BL sub_45DB0A2E CMP R0, 0 BEQ loc_45DB0956 CMP R0, 1 BEQ loc_45DB095A MOV R6, 2 B loc_45DB095C ; --------------------------------------------------------------------------- loc_45DB0956>loc_45DB0956 ; CODE XREF: ROM:45DB094Cj MOV R6, 1 B loc_45DB095C ; --------------------------------------------------------------------------- loc_45DB095A>loc_45DB095A ; CODE XREF: ROM:45DB0950j MOV R6, 4 loc_45DB095C>loc_45DB095C ; CODE XREF: ROM:45DB0954j ; ROM:45DB0958j LDR R7, =(loc_44D87A7C+1) BX R7 ; --------------------------------------------------------------------------- LDR R0, [R4,0x18] MOV R1, SP LDRB R1, [R1,4] CMP R1, 2 BEQ loc_45DB0974 CMP R1, 1 BEQ loc_45DB0986 ADD R2, R5, 0 MOV R1, 0xE2 B loc_45DB098A ; --------------------------------------------------------------------------- loc_45DB0974>loc_45DB0974 ; CODE XREF: ROM:45DB0968j LDR R2, =0xFFFF MOV R1, 0 adr R0, aSuperEconomic ; "Super Economic" BL sub_45DB0A32 ADD R2, R5, 0 ADD R1, R0, 0 LDR R0, [R4,0x18] B loc_45DB098A ; --------------------------------------------------------------------------- loc_45DB0986>loc_45DB0986 ; CODE XREF: ROM:45DB096Cj ADD R2, R5, 0 MOV R1, 0xE3 loc_45DB098A>loc_45DB098A ; CODE XREF: ROM:45DB0972j ; ROM:45DB0984j LDR R7, =(loc_44D87AFA+1) BX R7 ; --------------------------------------------------------------------------- loc_45DB098E>loc_45DB098E ; DATA XREF: ROM:off_45DB0A7Co PUSH {R0-R7,LR} ADD R4, R0, 0 MOV R5, 0 BL sub_45DB0A36 CMP R0, 1 BNE loc_45DB09C6 ADD R0, R4, 0 BL sub_45DB0A3A CMP R0, 0 BEQ loc_45DB09B8 CMP R0, 1 BEQ loc_45DB09BC LDR R2, =0xFFFF MOV R1, 0 adr R0, aSuperEconomicM ; "Super Economic mode powered" BL sub_45DB0A32 ADD R1, R0, 0 B loc_45DB09BE ; --------------------------------------------------------------------------- loc_45DB09B8>loc_45DB09B8 ; CODE XREF: ROM:45DB09A4j LDR R1, =0x1BF B loc_45DB09BE ; --------------------------------------------------------------------------- loc_45DB09BC>loc_45DB09BC ; CODE XREF: ROM:45DB09A8j LDR R1, =0x29C loc_45DB09BE>loc_45DB09BE ; CODE XREF: ROM:45DB09B6j ; ROM:45DB09BAj ADD R0, R4, 0 BL sub_45DB0A3E MOV R5, 1 loc_45DB09C6>loc_45DB09C6 ; CODE XREF: ROM:45DB099Aj ADD R0, R5, 0 POP {R0-R7,PC} ; --------------------------------------------------------------------------- PUSH {R0-R7,LR} SUB SP, SP, 8 ADD R4, R0, 0 MOV R1, SP MOV R0, 0 STR R0, [R1] MOV R0, SP BL sub_45DB0A42 CMP R0, 0 BMI loc_45DB0A00 LDR R2, [SP] LDR R0, [SP] LDR R2, [R2] ADD R1, SP, 4 LDR R2, [R2,0x54] BLX R2 MOV R3, SP LDRB R0, [R3,4] CMP R0, 2 BEQ loc_45DB0A14 LDR R2, [SP] LDR R0, [SP] LDR R2, [R2] ADD R1, R4, 0 LDR R2, [R2,0x3C] BLX R2 loc_45DB0A00>loc_45DB0A00 ; CODE XREF: ROM:45DB09DEj ; ROM:45DB0A20j LDR R0, [SP] CMP R0, 0 BEQ loc_45DB0A10 LDR R1, [SP] LDR R0, [SP] LDR R1, [R1] LDR R1, [R1,0xC] BLX R1 loc_45DB0A10>loc_45DB0A10 ; CODE XREF: ROM:45DB0A04j ADD SP, SP, 8 POP {R0-R7,PC} ; --------------------------------------------------------------------------- loc_45DB0A14>loc_45DB0A14 ; CODE XREF: ROM:45DB09F2j LDR R2, [SP] LDR R0, [SP] LDR R2, [R2] MOV R1, 0 LDR R2, [R2,0x3C] BLX R2 B loc_45DB0A00 loc_45DB0920>loc_45DB0920 это ваще че такое? а это LDR R1, = (loc_45DB098E+1) ? вместо этого DCB 0x71 ; q DCB 0x60 ; ` DCB 0xC6 ; Ж DCB 0x44 ; D будет dw 0x44C66070+1 а DCB 0xFF DCB 0xFF это align 4 а паттерн кстати прикольный Делал все исключительно по материалам эльфсе(от Seveni) По примеру все сходилось. Зы. Че на счет паттерна? Добавлено 7.6.11 16:26 вместо этого DCB 0x71 ; q DCB 0x60 ; ` DCB 0xC6 ;Ж DCB 0x44 ; D будет dw 0x44C66070+1 а DCB 0xFF DCB 0xFF Ах,да. Забыл написать. Это что ты написал-было в примере,но у меня получилось чет иное. Почему оно так? |
Vov4ик: |
07.06.11, 17:51 |
SIRIUS-SE, в иде прйди сюда, опшн - дженерал - анализ - процессор специфик ... - дизэйбл поинтер .... там какую ту галку убрать надо, посмри в мануале чтоб не было вот такого LDR R1, = (loc_45DB098E+1) ? |
Страница 3 из 7: « 1 2 [3] 4 5 6 7 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4457&start=20 © 2005-2018 supertrubka.org |