atarionline.pl Top Drive demo - 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:
       
      CommentAuthorKaz
    • CommentTime7 Mar 2009 zmieniony
     
    Pamieta ktos jeszcze, ze narysowalem sporo obrazkow z Test Drive - mieszanka grafiki Amigi i Apple II? Jezeli nie to link jest tutaj:

    ->link<-

    A tutaj najnowsze dzielko Gonzo, ktory ozywil plansze tytulowa - ladny test roznych predkosci poruszania sie auta (uwaga, filmik jakos lepiej dziala na YT niz przez link zewnetrzny). I to nie koniec. Mamy ambitny plan zrobienia calej animacyjki oraz dodania do tego udzwiekowienia/umuzycznienia (Miker nawet juz cos tam kiedys probnie naszykowal). Zobaczymy, co z tego wyjdzie. Wszelka pomoc oczywiscie mile widziana - nie tylko przy tym projekcie.



    A zreszta, co mi szkodzi - wstawie te obrazki jeszcze raz, bo mi sie podobaja :)





    • 2:
       
      CommentAuthorKaz
    • CommentTime7 Mar 2009 zmieniony
     
    No tak, to nie wina wezszego ekranu, ze animacja jest taka malo plynna, ale procesu zamiany na filmik wideo. No musicie zaczekac, az opublikujemy z Gonzem xex :).
    • 3:
       
      CommentAuthorMaW
    • CommentTime7 Mar 2009 zmieniony
     
    z niecierpliwością wyczekuję całości...
    • 4:
       
      CommentAuthorKaz
    • CommentTime20 Mar 2009
     
    TeBe w nowej wersji G2F zrobil przykladowy slideshow z podlozona muzyka (z dema Eugenia). Poniewaz Miker pracowal nad jakas konwersja utworku z Test Drive II, to gdyby dokonczyl, mozna juz powoli myslec o zlozeniu wszystkiego w jedno... :)
    • 5: CommentAuthortebe
    • CommentTime20 Mar 2009
     
    muzykę można łatwo zmienić, wszystkie potrzebne pliki są "wystawione", wystarczy podmienić i odpalić !make.bat

    w sumie to dziwię się Kaz że jeszcze nie wypuściłeś żadnego slideshowa, tak samo inni którzy mają na koncie tyle prac, powinniście "trzepać" slideshowy dzień w dzień, bo dzień bez slideshowa to dzień stracony :)

    co Wy sobie wyobrażacie że te nowe właściwości G2F są tylko dla mnie
    • 6:
       
      CommentAuthorKaz
    • CommentTime20 Mar 2009
     
    Tebe - toz wlasnie napisalem, ze jak Miker dokonczy muze do TD to bedzie mozna poskladac w calosc :)

    Sliedshowy bede robil na starosc, jak juz nie bede mial sily utrzymac prosto myszki na stole :DDDD. Teraz nie ma czasu na takie drobiazgi ;)

    Wiemy, ze nowe wlasciwosci sa dla nas. Ale spokojnie, kazda nowa technologia musi byc najpierw "obwachana" i "przetrawiona" zanim sie rozpowszechni :).
    • 7: CommentAuthorGonzo
    • CommentTime20 Mar 2009
     
    Kaz, akurat tutaj slideshow nie był by taki zły, można łatwo akcję rozdzielić na fazy i unika się pisania kodu. Wczytywanie z pamięci jest dosyć szybkie.
    • 8:
       
      CommentAuthorKaz
    • CommentTime20 Mar 2009
     
    No dobra, przeciez nie mowie nie :).

    W takim razie skrobie maila do Mikera i konczymy "Top Drive Demo" ;)

    A jak jakis koder zdecyduje sie pomoc z konwersja Test Drive z Apple II albo C64; ewentualnie bedzie mial ambicje napisac wlasny symulator jazdy sportowym samochodem - to moge zabrac sie za wnetrza pojazdow i w ten sposob powstanie gra.

    Nawet nazwe ma to cos zmieniona - wlasnie po to, zeby uniknac problemow z prawami do tytulu gdyby mialo dojsc ewentualnie do oficjalnego wydania gry.
    • 9:
       
      CommentAuthoradiblol
    • CommentTime20 Mar 2009
     
    symulator jazdy... może w 3D? jeśli tak to życzę uzyskania 10 fps. no i też nie wyobrażam sobie pisania renderingu w innym języku niż asembler :) Jeśli są chętni to służę pomocą w sprawie matematyki (wektory, fizyka itp.)
    • 10: CommentAuthorGonzo
    • CommentTime20 Mar 2009
     
    Do gry jeszcze daleko, ale nasz mały slide może być szybko :)
    • 11:
       
      CommentAuthorKaz
    • CommentTime21 Mar 2009 zmieniony
     
    symulator 3D - czemu nie? Taki Fox albo Eru, ze wzgledu na doswiadczenia z Numenem, pewnie znalezliby odpowiedni poziom kompromisu, zeby bylo to szybkie.

    Ale symulator jazdy wcale nie musi byc 3D... w erze 8-bitowcow pelno bylo mniej lub bardziej udanych gier samochodowych, a trojwymiarowosci w nich za grosz nie ma... :)
    • 12:
       
      CommentAuthormiker
    • CommentTime21 Mar 2009
     
    Witam!

    Muza poszła niedawno do Kaza. Nieco zostało przerobiona w stosunku do wersji pierwotnej (plik midi), także zobaczymy jak to się zgra z samym demkiem (być może potrzebny będzie mały jej tuning, jeżeli już siedzimy w temetach motoryzacyjnych ;) ).
    • 13:
       
      CommentAuthorKaz
    • CommentTime21 Mar 2009
     
    Jezeli ma byc w demku muza zsynchronizowana z tym co sie dzieje na ekranie - to tak, male dopasowanie muzyki bedzie konieczne.
    • 14:
       
      CommentAuthorKaz
    • CommentTime26 Mar 2009 zmieniony
     
    Niesamowity Gonzo dalej programuje na zywca :). Teraz zrobil otwieranie szybki...

    • 15:
       
      CommentAuthorKaz
    • CommentTime2 Apr 2009 zmieniony
     
    ...oraz wstawil do srodka kierowce (na duszkach)! Jest wiec uchylana szyba, ruch samochodu i podkolorowany czlowiek.

    Tym razem nie filmik, a zwykly plik xex, ktory mozna odpalic na Atari:

    ->link<-



    Wazna uwaga - ten czlowieczek to z wersji C64 i tylko tymczasowo. Chcemy zrobic tak, zeby byl ten z wersji Amigi. No i oczywiscie animacja jego glowy.

    A Miker podeslal kolejna wersje muzyki, wiec calosc jest coraz blizej ukonczenia.
    • 16: CommentAuthorGonzo
    • CommentTime2 Apr 2009
     
    scroll do kompletu, jak już autko się uspokoi i będzie jechało powoli - press any key

    ->link<-

    c.d.n. :)
    • 17:
       
      CommentAuthorKaz
    • CommentTime1 Jul 2009
     
    Gonzo, zyjesz?
    • 18: CommentAuthorGonzo
    • CommentTime2 Aug 2009
     
    Zyję :) I właśnie doprowadzam to do finału, a Ty tu takie rzeczy (tzn. "znikam") :( Właśnie wychamowałem autko w samym środku ekranu, jeszcze trochę grafiki - ruch głowy, błysk w oku no i felgi (jak na 16bit), i będzie ok. :)
    • 19: CommentAuthorwieczor
    • CommentTime3 Aug 2009
     
    No pięknie panowie, a może jak już tyle multimedialnej pracy włożyliście, to kichniecie jedną dziurką od nosa i szybciorkiem resztę gry dopiszecie? :))
    • 20:
       
      CommentAuthorKaz
    • CommentTime7 Aug 2009
     
    Napisalem, ze znikam jako autor nowinek, a nie ze umarlem :). Wszelkie projekty, ktore rozpoczalem, dalej przeciez ciagne.

    Autko ladnie hamuje. To teraz bym potrzebowal zrzutow ekranu z Amigi (fazy gadania kierowcy) i wtedy zrobie ostatni brakujacy fragment grafiki do dema.

    Czytaja nas Amigowcy - czy bylby ktos tak mily i podrzucil takie screeny? Ja w ogole sie nie znam na emulatorach Amigi.
    • 21:
       
      CommentAuthorJacques
    • CommentTime22 Oct 2009
     
    Jak tam, jest szansa, że demko się ukaże w niedalekiej przyszłości? :-)
    • 22:
       
      CommentAuthorKaz
    • CommentTime22 Oct 2009
     
    Gonzo przygotowal juz wlasciwie wszystkie elementy demka - jest samochod jadacy, przyspieszajacy, zwalniajacy, jest mozliwosc podlozenia dzwieku, jest animacja kierowcy, Miker napisal podklad muzyczny.

    Z tym, ze ta animacja kierowcy pochodzi z C64 i jest po prostu slabsza od tej z Amigi. Wolalbym zrobic wlasnie ta wersje Amigowa i dlatego zwlekam z cala sprawa. Sam nie umiem zrobic zrzutow klatek animacji z Amigi, wiec czekam na jakas litosciwa dusze.
    • 23:
       
      CommentAuthorJacques
    • CommentTime22 Oct 2009
     
    A może ktoś z PPA.pl by pomógł?
    • 24:
       
      CommentAuthorxeen
    • CommentTime22 Oct 2009
     
    ja mogę spróbowac poszukać czy mam TD w zbiorach i odpalić to na winuae
    • 25:
       
      CommentAuthorKaz
    • CommentTime22 Oct 2009
     
    Bardzo chetnie skorzystam z Twojej pomocy.
    • 26:
       
      CommentAuthorxeen
    • CommentTime22 Oct 2009 zmieniony
     
    czy o to chodziło?
    oczywiście, jak będzie trzeba postaram się o nieco lepszą jakość kompresji + dźwięk
    • 27:
       
      CommentAuthorKaz
    • CommentTime22 Oct 2009
     
    O to chodzilo! Dzieki wielkie. A co masz na mysli piszac o kompresji? Najlepiej jest, by kompresji nie bylo - wszystkie piksele 1:1, bo zrzuce z tego klatki.
    • 28:
       
      CommentAuthorxeen
    • CommentTime23 Oct 2009
     
    kompresja jest bo plik byłby deko z duży, ale nie wpływa to, moim zdaniem, na pixele kierowcy - porównywałem
    • 29:
       
      CommentAuthorKaz
    • CommentTime11 Nov 2009
     
    Poniewaz autor tego programu ->link<- napisal u siebie, ze pracuje nad edytorem PMG to napisalem do niego, moze uda sie go namowic na publikacje tego programu i bedziemy mogli dalej dzialac. Oczywiscie taka animacje mozna by zrobic takze recznie, meczac sie w G2F, ale wiadomo, ze czlowiek leniwy i szuka szybszych, bo specjalizowanych, rozwiazan :)
    • 30: CommentAuthorGonzo
    • CommentTime2 Jan 2010
     
    Wszystkiego najlepszego w Nowym Roku!
    Tak jakoś czuję,że 2010 będzie dla A8 całkiem niezły.

    Na dobry początek newsy z Top Drive:

    sterowanie autkiem l-r

    • 31:
       
      CommentAuthorMaW
    • CommentTime2 Jan 2010
     
    o ile dobrze pamiętam, to w pierwowzorze "kierowało się" jezdnią - tzn. to ona przesuwała się w stosunku do kokpitu i nie było widać samochodu gracza :P
    • 32: CommentAuthorGonzo
    • CommentTime2 Jan 2010
     
    i kilka dodatków:

    - animacja kierownicy
    - poprawiony scroll horyzontu
    - intro (zatrzymanie autka w środku ekranu)

    jest jeszcze trochę do zrobienia...
    • 33: CommentAuthorGonzo
    • CommentTime2 Jan 2010
     
    MaW - masz rację, i tak mam nadzieję, że będzie, ale na razie jest jak jest, animacja trasy będzie dosyć upierdliwa, bo tu każdą linię trzeba będzie adresować :(
    • 34:
       
      CommentAuthorMaW
    • CommentTime2 Jan 2010
     
    trzymam kciuki! Już się nie mogę doczekać pełnej gry :-)

    BTW. linie drogi możesz zrobić na dwóch duszkach przemieniając ich kolory, co da złudzenie ruchu.
    • 35:
       
      CommentAuthorxeen
    • CommentTime2 Jan 2010
     
    u mnie sterowanie nie działa :( - cokolwiek nacisnę - SELF TEST
    • 36: CommentAuthorGonzo
    • CommentTime2 Jan 2010
     
    xeen - hmm, na prawdziwym sprzęcie nie testowałem, ale pod emulem joy chodzi bez problemów
    • 37:
       
      CommentAuthorxeen
    • CommentTime2 Jan 2010
     
    ja na emulu właśnie, posprawdzam parę ustawień
    • 38:
       
      CommentAuthormiker
    • CommentTime2 Jan 2010
     
    L/R, czyli left/right joyem, nie? ;)

    Co innego rzeczywiście self test daje.
    • 39:
       
      CommentAuthorJacques
    • CommentTime3 Jan 2010
     
    Wygląda naprawdę dobrze :-) Zamierzacie pójść w stronę wiernej konwersji, czy gry zainspirowanej Test Drive-em? Proszę, narysujcie tę przepiękną deskę rozdzielczą Porsche 911 bardzo wiernie, jeśli sił w Maluchu starczy :-)
    • 40:
       
      CommentAuthorKaz
    • CommentTime3 Jan 2010
     
    Ja jastem za tym, zeby z Test Drive ukrasc wszystko to co dobre, ale zrobic to jednak ladniej. Atari ma wiecej kolorow, jest szybsze - wiec mozna lepiej :).
    • 41:
       
      CommentAuthorTheFender
    • CommentTime4 Jan 2010
     
    Takie coś może się przyda?
    Wprawdzie nie to porsche i nie deska ale może ...


    (G2F oczywiście)
    • 42: CommentAuthorGonzo
    • CommentTime5 Jan 2010
     
    MaW - trasa na duszkach raczej nie wchodzi w grę, animacja na znakach daje znacznie większe możliwości.



    Czy w trybie znakowym możliwe jest scrollowanie linii, a nie całych wierszy (np. poprzez ustawienie dli dla każdej linii)?

    TheFender - fajny obrazek, można to będzie wrzucić jako screen tytułowy.

    Jacques - tak jak napisał Kaz, jeśli coś z tego wyjdzie, to będzie raczej składanka elementów z różnych gier + dodatkowe elementy, które wykorzystają możliwości A8. Deska jest przeniesiona z C64, jeżeli ktoś zechce ją podrasować to nie ma problemu z podmianką.

    Miker - muzyczka by się do tego przydała :)
    • 43: CommentAuthormono
    • CommentTime5 Jan 2010 zmieniony
     
    DLI ustawisz dla wiersza trybu znakowego, ale nic nie stoi na przeszkodzie, żeby wewnątrz ustawiać scroll w $D404 po czym czekać do następnej linii skanningowej (nie sprawdzałem, ale powinno się dać). Problem jest tylko taki, że taka procedura zajmie Ci całą skrolowaną część ekranu. Wewnątrz linii też nie zmienisz LMS w dliście. Na szczeście zakres scrolla poziomego to 0..15 - 16 cykli koloru/32 piksele w hires.

    Edit: Przykładowe DLI:
    dli: pha
    txa
    pha
    ldx #0
    loop:
    lda xpos,x
    sta HSCROL,x ;$D404
    sta WSYNC ;$D40A
    inx
    cpx #100 ;ilość linii ekranu ze skrolem
    bcc loop
    pla
    tax
    pla
    rti

    xpos to tablica przesuniec dla kazdej linii ekranowej.
    W dlist ustawiasz $20 dla każdej linii skrolowanej, a $80 w rozkazie tuż przed pierwszą linią skrolowaną.

    Edit 2: W załączniku kod do odpalenia na prawdziwej maszynie. Na emulcu wygląda na to, że pomysł działa.
    • 44: CommentAuthorGonzo
    • CommentTime8 Jan 2010
     
    mono - o to chodziło - działa suuper, lepiej niż sobie wyobrażałem. Zrobiłem to trochę inaczej bo opierałem się na G2F.



    Rozwiązanie jednego problemu powoduje powstanie dwóch następnych itd. :) (tzn. po rozwiązaniu dwóch pojawiają się cztery, taki ciąg geometryczny)

    Problem tkwi w sterowaniu czymś takim... Najlepsze co mi przychodzi na myśl to tablice, ale trzeba by tego stworzyć całe mnóstwo... Cała trasa to 9 wierszy (72linie). Aby to scrolować, to na przerwaniu NMI trzeba by ustawić adresy 9 wierszy i 72 linii - problemem jest tu wybieranie ustawień dla poszczególnych klatek (np. skręt w lewo to ok. 60 klatek). Dochodzi do tego animacja ruchu - faz animacji jest ok 100. Nie jest to takie straszne, bo znaków na obrazku jest 56 (coś koło tego) i wystarczyło by je podmienić na przerwaniu NMI. Nie wiem czy przypadkiem nie idę w ślepą uliczkę...
    • 45:
       
      CommentAuthormiker
    • CommentTime9 Jan 2010
     
    Hmm.. trasa budowana przez ekipę z ZDM-u, po paru głebszych (trza sobie było walnąć po łyku, panie kierowniku, bo zimno)... ;)

    A na serio - czy nie lepiej zrobić po parę faz skrętu w lewo i w prawo i w zalezności od tego jak ostry jest zakręt, odpowiednio "zrzucać" auto z drogi na pobocze (oczywiście w kierunku przeciwnym do kierunku, w którym biegnie zakręt). No i oczywiście po pewnym opóźnieniu - w końcu samochód nie "wylatuje" z drogi już na początku zakrętu, a już w trakcie jego trwania.

    Ale to powyżej... może dać na jakiś "bonus round"? :))
    • 46: CommentAuthorGonzo
    • CommentTime9 Jan 2010
     
    acha, zapomniałem dodać, że zaletą jest tu możliwość użycia 5 koloru i to, że można zrobić trasę z górkami/dołkami, co się chce. Ograniczeniem jest jedynie pamięć i wyobraźnia :)
    • 47: CommentAuthorGonzo
    • CommentTime9 Jan 2010
     
    miker - nie można, przyjżyj się np. takiemu Pole Position czy Road Race, gierki zrobione w latach 80, a animacje trasy są rewelacyjne. Tak się zastanawiam,jak oni to zrobili.
    • 48: CommentAuthormono
    • CommentTime9 Jan 2010 zmieniony
     
    Wyobrażam sobie to tak (nie robiłem nigdy takiej gry), że standardowo mamy prostą drogę i wtedy na ekranie widać dwa pobocza drogi schodzące się ku sobie w centrum ekranu (być może poza ekranem - nie ma to większego znaczenia) - to jest stała treść ekranu. Jeśli cała trasa będzie zapisana, jako przesunięcia względne w lewo lub prawo, to wystarczy przesuwać poszczególne linie ekranu (razem z LMSami oczywiście) w lewo lub prawo od dołu do góry np. przyjmujemy, że najniższa linia ma położenie 0 to centrum drogi jest zawsze na środku ekranu (na początek - potem to zero będzie się zmieniać zależnie od położenia samochodu). Kolejna linia ma położenie +1 więc przesuwamy ją od poprzedniej o jeden punkt (umownie - może to być zależne od numeru linii tak, żeby nie zaburzać perspektywy). Jeśli kolejna linia ma przesunięcie +2, to przesuwamy ją względem poprzedniej o 2 (względem pierwszej jest przesunięta o 3), itd. Nie wiem, jaki to da efekt; być może trzeba będzie wysokość linii przyjąć umownie np. 10 na samym dole i zmniejszać ku górze do 1.
    Trasa składałaby się z takich przesunięć np. trasa kołowa byłaby zdefiniowana jako 360 * -1, lub 360 * +1. Oczywiście przesunięcia +1, -1 mogą być skalowane o współczynnik ku górze dla zachowania perspektywy. Ale warto zauważyć, że zarówno wysokość "wiersza" na ekranie stała, tzn. 10 linii dla najniższej, 9 dla wyższej itd., jak i współczynnik dla każdego "wiersza" również byłby stały - można by go więc stablicować (zakładając, że np. przesunięcia mamy między -8 a 8 a linii 72 otrzymujemy 16*72=1152 bajtową tablicę przesunięć - to niewiele).
    Dodatkowo samochód zbaczając ze środka jezdni mógłby się przesuwać na prawo lub lewo o jakąś wartość, ale wtedy wszystkie linie obrazu byłyby przesuwane o tę samą wartość bezwzględnie.
    Edit: Deformacja trasy góra/dół polegałaby na lokalnym rozciąganiu/ściskaniu "wierszy" dzięki czemu obraz mógłby się chować lub uciekać poza ekran (tak to zdaje się jest robione w amigowym lotusie).
    • 49: CommentAuthorGonzo
    • CommentTime9 Jan 2010
     
    mono - ale jak to przesuwać. Do wyboru są wg mnie tylko tablice, bo jeśli by użyć jakichś funkcji, to mogło by się okazać, że A8 będzie za wolne. To samo dotyczy animacji ruchu. I jak się poruszać po takich tablicach...
    • 50: CommentAuthormono
    • CommentTime9 Jan 2010 zmieniony
     
    @Gonzo: Po kolei.
    Masz tablicę przesunięć dla kolejnych linii skanningowych, którą wykorzystujesz do ustawienia HSCROL na DLI. Tę tablicę oraz adresy w LMS obliczasz okresowo - dzięki temu i DLI masz poprzesuwany widok trasy. Nazwijmy ją DISTAB.
    Druga tablica to definicja trasy zawierająca zakrzywienia trasy - liczby -8..7. Na jej podstawie i podstawie obecnego położenia samochodu w trasie będziemy obliczać zawartość tablicy. Tę tablicę nazwijmy TOURTAB, a wskaźnik położenia samochodu w niej TOURPOS.
    Teraz obliczamy przesunięcia w DISTAB na podstawie TOURTAB i TOURPOS:
    int d = 0, l = 0;
    for (int i = 0; i < 72; i++) {
    DISTAB[72-1-i] = l;
    d = d + TOURTAB[TOURPOS+i];
    l = l + d;
    }

    Zmienna d to przesunięcie dla aktualnie pokazanego kroku. Te przesunięcia kumulują się w zmiennej l, aby poprawnie obrazować np. trasę prosta, lekki skręt i dalej prosta (czyli 0,0,0,1,0,0,0; przy wykorzystaniu samej d mielibyśmy niepoprawny obraz trasy, bo zakręt powinien skrzywić prostą za nim).
    Wg tej tablicy ustawiasz HSCROL na DLI za pomocą:
    HSCROL = DISTAB[i] & 3

    Wg tej tablicy obliczasz też LMSy w kolejnych liniach (zakładając użycie trybu graficznego):
    int a = 0x8000;  //pierwsza linia ekranowa od $8000
    for (int i = 0; i < 72; i++) {
    LMS[i] = a + 40 + DISTAB[i] / 4;
    a += 80; //szerokość logicznej linii
    }

    No i voila! Pierwsze koty za płoty.
    To obrazuje zmiany trasy z lotu ptaka czyli sytuację kiedy każdy "krok" w trasie TOURTAB obrazowany jest przez jedną linię ekranową.
    Dodajmy teraz perspektywę. Najprościej można to zrobić zakładając liniową zmianę ilości linii ekranowych przypadających na jeden "krok" w trasie. Niech więc na jeden krok na dole ekranu przypada 10 linii ekranowych, na drugi 9, itd.
    Tablica mapująca numer kroku w trasie przypadająca linii ekranowej może wyglądać np. tak:
    TOURSTEP = {
    14,
    13,13
    12,12,
    11,11,11,
    10,10,10,
    9,9,9,9,
    8,8,8,8,8,
    7,7,7,7,7,
    6,6,6,6,6,6,
    5,5,5,5,5,5,5,
    4,4,4,4,4,4,4,4,
    3,3,3,3,3,3,3,3,
    2,2,2,2,2,2,2,2,2,
    1,1,1,1,1,1,1,1,1,1,
    0,0,0,0,0,0,0,0,0,0,
    };

    Można ją obliczać ze wzoru na pole trójkąta przyjmując za pole ilość linii ekranowych (72) a za długość jednego z boków ilość linii ekranowych dla najbliższej linii (10).
    Procedura licząca DISTAB będzie wtedy wyglądać tak:
    int d = 0, l = 0, s = 0;
    for (int i = 0; i < 72; i++) {
    DISTAB[72-1-i] = l;
    if (s != TOURSTEP[72-1-i]) {
    d = d + TOURTAB[TOURPOS+TOURSTEP[72-1-i]];
    l = l + d;
    s = TOURSTEP[72-1-i];
    }
    }

    Konstrukcja warunkowa jest wprowadzona po to, żeby poprawnie kumulować przesunięcia dla poszczególnych kroków toru w przypadku kiedy jednemu krokowi odpowiada więcej niż jedna linia ekranowa.
    No i mamy perspektywę.
    Jeśli chcesz deformować powierzchnię toru, to robisz to modyfikując TOURSTEP.
    Samochód w torze poruszasz ustawiając nową wartość TOURPOS oraz przeliczając tablicę DISTAB i LMS oraz (w przypadku deformacji nawierzchni) TOURSTEP.
    Samo rysowanie odbywa się na DLI na bazie tablicy DISTAB (HSCROL) i LMS (można od razu modyfikować LMS w dlist zamiast zapisywać je w tablicy).

    Edit: Oczywiście warto by mieć arytmetykę stałoprzecinkową tutaj bo na całkowitych deltach będziesz miał bardzo szybkie zakręty.