Why Castrol Honda Superbike crashes on (most) modern systems
Игра Castrol Honda Superbike World Champions 1998 года выпуска работает на Windows 98 и XP, но стабильно падает на Windows 7. Игра использует DirectX 5 и скомпилирована с Microsoft Visual C/C++ 5, причём отладочная версия библиотеки runtime (libcmtd вместо libcmt) содержит множество дополнительных проверок и логирования. Анализ показывает, что игра вылетает при вызове DirectInputCreateEx во время инициализации.
Включив детальное логирование через параметры в Config.dat, автор обнаружил, что игра перечисляет все устройства ввода, включая "LED Controller" — встроенный контроллер подсветки материнской платы. Отключение этого устройства в Device Manager решает проблему. Игра была создана до появления подобных устройств и некорректно обрабатывает их обнаружение.
Комментарии (31)
- Microsoft удалила документацию к старой версии DirectX, что вызвало ностальгию и обеспокоенность сохранением истории.
- Обсуждение затронуло тонкую грань между «устаревшими» и «недокументированными» API, особенно в контексте DirectInput.
- Участники поделились личными историями о том, как они сталкивались с подобными проблемами в своих проектах.
- Была поднята тема о том, что современные системы всё ещё содержат старые библиотеки для обратной совместимости, но при этом не предоставляют документацию.
- Сообщество выразило обеспокоенность тем, что без этих знаний новые разработчики могут повторить те же ошибки.
If all the world were a monorepo 🔥 Горячее
—
Комментарии (69)
- Обсуждаются строгие правила CRAN для R-пакетов, требующие обратной совместимости и тестирования всех зависимых пакетов при обновлении, что сравнивают с монорепозиторием.
- Поднимаются проблемы других экосистем (Python, npm), где распространены ломающие изменения и конфликты зависимостей, и отмечается стабильность R.
- Участники спорят о практичности подхода CRAN: одни видят в нём бремя для разработчиков, другие — выгоду для научной воспроизводимости и пользователей.
- Предлагаются альтернативы и обходные пути, такие как полное форкирование, версионирование API или контейнеризация.
- Отмечается уникальная философия R-сообщества, ориентированная на статистиков, а не на разработчиков, что объясняет такие жёсткие требования.