Chief-NET

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Chief-NET » Экстрим хакинг » Star Trek - 25th Anniversary (U).nes


Star Trek - 25th Anniversary (U).nes

Сообщений 1 страница 4 из 4

1

Начал искать текст а он запакован.
Может кто поможет два дня дебага не прошли даром, но не могу понять алгоритм.
Что я нарыл, точки останова ставить на $21e на запись там формируется текст.
$FF используется для вычисления символа
$C8 $c9 для циклов сдвигов
Значения $1d $1a какие то спец символы
$50
$51 Адрес в Роме откуда берем текст.

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

Код:
$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

в районе 00032920 что-то есть, думаю рядом искать надо. т.к открытый текст тоже недалеко: 00035A14.

3

Да, шеф, там все так как мы и думали:
кодировка текста 5-ти битовая, то есть количество кодов = 32 (кошмар оправдался), а 41 прибавляется для того, чтобы получить код OEM, таким образом:
&b00000 + &h41 = A
&b00001 + &h41 = B и т.д.
Таблица поинтеров для этого блока - &h304С9 (прямо перед "текстом")

4

Big thanks
Я вчера разнюхал что и как, про 41 я догадался код A=41. Про пять бит тоже, вчера разложил текст и начач пробовать, попробовал пять бит пошло. бит ff и fe нужны для хранения поинтера на текст а не символа. Спасибо за помощь. Поинтеры я не нашел. Теперерь есть все, в свете последнего я добавляю в программу работу с таким текстом. В будущем я добавлю компилятор для написания внешних обработчиков, тем самым универсализирую программу.


Вы здесь » Chief-NET » Экстрим хакинг » Star Trek - 25th Anniversary (U).nes