Arkanoid paddle controller for NES on MSX

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

By Danjovic

Master (157)

Danjovic's picture

02-07-2019, 03:42

By the way here follows the disassembly of both parts of the patch. The addresses are RAM right after the bload"cas:",. as far as I remember my game was loaded from tabe beginning at address 0x9000 .

org        0a37bh

        exx          ;a37b  d9
        ld a,001h    ;a37c  3e 01
        call 000deh  ;a37e  cd de 00
        exx          ;a381  d9
        cp 008h      ;a382  fe 08
        jr c,la38eh  ;a384  38 08
        cp 0b8h      ;a386  fe b8
        jr nc,la392h ;a388  30 08
la38ah:
        ld (hl),a    ;a38a  77
        jp 0534bh    ;a38b  c3 4b 53
la38eh:
        ld a,008h    ;a38e  3e 08
        jr la38ah    ;a390  18 f8
la392h:
        ld a,0b8h    ;a392  3e b8
        jr la38ah    ;a394  18 f4



org        0a3b4h
        exx          ;a3b4  d9
        ld a,001h    ;a3b5  3e 01
        call 000deh  ;a3b7  cd de 00
        exx          ;a3ba  d9
        cp 008h      ;a3bb  fe 08
        jr c,la3ceh  ;a3bd  38 0f
        cp 0aah      ;a3bf  fe aa
        jr nc,la3d2h ;a3c1  30 0f
la3c3h:
        ld (hl),a    ;a3c3  77
        dec l        ;a3c4  2d
        dec l        ;a3c5  2d
        dec l        ;a3c6  2d
        dec l        ;a3c7  2d
        add a,00dh   ;a3c8  c6 0d
        ld (hl),a    ;a3ca  77
        jp 0534bh    ;a3cb  c3 4b 53
la3ceh:
        ld a,008h    ;a3ce  3e 08
        jr la3c3h    ;a3d0  18 f1
la3d2h:
        ld a,0aah    ;a3d2  3e aa
        jr la3c3h    ;a3d4  18 ed

By sd_snatcher

Prophet (3367)

sd_snatcher's picture

08-02-2020, 05:48

gdx wrote:

This lack of precision. The wiki also says:

wiki wrote:

This paddle has a long internal processing delay that must be respected with the pin-8/reset being kept HIGH for all that time, but this logic level conflicts with the MSX-BIOS own interrupt handler as it will set this bit to LOW for its own processing. The workaround for this problem is described in the notes section below.

This is wrong because the Bios supports only the ASCII paddle controller. Arkanoid controller use another protocol. Bios doesn't support it, that's all.

Please note that the text doesn't state that this trackball is compatible with the MSX-BIOS. What it says is that the BIOS interrupt handler (more precisely, the ON STRIG part) will disrupt the communication with this paddle, because it forces the joystick ports pin-8 to LOW, and this paddle needs the pin-8 to be kept high until the next frame. The workaround is to disable the BIOS interrupt handler keyboard/ON STRIG processing. There are many methods to do this.

By Wlcracks

Champion (430)

Wlcracks's picture

08-02-2020, 08:33

Reading this topic.
From what i understand there are 2 paddles used on MSX. (not including mouse or trackball)
1. The ASCII standard working on a puls width = paddle value, basically a pin 8 -> triggered NE555
2. The Arkanoid Paddle or VAUS working on shiftregister.

If this is true, looking at the hardware from the NES, witch already uses the joystick controller with a shift-register, the msx arkanoid paddle is just a NES arkanoid paddle adapted for MSX. Maybe having the hardware laying around.

So, If i wanted to develop a MSX game with use of a paddle. What is the way to go? ASCII or Arkanoid? The ASCII paddle is really cheap to produce and seems to be supported in MSX bios.
Is there any stock MSX game using the ASCII paddle?

By rderooy

Paladin (686)

rderooy's picture

08-02-2020, 09:10

Since the MSX paddles were never produced (probably ASCII had some prototype), there are no games that support them either.

Regarding the Wiki, I don't understand this:

This paddle range goes roughly from 55 to 236, but Taito games consider the far left value as 164, center as 236 and 309 as the far right

This seems to suggest the Taito games are out of range on the right side.

By gdx

Prophet (3830)

gdx's picture

08-02-2020, 10:24

rderooy wrote:

Since the MSX paddles were never produced (probably ASCII had some prototype), there are no games that support them either.

Break Out supports MSX paddles.

I heard that MSX paddles diagram was published in a magazine but I don't know which one.

By hamlet

Scribe (3262)

hamlet's picture

08-02-2020, 11:04

After almost 40 years it would be great to play Break Out on an MSX paddle.
I would like to own a slider paddle!

By Pencioner

Scribe (1202)

Pencioner's picture

08-02-2020, 12:35

hamlet wrote:

After almost 40 years it would be great to play Break Out on an MSX paddle.
I would like to own a slider paddle!

Revenge of the Doh! I want to play on paddle too Smile

By rderooy

Paladin (686)

rderooy's picture

08-02-2020, 14:06

gdx wrote:
rderooy wrote:

Since the MSX paddles were never produced (probably ASCII had some prototype), there are no games that support them either.

Break Out supports MSX paddles.

I heard that MSX paddles diagram was published in a magazine but I don't know which one.

That's new. Did not know that Break Out supports paddles. It makes sense, since it's a very early game and ASCII probably used it for their prototype paddles. No idea unfortunately which MSX Magazine has the paddles diagram.

By sd_snatcher

Prophet (3367)

sd_snatcher's picture

08-02-2020, 14:19

rderooy wrote:

Since the MSX paddles were never produced (probably ASCII had some prototype), there are no games that support them either.

I've only seen one game support it (Break Out), but both the BIOS and MSX-BASIC provide easy support for this paddle, so that's a considerable advantage.

Quote:

Regarding the Wiki, I don't understand this:

This paddle range goes roughly from 55 to 236, but Taito games consider the far left value as 164, center as 236 and 309 as the far right

This seems to suggest the Taito games are out of range on the right side.

My bad. I had fixed this paragraph before, but somehow managed to mistake the browser tabs and save a previous version. Taito game miss a range of the right side because both Arkanoid games don't cover the whole screen width. I fixed the paragraph again.

BTW, it would be really nice if everyone here that has an Arkanoid paddle to check and post here the range of your devices using Danjovic's TESTVAUS.BIN from this page, so we can have more information to delimit the safe range. It seems that there are some variation in the range that these devices produce.

To test the range, turn the knob to the far left, then stop touching the paddle and take note of the value. Repeat for the far right position. Don't force the knob, otherwise the min/max values will be distorted.

This info will help both hardware and software developers. When posting please mention the type of paddle and its range. For example, these are the results for the two devices I have here:

- MSX/Red case: 107 to 386
- MSX/Red case: 108 to 425

By hamlet

Scribe (3262)

hamlet's picture

08-02-2020, 15:29

Why did Taito use an own controller although there was no MSX suitable one available? Was it because of license fees or did Taito want to protect his own trademark? What do you think?

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