Skip to content

Commit f0a00a9

Browse files
committed
GB Audio: Gate _sample behind M_CORE_GB (fixes mgba-emu#3671)
1 parent 9eb69b9 commit f0a00a9

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/gb/audio.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ static void _updateSquareSample(struct GBAudioSquareChannel* ch);
3838
static int16_t _coalesceNoiseChannel(struct GBAudioNoiseChannel* ch);
3939

4040
static void _updateFrame(struct mTiming* timing, void* user, uint32_t cyclesLate);
41+
#ifdef M_CORE_GB
4142
static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate);
43+
#endif
4244

4345
static void GBAudioSample(struct GBAudio* audio, int32_t timestamp);
4446

@@ -68,21 +70,25 @@ void GBAudioInit(struct GBAudio* audio, size_t samples, uint8_t* nr52, enum GBAu
6870
audio->frameEvent.name = "GB Audio Frame Sequencer";
6971
audio->frameEvent.callback = _updateFrame;
7072
audio->frameEvent.priority = 0x10;
73+
#ifdef M_CORE_GB
7174
audio->sampleEvent.context = audio;
7275
audio->sampleEvent.name = "GB Audio Sample";
7376
audio->sampleEvent.callback = _sample;
7477
audio->sampleEvent.priority = 0x18;
78+
#endif
7579
}
7680

7781
void GBAudioDeinit(struct GBAudio* audio) {
7882
mAudioBufferDeinit(&audio->buffer);
7983
}
8084

8185
void GBAudioReset(struct GBAudio* audio) {
86+
#ifdef M_CORE_GB
8287
mTimingDeschedule(audio->timing, &audio->sampleEvent);
8388
if (audio->style != GB_AUDIO_GBA) {
8489
mTimingSchedule(audio->timing, &audio->sampleEvent, 0);
8590
}
91+
#endif
8692
audio->ch1 = (struct GBAudioSquareChannel) { .sweep = { .time = 8 }, .envelope = { .dead = 2 } };
8793
audio->ch2 = (struct GBAudioSquareChannel) { .envelope = { .dead = 2 } };
8894
audio->ch3 = (struct GBAudioWaveChannel) { .bank = 0 };
@@ -817,6 +823,7 @@ void GBAudioSample(struct GBAudio* audio, int32_t timestamp) {
817823
}
818824
}
819825

826+
#ifdef M_CORE_GB
820827
static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) {
821828
struct GBAudio* audio = user;
822829
GBAudioSample(audio, mTimingCurrentTime(audio->timing));
@@ -844,6 +851,7 @@ static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) {
844851
}
845852
mTimingSchedule(timing, &audio->sampleEvent, audio->sampleInterval * audio->timingFactor - cyclesLate);
846853
}
854+
#endif
847855

848856
bool _resetEnvelope(struct GBAudioEnvelope* envelope, enum GBAudioStyle style) {
849857
envelope->currentVolume = envelope->initialVolume;

0 commit comments

Comments
 (0)