Dyskusja:Programowanie: Czekanie na vblank przy wyłączonym systemie: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
Trzecia wersja i porównanie |
Nie podano opisu zmian |
||
| (Nie pokazano 2 wersji utworzonych przez 2 użytkowników) | |||
| Linia 14: | Linia 14: | ||
bit:rvc NMIST | bit:rvc NMIST | ||
</pre> | </pre> | ||
- dwa bajty krócej od Kuby i czeka do początku VBLANK, a nie osiem skanlinii dalej. Wada to: nie działa, gdy mamy włączone VBLKI i w nim "sta NMIRES". Kod Kuby też ma wadę: nie działa z VBLKI kończącym się w skanlinii 0 lub niżej, o co łatwo w NTSC. --[[Użytkownik:0xF|0xF]] 11:58, 3 gru 2021 (CET) | :- dwa bajty krócej od Kuby i czeka do początku VBLANK, a nie osiem skanlinii dalej. Wada to: nie działa, gdy mamy włączone VBLKI i w nim "sta NMIRES". Kod Kuby też ma wadę: nie działa z VBLKI kończącym się w skanlinii 0 lub niżej, o co łatwo w NTSC. --[[Użytkownik:0xF|0xF]] 11:58, 3 gru 2021 (CET) | ||
::Skoro BNE jest takie niedobre, to nic nie stoi na przeszkodzie żeby: | |||
<pre> | |||
lda #[248/2-1] | |||
cmp VCOUNT | |||
bcs *-3 | |||
cmp VCOUNT | |||
bcc *-3 | |||
</pre> | |||
::o ile oczywiście nie zależy nam na precyzji - ale wtedy można równie dobrze wziąć metodę Kuby jeśli nie zależy nam na tych ośmiu liniach. | |||
::A czy bit w NMIST nie znika przy wystąpieniu kolejnego NMI? Coś mi się zdaje, że DLI znika przy wystąpieniu VBLK, ale czy na odwrót to nie wiem. [[Użytkownik:Mono|Mono]] 09:12, 5 gru 2021 (CET) | |||
:::Racja, VBLKI wpisuje $5f do NMIST, a DLI wpisuje $9f. --[[Użytkownik:0xF|0xF]] 14:43, 6 gru 2021 (CET) | |||
== SDU == | |||
Brak kategorii od lat dwóch. Styl nieency. [[Użytkownik:KMK|KMK]] 00:41, 25 sie 2023 (CEST) | |||
Aktualna wersja z 25 sie 2023, 00:41
A nie można
lda #[248/2] cmp VCOUNT bne *-3
? Twoje czeka na 256 linię skanningową - skoro już i tak czekamy to może lepiej precyzyjniej. Ewentualnie w Twoim kodzie to bym użył BIT zamiast LDA - była by korzyść że nie używa rejestrów. Chyba że Twój ma czekać na okolice VBLK kiedy IRQ są jednak włączone (inaczej dałbym SEI/CLI). A może skoro już, to rozszerzyć artykuł jeszcze o czekanie na początek rysowania ramki obrazu? No nie umiem sobie wyobrazić korzyści z Twojego kodu :D Mono 13:01, 26 lis 2021 (CET)
- BIT jest wskazany. BNE niestety powoduje, że w szybkiej pętli jesteśmy ciągle w tej samej ramce, a nie czekamy na następną. Moja propozycja:
sta NMIRES bit:rvc NMIST
- - dwa bajty krócej od Kuby i czeka do początku VBLANK, a nie osiem skanlinii dalej. Wada to: nie działa, gdy mamy włączone VBLKI i w nim "sta NMIRES". Kod Kuby też ma wadę: nie działa z VBLKI kończącym się w skanlinii 0 lub niżej, o co łatwo w NTSC. --0xF 11:58, 3 gru 2021 (CET)
- Skoro BNE jest takie niedobre, to nic nie stoi na przeszkodzie żeby:
lda #[248/2-1] cmp VCOUNT bcs *-3 cmp VCOUNT bcc *-3
- o ile oczywiście nie zależy nam na precyzji - ale wtedy można równie dobrze wziąć metodę Kuby jeśli nie zależy nam na tych ośmiu liniach.
- A czy bit w NMIST nie znika przy wystąpieniu kolejnego NMI? Coś mi się zdaje, że DLI znika przy wystąpieniu VBLK, ale czy na odwrót to nie wiem. Mono 09:12, 5 gru 2021 (CET)
- Racja, VBLKI wpisuje $5f do NMIST, a DLI wpisuje $9f. --0xF 14:43, 6 gru 2021 (CET)
SDU
Brak kategorii od lat dwóch. Styl nieency. KMK 00:41, 25 sie 2023 (CEST)