2009年2月20日金曜日

カードリーダー解析完了

解析にはオシャレ魔女ラブandベリーを使用しました。
自作DSソフトからデータを読み込む手順は以下の通りです。

1.ROMの特定アドレスを3ワード分読み出す。 
※オシャレ魔女ラブandベリーでは、 以下のアドレスを読み込んでいます。
 カートリッジの識別はここで行います。

 左側が読み出しアドレスで、右側が応答値
 0x08000059 → 0x78F9
 0x0800FFFF → 0xFDFF
 0x08000056 → 0x78F6

2. 手順1を2回繰り返す

3.SRAMの0x0A000000を読み込む。 
読み出した値がカードを読み込んだときの値(初期値は0x83)
バーコードの白黒が変わるたびに、下位1bit目が変化します。
例:0x11,0x13,0x11,0x13 以下繰り返し
(一定以上の速度で読み取らせないと、反応しないようです)
ソフトウェア側で一定時間ごとに読み込ませることにより、バーコードの1/0を判別します。
オシャレ魔女ラブandベリーで使用されているバーコードは、Code39規格の様です。

4. 手順1を行う

5.16msのWait(VSyncに同期?)

6.以下1.から繰り返し

※PHI端子より、16.78MHzのクロックの送出が必要。

※バーコードリーダーの有効、無効を設定出来ます
 無効の場合、バーコードを読み取ることが出来ないので注意してください。
 (有効になっている場合、バーコード読み取り部から赤い光が出ます)
 有効にするには
 SRAMの0x0A000000に0x81を書き込みます

 無効にするには
 SRAMの0x0A000000に0x00を書き込みます
※読み取り時のタイミングは下記画像を参照してください。

2 件のコメント:

  1. とりあえず検証用ソフトを書きましたが、SRAM、ROMのアクセス時のWAITが分からないので不完全です。(PHIからあたりを付けていますが)
    ROM、SRAMの信号波形をロジアナで録ってもらえますか?


    > 1.ROMの適当なアドレスを合計3バイト分読み出す。
    は合計3ワードの書き間違いかな??

    返信削除
  2. 修正しときました。
    画像がなぜか拡大されないのが困ったもんだ。

    返信削除