Page 1 of 52

puNES Emulator

Posted: Wed Sep 01, 2010 5:26 pm
by FHorse
Qt-based Nintendo Entertainment System emulator and NSF/NSF2/NSFe Music Player

puNES is an emulator under development that works on Linux, OpenBSD, FreeBSD and Windows. Uncompress the zip/tar file in a subdirectory and use. The emulator supports compressed archives.

Mappers supported :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 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, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 103, 104, 105, 106, 107, 108, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 163, 164, 165, 166, 167, 168, 170, 171, 172, 173, 175, 176, 177, 178, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 252, 253, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 295, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 311, 312, 313, 314, 315, 319, 320, 322, 323, 324, 325, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 366, 368, 369, 370, 372, 374, 375, 377, 380, 381, 382, 384, 386, 387, 388, 389, 390, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 404, 406, 409, 410, 411, 412, 413, 414, 415, 416, 417, 420, 421, 422, 428, 429, 431, 432, 433, 434, 436, 437, 438, 442, 446, 447, 451, 452, 455, 456, 457, 471, 512, 513, 516, 517, 518, 519, 521, 522, 524, 525, 526, 527, 528, 529, 530, 532, 534, 536, 537, 538, 539, 540, 541, 543, 547, 550, 551, 552, 554, 555, 556, 557, 558, 559, 560, 561

UNIF boards supported:
NROM, NROM-128, NROM-256, Transformer, SLROM, UOROM, UNROM, CNROM, TLROM, TBROM, TFROM, TKROM, ANROM, AMROM, AOROM, SL1632, SC-127, CC-21, SuperHIK8in1, STREETFIGTER-GAME4IN1, A60AS, Supervision16in1, MARIO1-MALEE2, T3H53, D1038, NTBROM, SA-016-1M, VRC7, TEK90, BB, H2288, LH32, 22211, SA-72008, T4A54A, Sachen-8259D, Sachen-8259B, Sachen-8259C, Sachen-8259A, KS7032, SA-NROM, SA-72007, TC-U01-1.5M, SA-0037, SA-0036, Sachen-74LS374N, FS304, Super24in1SC03, WAIXING-FS005, FK23C, FK23CA, FC-28-5027, NovelDiamond9999999in1, JC-016-2, 8237, 8237A, N625092, Ghostbusters63in1, WAIXING-FW01, 42in1ResetSwitch, 150in1A, 212-HONG-KONG, 70in1, 70in1B, 603-5052, 43272, OneBus, DANCE, 158B, F-15, HPXX, HP2018-A, 810544-C-A1, SHERO, KOF97, YOKO, T-262, CITYFIGHT, COOLBOY, MINDKIDS, 22026, 80013-B, GS-2004, GS-2013, A65AS, DRIPGAME, BS-5, 411120-C, K-3088, GKCXIN1, 60311C, NTD-03, DRAGONFIGHTER, 13in1JY110, TF1201, 11160, 190in1, 8157, KS7057, KS7017, SMB2J, KS7031, KS7016, KS7037, TH2131-1, LH51, KS7013B, RESET-TXROM, 64in1NoRepeat, 830134C, HP898F, 830425C-4391T, K-3033, FARID_SLROM_8-IN-1, FARID_UNROM_8-IN-1, MALISB, 10-24-C-A1, RT-01, EDU2000, 12-IN-1, WS, 8-IN-1, NEWSTAR-GRM070-8IN1, CTC-09, K-3046, CTC-12IN1, SA005-A, K-3006, K-3036, TJ-03, COOLGIRL, RESETNROM-XIN1, GN-26, L6IN1, KS7012, KS7030, 830118C, G-146, 891227, KS106C, 3D-BLOCK, SB-5013, N49C-300, 820561C, M2C52A, 830752C, BS-400R, BS-4040R, K-3010, K-3071, SA-9602B, DANCE2000, EH8813A, DREAMTECH01, LH10, 900218, KS7021A, BJ-56, AX-40G, 831128C, T-230, AX5705, CHINA_ER_SAN2, 82112C, KONAMI-QTAI, AC08, S-2009

Sound : Implemented.
FDS : Implemented.
Game Genie : Implemented.

Current version : 0.111

Links always updated: Changelog:
  • Rewritten mappers : All.
  • Rewritten WRAM, VRAM, PRGROM, CHROM and Nametebles management.
  • Rewritten FDS support.
    • Furthermore, an option has been added to select the mode for write operations. Until now, all writes were stored on an external file (diff file) to preserve the integrity of the disk image, now it's possible to choose to write them directly to the FDS/QD file (making it portable to other emulators as well).
    • Changed the format of the diff file, now I use the IPS format (which can always be applied to the original image).
  • Rewritten the format and management of save states.
    WARNING save states of version 0.110 or earlier are no longer compatible.
  • Rewritten the audio of the VRC7.
    Implemented the project "A YM2413 emulator written in C" of okaxaki : https://github.com/digital-sound-antiques/emu2413
  • Rewritten NSF player.
    Added support to NSF2 format.
  • Added the ability to configure shortcuts and the NES pad from the command line.
  • Added support to Quick Disk format.
  • Added an option for RAM initialization (#276).
    It's possible to choose between three values:
    • 0x00
    • 0xFF (default)
    • Randomize
  • Added a screen icon that shows when fast forward is active.
  • Added the possibility to set default values for PPU overclocking to be applied for all roms in addition to the per-game ones already used.
  • Added Arabic translation (thx to Chipsum).
  • Added Polish translation (thx to elektronicznypank).
  • Added full support for the NES 2.0 header format.
  • Added video filter : "NTSC CRT LMP88959" and "NTSC NES LMP88959" (https://github.com/LMP88959/NTSC-CRT, Thx to LMP88959 for is great work).
  • Added video filter : "PAL CRT LMP88959" and "PAL NES LMP88959" (https://github.com/LMP88959/PAL-CRT, Thx to LMP88959 for is great work).
  • Added support to mapper : 100, 122, 157, 170, 272, 291, 311, 334, 354, 362, 366, 384, 421, 446, 471, 517, 551, 552, 555, 561.
  • Added support to UNIF mapper : Transformer, UNROM, AMROM, AOROM, LH09, A60AS, T4A54A, FC-28-5027, 150in1A, 212-HONG-KONG, GKCXIN, 113in1JY110, 820561C, M2C52A, S-2009.
  • Added full support for the Detach Barcode Reader of mapper 157.
  • Added support for FFmpeg 6.x libraries.
  • Added support for nes20db.xml and dip.cfg (many thx to NewRisingSun for his immense work).
    Both files will be distributed together with the emulator and will be located in the following directories:
    • Linux/BSD - {default system datadir}/puNES
    • Windows - directory where the executable is placed.
    if you want to use a more updated version than the one distributed with the emulator, just copy it either in the executable directory or in the working directory of the emulator, which can also be opened from the "File -> Open working directory" menu.
  • Added full support for Vs System (UniSystem and DualSystem).
  • Added a screen icon that shows when Fast Forwarding is active.
  • In Fullscreen the menu bar can be accessed by moving the mouse over the top of the screen.
  • Updated Italian, Chinese, French, Hungarian, Portuguese and Russian translation (thx to Alex Timonin, FlameMan, stgapr29, tch_oscomp, Matheus Scattolin Anselmo, owomomo, shinyoyo, githubsilver and Benjamin Siskoo).
  • Changed the "Toggle menu bar" shortcut to ESC.
  • Windows x86_64: Update to Qt5 5.15.8 (#279).
  • Fixed the management of keyboard input (#317).
  • Fixed map of one keyboard button to multiple controllers (#277).
  • Fixed FDS wavetable pitch (#295).
  • Fixed patching of IPS files.
  • Fixed crackling sound when audio is enabled/disabled.
  • Fixed Meta button recognition on some keyboard layouts.
  • Fixed many many many other bugs.

Posted: Thu Sep 02, 2010 5:05 am
by Mednafen
Possible name confusions:

fNES32
FrNES (it would look similar to fhnes if you went that route)

"nesquine" is free, though. ;)

Posted: Thu Sep 02, 2010 5:48 am
by FHorse
:? mmmmmm, maybe you're right Mednafen. I could also call Nesquick, what do you think? :)

Posted: Thu Sep 02, 2010 5:52 am
by blargg
Nope, that might be confused with QuickNES.

Given the number of NES emulators, I imagine all the names of 7 or fewer characters have already been taken :)

Posted: Thu Sep 02, 2010 6:05 am
by FHorse
And could be confused with a chocolate drink that Italy is called precisely Nesquick. :)
Well, how about "NESsuno"?
"NESsuno is perfect" that in italy would mean "nobody is perfect" :)

Posted: Thu Sep 02, 2010 6:11 am
by Mednafen
nestiny is seven letters and still available. :)

Posted: Thu Sep 02, 2010 6:23 am
by tepples
FHorse wrote:Well, how about "NESsuno"?
"NESsuno is perfect" that in italy would mean "nobody is perfect" :)
Shades of "NESten: Almost the real thing"

Posted: Fri Sep 03, 2010 12:38 am
by FHorse
and what you think of LochNESs? :)
Indeed, better "lookNES"

Posted: Fri Sep 03, 2010 3:43 am
by blargg

Posted: Fri Sep 03, 2010 5:17 am
by Near
blargg wrote:Given the number of NES emulators, I imagine all the names of 7 or fewer characters have already been taken :)
Given the number and frequency of new NES emulators, I think it would be wise to start naming ones emulator a GUID:
http://www.guidgenerator.com/

For instance, I am releasing today:
{2c441198-bec6-4889-8807-04c419aac03a}NES

It supports two mappers, but no sound or input. It is also an SDL window but it only builds and runs on Linux 2.4 kernels for some reason. It currently only displays the Super Mario and Tetris title screens, but the colors are wrong. I am only releasing this as a personal hobby, but hope to overtake Nestopia shortly. Yes, I'm being facetious :)

Seriously though, you don't have to work NES into the name, all the clever ones are taken anyway. It's fairly trendy to make up words that do not describe your app at all right now. Ristretto, Tomboy, Kaffiene, Brasero, VLC, Firefox, Scite, Eclipse, Bless, etc. If your app catches on, it becomes a positive asset. Just don't be stupid by picking a non-PC term like GIMP.
LochNES project page
Seems he gave up ten years ago, never released any binaries or code. Sounds like fair game to use that name to me :)

Posted: Fri Sep 03, 2010 7:23 am
by tepples
byuu wrote:It's fairly trendy to make up words that do not describe your app at all right now. Ristretto, Tomboy, Kaffiene, Brasero, VLC, Firefox, Scite, Eclipse, Bless, etc.
More info about this trend: Wikipedia article about trademark distinctiveness

Posted: Fri Sep 03, 2010 7:32 am
by Dwedit
Can you at least add ARGV support? Renaming a file to "rom.nes" is a terrible requirement.

Posted: Fri Sep 03, 2010 9:35 am
by tokumaru
byuu wrote:It supports two mappers, but no sound or input. It is also an SDL window but it only builds and runs on Linux 2.4 kernels for some reason. It currently only displays the Super Mario and Tetris title screens, but the colors are wrong. I am only releasing this as a personal hobby, but hope to overtake Nestopia shortly.
:lol: It happens too often, doesn't it?

Posted: Sat Sep 04, 2010 2:34 am
by FHorse
Dwedit wrote:Can you at least add ARGV support? Renaming a file to "rom.nes" is a terrible requirement.
You have absolutely right. Added. Links updated.

Posted: Sat Sep 04, 2010 11:24 am
by FHorse
byuu wrote: It supports two mappers, but no sound or input. It is also an SDL window but it only builds and runs on Linux 2.4 kernels for some reason. It currently only displays the Super Mario and Tetris title screens, but the colors are wrong. I am only releasing this as a personal hobby, but hope to overtake Nestopia shortly. Yes, I'm being facetious :)
Byuu, pleeeese, give me a chance :)