วิศวกรรมย้อนกลับของ 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 |
แอนดรอยด์ (WIP) | เกาะ | https://github.com/Iscle/SpaceCadetPinball |
นินเทนโด วี | ไมเคลชาน | https://github.com/MaikelChan/SpaceCadetPinball |
นินเทนโด 3ดีเอส | ไมเคลชาน | https://github.com/MaikelChan/SpaceCadetPinball/tree/3ds |
นินเทนโด ดีเอส | เฮดช็อตโนบี้ | https://github.com/headshot2017/3dpinball-nds |
นินเทนโด วี ยู | กระเบื้องที่น่าสนใจ | https://github.com/IntriguingTiles/SpaceCadetPinball-WiiU |
เพลย์สเตชัน 2 | เฮดช็อตโนบี้ | https://github.com/headshot2017/3dpinball-ps2 |
เซก้า ดรีมแคสต์ | เฮดช็อตโนบี้ | https://github.com/headshot2017/3dpinball-dc |
มอร์ฟโอเอส | บีเวิลด์ | https://www.morphos-storage.net/?id=1688897 |
เอมิกาโอเอส 4 | rjd324 | http://aminet.net/package/game/actio/spacecadetpinball-aos4 |
แอนดรอยด์ (WIP) | เฟด | https://github.com/fexed/Pinball-on-Android |
แพลตฟอร์มที่ครอบคลุมโดยโปรเจ็กต์นี้: เดสก์ท็อป Windows, Linux และ macOS
pinball.exe
จาก Windows XP
(SHA-1 2A5B525E0F631BB6107639E2A69DF15986FB0D05
) และ PDB สาธารณะCADET.EXE
เวอร์ชัน 32 บิตจาก Full Tilt! Pinball
(SHA-1 3F7B5699074B83FD713657CD94671F2156DBEDC4
) Ghidra
, Ida
, Visual Studio
โปรเจ็กต์ใช้ C++11
และขึ้นอยู่กับ SDL2
libs
ดาวน์โหลดและแตกแพ็คเกจการพัฒนาสำหรับ SDL2
และ SDL2_mixer
กำหนดเส้นทางไปยังพวกเขาใน CMakeLists.txt
ดูตำแหน่งที่แนะนำใน /Libs
คอมไพล์ด้วย Visual Studio; ทดสอบกับปี 2019
ติดตั้งแพ็คเกจการพัฒนาสำหรับ SDL2
และ SDL2_mixer
คอมไพล์ด้วย CMake; ทดสอบกับ GCC 10, Clang 11
หากต้องการคอมไพล์ข้ามสำหรับ Windows ให้ติดตั้ง mingw เวอร์ชัน 64 บิต และการแจกแจง SDL2
และ SDL2_mixer
จากนั้นใช้ toolchain mingwcc.cmake
ดิสทริบิวชันบางตัวมีแพ็คเกจอยู่ในที่เก็บ คุณสามารถใช้สิ่งเหล่านั้นเพื่อการจัดการและอัปเดตการพึ่งพาที่ง่ายขึ้น
โครงการนี้มีให้บริการในชื่อ Flatpak บน Flathub
ติดตั้ง XCode (หรืออย่างน้อย Xcode Command Line Tools ด้วย xcode-select --install
) และ CMake
โฮมบรูว์
คุณสามารถติดตั้ง build artifact ได้อย่างง่ายดายโดยใช้ brew
brew tap draftbrew/tap
brew install --no-quarantine space-cadet-pinball
โปรดทราบว่าการตั้งค่าสถานะ --no-quarantime
จะปิดการใช้งาน Gatekeeper ของ macOS ระหว่างการติดตั้ง
การรวบรวมด้วยตนเอง:
SDL2
, SDL2_mixer
libSDL2
, libSDL2_mixer
macports คอมไพล์ด้วย 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 Command Line Tools 14 และ macOS Big Sur บน GitHub Runner (Intel) ด้วย XCode 13
ฉันไม่พบมัน เกมที่ถอดรหัสแล้วทำงานในโหมด x64 ในครั้งแรกที่ลอง
มันหายไปในการคอมไพล์หรือนำมาใช้ในพอร์ต x64/ไม่มีอยู่ใน x86 build
จากคำอธิบายสาธารณะเกี่ยวกับจุดบกพร่อง (ไม่มีการชนกันของลูกบอล) ฉันเดาว่าจุดบกพร่องนั้นอยู่ใน TEdgeManager::TestGridBox