Commit Graph

49 Commits

Author SHA1 Message Date
Elliot Nunn 96730fe65d Add PowerMgrPlugin dispatch tables 2019-10-20 11:59:32 +08:00
Elliot Nunn bd8aae00d1 Dump specialised dispatch tables, starting with ATA 2019-10-20 09:44:22 +08:00
Elliot Nunn 57772c6ed3 Support multiple USB driver per frag 2019-10-20 07:54:39 +08:00
Elliot Nunn 773ed467e1 Print nonsense Mac versions as hex 2019-10-20 07:53:22 +08:00
Elliot Nunn e8a3012b41 TOC guesser: use reloc opcodes to ID real TVecs
Reloc table opcodes are used to filter out coincidental TVector-like
things.

This problem was identified while trying to debug all the XTOC glue that
didn't make sense. We also ignore this glue.
2019-10-18 14:23:41 +08:00
Elliot Nunn cf5af0f5f1 Fix another relocation bug
This time I was swapping the meaning of the RelocBySectC/D opcodes. This wasn't terribly bad, because they were rarely used. I identified the bug while figuring out how to handle the rare fragment that uses XTOC glue to access its own guts in a patchable manner.
2019-10-18 13:21:28 +08:00
Elliot Nunn d70ad36327 Survive n(loader sections) != 1 2019-10-18 12:33:07 +08:00
Elliot Nunn 098ed93e93 Ignore the stray fragment rips that I keep in my home 2019-10-18 12:30:30 +08:00
Elliot Nunn 752f92604a Fix relocation for some fragments
RelocSmRepeat/RelocLgRepeat opcodes were repeating the *next* opcode, not the
*previous* opcode. This completely wrecked the relocation parsing for a small
number of fragments. I left in the debug improvements I made while debugging.
2019-10-18 12:29:16 +08:00
Elliot Nunn 3942fc27c4 Cfmtool to write only changed files
Mostly to spare my iCloud Drive! XD
2019-10-18 10:06:51 +08:00
Elliot Nunn f1c2671a36 Finalize dump subdir names 2019-10-16 14:03:05 +08:00
Elliot Nunn 379beed301 Guess where TOC is when no TVectors are exported 2019-10-16 12:23:37 +08:00
Elliot Nunn e3704d0f41 Dump TheUSBDriverDescription with cfmtool 2019-10-16 11:58:18 +08:00
Elliot Nunn 140a076165 Don't worry about using python keywords in ppcasm 2019-10-16 10:42:57 +08:00
Elliot Nunn b62a504685 Improve cfmtool quite a bit
And the patch script to match
2019-10-16 10:41:53 +08:00
Elliot Nunn 707467529f Identify relocations by section filename 2019-10-14 21:19:27 +08:00
Elliot Nunn f9f4d24387 Dump MacsBug symbols with cfmtool 2019-10-13 17:07:33 +08:00
Elliot Nunn 8d8417030f Report errors with a pretty-printing class 2019-10-13 12:51:29 +08:00
Elliot Nunn 200bc15b91 Allow multiple instructions per line
Makes command line use easier
2019-10-13 12:51:29 +08:00
Elliot Nunn 6bdba0df45 Allow multiple labels per line
Python keywords can be used as labels (sorry eval), and multiple labels
are allowed per line
2019-10-13 12:51:19 +08:00
Elliot Nunn 7bcf2895de Make CR arguments optional for cmp* and b* 2019-10-13 12:30:47 +08:00
Elliot Nunn 87ae518d3e Validate eval-expressions a bit better 2019-10-13 12:30:47 +08:00
Elliot Nunn 7a5d1790ea Comments and credits 2019-10-10 10:05:18 +08:00
Elliot Nunn 9ed5ba495c Fix show-stopper RockHopper bugs 2019-10-10 10:05:15 +08:00
Elliot Nunn ed6c44d99a Add ATY,RockHopper2 driver
This removes the need for darthnVader's heroically patched ATI
Extensions.
2019-10-08 17:53:37 +08:00
Elliot Nunn 1efd8ef07e Add MIT license and some help 2019-10-07 19:35:57 +08:00
Elliot Nunn 9159747352 Fix incorrect mtspr/mfspr codegen 2019-10-07 19:21:52 +08:00
Elliot Nunn 147ac8c8d1 Print debug line when label is invalid 2019-10-07 19:21:52 +08:00
Elliot Nunn 809afce45b Brave attempt at a PowerPC assembler 2019-10-07 19:21:52 +08:00
Elliot Nunn ac7f6424ed Detect differently named Kauai parcels
Necessary for newer `tbxi` versions, which append the version and date to parcel
names.
2019-10-07 19:21:52 +08:00
Elliot Nunn 610ec9c8d9 Allow for multiple code sections when finding glue 2019-10-04 11:23:42 +08:00
Elliot Nunn 491e85d8a8 Dump useful code locations to glue.txt 2019-10-04 11:02:12 +08:00
Elliot Nunn 27d5faa54c Dump the loader section (cannot be rebuilt)
Cleaned up our custom repr as part of this
2019-10-04 11:02:12 +08:00
Elliot Nunn 1b38a27766 New Python library/tool for manipulating PEFs 2019-10-03 15:48:02 +08:00
Elliot Nunn a2dfc8d98d Neat new script for copying to HFS Standard volumes 2019-10-03 15:47:29 +08:00
Elliot Nunn 57ac21ae75 Neaten command-line interface 2019-09-01 10:07:49 +08:00
Elliot Nunn c3d16d959f Allow patching to/from and combo of dirs/files 2019-09-01 09:51:47 +08:00
Elliot Nunn 1626faad7e Fix bad path-manipulation bug
Apparent when relative paths are used
2019-09-01 08:45:21 +08:00
Elliot Nunn fdab20e7c6 Allow for odd-sized original ATALoad 2019-08-27 09:26:08 +08:00
Elliot Nunn cfd9bf0185 Bugfix: I was using the wrong driver copy! 2019-08-27 09:23:37 +08:00
Elliot Nunn a8c1a4de1c Definitive ATABoot patch
Key realisations:

1. The driver entry point only needs to be called once per disk,
   not once per bootable partition. Bootability is decided elsewhere.

2. As a result, my shim code does not need to access the disk at all.

3. None of the ROM-based ATADisk drivers support "slave" drives.

4. Apple drivers (contrary to the Monster Disk Driver Technote) only care
   about D5 (the drive ID and some flags) on entry.
2019-08-25 21:59:33 +08:00
Elliot Nunn 9351898fb5 Patch ATALoad to boot from driver-less disks
Unreliable: currently this only works on QEMU
2019-08-24 08:53:55 +08:00
Elliot Nunn a05f8638d7 Add some docs on prim-info 2019-08-02 10:21:17 +08:00
Elliot Nunn 7cf44609df Create README.md 2019-07-28 16:25:53 +08:00
Elliot Nunn 32d3421728 Traditional mini patches 2019-07-28 16:16:05 +08:00
Elliot Nunn c4b3fda196 Create .gitignore 2019-07-28 16:12:49 +08:00
Elliot Nunn 9ec6321412 Arbitrary file copy to remote disk 2019-07-28 16:12:38 +08:00
Elliot Nunn 00a3db5bf0 vanilla 2019-07-22 16:01:39 +08:00
Elliot Nunn 93fd9e753f Initial commit 2019-07-22 15:43:56 +08:00