Need help getting started? Try the player guide. These notes include older work; the game overview explains what’s ready now.

Serious Sam Advance for PC

This is a fan-made Windows port of the GBA game. It keeps the original levels, weapons, enemies and music, with keyboard and mouse controls and a few optional extras. You can play all twelve campaign levels.

Download v0.8.0 Beta 1 · Website · Explore the maps

It’s now a beta, so you’ll find bugs and unfinished bits. The game runs directly on Windows—there’s no emulator to set up.

Download and play

You’ll need your own ROM of the European version of Serious Sam Advance. A ROM is a file containing the original GBA game. Other regional versions won’t work. The download doesn’t include a ROM.

  1. Download the Windows x64 ZIP from the release page.
  2. Extract it to a folder where you can save files, such as your Games folder.
  3. Name your European ROM SSA.gba and put it in the orig folder.
  4. Double-click play-native.cmd.

The download is ready to run once you add your ROM. Extra SoundFont music is optional; you can stick with the original music. If you’re updating, keep save.dat, settings.dat and scores.dat so you don’t lose your unlocks, settings or records.

If the game cannot load your ROM, check its region and filename. The supported European ROM has SHA-1 4ff48d8c18b70a5184758f1917343ae85a70858e. This fingerprint is only needed if you want to check the file you have.

What you can play

Multiplayer isn’t ready yet. There are also bugs and differences from the GBA game to work through. All levels are open for playtesting, so please report anything that goes wrong.

Controls

Control Action
WASD Move
Mouse / left-click Look / fire
Space Jump (enable in Extras)
H Switch between first- and third-person view
E Use doors and switches
1–0 / mouse wheel Choose a weapon (8: Time Strike, 9: cannon, 0: UMT)
Q Return to the previous weapon
R Reload Colts (Enhanced weapons)
Tab / N Open or close NETRICSA
M Open or close the automap (enable in Extras)
+ / − / mouse wheel in automap Zoom the map
Esc / P Pause or resume
F11 Toggle borderless fullscreen / windowed mode

Options

Open Options → Graphics for Display Mode, Renderer, Aspect Ratio, Mipmapping, Surface decals, Water reflections, Godrays and Sprite shadows. Options → Settings contains Language, Mouse sensitivity, Field of View, Music Style, Music Volume and Sounds Volume. Set a volume to 0% to mute it. Default volumes are 80% music and 100% sounds; existing saved choices are retained. Renderer offers Software, GBA, and Vulkan on supported hardware. Vulkan draws world geometry and sprites on the GPU, with the existing HUD and effects composition. Vulkan is the default, with automatic Software fallback if unavailable; unavailable Vulkan is hidden from the choices. Existing saved renderer choices are preserved. You can also launch Vulkan with play-native.cmd --vulkan. Below Renderer, Aspect ratio offers Native (fill the window, default) or 3:2 (preserve the original GBA view with black bars). This choice applies to Software and Vulkan; the GBA renderer always uses 3:2 and disables the row. VSync synchronizes presentation on supported systems in all three renderers. It defaults to On; existing saved On/Off choices are retained. Vulkan also offers optional Antialiasing, Anisotropic filtering, Ambient occlusion and Motion blur, all Off by default. Anisotropic filtering keeps magnified textures sharp; ambient occlusion follows world texels. Motion blur affects the scene while keeping weapons and HUD sharp. Mouse sensitivity adjusts horizontal and vertical aiming together from 10% to 300%, with 100% preserving the previous PC control speed. Mipmapping uses the original smaller texture and sprite images at distance. It is enabled for fresh settings and always enabled in GBA mode. Field of view adjusts native rendering from 60° to 120°, defaulting to 70° (the existing view). This is the horizontal angle at 3:2; wider displays show more to the sides. GBA rendering keeps its fixed view and disables this slider.

Music choices are Original, SoundFont and MIDI. SoundFont uses an optional instrument file; MIDI uses the Windows GS synthesizer. You’ll only see choices that work on your computer. See the SoundFont setup guide if you want to try it.

Under Options → Extras, you can turn jumping, third-person view, in-game NETRICSA and the automap on or off. Weapon bobbing moves first-person weapons and their muzzle flashes together. Jump, Enhanced weapons, Automap and Weapon bobbing are off by default. In Graphics, Surface decals adds connected stains and edge details on floors and ceilings, plus animated glints, ripples and shoreline waves on water. Water reflections adds scenery reflections with 50% alpha blending, at full viewport resolution in native mode and 240×160 in GBA mode. Godrays adds short textured light shafts beneath open skies. Sprite shadows adds size-scaled shadows behind players, enemies and items. These four effects are independent, off by default and available in all three renderers. Vertical aim is on by default for vertical mouse aiming. Turn it off for original GBA auto-aim and the target-following crosshair; GBA rendering always retains original aiming. Extras are ordered: HUD, Vertical aim, Third-person, Jump, Automap, In-game NETRICSA, Enhanced weapons and Weapon bobbing. The HUD row switches between Original (default) and Classic, a usable green HUD built from the retained older artwork. Its custom crosshair changes from green to yellow to red with the target enemy's remaining health. All graphics modes support it, and the game saves your choice. Classic also shows a centered weapon selector when switching weapons. The selected weapon and its ammo highlight white immediately; the selector hides after three seconds or when firing. Classic shows the high score at the top center, with the timer underneath. Its message counter shows unread NETRICSA weapon/enemy dossiers. Enemy dossiers unlock after a kill. Viewing an entry clears its unread status. Opening NETRICSA during play selects the newest unread dossier automatically; reopening it after reading advances to the next unread entry. Every level's starting equipment is already familiar and does not add unread messages. Weapons discovered during play still create new entries. In Classic HUD, new entries play a notification cue twice with half a cue's duration of silence between them, and blink the analyzing text in HUD green without a background, then move the blinking message panel inward and back like TFE. Classic HUD follows Serious Engine-style positioning in widescreen and4:3 windows. Original HUD does not play the new-entry notification cue. Its timer has a compact backing, usable buttons show the retained green Use sprite, and Tommygun ammo uses a custom vertical-bullet badge distinct from Minigun rounds. Low health/ammo counters and ammo bars turn red; low armor turns gray, using TFE's alert thresholds. The white damage/ammo flashes still take priority. Original HUD preserves the GBA layout and pixel padding: lives upper left, weapon icon upper right, score/time top center, status bars lower left and ammo lower right. GBA rendering keeps the original coordinates intact; PC rendering anchors those same groups to the window edges without changing their padding. Existing saved choices are retained. Turn Enhanced weapons on to use single/dual Colts with reloads and a different double-shotgun spread. Once you have both Colts, press 2 again to switch between one and two guns.

Saves and problems

Beating a level unlocks the next one in Select Level. New Game keeps your unlocks. Passwords start you with the original weapons, ammo and difficulty for that level. The game saves your unlocks and settings, but not your place halfway through a level. Finishing the campaign or quitting a run through Pause offers name entry if your score qualifies. Type up to twelve characters and press Enter to save it. Dying consumes a life and automatically retries the level with its starting equipment and score. After the last life, Game Over plays before returning to Main. No restart confirmation is required.

If the game closes with an error, the launcher shows it and saves a log in build/logs/. If you report a problem, please include the level, what happened, your graphics/music settings and the log if you have it.

Report a problem · See what is planned

Building it yourself

Want to work on the code? Here’s how to build it.

Install Git and Visual Studio 2022 Build Tools with the C++ desktop workload and CMake tools. Clone this repository, open PowerShell in its folder and run:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts/build-windows.ps1

You can build without a ROM. To play afterwards, put your own European ROM at orig/SSA.gba and run play-native.cmd. Install the Vulkan SDK before building to include the optional hardware renderer. The game only needs a Vulkan-capable graphics driver to run it. Without the SDK, the build retains Software and GBA. See the Vulkan backend notes for implementation and checks.

Run focused regression checks with scripts/test-focused.ps1 (add -SkipBuild to reuse the build). These cover settings, saves, audio status, rendering and frontend screens without running campaign playthroughs. See the technical refactor notes for details.

Looking through the code

The game source is in src/, include/ssa/ and platform/. The website is in site/. Tests and research notes explain how the port compares with the original.

Serious Sam and its artwork belong to their original owners. ROMs, personal saves and SoundFont files are not included in this repository.