So I have been trying to figure this problem out for some time now. After a long time of testing and re testing I think I might have narrowed down the problem. The issue is that I want to be able save the dragon coins found in levels and have it show up on the overworld map that the coins were collected. I am working with an SA1 enabled rom, I am using the overworld counters patch, the individual dragon coin save patch, and applying bwram plus. Everything seems to work fine for the most part but I will occasionally have a level not register that all the coins were collected. What I finally figured out is that the NPC sprite seems to interfere with saving the dragons when spoken to in level. If you "talk" to the sprite and it is set to display a message that is set a different level number, the coins will not save once you beat the level. This does not happen if the message that the sprite displays is from a level number that the original game is programmed to read from. It only happens when it displays a custom message that you tell the sprite to read that is set to read from another level. This is done using the palette editor and setting the x position to match. I don't know if I am wording all of this clearly but I am sure that this NPC sprite is the culprit to the coin saving issue. I really want to use the NPC sprite but I can't figure out what is happening in the code to make it so that dragon coins won't save when the message is triggered. Any help with this would be greatly appreciated.
This is the npc sprite
https://pastebin.com/Y3NbaHFB
Trust the Fungus.
This is the npc sprite
https://pastebin.com/Y3NbaHFB
Trust the Fungus.