 |
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Сб Июл 22, 2006 10:36 am Заголовок сообщения: Другие вопросы про Alien Soldier |
|
|
Что-то не как не найду, где хранятся данные о нажатых клавишах в ДЕМО просмотре. |
|
Вернуться к началу |
|
 |
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Вт Июл 25, 2006 4:47 pm Заголовок сообщения: Распаковка графики |
|
|
Так, с комбинацией клавиш мы пока не разобрались. Ну а с распаковкой?
Меня лично заинтересовал этот код, на который игра постоянно ссылается:
Код: | ROM:000022D8 loc_22D8: ; CODE XREF: ROM:00002106
ROM:000022D8 ; ROM:00004A0...
ROM:000022D8 moveq #$3F,d2 ; '?'
ROM:000022DA lea ($FFFFBE04).w,a0 ; DATA XREF: ROM:00194C4Ew
ROM:000022DA ; ROM:00195526w ...
ROM:000022DE move.l #$BE0A,d0
ROM:000022E4
ROM:000022E4 loc_22E4: ; CODE XREF: ROM:000022E8j
ROM:000022E4 move.l d0,(a0)+
ROM:000022E6 addq.w #4,d0
ROM:000022E8 dbf d2,loc_22E4
ROM:000022EC move.w ($FFFFF756).w,d0
ROM:000022F0 bne.w loc_22F6
ROM:000022F4 moveq #1,d0 ; DATA XREF: ROM:001BC9DCr
ROM:000022F6
ROM:000022F6 loc_22F6: ; CODE XREF: ROM:000022F0j
ROM:000022F6 move.b d0,($FFFFBE00).w
ROM:000022FA asl.w #3,d0
ROM:000022FC addi.w #$E000,d0 ; DATA XREF: ROM:0018B436w
ROM:00002300
ROM:00002300 loc_2300: ; DATA XREF: ROM:001B150Er
ROM:00002300 ; ROM:001AA48Cw
ROM:00002300 move.w d0,($FFFFBE02).w
ROM:00002304 move.b #1,($FFFFF744).w
ROM:0000230A rts |
Пока я в нём не совсем разобрался, но вы мне очень поможете если скажите как нормально поставить бряк на адрес, а то в GensDebug у меня не получается. |
|
Вернуться к началу |
|
 |
АнС RRC2008


Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Вт Июл 25, 2006 8:55 pm Заголовок сообщения: |
|
|
Где-то у меня лежит готовый запаковщик (хотя не совсем полноценный, но игрушку я им почти перевёл... года 2 назад)
Твоего куска кода явно не достаточно для понимания алгоритма. |
|
Вернуться к началу |
|
 |
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Вт Июл 25, 2006 10:21 pm Заголовок сообщения: |
|
|
АнС писал(а): | Где-то у меня лежит готовый запаковщик (хотя не совсем полноценный, но игрушку я им почти перевёл... года 2 назад)
Твоего куска кода явно не достаточно для понимания алгоритма. |
Столько думаю будет достаточно:
Код: | ROM:00002274 ; --------------- S U B R O U T I N E ---------------------------------------
ROM:00002274
ROM:00002274
ROM:00002274 sub_2274: ; CODE XREF: sub_2176+Ej
ROM:00002274 ; sub_2176+1Cp ...
ROM:00002274 movea.l 8(a5),a4
ROM:00002278
ROM:00002278 locret_2278: ; DATA XREF: ROM:loc_107BFEw
ROM:00002278 ; ROM:0005BD8Ar
ROM:00002278 rts
ROM:00002278 ; End of function sub_2274
ROM:00002278
ROM:0000227A ; ---------------------------------------------------------------------------
ROM:0000227A move.b $D(a5),d0
ROM:0000227E bmi.s loc_22CC
ROM:00002280
ROM:00002280 loc_2280: ; DATA XREF: ROM:loc_198750w
ROM:00002280 bne.s loc_2292
ROM:00002282
ROM:00002282 loc_2282: ; DATA XREF: ROM:00106FF4w
ROM:00002282 move.b $C(a5),d1
ROM:00002286 ext.w d1 ; DATA XREF: ROM:00159CD0w
ROM:00002286 ; ROM:00196AF2r ...
ROM:00002288
ROM:00002288 loc_2288: ; DATA XREF: ROM:001B92D6r
ROM:00002288 ; ROM:001C43CAr ...
ROM:00002288 adda.w d1,a4
ROM:0000228A move.b 3(a4),d0
ROM:0000228E bra.w loc_22A0
ROM:00002292 ; ---------------------------------------------------------------------------
ROM:00002292
ROM:00002292 loc_2292: ; CODE XREF: ROM:loc_2280j
ROM:00002292 ; DATA XREF: ROM:000D1D48w
ROM:00002292 move.b $C(a5),d1
ROM:00002296 ext.w d1
ROM:00002298 adda.w d1,a4
ROM:0000229A tst.b ($FFFF813E).w
ROM:0000229E bmi.s loc_22D4
ROM:000022A0
ROM:000022A0 loc_22A0: ; CODE XREF: ROM:0000228Ej
ROM:000022A0 subq.b #1,d0
ROM:000022A2 move.b d0,$D(a5)
ROM:000022A6 bne.w loc_22D4
ROM:000022AA
ROM:000022AA loc_22AA: ; DATA XREF: ROM:001293EEw
ROM:000022AA ; ROM:001C013Cw
ROM:000022AA movea.l a4,a2
ROM:000022AC addq.w #4,a2
ROM:000022AE addq.w #4,d1
ROM:000022B0
ROM:000022B0 loc_22B0: ; CODE XREF: ROM:000022CAj
ROM:000022B0 move.b 3(a2),d0
ROM:000022B4 beq.w loc_22C4 ; DATA XREF: ROM:loc_3FAEw
ROM:000022B8 move.b d0,$D(a5)
ROM:000022BC move.b d1,$C(a5)
ROM:000022C0 adda.w (a4),a4
ROM:000022C2 rts
ROM:000022C4 ; ---------------------------------------------------------------------------
ROM:000022C4
ROM:000022C4 loc_22C4: ; CODE XREF: ROM:000022B4j
ROM:000022C4 move.w (a2),d0
ROM:000022C6 adda.w d0,a2
ROM:000022C8 add.w d0,d1
ROM:000022CA bra.s loc_22B0
ROM:000022CC ; ---------------------------------------------------------------------------
ROM:000022CC
ROM:000022CC loc_22CC: ; CODE XREF: ROM:0000227Ej
ROM:000022CC ; DATA XREF: ROM:0014C310w ...
ROM:000022CC move.b $C(a5),d1
ROM:000022D0 ext.w d1
ROM:000022D2 adda.w d1,a4
ROM:000022D4
ROM:000022D4 loc_22D4: ; CODE XREF: ROM:0000229Ej
ROM:000022D4 ; ROM:000022A6j
ROM:000022D4 adda.w (a4),a4
ROM:000022D6 rts
ROM:000022D8
ROM:000022D8 ; --------------- S U B R O U T I N E ---------------------------------------
ROM:000022D8
ROM:000022D8
ROM:000022D8 sub_22D8: ; CODE XREF: sub_20FE+8p
ROM:000022D8 ; ROM:00004A0Ap ...
ROM:000022D8 moveq #$3F,d2 ; '?'
ROM:000022DA lea ($FFFFBE04).w,a0 ; DATA XREF: ROM:00194C4Ew
ROM:000022DA ; ROM:00195526w ...
ROM:000022DE move.l #$BE0A,d0
ROM:000022E4
ROM:000022E4 loc_22E4: ; CODE XREF: sub_22D8+10j
ROM:000022E4 move.l d0,(a0)+
ROM:000022E6 addq.w #4,d0
ROM:000022E8 dbf d2,loc_22E4
ROM:000022EC move.w ($FFFFF756).w,d0
ROM:000022F0 bne.w loc_22F6
ROM:000022F4 moveq #1,d0 ; DATA XREF: ROM:001BC9DCr
ROM:000022F6
ROM:000022F6 loc_22F6: ; CODE XREF: sub_22D8+18j
ROM:000022F6 move.b d0,($FFFFBE00).w
ROM:000022FA asl.w #3,d0
ROM:000022FC addi.w #$E000,d0 ; DATA XREF: ROM:0018B436w
ROM:00002300
ROM:00002300 loc_2300: ; DATA XREF: ROM:001B150Er
ROM:00002300 ; ROM:001AA48Cw
ROM:00002300 move.w d0,($FFFFBE02).w
ROM:00002304 move.b #1,($FFFFF744).w
ROM:0000230A rts
ROM:0000230A ; End of function sub_22D8
ROM:0000230A
ROM:0000230C ; ---------------------------------------------------------------------------
ROM:0000230C ; START OF FUNCTION CHUNK FOR sub_20FE
ROM:0000230C
ROM:0000230C loc_230C: ; CODE XREF: sub_20FE+5Ej
ROM:0000230C move.b #$50,d0 ; 'P'
ROM:00002310 sub.b ($FFFFBE00).w,d0
ROM:00002314 move.b d0,($FFFFBE01).w
ROM:00002318 moveq #$3F,d2 ; '?'
ROM:0000231A movea.w #$BE04,a0
ROM:0000231E move.w ($FFFFF756).w,d0
ROM:00002322 bne.w loc_2328
ROM:00002326 moveq #1,d0
ROM:00002328
ROM:00002328 loc_2328: ; CODE XREF: sub_20FE+224j
ROM:00002328 asl.w #3,d0
ROM:0000232A addi.w #$E000,d0
ROM:0000232E movea.w d0,a1
ROM:00002330
ROM:00002330 loc_2330: ; CODE XREF: sub_20FE+23Ej
ROM:00002330 move.w (a0)+,d0
ROM:00002332
ROM:00002332 loc_2332: ; DATA XREF: ROM:001A16F6w
ROM:00002332 ; ROM:001CA86Ew
ROM:00002332 beq.s loc_233A
ROM:00002334 move.b d0,-5(a1)
ROM:00002338 movea.w (a0),a1 ; DATA XREF: ROM:0005BE02r
ROM:0000233A
ROM:0000233A loc_233A: ; CODE XREF: sub_20FE:loc_2332j
ROM:0000233A addq.w #2,a0
ROM:0000233C dbf d2,loc_2330
ROM:00002340 move.b #0,-5(a1) ; DATA XREF: ROM:00124244r
ROM:00002346 clr.b ($FFFFF744).w
ROM:0000234A rts
ROM:0000234C ; ---------------------------------------------------------------------------
ROM:0000234C
ROM:0000234C loc_234C: ; CODE XREF: sub_20FE+3Aj
ROM:0000234C cmpi.b #$50,d4 ; 'P'
ROM:00002350 bge.s loc_23A6
ROM:00002352 move.b $B(a5),d6
ROM:00002356 ext.w d6
ROM:00002358 add.w $14(a5),d6
ROM:0000235C tst.b 3(a5)
ROM:00002360 bmi.s loc_2366
ROM:00002362 sub.w ($FFFF8086).w,d6
ROM:00002366
ROM:00002366 loc_2366: ; CODE XREF: sub_20FE+262j
ROM:00002366 cmpi.w #$200,d6
ROM:0000236A bcc.s loc_23A6
ROM:0000236C move.b $A(a5),d5
ROM:00002370 ext.w d5
ROM:00002372 add.w $10(a5),d5
ROM:00002376 beq.s loc_23A6
ROM:00002378 cmpi.w #$220,d5 ; DATA XREF: ROM:0005BE52r
ROM:0000237C bcc.s loc_23A6
ROM:0000237E move.b $20(a5),d0
ROM:00002382 andi.w #$FC,d0 ; '№'
ROM:00002386 movea.w d0,a1
ROM:00002388
ROM:00002388 loc_2388: ; DATA XREF: ROM:00159CD8r
ROM:00002388 ; ROM:loc_18BDB2r
ROM:00002388 movea.w -$41FA(a1),a0
ROM:0000238C move.b d4,-5(a0)
ROM:00002390
ROM:00002390 loc_2390: ; DATA XREF: ROM:00192488w
ROM:00002390 move.w d6,(a3)+
ROM:00002392 move.w 8(a5),d0
ROM:00002396 addq.b #1,d4
ROM:00002398
ROM:00002398 loc_2398: ; DATA XREF: ROM:001C979Er
ROM:00002398 move.b d4,d0
ROM:0000239A move.w d0,(a3)+
ROM:0000239C move.w $E(a5),(a3)+
ROM:000023A0 move.w d5,(a3)+
ROM:000023A2
ROM:000023A2 loc_23A2: ; DATA XREF: ROM:000C9364w
ROM:000023A2 move.w a3,-$41FA(a1)
ROM:000023A6
ROM:000023A6 loc_23A6: ; CODE XREF: sub_20FE+252j
ROM:000023A6 ; sub_20FE+26Cj ...
ROM:000023A6 bra.w loc_2150
ROM:000023A6 ; END OF FUNCTION CHUNK FOR sub_20FE
ROM:000023AA ; ---------------------------------------------------------------------------
ROM:000023AA ; START OF FUNCTION CHUNK FOR sub_23AC
ROM:000023AA
ROM:000023AA locret_23AA: ; CODE XREF: sub_23AC+24j
ROM:000023AA ; sub_23AC+2Aj
ROM:000023AA rts
ROM:000023AA ; END OF FUNCTION CHUNK FOR sub_23AC |
|
|
Вернуться к началу |
|
 |
АнС RRC2008


Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Ср Июл 26, 2006 12:25 am Заголовок сообщения: |
|
|
Ну ты бы ещё весь код игры задампил.  |
|
Вернуться к началу |
|
 |
Ghost

Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Пн Июл 31, 2006 8:10 pm Заголовок сообщения: |
|
|
Обычно при воспроизведении демок считанные кнопки из рома подставляются вместо нажатых на соответствующий адрес, но это после проверки, мы нажали что-нибудь, что прерывает демку, или нет. Вот по ним и надо искать. Например, для данной (E) игры первая демка начинается с адреса $24642, по адресу $FFFF4C адрес считываемых данных из рома. Как они устроены, мне лень было разбираться. _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
 |
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Пн Июл 31, 2006 11:33 pm Заголовок сообщения: |
|
|
Ghost писал(а): | Обычно при воспроизведении демок считанные кнопки из рома подставляются вместо нажатых на соответствующий адрес, но это после проверки, мы нажали что-нибудь, что прерывает демку, или нет. Вот по ним и надо искать. Например, для данной (E) игры первая демка начинается с адреса $24642, по адресу $FFFF4C адрес считываемых данных из рома. Как они устроены, мне лень было разбираться. |
Я это примерно так себе и представлял. А за данные, спасибо. |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|