M65 project status

LGB edited this page Jan 4, 2017 · 15 revisions

Github issues page

Hardware emulation features

Feature Status Comments
HARDWARE FEATURES
Full 65CE02 CPU opcode set DONE 6502/65C02 (with Z=0) test suite passes, decimal mode test OK
4510/C65 CPU, MAP/EOM over 65CE02 features DONE
4510GS/M65 CPU: 32 bit load/store DONE
4510GS/M65 CPU: 32 bit far call/return TODO
C65 MAP support DONE
M65 MAP extensions DONE Should be tested, checked
C65 VIC-3 $30 ROM mapping DONE
M65 hypervisor memory mapping DONE Hypervisor memory can be only accessed in hypervisor mode even with flat 32 addressing
M65 hypervisor state save/restore ALMOST DONE? Should be tested, maybe not fully complete!
M65 hypervisor trapping MAYBE DONE Checking for all possibilities should be done!
M65 boot test (original SD image) PASSING
M65 internal 28-bit linear addresses DONE However it can be optimized later for speed
I/O mapping INCOMPLETE No distinct areas in MB=$FF for different I/O modes
Slow RAM area UNKNOWN I have not enough information how "ROM/RAM shadowing" works exactly, the current implementation seems allow kickstart to load C65 ROM by itself, and boot into C65 mode though
CPU speed control MISSING C65 CPU speed is supported only, with the exception of "average" slow-down for C64 mode
CIA speed/clock PARTLY DONE "CIAs" (actually part of 4510) get always ~1MHz clock now, however the the time resolution of timers are only 64usec (one scanline for VIC)
CIA emulation PRIMITIVE Only sufficient for IRQ generation (primarily for C64 mode) and KBD scan. CIA-2 supports NMI generation
DMAgic PARTLY DONE Supports for M65 full memory map. MIX/SWAP special operations can be wrong! No emulator control over long DMA operation. Unknown, if DMA operation can be "paused" in case of IRQ/NMI/possible hypervisor trap. May affect the C65 emulator as well.
SID/audio INCOMPLETE SIDs are emulated with the webSID project code base, but sync is totally wrong, so the result is kinda of well ... "interesting"
Generic VIC features INCOMPLETE Scanline-based emulation (it was "full frame in once" theory before which was really bad), no border is emulated, max of 200 lines, max of 640 pixels per scanlines.
VIC-2 features INCOMPLETE Things should be more or less OK, however there is no scroll, no border, 38/24 mode, emulation is raster-line based precision only
VIC-X sprites BAD Currently sprites cannot be "behind" the gfx/text, and no raster tricks would work at all (like sprite multiplexing, etc)
VIC-3 bitplane modes INCOMPLETE Supported (320*200/256 colour mode works with 8 bitplanes), however interlacing etc is not supported, Sprites+bitplane modes are totally untested, bitplane mode with hardware attributes is not supported
VIC-3 other features PARTLY DONE No V400, no interlace, no H1280, no screen positioning ... H640 should work (for legacy modes and bitplane modes as well). No HW DAT. Hardware attributes at least in text mode is supported.
VIC-4 16 bit text mode TODO Merely enough to show boot logo and KS screen
VIC-4 advanced sprites TODO
Ethernet TODO Hard to do, or must be done in an OS-specific way, maybe Windows cannot be supported (by me ...)
D81 mounting DONE/TESTING
SD card read access DONE However no BUSY-state, it's "ready" with no emulated CPU time passed
SD card write access TODO
F011 (disk) read WORKS/TESTING Seems to work in both of C65/M65 emulators
F011 (disk) write PROBLEMS C65 emulator works, M65 doesn't so much. However the real M65 has issues here as well.

Emulator specific features

Feature Status Comments
Command line DONE Command-line framework is implemented on project level
Config file TODO Supporting configuration file is possible now with the command line interface's parser, but some developments are needed ...
Snapshot WORKS, INACCURATE Snapshot framework on project level, hw emu components have savers/loaders
OSD TODO There is some OSD-specific feature in Xemu, but not used currently at all
JS/HTML target PRE-ALPHA Able to compile things for the "web" instead of native app. Cannot be done without hacks in the source. Maybe not every emulators will support this ever (eg M65 emulator needs just too big data structures for this, C65 emulator would be OK)
Native GUI elements TODO For at least file selector boxes, native host OS GUI window should be used. It's done in the already merged Xep128 (ep128 target) but not for OSX (Linux, using GTK3 and Windows native UI). Not used in Xemu yet, other than the Xep128 target.
Emulator menu system TODO Maybe via OSD-stuff or such (other than the file selector?) in the future.

Compatibility tests

Software Status Comments
Kickstart booting WORKS Missing scanline-based and border emulation won't show the "stripped border" though during the SD card init
C65 ROM WORKS
Raster65 AWFUL Missing scaling/scrolling features, no faster CPU emulation, very slow, etc
GEOS FAILING Hangs on disk I/O even with the C65/M65 specific drivers for KERNAL
Synthmark64 WORKS However the result may or may not correct even for C64 mode default settings
Bouldermark MOSTLY OK Works, but missing fine scroll VIC-II feature makes scrolling ugly
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.