SUPER MARIO BROS.
ULTIMATE

The SMBU Player's Guide

Mario 000000 Coins x00 World 1-1 Time 400

?World 1-1What is SMBU?

SMBU is the original 1985 NES Super Mario Bros., rebuilt as a program that runs straight on your computer. No emulator is involved. The game's own logic was carried over routine by routine, so it behaves the way the cartridge did, right down to the frame.

About the "Ultimate" part. SMBU currently plays like the classic game. The Ultimate version, which will bring features such as purchasing unlocks, guides, secrets and more via coins, is planned and not in the game yet.

?World 1-2The controls

Every button on the NES pad has keys and a gamepad button. Use whichever you like, even both at once.

NESWhat it doesKeyboardXbox 360 pad
LeftWalk left ← or AD-pad or left stick
RightWalk right → or DD-pad or left stick
UpClimb a vine, choose 1 or 2 players on the title ↑ or WD-pad or left stick
DownDuck, go down a pipe, choose 1 or 2 players on the title ↓ or SD-pad or left stick
AJump, swim Space or ZA
BRun (hold), throw fireballs Left Shift or XX
SelectChoose 1 or 2 players on the title screen Right Shift or CBack
StartStart the game, pause and unpause P or EnterStart

?World 1-3Shortcut keys

These work on top of the game controls.

KeyWhat it does
EscWhile playing: back to the title screen. On the title screen: quit
Ctrl + QQuit from anywhere
F6Change the video filter: none, composite, S-Video, RGB
F7Make the scanlines 10% stronger (after 100% it goes back to off)
F12Take a screenshot, saved in the captures folder
F3Show or hide the frame time graph (for the curious)
F4Freeze or unfreeze that graph

Esc while playing works like the NES reset button: you land back on the title screen and the top score is kept.

When you press F6 or F7, a small notice at the top left shows the new choice for a few seconds, for example Filter: composite  Scanlines: 30%. Both choices are remembered for next time.

?World 1-4Filters and scanlines

The NES was made for chunky tube TVs, and its artists used the TV's blur on purpose. SMBU can put that look back.

The four looks (press F6)

World 1-1 with the filter offnoneSharp, square pixels in exact colours, like most emulators.
The same frame through the composite filtercomposite defaultThe classic TV look: soft edges, colours that bleed a little, rainbow fringes.
The same frame through the svideo filtersvideoThe colour bleed without the rainbow fringes.
The same frame through the rgb filterrgbNearly sharp, with just a touch of softness.

composite is the default, because that is how the NES looked on most TVs. Try them all on the brick walls of 1-1 and pick your favourite.

All four pictures are the same moment of the game, at three times the NES's size.

Scanlines (press F7)

A tube TV drew the picture as bright lines with darker gaps between them. Scanlines bring the gaps back.

StrengthWhat you see
0Off (the default)
20 to 50A gentle line pattern, like a good TV
100Solid black gaps between the lines
A Goomba under a row of bricks, scanlines off0Off.
The same frame at scanline strength 3030A gentle line pattern.
The same frame at scanline strength 100100Solid black gaps.

These three use the composite filter.

Scanlines need some room. In a very small window there is no space to draw them, so make the window bigger if nothing seems to happen. They work with every filter, none included.

Two more picture switches

These two live in the settings file (World 2-1):

?World 2-1The settings file

Your settings are kept in a small text file, config/smbu.ini, in the game's folder. Open it with any text editor.

Two golden rules

  1. Close SMBU before you edit the file. The game saves its settings when it exits, which would replace your changes.
  2. Write true and false in lower case. Anything else counts as false.

Lost in the pipes? Delete the file and SMBU makes a fresh one with the defaults.

[graphics]: the picture

SettingDefaultWhat it does
filtercomposite The video filter: none, composite, svideo or rgb
filter_mergetrue Steady picture. false gives the real TV shimmer
scanlines0 Scanline strength, from 0 (off) to 100
sprite_limittrue NES sprite flicker. false turns the flicker off
crop_overscantrue Hides the top and bottom edge rows, as a TV did. false shows them
vsync_enabletrue Matches the picture to your screen for smooth scrolling
fps_limit0 Frame rate cap when vsync is off. 0 means no cap
show_fpstrue Shows the frames-per-second counter
show_frame_time_graphfalse Shows the frame time graph at startup (same as F3)
ui_scale0 Size of on-screen text, 1 to 8. 0 picks one for your display

[window]: the window

SettingDefaultWhat it does
width, height800, 450 Window size in pixels
x, y200, 400 Where the window sits on the screen
fullscreenfalse true fills the whole screen
maximizedfalse true starts with the window maximized
borderlessfalse true removes the title bar and border
resizabletrue Lets you drag the window edges to resize it

The window remembers its size and place by itself, so you rarely need to touch these. The picture always keeps its proper NES shape, whatever shape the window is.

[audio]: the volume

Each value runs from 0.0 (silent) to 1.0 (full).

SettingDefaultWhat it does
master_volume0.80Overall volume
music_volume0.60 The game's sound: its music and its sound effects together
sfx_volume0.80 Sounds made outside the NES game. The game itself ignores it

To make the game louder or quieter, change master_volume or music_volume.

[gamepad]: the stick

SettingDefaultWhat it does
deadzone0.15 How far the stick must move before it counts. Raise it if Mario drifts

[capture]: screenshots

SettingDefaultWhat it does
directorycaptures The folder F12 screenshots are saved in
formatpng png or jpg
jpeg_quality90 Quality for jpg screenshots
include_fpsfalse true keeps the FPS counter in the screenshot

[simulation]: leave this one alone

fixed_step_hz is the speed of the game, set to the NES's exact 60.0988 frames per second. Changing it changes how fast everything runs, music included.

?World 2-2Changing the keys

The [input] section of the settings file lists every button with its keys and pad buttons. These are the defaults:

[input]
left = Left, A, pad:dpleft, pad:leftx-
right = Right, D, pad:dpright, pad:leftx+
up = Up, W, pad:dpup, pad:lefty-
down = Down, S, pad:dpdown, pad:lefty+
jump = Space, Z, pad:a
run = Left Shift, X, pad:x
select = Right Shift, C, pad:back
pause = P, Return, pad:start

jump is the NES A button, run is B and pause is Start.

Would you rather jump with K and run with the B button? Like this:

jump = Space, Z, K, pad:a
run = Left Shift, X, pad:x, pad:b

An entry SMBU does not recognise is skipped, and the rest of the line still works.

!Welcome toWarp Zone: quick answers

QuestionAnswer
Enter does nothing, but P starts An older smbu.ini: add Return to its pause line, or delete the line
There is no sound on the title screen That is the NES. The music starts when you start a game
How do I pick a 2 player game? Press Up or Down (or Select) on the title screen, then Enter
The picture looks blurry Press F6 until the notice says Filter: none
F7 does nothing Make the window bigger. Scanlines need room
Things flicker when the screen is busy That is the NES. Set sprite_limit = false to stop it
My changes to the settings file vanished Close SMBU first, then edit the file
Mario walks on his own Raise deadzone a little, for example to 0.25
How do I go fullscreen? Set fullscreen = true under [window]