|
|
| version 1.2, 2003/10/18 07:28:50 | version 1.6, 2003/10/27 15:06:31 |
|---|---|
| Line 169 void opngen_setvol(UINT vol) { | Line 169 void opngen_setvol(UINT vol) { |
| #endif | #endif |
| } | } |
| void opngen_setVR(BYTE channel, BYTE value) { | |
| if ((channel & 3) && (value)) { | |
| opncfg.vr_en = TRUE; | |
| opncfg.vr_l = (channel & 1)?value:0; | |
| opncfg.vr_r = (channel & 2)?value:0; | |
| } | |
| else { | |
| opncfg.vr_en = FALSE; | |
| } | |
| } | |
| // ---- | // ---- |
| static void set_algorithm(OPNCH *ch) { | static void set_algorithm(OPNCH *ch) { |
| SINT32 *outd; | SINT32 *outd; |
| BYTE outslot; | |
| outd = &opngen.outdc; | outd = &opngen.outdc; |
| if (ch->stereo) { | if (ch->stereo) { |
| Line 193 static void set_algorithm(OPNCH *ch) { | Line 206 static void set_algorithm(OPNCH *ch) { |
| ch->connect1 = &opngen.feedback2; | ch->connect1 = &opngen.feedback2; |
| ch->connect2 = &opngen.feedback3; | ch->connect2 = &opngen.feedback3; |
| ch->connect3 = &opngen.feedback4; | ch->connect3 = &opngen.feedback4; |
| outslot = 0x08; | |
| break; | break; |
| case 1: | case 1: |
| ch->connect1 = &opngen.feedback3; | ch->connect1 = &opngen.feedback3; |
| ch->connect2 = &opngen.feedback3; | ch->connect2 = &opngen.feedback3; |
| ch->connect3 = &opngen.feedback4; | ch->connect3 = &opngen.feedback4; |
| outslot = 0x08; | |
| break; | break; |
| case 2: | case 2: |
| ch->connect1 = &opngen.feedback4; | ch->connect1 = &opngen.feedback4; |
| ch->connect2 = &opngen.feedback3; | ch->connect2 = &opngen.feedback3; |
| ch->connect3 = &opngen.feedback4; | ch->connect3 = &opngen.feedback4; |
| outslot = 0x08; | |
| break; | break; |
| case 3: | case 3: |
| ch->connect1 = &opngen.feedback2; | ch->connect1 = &opngen.feedback2; |
| ch->connect2 = &opngen.feedback4; | ch->connect2 = &opngen.feedback4; |
| ch->connect3 = &opngen.feedback4; | ch->connect3 = &opngen.feedback4; |
| outslot = 0x08; | |
| break; | break; |
| case 4: | case 4: |
| ch->connect1 = &opngen.feedback2; | ch->connect1 = &opngen.feedback2; |
| ch->connect2 = outd; | ch->connect2 = outd; |
| ch->connect3 = &opngen.feedback4; | ch->connect3 = &opngen.feedback4; |
| outslot = 0x0a; | |
| break; | break; |
| case 5: | case 5: |
| ch->connect1 = 0; | ch->connect1 = 0; |
| ch->connect2 = outd; | ch->connect2 = outd; |
| ch->connect3 = outd; | ch->connect3 = outd; |
| outslot = 0x0e; | |
| break; | break; |
| case 6: | case 6: |
| ch->connect1 = &opngen.feedback2; | ch->connect1 = &opngen.feedback2; |
| ch->connect2 = outd; | ch->connect2 = outd; |
| ch->connect3 = outd; | ch->connect3 = outd; |
| outslot = 0x0e; | |
| break; | break; |
| case 7: | case 7: |
| Line 236 static void set_algorithm(OPNCH *ch) { | Line 256 static void set_algorithm(OPNCH *ch) { |
| ch->connect1 = outd; | ch->connect1 = outd; |
| ch->connect2 = outd; | ch->connect2 = outd; |
| ch->connect3 = outd; | ch->connect3 = outd; |
| outslot = 0x0f; | |
| } | } |
| ch->connect4 = outd; | ch->connect4 = outd; |
| ch->outslot = outslot; | |
| } | } |
| static void set_dt1_mul(OPNSLOT *slot, BYTE value) { | static void set_dt1_mul(OPNSLOT *slot, BYTE value) { |
| Line 392 void opngen_reset(void) { | Line 414 void opngen_reset(void) { |
| ch++; | ch++; |
| } | } |
| for (i=0x30; i<0xc0; i++) { | for (i=0x30; i<0xc0; i++) { |
| opngen_setreg((BYTE)i, 0xff, 0); | opngen_setreg(0, (BYTE)i, 0xff); |
| opngen_setreg((BYTE)i, 0xff, 3); | opngen_setreg(3, (BYTE)i, 0xff); |
| opngen_setreg((BYTE)i, 0xff, 6); | opngen_setreg(6, (BYTE)i, 0xff); |
| opngen_setreg((BYTE)i, 0xff, 9); | opngen_setreg(9, (BYTE)i, 0xff); |
| } | } |
| } | } |
| Line 543 void opngen_keyon(UINT chnum, BYTE value | Line 565 void opngen_keyon(UINT chnum, BYTE value |
| sound_sync(); | sound_sync(); |
| opngen.keyreg[chnum] = value; | opngen.keyreg[chnum] = value; |
| opngen.playing++; | |
| ch = opnch + chnum; | ch = opnch + chnum; |
| ch->playing |= value >> 4; | |
| slot = ch->slot; | slot = ch->slot; |
| bit = 0x10; | bit = 0x10; |
| for (i=0; i<4; i++) { | for (i=0; i<4; i++) { |