mihaip / infinite-mac

A classic Mac loaded with everything you'd want
https://infinitemac.org
Apache License 2.0
1.12k stars 67 forks source link

Crash opening a folder on Infinite HD #247

Closed jcs closed 7 months ago

jcs commented 8 months ago
  1. Navigate to https://infinitemac.org/1990/System%206.0.5?saved_hd=false in a private window.
  2. Open Inifinte HD
  3. Navigate to Developer -> THINK Pascal
  4. Open THINK Pascal 4.0 Utilities folder, and the VM will crash
ghost commented 8 months ago

Happens to me on 6.0.5, and 6.0.8. Systems 7 and later don't seem to be affected, so this seems to be related to some limitation in System 6.

that-ben commented 8 months ago

This happens because something in the Desktop DB is incompatible with System 6 (probably an icon is missing or is invalid). You can just hold down the OPTION (ALT) key upon boot and keep it held down until it reaches the desktop and asks you to rebuild the desktop on Macintosh HD. Keep the key held down after that because you also want to rebuild the desktop on Infinite HD, which is where the incompatibility occurs. Then it works just fine: dasdas

Ideally @mihaip should rebuild the desktop with both System 6 and System 7 since that disk image is used by both.

mihaip commented 8 months ago

I do rebuild the desktop DB with both for precisely this reason: https://github.com/mihaip/infinite-mac/blob/09244dcec7e37b51e74ecae85f6d93aba4860435/scripts/import-disks.py#L583-L597

Is there a difference between an explicit desktop DB rebuild (when command-option is held down) vs an automatic one (which is what I rely on -- the generated disks don't have a Desktop file at all, so the Finder creates one when the disk is mounted)?

that-ben commented 8 months ago

There shouldn't be any difference between a missing Desktop DB (or "Desktop" under System 6) that's automatically regenerated upon boot vs when you hold down COMMAND-OPTION on boot to manually trigger the Desktop DB regeneration. The question is what happened on that IM release? Was it incorrectly generated? Was the THINK Pascal folder added after the desktop was automatically built and the Finder did not like something in that folder which prevented it to add it to the Desktop DB?

So if I understand correctly, the code above is run before you release IM and the "Desktop" file (for System 6) does not already exist when you run this code, correct?

EDIT: Uhm, I see that you generate the Desktop file with System 6.0.8 but the above link uses 6.0.5. Is it possible that Apple fixed a bug in the Desktop file generation between 6.0.5 and 6.0.8 and that by generating the Desktop file with 6.0.8 it makes it somehow incompatible with 6.0.5 ?! -> Can you try to run the Desktop file generation with 6.0.5 instead of 6.0.8, see if it makes a difference?

ALSO: Can you try to reverse the order in which you generate the Desktop DB and Desktop files? You could do Basilisk first and Mini vMac second, see if it makes a difference? I wonder if newer Mac OS that saw an old Desktop file would mess with it?

mihaip commented 7 months ago

I ended up generating a smaller version of Infinite HD for System 6 and earlier (which excludes software that's too new to run on it), and that allows this folder to open.

that-ben commented 7 months ago

This makes more sense anyway, good call! Thanks :)