Racing Thoughts

07.04.2025
|
15:39 - Tales of Cursed Rabbits
|
Current Mood: Feeling like a cold is coming up...
Now Playing: Slimers by (T-T)b
Last weekend we went on a little jaunt to IKEA to get some additional BESTÅ bits and bobs to make our living room TV setup complete. Now we've finally got a proper place for the vast majority of our older video game systems, excluding just the OG Xbox and my childhood Gamecube.
The Xbox simply doesn't see too much weekly or even monthly use, and the Wii can run GC games anyway.
However, we do also own a Wii U, and I noticed that the Wii U can run GC games as well using Nintendont, which I've used quite a bit on the original Wii. Obviously GC games cannot run directly from the original discs, as the Wii U's drive cannot read them natively, but backups loaded from USB work just fine. This coupled with the Wii U's native HDMI output made me think - wouldn't the Wii U be the perfect all-in-one system for Wii U, Wii and GC games?
And there's a relatively user-friendly softmod available for the Wii U? No contest for a Sunday afternoon.
The exploitation process was as user-friendly as they get. Prepare a SD card (I used an ancient 128Gb SDHC card that cost a college student's fortune in 2015) with the requisite files, pop that in the Wii U and navigate to a website using the Wii U browser and click Run Exploit. Sure enough, in a few seconds I was in a payload selector menu. Of course, the first step in exploiting a video game console is usually a full system backup, or rather a NAND backup that one can use if things go haywire at some point. These tend to take a while on newer consoles with larger internal storage, but I never skip them, especially as this console has quite a bit of personal data on it.
So, NANDDumper time it was. The Wii U in question is a 32Gb PAL Premium edition from the launch day batch.
The Wii U's storage has three larger partitions: the SLC, which holds Wii U's system data, the SLCCMPT with vWii compatibility system data, and the MLC with is the actual 32GB user storage area with installed games, saves etc. (Or something close to that, don't quote me on this, didn't look too deep into it at this time.) I chose to back up absolutely everything, knowing it'd take a while, and glued my eyes to the progress bar.
SLC and SLCCMPT were dumped out without any notifications. However, as the MLC backup started, I noticed the "retry" count starting to climb up. A brief Google search explained that this was due to the software having trouble reading something from the eMMC, and this could be indicative of a hardware failure, or at least one in the making. Even more Google searches led me to stories of certain launch-day Wii Us having eMMC chips manufactured by Hynix being more prone to premature degradation and failure. This would eventually manifest in Error 160-0103 appearing during normal use of the system. Oh dear. Further searches led to forum and Reddit posts peppered with alarming headlines and people bragging of having a launch Wii U eMMC produced by Toshiba or Samsung instead of Hynix... And of course, tons of folk remedies and accusatory language in the vein of "not taking care of your console by powering it on frequently" being the cause of degradation. It's the New 3DS IPS screen stuff again, except that this time you get the burden of eventual dooooooom cast upon you.
After the NAND backup finished, I went on to configure the Aroma environment and the rest of the homebrew software I wanted. Nothing particularly exciting here.
WiiUIdent told us that indeed, the system had Hynix as the eMMC vendor.
I wanted to identify the extent of the corruption. An user in a similar situation had made a fantastic writeup about a severe case of 160-0103 that provided a couple of vital clues. I could reconstruct the MLC part files of the NAND dump into a single file, and then try to extract that file with a piece of software called wfs-extract, a part of the wfs-tools utility set. Read errors during the extraction process would point out where in the data the read errors likely occurred.
The extractor ran for a while, and eventually finished with a single error.

/content/animal? Animal Crossing Plaza? Yes, that's where the title ID of 10145600 in the path points at. I noticed the "szs" file format, and apparently this is a packer format that can be read using the Switch-Toolbox software.
Opening up the szs files in Switch Toolbox proved my hunch correct- indeed, this folder had animal model/texture data for the application. I went through the models, noticing familiar faces here and there - it's been a while since I last played New Leaf, of which the Plaza was a "companion app" of. "rbt" appeared to be rabbits, and there were 20 of them in total. rbt08.szs, however, refused to open, reinforcing its status as broken.
I wanted a valid copy of the file for comparison, so I fired up Wii U Downloader and downloaded a decrypted version of Animal Crossing Plaza, eager to find out which leporine "friend" was going to take the Wii U down with it...
rbt08.szs corresponded to...
GENJI the rabbit.
Poor little pile of bits.
Even though corrupted memory is far from a desirable thing - I'm a bit far gone and thus absolutely thrilled at the result. What's going to happen next?
Will the application crash if Genji tries to enter the plaza? Will the error manifest in more insiduous ways? Should I replace the broken file or try some new install shenanigans?
The possibilities are endless!
From what I've read so far, if the eMMC is on its way out, there are multiple solutions ranging from replacing the physical eMMC with a SD card or redirecting the eMMC accesses to the SD card slot. I like fixing things, so that's not really a problem. If more symptoms of eMMC corruption like the 160-0103 error start to manifest in the future, I will choose one of these alternative solutions. In any case, we will mostly use the USB storage for app/software installs, so the MLC's read/write accesses will be minimized anyway for the time being. And besides, I've got a full NAND backup of the system now (sans the unfortunate Genji), so we have a restore point of sorts for the console even if the eMMC fails.
By the way, what in the discount Anamanaguchi was that vocal song in the Aroma Appstore? At least you can change the background music MP3. No shame on the band, keep doing what you want, it's just not my cup of java.
On the topic of unusual music choices - there was this one Dreamcast VMU save manager disc that for whatever reason had the Love Hina anime theme as the default background music... on repeat...over and over again. I've never watched the show, so all I associate that song with is scrounging for everything-unlocked savegames. Ah, memories.
20.01.2025
|
21:06 - DAT Ripping: case "Skipper & Skeeto - The Revenge of Mr. Shade"
|
Current Mood: Curious
Current Music: Imogen Heap - The Song That Never Was (Mosaik remix)
Just a set of notes for something of passing interest, excuse me for the poor formatting.
Magnus & Myggen: Skumlesens Hævn by Ivanoff Interactive is a Danish edutainment game from 1998.
It's a rather enjoyable little point-and-click adventure. The game is fully voiced and the acting is excellent and just the right amount of cheesy.
In the Finnish version, Mr. Shade is played by the veritable comedian and actor Jukka Puotila, and does he ever ham the hell out of the deranged ramblings of Shade's.
Seriously, some of the game's lines have become a household staple.
Thus I decided it was time to get the voice lines out of the game files. They're simply too good to leave to rot. Here's how to do it on your copy of the game:
- Full install of game copies everything from the disk to hard drive; disk is supposedly required to be in the drive while playing
- This is not really the case, the game works just fine from the hard drive without the (virtual) disk
- Disk has basic InstallShield software and files plus 4 folders: DIRECTX6 carrying DX6.1 redistributable (have a quick traumatic flashback of DLL hell, thank F for WinSxS), "MUSIC" - self explanitory - and two folders: S and SF
- Game installer has choice of Finnish and Swedish; I chose Finnish and only the "SF" folder was copied over - presumably "S" is the Swedish localization
- "music" folder has 18 files which have a clear naming convention that correspond to the levels (floors) in the game.
- run trid on dat file - 67.7% confidence in RIFF/WAVe Audio (edited with Sound Forge).
- Change file extension to "wav" and hope for the best
- Success, the tracks play!
- Voice lines and sound effects
- "SF" folder is the data folder of the game, with 6 .dat files
- user.dat at 138654Kb is the largest, a potential candidate for sound files
- System.dat is also rather large at 43069Kb
- Appear to be binary files
- Running strings brings a few curious lines: RIFF, WAVEfmt, adtllabl, data, cue
- RIFF wave format, just like with the music files before
- Description of WAVE PCM format found here
- Can identify wave headers; can manually extract by studying them; feeling lazy, any easy way to extract the files from the rest of the DAT?
- Found PKBeam's RiffExt made for Baldur's Gate 3 - extract RIFF data from arbitrary files - giving it a go
- RiffScan on user.dat:
PS C:\Users\ilo\Desktop\MM3 SAVEGAMES\Magnus3\SF> .\riffscan.exe .\user.dat
file,format,size(KB),length,bitrate(kbps),sample rate(kHz),channels
.\user.dat_1,0x0011,31.90,0:02.88,88.8,22.1,1
.\user.dat_2,0x0011,230.96,0:20.94,88.8,22.1,1
.\user.dat_3,0x0011,90.86,0:08.22,88.8,22.1,1
... redacted for readability ...
.\user.dat_882,0x0011,17.97,0:01.63,88.8,22.1,1
.\user.dat_883,0x0011,19.51,0:01.76,88.8,22.1,1
883 files scanned
largest file: 1042.9kB
avg. filesize: 137.5kB
- A whole massive lot of wave files - is this it?
- The game does have a lot of voiced dialogue (for a short game) and two protagonist options so 883 lines is perfectly feasible!
- Run RiffExt - get .wem files
- Try to convert these with vgmstream - doesn't seem to work with this format or I'm configuring something wrong
- No matter, run trid again, get RIFF/WAVe with non-PCM audio
- Will changing .wem to .wav work again?
- Bulk rename all files and drag them over to Winamp...
Success! Some of the .wav files are separate voice lines, while others form conversations or sets of otherwise related dialogue. I haven't listened through them all yet, but anything obvious doesn't seem to be missing.
Addendum: If you're using VMWare Workstation 17 on a Win11 host and get crackly sound on WinXP guests, this little fix might help you:
Raymai97's VMAudioBackHost
15.01.2025
|
00:21 - My First Blog Post
|
Current Mood: Awesome
Current Music: David Bowie - Starman
Welcome to my blog in the second quarter of the 21st century. Good time to start as any! Like the rest of my site, it's a very low-key, DIY, can't-stand-no-CMS affair, so please do inform me
if you find any strange issues or just feel like ranting about the state of the modern Internet.
I'm a great fan of the human side of technology development. The people behind the software and the sales boilerplate, the huffing and puffing of the data center. The Oompa Loompas of the digital chocolate factory. The patterns and pitfalls of human thought that lead to tales of star-crossed lovers and security breaches. The unsung heroes working Operations. The game programmers leaving behind notes for nosy hackers.
There's a lot of beauty in this, I think, and it could serve one well to discuss such themes in times of tech-dystopian reporting. I'd like to do my part on this blog. In addition, I'm currently writing a novel - a bit grandiose to call it that, honestly - that is heavily centered around necessary "digital archeology" in modern computational culture... wait, what's this third-rate journal monster of a description. Let's say it's about computers as pets, not cattle, and the affectionate shepherds working with the pets in question. I'll try to post some of the background research for this writing project that might be of interest. We'll see!
Projects, yeah. Most of the time I'm immersed in one, usually of the "obsolete technology" variety. I'd really like to document them a little better. Maybe they'll be useful to someone in the future, or at least a reminder not to waste one's time with certain things.
Currently, I'm somewhat obsessed with landline telephones. I've wanted to run a PBX of my own for a long time, and our new house with its existing RJ11 wiring has made all kinds of landline fun feasible. Of course, the POTS line is disconnected - this house hasn't seen DSL since the early 2010s - but that's hardly an issue. I recently got the fantastically fun Xlink BT2, a cellphone-to-analog adapter that works via Bluetooth. My phone is tethered to the XLink device via Bluetooth, and the device is then backfeeding to our wall wiring, where our landline phones are connected around the house. Once a cellphone connected to the Xlink rings, the landline phones around the house will ring as well, and you can answer them by picking up the handset as normal. You can also dial from the landline phones. Pulse dialing is supported, so even rotary phones work! It's fun and perfectly useless, and that's the way we do things around here! Of course, there're plenty of other capabilities like voice assistant support on the Xlink device, but those are deserving of a whole post of their own. I'll do a few write ups in the future: of the OpenPBX setup (and the answering machine adventure-ish "game" housed within it), the Xlink configuration process and setting up Home Assistant voice control via analog phones.
One more point. In my opinion, information shouldn't have to hide in wikified walled gardens and closed-off Discord chats, and there's nothing worse than someone simply replying "Solved in a private message, thanks to XYZ" on a tech support forum. Thus, if you present me a question that would likely benefit others as well, be prepared to have its answer documented publicly in this blog. Of course, I will not publish any private information and you will be able to remain anonymous if you wish. Thank you for understanding.
|
|
|
|
|
|
|
|
|
| |
|
| |
|