|
Post by gtoal on Dec 22, 2021 16:13:01 GMT -5
There are a lot of binary patchers out there, but they all have one thing in common... they patch binaries *with binaries*. It's not very hard to insert a sequence of bytes at specific addresses, but I've never really liked things like UniPatcher or LunarIPS because it's not clear what's going on. So over the last few days I finally got around to creating a patching system that works the way I've always thought they should work... Basically, the patcher is an assembler (or it calls an external one, and works from the object file generated, but to make it easier to install I've built this test program using a built-in assembler) and patches are just the short sequences of assembly code that in other patching systems would be the first step in building a binary patch. Patching my way just takes the rom image and the assembly code patch and spits out the modified rom image. I've written it up in gtoal.com/vectrex/patcher/README.txt and the code is in gtoal.com/vectrex/patcher/patcher.tgz (or browsable in that directory). I've put some linux binaries in there that you can try running, or just untar the tgz file and type 'make' - it *should* all build without intervention. I'll be interested to see if any modifications are need to build on Windows and Mac systems - I'm hoping only the Makefiles need tweaking, though maybe some of the system include files won't be available with some Windows C compilers. I've tested it on 32 and 64 bit linux with Arm/Intel/AMD processors. I'd appreciate some feedback as to both the style of patching and building the code. I posted on VFU but it's never been as much a site for programming talk as here, so even though you're mostly the same guys, I'm hoping I'll get some response here rather than the deafening silence on FB :-) Graham
|
|