|
1 | 1 | // A simple homebrew to eject the disc tray of a PS2 |
2 | 2 | // PS2Eject v0.1 Written by VTSTech ([email protected]) |
3 | 3 |
|
| 4 | +// v0.2 11/29/2019 3:09:20 PM |
| 5 | +// Code optimizations |
| 6 | + |
4 | 7 | // v0.1 11/29/2019 11:44:31 AM |
5 | 8 | // First release |
6 | 9 |
|
7 | 10 | #include <debug.h> |
8 | 11 | #include <unistd.h> |
9 | 12 | #include <libcdvd.h> |
10 | 13 |
|
| 14 | +int DriveState() |
| 15 | +{ |
| 16 | + int CdStatus; |
| 17 | + sleep(1); |
| 18 | + CdStatus = sceCdStatus(); |
| 19 | + if (CdStatus == 0) { |
| 20 | + scr_printf("* sceCdvdDriveState: (00) SCECdStatStop\n"); |
| 21 | + } else if (CdStatus == 1) { |
| 22 | + scr_printf("* sceCdvdDriveState: (01) SCECdStatShellOpen\n"); |
| 23 | + } else if (CdStatus == 10) { |
| 24 | + scr_printf("* sceCdvdDriveState: (10) SCECdStatSpin\n"); |
| 25 | + } else { |
| 26 | + scr_printf("* sceCdvdDriveState: (%d) Unknown\n",CdStatus); |
| 27 | + } |
| 28 | + return 0; |
| 29 | +} |
| 30 | + |
11 | 31 | int main() |
12 | 32 | { |
13 | | - int num; |
14 | | - char str; |
| 33 | + int TrayCheck; |
15 | 34 | init_scr(); |
16 | 35 | scr_clear(); |
17 | 36 | sleep(1); |
18 | | - scr_printf("PS2Eject v0.1 by VTSTech\n"); |
19 | | - scr_printf("========================\n\n"); |
20 | | - if (sceCdInit(SCECdINoD) == 1) { scr_printf("* libcdvd initalized...\n"); } |
21 | | - sleep(1); |
22 | | - num = sceCdStatus(); |
23 | | - if (num == 0) { |
24 | | - scr_printf("* SCECdvdDriveState: (0) SCECdStatStop\n"); |
25 | | - } else if (num >=1) { |
26 | | - scr_printf("* SCECdvdDriveState: (%d) Unknown\n",num); |
27 | | - } |
28 | | - scr_printf("* sceCdTrayReq(3,SCECdTrayCheck): %d\n",sceCdTrayReq(3,num)); |
29 | | - scr_printf("* SCECdTrayCheck: (%d) Unknown\n",num); |
30 | | - sleep(1); |
31 | | - num = sceCdStatus(); |
32 | | - if (num == 0) { |
33 | | - scr_printf("* SCECdvdDriveState: (0) SCECdStatStop\n"); |
34 | | - } else if (num >=1) { |
35 | | - scr_printf("* SCECdvdDriveState: (%d) Unknown\n",num); |
36 | | - } |
37 | | - scr_printf("* sceCdTrayReq(0,SCECdTrayCheck): %d\n",sceCdTrayReq(0,num)); |
38 | | - scr_printf("* SCECdTrayCheck: (%d) Unknown\n",num); |
39 | | - num = sceCdStatus(); |
40 | | - if (num == 0) { |
41 | | - scr_printf("* SCECdvdDriveState: (0) SCECdStatStop\n"); |
42 | | - } else if (num >=1) { |
43 | | - scr_printf("* SCECdvdDriveState: (%d) Unknown\n",num); |
44 | | - } |
| 37 | + scr_printf("PS2Eject v0.2 by VTSTech (11-29-2019)\n=====================================\n\n"); |
| 38 | + if (sceCdInit(SCECdINoD) == 1) { scr_printf("* libcdvd initalized...\n\n"); } |
| 39 | + DriveState(); |
| 40 | + if (sceCdTrayReq(3,&TrayCheck) == 1) { scr_printf("* sceCdTrayReq(3,SCECdTrayCheck): %d\n",TrayCheck); } else { scr_printf("! sceCdTrayReq() failed"); } |
| 41 | + DriveState(); |
| 42 | + if (sceCdTrayReq(0,&TrayCheck) == 1) { scr_printf("* sceCdTrayReq(0,SCECdTrayCheck): %d\n",TrayCheck); } else { scr_printf("! sceCdTrayReq() failed"); } |
| 43 | + DriveState(); |
| 44 | + scr_printf("\n* All operations complete. Exit in 30s..."); |
45 | 45 | sleep(30); |
46 | 46 | return 0; |
47 | 47 | } |
0 commit comments