puNES Emulator

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Post Reply
FHorse
Posts: 232
Joined: Sat May 08, 2010 9:31 am

puNES Emulator

Post 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.
Last edited by FHorse on Tue Feb 27, 2024 8:13 am, edited 135 times in total.
Mednafen
Posts: 60
Joined: Wed Sep 13, 2006 12:45 pm

Post by Mednafen »

Possible name confusions:

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

"nesquine" is free, though. ;)
FHorse
Posts: 232
Joined: Sat May 08, 2010 9:31 am

Post by FHorse »

:? mmmmmm, maybe you're right Mednafen. I could also call Nesquick, what do you think? :)
User avatar
blargg
Posts: 3715
Joined: Mon Sep 27, 2004 8:33 am
Location: Central Texas, USA
Contact:

Post 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 :)
FHorse
Posts: 232
Joined: Sat May 08, 2010 9:31 am

Post 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" :)
Mednafen
Posts: 60
Joined: Wed Sep 13, 2006 12:45 pm

Post by Mednafen »

nestiny is seven letters and still available. :)
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post 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"
FHorse
Posts: 232
Joined: Sat May 08, 2010 9:31 am

Post by FHorse »

and what you think of LochNESs? :)
Indeed, better "lookNES"
User avatar
blargg
Posts: 3715
Joined: Mon Sep 27, 2004 8:33 am
Location: Central Texas, USA
Contact:

Post by blargg »

Near
Founder of higan project
Posts: 1553
Joined: Mon Mar 27, 2006 5:23 pm

Post 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 :)
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post 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
User avatar
Dwedit
Posts: 4921
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

Can you at least add ARGV support? Renaming a file to "rom.nes" is a terrible requirement.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post 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?
FHorse
Posts: 232
Joined: Sat May 08, 2010 9:31 am

Post 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.
FHorse
Posts: 232
Joined: Sat May 08, 2010 9:31 am

Post 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 :)
Post Reply