Merge branch 'master' of github.com:tildearrow/furnace

This commit is contained in:
tildearrow 2022-05-31 03:25:11 -05:00
commit 277396ff44
14 changed files with 48 additions and 32 deletions

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900
Konami K005289 emulation core Konami K005289 emulation core
This chip is used at infamous Konami Bubble System, for part of Wavetable sound generator. This chip is used at infamous Konami Bubble System, for part of Wavetable sound generator.

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900
Konami K005289 emulation core Konami K005289 emulation core
See k005289.cpp for more info. See k005289.cpp for more info.

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900, tildearrow
Namco 163 Sound emulation core Namco 163 Sound emulation core
This chip is one of NES mapper with sound expansion, This one is by Namco. This chip is one of NES mapper with sound expansion, This one is by Namco.
@ -99,7 +100,7 @@ void n163_core::tick()
m_ram[m_voice_cycle + 3] = bitfield(accum, 8, 8); m_ram[m_voice_cycle + 3] = bitfield(accum, 8, 8);
m_ram[m_voice_cycle + 5] = bitfield(accum, 16, 8); m_ram[m_voice_cycle + 5] = bitfield(accum, 16, 8);
const u8 prev_voice_cycle = m_voice_cycle; const u8 prev_voice_cycle = m_voice_cycle;
// update voice cycle // update voice cycle
bool flush = m_multiplex ? true : false; bool flush = m_multiplex ? true : false;
@ -112,8 +113,8 @@ void n163_core::tick()
} }
// output 4 bit waveform and volume, multiplexed // output 4 bit waveform and volume, multiplexed
const u8 chan_index = ((0x78-prev_voice_cycle)>>3)&7; const u8 chan_index = ((0x78-prev_voice_cycle)>>3)&7;
m_ch_out[chan_index]=wave * volume; m_ch_out[chan_index]=wave * volume;
m_acc += m_ch_out[chan_index]; m_acc += m_ch_out[chan_index];
if (flush) if (flush)
{ {
@ -127,12 +128,12 @@ void n163_core::reset()
// reset this chip // reset this chip
m_disable = false; m_disable = false;
m_multiplex = true; m_multiplex = true;
memset(m_ram,0,sizeof(m_ram)); memset(m_ram,0,sizeof(m_ram));
m_voice_cycle = 0x78; m_voice_cycle = 0x78;
m_addr_latch.reset(); m_addr_latch.reset();
m_out = 0; m_out = 0;
m_acc = 0; m_acc = 0;
memset(m_ch_out,0,sizeof(m_ch_out)); memset(m_ch_out,0,sizeof(m_ch_out));
} }
// accessor // accessor

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900, tildearrow
Namco 163 Sound emulation core Namco 163 Sound emulation core
*/ */
@ -46,11 +47,11 @@ public:
// sound output pin // sound output pin
s16 out() { return m_out; } s16 out() { return m_out; }
// get channel output // get channel output
s16 chan_out(u8 ch) { return m_ch_out[ch]; } s16 chan_out(u8 ch) { return m_ch_out[ch]; }
// get voice cycle // get voice cycle
u8 voice_cycle() { return m_voice_cycle; } u8 voice_cycle() { return m_voice_cycle; }
// register pool // register pool
u8 reg(u8 addr) { return m_ram[addr & 0x7f]; } u8 reg(u8 addr) { return m_ram[addr & 0x7f]; }
@ -63,7 +64,7 @@ private:
addr_latch_t() addr_latch_t()
: addr(0) : addr(0)
, incr(0) , incr(0)
{ }; { }
void reset() void reset()
{ {
@ -80,7 +81,7 @@ private:
u8 m_voice_cycle = 0x78; // Voice cycle for processing u8 m_voice_cycle = 0x78; // Voice cycle for processing
addr_latch_t m_addr_latch; // address latch addr_latch_t m_addr_latch; // address latch
s16 m_out = 0; // output s16 m_out = 0; // output
s16 m_ch_out[8] = {0}; // per channel output s16 m_ch_out[8] = {0}; // per channel output
// demultiplex related // demultiplex related
bool m_multiplex = true; // multiplex flag, but less noisy = inaccurate! bool m_multiplex = true; // multiplex flag, but less noisy = inaccurate!
s16 m_acc = 0; // accumulated output s16 m_acc = 0; // accumulated output

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/blob/main/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: tildearrow
OKI MSM6295 emulation core OKI MSM6295 emulation core
It is 4 channel ADPCM playback chip from OKI semiconductor. It is 4 channel ADPCM playback chip from OKI semiconductor.

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/blob/main/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: tildearrow
OKI MSM6295 emulation core OKI MSM6295 emulation core
See msm6295.cpp for more info. See msm6295.cpp for more info.
@ -71,7 +72,7 @@ public:
msm6295_core &m_host; msm6295_core &m_host;
u16 m_clock = 0; // clock counter u16 m_clock = 0; // clock counter
bool m_busy = false; // busy status bool m_busy = false; // busy status
bool m_muted = false; // muted bool m_muted = false; // muted
u8 m_command = 0; // current command u8 m_command = 0; // current command
u32 m_addr = 0; // current address u32 m_addr = 0; // current address
s8 m_nibble = 0; // current nibble s8 m_nibble = 0; // current nibble

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/blob/main/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holders: cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: tildearrow
Various core utilities for vgsound_emu Various core utilities for vgsound_emu
*/ */

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/blob/main/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: tildearrow
Dialogic ADPCM core Dialogic ADPCM core
*/ */

View file

@ -1,8 +1,10 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Contributor(s): Natt Akuma, James Alan Nguyen, Laurens Holst
Modifiers and Contributors for Furnace: Natt Akuma, tildearrow, Grauw
Konami SCC emulation core Konami SCC emulation core
Konami SCC means "Sound Creative Chip", it's actually MSX MegaROM/RAM Mapper with 5 channel Wavetable sound generator. Konami SCC means "Sound Creative Chip", it's actually MSX MegaROM/RAM Mapper with 5 channel Wavetable sound generator.
@ -373,12 +375,12 @@ void scc_core::reset()
m_test.reset(); m_test.reset();
m_out = 0; m_out = 0;
memset(m_reg,0,sizeof(m_reg)); memset(m_reg,0,sizeof(m_reg));
} }
void scc_core::voice_t::reset() void scc_core::voice_t::reset()
{ {
memset(wave,0,sizeof(wave)); memset(wave,0,sizeof(wave));
enable = false; enable = false;
pitch = 0; pitch = 0;
volume = 0; volume = 0;

View file

@ -1,8 +1,10 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Contributor(s): Natt Akuma, James Alan Nguyen, Laurens Holst
Modifiers and Contributors for Furnace: Natt Akuma, tildearrow, Grauw
Konami SCC emulation core Konami SCC emulation core
See scc.cpp for more info. See scc.cpp for more info.

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900, tildearrow
Konami VRC VI sound emulation core Konami VRC VI sound emulation core
It's one of NES mapper with built-in sound chip, and also one of 2 Konami VRCs with this feature. (rest one has OPLL derivatives.) It's one of NES mapper with built-in sound chip, and also one of 2 Konami VRCs with this feature. (rest one has OPLL derivatives.)

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holder(s): cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900, tildearrow
Konami VRC VI sound emulation core Konami VRC VI sound emulation core
See vrcvi.cpp to more infos. See vrcvi.cpp to more infos.

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holders: cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900, tildearrow
Seta/Allumer X1-010 Emulation core Seta/Allumer X1-010 Emulation core
the chip has 16 voices, all voices can be switchable to Wavetable or PCM sample playback mode. the chip has 16 voices, all voices can be switchable to Wavetable or PCM sample playback mode.

View file

@ -1,8 +1,9 @@
/* /*
License: BSD-3-Clause License: BSD-3-Clause
see https://github.com/cam900/vgsound_emu/LICENSE for more details see https://github.com/cam900/vgsound_emu/blob/vgsound_emu_v1/LICENSE for more details
Copyright holders: cam900 Copyright holder(s): cam900
Modifiers and Contributors for Furnace: cam900, tildearrow
Seta/Allumer X1-010 Emulation core Seta/Allumer X1-010 Emulation core
See x1_010.cpp for more info. See x1_010.cpp for more info.
@ -63,7 +64,7 @@ public:
// getters // getters
s32 output(u8 channel) { return m_out[channel & 1]; } s32 output(u8 channel) { return m_out[channel & 1]; }
s32 chan_out(u8 channel) { return (m_voice[channel].data * (m_voice[channel].vol_out[0]+m_voice[channel].vol_out[1]))<<2; } s32 chan_out(u8 channel) { return (m_voice[channel].data * (m_voice[channel].vol_out[0]+m_voice[channel].vol_out[1]))<<2; }
// internal state // internal state
void reset(); void reset();