Just a small little update. I've spending a good amount of time figuring out the header format of ROMS (and how prosystem "classifies" rom_types).. The purpose being to allow the user to run .BIN files. Primary purpose, run homebrews and new prototype releases. So here it is..
What was throwing me off was the lack of correlation between the cart_type as defined in prosystem.dat and the cart_type defined in the header of A7800 ROMS. So once I got that straightened out things began to make more sense.
Prosystem uses the following cart types...
CODE
prosystem type 0 -> 0 Normal Cart
prosystem type 1 -> 2 Supercart
prosystem type 2 -> 10 Supercart with additional ROM at $4000 (Large)
prosystem type 3 -> 6 Supercart with additional RAM at $4000
prosystem type 4 -> 02 Supercart no additional RAM/ROM
prosystem type 5 -> 512 F18 Hornet
prosystem type 6 -> 256 Activision Cart
add 1 if pokey=true
The number on the left is the prosystem internally defined number. The number after the -> is the actual header value of the ROM. The text on the right is the actual description. That being said I should be able to narrow the user configuration for headerless ROMS down to two options..
Cart Type (as defined by prosystem)
Pokey Supported (yes/no).
That being said. I noticed all homebrews (that I've tried so far) are cart type 0. With pokey either being true or false.
The two prototypes (Sirius and Plutos) that came out recently are type 2 (I believe, going from memory here).
So in 99% of the cases the user can just pick cart_type 0 with pokey on/off and let her fly. For future newly released prototypes it would be just a matter of trying each cart_type until it works.
Or just manually adding it to the prosystem.dat file.
Other things that threw me off.
1. My Commando ROM has the wrong header, so no pokey sound.
2. My Sentinel had a bad header and didn't work as a result. (wrong cart_type and PAL)
3. My Summer Games has a wrong header thus the graphics were scrambled.
4. My Winter Games had the same issues as Summer Games.
5. The two Frogger ROMS with headers have invalid header. Hence impromper music (no pokey).
None the less I have it all figured out now.
Oh and the emulator now displays a message when you change the difficulty level on switch A or B.
I'm debating on whether to display a message when the "Pause" button has been pressed and still "active".