One of the most widely touted advantages of FOSS (free and open-source software) is that you have the freedom to modify and customise it to your needs… theoretically. How well does this work in practice? I’m convinced that most FOSS actually does a pretty poor job at satisfying this goal - often worse than well-known proprietary software!
Wherein I finally make the multiplayer mode in SEGA SPLASH! GOLF playable (more or less), and release the source code to my custom server.
Wherein I recover enough of SEGA SPLASH! GOLF to make the single-player Practice Mode work, enable the shops and character customisation, and even fix a couple of bugs along the way.
I got nerdsniped into reviving SEGA SPLASH! GOLF, a long-forgotten MMO that you've probably never heard of - I certainly hadn't.
I was encouraged to try running NixOS on my server (the one that hosts this website!), and I decided to give it a shot. But... how do I move 7+ years worth of services from Arch to one of the weirdest Linux distros out there, with no prior experience?
Wherein I run classic Mac command-line development tools on a modern computer, using Rust, Unicorn Engine and a pile of hacks.
Wherein I investigate New Super Mario Bros. Wii, use Hashcat to help me recover symbols from the Nvidia Shield port, and go on a bunch of tangents about the other Nintendo games that use the same engine.
A conversation about the silly "I made a bot read 1000 pages of X and then write Y" viral posts made me wonder... how much sense and coherence can you get out of a model like AI Dungeon's if you just let it generate text, without cherry-picking 'good' examples? I asked it to simulate an extremely unrealistic scenario which has never occurred in the real world - a train in the UK being cancelled at the last minute.
Anybody who used GeoCities in the early 2000s probably remembers using PageBuilder, the strange Java drag-and-drop interface that you would launch from your browser. I wanted to try it out again, but GeoCities is long gone. That's not stopping me, though...
An investigation into the shady stuff going on behind Digitime Tech's FOTA update service, as seen on Planet Computers's Android devices and on other low-budget Android hardware.
In which I build WindEmu, an emulator for the Psion Series 5mx (a PDA from 1999 running EPOC - the OS that would become Symbian), over the course of just over a week, without access to the actual hardware. Yet another cursed project.
I recently got a Cosmo Communicator from Planet Computers, the device that's basically the unholy offspring of a Psion Series 5mx and a no-name Android smartphone. The hardware is pretty nice (although it's held back in some aspects by their obvious lack of budget, as a niche manufacturer), but th...
Wherein I take advantage of the location and menu data used by mobile ordering apps to determine precisely where in the UK you can get the cheapest microwaved lasagne accompanied by a Jagerbomb... sorry, I mean Strikabomb. Not very useful, but fun!
Wherein I disassemble my mouse's USB command processing code in order to figure out why it's semi-bricked and how to get it into a usable state again. Long read, but hopefully worth it :p
Wherein I use IDAPython to put together a processor module for the Holtek HT68FB560 MCU, so I can properly disassemble my mouse's firmware.
Wherein I explore various different methods to try and get my mouse into bootloader mode so I can flash it. It didn't get me anywhere, but it's all about the journey, right?
Wherein I learn more than I ever wanted to learn about USB descriptors and start using pyusb to send raw USB commands to my mouse, to try and learn even more about the inner workings of it. Partly so I can make sense of the firmware disassembly, and partly so I can maybe have a hope of unbricking it!
Wherein I figure out more of the mouse's protocol by delving deep into the guts of the configuration tool, and use hidapi to write a tool that lets me poke at it. Complete with a surprising plot twist...
Wherein I rip apart the firmware file and write a disassembler for Holtek's weird RISC-ish microcontroller architecture, in a quest to learn some secrets from the mouse's source code.
Wherein I investigate the origins of the TeckNet mouse, find multiple OEMs selling variants of it, rip apart the configuration tool further, try to read too much meaning into PDB file paths, figure out part of the mouse's protocol and rip apart the firmware updater. The saga continues, for now!
Wherein I delve into the internals of my no-name brand "Tecknet Hypertrak Gaming Mouse" in an attempt to write a cross-platform tool that can manipulate its configuration without having to use the awful Windows-only tool it's shipped with. In this first part we tear apart said tool to figure out how it communicates with the mouse.
Wherein I set up OpenVPN on my VPS so that I can access my home network (which is behind forced NAT and can't accept inbound connections of any kind) while I'm away from home.
Wherein I try to figure out how to make the Google Closure Compiler play nicely with a bunch of other stuff like Gulp and Preact from the scary outside-of-Google world. I think I mostly succeeded. Hopefully.
Wherein I try to find a way to redirect API requests from Twitter clients through an external proxy, for request modification shenanigans. It's easy everywhere... except for non-jailbroken iOS. Because Apple.
I'm planning to write a series of posts about low-level modifications to New Super Mario Bros. Wii, the 2009 Nintendo game. This is a sort of 'prequel' to that series, where I write some fluff about how I got to this point and the history/background of NSMBW mods.
Later posts will be more technical, with more of a focus on low-level reverse-engineering stuff and on how I achieved the things I did in Newer SMBW.
This post marks my second attempt to start a blog! The last one barely got off the ground, but I feel like I've got more to write about now, so perhaps I'll actually keep it going?