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

Autor Wątek: Jak zrobić pionowy scroll z podzielonym ekranem?  (Przeczytany 3206 razy)

0 użytkowników i 7 Gości przegląda ten wątek.

Offline Buddha

  • Level 4
  • ****
  • Wiadomości: 341
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #15 dnia: 30 Kwietnia 2017, 22:03 »
Sorry Zbych'u, ale musimy najpierw poczekać na wszechwiedzącego boga Comankh'a, który najpierw oceni, tajemniczo wyjaśni nam w "dwóch słowach", lub wklei link np. na youtube . Nie wiem czy mogę chociaż pobrać twój plik i zobaczyć w czym tkwi problem, więc mogę Comankh ? Szkoda Zbych'u bo fajny temat i aby twój wątek poleciał przez niego do śmietnika ...

Offline Luke_

  • Level 1
  • *
  • Wiadomości: 6
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #16 dnia: 09 Lipca 2017, 11:20 »
w irq co ramke:

lda #$c0 <- linia rastra podzialu
cmp $d012
bne *-3
lda $d011
pha
pha
ora #$78
sta $d011
lda #$c0+8
cmp $d012
bne *-3
pla
and #$f8
ora #$00 <- 0-7 przesuniecie
sta $d011
bit $d011
bpl *-3
pla
sta $d011

nieladnie ale z grubsza chyba o to chodzilo, pokombinuj i masz bo jak sie domyslam na starcie ekranu wstawiasz do $d011 przesuniecie scrolla
najlepiej podzielic na oddzielne przerwania zeby nie tracic cykli

« Ostatnia zmiana: 09 Lipca 2017, 11:31 wysłana przez Luke_ »

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #17 dnia: 09 Lipca 2017, 15:01 »
w irq co ramke:
[...]
nieladnie ale z grubsza chyba o to chodzilo, pokombinuj i masz bo jak sie domyslam na starcie ekranu wstawiasz do $d011 przesuniecie scrolla
najlepiej podzielic na oddzielne przerwania zeby nie tracic cykli

Dzięki za pomoc, ale największym problemem jest odpowiednie docyklowanie, w przeciwnym wypadku zaczynają się dziać dziwne rzeczy i tu był chyba mój problem. W zasadzie to udało mi się zrobić podstawę, na razie bez scrolu kolorów. Miałem też problem ze sprajtami i najlepsze co udało mi się z nimi zrobić to "uciąć" kilka linii wcześniej przed linią rastra w której włączam czarny pasek, innego pomysłu nie mam.

Offline Luke_

  • Level 1
  • *
  • Wiadomości: 6
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #18 dnia: 09 Lipca 2017, 16:17 »
Ja jak potrzebuje uciac sprajty w linii X to zaraz na samym koncu linii X-1 robie tak:

Setup przed ucieciem gdy raster jest na gornej ramce na przyklad:

ldx #$07
lda tablicaspr,x
sta $07f8,x
dex
bpl *-7

od tego miejsca wie gdzie sa sprajty ale $d018 powinno byc ustawione tak aby ekran byl $0400 - $07f8 (mozna dac #$1x) gdzie x dobrane ze wzgledu na umieszenie fontow w pamieci

potem przygotuj sobie drugi ekran na przyklad pod $0800-$0bff i wpisz
ldx #$07
lda #$80
sta $0bf8,x
dex
bpl *-4

wtedy gdy dasz do $d018 wartosc #$2x to sprajty beda czytane od $2000 (bo $80 wstawiles do $0bf8+)
zapisz zera od $2000-$203e  i masz pusty sprajt

Po co az tyle pieprzenia?
Po to by "zgasic" w ten sposob jednym rozkazem wszystkie 8 sprajtow (czyli pokazac puste).
Mozna oczywiscie bawic sie w 8zapisow ale to utrudnia zycie.

Jesli chodzi o cyklowanie , to faktycznie z $d011 trzeba dosc delikatnie sie obchodzic i wiedziec co sie robi, bo jak wrzucisz krotka linie
to pojawi sie vsp lc fld czy inne rzeczy i idzie oglupiec. Dlatego sugerowalem dac $7x do $d011 by zagasic kwasy i wymusic czarny pasek w tym miejscu przez kolejnych 8 linii.

edit :

tak na szybko jeszcze "z grubsza" malo profesjonalnie, ale mam nadzieje ze uprosci zycie

gdy zaczyna sie czarny pasek trzeba ustawic $d011 na stale "gdzies" byle nie wywolac kwasu,
dlatego te "gdzies" mozesz dobrac doswiadczalnie opoznieniem np
lda $d011
and #$07
tax
ldy tabopox,x
dey
bpl *-1

lda #$1b  <- normalny ekran
sta $d011

tabopoz .byte  8,8,8,8,8,8,8,8

osemki pozamieniaj dla kazdej wartosci na dobrane dla kazdego $d011 jaki sie pojawia przy scrollu u gory aby nie kwasilo sie na dole ;) chyba tak pojdzie najszybciej
« Ostatnia zmiana: 09 Lipca 2017, 16:29 wysłana przez Luke_ »

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #19 dnia: 09 Lipca 2017, 20:07 »
Ja jak potrzebuje uciac sprajty w linii X to zaraz na samym koncu linii X-1 robie tak [...]

Dla mnie problemem nie jest samo ukrycie sprajtów, chodzi o to że one mogą w nieregularnej liczbie pojawiać się w pozycji rastra przełączania VICa we "wrong mode" i nie wiem jak sobie z tym poradzić bo pojawienie się sprajta psuje mi synchronizację, dlatego zrobiłem tak, że ustawiam pozycje sprajtów aby były niewidoczne dzięki temu VIC ich nie rysuje i nie psuje mi to synchronizacji. Ponieważ ustawienie nowych pozycji zajmuje trochę czasu więc muszę to zrobić zanim raster dotrze do pozycji w której rozpoczynam synchronizację, a synchronizację zrobiłem metodą 2 przerwań, ale mogłem coś nie do końca zrozumieć, w każdym razie jeśli odpowiednio wcześniej wyłączę sprajty to mam stabilnego rastra z czarnym obszarem :)
W sumie mogę wrzucić źródła i tak jest to jeszcze wczesna niedokończona wersja.

Offline Luke_

  • Level 1
  • *
  • Wiadomości: 6
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #20 dnia: 10 Lipca 2017, 21:40 »
Oj nie, to tak nie jest ze sprajtami i synchronizacja.
Jesli sprajt zacznie sie juz wyswietlac to musi sie skonczyc jego wyswietlanie i zmiana pozycji X czy nawet Y nic nie da, dalej vic bedzie bral cykle za kazdy sprajt dopoki nie zakonczy sie wyswietlanie calej matrycy. Istnieja tricki typu sprite crunchery itd, ale tu trzeba docyklowac sie idealnie i zapisac do $d017  co linie w odpowiednim cyklu - co odradzam w tym wypadku.
Znacznie bardziej zachecil bym (takze jako ciekawostke przyrodnicza) do zapoznania sie z generalna zasada w jaki sposob kradzione sa cykle przez vic przez sprajty z artukulu Jetboya z archiwalnego C&A "Kącik początkującego cyklisty". Znajdziesz tam odpowiedzi na wiekszosc pytan jesli chodzi o cyklowanie, krotkie linie, sprakty i kilka efektow "trickowych".
Postaram sie znalezc te artykuly i podac jakis link.




Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #21 dnia: 10 Lipca 2017, 22:14 »
Oj nie, to tak nie jest ze sprajtami i synchronizacja.
Jesli sprajt zacznie sie juz wyswietlac to musi sie skonczyc jego wyswietlanie i zmiana pozycji X czy nawet Y nic nie da, dalej vic bedzie bral cykle za kazdy sprajt dopoki nie zakonczy sie wyswietlanie calej matrycy. Istnieja tricki typu sprite crunchery itd, ale tu trzeba docyklowac sie idealnie i zapisac do $d017  co linie w odpowiednim cyklu - co odradzam w tym wypadku.
Znacznie bardziej zachecil bym (takze jako ciekawostke przyrodnicza) do zapoznania sie z generalna zasada w jaki sposob kradzione sa cykle przez vic przez sprajty z artukulu Jetboya z archiwalnego C&A "Kącik początkującego cyklisty". Znajdziesz tam odpowiedzi na wiekszosc pytan jesli chodzi o cyklowanie, krotkie linie, sprakty i kilka efektow "trickowych".
Postaram sie znalezc te artykuly i podac jakis link.

Trochę namieszałem z tym wyłączaniem sprajtów bo dawno nie zaglądałem w to miejsce kodu i zapomniałem jak to działało.
Dokładnie to zrobiłem tak: ustawiam wszystkim sprajtom pozycję X na 0, a potem pozycję Y o 3 linie rastra przed synchronizacją (czy jakoś tak). Takie zagranie powoduje że zawsze mam w miejscu synchronizacji jednakową liczbę sprajtów, tylko minus jest taki że sprajty są ucinane przed czarnym obszarem, po prostu zanim wypełnie wszystkie rejestry pozycji sprajtów to wiązka już zdąży się przesunąć, a drugie przerwanie synchronizacyjne też nie mogę zrobić natychmiast tylko w kolejnej linii.
Chyba można by było zmniejszyć to ucinanie sprajtów tym trickiem ze zmianą adresu ekranu i rejestrów banków sprajtów, ale na razie muszę znaleźć czas na dorobienie innych rzeczy.

Offline Luke_

  • Level 1
  • *
  • Wiadomości: 6
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #22 dnia: 10 Lipca 2017, 22:43 »
http://www.c64.com.pl/index.php/gazety/ca.html?mag=_ca94-8

Powyzej obiecany link do serii artykulow "klub wesołego cyklisty"

Z tych screenshotow co widze, oraz z tego co odpalilem w vice, widze ze sprajty nachodza na czarny pasek (zaczynaja sie nad nim).
To jest pierwsza kwestia, ze jesli sprajt juz zacznie byc wyswietlany to najszybciej wyswietlic mozna go ponownie po zakonczeniu wyswietlania calej matrycy czyli bez trickow co 21linii. Mozna conajwyzej przelaczyc tak jak wczesniej mowilem $d018 by nic nie bylo wyswietlane (lub ciut wolniejsza metoda tak jak napisales kolejno przelaczac X i $d010 co odradzam bo wszystki zapisy zajma Ci wiecej niz linia rastra)  i najszybsza opcja jest
obliczyc opoznienia ktore generuja sprajty wg artykulow wskazanych powyzej. Wykonac petle opozniajaca wg tego arta i po sprawie.
Jesli bedziesz mial nadal problem wystaw kod zrodlowy to Ci pomoge i wyjasnie pokolei.

« Ostatnia zmiana: 10 Lipca 2017, 22:45 wysłana przez Luke_ »

Offline Buddha

  • Level 4
  • ****
  • Wiadomości: 341
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #23 dnia: 23 Lipca 2017, 19:36 »
Witam po przerwie moich fanów, jak i też chyba wrogów, nie wiem, ale przede wszystkim to zawsze wspaniałych czytelników forum C64power :) Ja już nie jestem na scenie C64 od 2014 roku, co błędnie jest podane na moim profilu CSDB, że odszedłem ze sceny w 2016 roku ! Nie zajmuję się jeszcze tworzeniem gier, ale widzę, że trochę czasu się już męczycie, z tym zapewne nie trudnym efektem. Ja postanowiłem napisać tylko kilka tricków np. jak zdobyć kod do tego rodzaju efektu, ale pod warunkiem, że ma się już jakieś tam pojęcie o kodowaniu w ASM. Zbych Nie łatwiej będzie znaleźć podobną grę, do tej, którą planujesz stworzyć, spośród całej gamy gier na C64 ? Najprościej to chyba będzie zatrzymać (pauza) w Winvice po przejściu do "monitora" i tam pokaże się adres w którym momencie kodu gra się zatrzymała, a później prześledzić od tej linii np. z poziomu "monitora" Winvice, lub Action Replay, gdzie np. jakiś inny koder znalazł na twój problem idealne rozwiązanie ? Podobnie można to też chyba zrobić za pomocą jakiegoś debuggera na C64 :) Ja byłem na urlopie od czerwca do końca lipca, więc trochę się działo, trochę się bawiłem, trochę pisałem głupoty na bani, ale i tak nikt mnie nie zna, więc super, że nikt się tym za bardzo nie przejmuje :) Fajnie by było, gdyby chociaż spróbować pisać listingi kodu w KickAss, który składnią trochę przypomina język C, gdzie po kompilacji można lepiej zrozumieć składnię języka C, skoro się zna ASM, a mam na myśli początkujących koderów :) Super sprawa, że muzyk Scarzix zaczyna się robić koderem, o czym ja już wiedziałem dużo przedtem, w rozmowach z nim, ale najlepsze jest to, że wrzuca już swoje próbki + kod źródłowy w KickAss na CSDB (link: http://csdb.dk/release/?id=157049 ) . Zapewne myślicie o jakimś tam rozwoju, gdzieś później dalej na PC, więc chyba znajomość ASM i nowoczesne kompilatory na C64, które składnią przypominają np. język C to z czasem pozwolą lepiej zrozumieć programowanie na PC, a dalej to większość języków programowania na PC, są już na podobnej zasadzie, tylko inaczej nazwane np. funkcje itd. itp. Ja chwilowo chce się jeszcze doszlifować w tworzeniu grafiki i muzyki, że tak powiem, a jeśli chodzi o muzykę to zrozumiałem jak działa Sound Interface Device i co dalej za tym poszło to nie korzystam już z presetów, tylko sam tworzę dźwięki np. na prostych i darmowych generatorach VSTi. Ostatnio to korzystam już nawet z jakichś dawnych i mało znanych DOS'owych efektów typu np. Reverb, Delay, które zgrywam do sampla WAV, gdzie mogę później śmiało powiedzieć, że dźwięki są zrobione już w całości przeze mnie . Poznałem kilka styli tworzenia grafiki, mając jeszcze kontakt z grafikami na scenie C64, którzy niestety już nie są moimi kolegami, ale co zrobisz, takie życie. Wiem już teraz, że coraz lepiej mi to wychodzi, kiedy powiększam fragment ekranu na PC i rysuję np. kilka symetrycznych rzeczy, z których później powstaje cały obraz, oczywiście bez znanych efektów, generatorów efektów tzn. aby na końcu znowu mógł powiedzieć, że to w całości sam zrobiłem i też aby to wyglądało w miarę dobrze, a nawet profesjonalnie. Nie chwalę się tym bo po co, a jedynie wrzucam na CSDB to, czego nigdy nie wykorzystam już "gdzieś dalej", że tak powiem np. to co zrobiłem tylko na C64. Mam jakąś tam samoocenę i kilku ludzi, którzy kompletnie nie mają pojęcia o tworzeniu np. grafiki i muzyki, więc wydaje mi się, że tacy ludzie są najlepsi w ocenianiu bo po prostu od razu mówią szczerze tak jak coś widzą i słyszą, a nie myślą nad tym, dyskutują, tylko mówią, że coś jest dobre lub nie i w prosty sposób, że dlaczego. W związku z tym, skoro ludzie ci uważają już, że jest to "dobre", że mam już na ten temat w miarę pojęcie to za niedługi okres czasu zostawiam tworzenie grafiki i muzyki oraz wracam tylko i wyłącznie do kodowania. Fajnie, że coś robicie i np. jak w tym przypadku to wcale nie robicie tutaj gry, w sensie współpracy, tylko wymieniacie się swoją wiedzą na dany temat :) Wydaje mi się, że kilka osób idzie w moim kierunku tzn. dla mnie to jest duży postęp, że wracając na scenę w 2006 roku byłem w większości tylko muzykiem. Raf chyba nawet pamięta, jak zdaje się w 2007-2008 roku, będąc jeszcze w Vulture Design napisałem do niego, czy nie zakodował by mojej kolekcji muzycznej, ale odparł na to, że nie ma czasu na kodowanie C64, więc pomyślałem sobie, że lepiej wrócić do kodowania oraz w przyszłości samemu to zakodować. Problem był znowu z grafiką, więc napisałem do pewnego grafika, aby zrobił logo, tylko w odpowiedzi dostałem, że wyślę mi fakturę VAT za to logo. Nie chodzi o to, że kogoś próbuje tutaj znowu wkurzyć, tylko o to, że to były początki, które dały mi do zrozumienia, że nie ma sensu coś robić w grupach. Denerwujące było już później dla mnie szukanie grup, zespołów ludzi, którzy z mojego pomysłu (idei) robili z tym co chcieli bo im się coś nie podobało np. przeważnie liderom grup. W tej chwili to nie przyjęli by mnie już do żadnej grupy, ale ja się wcale tym nie martwię np. jak grafik JSL, który w rozmowach ze mną twierdził, że ban na CSDB to koniec totalny już jest dla niego kariery grafika, w sensie utraty kontaktów i znajomości. Ja znalazłem na to inne rozwiązanie, że po prostu jako pojedyncza osoba zaczynam być koderem, grafikiem, muzykiem i liderem np. jednoosobowej grupy ! Nie mam już zmartwień typu, że muszę komuś przytakiwać i tańczyć jak mi zagra bo inaczej wylecę z grupy, dostanę bana itd. itp. Jak napisałem gdzieś tam na początku to sporo w tej chwili zajmuję się tworzeniem stron internetowych, ale dla mnie to i tak za mało, więc napisałem o tym, że wracam do czystego kodu na C64 i PC. Oczywiście mam kilku przyjaciół koderów na PC, którzy nie są na scenie komputerowej, więc możecie sobie tylko teraz wyobrazić, że jeden mój kolega jest na prawdę dobrym koderem na PC, ale kompletnie nic nie koduje od około 2 lat bo jeździ po Polsce i szkoli innych koderów, gdzie zarabia nawet kilka razy więcej, kiedy sam pisał programy, projekty komercyjne. Ciekawa perspektywa, nie ? A biorąc jeszcze pod uwagę czasy, że coraz więcej informatyków, coraz trudniej się wybić itd. itp. Nie rozmawiam z tymi programistami o samej nauce programowania, tylko o perspektywach i nowoczesnych rozwiązaniach, skoro pełno teraz w sieci książek, kursów wideo dotyczących programowania itd. itp. Wiadomo, że wszechwiedzący Comankh to zaraz będzie robił "syf" z mojego posta, który szybko trafi do śmietnika. Natomiast nie napisałem tego, aby prosić kogoś o współprace, pomoc, czy coś podobnego, jak dobrych kilka lat temu, tylko w sensie, że warto się uczyć, aby być wielofunkcyjnym informatykiem, aby nie być aż tak bardzo uzależnionym od kogoś, czegoś itd. itp. Ja gdzieś tam wcześniej pisałem tylko publicznie, ale wyszło z tego trochę "nie halo", że tak powiem, więc raczej rozmawiam już teraz na priv'ach. Ma to też sens, aby nikt nie wiedział z kim się kontaktuje, z kim rozmawiam bo np. kiedy napiszę coś publicznie to ktoś, kto np. mnie nie lubi zrobi z tego fejka . Jak napisałem przedtem to wrzucam tylko moje próbki np. na CSDB, modules.pl i ciągle zaznaczam, aby tego nie komentowali, nie oceniali bo to jest tylko pamiątka próbek, które zrobiłem + źródłówki, które mogą się kiedyś przydać innym ludziom. Znam też kilka konkretnych dla mnie osób (informatyków), którzy mogą potwierdzić, że nigdy nie powiedziałem im nic złego, nie ubliżyłem, że nie jestem taki, jak z pozorów teraz wynika, że jestem konfliktowy itd. itp. Spoko Comankh i mnie tam nie denerwuje twoja rozmowa, ani nic do ciebie nie mam, a raczej to, że niekiedy lubię się też pośmiać, pożartować, ale niekiedy coś piszę ogólnie do ludzi, bo sam jestem ciekawy co oni na to, aby coś może się dowiedzieć, coś też im doradzić, podzielić się swoją wiedzą itd. itp. Pozdrawiam :)

Offline comankh

  • 1liner
  • Level 6
  • *
  • Wiadomości: 1854
    • Ty Bułko!
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #24 dnia: 23 Lipca 2017, 23:42 »
doceniam podwójne ad personam.

Cytuj
gdzie mogę później śmiało powiedzieć, , że dźwięki są zrobione już w całości przeze mnie

śmiało to mało powiedziane!

Offline comankh

  • 1liner
  • Level 6
  • *
  • Wiadomości: 1854
    • Ty Bułko!
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #25 dnia: 23 Lipca 2017, 23:43 »
(do moderatora, w poście kolegi nie ma ani pół wzmianki o scrollu z tematu więc śmietnikowałbym razem z moimi)

Offline Buddha

  • Level 4
  • ****
  • Wiadomości: 341
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #26 dnia: 24 Lipca 2017, 01:07 »
A ty jak zwykle, ale co tam, niech leci do śmietnika. Z tego co widziałem, to większość tych osób, o które mi chodziło to przeczytała, więc jest ok :) . A jak byś był chociaż trochę koderem to czytał byś ze zrozumieniem i wiedział, że prawie wszystko w tym tekście jest związane z programowaniem. Ja niekiedy nie piszę szczegółowo, a miałem na myśli, że te dźwięki z prostych generatorów VSTi, o których napisałem, to używam już tylko do jakichś czołówek w programach, na stronach internetowych, tak aby nikt się do mnie nie przyczepił, ze wydałem coś na piratach itd. itp. ... Z drugiej strony to i tak większość koderów w tych czasach powinna mieć chociaż jakieś minimalne pojęcie o grafice np. konwersji, aby co chwilę nie zwracać się z banalnymi rzeczami do grafika. Dzięki mojemu przyjacielowi z Wrocławia, który ma studio i kilka naturalnych instrumentów to zacząłem robić muzykę z pojedynczych dźwięków lub sekwencji, które dogrywamy na żywo do utworów z naturalnych instrumentów, ale to nie ten temat w tej chwili. Info jest w moim "last C64 song", gdyby ktoś konkretny chciał kiedyś porozmawiać normalnie ze mną na priv, a nie tylko mieszać się z błotem publicznie na forach to zapraszam. Chodzi o to, że wbrew pozorom to ciągle się rozwijam, ale nie szukam współpracy, tylko lubię porozmawiać na ciekawe tematy, odnośnie rozwoju. Nie śpieszę się, abym mógł zrobić też to wszystko jak należy, więc za jakiś czas wrzucę linki, gdzie zrobię już coś myślę, że na poziomie, ale i tak nadal jeszcze jako próbki. Nie komentuj już Comankh bo ja i tak więcej nie będę już nic pisał publicznie. Ciebie nie znam, więc może rzeczywiście jesteś wszechwiedzący, ustawiony, kto wie ? No ale są jeszcze ludzie, którzy próbują własnych sił i nie tylko jako hobby, czy dla zabawy. Podoba mi się pomysł z tą grą i dzisiaj napisałem już do dwóch moich przyjaciół koderów z zagranicznej sceny C64, aby przyjrzeli się problemowi Zbycha, więc coś za ich pośrednictwem może mu doradzę na priv bo dzięki tobie publicznie się już nie da, tak aby każdy inny człowiek, który się interesuje programowaniem, muzyką i grafiką mógł coś poczytać, spróbować samemu własnych sił, ale mniejsza o to. Comankh Chciałbym chociaż raz przeczytać jakiś twój konkretny tekst, o twojej wiedzy, a nie tylko piszesz, że "koledzy z Keen Acid", że koledzy jeszcze jacyś inni itd. itp. Ty wiesz chociaż co się dzieje teraz na scenie C64, poza fejkami, głupotami bo taka była scena i będzie już zawsze, ale nie uwierzę, że ty jesteś taki bardzo poważny, że tak bronisz tą scenę komputerową, skoro nic dla niej nie zrobiłeś od 18 lat ? Mam na myśli czy ty się chociaż tym zajmujesz, jesteś w tym non-stop tzn. od strony softu, jak to wszystko ewoluowało na C64, odnośnie PC ? Pisałeś kiedyś i wielu innych ludzi było przeciwnych, że nie chcecie takich jak ja na scenie, więc teraz już wiesz, że nie jestem już na scenie komputerowej od 2014 roku, więc co jeszcze ? Chciałem wydać jeszcze swoje pierwsze i ostatnie demo na scenie C64, ale mi się nie udało, trudno. Na koniec napisałem jeszcze dwa artykuły o programowaniu C64 do Hot-Style, ale V-12 się obraził na mnie, więc kliknąłem "delete" i to by było tyle na ten temat oraz to co zostało po mnie w jakichś dziwnych wspomnieniach np. w Trivia na CSDB !

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #27 dnia: 24 Lipca 2017, 10:51 »
W zasadzie to pierwszy etap już osiągnąłem - zrobiłem scroll włącznie z kolorami, z tym że przyjąłem pewne ograniczenia np. to że każdy kafelek będzie miał jeden kolor tzn. każdy z 4 znaków na jaki składa się kafel będzie miał jeden kolor, do tego nie będzie osobnej mapy kolorów czyli każdy typ kafla ma jeden kolor. To obcięcie sprajtów kilka pikseli przed statycznym obszarem zostawiam - mogę z tym żyć ;)
Trochę walczyłem z miganiem znaków podczas scrolowania kolorów ale w końcu udało mi się je wyeliminować. Wprowadziłem 2 przerwania rastra zamiast 1, chociaż teraz myślę że przekombinowałem i jak zacząłem zamieniać różne rzeczy miejscami to okazało się że to jedno przerwanie mogło by wystarczyć.
  W każdym razie obecnie pierwsze przerwanie jest w momencie wyświetlania granicy (czyli wrong mode, to w zasdzie są 2 przerwania 1 dla synchronizacji a 2 już właściwe) a drugie jest tuż po rozpoczęciu nowej ramki po to żeby przywrócić wartości rejestrów VICa dla scrola i sprajtów.
  W obecnym układzie zastanawiam się jeszcze nad jedną rzeczą: czy robić osobne wywołanie przerwania rastra dla muzyki, bo chciałem wywołać odtwarzanie na początku lub na końcu irq w dolnej części ekranu, ale na początku niebardzo bo w momencie gdy jest wykonywane scrolowanie koloru to przez muzykę czasami kopiowanie może przedłużyć się na tyle że zaczyna się już rysowanie części ekranu tekstowego, wrzuciłem więc to wywołanie na koniec tylko że wtedy muzyka jest nierównomiernie wywoływana, bo gdy nie ma kopiowania koloru to procedura przerwania trwa krótko, ale gdy jest to odtwarzanie przedłuża się już na kolejną ramkę obrazu. Jak dla mnie to nie słychać żeby coś nie tak było z muzyką ale logika podpowiada że to nie powinno tak być.

Wrzucam projekt (zrobiony pod C64Studio) gdyby ktoś chciał obejrzeć i oczywiście wszystkie sensowne sugestie mile widziane. To jest pierwszy etap więc jeszcze układ pamięci może się zmienić być może grafika będzie na innym banku VICa, zależy ile przeznaczę klatek animacji na obiekty, poza tym dla przejrzystości nie włączyłem multicoloru w sumie jeszcze nie zdecydowałem w jakim trybie koloru będzie grafika. Nie jestem nadal pewny czy uda mi się doprowadzić to do końca, to jest taki luźny projekt - jak mam czas to go robię jak nie to stoi w miejscu, dlatego w kodzie mam tyle komentarzy żeby po dłuższym przestoju można było zrozumieć o co tam chodzi :)

Obecnie zastanawiam się nad wykrywaniem kolizji. Ciekawi mnie jak Skull to zrobił w Bomberlandzie, czy/jak porównywane są pozycje? czy jest to robione na 16 bitach? czy obiekty nadal są poruszane jak już znikną z pola widzenia (też na 16 bitach?)?

Nadal dość często zdarzają mi się jakieś głupie błędy np. czasami zapominam że z rejestrami CPU to nie do końca jest jak ze zmiennymi w programie i zapominam po jakiejś operacji zapisać wynik do pamięci :D
« Ostatnia zmiana: 24 Lipca 2017, 11:03 wysłana przez Zbych »

Offline comankh

  • 1liner
  • Level 6
  • *
  • Wiadomości: 1854
    • Ty Bułko!
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #28 dnia: 24 Lipca 2017, 12:04 »
że te dźwięki z prostych generatorów VSTi

scrollują w pionie.

Offline Buddha

  • Level 4
  • ****
  • Wiadomości: 341
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #29 dnia: 25 Lipca 2017, 22:27 »
że te dźwięki z prostych generatorów VSTi

scrollują w pionie.

Haha :D Nie wiem czy miałeś na myśli, aby mnie wkurzyć bo tym razem to mnie rozbawiłeś tym tekstem :D Ja jak przyjadę na SP9 to stawiam ci Comankh nie 6, ale 7 piw, za które zapłacę z własnej kieszeni, abyś nie czuł się tym razem zdołowany i przygnębiony, tylko był wesoły, jak ja dzisiaj :) Zastanawiam się ogólnie nad zachęcaniem ludzi na kolejną edycję Silesia Party oraz pomyśleć nad zorganizowaniem jakiejś pomocy dla organizatorów bo śmiało mogę powiedzieć, że SP8 było kozackie pod względem organizacji, jakości prac oraz atmosfery, którą mogłem tylko obejrzeć już później na youtube. Żałuję też, że nie byłem tam osobiście, że narobiłem takiego bigosu tzn. oficjalny ban itd. itp.

W zasadzie to pierwszy etap już osiągnąłem - zrobiłem scroll włącznie z kolorami, z tym że przyjąłem pewne ograniczenia np. to że każdy kafelek będzie miał jeden kolor tzn. każdy z 4 znaków na jaki składa się kafel będzie miał jeden kolor, do tego nie będzie osobnej mapy kolorów czyli każdy typ kafla ma jeden kolor. To obcięcie sprajtów
......

Powiem ci Zbych, że temat zaczyna się robić dla mnie coraz bardziej ciekawy. Ja gdy pisałem kod do intra i bujanego scrolla w pionie na $d011, to jak widać też zrobiłem jedną linię przerwy bo działo mi się dokładnie to samo, a tutaj link do tego intra : http://csdb.dk/release/?id=151529
Zastanawiałem się później nad tym, czy może potrzebny tutaj speedcode np. z 50 NOP, lub BIT $xxxx, zamiast pętli, aby perfekcyjnie docyklować, podobnie jak przy wychodzeniu z ramek bocznych, a może coś jeszcze innego ? . Widziałem gdzieś kiedyś w jakiejś produkcji idealne rozwiązanie tego problemu, że jakiś koder poradził sobie z tym, tylko nie chciałem rypać kodu do swojego intra, więc zrobiłem tak jak umiem, czyli jedną linią przerwy pomiędzy logo, a scroll'em . Dylematy miałem już różne z cyklowaniem na C64, kiedyś zrobiłem ciekawy efekt przechodzenia jednej bitmapy, w drugą, lecz po dodaniu muzyki i kilku innych rzeczy, to znowu był podobny problem, mimo to, że efekt nawet był poza przerwaniami IRQ tzn. po CLI. Ostatecznym wtedy rozwiązaniem dla mnie to stało się pozmienianie układu poszczególnych rzeczy na ekranie oraz zrobienie zupełnie innego efektu przejścia dwóch bitmap. Nie wiem czy o to chodzi, ale są jakieś rejestry odpowiedzialne za kolizję sprajtów, lecz ja grami się nie zajmuje, więc nigdy tego nie używałem. Dodaje załącznik z podobną grą i układem na ekranie do twojej Zbych, ale zauważ, że dzieje się tam to samo, kiedy zaczynasz się poruszać joystickiem po ekranie w pionie, zauważ też, kto zrobił kod do tej gry tzn. Martin Piper, a to raczej dobry koder, więc zapewne też się nad tym zastanawiał bo to migotanie szpeci grę i mocno rzuca się w oczy. Pozdrawiam :)