Finally my NES emulator on python can run some NES games after 5 days of fixing stuff. (~50 FPS)
I've found some insane optimization tricks that makes it possible for standard Python 3.11.9 to run NES CPU at PAL speed.
The project here: https://github.com/windowssandbox/NESemupy
I'll make more mappers and APU and fix PPU acting weird later. (It currently has NROM and ""broken"" MMC3 mappers)
Also can someone tell me why SMB2 crashes like that? because I've been trying to find a way to fix it but it won't go away. It must be a problem with how PRG rom is mapped for MMC3 ROMs or PRG bank switching for MMC3 ROMs is not working properly.