Reverse Engineering von 3D Pinball for Windows - Space Cadet
, einem mit Windows gebündelten Spiel.
Platzieren Sie die kompilierte ausführbare Datei in einem Ordner mit Original-Spielressourcen (nicht im Lieferumfang enthalten).
Unterstützt Datendateien von Windows- und Full Tilt-Versionen des Spiels.
Plattform | Autor | URL |
---|---|---|
PS Vita | Axiom | https://github.com/suicvne/SpaceCadetPinball_Vita |
Emscripten | alula | https://github.com/alula/SpaceCadetPinball Online spielen: https://alula.github.io/SpaceCadetPinball |
Nintendo-Switch | averne | https://github.com/averne/SpaceCadetPinball-NX |
webOS TV | Mariotaku | https://github.com/webosbrew/SpaceCadetPinball |
Android (WIP) | Iscle | https://github.com/Iscle/SpaceCadetPinball |
Nintendo Wii | MaikelChan | https://github.com/MaikelChan/SpaceCadetPinball |
Nintendo 3DS | MaikelChan | https://github.com/MaikelChan/SpaceCadetPinball/tree/3ds |
Nintendo DS | Headshotnoby | https://github.com/headshot2017/3dpinball-nds |
Nintendo Wii U | Faszinierende Fliesen | https://github.com/IntriguingTiles/SpaceCadetPinball-WiiU |
PlayStation 2 | Headshotnoby | https://github.com/headshot2017/3dpinball-ps2 |
Sega Dreamcast | Headshotnoby | https://github.com/headshot2017/3dpinball-dc |
MorphOS | BeWorld | https://www.morphos-storage.net/?id=1688897 |
AmigaOS 4 | rjd324 | http://aminet.net/package/game/actio/spacecadetpinball-aos4 |
Android (WIP) | fexiert | https://github.com/fexed/Pinball-on-Android |
Von diesem Projekt abgedeckte Plattformen: Desktop-Windows, Linux und macOS.
pinball.exe
von Windows XP
(SHA-1 2A5B525E0F631BB6107639E2A69DF15986FB0D05
) und seine öffentliche PDBCADET.EXE
32bit-Version von Full Tilt! Pinball
(SHA-1 3F7B5699074B83FD713657CD94671F2156DBEDC4
) Ghidra
, Ida
, Visual Studio
Das Projekt verwendet C++11
und ist auf SDL2
Bibliotheken angewiesen.
Laden Sie Entwicklungspakete für SDL2
und SDL2_mixer
herunter und entpacken Sie sie.
Legen Sie Pfade zu ihnen in CMakeLists.txt
fest, siehe empfohlene Platzierung in /Libs
.
Mit Visual Studio kompilieren; Getestet mit 2019.
Installieren Sie Entwicklungspakete für SDL2
und SDL2_mixer
.
Mit CMake kompilieren; getestet mit GCC 10, Clang 11.
Um für Windows eine Cross-Kompilierung durchzuführen, installieren Sie eine 64-Bit-Version von mingw und seinen SDL2
und SDL2_mixer
-Distributionen und verwenden Sie dann die Toolchain mingwcc.cmake
.
Einige Distributionen stellen ein Paket in ihrem Repository bereit. Sie können diese für eine einfachere Abhängigkeitsverwaltung und Aktualisierungen verwenden.
Dieses Projekt ist als Flatpak auf Flathub verfügbar.
Installieren Sie XCode (oder zumindest Xcode Command Line Tools mit xcode-select --install
) und CMake.
HomeBrew
Sie können das Build-Artefakt einfach mit brew
installieren.
brew tap draftbrew/tap
brew install --no-quarantine space-cadet-pinball
Beachten Sie, dass das Flag --no-quarantime
den Gatekeeper von macOS während der Installation deaktiviert.
Manuelle Zusammenstellung:
SDL2
und SDL2_mixer
.libSDL2
und libSDL2_mixer
. Mit CMake kompilieren. Stellen Sie sicher, dass die Variable CMAKE_OSX_ARCHITECTURES
entweder für x86_64
Apple Intel oder arm64
für Apple Silicon festgelegt ist.
Getestet mit: macOS Big Sur (Intel) mit Xcode 13 und macOS Montery Beta (Apple Silicon) mit Xcode 13.
Automatisierte Zusammenstellung:
Führen Sie das Skript build-mac-app.sh
im Stammverzeichnis des Repositorys aus. Die App wird in einer DMG-Datei mit dem Namen SpaceCadetPinball-<version>-mac.dmg
verfügbar sein.
Getestet mit: macOS Ventura (Apple Silicon) mit Xcode Command Line Tools 14 und macOS Big Sur auf GitHub Runner (Intel) mit XCode 13.
Ich habe es nicht gefunden, das dekompilierte Spiel funktionierte beim ersten Versuch im x64-Modus.
Es ging entweder bei der Dekompilierung verloren oder wurde im x64-Port eingeführt bzw. war im x86-Build nicht vorhanden.
Basierend auf der öffentlichen Beschreibung des Fehlers (keine Ballkollision) vermute ich, dass der Fehler in TEdgeManager::TestGridBox
lag