Skip to content

Commit 38cacc9

Browse files
tsemachhclaude
andcommitted
AF switch: restore hands-free fire on the native path; TV: point filter
With native auto-fire the switch only enabled the mode without holding anything, so nothing fired (native AF chops a HELD trigger into pulses — external trigger included). The switch now holds the external trigger steady and lets the core pulse it. TV-mode launches add &filter=point, the cheapest upscale path for weak TV GPUs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 87b1436 commit 38cacc9

4 files changed

Lines changed: 10 additions & 4 deletions

File tree

3d/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ <h1>ATARI <span>ARCADE</span> · 3D</h1>
122122
if (g.joystick) url += "&joystick=" + encodeURIComponent(g.joystick);
123123
if (g.tilt) url += "&tilt=1";
124124
url += "&back_url=../3d/&back_label=" + encodeURIComponent("⬅ Games");
125-
if (tvMode) url += "&tv=1";
125+
if (tvMode) url += "&tv=1&filter=point"; // cheapest upscale for weak TV GPUs
126126
return url;
127127
}
128128

emu/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7852,9 +7852,12 @@ <h2 id="fw-title">Download standard Atari ROMs?</h2>
78527852
var on = !afBtn.classList.contains('on');
78537853
afBtn.classList.toggle('on', on);
78547854
if (afNative()) {
7855+
// Native auto-fire chops a HELD trigger into ~10 Hz pulses (the
7856+
// external trigger included), so hands-free fire = enable AF and
7857+
// hold the external trigger steady; the core does the pulsing.
78557858
try { Module._ATWasmSetAutoFire(on ? 1 : 0); } catch (err) {}
78567859
if (afTimer) { clearInterval(afTimer); afTimer = null; }
7857-
if (!on && ext.fire) { ext.fire = false; pushExt(); }
7860+
ext.fire = on; pushExt();
78587861
} else if (on) {
78597862
afTimer = setInterval(function () {
78607863
ext.fire = !ext.fire; pushExt();

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ <h1>ATARI <span class="accent">ARCADE</span></h1>
361361
// Opening the picker with ?tv=1 (smart-TV browsers) propagates
362362
// TV-remote controls into every game launch.
363363
try {
364-
if (new URLSearchParams(location.search).get("tv") === "1") url += "&tv=1";
364+
if (new URLSearchParams(location.search).get("tv") === "1") url += "&tv=1&filter=point";
365365
} catch (e) { /* ignore */ }
366366
return url;
367367
}

scripts/emu-autofullscreen.snippet.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,12 @@
296296
var on = !afBtn.classList.contains('on');
297297
afBtn.classList.toggle('on', on);
298298
if (afNative()) {
299+
// Native auto-fire chops a HELD trigger into ~10 Hz pulses (the
300+
// external trigger included), so hands-free fire = enable AF and
301+
// hold the external trigger steady; the core does the pulsing.
299302
try { Module._ATWasmSetAutoFire(on ? 1 : 0); } catch (err) {}
300303
if (afTimer) { clearInterval(afTimer); afTimer = null; }
301-
if (!on && ext.fire) { ext.fire = false; pushExt(); }
304+
ext.fire = on; pushExt();
302305
} else if (on) {
303306
afTimer = setInterval(function () {
304307
ext.fire = !ext.fire; pushExt();

0 commit comments

Comments
 (0)