File tree Expand file tree Collapse file tree 6 files changed +9
-7
lines changed Expand file tree Collapse file tree 6 files changed +9
-7
lines changed Original file line number Diff line number Diff line change 11#include "shared.h"
22
3- rg_audio_sample_t audioBuffer [AUDIO_BUFFER_LENGTH ];
43rg_app_t * app ;
54
65
Original file line number Diff line number Diff line change @@ -267,7 +267,7 @@ void gbc_main(void)
267267 RG_PANIC ("Emulator init failed!" );
268268
269269 gnuboy_set_framebuffer (currentUpdate -> data );
270- gnuboy_set_soundbuffer (( void * ) audioBuffer , sizeof ( audioBuffer ) / 2 );
270+ gnuboy_set_soundbuffer (malloc ( AUDIO_BUFFER_LENGTH * 4 ), AUDIO_BUFFER_LENGTH );
271271
272272 // Load ROM
273273 if (rg_extension_match (app -> romPath , "zip" ))
Original file line number Diff line number Diff line change @@ -210,7 +210,7 @@ extern "C" void lynx_main(void)
210210 }
211211
212212 gPrimaryFrameBuffer = (UBYTE*)currentUpdate->data ;
213- gAudioBuffer = (SWORD*)&audioBuffer ;
213+ gAudioBuffer = (SWORD*)malloc (AUDIO_BUFFER_LENGTH * 4 ) ;
214214 gAudioEnabled = 1 ;
215215
216216 if (app->bootFlags & RG_BOOT_RESUME)
@@ -264,7 +264,7 @@ extern "C" void lynx_main(void)
264264 rg_system_set_tick_rate (AUDIO_SAMPLE_RATE / (gAudioBufferPointer / 2 ));
265265 rg_system_tick (rg_system_timer () - startTime);
266266
267- rg_audio_submit (audioBuffer , gAudioBufferPointer >> 1 );
267+ rg_audio_submit (( const rg_audio_frame_t *) gAudioBuffer , gAudioBufferPointer / 2 );
268268
269269 // See if we need to skip a frame to keep up
270270 if (skipFrames == 0 )
Original file line number Diff line number Diff line change @@ -135,11 +135,12 @@ static void audioTask(void *arg)
135135 RG_LOGI ("task started. numSamples=%d." , (int )numSamples );
136136 while (1 )
137137 {
138+ rg_audio_sample_t samples [numSamples ];
138139 // TODO: Clearly we need to add a better way to remain in sync with the main task...
139140 while (emulationPaused )
140141 rg_task_yield ();
141- psg_update ((int16_t * )audioBuffer , numSamples , 0xFF );
142- rg_audio_submit (audioBuffer , numSamples );
142+ psg_update ((int16_t * )samples , numSamples , 0xFF );
143+ rg_audio_submit (samples , numSamples );
143144 }
144145}
145146
Original file line number Diff line number Diff line change @@ -68,6 +68,7 @@ static const char *SNES_BUTTONS[] = {
6868
6969static rg_surface_t * updates [2 ];
7070static rg_surface_t * currentUpdate ;
71+ static rg_audio_sample_t * audioBuffer ;
7172
7273static bool apu_enabled = true;
7374static bool lowpass_filter = false;
@@ -305,6 +306,8 @@ void snes_main(void)
305306 updates [0 ]-> height = SNES_HEIGHT ;
306307 currentUpdate = updates [0 ];
307308
309+ audioBuffer = (rg_audio_sample_t * )malloc (AUDIO_BUFFER_LENGTH * 4 );
310+
308311 update_keymap (rg_settings_get_number (NS_APP , SETTING_KEYMAP , 0 ));
309312
310313 Settings .CyclesPercentage = 100 ;
Original file line number Diff line number Diff line change 77#define AUDIO_SAMPLE_RATE (32000)
88#define AUDIO_BUFFER_LENGTH (AUDIO_SAMPLE_RATE / 50 + 1)
99
10- extern rg_audio_sample_t audioBuffer [AUDIO_BUFFER_LENGTH ];
1110extern rg_app_t * app ;
1211
1312extern uint8_t shared_memory_block_64K [0x10000 ];
You can’t perform that action at this time.
0 commit comments