Skip to content

Commit c28461e

Browse files
Rename Joypad to Waves across entire codebase
Build system, CI, USB descriptors, BT adapter name, ESP32 NVS namespace, WiFi SSID prefix, BLE service UUID, documentation, source comments, and internal type names. Preserves: GitHub URLs, joypad.ai domains, 3DO protocol "joypad" (generic gamepad term), and third-party library references.
1 parent 27ec7b6 commit c28461e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+478
-478
lines changed

.github/workflows/build.yml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
context: .
6868
push: false
6969
load: true
70-
tags: joypad:latest
70+
tags: waves:latest
7171
cache-from: type=gha
7272
cache-to: type=gha,mode=max
7373

@@ -81,7 +81,7 @@ jobs:
8181
-v ${{ github.workspace }}:/workspace \
8282
-w /workspace \
8383
-e GIT_COMMIT=${{ steps.commit.outputs.hash }} \
84-
joypad:latest /bin/bash -c "make ${{ matrix.app }}"
84+
waves:latest /bin/bash -c "make ${{ matrix.app }}"
8585
8686
sudo chown -R $(id -u):$(id -g) releases/
8787
@@ -121,9 +121,9 @@ jobs:
121121
- name: Generate UF2
122122
run: |
123123
mkdir -p releases
124-
python3 esp/tools/uf2conv.py esp/build/joypad_bt2usb.bin \
124+
python3 esp/tools/uf2conv.py esp/build/waves_bt2usb.bin \
125125
--base 0 --family 0xc47e5767 \
126-
--output releases/joypad_${{ steps.commit.outputs.hash }}_bt2usb_esp32s3.uf2 \
126+
--output releases/waves_${{ steps.commit.outputs.hash }}_bt2usb_esp32s3.uf2 \
127127
--convert
128128
129129
- name: Upload firmware
@@ -158,10 +158,10 @@ jobs:
158158
# Known board suffixes (order matters - check longer suffixes first)
159159
BOARDS="esp32s3 pico2_w pico_w rp2040zero rp2350usba kb2040 feather pico macropad"
160160
161-
for file in releases/joypad_*.uf2; do
161+
for file in releases/waves_*.uf2; do
162162
if [ -f "$file" ]; then
163163
basename=$(basename "$file" .uf2)
164-
app_board=${basename#joypad_*_}
164+
app_board=${basename#waves_*_}
165165
166166
app="$app_board"
167167
for board in $BOARDS; do
@@ -183,98 +183,98 @@ jobs:
183183
- name: Upload usb2pce
184184
uses: actions/upload-artifact@v4
185185
with:
186-
name: joypad_${{ steps.commit.outputs.hash }}_usb2pce
186+
name: waves_${{ steps.commit.outputs.hash }}_usb2pce
187187
path: organized/usb2pce/*.uf2
188188
if-no-files-found: ignore
189189

190190
- name: Upload usb2gc
191191
uses: actions/upload-artifact@v4
192192
with:
193-
name: joypad_${{ steps.commit.outputs.hash }}_usb2gc
193+
name: waves_${{ steps.commit.outputs.hash }}_usb2gc
194194
path: organized/usb2gc/*.uf2
195195
if-no-files-found: ignore
196196

197197
- name: Upload usb2nuon
198198
uses: actions/upload-artifact@v4
199199
with:
200-
name: joypad_${{ steps.commit.outputs.hash }}_usb2nuon
200+
name: waves_${{ steps.commit.outputs.hash }}_usb2nuon
201201
path: organized/usb2nuon/*.uf2
202202
if-no-files-found: ignore
203203

204204
- name: Upload usb2dc
205205
uses: actions/upload-artifact@v4
206206
with:
207-
name: joypad_${{ steps.commit.outputs.hash }}_usb2dc
207+
name: waves_${{ steps.commit.outputs.hash }}_usb2dc
208208
path: organized/usb2dc/*.uf2
209209
if-no-files-found: ignore
210210

211211
- name: Upload usb2neogeo
212212
uses: actions/upload-artifact@v4
213213
with:
214-
name: joypad_${{ steps.commit.outputs.hash }}_usb2neogeo
214+
name: waves_${{ steps.commit.outputs.hash }}_usb2neogeo
215215
path: organized/usb2neogeo/*.uf2
216216
if-no-files-found: ignore
217217

218218
- name: Upload n642dc
219219
uses: actions/upload-artifact@v4
220220
with:
221-
name: joypad_${{ steps.commit.outputs.hash }}_n642dc
221+
name: waves_${{ steps.commit.outputs.hash }}_n642dc
222222
path: organized/n642dc/*.uf2
223223
if-no-files-found: ignore
224224

225225
- name: Upload usb23do
226226
uses: actions/upload-artifact@v4
227227
with:
228-
name: joypad_${{ steps.commit.outputs.hash }}_usb23do
228+
name: waves_${{ steps.commit.outputs.hash }}_usb23do
229229
path: organized/usb23do/*.uf2
230230
if-no-files-found: ignore
231231

232232
- name: Upload usb2uart
233233
uses: actions/upload-artifact@v4
234234
with:
235-
name: joypad_${{ steps.commit.outputs.hash }}_usb2uart
235+
name: waves_${{ steps.commit.outputs.hash }}_usb2uart
236236
path: organized/usb2uart/*.uf2
237237
if-no-files-found: ignore
238238

239239
- name: Upload usb2usb
240240
uses: actions/upload-artifact@v4
241241
with:
242-
name: joypad_${{ steps.commit.outputs.hash }}_usb2usb
242+
name: waves_${{ steps.commit.outputs.hash }}_usb2usb
243243
path: organized/usb2usb/*.uf2
244244
if-no-files-found: ignore
245245

246246
- name: Upload bt2usb
247247
uses: actions/upload-artifact@v4
248248
with:
249-
name: joypad_${{ steps.commit.outputs.hash }}_bt2usb
249+
name: waves_${{ steps.commit.outputs.hash }}_bt2usb
250250
path: organized/bt2usb/*.uf2
251251
if-no-files-found: ignore
252252

253253
- name: Upload snes2usb
254254
uses: actions/upload-artifact@v4
255255
with:
256-
name: joypad_${{ steps.commit.outputs.hash }}_snes2usb
256+
name: waves_${{ steps.commit.outputs.hash }}_snes2usb
257257
path: organized/snes2usb/*.uf2
258258
if-no-files-found: ignore
259259

260260
- name: Upload n642usb
261261
uses: actions/upload-artifact@v4
262262
with:
263-
name: joypad_${{ steps.commit.outputs.hash }}_n642usb
263+
name: waves_${{ steps.commit.outputs.hash }}_n642usb
264264
path: organized/n642usb/*.uf2
265265
if-no-files-found: ignore
266266

267267
- name: Upload gc2usb
268268
uses: actions/upload-artifact@v4
269269
with:
270-
name: joypad_${{ steps.commit.outputs.hash }}_gc2usb
270+
name: waves_${{ steps.commit.outputs.hash }}_gc2usb
271271
path: organized/gc2usb/*.uf2
272272
if-no-files-found: ignore
273273

274274
- name: Upload controllers
275275
uses: actions/upload-artifact@v4
276276
with:
277-
name: joypad_${{ steps.commit.outputs.hash }}_controllers
277+
name: waves_${{ steps.commit.outputs.hash }}_controllers
278278
path: |
279279
organized/controller_fisherprice/*.uf2
280280
organized/controller_alpakka/*.uf2
@@ -404,11 +404,11 @@ jobs:
404404
echo "📦 Preparing v${VERSION} release:"
405405
406406
cd releases
407-
for file in joypad_*_*.uf2; do
407+
for file in waves_*_*.uf2; do
408408
if [ -f "$file" ]; then
409-
temp="${file#joypad_}"
409+
temp="${file#waves_}"
410410
suffix="${temp#*_}"
411-
newname="joypad_${VERSION}_${suffix}"
411+
newname="waves_${VERSION}_${suffix}"
412412
echo "Renaming: $file -> $newname"
413413
mv "$file" "$newname"
414414
fi
@@ -425,7 +425,7 @@ jobs:
425425
uses: softprops/action-gh-release@v1
426426
with:
427427
tag_name: v${{ needs.check-version.outputs.version }}
428-
name: Joypad v${{ needs.check-version.outputs.version }}
428+
name: Waves v${{ needs.check-version.outputs.version }}
429429
body: |
430430
📋 **See [CHANGELOG.md](https://github.com/joypad-ai/joypad-os/blob/main/CHANGELOG.md) for full release notes.**
431431

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
All notable changes to Joypad OS are documented in this file.
3+
All notable changes to Waves are documented in this file.
44

55
Format based on [Keep a Changelog](https://keepachangelog.com/).
66

@@ -128,7 +128,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
128128
## [1.5.0] — 2026-02-02
129129

130130
### Added
131-
- **WiFi controller input** via JOCP protocol (`wifi2usb` app) — connect Joypad iOS app wirelessly
131+
- **WiFi controller input** via JOCP protocol (`wifi2usb` app) — connect Waves iOS app wirelessly
132132
- **WiFi pairing mode** with keyboard controls for test client
133133
- **BLE beacon** for iOS WiFi SSID discovery
134134
- **Neo Geo output** (`usb2neogeo`) — community-contributed adapter support (PR #60)
@@ -242,7 +242,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
242242

243243
## [1.2.0] — 2025-12-23
244244

245-
This was a massive release — the biggest in Joypad OS history. It represents the transformation from a collection of single-purpose adapters into a unified, modular firmware platform.
245+
This was a massive release — the biggest in Waves history. It represents the transformation from a collection of single-purpose adapters into a unified, modular firmware platform.
246246

247247
### Added
248248

@@ -315,7 +315,7 @@ This was a massive release — the biggest in Joypad OS history. It represents t
315315
- Konami code detection easter egg
316316

317317
#### Documentation & Branding
318-
- **Renamed USBRetro → Joypad** (codebase, buttons, docs)
318+
- **Renamed USBRetro → Waves** (codebase, buttons, docs)
319319
- **Renamed joypad-core → joypad-os**
320320
- Rebranded README with ecosystem context and dark/light mode logos
321321
- Comprehensive 3DO PBUS, GameCube Joybus, PCEngine, and Nuon protocol documentation

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Project Overview
66

7-
Joypad OS (formerly **USBRetro**) is firmware for RP2040 and ESP32-S3 based adapters that provides universal controller I/O. Old code/commits may reference `USBR_BUTTON_*` or `usbretro` naming.
7+
Waves (formerly **Joypad OS** / **USBRetro**) is firmware for RP2040 and ESP32-S3 based adapters that provides universal controller I/O. Old code/commits may reference `USBR_BUTTON_*` or `usbretro` naming.
88

99
**Inputs:**
1010
- USB HID controllers, keyboards, mice

Makefile

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Joypad Top-Level Makefile
1+
# Waves Top-Level Makefile
22
# Builds firmware for all product variants
33

44
# Load local environment overrides (gitignored)
@@ -54,37 +54,37 @@ BOARD_SCRIPT_macropad := boards/build_ada_macropad.sh
5454
BOARD_SCRIPT_rp2350usba := boards/build_waveshare_rp2350_usb_a.sh
5555

5656
# Console targets (cmake target names)
57-
CONSOLE_3do := joypad_3do
58-
CONSOLE_pce := joypad_pce
59-
CONSOLE_ngc := joypad_ngc
60-
CONSOLE_ngc_rp2040zero := joypad_ngc_rp2040zero
61-
CONSOLE_nuon := joypad_nuon
62-
CONSOLE_loopy := joypad_loopy
63-
CONSOLE_dc := joypad_dc
64-
CONSOLE_dc_rp2040zero := joypad_dc_rp2040zero
65-
CONSOLE_usb_pico := joypad_usb_pico
66-
CONSOLE_usb_pico_w := joypad_usb_pico_w
67-
CONSOLE_usb_pico2_w := joypad_usb_pico2_w
68-
CONSOLE_neogeo := joypad_neogeo
69-
CONSOLE_neogeo_pico := joypad_neogeo_pico
70-
CONSOLE_neogeo_rp2040zero := joypad_neogeo_rp2040zero
71-
CONSOLE_n642dc := joypad_n642dc
72-
CONSOLE_snes3do := joypad_snes3do
73-
CONSOLE_uart := joypad_uart
74-
CONSOLE_usb := joypad_usb
75-
CONSOLE_usb_rp2040zero := joypad_usb_rp2040zero
76-
CONSOLE_usb_rp2350usba := joypad_usb_rp2350usba
77-
CONSOLE_bt2usb := joypad_bt2usb
78-
CONSOLE_wifi2usb := joypad_wifi2usb
79-
CONSOLE_snes2usb := joypad_snes2usb
80-
CONSOLE_n642usb := joypad_n642usb
81-
CONSOLE_gc2usb := joypad_gc2usb
82-
CONSOLE_neogeo2usb := joypad_neogeo2usb
83-
CONSOLE_neogeo2usb_rp2040zero := joypad_neogeo2usb_rp2040zero
84-
CONSOLE_controller_fisherprice := joypad_controller_fisherprice
85-
CONSOLE_controller_fisherprice_analog := joypad_controller_fisherprice_analog
86-
CONSOLE_controller_alpakka := joypad_controller_alpakka
87-
CONSOLE_controller_macropad := joypad_controller_macropad
57+
CONSOLE_3do := waves_3do
58+
CONSOLE_pce := waves_pce
59+
CONSOLE_ngc := waves_ngc
60+
CONSOLE_ngc_rp2040zero := waves_ngc_rp2040zero
61+
CONSOLE_nuon := waves_nuon
62+
CONSOLE_loopy := waves_loopy
63+
CONSOLE_dc := waves_dc
64+
CONSOLE_dc_rp2040zero := waves_dc_rp2040zero
65+
CONSOLE_usb_pico := waves_usb_pico
66+
CONSOLE_usb_pico_w := waves_usb_pico_w
67+
CONSOLE_usb_pico2_w := waves_usb_pico2_w
68+
CONSOLE_neogeo := waves_neogeo
69+
CONSOLE_neogeo_pico := waves_neogeo_pico
70+
CONSOLE_neogeo_rp2040zero := waves_neogeo_rp2040zero
71+
CONSOLE_n642dc := waves_n642dc
72+
CONSOLE_snes3do := waves_snes3do
73+
CONSOLE_uart := waves_uart
74+
CONSOLE_usb := waves_usb
75+
CONSOLE_usb_rp2040zero := waves_usb_rp2040zero
76+
CONSOLE_usb_rp2350usba := waves_usb_rp2350usba
77+
CONSOLE_bt2usb := waves_bt2usb
78+
CONSOLE_wifi2usb := waves_wifi2usb
79+
CONSOLE_snes2usb := waves_snes2usb
80+
CONSOLE_n642usb := waves_n642usb
81+
CONSOLE_gc2usb := waves_gc2usb
82+
CONSOLE_neogeo2usb := waves_neogeo2usb
83+
CONSOLE_neogeo2usb_rp2040zero := waves_neogeo2usb_rp2040zero
84+
CONSOLE_controller_fisherprice := waves_controller_fisherprice
85+
CONSOLE_controller_fisherprice_analog := waves_controller_fisherprice_analog
86+
CONSOLE_controller_alpakka := waves_controller_alpakka
87+
CONSOLE_controller_macropad := waves_controller_macropad
8888

8989
# App definitions: APP_name = board target output_name input output
9090
# Naming convention: <app>_<board> for all apps
@@ -154,7 +154,7 @@ NC := \033[0m
154154
.PHONY: help
155155
help:
156156
@echo ""
157-
@echo "$(BLUE)Joypad Firmware Build System$(NC)"
157+
@echo "$(BLUE)Waves Firmware Build System$(NC)"
158158
@echo "$(BLUE)==============================$(NC)"
159159
@echo ""
160160
@echo "$(GREEN)Quick Start:$(NC)"
@@ -258,7 +258,7 @@ init-esp:
258258
build: all
259259

260260
# Generic app build function
261-
# Output naming: joypad_<version|commit>_<app>.uf2
261+
# Output naming: waves_<version|commit>_<app>.uf2
262262
define build_app
263263
@echo "$(YELLOW)Building $1...$(NC)"
264264
@echo " Board: $(word 1,$(APP_$1))"
@@ -270,9 +270,9 @@ define build_app
270270
@cd src/build && $(MAKE) --no-print-directory $(CONSOLE_$(word 2,$(APP_$1))) -j$(JOBS)
271271
@mkdir -p $(RELEASE_DIR)
272272
@cp src/build/$(CONSOLE_$(word 2,$(APP_$1))).uf2 \
273-
$(RELEASE_DIR)/joypad_$(VERSION_ID)_$(word 3,$(APP_$1)).uf2
273+
$(RELEASE_DIR)/waves_$(VERSION_ID)_$(word 3,$(APP_$1)).uf2
274274
@echo "$(GREEN)✓ $1 built successfully$(NC)"
275-
@echo " File: $(RELEASE_DIR)/joypad_$(VERSION_ID)_$(word 3,$(APP_$1)).uf2"
275+
@echo " File: $(RELEASE_DIR)/waves_$(VERSION_ID)_$(word 3,$(APP_$1)).uf2"
276276
@echo ""
277277
endef
278278

@@ -390,9 +390,9 @@ uf2-bt2usb_esp32s3:
390390
@echo "$(YELLOW)Building bt2usb UF2 for ESP32-S3...$(NC)"
391391
@cd esp && $(MAKE) uf2
392392
@mkdir -p $(RELEASE_DIR)
393-
@cp esp/build/joypad_bt2usb.uf2 \
394-
$(RELEASE_DIR)/joypad_$(VERSION_ID)_bt2usb_esp32s3.uf2
395-
@echo "$(GREEN)✓ UF2 built: $(RELEASE_DIR)/joypad_$(VERSION_ID)_bt2usb_esp32s3.uf2$(NC)"
393+
@cp esp/build/waves_bt2usb.uf2 \
394+
$(RELEASE_DIR)/waves_$(VERSION_ID)_bt2usb_esp32s3.uf2
395+
@echo "$(GREEN)✓ UF2 built: $(RELEASE_DIR)/waves_$(VERSION_ID)_bt2usb_esp32s3.uf2$(NC)"
396396
@echo ""
397397

398398
.PHONY: flash-uf2-bt2usb_esp32s3
@@ -405,7 +405,7 @@ flash-uf2-bt2usb_esp32s3: uf2-bt2usb_esp32s3
405405
exit 1; \
406406
fi
407407
@echo "$(YELLOW)Flashing UF2 to TinyUF2 drive...$(NC)"
408-
@cp $(RELEASE_DIR)/joypad_$(VERSION_ID)_bt2usb_esp32s3.uf2 /Volumes/XIAOS3BOOT/
408+
@cp $(RELEASE_DIR)/waves_$(VERSION_ID)_bt2usb_esp32s3.uf2 /Volumes/XIAOS3BOOT/
409409
@echo "$(GREEN)✓ Firmware flashed, device will reboot$(NC)"
410410
@echo ""
411411

@@ -708,7 +708,7 @@ _flash_app:
708708
echo "$(YELLOW) Please put device in bootloader mode$(NC)"; \
709709
exit 1; \
710710
fi; \
711-
FLASH_FILE=$$(ls -t $(RELEASE_DIR)/joypad_*$(APP_NAME).uf2 2>/dev/null | head -1); \
711+
FLASH_FILE=$$(ls -t $(RELEASE_DIR)/waves_*$(APP_NAME).uf2 2>/dev/null | head -1); \
712712
if [ -z "$$FLASH_FILE" ]; then \
713713
echo "$(YELLOW)⚠ No $(APP_NAME) firmware found in $(RELEASE_DIR)$(NC)"; \
714714
echo "$(YELLOW) Build it first with 'make $(APP_NAME)'$(NC)"; \

0 commit comments

Comments
 (0)