Note: If you're looking for an open source remake of the arcade version of Solomon's Key, see the Open Solomon's Key project.
SKX is an open source port (with enhancements) of the 1986 Tecmo game Solomon's Key for the NES. Graphics and sound effects are borrowed from the original, however the code is completely fresh. SKX is written in C# for .NET Core using the MonoGame (formerly XNA) framework for input, audio, and graphics and runs on Windows, Mac, and Linux.
Features
- Keyboard or gamepad input
- Automatic save feature using one of 8 save slots
- Easy, normal, and difficult modes
- Various levels of scale
- Multi-track dynamic music
- Fullscreen mode
- Classic mode -- the original 52 levels from the NES
- Classic+ mode -- the original 52 levels with added items and 20 new secret levels
- SKX mode -- a new set of 60 levels specifically designed with the new gameplay elements in mind
- New gameplay elements (see New Gameplay Elements below)
- Debug mode
- Integrated level editor
SKX should run on any system that supports .NET core, simply download the binary version of the game, and either run SKX.exe (Windows), or run the command dotnet skx.exe
from the appropriate directory.
Key/button bindings can be modified in the menu, but the game comes with two sets of default controls for ease of use:
Binding | Keyboard | Gamepad |
---|---|---|
Up | Up Arrow | D-Pad Up |
Down | Down Arrow | D-Pad Down |
Left | Left Arrow | D-Pad Left |
Right | Right Arrow | D-Pad Right |
Magic | S | A button |
Fireball | A | X button |
Pause | Enter | Start button |
Binding | Keyboard | Gamepad |
---|---|---|
Up | W | D-Pad Up |
Down | S | D-Pad Down |
Left | A | D-Pad Left |
Right | D | D-Pad Right |
Magic | Right Shift | A button |
Fireball | / | X button |
Pause | Enter | Start button |
- Enemy UI needs some minor tweaking to be accurate to the original
- Dana's collision with the level might need some review, especially when jumping diagnally at stair-shaped structures
- Fairy UI is smoother but less accurate
- Ending sequence not yet implemented
The goal of the project is to use NES-accurate physics and enemy behavior. Any help correcting parameters to make the game behave more accurately is appreciated. Most classes contain a section of (usually private) variables labelled "Behavioral Parameters" that can be adjusted to tweak the gameplay of those elements.
The mere act of implicitly removing technical limitations imposed by the NES changes the nature of the game. Many rooms have slightly different enemy timimg as a result of the mere removal of lag and sprite limits.
- New items
- New enemies
- New gameplay mechanics
Difficulty | Starting Lives | Scroll Size | Fireball Range |
---|---|---|---|
Normal | 3 | 3 | 16 half-blocks |
Easy | 5 | 5 | 20 half-blocks |
Difficult | 3 | 1 | 16 half-blocks |
Mode | Description |
---|---|
Classic | All 52 original levels with all of the original gameplay logic |
Classic+ | A massive expansion of the original story; 256 levels with new items and new enemies, incorporating the original 52 levels with updates, added secrets, and interesting new gameplay mechanics. |
The game features a fully featured level editor and diagnostics modes. See the Wiki for more information.
- The engine supports rooms larger than a single screen. The camera will pan to follow Dana as he gets near the edge of the viewport if the room is larger than the current view.
- Rooms can have multiple doors (leading to different rooms or to the same room)
- Rooms can have multiple keys
- Keys can open multiple doors (if applicable)
- Rooms may contain more than two mirrors that spawn enemies
- Dana's starting position in a room may be influenced by which exit he used in the previous room.
- Rooms wrap vertically and horizontally -- just remove the walls. (technically possible on the NES but not used in any actual rooms)
- Dynamic Audio -- Each room can have a different "Audio Effect" which manipulates the pan and fade of each of the tracks in the multitrack music as a function of dana's position, life remaining, etc.
- In game modes other than Classic, Dana can grow his scroll up to 18 slots (instead of 8).