3D Pinball - Space Cadet for 3DS

From GameBrew

3D Pinball - Space Cadet for 3DS
Last Updated2021/11/22
TypeArcade Games
LicenseMIT License

This is a port of 3D Pinball - Space Cadet for Nintendo 3DS. It's originally a game that came bundled with Windows from Windows 95 up to Windows XP.

It is based on the PC decompilation made by k4zmu2a, which uses SDL2 to render the game. This 3DS port has been changed to use native GPU rendering with the Citro3D library.


Note: To run the homebrew you will need the game assets from the original PC game.

Copy .3dsx into the 3ds folder. Alternatively, copy the .cia to the SD card and install it with a title manager.

Make sure you have your dspfirm.cdc in the 3ds folder, as you will need it to have sound in homebrew games. If you don't have it, dump your DSP.

Inside the 3ds folder, create a new folder named SpaceCadetPinball and copy the game assets into this folder.

Optionally, since this port doesn't play MIDI files, you'll need to convert the music to ogg format (sample rate<44100Hz).

The file should be named PINBALL.ogg and placed along the other assets in the SpaceCadetPinball folder.

User guide

The Space Cadet table featured the player as a member of a space fleet where they complete missions to increase their rank.

Players accept a mission by hitting mission targets which select which mission they will take, and by going up the launch ramp.

Each mission has a set number of things for players to do, such as hitting the attack bumpers (which were a set of four bumpers at the top of the table) eight times.

Missions would end either when the goal is met, or when all of the lights under the launch ramp would turn off.

The lights would turn off after an amount of time, and could be each turned on by having the ball go over it, or by going on the launch ramp again.

Upon completing a mission, lights in a circle in the middle of the tables light up. When all of the lights in the circle lit up, players' rank would increase.

The ranks are: Cadet, Ensign, Lieutenant, Captain, Lieutenant Commander, Commander, Commodore, Admiral, and Fleet Admiral.


A - Launch the ball

L - Move the left paddle

R - Move the right paddle

D-Pad Left/Right/Up - Bump table

X - Start a new game

Y - Exit the game

Start - Pause



  • On New 3DS, enable Vsync, high speed mode.
  • Fixed some random crashes when exiting the game and pausing.
  • Optimizations.
  • Reduced memory usage.
  • Build now can also generate a CIA file (thanks to MrHuu, #7).
  • Top screen layout adjustments.


  • The game now loads the good font that's embedded in pinball.exe.
  • In case that font is not available, the one in PINBALL2.MID is scaled down and has the same color palette as the other font, so it fits better and it's more readable.
  • Also deleted the font that was included in EmbeddedData.cpp.


  • Now it runs almost at 60fps.
  • Small layout arrangement improvements.


  • Improved performance, but it still doesn't reach 60fps.
  • Arranged game layout to use both screens.
  • Print error messages on screen in case the user doesn't have the asset files in the correct place.


  • No menus, options, or results screen.
  • It plays sound effects and music (if the player supplies the music in OGG format).
  • There are still some bugs here and there.
  • It runs slow.

External links