Quoted from Cheddar:
Hey guys, I have a results question. With 2 sets of verified roms (barracora) I get the following results:
Boots to 0, goes out, 8 shows on the LED, then 0 stays on
Press the diagnostic and I get a 5
The displays do not come on.
After doing the CMOS Test I did the CMOS init. Could the 8 be not having a battery pack attached?
I have tested the CMOS ram several times with the pincoder test and it passes every time.
Is the next step to replace the 5101 ram?
The init-cmos ROM has only ever been verified to run on Gorgar and Black Knight. It's possible that other games have slightly different settings and slamming Gorgar settings into another sys3-6 game or slamming Black Knight settings into another sys 7 is technically invalid. This could be causing the 8 to flash.
So for you I'd say run the clear-cmos and then boot the game normally and see if it's happy. Since the CMOS test ROM runs fine you don't need a new CMOS (5101) chip.
On another note, in order for the init_cmos ROM to work on a different game I'd need someone to send the me default settings for that game. To do this you would run the clear_cmos ROM, then the Williams ROM twice with the door open. Once the game is in attract mode the CMOS chip would contain the actual default values for that game. From there you would power down (with batteries installed) and then run the edit_cmos ROM.
Once the edit_cmos ROM is running you would step through all of the addresses in the CMOS chip and look at the value stored in that address. If it's non-zero write the address and value down and move on to the next address.
When writing them down I specify them in sets of two. This is because they are actually 4 bit values and so the GAME ROMs need two addresses to store a single 8-bit value).
So for example, here is what the sys7 init_cmos ROM uses to initialize the CMOS chip (remember, these values are taken from Black Knight):
ENT_103 .db 2,0
ENT_125 .db 11,2
ENT_127 .db 10,5
ENT_129 .db 2,5 ; Default 2,5 # HSTD (2,500,000)
ENT_131 .db 1,1 ; Default 1,0 # replay 1 (1,100,000) - setting 14 in Williams ROM
ENT_133 .db 2,2 ; Default 2,0 # replay 2 (2,200,000) - setting 15 in Williams ROM
ENT_135 .db 3,3 ; Default 0,0 # replay 3 (3,300,000) - setting 16 in Williams ROM
ENT_137 .db 4,4 ; Default 0,0 # replay 4 (4,400,000) - setting 16 in Williams ROM
ENT_145 .db 0,3
ENT_147 .db 0,5
ENT_149 .db 0,5
ENT_151 .db 0,0
ENT_153 .db 0,3
ENT_155 .db 3,0
ENT_157 .db 0,1
ENT_163 .db 0,1
ENT_165 .db 0,1
ENT_167 .db 0,3
ENT_169 .db 0,4
ENT_171 .db 0,0 ; Default 3,0 # MAX_CREDITS (00) - setting 18 in Williams ROM
ENT_173 .db 0,1
ENT_175 .db 0,1
ENT_177 .db 0,4
ENT_179 .db 0,1
ENT_181 .db 0,2
ENT_183 .db 0,4
This basically says:
- Addresses 0 thru 102 are zero.
- Addresses 103 and 104 have a value of 2 and 0 respectively.
- Addresses 125 and 126 have a value of 11 and 2 respectively.
- Addresses 183 and 184 have a value of 0 and 4 respectively.
- Addresses 185 and up are zero.
FORMAT: The values after the .db are the values that init-cmos writes to the CMOS chip. When I've changed them to a non-default value I include a comment and state the default value. So for example to place the game into free-play mode I set a new default value for MAX_CREDITS by setting 171 and 172 from 3 and 0 (thirty) to 0 and 0 (zero).
If anyone wants to take the time to do this for their game and send me the results I'd be happy to make an init-CMOS ROM specifically for that game. Don't worry about having to decipher what the values in each address means just send me the numbers and I'll make the ROM stick to the defaults. If you want to take the time to verify what each address is used for (like I did for 129-138 and 171-172) that would be a bonus! (edit the value and reboot into the GAME to look for a change in behavior). Alternatively you could write the default numbers down then boot into the game, change one of the settings or insert a coin, power down, run the edit_cmos again and take note of the changes.
EDIT: The only difference between the init_cmos ROM and the clear_cmos ROM is that:
- clear_cmos sets ALL the values in the CMOS chip to zero (causing the Williams ROM to set its default values on the first boot)
- init_cmos does that too and then sets some non-zero values (effectively setting defaults so you dont have to boot the game with the door open twice).
Let me know if you need more clarification