Домашняя работа. (игра Code Name - Viper (U) [!].nes, эмулятор FCEUX 2.6.4)Задача: расширить слоты для сердечек до максимума.
1. С помощью RAM search нашел параметр количества слотов для сердечек. ( 06E4), т.к. на
https://gamehacking.org ничего не было такого, там только сами сердечки, но не слоты. Вспомнил юность, cheat о’matic. Нашлось порядка десяти параметров, ликвидный был явно только один.
2. В читах убедился, что это он, и что он работает нормально.
3. Поставил на него бряк в дебаггере, а именно переключив на write.
4. Нашел 6 точек, при загрузке игры, при загрузке демо, при загрузке уровня, при континью, и при подборе паверапа.
5. Взял только 1 точку, при континью, вот что там было
07:EF31: A9 02 LDA #$02 – вот откуда она берет значение, вот что нужно менять
07:EF33: 8D F8 06 STA $06F8 = #$02
07:EF36: 8D E4 06 STA $06E4 = #$02 – вот наша 06E4, но меняется она не отсюда, а выше, ну понятно, я хотел сначала тут поменять, но тут нечего менять, тут 8D E4 06 значение, это явно не то, что нам нужно менять.
6. Зашел в ROM patcher, написал ef31, он много чего написал, я проверил, убедился что он нашел то что нужно, но патчить оттуда не стал, боюсь, не доверяю этим автопатчерам.
7. Взял из патчера адрес 1EF41, полез в ROM, hex-редактором, проверять. Нашел там это самое A9 02, поменял на A9 04, сохранил.
8. Стал тестить – такой режим изи, сначала игра идет все как обычно, две сердечки даются. Если тратишь конт, включается режим помощи, подключается 4 слота для сердечек. Проверил, с пароля работает точно так же как сначала. Проверил на нормале, работает точно так же, как на изи.
Файл прилагается. Прошу проверить, не накосячил ли чего, вроде одну цифру поменял, ну не может же она что-нибудь другое сломать.
В основном пользовался вот этим видео, ну и у супергеройчика пару видосов посмотрел.
в видео были ссылки на:
https://museum.netstalking.ru/xaknotdie/02_nes_6502_asm.htmlhttp://www.romdetectives.com/Wiki/index.php?title=6502_Opcodes