program do mierzenia częstotliwości autofire
program do mierzenia częstotliwości autofire
Hello,
właśnie kompletuje części do zrobienia joysticka do C64. Mam już zrobiony joystick usb na arduino 32u4.
Ma być autofire regulowany cyfrowo. Czy znacie jakiś program do mierzenia częstotliwości autofire na C64? Chcę ustalić jaka maksymalna częstotliwość ma sens. Poza tym możecie napisać ew. jaką częstotliwość używa joystick który posiadacie?
właśnie kompletuje części do zrobienia joysticka do C64. Mam już zrobiony joystick usb na arduino 32u4.
Ma być autofire regulowany cyfrowo. Czy znacie jakiś program do mierzenia częstotliwości autofire na C64? Chcę ustalić jaka maksymalna częstotliwość ma sens. Poza tym możecie napisać ew. jaką częstotliwość używa joystick który posiadacie?
Re: program do mierzenia częstotliwości autofire
Ważny jest też czas trwania wciśnięcia fire, wiele gier używa tzw. debouncingu lub minimalnej przerwy przed zaakceptowaniem kolejnego fire. Najgorsze w autofire jest to, że nie wiesz czy ucelujesz właśnie w ten odpowiedni moment.
Najlepszy tester joyów do sprawdzenia autofire widziałem u larka, i jest... dla Atari. https://www.youtube.com/watch?v=WgiPqFobIxA 10:50
Wszystkie testery jakie widziałem na naszą platformę, nawet te najbardziej rozbudowane jak JoyRide czy Game Controller Tester nie pokazują zachowania fire w przedziale czasowym, a tylko na bieżąco.
Najlepszy tester joyów do sprawdzenia autofire widziałem u larka, i jest... dla Atari. https://www.youtube.com/watch?v=WgiPqFobIxA 10:50
Wszystkie testery jakie widziałem na naszą platformę, nawet te najbardziej rozbudowane jak JoyRide czy Game Controller Tester nie pokazują zachowania fire w przedziale czasowym, a tylko na bieżąco.
Re: program do mierzenia częstotliwości autofire
Napisałem taki programik w Basic, ale dla "TIME" (TI) który w teorii skacze w górę co 1/60 sekundy jest to jednak za mało precyzyjny pomiar push0 / release1
Może ktoś pokusi się o napisane czegoś podobnego pod asembler, jeśli tam skok "licznika czasu" będzie stabilny i szybszy niż dla TI, będzie to wtedy miało sens.
Może ktoś pokusi się o napisane czegoś podobnego pod asembler, jeśli tam skok "licznika czasu" będzie stabilny i szybszy niż dla TI, będzie to wtedy miało sens.
-
- Posty: 195
- Rejestracja: 15 gru 2020, 10:41
Re: program do mierzenia częstotliwości autofire
Co chcesz aby ten program robil ? Ma podawac czestotliwosc w Hz. czy raczej dlugosci impulsu(fire) plus czas przerwy miedzy kolejnym implusem. Ma to robic ciagle czy jednorazowy pomiar ? Mozna to zrobic wykozystujac jako podstawe czestotliwosc taktowania procesora.
Re: program do mierzenia częstotliwości autofire
Akurat miałem wenę i trochę czasu, popełniłem taki programik. Przedstawia pracę autofire w dość prosty sposób.
Od biedy da się porównać pracę różnych autofire na porcie 2.
W sumie wydaje mi się że najskuteczniejszy do pomiaru i kalibracji autofire byłby po prostu oscyloskop
Od biedy da się porównać pracę różnych autofire na porcie 2.
W sumie wydaje mi się że najskuteczniejszy do pomiaru i kalibracji autofire byłby po prostu oscyloskop
Kod: Zaznacz cały
;AUTOFIRE TESTER
;
*=$0801 ; line '10 PRINT"{clear}":SYS2080' at $0801
BYTE $10,$08,$0A,$00,$99,$22,$93,$22,$3a,$9e
BYTE $32,$30,$38,$30,$00,$00,$00
;
*=$0820
sei ;set IRQ
lda #<irq
sta $0314
lda #>irq
sta $0315
cli
;
;
loop lda #$00
sta $fb ;reset counters for button released / pressed
;
release ldy $fb ;counter to Y
lda $dc00
and #$10
cmp #$10 ;button released check
beq release
;
lda #$20 ;for clear screen line char [spc]
ldx #$ff
clear1 sta $0400,x
dex
bne clear1
;
lda #$12 ;char 'R'
loop1 sta $0400,y
dey
cpy #$ff
bne loop1
;
lda #$00
sta $fb ;reset counters for button released / pressed
;
press ldy $fb ;counter to Y
lda $dc00
and #$10
cmp #$00 ;button pressed check
beq press
;
lda #$20 ;for clear screen line char [spc]
ldx #$ff
clear2 sta $0518,x
dex
bne clear2
;
lda #$10 ;char 'P'
loop2 sta $0518,y
dey
cpy #$ff
bne loop2
;
jmp loop
;
;
irq lda $fb ;counter
cmp #$ff
beq irqend
inc $fb
irqend jmp $ea31
;
Re: program do mierzenia częstotliwości autofire
Pomiar QuickJoyIII SV-123 Supercharger
Pin6 względem Gnd przy załączonym autofire.
Masz tu punkt odniesienia.
Pin6 względem Gnd przy załączonym autofire.
Masz tu punkt odniesienia.
Re: program do mierzenia częstotliwości autofire
niech retro będzie z tobą.
-
- Posty: 195
- Rejestracja: 15 gru 2020, 10:41
Re: program do mierzenia częstotliwości autofire
Napisalem prosty rejestrator. Mozesz go wykozystac. Potrzebujesz do niego jeszcze program do analizy danych ale on moze byc juz w BASIC. Moj program zapisuje w buforze $75fa - $7fff stan przycisku fire.Dane czytasz od adresu $75fa b7,b6,...b0 az do &7fff ale tu tylko 6 bitow b7,b6,b5..b2. Stan FIRE jest probkowany 20526 razy na sek. zalozylem ze czestotliwosc procesora to 985248 Hz/ 1 sek.Bit 1 przycisk zwolniony ,bit 0 wciscniety. A i wazne abys obnizyl gorna granice RAM dla programu w BASIC do adresu $75f9
Kod: Zaznacz cały
*=$c000
joy =$dc00
start =$75fa
sei
lda #$10
sta 2
lda #<start
sta save+1
lda #>start
sta save+2
ldx #8
;--------------
loop
lda 2 ;3
and joy ;4
clc ;2
adc #$f0 ;2
tya ;2
rol a ;2
tay ;2
dex ;2 /18
;-- ;5
beq *+4 ;2,3
bne skip ;2,3
ldx #8 ;2
;--
save sta $f000 ;4
inc save+1 ;6
beq *+2 ;2,3 /5
bne L0 ;2,3
inc save+2 ;6
bpl loop ;2,3
bmi finish
skip
nop ;10
nop
nop
nop
nop
beq *+2 ; /5
bne L0
L0 nop
nop
nop
bne loop
finish cli
rts
Re: program do mierzenia częstotliwości autofire
Niech mnie ktoś poprawi, ale ja do dzisiaj posiadałem wiedzę, że stan klawiatury/joya CIA odświeża co 1/60 sekundy niezależnie czy to jest maszyna PALowa czy NTSCowa. Co za tym idzie wystarczyłoby próbkować np. z podwójną częstotliwością 120Hz tak aby nie przeoczyć jakiejś zmiany. Może się mylę i chętnie się czegoś nowego dowiem. Piszcie.hobocti77x_ pisze: ↑04 lut 2022, 15:10...Stan FIRE jest probkowany 20526 razy na sek. zalozylem ze czestotliwosc procesora to 985248 Hz/ 1 sek.Bit 1 przycisk zwolniony ,bit 0 wciscniety. A i wazne abys obnizyl gorna granice RAM dla programu w BASIC do adresu $75f9
pozdrawiam
Steffan
B O O M !
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
-
- Posty: 195
- Rejestracja: 15 gru 2020, 10:41
Re: program do mierzenia częstotliwości autofire
Chocby po to aby dowiedziec sie jaki jest wspólczynnik wypelnienia sygnalu
https://upload.wikimedia.org/wikipedia/ ... _label.gif
https://upload.wikimedia.org/wikipedia/ ... _label.gif
Re: program do mierzenia częstotliwości autofire
Stan portów joya można odczytać częściej niż raz na ramke, przypuszczam, że ogranicza nas tylko czas propagacji sygnału. Dzięki temu przez port joya można nawet ładować soft: https://youtu.be/eIjwf7xaKrU?t=180
Napisałem coś takiego na szybko:
Kod: Zaznacz cały
begin
ClearScreen(KEY_SPACE, SCREEN_CHAR_LOC);
while True do
begin
i := peek(^56320, 0) & 16;
if i = 0 then
begin
SCREEN_FG_COL := WHITE;
SCREEN_BG_COL := WHITE;
end else
begin
SCREEN_FG_COL := BLACK;
SCREEN_BG_COL := BLACK;
end;
end;
end.
Re: program do mierzenia częstotliwości autofire
Ciekawe. Rime i Hobocti77x_ dzięki za info.
pozdro
Steffan
pozdro
Steffan
B O O M !
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
-
- Posty: 195
- Rejestracja: 15 gru 2020, 10:41
Re: program do mierzenia częstotliwości autofire
Mysle ze czestotliwosc tak naprawde nie jest ci potrzebna bo co da ci np. informacja ze wynosi ona przykladowo 24.12 Hz. Bardziej moze ci sie przydac czas trwania strzalu i czas miedzy kolejnym strzalem. To moze pozwolic ci znalesc optymalne ustawienia ktore moga byc rozne dla roznych programow.