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. Это конечный. Последний исходник.
Предыдущие это так. Сохранял на всякий пожарный.

Прикрепленный к сообщению файл:

Patch.zip Patch.zip (27.71 kb; 11 hits) Скачать файл

 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

а паттерн кстати прикольный :lol:

 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

а паттерн кстати прикольный :lol:

Делал все исключительно по материалам эльфсе(от Seveni)
По примеру все сходилось.
Зы. Че на счет паттерна? :-D


Добавлено 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 mobilefree.justdanpo.ru