tonioni / WinUAE

WinUAE Amiga emulator
http://www.winuae.net/
528 stars 86 forks source link

Update physical addresses and timing w/cache burst #232

Closed Waccoon closed 1 year ago

Waccoon commented 1 year ago

Cache burst fill had wrong timing (memory delays added twice) and used logical address rather than physical address for memory bank checks. More work still needed to properly handle memory burst timing. Tested new MMU addressing with NetBSD 9.3 and Enforcer.

tonioni commented 1 year ago

Surprising that 68030 MMU + prefetch/cache emulation even works :) 68030 MMU is really complex and on the "wrong" side of cache and it is impossible to have really accurate timing without knowing how 68020/030 microcode works. 68040+ MMU emulation is much more simpler.

Waccoon commented 1 year ago

Yeah, I've wondered for a while why enabling MMU/EC mode makes the CPU run twice as fast as the base mode (and much faster than real hardware). I've been looking into fixing some timing issues, but it's likely this stuff falls into the "nobody cares" category, and I don't want to risk breaking anything.