Whos there#156
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the "Who's There?" feature, which visually transforms bosses into Imps and obfuscates their names to "??????". The changes span command-line argument configuration, documentation updates, and a custom assembly subroutine in data/enemies.py to hook the graphics loader. The review feedback highlights several critical issues in the assembly generation code, including an IndentationError from duplicated loop headers, potential CPU register corruption due to unpreserved Y register modifications, and multiple instances of duplicated code, imports, and ROM space allocations.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
* Bump version to 1.4.4d * STEVE! * changes based on PR comments * Fix graphics menu alignment and visual sprite loader hook Z flag propagation * Fix Steveify flags menu display of None and support dynamic Arguments propagation * Change default Steveify name override to all-caps STEVE
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
- Improved validation of `steveify` argument. - Updated `Espers.get_name` to use internal data directly. - Enhanced `Lores.mod` method for dynamic name modification based on regex.
… in `enemies.py` - Added validation for character names length in `graphics.py`. - Removed redundant code in `who_there_assembly` method of `enemies.py`. - Simplified the boss table exclusion logic. - Removed duplicate patching code for the graphics loader hook.
|
/gemini review |
1 similar comment
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces two new features: 'Who's There?' (--who-there), which obfuscates boss names and forces them to render as Imps, and 'Steveify' (--steveify), which replaces various in-game names with a custom string. It also updates documentation regarding assembly hooks and register preservation. However, several critical issues must be addressed: the custom assembly subroutine in data/enemies.py contains bugs that lead to register corruption and an overwritten return value, the graphics loader patch leaves garbage bytes that will cause a crash, and the --steveify command-line argument is missing from the parser in args/graphics.py.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
Code Review
This pull request introduces the 'Who's There?' feature, which makes bosses look like Imps and obscures their names, and the 'Steveify' feature, which allows renaming various game elements to a custom string. However, several critical issues were identified during the review: the command-line argument for 'Steveify' is missing from the parser, which will cause an immediate startup crash; the custom assembly subroutine for 'Who's There?' contains register corruption, a truncation bug for 16-bit monster IDs, and a processor status register bug; and the graphics loader patch overwrites too many bytes, corrupting the instruction stream and using an incorrect branch offset.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
… in `enemies.py` - Added validation for character names length in `graphics.py`. - Removed redundant code in `who_there_assembly` method of `enemies.py`. - Simplified the boss table exclusion logic. - Removed duplicate patching code for the graphics loader hook.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces the "Who's There?" (-who / --who-there) option, which obfuscates boss names to "??????" and dynamically renders them as Imps. This is achieved via a custom assembly subroutine in Bank C0 hooked into the graphics loader at ROM offset 0x01207B. The documentation in agents.md and llms.md has been updated to reflect assembly hook guidelines and implementation details. Feedback on the changes highlights a critical bug where the graphics loader patch only overwrites 9 bytes instead of 10, leaving a stray byte that corrupts the instruction stream; adding a fourth NOP is recommended. Additionally, a redundant block of code for parsing and validating character names in args/graphics.py should be removed.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
- Removed redundant name processing logic from `graphics.py`. - Added an additional NOP instruction in the enemy graphics loading sequence in `enemies.py`.
Feature: Who's There?
Summary
Implements the -who flag, which replaces all boss sprites with the standard Imp sprite and replaces their display names with ??????.
Technical Implementation
2. Assembly Graphics Hook
3. VRAM/Tilemap Corruption Fix
Exceptions & Edge Cases
Phantom Train (rendered as a background layer rather than a sprite object).