What's new
I forgot to put it up here after I made it, so I'll upload it!
Here's one that specifies two cards to start with and automatically replaces them when the card is ejected
Modified for use in Idolmaster
changed the '-f' argument to '-fp' and '-fu'.
The -fp is assumed to be a P-card and the -fu is assumed to be a U-card.
The first sticking card will be the one you specified with "-fp".
 

Attachments

  • imas_card_change_auto.zip
    3.7 KB · Views: 174
i just was looking at my Ghost Squad and noticed it supported a card reader option.. i do have some card readers, but i don't think i have ever seen any ghost squad cards, not sure my sega id3 cards would work.
 
i just was looking at my Ghost Squad and noticed it supported a card reader option.. i do have some card readers, but i don't think i have ever seen any ghost squad cards, not sure my sega id3 cards would work.
They won't, the Ghost Squad cards are the hard plastic type that aren't printed on directly, unlike the ID1-3 cards.
 
Big thanks to @winteriscoming:

I found a really tiny laptop in the family, running Windows XP that fits perfectly on the "ô so tiny cashbox":
IMG_5231.jpg


With the Tu-S9 trendnet cable, I also dug an old modem cable (!), unpinned the CN5 pin 8,4 and 5 and pinned 5-2-3 from my db9 cable to it, and voila
IMG_5232.jpg


IMG_5233.jpg



NOTES for XP:
Install the latest version of python that support XP:
https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi

Then the latest version of Pyserial that supports XP:
https://files.pythonhosted.org/pack...d612f5a4d2bc796005b9/pyserial-3.0.1.win32.exe

install pyserial by running the following command line.
easy_install pySerial3.0.1.exe


and you're good to go.
 
Huge thanks to everyone involved for the scripts and all of the useful info here, I'm working to get the virtual cards displaying in my WiPi Netbooter image, so far so good but I'm struggling with fonts. I'm decoding in python then composing the images using GD in PHP and have tried lots of UTF fonts but couldn't find one that was a good match. I'm updating the driver name text code using chr( ord(char)-65248 ) to bring it back into a latin printable range but would be great to know which font you ( @winteriscoming ) used as ideally I'd like to just be able to print the raw data onto a transparent png then overlay onto the card.

Progress so far:

1629901690598.png
 
Last edited:
Huge thanks to everyone involved for the scripts and all of the useful info here, I'm working to get the virtual cards displaying in my WiPi Netbooter image, so far so good but I'm struggling with fonts. I'm decoding in python then composing the images using GD in PHP and have tried lots of UTF fonts but couldn't find one that was a good match. I'm updating the driver name text code using chr( ord(char)-65248 ) to bring it back into a latin printable range but would be great to know which font you ( @winteriscoming ) used as ideally I'd like to just be able to print the raw data onto a transparent png then overlay onto the card.

Progress so far:

1629901690598.png

I had pretty good luck with kochi-gothic-subst.ttf. There might have been a letter or two that I manually edited with a font editor to better match what I saw printed, but it was not much.
https://github.com/indico/indico-fonts/blob/master/indico_fonts/kochi-gothic-subst.ttf

In Python I was able to set the encoding to 'shift-jis'.
 
I picked out the ID2 icons yesterday, still need to work out how the 10, 20 and 30 star logos are printed but the others were straightforward. I noticed on some pics of printed ID2 cards that a couple of the icons are longer than normal, looking at the code they are made up of 2 icons joined together for 2 of the longer track names. Guess with only 6 tracks on ID2 they had more room to print on the card compared with 9 in ID3. I had to play with the images a bit to make them more legible for the interface so they aren't 100% as per the game rom and might need further tweaks:

1630058379321.png
 
Last edited:
Made lots of progress and have pretty much completed the script handling for ID2, one thing I still can't fathom is the racer level star printing. I played for a few hours last night and completed Myogi and Usui the first 2 tracks to get 2 racer level stars, the print messages I processed appeared to be the same for both which can't be correct as it would print one star over the other. Am I going mad?! can anyone confirm how this works please to save me the pain of trying to beat Sid in his Suzuki Cappuccino again?

First star: 02197C0000003030000D0D0D0D0D20202020202020201B67100307
Second star: 02197C0000003030000D0D0D0D0D20202020202020201B67100307

I checked the timestamps on the files created and they were over an hour apart

As a way of giving a bit back for all of the effort made by others on the card emulator scripts, I'm sharing scans of all of the cards for ID, ID2 and ID3 if anyone needs them, you can grab them here: https://drive.google.com/drive/folders/1sjIQ218QkCA5uDDZ_zYDTuSyvcDqpjPt?usp=sharing

Edit: I've worked around it for now, adding up the star symbols and printing one or two depending on the slot, ID2 and ID3 are now complete, hope to have IDAS fully working this week
 
Last edited:
The more you share, the more you own! Thank you !!
...and ordering a mini sd card NOW to try your wipi netbooter!
 
First star: 02197C0000003030000D0D0D0D0D20202020202020201B67100307
Second star: 02197C0000003030000D0D0D0D0D20202020202020201B67100307
I would have thought all the end of line and spaces get the print head where it needs to go, but I agree it looks like the second would print over the first one. Are you running a physical reader to check the behavior? Is it possible it actually does overwrite the first star and it's not until later that the next one gets printed?
 
Unfortunately I don't have an original cab, I'm using openjvs with an xbox controller to play through. I think I just need to bite the bullet, play again and capture the print packets as they appear, will report back with results
 
I wonder if it would have the same effect on a non-erasable thermal print. I suppose it might have to do with how dirty the print head is. But, given that it's done after a long period of time (i.e. over an hour and likely spanning between multiple play sessions if card were ejected in between), I wonder if it produces a noticeable difference. Say it had printed once and I ejected my card and see it has a star. Am I going to notice if I insert it to play at a later point and it prints over top of that star at some point before I eject and look at it again? Even if it made it darker, I'm probably not going to know unless I get another star next to it that's lighter. If that was the intention, I would think a better method would have been to print a star outline and then fill it in on a later print to indicate progress. Hard to say what the intention was.

I've got a physical reader, but am not able to run any tests for this any time soon.
 
the 2 screwdriver ajusted resistors near the heatsink
 
I'm just not good enough to generate two stars at the same time! Will keep practising but for now I can add the stars from the print packets together and generate them on the card via an integer easily enough.

While the card reader emulator scripts work really well and the result of I don't know how may hours of work (massive thanks to all involved!), one thing that's bugged me is that you always have to start the script with either a saved card file or a new blank one. I've been thinking how I could modify the scripts for a scenario where someone for example has an ID cab and is auto netbooting the game for convenience, they will need to have prechosen their card as the game needs the script running when it boots. Better to let the game boot into attract mode normally and act as if it has no card inserted and allow the player to decide which card to use when they start playing.

So the idea I've got is to run it more like an original cab and allow a card file to be virtually inserted and accepted by the reader at the insert card screen, this way you could use several methods to trigger a card insertion, you could choose via the netbooter web interface in real time that copies a file into a drop folder for processing or maybe using an NFC card to either hold the card save data (although write back might be a challenge, rest it on top of the reader/writer until after the save process is complete?) or simply be linked via it's UID to a card save file on the netbooter so a tap of the card would load the respective save file. If the insert card timer runs down, default to the option to purchase a card and create an auto generated file to save to.

I've managed to get the code working using a polling queue and a drop folder, working out the correct statuses to assign for the card added on the fly was tricky but it seems to be quite happy. Next challenge is to hook up an NFC reader and see if I can trigger a card insertion using that, I have zero experience with the technology so it will be a nice challenge!

Attached is a work in progress, needs a bit more work on file handling to make sure files are where they should be at the right times but I can start this with no filename specified, then at the insert card screen drop a valid save file into the activecard folder during the 10 second countdown and the emulator script picks it up, loads it in and saves it at the end of play.

Edit: I really should have read the previous posts here, I only skimmed looking for technical nuggets of info - looks like this discussion happened about 4 years ago! LLCP and Web NFC look promising
 

Attachments

  • id2cardemutest.txt
    39.6 KB · Views: 124
Last edited:
allow a card file to be virtually inserted
This is how I'm doing it in the frontend I put together. I have implemented user profiles and individual card files per profile, so you load up your profile and select your card that will be virtually inserted when the game asks for it. Though I've only got that working for wmmt 1-3dx+ at this point. I also manage card expirations and renewals.
 
Back
Top