Lipiec 19, 2019, 09:58:43 *
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności:
Nowa strona główna  : http://www.emunes.pl
Zapraszamy do testowania !

Chat: http://chat.emunes.pl
Galeria cartów: http://carts.emunes.pl
 
   Strona główna   Pomoc Zaloguj się Rejestracja  

Reklama
Strony: 1 ... 8 9 [10] 11
  Drukuj  
Autor Wątek: Programowanie Nes'a (procesora 6502)  (Przeczytany 56675 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
Dizzy9
Nadworny programista.
Kapitan
****
Offline Offline

Wiadomości: 351



WWW
« Odpowiedz #180 : Październik 27, 2013, 11:22:36 »

Cytuj
Tzn jak po INC robilo sie DEC to sie oba wykonywaly i stalo to w miejscu albo drgalo itd.
Nie widzę kodu, ale zgaduję że dalej porównywałeś do stałej. Zastosuj licznik.
Zakładamy że:

Zmienne:
XGracz-Obecna pozycja Gracza na osi X
YGracz-Obecna pozycja Gracza na osi Y.
XPrawo-Ile pikseli ma pojechać w Prawo
XGora-Ile pikseli ma pojechać w Górę
-XGracz i YGracz to $203 i $200
-Koordynaty są już zapisane do RAMu przed wykonaniem kodu.
-Przed rozpoczęciem kodu w NMI, XPrawo wynosi 0x80(można by zapisać w tym miejscu,
 gdzie zapisujemy koordynaty początkowe gracza.

Pisane na szybko(i tak by profesor nie widział... Wink ), bo jestem na zajęciach na uczelni, ale powinno być ok:
Kod:
NMI:
LDA #$00
STA $2003

LDA #$02
STA $4014 ;Wyslij całą stronę RAMu do pamięci spritów(OAM)

JSR Track ;Ruszaj spritem

RTI

Track:
lda XPrawo
cmp #$00
beq Track.Gora ;skocz, jeśli gracz NIE ma ruszyć sie w prawo.

dec XPrawo ;Zmniejsz licznik poruszania się w prawo
inc XGracz ;zwiększ pozycję gracza na osi X

lda XPrawo ;Sprawdza czy po poruszeniu graczem,
cmp #$00 ;Licznik XPrawo zmienił się na 00.
bne Track.end ;Jeśli nie to skocz...jeśli tak to zostań

lda #$80
sta YGora ;Ustaw licznik dla ruchu w górę.

jmp Track.end ;Skocz do zakończenia poruszania graczem.

Track.Gora: ;Skoczyliśmy tutaj, bo ma się nie ruszać w prawo.
;A to znaczy ze jedyną opcją jest ruch w górę...
dec XGora ;Zmniejsz licznik ruszania się w górę.
dec XGracz ;Zmniejsz pozycję gracza na osi Y.

lda YGora
cmp #$00
bne Track.end ;Jeśli NIE skończyło ruszać graczem w górę...

lda #$80
sta XPrawo ;Ustaw by gracz przejechał 80 pikseli w prawo.

Track.end:
rts ;Zakończ kod ruszania graczem.
Są też inne sposoby, bardziej profesjonalne, ale najpierw ogarnij to.
Wogóle, cieszę sie ze dochodzi kolejny polski koder na NES Wink
Zapisane

siudym
Gość
« Odpowiedz #181 : Październik 27, 2013, 12:17:05 »

Dzieki Smile Ja wlasnie obecnie staram sie proste metody ogarnac, aby je zrozumiec Smile
Kod caly w linku dalem wczesniej, ale ogolnie to co najwazniejsze wkleilem.
Zapisane
dr00id88
Gość
« Odpowiedz #182 : Kwiecień 13, 2014, 15:16:33 »

http://gutomaia.net/pyNES/
Zapisane
retRoben
Gość
« Odpowiedz #183 : Lipiec 09, 2014, 15:00:32 »

Można prosić o NesASMPL.pdf ?
Zapisane
Verteks
Kapral
**
Offline Offline

Wiadomości: 78


« Odpowiedz #184 : Lipiec 23, 2014, 20:09:27 »

Panowie, przydałaby mi się wasza pomoc. Nie mam pojęcia, w jaki sposób podmieniać nametable (całe 1KB na raz) - mógłby mi ktoś przedstawić plan działania krok po kroku? Mam dwa ekrany - jeden pełni rolę titlescreenu, a drugi ekranu rozgrywki. Aby odpalić grę, trzeba wcisnąć start. Następnie program ma podmienić całe tło.
Przejrzałem już wiele tutków z NintendoAge i NesDev, dotychczas wszystkie zagadnienia potrafiłem pojąć i zastosować w praktyce, a nad tym siedzę już któryś dzień z kolei studiując kody źródłowe i kombinując, gdzie i jak ładować tło - zawsze skutek jest taki, że program się zawiesza. Znalazłem tyle, że trzeba wyłączyć renderowanie ekranu w $2001, dodatkowo trzeba stworzyć zmienną, która wyskakuje z NMI, gdy program jest zajęty. Do tego mam już przygotowaną procedurę ładującą tło z odpowiedniego adresu zapisanego w tablicy na podstawie zmiennej - tylko nie mam, co z nią zrobić oprócz załadowania pojedynczego ekranu.
Zapisane
Koks
Major
*****
Offline Offline

Wiadomości: 580



« Odpowiedz #185 : Lipiec 24, 2014, 11:10:41 »

Nie bardzo rozumiem. Aktywne nametable można wybierać dwoma najmłodszymi bitami portu $2000.
Zapisane

Częste mycie skraca życie.
"If you have a fast, shiny new Pentium II, you might try using 44 kHz for the ultimate in sound quality." - readme od Unreala
https://drive.google.com/folderview?id=0B2TXQD5v-ZIVfjVQdTl2TTZiWmJ2LWZJajJzS0V4cDZBay04WjVGQkdQdnBDQzRlYkdQVGc&usp=sharing
Verteks
Kapral
**
Offline Offline

Wiadomości: 78


« Odpowiedz #186 : Lipiec 24, 2014, 11:50:04 »

Kod z danymi poszczególnych nametable:
Kod:
.bank 1
  .org $E000
nametableStart:
  .incbin "NAM/titleflower.nam"
nametableRoom1:
  .incbin "NAM/room1.nam"

gamerooms:
  .dw nametableStart
  .dw nametableRoom1
Pliki *.nam, to nametable o rozmiarach 32x30 + atrybuty (całość to 1KB). Na razie są dwa, ale będzie ich więcej.
Na początku programu ładuję nametable spod adresu nametableStart (JSR LoadBackground):
Kod:
vblankwait2:       ; First wait for vblank to make sure PPU is ready
  BIT $2002
  BPL vblankwait2

  JSR LoadBackground

  LDA #%10010000   ; enable NMI, sprites from Pattern Table 0, background from Pattern Table 1
  STA $2000

  LDA #%00011110   ; enable sprites, enable background, no clipping on left side
  STA $2001

  LDA #TITLESCREEN
  STA gamemode
  ... ; dalej jest pętla główna programu
Podprogram LoadBackground ładuje całe nametable (1KB) spod adresu nametableStart w ten sposób:
Kod:
LoadBackground:
  LDA #$01
  STA updating_background              ;"disable" NMI

  LDA #%00000110                       ;disable sprites, disable background, no clipping on left side
  STA $2001

  LDA $2002             ; read PPU status to reset the high/low latch
  LDA #$20
  STA $2006             ; write the high byte of $2000 address
  LDA #$00
  STA $2006             ; write the low byte of $2000 address

  LDY gameroom
  LDA gamerooms, y ; Laduje adres wskazujacy na poczatek danego nametable
  STA pointerLo       ; put the low byte of the address of background into pointer
  ; INY po to, aby zaladowac adres konczacy dane nametable
  LDA gamerooms+1, y ; Laduj adres wskazujacy na koniec danego nametable (ktory zarazem jest poczatkiem kolejnego nametable)
  STA pointerHi       ; put the high byte of the address into pointer

  LDX #$00            ; start at pointer + 0
  LDY #$00
OutsideLoop:
 
InsideLoop:
  LDA [pointerLo], y  ; copy one background byte from address in pointer plus Y
  STA $2007           ; this runs 256 * 4 times
 
  INY                 ; inside loop counter
  CPY #$00
  BNE InsideLoop      ; run the inside loop 256 times before continuing down
 
  INC pointerHi       ; low byte went 0 to 256, so high byte needs to be changed now
 
  INX
  CPX #$04
  BNE OutsideLoop     ; run the outside loop 256 times before continuing down

  LDA #$00                             ;"enable" NMI
  STA updating_background

  RTS
Mój problem polega na tym, że JSR LoadBackground jest wykonywane tylko raz - dla pierwszego ekranu i nie wiem, gdzie po raz kolejny wstawić JSR LoadBackground, żeby podmienić całą zawartość jednej z dwóch nametable. Próbowałem umieścić w głównej pętli programu, bądź w NMI, ale program zawsze łapię zwieche po przesłaniu ~180 bajtów.
W żołnierskich słowach - mam kilka nametable i w trakcie działania programu chce je w całości podmieniać (program nie używa przewijania tła).

Zapisane
Koks
Major
*****
Offline Offline

Wiadomości: 580



« Odpowiedz #187 : Lipiec 24, 2014, 12:07:50 »

gameroom jest ustawione na 2?
NMI nie psuje zawartości rejestrów?

edit: odtwarzanie muzyki mogłoby też nadpisywać wskaźnik.
« Ostatnia zmiana: Lipiec 24, 2014, 12:23:04 wysłane przez Koks » Zapisane

Częste mycie skraca życie.
"If you have a fast, shiny new Pentium II, you might try using 44 kHz for the ultimate in sound quality." - readme od Unreala
https://drive.google.com/folderview?id=0B2TXQD5v-ZIVfjVQdTl2TTZiWmJ2LWZJajJzS0V4cDZBay04WjVGQkdQdnBDQzRlYkdQVGc&usp=sharing
Dizzy9
Nadworny programista.
Kapitan
****
Offline Offline

Wiadomości: 351



WWW
« Odpowiedz #188 : Lipiec 24, 2014, 14:13:52 »

Tak, jak pisze koksu. Jeśli zechcesz załadować drugi ekran, to musi mieć on numer 02. Trzeci będzie miał numer 04, czwarty 06 itp. To dlatego że w tablicy pointerów jeden ekran to dwa bajty.
Choć, oczywiście możesz zrobić:
Kod:
LDA gameroom
 ASL A
 TAY
 LDA gamerooms, y ; Laduje adres wskazujacy na poczatek danego nametable
Wtedy każdy pokój będzie miał każdy kolejny numer.

Przydałoby się jakbyś podał też co się dzieje w NMI. Albo w ogóle cały zip z plikami projektu.

Cytuj
program zawsze łapię zwieche po przesłaniu ~180 bajtów.
Ciężko to stwierdzić bez pełnego kodu, ale powinieneś zawsze wyłączyć ekran przed wypisywaniem czegokolwiek do PPU (Grafika, palety, nametable, atrybuty)...czekanie na Vblank też by było przydatne.
A co do samego czekania na Vblank, to słyszałem że sposób którego używasz może być zawodny. Nie, nie na emulatorach, tylko na prawdziwym sprzęcie. Lepiej jest ustawić zmienną na koniec NMI, czyli coś takiego:

Kod:
NMI:
;;;;kod NMI;;;;;
 inc Vblank

 rti
A potem przy czekaniu na Vblank:
Kod:
VbWait:
 lda #$00
 sta Vblank
VbWait.loop:
 lda Vblank
 beq VbWait.loop

 rts

Chcesz podmienić nametable po naciśnięciu start?
Pseudocode, bo nie mam twoich źródeł i nie wiem co jak się nazywa:
Kod:
Pętla główna:
 Czekaj na Vblank
 Czyść sprity
 Ustaw sprity
 Sprawdź sterowanie
    jeśli naciśnięto START to skocz do "Zmiana ekranu"

 Skocz do "Pętla główna"

Zmiana ekranu:
 Wyłącz ekran
 Czekaj na Vblank
 Załaduj nowe Nametable
 Czekaj na Vblank
 Włącz ekran

 Skocz do...;;;;;;;;;;;;;gdzies tam, bo nie wiem, co ma dalej się dziać
Mam nadzieję, że odpisałem w miarę zrozumiale, co dość rzadko mi się zdarza...;\
Zapisane

Verteks
Kapral
**
Offline Offline

Wiadomości: 78


« Odpowiedz #189 : Lipiec 24, 2014, 15:24:18 »

Wygląda na to, że program działa jak należy - Koks podał rozwiązanie problemu. Ustawiałem gameroom na 1, a nie na 2 - zapomniałem o tym, że to dwubajtowe "słowo".

...NMI nie psuje zawartości rejestrów?

edit: odtwarzanie muzyki mogłoby też nadpisywać wskaźnik.
Dźwiękami się jeszcze nie bawiłem.
1. Co masz na myśli pisząc psucie zawartości rejestrów? Aby się przed tym ochronić, to trzeba przy wywołaniu przerwania NMI odkładać wartości rejestrów i przywracać po wyjściu? Czy mylę pojęcia?
2. W jaki sposób odtwarzanie muzyki może nadpisać wskaźnik?

A co do samego czekania na Vblank, to słyszałem że sposób którego używasz może być zawodny. Nie, nie na emulatorach, tylko na prawdziwym sprzęcie. Lepiej jest ustawić zmienną na koniec NMI, czyli coś takiego...
A to nie wiedziałem, wiele kodów z przykładami które studiowałem ma czekanie na VBlank na początku NMI.

Chcesz podmienić nametable po naciśnięciu start?
Pseudocode, bo nie mam twoich źródeł i nie wiem co jak się nazywa:
Kod:
Pętla główna:
 Czekaj na Vblank
 Czyść sprity
 Ustaw sprity
 Sprawdź sterowanie
    jeśli naciśnięto START to skocz do "Zmiana ekranu"

 Skocz do "Pętla główna"

Zmiana ekranu:
 Wyłącz ekran
 Czekaj na Vblank
 Załaduj nowe Nametable
 Czekaj na Vblank
 Włącz ekran

 Skocz do...;;;;;;;;;;;;;gdzies tam, bo nie wiem, co ma dalej się dziać
Mam nadzieję, że odpisałem w miarę zrozumiale, co dość rzadko mi się zdarza...;\
W moim kodzie rolę "Zmiana ekranu" pełni podprogram LoadBackground (patrz mój ostatni post, ostatni kod). Zamiast czekania na VBlank mam tą zmienną updating_background. Tak to wygląda:
Kod:
NMI: ; początek NMI, te komendy poniżej są od razu na początku, gdy ekran ma być odświeżany
  LDA updating_background          
  BNE skip_graphics_updates
Kod:
LoadBackground:
  LDA #$01
  STA updating_background              ;"disable" NMI
  ... ; procedura ładowania tła
  LDA #$00                             ;"enable" NMI
  STA updating_background
Jaka jest różnica pomiędzy metodą powyższą, a zastosowaniem dwóch VBlank'ów? Rozumiem, że dwa VBlanki pełnią przy ładowaniu backgroundu taką samą rolę jak po resecie?
« Ostatnia zmiana: Lipiec 24, 2014, 15:32:18 wysłane przez Verteks » Zapisane
siudym
Gość
« Odpowiedz #190 : Listopad 17, 2014, 21:25:55 »


Czy ktos moze zna jakis temat na forum.nesdev czy innych gdzie poroszono i rozpisano nieco sprawy skakania sprite'a? Chce jakos ugryzc temat, ale nie wiem od czego zaczac. Przydalaby sie jakas rozpiska czy ogolna schematyka skoku co i jak. Za wszelkie info z gory dzieki.
« Ostatnia zmiana: Listopad 29, 2014, 10:48:25 wysłane przez siudym » Zapisane
Dizzy9
Nadworny programista.
Kapitan
****
Offline Offline

Wiadomości: 351



WWW
« Odpowiedz #191 : Listopad 18, 2014, 01:27:39 »

Żeby gracz\obiekt mógł skakać najpierw musisz mieć jakąś formę grawitacji. Na początek sprawdzaj czy tiles pod obiektem jest pusty, jeśli tak to dodawaj do pozycji Y obiekty. Jak już to będziesz miał, to wtedy możesz zrobić skakanie.
Najpierw sprawdzanie czy gracz powinien skoczyć.
Kod:
1.Sprawdź czy gracz nacisnął skok
     Jeśli nie, idź do punktu 4
     Jeśli tak, kontynuuj
2.Sprawdź, czy gracz stoi na jakimś bloku\drabinie czy czymś.
     Jeśli nie, idź do punktu 4
     Jeśli tak, kontynuuj
3.Nadaj jakieś zmiennej jakąś wartość (np. 10)
4.Zakończ funkcję

A potem tylko:
Kod:
1.Sprawdzaj czy rzeczona zmienna większa niż zero
     Jeśli nie, idź do punktu 5
     Jeśli tak, kontynuuj
2.Sprawdź czy nad głową gracza jest jakiś blok(nie pusty tiles)
     Jeśli tak, idź do punktu 6
     Jeśli nie, kontynuuj
3.Odejmij od koordynatu Y obiektu (Obiekt bedzie się wznosił do góry)
4.Odejmij jeden (lub więcej) od zmiennej do której zapisałeś w poprzedniej funkcji.
5.Zakończ funkcję

6.Zapisz 0 do zmiennej do której wcześniej zapisałeś 10.
7.Zakończ funkcję

Używając takiego kodu, obiekt bedzie skakał na wysokość 10 pikseli.

Jest to najprostsza metoda jaką mogę wymyślić, jak coś, to pytaj śmiało.
« Ostatnia zmiana: Listopad 18, 2014, 01:34:01 wysłane przez Dizzy9 » Zapisane

siudym
Gość
« Odpowiedz #192 : Listopad 22, 2014, 19:06:57 »

Dzieki - najpierw o cos takiego mi chodzilo.

Interesuje mnie metoda skoku Jet Set Willy.
<a href="http://www.youtube.com/watch?v=55kya95mvPM" target="_blank">http://www.youtube.com/watch?v=55kya95mvPM</a>

W koncu dobry programik do nametable znalazlem - 8nam, kiedys go uzywalem, ale zapomnialem o nim calkiem. Nawet wygodny i uzywa NT ATTR.


Na szybko ekranik namalowany.

EDIT:
Sporo zapomnialem przez ten czas, dzis siedzialem nieco grzebiac w nesasm. A takie demko sklecilem ograniczajace ruch obiektu.
https://www.dropbox.com/s/atitvfwjh264tno/democage.nes?dl=0


Demko pokazujace plynne animowanie roznych SPR - wczesniej mialem problem, bo udalo mi sie zrobic to tylko z pierwszym SPR, a kolejne juz nie. Teraz jest ok i mozna nimowac dowolna ilosc.
https://www.dropbox.com/s/dpz58trf2zfgjt2/anim.nes?dl=0


<a href="http://www.youtube.com/watch?v=9T3a4l10MHA" target="_blank">http://www.youtube.com/watch?v=9T3a4l10MHA</a>
« Ostatnia zmiana: Listopad 24, 2014, 21:38:13 wysłane przez siudym » Zapisane
siudym
Gość
« Odpowiedz #193 : Listopad 26, 2014, 01:56:43 »

Niestety jestem kiepski z nauk scislych, ale powoli coraz wiecej ogarniam. Obecnie rozgryzam temat grawitacji. Na ta chwile proste efekty, ale zawsze do przodu Smile

https://www.dropbox.com/s/4ajxpj8disqyt51/gravity.nes?dl=0

<a href="http://www.youtube.com/watch?v=ezoGgV2_BsE" target="_blank">http://www.youtube.com/watch?v=ezoGgV2_BsE</a>

Demko pokazujace skaczacego SPRITE'a. Taki wstepny silnik umozliwiajacy skakanie postacia.
https://www.dropbox.com/s/kcznyiy1vxxp854/jumper.nes?dl=0
<a href="http://www.youtube.com/watch?v=xvOEraXZJY8" target="_blank">http://www.youtube.com/watch?v=xvOEraXZJY8</a>

Demo pokazujace skaczacego SPRITE jak wyzej +  wczesna wersja detekcja kolizji z potworkiem (sa bugi, ale to pierwszy raz). Skaczac go omijamy, jak dotyka giniemy o resetuje sie od nowa.
https://www.dropbox.com/s/lxopqu3i0cn3546/jumperenemy.nes?dl=0

<a href="http://www.youtube.com/watch?v=cE_886mLXJs" target="_blank">http://www.youtube.com/watch?v=cE_886mLXJs</a>
« Ostatnia zmiana: Listopad 26, 2014, 23:42:23 wysłane przez siudym » Zapisane
Hilfer
Kamerdyner Pegasus
Kapitan
****
Offline Offline

Wiadomości: 264

Zwany również jako Pomocznik xD


« Odpowiedz #194 : Listopad 27, 2014, 17:34:18 »

Hmm może nie do końca NES,ale postaram się jakoś wrzucić książkę co znalazłem Jan Ruszyc - "Informatyka mikrokomputerowa - Asembler 6502" jako pdf , książka z mojej uczelnianej biblioteki jako jedyna o 6502, limity czasowe mnie wkurzają, więc zrobię pdf Smile
Zapisane

Hilfer heiße ich, möchte ich helfen dich Smile
siudym
Gość
« Odpowiedz #195 : Listopad 27, 2014, 20:13:07 »

Przeciez ona w necie jest dostepna bezproblemowo, czy to PDF czy TXT lub DJV. Google wypluwa pelno linkow.
Ja mam swoja kiedys zakupiona, ale wersja elektroniczna przydatna bo nie zawsze ma sie pod reka.
Zapisane
Hilfer
Kamerdyner Pegasus
Kapitan
****
Offline Offline

Wiadomości: 264

Zwany również jako Pomocznik xD


« Odpowiedz #196 : Listopad 27, 2014, 20:33:40 »

Przeciez ona w necie jest dostepna bezproblemowo, czy to PDF czy TXT lub DJV. Google wypluwa pelno linkow.
Ja mam swoja kiedys zakupiona, ale wersja elektroniczna przydatna bo nie zawsze ma sie pod reka.

Wybacz Siudym, lecz szukałem kiedyś i nic nie znalazłem sama kupa Smile Wolę, więc właśnie wstawić tutaj Smile
Zapisane

Hilfer heiße ich, möchte ich helfen dich Smile
siudym
Gość
« Odpowiedz #197 : Listopad 27, 2014, 20:47:43 »

Z 6502PL polecam bardzo przyjaznie opisany tutek:
http://c64power.com/index.php/artykuly/45-assembler

Co do ksiazki:
http://atarionline.pl/biblioteka/materialy_ksiazkowe/Asembler%206502%20(v1).pdf
http://tajemnice.atari8.info/ksiazki/zipped/Asembler_6502_oryginalna.zip
http://tajemnice.atari8.info/ksiazki/zipped/Asembler_6502_poprawiona.zip
http://www.serious-dial.atari.pl/pliki/ksiazki/pl/Asembler_6502.zip
http://atarionline.pl/biblioteka/materialy_ksiazkowe/Jezyki_Atari%20XL_XE_cz.1.djvu

A tu fajna ksiazka, ktora tez posiadam kiedys kupiona:
Microprocesor 6502 i jego rodzina.
http://www.serious-dial.atari.pl/pliki/ksiazki/pl/Microprocesor_6502.zip
Bardziej sprzetowo 6502, ale warto miec.
« Ostatnia zmiana: Listopad 27, 2014, 20:51:46 wysłane przez siudym » Zapisane
mustwearkhakies
Gość
« Odpowiedz #198 : Listopad 27, 2014, 23:36:45 »

Kod:
Siudym wrócił do kodowania! YESSSSSss!!!1

Dobra robota Siudym, oby tak dalej, od zawsze podobały mi się Twoje klimaty, heh, mam nadzieje, że dasz radę coś przed/na zlot napisać i nam zaprezentować ;-)
Zapisane
siudym
Gość
« Odpowiedz #199 : Listopad 29, 2014, 22:18:34 »

Bardzo prosta mini gra, jest zabugowana Cheesy crazy I tak sam siebie podziwiam, ze cokolwiek ogarniam w NESASM.
https://www.dropbox.com/s/91nb9oicsstmo57/hide%21game.nes?dl=0

<a href="http://www.youtube.com/watch?v=zO_V-4_Joig" target="_blank">http://www.youtube.com/watch?v=zO_V-4_Joig</a>

Demko przedstawiajace inne skakanie sprite. Nic specjalnego, ale staralem sie aby skok wzglednial wzniesienie, spadal sam z niego itd. Jest masa bledow:
https://www.dropbox.com/s/uuymjikryb0b5xj/jmpspr2.nes?dl=0

<a href="http://www.youtube.com/watch?v=Sud-1BVGXlg" target="_blank">http://www.youtube.com/watch?v=Sud-1BVGXlg</a>

A to demko "MULTI ROOM WALKER" - albo Multi NT Load Smile Tu idziemy SPRITE'm przez 8 NameTables:
https://www.dropbox.com/s/nkpa2awh28md028/multiroom.nes?dl=0

<a href="http://www.youtube.com/watch?v=Stpx8KbOEyY" target="_blank">http://www.youtube.com/watch?v=Stpx8KbOEyY</a>

Pseudo-DualBGR demo:
(dzieki D9 za fix)
https://www.dropbox.com/s/7rj8yz5fbb7iyj6/dualbgrscrl.nes?dl=0
https://www.dropbox.com/s/5ns070yt1pa5eo2/demoscrl2.nes?dl=0


<a href="http://www.youtube.com/watch?v=Kd2KfLNNvZY" target="_blank">http://www.youtube.com/watch?v=Kd2KfLNNvZY</a>
« Ostatnia zmiana: Grudzień 20, 2014, 15:03:34 wysłane przez siudym » Zapisane
Strony: 1 ... 8 9 [10] 11
  Drukuj  
 
Skocz do:  

Działa na MySQL Działa na PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Prawidłowy XHTML 1.0! Prawidłowy CSS!
Strona wygenerowana w 0.069 sekund z 19 zapytaniami.