that being said, i think there is an issue with the mouse handler ... This routine worked flawlessly on the R38.
I'm in the middle of an interrupt service routine where i execute the following code:
The registers $22 till $25 should contain the mouse x and y coordinates after the cx16_mouse_get call.
But they stay 0.
Some additional notes: I've been debugging and found that the memory locations A026 and beyond are not updated when walking the $FF6B API code flow, using the emulator debugger.
So in the API code, these memory locations are read, and then there is an sta ($00),x which is storing these contents in the zeropage $00 indexed by x, which has value $22 at the time of this execution. Bank RAM register $00 is zero, so it is reading from $00:A026, $00:A027, $00:$A028, $00:$A029 and writing into $22, $23, $24, $25. All values read and written are zero.
I guess this is because it seems that the mouse pointer cannot be moved. The graphics mode that is active at time of execution on the VERA is on layer 0 a tile mode, 16x16, 64x64 tile map. On layer 1 a tile (character) mode, 8x8 tiles, 64x64 tile map.
Could it be that the revised mouse configuration and coordinate limit system has a bug?
I've attached my SDCARD where the game prototype is installed.
CX16.zip Can you please try to find what is the problem?
- Run x16emu attaching this CX16.vhd.
- Load in the emulator
equinoxe-flightengine.prg.
- run the program
You'll first the diagnostics when loading the sprites and tiles.
Put a couple of key presses and the scrolling should start, but the mouse is not moving.
The player plane is 'for the moment' attached to the mouse position.