mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-16 17:45:10 +00:00
Merge branch 'master' of github.com:tildearrow/furnace
This commit is contained in:
commit
277396ff44
14 changed files with 48 additions and 32 deletions
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.)
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue