HPMAN YOU JUST KILLED IT!
I have been working tirelessly on converting a bunch of footage to a project. I wanted to show you guys when it was complete.
I realized that each 320x224 image was costing me valuable palette space and that was contributing to inflating the P rom.
I made up my own little method I like to call the "FilmStrip method"
1. Pictures were no good because each picture gets analyzed separately...losing on tile and colour compression here....
If there were identical tiles between frames they were being added to the project again and again.
I noticed that each scene had groups of colors and that more likely than not I was re-saving the same damn palettes again and again because each frame was so similar.
2. Sprites were no good because I must use the framer and animator tools making for too much work.
(Don't get me wrong these tools are absolutely amazing just not for this purpose)
3. Scrollers all the way! I made vertical strips "Film Strips" that contained what I believed to be frames that had similar colours.
I then compressed and sometimes recompressed the frames with a little app I found called pngquant. https://pngquant.org/
This little program was sick because you can drag and drop your .png image on a .bat file and it will compress it for you without the need for the command line.
I then learned that if you make a .bat file and add this line "datimage %1 -mtc15" you can have your own little quick and dirty DATimage that outputs a Neo Format image without the use of the command line.
A. Create Vertical .png containing several full screen 320x224 images
B. Quantize (pngquant) and format with DATimage. My goal was to always have no more than 180 pals per film strip at compile time.
(This part is fussy and several tests were performed to ensure the images still look good you may often second guess your groupings and redo them
C. In your code increment your scroller image Y coordinate by 224 to move to the next frame.The savings here were incredible I went from covering 3 banks to 1 bank with tons of room to spare.
-Maximum tile compression because several images are analyzed together.
-1000's of palettes to 180 or below per filmstrip
-Placement is perfect. Meaning frames are muddied but they are ready for an artist to do a number on them and remaster them using the existing colours.
-The trade off is quality here because each strip is quantized.
This method can still be used in conjunction with colour streaming!
1000's of palettes are too much per filmstrip but now you can exceed 180 palettes and compress your images less getting better results!Did encounter a little snag I am hoping someone can point me in the right direction on.
For example I have two 180 palette images.
I want to display both images at the same time.
The plan is to allocate image one to pal bank 1 and to allocate image two to pal bank 2.
I read the DATlib documentation and noticed there is only room for the 'Base Palette', 'Total Palette Number', and 'Pointer to PalData' in the palJobPut function.
Is there a way to force an image to display it's palette using the second palette bank through DATlib?
I did this because...some images were too complex...so I cut portions of them out to make for better compression per image.
My idea was less colours per image makes for better compression per image. I layer the two images on top of each other they will appear rich to the eye and complete the frame.
Well I am foaming at mouth now that I saw this crazy ass new feature!!!!!!!!! Hats off HPMAN!
In the meantime I will continue with my experiment and post the results when I have something nice to share.
Doing this is driving me crazy but I can't seem to stop.
HPMAN and who ever is interested....
I uploaded some filmstrip samples. Hoping that maybe you could perform some tests with your colour stream monster! https://www.dropbox.com/s/m4xequbgrzdviv0/FilmStripExample.zip?dl=0
**Edit I re-uploaded the link above with some better organization
RAW = FilmStrips that have not been quanitized or have been modfied with DATimage.
NeoGeoFormat = FilmStrips with various levels of quantization there is always one that has 256 pals or below and of course they are Neo ready.
Folder titled 'Face and Eyes' is my attempt at separating images in hopes of layering them using the different palette banks for a richer image.
This is alternate attempt at the colour rich "Face" FilmStrip.
Filmstrips are animated from the bottom up .txt was included to save you the math basically you set your Y coordinate and y-=224 until you reach '0' then you move on to the next stripThe big questions....
Can ColorStream support vertical scrolling?
Can ColorStream support jumping? EX: incrementing y by 224 per vblank
Can ColorStream palette counts beyond 256? EX: We are streaming now so is there wiggle room to load a massive palette list.