форум группы Chief-Net » » Экстрим хакинг » Star Trek - 25th Anniversary (U) [NES]

Страниц (1): [1]
 

1. chiefexb - 10 Февраля, 2016 - 07:34:28 - перейти к сообщению
Начал искать текст а он запакован.
Может кто поможет два дня дебага не прошли даром, но не могу понять алгоритм.
Что я нарыл, точки останова ставить на $21e на запись там формируется текст.
$FF используется для вычисления символа
$C8 $c9 для циклов сдвигов
Значения $1d $1a какие то спец символы
$50
$51 Адрес в Роме откуда берем текст.

Таблица стандартная OEM

CODE:
$B19D:A9 08     LDA #$08
$B19F:85 FE     STA $FE
$B1A1:A0 00     LDY #$00
$B1A3:B1 50     LDA ($50),Y (чтение из РОМ следущего символа)
$B1A5:85 FF     STA $FF
$B1A7:C6 C8     DEC $C8
$B1A9:D0 DD     BNE $B188
$B1AB:A4 FC     LDY $FC
$B1AD:C0 FF     CPY #$FF
$B1AF:F0 09     BEQ $B1BA

$B1BA:A5 C9     LDA $C9
$B1BC:C9 1D     CMP #$1D
$B1BE:90 08     BCC $B1C8

$B1C8:C9 1A     CMP #$1A
$B1CA:90 0A     BCC $B1D6
$B1CC:38        SEC
$B1CD:E9 1A     SBC #$1A
$B1CF:A8        TAY
$B1D0:B9 FD B1  LDA $B1FD,Y
$B1D3:4C D9 B1  JMP $B1D9

$B1D6:18        CLC
$B1D7:69 41     ADC #$41
$B1D9:A4 FD     LDY $FD
$B1DB:99 00 02  STA $0200,Y
$B1DE:E6 FD     INC $FD
$B1E0:C9 00     CMP #$00
$B1E2:F0 07     BEQ $B1EB
$B1E4:A9 FF     LDA #$FF
$B1E6:85 FC     STA $FC
$B1E8:4C 80 B1  JMP $B180
2. evgeny - 10 Февраля, 2016 - 07:39:19 - перейти к сообщению
evgeny
в районе 00032920 что-то есть, думаю рядом искать надо. т.к открытый текст тоже недалеко: 00035A14.
3. alex_231 - 10 Февраля, 2016 - 07:39:48 - перейти к сообщению
alex_231
Да, шеф, там все так как мы и думали:
кодировка текста 5-ти битовая, то есть количество кодов = 32 (кошмар оправдался), а 41 прибавляется для того, чтобы получить код OEM, таким образом:
&b00000 + &h41 = A
&b00001 + &h41 = B и т.д.
Таблица поинтеров для этого блока - &h304С9 (прямо перед "текстом"Подмигивание
4. chiefexb - 10 Февраля, 2016 - 07:40:18 - перейти к сообщению
chiefexb
Big thanks
Я вчера разнюхал что и как, про 41 я догадался код A=41. Про пять бит тоже, вчера разложил текст и начач пробовать, попробовал пять бит пошло. бит ff и fe нужны для хранения поинтера на текст а не символа. Спасибо за помощь. Поинтеры я не нашел. Теперерь есть все, в свете последнего я добавляю в программу работу с таким текстом. В будущем я добавлю компилятор для написания внешних обработчиков, тем самым универсализирую программу.
5. Mefistotel - 11 Февраля, 2016 - 04:32:28 - перейти к сообщению
Перевод этой игры можно скачать здесь:
Star Trek - 25th Anniversary

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®