What's new
Here's a card emulator for Mario Kart Arcade GP 2. I didn't test it with 1. It's very similar to the one for WMMT, but needed a couple changes. I verified that cleaning works and I've successfully started a new card, won some races and reloaded it a couple times. It seems to work ok.

It's nice turning off that annoying announcer! I don't see an option for that in the game menu, so I guess having a card is the only way to be able to turn it off. :P

Wiring is the same as for WMMT using the 8-pin header on the Triforce named J3.

J3 on Chihiro to Female 9-pin D-sub that connects to USB Serial Adapter (TU-S9):
Pin 3 [or 8] (GND) - Pin 5 (GND)
Pin 4 (TXD) - Pin 2 (RXD)
Pin 5 (RXD) - Pin 3 (TXD)
I will test that.I've read yours posts, I installed Python 3.5.2 (32 bits, must I download 64 bits ?) and pyserial, under windows 10 (64).
I will check for an USB/serial or if I have an older PC still working with buillt in serial port.
:)
I think it would probably work fine on 32-bit or 64-bit versions of Python, and a native serial port would probably be fine if you had on on an older pc.
 
On the new PC (Win10-64, no COM), script launch OK. But useless. (Python 3.5.2, pyserial 3.2.1)
On the very old PC with COM port (WinXP-32). (Python 3.4.4, pyserial 2.7), I'm testing right now.
 
Last edited:
I was under the impression that Python 3 wasn't intended for XP, but not 100% on that. The USB adapter should be pretty cheap, so your newer system where it runs may be the way to go, and you should be able to migrate it to something else like RPI in the future if you wanted.
 
Python 3 isn't anymore compatible with Windows XP from 3.5, so last version 3.4.4 . Pyserial isn't XP compatible from version 3.
So tested working with Mario Kart GP 2 Triforce type 3 on Windows XP with Python 3.4.4 and pyserial 2.7 . I've tested with Python 2.7.12 + pyserial 2.7, it works, too. Python 3.5.2 and pyserial 3.2.1 works for newer PC.
I've tested netbooting with transfergame and your memory card emulator from the same PC and it works well. I've just tested quickly netbooting with python script and your emulator on the same PC, and seems to work, too.

Very simple how to do :
Windows XP 32 bits: install python-3.4.4.exe and pyserial-2.7.win32_py3k.exe or python-2.7.12.exe and pyserial-2.7.win32.exe .
Windows 10 64 bits: install python-3.5.2.exe and after open a CMD in Admin mode. Use command line "pip install pyserial".
uncompress MKGPCARDEMU.zip where you want
create a shortcut to MKGPCARDEMU.py an edit it, add " -cp COM1 -f MKAGP2.HEX"
(without quotes, you can modify MKGP to the name you want. You have to check COM port number, too. COM1 if hardware, COM6 or another is USB)

Switch on your Triforce, and launch netboot and your card emulator shortcut (during netboot loading, it's OK).
First time, you have to choose you don't have a card, and after to create a new.

Download Python: https://www.python.org/downloads/
At top you have last version, and under that (looking for a specific release) you'll find the last 3.4.x .
For pyserial : https://pypi.python.org/pypi/pyserial/2.7

Bonus pour le netboot :
pycrypto: http://www.voidspace.org.uk/python/pycrypto-2.6.1/ , https://github.com/axper/python3-pycrypto-windows-installer , https://github.com/sfbahr/PyCrypto-Wheels
 
Last edited:
I guess the problems exists because you use simple hardcoded replies instead of real emulation. (also the reason why WMMT and MK needs different that way made scripts - results is different on different contexts)
Right. I may go back and try to put together a better overall emulator, but for now a dedicated script per game with hard-coded replies seems to be ok.


in meanwhile I've finished RE/emulation of Saxa HW210 RFID card reader, mainly for NAOMI Dragon Treasure 2/3 and WCCF games. but it also was used in number of Lindbergh games (Virtua Tennis 3, Ghost Squad, etc). let me know if you interested to know details.
Sure, if you don't mind sharing. Maybe there should be an RFID reader thread dedicated to the info?
 
I've got F-Zero saving and loading card data now. This game is a little different from the others in that it seems to require you to eject your card at the end of every race which is kind of dumb. There is no inserting and leaving it in for an extended session. I haven't played enough to tell what you're actually saving, but it doesn't seem to be much as every time I start with a card inserted I have to choose a car and such. I can't tell yet if it's even tracking which races I've completed, like Mario Kart does.
 
Ok, here's what I'm observing with card use in F-ZERO AX:
1. Each card comes with what I think is a randomized ship and driver that becomes selectable when you're choosing a racer.
2. With the custom ship/driver you (not sure if it's an option on default ships/drivers, but maybe) can select between a few different colors and you can choose whether to give preference to max acceleration or max speed adjusting a bar. All of these are saved on the card and when you reload the card, your ship is selected by default in the racer selection screen and you last settings are retained, though they can be changed each time you select your ship.
3. I saves a racer license level as you do well, so it is tracking stats with regards to which races you've won and how well you did, but not sure to what extent. I'm not seeing a way to scroll through pages of data for your racer when you load up the card, similar to how WMMT and ID3 do.

Reading info online I'm seeing that there's some kind of enhanced functionality possible with the combination of a license card AND a Gamecube memory card, but it appears mostly to be a benefit to the GC game, not necessarily the arcade game, though maybe racers are more customizable in the GC version and transferable? I'm not sure.
 
Edit: Didn't mean to post that in this thread.

Something relevant to this thread is that the card reader for F-ZERO AX and Mario Kart are different, but both use the same header on the Triforce and the same pins for RX, TX and GND. F-ZERO's reader requires CTS/RTS, though. I imagine an adapter made up for F-ZERO would work fine for MK. I also bet, but haven't tested it, that F-ZERO would be just fine with CTS shorted to RTS for a loopback there without having to wire it to your serial adapter.
 
Last edited:
Reading info online I'm seeing that there's some kind of enhanced functionality possible with the combination of a license card AND a Gamecube memory card, but it appears mostly to be a benefit to the GC game, not necessarily the arcade game, though maybe racers are more customizable in the GC version and transferable? I'm not sure.
There are some hidden AX tracks that get loaded when you insert the memory card in the GameCube.
 
I think I've got the F-ZERO AX card emulator working well now. I'll post it when I get a chance (I'm not on that computer right now). When I can, I want to test it in ID3 because I think it will work there and be a little better than the existing ID3 reader emulator and may work in ID1 and 2 without any fuss, plus cleaning works.

I don't like the way F-ZERO handles the cards. You have to eject after every race, so each race counts against your total 50 uses from a single card. At least on Initial D and WMMT they count an entire play session as 1 use. You'd burn through an F-ZERO card pretty quick in real life, compared to the others.

Edit: The "ejecting" is handled automatically in the emulator, so when it goes to game over after a race for F-ZERO you just have to start a game again and the existing card will be loaded up again.
 
Here's the script for F-ZERO AX.

Wiring:
J3 on Triforce to Female 9-pin D-sub that connects to USB Serial Adapter (TU-S9):
Pin 3 [or 8] (GND) - Pin 5 (GND)
Pin 4 (TXD) - Pin 2 (RXD)
Pin 5 (RXD) - Pin 3 (TXD)
Pin 6 (RTS) - Pin 8 (CTS)
Pin 7 (CTS) - Pin 7 (RTS)
 

Attachments

  • FZEROCARDEMU.zip
    4.3 KB · Views: 364
Last edited:
I've been playing a little F-ZERO AX with the reader emulator and am running into a few scenarios that result in issues. I'll try to work through them and post an update.

At the moment it looks like it can't get through initialization sometimes with a card file already loaded up. The work-around is to boot with a blank card file and then restart the script with your populated card file once attract mode starts. There also seems to be an issue post-game sometimes where it's not following the expected eject sequence.

On another note, I'm happy to discover a little more going on with card use. You earn points that eventually let you buy new parts for your custom racer and change your stats. You can even purchase a new pilot.
 
I've been playing a little F-ZERO AX with the reader emulator and am running into a few scenarios that result in issues. I'll try to work through them and post an update.

At the moment it looks like it can't get through initialization sometimes with a card file already loaded up. The work-around is to boot with a blank card file and then restart the script with your populated card file once attract mode starts. There also seems to be an issue post-game sometimes where it's not following the expected eject sequence.

On another note, I'm happy to discover a little more going on with card use. You earn points that eventually let you buy new parts for your custom racer and change your stats. You can even purchase a new pilot.

I believe your custom pilot and car can then be saved to the gamecube memory card and be imported into F-zero GX and vise versa.
 
This answer makes me incredibly sad, but we will take what ever we can get.
I do not think that white flag is absolute best solution. We have many more opportunities as it seems. First we have console releases, yes they are completely different but we may take a look at files. We may compare what we have and what we don't among NAOMI 2 and Playstation 2 releases. There are hexeditors and tollkits which are capable of crazy things. We may load VF4 on PS2 via network and sniff the traffic in kumite mode, then we will know what could happen in case of NAOMI 2. We can watch recorded fights by Japanese players and we will know exactly what should happen and what should occur, match after match. We can't revive any files from under earth but we can make some progress. We may save progress at memory cards and compare differences between each fight. It's nutjob. But who know it's worth of effort. As community we may ask Sega to release these files as Virtua Fighter series will probably never exist anymore. VF5FS has to be last part ever released. Now is good time for such things. Later maybe too late...
 
Just bought a TRENDnet TU-S9 USB to COM adapter. It's recognized as a "Prolofic USB-to-Serial Comm port (COM3)".
I had to reboot once after plugging it to make it work properlly. Driver is native under Win10 64bits.
 
Hi all,

Thought I should share this with you guys, firstly thank you to all involved in getting these scripts written, tested and released, superb work! I've been recently recoding a WiFi Raspberry Pi Netbooter solution, converting the codebase, adding new features and thought I'd integrate the card reader emulator code via PHP. The Pi runs a captive web portal, you connect any WiFi enabled device to it, browse to any webpage and it provides a graphical menu via a website running in Apache that displays all of your available ROMs to boot from. I've done a few videos on YouTube to demo it running and if anyone would like a copy of the web code just let me know it'll also be going up on github at the weekend. All comments and suggestions gratefully received!

Thanks,
Rich

First attempt!

Interface update

Latest Update
 
I do similar. I run apache/php on an old netbook that sits on the same router as my naomi cabinets. Php scripts just call the python netboot script with the game arg for what you click on. You can use the netbook and browse to localhost, or view the page from your phone or whatever. Your interface is nicer, mine is just a loop that makes a link for each game found in the directory.

I usually just run the card emulator manually from that same netbook in a terminal. I suppose I could just add a link that runs it or something but I'd have to see how to separate the process so PHP doesn't have to stay running for the card emulator child process.
 
Could someone make a quick guide with pics of what connections to use on what system?
 
how many bytes does a card hold?

i was just looking at how cheap RF-transponder keyfobs & reader/writers are from china ;)
 
Back
Top