mirror of
https://github.com/trudnai/Steve2.git
synced 2024-06-14 00:29:29 +00:00
- Fixed Game Mode Speaker Simulation
This commit is contained in:
parent
ec2617c7ae
commit
72930227f4
|
@ -976,9 +976,7 @@ class ViewController: NSViewController {
|
|||
cpuMode = cpuMode_eco
|
||||
|
||||
fps = DEFAULT_FPS
|
||||
spkr_fps = DEFAULT_FPS
|
||||
video_fps_divider = DEF_VIDEO_DIV
|
||||
|
||||
break
|
||||
|
||||
case "Game":
|
||||
|
@ -986,9 +984,7 @@ class ViewController: NSViewController {
|
|||
cpuState = cpuState_running
|
||||
|
||||
fps = GAME_FPS
|
||||
spkr_fps = GAME_FPS
|
||||
video_fps_divider = GAME_VIDEO_DIV
|
||||
|
||||
break
|
||||
|
||||
default:
|
||||
|
@ -996,13 +992,14 @@ class ViewController: NSViewController {
|
|||
cpuState = cpuState_running
|
||||
|
||||
fps = DEFAULT_FPS
|
||||
spkr_fps = DEFAULT_FPS
|
||||
video_fps_divider = DEF_VIDEO_DIV
|
||||
|
||||
break
|
||||
}
|
||||
|
||||
spkr_buf_size = spkr_sample_rate * 2 / spkr_fps
|
||||
spkr_fps_divider = fps / spkr_fps
|
||||
spkr_play_timeout = 8 * spkr_fps_divider
|
||||
|
||||
// spkr_buf_size = spkr_sample_rate * 2 / spkr_fps
|
||||
newUpdateTimer( timeInterval: 1 / Double(fps) )
|
||||
setCPUClockSpeed(freq: MHz_6502)
|
||||
|
||||
|
|
|
@ -179,6 +179,7 @@ extern double mhz;
|
|||
|
||||
#define DEFAULT_FPS 30U
|
||||
#define DEF_VIDEO_DIV 1U
|
||||
#define DEF_SPKR_DIV 1U
|
||||
|
||||
#define GAME_FPS 600U
|
||||
#define GAME_VIDEO_DIV 10U
|
||||
|
|
|
@ -74,7 +74,11 @@ ALuint spkr_disk_arm_buf = 0;
|
|||
ALuint spkr_disk_ioerr_buf = 0;
|
||||
|
||||
|
||||
unsigned spkr_fps = DEFAULT_FPS;
|
||||
const unsigned spkr_fps = DEFAULT_FPS;
|
||||
unsigned spkr_fps_divider = 1;
|
||||
unsigned spkr_frame_cntr = 0;
|
||||
unsigned spkr_clk = 0;
|
||||
|
||||
const unsigned spkr_seconds = 1;
|
||||
const unsigned spkr_sample_rate = 44100;
|
||||
const unsigned sfx_sample_rate = 22050; // original sample rate
|
||||
|
@ -274,7 +278,7 @@ void spkr_toggle() {
|
|||
|
||||
// push a click into the speaker buffer
|
||||
// (we will play the entire buffer at the end of the frame)
|
||||
spkr_sample_idx = (clkfrm / ( MHZ(default_MHz_6502) / spkr_sample_rate)) * 2;
|
||||
spkr_sample_idx = ( (spkr_clk + clkfrm) / ( MHZ(default_MHz_6502) / spkr_sample_rate)) * 2;
|
||||
|
||||
if ( spkr_state ) {
|
||||
// down edge
|
||||
|
@ -342,7 +346,11 @@ int spkr_unqueue( ALuint src ) {
|
|||
|
||||
int playDelay = 4;
|
||||
|
||||
|
||||
void spkr_update() {
|
||||
if ( ++spkr_frame_cntr >= spkr_fps_divider ) {
|
||||
spkr_frame_cntr = 0;
|
||||
|
||||
if ( spkr_play_time ) {
|
||||
// free up unused buffers
|
||||
freeBuffers += spkr_unqueue( spkr_src[SPKR_SRC_GAME_SFX] );
|
||||
|
@ -350,7 +358,6 @@ void spkr_update() {
|
|||
|
||||
if ( freeBuffers ) {
|
||||
|
||||
|
||||
if ( --spkr_play_time == 0 ) {
|
||||
float fadeLevel = spkr_level - SPKR_LEVEL_ZERO;
|
||||
|
||||
|
@ -418,6 +425,11 @@ void spkr_update() {
|
|||
|
||||
}
|
||||
|
||||
spkr_clk = 0;
|
||||
}
|
||||
else {
|
||||
spkr_clk += clkfrm;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -35,7 +35,8 @@
|
|||
extern const unsigned spkr_sample_rate;
|
||||
extern const unsigned spkr_buf_alloc_size;
|
||||
extern unsigned spkr_buf_size;
|
||||
extern unsigned spkr_fps;
|
||||
extern const unsigned spkr_fps;
|
||||
extern unsigned spkr_fps_divider;
|
||||
extern int16_t spkr_samples [];
|
||||
extern unsigned spkr_sample_idx;
|
||||
extern int spkr_level;
|
||||
|
|
Loading…
Reference in New Issue
Block a user