Yes, I have photos and videos posted on Twitter.
I imagine you’ve seen them.
In the github project I have photos, but explained in Spanish.
Some of them are these…
This is a scheme of the basic idea:
A block that represents a map in BRAM memory with each of the graphics (40x30 tiles map, 8 bits per tile) and each tile is a graphic of 16x16 pixels in a ROM (BRAM like only-read).
This block of the map is continuously represented on the VGA monitor in 640x480@72Hz format, that is, using the core PLL to obtain 31.5Mhz from the 16Mhz of the TinyFPGA-BX.
Each object with dynamics in the game (pac-man, blinky, inky …) is represented by its own block and is updated in the game map according to its environment.
Pac-man also has a control input, whose codes are generated from a console on the PC through a simple UART.
Here is a picture of the necessary connections: VGA output (5 outputs) and UART input (1 input and 1 output, RX and TX).
And here the main scheme in “icestudio”, where the whole game is encapsulated in a single block.
And this is the result in a VGA monitor
I am currently testing a map editor and a basic player operation. If you need more photos or someone is encouraged by the project and wants to solve doubts … ask me.
I do not have much more time for the project than a few hours lost per week, but I think it is an interesting and colorful project with which you can learn a lot.
So … Let’s go for the pac-man!