Engin Cilasun
banner
sparsevoxel.bsky.social
Engin Cilasun
@sparsevoxel.bsky.social
Blizzard, Activision, Avalanche, Starbreeze, Simbin
(World of Warcraft / CoD Vanguard / JustCause3 & 4 / Rage / Syndicate / Race Pro)
github.com/ecilasun/tinysys
github.com/ecilasun/sandpiper_hw
@the_cilasun@mastodon.gamedev.place
u/Not_Computer
I just noticed I don't know where C key is, as you can hear I'm trying to CTRL+C several times in the video :D
Curse of custom keyboards; I made CTRL key a bit too short.
November 17, 2025 at 2:22 AM
Sorry about that humming noise, it's a giant fan next to my room, been at it all day :/
November 17, 2025 at 2:10 AM
Uploading & run using:

VCPUploadProgram(s_platform, s_vcpprogram, PRG_128Bytes);
VCPExecProgram(s_platform, 0x1); // Start

To stop:
VCPExecProgram(s_platform, 0x0); // Stop

Physical memory mapping for DMA and copy handled under the hood. CTRL+C also stops programs just to avoid accidents.
November 17, 2025 at 2:08 AM
The scrolling bit is the CPU just shifting a 4 byte color to the right, out of which the coprocessor updates one pixel.
November 17, 2025 at 2:05 AM
That is just this tiny program:
November 17, 2025 at 2:04 AM
The copper can work with the actual video scan cursor (i.e. 800x525) so one can put effects to out-of-screen regions. In this case palette shuffle is done at pixel 640 which will take effect start of next scanline. Effective for hiding latency of long ops for scanline start.
November 15, 2025 at 5:44 PM
It would not be a hair related paper if Cem Yuksel wasn't involved :D
October 11, 2025 at 2:02 AM
What on earth... Must be a mistake on their end
September 15, 2025 at 5:44 PM
I also need to fix those snap hooks below the spacebar, they come off too easy for now.
September 9, 2025 at 4:25 PM
And ofc the enclosure is orange, too.
September 8, 2025 at 3:03 PM
I've got so much space left over, I became a bit lazy and didn't care about timing or block placement, will take care of that as more units are added.
September 1, 2025 at 10:44 PM
The VCP takes about 5 clocks per instruction therefore runs at about 30 mips, using its own internal 4K RAM, to which the CPU can upload programs.
Sufficient speed to catch scanlines, chasing the beam.
September 1, 2025 at 10:43 PM
So far I have the 5 units working in unison.

VCP(video coprocessor), VPU(video processing unit), APU(audio processing unit) and PAL(color palette unit) and the CPU(dual ARM cores) sit on the same AXI bus.
The APU, VCP and VPU core logic are clocked at bus speed (166.6MHz)
September 1, 2025 at 10:41 PM
Printed one, and it does bounce back 🤣
August 31, 2025 at 9:09 AM
I made it a bit over-tough, because I know I'll just keep knocking it off of my overcrowded desk :)
August 31, 2025 at 6:39 AM