Реверс-инжиниринг 3D Pinball for Windows - Space Cadet
, игры, поставляемой в комплекте с Windows.
Поместите скомпилированный исполняемый файл в папку, содержащую оригинальные игровые ресурсы (не входят в комплект).
Поддерживает файлы данных из версий игры для Windows и Full Tilt.
Платформа | Автор | URL-адрес |
---|---|---|
ПС Вита | Аксиома | https://github.com/suicvne/SpaceCadetPinball_Vita |
Эмскриптен | Алула | https://github.com/alula/SpaceCadetPinball Играйте онлайн: https://alula.github.io/SpaceCadetPinball |
Нинтендо Переключатель | аверн | https://github.com/averne/SpaceCadetPinball-NX |
вебОС ТВ | мариотаку | https://github.com/webosbrew/SpaceCadetPinball |
Андроид (НЗП) | остров | https://github.com/Iscle/SpaceCadetPinball |
Нинтендо Вии | МайкельЧан | https://github.com/MaikelChan/SpaceCadetPinball |
Нинтендо 3DS | МайкельЧан | https://github.com/MaikelChan/SpaceCadetPinball/tree/3ds |
Нинтендо ДС | Хедшотноби | https://github.com/headshot2017/3dpinball-nds |
Нинтендо Вии Ю | Интригующие плитки | https://github.com/IntriguingTiles/SpaceCadetPinball-WiiU |
PlayStation 2 | Хедшотноби | https://github.com/headshot2017/3dpinball-ps2 |
Сега Дримкаст | Хедшотноби | https://github.com/headshot2017/3dpinball-dc |
МорфОС | BeWorld | https://www.morphos-storage.net/?id=1688897 |
АмигаОС 4 | rjd324 | http://aminet.net/package/game/actio/spacecadetpinball-aos4 |
Андроид (НЗП) | прикованный | https://github.com/fexed/Pinball-on-Android |
Платформы, охваченные этим проектом: настольная Windows, Linux и macOS.
pinball.exe
из Windows XP
(SHA-1 2A5B525E0F631BB6107639E2A69DF15986FB0D05
) и его общедоступная PDBCADET.EXE
от Full Tilt! Pinball
(SHA-1 3F7B5699074B83FD713657CD94671F2156DBEDC4
) Ghidra
, Ida
, Visual Studio
Проект использует C++11
и зависит от библиотек SDL2
.
Загрузите и распакуйте пакеты разработки для SDL2
и SDL2_mixer
.
Задайте пути к ним в CMakeLists.txt
, см. рекомендуемое размещение в /Libs
.
Скомпилировать с помощью Visual Studio; проверено с 2019 года.
Установите пакеты разработки для SDL2
и SDL2_mixer
.
Скомпилировать с помощью CMake; протестировано с GCC 10, Clang 11.
Для кросс-компиляции для Windows установите 64-разрядную версию mingw и ее дистрибутивы SDL2
и SDL2_mixer
, а затем используйте набор инструментов mingwcc.cmake
.
Некоторые дистрибутивы предоставляют пакет в своем репозитории. Вы можете использовать их для упрощения управления зависимостями и обновлений.
Этот проект доступен как Flatpak на Flathub.
Установите XCode (или, по крайней мере, инструменты командной строки Xcode с помощью xcode-select --install
) и CMake.
ГлавнаяBrew
Вы можете легко установить артефакт сборки, используя brew
.
brew tap draftbrew/tap
brew install --no-quarantine space-cadet-pinball
Имейте в виду, что флаг --no-quarantime
отключит Gatekeeper macOS во время установки.
Ручная компиляция:
SDL2
, SDL2_mixer
.libSDL2
, libSDL2_mixer
. Скомпилируйте с помощью CMake. Убедитесь, что переменная CMAKE_OSX_ARCHITECTURES
установлена для x86_64
Apple Intel или arm64
для Apple Silicon.
Протестировано с: macOS Big Sur (Intel) с Xcode 13 и macOS Montery Beta (Apple Silicon) с Xcode 13.
Автоматизированная компиляция:
Запустите скрипт build-mac-app.sh
из корня репозитория. Приложение будет доступно в файле DMG с именем SpaceCadetPinball-<version>-mac.dmg
.
Протестировано с: macOS Ventura (Apple Silicon) с инструментами командной строки Xcode 14 и macOS Big Sur на GitHub Runner (Intel) с XCode 13.
Я его не нашел, декомпилированная игра заработала в режиме x64 с первой попытки.
Он был либо потерян при декомпиляции, либо введен в порт x64/отсутствует в сборке x86.
Судя по публичному описанию ошибки (без столкновения мячей), я предполагаю, что ошибка была в TEdgeManager::TestGridBox