feat: disc asset embedding and DVD API emulation#17
Merged
KaiserGranatapfel merged 4 commits intomainfrom Feb 11, 2026
Merged
Conversation
Extract the first .dol file from uploaded zip archives before processing, so users can upload zipped ROMs directly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded Rust route handlers with Lua business logic layer, merge the two-step upload+recompile flow into a single drag-and-drop action, and replace 1-second polling with Server-Sent Events. - Extract JSON<->Lua conversion into gcrecomp-lua/src/convert.rs - Add LuaEngine::set_package_path() for configurable module loading - Update routes.lua with update_status() calls and handle_list_targets() - Rewrite server.rs with broadcast channel and AtomicBool recompile lock - Rewrite routes.rs: upload triggers Lua recompile via spawn_blocking, SSE endpoint replaces polling, config/targets delegated to Lua - Rewrite index.html with drag-drop zone and animated pipeline stages Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…utable - Fix multipart parsing by iterating fields by name instead of assuming order; connect SSE after upload response to avoid interference - Add game title input and target platform selector (Linux/Windows/macOS) to the UI; pass both through to the Lua pipeline - Add compile stage: after pipeline generates Rust source, build the game crate with cargo and produce a named executable (game_title.exe etc.) - Serve output/ directory for binary downloads with a download button - Add game/src/recompiled.rs placeholder and mod declaration in main.rs - Make UI more robust: file type validation, filename badge, scrollable error display, disabled state during processing, clear error dismissal Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ulation Add FST extraction from GameCube disc images, zstd-compressed GCFS archive building, a virtual filesystem, and DVD API emulation (DVDOpen/DVDRead/DVDClose) so recompiled game binaries are fully self-contained with all disc assets. Also includes web server Lua binding rework, Ghidra ReOxide backend improvements, and HTML template migration to Lua. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 31. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
game/assets.bin) with per-file compression for efficient lazy decompressionDVDOpen,DVDRead,DVDClose,DVDGetLength,DVDInitin the runtime SDK so recompiled games can load assets via the standard GameCube DVD interfaceembed_assetspipeline stage generatesgame/src/assets.rswithinclude_bytes!so the compiled binary is fully self-containedTest plan
cargo buildcompiles successfullycargo clippy --all-targets --all-features -- -D warningspasses cleangame/assets.bincreated with non-zero size after disc uploadgame/src/assets.rsgenerated withinclude_bytes!reference🤖 Generated with Claude Code