Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
jhusak:
HPOSP* i HPOSM* nie mają rejestrów cienilarek:
I wielka szkoda, że nie mają.jhusak:
A dlaczego?jhusak:
Cienie nie tylko służą do update hardwarowych rejestrów, ale także jako kopia do odczytu(...)jhusak:
piszesz kilkanaście rozkazów i podłączasz się pod przerwanie vblkBluki:
(...)ale można zrobić programowe.;deklaracja rejestrow sprzetowych
;pozycje X graczy
HPOSP2 equ $D002
HPOSP3 equ $D003
;kolory graczy
COLPM2S equ $02C2 ;cien przepisywany w VBL
COLPM2 equ $D014
COLPM3S equ $02C3
COLPM3 equ $D015
;deklaracja rejestrow programowych na stronie 0
pozycja_x_p2_0 equ $B9 ;pozycja X player 2 w strefie 0
pozycja_x_p3_0 equ $BA ;pozycja X player 3 w strefie 0
pozycja_x_p2_1 equ $BB ;pozycja X player 2 w strefie 1
pozycja_x_p3_1 equ $BC ;pozycja X player 3 w strefie 1
kolor_p2_0 equ $C1 ;kolor playera 2 w strefie 0
kolor_p3_0 equ $C2
kolor_p2_1 equ $C3 ;kolor playera 2 w strefie 1
kolor_p3_1 equ $C4
start
;ustawienie przerwania DLI
lda #<dli
sta VDSLST
lda #>dli
sta VDSLST+1
;ustawienie przerwania VBLI
ldy #<vbli
ldx #>vbli
lda #$06
jsr jsetvblv
lda #128+64 ;wlaczenie DLI + VBL
sta NMIEN
;POCZATEK GLOWNEGO PROGRAMU
;jesli gdziekolwiek w programie
;chcemy zmienic pozycje lub kolor P2 lub P3
;w strefie 0 lub 1 to zamisujemy do rejestrow prgramowych:
;np.
lda #$0 ;czarny
sta kolor_p2_1
lda #55
sta pozycja_x_p2_1
;a przepisanie ich do odpowiednich rejestrow sprzetowych
;bedzie wykonane na przerwaniach
;KONIEC PROGRAMU GLOWNEGO
;-----------------------------------------
;przerwanie VBLI - synchro pionowej - w czasie gry
vbli
php
pha
;ustawiamy pozycje X dla P2 i P3 dla strefy 0
lda pozycja_x_p2_0
sta HPOSP2
lda pozycja_x_p3_0
sta HPOSP3
;ustawiamy kolory P2 i P3 dla strefy 0
lda kolor_p2_0
sta COLPM2S ;w vbli trzeba do cienia!
lda kolor_p3_0
sta COLPM3S
pla
plp
jmp sysvbv
dli
php
sta dli_1+1 ;zachowanie akumulatora
;
lda pozycja_x_p2_1 ;przed sta WSYNC zeby bylo szybciej
;wait__line
sta WSYNC ;zapis czegokolwiek
;ustawiamy pozycje X dla P2 i P3 dla strefy 1 - pod woda
sta HPOSP2
lda pozycja_x_p3_1
sta HPOSP3
;ustawiamy kolory P2 i P3 dla strefy 1
lda kolor_p2_1
sta COLPM2 ;tu trzeba do sprzetowego!
lda kolor_p3_1
sta COLPM3
;
dli_1
lda #0 ;automodyfikowany!
plp
rti
xxl:
@Nosty: PHP i PLP sa niepotrzebne w Twoich prockach przerwania.Od 1 do 16 z 16