andreasswf wrote:
If i understand correctly, the base adresses are these stuff:
Nope, this is where the code is placed in the ROM, and I don't think you have any problems with that. The problem is that the main program and Famitone are trying to use the same RAM positions for different purposes, meaning they keep overwriting/corrupting each other's variables.
The code you have to change is the part of Famitone I showed in my previous post. You do seem to have a lot of ZP free, so you could easily change FT_TEMP to $0D, to use the last 3 bytes of ZP ($0D, $0E and $0F), for example. But Famitone also needs an entire page of RAM, and is currently trying to use $0300, which is already in use by the main program, and it doesn't seem like there are any free pages you can use (all pages up to $700 are taken).
You either have to modify the main program to free a RAM page for Famitone to use, or, if you can't modify the program, enable extra RAM at $6000-$7FFF and set Famitone's FT_BASE_ADR to any page in that range. The main disadvantage of using extra RAM is that it will make cartridges more expensive to build, in case you're planning to do that. If not, this isn't a big deal.
If you're not using an NES 2.0 header, I believe $6000-$7FFF contains RAM by default in some emulators (this might depend on the mapper, though), so you could try simply changing FT_BASE_ADR to $6000.