Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > hr.comp.programiranje.java > #25
| From | Chupo <bad_n_mad@yahoo.com> |
|---|---|
| Newsgroups | hr.comp.programiranje, hr.comp.programiranje.java |
| Subject | Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? |
| Date | 2017-07-18 00:37 +0200 |
| Organization | Noname d.o.o. |
| Message-ID | <MPG.33d75a81ee98a98098afae@news.t-com.hr> (permalink) |
| References | (7 earlier) <okak2v$cql$1@sunce.iskon.hr> <MPG.33d2fff662f7988698afa9@news.t-com.hr> <okfc5i$vtn$1@sunce.iskon.hr> <MPG.33d58695c85cc16a98afad@news.t-com.hr> <oki3vr$2tl$1@sunce.iskon.hr> |
Cross-posted to 2 groups.
In article <oki3vr$2tl$1@sunce.iskon.hr>, Bruno Babic <a@b.c> says... > Napisao si puno toga sto je meni sve jasno i na cemu sam odrasao... ipak > sam svojedobno rasturao na C64, rezultat cega je cak i jedna "konkretna" > igra (http://iscro.com/stuff/retro/c64/atomix.t64) Covjece, ovo je vrhunski!! :-) Svaka cast!! Imao sam na jednom od hard diskova Frodo i program radi odlicno. Vidim da si koristio stvari za koje je potrebna single cycle emulacija jer u frodo.exe i frodopc.exe intro ne radi ispravno. Linije se na granici border-a i ekrana ne spajaju nego se vide stepenice a kad se pokrene s frodo.exe onda fali donji dio naptpisa 'Atomix' i donji polovica texta 'Issie SW 1994' se stalno pomice desno pa skace na pocetno mjesto. Ali u frodosc.exe sve radi bez greske. Jedva sam se sjetio: LOAD"$",9 LIST LOAD"ATOMIX",9,1 Osmica je mapirana na folder s primjerima koji dolaze s emulatorom pa sam koristio devetku. Znaci dobar si u 6502 :-) Ja sam s 12 godina poceo uciti Z80 assembler i za vrijeme visih razreda osnovne sam uz pisanje grafickih rutina i rutina za zvuk za Spectruma pratio sve sta je o Z80 bilo u Racunarima, Svetu kompjutera i manje u Moj Mikro i plus toga proanalizirao kompletan Spectrumov ROM ukljucujuci i rutine za aproximaciju trigonometrijskih funkcija koje onda jos nisam mogo shvatiti (Taylorovi redovi, Cebisevljvi polinomi), odnosno shvacao sam kako te rutine rade ali onda jos nisam znao kako je moguce da se na takav nacin dobije relativno tocna vrijednost sinusa i jos nekih funkcija pomocu kojih se onda racunaju sve ostale. Vjerojatno znas da Spectrum nema hardware-ske sprite-ove i da svo iscrtavanje za svaki frame moras raditi software-ski a organizacija Spectrumove memorije je poznata po svemu samo ne po jednostavnoj layout-u (mada ima i puno kompliciranijih mapiranja). Na pisanju rutina koje sprite-ove iscrtavale tako da su prvo spremale pozadinu pa onda radile AND izmedju maske i pozadine, pa OR izmedju rezultata i definicije 'sprite' (i u sljedecem frame-u vracale spremljenu pozadinu) se je moglo stvarno puno nauciti. Nije toliki problem napisati rutine koje to rade, ali je veliki problem napisati rutine koje to rade dovoljno brzo da ostane vremena i za ostale stvari, pogotovo jer Spectrum nema ni hardware za zvuk pa i sve valne oblike treba generirati upisivanjem jednog bita (istina, postoje rutine koje osim bita za kontrolu zvucnika mijenjaju i bit za MIC OUT pa to onda zbog hardware-ske izvedbe utjece na high level i na frekvencijsku karakteristiku odziva - jer pull-up otpornici, kondenzatori i zvucnik predstavljaju kombinaciju RC i RL filtara). Dosta sam naucio i na skidanju zastita (po Atomix intro-u bi reko da i ti isto :-)) ) i na disassembliranju rutina za generiranje zvuka u komercijalnim igrama. Dok mi je stric posudio Commodore-a sam naucio i 6502 ali taj mi se assembleri nikada nije dopadao. Smetala mi je memorijski orijentirana arhitektura sa samo 3 registra, adresiranjem preko nulte stranice i to da za istu stvar vecinom treba napisati vise linija nego na Z80 pa onda nisam niti detaljnije proucavao Commodore. SID mi je bio zanimljiv ali mi se je nakon rutina za Spectrum (gdje se prakticki mora kontrolirati kretanje membrane zvucnika) cinilo da je prejednostavno zvuk dobiti upisivanjem brojeva u memorijski mapiranje registre :-) Uvijek sam se pitao gdje su sad svi oni ljudi koji su osamdesetih i devedesetih radili intro-e, trebali bi se jednom naci na picu i malo popricati o tim vremenima :-) > Ono sto sam ja htio reci je da se ne moras baviti toliko necime sto je > specificno za scramble hardware ukoliko znas da je u pitanju npr. taj i > taj procesor Scramble ima dva Z80, jedan na manjoj frekvenciji je za zvuk. Za zvuk ima i jos dva AY cipa. > te da je npr. layout spriteova takav i takav E vidis, to kakav je layout sprite-ova i tile-ova na Scramble-u (jos uvijek) ne znam :-)) Problem je da su se dizajneri hardware-a trudili cim vise zakomplicirati stvari da bi bootleg-erima otezali upgrade starih aparata na nove igre bez narucivanja conversion kit-ova. Iz ovog se clanka vidi koliko ima posla s otkrivanjem kako radi odredjeni hardware: http://aarongiles.com/old-stuff/mame-memories/hunting-for-color-proms/ I to pise covjek koji je pisao firmware za particle generator u CERN-u. Istina je da su sad svi ti podaci u MAME-u ali nije bas jednostavno do njih doci analiziranjem koda a ono sta se nalazi u komentarima (ako ih ima) je daleko od dovoljnog. > da se nalaze > tu i tu u memoriji, gdje su koje bitnije memorijske lokacije, itd. To je > bila poanta onoga sto sam napisao. > > Da sam ja na tvom mjestu, ja bih uzeo osnovni scramble i napravio od > njega jednostavan peek/poke program i taj program bih vrtio pod MAME-om. > Zasto? Zato sto bi ti takav program lako omogucio da vizualiziras sve > sto taj hardware moze. Poke-as na memorijsku lokaciju da ukljucis > sprite, pa na lokaciju za poziciju na ekranu i vec si dobio nekakvo > vizualizirano "smece". Zatim pokeas konkretan sadrzaj i voila... znas > kako raditi sa spriteovima bez da reverese engineeras Scramble, sto je > osjetno sporije. Upravo sam tako i doso do layout-a za tile-ove i sprite-ove na Pac-Man hardware-u. MAME ima odlicne alate za vizualizaciju tile-ova, paleta i sprite-ova i dovoljno je promijeniti podatke u ROM-ovima pa u tim alatima pogledati kako nakon izmjena izgledaju recimo sprite-ovi. Ali taj postupak, cak i uz hrpu informacija koju sam o Pac-man hardware-u imao iz raznih dokumenata s neta, nije bio bas trivijalan. Ono isto sta sam napravio za Pac-Man hardware bi trebao napraviti za Scramble-ov hardware - razlika je jedino u tome da sam za ovaj prvi naso puno informacija koje su mi olaksale/ubrzale postupak. Koristio sam informacije za cije su prikupljanje nekim ljudima trebale godine. > Uz Commodore 64 je uredno dolazila knjiga sa listom bitnih memorijskih > lokacija, sve je tamo pisalo... tako nesto tebi treba za taj scramble > hardware, odnosno galaxian, odnosno Z80 (koliko vidim, to je CPU). Upravo to i trazim - problem je medjutim u tome da ne samo da takva dokumentacija nije nikad objavljena, nego su se i autori tih uredjaja jako potrudili da cim vise zakompliciraju analiziranje. > Jos bolje rjesenje je da napises svoj jednostavni device za MAME, > baziran na scramble deviceu, koji ce doslovno ucitati svih 64k ROM-a > (ili koliko vec ima taj hardware) i ti onda lako iz nekog viseg jezika > kreiras taj ROM dump kojeg ucitavas u MAME da vidis rezultat svog rada. Cim ja kreiram ROM-ove pa u .zip-u neke od originalnih zamijenim s mojima, istog trenutka nakon pokretanja tovog aparata u MAME-u mogu stisnuti F4 i vidjeti kako bi izgledao sprite/tile definiran s mojim podacima. Nije problem niti napisati kratki program u assembleru koji ce obrisati ekran pa prikazati sprite a onda se vrtjeti u beskonacnoj petlji u kojoj ce resetirati watchdog timer. Ali to je samo jedan mali dio price. Na takav nacin bi se dosta tesko moglo otkriti da su dio video memorije i adrese koje uzrokuju da se pripadajuci tile-ovi 'prikazuju' izvan ekrana. Pac-Man recimo ima u svakom uglu ekrana 4 tile-a koja se nikad ne vide a ta se mjesta mogu recimo iskoristiti da se na njih pomakne sprite kojega treba 'ugasiti'. Koliko vidim i na Scramble hardware-u se watchdog resetira *citanjem* iz odredjene memorijske lokacije, na Pac-Man-u se on resetira pisanjem. Tu opet nije jasno sta tocno znaci broj upisan u tovu lokaciju jer counter ima sigurno vise od 8 bitova a u originalnom programu za Pac-Man-a se moze vidjeti da u nekim slucajevima u lokaciju za brisanje watchdog-a program svaki put upisuje sve manji i manji broj. Koliko vidim jos nitko nije otkrito zasto. Ja sam u programu recimo stavio da se u tu lokaciju uvijek upisuje nula i cini se da sve radi OK. Takvih stvari koje je dosta tesko otkriti ima na desetke. BTW, vidim da u Atomix-u na pocetku intro-a i nakon pokretanja programa na vrhu ekrana titraju karakteri - da li to znaci da si variable za rutinu koja raspakirava podatke (ili prije pokretanja prebacuje program na drugu lokaciju) stavio u video RAM? -- Let There Be Light Custom LED driveri prema specifikacijama http://tinyurl.com/customleddriver Chupo
Back to hr.comp.programiranje.java | Previous | Next — Previous in thread | Next in thread | Find similar
Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-10 05:46 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-10 14:16 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-10 15:18 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-12 09:32 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-12 23:08 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-14 11:25 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-14 11:27 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-14 15:09 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-14 16:22 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-14 17:21 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-16 11:37 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-16 15:20 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-17 12:36 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-18 00:37 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-18 17:23 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-19 01:10 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-19 15:14 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-19 16:21 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Nikolaj Lazic <nlazicBEZ_OVOGA@mudrac.ffzg.hr> - 2017-07-19 17:08 +0000
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-20 18:04 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-20 19:17 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-20 20:42 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-21 03:58 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-21 05:14 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-21 12:04 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-21 17:24 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-08-04 13:10 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-08-04 17:21 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-08-07 17:30 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-08-07 18:30 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-08-07 18:35 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-16 01:04 +0200
Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-16 11:32 +0200
csiph-web