-
-
Notifications
You must be signed in to change notification settings - Fork 322
[ROMM-2098] Integrated patcher.js #2787
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Implemented z-worker.js and zip.min.js for handling zip operations. - Added PatcherBtn component to the main navigation for easy access to the patcher. - Created Patcher.vue view for applying patches to ROM files. - Updated router to include a new route for the patcher. - Enhanced navigation store with a method to navigate to the patcher. - Integrated file input handling for ROM and patch files in the Patcher component. - Added error handling and loading states during patch application.
Summary of ChangesHello @zurdi15, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a new ROM patching feature to the frontend, enabling users to apply various types of patches to ROM files directly within the application. It incorporates a comprehensive JavaScript library for handling different patch formats and provides an intuitive user interface for file selection and patch application, enhancing the utility of the platform for retro gaming enthusiasts. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a significant new feature by integrating the patcher.js library, enabling users to apply ROM patches directly within the application. The implementation includes a new dedicated view, routing, and UI components for a seamless user experience. The changes to the navigation and routing are well-structured. I've identified a few issues, including some debugging artifacts in the vendored library code and a potential bug in one of the patch format parsers. Additionally, I've suggested a minor refactoring in the new Patcher.vue component to enhance code clarity and performance. Overall, this is a valuable addition to the project.
…r better state management
…ing in Patcher.vue
…proved download/upload options in Patcher.vue
…placeholder in Patcher.vue
…tension and custom filename support
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR integrates patcher.js functionality to enable ROM patching directly within the application. Users can upload a ROM file and a patch file, apply the patch using various supported formats, and either download the result or upload it directly to RomM.
Key Changes:
- New Patcher view with drag-and-drop file upload interface
- Web Worker implementation for non-blocking patch operations
- Support for multiple patch formats (IPS, UPS, BPS, PPF, RUP, APS, BDF, PMSR, VCDIFF)
- Navigation integration with new patcher button in main app bar
Reviewed changes
Copilot reviewed 25 out of 27 changed files in this pull request and generated 47 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/views/Patcher.vue | New main patcher component with file upload UI and patch application logic |
| frontend/public/assets/patcherjs/patcher.worker.js | Web Worker for handling patch operations off the main thread |
| frontend/src/components/common/Navigation/PatcherBtn.vue | Navigation button component for accessing patcher |
| frontend/src/stores/navigation.ts | Added goPatcher navigation method |
| frontend/src/plugins/router.ts | Registered new patcher route |
| frontend/src/views/Player/EmulatorJS/Base.vue | Reordered saves/states tab sections |
| frontend/assets/patcherjs/modules/*.js | Core patcher libraries for various patch formats |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Added Hungarian translations for common and patcher-specific terms. - Introduced Italian translations for common and patcher-specific terms. - Implemented Japanese translations for common and patcher-specific terms. - Added Korean translations for common and patcher-specific terms. - Included Polish translations for common and patcher-specific terms. - Added Brazilian Portuguese translations for common and patcher-specific terms. - Implemented Romanian translations for common and patcher-specific terms. - Added Russian translations for common and patcher-specific terms. - Included Simplified Chinese translations for common and patcher-specific terms. - Added Traditional Chinese translations for common and patcher-specific terms. - Updated Patcher.vue to utilize localized strings for error messages, status updates, and UI labels.
Description
Patcher.js integration
Checklist
Please check all that apply.
Screenshots (if applicable)
Partially close #2098