I wanted to give an update since it was asked...
I am no longer attempting to port Frodo, I am writing a new emulator from scratch. The new emulator is currently called "ECh64" and it is an emulation of the
Chameleon 64
The bad news is that it will take longer, as I am simultaneously working on it for Windows, Linux and DSTWO (by making I/O seperate from the machine emulation)..
The good news is that when its done it will be more like an OS that also emulates a C64. You can read the link for what Chameleon 64 is and I will echo what the features I am planning to place in the DSTWO port (the Windows/Linux ports will have everything..)
My code is being split into non-platform specific (the emulator itself) and platform specific code (The user interface). My goal right now is to make ECh64 for Windows first, then change the platform specific code for DSTWO and others. Because the UI is really just a bunch of glue, it should be fast to write that part. Probably using LibBAG for the I/O layer.
* The extended VIC-II emulation
All features of Extended VIC will be emulated, including 256 color modes, and 256 BlOB (sprite) modes.
Also a 256x192 DS native mode will be supported. Modes over 256x192 will be scaled, probably with LibBAG method.
* 8 megabyte REU (In DSTWO RAM, normal chameleon is 16mb REU, however I need to save some space for the emulator itself, so 8 megabytes is reserved for the MIPS code and data)
* 4 megabytes GEORAM will be emulated.
* MMU allowing access to 24 Mbyte DSTWO emulation area using 4 KByte blocks.
* Turbo function with full 6510 emulation and illegal opcodes, speed modes will be 1mhz, 2mhz, and Fastest possible (which will vary on emulation speed)
I am planning to write the 6510 core in MIPS Assembler to squeeze every last cycle out of it.
* DLDI access (software compatible with MMC64)
* Cartridge emulator with support for everything a real Chameleon 64 has
* Diskdrive emulation (1541 compatible, so fastloaders/speeders will work) -- Note that during disk access Turbo modes will slow down due to the additional CPU emulation.
* Keyboard and mouse emulation on touchscreen and DS controls, bottom screen will be reserved for emulator, not the Ch64 environment.
* 16 MBytes of user writable flash rom for firmware updates and storage of custom roms - Like Chameleon 64, but will be a flatfile on the MicroSD.
* Stereo SID chip emulation
* If DSTWO team ever gets their act together and gives us wifi access, RR-NET emulation will be supported over WiFi.
* Possible: Extended BASIC interpreter exposing additional features to users of Chameleon 64 and ECh64 emulators.
By doing this I feel not only do we get a good C64 emulator but we get a neat environment to create new apps in. Not to mention it'd just be more interesting for me to code. For all the work I have to do to get Frodo working in DSTWO, might as well do something right.
At this time I am not planning on cycle-exact emulation, but I am planning on instruction-exact emulation, which means I/O will be updated after every instruction, not mid-instruction. This may result in less then perfect emulation but you should be able to still see all mid-scanline effects and the speed will be excellent. For well over 99% of purposes this will work well. Perhaps I will add a cycle-exact core into the emulation but the overhead may be unacceptable. However, maybe with the power of DSTWO it won't matter.