fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation

vic20: Increase framedrop during cassette access

+26 -2
+5
src/arch/vic20/setup.c
··· 74 74 sim->speed_auto = (aspeed != 0); 75 75 sim->speed_tape = 0; 76 76 77 + sim->framedrop_base = 0; 78 + sim->framedrop_tape = 0; 79 + 77 80 pce_log_tag (MSG_INF, "VIC20:", 78 81 "cpu=6502 clock=%lu speed=%u autospeed=%d pal=%d\n", 79 82 sim->clock, sim->speed, sim->speed_auto, sim->pal ··· 150 153 if (snd != NULL) { 151 154 pce_log_tag (MSG_INF, "VIC:", "sound=%s\n", snd); 152 155 } 156 + 157 + sim->framedrop_base = drop; 153 158 154 159 v20_video_init (&sim->video); 155 160
+18 -2
src/arch/vic20/vic20.c
··· 264 264 265 265 void v20_set_speed_tape (vic20_t *sim, unsigned char val) 266 266 { 267 - sim->speed_tape = (val != 0); 267 + if (val) { 268 + sim->speed_tape = 1; 269 + sim->framedrop_tape = 4; 270 + } 271 + else { 272 + sim->speed_tape = 0; 273 + sim->framedrop_tape = 0; 274 + } 268 275 269 276 v20_set_speed (sim, sim->speed_base); 270 277 } 271 278 272 279 void v20_set_speed (vic20_t *sim, unsigned speed) 273 280 { 274 - int report; 281 + int report; 282 + unsigned drop; 275 283 276 284 report = (sim->speed_base != speed); 285 + 286 + drop = sim->framedrop_base; 287 + 288 + if (sim->framedrop_tape > drop) { 289 + drop = sim->framedrop_tape; 290 + } 291 + 292 + v20_video_set_framedrop (&sim->video, drop); 277 293 278 294 sim->speed_base = speed; 279 295
+3
src/arch/vic20/vic20.h
··· 81 81 char speed_auto; 82 82 char speed_tape; 83 83 84 + unsigned framedrop_base; 85 + unsigned framedrop_tape; 86 + 84 87 unsigned long clock; 85 88 unsigned long sync_clk; 86 89 unsigned long sync_us;