2 EPOCH Super Cassette Vision Emulator 'eSCV'
4 Author : Takeda.Toshiya
14 #include "../../emu.h"
15 #include "../device.h"
17 #define SOUND_CLOCK 1522400.0
18 #define NOISE_CLOCK 760.0
19 #define SQUARE_CLOCK 174000.0
21 #define PCM_PERIOD 120000
23 #define MAX_TONE 24000
24 #define MAX_NOISE 16000
25 #define MAX_SQUARE 8000
28 #define MAX_PARAM 0x8000
30 class SOUND : public DEVICE
51 void clear_channel(channel_t *ch);
53 int pcm_table[MAX_PARAM * 8];
60 int psg_volume_l, psg_volume_r;
61 int pcm_volume_l, pcm_volume_r;
64 int param_cnt, param_ptr, register_id;
65 uint8_t params[MAX_PARAM];
67 void process_pcm(uint8_t data);
71 SOUND(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
73 set_device_name(_T("Sound"));
79 void write_data8(uint32_t addr, uint32_t data);
80 void write_io8(uint32_t addr, uint32_t data);
81 void event_callback(int event_id, int err);
82 void mix(int32_t* buffer, int cnt);
83 void set_volume(int ch, int decibel_l, int decibel_r);
85 void save_state(FILEIO* state_fio);
86 bool load_state(FILEIO* state_fio);
89 void set_context_cpu(DEVICE* device)
93 void initialize_sound(int rate);