<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/vice-emu/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/vice-emu/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/vice-emu/bugs/</id><updated>2026-04-20T17:46:54.721000Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>#2221 Watchpoints get a wrong PC during interrupts</title><link href="https://sourceforge.net/p/vice-emu/bugs/2221/?limit=25#b478" rel="alternate"/><published>2026-04-20T17:46:54.721000Z</published><updated>2026-04-20T17:46:54.721000Z</updated><author><name>rice123</name><uri>https://sourceforge.net/u/rice123/</uri></author><id>https://sourceforge.netec649c0aaa977a80dfbdce2ddf0d8b54749ddff4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;is it correct to assume that in this code from &lt;code&gt;mon_breakpoint_check_checkpoint&lt;/code&gt;:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;instpc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;new_addr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;monitor_cpu&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;mon_register_get_val&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;e_PC&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;loadstorepc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;new_addr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lastpc&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;instpc&lt;/code&gt; is $1003 and &lt;code&gt;loadstorepc&lt;/code&gt; is $6000 for the second example? Cant check myself without debugging symbols for WinDbg.&lt;/p&gt;
&lt;p&gt;If this assumption is correct then maybe it can be special cased with something like this:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;diff --git a/mon_breakpoint.c b/mon_breakpoint.c&lt;/span&gt;
&lt;span class="gh"&gt;index a8d2bd4..840b8d6 100644&lt;/span&gt;
&lt;span class="gd"&gt;--- a/mon_breakpoint.c&lt;/span&gt;
&lt;span class="gi"&gt;+++ b/mon_breakpoint.c&lt;/span&gt;
&lt;span class="gu"&gt;@@ -534,6 +534,11 @@ bool mon_breakpoint_check_checkpoint(MEMSPACE mem, unsigned int addr, unsigned i&lt;/span&gt;

&lt;span class="w"&gt; &lt;/span&gt;    ptr = search_checkpoint_list(list, addr);


&lt;span class="gi"&gt;+    // Temporarily revert PC for `mon_evaluate_conditional()` calls below&lt;/span&gt;
&lt;span class="gi"&gt;+    if (is_loadstore) {&lt;/span&gt;
&lt;span class="gi"&gt;+      monitor_cpu-&amp;gt;mon_register_set_val(mem, e_PC, (uint16_t)(addr_location(loadstorepc)));&lt;/span&gt;
&lt;span class="gi"&gt;+    }&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;    while (ptr) {
&lt;span class="w"&gt; &lt;/span&gt;        cp = ptr-&amp;gt;checkpt;
&lt;span class="w"&gt; &lt;/span&gt;        ptr = ptr-&amp;gt;next;
&lt;span class="gu"&gt;@@ -608,6 +613,11 @@ bool mon_breakpoint_check_checkpoint(MEMSPACE mem, unsigned int addr, unsigned i&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;        }
&lt;span class="w"&gt; &lt;/span&gt;    }


&lt;span class="gi"&gt;+    // Restore the current PC&lt;/span&gt;
&lt;span class="gi"&gt;+    if (is_loadstore) {&lt;/span&gt;
&lt;span class="gi"&gt;+      monitor_cpu-&amp;gt;mon_register_set_val(mem, e_PC, (uint16_t)(addr_location(instpc)));&lt;/span&gt;
&lt;span class="gi"&gt;+    }&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;    return must_stop;
&lt;span class="w"&gt; &lt;/span&gt;}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry><entry><title>#2221 Watchpoints get a wrong PC during interrupts</title><link href="https://sourceforge.net/p/vice-emu/bugs/2221/?limit=250#afbd" rel="alternate"/><published>2026-04-20T15:31:23.372000Z</published><updated>2026-04-20T15:31:23.372000Z</updated><author><name>gpz</name><uri>https://sourceforge.net/u/gpz/</uri></author><id>https://sourceforge.net89a9b4f79528c8e5dd94a2cdc734dde41601ede4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;the second example at least doesn't seem unexpected to me. Note that any registers used in the condition are "live" - the condition triggers when the expression becomes true. So when an instruction changes/updates PC (like JSR) that will cause this condition to become true mid-instruction (indeed after fetching the 3rd byte)&lt;/p&gt;
&lt;p&gt;the first case is a bit odd, it looks like a similar thing, but i wouldn't expect it to be this stable (is it really?)&lt;/p&gt;
&lt;p&gt;perhaps (i dont know if this is realistic) some special cases like this can be checked for, and then when the watchpoint hits, it also disasassembles the instruction after the PC changed&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1940 Joystick up key gets stuck</title><link href="https://sourceforge.net/p/vice-emu/bugs/1940/?limit=25#0616" rel="alternate"/><published>2026-04-19T19:45:31.407000Z</published><updated>2026-04-19T19:45:31.407000Z</updated><author><name>Confidant</name><uri>https://sourceforge.net/u/confidant/</uri></author><id>https://sourceforge.net119f97faa8c64684abfdcc95234f8f3bedf32d2c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I was able to make the iCode Retro Gaming Adapter work with the SDL version of VICE. GTK is what has problems.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#2201 Logitech F310 (Dual Action) not detected on macOS unless SDL_JOYSTICK_MFI=0</title><link href="https://sourceforge.net/p/vice-emu/bugs/2201/?limit=25#3b15" rel="alternate"/><published>2026-04-19T17:50:28.167000Z</published><updated>2026-04-19T17:50:28.167000Z</updated><author><name>Steve</name><uri>https://sourceforge.net/u/cressie176/</uri></author><id>https://sourceforge.net74a92ad8a3355e7ee3fa29bce36b7b474dff782b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;vice-arm64-gtk3-3.10 detects the F710&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;./x64sc -verbose -debug
Joystick: Registered device "Logitech Cordless RumblePad 2" [046d:c219] (2 axes, 1 button, 1 hat)
Joystick: joystick_init(): resource JoyDevice2: opening device 0 (Logitech Cordless RumblePad 2)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry><entry><title>#2201 Logitech F310 (Dual Action) not detected on macOS unless SDL_JOYSTICK_MFI=0</title><link href="https://sourceforge.net/p/vice-emu/bugs/2201/?limit=25#ef89" rel="alternate"/><published>2026-04-19T17:39:38.793000Z</published><updated>2026-04-19T17:39:38.793000Z</updated><author><name>Steve</name><uri>https://sourceforge.net/u/cressie176/</uri></author><id>https://sourceforge.net7bc0b9c74cdf79636cc43ec6d084ee4d388c3d14</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This is with the F710 (in D-mode)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;./x64sc -verbose -debug
SDLJoystick: No joysticks found.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;SDL_JOYSTICK_MFI=0 ./x64sc -verbose -debug
SDLJoystick: Got 1 potential devices.
SDLJoystick: SDL_JoystickNameForIndex(0) = "Logitech Cordless RumblePad 2"
Joystick: Registered device "Logitech Cordless RumblePad 2" [046d:c219] (4 axes, 12 buttons, 1 hat)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry><entry><title>#904 joystick bit 3 (right) does not interfere with keyboard column 7</title><link href="https://sourceforge.net/p/vice-emu/bugs/904/?limit=250#813a" rel="alternate"/><published>2026-04-19T12:52:20.450000Z</published><updated>2026-04-19T12:52:20.450000Z</updated><author><name>gpz</name><uri>https://sourceforge.net/u/gpz/</uri></author><id>https://sourceforge.net6d8069acdfad23ff7cb45a3bb57ac53e8997a0e3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; open-need-test&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;assigned_to&lt;/strong&gt;: gpz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version&lt;/strong&gt;: v3.0 --&amp;gt; v3.x&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#904 joystick bit 3 (right) does not interfere with keyboard column 7</title><link href="https://sourceforge.net/p/vice-emu/bugs/904/?limit=250#d074" rel="alternate"/><published>2026-04-19T12:51:58.243000Z</published><updated>2026-04-19T12:51:58.243000Z</updated><author><name>gpz</name><uri>https://sourceforge.net/u/gpz/</uri></author><id>https://sourceforge.net0375036022b3dfe191722ce5f30564430c188793</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;r46083 handles this a little bit better&lt;/p&gt;
&lt;p&gt;however, we really need a proper test program so we can really test all cases against the real thing&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1785 Joysticks on MacOS not working.</title><link href="https://sourceforge.net/p/vice-emu/bugs/1785/?limit=25&amp;page=1#407b/d175/e12c/ee86" rel="alternate"/><published>2026-04-19T11:33:05.074000Z</published><updated>2026-04-19T11:33:05.074000Z</updated><author><name>Spoek</name><uri>https://sourceforge.net/u/spoek/</uri></author><id>https://sourceforge.net236f37fc66170a8d1830411b0c6cc9bfd6970d11</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Sorry about that. Yes confirmed it works on 3.10. Some page showed 3.9 as latest. Thank you very much...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1785 Joysticks on MacOS not working.</title><link href="https://sourceforge.net/p/vice-emu/bugs/1785/?limit=25&amp;page=1#407b/d175/e12c" rel="alternate"/><published>2026-04-19T09:16:50.929000Z</published><updated>2026-04-19T09:16:50.929000Z</updated><author><name>dqh</name><uri>https://sourceforge.net/u/dqh/</uri></author><id>https://sourceforge.net70605243510fa50280a6a51e7caccc2a8a76eaf1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;please try the latest release, 3.10&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1785 Joysticks on MacOS not working.</title><link href="https://sourceforge.net/p/vice-emu/bugs/1785/?limit=25&amp;page=1#407b/d175" rel="alternate"/><published>2026-04-19T08:36:50.381000Z</published><updated>2026-04-19T08:36:50.381000Z</updated><author><name>Spoek</name><uri>https://sourceforge.net/u/spoek/</uri></author><id>https://sourceforge.net0fcecfaa23d8550009574972ce40c5d30ab743f1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I am running 3.9 on GTK, but I have the same issue. Only the button works. I send a fix in this thread 3 years ago which works for me.&lt;br/&gt;
I use the Speed-Link Competition Pro USB joystick.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>