EmuCR Feeds
Email Us

EmuCR: SDLVICE WinVICE r42270 is released. WinVICE is a program that executes programs intended for the old 8-bit computers. The current version emulates the C64, the C128, the VIC20, all the PET models (except the SuperPET 9000, which is out of line anyway), the PLUS4 and the CBM-II (aka C610).

WinVICE Changelog: r42270 | compyx | 2022-04-25 08:57:08 +0000 (Mon, 25 Apr 2022) | 3 lines
Gtk3: Fix segfault when running with -console
------------------------------------------------------------------------
r42269 | rhialto | 2022-04-24 11:57:29 +0000 (Sun, 24 Apr 2022) | 8 lines
Reshuffle call to run_pending_alarms() from ciacore_store().
Move the call to ciacore_store_internal(), so that it won't run too many
alarms in the case where the clock is decreased temporarily because
rmw_flag is set, or due to ->write_offset. But now it needs the
additional offset parameter too, like the VIA.
------------------------------------------------------------------------
r42268 | rhialto | 2022-04-24 11:22:10 +0000 (Sun, 24 Apr 2022) | 21 lines
Fix bug #1725.
In run_pending_alarms(), we call alarm callbacks that are supposed to
have run already but have not, because it was during the current
instruction. So we call them to catch up.
However, in viacore_store() there is an offset applied to a local
version of the clock: `rclk = *(via_context->clk_ptr) -
via_context->write_offset;` with the comment /* stores have a one-cycle
offset if CLK++ happens before store */.
Now with the catch-up execution of alarms, it was using this changed
clock to call the alarm callbacks. In particular it used this clock
value to generate the offset argument to the alarm callbacks.
The CRTC alarm callback crtc_raster_draw_alarm_handler() used this
offset and the global cpu clock to calculate the effective time, but
because its offset value wasn't properly related to that clock, the
result was bogus some of the time. So from time to time (when writes
were happing to the VIA) it could think that the frame suddenly lasted a
different number of cpu clocks.
Teaching the catchup function about the time offset helped.
------------------------------------------------------------------------
r42267 | gpz | 2022-04-23 19:16:45 +0000 (Sat, 23 Apr 2022) | 1 line
repeat option check after the summary
------------------------------------------------------------------------
r42266 | gpz | 2022-04-23 19:13:41 +0000 (Sat, 23 Apr 2022) | 1 line
change default to NO option checking, warn about invalid options when disabled
------------------------------------------------------------------------

Download: GTK3VICE r42270
Download: SDL2VICE r42270
Source: Here



Random Related Topic Refresh Related Topic

Random Related Topic Loading...

0 Comments

Post a Comment

Can't post a comment? Try This!