2279 Commits
Author SHA1 Message Date
Steven Hugg e52ea86421 urust: fixed test 2026-10-24 13:40:53 +02:00
Steven Hugg 6811cd92ce chips: pull upstream CIA/NMI and controller fixes
Cherry-pick the upstream bug fixes that apply to the old-generation chip
headers this fork still carries (13 commits, one per fix, each with a
"(cherry picked from commit ...)" trailer):

  m6502:  wrong irq/nmi pipeline bit positions (NMI timing), the NMI
          instruction hijacking fix (nmi_pip widened to 32 bits), and the
          matching codegen template/gen.py changes
  m6526:  PA/PB input latch, port B reads, latch writes in the reload
          cycle, timer B interrupt flags, ICR mask write in the underflow
          cycle, and ICR bit 7 vs. the /IRQ output line
  zx:     Sinclair joystick fire button (was wired to "right")
  cpc:    z80_reset() when loading a .sna, upd765 assert that fired in
          the CRTC demo
  ay38910: envelope shape 15
  i8255:  port output pin mask (used by the CPC)

Left alone (needs a real port, not a cherry-pick): the am40010 CCLK/READY
phase fixes and mode 3, because this fork's am40010_tick() was restructured
to take a tick count for the instruction-stepped Z80 with WAIT accounting.

The fork's probe hooks (logStackPush/Pop, logExec) and the SID register
read-back stay intact.

Also fixed c64 stuck joystick problem:
The keyboard matrix lines are driven by the CIA output latch, not
by the external pin level: since the port read model lets a
grounded joystick line pull an output pin low, using the raw pins
here makes joystick 2 hold a keyboard scan line active (and the
IDE feeds arrow keys to both the joystick and the cursor keys).
Use the latch for output bits, the pin only for input bits.

res/<platform>/*.wasm are rebuilt from chips/wasm/*.c. Note the c64/cpc/zx
blobs also move to a newer clang than the ones previously committed
(109771/93695/84361 bytes), so part of their size change is toolchain, not
this patch.

Verified: base-vs-new screenshots are byte-identical for c64 (hello,
scroll1, test_setirq, musicplayer, allow joymove+key), vic20 (siegegame),
zx (hello, cosmic) and cpc.464 (easy_mode_strings); test-platforms,
test-cli and test-node pass (the one test-node failure, urust
include_bytes!, reproduces with the old wasm).
2026-10-24 13:22:33 +02:00
Steven Hugg 8895c67915 vic20 debug info, first version of new bios 2026-10-23 20:06:37 +02:00
Steven Hugg e109fd4f4f handle failed BIOS loads more gracefully 2026-10-23 18:46:16 +02:00
Steven Hugg 0988fa9136 c64/vic20.rom now loads properly after emulator init 2026-10-23 17:18:06 +02:00
Steven Hugg 0e565caa86 test worker: fixed emglobal.emglobal 2026-10-23 17:10:38 +02:00
Steven Hugg 327c5861ff fixed chips submodule clone 2026-10-23 15:51:22 +02:00
Steven Hugg c017ca1b9b cache-busting query string in build for worker files 2026-10-23 14:54:30 +02:00
Steven Hugg 709857a18e vic20: added to platforms menu, fix joystick in chips wasm (it's a submodule now) 2026-10-22 22:18:55 +02:00
Steven Hugg c90688813b fixed urust test for now 2026-10-22 13:04:07 +02:00
Steven Hugg 5477f1a5ee tests: report build failures instead of dying with exit 7, removed urust tests for now 2026-10-22 12:38:09 +02:00
Steven Hugg 8a3cfc119c vic20: tidy up the test 2026-10-22 11:14:13 +02:00
Steven Hugg 9aa2490dba vic20: fix the text window geometry
The VIC-I draws a fixed 22x23 character window, centered in the picture.
The emulator used the VIC-II's display window registers, so the window was
placed at a garbage offset: the first character column was clipped in half
and the whole picture was shifted 24 pixels to the right to hide it.

- the new emulator core (chips) centers the window and takes its vertical
  position from the ROM, so NTSC and PAL ROMs both work
- the 24 pixel video shift is gone
- the platform loads res/vic20/vic20.bios (a real ROM set) when it is
  available, and falls back to the stub BIOS otherwise
- a regression test checks the geometry of the rendered frame
2026-10-22 11:11:09 +02:00
Steven Hugg 0063608f2a urust: added #resource match pattern, can now pass --board 2026-10-21 14:11:30 +02:00
Steven Hugg 3e6e19aa65 fixed wasishim returning NOSYS, urust --auto-mod flag, -O1 2026-10-21 14:11:30 +02:00
Steven Hugg 81f7ec215a asset editor now scans/supports rust files 2026-10-21 14:11:30 +02:00
Steven Hugg c12db38f27 urust: read internal modules from .zip, fixed test 2026-10-21 14:11:30 +02:00
Steven Hugg e6d7ee5ca5 fixed duplicate include file badges 2026-10-21 14:11:30 +02:00
Steven Hugg 5811892262 started on urust for 6502 2026-10-21 14:11:30 +02:00
Steven Hugg 73f6288c3b ide worker fetches ArrayBuffers for Firefox; Firefox test harness 2026-10-21 14:10:26 +02:00
Steven Hugg 6b550f0100 v4.0.0 2026-10-21 12:44:58 +02:00
Steven Hugg 42df561e9f dont run compatcheck in release script 2026-10-21 12:43:55 +02:00
Steven Hugg 73a7b0dd0d added "switch to 3.12.1" link 2026-10-21 12:32:46 +02:00
Steven Hugg c279cf641e change IDE entry from redir.html? to /latest/ 4.0.0 2026-10-21 12:18:14 +02:00
Steven Hugg 0326b0962b compat check: build an old release's examples with today's toolchain 2026-10-21 11:57:54 +02:00
Steven Hugg bec3f4416b added release scripts, gh pages builds on release branch 2026-10-21 10:04:05 +02:00
Steven Hugg 3ac80cfe99 ui: yellow for warnings 2026-10-20 20:08:09 +02:00
Steven Hugg 09d99f2c30 ui: "click screen" hit before audio unmuted 2026-10-19 12:34:00 +02:00
Steven Hugg 153e588808 added Musicotron link to Tools menu, fixed atari music player 2026-10-19 11:58:27 +02:00
Steven Hugg d291ac33cb updated third party notices, @8bws, etc. 2026-10-18 20:09:10 +02:00
Steven Hugg ac1fb58662 c64: option for joyport, attempt at detection of port 1/2 2026-10-18 12:12:35 +02:00
Steven Hugg 82cc450f7e vcs: no more 'lxa' opcode in CLEAN_START (unstable), cli analyzer command 2026-10-17 18:27:39 +02:00
Steven Hugg 0e2679f6df ui: Memory Browser: a symbol label covers only its reported size, and an unsized symbol stops at its segment boundary instea
d of running into the next segment.
2026-10-17 17:04:22 +02:00
Steven Hugg bb9a401875 astrocade: improved astrocade-arcade platform, fixed astrocade gfx bugs, machine options (e.g. video rotate) 2026-10-12 11:33:24 +02:00
Steven Hugg cc1709b63e ui: added vscode extension link 2026-10-11 12:18:11 +02:00
Steven Hugg 08b44db317 cli: added commands: presets, new 2026-10-09 14:29:07 +02:00
Steven Hugg 34ccd5d547 npm: tweaks for npm release, github workflow, exclude vic20 2026-10-09 14:00:32 +02:00
Steven Hugg 9255226d81 moved a few urls to 8bitworkshop org 2026-10-09 13:39:03 +02:00
Steven Hugg 9de901133f ui: collapse blank lines in Probe Log 2026-10-08 10:43:24 +02:00
Steven Hugg 506ee16ff0 ui: tooltips for debug tool windows 2026-10-08 10:40:27 +02:00
Steven Hugg c23632a4ed tweaked CHANGELOG.md 2026-10-08 10:14:28 +02:00
Steven Hugg f079f5b229 github: fixed bug in create new repo/push changes 2026-10-08 09:53:30 +02:00
Steven Hugg 2999ab9f04 ui: add modules column to memory map view (sdcc, cc65), background racing stripes 2026-10-08 00:05:07 +02:00
Steven Hugg 680e9bdd93 pass "#symbol c" directives to mcpp 2026-10-07 16:25:32 +02:00
Steven Hugg b3cf4e159d gb: vgm3 player preset 2026-10-07 15:53:30 +02:00
Steven Hugg 6f805e3c7e ide: better detection of binary files, decode utf8 after binary read 2026-10-07 15:53:30 +02:00
Steven Hugg ab96d31c1b gb: compatibility macros for later gbdk-2020 versions 2026-10-07 15:38:33 +02:00
Steven Hugg e20b6d9144 gb: updated presets 2026-10-07 15:38:31 +02:00
Steven Hugg 64482210c8 added "tilemap" preview to asset editor; updated gb/large_map to handle tile color attrs 2026-10-07 12:46:18 +02:00
Steven Hugg aa3319ef54 fixed github issues link 2026-10-07 11:55:04 +02:00