raw код, Darkwing Duck Nes, чтобы сразу при старте игры открывались все 7 уровней?
Под raw имеются в виду RAM читы, таким образом не получится одновременно отобразить выбор всех уровней. RAM $38 хранит кол-во завершённых уровней, в RAM $69 биты пройденных уровней, вот таблица, по которой нужно выставить ($38 перед показом карты, $69 можно во время):
$38 | $69 | Bridge | City | Sewers | Forest | Warehouse | Tower |
00 | 00 | | | | | | |
01 | 01 | v | | | | | |
01 | 02 | | v | | | | |
01 | 04 | | | v | | | |
02 | 03 | v | v | | | | |
02 | 05 | v | | v | | | |
02 | 06 | | v | v | | | |
03 | 07 | v | v | v | | | |
04 | 17 | v | v | v | v | | |
04 | 27 | v | v | v | | v | |
04 | 0F | v | v | v | | | v |
05 | 37 | v | v | v | v | v | |
05 | 1F | v | v | v | v | | v |
05 | 2F | v | v | v | | v | v |
06 | 3F | v | v | v | v | v | v |
При этом после запуска уровня происходит сброс RAM $38, нужно что-то ещё править.
Про этот хак я знаю. Просто хотелось попробовать сделать свой собственный game genie, чтобы потом использовать в Русской версии, или в хаке Darkwing duck advance
Из-за большого кол-ва изменённых байтов будет много GG-кодов, а значит и больше вероятность коллизий (одинаковые байты в тех же местах в разных банках), поэтому лучше не использовать GG. Если вы умеете делать GG-коды, значит разбираетесь в коде и вам не составит труда сравнить хак от Spiiin с оригиналом, чтобы перенести его изменения в нужный ром. Перевод Darkwing Duck (U) [T+Rus Shedevr (22.02.2004)] не кофликует с _open_map_hack, поэтому переносится автоматически. Есть программа для такого, но я делал простой скрипт на Python 3:
import sys
from pathlib import Path
b1 = Path(sys.argv[1]).read_bytes()
b2 = Path(sys.argv[2]).read_bytes()
p3 = Path(sys.argv[3])
b3 = bytearray(p3.read_bytes())
for i in range(len(b1)):
if b1[i] != b2[i]:
if b3[i] != b1[i] and b3[i] != b2[i]:
print(f"Warning. Position 0x{i:0X}: file1 {b1[i]:02X}, file2 {b2[i]:02X}, file3 {b3[i]:02X}")
b3[i] = b2[i]
p3.with_stem(p3.stem + "_edit").write_bytes(b3)
Для добавления _open_map_hack в русский перевод выполнить:
script.py "Darkwing Duck (U) [!].nes" "Darkwing Duck (U) [!]_open_map_hack.nes" "Darkwing Duck (U) [T+Rus Shedevr (22.02.2004)].nes"Правды вы просили 7 уровней, в этом хаке доступно 6 без последнего.