X-Git-Url: https://fortfriendship.online/gitweb/gnargle.github.io.git/blobdiff_plain/c0cdc98f1f7b5992c05923ed6413d7f53195da96..0059ca824603380cd38733204a0412c4666b9a32:/projects/pipboy.html?ds=sidebyside diff --git a/projects/pipboy.html b/projects/pipboy.html index c26fec2..faf57af 100644 --- a/projects/pipboy.html +++ b/projects/pipboy.html @@ -23,11 +23,11 @@ /> @@ -88,10 +88,10 @@ worst thing sensory-wise for me in cosplay.

And, I made a Pip-Boy! Look at it here, it's pretty great!

- + A photo of the home-made pip-boy in question. It looks pretty accurate but it is very very large. @@ -267,10 +267,10 @@ from the terminal and seeing it display the results in real time.

- + A photo of the prop pip-boy displaying the word 'TEST' on its screen. @@ -279,10 +279,10 @@ the terminal and, instead of being binary and unreadable, it's in regular-ass javascript. Holy shit!

- + A screenshot of some of the pip-boy firmware's built in function names. @@ -302,6 +302,107 @@ Anyway, I think that's where I'm leaving it for tonight. It's 11pm, after all. More tomorrow.

+
+

Let's get some images displayed

+

20/03/2025

+
+

+ OK, it's 6pm, there's 3 hours until the Apprentice is on, let's + get hacking. The first thing I need to do is, uh... take the + thing apart. +

+ + A photo of the pipboy's arse with a ribbon cable hanging out of it. + +

+ That's an micro-sd extender cable stringing out of it, there. + Nearly everything that makes up the pip-boy is stored on an sd + card which is, conveniently, not bolted into the board. +

+

+ You can open up the thing and take it out, you can copy all of + its files over to a folder and, most usefully for us, you can + copy those same files over to another, bigger sd card (the one + installed is only 250MB) and it works, as long as the card is + fat32 formatted. +

+

+ I've put a 32GB one in there, which is overkill, but I had it + lying around. It also means I can put the entirety of the + FO3/4/NV soundtracks on there, if I want. Which, maybe, I do in + future! Who knows. +

+

+ More importantly, however, that SD card has a USER/ folder where + we can drop our own custom javascript files and it'll display + them in a nice 'APPS' menu in the INV menu. +

+

+ We're gonna start with the the helloWorld and graphicsTest files + that are currently in the repo. Some file wiggling and inserting + and removal of SD cards and bang, there they are! +

+ + A photo of the pipboy's arse with a ribbon cable hanging out of it. + +

+ So we want tio draw something to screen that isnt just text, + next. So I need to dive into some docs. More updates in a bit... +

+ Code Updated. Check the github link to keep up. +

+ OK, first thing I want to do is draw a square. Which means we + need to understand how the graphics buffer is working. See, + right here, in the dump of the buffer of the main portion of the + screen, is some interesting evidence. +

+ + A screenshot of an the graphics context in the pip boy firmware. + +

+ The interesting thing here is 'UInt8.' This is an array of 8bit + integers. This could mean the pixels are rendered as 3-byte RGB + values, with the r and b just ignored, or it could mean each bit + in the byte is a pixel, and the different tones is achieved + using dithering. Right now, I'm not sure! +

+

So, to find out, we're gonna draw three squares.

+ + A photo of the pipboy screen showing 3 16x16 squares. One is slightly dimmer than the other two. + +

+ And there we have it! Three squares. Now if we look at the code + I've written, and note that the middle square is the dimmest of + the three, we can deduce... +

+ + A screenshot of the code to make the three squares. The three are commented 'full byte pp', 'dithered square', and 'fullbright square' + +

+ That I was completely wrong and the screen is compeltely + monochrome, and any dimming is done by dithering. I'm so glad + I'm liveblogging this so everyone can see how stupid I am. +