I've been working on an FPGA .GBS player, and have it working pretty decently, but I have come across a bunch of things in .GBS files that cannot be right.
I cannot seem to find a newer version of the spec, and on the entire internet, there appears to only be exactly 1 copy of the .GBS spec present, which is version 1.01 from 1/28/2001.
Where is everyone getting their info to write .GBS players?
I ran into a few bad problems that I don't know how to solve, because I cannot find documentation... Ferinstance, the .GBS for Felix the Cat does a bankswitch and tries to switch to bank 7, when the ROM only has 2 banks (0 and 1). What do you do in this case when a .GBS file tries to switch to a non-existant bank?
Obviously there's a "desired" method of emulating this because it plays on the .GBS players. The only thing I can think of that makes sense is to AND mask the bank register with the highest power of 2, i.e. in this case ANDing with 001h because it only has 2 banks. This would result in the tune working.
Another odd one is Motorcross Maniacs 2. An older version of the .GBS plays at the proper rate, but a newer version does not- it plays at around 1/2 the proper rate.
Checking with a PC GBS player, the old one plays back 2x faster than it should, while the new one plays at the proper rate. It appears that the function of the timer register at FF07h has been changed somehow. Like if bit 7 is set it runs at 2x normal speed?
Thanx for any help
I cannot seem to find a newer version of the spec, and on the entire internet, there appears to only be exactly 1 copy of the .GBS spec present, which is version 1.01 from 1/28/2001.
Where is everyone getting their info to write .GBS players?
I ran into a few bad problems that I don't know how to solve, because I cannot find documentation... Ferinstance, the .GBS for Felix the Cat does a bankswitch and tries to switch to bank 7, when the ROM only has 2 banks (0 and 1). What do you do in this case when a .GBS file tries to switch to a non-existant bank?
Obviously there's a "desired" method of emulating this because it plays on the .GBS players. The only thing I can think of that makes sense is to AND mask the bank register with the highest power of 2, i.e. in this case ANDing with 001h because it only has 2 banks. This would result in the tune working.
Another odd one is Motorcross Maniacs 2. An older version of the .GBS plays at the proper rate, but a newer version does not- it plays at around 1/2 the proper rate.
Checking with a PC GBS player, the old one plays back 2x faster than it should, while the new one plays at the proper rate. It appears that the function of the timer register at FF07h has been changed somehow. Like if bit 7 is set it runs at 2x normal speed?
Thanx for any help