• Stars
    star
    169
  • Rank 224,453 (Top 5 %)
  • Language SystemVerilog
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Nintendo Entertainment System for MiSTer Platform

This is an FPGA implementation of the NES/Famicom based on FPGANES by Ludvig Strigeus and ported to MiSTer.

Features

  • Supports saves for most games
  • Savestates
  • Supports NTSC, PAL, and Dendy system types
  • FDS Support with expansion audio
  • Multiple Palette options
  • Zapper, Powerpad, Microphone, and Miracle Piano support
  • Supports four players
  • Setting for increasing sprite per line by 8
  • Supports up to 32 cheat codes
  • Supports NSF Player
  • Supports expansion audio from mappers including VRC6 & 7, MMC5, Namco 163 and Sunsoft 5b
  • Supports many popular mappers including VRC1-7, MMC0-5, and many more (see below)
  • Supports large games such as Legend of Link and Rockman Minus Infinity

Installation

Copy the NES_*.rbf file to the directory or subdirectory of /media/fat/. Create a games/NES/ directory on the root of the SD card (/media/fat/games/NES/), and place NES roms (*.nes) inside this NES directory. The ROMs must have an iNES or NES2.0 header, which most already do. NES2.0 headers are preferred for the best accuracy. To have an NES or FDS game ROM load automatically upon starting the core, place it in the NES directory named as boot1.rom or boot2.rom, respectively.

  • boot0.rom = FDS BIOS file. Will be used for any FDS images loaded
  • boot1.rom = NES Cart file. Can be used with boot0.rom (BIOS) in place
  • boot2.rom = FDS image file. Requires boot0.rom (BIOS). Use a blank FDS (header only) to boot the FDS BIOS without a disk image.
  • boot3.rom = PAL file. It can be used to set your default custom palette. Save the menu option on "Custom" to apply immediately.

Famicom Disk System Usage

Before loading *.FDS files, you must first load the official, unpatched FDS BIOS. The BIOS file should be renamed to boot0.rom and placed in the same folder as the ROMs (NES). Alternatively, it can be loaded from the OSD if boot0.rom doesn't exist. After loading the core and the bios you may select an FDS image. By default, the NES core will swap disk sides for you automatically. To suppress this behavior, hold the FDS button on the player 1 controller. The "Disk Swap" OSD option manually controls the disk side. Each button press increments the disk side. Press and hold the fds button to eject and increment the disk side in this mode. Some games only work correctly in manual disk swap mode, and require holding the FDS button for up to a few seconds (Gall Force,...).

Extra Sprites

This feature will double the number of sprites drawn per scanlines, decreasing the flickering sprites that NES is known for. Some games relied on the 8 sprite behavior to work correctly, such as Simon's Quest swamps. Other mappers may be impacted by using extra sprites. While it works well in most games, glitches may occur with this enabled.

Saving and Loading

The battery backed RAM (Save RAM) for the NES does not write to disk automatically. After saving in your game, you must then write the RAM to the SD card by selecting Save Backup RAM from the menu. If you do not save your RAM to disk, the contents will be lost next time you restart the core or switch games. Alternatively you can enable to Autosave option from the OSD menu, and if you do your games will be recorded to disk every time you open the OSD menu. FDS saving uses the same method as for cartridge RAM saves. Save RAM is stored as a .sav file based on the NES/FDS filename in /media/fat/saves/NES/. Examples:
Metroid (Japan) (Rev 3).fds -> Metroid (Japan) (Rev 3).sav
Legend of Zelda, The (USA) (Rev 1).nes -> Legend of Zelda, The (USA) (Rev 1).sav

Savestates

Core provides 4 slots to save and restore the state (FDS not supported). Those can be saved to SDCard or reside only in memory for temporary use(OSD Option). Usage with either Keyboard, Gamepad mappable button or OSD. Save states are stored as .ss files in /media/fat/savestates/NES/, with an underscore and the save slot number (1,2,3,4) preceding .ss. Example (save slot 1): Metroid (USA).nes -> Metroid (USA)_1.ss

Keyboard Hotkeys for save states:

  • Alt-F1..F4 - save the state
  • F1...F4 - restore

Gamepad:

  • Savestatebutton+Left or Right switches the savestate slot
  • Savestatebutton+Start+Down saves to the selected slot
  • Savestatebutton+Start+Up loads from the selected slot

Zapper Support

The "Zapper" (aka Light Gun) can be used via two methods. You can select Peripheral: Zapper(Mouse) to use your mouse to aim and shoot with the left button. This mode uses relative mouse motion, so devices that rely on absolute coordinates will not work via this method. Alternatively, you can choose Zapper(Joy) to use the Analog stick to aim, and the defined Trigger button to fire. Guns such as Aimtrak have joystick modes which may be compatible with this method.

Miracle Piano Support

The Miracle Piano is a MIDI keyboard compatible with the Miracle Piano Education System cart. To use it with SNAC, no further settings are needed. To use it with midilink, in the System Settings, set the UART connection to use MIDI. The piano will then be connected on controller port 1 as expected. The primary controller will automatically be assigned to port 2 as the cart expects. The header for the ROM file should be set to NES 2.0 with controller type (0xF) set to the Miracle Piano (0x19).

Supported Mappers

#
0 1 2 3 4 5 7 9 10 11 12 13 15
16 18 19 FDS 21 22 23 24 25 26 27 28 30 31
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
96 97 99 100 101 104 105 107 108 109 110 111
112 113 114 115 116 117 118 119 120 122 123 125 126 127
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169 171 172 173
180 181 182 183 184 185 186 187 188 189 190 191
192 193 194 195 196 198 199 200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215 216 217 218 222
224 225 226 227 228 229 230 231 232 233 234 235 236 237
240 241 242 243 244 245 246 248 249 250 251 252 254 255
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
268 413 547 --- --- --- --- --- --- --- --- --- --- --- --- ---

Key: Supported+Save state, Supported, Not Supported. Mappers that are not existent or not useful are blank.

More Repositories

1

Main_MiSTer

Main MiSTer binary and Wiki
C
2,805
star
2

ao486_MiSTer

ao486 port for MiSTer
Verilog
264
star
3

mr-fusion

Mr. Fusion - Universal MiSTer SD card image
Shell
263
star
4

PSX_MiSTer

PSX for MiSTer
VHDL
212
star
5

SNES_MiSTer

SNES for MiSTer
VHDL
196
star
6

Hardware_MiSTer

Daughter boards
HTML
191
star
7

NeoGeo_MiSTer

NeoGeo for MiSTer
Verilog
145
star
8

GBA_MiSTer

GBA for MiSTer
VHDL
144
star
9

Minimig-AGA_MiSTer

Verilog
121
star
10

Genesis_MiSTer

Sega Genesis for MiSTer
Verilog
118
star
11

Wiki_MiSTer

115
star
12

Downloader_MiSTer

Tool for installing and updating MiSTer cores and other files
Python
109
star
13

Gameboy_MiSTer

Gameboy for MiSTer
Verilog
103
star
14

TurboGrafx16_MiSTer

TurboGrafx-16 CD / PC Engine CD for MiSTer
VHDL
94
star
15

C64_MiSTer

SystemVerilog
93
star
16

Distribution_MiSTer

This repository contains all the files that you'll want in your MiSTer
Shell
90
star
17

Arcade-Cave_MiSTer

MiSTer arcade core for Cave 68K arcade classics.
Verilog
77
star
18

Template_MiSTer

Template with latest framework for MiSTer
Verilog
75
star
19

Updater_script_MiSTer

Bash script for updating MiSTer
Shell
75
star
20

SD-Installer-Win64_MiSTer

MiSTer SD card installer (Windows 64bit)
72
star
21

Scripts_MiSTer

Miscellaneous Bash scripts for MiSTer
Shell
63
star
22

X68000_MiSTer

Sharp X68000 for MiSTer
VHDL
56
star
23

MegaCD_MiSTer

Mega CD for MiSTer
Verilog
56
star
24

S32X_MiSTer

Sega 32X implementation for MiSTer
SystemVerilog
54
star
25

Saturn_MiSTer

Sega Saturn for MiSTer
SystemVerilog
54
star
26

MkDocs_MiSTer

MiSTer FPGA Documentation site built using Material for MkDocs.
HTML
53
star
27

MegaDrive_MiSTer

Sega Megadrive for MiSTer
Verilog
46
star
28

MiSTerLaggy_MiSTer

A display latency measurement tool
Verilog
44
star
29

C128_MiSTer

Verilog
42
star
30

SMS_MiSTer

Sega Master System for MiSTer
VHDL
40
star
31

N64_MiSTer

VHDL
38
star
32

Menu_MiSTer

Verilog
37
star
33

Apple-II_MiSTer

Apple II+ for MiSTer
VHDL
36
star
34

Filters_MiSTer

Custom Filters for MiSTer's HDMI Scaler
MATLAB
35
star
35

MSX_MiSTer

MSX for MiSTer
VHDL
35
star
36

Fonts_MiSTer

Fonts for MiSTer
Python
34
star
37

MacPlus_MiSTer

Macintosh Plus for MiSTer
SystemVerilog
32
star
38

Atari2600_MiSTer

Atari 2600 for MiSTer
VHDL
31
star
39

AtariST_MiSTer

Atari ST/STe for MiSTer
Verilog
27
star
40

ZXNext_MISTer

VHDL
27
star
41

Atari800_MiSTer

Atari 800XL/65XE/130XE for MiSTer
VHDL
24
star
42

Archie_MiSTer

Acorn Archimedes for MiSTer
Verilog
21
star
43

Amstrad_MiSTer

Amstrad CPC 6128 for MiSTer
VHDL
21
star
44

TI-99_4A_MiSTer

Texas Instrument 99/4A Home Computer
VHDL
20
star
45

Arcade-Pacman_MiSTer

Arcade: Pacman for MiSTer
VHDL
20
star
46

MemTest_MiSTer

Verilog
19
star
47

Arcade-DonkeyKong_MiSTer

Arcade: Donkey Kong for MiSTer
VHDL
19
star
48

PC88_MiSTer

NEC PC8801 MKII SR For MiSTer
VHDL
19
star
49

BBCMicro_MiSTer

BBC Micro B and Master 128K for MiSTer
VHDL
19
star
50

PDP1_MiSTer

PDP-1 for MiSTer
Verilog
18
star
51

Arcade-IremM92_MiSTer

VHDL
17
star
52

MSX1_MiSTer

Computer MSX1
VHDL
17
star
53

Linux_Image_creator_MiSTer

Shell
17
star
54

TRS-80_MiSTer

Tandy TRS-80 Model I (port of HT1080Z to MiSTer)
VHDL
16
star
55

ShadowMasks_MiSTer

HDMI Shadow Masks
16
star
56

Arcade-IremM72_MiSTer

C++
15
star
57

Arcade-GnG_MiSTer

Arcade Ghosts'n Goblins for MiSTer
Verilog
15
star
58

Arcade-Raizing_MiSTer

Bakraid, Batrider, Garegga, Kingdom Grandprix & Sorcer Striker MiSTer Cores
Verilog
15
star
59

VIC20_MiSTer

Commodore VIC-20 for MiSTer
VHDL
14
star
60

N64_ROM_Database

A database of rom metadata for properly handling N64 games.
13
star
61

AtariLynx_MiSTer

VHDL
13
star
62

Linux-Kernel_MiSTer

C
12
star
63

C16_MiSTer

Commodore C16 and Plus/4 for MiSTer
SystemVerilog
12
star
64

GnW_MiSTer

MiSTer Port of Game and Watch Games
Verilog
12
star
65

Presets_MiSTer

A collection of preset video configurations for MiSTer.
12
star
66

Arcade-Galaga_MiSTer

Arcade: Galaga for MiSTer
VHDL
12
star
67

WonderSwan_MiSTer

WonderSwan Color for MiSTer
VHDL
12
star
68

Arduboy_MiSTer

Arduboy core for MiSTer, based on Iulian Gheorghiu's atmega core.
Verilog
12
star
69

Arcade-Tecmo_MiSTer

MiSTer arcade core for Tecmo arcade classics: Rygar (1986), Gemini Wing (1987), and Silkworm (1988).
VHDL
12
star
70

Intv_MiSTer

Intellivision for MiSTer
VHDL
11
star
71

Vectrex_MiSTer

Vectrex for MiSTer
VHDL
11
star
72

QL_MiSTer

Sinclair QL for MiSTer
VHDL
11
star
73

CoCo3_MiSTer

CoCo3FPGA port to MiSTer
VHDL
11
star
74

Arcade-Centipede_MiSTer

Arcade: Centipede
C++
11
star
75

EDSAC_MiSTer

FPGA Verilog implementation of 1949 EDSAC Computer with animated tape reader, panel, teleprinter and CRT scope
Verilog
11
star
76

Arcade-Galaxian_MiSTer

Arcade: Galaxian for MiSTer
VHDL
11
star
77

PET2001_MiSTer

Commodore PET for MiSTer
Verilog
10
star
78

MultiComp_MiSTer

Port of Grant Searle's MultiComp to the MiSTer
Assembly
10
star
79

AliceMC10_MiSTer

Matra-Hachette Alice MC-10 for MiSTer FPGA
Verilog
10
star
80

Arcade-TaitoSystemSJ_MiSTer

Taito System SJ Arcade Core
VHDL
9
star
81

Apple-I_MiSTer

Apple I for MiSTer
Verilog
9
star
82

Arcade-1943_MiSTer

CAPCOM's 1943 arcade clone. (port of JT1943 core)
Verilog
9
star
83

Arcade-Scramble_MiSTer

Arcade: Scramble for MiSTer
VHDL
9
star
84

Arcade-IremM62_MiSTer

Irem62 from pace, and mist including Lode Runner, etc
VHDL
9
star
85

Hardware_alternative

128MB sdram module, horizontal. Fits on official IO addon
9
star
86

SD-InstallTool_Win_MiSTer

SD Card preparation tool for MiSTer FPGA project
C#
9
star
87

SharpMZ_MiSTer

Sharp MZ Series Personal/Business Computer Emulator for FPGA
VHDL
8
star
88

Arcade-BurgerTime_MiSTer

Arcade: Burger Time for MiSTer
Verilog
8
star
89

Arcade-Defender_MiSTer

Arcade: Defender for MiSTer
VHDL
8
star
90

MRA-Alternatives_MiSTer

Alternative (hacks, other versions) MRA files for arcade cores
8
star
91

Amstrad-PCW_MiSTer

Amstrad PCW MiSTer core
Verilog
8
star
92

Arcade-BombJack_MiSTer

Arcade: Bomb Jack for MiSTer
VHDL
8
star
93

xow_MiSTer

Linux driver for the Xbox One wireless dongle compiled for MiSTer
Shell
8
star
94

Life_MiSTer

Conway's Game of Life for MiSTer
Verilog
7
star
95

AY-3-8500-MiSTer

Port of AY-3-8500 to MiSTer
Verilog
7
star
96

Chess_MiSTer

VHDL
7
star
97

Arcade-SEGASYS1_MiSTer

Sega System 1 for MiSTer
Verilog
7
star
98

BK0011M_MiSTer

Verilog
7
star
99

ColecoVision_MiSTer

ColecoVision for MiSTer
VHDL
7
star
100

Arcade-MrDo_MiSTer

Mr. Do! Universal 1982
Verilog
7
star