• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Backporting HFS+ to Mac OS 8.0 and earlier

I'd be inclined to suggest the opposite approach: everything in Hacks&Dev should be considered unstable unless explicitly stated to be production-ready and even then should be treated with suspicion...
I agree with this. "Hacks" aren't usually something you want to trust your data with, and in their very nature tend to be experimental and more often than not, not well tested or proven.
 
That's a solid position and I'm inclined to agree...
Although there definitely have been some "release-ready" projects coming out of here, with possibly no good way to separate between the two...?
 
Although there definitely have been some "release-ready" projects coming out of here, with possibly no good way to separate between the two...?

Yeah; agreed some way of marking the difference would be nice - not sure what options are open in the forum software - but I think the default should be "might cause nasal demons and/or set fire to your hamster". One thing I've been suggesting for software projects is that when software is "finished" and ready for end-users to post it in the Software forum, simply because more people read that who might not be into hacks. But that's ... an emergent thing, and not necessarily how it should be done.

As usual, please feel free to ignore my opinions if they are not useful!
 
hack = at your own risk

doesn't possibly mutilate your system in an obvious way = why is it in hacks?

I know its actually a lot more vague than that but its probably still a good way to oversimplify the existence of this particular forum category tho? :-)
 
For anyone interested, I got this working on Mac OS 7.6 on CHRP on my iBook. Both of the ptch resources need to go into the System Enabler 356 file instead of the System file.
 
For anyone interested, I got this working on Mac OS 7.6 on CHRP on my iBook. Both of the ptch resources need to go into the System Enabler 356 file instead of the System file.
How reliable is HFS+ on your iBook? Can you boot from an HFS+ formatted disk? Are there any wonkiness or corruption issues?

c
 
How reliable is HFS+ on your iBook? Can you boot from an HFS+ formatted disk? Are there any wonkiness or corruption issues?

c

Hard to give any definitive claim, but it seems to work as well as it does on my PowerBook 1400c with 7.6.1 (that is to say, just fine).

Don’t know if the patched system folder can itself reside on an HFS+ volume, I haven’t tried.

System 7.6 itself is very unstable on the iBook, that’s the biggest problem right now.
 
Hard to give any definitive claim, but it seems to work as well as it does on my PowerBook 1400c with 7.6.1 (that is to say, just fine).
OK, good to know!

Don’t know if the patched system folder can itself reside on an HFS+ volume, I haven’t tried.
I'll try!

System 7.6 itself is very unstable on the iBook, that’s the biggest problem right now.
I'm sure that will diminish over time as more people explore and document what's broken/missing so @Rairii can tweak the patched Mac OS ROM files and enabler accordingly.

Speaking of patches, should I use @Phipli's Resource Miner, as found on his site, or just do it myself with ResEdit?

I just realized that I partitioned my Pismo's hard drive so Mac OS 9 has it's own space (it dual boots with Tiger 10.4.11). I'm backing it up and I'll format that partition as HFS Standard for now (will Tiger let me do that? I'll find out! EDIT: Apparently, it doesn't :/ )

c
 
Last edited:
OK, I'm applying the patch, but I'm having some trouble figuring it out.

I copied ptch -20217, ptch 41, boot 22460 and PACK 2, and nothing.

I haven't yet copied the Text Encoding Converter extension. I'll do that and see if it changes anything.

EDIT: Nope, it didn't.

c
 
Last edited:
OK, I'm applying the patch, but I'm having some trouble figuring it out.

I copied ptch -20217, ptch 41, boot 22460 and PACK 2, and nothing.

I haven't yet copied the Text Encoding Converter extension. I'll do that and see if it changes anything.

EDIT: Nope, it didn't.

c
Did you copy the ptch resources into the enabler as I mentioned above?
 
Did you copy the ptch resources into the enabler as I mentioned above?
No, I put them in the System file! It didn't seem to break anything, fortunately, but the patch isn't working either, so I'll put them into the enabler as well and see how that goes.

EDIT: That worked!

c
 
Has anyone made a version of the System Enabler 356 yet that has the HFS+ patches AND the System 7 patches?

Separately, has anyone tried making a universal System Enabler for legacy 68k systems specifically to add these patches? It seems to me that now that we've got a better understanding of how System Enablers fit into the boot process, it should be possible to create one for systems that don't need one, ensuring the date is recent enough that it gets applied, and loading in the ptch resources so that the System file can use them when it loads.
 
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..
 
Has anyone made a version of the System Enabler 356 yet that has the HFS+ patches AND the System 7 patches?

Separately, has anyone tried making a universal System Enabler for legacy 68k systems specifically to add these patches? It seems to me that now that we've got a better understanding of how System Enablers fit into the boot process, it should be possible to create one for systems that don't need one, ensuring the date is recent enough that it gets applied, and loading in the ptch resources so that the System file can use them when it loads.
That would be helpful. Much as I'd love to have my 68k Macs work with HFS+ on System 7.x trying to follow along with this thread gives me a headache. Short of a plug and play solution, I'd really appreciate a quick recap of how to mod a 68k system.
 
Back
Top