Last weekend I was at Silly Venture 2k18 in Gdansk, Poland. I presented a new 4kB Atari ST intro, titled "We accidentally your Oculus".
I gave a “Silly Talk” presentation on my MPP file format, and on the techniques used for encoding multi-palette pictures for the Atari ST, while I was at the Silly Venture 2016 demoparty, in Gdańsk, Poland.
This was a good opportunity to talk about the multi palette technique, and also to give an insight of my job on my research field, which is operations research.
I did a Lua implementation of a depacker for the zlib/deflate algorithm. It’s quite efficient for Lua code, even though it obviously won’t compete with a compiled implementation. It can be useful in Lua environments where no access for native C libraries are possible, like the PICO-8 platform.
Performance tests show that typical run times to depack lua-5.3.3.tar.gz on my 2013 i5 laptop are 0.87s with Lua 5.3, and 0.28s with LuaJIT 2.0.4.
It's been a long time since I haven't released an update of my Multi Palette Picture (MPP) image conversion code for Atari ST compatible computers. It's mostly a bug fix release, which improves image stability quite much on some hardware.
An extra feature was added in the encoder, which consists in an exact solver which finds optimal palettes at the price of a lot of computing time. It is mostly for curiosity purposes, since the highest heuristic optimization levels provide similar quality conversions, at much higher speed.
As usual, the conversion code is released as both binary formats for Windows and Atari TOS, and source code under the WTFPL licence.
Have fun with this release ! :)
I participated to a Raspberry Pi demo, which just participated to the alternative platform demo competition at the Evoke demoparty in Köln, Germany. We got the fifth place out of six, which is rather logical since this prod was neither technically nor artistically impressive. But it was fun to do anyway, especially on that platform !
You can download and run it on your Pi aswell. It requires a Raspbian Linux system. It can be run directly from the console, and it was successfully tested on a 256 MB model with memory configuration of 64 MB of VRAM and 192 MB of RAM.
I was at Sillyventure 2012, a demoparty in Gdansk, Poland, where Chuck and I finished debugging UFO demo, which competed at the oldskool demo compo in Numerica Altparty #2 in Montbéliard, France in 2009, and even won the first prize!
Since then, we released Antiques, among other things, and never found the time to fix annoying bugs in UFO to release a proper version. We took profit from the time we had at the party to finish fixing it, so now it is available to the public!
It works on Atari STe and Falcon, with at least two megabytes of memory.
Graphics are from Mic, music is by Dma-Sc, code by Chuck, Frost, ST Ghost and me.
Hoping you'll like it! And remember, the truth is out there.
Too much time since I haven't written to this blog!
From last time, among other things I have participated to the Antiques demo, an Atari STe demo by Dune and Sector One. This is to my opinion a great Atari demo, which is really worth the look. It features great physics and 3D effects by Chuck, great graphics from Mic and awesome music from Dma-Sc. All of this put together by the Sector One conductor, ST Ghost.
In this demo I have done minor helper animation code, like the intro and the greetings part. I also used a new method for displaying still pictures with a large number of colors available on the screen.
Here is for instance one of such pictures, by Mic:
Can you believe this picture can be displayed by an Atari STe, which is supposed to be able to only display 16 colors per picture, from a palette of 4096 colors? Well it can! Basically, Atari ST coders know from a long time how to display pictures with more than 16 colors. This is done by synchronizing palette changes with the screen refresh. Some graphics programs even take profit from such techniques like the famous Neochrome Master which allows to schedule the palette changes at determined vertical positions in the image, or Spectrum 512 which even allows to display more than 16 colors in a single scanline, typically 44 of them. The method used in Antiques demo allows to display 56 different colors per scanline from 29791 possible shades, making use of the blitter chip for that purpose.
In fact, the display method was not the trickiest part in the project. The biggest challenge was to determine a method to generate the data (pixels and palette) to make images look the best as possible when displayed on the STe. A program like Spectrum 512 uses a very basic method to construct image data. It also behaves badly when it has to deal with numerous colors. Of course it had to run on the Atari, with very limited processing power.
My method uses a heuristic method to generate pixel and palette data. It spends a lot of processing power to run a simulated annealing based search method to try and find the best data for each scanline of the picture. The image generation is written in C language and is rather well optimized, to reduce useless computations and make the overall run time acceptable on a modern computer. The program even works on the Atari, if you have enough patience ;)
I have diversified the display method from a single STe-only method to four different methods, the remaining three being also able to run on a plain ST (only 3375 colors are available on the ST though). One mode supports fullscreen, allowing a picture resolution of 416x273 pixels with 48 different possible colors per scanline. I created my own file format to support the different display modes and image types. This format is called MPP, for "Multi Palette Picture".
I am releasing the code of the image converter and the file viewer running on the ST and STe. The Mega STe is also supported. The code is available under the WTFPL public license, which basically corresponds to the public domain. People can use it for what they want, use the code in file conversion plugins, make better sophisticated viewers, etc. You will find the link to the archive at the bottom of this article. I also provide an archive with different sample images. Hoping people will do funny things with that code!
« previous entries - page 1 of 4