User Tag List

Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 95

Тема: Косметический ремонт REX-2

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,349
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот что выяснилось на последнем стриме. Ввод пароля на Еве не получался. Буковки выстреливали с немыслимой скоростью. Нажав "8" получали "88888888888".
    Покопался. Оказалось что отжатие кнопки ждётся... изменением считанного из порта байта. Вместе со старшими тремя битами. А если в них шум, или сигнал с мафона, то вот и получается резкое "отжатие", хотя физически кнопку палец ещё держит. А значит следом будет резкое нажатие, и так далее.
    Подправил код, чтобы учитывалось изменение только младших 5 бит.
    Попутно выяснилось, что вводить можно весьма странно, нажимая и пережимая одновременно несколько клавиш. А кнопку аш("H") и пробел ввести не получается.

    Подробности

    Код:
            ORG  0DD9BH          ORG  0DD9BH
                    ; DD9B - jump/call references:
                    ; JP from DDF6H, DDFBH, DE07H
            PUSH IY                         ;DD9B   FDE5
                    ; DD9D - jump/call references:
                    ; JP from DDCCH
            LD   IX,AE1AH                   ;DD9D   DD211AAE
            LD   IY,AE2AH                   ;DDA1   FD212AAE
            LD   B,08H                      ;DDA5   0608
                    ; DDA7 - jump/call references:
                    ; DJNZ from DDCAH
            PUSH BC                         ;DDA7   C5
            LD   C,(IX+00H,AE24H)           ;DDA8   DD4E00
            LD   B,(IX+01H,AE25H)           ;DDAB   DD4601
            LD   (A244H),BC                 ;DDAE   ED4344A2
            IN   A,(C)                      ;DDB2   ED78
    ; Сканируем порты
            LD   B,05H                      ;DDB4   0605
            LD   E,00H                      ;DDB6   1E00
            LD   D,A                        ;DDB8   57
                ; DDB9 - jump/call references:
                ; DJNZ from DDBEH
            RRCA                            ;DDB9   0F
    ; Сканируем кнопки
            JP   NC,DDCFH                   ;DDBA   D2CFDD
    ; в поисках нажатой
            INC  E                          ;DDBD   1C
            DJNZ DDB9H                      ;DDBE   10F9
            POP  BC                         ;DDC0   C1
            INC  IX                         ;DDC1   DD23
            INC  IX                         ;DDC3   DD23
            LD   DE,0005H                   ;DDC5   110500
            ADD  IY,DE                      ;DDC8   FD19
            DJNZ DDA7H                      ;DDCA   10DB
            JP   DD9DH                      ;DDCC   C39DDD
                ; DDCF - jump/call references:
                ; JP from DDBAH
    ; нашли нажатую кнопку
            POP  BC                         ;DDCF   C1
            PUSH DE                         ;DDD0   D5
    ; Совершенно ненужный пуш
                ; DDD1 - jump/call references:
                ; JP from DDDAH
            LD   C,(IX+00H,AE24H)           ;DDD1   DD4E00
            LD   B,(IX+01H,AE25H)           ;DDD4   DD4601
            IN   A,(C)                      ;DDD7   ED78
    ; Читаем снова, из того-же порта
            CP   D                          ;DDD9   BA
    ; Сравниваем, совпадает ли с первоначальным значением !!!!!!!!!
            JP   Z,DDD1H                    ;DDDA   CAD1DD
    ; Если не совпадает, то значит кнопку отжали!!!????
     ; А может не отжали, а просто скачат биты 5,6,7, один из которых сигнал с мафона!
            LD   A,E                        ;DDDD   7B
            SLA  A                          ;DDDE   CB27
            SLA  A                          ;DDE0   CB27
            SLA  A                          ;DDE2   CB27
            LD   D,47H                      ;DDE4   1647
            ADD  D                          ;DDE6   82
    ; лишняя пересылка в D. Можно сразу ADD 47h
            LD   (A246H),A                  ;DDE7   3246A2
            POP  DE                         ;DDEA   D1
    ; соотретственно ненужный поп, в E и так нужное значение.
            LD   D,00H                      ;DDEB   1600
            ADD  IY,DE                      ;DDED   FD19
            LD   A,(IY+00H,AE43H)           ;DDEF   FD7E00
            POP  IY                         ;DDF2   FDE1
            CP   A,20H                      ;DDF4   FE20
            JP   Z,DD9BH                    ;DDF6   CA9BDD
            CP   A,48H                      ;DDF9   FE48
            JP   Z,DD9BH                    ;DDFB   CA9BDD
            LD   IY,DE13H                   ;DDFE   FD2113DE
            LD   B,05H                      ;DE02   0605
                ; DE04 - jump/call references:
                ; DJNZ from DE0CH
            CP   (IY+00H,AE43H)             ;DE04   FDBE00
            JP   Z,DD9BH                    ;DE07   CA9BDD
            INC  IY                         ;DE0A   FD23
            DJNZ DE04H                      ;DE0C   10F6
            LD   IY,DE13H                   ;DE0E   FD2113DE
            RET                             ;DE12   C9
    
    
    Патч заключался в замене
            CP   D                          ;DDD9   BA
    На
            XOR  D
            AND  1Fh
    То есть на сравнение не всего байта, а только младших 5-ти бит.
    [свернуть]
    Вложения Вложения
    • Тип файла: zip REX2m4.zip (28.7 Кб, Просмотров: 125)
    Последний раз редактировалось Reobne; 02.06.2022 в 21:32. Причина: Вставил подробности

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    5,000
    Спасибо Благодарностей отдано 
    1,092
    Спасибо Благодарностей получено 
    1,192
    Поблагодарили
    927 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    А кнопку аш("H") и пробел ввести не получается.
    Это потому что они захардкожены на Паузу и Смарт-бомбу, видимо.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  4. #3

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,698
    Спасибо Благодарностей отдано 
    305
    Спасибо Благодарностей получено 
    226
    Поблагодарили
    160 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Ввод пароля на Еве не получался. Буковки выстреливали с немыслимой скоростью.
    Оно не только на Еве. Именно по этой причине не смог когда-то давно играть на 48м клоне.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  5. #4

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,349
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Bedazzle, Авторы Rex-а торопились наверное. Как вообще это раньше не замечали.

    Хорошо, что они оставили совершенно ненужные PUSH-POP, и LD D,NN: ADD D вместо ADD NN. Легко было пропатчить, стерев этот балласт.

    - - - Добавлено - - -

    А кто нибудь замечал, что лазер на максимальной энергии коротко бьёт? Как думаете, глюк или так и надо?

  6. #5

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    5,000
    Спасибо Благодарностей отдано 
    1,092
    Спасибо Благодарностей получено 
    1,192
    Поблагодарили
    927 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Подправил код, чтобы учитывалось изменение только младших 5 бит.
    Работает отлично! Никаких дребезгов!

    - - - Добавлено - - -

    Цитата Сообщение от Reobne Посмотреть сообщение
    А кто нибудь замечал, что лазер на максимальной энергии коротко бьёт? Как думаете, глюк или так и надо?
    Что коротко бьет замечал, не смотрел на прокачку. Может так и хотели, а может перепутали.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

    Эти 2 пользователя(ей) поблагодарили Black Cat / Era CG за это полезное сообщение:

    Oleg N. Cher(08.06.2022), Reobne(02.06.2022)

  7. #6

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,349
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Иногда капельки визуально превращаются в какое то непотребство. Начал копать, и нашёл причину.

    подробности

    Фрагмент расшифровщика-создателя объектов, при построении экрана
    Код:
            ORG  0CB8FH
            OR   A                          ;CB8F   B7
            CALL Z,CC05H                    ;CB90   CC05CC
            CP   A,01H                      ;CB93   FE01
            CALL Z,CC40H                    ;CB95   CC40CC
            CP   A,02H                      ;CB98   FE02
            CALL Z,CC75H  ;<-- капля      ;CB9A   CC75CC
    ; вычисляя случайное число "терпения" капли, оставляет его в A
            CP   A,03H                      ;CB9D   FE03
            CALL Z,CC53H                    ;CB9F   CC53CC
            CP   A,04H                      ;CBA2   FE04
            CALL Z,CC9DH                    ;CBA4   CC9DCC
            CP   A,05H                      ;CBA7   FE05
            CALL Z,CCF3H                    ;CBA9   CCF3CC
            CP   A,09H                      ;CBAC   FE09
            CALL Z,CCD1H                    ;CBAE   CCD1CC
            CP   A,06H                      ;CBB1   FE06
            CALL Z,CC18H                    ;CBB3   CC18CC
            CP   A,0EH                      ;CBB6   FE0E
            CALL Z,CD15H                    ;CBB8   CC15CD
            CP   A,7CH                      ;CBBB   FE7C
            CALL Z,CCBFH                    ;CBBD   CCBFCC
    ; если случайно "терпение" капли будет равно 7C, то... капля превратится в это
    Вылечил, минимальными изменениями, переставив вызов конструктора капли в самый конец.

    Остальные конструкторы просто заполняют данные объекта константами, не меняя А
    Лучше было-бы выделить этот блок CASE в отдельную подпрограмму, и все эти CALL Z заменить на JP Z, тогда не нужно было-бы помнить, что аккумулятор в конструкторах менять нельзя.
    [свернуть]

    Но я ещё не закончил. Теперь хочу понять, почему от объектов, близких к левому краю, не остаётся пузырей. Это и в первом уровне Рекса так.

    Эти 2 пользователя(ей) поблагодарили Reobne за это полезное сообщение:

    Black Cat / Era CG(08.06.2022), Oleg N. Cher(08.06.2022)

  8. #7

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,318
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,479
    Поблагодарили
    965 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    только мне кажется странным смерть всех врагов на экране после гибели Рекса ?
    ну допустим умирая он активирует бомбу, но если бомб у него нет ?

  9. #8

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    5,000
    Спасибо Благодарностей отдано 
    1,092
    Спасибо Благодарностей получено 
    1,192
    Поблагодарили
    927 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    только мне кажется странным смерть всех врагов на экране после гибели Рекса ?
    ну допустим умирая он активирует бомбу, но если бомб у него нет ?
    Не знаю, по крайней мере на баг это не похоже. Меня больше удивили последний "босс". Два раза удивил
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  10. #9

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,349
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, При желании хороший фантаст всему найдёт объяснение. Хотя это и трудно.
    Почему бомбы выпадают из врагов, но враги никогда ими не пользуются? Наверное это трофейные смартбомбы, отнятые у других наёмников. Людишки ими пользоваться не могут, так как они настроены убивать всё кроме носорогов.
    Почему Рекс сразу не взял весь арсенал, а собирает оружие в каких-то ракетах? Наверное он очень бедный наёмник. Даже энергию оружия с собой принёс не очень много.
    Почему Рекс умирая взрывается? Наверное всегда имеет "последнюю гранату". Или эта "граната" встроена в систему возрождения, чтобы эта система не попала людишкам. Тогда как же трофейные смартбомбы? А у других, ещё более бедных наёмников, нету системы возрождения. Они с нулём запасных жизней.
    Думаю придумать можно всякое. На крайняк перейти от фантастики к фэнтези.

  11. #10

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,349
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё узнал, про образование пузырей слева. Осталось дело техники.

    подробнее


    Они специально сделали чтобы слева пузырь не появлялся (проверка на C0B2), потому что пузырёк, если он появится, то не берётся.
    А не берётся он потому, что работа с хитбоксами (D003) ведётся не совсем по правильным формулам. Надо переписать.
    Заодно нашёл баг. процедура учёта очков (вызов 984D) портит регистр B, а в нём счётчик. (Поэтому, если если пуля убьёт кого-то, очки зачислятся, и ещё 256 "пуль" дальше по памяти могут быть обработаны как пули, хотя там не пули уже. А от этого чёрт знает что может произойти)
    [свернуть]

    Эти 4 пользователя(ей) поблагодарили Reobne за это полезное сообщение:

    Black Cat / Era CG(09.06.2022), Digitizer(09.06.2022), goodboy(09.06.2022), Lethargeek(09.06.2022)

Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ремонт Пентагона
    от geners в разделе Pentagon
    Ответов: 56
    Последнее: 29.11.2011, 09:47
  2. Ремонт Профи
    от molodcov_alex в разделе Profi
    Ответов: 7
    Последнее: 19.06.2008, 15:42
  3. Ремонт Профи
    от spleen в разделе Profi
    Ответов: 2
    Последнее: 07.04.2006, 13:23
  4. Ремонт дисководов в PDF
    от fk0 в разделе Пресса
    Ответов: 0
    Последнее: 06.02.2006, 12:18
  5. Ремонт фирменного 48-го
    от kgbplus в разделе Зарубежные модели
    Ответов: 2
    Последнее: 11.03.2005, 20:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •