So I finally had some time to fiddle around with everything again. Any idea what is going on with "Track 3", "Track 2" and "Track 1" line up perfectly as inversed, but that "Track 3" is a bit of a mystery to me. Maybe I am just not seeing it?
I want to take a shot at updating Winteriscoming's ID3EMU for DOC and MetalliC's reader protocol and command list helped me to better understand how the Naomi and Reader talk back and forth (pulling it forward, but some of the commands look different in DOC, others are same), but I want to have a better grasp before attempting.
==================================================================================================
Here are the protocols that we see most of:
02 Start
03 Stop
05 Req
06 Recv ok
09 - ?
10 Init ('0'/'1')
20 get status?
33 read card data ('016') / load card ('216') (A0 30 34) (00 00 00) (A0 30 30)
40 cancel last command?
53 write data
78 print parameters ??
7A printer init ??
7C print text/pix
80 eject card
92 ?
A0 cleaning
B0 get card from dispenser
C1 ??? seems not used,
D0 open/close front door (shutter) ('0'/'1')
A few commands remain yet a mystery to me, not that it probably matters much other than for my own wanting to understand it...
Reader protocol:
>>> SEND PKT: [START 02][LEN][CMD][0][0][0]{optional data}[STOP 03][CRC]
<<< RECV ACK: [OK 06]
>>> SEND REQ: [RQ 05]
<<< RECV PKT: [START 02][LEN][CMD][RESULT1][RESULT2][RESULT3]{optional data}[STOP 03][CRC]
<<< RECV ERR: [15]
RESULT1 (SENSORS): binary value SSTCCCCC
S - Shutter state:
0 - "ERROR"
1 - "CLOSED"
2 - "OPEN"
3 - "NOW" (both open and close sensors)
T - Stocker (card dispenser) state:
0 - "NO" (empty)
1 - "OK" (full)
C - Card sensors:
0 - "NO CARD"
1 - "CARD EXIST (ENTER)" (card inserted in front of shutter)
18 - "CARD EXIST" (card loaded inside of reader)
other - "CARD EXIST (OTHER)"
RESULT2: char 01235QRSTUV`
Error ENUM "OK", "READ ERR", "WRITE ERR", "STOP ERR", "PRINT ERR", "READERR T1", "READERR T2", "READERR T3",
"READERR T12", "READERR T13", "READERR T23", "SHUT ERR"
RESULT3 (CMD_STATE): char 02345
State ENUM "OK", "DISABLE", "BUSY", "CARD WAIT", "NO CARD IN BOX"
===========================================================================================================================
Example - Insert Game Card
Naomi1 - 02 4B 33 78 30 30 47 6C 20 4A 61 6E 65 00 00 00 00 00 00 00 00 00 00 00 00 00 47 6C 61 73 73 20 54 69 67 65 72 00 00 00 00 00 00 00 00 00 4D 6F 75 6E 74 61 69 6E 20 48 69 67 68 00 00 00 00 00 00 00 00 4E 94 82 04 00 67 77 00 03 66
02 - Start
4B - Len?
33 - Read Card Data
78 - Parameters (78 = 120) <- length of data string
30 - ?
30 - Are these linked to the 78? Like 120 length, 30 (expect three strings) ?
Track One data (inverse) - 00 77 67 00 04 82 94 4E 00 00 00 00 00 00 00 00 68 67 69 48 20 6E 69 61 74 6E 75 6F 4D 00 00 00 00 00 00 00 00 00 72 65 67 69 54 20 73 73 61 6C 47 00 00 00 00 00 00 00 00 00 00 00 00 00 65 6E 61 4A 20 6C 47
03 - Stop
66 - ?
Reader - 02 09 33 00 00 00 30 31 31 03 09
02 - Start
09 - ?
33 - Read Card Data
00 00 00 - ?
30 - ?
31 - Ready for the second track (?)
31
03 - Stop
09 - ?
Naomi1 - 06 Ready to receive?
Reader - 05 Ready to send?
Naomi1 - 02 06 33 78 30 33 03 4D
02 - Start
06 - Recieve
33 - Read Card Data
78 - Parameters (120)
30 - ?
33 - Read Card Data
03 - Stop
4D - ?
Reader - 05 Ready to send?
Naomi1 - 02 06 33 67 30 33 03 52
02 - Start
06 - Receive
33 - Read Card Data
67 -
30 - ?
33 - Read Card Data
03 - Stop
52 - ?
Reader - 05 Ready to send?
Naomi1 - 02 4B 33 78 30 30 24 00 00 00 31 00 00 00 23 00 00 00 00 00 00 00 DC 09 00 00 04 01 00 03 02 00 2E 26 17 0E 0D 31 3F 03 08 04 05 0C 0B 08 03 0C 00 00 1C 29 1F 01 44 00 42 03 00 01 02 0E 05 00 00 00 00 00 00 00 04 00 67 77 00 03 CE
02 - Start
4B - Len?
33 - Read Card Data
78 - Parameters (120)
30 - ?
30 - ?
Track Two data (inverse) - 77 67 00 04 00 00 00 00 00 00 00 05 0E 02 01 00 03 42 00 44 01 1F 29 1C 00 00 0C 03 08 08 0C 05 04 08 03 3F 31 0D 0E 17 26 2E 00 02 03 00 01 04 00 00 09 DC 00 00 00 00 00 00 00 23 00 00 00 31 00 00 00 24 00
03 - Stop
CE - ?
Reader - 02 09 33 00 00 00 30 31 32 03 OA
02 - Start
09 - ?
33 - Read Card Data
00 , 00 , 00
30 - ?
31 - ?
32 - ? <- is this saying that there have been two strings communicated? (30 , 31, 32)
03 - Stop
OA - ?
Naomi1 - 06 Receive
Reader - 05 Send
Naomi1 - 02 06 33 78 30 33 03 4D
02 - Start
06 - Receive
33 - Read Card Data
78 - expecting 120 length?
30 - one string?
33 - Read Card Data
03 - Stop
4D ?
Reader - 05
Naomi1 - 02 06 33 67 30 33 03 52
02 - Start
06 - Receive
33 - Read Card Data
67 - ?
30 - one string?
33 - Read Card Data
03 - Stop
52 - ?
Reader - 05
Naomi1 - 02 4B 33 78 30 30 53 45 47 41 42 45 46 30 A8 00 00 00 00 00 00 00 00 00 30 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 67 77 00 03 FE
02 - Start
4B - Len?
33 - Read Card Data
78 - expecting 120 length
30 - ?
30 - ?
Track Three - 00 77 67 00 04 00 00.... <- this doesn't match track three from the horse card, it resembles bits and pieces of track two. I would have assumed this would be the third track read as the first two were above? Does this match up with what happens in the other games?
ID3, WMMT, Club Kart, Mario Kart, etc?
Sorry this has gotten so long... Is anyone able to fill in the blanks for me?
I appreciate your time...