$B!AFHEDCO9v:X$,B#$k(JPlayStation$B8&5f=x@b!A(J
NNNNNN
NNNNNNNNNNNN
NNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNN
NNNNNNNNN NNNNNNNNN
NNNNNNNNN NNNNNNNNN
NNNNNNNNN NNNNNNNNN
NNNNNNNNN NNNNNNNNNN
NNNNNNNNN NNNNNNNNNN
NNNNNNNNN NNNNNNNNNN
NNNNNNNNN NNNNNNNNNN
NNNNNNNNN NNNNNNNNN
NNNNNNNNN NNNNNNNN
OONNNNNNNNN NNNNNNN
YYYOOOONNNNNNNNN
YYYYYYYYYYYNNNNNNNNN OOOOOOOOOOOO
YYYYYYYYYYYYYYYNNNNNNNNNYYOOOOOOOOOOOOOOOOOOO
OOOOOOYYYYYYYYY NNNNNNNNNYYYYYYYOOO OOOOOOOOO
OOOOOOOOOOO YYNNNNNNNNNYYYYY OOOOOOOOOOO
OOOOOOOOO OOOYYYYNNNNNNNNN YYYYYYYYYOOOOOO
OOOOOOOOOOOOOOOOOONNNNNNNNN YYYYYYYYYYYYYYY
OOOOOOOOOOOO NNNNNNNNNOYYYYYYYYYYYY
NNNNNNNNNOOOOOOYYY
NNNNOOOO
$BK\%Z!<%8$OL$Mh$N(JPlayStation$B%(%_%e%l!<%?3+H/
SCPH-7000 (SONY)
$B$$$o$f$k<+:n(JDOS/V
PS X-TERMINATOR (Future Console Design)
caetla 0.34 (K-Communications)
caetools (K-Communications)
directio (K-Communications)
GNU Binary Utilities 2.8.1 mipsel-generic-elf/ecoff
($B$3$Z$k(J)
GNU C/C++ Compiler 2.7.2.3 mipsel-generic-elf/ecoff
($B$3$Z$k(J)
Borland C++Compiler 5.5 (Borland)
http://www.scei.co.jp/Net/guide/user/
http://psx.rules.org/psxrul2.shtml
$B$?$@$7!"$3$l$i$K$OB?$/$N8m5-$,$"$k$N$G1-F]$_$K$7$J$$$3$H!#(J
$B@55,3+H/%^%K%e%"%k$+$iH4?h$7$?$H;W$o$l$kItJ,$K$9$i8m5-$,$"$k(J
($B@55,%^%K%e%"%k$K$b8m5-$O$"$k(J)$B!#(J
$B3+H/
http://www.semicon.toshiba.co.jp/product/micro/index.html

| $B%"%I%l%9(J | $BFbMF(J |
|---|---|
| 0x00000000$B!A(J0x001FFFFF | $B%a%$%s%a%b%j(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x00200000$B!A(J0x003FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x00400000$B!A(J0x005FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x00600000$B!A(J0x007FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x00800000$B!A(J | |
| 0x1F000000$B!A(J | PIO |
| 0x1F0?????$B!A(J | |
| 0x1F800000$B!A(J0x1F8003FF | $B%9%/%i%C%A%Q%C%I(J |
| 0x1F000400$B!A(J | |
| 0x1F801000$B!A(J | I/O$B%]!<%H(J($B$$$o$f$k%a%b%j%^%C%W%I(JI/O) |
| 0x1F80????$B!A(J | |
| 0x1FC00000$B!A(J0x1FC7FFFF | OS ROM |
| 0x1F800000$B!A(J | |
| 0x80000000$B!A(J0x801FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x80200000$B!A(J0x803FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x80400000$B!A(J0x805FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x80600000$B!A(J0x807FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J) |
| 0x80800000$B!A(J | |
| 0x9FC00000$B!A(J0x9FC7FFFF | OS ROM $B%_%i!<(J |
| 0x9FC80000$B!A(J | |
| 0xA0000000$B!A(J0xA01FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J) |
| 0xA0200000$B!A(J0xA03FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J) |
| 0xA0400000$B!A(J0xA05FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J) |
| 0xA0600000$B!A(J0xA07FFFFF | $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J) |
| 0xA0800000$B!A(J | |
| 0xBFC00000$B!A(J0xBFC7FFFF | OS ROM $B%_%i!<(J |
| 0xBFC80000$B!A(J | |
| 0xFFFE0130$B!A(J0xFFFE0133 | SwapCache? |
| 0xFFFE0134$B!A(J |
| $B%"%I%l%9(J | $B%l%8%9%?L>(J($B2>(J) | $BFbMF(J |
|---|---|---|
| 0x1F801000 | ? | $B3HD%%a%b%jNN0h;XDj(J? |
| 0x1F801004 | ? | I/O$B%]!<%H=*C<;XDj(J? |
| 0x1F801008 | ? | ? |
| 0x1F80100C | ? | ? |
| 0x1F801010 | ? | ? |
| 0x1F801014 | ? | SPU DMA$B$N%&%'%$%H(J? |
| 0x1F801018 | ? | OTC DMA$B$N%&%'%$%H(J? |
| 0x1F80101C | ? | ? |
| 0x1F801020 | ? | CD DMA$B$N%&%'%$%H(J? |
| 0x1F801040 | COMA_DATA | COMA$B%G!<%?(J |
| 0x1F801044 | COMA_STAT | COMA$B%9%F!<%?%9(J |
| 0x1F801048 | COMA_MODE | COMA$B%b!<%I(J |
| 0x1F80104A | COMA_CTRL | COMA$B%3%s%H%m!<%k(J |
| 0x1F80104E | COMA_BAUD | COMA$B%\!<(J |
| 0x1F801050 | SIO_DATA | SIO$B%G!<%?(J |
| 0x1F801054 | SIO_STAT | SIO$B%9%F!<%?%9(J |
| 0x1F801058 | SIO_MODE | SIO$B%b!<%I(J |
| 0x1F80105A | SIO_CTRL | SIO$B%3%s%H%m!<%k(J |
| 0x1F80105E | SIO_BAUD | SIO$B%\!<(J |
| 0x1F801060 | RAM_SIZE | $B |
| 0x1F801070 | I_STAT | $B3d$j9~$_%9%F!<%?%9(J |
| 0x1F801074 | I_MASK | $B3d$j9~$_%^%9%/(J |
| 0x1F801080 | D0_MADR | DMAC$B%A%c%M%k(J0(MDECin)$B%a%b%j%"%I%l%9(J |
| 0x1F801084 | D0_BCR | DMAC$B%A%c%M%k(J0(MDECin)$B%V%m%C%/%+%&%s%H(J |
| 0x1F801088 | D0_CHCR | DMAC$B%A%c%M%k(J0(MDECin)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F801090 | D1_MADR | DMAC$B%A%c%M%k(J1(MDECout)$B%a%b%j%"%I%l%9(J |
| 0x1F801094 | D1_BCR | DMAC$B%A%c%M%k(J1(MDECout)$B%V%m%C%/%+%&%s%H(J |
| 0x1F801098 | D1_CHCR | DMAC$B%A%c%M%k(J1(MDECout)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F8010A0 | D2_MADR | DMAC$B%A%c%M%k(J2(GPU)$B%a%b%j%"%I%l%9(J |
| 0x1F8010A4 | D2_BCR | DMAC$B%A%c%M%k(J2(GPU)$B%V%m%C%/%+%&%s%H(J |
| 0x1F8010A8 | D2_CHCR | DMAC$B%A%c%M%k(J2(GPU)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F8010B0 | D3_MADR | DMAC$B%A%c%M%k(J3(CD)$B%a%b%j%"%I%l%9(J |
| 0x1F8010B4 | D3_BCR | DMAC$B%A%c%M%k(J3(CD)$B%V%m%C%/%+%&%s%H(J |
| 0x1F8010B8 | D3_CHCR | DMAC$B%A%c%M%k(J3(CD)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F8010C0 | D4_MADR | DMAC$B%A%c%M%k(J4(SPU)$B%a%b%j%"%I%l%9(J |
| 0x1F8010C4 | D4_BCR | DMAC$B%A%c%M%k(J4(SPU)$B%V%m%C%/%+%&%s%H(J |
| 0x1F8010C8 | D4_CHCR | DMAC$B%A%c%M%k(J4(SPU)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F8010D0 | D5_MADR | DMAC$B%A%c%M%k(J5(PIO)$B%a%b%j%"%I%l%9(J |
| 0x1F8010D4 | D5_BCR | DMAC$B%A%c%M%k(J5(PIO)$B%V%m%C%/%+%&%s%H(J |
| 0x1F8010D8 | D5_CHCR | DMAC$B%A%c%M%k(J5(PIO)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F8010E0 | D6_MADR | DMAC$B%A%c%M%k(J6(OTC)$B%a%b%j%"%I%l%9(J |
| 0x1F8010E4 | D6_BCR | DMAC$B%A%c%M%k(J6(OTC)$B%V%m%C%/%+%&%s%H(J |
| 0x1F8010E8 | D6_CHCR | DMAC$B%A%c%M%k(J6(OTC)$B%A%c%M%k%3%s%H%m!<%k(J |
| 0x1F8010F0 | D_PCR | DMAC$BM%@hEY%3%s%H%m!<%k(J |
| 0x1F8010F4 | D_ICR | DMAC$B3d$j9~$_%3%s%H%m!<%k(J |
| 0x1F801100 | T0_COUNT | $B%?%$%^(J0($B%7%9%F%`!?%T%/%;%k(J)$B%+%&%s%H(J |
| 0x1F801104 | T0_MODE | $B%?%$%^(J0($B%7%9%F%`!?%T%/%;%k(J)$B%b!<%I(J |
| 0x1F801108 | T0_COMP | $B%?%$%^(J0($B%7%9%F%`!?%T%/%;%k(J)$B%3%s%Z%"(J |
| 0x1F801110 | T1_COUNT | $B%?%$%^(J1($B%7%9%F%`!??eJ?F14|(J)$B%+%&%s%H(J |
| 0x1F801114 | T1_MODE | $B%?%$%^(J1($B%7%9%F%`!??eJ?F14|(J)$B%b!<%I(J |
| 0x1F801118 | T1_COMP | $B%?%$%^(J1($B%7%9%F%`!??eJ?F14|(J)$B%3%s%Z%"(J |
| 0x1F801120 | T2_COUNT | $B%?%$%^(J2($B%7%9%F%`!?(J8$BJ,<~(J)$B%+%&%s%H(J |
| 0x1F801124 | T2_MODE | $B%?%$%^(J2($B%7%9%F%`!?(J8$BJ,<~(J)$B%b!<%I(J |
| 0x1F801128 | T2_COMP | $B%?%$%^(J2($B%7%9%F%`!?(J8$BJ,<~(J)$B%3%s%Z%"(J |
| 0x1F801800 | CD_REG0 | CD$B%l%8%9%?(J0 |
| 0x1F801801 | CD_REG1 | CD$B%l%8%9%?(J1 |
| 0x1F801802 | CD_REG2 | CD$B%l%8%9%?(J2 |
| 0x1F801803 | CD_REG3 | CD$B%l%8%9%?(J3 |
| 0x1F801810 | GPU_DATA | GPU$B%G!<%?!?%3%^%s%I(J |
| 0x1F801814 | GPU_CTRL | GPU$B%9%F!<%?%9!?%3%s%H%m!<%k(J |
| 0x1F801820 | MDEC_DATA | MDEC$B%G!<%?!?%3%^%s%I(J |
| 0x1F801824 | MDEC_CTRL | MDEC$B%9%F!<%?%9!?%3%s%H%m!<%k(J |
| 0x1F801C00 | SPU_REG00 | SPU$B%l%8%9%?(J0 |
| 0x1F801C02 | SPU_REG01 | SPU$B%l%8%9%?(J1 |
| $BCfN,(J | $BCfN,(J | $BCfN,(J |
| 0x1F801DFC | SPU_REGFE | SPU$B%l%8%9%?(J254 |
| 0x1F801DFE | SPU_REGFF | SPU$B%l%8%9%?(J255 |
| 0x1F802041 | ? | $B%G%#%C%W%9%$%C%A(J? |
PlayStation$B$N(JCPU$B$O(JMIPS$B$N(JR3000$B$r%Y!<%9$H$7$?%+%9%?%`(JCPU$B$G$"$k!#(J
$BF0:n<~GH?t$O(J33868800Hz$B$H8@$o$l!"%(%s%G%#%"%s$O%j%H%k$G$"$k!#(J
$B
COP1,COP3,TLB$B7O$OB8:_$7$J$$!#(J $B%5!<%S%9%3!<%kFb$N(Jatof$B$G(JCOP1$BL?Na$,;H$o$l$F$$$k$,(Jatof$B<+BN$,8F$P$l$?;n$7$,$J$$!#(J $B$*$=$i$/;n:n5!$G$O%G%P%0=hM}$N$?$a$KB8:_$9$k$,!"7k6I%*%_%C%H$5$l$?$N$@$m$&!#(J
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
| op | rs | rt | rd | sa | funct | ||||||||||||||||||||||||||
| op | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | SPECIAL | BCOND | J | JAL | BEQ | BNE | BLEZ | BGTZ |
| 0x08 | ADDI | ADDIU | SLTI | SLTIU | ANDI | ORI | XORI | LUI |
| 0x10 | COP0 | COP2 | ||||||
| 0x18 | ||||||||
| 0x20 | LB | LH | LWL | LW | LBU | LHU | LWR | |
| 0x28 | SB | SH | SWL | SW | SWR | |||
| 0x30 | LWC2 | |||||||
| 0x38 | SWC2 |
| funct | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | SLL | SRL | SRA | SLLV | SRLV | SRAV | ||
| 0x08 | JR | JALR | SYSCALL | BREAK | ||||
| 0x10 | MFHI | MTHI | MFLO | MTLO | ||||
| 0x18 | MULT | MULTU | DIV | DIVU | ||||
| 0x20 | ADD | ADDU | SUB | SUBU | AND | OR | XOR | NOR |
| 0x28 | SLT | SLTU | ||||||
| 0x30 | ||||||||
| 0x38 |
| rs | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | BLTZ | BGEZ | ||||||
| 0x08 | ||||||||
| 0x10 | BLTZAL | BGEZAL | ||||||
| 0x18 |
| rs | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | MFC0 | MTC0 | ||||||
| 0x08 | ||||||||
| 0x10 | CP0 | |||||||
| 0x18 | ||||||||
| funct | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | ||||||||
| 0x08 | ||||||||
| 0x10 | RFE | |||||||
| 0x18 | ||||||||
| 0x20 | ||||||||
| 0x28 | ||||||||
| 0x30 | ||||||||
| 0x38 |
| rs | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | MFC2 | CFC2 | MTC2 | CTC2 | ||||
| 0x08 | ||||||||
| 0x10 | CP2 | |||||||
| 0x18 | ||||||||
| funct | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|---|
| 0x00 | RTPS | NCLIP | ||||||
| 0x08 | OP | |||||||
| 0x10 | DPCS | INTPL | MVMVA | NCDS | CDP | NCDT | ||
| 0x18 | NCCS | CC | NCS | |||||
| 0x20 | NCT | |||||||
| 0x28 | SQR | DCPL | DPCT | AVSZ3 | AVSZ4 | |||
| 0x30 | RTPT | |||||||
| 0x38 | GPF | GPL | NCCT |
$B%M%C%H$d$m$&$<$N5-=R$K$O=EMWIt$G$"$k$[$I8m$j$,$"$k$N$G!"Cm0U$,I,MW$G$"$k!#(J
$B$^$:%a%b%j6u4V$H%-%c%C%7%e(J($B%P!<%9%HE>Aw(J)$B$NM-8z!?L58z$N4X78$r<($7$?I=$K$*$$$F(J
$B%a%b%j6u4V$r $B$H$$$&J8>O$b$*$+$7$$!#(J
$B8eH>$NJ8>O$,$"$k$+$i!"A0H>$O%-%c%C%7%e%_%9$7$?>uBV$G$N
I$B%-%c%C%7%e$,M-8z$JO@M}%a%b%j6u4V>e$NL?Na%3!<%I$ODL>o$NLs#5G\$NB.EY$G(JCPU$B$KFI$_9~$^$l$^$9!#(J
$B$^$?!"0lC6FI$_9~$^$l$?L?Na%3!<%I$O(JCPU$BFb$N(JI$B%-%c%C%7%e%a%b%j$KJ]B8$5$l$^$9$N$G!"(J
$B:F
$B%"%I%l%9(J0x1F800000$B$K%^%C%T%s%0$5$l$?!"%9%H!<%k$NH/@8$7$J$$(JRAM$B$r(J PlayStation$B$N!VJ}8@!W$H$7$F(JD$B%-%c%C%7%e$H8F$s$G$$$k$,!"(J $B$3$l$O0lHLE*$J0UL#$N(JD$B%-%c%C%7%e$G$O$J$$!#(J $B0lHLE*$J0UL#$N(JD$B%-%c%C%7%e$O(JPlayStation$B$K$OB8:_$7$J$$!#(J
RTPS,RTPT$BL?Na$K$*$$$F!"Ej1FJQ4978?t(J
| (int) (h * 65536 / Sz + 0.5) |
$B$,5a$a$i$l$k$,!"
$B$,9T$o$l$k!#(JiSz$B$O(J0x10000$B!A(J0x1FFFF$B$NHO0O$G$"$j!">.?tIt(J16$B%S%C%H$NIbF0>.?t$KAjEv$9$k!#(J
iSz$B$OI,$:$7$b(J
$B$K$O$J$C$F$$$J$$$N$G!"%V%k!<%H%U%)!<%9%"%?%C%/$K$h$kC5:w$,I,MW$K$J$k!#(J Sz:32768$B!A(J65535(N=16)$B$K$D$$$F7k2L$r<($9!#(J
Sz:0$B!A(J32767$B$K$D$$$F$O!"(JN$B$r8:$i$9$@$1$J$N$G3d0&$9$k!#(J
(h * iSz + (1 << (N - 1))) >> N
(65536 << N) / Sz
$B%3!<%II=$+$iJ,$+$k$h$&$K(JR3000$B$OC1=c$JL?Na$@$1$G9=@.$5$l$F$*$j!"4{$K%^%$%/%m%3!<%I$G$"$k$H$b8@$($k!#(J
$B=>$C$F!"0l%3!<%I$KBP$7$F0l8D$N%3%s%Q%$%k:Q$_%G!<%?$rM=$aMQ0U$7!" $B$NMM$J%G!<%?$rM=$aMQ0U$7!"
$B$NMM$KJQ?tItJ,$r=q$-49$($k!#8e$O$3$l$rO"7k%3%T!<$7$F4X?t$r:n@.$7!"=PMh>e$,$C$?4X?t$r
/*
*
*/
uchar __SRAV[] = {
0x8B, 0x0D, '\\', '\\', '\\', '\\', /* 00 mov ecx,[GPR[rs]] 02 &GPR[rs] */
0xA1, '\\', '\\', '\\', '\\', /* 06 mov eax,[GPR[rt]] 07 &GPR[rt] */
0xD3, 0xF8, /* 0B sar eax,cl */
0xA3, '\\', '\\', '\\', '\\' /* 0D mov [GPR[rd]],eax 0E &GPR[rd] */
};
/*
*
*/
uchar __SRLV[] = {
0x8B, 0x0D, '\\', '\\', '\\', '\\', /* 00 mov ecx,[GPR[rs]] 02 &GPR[rs] */
0xA1, '\\', '\\', '\\', '\\', /* 06 mov eax,[GPR[rt]] 07 &GPR[rt] */
0xD3, 0xE8, /* 0B shr eax,cl */
0xA3, '\\', '\\', '\\', '\\' /* 0D mov [GPR[rd]],eax 0E &GPR[rd] */
};
/*
*
*/
#define _rs_ ((opcode >> 21) & 31)
#define _rt_ ((opcode >> 16) & 31)
#define _rd_ ((opcode >> 11) & 31)
/*
*
*/
#define CPU_SET_SRAV() \
{ \
*(ulong *) (&__SRAV[0x02]) = (ulong) & GPR[_rs_]; \
*(ulong *) (&__SRAV[0x07]) = (ulong) & GPR[_rt_]; \
*(ulong *) (&__SRAV[0x0E]) = (ulong) & GPR[_rd_]; \
CPU_OPCODE = __SRAV; \
CPU_OPSIZE = sizeof(__SRAV); \
}
/*
*
*/
#define CPU_SET_SRLV() \
{ \
*(ulong *) (&__SRLV[0x02]) = (ulong) & GPR[_rs_]; \
*(ulong *) (&__SRLV[0x07]) = (ulong) & GPR[_rt_]; \
*(ulong *) (&__SRLV[0x0E]) = (ulong) & GPR[_rd_]; \
CPU_OPCODE = __SRLV; \
CPU_OPSIZE = sizeof(__SRLV); \
}
$B9+$G8m2r$,$"$k$h$&$J$N$G!"Cm0U$r4-5/$9$k$H!"(J
$B
$B%"%;%s%V%i$GD>@\5-=R$9$k0J30$K!"0J2<$NMM$K(JC$B$G5-=R$7!"(J
$B%U%!%$%k=PNO!"5U%"%;%s%V%k$9$k$N$b0l$D$N
/*
*
*/
#define _rs_ 1 /* $BJQ?tItJ,$J$N$GE,Ev(J */
#define _rt_ 2 /* $BJQ?tItJ,$J$N$GE,Ev(J */
#define _rd_ 3 /* $BJQ?tItJ,$J$N$GE,Ev(J */
/*
*
*/
long GPR[32];
/*
*
*/
void __SRAV(void)
{
GPR[_rd_] = GPR[_rt_] >> GPR[_rs_];
}
/*
*
*/
void ____SRAV(void)
{
}
/*
*
*/
void __SRLV(void)
{
GPR[_rd_] = ((ulong) GPR[_rt_]) >> GPR[_rs_];
}
/*
*
*/
void ____SRLV(void)
{
}
/*
*
*/
void SaveToFile(char *lpFileName, void *lpStart, void *lpEnd)
{
FILE *fp;
if (NULL == (fp = fopen(lpFileName, "wb"))) {
return;
}
fwrite(lpStart, (ulong) lpEnd - (ulong) lpStart, 1, fp);
fclose(fp);
}
/*
*
*/
int main(void)
{
SaveToFile("SRAV.X86", __SRAV, ____SRAV);
SaveToFile("SRLV.X86", __SRLV, ____SRLV);
return(0);
}
$B%m!<%I$7$?>l9g(J
| 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
| S S P U |
S S I O |
S C O M A |
S T M R 2 |
S T M R 1 |
S T M R 0 |
S D M A C |
S C D |
S G P U |
S V S Y N C |
||||||
| $B%U%#!<%k%I(J | $BFbMF(J |
|---|---|
| SVSYNC | VSYNC$B$N3d$j9~$_%9%F!<%?%9(J 0:VSYNC$B$+$i3d$j9~$_MW5a$,$J$$(J 1:VSYNC$B$+$i3d$j9~$_MW5a$,$"$C$?(J |
| SGPU$B!A(JSSPU | SVSYNC$B$HF1MM(J |
$B%9%H%"$7$?>l9g(J
| 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
| C S P U |
C S I O |
C C O M A |
C T M R 2 |
C T M R 1 |
C T M R 0 |
C D M A C |
C C D |
C G P U |
C V S Y N C |
||||||
| $B%U%#!<%k%I(J | $BFbMF(J |
|---|---|
| CVSYNC | VSYNC$B$N3d$j9~$_%/%j%"(J 0$B"*(JSVSYNC$B$r(J0$B$K$9$k(J |
| CGPU$B!A(JCSPU | CVSYNC$B$HF1MM(J |
$B%m!<%I$7$?>l9g(J
$B%9%H%"$7$?CM$,JV$k(J
$B%9%H%"$7$?>l9g(J
| 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
| M S P U |
M S I O |
M C O M A |
M T M R 2 |
M T M R 1 |
M T M R 0 |
M D M A C |
M C D |
M G P U |
M V S Y N C |
||||||
| $B%U%#!<%k%I(J | $BFbMF(J |
|---|---|
| MVSYNC | VSYNC$B$N3d$j9~$_%^%9%/(J MVSYNC$B$H(JSVSYNC$B$,$H$b$K(J1$B$G$"$k8B$j!"(JINTC$B$O(JCPU$B$K3d$j9~$_$rMW5a$7B3$1$k!#(J |
| MGPU$B!A(JMSPU | MVSYNC$B$HF1MM(J |
$B=`HwCf(J
$B%?%$%^$O@_Dj$K$h$j%7%9%F%`%/%m%C%/$G$O$J$/%T%/%;%kI=<($d?eJ?F14|$K$h$j%+%&%s%H%"%C%W$5$;$k$3$H$,$G$-$k!#(J
| $B%?%$%W(J | $B2hLLI}(J | [A] | [B]$B%7%9%F%`%/%m%C%/(J/$B?eJ?F14|(J | $B%7%9%F%`%/%m%C%/(J/$B%T%/%;%kI=<((J | $B%7%9%F%`%/%m%C%/(J/$B?bD>F14|(J | ||
|---|---|---|---|---|---|---|---|
| $BHs%$%s%?!<%l!<%9(J | $B%$%s%?!<%l!<%9(J | ||||||
| $B6v?t%U%#!<%k%I(J | $B4q?t%U%#!<%k%I(J | ||||||
| NTSC | 256 | 566107.5005 | [A]/263 | [A]/89683=[B]/341 | [B]*263 | [B]*263 | [B]*262 |
| 320 | [A]/112038=[B]/426 | ||||||
| 368 | [A]/128081=[B]/487 | ||||||
| 512 | [A]/179366=[B]/682 | ||||||
| 640 | [A]/224339=[B]/853 | ||||||
| PAL | 256 | 674399.5367 | [A]/314 | [A]/106760=[B]/340 | [B]*314 | [B]*313 | [B]*312 |
| 320 | [A]/133764=[B]/426 | ||||||
| 368 | [A]/152604=[B]/486 | ||||||
| 512 | [A]/213834=[B]/681 | ||||||
| 640 | [A]/267214=[B]/851 | ||||||
$B=`HwCf(J
$B=`HwCf(J
$B=`HwCf(J
$B=`HwCf(J
$B=`HwCf(J
$B%m!<%I$7$?>l9g(J
$B4pK\E*$K$OFbIt$N%j%6%k%H%l%8%9%?$NCM$,JV$k$,!"(J
StoreImage$B%3%^%s%I
$B%j%6%k%H%l%8%9%?$K$O!"(J GPU$B@)8f7O%3%^%s%I$N7k2L$d(J StoreImage$B%3%^%s%I$N:G=i$N7k2L$,3JG<$5$l$k!#(J $BESCf$N7k2L$O3JG<$5$l$J$$!#(J
$B%9%H%"$7$?>l9g(J
$B%G!<%?$OFbIt$NB?L\E*(JFIFO$B$K3JG<$5$l!"(J
$BI,MW$J?t$N%G!<%?$,Cy$^$k$H!"(J
GPU$BIA2h7O%3%^%s%I$,
$B%m!<%I$7$?>l9g(J
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
| o d e |
t m o d e |
i s e m p t y |
d a t a r d y |
i s i d l e |
d m a r d y |
r e s e r v e d |
i s s t o p |
i s i n t e r |
i s r g b 2 4 |
i s p a l |
v r e s |
h r e s 1 |
h r e s 2 |
r e s e r v e d |
u n k n o w n |
r e s e r v e d |
p b c |
p b w |
d f e |
d t d |
t p |
a b r |
t y |
t x |
|||||||
| $B%U%#!<%k%I(J | $BFbMF(J |
|---|---|
| ode | $B%S%G%*=PNO$NAv::%U%#!<%k%I$,%U%l!<%`%P%C%U%!>e$N4q?t%i%$%s$+$I$&$+!#(J $B$h$C$F%$%s%?!<%l!<%9$G$O?tI4?eJ?F14|Kh!"Hs%$%s%?!<%l!<%9$G$O(J1$B?eJ?F14|Kh(J($B;XDj%V%i%s%/6h4V$O(J0$B$N$^$^(J)$B$KJQ2=$9$k!#(J |
| tmode | $BE>Aw%b!<%I(J |
| isempty | FIFO($B%Q%1%C%H%P%C%U%!(J)$B$,6u$+$I$&$+(J |
| datardy | $B%G!<%?%l%G%#(J |
| isidle | $B%"%$%I%k>uBV$G$"$k(J |
| dmardy | DMA$B%l%G%#(J |
| isstop | $B%S%G%*=PNO$rDd;_$7$F$$$k(J |
| isinter | $B%$%s%?!<%l!<%9$G=PNO$7$F$$$k(J($B?bD>2rA|EY$rG\L)EY$K$9$k>l9g$OI,?\(J) |
| isrgb24 | rgb24$B%S%C%H%b!<%I$G$"$k(J |
| ispal | PAL$B%b!<%I$G$"$k(J |
| vres | $B?bD>2rA|EY(J |
| hres1 | $B?eJ?2rA|EY(J1 |
| hres2 | $B?eJ?2rA|EY(J2($B?eJ?2rA|EY(J1$B$OL58z$K$J$k(J) |
| unknown | $BITL@(J($B%*%s!?%*%UA`:n$O2DG=(J) |
| pbc | $BM%@hEY%S%C%H%3%s%Z%"$r9T$&(J |
| pbw | $BM%@hEY%S%C%H$r=q$-9~$`(J |
| dfe | $B%$%s%?!<%l!<%9$G$"$C$F$b!"(J $BHs%$%s%?!<%l!<%9$HF1MM!"(J $BAv::%U%#!<%k%I$K4X78$J$/IA2h$9$k(J |
| dtd | $B%G%#%6=hM}$r9T$&(J |
| tp | $B%F%/%9%A%c$N%S%C%H%b!<%I(J |
| abr | $BH>F)L@N((J |
| ty | $B%F%/%9%A%c%Z!<%8$N(JY$B:BI8(J |
| tx | $B%F%/%9%A%c%Z!<%8$N(JX$B:BI8(J |
$B%9%H%"$7$?>l9g(J
GPU$B@)8f7O%3%^%s%I$,

$BA4(J24$B%A%c%M%k$NFbB"2;8;$N$3$H!#3F%A%c%M%k$OFHN)$K(J
$B!VGH7A%G!<%?(J(ADPCM$B$^$?$O6&DL%N%$%:(J)$B!_%(%s%Y%m!<%W!_%\%$%92;NL(J($B:81&FHN)(J)$B!W(J
$B$N;0
$BGH7A%G!<%?$K$+$1$k%P%$%"%9$N$3$H!#(J
| $B%l!<%H(J[*] | $B | ||
|---|---|---|---|
| $BJ,Jl(J | $BJ,;R(J($BA}2C(J) | $BJ,;R(J($B8:>/(J) | |
| 0$B!A(J47 | 1 | (7 - (RATE & 3)) << (11 - (RATE >> 2)) | (-8 + (RATE & 3)) << (11 - (RATE >> 2)) |
| 48$B!A(J | 1 << ((RATE >> 2) - 11) | 7 - (RATE & 3) | -8 + (RATE & 3) |
| $B%b!<%I(J | $BFbMF(J |
|---|---|
| $B@~7AA}2C(J | $BJ,Jl%5%s%W%j%s%0;~4VKh$K%(%s%Y%m!<%W%l%Y%k$KJ,;R(J($BA}2C(J)$B$r2C;;(J |
| $B@~7A8:>/(J | $BJ,Jl%5%s%W%j%s%0;~4VKh$K%(%s%Y%m!<%W%l%Y%k$KJ,;R(J($B8:>/(J)$B$r2C;;(J |
| $B;X?tA}2C(J | $B4pK\E*$K$O@~7AA}2C$HF1$8$@$,%(%s%Y%m!<%W%l%Y%k$,(J0x6000$B0J>e$K$J$k$H%l!<%H$,(J8$BA}2C(J |
| $B;X?t8:>/(J | $BJ,Jl%5%s%W%j%s%0;~4VKh$K%(%s%Y%m!<%W%l%Y%k$K(J (($BJ,;R(J($B8:>/(J) * $B%l%Y%k(J) >> 15)$B$r2C;;(J |
| $B%9%F!<%?%9(J | $B3+;O>r7o(J | $B=*N;>r7o(J | $BK0OB2<8B(J | $BK0OB>e8B(J |
|---|---|---|---|---|
| $B=i4|2=(J | $B%-!<%*%s$9$k(J | $B%"%?%C%/%l!<%H$K0MB8$7$?=i4|2=;~4V(J[*]$B$,7P2a$9$k(J | 0 | 0 |
| $B%"%?%C%/(J | $B=i4|2=$,=*N;$9$k(J | $B%(%s%Y%m!<%W%l%Y%k$,(J32767$B0J>e$K$J$k(J | 32767 | |
| $B%G%#%1%$(J | $B%"%?%C%/$,=*N;$9$k(J | $B%(%s%Y%m!<%W%l%Y%k$,%5%9%F%$%s%l%Y%kL$K~$K$J$k(J | 0 | |
| $B%5%9%F%$%s(J | $B%G%#%1%$$,=*N;$9$k(J | $B%-!<%*%U$9$k(J | 0 | 32767 |
| $B%j%j!<%9(J | $B%-!<%*%U$9$k(J | $B%(%s%Y%m!<%W%l%Y%k$,(J0$B0J2<$K$J$k(J | -1 | |
| $BDd;_(J | $B!&%j%j!<%9$,=*N;$9$k(J $B!&(JADPCM$B%G%3!<%@$,6/@)Dd;_$9$k(J |
$B%-!<%*%s$9$k(J | 0 | 0 |

ADPCM$B%G%3!<%@$,05=L%G!<%?$r%G%3!<%I$7$FF@$?%5%s%W%j%s%0GH7A$N$3$H!#(J
$B=EMW$J$N$O(JADPCM$B%G%3!<%@$,(J($B%j%P!<%V%W%m%;%9$b(J)$B>o;~2TF0$7$F$$$k$3$H$@$m$&!#(J
$BDd;_$7$?$h$&$K8+$($F!"$=$l$O%(%s%Y%m!<%W$r6/@)Dd;_$5$;$?7k2L$K$9$.$J$$!#(J
$B$D$^$j!">o$K3d$j9~$_$,H/@8$9$k2DG=@-$,$"$k!#(J
$B$7$+$7$J$,$i!">o;~2TF0$N%(%_%e%l!<%7%g%s$O!"9bIi2Y$N%o%j$K8+JV$j$,>.$5$$!#(J
$B%b%i%H%j%"%`4|4V$r@_$1$k$N$,8=
$BAH$_9g$o$;$H$7$F$O0J2<$N(J5$BDL$j$H$J$k(J($B%k!<%W%"%I%l%9$,6/@)E*$K@_Dj$5$l$?>l9g$O!"$3$N8B$j$G$O$J$$(J)$B!#(J
$B%U%#!<%k%I(J
$BFbMF(J
0x04
$B%+%l%s%H%V%m%C%/$N@hF,$r%k!<%W%"%I%l%9$K@_Dj$9$k!#(J
0x02
$B%(%s%Y%m!<%W$r6/@)Dd;_$7$J$$!#(J
0x01
$B%+%l%s%H%V%m%C%/$r1iAU8e!"%k!<%W%"%I%l%9$K%8%c%s%W$9$k!#(J
0x02$B$,@_Dj$5$l$F$$$J$$$H!"%(%s%Y%m!<%W$r6/@)Dd;_$9$k!#(J
$B%k!<%W%U%i%0(J
$BFbMF(J
0x06,0x04
$B%+%l%s%H%V%m%C%/$N@hF,$r%k!<%W%"%I%l%9$K@_Dj$9$k!#(J
0x03
$B%+%l%s%H%V%m%C%/1iAU8e!"%k!<%W%"%I%l%9$K%8%c%s%W$9$k!#(J
0x07
$B>e#2$D$NAH$_9g$o$;$K$h$j!"%+%l%s%H%V%m%C%/$r1d!9$H1iAU$9$k!#(J
0x01
$B%k!<%W%"%I%l%9$K%8%c%s%W$9$k$,!"%(%s%Y%m!<%W$rDd;_$9$k$N$GL52;$K$J$k!#(J
0x05
$B%+%l%s%H%V%m%C%/$r1d!9$H1iAU$9$k$,!"%(%s%Y%m!<%W$rDd;_$9$k$N$GL52;$K$J$k!#(J
ADPCM$BGH7A$NBX$o$j$KMQ$$$k%i%s%@%`GH7A$N$3$H!#(J $B%A%c%M%kKh$K$I$A$i$+$rA*Br$G$-$k$,!"(J $B%A%c%M%kKh$K0[$J$k%N%$%:GH7A$rF@$k$H$$$C$?$3$H$O=PMh$J$$!#(J
$B%"%k%4%j%:%`(J
/*
* $B%l%Y%kJQ2=;~$N7W;;<0(J
*/
char Addition[64] = {
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1
};
NoiseLevel = (short) (NoiseLevel + NoiseLevel + Addition[(NoiseLevel >> 10) & 63]);
/*
* $B%l%Y%kJQ2=$N<~4|(J
*/
Freq = 0x8000 >> (NoiseClock >> 2);
/*
* $B<~4|$,H>8:$9$kIQEY(J
*/
Half = ((NoiseClock & 3) * 2) / (4 + (NoiseClock & 3));
|

$B%"%k%4%j%:%`(J
/* * PlayStation Reverberation Algorithm (C)Dr.Hell, 2005 * $B87L)$K$O!":81&$N=hM}$N%?%$%_%s%0$O(J1$B%5%s%W%j%s%0;~4V$:$l$F$*$j!"(J * $B3F!9$O(J2$B%5%s%W%j%s%0;~4VKh$K |
| $BHV9f(J | $B%3%^%s%IL>(J | $B?t(J | 1 | 2 | 3 |
|---|---|---|---|---|---|
| 0x00 | Sync | 0 | |||
| 0x01 | Nop | 0 | |||
| 0x02 | Setloc | 3 | AMin | ASec | AFrac |
| 0x03 | Play | 0/1 | Track | ||
| 0x04 | Forward | 0 | |||
| 0x05 | Backward | 0 | |||
| 0x06 | ReadN | 0 | |||
| 0x07 | Standby | 0 | |||
| 0x08 | Stop | 0 | |||
| 0x09 | Pause | 0 | |||
| 0x0A | Reset | 0 | |||
| 0x0B | Mute | 0 | |||
| 0x0C | Demute | 0 | |||
| 0x0D | Setfilter | 2 | File | Chan | |
| 0x0E | Setmode | 1 | Mode | ||
| 0x0F | Getparam | 0 | |||
| 0x10 | GetlocL | 0 | |||
| 0x11 | GetlocP | 0 | |||
| 0x12 | ReadT | 1 | 0x01 | ||
| 0x13 | GetTN | 0 | |||
| 0x14 | GetTD | 1 | Track | ||
| 0x15 | SeekL | 0 | |||
| 0x16 | SeekP | 0 | |||
| 0x17 | Setclock | ||||
| 0x18 | Getclock | ||||
| 0x19 | Test | 1 | Num | ||
| 0x1A | Id | 0 | |||
| 0x1B | ReadS | 0 | |||
| 0x1C | Init | 0 | |||
| 0x1D | |||||
| 0x1E | ReadTOC | 0 | |||
| 0x1F |
| $BHV9f(J | $B%3%^%s%IL>(J | $B=jMW(J $B%/%m%C%/(J |
$B&R(J% | $B3d$j(J $B9~$_(J |
$B?t(J | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | Sync | 0x03 | 1 | Stat | |||||||||
| 0x01 | Nop | 30547 | 23 | 0x03 | 1 | Stat | |||||||
| 0x02 | Setloc | 31557 | 7 | 0x03 | 1 | Stat | |||||||
| 0x03 | Play | 51444 | 0x03 | 1 | Stat | ||||||||
| 0x04 | Forward | 193250 | 12 | 0x03 | 1 | Stat | |||||||
| 0x05 | Backward | 125119 | 0 | 0x03 | 1 | Stat | |||||||
| 0x06 | ReadN | 75701 | 7 | 0x03 | 1 | Stat | |||||||
| 0x07 | Standby | 74753 | 5 | 0x03 | 1 | Stat | |||||||
| 0x08 | Stop | 43503 | 13 | 0x03 | 1 | Stat | |||||||
| 0x09 | Pause | 27648 | 24 | 0x03 | 1 | Stat | |||||||
| 0x0A | Reset | 80295 | 12 | 0x03 | 1 | Stat | |||||||
| 0x0B | Mute | 36114 | 41 | 0x03 | 1 | Stat | |||||||
| 0x0C | Demute | 32768 | 10 | 0x03 | 1 | Stat | |||||||
| 0x0D | Setfilter | 39105 | 48 | 0x03 | 1 | Stat | |||||||
| 0x0E | Setmode | 41082 | 52 | 0x03 | 1 | Stat | |||||||
| 0x0F | Getparam | 40163 | 25 | 0x03 | 5 | Stat | Mode | 0x00 | File | Chan | |||
| 0x10 | GetlocL | 43335 | 20 | 0x03 | 8 | $B%;%/%?$N(J13$BHVL\!A(J20$BHVL\$N%G!<%?(J($B$D$^$j(JRead,SeekL$B$,I,MW(J) | |||||||
| 0x11 | GetlocP | 37937 | 17 | 0x03 | 8 | Track | Index | Min | Sec | Frac | AMin | ASec | AFrac |
| 0x12 | ReadT | 98762 | 13 | 0x03 | 1 | Stat | |||||||
| 0x13 | GetTN | 40833 | 0x03 | 3 | Stat | Begin | End | ||||||
| 0x14 | GetTD | 39091 | 0x03 | 3 | Stat | AMin | ASec | ||||||
| 0x15 | SeekL | 41771 | 25 | 0x03 | 1 | Stat | |||||||
| 0x16 | SeekP | 62041 | 40 | 0x03 | 1 | Stat | |||||||
| 0x17 | Setclock | ||||||||||||
| 0x18 | Getclock | ||||||||||||
| 0x19 | Test(0x20) | 40864 | 14 | 0x03 | 4 | Year | Mon | Day | Ver | ||||
| 0x1A | Id | 30980 | 22 | 0x03 | 1 | Stat | |||||||
| 0x1B | ReadS | 81925 | 2 | 0x03 | 1 | Stat | |||||||
| 0x1C | Init | 25847 | 29 | 0x03 | 1 | Stat | |||||||
| 0x1D | |||||||||||||
| 0x1E | ReadTOC | 73292 | 10 | 0x03 | 1 | Stat | |||||||
| 0x1F | |||||||||||||
| $BHV9f(J | $B%3%^%s%IL>(J | $B=jMW(J $B%/%m%C%/(J |
$B&R(J% | $B3d$j(J $B9~$_(J |
$B?t(J | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | Sync | ||||||||||||
| 0x01 | Nop | ||||||||||||
| 0x02 | Setloc | ||||||||||||
| 0x03 | Play | 0x01 | 8 | Stat | Track | Index | A/Min | A/Sec | A/Frac | LvHi | LvLo | ||
| 0x04 | Forward | ||||||||||||
| 0x05 | Backward | ||||||||||||
| 0x06 | ReadN | 0x01 | 1 | Stat | |||||||||
| 0x07 | Standby | 51429486 | 55 | 0x02 | 1 | Stat | |||||||
| 0x08 | Stop | 12767194 | 2 | 0x02 | 1 | Stat | |||||||
| 0x09 | Pause | 3665794 | 0 | 0x02 | 1 | Stat | |||||||
| 0x0A | Reset | 3656479 | 6 | 0x02 | 1 | Stat | |||||||
| 0x0B | Mute | ||||||||||||
| 0x0C | Demute | ||||||||||||
| 0x0D | Setfilter | ||||||||||||
| 0x0E | Setmode | ||||||||||||
| 0x0F | Getparam | ||||||||||||
| 0x10 | GetlocL | ||||||||||||
| 0x11 | GetlocP | ||||||||||||
| 0x12 | ReadT | 57701665 | 0 | 0x02 | 1 | Stat | |||||||
| 0x13 | GetTN | ||||||||||||
| 0x14 | GetTD | ||||||||||||
| 0x15 | SeekL | 0x02 | 1 | Stat | |||||||||
| 0x16 | SeekP | 0x02 | 1 | Stat | |||||||||
| 0x17 | Setclock | ||||||||||||
| 0x18 | Getclock | ||||||||||||
| 0x19 | Test(0x20) | ||||||||||||
| 0x1A | Id | 19658 | 1 | 0x02 | 8 | 0x02 | 0x00 | 0x20 | 0x00 | 'S' | 'C' | 'E' | 'I' |
| 0x1B | ReadS | 0x01 | 1 | Stat | |||||||||
| 0x1C | Init | ||||||||||||
| 0x1D | |||||||||||||
| 0x1E | ReadTOC | 31330364 | 14 | 0x02 | 1 | Stat | |||||||
| 0x1F |
| $B%3%^%s%IL>(J | $BJdB-;v9`(J |
|---|---|
| Play | Setmode$B$G(J0x04$B$rN)$F$k$H!"(JAFrac(BCD)$B$N2<0L(J4$B%S%C%H$,(J0$B$N;~$K%l%]!<%H$rJV$9!#>e0L$,4q?t$N;~$O0LCV>pJs$,%H%i%C%/AjBP$K$J$k$,!"$=$N:]%U%i%0$H$7$F(JSec(BCD)$B$N(J0x80$B$,N)$D!#(J |
| Reset | $B0LCV$b%[!<%`%]%8%7%g%s$KLa$k!#(J |
| ReadT | $B0z?t$O(J0x01$B0J30>e |
| GetTD | $B0z?t$r(J0x00$B$K$9$k$HA4%H%i%C%/$N9g7W$K$J$k!#(J |
| Init | $B>5G'8e$b;C$/;~4V$r$"$1$kI,MW$,$"$k!#(J |
$B=`HwCf(J
$B=`HwCf(J