Golden 5 menu writes to $8927 in order to run selected game.
Written data is latched in OUTER.D3..OUTER.D0.
Big Nose Fr: $8927 <= $09
Micro Mach: $8927 <= $0C
Dizzy: $8927 <= $08
Ult Stunt: $8927 <= $0A
Bnose Cav: $8927 <= $0B
On reset, OUTER.3 = 0, thus writing to REG2 is allowed.
Selecting game ($08..$0C) sets OUTER.D3 to 1, thus subsequent
writes will be ignored until reset. This prevents games,
when writing anywhere from $8000-$FFFF, changing values
of REG2.
PAL (4xROM):
OUTER_CLK <= '0' when CPU-!ROMSEL! = '0' and CPU-R/!W! = '0' and CPU-A14 = '0' and OUTER.D3 = '0' else '1';
INNER_CLK <= '0' when CPU-!ROMSEL! = '0' and CPU-R/!W! = '0' and CPU-A14 = '1' else '1';
PRG-A14 <= '1' when CPU-A14 = '1' else INNER.D0;
PRG-A15 <= '1' when CPU-A14 = '1' else INNER.D1;
PRG-A16 <= '1' when CPU-A14 = '1' else INNER.D2;
PRG-A17 <= '1' when CPU-A14 = '1' else INNER.D3;
MASTER_!CE! <= '0' when !OUTER=0! = 0 or !OUTER=1! = 0 else '1';
ROM_!RD! <= '0' when CPU-!ROMSEL! = '0' and CPU-R/!W! = '1' else '1';
PAL (2xROM):
OUTER_CLK <= '0' when CPU-!ROMSEL! = '0' and CPU-R/!W! = '0' and CPU-A14 = '0' and OUTER.D3 = '0' else '1'
INNER_CLK <= '0' when CPU-!ROMSEL! = '0' and CPU-R/!W! = '0' and CPU-A14 = '1' else '1'
PRG-A14 <= '1' when CPU-A14 = '1' else INNER.D0;
PRG-A15 <= '1' when CPU-A14 = '1' else INNER.D1;
PRG-A16 <= '1' when CPU-A14 = '1' else INNER.D2;
PRG-A17 <= '1' when CPU-A14 = '1' else INNER.D3;
MASTER_!CE! <= '0' when CPU-!ROMSEL! = '0' and CPU-R/!W! = '1' and OUTER.D2 = '0' else '1'
MM_!CE! <= '0' when CPU-!ROMSEL! = '0' and PCU-R/!W! = '1' and OUTER.D2 = '1' else '1';