<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[I want to do some more stuff with Apricot graphics.]]></title><description><![CDATA[<p>I want to do some more stuff with Apricot graphics. See, the thing is, these computers don't really _have_ graphics. What they have is a character mode with 16x16 pixel cells. Every pixel is addressable, but every pixel exists inside redefinable character memory, so you have to know where the particular character is in memory to modify its pixels. Which means there's different ways you can map the "characters" to the screen.</p><p>I had originally set this up in the usual way, with each cell following the next in rows and columns. But I realized much later that if you arrange the character cells in columns, every column becomes a contiguous region of 16-bit words. The math becomes simpler, and the whole thing runs faster.</p><p><a href="https://awesome.garden/tags/Aprilcot" rel="tag">#<span>Aprilcot</span></a></p>]]></description><link>https://board.circlewithadot.net/topic/39932283-2515-4f98-a4d3-28dad3f21e07/i-want-to-do-some-more-stuff-with-apricot-graphics.</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 07:46:29 GMT</lastBuildDate><atom:link href="https://board.circlewithadot.net/topic/39932283-2515-4f98-a4d3-28dad3f21e07.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Apr 2026 17:20:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Wed, 29 Apr 2026 00:19:33 GMT]]></title><description><![CDATA[<p>It's honestly kind of weird that this doesn't work, because MAME also includes an emulation for the iSBC 215 disk controller, which also uses the 8089. Maybe it doesn't work either. <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f610.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--neutral_face" style="height:23px;width:auto;vertical-align:middle" title=":|" alt="😐" /></p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116485126459347734</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116485126459347734</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Wed, 29 Apr 2026 00:19:33 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Wed, 29 Apr 2026 00:09:55 GMT]]></title><description><![CDATA[<p>Guess who found a bug in MAME? Getting my ducks in a row here, this is just doing a pointer load so I can get the address of the pixels I want to copy, then copying something from that memory to the X and Y parameters.</p><p>lpd ga, [pp].8<br />mov gb, [ga].4<br />mov [pp].4, gb<br />mov [pp].6, [ga].6<br />hlt </p><p>The first one is done by MOVing into the GB register first, then from GB to memory. The second one uses the 8089's memory-to-memory MOV. And it turns out MAME's 8089 core doesn't implement mem-mem MOV correctly, leaving zero in the Y parameter instead of 7. I thought I was going mad!</p><p><a href="https://awesome.garden/tags/Aprilcot" rel="tag">#<span>Aprilcot</span></a></p>

<div class="row mt-3"><div class="col-12 mt-3"><img class="img-thumbnail" src="https://awesome.garden/system/media_attachments/files/116/485/060/184/783/212/original/d8039df770873b0b.png" alt="Link Preview Image" /><img class="img-thumbnail" src="https://awesome.garden/system/media_attachments/files/116/485/071/060/631/330/original/6fc5f9777d358867.jpeg" alt="Link Preview Image" /></div></div>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116485088560812263</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116485088560812263</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Wed, 29 Apr 2026 00:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 17:05:32 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> nice! It kind of reminds me of the VIC20 hires mode.</p>]]></description><link>https://board.circlewithadot.net/post/https://mastodon.sdf.org/users/davbucci/statuses/116483419862383514</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mastodon.sdf.org/users/davbucci/statuses/116483419862383514</guid><dc:creator><![CDATA[davbucci@mastodon.sdf.org]]></dc:creator><pubDate>Tue, 28 Apr 2026 17:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 16:14:09 GMT]]></title><description><![CDATA[<p><span><a href="/user/sverx%40mastodon.gamedev.place">@<span>sverx</span></a></span> Oh, I do also have some code up for the game I made last year: <a href="https://git.bytex64.net/where-is-owl/" rel="nofollow noopener"><span>https://</span><span>git.bytex64.net/where-is-owl/</span><span></span></a></p><p>No sprites or complex graphics, though. That one’s just character cell manipulation.</p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116483217765569704</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116483217765569704</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 16:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 16:09:46 GMT]]></title><description><![CDATA[<p><span><a href="/user/sverx%40mastodon.gamedev.place">@<span>sverx</span></a></span> Not at the moment, but I’ll try to publish the source at the end of the month.</p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116483200519244332</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116483200519244332</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 16:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 16:06:25 GMT]]></title><description><![CDATA[<p><span><a href="/user/drj%40typo.social">@<span>drj</span></a></span> Oh that’s interesting. <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116483187350111433</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116483187350111433</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 16:06:25 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 10:12:05 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> <br />I am always tickled when column graphics, like wallpaper, are rediscovered.</p>]]></description><link>https://board.circlewithadot.net/post/https://sunny.garden/users/spodlife/statuses/116481794068579414</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://sunny.garden/users/spodlife/statuses/116481794068579414</guid><dc:creator><![CDATA[spodlife@sunny.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 10:12:05 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 08:55:25 GMT]]></title><description><![CDATA[<p><span><a href="/user/elithebearded%40fed.qaz.red">@<span>elithebearded</span></a></span> Sparkling sugar water or pixels, that's the question.<br /><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span></p>]]></description><link>https://board.circlewithadot.net/post/https://todon.eu/users/menos/statuses/116481492623103056</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://todon.eu/users/menos/statuses/116481492623103056</guid><dc:creator><![CDATA[menos@todon.eu]]></dc:creator><pubDate>Tue, 28 Apr 2026 08:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 08:27:53 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> is there some place where I can read the operations you're doing? or the source code? thanks! <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title="😄" alt="😄" /></p>]]></description><link>https://board.circlewithadot.net/post/https://mastodon.gamedev.place/users/sverx/statuses/116481384338014608</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mastodon.gamedev.place/users/sverx/statuses/116481384338014608</guid><dc:creator><![CDATA[sverx@mastodon.gamedev.place]]></dc:creator><pubDate>Tue, 28 Apr 2026 08:27:53 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 08:25:32 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> as i understand it, this is quite similar to how the DSP in the N64 gets shared between pixel rasterising of triangles and mixing sound samples: every 5ms (that is, more than once a frame) the regular "pixel blatting" microcode in the DSP gets replaced with "audio mixing" and run.</p>]]></description><link>https://board.circlewithadot.net/post/https://typo.social/users/drj/statuses/116481375081450414</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://typo.social/users/drj/statuses/116481375081450414</guid><dc:creator><![CDATA[drj@typo.social]]></dc:creator><pubDate>Tue, 28 Apr 2026 08:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 08:21:05 GMT]]></title><description><![CDATA[<p><span><a href="/user/elithebearded%40fed.qaz.red">@<span>elithebearded</span></a></span> <span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> "hardware sprites" is a term of art, so i'm gonna go with Yes.</p>]]></description><link>https://board.circlewithadot.net/post/https://typo.social/users/drj/statuses/116481357599126713</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://typo.social/users/drj/statuses/116481357599126713</guid><dc:creator><![CDATA[drj@typo.social]]></dc:creator><pubDate>Tue, 28 Apr 2026 08:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 07:10:10 GMT]]></title><description><![CDATA[<p>Part of the magic of what's happening in the assembly above is upon task start, the address of the Channel Parameter Block gets loaded into the PP register in the 8089. It makes it very handy to reference any of those parameters, and the 8089 code doesn't need to know ahead of time where your parameters are. IIRC all the call/jump instructions are signed displacement, so the code is fairly naturally position-independent as well.</p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116481078761922850</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116481078761922850</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 07:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 06:58:45 GMT]]></title><description><![CDATA[<p>So it's a little convoluted, but it does make it simple to interleave lots of 8089 programs running under the supervision of different parts of the system. You just wait for a channel to not be busy, load the CCB with the address of your own CPB, and let 'er rip. If a higher priority task needs a channel but one is not available, it can pause a running task, save the CCB info, swap in its own task, run that, swap the old one back in, and continue it. AFAIK nothing in the Apricot system does this, and it's probably moot anyway since the way the 8089 is implemented shares the bus with the CPU, so the 8086 can't make much progress while the 8089 is running, anyway.</p><p>Apricot typically uses channel 1 for the floppy drive controller. I've read somewhere that channel 2 is used by the Winchester controller, but as far as I've seen in the emulated system, that's not the case. I've also read that the system will run without an 8089, so probably there are some Apricots out there without them.</p><p><a href="https://awesome.garden/tags/Aprilcot" rel="tag">#<span>Aprilcot</span></a></p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116481033894540645</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116481033894540645</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 06:58:45 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 06:49:38 GMT]]></title><description><![CDATA[<p>I should probably explain a little bit about the interface to the 8089. Early in the system initialization, the CPU tells the IOP to read the address of a System Configuration Block from the top of ROM. That address is right next to the 8086 reset location at FFFF8h, so if you've ever wondered what those unused bytes were, that's what they're for! This sets up the Channel Control Block, which defines the locations and parameters for executing Channel Parameter Blocks, which define a pointer to the 8089 machine code and parameters to the task. When the 8089 gets a "channel attention" (on the Apricot connected to I/O ports 70h and 72h), it re-reads the CCB for the signaled channel and starts/stops any tasks defined there.</p><p><a href="https://awesome.garden/tags/Aprilcot" rel="tag">#<span>Aprilcot</span></a></p>

<div class="row mt-3"><div class="col-12 mt-3"><img class="img-thumbnail" src="https://awesome.garden/system/media_attachments/files/116/480/952/772/351/204/original/bbde4fffe987a313.png" alt="Link Preview Image" /></div></div>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116480998008775617</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116480998008775617</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 06:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 06:35:51 GMT]]></title><description><![CDATA[<p>But anyway, with that worked around, invoking the 8089 from Pascal seems to work. The code here is very simple:</p><p>MOVI GA, 1<br />ADD [PP].4, GA<br />HLT</p><p>It just adds 1 to the word at offset 4 in the parameter block. The first two words point to the code itself, so the third one is where parameters live. The Pascal code that invokes it just sets that to 0, and the output below shows that it has been changed, and then dumps the state of the 8089 Channel Control Block.</p><p><a href="https://awesome.garden/tags/Aprilcot" rel="tag">#<span>Aprilcot</span></a></p>

<div class="row mt-3"><div class="col-12 mt-3"><img class="img-thumbnail" src="https://awesome.garden/system/media_attachments/files/116/480/921/456/284/139/original/b190c22225fda1f5.png" alt="Link Preview Image" /></div></div>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116480943842902310</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116480943842902310</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 06:35:51 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 28 Apr 2026 06:24:39 GMT]]></title><description><![CDATA[<p>We've maxed out the CPU, but the Apricot has another trick - the 8089. It's a dedicated I/O coprocessor, and theoretically it can push bytes even faster than the CPU. If... I can get it working.</p><p>I've discovered the hard way that Turbo Pascal is really picky about what it can link with. It _only_ wants to link with external functions. If the OBJ file you're linking with has _any_ data segment symbols, it flat out refuses to deal with it. At first I thought this was a subtle bug in how asm89 generates OMF files, but it does the same with a C file compiled with Turbo C. And since asm89 defines the 8089 machine code symbols as data (which I think is correct from the POV of the CPU), it just doesn't work. <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f615.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--confused" style="height:23px;width:auto;vertical-align:middle" title=":/" alt="😕" /></p><p>So I guess I'll just have to copy the machine code into the Pascal source as raw data. That sucks.</p><p><a href="https://awesome.garden/tags/Aprilcot" rel="tag">#<span>Aprilcot</span></a></p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116480899778941398</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116480899778941398</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 28 Apr 2026 06:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 21 Apr 2026 07:58:17 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> exceedingky cute axoloinvaders!</p>]]></description><link>https://board.circlewithadot.net/post/https://mastodon.gamedev.place/users/poetaster/statuses/116441631802024336</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mastodon.gamedev.place/users/poetaster/statuses/116441631802024336</guid><dc:creator><![CDATA[poetaster@mastodon.gamedev.place]]></dc:creator><pubDate>Tue, 21 Apr 2026 07:58:17 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 21 Apr 2026 07:37:35 GMT]]></title><description><![CDATA[<p><span><a href="https://furries.club/@tursilion">@<span>tursilion</span></a></span> That’s what I did initially in the naive version. It does work, but it also can’t take advantage of REP STOSW for fast copies, so it’ll be slower.</p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116441550394163951</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116441550394163951</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 21 Apr 2026 07:37:35 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 21 Apr 2026 06:50:42 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> What if you used the old Apple2 trick of XORing the sprites instead. Gives you draw and erase without destroying the background (at the cost of some corruption, but it's generally ignorable <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> )</p>]]></description><link>https://board.circlewithadot.net/post/https://furries.club/users/tursilion/statuses/116441366007570662</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://furries.club/users/tursilion/statuses/116441366007570662</guid><dc:creator><![CDATA[tursilion@furries.club]]></dc:creator><pubDate>Tue, 21 Apr 2026 06:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 21 Apr 2026 06:46:49 GMT]]></title><description><![CDATA[<p>This has the pointer table optimization (every shifted version of the sprite is pointed to from a table instead of being calculated via MUL). I created a whole second routine to blank sprites, which is the same thing except it does STOSW instead MOVSW. It took me longer to get that working than the sprite draw routine because I misunderstood the documentation. I thought it referenced DS for the target and not ES because Intel's manual didn't specify either.</p><p>This is still a very bad draw routine because it just overwrites the entire 16-pixel word instead of doing proper masking. That'll probably drop the performance by 30% because it can't use the 8086's fast string instructions.</p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116441350779487049</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116441350779487049</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 21 Apr 2026 06:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Tue, 21 Apr 2026 06:40:23 GMT]]></title><description><![CDATA[<p>17, and no trails!</p>

<div class="row mt-3"><div class="col-12 mt-3"><div class="ratio ratio-16x9">
<video controls width="1920" height="1080">
<source src="https://awesome.garden/system/media_attachments/files/116/441/320/433/965/524/original/d43ab4b89834b125.mp4" type="video/mp4"></source>
</video>
</div></div></div>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116441325464017422</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116441325464017422</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Tue, 21 Apr 2026 06:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Mon, 20 Apr 2026 17:04:31 GMT]]></title><description><![CDATA[<p><span><a href="/user/elithebearded%40fed.qaz.red">@<span>elithebearded</span></a></span> Hah. <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> I’d say it’s arguable. The word gets thrown around in a lot of ways to describe everything from the image itself to the particular rendering path.</p><p>For a particularly confusing example, uxn/Varvara “sprites” are rendered by “hardware” but because it’s an emulation-only platform it’s actually a fixed function software blitter.</p>]]></description><link>https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116438117374798193</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://awesome.garden/users/bytex64/statuses/116438117374798193</guid><dc:creator><![CDATA[bytex64@awesome.garden]]></dc:creator><pubDate>Mon, 20 Apr 2026 17:04:31 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Mon, 20 Apr 2026 16:44:06 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> </p><p>Is it really a sprite if it's not in hardware? Otherwise it's just sparkling pixels</p>]]></description><link>https://board.circlewithadot.net/post/https://fed.qaz.red/users/elithebearded/statuses/116438037072027020</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://fed.qaz.red/users/elithebearded/statuses/116438037072027020</guid><dc:creator><![CDATA[elithebearded@fed.qaz.red]]></dc:creator><pubDate>Mon, 20 Apr 2026 16:44:06 GMT</pubDate></item><item><title><![CDATA[Reply to I want to do some more stuff with Apricot graphics. on Mon, 20 Apr 2026 16:40:54 GMT]]></title><description><![CDATA[<p><span><a href="/user/bytex64%40awesome.garden">@<span>bytex64</span></a></span> </p><p>That's winning at solitaire</p>]]></description><link>https://board.circlewithadot.net/post/https://fed.qaz.red/users/elithebearded/statuses/116438024456986332</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://fed.qaz.red/users/elithebearded/statuses/116438024456986332</guid><dc:creator><![CDATA[elithebearded@fed.qaz.red]]></dc:creator><pubDate>Mon, 20 Apr 2026 16:40:54 GMT</pubDate></item></channel></rss>