GideonZ / 1541ultimate

Official GIT archive of 1541 ultimate II sources
GNU General Public License v3.0
181 stars 46 forks source link

KoalaPad not working - U64, v1.06 3.3 #61

Open xlar54 opened 5 years ago

xlar54 commented 5 years ago

Using the official KoalaPainter cartridge, it will not boot to the cartridge if the pad is plugged in (either port, although the pad should only be used in port 1). Without the pad plugged in, the cart software works fine. Plugging in after has no effect.

Grrrolf commented 5 years ago

Firmware v 1.06 is pretty old. Current firmware at the time of writing is 1.0B and has lots of fixes for the CPU. You can download it here: https://ultimate64.com/firmware . Not sure if this will solve your problem, though, but it is worth a try. You can always downgrade back to v1.06 if you need to.

xlar54 commented 5 years ago

Thanks Rolf. It did actually have some affect. Under 1.08, the cartridge WILL start with the pad plugged in. But still will not work. So its definitely moving in the right direction.

xlar54 commented 5 years ago

Confirm same as 1.08 under 1.10

xlar54 commented 5 years ago

New info. On a real 64, locations 54297 and 54298 ($D419 / $D41A) are the game paddle inputs. The KoalaPad uses these two locations for the X/Y locations, 0-255. On the U64, they only register between 2 and 6. Sample program:

10 print peek(54297), peek(54298) 20 goto 10

The interesting thing about my case in particular is that it is using an actual SID chip. (Ive also tried UltiSID). So maybe the pot lines just havent been connected up

dillof commented 4 years ago

I can confirm this is still the case with firmware 1.26 (tested on an U64E with the default built in SID): Paddles work, but the KoalaPad does not.

GideonZ commented 4 years ago

Interesting... It is difficult for me to test this, since I don't have a koalapad.

On Fri, Jan 3, 2020 at 8:22 AM Dieter Baron notifications@github.com wrote:

I can confirm this is still the case with firmware 1.26 (tested on an U64E with the default built in SID): Paddles work, but the KoalaPad does not.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/GideonZ/1541ultimate/issues/61?email_source=notifications&email_token=ACUFDSNZBSYBNYC34OXDRM3Q33RULA5CNFSM4GVEZ322YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIAPI6Y#issuecomment-570487931, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUFDSK75N5W66JULUMZK23Q33RULANCNFSM4GVEZ32Q .

dillof commented 4 years ago

I've done some simple tests, both on the Ultimate and a C64.

On the C64, the KoalaPad changes POTX/POTY in a range from $07 to $f9 linearly from left to right (top to bottom); $06 Is no pen touching.

On the Ultimate, no pen reads as $02, and it goes up to $09 first half centimeter but doesn't go higher.

The Atari paddles behave the same on C64 and Ultimate: It takes about 100 degrees to go from $00 to $ff.

I also tried measuring the resistance with a multimeter:

The paddles have a range of 41 Ohm to 930k Ohm.

I couldn't get useful readings on the KoalaPad: when connected to +5V it reads as 5.6mega Ohm, without +5V as 2.5mega Ohm, no matter wether or where the pen touches.

If you can think of anything else to try, please let me know.

xlar54 commented 4 years ago

from chat: If you can change R56 (bottom) to 1.1k and R55 to 1.8k, it will work

the trip point of the U64 is, depending on wether the patch is correctly applied 1.56 or 1.7v

dillof commented 4 years ago

You are suggesting that I make hardware modifications to the Koalapad, right?

Is it possible to change the Ultimate64 firmware to improve compatibility with the original C64 so this wouldn't be necessary? I would gladly beta-test such a change.

GideonZ commented 4 years ago

@dillof This is not a suggestion to make hardware modifications to the KoalaPad. It is a suggestion to change a resistor value on the U64 itself. It cannot be fixed in firmware. KoalaPad uses a digital trigger. The voltage before the trigger occurs is already higher than U64s threshold (this is actually a KoalaPad design problem; it just barely works on a C64). This threshold level problem means that the trigger cannot be recognized. Therefore the threshold need to be increased.