NSF bankswitch

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
NSF bankswitch
by on (#56503)
- Franpa and I have noticed that most of non-ripped NSFs were crashing with RockNES. It includes those made in Famitracker. Well, I've found the cause of such crashes.

- Example: let's say a file is 8192 bytes long, with header. Its load address is 8000h. The bankswitch values are 00,01,02,03,04,05,06,07. Of course, only banks 00 and 01 are valid, but why does it bring such values?

- In other words, the header specifies a bank number higher than the number of available banks. Any thoughts?
Re: NSF bankswitch
by on (#56504)
Zepper wrote:
let's say a [NSF] file is 8192 bytes long, with header. Its load address is 8000h. The bankswitch values are 00,01,02,03,04,05,06,07. Of course, only banks 00 and 01 are valid, but why does it bring such values?

Because the template used to produce the NSF doesn't take into account the ROM size.

Quote:
- In other words, the header specifies a bank number higher than the number of available banks. Any thoughts?

First, does the NSF's program ever access those banks? If it does, either mirror them in some unspecified way or open bus them.
Re: NSF bankswitch
by on (#56519)
tepples wrote:
First, does the NSF's program ever access those banks? If it does, either mirror them in some unspecified way or open bus them.


- No, it doesn't. By the way, the data loading uses each byte for such process.