カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
実機資料解決済み修正済み2009-01-19 02:082009-01-29 18:22
 
テスターchowell担当者 ソース8080bw.cpp
バージョン0.129発生バージョン修正バージョン0.129u3
フラグ実機・資料検証済み
セット schaser, schasercv, polaris
セット詳細
schaser - スペースチェイサー (set 1)
schasercv - スペースチェイサー (CV version - set 1)
 
概 要カラーRAMが半分しかエミュレートされていない。
詳 細(I see that this game has the GAME_IMPERFECT_COLORS flag, which might refer to the problem described here, but there is no sign of any specific source comment or existing bug related to this.)

The program address map for Space Chaser, schaser_map, shows that the color RAM area (0xC000-0xDFFF) only uses 10 of its address bits: it's an 8K region, but the use of AM_MIRROR(0x00E0) means that 3 address bits are mirrored.

Likewise, the video update functions for both Space Chaser versions, schaser and schasrcv, address the color RAM with a mask of 0x1F1F, so the 3 mirrored address bits are masked out. Thus only 1K of color RAM locations are being used.

Taito's service manual for Space Chaser can be found here:

http://www.arcadedocs.com/vidmanuals/S/SpaceChaser.pdf

This manual lists two different motherboards, RTN00003 and RTN00005. The schematics, layout diagrams, and parts lists for both motherboards all show that the color RAM is provided by two type-2114 1K x 4-bit RAMs. 11 address bits are sent to the two RAMs; the uppermost of these bits is the chip select signal. Of the 4 output bits from the color RAM, one is dropped; that aspect is consistent with the emulation.

From examining both schematics (pages 11 and 12 of the PDF), the difference appears to be bit 5 of the color RAM's address, whose input comes from 4V'/AD7 in both cases. (You have to be careful when examining the RTN00003 schematic on page 12, because the signal naming and routing appears to be obfuscated, but the correspondence turns out to be the same.) Thus the schematics show that CPU address bit 7 is used for the color RAM; this bit is being ignored in MAME.

Based on this, I would suggest changing the color RAM's AM_MIRROR to 0x0060 and the color RAM's address mask in the video update functions to 0x1F9F. Unfortunately, I don't have a working build system at the moment, so I can't test this change myself.

(Since bit 5 of the color RAM's address comes from signal 4V' during raster scanout, one might expect color artifacts that show up on 4-scanline boundaries.)
再現手順 
追加情報schasrcv -> schasercv in 0.133u1
 
添付ファイル