X-Git-Url: https://fortfriendship.online/gitweb/gnargle.github.io.git/blobdiff_plain/a70db5a2664f6050ef7a4a339545ff798dbb68ef..e06c091b3fd6a76c4a80bc1a0c608060ecd732be:/projects/pipboy.html?ds=sidebyside diff --git a/projects/pipboy.html b/projects/pipboy.html index a559f8d..091a5d8 100644 --- a/projects/pipboy.html +++ b/projects/pipboy.html @@ -23,11 +23,11 @@ /> @@ -753,9 +753,9 @@

22/03/2025

- OK we're back again baby. And this time I sweart I am going to - do input. To show willing I've even already started diving into - the firmware to work out how it's done! + OK we're back again baby. And this time I swear I am going to do + input. To show willing I've even already started diving into the + firmware to work out how it's done!

Move our selection up and down the list with each click

Pretty simple! OK, lets go do that.

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

And look at that! We're done.

+ +

+ Nothing really special to talk about here, just some basic + increment/decrement handling and looping back to the start of + the list when necessary. +

+

+ There is a specific wrinkle of having to deregister the input + event. Early on in my testing I hadn't done that and it kept the + .js loaded even after removing the SD card, which meant it + looked like any edits I made weren't actually working. In order + to prevent this I added gracefulClose() which deregisters the + handler and shows the main menu again. +

+

+ Last thing here is really to handle what happens when we have + more perks than will fit in our available space. Then this + screen is basically done! +

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

+ And now that's done too! Couple of bugs with loading the right + files to list (primarily loading too many) but smart use of the + modulo operator and we're done! I filled in every perk I think + is funny and applicable to me, did some manual edits to some of + the icons (new vegas icons seem to generally be less optimised + for a real monochrome display, a rare instance where Bethesda's + attention to detail is better than Obsidian's) and filled in all + their data and, well, that's it! +

+ +

+ I'm pretty happy with it! This was a really enjoyable project + and let me flex a lot of the muscles I don't tend to use a lot + in my pure software day-to-day. +

+

+ I might come back to this later and make a second screen with + stats on it, but that's basically the same layout etc as the + perks screen just with a number, so I probably won't write it + up. +

+

+ So yeah, for now, I'll leave it here. Thank you for reading and + following my thought processes, if you did! +

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

+ OK I LIED one last update. I wanted to handle the selector on + the right moving away from INV gracefully. Until now, switching + this while in the app would do nothing, and to get around this I + had the click in of the left wheel as the 'return me to the main + menu' key. That's not very accurate to how it should work, + though. +

+

+ So I dove into the firmware again and after a few false starts I + found checkMode(). This is called on a timer in all the other + apps every 50 milliseconds. I experimented a little with this + timeout in my app - 50ms made the perk list feel laggy (because + I'm loading data from disk so ops take a bit more time than + everything else in the system) so I tweaked it up to 100ms, + which was a nice compromise. +

+

+ Twiddling the mode dial triggers a menu change, but I also made + sure to gracefully shutdown when a change was detected - this + includes running showMainMenu(), which if we don't do the + control handlers don't get registered properly. Important. +

+

+ I also dropped in a handler for the torch button - it does + nothing other than shutdown and activate the torch normally. + While testing this I actually found a bug with the current + firmware - if you stay on the torch page and the time changes, + the footer will display over the torch screen. Neat! +

+

Anyway that is really it this time. Thanks for reading <3

+
+

The Stats Screen

+

22/03/2025

+
+

+ OK I WORKED ON IT A BIT MORE but as mentioned it wasn't + particularly exciting - this actually reuses basically all the + same code, with just a smidge more for drawing the skill points. +

+

+ I did actually have all the skills in one big JSON but it caused + an out of memory error, so I abandoned it and went back to + individual files for each skill. +

+

Anyway, here's it working!

+ +
+

The Special Screen

+

23/03/2025

+
+

+ Final update! I added the SPECIAL screen too, and reordered the + screens to match the in-game pipboy. Finally I also did some TLC + to make the app a lot more responsive and reduce redraws, so now + it feels really snappy :) +