Recent Updates:
GDIBuilder 2.0
- Details
- Published: 14 December 2024
The 10th anniversary of GDIBuilder's release was this past week. To celebrate, I released a brand new version for Windows, Mac, and now Linux too. GDIBuilder v2 adds two new windows to the GUI version of the app. Of those two windows, Browse and Extract is the more notable one. You can open an existing .gdi file or .cue sheet for a GD-ROM to view and extract files from the disc. This is especially useful on non-Windows platforms because I'm not aware of any other UI applications that worked on the current OS's that could do this. The other new window is useful for "rebuilding" patched versions of existing .gdi images. If you have a disc where only 2 files need to change, you can provide the existing .gdi as input along with a folder containing only those files (in the correct subdirectories) and a new image will be built based on the original with your changed files. The original disc does not need to be extracted first, which makes the process of building patched copies faster.
The backend for disc building was based on the .NET DiscUtils library and as part of these changes, I migrated my GDI additions to a newer version of that library for disc reading to be possible. Some of the changes were also for other developers who used GDIBuilder in their own apps. As part of that, the backend behind GDIBuilder is now available on NuGet as DiscUtilsGD for other .NET developers to build or extract discs in their own apps.
You can get the new version of GDIBuilder here.
Miscellaneous News
- Details
- Published: 07 February 2024
Although the main page of this site had not received any updates over past 2 years, there were some things that changed during this time. Most of these things were announced on social media, which my usage of has also changed as well. Last year I updated the Contact page to include some of my accounts on other sites like Mastodon. Today I added a bluesky account to that list, although the frequency at which I post things is not going to be very impressive. The majority of my releases from the past 3 years have been macOS builds of open source games. In November I releaed a new version of Fruit Remover, which is available on the iOS App Store. This release happened only because I was required to update the game for it remain on the store, so I updated the button art while I was at it.
Behind the scenes, in June 2022 I migrated this website from a content management system over to static HTML while retaining the exact same design. This was primarily so that I could avoid having to install updates to that software on a regular basis. My original intent when switching to a CMS in the early 2000's was so that I could update the website more easily and thus more often, but in reality I didn't and the backend database was filling up with garbage due to how that system handled requests for non-existing content. Adding a new post or page manually does not take significantly longer by hand than it did with a live editor, and by having static content if I ever need to do server upgrades again I can easily restore the site with a simple reupload because no software configuration or backend database is required.
As for older projects, I haven't touched the most popular ones in the past few years, but I also stopped getting regular emails about those too. In the event things stop working, I will update them again.
MultiPatch 2.0
- Details
- Published: 03 September 2021
Last month I received a report of an XDelta patch that was incompatible with MultiPatch. After upgrading to the latest version of XDelta, I realized the cause of the problem was not the outdated version, but rather an optional secondary compression feature available in XDelta patches that I had not enabled support for. Now that it's enabled and the latest version is being used, hopefully that will work well for another 10 years before someone finds a problem with it. In the process of making the XDelta update, I got a bug report from a user about the PPF problem that had been fixed in 1.8 back in May. Since they weren't on the latest version which was months old already, I decided to add a "Check for updates" function to the app to prevent problems like this in the future. The next logical version number to use after 1.8 might have been 1.9, but since having 1.10 after that would be confusing to some people who treat versions like decimal numbers I decided to make the update bigger and make it version 2.0.
Aside from the XDelta update and Check for Updates function, I refreshed the UI to make it look better on macOS 11. This includes an updated icon with the flat rounded-square design that Apple introduced in Big Sur. There are also some minor fixes that were contributed on GitHub. Finally, I refreshed the MultiPatch website to include information that was previously in the ReadMe file, and added dark mode support to the site. You can get MultiPatch 2.0 from the newly refreshed page here.
MultiPatch 1.8
- Details
- Published: 21 May 2021
I received a report a few months ago that PPF Patching in MultiPatch wasn't working correctly again. The last time I fixed this was in version 1.7 back in 2018, but it seems there were more problems with LibPPF than what were previously documented. Later in 2018 after MultiPatch 1.7 was finished, the full source code to the original "official" PPF patcher was released on GitHub and I noticed this after looking for solutions to the new problems reported. I replaced the PPF patching in MultiPatch with this code, which also included the ability to create patches. It also supports PPF3, which the old code only handled versions 1 and 2. I am hoping that this new version of the PPF code is going to be good for many years to come, since it's based on the original code.
There were some minor issues with the user interface under macOS 11 Big Sur, because the type of button used for the "Apply" and "Create" buttons was no longer recommended for use and it appeared disabled even when it was not. The button has been changed to an alternate style which appears correctly on all supported macOS versions. I've also posted a new build of the command line version which supports back to macOS 10.9 this time and includes the PPF changes. As usual, MultiPatch can be found here.
MP3Gain Express 2.4.1 and 2.5
- Details
- Published: 24 December 2020
MP3Gain Express 2.4.1 has been released. This is just a minor update to add Apple Silicon support, with no other changes. I mentioned in the previous update that I had hoped to include something new in this release, but I decided there were other things I would rather work on for the rest of the year. Instead of leaving the pending changes until I was ready to make more changes I have instead released the new version now. That's it for this year, but I hope to continue releasing new things next year.
MP3Gain Express Version 2.5 was released on February 9th 2021. This fixes AACGain support which was accidentally missing in 2.4.1.
App Updates 2020
- Details
- Published: 04 December 2020
Last week I released a few app updates, primarily to add Apple Silicon support.
First, two minor ones. Back around 2008 I had released a Mac port of GCNcrypt, the tool for encrypting & decrypting Gamecube Action Replay codes. This was originally a PowerPC + 32-bit Intel App, which was not compatible starting with last year's macOS Catalina. The new build is now 64-bit Intel + Apple Silicon, so it should be good for many more years to come. That is available here. Next up is the macOS patcher that comes with the Mother 3 Fan Translation. It was also updated to include Apple Silicon and they have already updated the official download to include the new macOS build but everything else is the same. The source code to that patcher is on GitHub.
Finally, MultiPatch was updated to version 1.7.1. The new release adds Apple Silicon support along with updating to the latest code for the patching library used for BPS, UPS and IPS. I've also added a separate download for a command-line build which was requested.
At this point MP3Gain Express is the only remaining app that I can update for Apple Silicon this year. I've already committed changes to GitHub that allow the command-line AACGain tool to be built directly from Xcode as a Universal Binary for both Intel + ARM. I could release a new build quickly which just includes Apple Silicon support, but I'd like to find time to add at least one feature request from the GitHub page before releasing another update. I still hope to have a new release of that out before the end of this year.
App Modernization
- Details
- Published: 31 October 2020
I expect to release several updates to various applications over the next few months. The first of those will be Fruit Remover 1.6, which was just submitted to the App Store for review a few minutes before I started writing this post. The main reason for this update was that the game was not working correctly on iPhone 12. Most of the game code was written back in 2009 and every time Apple released a device with a new screen size I was manually adding a new layout to handle the larger screen size without having to scale everything. This approach was great for several updates, it allowed room for new controls like the dedicated pause button in Challenge mode on the iPhone 5, or the status bar on the iPhone 6. After that point there was little benefit for the game to have more screen space and for the Plus / Max sized devices I was just developing a base layout and scaling it up for the larger screen sizes. The problem with the game was that for any "unknown" device size, it would fall back to the original code written for the 3.5 iPhone, iPhone 3G, 3GS, 4 and older iPod Touch models. Hence when iPhone 12 introduced new screen sizes that did not match the iPhone X / iPhone 11, the game fell back to the original 3.5in logic and the wrong layout was loaded and the touch input was based on where things would be if the screen was smaller. I removed the code for 3.5 inch devices and iPhone X is now the "default" logic for unknown / new screen sizes. As long as iOS devices retain generally the same aspect ratio, which should be true for at least a few years, the code will properly scale for new sizes. I also had to follow modern standards, like making the game support being suspended in the background which was something that never existed when the game was first released.
On the macOS side of things, I expect to make several app updates soon. With the move to Apple Silicon based Macs over the next two year I intend to update any older apps as it becomes possible to do so. Basic applications will be easy to update - I just need to recompile the code. I already have MultiPatch running on ARM, as well as the random Mac port of GCNCrypt that I released 12 years ago. MP3Gain Express is a more challenging situation, because the manual build process for AACGain is not easily adaptable to building for multiple CPUs. I had originally tried to update this handle both platforms, but the amount of patching to the original build process needed for this to work is too complicated to maintain going forward if changes are made to the original code. I still need to explore more options for that, but in the worst case scenario I can do builds on two different machines (ARM and Intel) and combine the binaries into one manually.
GDIBuilder and other .NET projects will take longer to receive updates with native Apple Silicon support. Those require updates to the development tools used, which Microsoft has on their roadmap for .NET 6 which is not scheduled for release until Fall of 2021. I will attempt to update them when the necessary tools are available. The Mac port of Sonic 3 AIR is already working on Apple Silicon hardware using Rosetta if you switch the render mode to "OpenGL Software" in the options menu. A native build of that should be ready whenever a new release occurs after Apple Silicon Macs have been released. I have actually posted one app with Apple Silicon support already. The macOS prerelease build of the RVM project is already a universal binary. This was only done because it's already a beta build, final hardware or software could break it later but I can just make a new build if that happens.
I hope to share some new app updates before the end of the year.
MP3Gain Express 2.4 & Sonic 3 A.I.R. for macOS
- Details
- Published: 30 May 2020
Earlier this week I released version 2.4 of MP3Gain Express. This version fixes the undo feature, which was broken in 2.3.1 as it only processed the first files in your list. It also removes support for older versions of macOS in preparation for future modernization updates, but I also released version 2.3.4 with the same bugfix and this version will run everywhere it did before. Both versions are linked from the App's page here.
I have also ported Eukaryot's Sonic 3 A.I.R. to macOS. This is a great remaster of SEGA's Sonic 3 & Knuckles with widescreen support, higher quality audio, mod support, achievements and other modern features. It requires the original game purchased from Steam to run. You can find the port here.
GDIBuilder v1.3 released, MP3Gain Express 2.3.1
- Details
- Published: 12 December 2019
Over 4 years after the previous version, I received the first bug report for GDIBuilder on GitHub. The application was not including empty folders in a disc image, and also not writing folder timestamps to the disc. Both of these problems have been corrected. In the process, I modernized the application for current machines. The Windows version now supports High-DPI displays. The macOS version now supports dark mode and is notarized for macOS 10.15 Catalina.
You can download the new versions of GDIBuilder here.
MP3Gain Express was also updated to version 2.3.1. This fixes a critical bug in the original AACGain library which would delete files that it was unable to process successfully. You can find the latest version here or just use "Check for updates" inside the app.
Minor site update
- Details
- Published: 09 June 2019
I moved this website to a new server. No major changes have been made outside of some software updates. The upgrades required me to rebuild the links page, so I added a new link to my Github profile there.
In late 2018 I posted the source code to the Gamecube Disc Browser on GitHub. I will continue to open source older projects when there is interest if I am not working on them anymore.
MultiPatch 1.7 released
- Details
- Published: 14 December 2018
MultiPatch has been updated to version 1.7. There are several changes in this release including fixes for applying PPF patches, added support for .RUP patches, and I replaced the IPS, BPS and UPS patchers with a more popular patching library. It also supports dark mode in macOS Mojave and it is signed and notarized for newer versions of macOS Gatekeeper so you don't need to right-click launch to bypass it. The latest version is available here.
Fruit Remover 1.5 and MP3Gain Express 2.3
- Details
- Published: 22 November 2018
Last month I received a notification email that Fruit Remover would be pulled from the iOS App Store for not being updated in a long time unless I updated it. As a result, I updated Fruit Remover with support for the iPhone X family of devices as well as the new iPad Pro models. The timing worked out well because it meant Fruit Remover was one of the first games to support the 11 inch iPad Pro. The download count is pretty low on that, but it's nice to be able to continue offering my old projects for download which is the primary reason why I wanted to update it again. For more information, visit FruitRemover.com. While I was working on it I found some interesting things to post about, but I never got around to re-installing the blog after the site outage several years back. I don't think I'll re-install the blog software at this point, but I may bring back the content at some point.
Also, MP3Gain Express has been updated to version 2.3. More information on the update can be found on the page for that application.
The update to MultiPatch mentioned in the previous post was delayed due to the two other app updates mentioned above. Now that those have been completed, I'm currently planning for the MultiPatch update to be my next release.