STLcardsWS
Administrator
-
OpenSupaplex
Supaplex is a game made in the early nineties.

Since then the source code has been lost. Some enthusiasts have disassembled the game, fixed many bugs, and added many features. Today the game and the so-called speed fix can be downloaded free from here. The source code for the speed fix is likewise, unavailable.
OpenSupaplex is a 1:1 reimplementation of the original game in C and SDL, with just a few changes to make it easy to use with game controllers, and also easy to port to any platform.
NEW v7.1:
- Added support for PSP, Nintendo 3DS, Windows 64bit, macOS, PS3, Wii and Wii U.
- Added Music and Sound Effects.
- Added support for saving and loading game states.
- Bumped the default game speed from 5 to 10 (maximum).
- Added different scaling modes.
- Improved gamepad controls:
- LB/L1/L and RB/R1/R buttons can be used in the main menu to select a different level set.
- LB/L1/L and RB/R1/R buttons can be used in during the game to change the game speed.
- Y/Triangle button (X on Nintendo consoles) shows/hides the bottom panel during the game.
- B/Circle button (A on Nintendo consoles) displays, for a few seconds, the number of red disks you have.
- Back/Select/Minus during a game will exit the level immediately.
- Start/Plus during a game will pause the game.
- Added advanced menu giving access to many options that were only available with a keyboard before, or not available at all:
- Restart the level.
- Sound and music volume.
- Change the scaling mode.
- Game speed.
- Play/record demos.
- Debug options (show FPS, load/save state, remove Zonks/Snik Snaks…). If you use these, your progress won't count!!
- And more things!
- Added command line options in platforms that support this. Just run the game with --help for more info.
- Fixed many MANY bugs. Now the game should behave exactly as the original, validated by almost 7000 pre-recorded demos.
-
OpenSupaplex can be built for any of the following platforms:
- macOS
- Windows
- PSP
- PS Vita
- PlayStation 3
- Nintendo 3DS (one build for Old 3DS, and another one for New 3DS)
- Nintendo Wii
- Nintendo Wii U
- Nintendo Switch
-
Contributing
If you like this project, there are several ways you can contribute to it:
- Reporting bugs: just file an issue in this repo, detailing the bug and how to reproduce it as much as you can. It's even better if you can record a demo of the bug using the demo feature of the game and upload the file.
- Requesting features or ports: again, filing an issue in this repo is the way to go, detailing what you need as much as you can.
- Submitting Pull Requests: you can also contribute with your own code. Just, please, be mindful of the code style and project structure used already.
New features are more than welcome. However, the main goal of OpenSupaplex is having a 1:1 clone of the original Supaplex game, in every possible aspect, and only making exceptions wherever is reasonable to do so.
New features must NOT change how the game works or looks in a way that CANNOT be avoided. For those kind of features, adding some kind of setting so users can opt-in is the way to go.
Contributing with ports to new platforms
The whole reason for OpenSupaplex to exist is to make the experience of the original game available natively to as many platforms as possible. If you want to bring OpenSupaplex to a new platform, please go for it!
But please be mindful of how ports are structured already in the repo:
- Create a subfolder in the root of the repo with the (lowercase) name that represents the new platform. That folder should contain everything needed to build and bundle the game for distribution.
- If needed, inside the src folder you can create also a folder with the (lowercase) name of the platform and add specific implementation files there.
- If you can, avoid plaguing the code with #if statements for the new platform.
- If you find a bug that only happens in the new platform, and presumably is a bug in either SDL, SDL_mixer or any of their dependencies, please, fix the root of the problem and don't write workarounds in the game's codebase. Not only you won't pollute OpenSupaplex with hacks that belong elsewhere, but you will also be contributing and helping people using SDL and SDL_mixer in that platform. I have done that many many times while working on the different ports, and it's a great experience.
- It'd be very helpful if you also got some CI scripts to allow me building the new port from the GitHub Actions.
I'm also very open to suggestions about how to make things better. Constructive feedback on my code, how to structure the project to make it easier to handle all the ports… just file an issue and we can discuss it there.
Download @:github.com/sergiou87
- (PS3) Mirror @: store.brewology.com
- (VITA) Mirror(s) @: store.brewology.com
Last edited: