| Both sides previous revision Previous revision Next revision | Previous revision |
| systems:nes [2021/12/03 10:41] – [Separation of NES and Famicom] added folder path that can be used after this atari | systems:nes [2023/01/22 00:26] (current) – update with new configs and new emulators atari |
|---|
| <WRAP round box twothirds column> | <WRAP round box twothirds column> |
| {{ https://raw.githubusercontent.com/fabricecaruso/es-theme-carbon/master/art/logos/nes.svg?nolink&440 }} | {{ https://raw.githubusercontent.com/fabricecaruso/es-theme-carbon/master/art/logos/nes.svg?nolink&440 }} |
| | {{ https://raw.githubusercontent.com/fabricecaruso/es-theme-carbon/master/art/logos/jp/nes.svg?nolink&440 }} |
| |
| ====== Nintendo Entertainment System ====== | ====== Nintendo Entertainment System ====== |
| |
| The Nintendo Entertainment System, known as the Nintendo Famicon in Japan with a radically different design, is an 8-bit third-generation video game console released by Nintendo in Japan in 1983. It was redesigned as the NES and released two years later in the US, retailing for $179.99. Debatably the first majorly successful video game console after the [[https://en.wikipedia.org/wiki/Video_game_crash_of_1983|North American video game crash of '83]], probably why it looks more like a VCR than a console. | The Nintendo Entertainment System, known as the Nintendo Famicom in Japan with a radically different design, is an 8-bit third-generation video game console released by Nintendo in Japan in 1983. It was redesigned as the NES and released two years later in the US, retailing for $179.99. Arguably the first majorly successful video game console after the [[https://en.wikipedia.org/wiki/Video_game_crash_of_1983|North American video game crash of '83]]; probably why it looks more like a VCR than a console. |
| |
| The original Famicom had the Family Computer Disk System add-on released for it which allowed playback of games on higher capacity discs which commonly featured enhanced sound capabilities. Since the NES had a delayed release, it included additional mapping hardware negating the need for the add-on, albeit without the sound enhancements. Many Famicom disk-only games were ported to cartridge form for their US release. The default theme, Carbon, supports switching between regions in its theme settings in the case that you'd prefer to see the Famicom design instead of the NES design on the system list. | The original Famicom had the Family Computer Disk System add-on released for it a few years after its release which allowed playback of games on higher capacity discs. These discs commonly featured enhanced sound capabilities and the ability to save the game data, as opposed to using passwords to resume progress. Since the NES had a delayed release, it included additional mapping hardware negating the need for the add-on, albeit without the sound enhancements. Many Famicom disk-only games were ported to cartridge form for their US release. The default theme, Carbon, supports switching between regions in its theme settings in the case that you'd prefer to see the Famicom design instead of the NES design on the system list. |
| |
| <WRAP tip> | <WRAP center round tip> |
| For emulation of the Famicom Disk System (FDS) specifically, use the ''fds'' folder instead. | For emulation of the Famicom Disk System (FDS) specifically, use the ''fds'' folder instead. |
| </WRAP> | </WRAP> |
| |
| Emulation of the NES is pretty well established. If your machine can only emulate one system at full speed, it will be this. Choice of emulator doesn't particularly matter, they're all good nowadays. MAME can emulate the Vs. Dualsystem cabinet, but if this your first time hearing about that don't worry about it. | Emulation of the NES is pretty well established. If your machine can only emulate one system at full speed, it will be this. Choice of emulator doesn't particularly matter, they're all good nowadays. Technically, MAME can emulate the Vs. Dualsystem cabinet, but if this your first time hearing about that don't worry about it. |
| |
| This system scrapes metadata for the ''nes'' group(s) and loads the ''nes'' set from the currently selected theme, if available. | This system scrapes metadata for the ''nes'' group(s) and loads the ''nes'' set from the currently selected theme, if available. |
| <WRAP third column> | <WRAP third column> |
| {{ https://raw.githubusercontent.com/fabricecaruso/es-theme-carbon/master/art/consoles/nes.png?nolink&350 |}} | {{ https://raw.githubusercontent.com/fabricecaruso/es-theme-carbon/master/art/consoles/nes.png?nolink&350 |}} |
| | {{ https://raw.githubusercontent.com/fabricecaruso/es-theme-carbon/master/art/consoles/famicom.png?nolink&350 |}} |
| </WRAP> | </WRAP> |
| </WRAP> | </WRAP> |
| ==== Quick reference ==== | ==== Quick reference ==== |
| |
| * **Emulator:** RetroArch | * **Emulator:** [[#retroarch|RetroArch]] |
| * **Cores available:** [[#libretro/fceumm|fceumm]], [[#libretro/nestopia|nestopia]] | * **Cores available:** [[#libretro:_fceumm|libretro: fceumm]], [[#libretro:_nestopia|libretro: Nestopia]], [[#libretro:_mesen|libretro: Mesen]] |
| * **Folder:** ''/userdata/roms/nes'' | * **Folder:** ''/userdata/roms/nes'' |
| * **Accepted ROM formats:** ''.nes'', ''.unif'', ''.unf'', ''.zip'', ''.7z'' | * **Accepted ROM formats:** ''.nes'', ''.unif'', ''.unf'', ''.zip'', ''.7z'' |
| ==== RetroArch ==== | ==== RetroArch ==== |
| |
| [[https://docs.libretro.com/|RetroArch]] (formerly SSNES), is a ubiquitous frontend that can run multiple "cores", which are essentially the emulators themselves. The most common cores use the [[https://www.libretro.com/|libretro]] API, so that's why cores run in RetroArch in Batocera are referred to as "libretro/(core name)". RetroArch aims to unify the feature set of all libretro cores and offer a universal, familiar interface independent of platform. | RetroArch has [[emulators:retroarch|its own page]]. |
| |
| === RetroArch configuration === | === libretro: fceumm === |
| |
| RetroArch offers a **Quick Menu** accessed by pressing ''[HOTKEY]'' + {{:wiki:south.png?nolink&20|South button (B SNES)}} which can be used to alter various things like [[:advanced_retroarch_settings|RetroArch and core options]], and [[:remapping_controls_per_emulator|controller mapping]]. Most RetroArch related settings can be altered from Batocera's EmulationStation. | FCE Ultra "mappers modified" is a libretro-maintained fork of FCE Ultra. High compatibility. A small amount of early romhacks may only work in this emulator. |
| | |
| Standardized features available to all libretro cores: ''nes.videomode'', ''nes.ratio'', ''nes.smooth'', ''nes.shaders'', ''nes.pixel_perfect'', ''nes.decoration'', ''nes.game_translation'' | |
| | |
| ^ ES setting name ''batocera.conf_key'' ^ Description => ES option ''key_value'' ^ | |
| ^ Settings that apply to all cores of this emulator | | |
| | **GRAPHICS BACKEND ''nes.gfxbackend''** | Choose your graphics rendering\\ => OpenGL ''opengl'', Vulkan ''vulkan''. | | |
| | **AUDIO LATENCY ''nes.audio_latency''** | Audio latency in milliseconds, turn it up if you hear crackles\\ => 256 ''256'', 192 ''192'', 128 ''128'', 64 ''64'', 32 ''32'', 16 ''16'', 8 ''8''. | | |
| | **THREADED VIDEO ''nes.video_threaded''** | Improves performance at the cost of latency and more video stuttering. Use only if full speed cannot be obtained otherwise.\\ => On ''true'', Off ''false''. | | |
| |
| ==== libretro/fceumm ==== | == libretro: fceumm configuration == |
| | |
| FCE Ultra "mappers modified" is a libretro-maintained fork of FCE Ultra. High compatibility. A small amount of early romhacks may only work in this emulator. | |
| |
| === libretro/fceumm configuration === | Standardized features for this core: ''nes.rewind'', ''nes.autosave'', ''nes.use_guns'', ''nes.netplay'', ''nes.cheevos'' |
| |
| ^ ES setting name ''batocera.conf_key'' ^ Description => ES option ''key_value'' ^ | ^ ES setting name ''batocera.conf_key'' ^ Description => ES option ''key_value'' ^ |
| | **REDUCE SPRITE FLICKERING ''nes.fceumm_nospritelimit''** | Enhancement. The NES has an 8 sprite limit per line, when this is exceeding the remaining sprites are flickered between (or sometimes just don't show up at all!) This setting removes that limit. Enabling it has no ill effect in most games but is less accurate to the original hardware.\\ => Off ''disabled'', On ''enabled''. | | | **REDUCE SPRITE FLICKERING ''nes.fceumm_nospritelimit''** | Enhancement. The NES has an 8 sprite limit per line, when this is exceeding the remaining sprites are flickered between (or sometimes just don't show up at all!) This setting removes that limit. Enabling it has no ill effect in most games but is less accurate to the original hardware.\\ => Off ''disabled'', On ''enabled''. | |
| | **CROP OVERSCAN ''nes.fceumm_cropoverscan''** | The NES outputs an image that is larger than what would have been displayed on the typical CRT TVs used during the time period. Therefore, some games display "garbage" pixels here that aren't intended to be seen. This setting crops out the border to simulate the same effect. Some games only have garbage on the top/bottom or the sides of the screen, others have none whatsoever. It's safe just to leave it on for all games if you want.\\ => None ''none'', Horizontal ''h'', Vertical ''v'', Both ''both''. | | | **CROP OVERSCAN ''nes.fceumm_cropoverscan''** | The NES outputs an image that is larger than what would have been displayed on the typical CRT TVs used during the time period. Therefore, some games display "garbage" pixels here that aren't intended to be seen. This setting crops out the border to simulate the same effect. Some games only have garbage on the top/bottom or the sides of the screen, others have none whatsoever. It's safe just to leave it on for all games if you want.\\ => None ''none'', Horizontal ''h'', Vertical ''v'', Both ''both''. | |
| | **COLOR PALETTE ''nes.fceumm_palette''** | Choose which color palette to use.\\ => default ''default'', asqrealc ''asqrealc'', nintendo-vc ''nintendo-vc'', rgb ''rgb'', yuv-v3 ''yuv-v3'', unsaturated-final ''unsaturated-final'', sony-cxa2025as-us ''sony-cxa2025as-us'', pal ''pal'', bmf-final2 ''bmf-final2'', bmf-final3 ''bmf-final3'', smooth-fbx ''smooth-fbx'', composite-direct-fbx ''composite-direct-fbx'', pvm-style-d93-fbx ''pvm-style-d93-fbx'', ntsc-hardware-fbx ''ntsc-hardware-fbx'', nes-classic-fbx-fs ''nes-classic-fbx-fs'', nescap ''nescap'', wavebeam ''wavebeam'', custom ''custom''. | | | **COLOR PALETTE ''nes.fceumm_palette''** | Choose which color palette to use. Can be used to simulate colors of particular displays.\\ => default ''default'', asqrealc ''asqrealc'', nintendo-vc ''nintendo-vc'', rgb ''rgb'', yuv-v3 ''yuv-v3'', unsaturated-final ''unsaturated-final'', sony-cxa2025as-us ''sony-cxa2025as-us'', pal ''pal'', bmf-final2 ''bmf-final2'', bmf-final3 ''bmf-final3'', smooth-fbx ''smooth-fbx'', composite-direct-fbx ''composite-direct-fbx'', pvm-style-d93-fbx ''pvm-style-d93-fbx'', ntsc-hardware-fbx ''ntsc-hardware-fbx'', nes-classic-fbx-fs ''nes-classic-fbx-fs'', nescap ''nescap'', wavebeam ''wavebeam'', custom ''custom''. | |
| | **NTSC FILTER ''nes.fceumm_ntsc_filter''** | The emulator has the Blarg NTSC filter built-in, unrelated to the shader preset you can choose within Batocera. You can use Batocera's or RetroArch's preset shaders instead.\\ => Off ''disabled'', Composite (color bleeding + artifacts) ''composite'', SVideo (color bleeding only) ''svideo'', RGB (crisp image) ''rgb''. | | | **NTSC FILTER ''nes.fceumm_ntsc_filter''** | The emulator has the Blarg NTSC filter built-in, unrelated to the shader preset you can choose within Batocera. You can use Batocera's or RetroArch's preset shaders instead.\\ => Off ''disabled'', Composite (color bleeding + artifacts) ''composite'', SVideo (color bleeding only) ''svideo'', RGB (crisp image) ''rgb''. | |
| | **SOUND QUALITY (HIGHER DEVICES) ''nes.fceumm_sndquality''** | Sound quality. ''Low'' is good for most games, but those that run at lower clocks (like PAL games) sound terrible on this. ''High'' is good for everything. ''Very High'' is nearly cycle-accurate, but has substantially higher requirements than the other settings. If you're on at least a Pi 2 or higher this shouldn't matter.\\ => Low ''Low'', High ''High'', Very High ''Very High''. | | | **SOUND QUALITY (HIGHER DEVICES) ''nes.fceumm_sndquality''** | Sound quality. ''Low'' is good for most games, but those that run at lower clocks (like PAL games) sound terrible on this. ''High'' is good for everything. ''Very High'' is nearly cycle-accurate, but has substantially higher requirements than the other settings. If you're on at least a Pi 2 or higher this shouldn't matter.\\ => Low ''Low'', High ''High'', Very High ''Very High''. | |
| | **PPU OVERCLOCKING ''nes.fceumm_overclocking''** | Enhancement. Overclocks the emulated PPU by adding dummy scanlines, giving the game more time to execute per frame. This can be used to avoid console slowdown in games such as Contra Force, but some games encounter glitches with it on. ''2x-Postrender'' applies the overclock before NMI. ''2x-VBlank'' applies the overclock after NMI.\\ => disabled ''disabled'', 2x-Postrender ''2x-Postrender'', 2x-VBlank ''2x-VBlank''. | | | **OVERCLOCK (UNSTABLE) ''nes.fceumm_overclocking''** | Enhancement. Overclocks the emulated PPU by adding dummy scanlines, giving the game more time to execute per frame. This can be used to avoid console slowdown in games such as Contra Force, but some games encounter glitches with it on. ''2x-Postrender'' applies the overclock before NMI. ''2x-VBlank'' applies the overclock after NMI.\\ => disabled ''disabled'', 2x-Postrender ''2x-Postrender'', 2x-VBlank ''2x-VBlank''. | |
| | **CONTROLLER 1 TYPE ''nes.controller1_nes''** | Choose what is plugged into port 1. The NES Zapper defaults to being controlled by your cursor.\\ => Autodetect ''1'', NES Gamepad ''513'', NES Zapper ''258''. | | | **CONTROLLER 1 TYPE ''nes.controller1_nes''** | Choose what is plugged into port 1. The NES Zapper defaults to being controlled by your cursor.\\ => Autodetect ''1'', NES Gamepad ''513'', NES Zapper ''258''. | |
| | **CONTROLLER 2 TYPE ''nes.controller2_nes''** | Same as above but for port 2. In addition, also supports the Arkanoid paddle.\\ => Autodetect ''1'', NES Gamepad ''513'', NES Zapper ''258'', Arkanoid paddle ''514''. | | | **CONTROLLER 2 TYPE ''nes.controller2_nes''** | Same as above but for port 2. In addition, also supports the Arkanoid paddle.\\ => Autodetect ''1'', NES Gamepad ''513'', NES Zapper ''258'', Arkanoid paddle ''514''. | |
| |
| ==== libretro/Nestopia ==== | === libretro: Nestopia === |
| |
| A fork of Nestopia, Nestopia Undead Edition is the bug-fixed revival of the emulator. High compatibility and accuracy. | A fork of Nestopia, Nestopia Undead Edition is the bug-fixed revival of the emulator. High compatibility and accuracy. |
| |
| === libretro/Nestopia configuration === | == libretro: Nestopia configuration == |
| | |
| | Standardized features for this core: ''nes.rewind'', ''nes.autosave'', ''nes.use_guns'', ''nes.netplay'' |
| |
| ^ ES setting name ''batocera.conf_key'' ^ Description => ES option ''key_value'' ^ | ^ ES setting name ''batocera.conf_key'' ^ Description => ES option ''key_value'' ^ |
| | **COLOR PALETTE ''nes.nestopia_palette''** | Choose which color palette to use.\\ => consumer ''consumer'', cxa2025as ''cxa2025as'', canonical ''canonical'', alternative ''alternative'', rgb ''rgb'', pal ''pal'', composite-direct-fbx ''composite-direct-fbx'', pvm-style-d93-fbx ''pvm-style-d93-fbx'', ntsc-hardware-fbx ''ntsc-hardware-fbx'', nes-classic-fbx-fs ''nes-classic-fbx-fs'', custom ''custom''. | | | **COLOR PALETTE ''nes.nestopia_palette''** | Choose which color palette to use.\\ => consumer ''consumer'', cxa2025as ''cxa2025as'', canonical ''canonical'', alternative ''alternative'', rgb ''rgb'', pal ''pal'', composite-direct-fbx ''composite-direct-fbx'', pvm-style-d93-fbx ''pvm-style-d93-fbx'', ntsc-hardware-fbx ''ntsc-hardware-fbx'', nes-classic-fbx-fs ''nes-classic-fbx-fs'', custom ''custom''. | |
| | **NTSC FILTER ''nes.nestopia_blargg_ntsc_filter''** | The emulator has the Blarg NTSC filter built-in, unrelated to the shader preset you can choose within Batocera. You can use Batocera's or RetroArch's preset shaders instead.\\ => Off ''disabled'', Composite (color bleeding + artifacts) ''composite'', SVideo (color bleeding only) ''svideo'', RGB (crisp image) ''rgb''. | | | **NTSC FILTER ''nes.nestopia_blargg_ntsc_filter''** | The emulator has the Blarg NTSC filter built-in, unrelated to the shader preset you can choose within Batocera. You can use Batocera's or RetroArch's preset shaders instead.\\ => Off ''disabled'', Composite (color bleeding + artifacts) ''composite'', SVideo (color bleeding only) ''svideo'', RGB (crisp image) ''rgb''. | |
| | **CPU OVERCLOCK ''nes.nestopia_overclock''** | Enhancement. Minimize in-game slowdowns of some games (Contra Force). May cause random crashes.\\ => Off ''1x'', 2x ''2x''. | | | **BLARGG NTSC FILTER ''global.nestopia_blargg_ntsc_filter''** | Core-powered video filter.\\ => Off ''disabled'', Composite (color bleeding + artifacts) ''composite'', SVideo (color bleeding only) ''svideo'', RGB (crisp image) ''rgb''. | |
| | | ***OVERCLOCK (UNSTABLE) ''nes.nestopia_overclock''** | Enhancement. Minimize in-game slowdowns of some games (Contra Force). May cause random crashes.\\ => Off ''1x'', 2x ''2x''. | |
| | **4 PLAYER ADAPTER ''nes.nestopia_select_adapter''** | Manually select a 4 Player Adapter for some games\\ => Autodetect ''automatic'', NTSC (NES) ''ntsc'', Famicom (FDS) ''famicom''. | | | **4 PLAYER ADAPTER ''nes.nestopia_select_adapter''** | Manually select a 4 Player Adapter for some games\\ => Autodetect ''automatic'', NTSC (NES) ''ntsc'', Famicom (FDS) ''famicom''. | |
| | |
| | === libretro: Mesen === |
| | |
| | The libretro port of a modern NES emulator with 100% mapper compatibility. Is more demanding than the other, more innacurate emulators, but this is only a concern on //really// weak hardware like the Pi 0. |
| | |
| | == libretro: Mesen configuration == |
| | |
| | Standardized features for this core: ''nes.rewind'', ''nes.autosave'', ''nes.netplay'', ''nes.padtokeyboard'' |
| | |
| | ^ ES setting name ''batocera.conf_key'' ^ Description => ES option ''key_value'' ^ |
| | ^ Settings that apply to all systems this core supports || |
| | | **CONSOLE REGION ''global.mesen_region''** | Dendy is a popular Russian clone with unique characteristics.\\ => NTSC ''NTSC'', PAL ''PAL'', Dendy ''Dendy''. | |
| | | **DISPLAY ROTATION ''global.mesen_screenrotation''** | Rotate the screen, useful for certain vertical gameplay homebrews.\\ => None ''None'', 90 degrees ''90 degrees'', 180 degrees ''180 degrees'', 270 degrees ''270 degrees''. | |
| | | **NTSC FILTER ''global.mesen_ntsc_filter''** | Core-powered video filter. Bisqwit filters are CPU heavy.\\ => Disabled ''Disabled'', Composite (Blargg) ''Composite (Blargg)'', S-Video (Blargg) ''S-Video (Blargg)'', RGB (Blargg) ''RGB (Blargg)'', Monochrome (Blargg) ''Monochrome (Blargg)'', Bisqwit 2x ''Bisqwit 2x'', Bisqwit 4x ''Bisqwit 4x'', Bisqwit 8x ''Bisqwit 8x''. | |
| | | **REDUCE SPRITE FLICKERING ''global.mesen_nospritelimit''** | Enhancement. Remove the eight sprite per line limit.\\ => Off ''False'', On ''True''. | |
| | | **COLOR PALETTE ''global.mesen_palette''** | \\ => Default ''Default'', Composite Direct (FirebrandX) ''Composite Direct (by FirebrandX)'', Nes Classic ''Nes Classic'', Nestopia (RGB) ''Nestopia (RGB)'', Original Hardware (FirebrandX) ''Original Hardware (by FirebrandX)'', PVM Style (FirebrandX) ''PVM Style (by FirebrandX)'', Sony CXA2025AS ''Sony CXA2025AS'', Unsaturated v6 (FirebrandX) ''Unsaturated v6 (by FirebrandX)'', YUV v3 (Firebrand) ''YUV v3 (by FirebrandX)'', Custom ''Custom''. | |
| | | **LOAD CUSTOM TEXTURES ''global.mesen_hdpacks''** | Load HD texture packs from ''/userdata/bios/HdPacks/''.\\ => Off ''False'', On ''True''. | |
| | | **(FDS) AUTOMATICALLY LOAD DISK SIDE A ''global.mesen_fdsautoinsertdisk''** | Avoids having to manually load side A every time.\\ => Off ''False'', On ''True''. | |
| | | **(FDS) FAST FORWARD DISK LOADING ''global.mesen_fdsfastforwardload''** | Reduce load time at the cost of accuracy.\\ => Off ''False'', On ''True''. | |
| | | **DEFAULT POWER ON RAM STATE ''global.mesen_ramstate''** | Useful for speedruns/glitches.\\ => All 0s (Default) ''All 0s (Default)'', All 1s ''All 1s'', Random Values ''Random Values''. | |
| | | **OVERCLOCK (UNSTABLE) ''global.mesen_overclock''** | Enhancement. Reduces system slowdown. Causes issues in some games.\\ => None ''None'', Low ''Low'', Medium ''Medium'', High ''High'', Very High ''Very High''. | |
| | | **OVERCLOCK TYPE ''global.mesen_overclock_type''** | Prefer "Before NMI", change to After NMI only if needed by the game.\\ => Before NMI ''Before NMI (Recommended)'', After NMI ''After NMI''. | |
| |
| ===== Separation of NES and Famicom ==== | ===== Separation of NES and Famicom ==== |
| </WRAP> | </WRAP> |
| |
| - Navigate to ''configgen-defaults.yml'', find the line just above ''fbneo:'' and below ''%%core: ecwolf%%'' and add the following: <file yaml configgen-defaults.yml> | - Navigate to ''configgen-defaults.yml'' and add the following to the bottom of it: <file yaml configgen-defaults.yml> |
| famicom: | famicom: |
| emulator: libretro | emulator: libretro |
| <emulator name="libretro"> | <emulator name="libretro"> |
| <cores> | <cores> |
| <core>fceumm</core> | <core default="true">fceumm</core> |
| <core default="true">nestopia</core> | <core>nestopia</core> |
| </cores> | </cores> |
| </emulator> | </emulator> |
| Here are the Nintendo Entertainment System's controls shown on a [[:configure_a_controller|Batocera Retropad]]: | Here are the Nintendo Entertainment System's controls shown on a [[:configure_a_controller|Batocera Retropad]]: |
| |
| {{ https://raw.githubusercontent.com/batocera-linux/batocera-controller-overlays/master/solid-4k/nes.png }} | {{https://raw.githubusercontent.com/batocera-linux/batocera-controller-overlays/master/solid-4k/nes.png}} |
| |
| ===== Troubleshooting ===== | ===== Troubleshooting ===== |