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.
- Download the Windows x64 ZIP from the release page.
- Extract it to a folder where you can save files, such as your Games folder.
- Name your European ROM
SSA.gbaand put it in theorigfolder. - 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
- All twelve campaign levels, from Egypt to Caesar's Palace.
- Original enemies, weapons, pickups, music and sound effects.
- Mouse look, optional jumping and a third-person camera.
- Graphics that fit your window, or the original GBA-resolution view.
- NETRICSA briefings and an in-game guide, chapter screens and the ending.
- In-level automap with live walls, player/entity markers and zoom.
- Pause menus, end-of-level bonuses, saved level unlocks and original passwords.
- Finite lives, automatic level retries, and Game Over after the last life.
- The original Scores screen, name entry and saved high scores.
- English, German and French menus.
- Optional dual Colts and alternate double-shotgun behavior.
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.
- Build setup and earlier development notes
- Current porting notes
- Code recovered from the GBA game
- Website editing guide
Serious Sam and its artwork belong to their original owners. ROMs, personal saves and SoundFont files are not included in this repository.