Help with changing order of meta tiles on NES title screen

Started by Marcos Moutta, October 02, 2022, 10:05:38 AM

Previous topic - Next topic

Marcos Moutta

I made a hack of Bokosuka Wars with Zelda characters. It's done, I just need to figure out how to rearrange the title screen letters so it reads "HYRULE" instead of "LHRHYURE"
I really have no idea how to proceed.


FAST6191

2 approaches.

If the font/design is only used on that screen then see if you can tweak relevant tiles to be something different but ultimately what you want it to be. Sadly with a matching R and possibly A for the top and bottom lines (I can't imagine those are separate characters as much as palette swap but I have been surprised in the past, though I am curious at the different hole pattern in the R between lines) that might be easier said than done. Still very quick if it works.

The proper way is to figure out the mapping system the game uses, hope there are enough spare tiles available (mapping is a type of compression in some ways) or you can twist it to have enough, and get it done.
Assuming it is BG tiles and not objs/sprites then https://nesdev-wiki.nes.science/wikipages/PPU_pattern_tables.xhtml https://nesdev-wiki.nes.science/wikipages/CHR_ROM_vs__CHR_RAM.xhtml
You can try fiddling with it in RAM but you will want to track down what part of the ROM generates it and go from there. Dumping the mapping and searching the ROM can work but it might also need to dip into assembly techniques and you want to set a breakpoint shortly before its appearance (should not be too long after boot which is nice compared to doing that for an end boss you neglected to save before for) to figure out what is writing it -- hopefully it is directly from ROM but it could also be something else.
If you need more characters than what it stores in RAM (it is very possible that only what is truly needed is stored for the NES, compared to many more modern efforts where space is basically free so waste away) you get to either tweak things accordingly or add more in by tweaking read/write commands that fetch tiles for the BG to use.

Marcos Moutta

Quote from: FAST6191 on October 02, 2022, 11:28:42 AM2 approaches.

If the font/design is only used on that screen then see if you can tweak relevant tiles to be something different but ultimately what you want it to be. Sadly with a matching R and possibly A for the top and bottom lines (I can't imagine those are separate characters as much as palette swap but I have been surprised in the past, though I am curious at the different hole pattern in the R between lines) that might be easier said than done. Still very quick if it works.

Unfortunately I can't just edit the graphics. The H and R don't have copies, it's just one meta tile for each. The repeats are the same graphic.

Quote from: FAST6191 on October 02, 2022, 11:28:42 AMThe proper way is to figure out the mapping system the game uses, hope there are enough spare tiles available (mapping is a type of compression in some ways) or you can twist it to have enough, and get it done.
Assuming it is BG tiles and not objs/sprites then https://nesdev-wiki.nes.science/wikipages/PPU_pattern_tables.xhtml https://nesdev-wiki.nes.science/wikipages/CHR_ROM_vs__CHR_RAM.xhtml
You can try fiddling with it in RAM but you will want to track down what part of the ROM generates it and go from there. Dumping the mapping and searching the ROM can work but it might also need to dip into assembly techniques and you want to set a breakpoint shortly before its appearance (should not be too long after boot which is nice compared to doing that for an end boss you neglected to save before for) to figure out what is writing it -- hopefully it is directly from ROM but it could also be something else.
If you need more characters than what it stores in RAM (it is very possible that only what is truly needed is stored for the NES, compared to many more modern efforts where space is basically free so waste away) you get to either tweak things accordingly or add more in by tweaking read/write commands that fetch tiles for the BG to use.

This is way out of my league. It probably doesn't help, but I know it's a mapper 0 game from a company with zero Famicom development experience.

Since I'll probably never be able to publish the hack given the circumstances, here's the IPS patch in case anyone likes this game. I think I did a good job overall
https://www.mediafire.com/file/wz1hht9jg5rladd/hyrule_wars.zip/file

Cyneprepou4uk

Bokosuka Wars (J) [!].nes

Edit bytes at line 0x7550 and 0x7570

Marcos Moutta

Quote from: Cyneprepou4uk on October 02, 2022, 02:50:25 PMBokosuka Wars (J) [!].nes

Edit bytes at line 0x7550 and 0x7570

Thank you SO MUCH!
If you don't mind, how did you come across this information? I found nothing on data crystal

Cyneprepou4uk

By setting a write breakpoint to a PPU address where one of those tiles is written, and tracing where the value is read from. No big whoop.

KingMike

Reading FAST's wall of text made me wonder if Metatiles is even a concept used on consoles other than the NES?
Well, maybe for level data it might make sense.
"My watch says 30 chickens" Google, 2018