Author Topic: Boot without the "Mac OS 9 Drivers"  (Read 3246 times)

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 293
  • new to the forums
  • Liked:
  • Likes Given: 0
Boot without the "Mac OS 9 Drivers"
« on: August 26, 2019, 06:49:56 PM »
Hi all,

This seems to have flown under the radar on the "Latest hacks" thread. I think that it is a very useful hack.

I have written a script to patch any "Mac OS ROM" file. It adds the ability to boot from an ATA disk that lacks the "Mac OS 9 Drivers". Previously, the ROM would fail to boot with a question-mark-floppy.

Using a ROM with this patch applied, Mac OS 9 can be successfully installed from within Mac OS X, without wiping the hard disk! We should make a MacOS9Lives kit for this purpose.

https://github.com/elliotnunn/tbxi-patches/blob/master/ataboot.py

Elliot

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2814
  • just a number
  • Liked:
  • Likes Given: 29
Re: Boot without the "Mac OS 9 Drivers"
« Reply #1 on: August 27, 2019, 03:32:53 AM »
iŽve noticed that post very well, but i thought it is up to you to decide wether it is filed under "yet another gimmick" or "the next revolution"

have you yet found any application or service which wont work on a disk without drivers?
insert arbitrary signature here

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2814
  • just a number
  • Liked:
  • Likes Given: 29
Re: Boot without the "Mac OS 9 Drivers"
« Reply #2 on: August 27, 2019, 03:41:41 AM »
Q:
if you apply this, does it have any negative effect when you use it with a "normal" boot disk, which already contains the driver?
insert arbitrary signature here

Offline FdB

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 666
  • And then...
  • Liked:
  • Likes Given: 0
Re: Boot without the "Mac OS 9 Drivers"
« Reply #3 on: August 27, 2019, 06:58:11 AM »
Q:
if you apply this, does it have any negative effect
when you use it with a "normal" boot disk,
which already contains the driver?

A: Most likely not... if you already have your Mac submerged in an oil-filled terrarium.
(Sorry, couldn't resist.) ;)

Thanks ELN... interesting possibilities.
This Must Be The Place

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 293
  • new to the forums
  • Liked:
  • Likes Given: 0
Re: Boot without the "Mac OS 9 Drivers"
« Reply #4 on: August 27, 2019, 06:58:56 AM »
An ATA disk without drivers won't be bootable in Mac OS 9. This is why we often reinitialise Mac OS X disks with Drive Setup.

A: This patch has no effect when a driver is already present on the disk. It merely emulates a driver when one is absent.

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2814
  • just a number
  • Liked:
  • Likes Given: 29
Re: Boot without the "Mac OS 9 Drivers"
« Reply #5 on: August 27, 2019, 12:43:45 PM »
so there should no reason be left why it should not just be added to the mini OS as well as the "unsupported OS".
insert arbitrary signature here

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 293
  • new to the forums
  • Liked:
  • Likes Given: 0
Re: Boot without the "Mac OS 9 Drivers"
« Reply #6 on: August 31, 2019, 06:40:40 AM »
That's the plan. But I want to fix the frozen-mouse bug before I put out a new mini ROM.

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2814
  • just a number
  • Liked:
  • Likes Given: 29
Re: Boot without the "Mac OS 9 Drivers"
« Reply #7 on: August 31, 2019, 12:43:07 PM »
would you have a screenshot of the tbxi editor and give a hint what minimum OSX/windows is required to have the correct python.
insert arbitrary signature here

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 293
  • new to the forums
  • Liked:
  • Likes Given: 0
Re: Boot without the "Mac OS 9 Drivers"
« Reply #8 on: August 31, 2019, 07:09:11 PM »
Python 3 runs at least as far back as Tiger and Windows XP. If tbxi accidentally depends on any more recent Python features, I will fix it.

Those links again:
https://github.com/elliotnunn/tbxi
https://github.com/elliotnunn/tbxi-patches

Because this is a command line program, I will give some textual examples.

The online help for tbxi:
Code: [Select]
$ tbxi dump -h
usage: tbxi dump [-h] [-o <output-file>] <input-file>

Break a ROM file into rebuildable parts. Any ROM released since the
660AV/840AV ("SuperMario") can be processed, including NewWorld ROMs. Because
successive ROM formats tended to wrap layers around old ones, the image is
dumped recursively.

positional arguments:
  <input-file>      original file

optional arguments:
  -h, --help        show this help message and exit
  -o <output-file>  destination (default: <input-file>.src)

$ tbxi build -h
usage: tbxi build [-h] [-o <output-file>] <input-dir>

Recreate a dumped ROM file. With minor exceptions, the result should be
identical to the original. A NewWorld bootinfo file can be BinHex-encoded
('.hqx'), or have a '.idump' file created alongside.

positional arguments:
  <input-dir>       source directory

optional arguments:
  -h, --help        show this help message and exit
  -o <output-file>  destination (default: Mac OS ROM)

An example directory tree produced by tbxi dump:
Code: [Select]
/Users/elliotnunn/Documents/mac/MacROMan/TestImages/New\ World\ ROM/2003-01-10\ -\ Mac\ OS\ ROM\ 9.8.1.rom.src
├── Bootscript
├── MacOS.elf
├── Parcels
└── Parcels.src
    ├── AGPLib.pef
    ├── BacklightDriver.pef
    ├── DFMLib.pef
    ├── DevNLib.pef
    ├── EtherPrintfLib.pef
    ├── FWServicesLib.pef
    ├── GenericDriverFamily.pef
    ├── Grackle_PCICyclesLib.pef
    ├── MacROM
    ├── MacROM.src
    │   ├── Configfile-1
    │   ├── EverythingElse
    │   ├── ExceptionTable
    │   ├── Mac68KROM
    │   ├── Mac68KROM.src
    │   │   ├── DeclData
    │   │   ├── MainCode
    │   │   ├── Romfile
    │   │   └── Rsrc
    │   │       ├── CURS_1
    │   │       ├── CURS_2
    │   │       ├── CURS_3
    │   │       ├── CURS_4
    │   │       ├── DRVR_-20175_ATALoad
    │   │       ├── DRVR_48_EDisk
    │   │       ├── DRVR_53_ATADisk
    │   │       ├── FONT_12
    │   │       ├── FONT_393
    │   │       ├── FONT_396
    │   │       ├── FONT_521
    │   │       ├── GARY_1
    │   │       ├── KCAP_1
    │   │       ├── KCAP_14
    │   │       ├── KCAP_16
    │   │       ├── KCAP_17
    │   │       ├── KCAP_198
    │   │       ├── KCAP_199
    │   │       ├── KCAP_2
    │   │       ├── KCAP_200
    │   │       ├── KCAP_204
    │   │       ├── KCAP_205
    │   │       ├── KCAP_206
    │   │       ├── KCAP_4
    │   │       ├── KCAP_5
    │   │       ├── KCHR_0_U_S
    │   │       ├── KMAP_0
    │   │       ├── KMAP_198
    │   │       ├── KMAP_199
    │   │       ├── KMAP_2
    │   │       ├── KMAP_200
    │   │       ├── KMAP_204
    │   │       ├── KMAP_205
    │   │       ├── KMAP_206
    │   │       ├── KMAP_27
    │   │       ├── PACK_4_AT2_NetBoot_NoFPU
    │   │       ├── PACK_5_AT2_NetBoot_NoFPU
    │   │       ├── PACK_7
    │   │       ├── PICT_100_DiskMode_0.pict
    │   │       ├── PICT_101_DiskMode_1.pict
    │   │       ├── PICT_102_DiskMode_2.pict
    │   │       ├── PICT_103_DiskMode_3.pict
    │   │       ├── PICT_104_DiskMode_4.pict
    │   │       ├── PICT_105_DiskMode_5.pict
    │   │       ├── PICT_106_DiskMode_6.pict
    │   │       ├── PICT_95_DiskMode_SCSI.pict
    │   │       ├── PICT_96_DiskMode_Arrow1.pict
    │   │       ├── PICT_97_DiskMode_Arrow2.pict
    │   │       ├── PICT_98_DiskMode_Arrow3.pict
    │   │       ├── PICT_99_DiskMode_Battery.pict
    │   │       ├── accl_0
    │   │       ├── accl_1
    │   │       ├── accl_2
    │   │       ├── accl_4
    │   │       ├── accl_5
    │   │       ├── accl_6
    │   │       ├── accl_7
    │   │       ├── accl_8
    │   │       ├── accl_9
    │   │       ├── cfrf_0
    │   │       ├── cicn_-20020
    │   │       ├── cicn_-20021
    │   │       ├── cicn_-20022
    │   │       ├── cicn_-20023
    │   │       ├── clut_1
    │   │       ├── clut_127
    │   │       ├── clut_2
    │   │       ├── clut_4
    │   │       ├── clut_5
    │   │       ├── clut_8
    │   │       ├── clut_9
    │   │       ├── code_-20164
    │   │       ├── dfrg_-20722_LANDisk.pef
    │   │       ├── fexp_-21140_ComponentDriverExpert.pef
    │   │       ├── fexp_-21141_GenericDriverFamilyExpert.pef
    │   │       ├── frag_-21140_FWPCIScanner.pef
    │   │       ├── frag_-21141_FWExpertRegistration.pef
    │   │       ├── frag_-21142_sbp609e_104d8.pef
    │   │       ├── gama_0_StdGamma
    │   │       ├── gcko_43
    │   │       ├── gpch_1207
    │   │       ├── ics4_-16386
    │   │       ├── ics8_-16386
    │   │       ├── ics_-16386
    │   │       ├── mitq_0
    │   │       ├── ncod_0_CodeFragmentMgr.pef
    │   │       ├── ncod_1_MixedMode.pef
    │   │       ├── ncod_2_MPLibrary.pef
    │   │       ├── ncod_50_NativeNub.pef
    │   │       ├── ncod_8_ProcessMgrSupport.pef
    │   │       ├── ndrv_-16515_BCScreen.pef
    │   │       ├── ndrv_-20164_media_bay.pef
    │   │       ├── ndrv_-20166_DefaultPCCardEnabler.pef
    │   │       ├── ndrv_-20181_pccard_ata.pef
    │   │       ├── ndrv_-20776_pciclass_0c0310.pef
    │   │       ├── ndrv_-20777_USBUnitTableStorageDriver.pef
    │   │       ├── ndrv_-20994_sbp609e_104d8.pef
    │   │       ├── ndrv_-21143_fw609e_10483.pef
    │   │       ├── nitt_43_Native_4_3.pef
    │   │       ├── nlib_-16400_NameRegistryLib.pef
    │   │       ├── nlib_-16401_DriverServicesLib.pef
    │   │       ├── nlib_-16402_DriverLoaderLib.pef
    │   │       ├── nlib_-16403_VideoServicesLib.pef
    │   │       ├── nlib_-16404_PCILib.pef
    │   │       ├── nlib_-16405_VideoServicesGlobals.pef
    │   │       ├── nlib_-16407_DSLGlobalsLib.pef
    │   │       ├── nlib_-16411_PowerMgrLib.pef
    │   │       ├── nlib_-16420_Math64Lib.pef
    │   │       ├── nlib_-20186_ATAManager.pef
    │   │       ├── nlib_-20264_CursorDevicesLib.pef
    │   │       ├── nlib_-20776_USBServicesLib.pef
    │   │       ├── nlib_-20777_USBFamilyExpertLib.pef
    │   │       ├── nlib_-20778_USBManagerLib.pef
    │   │       ├── nlib_10_StdCLib.pef
    │   │       ├── nlib_3_MPSharedGlobals.pef
    │   │       ├── nlib_5_InterfaceLib.pef
    │   │       ├── nlib_6_PrivateInterfaceLib.pef
    │   │       ├── nlib_7_BootStdCLib.pef
    │   │       ├── nlib_8_MathLibGlobals.pef
    │   │       ├── nlib_9_MathLib.pef
    │   │       ├── nsrd_1_SerialDMA
    │   │       ├── ntrb_-16400_NameRegistryTraps.pef
    │   │       ├── pixs_-10199
    │   │       ├── pixs_-10200
    │   │       ├── pixs_-10201
    │   │       ├── pixs_-10202
    │   │       ├── pixs_-10203
    │   │       ├── pixs_-10204
    │   │       ├── pixs_-10205
    │   │       ├── pixs_-10206
    │   │       ├── pixs_-10207
    │   │       ├── pixs_-10208
    │   │       ├── pixs_-14334
    │   │       ├── pixs_-14335
    │   │       ├── ppat_16
    │   │       ├── ppat_18
    │   │       ├── rovm_0
    │   │       ├── scod_-20961
    │   │       ├── scod_-20984
    │   │       ├── snd_1_Simple_Beep
    │   │       ├── usbd_-20776_USBHubDriver0.pef
    │   │       ├── usbd_-20777_USBHubDriver1.pef
    │   │       ├── usbd_-20778_USBHIDKeyboardModule.pef
    │   │       ├── usbd_-20779_USBHIDMouseModule.pef
    │   │       ├── usbd_-20780_USBCompositeDriver.pef
    │   │       ├── usbd_-20781_USBMassStorageClassDriver.pef
    │   │       ├── usbd_-20782_USBMassStorageVSDriver.pef
    │   │       ├── usbf_-20776
    │   │       ├── usbs_-20776_USBMassStorageLoader.pef
    │   │       ├── usbs_-20781_USBShimKeyboard.pef
    │   │       ├── usbs_-20782_USBShimMouse.pef
    │   │       ├── vadb_0_ISO_Cosmo
    │   │       ├── vadb_1_JIS_Cosmo
    │   │       ├── vadb_2_ANSI_Cosmo
    │   │       ├── vadb_3_ISO_Andy
    │   │       ├── vadb_4_JIS_Andy
    │   │       └── vadb_5_ANSI_Andy
    │   └── NanoKernel-v02.28
    ├── NVRAMServicesLib.pef
    ├── NativePowerMgrLib.pef
    ├── PCCard.pci104c,ac1a.cardbus.pef
    ├── PCCard.pci104c,ac50.cardbus.pef
    ├── PMULib.pef
    ├── Parcelfile
    ├── PowerMgrPlugin.CUDA.pef
    ├── PowerMgrPlugin.PMU.pef
    ├── PowerMgrPlugin.PMU2000.pef
    ├── PowerMgrPlugin.PMU99.pef
    ├── RTCServicesLib.pef
    ├── StartLib.pef
    ├── TimeManagerLib.pef
    ├── UniNorth_PCICyclesLib.pef
    ├── apple21143.network.pef
    ├── bmac+.network.pef
    ├── cmd646-ata.pef
    ├── cofb.display.pef
    ├── gmac.network.pef
    ├── heathrow-ata.pef
    ├── kauai-ata.pef
    ├── keylargo-ata.pef
    ├── keywest-i2c.pef
    ├── mac-io.nvram.pef
    ├── nvram,flash.pef
    ├── pci104c,ac1a.cardbus.pef
    ├── pciclass,0c0010.ieee1394.pef
    ├── uni-n-i2c.pef
    ├── via-cuda.rtc.pef
    ├── via-pmu.nvram.pef
    └── via-pmu.rtc.pef

Lastly, the online help for the ataboot.py patch (all tbxi-patches have the same simple command-line interface):
Code: [Select]
$ tbxi-patches/ataboot.py -h
usage: ataboot.py [-h] [-o DEST] SRC

Support ATA startup disks without an Apple_Driver_ATA partition. This allows
Mac OS to be installed on a disk without repartitioning it. Accomplished by
shoehorning the Drive Setup 2.1 ATA driver into the ROM ATALoad driver, to
replace missing driver partitions.

positional arguments:
  SRC         ROM or dump directory

optional arguments:
  -h, --help  show this help message and exit
  -o DEST     optional destination path -- "file" or "directory/"

macStuff

  • Guest
Re: Boot without the "Mac OS 9 Drivers"
« Reply #9 on: August 31, 2019, 10:44:08 PM »
files less than 60MB can simply be attached to any forum post;
so feel free to publish the "kit" yourself + post

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2814
  • just a number
  • Liked:
  • Likes Given: 29
Re: Boot without the "Mac OS 9 Drivers"
« Reply #10 on: September 01, 2019, 04:47:33 PM »
great, thanks. will take a while until iŽll try, but then i will give you some feedback how it looks from an amateur perspective.
insert arbitrary signature here

Offline Jubadub

  • Veteran Member (100+ Posts)
  • ****
  • Posts: 112
  • New Member
  • Liked:
  • Likes Given: 0
Re: Boot without the "Mac OS 9 Drivers"
« Reply #11 on: May 14, 2020, 03:44:39 AM »
How feasible would it be to port the scripts to MacPython 2.3.5, for Mac OS 9? ;)

Offline Jubadub

  • Veteran Member (100+ Posts)
  • ****
  • Posts: 112
  • New Member
  • Liked:
  • Likes Given: 0
Re: Boot without the "Mac OS 9 Drivers"
« Reply #12 on: May 17, 2020, 03:54:40 AM »
On a side-note, since this patch was used for the Mac mini ROM in v9 to boot without OS 9 drivers pre-installed, and the mini (at least 1.5GHz) can boot from GPT-formatted drives, and GPT allows for drives of capacity beyond 2TB to be used, I tried combining all of these together.

Unsurprisingly, I got the floppy with the blinking question mark icon. :P It was still fun to try it out, though, just in case.

(Note: I used a 30GB HDD for this test, so the problem wasn't going past 2TB.)

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2814
  • just a number
  • Liked:
  • Likes Given: 29
Re: Boot without the "Mac OS 9 Drivers"
« Reply #13 on: May 17, 2020, 05:15:58 AM »
so you suggest to make OS9 bootable from GUID? :)

then i think step 1 would be to come around the size limits of OSX, which also only supports 2, 3, 4, or 8 TB of adress space, GUID or not. :P
insert arbitrary signature here

Offline teroyk

  • Veteran Member (100+ Posts)
  • ****
  • Posts: 149
  • -
  • Liked:
  • Likes Given: 8
Re: Boot without the "Mac OS 9 Drivers"
« Reply #14 on: May 17, 2020, 08:52:11 AM »
Should somebody check what Lacie Silverlining Pro 6.5.8 do, when you choose install OS 9 drivers, it seems that it install it's own drivers that are loaded before OS 9 really boots.
I bought my first new Mac when OS X 10.1 released. And I bought that Mac because it had Mac OS 9 too. And I bought my first 68k Mac when Apple stopped PPC Macs.