|[hatari-devel] MMU/SSW handling?|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
Is somebody still looking into MMU emulation?
There's some discussion about NeoGEO emulator for Falcon:
It would need several SSW register bits working correctly:
The main and most important feature used by this emulator is the MMU and
the "Bus Fault Recovery" capability (please refer to the "MC68030 User's
Manual", Section 8.2) so you need at least a MC68030 or better. Actually
this emulator will currently run only on a MC68030 because the MMU handling
is different on the other CPUs.
The MMU table is used to reproduce the NEO GEO memory map so that the game
code runs in the original place (of course). The NEO GEO specific hardware
registers are also mapped appropriately but they are marked as "invalid" MMU
descriptors. Accessing those addresses will cause a bus error.
The important SSW flags in use are: DF, RW and SIZE. The emulator routine
clears the DF in order to emulate the functionality. For example in case of
a read access (RW == 1) it writes the desired data value (of size SIZE) to
the appropriate stack frame address and returns normally with RTE.
That could be an interesting test-case for the MMU emulation. :-)