CAESAR Logo

Catalogue of Arcade Emulation Software - the Absolute Reference

Valid XHTML 1.0! Valid CSS!

X-Arcade

X-Arcade

Large CAESAR Logo

seibuspi.c

0.81 [Ville Linde]


TODO:

- Alpha blending: Screen shot on www.system16.com show that during attract mode in Viper Phase 1 the "Viper" part of the logo (the red part) should be partially transparent. Same thing with the blu "Viper" logo when on the "push 1 or 2 players button" screen. Note that the red logo is tiles, the blue logo is sprites. Same thing with the lights on the ground at the beginning of the game. They are opaque now, you should see the background tiles through.


NOTES:

- Hardware: Seibu SPI and Seibu SYS386. The SYS386 board seems like a lower-cost version of the single-board SPI. It has a 40MHz AMD 386 and a considerably weaker sound system (dual MSM6295). The SPI system has an Intel 386 DX 25MHz / 33MHz, a Z80 8MHz (sound), YMF271F Sound chip and a Seibu Custom GFX chip.

- The Seibu Kaihatsu SPI hardware system (known as 'SPI') consists of a main board and a plug-in cartridge containing the game software. The games on SPI hardware can be swapped by changing the top cartridge and then moving jumper JP072 to the alternative position. This re-flashes some ROMs for a few minutes (accompanied by a techno music track). Afterwards, a message tells you to put the jumper back to the original position and reboot the PCB. The new game then plays. There were a few revisions of this hardware, though most are the same with only minor changes such as different IC revisions etc.

- Tile encryption (machineseibuspi.c): The tile graphics encryption uses the same algorithm in all games, with different keys for the SPI, RISE10 and RISE11 custom chips. Take 24 bits of gfx data (used to decrypt 4 pixels at 6 bpp) and perform a bit permutation on them (the permutation is the same in all games). Take the low 12 bits of the tile code and add a 24-bit number (KEY1) to it. Add the two 24-bit numbers resulting from the above steps, but with a catch: while performing the sum, some bits generate carry as usual, other bits don't, depending on a 24-bit key (KEY2). Note that the carry generated by bit 23 (if enabled) wraps around to bit 0. XOR the result with a 24-bit number (KEY3).


Bugs:

- Seibu SPI single board games: The coinage mechanism is broken. It was also the case in u7, u6 and probably erlier updates alose, I can't remerber. seibuspisingle099u9yel phys32


WIP:

- 0.100u4: Ville Linde updates to the I386 core and the SPI driver to work with the new changes.

- 0.99u3: SPI improvements [Ville Linde, Pierpaolo Prazzoli]: Added real coin inputs. The previously used coin input was service coin and hooked up eeprom in rdft2us, rfjetus and rdft22kc.

- 0.99u2: Seibu SPI improvements [Ville Linde]: Fixed sprite priority issues and added support for pen-based alpha to sprites and tilemaps. It's currently using fixed alpha table for all games, but this seems to break some games, so it probably isn't correct.

- 0.98u3: Ville Linde fixed the single board games rdft2us and rfjetus from crashing.

- 0.98u2: Ville Linda and David Haywood fixed the i386->z80 communication in the Seibu SPI driver. This fixes the flash rom update and should also fix any remaining hangs/pauses. The flash rom update should take around 5 minutes. Now all games should have proper sample data. Changed sound1 roms to user2.

- 0.96u1: Brad Oliver fixed big endian issues in Seibu SPI flash code (driversseibuspi.c - MACHINE_INIT).

- 0.94u1: Intel Flash improvements [smf].

- 0.94: Ville Linde added preliminary sprite Alpha (no tilemap alpha), sprite/tilemap DMA and proper RTC emulation.

- 0.93: Nicola Salmoria decrypted GFX in all SPI games and R. Belmont fixed SPI Big Endian. Changed Z80 CPU2 clock speed to 7159090Hz.

- 0.92u1: Nicola Salmoria improvemed the Seibu SPI decryption. Tile graphics are decrypted for all games.

- 0.88u3: Ville Linde improved again the SPI decryption.

- 0.87u1: Ville Linde improved SPI decryption for rf2_2k.

- 0.87: Ville Linde improved again the SPI background decryption.

- 0.86u4: Ville Linde improved the SPI decryption.

- 0.86: Ville Linde improved (but not yet correct) tilemap decryption and added preliminary sprite priority support.

- 21st August 2004: Ville Linde - Made some progress on Seibu SPI decryption.

- 0.84u3: Ville Linde removed all remaining sound hacks in the Seibu SPI driver, added support for external read/write handlers to the YMF271 (required for SPI flash ROM updating mode), hooked up flash ROMs via the new YMF271 support and fixed various crash bugs in rf2_us, rf2_2k and rf2_eur. Added some missing i386 opcodes to the CPU core. Added 'JP1' dipswitch.

- 0.82u3: Nathan Woods fixed i386 interrupt call to use PULSE_LINE instead of always ASSERT_LINE.

- 0.81u7: Ville Linde added the missing keys to E-Jan. Added layer enable register. Wrote a new i386 disassembler. Dasm386 wasn't always showing stuff correctly, and now the i386 core can be compiled without i86. Preliminary Dallas DS2404 (RTC/CMOS) emulation. Added 93C46 eeprom to RF2 single and RF2 2K. It's not hooked up though. Improved i386/z80 interleaving. This should help with the small pauses. Fixed some stuff in the i386 core. These don't seem to affect the SPI games, but should help with MESS

- 0.81u6: Ville Linde added sprite flipping and other improved sprite processing and corrected palette banking on tilemaps.

- 0.81u5: Ville Linde applied text layer decrypt to the regular tiles, it also improves them a lot, greatly improved tilemap emulation including scrolling, layer disables, etc., improved tilemap emulation further, including tile bank select and palette bank select, supports alternate (older?) video hardware in viperp1 with one fewer tilemap and a different VRAM layout, added mahjong keyboard controller for ejanhs, but it doesn't coin up yet, improved sprite drawing and sound starting to work in the single-board rf2_us.

- 11th April 2004: Ville Linde improved the tilemap emulation further in the Seibu SPI driver, added support for alternate video hardware in Viper Phase 1.

- 9th April 2004: Ville Linde sent in another update to the Seibu SPI driver with much better graphics emulation, though still with encrypted graphics.

- 6th April 2004: Ville Linde sent in another update to the Seibu SPI driver where Raiden Fighters now runs correctly, but still has encrypted graphics. R. Belmont added the Z80 bankswitching in the Seibu SPI driver, adding sound to some games in that driver.

- 4th April 2004: Olivier Galibert partially decrypted the text layer in the Seibu SPI system.

- 28th March 2004: Ville Linde submitted an i386 CPU core and a Seibu SPI system driver supporting Senkyu / Battle Balls, Viper Phase 1, E-Jan High School, Raiden Fighters and Raiden Fighters 2 which would be playable but the graphics are encrypted, and the sound is also not emulated.