FM-TOWNS/PC98 Sound: Strip trailing whitespaces/tabs.
svn-id: r51651
This commit is contained in:
parent
2964e9213d
commit
f14940cbb5
7 changed files with 91 additions and 91 deletions
|
@ -46,7 +46,7 @@ private:
|
|||
uint8 *curInstrument;
|
||||
uint8 note;
|
||||
uint8 velo;
|
||||
|
||||
|
||||
int8 *data;
|
||||
int8 *dataEnd;
|
||||
|
||||
|
@ -73,10 +73,10 @@ private:
|
|||
int16 envCurrentLevel;
|
||||
|
||||
EnvelopeState envState;
|
||||
|
||||
|
||||
int8 *extData;
|
||||
};
|
||||
|
||||
|
||||
class TownsAudio_WaveTable {
|
||||
friend class TownsAudioInterface;
|
||||
public:
|
||||
|
@ -233,10 +233,10 @@ bool TownsAudioInterface::init() {
|
|||
return true;
|
||||
|
||||
if (!_drv)
|
||||
return false;
|
||||
return false;
|
||||
|
||||
if (!TownsPC98_FmSynth::init())
|
||||
return false;
|
||||
return false;
|
||||
|
||||
_fmSaveReg[0] = new uint8[256];
|
||||
_fmSaveReg[1] = new uint8[256];
|
||||
|
@ -423,7 +423,7 @@ int TownsAudioInterface::intf_readRegBuffer(va_list &args) {
|
|||
*dst = _fmSaveReg[part][reg];
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int TownsAudioInterface::intf_setTimerA(va_list &args) {
|
||||
int enable = va_arg(args, int);
|
||||
int tempo = va_arg(args, int);
|
||||
|
@ -449,7 +449,7 @@ int TownsAudioInterface::intf_setTimerB(va_list &args) {
|
|||
} else {
|
||||
bufferedWriteReg(0, 0x27, (_fmSaveReg[0][0x27] & 0xf5) | 0x20);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -466,10 +466,10 @@ int TownsAudioInterface::intf_enableTimerB(va_list &args) {
|
|||
int TownsAudioInterface::intf_reserveEffectChannels(va_list &args) {
|
||||
int numChan = va_arg(args, int);
|
||||
if (numChan > 8)
|
||||
return 3;
|
||||
return 3;
|
||||
if ((numChan << 13) + _waveTablesTotalDataSize > 65536)
|
||||
return 5;
|
||||
|
||||
|
||||
if (numChan == _numReservedChannels)
|
||||
return 0;
|
||||
|
||||
|
@ -477,14 +477,14 @@ int TownsAudioInterface::intf_reserveEffectChannels(va_list &args) {
|
|||
int c = 8 - _numReservedChannels;
|
||||
for (int i = numChan; i; i--) {
|
||||
uint8 f = ~_chanFlags[c--];
|
||||
_pcmChanEffectPlaying &= f;
|
||||
_pcmChanEffectPlaying &= f;
|
||||
}
|
||||
} else {
|
||||
int c = 7 - _numReservedChannels;
|
||||
for (int i = numChan - _numReservedChannels; i; i--) {
|
||||
uint8 f = ~_chanFlags[c--];
|
||||
_pcmChanKeyPressed &= f;
|
||||
_pcmChanKeyPlaying &= f;
|
||||
_pcmChanKeyPlaying &= f;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -499,7 +499,7 @@ int TownsAudioInterface::intf_loadWaveTable(va_list &args) {
|
|||
uint8 *data = va_arg(args, uint8*);
|
||||
if (_numWaveTables > 127)
|
||||
return 3;
|
||||
|
||||
|
||||
TownsAudio_WaveTable w;
|
||||
w.readHeader(data);
|
||||
if (!w.size)
|
||||
|
@ -524,7 +524,7 @@ int TownsAudioInterface::intf_loadWaveTable(va_list &args) {
|
|||
|
||||
int TownsAudioInterface::intf_unloadWaveTable(va_list &args) {
|
||||
int id = va_arg(args, int);
|
||||
|
||||
|
||||
if (id == -1) {
|
||||
for (int i = 0; i < 128; i++)
|
||||
_waveTables[i].clear();
|
||||
|
@ -557,7 +557,7 @@ int TownsAudioInterface::intf_pcmPlayEffect(va_list &args) {
|
|||
|
||||
if (chan < 0x40 || chan > 0x47)
|
||||
return 1;
|
||||
|
||||
|
||||
if (note & 0x80 || velo & 0x80)
|
||||
return 3;
|
||||
|
||||
|
@ -579,7 +579,7 @@ int TownsAudioInterface::intf_pcmPlayEffect(va_list &args) {
|
|||
return 6;
|
||||
|
||||
TownsAudio_PcmChannel *p = &_pcmChan[chan];
|
||||
|
||||
|
||||
_pcmChanNote[chan] = note;
|
||||
_pcmChanVelo[chan] = velo;
|
||||
|
||||
|
@ -693,9 +693,9 @@ void TownsAudioInterface::fmReset() {
|
|||
memset(&_fmSaveReg[0][240], 0x7f, 16);
|
||||
memset(_fmSaveReg[1], 0, 256);
|
||||
memset(&_fmSaveReg[1][240], 0x7f, 16);
|
||||
_fmSaveReg[0][243] = _fmSaveReg[0][247] = _fmSaveReg[0][251] = _fmSaveReg[0][255] =
|
||||
_fmSaveReg[0][243] = _fmSaveReg[0][247] = _fmSaveReg[0][251] = _fmSaveReg[0][255] =
|
||||
_fmSaveReg[1][243] = _fmSaveReg[1][247] = _fmSaveReg[1][251] = _fmSaveReg[1][255] = 0xff;
|
||||
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
fmLoadInstrument(i, _fmDefaultInstrument);
|
||||
|
||||
|
@ -728,7 +728,7 @@ int TownsAudioInterface::fmKeyOn(int chan, int note, int velo) {
|
|||
uint8 part = chan > 2 ? 1 : 0;
|
||||
if (chan > 2)
|
||||
chan -= 3;
|
||||
|
||||
|
||||
int frq = 0;
|
||||
uint8 bl = 0;
|
||||
|
||||
|
@ -778,12 +778,12 @@ int TownsAudioInterface::fmKeyOn(int chan, int note, int velo) {
|
|||
if (part)
|
||||
v |= 4;
|
||||
|
||||
for (uint8 reg = 0x80 + chan; reg < 0x90; reg += 4)
|
||||
for (uint8 reg = 0x80 + chan; reg < 0x90; reg += 4)
|
||||
writeReg(part, reg, _fmSaveReg[part][reg] | 0x0f);
|
||||
|
||||
writeReg(0, 0x28, v);
|
||||
|
||||
for (uint8 reg = 0x80 + chan; reg < 0x90; reg += 4)
|
||||
for (uint8 reg = 0x80 + chan; reg < 0x90; reg += 4)
|
||||
writeReg(part, reg, _fmSaveReg[part][reg]);
|
||||
|
||||
bufferedWriteReg(0, 0x28, v | 0xf0);
|
||||
|
@ -874,7 +874,7 @@ int TownsAudioInterface::fmSetInstrument(int chan, int instrId) {
|
|||
bufferedWriteReg(part, reg, *src++);
|
||||
|
||||
uint8 v = *src++;
|
||||
reg += 4;
|
||||
reg += 4;
|
||||
if (v < 64)
|
||||
v |= (_fmSaveReg[part][reg] & 0xc0);
|
||||
bufferedWriteReg(part, reg, v);
|
||||
|
@ -886,7 +886,7 @@ int TownsAudioInterface::fmLoadInstrument(int instrId, const uint8 *data) {
|
|||
if (instrId > 127)
|
||||
return 3;
|
||||
assert(data);
|
||||
memcpy(&_fmInstruments[instrId * 48], data, 48);
|
||||
memcpy(&_fmInstruments[instrId * 48], data, 48);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -901,7 +901,7 @@ int TownsAudioInterface::fmSetPitch(int chan, int pitch) {
|
|||
if (bl) {
|
||||
if (pitch < -8008)
|
||||
pitch = -8008;
|
||||
pitch *= -1;
|
||||
pitch *= -1;
|
||||
pitch /= 13;
|
||||
frq = _frequency[(bl - 1) % 12] - pitch;
|
||||
bl = (bl - 1) / 12;
|
||||
|
@ -915,7 +915,7 @@ int TownsAudioInterface::fmSetPitch(int chan, int pitch) {
|
|||
frq = 616;
|
||||
bl = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
frq = 616;
|
||||
bl = 0;
|
||||
|
@ -926,7 +926,7 @@ int TownsAudioInterface::fmSetPitch(int chan, int pitch) {
|
|||
if (pitch > 8008)
|
||||
pitch = 8008;
|
||||
pitch /= 13;
|
||||
|
||||
|
||||
if (bl) {
|
||||
frq = _frequency[(bl - 1) % 12] + pitch;
|
||||
bl = (bl - 1) / 12;
|
||||
|
@ -934,7 +934,7 @@ int TownsAudioInterface::fmSetPitch(int chan, int pitch) {
|
|||
frq = 616;
|
||||
bl = 0;
|
||||
}
|
||||
|
||||
|
||||
_fmChanPitch[chan] = pitch;
|
||||
|
||||
if (frq > 1232) {
|
||||
|
@ -948,8 +948,8 @@ int TownsAudioInterface::fmSetPitch(int chan, int pitch) {
|
|||
} else {
|
||||
if (bl >= 7 && frq > 1164)
|
||||
frq = 1164;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
frq = 1164;
|
||||
bl = 7;
|
||||
|
@ -986,7 +986,7 @@ int TownsAudioInterface::fmSetLevel(int chan, int lvl) {
|
|||
uint8 part = chan > 2 ? 1 : 0;
|
||||
if (chan > 2)
|
||||
chan -= 3;
|
||||
|
||||
|
||||
uint16 c = _carrier[_fmSaveReg[part][0xb0 + chan] & 7];
|
||||
_fmSaveReg[part][0xd0 + chan] = lvl;
|
||||
|
||||
|
@ -1016,12 +1016,12 @@ void TownsAudioInterface::pcmReset() {
|
|||
|
||||
for (int i = 0; i < 8; i++)
|
||||
_pcmChan[i].clear();
|
||||
|
||||
|
||||
memset(_pcmInstruments, 0, 128 * 32);
|
||||
static uint8 name[] = { 0x4E, 0x6F, 0x20, 0x44, 0x61, 0x74, 0x61, 0x21 };
|
||||
for (int i = 0; i < 32; i++)
|
||||
memcpy(_pcmInstruments + i * 128, name, 8);
|
||||
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
_waveTables[i].clear();
|
||||
_numWaveTables = 0;
|
||||
|
@ -1036,7 +1036,7 @@ void TownsAudioInterface::pcmReset() {
|
|||
int TownsAudioInterface::pcmKeyOn(int chan, int note, int velo) {
|
||||
if (chan < 0x40 || chan > 0x47)
|
||||
return 1;
|
||||
|
||||
|
||||
if (note & 0x80 || velo & 0x80)
|
||||
return 3;
|
||||
|
||||
|
@ -1047,7 +1047,7 @@ int TownsAudioInterface::pcmKeyOn(int chan, int note, int velo) {
|
|||
|
||||
_pcmChanNote[chan] = note;
|
||||
_pcmChanVelo[chan] = velo;
|
||||
|
||||
|
||||
TownsAudio_PcmChannel *p = &_pcmChan[chan];
|
||||
p->note = note;
|
||||
|
||||
|
@ -1109,7 +1109,7 @@ int TownsAudioInterface::pcmKeyOff(int chan) {
|
|||
return 1;
|
||||
|
||||
chan -= 0x40;
|
||||
_pcmChanKeyPressed &= ~_chanFlags[chan];
|
||||
_pcmChanKeyPressed &= ~_chanFlags[chan];
|
||||
_pcmChan[chan].envRelease();
|
||||
return 0;
|
||||
}
|
||||
|
@ -1165,7 +1165,7 @@ int TownsAudioInterface::pcmLoadInstrument(int instrId, const uint8 *data) {
|
|||
if (instrId > 31)
|
||||
return 3;
|
||||
assert(data);
|
||||
memcpy(&_pcmInstruments[instrId * 128], data, 128);
|
||||
memcpy(&_pcmInstruments[instrId * 128], data, 128);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1184,14 +1184,14 @@ int TownsAudioInterface::pcmSetPitch(int chan, int pitch) {
|
|||
if (pitch < 0)
|
||||
pts = (0x20000000 / (-pitch + 0x2001)) >> 2;
|
||||
else if (pitch > 0)
|
||||
pts = (((pitch + 0x2001) << 16) / 0x2000) >> 2;
|
||||
pts = (((pitch + 0x2001) << 16) / 0x2000) >> 2;
|
||||
|
||||
p->stepPitch = pts & 0xffff;
|
||||
p->step = (p->stepNote * p->stepPitch) >> 14;
|
||||
|
||||
// if (_pcmChanUnkFlag & _chanFlags[chan])
|
||||
// unk[chan] = (((p->step * 1000) << 11) / 98) / 20833;
|
||||
|
||||
|
||||
/*else*/ if ((_pcmChanEffectPlaying & _chanFlags[chan]) && (p->step > 2048))
|
||||
p->step = 2048;
|
||||
|
||||
|
@ -1201,13 +1201,13 @@ int TownsAudioInterface::pcmSetPitch(int chan, int pitch) {
|
|||
int TownsAudioInterface::pcmSetLevel(int chan, int lvl) {
|
||||
if (chan > 0x47)
|
||||
return 1;
|
||||
|
||||
|
||||
if (lvl & 0x80)
|
||||
return 3;
|
||||
|
||||
chan -= 0x40;
|
||||
TownsAudio_PcmChannel *p = &_pcmChan[chan];
|
||||
|
||||
|
||||
if (_pcmChanReserved & _chanFlags[chan]) {
|
||||
_pcmChanVelo[chan] = lvl;
|
||||
p->velo = lvl << 1;
|
||||
|
@ -1262,7 +1262,7 @@ void TownsAudioInterface::pcmUpdateEnvelopeGenerator(int chan) {
|
|||
if (p->envCurrentLevel <= 0)
|
||||
p->envCurrentLevel = 0;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1295,11 +1295,11 @@ void TownsAudioInterface::pcmCalcPhaseStep(TownsAudio_PcmChannel *p, TownsAudio_
|
|||
}
|
||||
|
||||
p->stepNote = s & 0xffff;
|
||||
p->step = (s * p->stepPitch) >> 14;
|
||||
p->step = (s * p->stepPitch) >> 14;
|
||||
}
|
||||
|
||||
void TownsAudioInterface::cdaReset() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
const uint8 TownsAudioInterface::_chanFlags[] = {
|
||||
|
@ -1340,7 +1340,7 @@ TownsAudio_PcmChannel::~TownsAudio_PcmChannel() {
|
|||
|
||||
void TownsAudio_PcmChannel::loadExtData(uint8 *buffer, uint32 size) {
|
||||
delete[] extData;
|
||||
extData = new int8[size];
|
||||
extData = new int8[size];
|
||||
int8 *src = (int8*)buffer;
|
||||
int8 *dst = extData;
|
||||
for (uint32 i = 0; i < size; i++)
|
||||
|
@ -1361,7 +1361,7 @@ void TownsAudio_PcmChannel::clear() {
|
|||
curInstrument = 0;
|
||||
note = 0;
|
||||
velo = 0;
|
||||
|
||||
|
||||
data = 0;
|
||||
dataEnd = 0;
|
||||
loopLen = 0;
|
||||
|
@ -1380,14 +1380,14 @@ void TownsAudio_PcmChannel::clear() {
|
|||
envStep = envCurrentLevel = 0;
|
||||
|
||||
envState = kEnvReady;
|
||||
|
||||
|
||||
delete[] extData;
|
||||
extData = 0;
|
||||
}
|
||||
|
||||
void TownsAudio_PcmChannel::envAttack() {
|
||||
envState = kEnvAttacking;
|
||||
int16 t = envTotalLevel << 8;
|
||||
int16 t = envTotalLevel << 8;
|
||||
if (envAttackRate == 127) {
|
||||
envStep = 0;
|
||||
} else if (envAttackRate) {
|
||||
|
@ -1405,7 +1405,7 @@ void TownsAudio_PcmChannel::envDecay() {
|
|||
if (t < 0 || envDecayRate == 127) {
|
||||
envStep = 0;
|
||||
} else if (envDecayRate) {
|
||||
envStep = (t << 8) / envDecayRate;
|
||||
envStep = (t << 8) / envDecayRate;
|
||||
} else {
|
||||
envCurrentLevel = envSustainLevel << 8;
|
||||
envSustain();
|
||||
|
@ -1457,7 +1457,7 @@ void TownsAudio_WaveTable::readData(const uint8 *buffer) {
|
|||
|
||||
delete[] data;
|
||||
data = new int8[size];
|
||||
|
||||
|
||||
const int8 *src = (const int8*)buffer;
|
||||
int8 *dst = data;
|
||||
for (uint32 i = 0; i < size; i++)
|
||||
|
|
|
@ -44,7 +44,7 @@ public:
|
|||
|
||||
bool init();
|
||||
|
||||
int callback(int command, ...);
|
||||
int callback(int command, ...);
|
||||
|
||||
private:
|
||||
void nextTickEx(int32 *buffer, uint32 bufferSize);
|
||||
|
@ -70,7 +70,7 @@ private:
|
|||
int intf_setTimerA(va_list &args);
|
||||
int intf_setTimerB(va_list &args);
|
||||
int intf_enableTimerA(va_list &args);
|
||||
int intf_enableTimerB(va_list &args);
|
||||
int intf_enableTimerB(va_list &args);
|
||||
int intf_reserveEffectChannels(va_list &args);
|
||||
int intf_loadWaveTable(va_list &args);
|
||||
int intf_unloadWaveTable(va_list &args);
|
||||
|
@ -90,26 +90,26 @@ private:
|
|||
int intf_pcmUpdateEnvelopeGenerator(va_list &args);
|
||||
|
||||
int intf_notImpl(va_list &args);
|
||||
|
||||
|
||||
void fmReset();
|
||||
int fmKeyOn(int chan, int note, int velo);
|
||||
int fmKeyOff(int chan);
|
||||
int fmChanOff(int chan);
|
||||
int fmSetPanPos(int chan, int mode);
|
||||
int fmSetPanPos(int chan, int mode);
|
||||
int fmSetInstrument(int chan, int instrId);
|
||||
int fmLoadInstrument(int instrId, const uint8 *data);
|
||||
int fmSetPitch(int chan, int pitch);
|
||||
int fmSetLevel(int chan, int lvl);
|
||||
|
||||
void bufferedWriteReg(uint8 part, uint8 regAddress, uint8 value);
|
||||
|
||||
|
||||
uint8 _fmChanPlaying;
|
||||
uint8 _fmChanNote[6];
|
||||
int16 _fmChanPitch[6];
|
||||
|
||||
uint8 *_fmSaveReg[2];
|
||||
uint8 *_fmInstruments;
|
||||
|
||||
|
||||
void pcmReset();
|
||||
int pcmKeyOn(int chan, int note, int velo);
|
||||
int pcmKeyOff(int chan);
|
||||
|
@ -127,14 +127,14 @@ private:
|
|||
uint8 _pcmChanKeyPressed;
|
||||
uint8 _pcmChanEffectPlaying;
|
||||
uint8 _pcmChanKeyPlaying;
|
||||
|
||||
|
||||
uint8 _pcmChanNote[8];
|
||||
uint8 _pcmChanVelo[8];
|
||||
uint8 _pcmChanLevel[8];
|
||||
|
||||
uint8 _numReservedChannels;
|
||||
uint8 *_pcmInstruments;
|
||||
|
||||
|
||||
TownsAudio_WaveTable *_waveTables;
|
||||
uint8 _numWaveTables;
|
||||
uint32 _waveTablesTotalDataSize;
|
||||
|
@ -156,7 +156,7 @@ private:
|
|||
static const uint8 _carrier[];
|
||||
static const uint8 _fmDefaultInstrument[];
|
||||
static const uint16 _pcmPhase1[];
|
||||
static const uint16 _pcmPhase2[];
|
||||
static const uint16 _pcmPhase2[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -63,7 +63,7 @@ bool TownsEuphonyDriver::init() {
|
|||
_tOrdr = new uint8[32];
|
||||
_tLevel = new int8[32];
|
||||
_tTranspose = new int8[32];
|
||||
|
||||
|
||||
reset();
|
||||
|
||||
cdaSetVolume(1, 118, 118);
|
||||
|
@ -97,7 +97,7 @@ void TownsEuphonyDriver::reset() {
|
|||
assignChannel(i, e++);
|
||||
|
||||
resetTables();
|
||||
|
||||
|
||||
memset(_eventBuffer, 0, 64 * sizeof(DlEvent));
|
||||
_bufferedEventsCount = 0;
|
||||
|
||||
|
@ -114,7 +114,7 @@ void TownsEuphonyDriver::reset() {
|
|||
} else {
|
||||
setTempoIntern(_defaultTempo);
|
||||
}
|
||||
|
||||
|
||||
resetControl();
|
||||
}
|
||||
|
||||
|
@ -152,8 +152,8 @@ int TownsEuphonyDriver::startMusicTrack(const uint8 *data, int trackSize, int st
|
|||
_musicTrackSize = trackSize;
|
||||
_timeStampBase = _timeStampDest = 0;
|
||||
_tickCounter = 0;
|
||||
_playing = true;
|
||||
|
||||
_playing = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -240,7 +240,7 @@ int TownsEuphonyDriver::chanTranspose(int tableEntry, int val) {
|
|||
int TownsEuphonyDriver::assignChannel(int chan, int tableEntry) {
|
||||
if (tableEntry > 15 || chan > 127 || chan < 0)
|
||||
return 3;
|
||||
|
||||
|
||||
ActiveChannel *a = &_assignedChannels[chan];
|
||||
if (a->chan == tableEntry)
|
||||
return 0;
|
||||
|
@ -461,7 +461,7 @@ bool TownsEuphonyDriver::parseNext() {
|
|||
_endOfTrack = false;
|
||||
_musicPos = _musicStart;
|
||||
_timeStampBase = _timeStampDest = _tickCounter = 0;
|
||||
_baseTickLen = _defaultBaseTickLen;
|
||||
_baseTickLen = _defaultBaseTickLen;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -543,7 +543,7 @@ void TownsEuphonyDriver::sendEvent(uint8 mode, uint8 command) {
|
|||
|
||||
} else if (mode == 0x10) {
|
||||
warning("TownsEuphonyDriver: Mode 0x10 not implemented.");
|
||||
|
||||
|
||||
} else if (mode == 0xff) {
|
||||
if (command >= 0xf0) {
|
||||
_paraCount = 1;
|
||||
|
@ -574,8 +574,8 @@ void TownsEuphonyDriver::sendEvent(uint8 mode, uint8 command) {
|
|||
if (command)
|
||||
sendNoteOn();
|
||||
else
|
||||
sendNoteOff();
|
||||
}
|
||||
sendNoteOff();
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
@ -584,7 +584,7 @@ void TownsEuphonyDriver::sendEvent(uint8 mode, uint8 command) {
|
|||
_para[0] = command;
|
||||
} else {
|
||||
_paraCount = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -658,7 +658,7 @@ bool TownsEuphonyDriver::evtSetupNote() {
|
|||
if (_eventBuffer[i].evt == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (i == 64) {
|
||||
processBufferNote(mode, evt, note, velo);
|
||||
} else {
|
||||
|
@ -678,7 +678,7 @@ bool TownsEuphonyDriver::evtPolyphonicAftertouch() {
|
|||
return false;
|
||||
if (!_tEnable[_musicPos[1]])
|
||||
return false;
|
||||
|
||||
|
||||
uint8 evt = appendEvent(_musicPos[0], _musicPos[1]);
|
||||
uint8 mode = _tMode[_musicPos[1]];
|
||||
|
||||
|
@ -694,7 +694,7 @@ bool TownsEuphonyDriver::evtControlPitch() {
|
|||
return false;
|
||||
if (!_tEnable[_musicPos[1]])
|
||||
return false;
|
||||
|
||||
|
||||
uint8 evt = appendEvent(_musicPos[0], _musicPos[1]);
|
||||
uint8 mode = _tMode[_musicPos[1]];
|
||||
|
||||
|
@ -710,7 +710,7 @@ bool TownsEuphonyDriver::evtInstrumentChanAftertouch() {
|
|||
return false;
|
||||
if (!_tEnable[_musicPos[1]])
|
||||
return false;
|
||||
|
||||
|
||||
uint8 evt = appendEvent(_musicPos[0], _musicPos[1]);
|
||||
uint8 mode = _tMode[_musicPos[1]];
|
||||
|
||||
|
@ -826,8 +826,8 @@ void TownsEuphonyDriver::sendNoteOn() {
|
|||
if (found)
|
||||
c = *chan;
|
||||
else
|
||||
_intf->callback(2, c);
|
||||
|
||||
_intf->callback(2, c);
|
||||
|
||||
_assignedChannels[c].note = _para[0];
|
||||
_assignedChannels[c].sub = 0;
|
||||
_intf->callback(1, c, _para[0], _para[1]);
|
||||
|
@ -836,7 +836,7 @@ void TownsEuphonyDriver::sendNoteOn() {
|
|||
void TownsEuphonyDriver::sendChanVolume() {
|
||||
int8 *chan = &_activeChannels[_command & 0x0f];
|
||||
while (*chan != -1) {
|
||||
_intf->callback(8, *chan, _para[1] & 0x7f);
|
||||
_intf->callback(8, *chan, _para[1] & 0x7f);
|
||||
chan = &_assignedChannels[*chan].next;
|
||||
};
|
||||
}
|
||||
|
@ -844,7 +844,7 @@ void TownsEuphonyDriver::sendChanVolume() {
|
|||
void TownsEuphonyDriver::sendPanPosition() {
|
||||
int8 *chan = &_activeChannels[_command & 0x0f];
|
||||
while (*chan != -1) {
|
||||
_intf->callback(3, *chan, _para[1] & 0x7f);
|
||||
_intf->callback(3, *chan, _para[1] & 0x7f);
|
||||
chan = &_assignedChannels[*chan].next;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -68,9 +68,9 @@ public:
|
|||
|
||||
TownsAudioInterface *intf() { return _intf; }
|
||||
|
||||
private:
|
||||
private:
|
||||
void resetTables();
|
||||
|
||||
|
||||
void resetTempo();
|
||||
void setTempoIntern(int tempo);
|
||||
void setTimerA(bool enable, int tempo);
|
||||
|
@ -93,7 +93,7 @@ private:
|
|||
uint8 appendEvent(uint8 evt, uint8 chan);
|
||||
|
||||
void sendEvent(uint8 mode, uint8 command);
|
||||
|
||||
|
||||
typedef bool(TownsEuphonyDriver::*EuphonyOpcode)();
|
||||
bool evtSetupNote();
|
||||
bool evtPolyphonicAftertouch();
|
||||
|
@ -118,7 +118,7 @@ private:
|
|||
|
||||
int8 *_activeChannels;
|
||||
int8 *_sustainChannels;
|
||||
|
||||
|
||||
struct ActiveChannel {
|
||||
int8 chan;
|
||||
int8 next;
|
||||
|
|
|
@ -246,7 +246,7 @@ void TownsPC98_MusicChannel::loadData(uint8 *data) {
|
|||
_dataPtr = data;
|
||||
_totalLevel = 0x7F;
|
||||
|
||||
uint8 *tmp = _dataPtr;
|
||||
uint8 *tmp = _dataPtr;
|
||||
for (bool loop = true; loop; ) {
|
||||
uint8 cmd = *tmp++;
|
||||
if (cmd < 0xf0) {
|
||||
|
@ -894,7 +894,7 @@ void TownsPC98_SfxChannel::loadData(uint8 *data) {
|
|||
_ssgTl = 0xff;
|
||||
_algorithm = 0x80;
|
||||
|
||||
uint8 *tmp = _dataPtr;
|
||||
uint8 *tmp = _dataPtr;
|
||||
for (bool loop = true; loop; ) {
|
||||
uint8 cmd = *tmp++;
|
||||
if (cmd < 0xf0) {
|
||||
|
@ -1309,7 +1309,7 @@ void TownsPC98_AudioDriver::setSfxTempo(uint16 tempo) {
|
|||
|
||||
void TownsPC98_AudioDriver::startSoundEffect() {
|
||||
int volFlags = 0;
|
||||
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (_sfxOffsets[i]) {
|
||||
_ssgChannels[i + 1]->protect();
|
||||
|
@ -1322,7 +1322,7 @@ void TownsPC98_AudioDriver::startSoundEffect() {
|
|||
_updateSfxFlag &= ~_sfxChannels[i]->_idFlag;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
setVolumeChannelMasks(~volFlags, volFlags);
|
||||
_sfxData = 0;
|
||||
}
|
||||
|
|
|
@ -502,7 +502,7 @@ void TownsPC98_FmSynthSquareSineSource::nextTick(int32 *buffer, uint32 bufferSiz
|
|||
finOut += finOutTemp;
|
||||
}
|
||||
|
||||
finOut /= 3;
|
||||
finOut /= 3;
|
||||
|
||||
buffer[i << 1] += finOut;
|
||||
buffer[(i << 1) + 1] += finOut;
|
||||
|
@ -862,14 +862,14 @@ void TownsPC98_FmSynth::writeReg(uint8 part, uint8 regAddress, uint8 value) {
|
|||
|
||||
_timers[0].smpPerCb = (int32) spc;
|
||||
_timers[0].smpPerCbRem = (uint32) ((spc - (float)_timers[0].smpPerCb) * 1000000.0f);
|
||||
_timers[0].smpTillCb = _timers[0].smpPerCb;
|
||||
_timers[0].smpTillCb = _timers[0].smpPerCb;
|
||||
_timers[0].smpTillCbRem = _timers[0].smpPerCbRem;
|
||||
_timers[0].enabled = true;
|
||||
} else {
|
||||
_timers[0].enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (value & 2) {
|
||||
if (value & 2) {
|
||||
float spc = (float)(0x100 - _timers[1].value) * 16.0f / _baserate;
|
||||
if (spc < 1) {
|
||||
warning("TownsPC98_FmSynth: Invalid Timer B setting: %d", _timers[1].value);
|
||||
|
@ -884,7 +884,7 @@ void TownsPC98_FmSynth::writeReg(uint8 part, uint8 regAddress, uint8 value) {
|
|||
} else {
|
||||
_timers[1].enabled = false;
|
||||
}
|
||||
|
||||
|
||||
if (value & 0x10) {
|
||||
_timers[0].smpTillCb = _timers[0].smpPerCb;
|
||||
_timers[0].smpTillCbRem = _timers[0].smpTillCbRem;
|
||||
|
@ -1065,7 +1065,7 @@ void TownsPC98_FmSynth::setVolumeChannelMasks(int channelMaskA, int channelMaskB
|
|||
if (_ssg)
|
||||
_ssg->setVolumeChannelMasks(_volMaskA >> _numChan, _volMaskB >> _numChan);
|
||||
if (_prc)
|
||||
_prc->setVolumeChannelMasks(_volMaskA >> (_numChan + _numSSG), _volMaskB >> (_numChan + _numSSG));
|
||||
_prc->setVolumeChannelMasks(_volMaskA >> (_numChan + _numSSG), _volMaskB >> (_numChan + _numSSG));
|
||||
}
|
||||
|
||||
void TownsPC98_FmSynth::generateTables() {
|
||||
|
|
|
@ -82,7 +82,7 @@ protected:
|
|||
uint32 _specifiedReleaseRate;
|
||||
uint32 _tickCount;
|
||||
uint32 _sustainLevel;
|
||||
|
||||
|
||||
bool _ampMod;
|
||||
uint32 _frequency;
|
||||
uint8 _kcode;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue