Thomas Jentzsch Posted November 17, 2021 Share Posted November 17, 2021 (edited) Attached you find a simple tech demo, which resulted from discussing with @johnnywc about his newest project Qix. All it does is drawing a single (Qix) line on the screen. The line data is created on-the-fly using the Bresenham line algorithm. The clue is, that this line is quite long (up to 44 pixel), using just one sprite an no flicker. To achieve this length, I combined several tricks: depending of the width (and angle) of the line, the sprite is double or quad sized the sprite position is updated every line the sprite bits forming the line are shifted to allow larger line segments (> 7 pixel) When you start the demo, you only see a line rotating. You can use the switches to change that. Color/B&W = B&W: The Qix line color reflects the sprite size (blue = single, green = double, red = quad sized) Left Difficulty = A: The Qix line independently changes it horizontal and vertical size Right Difficulty = A: The Qix line moves around the screen (this is a demo, so just for the show ) Maybe I will further enhance the demo. Not sure yet. BTW: When using Stella, for a nice Qix like effect, try to set the phosphor blend to ~90. QixDemo_V1.bin QixDemo_V1.asm Sine_12_05.h Edited November 17, 2021 by Thomas Jentzsch 17 Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted November 17, 2021 Share Posted November 17, 2021 Awesome work Thomas! This is currently my "screensaver" bouncing around in full screen on my second monitor while I work. - James 2 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted November 17, 2021 Author Share Posted November 17, 2021 I have done the same while developing this. 1 Quote Link to comment Share on other sites More sharing options...
Keatah Posted November 17, 2021 Share Posted November 17, 2021 (edited) It'd be amusing to have Stella conduct a savestate, then load a demo (like this one) after a pre-determined time. And as soon as the user does something like moving the joystick or toggling a switch, Stella would re-load the original ROM and its savestate. Thereby simulating a Windows-like screensaver. Edited November 18, 2021 by Keatah spelling mistake 2 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted November 18, 2021 Share Posted November 18, 2021 Very nice. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted November 18, 2021 Share Posted November 18, 2021 That's pretty cool! I also love the idea of it being used as a screensaver. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted November 19, 2021 Author Share Posted November 19, 2021 (edited) I went a bit further and implemented Qix like movement and trailing lines (using flicker). Hope you like it. QixDemo_V2.bin Edited November 19, 2021 by Thomas Jentzsch 6 Quote Link to comment Share on other sites More sharing options...
+littaum Posted November 19, 2021 Share Posted November 19, 2021 That is pretty cool, works great in Javatari too! Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted November 21, 2021 Author Share Posted November 21, 2021 A little update which mainly improves the trailing Qix lines. I also increased the speed, which was way too low before. PAL60 version added too. Switches: Color/B&W = B&W: The Qix line color reflects the sprite size (blue = single, green = double, red = quad sized) Left difficulty: A = Qix moves faster and more erratic QixDemo_V3 (NTSC).bin QixDemo_V3 (PAL60).bin 5 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted November 21, 2021 Share Posted November 21, 2021 Masterful. Can't wait to see it implemented in a Qix! 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted November 21, 2021 Author Share Posted November 21, 2021 2 hours ago, Andrew Davie said: Masterful. Can't wait to see it implemented in a Qix! Probably not like this. The HMOVE blanks further reduce the horizontal resolution. But I have an idea how to avoid these by doing a well timed RESP each line. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.