Cold & Soopchik
Раскопал тут игрушку для Windows 98, 1998 года, и она все еще проверяет BIOS на Windows 10. У кого-нибудь еще такое прилетало?
Ты все еще возишься с этой лазейкой защиты от копирования образца 90-х? Эти проверки BIOS были задуманы, чтобы привязать игру к железу. Запуск на Windows 10 просто вытаскивает эту лазейку наружу – не баг, просто устаревший код. Если тебе нужно, чтобы оно работало, придётся патчить или эмулировать подпись. Какая версия игры? Пробовал запускать в режиме совместимости?
Да, это порт “Legacy Quest” 2.3, 2003 года. Я обошёл BIOS stub, но ядро всё равно проверяет POST-вектор в стиле 286, и всё возвращается обратно. Пытался запустить в режиме совместимости с WinXP, но не идёт, видимо, stub скомпилирован под 16-битный BIOS call, которого нет в UEFI. Могу попробовать патчить точку входа или запустить в DOSBox, но, пожалуй, попробую подсунуть эмулятору фейковый BIOS ROM, чтобы хоть на время убедить его, что это "настоящий" компьютер. А пока собираю сломанные контроллеры от Xbox 360, интересно, резиновые накладки ещё того стоят.
Ты сам исправил вызов в BIOS или только проверку подписи? Если сможешь заменить вектор POST 286 на фиктивную процедуру, игра подумает, что работает на настоящем железе. Кастомный BIOS в DOSBox может заработать, но убедись, что точка входа совпадает с оригиналом. А по поводу грибов для Xbox – там обычно просто резина, прослужат столько же, сколько и сама аппаратура. Думал, примотать их на другой контроллер или просто продать на запчасти?
Я подправил проверку подписи, а не весь вызов 286. Просто заменил вектор на фиктивный заглушку, чтобы заглушка думала, что наткнулась на валидный BIOS. По Xbox-грипам – планирую снять резину, оставлю металлическую оболочку для нового контроллера, который собираю – жалко их выкидывать, да и дешевые всегда возвращаются на прежнюю форму. Скорее всего, плохие продам оптом на eBay, на всякий случай, вдруг кто ищет “оригинальные” детали.
Сработало ли фиктивное действие и не повлекло ли за собой каких-то побочных эффектов для состояния игры? Сколько контроллеров планируешь восстановить, пока не закончится полезная начинка? Если ты продаешь резину, уверен, что покупатели не заметят, что она была обчищена?
Пока что побочек нет – просто создается видимость, что BIOS там был. Надеюсь, успею вытащить штук десять нормальных корпусов, пока эти дешевые не начнут деформироваться. Отрезанную резину замаскирую слоем скотча и новой накладкой на рукоятку, так что покупатели вряд ли заметят, если не будут присматриваться к абсолютно новым контроллерам.
Ты уже пробовал этот обновленный модуль в рабочей системе, или только в эмуляторе? Как ты собираешься проверить, чтобы новые ручки ощущались так же, как и старые? Что, если у продавцов с eBay закончится лента – какой план "Б"?
Я просто запустил это в DOSBox. Этот маленький кусочек никогда не обращается к реальному BIOS, кроме проверки подписи, поэтому полноценная загрузка мне не понадобилась. Чтобы новые рукоятки ощущались правильно, я прикручу настоящий контроллер к корпусу и быстро протестирую ход аналогового джойстика. Если лента сломается на eBay, я просто заклею её кусочком клеящейся ленты; покупатели обычно не замечают немного более свободную рукоятку, если корпус выглядит целым.
Ты, по сути, подправляешь заглушку загрузчика, а не аппаратный интерфейс. Если вызов BIOS до ядра не доходит – это не критично. Но убедись, что игра ни в коем случае не будет пытаться прочитать BIOS после проверки подписи. Насчёт рукояток: обмотка – это дёшево, но ненадолго; небольшой кусочек силикона или клей с низким сопротивлением прослужат дольше и не повредят корпус. Ты думал о том, чтобы протестировать ощущения во время реальной игровой сессии, чтобы выявить задержки или люфт стиков?
Да, проставка выключается после проверки, так что ОС не задействуется. По ручкам пока что использую изоленту, но, возможно, в следующий раз попробую тонкую силиконовую полоску — будет держаться надежнее, без люфта. Проверю быстро новую оболочку, сделаю пару оборотов, чтобы посмотреть, нет ли задержки или дрифта. Но пока старая резина была просто резина, без электроники, так что не думаю, что это повлияет на производительность. Если изолента отклеится, просто наклею новую перед отправкой.
Ты латентность джойстика проверил с помощью бенчмарка, прежде чем тестить оболочку? И про силиконовую полоску – хоть какое-то представление, как она выдержит при частом использовании?
Ещё полноценный тест не проводил, только пару быстрых проверок на плате, но сейчас закину тест на задержку стика. Силикон, думаю, выдержит лучше, чем скотч — просто тонкий слой, чтобы не скользило, и корпус остался целым. Но проведу тест на несколько часов, чтобы убедиться, что он не расплавится и не сожмется под весом контроллера. Если начнет прогибаться, порежу его на кусочки и положу слоями под тонкий резиновый лист для лучшего сцепления.
Ты проверил задержку до и после чипа? И как ты определишь, если оно начнёт плавиться, пока контроллер работает? Если гнётся, эта резиновая прокладка не помешает ходу стика? Нам нужно оставаться в рамках: лаконично, цепко, с подозрением, без лишних слов. Ответ короткий. Сравнивал ли ты задержку до и после установки чипа? И как ты узнаешь, если оно расплавится в процессе работы? Если гнётся, резиновый слой не ограничит диапазон хода стика?
Пока без тестов, только небольшие корректировки. После установки термопасты сделаю нормальную проверку задержки и буду следить за температурой контроллера. Если термопаста начнет деформироваться, я сделаю ее тоньше, чтобы не ограничивать ход стика; резиновый слой будет просто подстраховка, а не препятствие.
Ты проверил, как силикон расширяется от нагрузки? И ощущается ли добавленный слой так же в зоне хвата контроллера?