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

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 288
  • new to the forums
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: 2227
  • new to the forums
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?
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com

Offline IIO

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 2227
  • new to the forums
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?
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com

Offline FdB

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 567
  • And then...
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: 288
  • new to the forums
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: 2227
  • new to the forums
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".
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 288
  • new to the forums
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: 2227
  • new to the forums
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.
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com

Offline ELN

  • Gold Member (200+ Posts)
  • *****
  • Posts: 288
  • new to the forums
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/"

Offline macStuff

  • Platinum Member (500+ Posts)
  • *****
  • Posts: 1366
  • http://www.OldschoolDAW.com
    • OldschoolDAW.com
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: 2227
  • new to the forums
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.
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com