and stuff like castlevania and contra run like ass even when emulated cause the clock speed is shit.
Plenty of games ran smoothly, like Mario 3, Little Samson, and even The Flintstones.
I'm talking about the console itself, not the library, it's incapable of very basic physics processing and people had to go out of their way to code something playable on it. Castlevania is a barely playable game, the nes cannot calculate the arc of belmonts jump, there are a ton of frame skips and has very bad input delay for the attack.
You could throw TMNT into that list. Konami was shitty during the NES days, then they got their act together from SNES through PS2, then went back to being shitty.
There's also the terrible clock speed which is worse than the SNES somehow
7 year difference between release dates. The clock speed is fine for 1983. A desktop computer with a 4.77mhz Intel 8088 could cost as much as a used car at the time. The CPU in the NTSC NES is a Ricoh 2A03, which is a cheapo modified MOS 6502 with decimal mode removed, so you couldn't use floating point integers. This made a lot of math a hell of a lot more cumbersome to implement.
One advantage the NES had over everyone else was the proprietary, remarkably powerful (for 1983) Picture Processing Unit, at a time when just about every computer relied on the CPU to draw the picture while also being responsible for everything else. You can squeeze a lot more performance out of 1.79mhz when it's not responsible for rendering video.
A lot of Konami games of the era ran at 30fps, so the PPU just rendered the same frame twice, while the CPU took two frames to process whatever was happening, unlike many games that just needed one. Konami's code wasn't as efficient as it could be.
and instantly freezes when there's more than 4 moving entities on screen.
The NES can draw up to 8 sprites per scanline. If you go over that, it'll just overflow, not freeze. Some games pull a little trick where they have sprites flash on and off every frame to make it appear as though there are more than eight sprites on that scanline.