annotate ym2612.h @ 2688:b42f00a3a937 default tip

Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
author Michael Pavone <pavone@retrodev.com>
date Mon, 31 Mar 2025 21:06:18 -0700
parents 3f58fec775df
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
467
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 451
diff changeset
1 /*
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 451
diff changeset
2 Copyright 2013 Michael Pavone
483
3e1573fa22cf Implement turbo/slow motion feature that overclocks or underclocks the entire system at the push of a button
Mike Pavone <pavone@retrodev.com>
parents: 467
diff changeset
3 This file is part of BlastEm.
467
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 451
diff changeset
4 BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text.
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 451
diff changeset
5 */
288
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 #ifndef YM2612_H_
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 #define YM2612_H_
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8
1427
4e5797b3935a WIP - New savestate format
Michael Pavone <pavone@retrodev.com>
parents: 1308
diff changeset
9 #include "serialize.h"
2558
3f58fec775df Initial work on YMF262 (aka OPL3) emulation
Michael Pavone <pavone@retrodev.com>
parents: 2285
diff changeset
10 #include "ym_common.h"
1865
4c322abd9fa5 Split generic part of audio code into a separate file so it can be used in other targets besides SDL
Michael Pavone <pavone@retrodev.com>
parents: 1808
diff changeset
11 #include "render_audio.h"
1909
508522f08e4d Initial stab at VGM logging support
Michael Pavone <pavone@retrodev.com>
parents: 1904
diff changeset
12 #include "vgm.h"
2243
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
13 #include "oscilloscope.h"
288
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 #define NUM_PART_REGS (0xB7-0x30)
2558
3f58fec775df Initial work on YMF262 (aka OPL3) emulation
Michael Pavone <pavone@retrodev.com>
parents: 2285
diff changeset
16 #define OPN2_NUM_CHANNELS 6
3f58fec775df Initial work on YMF262 (aka OPL3) emulation
Michael Pavone <pavone@retrodev.com>
parents: 2285
diff changeset
17 #define OPN2_NUM_OPERATORS (4*OPN2_NUM_CHANNELS)
362
b7c3facee762 YM2612 WIP update
Mike Pavone <pavone@retrodev.com>
parents: 359
diff changeset
18
407
c3abc4ada43d Add support for logging YM2612 channels to WAVE files
Mike Pavone <pavone@retrodev.com>
parents: 403
diff changeset
19 #define YM_OPT_WAVE_LOG 1
1904
8312e574100a Implement selectable YM2612/YM3834 invalid status port behavior
Michael Pavone <pavone@retrodev.com>
parents: 1902
diff changeset
20 #define YM_OPT_3834 2
407
c3abc4ada43d Add support for logging YM2612 channels to WAVE files
Mike Pavone <pavone@retrodev.com>
parents: 403
diff changeset
21
362
b7c3facee762 YM2612 WIP update
Mike Pavone <pavone@retrodev.com>
parents: 359
diff changeset
22 typedef struct {
383
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
23 uint16_t fnum;
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
24 uint8_t block;
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
25 uint8_t block_fnum_latch;
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
26 uint8_t keycode;
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
27 } ym_supp;
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
28
451
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
29 #define YM_PART1_START 0x21
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
30 #define YM_PART2_START 0x30
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
31 #define YM_REG_END 0xB8
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
32 #define YM_PART1_REGS (YM_REG_END-YM_PART1_START)
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
33 #define YM_PART2_REGS (YM_REG_END-YM_PART2_START)
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
34
383
72933100c55c Initial implementation of channel 3 special mode
Mike Pavone <pavone@retrodev.com>
parents: 380
diff changeset
35 typedef struct {
1551
ce1f93be0104 Small cleanup to audio interface between emulation code and renderer backend
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
36 audio_source *audio;
2243
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
37 vgm_writer *vgm;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
38 oscilloscope *scope;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
39 uint32_t clock_inc;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
40 uint32_t current_cycle;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
41 uint32_t write_cycle;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
42 uint32_t busy_start;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
43 uint32_t busy_cycles;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
44 uint32_t last_status_cycle;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
45 uint32_t invalid_status_decay;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
46 uint32_t status_address_mask;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
47 int32_t volume_mult;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
48 int32_t volume_div;
2558
3f58fec775df Initial work on YMF262 (aka OPL3) emulation
Michael Pavone <pavone@retrodev.com>
parents: 2285
diff changeset
49 ym_operator operators[OPN2_NUM_OPERATORS];
3f58fec775df Initial work on YMF262 (aka OPL3) emulation
Michael Pavone <pavone@retrodev.com>
parents: 2285
diff changeset
50 ym_channel channels[OPN2_NUM_CHANNELS];
2243
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
51 int16_t zero_offset;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
52 uint16_t timer_a;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
53 uint16_t timer_a_load;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
54 uint16_t env_counter;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
55 ym_supp ch3_supp[3];
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
56 uint8_t timer_b;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
57 uint8_t sub_timer_b;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
58 uint8_t timer_b_load;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
59 uint8_t ch3_mode;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
60 uint8_t current_op;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
61 uint8_t current_env_op;
451
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
62
2243
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
63 uint8_t timer_control;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
64 uint8_t dac_enable;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
65 uint8_t lfo_enable;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
66 uint8_t lfo_freq;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
67 uint8_t lfo_counter;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
68 uint8_t lfo_am_step;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
69 uint8_t lfo_pm_step;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
70 uint8_t csm_keyon;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
71 uint8_t status;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
72 uint8_t last_status;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
73 uint8_t selected_reg;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
74 uint8_t selected_part;
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
75 uint8_t part1_regs[YM_PART1_REGS];
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
76 uint8_t part2_regs[YM_PART2_REGS];
288
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
77 } ym2612_context;
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
78
848
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
79 enum {
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
80 REG_LFO = 0x22,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
81 REG_TIMERA_HIGH = 0x24,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
82 REG_TIMERA_LOW,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
83 REG_TIMERB,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
84 REG_TIME_CTRL,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
85 REG_KEY_ONOFF,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
86 REG_DAC = 0x2A,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
87 REG_DAC_ENABLE,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
88
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
89 REG_DETUNE_MULT = 0x30,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
90 REG_TOTAL_LEVEL = 0x40,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
91 REG_ATTACK_KS = 0x50,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
92 REG_DECAY_AM = 0x60,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
93 REG_SUSTAIN_RATE = 0x70,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
94 REG_S_LVL_R_RATE = 0x80,
1301
babff81e4cfd Initial implementation of YM2612 SSG-EG mode
Michael Pavone <pavone@retrodev.com>
parents: 1300
diff changeset
95 REG_SSG_EG = 0x90,
848
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
96
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
97 REG_FNUM_LOW = 0xA0,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
98 REG_BLOCK_FNUM_H = 0xA4,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
99 REG_FNUM_LOW_CH3 = 0xA8,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
100 REG_BLOCK_FN_CH3 = 0xAC,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
101 REG_ALG_FEEDBACK = 0xB0,
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
102 REG_LR_AMS_PMS = 0xB4
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
103 };
7068a9db6dd0 Wrote a buggy tool for splitting VGM files by channel
Michael Pavone <pavone@retrodev.com>
parents: 845
diff changeset
104
1555
6ce36c3f250b More audio refactoring in preparation for allowing proper sync to video with dynamic audio rate control
Michael Pavone <pavone@retrodev.com>
parents: 1551
diff changeset
105 void ym_init(ym2612_context * context, uint32_t master_clock, uint32_t clock_div, uint32_t options);
1308
1b3fe6e03e7b Reset YM2612 whenver the Z80 is reset. Fixes issue with stuck notes in Fantastic Dizzy and Kid Chameleon
Michael Pavone <pavone@retrodev.com>
parents: 1301
diff changeset
106 void ym_reset(ym2612_context *context);
884
252dfd29831d Selecting a second game from the menu now works
Michael Pavone <pavone@retrodev.com>
parents: 848
diff changeset
107 void ym_free(ym2612_context *context);
1798
5278b6e44fc1 Optionally emulate the offset around zero in the imperfect DAC of a discrete YM2612
Michael Pavone <pavone@retrodev.com>
parents: 1656
diff changeset
108 void ym_enable_zero_offset(ym2612_context *context, uint8_t enabled);
483
3e1573fa22cf Implement turbo/slow motion feature that overclocks or underclocks the entire system at the push of a button
Mike Pavone <pavone@retrodev.com>
parents: 467
diff changeset
109 void ym_adjust_master_clock(ym2612_context * context, uint32_t master_clock);
1902
32a3aa7b4a45 Fix YM2612 busy flag timing
Michael Pavone <pavone@retrodev.com>
parents: 1880
diff changeset
110 void ym_adjust_cycles(ym2612_context *context, uint32_t deduction);
288
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
111 void ym_run(ym2612_context * context, uint32_t to_cycle);
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
112 void ym_address_write_part1(ym2612_context * context, uint8_t address);
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
113 void ym_address_write_part2(ym2612_context * context, uint8_t address);
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
114 void ym_data_write(ym2612_context * context, uint8_t value);
1909
508522f08e4d Initial stab at VGM logging support
Michael Pavone <pavone@retrodev.com>
parents: 1904
diff changeset
115 void ym_vgm_log(ym2612_context *context, uint32_t master_clock, vgm_writer *vgm);
1904
8312e574100a Implement selectable YM2612/YM3834 invalid status port behavior
Michael Pavone <pavone@retrodev.com>
parents: 1902
diff changeset
116 uint8_t ym_read_status(ym2612_context * context, uint32_t cycle, uint32_t port);
424
7e8e179116af Add support for loading GST format savestates
Mike Pavone <pavone@retrodev.com>
parents: 411
diff changeset
117 uint8_t ym_load_gst(ym2612_context * context, FILE * gstfile);
451
b7c3b2d22858 Added support for saving savestates. Added gst savestate format test harness
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
118 uint8_t ym_save_gst(ym2612_context * context, FILE * gstfile);
739
2317bdca03b4 Add a basic YM-2612 command to the debugger. Fix negative detune values and get the correct precision for the multiplication step of phase inc calculation
Michael Pavone <pavone@retrodev.com>
parents: 535
diff changeset
119 void ym_print_channel_info(ym2612_context *context, int channel);
930
f33e8d88ab6f Add yt debug command for printing YM-2612 timer info. Fix AMS shift values.
Michael Pavone <pavone@retrodev.com>
parents: 884
diff changeset
120 void ym_print_timer_info(ym2612_context *context);
1427
4e5797b3935a WIP - New savestate format
Michael Pavone <pavone@retrodev.com>
parents: 1308
diff changeset
121 void ym_serialize(ym2612_context *context, serialize_buffer *buf);
4e5797b3935a WIP - New savestate format
Michael Pavone <pavone@retrodev.com>
parents: 1308
diff changeset
122 void ym_deserialize(deserialize_buffer *buf, void *vcontext);
2255
74112041b2c7 Proper calculation of sample rate for YM2612/PSG oscilloscope view
Michael Pavone <pavone@retrodev.com>
parents: 2243
diff changeset
123 void ym_enable_scope(ym2612_context *context, oscilloscope *scope, uint32_t master_clock);
288
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
124
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
125 #endif //YM2612_H_
a8ee7934a1f8 Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
126