いまだにちゃんと動かないソフト/ハードの解析情報

概要

Datach はバーコードリーダとサブカートリッジスロットを持った、ファミコンにつなげるカートリッジ。当時、エポック社から出たバーコードバトラーが小学生の間でブームとなって勢いに乗って出したものと思われる。

Program ROM はサブカートリッジが持つので、単体ではなにもできない。キャラクタが RAM になってしまった関係で大きいキャラを出しにくくなってしまったし、バーコードブームが終わるとリーダを使わない普通のゲームも出るようになった。

wiring information

PCB

  • name: BA-BAR
  • device: LZ93D50P, serial eeprom (0x100 byte), barcode scanner, 74HC368, subcartridge connector

memory controller

[label]
LZ93D50P
SHARP
JAPAN
9243B

[pinout]
QFP 52pin, 0.65 mm pitch
 1 i  PPU A10 <20>           |14 o  I2C SCL (external) <34>
 2 i  PPU A11 <21>           |15 o  ? <35?>
 3 i  GND <22>               |16 o  ? <36?>
 4 i  GND <23>               |17 o  VRAM A10 <37>
 5 s? GND                    |18 ?
 6 s? GND                    |19 O  CPU IRQ <38>
 7 IO I2C SDA <27>           |20 i  CPU D3 <39>
 8 o  I2C SCL (internal) <28>|21 io CPU D4 <40>
 9 ?  GND                    |22 i  CPU D5 <41>
10 o  ? <30?>                |23 i  CPU D6 <42>
11 o  ? <31?>                |24 i  CPU D7 <43>
12 o  ? <32?>                |25 o  Program ROM A16 <44>
13 o  ? <33?>                |26 o  Program ROM A14 <45>

27 o  Program ROM A15 <46>   |40 ?
28 o  Program ROM A17 <47>   |41 i  CPU A3 <8>
29 ? <48?>                   |42 i  CPU A2 <9>
30 ?                         |43 i  CPU A1 <10>
31 o  74HC368 OE# <50?>      |44 i  CPU A0 <11>
32 s? +5V <?>                |45 i  CPU ROMSEL# <12>
33 s? GND                    |46 i  CPU D0 <13>
34 s? +5V <?>                |47 i  CPU D1 <14>
35 o  Program ROM EN# <3>    |48 i  CPU D2 <15>
36 ?  <4?>                   |49 i  CPU R/W <16>
37 i  CPU PHI2 <5>           |50 i  GND <17>
38 i  CPU A13 <6>            |51 o  ? <18?>
39 i  CPU A14 <7>            |52 o  subcartridge expansion? <19?>

<> 内の値は DIP version の pin 番号に相当するもの

[凡例]
?: unknown and no connection
s: power supply
i: input
o: output, push pull
O: output, open drain
io: input and output, push pull
IO: input and output, open drain

subcartridge connector

[pinout]
2.54mm pitch 32pin card edge connector
 1 o external I2C SCL |17 s  +5V
 2 o Program ROM A16  |18 o  subcartridge expansion?
 3 o Program ROM A15  |19 o  Program ROM A17
 4 o CPU A12          |20 o  Program ROM A14
 5 o CPU A7           |21 o  CPU A13
 6 o CPU A6           |22 o  CPU A8
 7 o CPU A5           |23 o  CPU A9
 8 o CPU A4           |24 o  CPU A11
 9 o CPU A3           |25 o  Program EN#
10 o CPU A2           |26 o  CPU ROM A10
11 o CPU A1           |27 IO I2C SDA
12 o CPU A0           |28 i  CPU D7
13 i CPU D0           |29 i  CPU D6
14 i CPU D1           |30 i  CPU D5
15 i CPU D2           |31 i  CPU D4
16 s GND              |32 i  CPU D3
  • program ROM 向けの配線と subcartrige 内部の EEPROM を端子を持つ。
  • data の方向はメイン基板基準.

74HC368

OE1# = GND
1A = scanner data

OE2# = LZ93D50P 31pin
5A = 1Y#
他のゲートは定数入力、出力未使用のため省略。
I2C port の direction が read 時に databus に scanner の data を渡す。

main cartridge connector

[logical assignments]
CPU IRQ# = CPU IRQ# (from LZ93D50)
VRAM A10 = VRAM 10 (from LZ93D50)
VRAM CS = PPU A13#
Sound in = Sound out
CPU D3 = 5Y# (from 74HC368)

character RAM

未調査, おそらく BA-JUMP2 と同じ

serial EEPROM (internal)

X24C02M (Xicor)
配線は DRAGON BALL Z-B と同じ

software specification

memory map

[CPU - read]
$6000       I2C and external device input
$6001-$7fff 上記 の mirror
$8000-$bfff Program ROM bank #0 (switchable)
$c000-$ffff Program ROM bank #1 (fixed)

[CPU - write]
$8000 Character ROM bank #0 register (external I2C SCL)
$8001 Character ROM bank #1 register (external I2C SCL)
$8002 Character ROM bank #2 register (external I2C SCL)
$8003 Character ROM bank #3 register (external I2C SCL)
$8008 Program ROM bank #0 register
$8009 Nametable register
$800a IRQ control register
$800b IRQ countner register #0
$800c IRQ countner register #1
$800d I2C control port
$800e-$800f おそらく未定義で未使用
$8010-$ffff $8000-$800f の mirror

[PPU - read/write]
0x0000-0x1fff system VRAM
0x2000-0x2fff FCG-1 と同じ

register

[I2C and external device input]
address: $6000 (read)
bit assignments
----------------
4   I2C SDA input
3   barcode scanner data

[Character ROM bank #0-#3 register]
address: $8000-$8003 (write)
bit assignments
----------------
3   external I2C SCL
2?  unknown (=subcartridge expansion)
BA-JUMP2 と同じ利用方法。 bit2?を使用しているソフトは存在しない。

[Program ROM bank #0 register]
address: $8008 (write)
data bit assignments は FCG-1, FCG-2 と同じ

[Nametable register]
address: $8009 (write)
data bit assignments は FCG-1, FCG-2 と同じ

[IRQ xxx register]
address: $800a, $800b, $800c (write)
data bit assignments は FCG-1, FCG-2 と同じ

[I2C control/output port]
address: $800d (write)
bit assignments
----------------
7   SDA direction  0:write(LZ93D50P->EEPROM), 1:read(EEPROM->LZ93D50P)
6   I2C SDA output
5   internal I2C SCL output
bit7 の反転値が 74HC368 OE2# に接続されている可能性がある。

考察

本体内部に ROM はない.
barcode scanner はフォトダイオードの出力がそのまま来るので、割り込みなどの仕組みはない。このためこの出力をCPUで常時見張る必要があるのかスキャン時に曲を止めたり、ハードウェアとして貧弱なので読み出しエラーが多いものと思われる。

オークションでおそらく開発途中段階でのウルトラマン倶楽部のサンプル品が出品されていた. 基板はおそらくドラゴンボールZの製品版と同じで 27C301 向けの配線をしたものだが、EPROM は 27C020 (27C2001 だったかも) なので配線を無理矢理変更してあった.

EEPROM のアクセス方法

datach は本体に配置された X24C02 と、subcartridge 内部の I2C EEPROM を制御できるようになっている。subcartrige 内部に EEPROM を配置したゲームは「バトルラッシュ」だけで EEPROM は X24C01.

X24C02 (internal)

DRAGON BALL Z-B と同じ。

X24C01 (external)

SDA は internal EEPROM と共有。 X24C01 は I2C address がないのも同じ。
SCL のレジスタは BA-JUMP2 同様、 character register を使用しており、 4 つレジスタのうちどれを使うかは PPU から出力される address A11:10 に依存する。このため、出力を安定させるには同じ値を4つのレジスタに書き込む必要がある。

メンバーのみ編集できます