Caralynx @sudo.caralynx.com · 26/07/2026It is time for more Lupaladinmon By @minkytaro.bsky.social 110
Caralynx @sudo.caralynx.com · 28/05/2026A thread of Lupaladinmon. Currently obsessed with him. Designed by @dwily.bsky.social 1112
Caralynx @sudo.caralynx.com · 18/04/2026My sticker came a bit wrinkled at the bottom. Not sure whether it's intentional, but it adds a fantastic level of detail, as if steam was wafting across the ground. 010
Caralynx @sudo.caralynx.com · 09/04/2026Here's the important part. For some reason this is not mentioned in any of their social media threads, causing people to wonder why "people on those platforms deserve access to information" but not people on Twitter. Don't know why they chose to omit it; I see it as gross miscommunication. 030
Caralynx @sudo.caralynx.com · 11/02/2026So... Renode. Most of the peripheral types seem to be modelled decently, and then you start looking at the ADCs. 10 implementations, 8 different interfaces. Somehow they did not specify a contract for ADCs, so everyone's just doing whatever they like. What is even going on over there? 100
Caralynx @sudo.caralynx.com · 26/01/2026For the curious, here's what's inside. The main processor is an Epson S1C33E07F00C100 with 8MB of parallel NOR flash on the side. 010
Caralynx @sudo.caralynx.com · 25/01/2026Watch my 39C3 talk on modding the Vital Bracelet series YouTube: www.youtube.com/watch?v=ry2Q... Slides available at cfp.cccv.de/39c3/talk/GM... CCC media site: media.ccc.de/v/39c3-be-mo... 262
Caralynx @sudo.caralynx.com · 12/01/2026I put Garurumon on my Tamagotchi Paradise. (This is a downloadable item created from scratch with import of the animation frames from Digimon Color's firmware.) 0103
Caralynx @sudo.caralynx.com · 11/01/2026Brute forcing my way through ImageSharp to write indexed PNGs using a specific palette and indexes instead of having it requantize RGB values. Instantiate quantizer and pass it to PngEncoder, then encode a dummy image of the correct dimensions to write out desired palette and indexes. 000
Caralynx @sudo.caralynx.com · 29/12/2025I am going to be talking about the Vital Bracelet series at #39c3 today, at 12:50 CET Fahrplan: fahrplan.events.ccc.de/congress/202... Stream: streaming.media.ccc.de/39c3/fuse 260
Caralynx @sudo.caralynx.com · 20/12/2025It snowy outside 🎨: @ponah.bsky.social #furryart Seriously though, I had to shovel half a foot of snow in the past couple of days, and the forecast says it's going to go below -33°C today. 0263
Caralynx @sudo.caralynx.com · 29/10/2025I received a virtual prepaid debit card as a part of a promo, and selected to convert it to plastic. In the meantime, I spent it, and apparently they issued the card after that, because they printed a value of $0.00 on the card. Funniest thing I've seen all day. 030
Caralynx @sudo.caralynx.com · 26/10/2025I tried to turn on my PowerEdge R630 that has been sitting around turned off for like half a year, and it is no longer turning on. Getting a ton of errors about voltage levels and CPU thermal trip when trying to turn it on. I think it might be a system board issue. Anyone got any ideas? 320
Caralynx @sudo.caralynx.com · 26/09/2025Here's the code for generating that hash. Way too much SHA256 and SHA512 IMO, they could probably have made this simpler. Or used an HMAC. 000
Caralynx @sudo.caralynx.com · 26/09/2025Finally, we get into the actual scrambling logic. First is a generator function that returns the X/Y coordinate (in terms of tiles, not pixels) of the tiles to swap. It passes the array [0, 1, ..., numTiles ** 2] to the generate scramble map function, and generates which tile to copy in dest order. 100
Caralynx @sudo.caralynx.com · 26/09/2025The tile size is calculated by first finding the LCM of the number of tiles horizontally and vertically (defined as 4 by the caller) and 8. Not sure why it needs to be a multiple of 8, but that's what they specified. 100
Caralynx @sudo.caralynx.com · 26/09/2025Let's look at the unscramble function. It draws the scrambled image, gets the tile size and checks whether it and the scramble seed (supplied by the web API) is valid, clears the scrambled region (we'll see why it draws the image first later), then draws each tile according to a generator. 100
Caralynx @sudo.caralynx.com · 26/09/2025The page sets up a Vue component for displaying a canvas of the unscrambled image. That then creates a class that generates said canvas, and exposes functions for loading the scrambled image and drawing to the unscrambled canvas. Here's the code for drawing the canvas. 100
Caralynx @sudo.caralynx.com · 11/09/2025I made a mod for @crittercove.bsky.social for loading custom skins. The loading part is easy; next step is to figure out how to export the model and texture from the current body parts selection so people can have a reference to work from. 130
Caralynx @sudo.caralynx.com · 09/09/2025Here's what the help command prints. You can see it trailing with a prompt, except that gets clobbered by the success message at the end of command processing. 100
Caralynx @sudo.caralynx.com · 09/09/2025For some reason if the command is one character, it checks the character directly, but if it's two, it uses memcmp(). I'm not sure if the compiler optimized the one-character the case, but using memcmp() is pretty wasteful when you could just check two characters directly. 100
Caralynx @sudo.caralynx.com · 09/09/2025The number length is capped to 8 characters, which is fine, but it'll be truncated counting from the left, which isn't exactly how numbers usually work. Here's hex2int(), which doesn't seem to check whether you enter letters above F. 100
Caralynx @sudo.caralynx.com · 09/09/2025Now let's look at argument handling. Nifty code, though still buggy. The code splits arguments by spaces, and records the index of each space. It's a pretty naive approach, though. If multiple spaces are entered in a row, they count as blank arguments. 100
Caralynx @sudo.caralynx.com · 09/09/2025Here's the start of the function. The buffer is 4KB. No idea why it's so large, because none of the commands use that much space. First thing to note in the code is it immediately accessing a negative array index. For some reason whoever that wrote the console code is allergic to bounds checking. 100
Caralynx @sudo.caralynx.com · 01/09/2025Continued looking through SNC7330's bootrom, and here's a perplexing piece of code that I reconstructed. It's supposed to return the block (or page?) to read the load table from (basically a bad block table), but I'm pretty sure it doesn't actually work. 110
Caralynx @sudo.caralynx.com · 01/09/2025Managed to find the code in question in the SDK. `over_sampling` is a power of 2, so they could have easily done a shift with one less bit, checked that bit, and rounded up instead of doing any floating point operations. 000
Caralynx @sudo.caralynx.com · 16/08/2025What I've been working on recently: figuring out how to create custom items for Tamagotchi Paradise Download icon by @ponah.bsky.social, dot sprite by @rayjt9.bsky.social 3131
Caralynx @sudo.caralynx.com · 01/08/2025Stupid code found in the runtime for a course produced with Articulate Rise 360. This is not minimized. What's wrong with `arr.indexOf(val) !== -1`? 100
Caralynx @sudo.caralynx.com · 22/06/2025I played Critter Cove Demo (@crittercove.bsky.social) yesterday, and the character customization is pretty good. Was able to make a fairly good approximation of Sudo (colors adjusted manually in the save file). Wish it was possible to import custom textures for exact markings. 000
Caralynx @sudo.caralynx.com · 07/05/2025Here's the actual dongle with HDR. Notice how the only appreciable change is the end of the title. It's not even 4K (the 4K version is more expensive and unavailable). 100
Caralynx @sudo.caralynx.com · 07/05/2025Open the listing, and here's what the title says. 4K and HDR, peachy right? Wrong. 100
Caralynx @sudo.caralynx.com · 07/05/2025If you search for "EDID dongle HDR" on Amazon, the first option is this one. It's also the cheapest one by far. 100