mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-23 21:15:11 +00:00
SoundUnit: big-endian fix (I think)
This commit is contained in:
parent
22938d240d
commit
c14e24688f
1 changed files with 11 additions and 0 deletions
|
@ -391,7 +391,18 @@ void SoundUnit::Reset() {
|
||||||
memset(chan,0,sizeof(SUChannel)*8);
|
memset(chan,0,sizeof(SUChannel)*8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TA_BIG_ENDIAN
|
||||||
|
const unsigned char suBERemap[16]={
|
||||||
|
0x01, 0x00, 0x02, 0x03, 0x05, 0x04, 0x07, 0x06, 0x08, 0x09, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e
|
||||||
|
0x11, 0x10, 0x12, 0x13, 0x15, 0x14, 0x16, 0x17, 0x19, 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x1e
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
void SoundUnit::Write(unsigned char addr, unsigned char data) {
|
void SoundUnit::Write(unsigned char addr, unsigned char data) {
|
||||||
|
#ifdef TA_BIG_ENDIAN
|
||||||
|
// remap
|
||||||
|
addr=(addr&0xe0)|(suBERemap[addr&0x1f]);
|
||||||
|
#endif
|
||||||
((unsigned char*)chan)[addr]=data;
|
((unsigned char*)chan)[addr]=data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue