Apparently Edge has both workspaces and split screen mode. So I guess the only thing it doesn't have is dynamic folders (which was apparently a security risk if you set them manually anyway).
@sudo.caralynx.com
Reverse engineering, Japanese toy hacking, constantly distracted. Is ordinarily a tufty cat. Icon by @notaventura.bsky.social, banner by @hackmonthegoat.bsky.social Teardowns: @teardowns.caralynx.com | Ko-fi: https://ko-fi.com/caralynx
Apparently Edge has both workspaces and split screen mode. So I guess the only thing it doesn't have is dynamic folders (which was apparently a security risk if you set them manually anyway).
Arc's workspaces are useful but I've been under-utilizing it, so I'm OK not having it.
I'm seriously considering just using Edge now. It still supports Manifest v2, is Chromium-based (I have concerns about rendering in Firefox and derivatives), and I'm already using it on my phone. I can probably get the tab auto clear thing as an extension.
So Arc did that thing where everything breaks when you try to use passkey authentication, so I uninstalled it and reinstalled it as usual ...and my profile's been wiped. Greaaaaat.
I guess I'm looking for a new browser now. Any suggestions?
The sprites are stored in almost the same format Tamagotchi Smart, so with a bit of modification to the tooling it shouldn't be too bad. The first bank sprite pack seems to be mixed in with other data, so it might be a bit of a bother to relocate if your data happens to be bigger.
Front of the DMC Xros Wars packaging
Back of the DMC Xros Wars packaging
Got my Digimon Color Digimon Xros Wars 15th Edition. Looks the same as any other DMC but with a UV print. I don't care much for Xros Wars and only got this for the firmware, so I only have this one color.
The tape seems wider than usual, dunno what's up with that.
Alternate, with winter coat
Really love how these mecha redesigns are turning out! I'm gonna open more slots very soon, join my server if you want to be the first to know!
[ SUDO the Caralynx ]
mecha-fy commission for @sudo.caralynx.com
CM
Front of the Pokemon Friends Pokeball box, showing the device
Right side of the Pokemon Friends Pokeball box
Left side of the Pokemon Friends Pokeball box
Back of the Pokemon Friends Pokeball box. There's a separate barcode sticker on top of the box
I finally managed to get my hands on a Pokemon Friends Pokeball. Box is smaller than expected, and appears to have been retaped (probably at the factory).
Tough choice! From a comfort perspective, calf probably best. Under knee is my second choice, though if there's elastic at the top usually those end up a bit tight and makes a mark.
Cartoony warped perspective illustrations. Ghostpaw, Dema, Ramune, Noko, Banon, Tania, Spiral, Kuroro, Kae
"Heeeeey, are you home???" Brush tests for the month got weird, and I had a great time. :D
#furryart #furry #commission
@snowmiaux.bsky.social @thorsvision.bsky.social @sudo.caralynx.com @ucbronzewing.bsky.social @greenwoodje.bsky.social @ladydarksphynx.bsky.social
Doing Unity stuff again, this time building a UI using UI Toolkit. It likes to randomly reorder my controls when I copy and paste. And it'd be great if it can automatically generate a C# class with references to all of the named controls prepopulated like they do with input action assets.
✨Chibi-commission!✨
Thank you for your request!
The combined slots encoding is stupid. Just store number of slots and the compressed size for each slot and the compressed data as binary. Why do you need to turn it into binary then into strings when the backing store is already bytes?
As far as the architecture goes, pretty inconsistent and a pain in the butt to unpack and repack individual slots. It's like very different people designed parts of this system and they decided they didn't need to talk to each other.
The end result is not the actual CRC32C checksum of the data, but a slightly wonky version that you won't arrive at unless you knew they were using 2MB chunks and improperly passing the result to the next iteration.
The checksum is the weirdest part of this system. It's supposed to be CRC32C, except with one issue. It calculates the checksum in 2MB chunks, but after every chunk the result of the the sum is XORed with 0xffffffff, which is normal. What they failed to do us XOR it back before the next chunk.
For header version 2+, a 64-bit timestamp (in DateTime ticks) is stored at the end (but the kicker here is the lower 32 bits are stored before the upper, despite the big endian byte order).
This is followed by some number of pairs of words, the first containing the checksum of the segment file, and the second the version of the segment. The number of pairs depends on the game. For this one, it's five.
Now for the header segment. Everything here, for some reason, is big endian. The first 32-bit word is flags for the slot, where the lower 24 bits stores a status (starting from 0: invalid, clean dirty), and the upper 8 bits storing the header version (currently 2).
For the Gameplay segment, it is a combined save slots type, which stores individual save slots as GZip-compressed base64-encoded strings joined by the "|" character. There's 100 slots here.
Once you extract the save data from the combined save slot, it's just JSON that you can edit.
Strings are stored with .NET's BinaryReader length-prefixed string format, while binary consists of a 32-bit size in little endian and the binary contents.
The save data is stored as a collection of segments for each slot. The slot number and segment name are separated by an underscore. Each slot has a header segment containing some info (more on this later), and non-header segments start with a 1-byte bool indicating string (true) or binary.
Looking at how Date Everything stores safe files
Was trying to help @ferretferret.bsky.social fix his save file due to some sort of soft-locking issue. The files are in "%USERPROFILE%/AppData/LocalLow/SassyChap/Date Everything/{64BitSteamID}" as a bunch of .sav files.
SAR ADC: start bit is reset before single conversion starts, remains set for continuous mode. IRQ/valid flag is high when value ready in continuous mode and reset when data read, IRQ is pulsed and valid flag is not set in single mode.
IDMA: forwards-only, designed for memory to memory transfer, or memory to single peripheral. The the address and length registers each have the lower 2 bits hardwired to 0 so transfers are word-aligned, and the length read is the current transfer progress. The progress is reset on write.
Turns out it's probably a Faraday Technology FTDMAC020. Renode has neither that nor PL080, so I guess I just have to build it.
Always a fun time with Renode because no one documents anything. You just have to look through several implementations of the peripheral type you want and hope you find one with a good pattern to copy.