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 supertrubka.org