Marca 28, 2024, 12:06:14 *
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 2 [3] 4 5 ... 11
  Drukuj  
Autor Wątek: Programowanie Nes'a (procesora 6502)  (Przeczytany 78597 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
dr00id88
Gość
« Odpowiedz #40 : Października 05, 2008, 13:17:06 »

No patrzac na twoje kody to wylaczasz ekran i wczytujesz grafike, a cala sztuka polega na wczytywaniu na wlaczonym ekranie, ale tak zeby sie nie spie**olil. To ze FCEU pozwala na zapis poza okresem VBlank bez wylaczania ekranu to nie znaczy tak bedzie na konsoli.
Zapisane
dr00id88
Gość
« Odpowiedz #41 : Października 05, 2008, 15:39:31 »

Testowalem takze wiele razy wczytywanie calej grafy PO calkowitym wylaczeniu PPUCTRL1 i 2, a wlaczajac PPUCTRL1/2 juz po wczytaniu - na konsoli smiga bez bledow.

A sztuka jest zeby ich nie wylaczac i popsuc grafiki w PPU.
Zapisane
siudym
Gość
« Odpowiedz #42 : Października 05, 2008, 18:16:57 »

Akurat nie wiem dlaczego 'sztuka' ? Smile Zarowno nie wlaczajac i wlaczajac kod dziala Wink Uzywalem obu sposobow. Obecnie uzywam z wylaczaniem, bo bardziej mi pasuje Wink
Zapisane
dr00id88
Gość
« Odpowiedz #43 : Października 05, 2008, 18:46:12 »

Akurat nie wiem dlaczego 'sztuka' ? Smile Zarowno nie wlaczajac i wlaczajac kod dziala Wink Uzywalem obu sposobow. Obecnie uzywam z wylaczaniem, bo bardziej mi pasuje Wink

To ze bardziej pasuje to rozumiem:) ale widze ze powinienes troche przegrzebac tematow na bbs nesdev. Niektorzy starzy wyjadacze znaja sie na rzeczy.
Zapisane
siudym
Gość
« Odpowiedz #44 : Października 06, 2008, 17:06:21 »

To juz sam nie wiem kto kogo nie rozumie... (widocznie patrzysz caly czas na moje stare testowe kody co sa na pierwszyst stronach tematu)
Mam praktycznie identyczny kod..

A tak na marginesie:

vblankwait1:       ; First wait for vblank to make sure PPU is ready
  BIT $2002
  BPL vblankwait1

vblankwait2:       ; Second wait for vblank to make sure PPU is ready
  BIT $2002
  BPL vblankwait2

na:

          JSR VBlankWait (uzywane gdzie potrzebne)

jako podprogram

VBlankWait:
  BIT $2002
  BPL VBlankWait
RTS


Wogole moje programy pisze uzywajac wielu podprogramow (JSR).

Na razie kodu nie pokazuje nikomu - wyszla mi prawie prosta gra z tego, wiec na chwile obecna cicho-sza. Wink

Mniejsza z tym... Mam pytanie dotyczace "The P65 Assembler" (Copyright (c) 2001,2 Michael Martin) - jak nim kompilowac? W paczkach sa same kody zrodlowe, czy to trzeba jakos skompilowac pod czyms czy jak...??

« Ostatnia zmiana: Października 06, 2008, 17:19:41 wysłane przez siudym » Zapisane
siudym
Gość
« Odpowiedz #45 : Października 06, 2008, 19:53:17 »

Jak uzywa sie P65???
http://nesdev.parodius.com/NES101.zip
http://hkn.eecs.berkeley.edu/~mcmartin/P65/

Huh? Czy plik "p65" (bez extension) trzeba skompilowac czy co? Czyli mam demko ale jak skompilowac to do .NES ??

Co i jak ma sciagnac ze strony www.perl.com ??

EDIT: Proste demko, obecnie pracuje nad dodaniem jakiegos sensu = typu zrzucanie bomb przez latajacy obiekt i unikanie ich przez bohatera, dodanie muzyczki, animacja postaci itd.
http://www.speedyshare.com/451394120.html


ps. uboga kolorystycznie (jedno-odcieniowa) grafa ma swoja racje bytu - ma byc klimat prostych gier na ZX Spectrum Wink




« Ostatnia zmiana: Października 07, 2008, 18:26:52 wysłane przez siudym » Zapisane
Senshu
Wspiera aktywnie
Major
*
Offline Offline

Wiadomości: 648


« Odpowiedz #46 : Października 07, 2008, 21:41:53 »

Podoba mi sie twoje zacięcie Siudym Smile wygląda na to ze niebawem bedziemy mieli pierwsza gre od człowieka z polskiej sceny  Huh? (pomiajac masmixa itp.)
Zapisane
Berion
Major
*****
Offline Offline

Wiadomości: 625



WWW
« Odpowiedz #47 : Października 08, 2008, 23:24:05 »

Coś Ty za obelgi wypisał?  Huh?


PS: Jakbyś potrzebował grafika do jakiegoś konkretnego projektu to daj znać.
Zapisane

FAQi:
| PSX | PS2 | PS3 | Xbox |
mog123
Chorąży
***
Offline Offline

Wiadomości: 221


WWW
« Odpowiedz #48 : Października 14, 2008, 23:18:33 »

co to za chip ten C1?
Zapisane

http://mog123x.blogspot.com/
Moje pięć groszy.
siudym
Gość
« Odpowiedz #49 : Października 14, 2008, 23:43:38 »

"Controller1" - pirackie MMC1 Wink Tak jak C3 to MMC3 Wink A siedzi i nic nie robi.. Odpalam na nim moje demka NROM.
Zapisane
mog123
Chorąży
***
Offline Offline

Wiadomości: 221


WWW
« Odpowiedz #50 : Października 15, 2008, 00:10:05 »

Nie chcesz zrobic dla niego truth table?Smile
Zapisane

http://mog123x.blogspot.com/
Moje pięć groszy.
siudym
Gość
« Odpowiedz #51 : Października 15, 2008, 23:09:06 »

Małe info dotyczące grafiki NES'a, przydatne jak ktoś nie jest w stanie załapac o co biega w tym wszystkim. Napisałem bardzo łopatologicznie, wiele się powtarzając, wszystko dla dobra sprawy. Mam nadzieję, ze komuś sie przyda...
,

Name Table to ogólnie widoczny cały ekran w pełnej rozdzielczości NES'a - 256x240 pixeli, który składa się z tablicy 32x30 Tiles'ów (każdy 8x8 pikseli). Name Table dokładnie ma rozmiar 1024 bajtów, a każdy bajt odpowiada jednemu Tiles'owi ( zawiera numer Tilesa znajdującego się w Pattern Table/CHR ROM). Kto potrafi liczyć, zapewne doszedł do pewnej niezgodności, bo skoro Name Table składające się z grupy 32x30 ma ich 960, to dlaczego ma rozmiar 1024 bajtów? Sprawa jest prosta - ostatnie 64 bajty to Attribute Table - tablica zawierająca dane kolorów z palety NES'a. Każdy bajt w Attribute Table odpowiada za grupę 4x4 Tilesów na ekranie - czyli kolejne podzielenie całego ekranu na tablice 32x32 pixele. Na tym nie koniec, taka tablica 32x32 pixele (4x4 Tiles'y) dzieli sie ponownie na cztery części - każda zwie się Square (0,1,2,3). Square składa się z 2x2 Tiles'ów (cztery Tiles'y). Każde Square może posiadać zdefiniowany w Attribute Table adres banku kolorów w palecie tła (16 wcześniej zdefiniowanych kolorów przez użytkownika w palecie tła). Cała paleta posiada zdefiniowane 32 kolory - 16 dla tła oraz drugie 16 dla sprite'ów.  Nas interesuje paleta tła, podzielona na cztery banki, każdy po 4 kolory. Jedno Square czyli kwadrat 2x2 Tilesy może mieć maksymalnie 4 kolory - tyle ile jeden bank w palecie. Właśnie po to jest Attribute Table. Innym słowem - nie można zrobic obiektu 16x16 pixeli np. drzewa używajac więcej niż 4 kolory. Takie ograniczenie ma NES (pomijam wieksze możliwosci dodane przez sprzętowe kontrolery pamięci).
Aha.. Attribute Table można sobie w kodzie zrobic, a Name Table np. jako plik 960 bajtowy. Jednak przydatniej miec wszystko w jednym pliku.

Tablice atrybutów posiada także Sprite. Jest ona nieco inna, posiada wiecej możliwości. Pamięc przeznaczona na Sprite'y to 256 bajtów - jedna ze "stron" pamięci WRAM (2KB). Nie jest ona na stałe nigdzie, trzeba ja zaadresowac używając jeden z rejestrów za to odpowiedzialny ($2003, ale nie będę zagłębiał się, bo to nie tutorial ASM Wink )


Teraz przedstawie to obrazkowo, sporo się powtarzając ;P

Name Table. Różnica między PAL a NTSC nie jest niczym specjalnie trudnym do zrozumienia. NT jest taka sama dla PAL jak i NTSC, jedyną ważniejszą różnicą jest brak wyświetlanych górnych i dolnych 8 pikseli obrazu. Więc projektując coś pod NTSC należy pamiętac, aby nie "malowac" tam nic ważnego, ponieważ w NTSC na ekranie nię będzie to widoczne. Rozmiar jest ten sam dla PAL/NTSC czyli 1024 bajty, z czego 960 to 32x30 Tiles'ów i na końcu 64 bajty atrybutów kolorów.



Każdy bajt w Name Table to 8-bitowy (czyli 1bajt) numer Tiles'a znajdującego się w CHR ROM (Pattern Table inaczej - bo CHR ROM to właśnie PATTERN TABLE).
Ilośc Tiles'ów w Pattern Table dla tła (tak, tła, bo te 8KB CHR jest podzielone na połowę - jedna dla Sprajtów a druga dla Tła) to 256. Oczywiście 'numerki' zapisane w hex'ach, czyli pierwszy Tiles to 00 a ostatni FF.
Polecam Windows'owski kalkulator przestawiony na "Widok Naukowy" - ma świetne opcje przeliczania różnych wartości na binarne, Hex, dec. itd. W obie strony.



Każdy jeden bajt w Attribute Table odpowiada za przypisanie odpowiedniego banku kolorów z Palety tła do grupy 4x4 Tiles'ów. Tych bajtów atrybutów jest 64 sztuki, tyle co na ekranie jest grup 4x4 (32x32 pix). Taka grupa 4x4 dzieli się ponownie na cztery części, czyli cztery grupki 2x2 tilesów zwane SQUARE. Na cztery części dzieli się także bajt, dając nam możliwośc zmiany kolorów każdej grupce 2x2 osobno (każdej Square).





Tutaj mamy przedstawione wszystko najprościej. Na ekranie (w Name Table) wstawiliśmy cztery takie same grzybki, jednak dzięki Attribute Table zmienione zostały banki kolorów na cztery różne dla każdej Square (Grzybek to akurat jedne Square 2x2 Tiles). Teraz każdy grzybek (każde Square) ma inne kolory (mimo, ze fizycznie sa identyczne).




Pattern Table. To nic innego jak CHR ROM. NROM może zaadresowac tylko 8KB danych CHR, które są podzielone na dwie części. Jedna (pierwsze 4KB) to cała grafika (256 Tiles'ów) przeznaczonych na Sprajty. Drugie 4KB to cała grafa przeznaczona na tła (także 256 sztuk Tiles'ów). Podział nie jest na stałe i można go zmienic np. grafika tła będzie piewszymi 4KB, a sprajty drugie. Wszystko zmieniamy w rejestrze kontrolującym PPU. Jednak przyjeło się, ze pierwsze to SPR, a drugie BGR (BKG). Jak juz pisałem wcześniej, każdy z 256 Tilesów ma swój adres/numer od 00 do FF (1-256) i dzięki temu można bardzo szybko przypisac cos w kodzie do danego Tiles'a. Przypomina to układanie porozwalanych puzli (Pattern Table) w całośc (Name Table).






Sprites. Zabawa ze sprajtami przypomina nieco to, co robimy z grafiką tła.
Nie ma tylko czegoś takiego jak Name Table dla sprajtów, wszystkie sprajciki definiujemy nieco inaczej. Wszystkich sprites może byc max. 64 sztuki, każdy ma swoje 4 bajty atrybutów, a wszystko mieści się w 256 bajtach pamieci WRAM.




Zapisane
bemberg
Gość
« Odpowiedz #52 : Października 15, 2008, 23:20:36 »

Jak już się tyle naharowałeś to może jednak pokusisz się o tutek? Taki od podstaw, wraz z narzędziami, wtedy na pewno więcej osób zajmie się asm...
Zapisane
Berion
Major
*****
Offline Offline

Wiadomości: 625



WWW
« Odpowiedz #53 : Października 16, 2008, 14:31:47 »

Tutorial do czego? Pisania w ASM6505 czy w ogóle ASM jako taki? Jest tego pełno w sieci, ale fakt, przydałby się taki w którym wymienione byłyby różnice pomiędzy 6505 a np. x86.
Zapisane

FAQi:
| PSX | PS2 | PS3 | Xbox |
siudym
Gość
« Odpowiedz #54 : Października 16, 2008, 16:14:32 »

Jak do czego? Nauczyc sie ASM 6502 jedno, a zakumac sens dzialania grafiki NES'a to drugie. Znajac ASM 6502 a nie znajac dzialania grafy nic nie zrobisz.
Zapisane
dr00id88
Gość
« Odpowiedz #55 : Października 16, 2008, 17:54:36 »

Jak do czego? Nauczyc sie ASM 6502 jedno, a zakumac sens dzialania grafiki NES'a to drugie. Znajac ASM 6502 a nie znajac dzialania grafy nic nie zrobisz.

takich tutkow jest od licha na nesdev. a i tak bez podstawowej znajomosci assemblera nie masz co zaczynac. musisz potrafic myslec jak procesor:)
Zapisane
siudym
Gość
« Odpowiedz #56 : Października 16, 2008, 18:40:56 »

Tutoriali ASM jest sporo, dlatego go nie robie. Jednak informacje na temat grafiki moga byc trudne do opanowania jak ktos zaczyna, zwlaszcza napisane po angielsku, dlatego zrobilem tutorial do grafiki w łopatologiczny sposob.
Zapisane
Berion
Major
*****
Offline Offline

Wiadomości: 625



WWW
« Odpowiedz #57 : Października 16, 2008, 21:40:05 »

Toć wyżej napisałem odpowiedź na post bemberga, nie Twój mości Siudym. Wink
Zapisane

FAQi:
| PSX | PS2 | PS3 | Xbox |
bemberg
Gość
« Odpowiedz #58 : Października 18, 2008, 02:15:48 »

No chyba jeżeli napisałem o tutorialu pod postami ociekającymi specyfikacją nesa, wiec raczej nie chodziło mi o samego asm Smile Myślałem nad czym takim, jak opisanie krok po kroku jak napisać proste demko, skompletować jakieś narzędzie i przedstawić to po polsku, a może do kogoś nie dochodzą obcojęzyczne tutoriale :p Nie powstało jeszcze nic takiego, więc myślę że warto byłoby spróbować, jeżeli oczywiście siudym ma czas i chęci Smile
Zapisane
siudym
Gość
« Odpowiedz #59 : Października 25, 2008, 15:10:24 »

A idz pan... http://www.siudym.gower.pl/nes_demo_3.nes
Na emu ok, sa dzwieki VRC6, nagrane demo na dev-cart z ukladem VRC6 i dupa, nic nie slychac...
Pobawie sie z VRC7, ciekawe czy cokolwiek zagra na karcie z VRC7 i konsoli :/
Zapisane
Strony: 1 2 [3] 4 5 ... 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.049 sekund z 19 zapytaniami.