![]() ![]() I'll be kind and give FCEUX devs the benefit of the doubt and just say it's incomplete. On the other hand you could argue it's just incomplete. On one hand you could argue this is a hack. But just from looking at it, I can't help but think the developer just said "whatever, this fixes that game so it's good enough". It would be interesting to date this code to see if it was written before or after the post on the nesdev forums outlining this behavior. So it's kind of a fluke that this works at all. The logic here is a lot more complex than simply incrementing the PPU addr by 32 (as illustrated on the wiki page ). Increment_vs() //yes, even if we're moving by 32įCEUX, unlike NEStopia, does in fact acknowledge that behavior is different when rendering, but it doesn't even try to get the proper behavior right. NEStopia source indicates that it does not treat in-rendering PPU reads any different than out-of-rendering This is one of the more recent discoveries and was discovered after NEStopia 1.40 was released, so not surprisingly, NEStopia fails and glitches up during this game (near the end of level 1, when a cannonball hits the ground).įCEUX, somewhat surprisingly, emulates the game just fine without any glitching. I have no idea why, but the game apparently reads from the PPU I/O register ($2007) during rendering, which mangles the PPU address. Point goes to FCEUXĪnother edge case exposed by The Young Indiana Jones Chronicles. ![]() So yeah, NEStopia kind of fucks this up, and FCEUX does it right. But the emulation is there for anyone that wants it - just have to flip a switch. Since "old ppu" is the default in FCEUX, I don't know how many people actually use the new ppu. Though ultimately is appears to be a fluke that Micro Machines is working. I don't know if I'd call this a hack, as much as I'd call it a misrepresentation of the behavior. It's not exposing internal fetches as much as it's just exposing internal RAM. This is almost what it should be doing - but isn't quite right. Looking at the source, "old ppu" FCEUX doesn't even try to emulate this behavior: When "new ppu (slow!)" is selected, the shaking goes away. but only when "old ppu" is selected from the Config menu. FCEUX clearly glitches due to incorrect behavior here (screen shakes at the character selection screen). Micro Machines abuses this to find HBlank in order to do raster tricks. Reading from $2004 during rendering exposes the internal sprite fetches. I touched on this in the original thread. This is an edge case exposed by the game Micro Machines. I'm going to give NEStopia 2 points for this, since IRQ timing and cycle stealing are two different things. Rather than emulating the buffered sample fetch, it runs the DMC ahead a bit, then backtracks after the IRQ fires:Ĭpu.StealCycles( cpu.GetClock(cpu.IsWriteCycle(clock) ? 2 : 3) ) ĭma.address = 0x8000 | ((dma.address + 1U) & 0x7FFF) In this post, I am comparing Win versions of FCEUX 2.2.2 and NEStopia 1.40, which to my knowledge is the latest official release of each emu.ĭMC timing is very tricky, and a handful of Camerica games rely on reasonably strict DMC IRQ timing for split screen effects in some games, specifically Fire Hawk and the dreaded Mig-29 Soviet Fighter (one of the harder games to get working)īoth emus run the games correctly, but looking at the source, FCEUX cheeses it with a hack. But this might be fun and interesting nonetheless. This is far from an exhaustive list, and I am grossly oversimplifying by just assigning points to individual aspects. So did FCEUX catch up? Was I talking out of my ass? I decided to take a look into a lot of "gotchas" that plague NES emus which try to cut corners on accuracy. In that time, FCEUX has been in active development, while NEStopia has largely been idle. In my reply I made some bold claims and pretty much said "zomg NEStopia is the greatest thing ever omgomgomg", but I realized that opinion came largely from the state of the emulators ~7 years ago. Obscurumlux01 in another thread was curious about accuracy comparisons between FCEUX and NEStopia. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |