|
|
| version 1.8, 2005/04/05 20:37:07 | version 1.9, 2005/04/06 16:46:07 |
|---|---|
| Line 561 static void atapi_cmd_readsubch(IDEDRV d | Line 561 static void atapi_cmd_readsubch(IDEDRV d |
| case 0x01: // CD-ROM current pos | case 0x01: // CD-ROM current pos |
| ZeroMemory(drv->buf, 16); | ZeroMemory(drv->buf, 16); |
| drv->buf[4] = 0x01; | drv->buf[4] = 0x01; |
| pos = drv->dacurpos + (rand() & 7); | pos = drv->dacurpos; |
| if (drv->daflag & 2) { | |
| pos += (rand() & 7); | |
| } | |
| r = tracks; | r = tracks; |
| while(r) { | while(r) { |
| r--; | r--; |
| Line 647 static void atapi_cmd_readtoc(IDEDRV drv | Line 650 static void atapi_cmd_readtoc(IDEDRV drv |
| static void atapi_cmd_playaudiomsf(IDEDRV drv) { | static void atapi_cmd_playaudiomsf(IDEDRV drv) { |
| UINT32 pos; | UINT32 pos; |
| UINT32 leng; | |
| pos = (((drv->buf[6] * 60) + drv->buf[7]) * 75) + drv->buf[8]; | pos = (((drv->buf[3] * 60) + drv->buf[4]) * 75) + drv->buf[5]; |
| leng = (((drv->buf[6] * 60) + drv->buf[7]) * 75) + drv->buf[8]; | |
| if (leng > pos) { | |
| leng -= pos; | |
| } | |
| else { | |
| leng = 0; | |
| } | |
| if (pos >= 150) { | if (pos >= 150) { |
| pos -= 150; | pos -= 150; |
| } | } |
| else { | else { |
| pos = 0; | pos = 0; |
| } | } |
| drv->daendpos = pos; | ideio.daplaying |= 1 << (drv->sxsidrv & 3); |
| drv->dacurpos = pos; // 終了したことにする。 | drv->daflag = 1; |
| drv->dacurpos = pos; | |
| drv->dalength = leng; | |
| drv->dabufrem = 0; | |
| cmddone(drv); | cmddone(drv); |
| } | } |