Ninja tap

Page 2/17
1 | | 3 | 4 | 5 | 6 | 7

By Jipe

Paragon (1571)

Jipe's picture

25-09-2022, 10:41

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 Wink

By gdx

Enlighted (5820)

gdx's picture

25-09-2022, 12:05

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.

By Danjovic

Champion (320)

Danjovic's picture

25-09-2022, 20:08

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.

By aoineko

Paladin (689)

aoineko's picture

25-09-2022, 20:46

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

By gdx

Enlighted (5820)

gdx's picture

26-09-2022, 02:42

Danjovic, I updated the wiki links to software.

By Danjovic

Champion (320)

Danjovic's picture

26-09-2022, 05:54

gdx wrote:

Danjovic, I updated the wiki links to software.

Thank you, I will take a look.

By aoineko

Paladin (689)

aoineko's picture

26-09-2022, 19:44

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.

By Danjovic

Champion (320)

Danjovic's picture

27-09-2022, 02:14

aoineko wrote:

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.

By Manuel

Ascended (19055)

Manuel's picture

27-09-2022, 07:43

aoineko wrote:

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?

By gdx

Enlighted (5820)

gdx's picture

27-09-2022, 10:08

I moved F-nano2 to the page below because it uses another method to play with until 4 players simultaneous.

https://www.msx.org/wiki/Category%3AX-Ray

Page 2/17
1 | | 3 | 4 | 5 | 6 | 7