Polski

Trzymając jednocześnie lewo+prawo niektóre gry wariują

Jeśli masz problem z instalacją oprogramowania nie wiesz jak ustawić poprawnie emulator WinUAE - ten dział jest dla Ciebie.
Anthrox Postanowiłem z ciekawości poruszyć ten temat na forum.
Niektóre gry świrują, gdy trzymając kierunek w lewo (joy2 left) wciśniemy kierunek prawo (joy2 right).
Co ciekawe, gdy trzymamy np. UP + Down -> nie ma problemu.
Problem występuje tylko na emulatorze, ponieważ na prawdziwym joysticku nie jesteśmy fizycznie w stanie wcisnąć oba kierunki jednocześnie. Chyba, że rozbierzemy joystick i kabelki zepniemy na krótko :mrgreen:

Taką grą jest np. Flood.
Chętnie bym to naprawił, ale nie wiem jeszcze jak ugryźć temat, a kiedy Wepl poprawi slave'a nie mam pojęcia - ludzie mu już o tym raportowali, ale póki co problem nadal jest nienaprawiony. Pomyślałem więc - czemu samemu tego nie naprawić.
Skoro dałem radę zablokować "Pauzę" w Lost Dutchman Mine to i tutaj może mi się udać.

Niestety...
Rawkey dla klawiatury jest powszechnie dostępny i już z łatwością znajduję pętlę sprawdzającą naciśnięty klawisz.
Jednak zasada naciskania przycisku joysticka pozostaje dla mnie zagadką.

Szukam po necie i szukam i nie wiem jeszcze jak ugryźć temat.
Pomyślałem, że mógłbym sprawdzać czy mamy wciśnięty jeden z kierunków - jeżeli tak, to wciśnięcie drugiego byłoby "odrzucane" do czasu puszczenia pierwszego kierunku lub coś w ten deseń.

Czy ktoś wie co się dzieje, gdy wciśniemy jeden z przycisków joysticka? Jaki sygnał dostaje wtedy Amiga? :mysli:

Sugerowałem olesiowi, żeby po prostu zrobił odpowiedniego patcha w module, ale raz, że rozłożył bezradnie ręce (antywirusy wyły) dwa zrobiłby to raczej na strzałki, a grzebiąc w środowisku amigowym mógłbym wykrywać sygnały joysticka - czyli ten, który mnie interesuje.
Page 1 of 1 1 https://forum.thecompany.pl/winuae/trzymajac-jednoczesnie-lewo-prawo-gry-wariuja-t2905.html
2013-09-09T01:30:19+01:00
Postanowiłem z ciekawości poruszyć ten temat na forum.
Niektóre gry świrują, gdy trzymając kierunek w lewo (joy2 left) wciśniemy kierunek prawo (joy2 right).
Co ciekawe, gdy trzymamy np. UP + Down -> nie ma problemu.
Problem występuje tylko na emulatorze, ponieważ na prawdziwym joysticku nie jesteśmy fizycznie w stanie wcisnąć oba kierunki jednocześnie. Chyba, że rozbierzemy joystick i kabelki zepniemy na krótko :mrgreen:

Taką grą jest np. Flood.
Chętnie bym to naprawił, ale nie wiem jeszcze jak ugryźć temat, a kiedy Wepl poprawi slave'a nie mam pojęcia - ludzie mu już o tym raportowali, ale póki co problem nadal jest nienaprawiony. Pomyślałem więc - czemu samemu tego nie naprawić.
Skoro dałem radę zablokować "Pauzę" w Lost Dutchman Mine to i tutaj może mi się udać.

Niestety...
Rawkey dla klawiatury jest powszechnie dostępny i już z łatwością znajduję pętlę sprawdzającą naciśnięty klawisz.
Jednak zasada naciskania przycisku joysticka pozostaje dla mnie zagadką.

Szukam po necie i szukam i nie wiem jeszcze jak ugryźć temat.
Pomyślałem, że mógłbym sprawdzać czy mamy wciśnięty jeden z kierunków - jeżeli tak, to wciśnięcie drugiego byłoby "odrzucane" do czasu puszczenia pierwszego kierunku lub coś w ten deseń.

Czy ktoś wie co się dzieje, gdy wciśniemy jeden z przycisków joysticka? Jaki sygnał dostaje wtedy Amiga? :mysli:

Sugerowałem olesiowi, żeby po prostu zrobił odpowiedniego patcha w module, ale raz, że rozłożył bezradnie ręce (antywirusy wyły) dwa zrobiłby to raczej na strzałki, a grzebiąc w środowisku amigowym mógłbym wykrywać sygnały joysticka - czyli ten, który mnie interesuje.

2013-09-09T03:47:10+01:00

Re: Trzymając jednocześnie lewo+prawo niektóre gry wariują

Andys mnie upomniał, żebym jednak sprawdził ponownie WinUAE 1.6.1 i okazuje się, że jednak prawda była po jego stronie - na tej wersji nie ma problemu, gdy trzymamy równocześnie lewo + prawo.
Czyli to Toni napsuł w WinUAE 2.6.x :-)


2013-09-15T22:24:32+01:00

Re: Trzymając jednocześnie lewo+prawo niektóre gry wariują

Anthrox wrote:Czyli to Toni napsuł w WinUAE 2.6.x

Ponownie wersja starsza lepsza od najnowszego h(k)itu !

2013-09-15T23:13:21+01:00

Re: Trzymając jednocześnie lewo+prawo niektóre gry wariują

adiq22 wrote:http://www.whdload.de/games/Flood.html

Dzięki @adiq22 - dostałem powiadomienie, bo to ja zgłaszałem buga:
http://mantis.whdload.de/view.php?id=2812#c3417

Brawa dla Wepla - dla ciekawskich tak wygląda patch:

Code: Select all

   ;fix the joystick routine for pressing left+right at
   ;the same time (e.g. emulators with keyboard for joystick)
.joy1      movem.l   d1-d2,-(a7)
      moveq   #0,d1
      btst   #1,d0
      beq   .1
      addq.w   #1,d1
.1      btst   #9,d0
      beq   .2
      subq.w   #1,d1
.2      move.w   d0,d2
      lsr.w   #1,d2
      eor.w   d2,d0
      moveq   #0,d2
      btst   #0,d0
      beq   .3
      addq.w   #1,d2
.3      btst   #8,d0
      beq   .4
      subq.w   #1,d2
.4      movem.w   d1-d2,$9530+$e948
      movem.l   (a7)+,d1-d2
      add.l   #$a912-$a8e8-6,(a7)
      rts


W pamięci:

Code: Select all

Po:
.joy1      movem.l   d1-d2,-(a7)
      moveq   #0,d1

107FF86A 0800 0001        BTST.L #$0001,D0
107FF86E 6702           BEQ.B #$00000002 == $107ff872 (F)
107FF870 5241           ADD.W #$00000001,D1
107FF872 0800 0009        BTST.L #$0009,D0
107FF876 6702           BEQ.B #$00000002 == $107ff87a (F)
107FF878 5341           SUB.W #$00000001,D1
107FF87A 3400           MOVE.W D0,D2
107FF87C e24a           LSR.W #$00000001,D2
107FF87E b540           EOR.W D2,D0
107FF880 7400           MOVE.L #$00000000,D2
107FF882 0800 0000        BTST.L #$0000,D0
107FF886 6702           BEQ.B #$00000002 == $107ff88a (F)
107FF888 5242           ADD.W #$00000001,D2
107FF88A 0800 0008        BTST.L #$0008,D0
107FF88E 6702           BEQ.B #$00000002 == $107ff892 (F)
107FF890 5342           SUB.W #$00000001,D2
107FF892 48b9 0006 0001 7e78   MOVEM.W D1-D2,$00017e78
107FF89A 4cdf 0006        MOVEM.L (A7)+,D1-D2
107FF89E 0697 0000 0024      ADD.L #$00000024,(A7)
107FF8A4 4e75           RTS.L

Return to WinUAE