Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: MUCSU  (Przeczytany 1244 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

nes__

  • Gość
MUCSU
« Odpowiedź #15 dnia: 11 Lutego 2012, 19:32 »
rozkminilem troche wyswietlarke (leniwy jestem, nie chcialo mi sie emaila do skull\'a pisac \"Wink\" ):

obrazek jest od $4000
$4000 - $43f8 - kolory hires1
$4400 - $47f8 - kolory hires1

- wyglada na to, ze ekrany sa przelaczane przemiennie co linie

$4800 - $5C00 - sprajty

$5C00 - ???    - zmienne kolory dla $D025 (co ile one sa zmieniane, co linie ?)
$5D00 - ???    - zmienne kolory dla $D026 (co ile one sa zmieniane, co linie ?)

$5E00 - $5E06 - kolory dla $D027-D02D

$6000 - $7F40 - bitmapa

Sprajty sa ustawione rowno w poziomie, bez przesuniec Y

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
MUCSU
« Odpowiedź #16 dnia: 11 Lutego 2012, 20:16 »
                   
Kod:

IRQ_ENTER::
 : :  : :  :pha
 :  : :  :txa
 :  : :  :pha
 :  : :  :tya
 :  : :  :pha
 :  : :  :sec
base:: :  :lda #$32
 :  : :  :sbc $dc04
 :  : :  :sta *+4
 :  : :  :bpl *
 :  : :  :lda #$a9
 :  : :  :lda #$a9
 :  : :  :lda #$a9
 :  : :  :lda $ea
//--------------------------------------------------
//Stable :  : :  :
.var IrqCounter = *+1
 :  : :  :ldx #$09 :  :
 :  : :  :cpx #4 :  ://badline row
 :  : :  :bne !+
 :  : :  :jsr _rts :  ://12 cycles waste
 :  : :  :jsr _rts :  :
 :  : :  :cmp (:$00,x): :  :
 :  : :  :cmp $00 :  :
!:: :  : :  :lda #$10
 :  : :  :eor $d018
 :  : :  :sta $d018  :  ://shift sprite shapes (:and colormap):
 :  : :  :lda #0
 :  : :  :sta $d030

.const d = 7 :  : :  ://difference between line with sprites
 :  : :  :ldy #$32-d
 :  : :  :dex
 :  : :  :bpl !+
 :  : :  ://jsr music_play
 :  : :  :ldy #$32 :  ://line without sprites
 :  : :  :ldx #9
!:: :  : :  :stx IrqCounter
 :  : :  :sty base+1 :  : :  :
 :  : :  :lda D012_tab,x
 :  : :  :sta $d012
 :  : :  :ldy spointers_tab,x
 :  : :  :tya
 :  : :  :and #8
 :  : :  :bne !+
 :  : :  :
.for(:var i=0:i<7:i++): {:
 :  : :  :sty p_ColorMap+$03f8+i
 :  : :  :iny
 :  : :  :}:
 :  : :  :bne !next+
!::
.for(:var i=0:i<7:i++): {:
 :  : :  :sty p_ColorMap2+$03f8+i
 :  : :  :iny
 :  : :  :}:
!next:: :  : :  : :  : :  : :  : :  :
 :  : :  :lda Row_Y_tab,x
.for(:var i=0:i<7:i++): :  : :  :
 :  : :  :sta $d001+i*2
 :  : :  :
IRQ_EXIT:: :  :inc $d019
 :  : :  :pla
 :  : :  :tay
 :  : :  :pla
 :  : :  :tax
 :  : :  :pla
_RTI:: :  :rti :  :
//--------------------------------------------------

D012_tab::
 :  :.by $31+9*21, $31+8*21, $31+7*21, $31+6*21
 :  :.by $30+5*21, $31+4*21, $31+3*21
 :  :.by : $30+2*21, $31+1*21, $31
Row_Y_tab::
 :  :.fill 10,[:9-i]:*21+$32
spointers_tab::
 :  :.fill 10,[:9-i]:*8+$20  :  :




co do czesci z dzieckiem: zmiana obrazow nie ma zadnych kombinacji - w pamieci sa dwa obrazy mucsu, ktore sa wymieniane (mozna nawet zmienic to dziecko na Carriona \"Train\"), warstwa sprites jest na calym ekranie - po prostu nie wszedzie \"wykorzystana\".

@nes to co analizujesz to jest juz druga wersja MUCSU- ze zmiana d025 i d026, co linie - oczywiscie w tym wypadku to juz marny tryb, bo proca zajmuje tyle co NUFLI (i w tym wypadku NUFLI  ma wieksze mozliwosci,tyle  ze pamieci zajmuje mniej.
Tu kolory ustalasz raz przy inicjacji, a potem tylko przerwanie przy zmianie ksztaltow dla sprites i przesuniecie w dol: czyli 10 razy w trakcie wyswietlania ekranu.

nes__

  • Gość
MUCSU
« Odpowiedź #17 dnia: 11 Lutego 2012, 20:58 »
skull - ok, ale jak pisze edytor to w sumie moge napisac na ten z przeplotem i zrobic opcje wylaczania przeplotu..
czyli w tym co jest zamieszczony obrazek, to nie ma ani zmiany ekranow, ani zmiany $d025/$d026 co linie ? (w wyswietlarce w pliku .prg jest..)

ps. ja to na PC pisze.. zeby nie bylo watpliwosci..

nes__

  • Gość
MUCSU
« Odpowiedź #18 dnia: 12 Lutego 2012, 01:39 »
ok.. po calym dniu dupc..nia sie z pecetowym pojeciem programowania, i czytaniem na forach, ze dopoki do zmiennej nie dopisze sie +\"\" to bedzie integerem a nie char\'em, i tym podobnych fantastycznych zagadnieniach, udalo mi sie w koncu wyswietlic cos co przypomina obrazek.

Ale tylko przypomina. Stad pytanie - czy na pewno dobrze rozumiem, ze to jest hires w ktorym znak 8x8 pixeli moze miec 1 kolor + wspolne tlo, czy to jest hires z osobnym kolorem tla dla kazdego znaku..?
jesli to drugie, to nie wiedzialem, ze da sie pod spod sprajty podlozyc
a jesli nie, to musze troche odpoczac, i sie zastanowic dlaczego to nadal nie wyglada tak jak powinno..



orginal:



pozdro. uff.

ps. tak piszecie o zajmowaniu pamieci, a ze co 8my sprajt jest pusty w tym trybie to juz taki drobny szczegol.. tez pol godziny dochodzenia mialem dlaczego sa rozjechane \"Razz\"

nes__

  • Gość
MUCSU
« Odpowiedź #19 dnia: 12 Lutego 2012, 14:13 »
ok, rozkminilem..

musze przyznac, ze do tej pory nie wiedzialem, ze w hires da sie ustawic sprajty tak ze maja priorytet nad kolorem tla znaku, a pod bitmapa  \"Embarassed\"

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
MUCSU
« Odpowiedź #20 dnia: 14 Lutego 2012, 07:31 »
dobrze ze to juz obczailes, sorry ale nie zawsze czlowiek ma szanse odpowiedziec.

Dwie mapy kolorow (dwie kopie), sa tylko dla \"przelacznika\" ksztaltow sprites w $d018,
w ten sposob mozna przelaczyc wszystkie sprites \"na raz\" nawet w badline, bo przy wlaczonych wszystkich 8-miu, zostaje tam tylko 4 cykle na to - czyli akurat.

nes__

  • Gość
MUCSU
« Odpowiedź #21 dnia: 14 Lutego 2012, 11:39 »
spoko..
acha, czyli ze i w trybie ze zmianami $d025 i $d026 w sprites co 21 linii, i w tym co 1 linie, dwie mapy kolorow sa identyczne ? W sumie to dlaczego - przeciez mozna chyba nimi przejscia tonalne robic.
I nie do konca rozumiem, co by miala dawac zmiana ksztaltow sprites ? Chodzi tylko o ta zmiane co 21 linii, tak?

No i jedna uwaga: wlaczonych jest 7 sprajtow ($7F do $D015).

Powiem szczerze: edytor z tego zrobic, to troche porazka. Tzn. mam na mysli to, ze grafik musial by sie niezle napocic zeby \"od zera\" cos narysowac z takimi ograniczeniami, i przy kazdym pixelu sie zastanawiac skad go wziac (tlo/bitmapa/4pixel sprajt. Bardziej edytor chyba do korekcji konwertow przydatny \"Smile\"

Przy okazji, dla ciekawskich - tak wygladaja skladowe obrazka:

1. Podloze, czyli mapa kolorow 8x8:



2. Warstwa pierwsza, czyli sprajty X-expand w multicolor



3. Warstwa druga, czyli HiRes z bitmapy



-----------------

Polaczenie 1+2



Polaczenie 1+2+3



Teraz musze troche poczytac o programowaniu na PC \"Very

Pozdrawiam

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
MUCSU
« Odpowiedź #22 dnia: 14 Lutego 2012, 11:52 »
                   
nes napisal:
Chodzi tylko o ta zmiane co 21 linii, tak?


tak, inaczej nie zdazysz przelaczyc wszystkich ksztaltow.
lda sta to 6 cykli, razy 8 to 48, 8 sprites zabieraja 8*2+3 = 19  w kazdej linii w ktorej sa wyswietlane, czyli 63-19 = 44 - czyli juz brakuje 4 cykli, zeby wykonac skuteczna zmiane w wybranej linii.

Fakt, MUCSU wykorzystuje 7 sprites, czyli mozna sie wyrobic, ale ... nie w Badline \"Sad\", stad ta druga kopia ekranu koloru - teraz mozesz sobie ksztalty ustalic wczesniej, a tylko w odpowiedniej linii przelaczyc mape kolorow w $d018 na nr2, potem ksztalty zmieniasz w nr1 i przelaczasz przy \"kolejnej okazji\" (czyli w nastepnej +21 liniii) itd.

nes__

  • Gość
MUCSU
« Odpowiedź #23 dnia: 14 Lutego 2012, 11:58 »
OK, dzieki

A jeszcze pytanie - o tym ze to zielone tlo po prawej w tym konkretnym obrazku jest ma w lewej polowie podloze z 8x8 a w prawej ze sprites w multicolor zadecydowal automatycznie konwerter, czy to jest ta reczna zmiana o ktorej pisal isildur ?

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
MUCSU
« Odpowiedź #24 dnia: 14 Lutego 2012, 00:00 »
Nie, reczna korekta byla tylko w minimalnym stopniu, Isildur troche \"przesadzil\".
Ale akurtat kolorowanie tych obszarow mozna z gory narzucic konwerterowi. W wersji konwertera nr2, mozna poustawiac, wybor manualny kolorow, oraz wymusic stary tryb (bez zmiany co linie koloru w $d025,$d026) i ja wlasnie z tego korzystam - nowego konwertera do starego formatu \"Smile\".

isildur__

  • Gość
MUCSU
« Odpowiedź #25 dnia: 14 Lutego 2012, 00:00 »
                   
skull napisal:
Nie, reczna korekta byla tylko w minimalnym stopniu, Isildur troche \"przesadzil\"


Nie do konca, po prostu nie mowilem Ci o kazdym pikselu, sam palec wskazujacy lewej reki to bylo jakies 20 konwersji, a konwersja odbywa sie tak: obrazek w P1 -> konwerter MUCSU -  jesli zle to screenshot, korekta w P1 i zapetlenie. Po prostu czasami niewazne co zrobisz, to konwerter i tak zrobi po swojemu, tzn. tam jakies usrednianie kolorow w danym obszarze dziala.

nes__

  • Gość
MUCSU
« Odpowiedź #26 dnia: 15 Lutego 2012, 20:37 »
digger - fajna opcja jest w Twoim edytorze - to pixelowanie patternami \"Smile\" podoba mi sie to
btw. w jakim trybie jest obrazek ?
no i ogolnie respect za taki projekt we flash

jok__

  • Gość
MUCSU
« Odpowiedź #27 dnia: 16 Lutego 2012, 15:15 »
Mam pytanie - najnowsza wersja IMOSa to ta?
IMOS V0.6B 7.1  

A do Diggera - Czy jest szansa, zeby sledzic postepy w wersji online - czy moze planujesz wersje standalone dla testerow \"Smile\"

nes__

  • Gość
MUCSU
« Odpowiedź #28 dnia: 17 Lutego 2012, 11:33 »
                   
jok napisal:
Mam pytanie - najnowsza wersja IMOSa to ta?
IMOS V0.6B 7.1  


Tak. Potem udostepnilem zrodla, gdyby ktos potrzebowal cos sobie pozmieniac/dopisac - http://noname.c64.org/csdb/release/?id=89228 (pod Borland C++ chyba 6.0 albo 5.0, nie pamietam)

booker__

  • Gość
MUCSU
« Odpowiedź #29 dnia: 17 Lutego 2012, 16:02 »
Nes, website u Mayka (toto zyje jeszcze? \"Smile\" Ci nie klika