Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LEOCmd usage:
- header
- 0x0 1 command
- 0x1 1 RESERVED
- 0x2 1 control flags
- 80 enable post queue
- 04 brake on
- 02 stand-by mode
- 01 start cmd/translate byte to LBA/read RW capacity
- 0x3 1 RESERVED
- 0x4 1 status
- 02 check condition
- 08 busy
- 0x5 1 sense codes: DD Status error codes
- 0x6 1 RESERVED
- 0x7 1 RESERVED
- 0x8 4 response from posting thread
- 01 clear queue
- 0x0 0xC header
- 02 inquiry
- 0x0 0xC header
- 0xC 1 device type [always 0]
- 0xD 1 hardware version
- expects 01 or 03 for retail
- old dev units return 0x4, new ones 0x14
- 0xE 1 number of devices [always 1]
- 0xF 1 Leo BIOS (software) version
- 0 versions prior to 2.0H
- 1 2.0H
- 2 patched version
- 3 2.0I
- 0x10 4
- 03 test unit ready
- 0x0 0xC header
- 0xC 1 test {1: disk removed, 2:head retracted, 4:spindle stopped}
- 0xD 3 RESERVED
- 04 rezero
- 0x0 0xC header
- 05 read
- 0x0 0xC header
- 0xC 4 LBA
- 0x10 4 transfer blocks
- 0x14 4 p->data
- 0x18 4 size
- 06 write
- 0x0 0xC header
- 0xC 4 LBA
- 0x10 4 transfer blocks
- 0x14 4 p->data
- 0x18 4 size
- 07 seek
- 0x0 0xC header
- 0xC 4 LBA
- 08 start/stop
- 0x0 0xC header
- 09 read capacity
- 0x0 0xC header
- 0xC 4 start LBA
- 0x10 4 end LBA
- 0x14 4 size in bytes
- 0A translate
- 0x0 0xC header
- 0xC 4 start LBA
- 0x10 4 in
- 0x14 4 out
- 0B select
- 0x0 0xC header
- 0xC 1 page code
- 0xD 1 RESERVED
- 0xE 1 standby time
- 0xF 1 sleep time
- 0x10 1 LED on time
- 0x11 1 LED off time
- 0x12 1 RESERVED
- 0x13 1 RESERVED
- 0C read disk ID
- 0x0 0xC header
- 0xC 4 p->data
- 0x0 1 format
- 0x1 2 game ID
- 0x3 1 region
- 0x4 1 version
- 0x5 1 disk#
- 0x6 1 RAM use (1 if using MFS)
- 0x7 1 disk use (0 for game, 1 for expansion)
- 0x8 8 serial: line#
- 0x10 8 serial: time
- 0x0 1 RESERVED
- 0x1 1 year upper half
- 0x2 1 year lower half
- 0x3 1 month
- 0x4 1 day
- 0x5 1 hour
- 0x6 1 minute
- 0x7 1 second
- 0x18 2 company (same as controller pak)
- 0x1A 6 RESERVED (label)
- 0D read time
- 0x0 0xC header
- 0xC 1 RESERVED
- 0xD 1 year upper half (set via code)
- 0xE 1 year
- 0xF 1 month
- 0x10 1 day
- 0x11 1 hour
- 0x12 1 minute
- 0x13 1 second
- 0E set time
- 0x0 0xC header
- 0xC 1 RESERVED
- 0xD 1 RESERVED [upper half of year, not read]
- 0xE 1 year
- 0xF 1 month
- 0x10 1 day
- 0x11 1 hour
- 0x12 1 minute
- 0x13 1 second
- 0F ???; catches these errors: LEO_SENSE_COMMAND_PHASE_ERROR, LEO_SENSE_DEVICE_COMMUNICATION_FAILURE, LEO_SENSE_POWERONRESET_DEVICERESET_OCCURED
- 0x0 0xC header
- These are found (only?) in leoulx:
- 10 read ??? (sets 0x400/0x800 bitflags)
- 0x0 0xC header
- 0xC 4 LBA
- 0x10 4 transfer blocks
- 0x14 4 p->data
- 0x18 4 size
- 11 write ??? (sets 0x8400/0x8800 bitflags)
- 0x0 0xC header
- 0xC 4 LBA
- 0x10 4 transfer blocks
- 0x14 4 p->data
- 0x18 4 size
- 12 read sector (sets 0x2000 bitflag)
- 0x0 0xC header
- 0xC 4 LBA
- 0x10 4 transfer blocks
- 0x14 4 p->data
- +_+
- library versions
- B114C29 leoulx / bad disk fixer
- B014C22 64DD driver for Partner64
- B014A26 DKDJ, DKIJ, DKKJ, DMGJ, DMPJ, DMTJ, DPGJ, DRDJ, DSCJ, CFZ*, EFZJ, CPSJ, CP2J, CLBJ, NMWJ, new development
- B014A17 SM64 disk version
- B034A21 development IPL4ROM (no header, font/sound data at wrong spots)
- B034A20 LuigiBlood's IPL4ROM (has header, font/sound at right location)
- B034A19 retail IPL
- +_+
- Known Error Codes
- 0x00 LEO_ERROR_GOOD
- 0x01 LEO_SENSE_DRIVE_NOT_READY
- 01: DRIVE NOT READY
- 01: N64 disk drive may have been broken down, or Disk may be bad.
- 0x02 LEO_SENSE_DIAGNOSTIC_FAILURE
- 02: DIAGNOSTIC FAILURE
- 02: Eject button may have been pushed in half way during access.
- 0x03 LEO_SENSE_COMMAND_PHASE_ERROR
- 03: COMMAND PHASE ERROR
- 03: N64 disk drive may have broken down
- 0x04 LEO_SENSE_DATA_PHASE_ERROR
- 04: DATA PHASE ERROR
- 04: Disk may be defective
- 0x05 LEO_SENSE_REAL_TIME_CLOCK_FAILURE
- 05: REAL TIME CLOCK FAILURE
- 05: The clock may have stopped temporarily
- 0x06 UNKNOWN ERR
- 0x07 UNKNOWN ERR
- 0x08 LEO_ERROR_BUSY
- 0x09 UNKNOWN ERR
- 0x0A UNKNOWN ERR
- 0x0B LEO_SENSE_INCOMPATIBLE_MEDIUM_INSTALLED
- LEO_SENSE_UNKNOWN_FORMAT
- 11: INCOMPATIBLE MEDIUM INSTALLED
- 11: Disk may be bad
- 0x0C UNKNOWN ERR
- 0x0D UNKNOWN ERR
- 0x0E UNKNOWN ERR
- 0x0F UNKNOWN ERR
- 0x10 UNKNOWN ERR
- 0x11 UNKNOWN ERR
- 0x12 UNKNOWN ERR
- 0x13 UNKNOWN ERR
- 0x14 UNKNOWN ERR
- 0x15-0x19 21 LEO_SENSE_NO_SEEK_COMPLETE
- In the event of a NO_SEEK_COMPLETE an ASIC Command Query (0xC0000) is sent to the drive and the flags read off the data register.
- Known flags push these errors:
- 00010000 02 LEO_SENSE_DIAGNOSTIC_FAILURE
- 00020000 24 LEO_SENSE_NO_REFERENCE_POSITION_FOUND
- 00040000 Index Error 01 LEO_SENSE_DRIVE_NOT_READY
- 00080000 21 LEO_SENSE_NO_SEEK_COMPLETE
- 00200000 11 LEO_SENSE_INCOMPATIBLE_MEDIUM_INSTALLED
- -------- 41 LEO_SENSE_DEVICE_COMMUNICATION_FAILURE
- 22 LEO_SENSE_WRITE_FAULT
- 23 LEO_SENSE_UNRECOVERED_READ_ERROR
- 24 LEO_SENSE_NO_REFERENCE_POSITION_FOUND
- 25 LEO_SENSE_TRACK_FOLLOWING_ERROR
- LEO_SENSE_TRACKING_OR_SPDL_SERVO_FAILURE
- 21: NO SEEK COMPLETE
- 22: WRITE FAULT
- 23: UNRECOVERD READ ERROR
- 24: NO REFERENCE POSITION FOUND
- 25: TRACK FOLLOWING ERROR (or TRACK OR SPDL SERVO FAILURE)
- 21-25: N64 disk drive may have been broken down, or Disk may be bad.
- 0x1A UNKNOWN ERR
- 0x1B UNKNOWN ERR
- 0x1C UNKNOWN ERR
- 0x1D UNKNOWN ERR
- 0x1E UNKNOWN ERR
- 0x1F-23 31 LEO_SENSE_INVALID_COMMAND_OPERATION_CODE
- 32 LEO_SENSE_LBA_OUT_OF_RANGE
- 33 LEO_SENSE_WRITE_PROTECT_ERROR
- 34 LEO_SENSE_COMMAND_TERMINATED
- 35 LEO_SENSE_QUEUE_FULL
- 31: INVALID COMMAND OPERATION CODE
- 32: LOGICAL BLOCK ADDRESS OUT OF RANGE
- 33: WRITE PROTECTED
- 34: COMMAND TERMINATED
- 35: QUEUE FULL
- 31-35 : N64 disk drive or N64 control deck may have been broken down, or Disk may be bad.
- 0x24 LEO_SENSE_ILLEGAL_TIMER_VALUE
- 36: ILLEGAL TIMER VALUE
- 0x25 LEO_ERROR_WAITING_NMI
- dev 37:WAITING NMI(LeoReset is called)
- 37: UNKNOWN ERR
- 38: UNKNOWN ERR
- 39: UNKNOWN ERR
- 40: UNKNOWN ERR
- 0x29 LEO_SENSE_DEVICE_COMMUNICATION_FAILURE
- 41: DEVICE COMMUNICATION FAILURE
- 41: N64 disk drive or N64 control deck may not be connected properly.
- 0x2A LEO_SENSE_MEDIUM_NOT_PRESENT
- 42: MEDIUM NOT PRESENT
- 42: Is a disk inserted?
- 0x2B LEO_SENSE_POWERONRESET_DEVICERESET_OCCURED
- 43: POWER ON OR DEVICE RESET OCCURRED
- 43: N64 disk drive may have broken down
- 0x2C LEO_ERROR_RAMPACK_NOT_CONNECTED
- 44: UNKNOWN ERR
- 44: Jumper Pack may be left in N64 control deck
- 0x2D LEO_ERROR_NOT_BOOTED_DISK
- 45: UNKNOWN ERR
- 0x2E LEO_ERROR_DIDNOT_CHANGED_DISK_AS_EXPECTED
- 46: UNKNOWN ERR
- 0x2F LEO_SENSE_MEDIUM_MAY_HAVE_CHANGED
- 47: MEDIUM MAY HAVE CHANGED
- 47: Wrong disk has been inserted
- 0x30 [IPL only] LEO_ERROR_RTC_NOT_SET_CORRECTLY
- 48: UNKNOWN ERR
- 48: The clock may have stopped functioning temporarily
- 0x31 LEO_SENSE_EJECTED_ILLEGALLY_RESUME
- 49: EJECTED ILLEGALY RESUME
- 49: Disk may have been removed during access
- Eject button may have been pushed in half way
- 0x32 [IPL only] LEO_ERROR_DIAGNOSTIC_FAILURE_RESET
- 50: UNKNOWN ERR
- 50: N64 disk drive did not operate properly
- 0x33 [IPL only] LEO_ERROR_EJECTED_ILLEGALLY_RESET
- dev 51:ILLEGAL SECTOR SIZE
- 51: EJECTED ILLEGALY RESUME
- 51: Disk may have been removed during access.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement