freddiefiasco
Professional
I'm glad I'm not the only one thinking about this. You have made more progress than I have. I don't have any advice at the moment but hopefully as more of these discussions come up, I hope to have some in the future. Just to add to your planning, card reader saving/loading would be pretty cool if data was saved to something more tangible like a USB flash drive. One flash drive per 'vehicle'.I had brought up this idea on KLOV and someone suggested I might get more interest/feedback/help here, so here goes!
Short project description:
Emulate the NAOMI 2 card reader and interface it with an actual NAOMI 2 for the purposes of saving progress in Initial D3.
Background:
I've got a Sega driving cab (OutRun2 SP) and I've got a NAOMI 2 hooked up and netbooting working. I've also got an ID3 card reader and cards, and have that wired up and working just fine. For this game, the cards work essentially to save your progress along with car upgrades. This is a great feature for home use. While I'm good to go with a currently working setup and a large quantity of compatible cards, I thought it would be a fun project to try to emulate the card reader, maybe using a Raspberry Pi, so that the NAOMI thinks a card reader is plugged up, and the data can be saved and loaded accordingly. If that works, then others can get a cheap alternative to the expensive and dying card readers. Apparently cards are getting hard to come by, too, and each has a limit of 50 uses as far as I know.
The data is transmitted between the NAOMI and Card Reader by serial communication.
In my brief review of serial communication standards, I believe that in spite of the CN8 port on NAOMI 2 saying RS-422, the labeling of the pins for the card reader make me think the standard is RS-232.
On the actual reader at CN2, we've got:
Pin 2: RXD (Serial Data Input)
Pin 3: TXD (Serial Data Output)
Pin 4: CTS (Clear to Send)
Pin 5: RTS (Request to Send)
Pin 6: SG (Signal Ground)
On the NAOMI 2 at CN8, we've got:
Pin 1: RXD
Pin 2: TXD
Pin 3: GND
Pin 4: RTS
Pin 5: CTS
Wiring from Card Reader to NAOMI 2:
RXD to TXD
TXD to RXD
CTS to RTS
RTS to CTS
SG to GND
My thinking is that while the 2 are wired up, I could tap into one side of this communication and sniff it with a serial input on the computer to read what's happening one way and then wire in to the other and see what's happening in that direction. After getting that information, I could try to unhook the reader and wire up just the computer to send the same signals back to the NAOMI2 that it expects from the reader.
The short term goal would be to trick the NAOMI into thinking the card reader has initialized. After that, it's a matter of figuring out what communication happens back and forth during the reading and writing of the card, then somehow figuring out how to store that data and give it back to the NAOMI when it expects it.
I've got almost no experience with serial communication standards. I would initially appreciate any help with regards to methods I could use for sniffing the signals and help addressing any concerns over signal voltage differences between computer and NAOMI 2. I've got a working serial port on an older laptop that I was hoping to use in the initial experiments before moving to an RPi.
I was thinking I could maybe take the RXD and RTS from either device and wire into the computer while the 2 devices are communicating to intercept the communication one way. Is there a good way to listen to the signal coming from both devices at once?
Once I'm able to analyze the signals to see what's sent from the NAOMI and what it expects to receive back, I think I could come up with some kind of program to manage the feedback.
Does this project seem realistic? Anyone have any advice to offer?
Thanks for any and all help!