Updated the schematics for the Shinobi tap. It was necessary to add an RC network to get rid of ringing on the CLOCK signal when the button changed state..
further details (link).
Regarding compatibility it's more a software issue that can be solved with a patch. After all it was a patch to this game that motivated me to bump this sleepy Ninja Tap topic
Interesting! For those using the joyMega, there's also an alternative: the Sega Multitap for the Mega Drive. It can still be found being sold on eBay etc. HIDlib already has support for it.
Advantages:
- Better option for those who use Mega drive controllers, like the excellent 8bitdo M30
- Supports all buttons of the Mega drive controllers on either 3 or 6 button types
- Has per-port controller detection, so the game can know ahead how many players there will be
- No need to build one yourself. Can be purchased on eBay etc
Disadvantages:
- Only works with Mega Drive controllers.
And the Shinobi Tap is finally in its case.
I have updated the Schematics and uploaded all the files on the github page.
Wow.... the Shinobi Tap is super cool!
BTW, I finished the binary driver to be used under Basic : https://github.com/aoineko-fr/MSXgl/raw/main/projects/sample...
To load the driver (at C000h
):
BLOAD "s_usr.bin" DEF USR=&HC007
Then you have 3 functions.
1) To detect Ninja Tap:
A=USR(0) Return: 7 6 5 4 3 2 1 0 │ │ │ │ └───┴───┴───┴── Number of joystick ports available (2, 5 or 8) │ │ └───┴────────────────── Tap type pluged in port 1 (0=No Tap, 1=Ninja Tap, 2=Shinobi Tap) └───┴────────────────────────── Tap type pluged in port 2 (0=No Tap, 1=Ninja Tap, 2=Shinobi Tap)
2) To update all joystick data (Ninja Tap and normal joystick):
A=USR(-1)
3) To get data from a given joystick (1 to number of joystick given in first function):
A=USR(1~8) Return: 7 6 5 4 3 2 1 0 │ │ │ │ │ │ │ └── Right direction │ │ │ │ │ │ └────── Left direction │ │ │ │ │ └────────── Down direction │ │ │ │ └────────────── Up direction │ │ │ └────────────────── Start bouton (for NES pad) │ │ └────────────────────── Select bouton (for NES pad) │ └────────────────────────── A bouton └─────────────────────────────── B bouton
The driver is 678 bytes in size.
I took the opportunity to add in MSXgl, the support to generate directly binary files that you can load and use from a Basic program. There is a new target for the build tool: BIN_USR
.
Where do you find quality nes controllers with a DB-9 connector? The ones I have found so far are the worst controllers I have had in my life.
I have many famiclone controllers, some are terrible indeed, but some are good enough to play with. It is possible to scavenge controllers for cheap in Ali Express (link), some look good and you have customer ratings and photos to to help you to decide. But controllers can be also found in flea markets, thrift stores and even in recycling facilities.
Original NES controllers can be used too, with a different board with proper NES sockets (link).
BTW, I finished the binary driver to be used under Basic : https://github.com/aoineko-fr/MSXgl/raw/main/projects/sample...
Great!!
I think it is possible to scan all the available players in a loop then
... ' on the game menu NT = usr (0)' detect controllers NP = NT and 15' number of players defint P dim P(NP)'create players ... ... 'on game loop a=usr(-1)'scan controllers for i=1 to NP:P(i)=usr(i):next'fullfill data
or this PCB board with DB9 and Nes connector !!
Cool. Are the footprints for NES controllers available, either as library or drawings? Can you share 'em?
I have in DIPTRACE form otherwise I have reported the dimensions of the connector from ALIEXPRESS
con nes