Важная информация

User Tag List

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 96

Тема: Вопрос про сохранения

  1. #41
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,645
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    несколько байт портятся даже когда игра на паузе? Или пауза всё спасает? Если бы портилось при паузе, тогда это заметно было бы - порча графики, шрифтов, зависание, сброс и т.п., чего на мультифейсе не наблюдается.
    Дело в том, что они портятся ниже регистра SP на момент немаскируемого прерывания, это в нормальной ситуации место использованных временных данных, так что их изменение ничего не меняет. Стек растет вниз, байты памяти перезаписываются с уменьшением SP, это штатное поведение. Но иногда команды работы со стеком используется для изощренных программистских приемов, не предполагающих записи в стек на определённых участках кода (перенос графики, чтение из таблиц). И вот тут порча даже двух байтов может привести к непредсказуемым результатам, от порчи графики до зависания со спецэффектами и сброса. А портятся они потому, что при вызове процедуры немаскированного прерывания (NMI) на стек всегда автоматически кладется адрес возврата в прерванную программу (а часто ещё и 2-4 байта содержимого регистровых пар, но это уже самой процедурой обработки NMI).

    Пауза спасает потому, что обычно выполняется простой процедурой без манипуляций со стеком. Но если бы автор задался целью обезопасить программу от взлома/сохранений на момент паузы, сделать это также очень просто.

  2. #42
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,913
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    32 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    И на всяких скорпионах, после NMI в Last Ninja (и возможно многих других играх) не будут всплывать всякие черные экраны и кракозябренные шрифты? :-o
    Коли речь зашла про всякие продвинутые Magic'и и очередное опускание скорпионовского, появились вопросы к знатокам. Судя по поведению в Unreal, в том самом эталоне несохраняемости - Last Ninja - Scorp, несмотря на читалку #7ffd, тупо не восстанавливает 1-й экран при выходе из сервисного меню. Вопроса два: знает ли кто как это пофиксить и насколько оно после фикса сможет потягаться в безглючности с распеаренным мультифейсом?
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  3. #43
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,763
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    293
    Поблагодарили
    220 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а не потому ли он включает 7ой экран потому как 128ой копии 7ffd лежит включенный 4ый бит?
    С уважением,
    Jerri / Red Triangle.

  4. #44
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    259
    Поблагодарили
    179 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Они портятся всегда, просто то что они портят абсолютно не важно. Видимо пора вас в курс дела ввести, испорченные байты на стеке есть всегда, но во время паузы (ее опрос как правило в основном цикле и стек в обычной рабочей области) или перед прерыванием они просто не важны так как перезапишуться познее. Проблема возникает когда из стека читаются данные или он допустим на таблице ретов именно в такие моменты происходит порча полезных данных.
    Цитата Сообщение от weiv Посмотреть сообщение
    Дело в том, что они портятся ниже регистра SP на момент немаскируемого прерывания, это в нормальной ситуации место использованных временных данных, так что их изменение ничего не меняет. Стек растет вниз, байты памяти перезаписываются с уменьшением SP, это штатное поведение. Но иногда команды работы со стеком используется для изощренных программистских приемов, не предполагающих записи в стек на определённых участках кода (перенос графики, чтение из таблиц). И вот тут порча даже двух байтов может привести к непредсказуемым результатам, от порчи графики до зависания со спецэффектами и сброса. А портятся они потому, что при вызове процедуры немаскированного прерывания (NMI) на стек всегда автоматически кладется адрес возврата в прерванную программу (а часто ещё и 2-4 байта содержимого регистровых пар, но это уже самой процедурой обработки NMI).
    Это всё понятно. Не понятно, почему ЛастНинзя на обычном, непродвинутом спектруме с мультифейсом не портится, а на супер-пупер продвинутом скорпионе с супер мега профессиональным ромом портится. Игра одна и та же, NMI одно и то же. В чем же дело? Скажите суровую правду. Неужели суровая правда в том, что русские тупее англичан? ((
    У русских не то что не хватило ума с нуля придумать способ "совладать со стеком и NMI", но даже не хватило ума на то, чтобы тупо скопировать решение с мультифейса? ((

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

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    и насколько оно после фикса сможет потягаться в безглючности с распеаренным мультифейсом?
    Тягаться в безглючности с мультифейсом? Неплохо было бы конечно.. Но в романтик-робот работали не рукожопы, а настоящие романтики. А вот в скорпионе работали романтики? Я чо-то не уверен.
    Куплю корпус и материнку от Spectrum +2/+3

  5. #45
    Member Аватар для Underground1
    Регистрация
    28.06.2017
    Адрес
    г. Воронеж
    Сообщений
    134
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Сигнал wait на проц останавливает выполнение программы. У меня на скорпе такое было сделано, чтобы точно входить в начало прерывания. Аппаратная пауза своего рода была)) Делается на любом спеке элементарно. Данная фича реализована в конфигурации ScorpEVO по моей просьбе.
    А как бы ознакомиться со схемкой реализации такой аппаратной паузы?

  6. #46
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,820
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    1,196
    Поблагодарили
    788 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Не понятно, почему ЛастНинзя на обычном, непродвинутом спектруме с мультифейсом не портится, а на супер-пупер продвинутом скорпионе с супер мега профессиональным ромом портится
    ты проверял LastNinja на реале (скорп) или под эмулем ?

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

  8. #47
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    259
    Поблагодарили
    179 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, под эмулем конечно. Года 3 назад под унреалом и под спекулятором, щас решил освежить, но унреал уже не могу настроить. А реальный скорп откуда у меня? У людей может и есть реалы, но они у них на полке, в кладовке, в гараже, так что остается только эмулятор, вот правда у товарища Gutten есть скорп, но у него нет тыщи, чтоб перепаять микросхемы, а так бы он проверил на реале.

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

    Щас же всё на эмулях. Я не удивлюсь, если без малого 3 тыщи обладателей Next'а просто поставят его в сервант, под стекло, а сами будут юзать эмуль Next'a, это нормально, чо, щас так принято. Новый стандарт )
    Куплю корпус и материнку от Spectrum +2/+3

  9. #48
    Guru Аватар для creator
    Регистрация
    02.07.2006
    Адрес
    Новосибирск
    Сообщений
    2,200
    Спасибо Благодарностей отдано 
    442
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    132 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Но в романтик-робот работали не рукожопы, а настоящие романтики. А вот в скорпионе работали романтики? Я чо-то не уверен.
    Ага-ага, кое-где я такое уже читал:
    Компьютеры можно создавать по-разному. Можно отсиживать "от звонка до звонка", разрабатывая какой-нибудь модуль и почти не ведать, что делают десятки или даже сотни таких же унылых, как ты сам, интеллектуальных работяг, за соседними столами. Единственное, что движет тобой — уложиться в срок, указанный боссом и выдать рабочий продукт, который будет делать своё бескрылое дело и не более того. Дисциплина и исполнительность — прежде всего. Муравьиная психология — вы когда-нибудь видели муравейник в форме чайной розы или четырехмерного гиперкуба?
    В правильно заданном вопросе содержится половина ответа

  10. #49
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,820
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    1,196
    Поблагодарили
    788 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    блин, так эмуль (скорее всего) может и не знать про чтение порта #7ffd через порты AYшки.
    вот и врубает теневой экран в LastNinja

  11. #50
    Master
    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтение #7FFD нигде не используется. ПрофПЗУ включает экран по 3-му биту #5B5C.

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Вопрос про ПЗУ
    от Asd1995sse в разделе Память
    Ответов: 20
    Последнее: 08.09.2013, 15:36
  2. Ответов: 5
    Последнее: 22.03.2011, 13:00
  3. Вопрос про память
    от POIND в разделе Память
    Ответов: 104
    Последнее: 03.01.2006, 14:15

Ваши права

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