There were two notable bugs: - the maple transfer/data sizes were not being set correctly - align_32byte always realigned the address of `_scene`, and not the `mem` parameter as expected. This had the effect of the maple-DMA send and receive buffers being the same buffer. On real hardware, this causes unpredicable behavior.
2.4 KiB
2.4 KiB
1 | name | issuing_right | command_code | data_size | data_field | data_field_size |
---|---|---|---|---|---|---|
2 | device_request | host | 0x01 | 0x00 | ||
3 | ||||||
4 | all_status_request | host | 0x02 | 0x00 | ||
5 | ||||||
6 | device_reset | host | 0x03 | 0x00 | ||
7 | ||||||
8 | device_kill | host | 0x04 | 0x00 | ||
9 | ||||||
10 | device_status | peripheral | 0x05 | 0x1c | device_id | 16 |
11 | device_status | destination_code | 1 | |||
12 | device_status | connection_direction | 1 | |||
13 | device_status | product_name | 30 | |||
14 | device_status | license | 60 | |||
15 | device_status | low_consumption_standby_current | 2 | |||
16 | device_status | maximum_current_consumption | 2 | |||
17 | ||||||
18 | device_all_status | peripheral | 0x06 | 0x1c+n/4 | device_id | 16 |
19 | device_all_status | destination_code | 1 | |||
20 | device_all_status | connection_direction | 1 | |||
21 | device_all_status | product_name | 30 | |||
22 | device_all_status | license | 60 | |||
23 | device_all_status | low_consumption_standby_current | 2 | |||
24 | device_all_status | maximum_current_consumption | 2 | |||
25 | device_all_status | free_device_status | n | |||
26 | ||||||
27 | device_reply | peripheral | 0x07 | 0x00 | ||
28 | ||||||
29 | data_transfer | peripheral | 0x08 | 0x01+n/4 | function_type | 4 |
30 | data_transfer | data | n | |||
31 | ||||||
32 | get_condition | host | 0x09 | 0x01 | function_type | 4 |
33 | ||||||
34 | get_media_info | host | 0x0a | 0x02 | function_type | 4 |
35 | get_media_info | pt | 4 | |||
36 | ||||||
37 | block_read | host | 0x0b | 0x02 | function_type | 4 |
38 | block_read | pt | 1 | |||
39 | block_read | phase | 1 | |||
40 | block_read | block_no | 2 | |||
41 | ||||||
42 | block_write | host | 0x0c | 0x02+n/4 | function_type | 4 |
43 | block_write | pt | 1 | |||
44 | block_write | phase | 1 | |||
45 | block_write | block_no | 2 | |||
46 | block_write | written_data | n | |||
47 | ||||||
48 | get_last_error | host | 0x0d | 0x02 | function_type | 4 |
49 | get_last_error | pt | 1 | |||
50 | get_last_error | phase | 1 | |||
51 | get_last_error | block_no | 2 | |||
52 | ||||||
53 | set_condition | host | 0x0e | 0x01+n/4 | function_type | 4 |
54 | set_condition | write_in_data | n | |||
55 | ||||||
56 | ft4_control | host | 0x0f | 0x01+n/4 | function_type | 4 |
57 | ft4_control | ft4_data | n | |||
58 | ||||||
59 | ar_control | host | 0x10 | 0x01+n/4 | function_type | 4 |
60 | ar_control | data | n | |||
61 | ||||||
62 | function_type_unknown | peripheral | 0xfe | 0x00 | ||
63 | ||||||
64 | command_unknown | peripheral | 0xfd | 0x00 | ||
65 | ||||||
66 | transmit_again | host, peripheral | 0xfc | 0x00 | ||
67 | ||||||
68 | file_error | peripheral | 0xfb | 0x01 | function_error_code | 4 |
69 | ||||||
70 | lcd_error | peripheral | 0xfa | 0x01 | function_error_code | 4 |
71 | ||||||
72 | ar_error | peripheral | 0xf9 | 0x01 | function_error_code | 4 |