Hardware Malfunction
screenshot added by fgenesis on 2020-04-12 20:07:02
platform :
type :
release date : april 2020
release party : Revision 2020
compo : wild demo
ranked : 2nd
  • 26
  • 1
  • 0
popularity : 54%
  • 0.96
alltime top: #7990
added on the 2020-04-12 20:07:02 by fgenesis fgenesis

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr


that thingie KICKED ASS. Real wild. Real good!
rulez added on the 2020-04-12 20:09:55 by HellMood HellMood
rulez added on the 2020-04-12 20:10:38 by Xyl2k Xyl2k
rulez added on the 2020-04-12 20:19:00 by Queen_Luna Queen_Luna
Some more info about the HW that would have been too much detail to mention for the compo; some people on discord asked for this:

The LCD has its own RAM but this specific controller is (to my knowledge) write-only.
That means no framebuffer on the AVR, and 8K memory is really not enough to store much
(remember, a 64 x 64 x 8bpp image already takes up half of the entire RAM,
and the audio player and mixer buffer require some of the global budget as well).

There is also no support for palettes or sprites or anything in hardware.
The communication with the display basically boils down to this:
- send set (x1, y1), (x2, y2) rectangle commands, send "hey i'm going to send pixels now" command
- set two halves of a 16bit (5.6.5 bits) color to PORTA and PORTC
- toggling the LCD write pin twice sends one pixel
- keep toggling that pin for as many pixels as your rectangle specified. The LCD does the rectangle wraparound logic internally.
- doing the math, this can reach about 50 fps (2 cyc/pixel at 16 MHz) assuming the color is never changed and loop overhead doesn't exist
- there is no support for clearing regions of the screen, you have to pump out pixels in software to the bitter end
- you can't skip pixels either, specifying a rectangle and then sending pixels always overwrites the content that was there
- there is a VSYNC pin but it's not connected to the outside, so there is no way to really avoid flickering

The display has two hardware features that are sort of interesting:

- scrolling. but only on the long axis and there is no off-screen memory, so the large scrolling image for example must be decompressed on the fly directly into the display.
- inverting colors. but what would you use this for except for strobo...?

The 3D stuff is pretty standard, normal indexed meshes rendered directly to the LCD, with perspective division and everything.

So basically most effects boil down to writing long stretches of the same color to keep things fast, and interlacing like crazy to hide the fact that there is totally not enough bandwidth to do anything fluid on this thing.

I might write a more detailed writeup if someone is interested.
added on the 2020-04-12 21:49:21 by fgenesis fgenesis
Really nice music and some cool effects
rulez added on the 2020-04-12 22:04:19 by Optimus Optimus
Very nice megademo, and all on an Arduino, wow!
rulez added on the 2020-04-12 22:14:28 by Gadget MCS Gadget MCS
This is also cool, thanks for the source https://github.com/fgenesis/hwmf
rulez added on the 2020-04-12 22:45:04 by Sir Sir
what. the. actual. fuck.
rulez added on the 2020-04-13 00:42:10 by porocyon porocyon
Thanks so much for clarifying on the high FPS. Really great one
rulez added on the 2020-04-13 11:35:58 by Hopper/SquoQuo Hopper/SquoQuo
really nice demo on exotic platform!
rulez added on the 2020-04-13 14:52:15 by leonard leonard
Awesome demo, for such a cheap hardware !
rulez added on the 2020-04-13 15:54:49 by flewww flewww
Very nice!
rulez added on the 2020-04-13 16:00:41 by Mystra Mystra
Fantastic prod <3
rulez added on the 2020-04-13 16:43:33 by p0ke p0ke
hardware pr0n fuckery. awesome!
Really impressive!
rulez added on the 2020-04-13 21:48:56 by Nupo Nupo
Goor Enough! This Demo Rocks!
rulez added on the 2020-04-13 22:10:37 by Yuzu Yuzu
Fantastic demo. Awesome tech, great presentation.
rulez added on the 2020-04-14 11:37:04 by BinaryCounter BinaryCounter
Lovely soundtrack and direction. Congrats for great effort.
rulez added on the 2020-04-14 14:10:47 by mayor mayor
This is great!
So many effects, nicely put together and with a really sweet music track.
Congrats for this, and of course, on this platform!
rulez added on the 2020-04-17 22:20:19 by Dma-Sc Dma-Sc
Impressive and have some style
rulez added on the 2020-04-19 22:32:05 by frog frog
Finally it's done ;)
rulez added on the 2020-04-24 17:38:25 by Saga Musix Saga Musix
Cool! I especially liked the twist-vu-meter! :-D
A mix of various influences it seems...
rulez added on the 2020-04-24 17:53:32 by baah baah
Supercool stuff!
rulez added on the 2020-05-05 22:17:56 by Bobic Bobic
keen platform usage!
rulez added on the 2020-09-27 02:38:52 by T$ T$
only Arduino makes it possible!
rulez added on the 2021-02-18 23:37:49 by psenough psenough
@psenough: HWMF actually contains no Arduino code.

It was one of the first things we tried, but it was orders-of-magnitude too slow, as IIRC it uses dynamic dispatch everywhere (I forgot whether it was C-style, with structs of code pointers, or C++ style, but same thing)

Instead, the device- and board-level configuration in HWMF exists as template parameters, so all that is evaluated and code-generated at compile-time and the primitives for writing to the MIPI bus compile down to a tiny bit of inline ASM (despite being fully configurable)
rulez added on the 2021-04-23 20:38:11 by nicoo nicoo
PS: fg gets all the blam^W credit for the config template madness. I vaguely figured out how to poke it, but I wouldn't claim to understand it.

(Unlike, say, the template linear algebra lib, which none of us understand anymore, as it contains fg's most dread sourceries, and my mathemagics most foul)
added on the 2021-04-23 20:41:24 by nicoo nicoo
(I forgot whether it was C-style, with structs of code pointers, or C++ style, but same thing)

(Arduino is just C++ and a preprocessor in a trenchcoat)
added on the 2021-04-24 12:49:08 by porocyon porocyon
This is appreciated, thanks!
rulez added on the 2021-08-10 20:50:50 by spkr spkr

lists containing this prod

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment