11 March 2016 - Forum Rules
Started by tblake05, January 22, 2022, 05:10:59 PM
Quote from: Bavi_H on January 24, 2022, 12:25:47 PMAny hex editor will work, they're all pretty much the same.If you already have the emulator FCEUX, it has a hex editor window you can use.To view the NES file:1. Open FCEUX and open the game.2. Go to the Debug menu and choose Hex Editor.3. In the Hex Editor window, go to the View menu and choose ROM File. (This shows the contents of the NES file.)To change values:1. In the File menu, choose Goto Address, then enter the address.2. The text cursor is now positioned at the value for that address. Confirm the value matches the "from" value in the instructions.3. Type over the value to replace it.To save the changes:Go to the File menu and choose Save Rom As.
Quote from: Bavi_H on January 23, 2022, 02:47:27 PMFor the US version (PRG+CHR CRC32 CEB65B06)
Quote from: tblake05 on January 24, 2022, 01:47:40 PMI wonder if I am using the wrong version of the ROM? How do I verify which one I have?
Quote from: KingMike on January 27, 2022, 11:55:15 AMIf it doesn't work, make sure your ROM isn't set to Read-Only.
Quote from: tblake05 on February 06, 2022, 07:13:01 PMwould it be possible to do the same for Player 1 as well, just to keep it uniform?
Quote from: Bavi_H on March 28, 2022, 02:26:49 AMI was interested in trying to re-create the bug to troubleshoot it futher. I began attempting to run Battletoads Double Dragon in the NO$NES emulator PlayChoice-10 mode. But I ended up encountering the following issue in both NO$NES's NES and PlayChoice-10 modes: After the initial pre-level cutscene is either bypassed or finishes natrually and the level is just about to start, the game freezes. In the PlayChoice-10 mode, it then resets the NES game after about 4 seconds. I suspect the NO$NES emulator isn't precise enough to run the Battletoads Double Dragon game correctly. But perhaps this issue has some similarities to the issue you are experiencing.In the NO$NES everynes.htm document, there is a section about differences to be aware of when running NES games in a PlayChoice-10. The following differences may be relevant: "NES NMI Disable The PC10 BIOS is watching the NES NMI signal. If the NES disables NMIs for a longer period (around 255 frames), then it'll treat the game to have locked up, and will terminate the game. [...] NES Pause / Timings [...] reportedly, the PC10 RGB-PPU timing isn't exactly same as NES NTSC-PPU timing (reportedly something to do with missing dots on some NTSC scanlines or so)."When I investigated using debuggers and tools in NO$NES and Mesen, I discovered the following. The game displays the scores and health status bar at the top of the screen, then switches the graphics for the rest of the screen to display the level. The game sets up a sprite zero hit to occur at the bottom right of the status bar area to tell when to switch the graphics. In the NO$NES emulator, the sprite zero hit never happens for some reason and the game remains stuck in a loop checking for the sprite zero hit. This loop also has the effect of preventing the NMI from firing, so in the PlayChoice-10 mode, the BIOS notices the NES game is frozen and aborts it after about 4 seconds.If you are willing to test this, here are some mods that move or bypass the status bar sprite zero hit.Like the mods earlier in this thread, the following mods are for the US version (PRG+CHR CRC32 CEB65B06)NES file offset hex: original value hex → new value hexA. Move the status bar sprite zero hit left 8 pixels.32239: 9F → 9E38062: FE → F6Maybe moving the sprite zero hit position a little bit to the left may help the game work reliably on the PlayChoice-10? This mod moves the sprite zero hit position left 8 pixels.B. Disable the status bar sprite zero hit check loop1A3: F0 FB → EA EAThis mod will disable the loop that checks for the sprite zero hit at the bottom of the status bar. This will cause the bottom half of status bar to be missing, but it might be useful for testing purposes. If the game runs okay otherwise, then that suggests this sprite zero hit check loop is the cause of the problem.
Page created in 0.100 seconds with 20 queries.