{"id":1114,"date":"2026-08-08T17:42:05","date_gmt":"2026-08-08T17:42:05","guid":{"rendered":"https:\/\/tlindner.macmess.org\/?p=1114"},"modified":"2026-08-08T17:51:07","modified_gmt":"2026-08-08T17:51:07","slug":"one-true-sprite-proposal","status":"publish","type":"post","link":"https:\/\/tlindner.macmess.org\/?p=1114","title":{"rendered":"One True Sprite Proposal"},"content":{"rendered":"<p>Here is my second proposal for the authors of GIME FPGA\/CPLD devices: [<a href=\"https:\/\/tlindner.macmess.org\/?p=1103\">https:\/\/tlindner.macmess.org\/?p=1103<\/a>]<\/p>\n<p>As a reminder the first one was: [<a href=\"https:\/\/tlindner.macmess.org\/?p=977\">https:\/\/tlindner.macmess.org\/?p=977<\/a>]<\/p>\n<p>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: <a href=\"https:\/\/github.com\/tlindner\/mame\/tree\/ots\">https:\/\/github.com\/tlindner\/mame\/tree\/ots<\/a><\/p>\n<p>Here is an example program in BASIC to demo the feature:<\/p>\n<pre><code class=\"lang-basic language-basic basic\">10 WIDTH 40\n15 ATTR 4,3\n17 CLS\n20 POKE &amp;HFF97,2                 &#039; SYNC=1: begin shape upload\n30 FOR X=0 TO 15\n40 READ A\n50 POKE &amp;HFF96,A\n60 NEXT X                        &#039; after 16 bytes, $FF96 auto-reverts to position mode\n70 CTRL = &amp;HB1                   &#039; EN=1, FG=palette1, BG=palette2, SIZE=1, (bit 2 now reserved)\n80 POKE &amp;HFF97,CTRL              &#039; one-time setup - no need to repeat per move\n81 ? &quot;Hello World!&quot;\n86 PALETTE 1,RND(63)\n87 PALETTE 2,RND(63)\n88 X = JOYSTK(0)*9:LOCATE0,0\n90 POKE &amp;HFF96,X\/255             &#039; X high bits (0-3)\n100 POKE &amp;HFF96,X AND 255        &#039; X low byte - smooth left\/right\n110 POKE &amp;HFF96,JOYSTK(1)*3      &#039; Y position\n120 GOTO 85\n1000 DATA &amp;H80,&amp;H80,&amp;H40,&amp;H80,&amp;H60,&amp;H80,&amp;H70,&amp;H80,&amp;H78\n1010 DATA &amp;H80,&amp;H7C,&amp;H80,&amp;H7E,&amp;H80,&amp;H00,&amp;HFF<\/code><\/pre>\n<p>And here is a minty fresh quicktime showing it off:\n<div style=\"width: 584px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1114-1\" width=\"584\" height=\"436\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/tlindner.macmess.org\/wp-content\/uploads\/2026\/08\/ots.mp4?_=1\" \/><a href=\"https:\/\/tlindner.macmess.org\/wp-content\/uploads\/2026\/08\/ots.mp4\">https:\/\/tlindner.macmess.org\/wp-content\/uploads\/2026\/08\/ots.mp4<\/a><\/video><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>Here is my second proposal for the authors of GIME FPGA\/CPLD devices: [<a href=\"https:\/\/tlindner.macmess.org\/?p=1103\">https:\/\/tlindner.macmess.org\/?p=1103<\/a>] As a reminder the first one was: [<a href=\"https:\/\/tlindner.macmess.org\/?p=977\">https:\/\/tlindner.macmess.org\/?p=977<\/a>] This proposes adding a single hardware graphic cursor avaiable in both text and graphics modes. An emulated example is &hellip; <a href=\"https:\/\/tlindner.macmess.org\/?p=1114\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1114","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts\/1114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1114"}],"version-history":[{"count":8,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts\/1114\/revisions"}],"predecessor-version":[{"id":1123,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts\/1114\/revisions\/1123"}],"wp:attachment":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}