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 23:05 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 14:05
       
      kudos!
      • 3: CommentAuthorEagle
      • CommentTime7 May 2022 15:05
       
      Kod zrodlowy Commando na A7800
      ->link<-
      • 4:
         
        CommentAuthorMaW
      • CommentTime7 May 2022 18:05
       
      No i popsułeś Shantiemu zabawę, no!

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

      • 5: CommentAuthorNitro
      • CommentTime7 May 2022 19:05 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 19:05
       
      Cannon Fodder:)
      • 7:
         
        CommentAuthorshanti77
      • CommentTime7 May 2022 22:05 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 11:05 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 11:05
       
      @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 14:05
       
      Czas na gameplay tej wspaniałej gry!
      • 11:
         
        CommentAuthorJacques
      • CommentTime8 May 2022 15:05 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 17:05 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 20:05
       
      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 05:05 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 19:05
       
      Ja tylko chciałbym zaznaczyć, że ten wątek ma numer 6502.
      • 17:
         
        CommentAuthorCyprian
      • CommentTime11 May 2022 22:05
       

      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 11:05 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 12:05
       
      @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 12:05
       
      jest katalog w przykładami dla VBXE

      ->link<-
      • 21:
         
        CommentAuthorshanti77
      • CommentTime12 May 2022 21:05
       
      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 21:05
       
      Rozgrywka z finalnej wersji. Wspaniała konwersja shanti77!
      • 23:
         
        CommentAuthorJacques
      • CommentTime12 May 2022 23:05
       
      Niesamowite tempo konwersji, dzięki shanti77 za obowiązkową pozycję w bibliotece softu dla VBXE!
      • 24:
         
        CommentAuthorJacques
      • CommentTime13 May 2022 08:05
       

      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 10:05
       
      Wygląda świetnie.
      Pytanie da się programy na VBXE (i ten konkretny) odpalić w emulatorze?
      • 26:
         
        CommentAuthorJacques
      • CommentTime13 May 2022 10:05
       
      Tak, Altirra emuluje VBXE.
      • 27: CommentAuthorkski
      • CommentTime13 May 2022 11:05 zmieniony
       
      Dzięki za odpowiedź i sorry ale gdzie to włączyć bo już szukałem.
      • 28:
         
        CommentAuthorJacques
      • CommentTime13 May 2022 11:05
       
      Identyczny temat już w sumie był :-)
      ->link<-
      • 29:
         
        CommentAuthorshanti77
      • CommentTime13 May 2022 11:05
       
      @kski
      System->Configure System->Peripherals->Devices->Add...
      -Internal devices->VideoBoard XE (VBXE)
      • 30: CommentAuthorkski
      • CommentTime13 May 2022 11:05
       
      Dzięki działa.
      Bardzo fajna gra.
      • 31:
         
        CommentAuthorshanti77
      • CommentTime1 Jun 2022 21:06
       
      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 21:06 zmieniony
       
      Tu commando z 4 poziomami (na starym silniku).
      • 33:
         
        CommentAuthorzbylu
      • CommentTime1 Jun 2022 22:06
       
      Ś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 22:06 zmieniony
       
      Może zapomniałem wyłączyć . Poprawiłem już ;)
      • 35:
         
        CommentAuthorshanti77
      • CommentTime5 Jun 2022 10:06
       
      Wersja na nowym silniku, 8 poziomów z nową grafiką.
      • 36:
         
        CommentAuthorzbylu
      • CommentTime5 Jun 2022 12:06
       
      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 13:06
       
      Jak ktoś zrobiłby dźwięki i muzyczki to można dodać.
      • 38:
         
        CommentAuthorJacques
      • CommentTime5 Jun 2022 22:06
       
      A gdybyś je wyripował z wersji Atari?
      • 39: CommentAuthorRocky
      • CommentTime6 Jun 2022 15:06
       
      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 18:06
       
      @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 21:06
       
      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 20:06 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 14:06
       
      Super, świetnie to wygląda!
      • 44: CommentAuthor2E0TMF
      • CommentTime31 May 2023 22:05
       
      This is Awesome!!! nice and fast ! colourful nice sprites