CAESAR Logo

Catalogue of Arcade Emulation Software - the Absolute Reference

Valid XHTML 1.0! Valid CSS!

X-Arcade

X-Arcade

Large CAESAR Logo

crystal.c

0.90 [ElSemi]


NOTES:

- The Crystal of Kings game runs on a small cartridge-based PCB known as the 'Crystal System'. There are only two known games running on this system, Crystal of Kings and Evolution Soccer. The main PCB is small (approx 6" square) and contains only a few components. All of the processing work is done by the large IC in the middle of the PCB. The system looks a bit like IGS's PGM System, in that it's housed in a plastic case and has a single slot for insertion of a game cart. However this system and the game carts are approx. half the size of the PGM carts. On bootup, the screen is black and the system outputs a vertical white line on the right side of the screen. The HSync is approx 20kHz, the screen is out of sync on a standard 15kHz arcade monitor. After approx. 15-20 seconds, the screen changes to white and has some vertical stripes on it and the HSync changes to 15kHz. After a few more seconds the game boots to a white screen and a blue 'Brezza Soft' logo. Without a cart plugged in, the screen stays at the first vertical line screen.

- The protection is a PIC deviced labeled SMART-IC in the rom board, I'm not sure how it exactly works, but it supplies some opcodes that have been replaced with garbage in the main program. I don't know if it traps reads and returns the correct ones when reading from flash, or if it's interfaced by the main program after copying the program from flash to ram and it provides the addresses and values to patch. I patch the flash program with the correct data.


WIP:

- 0.103: Brad Oliver fixed several endian issues with the SE3208 core and the Crystal System driver.

- 0.91: ElSemi kludged the Crystal System reset so it no longer crashes MAME. The test menu reset routine seems buggy, it reads the reset vector from 0x02000000 but it should be read from 0x00000000. At 0x2000000 there is the bios signature "LOADED VER....", so it jumps to "LOAD" in hex (0x44414F4C). I'll add some code there that makes the game stay in a loop reading the flip register so the idle skip works.