<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>OrangeCrab Game Console pt. 4 - Sprites</title><link>/technologies/fpga-group/b/blog/posts/orangecrab-game-console-pt-4---sprites</link><description>The last blog covered the generation of background tiles. This time around we&amp;#39;ll look at another facet of retro graphics. This one in my opinion is much more exciting:
Hardware Sprites!

Beginnings of a Journey
Growing up in the 1980s the s...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: OrangeCrab Game Console pt. 4 - Sprites</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/orangecrab-game-console-pt-4---sprites</link><pubDate>Mon, 05 Jun 2023 14:24:28 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2f003d29-fecc-4b89-aeea-fa1968649871</guid><dc:creator>javagoza</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Nice blog series!&amp;nbsp;Very well explained. I&amp;#39;m looking forward to doing something similar. Thanks!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25113&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: OrangeCrab Game Console pt. 4 - Sprites</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/orangecrab-game-console-pt-4---sprites</link><pubDate>Thu, 01 Jun 2023 22:36:41 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2f003d29-fecc-4b89-aeea-fa1968649871</guid><dc:creator>genebren</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Sprites are very a very useful tool simplifying motion but a royal pain when you want to have more of a bit mapped memory. Back in the 1990&amp;#39;s I wanted to develop a cartridge approach to convert a GameBoy into a handheld instrument.&amp;nbsp; I was eventually able to get my hands on a GameBoy development system and documentation.&amp;nbsp; My attempt to implement a digital scope was thwarted when I learned that the GameBoy utilized a&amp;nbsp; tile and sprite based graphic processor.&amp;nbsp; I eventually built a translation layer that would look like a memory mapped graphics, where writes where translated into tiles, and the tiles were managed to share tiles and release tiles as writes and erases occurred.&amp;nbsp; To test the process, I constructed an etch-a-sketch program to exercise the translation layer.&amp;nbsp; Alas, it took some much time and energy to get this working, that I ran out of time to actually build the handheld instrument.&amp;nbsp; Still it was a blast to play with the systems and it was great learning experience.&lt;/p&gt;
&lt;p&gt;Keep up the good work&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25113&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: OrangeCrab Game Console pt. 4 - Sprites</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/orangecrab-game-console-pt-4---sprites</link><pubDate>Thu, 01 Jun 2023 10:35:34 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2f003d29-fecc-4b89-aeea-fa1968649871</guid><dc:creator>jc2048</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;This is good fun. Didn&amp;#39;t you want to include the collision detection, or is that still to come?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Sprites are copied to line buffers!!!&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I didn&amp;#39;t know that, though it makes sense for the time that they were originally developed. A full framestore would still have been very expensive on memory, but there was also a limit on the complexity and speed of the logic that could be used in a chip, so doing it on-the-fly without the buffer wouldn&amp;#39;t have been possible. The people doing this were probably also familiar with various line-scan methods, like converting vector to line.&lt;/p&gt;
&lt;p&gt;Where the balance lies now would depend on the capabilities of the FPGA you were using. Since FPGAs usually have some form of dual-porting on the block RAM, it might be more efficient to have a partial framestore, perhaps a couple of sprites high, and do a &amp;#39;just-ahead&amp;#39; approach where the sprites get written just ahead of where the scan line is being drawn from.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25113&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: OrangeCrab Game Console pt. 4 - Sprites</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/orangecrab-game-console-pt-4---sprites</link><pubDate>Wed, 31 May 2023 17:24:41 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2f003d29-fecc-4b89-aeea-fa1968649871</guid><dc:creator>wolfgangfriedrich</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Is one of the colours used as &amp;#39;transparent flag&amp;#39; to make the non-black background/tile visible instead of&amp;nbsp;the full 16x16 pixel^2 square array of the sprite?&amp;nbsp;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25113&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: OrangeCrab Game Console pt. 4 - Sprites</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/orangecrab-game-console-pt-4---sprites</link><pubDate>Wed, 31 May 2023 10:12:28 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2f003d29-fecc-4b89-aeea-fa1968649871</guid><dc:creator>michaelkellett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Great blog - but I can&amp;#39;t see the videos.&lt;/p&gt;
&lt;p&gt;MK&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25113&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>