diff options
Diffstat (limited to 'apps/plugins/zxbox/spmain.c')
-rw-r--r-- | apps/plugins/zxbox/spmain.c | 120 |
1 files changed, 55 insertions, 65 deletions
diff --git a/apps/plugins/zxbox/spmain.c b/apps/plugins/zxbox/spmain.c index 030047cc94..3a702abb71 100644 --- a/apps/plugins/zxbox/spmain.c +++ b/apps/plugins/zxbox/spmain.c | |||
@@ -84,7 +84,7 @@ static struct configdata config[] = | |||
84 | }; | 84 | }; |
85 | int spcf_read_conf_file(const char *filename) | 85 | int spcf_read_conf_file(const char *filename) |
86 | { | 86 | { |
87 | settings.volume = 10; | 87 | settings.volume = 10; |
88 | settings.showfps=1; | 88 | settings.showfps=1; |
89 | settings.keymap[0]='2'; | 89 | settings.keymap[0]='2'; |
90 | settings.keymap[1]='w'; | 90 | settings.keymap[1]='w'; |
@@ -93,8 +93,8 @@ int spcf_read_conf_file(const char *filename) | |||
93 | settings.keymap[4]='z'; | 93 | settings.keymap[4]='z'; |
94 | settings.kempston = 1 ; | 94 | settings.kempston = 1 ; |
95 | settings.invert_colors=0; | 95 | settings.invert_colors=0; |
96 | settings.sound = 0; | 96 | settings.sound = 0; |
97 | settings.frameskip = 0; | 97 | settings.frameskip = 0; |
98 | 98 | ||
99 | 99 | ||
100 | configfile_init(rb); | 100 | configfile_init(rb); |
@@ -112,17 +112,17 @@ int spcf_read_conf_file(const char *filename) | |||
112 | /* Keep a copy of the saved version of the settings - so we can check if | 112 | /* Keep a copy of the saved version of the settings - so we can check if |
113 | the settings have changed when we quit */ | 113 | the settings have changed when we quit */ |
114 | old_settings = settings; | 114 | old_settings = settings; |
115 | sound_on = settings.sound; | 115 | sound_on = settings.sound; |
116 | showframe = settings.frameskip+1; | 116 | showframe = settings.frameskip+1; |
117 | int i; | 117 | int i; |
118 | for ( i=0 ; i<5 ; i++){ | 118 | for ( i=0 ; i<5 ; i++){ |
119 | if (settings.keymap[i] == 'E') | 119 | if (settings.keymap[i] == 'E') |
120 | intkeys[i]=SK_KP_Enter; | 120 | intkeys[i]=SK_KP_Enter; |
121 | else if ( settings.keymap[i] == 'S' ) | 121 | else if ( settings.keymap[i] == 'S' ) |
122 | intkeys[i]=SK_KP_Space; | 122 | intkeys[i]=SK_KP_Space; |
123 | else | 123 | else |
124 | intkeys[i] = (unsigned) settings.keymap[i]; | 124 | intkeys[i] = (unsigned) settings.keymap[i]; |
125 | } | 125 | } |
126 | return 1; | 126 | return 1; |
127 | } | 127 | } |
128 | 128 | ||
@@ -131,7 +131,7 @@ int spcf_read_conf_file(const char *filename) | |||
131 | /* set keys */ | 131 | /* set keys */ |
132 | static void set_keys(void){ | 132 | static void set_keys(void){ |
133 | int m; | 133 | int m; |
134 | char c; | 134 | char c; |
135 | int result; | 135 | int result; |
136 | int menu_quit=0; | 136 | int menu_quit=0; |
137 | static const struct menu_item items[] = { | 137 | static const struct menu_item items[] = { |
@@ -198,8 +198,8 @@ static void select_keymap(void){ | |||
198 | int menu_quit=0; | 198 | int menu_quit=0; |
199 | static const struct menu_item items[] = { | 199 | static const struct menu_item items[] = { |
200 | { "2w90z", NULL }, | 200 | { "2w90z", NULL }, |
201 | { "qaopS", NULL }, | 201 | { "qaopS", NULL }, |
202 | { "7658S", NULL }, | 202 | { "7658S", NULL }, |
203 | }; | 203 | }; |
204 | 204 | ||
205 | m = rb->menu_init(items, sizeof(items) / sizeof(*items), | 205 | m = rb->menu_init(items, sizeof(items) / sizeof(*items), |
@@ -213,15 +213,15 @@ static void select_keymap(void){ | |||
213 | switch(result) | 213 | switch(result) |
214 | { | 214 | { |
215 | case 0: | 215 | case 0: |
216 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[0].desc , sizeof(items[0].desc)); | 216 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[0].desc , sizeof(items[0].desc)); |
217 | menu_quit=1; | 217 | menu_quit=1; |
218 | break; | 218 | break; |
219 | case 1: | 219 | case 1: |
220 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[1].desc , sizeof(items[1].desc)); | 220 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[1].desc , sizeof(items[1].desc)); |
221 | menu_quit=1; | 221 | menu_quit=1; |
222 | break; | 222 | break; |
223 | case 2: | 223 | case 2: |
224 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[2].desc , sizeof(items[2].desc)); | 224 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[2].desc , sizeof(items[2].desc)); |
225 | menu_quit=1; | 225 | menu_quit=1; |
226 | break; | 226 | break; |
227 | default: | 227 | default: |
@@ -247,9 +247,9 @@ static void options_menu(void){ | |||
247 | { "Map Keys to kempston", NULL }, | 247 | { "Map Keys to kempston", NULL }, |
248 | { "Display Speed", NULL }, | 248 | { "Display Speed", NULL }, |
249 | { "Invert Colors", NULL }, | 249 | { "Invert Colors", NULL }, |
250 | { "Frameskip", NULL }, | 250 | { "Frameskip", NULL }, |
251 | { "Sound", NULL }, | 251 | { "Sound", NULL }, |
252 | { "Volume", NULL }, | 252 | { "Volume", NULL }, |
253 | { "Predefined keymap", NULL }, | 253 | { "Predefined keymap", NULL }, |
254 | { "Custom keymap", NULL }, | 254 | { "Custom keymap", NULL }, |
255 | }; | 255 | }; |
@@ -257,15 +257,15 @@ static void options_menu(void){ | |||
257 | { "0", NULL }, | 257 | { "0", NULL }, |
258 | { "1", NULL }, | 258 | { "1", NULL }, |
259 | { "2", NULL }, | 259 | { "2", NULL }, |
260 | { "3", NULL }, | 260 | { "3", NULL }, |
261 | { "4", NULL }, | 261 | { "4", NULL }, |
262 | { "5", NULL }, | 262 | { "5", NULL }, |
263 | { "6", NULL }, | 263 | { "6", NULL }, |
264 | { "7", NULL }, | 264 | { "7", NULL }, |
265 | { "8", NULL }, | 265 | { "8", NULL }, |
266 | { "9", NULL }, | 266 | { "9", NULL }, |
267 | }; | 267 | }; |
268 | 268 | ||
269 | 269 | ||
270 | m = rb->menu_init(items, sizeof(items) / sizeof(*items), | 270 | m = rb->menu_init(items, sizeof(items) / sizeof(*items), |
271 | NULL, NULL, NULL, NULL); | 271 | NULL, NULL, NULL, NULL); |
@@ -299,34 +299,34 @@ static void options_menu(void){ | |||
299 | settings.invert_colors=new_setting; | 299 | settings.invert_colors=new_setting; |
300 | rb->splash(HZ, true , "Restart to see effect"); | 300 | rb->splash(HZ, true , "Restart to see effect"); |
301 | break; | 301 | break; |
302 | case 3: | 302 | case 3: |
303 | new_setting = settings.frameskip; | 303 | new_setting = settings.frameskip; |
304 | rb->set_option("Frameskip",&new_setting,INT, | 304 | rb->set_option("Frameskip",&new_setting,INT, |
305 | frameskip_items, 10, NULL); | 305 | frameskip_items, 10, NULL); |
306 | if (new_setting != settings.frameskip ) | 306 | if (new_setting != settings.frameskip ) |
307 | settings.frameskip=new_setting; | 307 | settings.frameskip=new_setting; |
308 | break; | 308 | break; |
309 | case 4: | 309 | case 4: |
310 | new_setting = settings.sound; | 310 | new_setting = settings.sound; |
311 | rb->set_option("Sound",&new_setting,INT, | 311 | rb->set_option("Sound",&new_setting,INT, |
312 | no_yes, 2, NULL); | 312 | no_yes, 2, NULL); |
313 | if (new_setting != settings.sound ) | 313 | if (new_setting != settings.sound ) |
314 | settings.sound=new_setting; | 314 | settings.sound=new_setting; |
315 | #if CODEC == SWCODEC && !defined SIMULATOR | 315 | #if CODEC == SWCODEC && !defined SIMULATOR |
316 | rb->pcm_play_stop(); | 316 | rb->pcm_play_stop(); |
317 | #endif | 317 | #endif |
318 | break; | 318 | break; |
319 | case 5: | 319 | case 5: |
320 | new_setting = 9 - settings.volume; | 320 | new_setting = 9 - settings.volume; |
321 | rb->set_option("Volume",&new_setting,INT, | 321 | rb->set_option("Volume",&new_setting,INT, |
322 | frameskip_items, 10, NULL); | 322 | frameskip_items, 10, NULL); |
323 | new_setting = 9 - new_setting; | 323 | new_setting = 9 - new_setting; |
324 | if (new_setting != settings.volume ) | 324 | if (new_setting != settings.volume ) |
325 | settings.volume=new_setting; | 325 | settings.volume=new_setting; |
326 | break; | 326 | break; |
327 | case 6: | 327 | case 6: |
328 | select_keymap(); | 328 | select_keymap(); |
329 | break; | 329 | break; |
330 | case 7: | 330 | case 7: |
331 | set_keys(); | 331 | set_keys(); |
332 | break; | 332 | break; |
@@ -353,8 +353,8 @@ static bool zxbox_menu(void) | |||
353 | static const struct menu_item items[] = { | 353 | static const struct menu_item items[] = { |
354 | { "VKeyboard", NULL }, | 354 | { "VKeyboard", NULL }, |
355 | { "Play/Pause Tape", NULL }, | 355 | { "Play/Pause Tape", NULL }, |
356 | { "Save quick snapshot", NULL }, | 356 | { "Save quick snapshot", NULL }, |
357 | { "Load quick snapshot", NULL }, | 357 | { "Load quick snapshot", NULL }, |
358 | { "Save Snapshot", NULL }, | 358 | { "Save Snapshot", NULL }, |
359 | { "Toggle \"fast\" mode", NULL }, | 359 | { "Toggle \"fast\" mode", NULL }, |
360 | { "Options", NULL }, | 360 | { "Options", NULL }, |
@@ -383,14 +383,14 @@ static bool zxbox_menu(void) | |||
383 | pause_play(); | 383 | pause_play(); |
384 | menu_quit=1; | 384 | menu_quit=1; |
385 | break; | 385 | break; |
386 | case 2: | 386 | case 2: |
387 | save_quick_snapshot(); | 387 | save_quick_snapshot(); |
388 | menu_quit = 1; | 388 | menu_quit = 1; |
389 | break; | 389 | break; |
390 | case 3: | 390 | case 3: |
391 | load_quick_snapshot(); | 391 | load_quick_snapshot(); |
392 | menu_quit = 1; | 392 | menu_quit = 1; |
393 | break; | 393 | break; |
394 | case 4: | 394 | case 4: |
395 | save_snapshot(); | 395 | save_snapshot(); |
396 | break; | 396 | break; |
@@ -416,15 +416,15 @@ static bool zxbox_menu(void) | |||
416 | rb->cpu_boost(true); | 416 | rb->cpu_boost(true); |
417 | #endif | 417 | #endif |
418 | 418 | ||
419 | int i; | 419 | int i; |
420 | for ( i=0 ; i<5 ; i++){ | 420 | for ( i=0 ; i<5 ; i++){ |
421 | if (settings.keymap[i] == 'E') | 421 | if (settings.keymap[i] == 'E') |
422 | intkeys[i]=SK_KP_Enter; | 422 | intkeys[i]=SK_KP_Enter; |
423 | else if ( settings.keymap[i] == 'S' ) | 423 | else if ( settings.keymap[i] == 'S' ) |
424 | intkeys[i]=SK_KP_Space; | 424 | intkeys[i]=SK_KP_Space; |
425 | else | 425 | else |
426 | intkeys[i] = (unsigned) settings.keymap[i]; | 426 | intkeys[i] = (unsigned) settings.keymap[i]; |
427 | } | 427 | } |
428 | #ifdef USE_GRAY | 428 | #ifdef USE_GRAY |
429 | gray_show(true); | 429 | gray_show(true); |
430 | #endif | 430 | #endif |
@@ -476,20 +476,10 @@ static void run_singlemode(void) | |||
476 | exit_requested = 0; | 476 | exit_requested = 0; |
477 | video_frames=-1; | 477 | video_frames=-1; |
478 | start_time = *rb->current_tick; | 478 | start_time = *rb->current_tick; |
479 | sound_on = settings.sound; | 479 | sound_on = settings.sound; |
480 | showframe = settings.frameskip+1; | 480 | showframe = settings.frameskip+1; |
481 | spti_reset(); | 481 | spti_reset(); |
482 | } | 482 | } |
483 | if(sp_paused) { | ||
484 | autoclose_sound(); | ||
485 | while(sp_paused) { | ||
486 | spkb_process_events(1); | ||
487 | spti_sleep(SKIPTICKS); | ||
488 | translate_screen(); | ||
489 | update(); | ||
490 | } | ||
491 | spti_reset(); | ||
492 | } | ||
493 | halfsec = !(sp_int_ctr % 25); | 483 | halfsec = !(sp_int_ctr % 25); |
494 | evenframe = !(sp_int_ctr & 1); | 484 | evenframe = !(sp_int_ctr & 1); |
495 | 485 | ||