Hi All,
Hopefully nobody has problem with the idea another thread to be created here so I can post news on Xemu (in relation of C65 and/or M65 emulator, since Xemu is about more others too, even not related to C= at all). These news are always related to the latest source in my (!!) github repository, master branch (if it's not stated otherwhise). Though, I have some binary builds in bintray, it's not always up-to-date to the sources. "In C65" (or M65) emulator means, that it's related to that emulator only, not the other. Surely it often means it will be (especially in the case that many things are easier to test/develop in the C65-only emu first, before M65).
Ok then:
* As I've noted already (in another topic), there are some window borders now in C65 emulator. As VIC3 core in Xemu/C65 is scanline level precision only, you can't expect more though, than the ability to change colours (both of border and background) at every scanlines but not within a scanline.
* Preliminary C1351 mouse support in the C65 emulator, it's highly problematic currently though
* OSD-framework I plan to use later even for menus etc maybe (currently used only in the C65 emulator, at one point, see below)
To test the mouse support, I suggest get a newer C65 ROM which knows BASIC keywords like "MOUSE". 911001.bin seems to be OK. However it also needs the "new DMA behaviour". Xemu does not fully support it, only a light hack which allows the newer ROM to be used at least. So in nutshell, you need to say something like this to launch Xemu/C65 (for the ROM, you need to give the full path if it's not in the current directory etc etc, xc65.native here is only the name of the Xemu/C65 binary itself):
xc65.native -rom 911001.bin -dmarev 1
Do not forget the -dmarev 1 switch ...
Now, enable mouse pointer/tracking in BASIC with:
MOUSE ON
Please note, that maybe you would need a decent sprite shape for mouse pointer, but anyway, hopefully you see something, if no other than a black box or whatever the sprire pointers and the pointed memory area contains.
At this point, it won't move, since you need to enter "mouse grab" mode to allow Xemu's SDL event loop to grab the mouse and send the events. So click on the emulator window somewhere with the left mouse button.
Now, you see the OSD feature as well, telling that mouse grab mode is ON (that is, you can't see the normal "PC" mouse cursor etc etc), and you can exit with pressing ESC. The OSD notification fades away autmatically.
You can try to move your mouse now. As you can see, there are some ugly glitches etc, but honestly the 1351 mouse emulation is extra ugly currently, I wouldn't even call an emulation here too much :-D
Surely, you can press ESC on the keyboard to leave mouse grab mode at any time.
The HID layer of Xemu is a bit chaotic (surprise, surprise ...), so there are odd things. Like, Xemu supports joystick emulation with an USB joystick/game controller (I tested with an Xbox controller btw, and worked even on a raspberry Pi connected to), or with the numeric keypad. However, for USB joy, only the first two axes are supported, and it's hard to know which control belongs to that on different controllers/joys :( Secondly, the joystick emulation is for control port 1 or 2, and you can select it with ENTER key on your numeric keypad. It also affects mouse emulation, since 1351 buttons are handled the same way as joy direction UP and the FIRE. So if you want to test 1351 with mouse buttons as well, you may need to switch between joy ports with keypad ENTER. Also, currently it's not limited that CIA in fact can select which control port is routed to SID POT's what is used, but it's not a big deal now. Also, for real, in C65 only one SID is used for control ports POT stuffs, it's not the case with Xemu/C65 currently. And so on :)