So way back when I made my own screen dumping program for the Propeller games I made and I just basically cheated with the palette by doing a video capture of the palette screen (through some WinTV PC card) then just grabbing the color values from that capture. The colors were washed out, but good enough for the purpose of pulling screenshots from my games. It was my intention to revisit this at some point because I was porting over one of my game to Linux in C. I was able to plug in the routines (after some pulling my hair with the colors off until I figured out I swapped the blue/red channel). The colors are certainly more vibrant than the ones I pulled, however I remember I used undocmented colors. These colors were extra saturated and I believe 180 degrees off the regular colors. These colors are in 0xZ8 values (replace Z with 0-F). Here is the color palette I created long ago where you can see the washed out normal colors and super saturated undocumented colors.[img][/img][img][/img]
Thanks for making all these Prop games, @"JT Cook" !
They're some of the best. Although I think that if I can get off my *ss and stop being lazy, I'll blow ya' out of the water ;-)
Well, I'm planning to make it work on everything with an SD card slot and some kind of video output and human input device. External RAM might be useful to reduce load times (as it's likely faster than using temp files on the SD card). Also there will be a PC (well, anything with some kind of C compiler and enough resources) version. Maybe even a P2 version. But right now i'm still working on tools (XMM macro assembler with static recompilation capabilities)...
I've been sitting on this for a quite a while, but today I had the motivation to pack it up into something release-able (all the changes were originally made to the slightly different internal version I'm using for my aforementioned game project).
The changes, as far as I can remember them, are:
- GFX tiles in text mode are no longer incorrectly mirrored
- Tilemap format slightly changed to allow up to 256 tiles (instead of 128)
- text_colors is no longer a pointer to an array, but the array itself (this is a breaking change)
- Changed how the rendering cogs synchronize to the TV output object/plugin. (More rendering headroom!)
- Changed how the main application synchronizes to the TV output object/plugin. (This is a breaking change, too)
- Removed sprite bucket sorting in favor of sorting sprites into a "display list". This uses a lot less memory and removes the 8 sprites-per-line limitation.
- Heavily optimized sprite rendering. Sprite rendering now is faster the more horizontally adjacent pixels of the same color (= zero'd bit pairs) a sprite contains (the worst case performance is identical to the performance of version 1). Also, fully transparent sprite lines are now discarded early.
- Very slightly optimized background rendering.
- Fixed something related to sprites near the screen borders. I don't actually remember what the bug was.
- Remove unnecessary TV output parameters (were pointers to high RAM and rendering constants)
- Clean up Spin wrapper code.
- JETViewer and the UART output plugin are now included with the other stuff
Version 2 can be found attached here or over at the OBEX
When a line of a non-solid sprite is preshifted and doesn't contain any nonzero bitpairs after the ones consumed by the preshift, the early discard for blank lines will erroneously discard the line. This is obviously most noticeable with X-expanded sprites.
I've attached a fixed version (the fix is to ROL instead of SHL in the preshift routine, FYI) here and will also update the OBEX soon (EDIT: oof it's read-only now, RIP (EDIT: Submitted a PR to the new repo)).
Note that the filenames stay the same, but you can tell you've got the new version by looking at the header of JET_v02_rendering.spin, where it says v2.1 instead of v2
Comments
They're some of the best. Although I think that if I can get off my *ss and stop being lazy, I'll blow ya' out of the water ;-)
But then again you have to finish first
I've been sitting on this for a quite a while, but today I had the motivation to pack it up into something release-able (all the changes were originally made to the slightly different internal version I'm using for my aforementioned game project).
The changes, as far as I can remember them, are:
- GFX tiles in text mode are no longer incorrectly mirrored
- Tilemap format slightly changed to allow up to 256 tiles (instead of 128)
- text_colors is no longer a pointer to an array, but the array itself (this is a breaking change)
- Changed how the rendering cogs synchronize to the TV output object/plugin. (More rendering headroom!)
- Changed how the main application synchronizes to the TV output object/plugin. (This is a breaking change, too)
- Removed sprite bucket sorting in favor of sorting sprites into a "display list". This uses a lot less memory and removes the 8 sprites-per-line limitation.
- Heavily optimized sprite rendering. Sprite rendering now is faster the more horizontally adjacent pixels of the same color (= zero'd bit pairs) a sprite contains (the worst case performance is identical to the performance of version 1). Also, fully transparent sprite lines are now discarded early.
- Very slightly optimized background rendering.
- Fixed something related to sprites near the screen borders. I don't actually remember what the bug was.
- Remove unnecessary TV output parameters (were pointers to high RAM and rendering constants)
- Clean up Spin wrapper code.
- JETViewer and the UART output plugin are now included with the other stuff
Version 2 can be found attached here or over at the OBEX
When a line of a non-solid sprite is preshifted and doesn't contain any nonzero bitpairs after the ones consumed by the preshift, the early discard for blank lines will erroneously discard the line. This is obviously most noticeable with X-expanded sprites.
I've attached a fixed version (the fix is to ROL instead of SHL in the preshift routine, FYI) here and will also update the OBEX soon (EDIT: oof it's read-only now, RIP (EDIT: Submitted a PR to the new repo)).
Note that the filenames stay the same, but you can tell you've got the new version by looking at the header of JET_v02_rendering.spin, where it says v2.1 instead of v2