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
This lack of precision. The wiki also says:
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.
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?
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.
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.
After almost 40 years it would be great to play Break Out on an MSX paddle.
I would like to own a slider paddle!
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
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.
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.
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
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?