What's new
If you're that far, you should be all set to play :) Just insert a coin to buy a card if you're starting a new save file.
 
Yep, works great, played quite a bit of ID3 yesterday, not a problem with the emulator at all. I was able to play with the card data and it worked great.

I am going to get spoiled by this since I will not have card access when I hookup my Lindbergh for ID4 and ID5. I would imagine making a card emulator for Lindbergh would be possible as well. It would also be easier for hookup atleast since, all you would need is a serial to serial cable.

Also, just wondering, would doing this also be possible for Wangan Midnight Maximum Tune (1 and 2) on Chihiro? I believe that uses a card system too.
 
Check out the first post. I put together an emulator for WMMT 1/2 as well.

ID4/5 could probably be done if we can get logs and figure out the protocol and any checksums that might be used. I'm in touch with someone who has a reader for them.
 
Check out the first post. I put together an emulator for WMMT 1/2 as well.

ID4/5 could probably be done if we can get logs and figure out the protocol and any checksums that might be used. I'm in touch with someone who has a reader for them.
Sorry about that, I am very bad with abbreviations, Someone I did not realize that WMMT was Wangan Midnight Maximum Tune, Now I just need to get a Chihiro to try those games out, probably would need a 6 way shifter unless I want to play Automatic.

If you get anywhere with the Lindbergh Card emulator let me know because I have a Lindbergh and the proper cable that would be needed for testing.
 
ID4/5 could probably be done if we can get logs and figure out the protocol and any checksums that might be used. I'm in touch with someone who has a reader for them.
I'm afraid its not such simple.
ID4 and later games uses significantly different card device, not CRP-1231-xxx model, which uses RFID cards / reader instead of magnetic, and have quite complicated authentication/communication protocol encapsulated into base comm. protocol, similar to ID3.
 
First of all I'd like to celebrate Winteriscoming for his initiativ taking this long awaited dream to the next level, and also I'd like to congratulate the helpful members in this thread on a job well done. Thank you very much for making it happen.

I just recently learned about this progress. Sadly I no longer have a driving rig to test things in, I recycled mine last year. Though there will be a new one built soon. Having Initial D3 as one of my fav driving / racing games I am thrilled to be able to use the card-emulator.

But because I consider myself an average PC-user I am not very familiar with the necessary applications required to run it. I understand from what Gamemaster14 wrote earlier, Python 3.5.1 is needed along with a certain plugin for serial comms, which in turn also requires some JavaCom.. (?). And, if a serial port is not present in my PC I will be needing a USB to RS-232 converter as well. So far I think I'm with you.

What I am inquiring is some easy tutorial, in a few steps, on how to set up the soft bits of the PC, or Pi device, for the program to run (I am aware of the pinouts description earlier in this thread). Perhaps a minimal collection of links to the files that need downloading, with a brief desccription on how to install? I know this may seem silly and too simple for you, but I think it will releave you from plenty of future questions by less than average users.
 
First of all I'd like to celebrate Winteriscoming for his initiativ taking this long awaited dream to the next level, and also I'd like to congratulate the helpful members in this thread on a job well done. Thank you very much for making it happen.

I just recently learned about this progress. Sadly I no longer have a driving rig to test things in, I recycled mine last year. Though there will be a new one built soon. Having Initial D3 as one of my fav driving / racing games I am thrilled to be able to use the card-emulator.

But because I consider myself an average PC-user I am not very familiar with the necessary applications required to run it. I understand from what Gamemaster14 wrote earlier, Python 3.5.1 is needed along with a certain plugin for serial comms, which in turn also requires some JavaCom.. (?). And, if a serial port is not present in my PC I will be needing a USB to RS-232 converter as well. So far I think I'm with you.

What I am inquiring is some easy tutorial, in a few steps, on how to set up the soft bits of the PC, or Pi device, for the program to run (I am aware of the pinouts description earlier in this thread). Perhaps a minimal collection of links to the files that need downloading, with a brief desccription on how to install? I know this may seem silly and too simple for you, but I think it will releave you from plenty of future questions by less than average users.
Specific directions might end up depending on the platform you run it on. I've not messed with it on a Raspberry Pi, so not sure on details for getting everything installed.

At a high level, regardless of platform, you need:
1. USB RS-232 adapter. I recommend TU-S9 as that's what I've used and it works for me.
http://www.amazon.com/TRENDnet-TU-S9-USB-Serial-Converter/dp/B0007T27H8
2. Drivers for the USB adapter. Not sure how this works in Linux. It was plug and play in Windows 10, and can't remember if I had to install drivers on Win 7.
3. Python 3 (probably any version of 3 is fine). https://www.python.org/download/releases/3.0/
4. Pyserial module for Python.
https://pythonhosted.org/pyserial/

That should be it from the software setup side of things. Nothing else but the script and wiring adapter should be required.
 
it's very easy to set up on linux. The newest release of ubuntu uses python3 by default. You can use pip to install pyserial, and you're pretty much good to go. USB to serial adapters will be plug and play, no drivers needed. See my posts over the last few pages. With any linux setup the native package manager (apt, yum, etc) should be able to install python 3 for you if you don't want to use ubuntu. It would be quite easy to get going on a pi.

I still have parts to make one more naomi2 to db9 serial cable if someone needs it.
 
Thank you very much, guys. It's great help. I will buy myself one of those Pi things. I think that the optimal way to implement the card-emulator will be on a Pi as it is a small device that can be fitted inside or under the controlpanel, as well as on top beside the gearshifter. It could probably be powered by a 5V, or 12V, taken from the JVS IO-PCB spare power-plugs.

I understand that this is all in a very early stage, but think about it; having the save/load opportunity for ID3 will revive the whole Initial D game community. Even though I was very impressed by ID5 on the Lind, the ID3 still is and always will be my fav because it's playable on a CRT monitor. And we just love CRTs, don't we.

Skate32... I will probably be asking you later about the Pi and linux stuff. It's very exotic for me at this time.

I think I'll start by learning some about the Pi: www.youtube.com/watch?v=vw2nTpLFof8
 
Last edited:
I could look into making a PI setup. The only thing you might need is an LCD to pick the save file, similar to how the naomi pi netboot has to pick the game. otherwise, it would have to auto-boot a pre-selected save file. Right now I just use the same laptop I use to netboot my NAOMI to run the emulator, so I haven't had to look into a standalone solution like a pi. I know I could get linux and the emulator set up but I don't know anything about the LCD or stuff like that. I'm sure I could learn it though.

You can power a raspberry pi from the 5v header on the NAOMI filter board, I've seen cables made for this purpose.
 
Yes, a Pi would need its own display.

I too netboot, from my work-PC so using one and the same PC for the card-emulator would do just fine, after closer thought. Just that my PC is a few meters away, I'd need to make a longer serial cable, and run Windows 7 which is on another partition. Belive it or not I'm still using Win XP sp2 for work. I only recently installed a Win7 to try out some newer PC games.
 
hello [whoops, blew out the 10k character limit.]

i've been following the progress in here, and working on my own code and modifications at the same time. i just recently got an IDASv3 USA twincab setup, and have only one card mech...dead. so, being able to dig through this thread and the linked code has been very helpful.

i see some things have been set aside for now, so i figured i'd drop in some details that i've worked out.

the card mech receives a font payload on boot, sent via command 0x7A [CRWRegisterFont, per the Sanwa PDF]. it populates what appears to be 20 slots with monochrome bitmap/dot matrix font data.

per google translate, "Registering a 24 × 24 dots of external character font. baData is an array of 72 bytes, call to set the font data in it."

this code snippet shows the raw data sent that contains the font payloads

Code:
02 - preamble
4F - length [79 bytes total, 72 bytes of font data, plus 3 bytes of padding, plus 1 byte for cmd, 1 byte for font slot, 1 byte for checksum, and 1 byte for stop byte]
7A - CRWRegisterFont
00 00 00 - padding
?? - index stating which slot?  the font is enrolled in.


02 4F 7A 00 00 00 01 00000000 00007FFF FEFFFFFF FFFFFFFF FFFF9C81 39998139 999F1183 9F838381 838381C7 839FC799 9FC7999F C79C81C7 9C81C7FF FFFFFFFF FFFFFFFF 7FFFFE00 00000000 00000000 03 25
02 4F 7A 00 00 00 02 7FFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FF84E4E7 CCE4E6CC 64E6CC64 E4CC24E4 CCA444CC 864CCCC6 0CCCC60C CCE71C84 E71CFFFF FFFFFFFF FFFFFFFF FFFFFFFF FF7FFFFF 03 EE
02 4F 7A 00 00 00 03 FFFFFEFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FF1CE107 0CF3034C F33144F3 39E4F339 E4F33904 F33904F3 39E4F331 E43303E4 2107FFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE 03 FC
02 4F 7A 00 00 00 04 00000000 000007FF E007FFE0 01C38001 C38001C3 8001C380 01C38001 C38001C3 8001C380 01C38001 C38001C3 8001C380 01C38001 C38001C3 8001C380 01C38007 FFE007FF E0000000 03 70
02 4F 7A 00 00 00 05 00000000 00003FFF FC3FFFFC 0E1C700E 1C700E1C 700E1C70 0E1C700E 1C700E1C 700E1C70 0E1C700E 1C700E1C 700E1C70 0E1C700E 1C700E1C 700E1C70 0E1C703F FFFC3FFF FC000000 03 51
02 4F 7A 00 00 00 06 00000000 00007FFC 7F7FFC7F 1C601C1C 701C1C70 181C7038 1C30381C 38301C38 301C1830 1C18301C 18601C1C 601C1CE0 1C0CE01C 0EC01C0E C01C07C0 1C07807F 07807F03 80000000 03 44
02 4F 7A 00 00 00 07 00000000 00003F81 FC3F81FC 0E00700E 00700700 E00700E0 0300C003 81C00381 C0018180 01C38001 C38000C3 0000E700 00E70000 6600007E 00007E00 003C0000 3C00003C 00000000 03 6B
02 4F 7A 00 00 00 08 00000000 0000FE3F FEFE3FFE 38063838 0E38180E 381C0E38 1C0C380C 1C380C1C 380C1838 0C183806 18380638 38073838 07303803 70380370 3803E038 01E03801 E0FE01C0 FE000000 03 10
02 4F 7A 00 00 00 09 00000000 0000FE7F FFFE7FFF 381B9C38 1B9C183B 9C183B9C 1C339C1C 339C0C33 9C0C339C 0C739C0C 739C0E63 9C0E639C 06E39C06 E39C07C3 9C07C39C 03C39C03 8FFF018F FF000000 03 61
02 4F 7A 00 00 00 0A 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC DD761CC9 75FCD5AD FCDDAD1C DDDDDCDD DDDCDDDD DCDDDE1C FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 1C
02 4F 7A 00 00 00 0B 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC DD863CDD 7F7CDD7F 7CDD9F7C DDEF7CDD F77CDDF7 7CE30E3C FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 07
02 4F 7A 00 00 00 0C 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC F7761CEB 6DFCEB5D FCDD1D1C DD6DDCC1 6DDCDD75 DCDD761C FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 68
02 4F 7A 00 00 00 0D 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC F775DCEB 6CDCEB5D 5CDD1D9C DD6DDCC1 6DDCDD75 DCDD75DC FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 68
02 4F 7A 00 00 00 0E 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC E30DDCF7 75DCF775 DCF7741C F70DDCF7 6DDCF775 DCE375DC FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 1D
02 4F 7A 00 00 00 0F 00000000 00007FFF F8FFFFFC F775DCEB 6CDCEB5D 5CDD1D9C DD6DDCC1 6DDCDD75 DCDD75DC FFFFFCFF FFFCC4C2 ACDD5AAC ED5AACF5 5AACC542 4CFFFFFC 7FFFF800 00000000 00000000 03 C4
02 4F 7A 00 00 00 10 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC DDDC3CDD ADDCDDAD DCC1743C DD75FCDD 05FCDD75 FCDD75FC FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 1E
02 4F 7A 00 00 00 11 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC E175DCDF 749CDF75 5CE705DC FB75DCFD 75DCFD75 DCC375DC FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 54
02 4F 7A 00 00 00 12 00000000 00007FFF F8FFFFFC FFFFFCFF FFFCFFFF FCFFFFFC C185DCF7 7DBCF77D 7CF79C7C F7EDBCF7 F5BCF7F5 DCF70DDC FFFFFCFF FFFCFFFF FCFFFFFC 7FFFF800 00000000 00000000 03 77
02 4F 7A 00 00 00 13 04000004 00000E00 000E0000 FFE0007F C0003F80 001F0000 3F80003B 800060C0 00404000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 03 81
02 4F 7A 00 00 00 14 04000004 00000E00 000E0000 FFE0007F C0003F80 001F0000 3F80003B 800060C0 00404000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 03 86
here's a link showing the raw font data converted from hex to binary

when racer level increases, the game will send commands to update one of the font slots, in order to write new data within the same character. for example, this one updates slot slot 13, in order to write the racer star in a different position.
Code:
4th racer level star? [consumes slot 13, replacing one of the previously uploaded star fonts]
02 4F 7A 00 00 00 13 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004000 00400000 E00000E0 000FFE00 07FC0003 F80001F0 0003F800 03B80006 0C000404 03 6F
echo "00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004000 00400000 E00000E0 000FFE00 07FC0003 F80001F0 0003F800 03B80006 0C000404" | tr -d ' ' | xxd -r -p | xxd -b | awk '{print $2 $3 $4 $5 $6 $7}'
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000001000000000000000000000001000000
000000000000000011100000000000000000000011100000
000000000000111111111110000000000000011111111100
000000000000001111111000000000000000000111110000
000000000000001111111000000000000000001110111000
000000000000011000001100000000000000010000000100
4th racer level star? [consumes slot 13, replacing one of the previously uploaded star fonts]
here's a link to a document showing the fonts, with the 1s marked as white, to better see the font

finally, i figured out the name in the new card print payload data. winteriscoming had be able to have some of the card face viewable as plain ASCII:

Oh, here's something interesting:
This appears to be the command to print the data:
02 67 7C 00 00 00 30 30 00 20 20 20 20 20 20 20 20 1B 73 32 31 82 60 82 61 82 62 20 20 20 20 14 20 20 20 1B 67 01 37 32 31 0D 20 20 20 20 20 20 20 20 53 55 5A 55 4B 49 0D 20 20 20 20 20 20 20 20 43 41 50 50 55 43 43 49 4E 4F 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0D 03 FB 05

Here's the ASCII representation:
.g|...00. .s21‚`‚a‚b . .g.721. SUZUKI. CAPPUCCINO. ..û.

So it was this card:
Driver: ABC
Key721
Car: SUZUKI
CAPPUCCINO

I can see where the Key and the Car info are saved, but not sure about driver name.
however, the driver name is a bit different, due to the original locale. we [english-centric] have name entry in what appears to be our english alphabet, with a reduced set of ASCII. however, that's not how its stored within the data structure. being a japanese game in origin, the 5 characters [important distinction] is stored in...double-width shift-jis. here's an example shift-jis codepage snippet

bytes 22-31 [10 bytes] contain the double width characters

for example, in winteriscoming's string, the bytes are "82 60 82 61 82 62 20 20 20 20".


Code:
8260 8261 8262 2020 2020
   A    B    C   SP   SP

the course completion symbols...i haven't fully figured out yet. as i get more plays on example data, i should have enough to be able to note the data that calls for specific pushed font payloads to be written using the thermal printer.

Code:
akagi
02 28 7C 00 00 00 30 30 00 0D 0D 0D 0D 20 20 20 20 20 20 20 20 20 20 20 20 1B 67 0C 20 20 20 20 20 20 20 20 20 20 20 20 03 27

akina
02 28 7C 00 00 00 30 30 00 0D 0D 0D 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1B 67 0D 20 20 20 20 20 20 20 20 20 20 03 26
what i have thought of is that leaving the magnetic blob alone, one can store all of the print data alongside the blob [different in-file structure, or in another column in a database]. this lets the user be able to see their car details and progress [and maybe permit someone to on-demand render a card face that looks "identical" to one on a physical card]. the game pushes it to the reader, might as well store and use it.

sorry for the brain dump, hope it's useful.
 
It would be cool if someone could come up with an interface that stores and interprets the printed data, but that's going to have to be someone else's project. As awesome as it would be, it's not something I'm personally motivated to do.
 
Would it be possible to get an emulator work with Club Kart European Session? Also, any clue if Club Kart uses the same reader as Initial D or are they completely different?
 
almost complete rewrite will be required.
in term of hardware - CK's reader quite similar to ID, there no printer, but its same Sanwa 1231 series device.
on software level - protocol completely different.

PS: why not use CK 2003 version instead ?
 
Would it be possible to get an emulator work with Club Kart European Session? Also, any clue if Club Kart uses the same reader as Initial D or are they completely different?
my shoddy googling says that club kart appears to use a sanwa CR-1231R. it's still a serial comm magnetic card mech, so, the protocol can be deciphered. however, i don't have club kart, or a CR-1231R [makes me wonder how different it is from the CRP-1231BR in initial d. my guess, the club kart reader doesn't have a thermal printer for the card face.]
 
almost complete rewrite will be required.
in term of hardware - CK's reader quite similar to ID, there no printer, but its same Sanwa 1231 series device.
on software level - protocol completely different.

PS: why not use CK 2003 version instead ?
I found andy geezer's video and apparently Club Kart "2003" was just some sort of bug fix that was implemented in the Cycraft version, I would imagine if someone made an emulator for the normal CKES game it would work in all versions since I would highly doubt that they completely changed the Protocol between them.

I have a Naomi 2 cart simply marked Club Kart European Session, I am guessing its the original 2001 version.
 
Back
Top