marcelk wrote: ↑
02 Jul 2018, 16:21
- SYS_SpriteRow_118: Does 4x4 block copy?
- SYS_SpriteCopy_118: What’s the difference? Same?
- SYS_ClearRow32_56: Looks useful. I can add this..
- SYS_BlinkyBlast_142: Doesn’t sound too generic... But it is cool.. I'll sleep on it
- SYS_DrawPixel2x2_32: Small but usefull
- Are the same routine and do a 4x4 copy using an intermediate buffer, this allows you to do the full gamut of sprites from border erasing to complete background save and restore.
- Modifying this routine to do 8 rows by 2 lines and having it called 4 times per sprite is probably a more efficient way of drawing sprites than doing 4 times 4x4, (should save a few vCPU cycles).
- Lets you clear the screen in around 100ms.
- Unless you want a tonne of Pacman clones, not sure about this one going into ROM, if you do put it in, you should probably do the other 3 and Mr Pacman as well.
- I would use this routine for a couple of generic shapes, maybe a few different sized filled circles, rectangles, triangles, missiles etc; some basic shapes that can possibly be used to create other shapes.
- This blit routine is amazingly fast and the fact that it contains the sprite data embedded in the blitter itself is extremely cool, if we had even just a few KBytes of scratch RAM for SYS routines like this one, oh what we could do.
- The system font can have an internal blit routine per character and thus you could print text probably 10-20times faster than we currently do. Once you are printing text that fast, real time character based BASIC games become a reality.
- It's 10x10 with a full black border, it can be optimised to 8x8, as you don't need to draw the full erase border, just one or 2 lines of the appropriate thickness, depending on how many pixels you are stepping and in what direction.
- DrawPixel2x2 was one of my first experiments, I wouldn't use it in it's current form, but an optimised version would be useful for magnified pixels and blocks, (i.e. LIFE, etc).