atarionline.pl Commando z C64 mając źródła na Atari +VBXE czy da się i jak szybko? - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorshanti77
    • CommentTime6 May 2022 zmieniony
     
    Jak wygląda konwersja gry z C64 na Atari wykorzystująca VBXE, autor ma znikomą znajomość architektury C64, ale się uczy ;) Kiedy znalazłem opisany kod źródłowy tej gry na C64, stwierdziłem, że szkoda byłoby go nie wykorzystać. Przy okazji można nauczyć się trochę architektury C64 no i obsługi VBXE.

    • 2:
       
      CommentAuthorpirx
    • CommentTime7 May 2022
     
    kudos!
    • 3: CommentAuthorEagle
    • CommentTime7 May 2022
     
    Kod zrodlowy Commando na A7800
    ->link<-
    • 4:
       
      CommentAuthorMaW
    • CommentTime7 May 2022
     
    No i popsułeś Shantiemu zabawę, no!

    ...ale bliższa koszula ciału...

    • 5: CommentAuthorNitro
    • CommentTime7 May 2022 zmieniony
     
    shanti77 wyrabia 120% normy tymi portami.
    Jako wisienkę na torcie możesz dodać zripowane grafiki z fanowskiej wersji Arcade na C64:
    Film
    • 6:
       
      CommentAuthormaly_swd
    • CommentTime7 May 2022
     
    Cannon Fodder:)
    • 7:
       
      CommentAuthorshanti77
    • CommentTime7 May 2022 zmieniony
     
    @MaW nikt mi nie popsuł zabawę, wersja na C64 jest moim zdaniem lepsza od tej z A7800, ma większą dynamikę. Tu macie źródełka oryginalnej wersji z C64 (3 poziomy, z której korzystam):

    ->link<-

    Ciekawostką jest to ,że zaplanowane były 4 poziomy, a pewnie z braku pamięci 3 poziom wypadł i są tylko 1,2 i 4. (Zostały fragmenty kodu z 3 poziomu).

    Ta wersja Arcade to po prostu troszkę przerobiona oryginalna wersja(zmieniona grafika i dodane brakujące poziomy, pewnie jakieś AI dodano)

    Podobne techniki do obsługi przeciwników zastosowałem w TLS i Gacku, a nie znałem wtedy tego kodu( pewnie ode mnie bezczelnie zżynali ;).

    Sam projekt traktuję jako naukę, poznaję obsługę VBXE + architekturę C64, którą znałem raczej słabo.

    Generalnie różnice są w liczbie znaków , w C64 mamy 256, a Atari ma tylko 128. Trzeba było przerobić plansze na 5 zestawów znaków, do tego potrzebne były tablice translacji znaków do wersji 256 znakowej, żeby obsłużyć kolizje z tłem. VBXE emuluje duszki, tu jednak jest pewien problem, bo C64 może dla każdego duszka ustawiać priorytet wyświetlania, czy ma być pod czy nad danym kolorem. W VBXE wszystko jest rysowane nad tłem więc "duszki" nie wchodzą za drzewa, pod most itp. Mam na to pewien pomysł , ale zobaczymy jak wyjdzie.

    Wykorzystując dwa okienka na raz (MEM-A i MEM-B) można bardzo szybko rysować plansze (jakieś 2-3 linie 800 bajtów), a dane poziomów trzymać można w pamięci VBXE (poziom, zestawy znaków i dane do translacji do wersji 256 znakowej).

    Można już zagrać i zapętlić grę.

    ->link<-
    • 8:
       
      CommentAuthorxorcerer
    • CommentTime8 May 2022 zmieniony
     
    Boskie! Jaka szkoda, że to się pojawiło dopiero po >30 latach - marzyłem o tym bardzo długo.

    Tradycyjnie oczywiście czepię się psiego ogona, czyli Rapidus z dowolnie przyśpieszoną prędkością powoduje rozjechanie się podmiany znaków graficznych tła.

    Widziałem w tym nowszym video WIP, że przebrałeś i wybrałeś z wielu naprawdę dobry remix oryginalnej muzyki, ale może nie wszyscy znają to źródło i może komuś coś innego podpasuje w tło (np. metalowy remix z 2011 autorstwa Aki Järvinen'a):

    ->link<-

    Poza tym bajka!
    • 9:
       
      CommentAuthorshanti77
    • CommentTime8 May 2022
     
    @xorcerer problem niezgodności z rapidusem wynika głównie z timingami przerwań dli, żeby się wyrobić nie stosuję tu zapisu do WSYNC. Powoduje to że przy zwiększonej prędkości CPU zapisy są robione zbyt wcześnie.
    Dodałem poprawkę, teraz gra sprawdza czy uruchomiono ją na szybszym CPU i wtedy dodaje zapis do WSYNC i zmienia zachowanie pierwszego przerwania. Teraz powinno działać prawidłowo.
    • 10:
       
      CommentAuthorzbylu
    • CommentTime8 May 2022
     
    Czas na gameplay tej wspaniałej gry!
    • 11:
       
      CommentAuthorJacques
    • CommentTime8 May 2022 zmieniony
     
    Piękne! I doskonała wiadomość, że VBXE znów jest wykorzystane.
    Ciekawe czy dałoby się Mayhem in Monsterland? :-)
  1.  
    @shanti77 proponował bym celowac z grafika takiej jakosci jak w gacku na VBXE.Przeciez ta karta graficznie to 3 polki wyzej niz c64.Raczej grafa z amigi albo moze nesa . Teraz to moze turricana z c64 z grafa z amigi :) ????
    • 13:
       
      CommentAuthorxorcerer
    • CommentTime8 May 2022 zmieniony
     
    M.A.M.E. ma bardzo dobrą grafikę, nie trzeba nic więcej - ale tak naprawdę Commando jest tak kultowe, że nie mam zupełnie nic przeciwko przeniesieniu 1:1 z C64. To ma swój smak, nie mówiąc już o wspomnieniach jak ten klasyczny soundtrack Hubbarda dudnił na wszystkich giełdach i innych zlotach w Hybrydach.

    Jedyne co równie chwyta za wspomnienia, to komodorowskie Last V8, które zostało fatalnie źle przeniesione na Atari (no i jest wersja na C128 - która ma ciekawszą i większą mapę). Też dudniło z wielkiego nagłośnienia w epoce, do nieprzytomności.

    ps. nowa wersja działa z Rapidusem jak trzeba, dziękuję!
    • 14:
       
      CommentAuthorshanti77
    • CommentTime8 May 2022
     
    Widzę, że większość z was przecenia możliwości VBXE. Niektórzy mówią, że to Amiga 1200 podpięta do Atari ;)

    W statycznych tłach ta karta sobie radzi, ale gdybym chciał zrobić scrollowane tło gry w 256 kolorach to już nie podoła. Zastosowanie 256 kolorów powoduje ,że np. taki ekran z commando zajmuje 320x160=51200B. Teraz przy scrollu pionowym, co kilka klatek trzeba przesunąć te 50KB, dorysować górną linię (320x8=2560B), następnie narysować 16 "duszków" i nawet jeśli zastosujemy dual buffer nie wyrobimy się w jednej ramce (a gdzie jeszcze obsługa gry).

    W Gacku rysujemy tło, nanosimy na nią rampy. Następnie trzeba narysować 24 bomby, i dodatkowo zapamiętać tło pod nimi. Teraz co ramkę rysujemy do 8 "duszków" (znowu zapamietujemy tlo pod nimi). Tu następuje obsługa gry. Po zakończeniu rysowania ekranu (wygaszanie pionowe) zmazujemy wszystkie narysowane "duszki", jeśli trzeba zmazujemy lub animujemy bomby (polega to na odrysowaniu oryginalnego tła pod bombą i narysowaniu jej ponownie z nowym kształtem) i znowu zaczynamy rysować "duszki".

    W VBXE powinny być przynajmniej 2 bitplany i dodatkowo kolorowy tryb znakowy (taki jak ANTIC4), a mamy tylko tryb tekstowy. Na jednym bitplanie można by rysować tło w trybie znakowym, a na drugim "duszki". Ewentualnie zamiast drugiego bitplanu powinny być prawdziwe duszki, minimum 16 w różnych rozmiarach.

    Gry ze scrollem można zrobić, ale wtedy trzeba ja w przypadku Commando rysować tło z wykorzystaniem Antic'a, a "duszki" na VBXE. Można wykorzystać atrybuty jak w C64 i wtedy w obrębie znaków możemy zmieniać kolory. Pozostaje problem z cześciowym przykrywaniem "duszka" przez tło (np. postać przechodzi pod mostem). W C64 ustawiamy odpowiedni priorytet dla duszka i 1 lub 2 kolory tła będą nad nim. W VBXE można kombinować z atrybutami gdzie można ustawić 4 priorytety z tłem Antic'a, alę będzie to od razu dotyczyło wszystkich "duszków" ,a nie konkretnego.
    • 15:
       
      CommentAuthorJacques
    • CommentTime9 May 2022 zmieniony
     
    Ale Barbarianowi by podołało? :-)


    A co do Commando: czy planujesz może dodanie muzyki z dotychczasowej wersji atarowskiej czy może będzie jakaś wzorowana na C64?
    • 16:
       
      CommentAuthorpirx
    • CommentTime11 May 2022
     
    Ja tylko chciałbym zaznaczyć, że ten wątek ma numer 6502.
    • 17:
       
      CommentAuthorCyprian
    • CommentTime11 May 2022
     

    shanti77:

    Widzę, że większość z was przecenia możliwości VBXE. Niektórzy mówią, że to Amiga 1200 podpięta do Atari ;)


    z Amigą 1200 to raczej słaby przykład bo ma ona zarówno słabe duszki jak i niesławne bitplany (więcej niż 4 to problem wydajnościowy).
    VBXE to nie ma tych wad.

    shanti77:

    W VBXE powinny być przynajmniej 2 bitplany i dodatkowo kolorowy tryb znakowy (taki jak ANTIC4), a mamy tylko tryb tekstowy. Na jednym bitplanie można by rysować tło w trybie znakowym, a na drugim "duszki". Ewentualnie zamiast drugiego bitplanu powinny być prawdziwe duszki, minimum 16 w różnych rozmiarach.


    Rozumiem że nie chodzi Tobie o "bitplany" ale o warstwy takie jak w SNES, gdzie np. można mieć na raz kilka niezależnych wielokolorowych warstw - np cztery: każda po 4 kolory, albo trzy: dwie 16 kolorowe plus jedna 4 kolorowa, albo dwie jedna 256 druga 16 kolorów.




    shanti77:

    W statycznych tłach ta karta sobie radzi, ale gdybym chciał zrobić scrollowane tło gry w 256 kolorach to już nie podoła. Zastosowanie 256 kolorów powoduje ,że np. taki ekran z commando zajmuje 320x160=51200B. Teraz przy scrollu pionowym, co kilka klatek trzeba przesunąć te 50KB, dorysować górną linię (320x8=2560B), następnie narysować 16 "duszków" i nawet jeśli zastosujemy dual buffer nie wyrobimy się w jednej ramce (a gdzie jeszcze obsługa gry).


    a to ciekawe, problem jest po stronie VBXE czy raczej procesora?
    • 18: CommentAuthortebe
    • CommentTime12 May 2022 zmieniony
     
    ->link<-

    ->link<-

    tutaj kopiowane jest ~62KB tła + sprajty z literkami, wyrabia się w ramce, program blittera musi być ciągłym obszarem
    • 19:
       
      CommentAuthorjhusak
    • CommentTime12 May 2022
     
    @tebe, a czy można by w repo oznaczyć jakoś te przykłady na vbxe, dodając np. prefix vbxe_ albo suffix?
    • 20: CommentAuthortebe
    • CommentTime12 May 2022
     
    jest katalog w przykładami dla VBXE

    ->link<-
    • 21:
       
      CommentAuthorshanti77
    • CommentTime12 May 2022
     
    Ostatnia wersja :
    ->link<-

    I kod źródłowy , może ktoś będzie miał ochotę coś dodać lub poprawić, ja muszę teraz zająć się innymi projektami.

    ->link<-
    • 22:
       
      CommentAuthorzbylu
    • CommentTime12 May 2022
     
    Rozgrywka z finalnej wersji. Wspaniała konwersja shanti77!
    • 23:
       
      CommentAuthorJacques
    • CommentTime12 May 2022
     
    Niesamowite tempo konwersji, dzięki shanti77 za obowiązkową pozycję w bibliotece softu dla VBXE!
    • 24:
       
      CommentAuthorJacques
    • CommentTime13 May 2022
     

    shanti77:

    (...) ja muszę teraz zająć się innymi projektami.


    A rozważyłbyś podobny port Barbariana dla VBXE? Też na C64 nie ma doczytywania, a dźwięki można by pewnie wyripować z tej okropnej wersji XL/XE od LK Avalon (odgłosy walki są akurat OK).
    • 25: CommentAuthorkski
    • CommentTime13 May 2022
     
    Wygląda świetnie.
    Pytanie da się programy na VBXE (i ten konkretny) odpalić w emulatorze?
    • 26:
       
      CommentAuthorJacques
    • CommentTime13 May 2022
     
    Tak, Altirra emuluje VBXE.
    • 27: CommentAuthorkski
    • CommentTime13 May 2022 zmieniony
     
    Dzięki za odpowiedź i sorry ale gdzie to włączyć bo już szukałem.
    • 28:
       
      CommentAuthorJacques
    • CommentTime13 May 2022
     
    Identyczny temat już w sumie był :-)
    ->link<-
    • 29:
       
      CommentAuthorshanti77
    • CommentTime13 May 2022
     
    @kski
    System->Configure System->Peripherals->Devices->Add...
    -Internal devices->VideoBoard XE (VBXE)
    • 30: CommentAuthorkski
    • CommentTime13 May 2022
     
    Dzięki działa.
    Bardzo fajna gra.
    • 31:
       
      CommentAuthorshanti77
    • CommentTime1 Jun 2022
     
    Trochę testowałem VBXE. Przy konwersji Commando na Atari największy problem powstał przy zamianie jednego zestawu C64 z 1*256 znakami na kilka zestawów w Atari x*127. Stosując je naprzemiennie udało mi się upchnąć 4 pierwsze poziomy, jednak żeby to zadziałało z pozostałymi trzeba by przejść nawet na 10-12 zestawów. Dlatego czytając komentarze Tebe'go i Phaeron'a postanowiłem narysować całą ramkę za pomocą jednego blitu. W sumie to są 2 blity , bo pierwszy przygotowuje adresy znaków i obrazu w drugim blicie który je faktycznie rysuje. Rysuje on 40 znaków w 21 wierszach, znaki można by dodatkowo przerysować w hiresie (każdy znak to 8x8 pikseli=64 bajty)
    Pozostaje tylko dodatkowym blitem narysować 16 duszków i będzie można przenieść całą nową wersję (8 poziomów).
    Pozostanie tylko problem z rysowaniem duszków pod planszą gry (żeby zasłaniały je np. drzewa), ale tego nie wiem jak ugryźć.

    Scroll pierwszego levelu:
    • 32:
       
      CommentAuthorshanti77
    • CommentTime1 Jun 2022 zmieniony
     
    Tu commando z 4 poziomami (na starym silniku).
    • 33:
       
      CommentAuthorzbylu
    • CommentTime1 Jun 2022
     
    Świetnie gra wygląda z 4 poziomami. Czy mi się wydaje, czy też kolizja obiektów jest w tej wersji wyłączona? :)
    • 34:
       
      CommentAuthorshanti77
    • CommentTime1 Jun 2022 zmieniony
     
    Może zapomniałem wyłączyć . Poprawiłem już ;)
    • 35:
       
      CommentAuthorshanti77
    • CommentTime5 Jun 2022
     
    Wersja na nowym silniku, 8 poziomów z nową grafiką.
    • 36:
       
      CommentAuthorzbylu
    • CommentTime5 Jun 2022
     
    Gra już jest świetna, ale wygląda coraz lepiej. Osiem poziomów robi swoje. Powiedz mi, czy jest szansa na odgłosy strzałów, wybuchy granatów i ewentualnie inny dźwięk (muzyka) przy ekranach po przejściu danego poziomu?
    Gameplay:
    • 37:
       
      CommentAuthorshanti77
    • CommentTime5 Jun 2022
     
    Jak ktoś zrobiłby dźwięki i muzyczki to można dodać.
    • 38:
       
      CommentAuthorJacques
    • CommentTime5 Jun 2022
     
    A gdybyś je wyripował z wersji Atari?
    • 39: CommentAuthorRocky
    • CommentTime6 Jun 2022
     
    Nie chcę nikogo zniechęcać... ale wersja VBXE mogłaby być w kolorowym hires.. grafika w pamięci rozszerzenia i resztę załatwia blitter..
    • 40:
       
      CommentAuthorshanti77
    • CommentTime6 Jun 2022
     
    @Rocky oczywiście, że można, ale ktoś musiałby to wszystko narysować i napisać grę od nowa. W obecnej wersji korzystam z gotowego kodu i grafiki, na VBXE emuluje duszki i grafikę tła (Atari nie posiada 256 znaków), muzyka wzięta z przykładów dołączonych do RMT.
    • 41: CommentAuthortebe
    • CommentTime6 Jun 2022
     
    no ale przecież można to napisać w super, hiper języku wysokiego poziomu i wystarczy tylko wywołać grę z parametrem odpowiednim i już wszystko samo się zrobi, no przecież to jest taki "piece of cake", co niee...
    • 42:
       
      CommentAuthorshanti77
    • CommentTime7 Jun 2022 zmieniony
     
    Dodałem maskowanie duszków (za drzewem, pod mostem).

    ->link<-

    12.06.2022
    Dodałem poprawkę, bo prześwitywał tekst przez planszę na "real" Atari , na emu tego nie było. Dodatkowo podczas wczytywania pojawia się obrazek.
    • 43:
       
      CommentAuthorzbylu
    • CommentTime8 Jun 2022
     
    Super, świetnie to wygląda!
    • 44: CommentAuthor2E0TMF
    • CommentTime31 May 2023
     
    This is Awesome!!! nice and fast ! colourful nice sprites