Skip to content

binji/smolnes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

smolnes

A NES emulator in ~5000 significant bytes of c.

Features

Plays some mapper 0/1/2/3/4/7 games.

Screenshots

Batman Kirby's Adventure Mega Man 3 Little Nemo the Dream Master River City Ransom Super Mario Bros. 2 Super Mario Bros. 3 Teenage Mutant Ninja Turtles 2 Bionic Commando Donkey Kong Dragon Warrior Adventures of Lolo Legend of Zelda Metroid Mega Man 2 Ninja Gaiden Rad Racer Super Mario Bros. Teenage Mutant Ninja Turtle Contra Goonies 2 Castlevania DuckTales Alwa's Awakening Witch n' Wiz Battletoads Wizard's and Warriors II Gradius

Source Code

Building

Probably only builds on Linux and macOS. Try gcc or clang.

$ make

Running

$ ./smolnes <rom.nes>

Keys:

Action Key
DPAD-UP
DPAD-DOWN
DPAD-LEFT
DPAD-RIGHT
B Z
A X
START Enter
SELECT Tab

Updating keys

Look for line 20 in the source code. The following table shows which numbers map to which keyboard keys:

character number default key NES button
\33 27 X A Button
\35 29 Z B Button
+ 43 Tab Select Button
( 40 Return Start Button
R 82 Arrow Up DPAD Up
Q 81 Arrow Down DPAD Down
P 80 Arrow Left DPAD Left
O 79 Arrow Right DPAD Right
  1. Look up the keys you want to replace from this list SDL scancode list
  2. Convert the number to its ascii character, or C character literal.
  3. Replace this character in the string.