|
|
| version 1.3, 2003/11/08 21:43:01 | version 1.6, 2003/12/08 00:55:30 |
|---|---|
| Line 11 static void setamd98event(BOOL absolute) | Line 11 static void setamd98event(BOOL absolute) |
| SINT32 cnt; | SINT32 cnt; |
| if (pit.value[3].w > 8) { // º¬µò¤Ê¤· | if (pit.value[3] > 8) { // º¬µò¤Ê¤· |
| cnt = pc.multiple * pit.value[3].w; | cnt = pc.multiple * pit.value[3]; |
| } | } |
| else { | else { |
| cnt = pc.multiple << 16; | cnt = pc.multiple << 16; |
| Line 38 void amd98int(NEVENTITEM item) { | Line 38 void amd98int(NEVENTITEM item) { |
| // ---- | // ---- |
| static void IOOUTCALL amd_od8(UINT port, BYTE dat) { | static void IOOUTCALL amd_od8(UINT port, REG8 dat) { |
| opn.opnreg = dat; | opn.opnreg = dat; |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL amd_od9(UINT port, BYTE dat) { | static void IOOUTCALL amd_od9(UINT port, REG8 dat) { |
| opn.extreg = dat; | opn.extreg = dat; |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL amd_oda(UINT port, BYTE dat) { | static void IOOUTCALL amd_oda(UINT port, REG8 dat) { |
| if (opn.opnreg < 0x0e) { | if (opn.opnreg < 0x0e) { |
| psggen_setreg(&psg1, opn.opnreg, dat); | psggen_setreg(&psg1, opn.opnreg, dat); |
| Line 61 static void IOOUTCALL amd_oda(UINT port, | Line 61 static void IOOUTCALL amd_oda(UINT port, |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL amd_odb(UINT port, BYTE dat) { | static void IOOUTCALL amd_odb(UINT port, REG8 dat) { |
| if (opn.extreg < 0x0e) { | if (opn.extreg < 0x0e) { |
| psggen_setreg(&psg2, opn.extreg, dat); | psggen_setreg(&psg2, opn.extreg, dat); |
| } | } |
| else if (opn.extreg == 0x0f) { | else if (opn.extreg == 0x0f) { |
| BYTE b; | REG8 b; |
| b = psg2.reg.io2; | b = psg2.reg.io2; |
| if ((b & 1) > (dat & 1)) { | if ((b & 1) > (dat & 1)) { |
| b &= 0xc2; | b &= 0xc2; |
| Line 98 static const BYTE amdr[] = {0x01, 0x08, | Line 98 static const BYTE amdr[] = {0x01, 0x08, |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL amd_odc(UINT port, BYTE dat) { | static void IOOUTCALL amd_odc(UINT port, REG8 dat) { |
| itimer_setcount(3, dat); | pit_setcount(3, dat); |
| setamd98event(NEVENT_ABSOLUTE); | setamd98event(NEVENT_ABSOLUTE); |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL amd_ode(UINT port, BYTE dat) { | static void IOOUTCALL amd_ode(UINT port, REG8 dat) { |
| itimer_setflag(3, dat); | pit_setflag(3, dat); |
| (void)port; | (void)port; |
| } | } |
| // ---- | // ---- |
| static void psgpanset(PSGGEN psg) { | |
| psggen_setpan(psg, 0, 1); | |
| psggen_setpan(psg, 1, 0); | |
| psggen_setpan(psg, 2, 2); | |
| } | |
| void amd98_bind(void) { | void amd98_bind(void) { |
| psgpanset(&psg1); | |
| psgpanset(&psg2); | |
| psgpanset(&psg3); | |
| sound_streamregist(&psg1, (SOUNDCB)psggen_getpcm); | sound_streamregist(&psg1, (SOUNDCB)psggen_getpcm); |
| sound_streamregist(&psg2, (SOUNDCB)psggen_getpcm); | sound_streamregist(&psg2, (SOUNDCB)psggen_getpcm); |
| sound_streamregist(&psg3, (SOUNDCB)psggen_getpcm); | sound_streamregist(&psg3, (SOUNDCB)psggen_getpcm); |