Skip to content

Refactor/upstream raylib first - #8

Draft
espressif2022 wants to merge 25 commits into
mainfrom
refactor/upstream-raylib-first
Draft

espressif2022 wants to merge 25 commits into
mainfrom
refactor/upstream-raylib-first

Conversation

@espressif2022

Copy link
Copy Markdown
Owner

No description provided.

…tream

- Runtime owns logic ticks: GetTime/GetFrameTime follow logic ticks, GetFPS
  reports the measured present rate, and the runner reads target FPS directly.
- EndDrawing no longer drops input edges under an attached runtime.
- Collision and color helpers now match raylib 6.0 exactly.
- Document per-mapping status and enforce it with a policy test.
Vendor unmodified raylib 6.0 sources (georgik/raylib 6.0.0~2) and add a
PLATFORM_CUSTOM rcore backend that presents rlsw frames through the video
backend, uses the board clock for time and frame pacing, and turns queued
button/touch events into raylib input state.

- Replace the georgik/raylib dependency, whose platform has GetTime()=0,
  no input and an extra synchronous frame copy.
- Restore MAX_KEYBOARD_KEYS to 512 so arrow keys and Enter work.
- Host test drives upstream drawing, input and pacing end to end.
Games call these paths, and the stack suite previously stopped at primitives
and sprites. The tilemap is built in RAM, and a readable table follows the JSON log.
Short RGB565 rows made S3 fill slower, so PIE stays a render-benchmark option there. The engine still enables it only on ESP32-S31, and the frame comparison records the remaining pixel gap.
Add the public API catalogue, frozen compatibility and upstream audits, renderer header separation, private primitive core, and Scene/UI behavior coverage.

Separate maintained documentation from development records and record S31 Sky Hop native-renderer rejection and compatibility restoration. Keep native example diagnostics configurable.

Validation: 145 unittest checks, focused tests and pixel oracles, API audit, Markdown links, diff checks, and isolated release checks. Hardware evidence and untested device paths are recorded in docs/development.
…rlds

- BOX-3: 40 MHz LCD clock, viewport-only present after a full frame,
  -O2 with larger caches and PSRAM XIP.
- Add raylib_lite_video_info_t.sample_row_step so renderers skip rows a
  backend never displays; BOX-3 reports 2 for its exact 480->240 sampling.
- Remove fully covered draws in Tower, Sky Hop and Shooter.
- Living Worlds decodes panoramas with ROM TJpgDec on S3 and builds on both boards.
- Shooter nebula background and Sky Hop cloud art.
…probe failure

- Sky Hop and Tower Defense shipped embedded sounds that were never played;
  trigger cues and music from model state changes in native builds and
  release every handle on shutdown.
- ESP-Mosaico board retries a failed lcd_touch probe once and otherwise runs
  without touch instead of aborting board creation.
- Record S31 same-condition A/B for the seven release games.
…release set

- Remove tomb_raycast from release assembly, CI consumer builds and asset provenance.
- Label it as an internal preview in the README, build matrix, releasing and CLI docs.
- Correct game feature claims, refresh BOX-3 status and repair the progress table.
- Remove per-game performance records from release examples and add a test
  index to tests/README.md.
- Merge the Living Worlds history; game READMEs become English README.md with
  Chinese README.CN.md.
- Fix BOX-3 acceptance wording, a wrong compat header path, the skill prompt that
  offered ELF integration, and missing development-record navigation.
- Drop stale lobby ELF wording from AGENTS.md, a Last Zone comment and the asset
  store header comment; refresh the API consumer matrix from the audit tool.
- Align README and releasing with idf >=6.1, the 13-configuration CI matrix and
  the 2026-10-14 two-board device evidence.
- Record audio provenance, the raylib-derived default font, Koala Seasons asset
  status and a non-affiliation statement.
…om whitespace checks

- Untrack examples/koala_seasons_dev and ignore it until its asset license is confirmed.
- Mark third_party/** as -whitespace: vendored raylib, stb and qoi sources and the
  zlib license text must stay byte-identical, so git diff --check skips them.
…ecords

- Keep project history, interface governance and key technical decisions in
  docs/development; per-round tuning, performance captures, game iteration
  screenshots and internal-preview notes stay in the ignored docs/debug/.
@espressif2022
espressif2022 force-pushed the refactor/upstream-raylib-first branch from f60444c to a4c1749 Compare October 14, 2026 06:43
…end/mix

- Example design view (raylib_lite_design_view.h): games opt in with
  raylib_lite_game_adaptive_surface() and run at the Board panel size
  (BOX-3 320x240 one-to-one); 480x480 keeps the camera-free path.
  Host gains --size / RAYLIB_LITE_HOST_SIZE, tilemaps gain draw_layer_scaled.
- Sky Hop, Neon Rift Rally, the shooter and Last Zone move audio and haptics
  into tested feedback modules that consume each model event once and release
  clips, music and the audio device on close. New cues and music loops are
  synthesized by generate_audio.py; generated WAVs are no longer tracked.
- Gameplay: Rally rider personalities and rival, Last Zone roles, vision
  cones, suspicion, radio calls and rolled enemy fire.
- Packer picks IMA-ADPCM for short clips only above 20 dB SNR and starts each
  clip from an attack-matched step; entries may force the encoding.
- Renderer: translucent fills of 64+ pixels blend through per-colour
  per-channel lookup tables (bit-identical). Mixer resolves playing voices
  once per mix call (bit-identical output).

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant