Mesen-X
nsfplay
Mesen-X | nsfplay | |
---|---|---|
13 | 3 | |
163 | 268 | |
- | - | |
0.0 | 6.3 | |
8 months ago | 3 days ago | |
C++ | C++ | |
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Mesen-X
-
Can't load some NES ROMS
So far, the nintendulator NRS ( https://symphoniae.com/nrs/NintendulatorNRS/ ) supports the most obscure mappers, Mesen-X it's also gotten plenty of mappers support in the last months, check the nightly builds in the following link: https://github.com/NovaSquirrel/Mesen-X/actions/workflows/win-build.yml
-
What's the best NES Emulator to use for Windows PC to play Final Fantasy I NES on so you see the graphics of the ORBs being restored their light?
Mesen-X
-
Remélem másokban is felelevenül egy kis vidám nosztalgia.
Mesen-t akartál írni, ugye?
-
This is some Morse Code level of cryptic. I can't figure out what those inverted letters mean!
https://www.mesen.ca/ try this for a NES emulator instead, and also try this for Wii/Gamecube games https://forums.dolphin-emu.org/Thread-unofficial-ishiiruka-dolphin-custom-versionCPU usage on the graphic thread.
-
Emulator program
You cand test it yourself over here: https://github.com/NovaSquirrel/Mesen-X/releases
- puNES or Mesen ?
- Are there any good Zelda 1 remakes?
-
Sound of the 2C33: The Famicom Disk System
To elaborate on how frequency modulation "gives the triangle wave a grittier sound", FDS's FM and Yamaha's phase modulation produce sidebands, or extra frequencies, at (harmonic * carrier frequency ± n * modulator frequency). The intensity of each sideband is proportional to FFT(carrier)[harmonic] * f(n) (for some odd f involving Bessel functions and FFT(modulator), which is zero for large |n|, and the number of nonzero n increases as the modulation index increases). In this case, the modulator frequency isn't a small rational factor of the carrier frequency, creating gritty inharmonic sidebands.
As an example of FDS FM, you can look at this video (https://www.youtube.com/watch?v=Tgu1mCBU2vA) describing FM emulation errors in older versions of FamiTracker, and how some chiptune songs are incompatible with the more accurate emulation core I imported into Dn-FamiTracker.
FDS FM is the chip's defining characteristic in modern chiptune, though it was sadly barely explored by official games in the console's original lifespan (aside from being used as vibrato). The only game I currently know which used FM at audible frequencies was Bio Miracle Bokutte Upa (https://www.youtube.com/watch?v=_alQrPMNBT0), which also required cycle-accurate console emulation and would otherwise degrade into inharmonic chaos (like the "FM emulation errors" video above). Unlike regular FM on Yamaha sound chips, the FDS allows you to use complex carrier wavetables. Combined with how the modulator is naturally slightly detuned from the carrier (due to hardware rounding errors), this results in growling evolving sounds as the waveform stretches and squeezes in the time domain, and harmonics and sidebands beat in and out of phase in the frequency domain.
Strangely, the FDS's modulator doesn't draw from an array of samples like the carrier waveform, but instead an array of 3-bit delta values (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...) representing adding [+0, +1, +2, +4, reset=0, -4, -2, -1] (modulo [-64..64)) to the current modulator amplitude. This means you have to design modulator tables carefully, or else the carrier frequency will have a net offset (as above) or even drift endlessly until it wraps around. Interestingly, FamiTracker shows the mod table as only having 32 elements (compared to the wavetable's 64 elements), and the nesdev wiki (https://wiki.nesdev.org/w/index.php/FDS_audio#Mod_table_writ...) describes the mod table as having 32 elements. This conflicts with how Mesen (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), cxNES (https://github.com/perilsensitive/cxnes/blob/master/boards/a...), and nsfplay (https://github.com/bbbradsmith/nsfplay/blob/master/xgm/devic...) implement the mod table as a 64-element array where you can only write to 2 adjacent elements at a time. I'm not sure which is accurate, as I don't have hardware on hand to test.
Then on each sample (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), the modulator amplitude is multiplied by the modulation strength (dropping a few lower bits and rounding oddly), clamped between [-64..192) (asymmetrical for some reason), and then used to change the carrier's instantaneous frequency by 0x through 4x (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Fds...).
-
Comprehensive Chronological Series List for Emulation
(Mesen)[https://www.mesen.ca/]
- Mesen revival (attempt)
nsfplay
-
Pink Floyd "The Dark Side of the Moon" - Time (8-BIT VRC6 FamiTracker)
The piano visualization was done with NSFPlay, which you can get here: https://bbbradsmith.github.io/nsfplay/
-
Famitracker and NSFPlay
You’re using the latest version of NSFPlay right? If not, it can be found here. As for opening up an .nsf in FamiTracker - that is, converting it [back] into a module - it’s possible but imperfect.
-
Sound of the 2C33: The Famicom Disk System
To elaborate on how frequency modulation "gives the triangle wave a grittier sound", FDS's FM and Yamaha's phase modulation produce sidebands, or extra frequencies, at (harmonic * carrier frequency ± n * modulator frequency). The intensity of each sideband is proportional to FFT(carrier)[harmonic] * f(n) (for some odd f involving Bessel functions and FFT(modulator), which is zero for large |n|, and the number of nonzero n increases as the modulation index increases). In this case, the modulator frequency isn't a small rational factor of the carrier frequency, creating gritty inharmonic sidebands.
As an example of FDS FM, you can look at this video (https://www.youtube.com/watch?v=Tgu1mCBU2vA) describing FM emulation errors in older versions of FamiTracker, and how some chiptune songs are incompatible with the more accurate emulation core I imported into Dn-FamiTracker.
FDS FM is the chip's defining characteristic in modern chiptune, though it was sadly barely explored by official games in the console's original lifespan (aside from being used as vibrato). The only game I currently know which used FM at audible frequencies was Bio Miracle Bokutte Upa (https://www.youtube.com/watch?v=_alQrPMNBT0), which also required cycle-accurate console emulation and would otherwise degrade into inharmonic chaos (like the "FM emulation errors" video above). Unlike regular FM on Yamaha sound chips, the FDS allows you to use complex carrier wavetables. Combined with how the modulator is naturally slightly detuned from the carrier (due to hardware rounding errors), this results in growling evolving sounds as the waveform stretches and squeezes in the time domain, and harmonics and sidebands beat in and out of phase in the frequency domain.
Strangely, the FDS's modulator doesn't draw from an array of samples like the carrier waveform, but instead an array of 3-bit delta values (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...) representing adding [+0, +1, +2, +4, reset=0, -4, -2, -1] (modulo [-64..64)) to the current modulator amplitude. This means you have to design modulator tables carefully, or else the carrier frequency will have a net offset (as above) or even drift endlessly until it wraps around. Interestingly, FamiTracker shows the mod table as only having 32 elements (compared to the wavetable's 64 elements), and the nesdev wiki (https://wiki.nesdev.org/w/index.php/FDS_audio#Mod_table_writ...) describes the mod table as having 32 elements. This conflicts with how Mesen (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), cxNES (https://github.com/perilsensitive/cxnes/blob/master/boards/a...), and nsfplay (https://github.com/bbbradsmith/nsfplay/blob/master/xgm/devic...) implement the mod table as a 64-element array where you can only write to 2 adjacent elements at a time. I'm not sure which is accurate, as I don't have hardware on hand to test.
Then on each sample (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), the modulator amplitude is multiplied by the modulation strength (dropping a few lower bits and rounding oddly), clamped between [-64..192) (asymmetrical for some reason), and then used to change the carrier's instantaneous frequency by 0x through 4x (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Fds...).
What are some alternatives?
Mesen - Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#
E-FamiTracker - Extended FamiTracker, mod of Dn-FamiTracker.
BizHawk - BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
furnace - a multi-system chiptune tracker compatible with DefleMask modules
mame - MAME
Dn-FamiTracker - modifications and improvements for 0CC-FamiTracker (based on j0CC-FamiTracker 0.6.3)
Mesen - Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++
Nes_Snd_Emu - NES / Famicom sound library, descended from blargg's Nes_Snd_Emu
Mesen-SX - Homebrew development oriented fork of Mesen-S - a cross-platform (Windows & Linux) SNES emulator built in C++ and C#. Deprecated; see https://github.com/SourMesen/Mesen2/
0CC-FamiTracker - Extension of jsr's FamiTracker
mgba - mGBA Game Boy Advance Emulator
cxnes - Cross-Platform NES/Famicom Emulator