Here is my second proposal for the authors of GIME FPGA/CPLD devices: [https://tlindner.macmess.org/?p=1103]
As a reminder the first one was: [https://tlindner.macmess.org/?p=977]
This proposes adding a single hardware graphic cursor avaiable in both text and graphics modes. An emulated example is avaiable in this Mame feature branch in my fork: https://github.com/tlindner/mame/tree/ots
Here is an example program in BASIC to demo the feature:
10 WIDTH 40
15 ATTR 4,3
17 CLS
20 POKE &HFF97,2 ' SYNC=1: begin shape upload
30 FOR X=0 TO 15
40 READ A
50 POKE &HFF96,A
60 NEXT X ' after 16 bytes, $FF96 auto-reverts to position mode
70 CTRL = &HB1 ' EN=1, FG=palette1, BG=palette2, SIZE=1, (bit 2 now reserved)
80 POKE &HFF97,CTRL ' one-time setup - no need to repeat per move
81 ? "Hello World!"
86 PALETTE 1,RND(63)
87 PALETTE 2,RND(63)
88 X = JOYSTK(0)*9:LOCATE0,0
90 POKE &HFF96,X/255 ' X high bits (0-3)
100 POKE &HFF96,X AND 255 ' X low byte - smooth left/right
110 POKE &HFF96,JOYSTK(1)*3 ' Y position
120 GOTO 85
1000 DATA &H80,&H80,&H40,&H80,&H60,&H80,&H70,&H80,&H78
1010 DATA &H80,&H7C,&H80,&H7E,&H80,&H00,&HFF
And here is a minty fresh quicktime showing it off: