notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new z80 scheduling method, timers are still wip
[picodrive.git]
/
Pico
/
sound
/
ym2612.c
diff --git
a/Pico/sound/ym2612.c
b/Pico/sound/ym2612.c
index
144c334
..
b9749f2
100644
(file)
--- a/
Pico/sound/ym2612.c
+++ b/
Pico/sound/ym2612.c
@@
-116,7
+116,7
@@
#ifndef EXTERNAL_YM2612
\r
#include <stdlib.h>
\r
// let it be 1 global to simplify things
\r
#ifndef EXTERNAL_YM2612
\r
#include <stdlib.h>
\r
// let it be 1 global to simplify things
\r
-
static
YM2612 ym2612;
\r
+YM2612 ym2612;
\r
\r
#else
\r
extern YM2612 *ym2612_940;
\r
\r
#else
\r
extern YM2612 *ym2612_940;
\r
@@
-1584,11
+1584,8
@@
static int OPNWriteReg(int r, int v)
/* YM2612 local section */
\r
/*******************************************************************************/
\r
\r
/* YM2612 local section */
\r
/*******************************************************************************/
\r
\r
-int *ym2612_dacen;
\r
-INT32 *ym2612_dacout;
\r
FM_ST *ym2612_st;
\r
\r
FM_ST *ym2612_st;
\r
\r
-
\r
/* Generate samples for YM2612 */
\r
int YM2612UpdateOne_(int *buffer, int length, int stereo, int is_buf_empty)
\r
{
\r
/* Generate samples for YM2612 */
\r
int YM2612UpdateOne_(int *buffer, int length, int stereo, int is_buf_empty)
\r
{
\r
@@
-1654,8
+1651,6
@@
int YM2612UpdateOne_(int *buffer, int length, int stereo, int is_buf_empty)
void YM2612Init_(int clock, int rate)
\r
{
\r
// notaz
\r
void YM2612Init_(int clock, int rate)
\r
{
\r
// notaz
\r
- ym2612_dacen = &ym2612.dacen;
\r
- ym2612_dacout = &ym2612.dacout;
\r
ym2612_st = &ym2612.OPN.ST;
\r
\r
memset(&ym2612, 0, sizeof(ym2612));
\r
ym2612_st = &ym2612.OPN.ST;
\r
\r
memset(&ym2612, 0, sizeof(ym2612));
\r
@@
-1728,9
+1723,6
@@
int YM2612Write_(unsigned int a, unsigned int v)
}
\r
\r
addr = ym2612.OPN.ST.address;
\r
}
\r
\r
addr = ym2612.OPN.ST.address;
\r
-#ifndef EXTERNAL_YM2612
\r
- ym2612.REGS[addr] = v;
\r
-#endif
\r
\r
switch( addr & 0xf0 )
\r
{
\r
\r
switch( addr & 0xf0 )
\r
{
\r
@@
-1747,6
+1739,7
@@
int YM2612Write_(unsigned int a, unsigned int v)
ym2612.OPN.lfo_inc = 0;
\r
}
\r
break;
\r
ym2612.OPN.lfo_inc = 0;
\r
}
\r
break;
\r
+#if 0 // handled elsewhere
\r
case 0x24: { // timer A High 8
\r
int TAnew = (ym2612.OPN.ST.TA & 0x03)|(((int)v)<<2);
\r
if(ym2612.OPN.ST.TA != TAnew) {
\r
case 0x24: { // timer A High 8
\r
int TAnew = (ym2612.OPN.ST.TA & 0x03)|(((int)v)<<2);
\r
if(ym2612.OPN.ST.TA != TAnew) {
\r
@@
-1781,6
+1774,7
@@
int YM2612Write_(unsigned int a, unsigned int v)
set_timers( v );
\r
ret=0;
\r
break;
\r
set_timers( v );
\r
ret=0;
\r
break;
\r
+#endif
\r
case 0x28: /* key on / off */
\r
{
\r
UINT8 c;
\r
case 0x28: /* key on / off */
\r
{
\r
UINT8 c;
\r
@@
-1794,6
+1788,7
@@
int YM2612Write_(unsigned int a, unsigned int v)
if(v&0x80) FM_KEYON(c,SLOT4); else FM_KEYOFF(c,SLOT4);
\r
break;
\r
}
\r
if(v&0x80) FM_KEYON(c,SLOT4); else FM_KEYOFF(c,SLOT4);
\r
break;
\r
}
\r
+#if 0
\r
case 0x2a: /* DAC data (YM2612) */
\r
ym2612.dacout = ((int)v - 0x80) << 6; /* level unknown (notaz: 8 seems to be too much) */
\r
ret=0;
\r
case 0x2a: /* DAC data (YM2612) */
\r
ym2612.dacout = ((int)v - 0x80) << 6; /* level unknown (notaz: 8 seems to be too much) */
\r
ret=0;
\r
@@
-1803,6
+1798,7
@@
int YM2612Write_(unsigned int a, unsigned int v)
ym2612.dacen = v & 0x80;
\r
ret=0;
\r
break;
\r
ym2612.dacen = v & 0x80;
\r
ret=0;
\r
break;
\r
+#endif
\r
default:
\r
break;
\r
}
\r
default:
\r
break;
\r
}
\r
@@
-1826,9
+1822,6
@@
int YM2612Write_(unsigned int a, unsigned int v)
}
\r
\r
addr = ym2612.OPN.ST.address | 0x100;
\r
}
\r
\r
addr = ym2612.OPN.ST.address | 0x100;
\r
-#ifndef EXTERNAL_YM2612
\r
- ym2612.REGS[addr] = v;
\r
-#endif
\r
\r
ret = OPNWriteReg(addr, v);
\r
break;
\r
\r
ret = OPNWriteReg(addr, v);
\r
break;
\r