Inspired by old-school demo-scene effects, here is a new and improved grayscale bump map render, which takes 8 bit height map input and generates real-time shading effects.
Please see GitHub for Python image conversion script and sample files. (https://github.com/electricgryphon/pico-9-height-map-converter)
I found the skull height map in the following forum:
Why settle for single renderings of a Mandelbrot when we can smoothly zoom in?
--Dithered Palette Animation
--Smooth Bilinear Zoom from sprite buffer
--Background Rendering of Mandelbrot into a (third?) buffer
The way this works is that we graphically zoom into initially rendered view of the Mandelbrot from the sprite buffer. While doing this, we are drawing the next level of Mandelbrot zoom into a second background buffer. When it's done, this gets copied into the zoom/sprite buffer. Lather, rinse, repeat.
Overall, a neat effect I think. Though, I wonder if I should trade the (more or less) smooth frame rate and dithering for less chunky pixels.
Also, I realize that I am awful at spelling "Mandelbrot".
This is an attempt to create a faster falling sand simulation (60fps) by reading and writing directly to screen memory. All pixels / sand particles are active at all times.
I'm writing 1X2 pixel blocks in order to work directly with bytes and avoid bit-masking to address individual pixels. Then, I am using the display mode hack ( poke(0x5f2c, 2) ) to stretch the vertical scale of the display by 2X without requiring me to write any more data to screen memory.
Here is a cleaned up version of the 3D library that I put together for the Pico Fox game.
The demo code is commented in more detail, but here is the basic gist.
Copy the code between Begin Cut and End Cut. (It's a big chunk.) In _init() function include: --init_3d() --Need to call init_3d() to set up player, camera and lights --use load_object(object_vertices,object_faces,x,y,z,ax,ay,az,obstacle,color_mode,color) to load 3D models into the world --use read_vector_string and read_face_string to generate vertex list and face list from string data In _update() function include: --handle_buttons() -- handle default buttons for player-- this can be overwritten obviously. --update_player() -- update the player with default movement, stopping at obstacles --update_camera() -- update the camera based on player location and direction --update_particles() --update 3D particles if used. (I didn't add any for this demo.) --... --update_3d() -- call update_3d() at the end of the _update() function to transform etc. in _draw() function include: --draw_3d() --render objects into triangles, sort the triangles and draw them onto the screen
Please feel free to use this in your projects as well as to update it and make it work better.
New features for version 2:
--Significant speed increase (2X!)
--Load models from strings to save token space
--Python script to translate from ".obj" files to compressed string
Run the script in the folder with the files that you are converting.
python low_poly_compress-01.py filename.obj
Detailed instructions and script found on GitHub.
Fly your Arwing to victory in this demake of a certain, iconic SNES game.
Arrow Keys: Move ship, Select level in title screen
Filled 3D polygon graphics-- reminiscent of SuperFX chip
3 levels -- select with left or right on the title screen
2 enemy types
Star Fox Cornerea music sequenced by PJBarnes.com (http://www.khinsider.com/midi/snes/starfox) and imported using kittenm4ster's midi to pico-8 tracker translator (https://github.com/andmatand/midi-to-pico8)
I finished this game with our three week old son sitting in my lap. I guess this is one our first father-son activities together--kinda sweet in a very nerdy way. Perhaps his first words will be in Lua.
Let me know if you would be interested in a cleaned up version of the 3D library that I put together for this project.
The Galactic Tourism Bureau has put together a collection of postcards from their enticing travel destinations.
Postcards will switch every few seconds to ensure that you experience each of the 5,000 locales.
Thanks qbicfeet for the font library. (https://www.lexaloffle.com/bbs/?tid=27669)
--Improved near field clipping
--Water color can change
--Galactic index is readable
This is a first attempt at creating a bump map lighting effect. The funky gray plasma thing is just there for pizzazz. The world can always use more pizzazz.
Take your trusty ship to the far reaches of the infinite multiverse...and destroy the hostile life that you find there.
Clear each planet to warp to the next system.
-- 30 fps interlaced flight simulator
-- 3,375 or more different worlds, ranging from snowy ice-planets to verdant hills.*
-- 6 enemy types
*OK, so a lot of the worlds look similar, but the same could be said about certain other games...
Metablob! Now with even more tasty blobbiness, but at half the calories.