the link between pin 8 and pin 9 is just on the joystick inputs
I think it's to accept all joysticks
but on the socket that goes into the joystick port of the MSX the signals are not connected
take a good look at the diagram
see the board on MSXvillage
Ok, I looked at the diagram too quickly. Only the pins of 4 joysticks are connected, not on the general port. I notice that we can't use controllers like Joymega or JoySNES or mouse. So it's not very useful to connected the 5V and GND to the 4 port. Thanx for the diagram. I think put it on the wiki page.
Hi Jipe
Thanks for the schematics (and the photos at MSX Village).
It looks that I got the device detection wrong in the sense that the SI inputs should be pulled up, not down.
I am glad to see that everything else looks correct, being the ACT00 to make sure that the outputs of the PSG will drive the four 4021 inputs.
Yet that connection on pin 7 doesn't look good, considering the source code for DM2 system, because for a short time during detection, pin 3 of the ATC00 will fight the internal LS07 .
Unfortunately I did not find the roms for the games supported by Ninja Tap to disassemble them and check if they keep pin 7 high during all operation and detection.
I have integrated the driver in MSXgl, but the Ninja Tap are not detected in OpenMSX (they are visible with the plug
command).
Could someone please test my ROM with the real hardware (https://github.com/aoineko-fr/MSXgl/raw/main/projects/sample...)?
The program displays the number of ports found.
2 : No Ninja-Tap found 5 : One Ninja-Tap found 8 : Two Ninja-Tap found
Danjovic, I updated the wiki links to software.
Danjovic, I updated the wiki links to software.
Thank you, I will take a look.
Jipe tested my Ninja Tap sample program on real hardware and the detection works just fine. So it seems the device does not work well with OpenMSX. At least, the detection code I use in MSXgl and which comes from DM System 2 drivers (thanks Danjovic) does not work in OpenMSX.
I'll submit a bug ticket on OpenMSX dev site.
Jipe tested my Ninja Tap sample program on real hardware and the detection works just fine. So it seems the device does not work well with OpenMSX. At least, the detection code I use in MSXgl and which comes from DM System 2 drivers (thanks Danjovic) does not work in OpenMSX.
I'll submit a bug ticket on OpenMSX dev site.
Glad to hear that!
The Ninja tap uses the inverted state of Pin 8 fed back to pin 7 to detect its presence
--write-- -Pin 7 (read)- PIN8 No-Tap Ninja LOW HIGH HIGH HIGH HIGH LOW
So please don't forget to let the internal open collector gate on pin 7 floating (by writing '1' to it) during the detection. This can be accomplished with the following changes.
CKNTAP: 5a16 f3 di 5a17 0600 ld b,00h 5a19 1100bf ld de,0bf00h ; use -> ld de,0bf0ah 5a1c cd325a call 5a32h ; (CHECK) 5a1f 4f ld c,a 5a20 1e40 ld e,40h ; use -> ld e,4ah 5a22 cd325a call 5a32h 5a25 07 rlca 5a26 b1 or c 5a27 4f ld c,a 5a28 ed4370c0 ld (0c070h),bc 5a2c 113fff ld de,0ff3fh 5a2f c35e5a jp 5a5eh ; CHECK: 5a32 cd5e5a call 5a5eh ;(PORSEL) 5a35 04 inc b 5a36 e6c0 and 0c0h ; use -> and 0cah 5a38 d3a1 out (0a1h),a 5a3a 08 ex af,af' 5a3b 3e0e ld a,0eh 5a3d d3a0 out (0a0h),a 5a3f dba2 in a,(0a2h) 5a41 e620 and 20h 5a43 c8 ret z
To avoid contention, I have redrawn the Shinobi Tap Circuit (link) and modified the feedback circuit to:
- Avoid contention of internal LS07
- Allow to differentiate from Ninja Tap.
For Shinobi tap, with a second feedback diode on pin 6, it would be possible to differentiate the devices by checking the conditions below
--write-- ---Pin 7 (read)----- PIN6 PIN8 No-Tap Ninja Shinobi LOW LOW HIGH HIGH HIGH LOW HIGH HIGH LOW LOW HIGH LOW HIGH HIGH LOW LOW LOW HIGH LOW LOW (can be disregarded)
PS: NES controller sockets can be found for cheap.
Jipe tested my Ninja Tap sample program on real hardware and the detection works just fine. So it seems the device does not work well with OpenMSX. At least, the detection code I use in MSXgl and which comes from DM System 2 drivers (thanks Danjovic) does not work in OpenMSX.
I'll submit a bug ticket on OpenMSX dev site.
Thanks! Did you also test whether it works with DM System 2 in openMSX?
I moved F-nano2 to the page below because it uses another method to play with until 4 players simultaneous.