diff --git a/.gitignore b/.gitignore index d581a68..d81cc3d 100644 --- a/.gitignore +++ b/.gitignore @@ -276,3 +276,25 @@ out/ # Windows XP stuff DebugWinXp/ ReleaseWinXp/ + +### CMake ### +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps + +### CMake Patch ### +# External projects +*-prefix/ + +### Ninja ### +.ninja_deps +.ninja_log +build.ninja diff --git a/CMakeLists.txt b/CMakeLists.txt index 9747f49..eb58c9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -221,11 +221,14 @@ endif() if(UNIX AND NOT APPLE) include(GNUInstallDirs) install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - install(FILES "${PROJECT_NAME}.desktop" DESTINATION "share/applications") + install(FILES "/Platform/Linux/${PROJECT_NAME}.desktop" DESTINATION "share/applications") + install(FILES "/Platform/Linux/${PROJECT_NAME}.metainfo.xml" DESTINATION "share/metainfo") install(FILES "${PROJECT_NAME}/Icon_16x16.png" DESTINATION "share/icons/hicolor/16x16/apps" RENAME "${PROJECT_NAME}.png") install(FILES "${PROJECT_NAME}/Icon_32x32.png" DESTINATION "share/icons/hicolor/32x32/apps" RENAME "${PROJECT_NAME}.png") install(FILES "${PROJECT_NAME}/Icon_48x48.png" DESTINATION "share/icons/hicolor/48x48/apps" RENAME "${PROJECT_NAME}.png") + install(FILES "${PROJECT_NAME}/Icon_192x192.png" DESTINATION + "share/icons/hicolor/192x192/apps" RENAME "${PROJECT_NAME}.png") endif() diff --git a/Platform/Linux/BUILD.md b/Platform/Linux/BUILD.md new file mode 100644 index 0000000..f235b6e --- /dev/null +++ b/Platform/Linux/BUILD.md @@ -0,0 +1,25 @@ +# Building + +Install devel packages for `SDL2` and `SDL2_mixer`.\ + +Compile with CMake; tested with GCC 10, Clang 11.\ +To cross-compile for Windows, install a 64-bit version of mingw and its `SDL2` and `SDL2_mixer` distributions, then use the `mingwcc.cmake` toolchain. + +```bash +# On Debian and Ubuntu +sudo apt install cmake build-essential ninja-build libsdl2-dev libsdl2-mixer-dev libsdl2-mixer-2.0-0 libsdl2-2.0-0 fluidsynth + +# On Fedora +sudo dnf install cmake ninja-build SDL2 SDL2-devel SDL2_mixer SDL2_mixer-devel fluidsynth fluidsynth-libs mscore-fonts g++ + +# Build +cmake -GNinja . +ninja +``` + +**If you can't hear the background music**: You need to export the following variable before launching the game like this: +`export SDL_SOUNDFONT=/path/to/your/soundfont` + +Fluidsynth will install a default soundfont in the following path: +On Fedora: `/usr/share/soundfonts/FluidR3_GM.sf2` +On Ubuntu/Debian: `/usr/share/sounds/sf2/FluidR3_GM.sf2` diff --git a/Platform/Linux/SpaceCadetPinball.desktop b/Platform/Linux/SpaceCadetPinball.desktop new file mode 100644 index 0000000..49cc68f --- /dev/null +++ b/Platform/Linux/SpaceCadetPinball.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=Space Cadet Pinball +Comment=Decompilation of 3D Pinball for Windows - Space Cadet +Exec=SpaceCadetPinball +StartupNotify=true +Terminal=false +Icon=SpaceCadetPinball +Type=Application +Categories=Game;ArcadeGame; diff --git a/Platform/Linux/SpaceCadetPinball.metainfo.xml b/Platform/Linux/SpaceCadetPinball.metainfo.xml new file mode 100644 index 0000000..dfed589 --- /dev/null +++ b/Platform/Linux/SpaceCadetPinball.metainfo.xml @@ -0,0 +1,69 @@ + + + com.github.k4zmu2a.spacecadetpinball + Space Cadet Pinball + Space Cadet Pinball + Reverse engineering of 3D Pinball for Windows - Space Cadet, a game bundled with Windows. + https://github.com/k4zmu2a/SpaceCadetPinball + https://github.com/k4zmu2a/SpaceCadetPinball/issues + +

+ Reverse engineering of '3D Pinball for Windows - Space Cadet', a game bundled with Windows. +

+
+ + Game + ArcadeGame + + SpaceCadetPinball.desktop + + SpaceCadetPinball + + + + https://github.com/kowalski7cc/com.github.k4zmu2a.spacecadetpinball/blob/main/screenshots/screenshot-1.png?raw=true + + + https://github.com/kowalski7cc/com.github.k4zmu2a.spacecadetpinball/blob/main/screenshots/screenshot-2.png?raw=true + + + https://github.com/kowalski7cc/com.github.k4zmu2a.spacecadetpinball/blob/main/screenshots/screenshot-3.png?raw=true + + + + + +

First release of cross-platform port.

+

Main highlights:

+
    +
  • Windows dependencies removed.
  • +
  • Graphics and sounds rendered with SDL.
  • +
  • Dear ImGui GUI.
  • +
  • CMake build script, compiles on a lot of platforms.
  • +
  • A number of 3rd party source ports.
  • +
+

All features of v1.x are present, except for text translations.

+

+ Development and releases of v1.x will continue, don’t confuse the two. + All source ports are technically v2.0RC, not v1.x. +

+ +

There are no Linux or macOS binaries attached, compile them yourself.

+ +

+ This release was made better with the help of contributors. + I thank them for their interest in the project. +

+
+
+
+ CC0-1.0 + Andrey Muzychenko + MIT + + pinball + space + cadet + + +
\ No newline at end of file diff --git a/README.md b/README.md index c1243bf..81e61b8 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Summary -Reverse engineering of `3D Pinball for Windows – Space Cadet`, a game bundled with Windows. +Reverse engineering of `3D Pinball for Windows - Space Cadet`, a game bundled with Windows. ## How to play diff --git a/SpaceCadetPinball.desktop b/SpaceCadetPinball.desktop deleted file mode 100644 index d754b01..0000000 --- a/SpaceCadetPinball.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=Space Cadet Pinball -Comment=Decompilation of 3D Pinball for Windows – Space Cadet -Exec=SpaceCadetPinball -Icon=SpaceCadetPinball -Terminal=false -Type=Application -Categories=Game; diff --git a/SpaceCadetPinball/Icon_192x192.png b/SpaceCadetPinball/Icon_192x192.png new file mode 100644 index 0000000..75ce028 Binary files /dev/null and b/SpaceCadetPinball/Icon_192x192.png differ