Skip to content

Commit d3b1f40

Browse files
release: bump gc to v0.2.0; update pce CHANGELOG for v0.1.0
gc: cut a new release under the short-codename convention. v0.2.0 captures the subdir rename (gamecube/ -> gc/) and the GBA-disconnect GCN ghost-detect fix. Historical gamecube-v0.1.0 stays as a frozen snapshot. pce: rewrite the v0.1.0 changelog body to reflect what actually ships (title bar + sprite-based bouncing logo screensaver matching gc/gba), not just the upstream PCE_Mouse_Test faithful port that was sketched out before the screensaver work landed. VERSION stays 0.1.0. gba: no changes; ships as-is at v0.1.0.
1 parent bb2a7b7 commit d3b1f40

3 files changed

Lines changed: 70 additions & 18 deletions

File tree

gc/CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Joypad Tester — GameCube — Changelog
22

3+
## v0.2.0 — 2026-05-11
4+
5+
First release under the new short-codename convention. The subdir is
6+
now `gc/` (was `gamecube/`) and the release tag is `gc-v0.2.0` (was
7+
`gamecube-v0.1.0`). The historical `gamecube-v0.1.0` tag/release stays
8+
intact as a frozen snapshot of the old layout — future releases all
9+
use the `gc-` prefix.
10+
11+
### Fixed
12+
13+
- GBA disconnect no longer ghost-detects as a regular GameCube
14+
controller. libogc's `SI_GetType` walks through transient values
15+
during cable removal that mask to `SI_TYPE_GC` (with or without
16+
`SI_GC_STANDARD` set); the bare type-match fallback was latching
17+
those as "GCN". Added a `gc_chan[]` sticky cache parallel to
18+
`kbd_chan` / `wheel_chan`, gated on `SI_GC_STANDARD` + no
19+
`NO_RESPONSE`, so transient reads can't flip the port label.
20+
21+
### Changed
22+
23+
- Subdir rename `gamecube/` -> `gc/` to match the short-codename
24+
convention used by `gba/`, `pce/`, and future consoles. Tag prefix
25+
shifts from `gamecube-v*` to `gc-v*`. `TARGET_CONSOLE=gamecube|wii`
26+
inside the libogc build is unchanged (that's the libogc internal
27+
platform name, not our subdir codename).
28+
329
## v0.1.0 — 2026-05-07
430

531
Initial release.

gc/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.0
1+
0.2.0

pce/CHANGELOG.md

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,51 @@
22

33
## v0.1.0 — 2026-05-11
44

5-
Initial release. Faithful port of dshadoff's `PCE_Mouse_Test` baseline
6-
as a joypad-tester subdir.
7-
8-
- Detects 2-button / 6-button PC Engine pads via `joy(0..4)` and
9-
reports raw bit patterns for all five potential controller slots
10-
(single pad on port 0, or up to five pads through a multitap).
11-
- Detects the PC Engine mouse, reports `mouse_x() / mouse_y()` per-frame
12-
deltas, and accumulates them into absolute X / Y coordinates.
13-
- **I** button (or right mouse button) toggles between mouse-enabled
14-
mode (decoded mouse state) and raw controller mode (raw joybus
15-
reads).
5+
Initial release. Builds on dshadoff's `PCE_Mouse_Test` baseline,
6+
extended with a labelled main screen and an idle screensaver matching
7+
the GameCube and GBA testers in this repo.
8+
9+
### Main screen
10+
11+
- Yellow title bar ("Joypad Tester - PC Engine") rendered on its own
12+
BG palette so it stays distinct from the live data.
13+
- White P1..P5 + Mouse readouts in a two-column layout. P1..P5 cover
14+
the five potential PCE controller slots (single pad on port 0, or
15+
up to five pads through a multitap).
16+
- Mouse section reports `mouse_exists()`, per-frame `mouse_x()` /
17+
`mouse_y()` deltas, and an accumulated absolute X / Y.
18+
- Cyan footer: "Press I button or right-click to toggle mouse mode."
19+
Same toggle behaviour as upstream PCE_Mouse_Test.
20+
21+
### Idle screensaver
22+
23+
- After 30 seconds of inactivity, the screen clears and the 64×64
24+
joypad logo bitmap bounces across the display, color-cycling
25+
through red → green → yellow → blue → magenta → cyan → white on
26+
each wall bounce. Same artwork, palette, and motion cadence as
27+
the GameCube and GBA testers.
28+
- Logo is rendered via four 32×32 hardware sprites in a 2×2 grid
29+
(PCE 4bpp planar format). Sprite data is generated by
30+
`buildtools/make_logo.py` from `pce/branding/logo_64.png` (a
31+
hand-editable 64×64 1-bit PNG), or — when no hand-edit exists —
32+
rasterised at 64×64 from `joypad/branding/logo_solid.svg` via
33+
`rsvg-convert`.
34+
- Any input wakes the screensaver and restores the main display.
35+
36+
### Build / toolchain
37+
1638
- Builds to `joypad-tester.pce` via a Docker image we maintain
1739
(`pce/buildtools/Dockerfile`, HuC pinned to `uli/huc@52a556a`).
18-
- Source file: `pce/src/joypad_tester.c`. Includes upstream MIT
19-
copyright header.
40+
- Source: `pce/src/joypad_tester.c`. Upstream MIT copyright header
41+
preserved.
42+
- HuC tokenizer gotchas documented in the source header:
43+
comments must be pure ASCII (no em-dashes / curly quotes), and
44+
initialiser trailing commas are not accepted.
2045

2146
### Known limitations
2247

23-
- No on-screen button labels yet — bits are shown as raw hex. The
24-
GameCube tester's per-port live readout style will land in a follow-
25-
up.
26-
- No accessory detection / rumble (PCE has no equivalent on the joybus).
48+
- No per-port button labels yet — joy state is still a raw 16-bit
49+
hex bit pattern (matching upstream). A labelled per-port readout
50+
in the style of the GameCube tester is planned for v0.2.0.
51+
- No accessory detection or rumble (PCE has no equivalent on the
52+
joypad protocol).

0 commit comments

Comments
 (0)