Advertisement
Zoinkity

Software 64DD Reference

Aug 28th, 2017
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.04 KB | None | 0 0
  1. LEOCmd usage:
  2. header
  3. 0x0 1 command
  4. 0x1 1 RESERVED
  5. 0x2 1 control flags
  6. 80 enable post queue
  7. 04 brake on
  8. 02 stand-by mode
  9. 01 start cmd/translate byte to LBA/read RW capacity
  10. 0x3 1 RESERVED
  11. 0x4 1 status
  12. 02 check condition
  13. 08 busy
  14. 0x5 1 sense codes: DD Status error codes
  15. 0x6 1 RESERVED
  16. 0x7 1 RESERVED
  17. 0x8 4 response from posting thread
  18.  
  19. 01 clear queue
  20. 0x0 0xC header
  21.  
  22. 02 inquiry
  23. 0x0 0xC header
  24. 0xC 1 device type [always 0]
  25. 0xD 1 hardware version
  26. expects 01 or 03 for retail
  27. old dev units return 0x4, new ones 0x14
  28. 0xE 1 number of devices [always 1]
  29. 0xF 1 Leo BIOS (software) version
  30. 0 versions prior to 2.0H
  31. 1 2.0H
  32. 2 patched version
  33. 3 2.0I
  34. 0x10 4
  35.  
  36. 03 test unit ready
  37. 0x0 0xC header
  38. 0xC 1 test {1: disk removed, 2:head retracted, 4:spindle stopped}
  39. 0xD 3 RESERVED
  40.  
  41. 04 rezero
  42. 0x0 0xC header
  43.  
  44. 05 read
  45. 0x0 0xC header
  46. 0xC 4 LBA
  47. 0x10 4 transfer blocks
  48. 0x14 4 p->data
  49. 0x18 4 size
  50.  
  51. 06 write
  52. 0x0 0xC header
  53. 0xC 4 LBA
  54. 0x10 4 transfer blocks
  55. 0x14 4 p->data
  56. 0x18 4 size
  57.  
  58. 07 seek
  59. 0x0 0xC header
  60. 0xC 4 LBA
  61.  
  62. 08 start/stop
  63. 0x0 0xC header
  64.  
  65. 09 read capacity
  66. 0x0 0xC header
  67. 0xC 4 start LBA
  68. 0x10 4 end LBA
  69. 0x14 4 size in bytes
  70.  
  71. 0A translate
  72. 0x0 0xC header
  73. 0xC 4 start LBA
  74. 0x10 4 in
  75. 0x14 4 out
  76.  
  77. 0B select
  78. 0x0 0xC header
  79. 0xC 1 page code
  80. 0xD 1 RESERVED
  81. 0xE 1 standby time
  82. 0xF 1 sleep time
  83. 0x10 1 LED on time
  84. 0x11 1 LED off time
  85. 0x12 1 RESERVED
  86. 0x13 1 RESERVED
  87.  
  88. 0C read disk ID
  89. 0x0 0xC header
  90. 0xC 4 p->data
  91. 0x0 1 format
  92. 0x1 2 game ID
  93. 0x3 1 region
  94. 0x4 1 version
  95. 0x5 1 disk#
  96. 0x6 1 RAM use (1 if using MFS)
  97. 0x7 1 disk use (0 for game, 1 for expansion)
  98. 0x8 8 serial: line#
  99. 0x10 8 serial: time
  100. 0x0 1 RESERVED
  101. 0x1 1 year upper half
  102. 0x2 1 year lower half
  103. 0x3 1 month
  104. 0x4 1 day
  105. 0x5 1 hour
  106. 0x6 1 minute
  107. 0x7 1 second
  108. 0x18 2 company (same as controller pak)
  109. 0x1A 6 RESERVED (label)
  110.  
  111. 0D read time
  112. 0x0 0xC header
  113. 0xC 1 RESERVED
  114. 0xD 1 year upper half (set via code)
  115. 0xE 1 year
  116. 0xF 1 month
  117. 0x10 1 day
  118. 0x11 1 hour
  119. 0x12 1 minute
  120. 0x13 1 second
  121.  
  122. 0E set time
  123. 0x0 0xC header
  124. 0xC 1 RESERVED
  125. 0xD 1 RESERVED [upper half of year, not read]
  126. 0xE 1 year
  127. 0xF 1 month
  128. 0x10 1 day
  129. 0x11 1 hour
  130. 0x12 1 minute
  131. 0x13 1 second
  132.  
  133. 0F ???; catches these errors: LEO_SENSE_COMMAND_PHASE_ERROR, LEO_SENSE_DEVICE_COMMUNICATION_FAILURE, LEO_SENSE_POWERONRESET_DEVICERESET_OCCURED
  134. 0x0 0xC header
  135.  
  136. These are found (only?) in leoulx:
  137. 10 read ??? (sets 0x400/0x800 bitflags)
  138. 0x0 0xC header
  139. 0xC 4 LBA
  140. 0x10 4 transfer blocks
  141. 0x14 4 p->data
  142. 0x18 4 size
  143.  
  144. 11 write ??? (sets 0x8400/0x8800 bitflags)
  145. 0x0 0xC header
  146. 0xC 4 LBA
  147. 0x10 4 transfer blocks
  148. 0x14 4 p->data
  149. 0x18 4 size
  150.  
  151. 12 read sector (sets 0x2000 bitflag)
  152. 0x0 0xC header
  153. 0xC 4 LBA
  154. 0x10 4 transfer blocks
  155. 0x14 4 p->data
  156.  
  157. +_+
  158.  
  159. library versions
  160. B114C29 leoulx / bad disk fixer
  161. B014C22 64DD driver for Partner64
  162. B014A26 DKDJ, DKIJ, DKKJ, DMGJ, DMPJ, DMTJ, DPGJ, DRDJ, DSCJ, CFZ*, EFZJ, CPSJ, CP2J, CLBJ, NMWJ, new development
  163. B014A17 SM64 disk version
  164. B034A21 development IPL4ROM (no header, font/sound data at wrong spots)
  165. B034A20 LuigiBlood's IPL4ROM (has header, font/sound at right location)
  166. B034A19 retail IPL
  167.  
  168. +_+
  169.  
  170. Known Error Codes
  171. 0x00 LEO_ERROR_GOOD
  172. 0x01 LEO_SENSE_DRIVE_NOT_READY
  173. 01: DRIVE NOT READY
  174. 01: N64 disk drive may have been broken down, or Disk may be bad.
  175. 0x02 LEO_SENSE_DIAGNOSTIC_FAILURE
  176. 02: DIAGNOSTIC FAILURE
  177. 02: Eject button may have been pushed in half way during access.
  178. 0x03 LEO_SENSE_COMMAND_PHASE_ERROR
  179. 03: COMMAND PHASE ERROR
  180. 03: N64 disk drive may have broken down
  181. 0x04 LEO_SENSE_DATA_PHASE_ERROR
  182. 04: DATA PHASE ERROR
  183. 04: Disk may be defective
  184. 0x05 LEO_SENSE_REAL_TIME_CLOCK_FAILURE
  185. 05: REAL TIME CLOCK FAILURE
  186. 05: The clock may have stopped temporarily
  187. 0x06 UNKNOWN ERR
  188. 0x07 UNKNOWN ERR
  189. 0x08 LEO_ERROR_BUSY
  190. 0x09 UNKNOWN ERR
  191. 0x0A UNKNOWN ERR
  192. 0x0B LEO_SENSE_INCOMPATIBLE_MEDIUM_INSTALLED
  193. LEO_SENSE_UNKNOWN_FORMAT
  194. 11: INCOMPATIBLE MEDIUM INSTALLED
  195. 11: Disk may be bad
  196. 0x0C UNKNOWN ERR
  197. 0x0D UNKNOWN ERR
  198. 0x0E UNKNOWN ERR
  199. 0x0F UNKNOWN ERR
  200. 0x10 UNKNOWN ERR
  201. 0x11 UNKNOWN ERR
  202. 0x12 UNKNOWN ERR
  203. 0x13 UNKNOWN ERR
  204. 0x14 UNKNOWN ERR
  205. 0x15-0x19 21 LEO_SENSE_NO_SEEK_COMPLETE
  206. 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.
  207. Known flags push these errors:
  208. 00010000 02 LEO_SENSE_DIAGNOSTIC_FAILURE
  209. 00020000 24 LEO_SENSE_NO_REFERENCE_POSITION_FOUND
  210. 00040000 Index Error 01 LEO_SENSE_DRIVE_NOT_READY
  211. 00080000 21 LEO_SENSE_NO_SEEK_COMPLETE
  212. 00200000 11 LEO_SENSE_INCOMPATIBLE_MEDIUM_INSTALLED
  213. -------- 41 LEO_SENSE_DEVICE_COMMUNICATION_FAILURE
  214. 22 LEO_SENSE_WRITE_FAULT
  215. 23 LEO_SENSE_UNRECOVERED_READ_ERROR
  216. 24 LEO_SENSE_NO_REFERENCE_POSITION_FOUND
  217. 25 LEO_SENSE_TRACK_FOLLOWING_ERROR
  218. LEO_SENSE_TRACKING_OR_SPDL_SERVO_FAILURE
  219. 21: NO SEEK COMPLETE
  220. 22: WRITE FAULT
  221. 23: UNRECOVERD READ ERROR
  222. 24: NO REFERENCE POSITION FOUND
  223. 25: TRACK FOLLOWING ERROR (or TRACK OR SPDL SERVO FAILURE)
  224. 21-25: N64 disk drive may have been broken down, or Disk may be bad.
  225. 0x1A UNKNOWN ERR
  226. 0x1B UNKNOWN ERR
  227. 0x1C UNKNOWN ERR
  228. 0x1D UNKNOWN ERR
  229. 0x1E UNKNOWN ERR
  230. 0x1F-23 31 LEO_SENSE_INVALID_COMMAND_OPERATION_CODE
  231. 32 LEO_SENSE_LBA_OUT_OF_RANGE
  232. 33 LEO_SENSE_WRITE_PROTECT_ERROR
  233. 34 LEO_SENSE_COMMAND_TERMINATED
  234. 35 LEO_SENSE_QUEUE_FULL
  235. 31: INVALID COMMAND OPERATION CODE
  236. 32: LOGICAL BLOCK ADDRESS OUT OF RANGE
  237. 33: WRITE PROTECTED
  238. 34: COMMAND TERMINATED
  239. 35: QUEUE FULL
  240. 31-35 : N64 disk drive or N64 control deck may have been broken down, or Disk may be bad.
  241. 0x24 LEO_SENSE_ILLEGAL_TIMER_VALUE
  242. 36: ILLEGAL TIMER VALUE
  243. 0x25 LEO_ERROR_WAITING_NMI
  244. dev 37:WAITING NMI(LeoReset is called)
  245. 37: UNKNOWN ERR
  246. 38: UNKNOWN ERR
  247. 39: UNKNOWN ERR
  248. 40: UNKNOWN ERR
  249. 0x29 LEO_SENSE_DEVICE_COMMUNICATION_FAILURE
  250. 41: DEVICE COMMUNICATION FAILURE
  251. 41: N64 disk drive or N64 control deck may not be connected properly.
  252. 0x2A LEO_SENSE_MEDIUM_NOT_PRESENT
  253. 42: MEDIUM NOT PRESENT
  254. 42: Is a disk inserted?
  255. 0x2B LEO_SENSE_POWERONRESET_DEVICERESET_OCCURED
  256. 43: POWER ON OR DEVICE RESET OCCURRED
  257. 43: N64 disk drive may have broken down
  258. 0x2C LEO_ERROR_RAMPACK_NOT_CONNECTED
  259. 44: UNKNOWN ERR
  260. 44: Jumper Pack may be left in N64 control deck
  261. 0x2D LEO_ERROR_NOT_BOOTED_DISK
  262. 45: UNKNOWN ERR
  263. 0x2E LEO_ERROR_DIDNOT_CHANGED_DISK_AS_EXPECTED
  264. 46: UNKNOWN ERR
  265. 0x2F LEO_SENSE_MEDIUM_MAY_HAVE_CHANGED
  266. 47: MEDIUM MAY HAVE CHANGED
  267. 47: Wrong disk has been inserted
  268. 0x30 [IPL only] LEO_ERROR_RTC_NOT_SET_CORRECTLY
  269. 48: UNKNOWN ERR
  270. 48: The clock may have stopped functioning temporarily
  271. 0x31 LEO_SENSE_EJECTED_ILLEGALLY_RESUME
  272. 49: EJECTED ILLEGALY RESUME
  273. 49: Disk may have been removed during access
  274. Eject button may have been pushed in half way
  275. 0x32 [IPL only] LEO_ERROR_DIAGNOSTIC_FAILURE_RESET
  276. 50: UNKNOWN ERR
  277. 50: N64 disk drive did not operate properly
  278. 0x33 [IPL only] LEO_ERROR_EJECTED_ILLEGALLY_RESET
  279. dev 51:ILLEGAL SECTOR SIZE
  280. 51: EJECTED ILLEGALY RESUME
  281. 51: Disk may have been removed during access.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement