к сожалению да графика запакована так просто текст не перерисуешь
Там простое сжатие - RLE с улучшениями. Написал скрипт на Python 3 для сжатия и разжатия, сжимает лучше оригинала в некоторых случаях.
Выполнить в командной строке для разжатия и сжатия шрифта:
rle_dungeon_kid.py "Dungeon Kid (Japan).nes" prg7759_unc.bin 0x7769
rle_dungeon_kid.py prg7759_unc.bin prg7759_edit.bin
0x7769 - позиция в файле. Файл prg7759_edit.bin вручную скопировать через Hex-редактор.
У сжатия есть возможность повторять байт заданный в RAM $67, но в начале игры не используется, это не проблема при сжатии, но, если использовать мой скрипт для разжатия данных, которые используют эту возможность, то нужно в скрипте изменить RAM_67 = 0x00 на нужное значение. К шрифту с позиции 0x7769 не относится.
Сложнее с текстом, он кодируется где-то блоками по 4 тайла (2x2, действия справа), где-то текст копируется из рома в SRAM и оттуда берётся (текст внизу). Лучше не мучиться, расширить ром и изменить код вывода текста.