What is wrong with the NES Classic Edition noise emulation?

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

User avatar
nesrocks
Posts: 563
Joined: Thu Aug 13, 2015 4:40 pm
Location: Rio de Janeiro - Brazil
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by nesrocks »

Great Hierophant wrote:I'm sorry, what I meant to say is show me where a Youtube commentator indicates that the sound is wrong. You can clearly hear the muddy sound of the punches landing in DD2, but there is no comment from the guy that posted the video that this sounds wrong.
Oh sorry, didn't notice you are the OP. My confusion. Yeah, nobody is commenting about this anywhere pretty much, which is odd indeed.

Something I noticed today is that a great deal of the people commenting are actually too young to have played the NES back in the day, when it was new. I guess that time has arrived, we are the dinosaurs now.
https://twitter.com/bitinkstudios <- Follow me on twitter! Thanks!
https://www.patreon.com/bitinkstudios <- Support me on Patreon!
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by tepples »

On the other hand, it's been pointed out to me that Wii U and Nintendo 3DS use WebKit, and WebKit is LGPLv2, and Nintendo complies by distributing the source code as required. So if Nintendo is lawfully using WebKit, it can lawfully use blargg's filters under the same terms (LGPLv2).

But I don't see how Nintendo is distributing "the complete machine-readable 'work that uses the Library', as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library." In particular, the distribution "must include any data and utility programs needed for reproducing the executable from it." These "data and utility programs" appear similar to what LGPLv3 refers to as Installation Information, and if you have Installation Information, you have legit homebrew.
sleepy9090
Posts: 81
Joined: Fri Aug 22, 2008 10:04 am

Re: What is wrong with the NES Classic Edition noise emulati

Post by sleepy9090 »

LOL
They should have hired the guys on this forum for this project...
Near
Founder of higan project
Posts: 1553
Joined: Mon Mar 27, 2006 5:23 pm

Re: What is wrong with the NES Classic Edition noise emulati

Post by Near »

I'm just surprised anyone thought Nintendo would put out a good emulator. They're intent on doing everything emulation-related in-house and half-assed. Everyone was raving because this time they didn't completely rape the palette?? Seriously, that's the bar for greatness now?

It's truly stunning how cheap companies are about emulators. You could easily get a commercial license to any untold number of truly fantastic emulators (my NES emulator is not one of those) for probably $500. Hell there's probably way better MIT/ISC-licensed NES emulators out there. They didn't seem to mind lifting iNES headers and ROM dumps off the internet, why not a good emulator while you're at it?

What I find more upsetting, personally, is that the $60 NES Classic with its 30 games included ($5 each or $150 on the VC) is itself more powerful than both the Wii (okay, that's old) and the New 3DS (still for sale for $200). I understand their "innovative thinking through withered technology", but I'm getting pretty tired of being gouged to death on it. If you want to cut costs, pass -some- of those savings onto me. And after burning the entire Wii U lifetime without a single Zelda release, I think I'm going to skip the Switch, even if the BotW port is inferior on the U.
Great Hierophant
Posts: 780
Joined: Tue Nov 23, 2004 9:35 pm

Re: What is wrong with the NES Classic Edition noise emulati

Post by Great Hierophant »

I believe the NES Classic Edition uses the same CPU that was on the Raspberry Pi 2 Model B (prior to 1.2), a quad-core ARM Cotrex-A7 CPU. However, the Wii and the 3DS use a discrete GPU.
User avatar
Zepper
Formerly Fx3
Posts: 3262
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by Zepper »

Not being born at that time (1985) is NOT an excuse for masking a problem with the noise sound channel. Fact - there's no way of rebuilding the hardware of that time in nowadays (see TecToy's issue with the incoming 2017 Mega Drive console in Brazil -portuguese warning-), so they had to find out an intelligent solution. Digitally saying, the HDMI would be perfect for the Nintendo playing experience. The only way - emulation. The hardware? Open source code, Linux/Unix development running in a minimal hardware.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by tepples »

I encourage all who have Slashdot accounts to go spam up correct misconceptions in the Slashdot comments about this device.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: What is wrong with the NES Classic Edition noise emulati

Post by Drew Sebastino »

byuu wrote:I'm getting pretty tired of being gouged to death on it.
Reportedly, Nintendo is planning on selling the Switch for $300, at a profit, which is concerning me because even the Wii U with its "massively outdated" hardware sold at a loss, at least originally. I was never expecting this thing to be as powerful as the Xbox One or PS4, but its going to piss off a lot of people (maybe even including developers) if its going to be halfway between the Wii U and Xbox One in terms of power as people have been predicting. The ram amount falls directly in line with this (4 GB) although I think the Xbox One and PS4 had a ridiculous amount of ram compared to everything else. Nintendo seems to be much better at conserving ram for the operating system though, partially do to the fact that not as much is happening in the background, so I believe they'll reserve 1GB for ram, leaving 3GB for games, which I believe no Xbox One or PS4 game really uses more than (as in you would just have the game load more often, which could potentially be less of a problem with cartridges). I'm much more worried about GPU performance, although that hasn't been revealed. Nintendo is capable of making good looking games on their (as of the Wii) more limited hardware, but other developers, not quite. I was laughing to myself about how people were mystified Doom 4 ran so well (1080p, 60fps, next to no downgraded graphics) on the "weak" (according to the PC master race) Xbox One and PS4. It's just that Id knows how to program a good game.

I went way off topic... If the NES "Classic" is actually more powerful than the New 3DS though, than I'm astonished. I mean, why?
Zepper wrote:there's no way of rebuilding the hardware of that time in nowadays
I guess that has a lot to do with it. HDMI (as discussed in the thread with the idea I came up with) probably has a lot to do with it.
tepples wrote:I encourage all who have Slashdot accounts to go spam up correct misconceptions in the Slashdot comments about this device.
Wait, so this isn't? I'm confused.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by tepples »

Espozo wrote:I went way off topic... If the NES "Classic" is actually more powerful than the New 3DS though, than I'm astonished. I mean, why?
There's hardware in the New Nintendo 3DS that dates back to Game Boy Advance times, in particular the ARM7TDMI (ARMv4) CPU and 2D graphics core used in DS mode. Newer SoCs lack any requirement for native compatibility with games designed for old handhelds.
tepples wrote:I encourage all who have Slashdot accounts to go spam up correct misconceptions in the Slashdot comments about this device.
Wait, so this isn't? I'm confused.
Users of other boards may not follow NESdev BBS.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by rainwarrior »

thefox wrote:As long as we're complaining, the CRT mode doesn't look good on this thing. Looks like they just applied a horizontal sine-wave-like offset with a shader. They should've used blargg's library.
Looking a little more closely at it, it's not just a horizontal offset. There is some kind of attempt to simulate the colour artifacts, and it does seem to have a repeating 3 line pattern like it should. It looks really bad, and the horizontal displacement is horribly emphasized, but it does seem like they sort of tried to emulate NTSC a little bit, and weren't just doing random nonsense. ;)
nes_classic_crt_filter.png
User avatar
zeroone
Posts: 939
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by zeroone »

tepples wrote:And if anyone reading this isn't aware of the implications of using LGPL software in closed platforms:

Programs using LGPL libraries must be distributed "under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications". For one thing, this explicitly permits mods of some sort, and Nintendo has historically called mods "criminal activity", in particular with respect to Project M and around the release of Super Mario Maker. For another, Nintendo would have to either
  1. provide the Corresponding Application Code (tht is, the proprietary parts) to the owner of each NES Classic Edition console in a form that can be combined with a modified version of the library, such as .o files, or
  2. package blargg's library as a shared library, such as a .dll or .so.
Either way, the user could add a "feature" to the library that allows loading ROMs from outside.

On the other hand, Nintendo could have implemented its own NTSC encoder and decoder.
LGPL libraries can be redistributed in commercial products, even ones that are released under a difference license, as long as the library remains in the same form that the creator of the library distributes it. Furthermore, the commercial product can do software signature checks to ensure that its distributed libraries have not been tampered with. Such checks will keep the product in compliance with LGPL and it will also deter attempts to hack the product via library substitution. Ideally, the signature checks will be built into hardware to make it even more difficult.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by tepples »

Per LGPLv2.1, an application using an LGPL library in shared library form must do the following:
Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
As I read this, software signature checks disqualify a "suitable mechanism" because the application will not "operate properly with a modified version of the library".
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: What is wrong with the NES Classic Edition noise emulati

Post by calima »

Key words "if the user installs one". If the chip is read-only, or signed and checked by a bootloader, they cannot install one.

This is the Tivoization that is prevented by both GPLv3 and LGPLv3. The program would operate correctly if there wasn't this external mechanism blocking the user from installing a new library ;)
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by tepples »

Then the bootloader itself would disqualify the "suitable mechanism". Shipping on actual mask ROM is OK because the user cannot physically install updates, but if the user can overwrite sectors, the user can install modified library files. It's explicit in LGPLv3 with its "Installation Information" clause, but present implicitly in LGPLv2.

This is as much flash as the Wii has.
User avatar
zeroone
Posts: 939
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: What is wrong with the NES Classic Edition noise emulati

Post by zeroone »

tepples wrote:Per LGPLv2.1, an application using an LGPL library in shared library form must do the following:
Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
As I read this, software signature checks disqualify a "suitable mechanism" because the application will not "operate properly with a modified version of the library".
(1) and (2) above define how a library can be redistributed. The library should be in the form that it could be downloaded from the originator of the library. And, one such proof of that is if the originator provided a different version that was interface-compatible, then it should in principle be swap-able. But, it does not mean that the software using the library must permit alternate versions of the library to load.
tepples wrote:Then the bootloader itself would disqualify the "suitable mechanism". Shipping on actual mask ROM is OK because the user cannot physically install updates, but if the user can overwrite sectors, the user can install modified library files. It's explicit in LGPLv3 with its "Installation Information" clause, but present implicitly in LGPLv2.

This is as much flash as the Wii has.
The hardware is not designed like a general purpose computer. A user cannot without considerable effort modify any of the internal software.
Post Reply