I have a slightly different question: has anyone here tried keeping ALL of the HFS+-related patches exclusively to a System Enabler and/or Mac OS ROM file that does nothing but enable HFS+?
Either a tbxi (Mac OS ROM type) or gbly (System Enabler type) file would do... as long as they can be self-contained, and loaded in a way so that HFS+ is fully enabled and working (or at least working as much as these patches allow) with a fully-unmodified System 7.5.5, Mac OS 7.6, Mac OS 7.6.1 or Mac OS 8.0 System file of any given region (US, UK, International English, Simplified Chinese, Japanese etc.)?
From what I heard, it might be possible with a System Enabler, but not with a Mac OS ROM file. But I have no clue. I know at least that load order will matter, and for that the exact file name can matter, but nothing more.
I would like to try it with either file, and see what happens...
========================================================================
... Before anything else, though, I just wanted to emphasize something that caught my eye to y'all: For those of you doing this patching without using
@elliotnunn's Python scripts directly, and who chose the way of ResEdit, ResCompare or whatever else, are you sure you got
all the relevant resources, and from the correct System file?
I say this because I peeked at the Python script just recently, and noticed that, while the GitHub page description describes the most important stuff that is to be "grabbed" and "pasted over", some of it is not mentioned there, and there's no mention which System file, exactly, to grab it from, at least for the most part.
In short,
this is what the Python script is doing (bits and pieces copy+pasted here for discussion convenience), and what I think we should also replicate when using ResEdit etc.:
1. The main stuff all Macs need (all copied from Mac OS 8.1's System file):
print('These are the main HFS+ resources:')
copy_resource_and_subresources('8.1.0', 'ptch', -20217) # HFS+ patch
copy_resource_and_subresources('8.1.0', 'boot', 22460) # Seems to be a gatekeeper/bootloader??
print('Disk Cache patch:')
copy_resource_and_subresources('8.1.0', 'ptch', 41) # Disk Cache patch
print('Disk Init pack and things it uses:')
copy_resource_and_subresources('8.1.0', 'PACK', 2) # Disk Init (brings in several "owned" resources)
copy_resource_and_subresources('8.1.0', 'p2u#', 0) # Referenced by ptch, "Text Encodings"...
copy_resource_and_subresources('8.1.0', 'STR#', -20574) # "also known as" for various formats
copy_resource_and_subresources('8.1.0', 'STR#', -20573) # "Where_have_all_my_files_gone?"
copy_resource_and_subresources('8.1.0', 'STR#', -20483) # "There is a problem with the disk"
copy_resource_and_subresources('8.1.0', 'TEXT', -20574) # "This is the localized version of the HFSPlus Wrapper Read Me."
copy_resource_and_subresources('8.1.0', 'TEXT', -20573) # Wrapper readme contents
2. Boot 3 for System 7.5.5 (and earlier, if any earlier version can work, which is still unconfirmed):
# Mac OS 9 actually loads ptch -20217 in boot 2, which is more elegant, because unlike boot 3,
# boot 2 is guaranteed not to be run from a separate gibbly
# System 7.5.5 needs boot 3 instead, not sure why...
print('Pre-7.6 needs some help to load ptch -20217:')
copy_resource_and_subresources('9.2.2', 'boot', 2)
# copy_resource_and_subresources('8.1.0', 'boot', 3)
# copy_resource_and_subresources('DT_8.1_PPC', 'boot', 3)
Note that by default the script gets boot 2 from Mac OS 9.2.2's System file! For System 7.5.5 and earlier, as per comments in the code, we might need to use whatever is on boot 3 instead, from a System file that precedes the one from Mac OS 9.2.2. The commented-out code seems to suggest either using boot 3 from Mac OS 8.1 or from Disk Tools 8.1 PPC. It would be great if we checked what was the latest version of Mac OS, after 8.1 but before 9.2.2, to keep HFS+ compatibility on boot 3 instead of 2, and then try THAT for this project. (Although defaulting it to 8.1 keeps it consistent with where we are getting the rest of the resources.)
3. So-called "gtbl" hacks required by 68k hardware (another 3 resources to copy over from Mac OS 8.1):
print('Rudimentary 68k support on Basilisk II\'s Quadra 900:')
# These 3 resources have been identified by bisecting the different resources between 8.0 and 8.1
# Use all of these for 68k, currently only Basilisk II's Quadra 900 (only works on 7.6.0/7.6.1/8.0):
# (Still unclear what these do -- next step is to reverse-engineer the gusd/gtbl/gpch mechanism)
# HFS+ not loaded if it is not changed (causes a crash on its own -- requires BOTH the below resources)
copy_resource_and_subresources('8.1.0', 'gtbl', 6) # diff contents
# Crash if it is not changed: illegal instruction (harmless on its own)
copy_resource_and_subresources('8.1.0', 'gpch', 750) # diff contents
# Error Type 41 if not present (harmless on its own)
copy_resource_and_subresources('8.1.0', 'ptch', 42) # diff contents
Looking at the scripts rather than the page description gives us more reassurance as to how to patch things up, in case anyone was wondering and would like to give it a try, but was perhaps feeling uncertain on how to proceed etc..