Strona 1 z 1

Sprite nie chce mi się wyświetlić

: 27 lis 2020, 22:01
autor: Operator Teleksu
Witam wszystkich,

Jestem początkujący w dziedzinie Commodore 64 i ostatnio tak dla zabawy pisałem sobie
program w Turbo Assemblerze (wszystko robię po staremu na emulatorze) który wyświetla
jeden sprite i pozwala poruszać nim przy pomocy joysticka. Nie chcę tu wklejać całego kodu,
bo pewnie to i tak nie istotne co dokładnie mój program robi ale postaram się po krótce opowiedzieć
w czym tkwi mój problem.

Otóż kod zaczyna się pod adresem $2000 a pod adresem $2100 mam zadeklarowane dane sprita -
jak skompiluje wszystko do pamięci to wszystko jest ok, wszystko działa jak najlepiej. Ale jak
spróbuje skompilować do pliku obiektowego, na dyskietce, i potem wczytuje mój program to nie
wyświetla się mój sprite. Poza tym mój program robi wszystko co powinien (np. zmienia kolor tła)
i nawet próbowałem, że tak powiem, debugować go przy pomocy BASIC'a - nadpisałem sobie ten
adres $2100 samymi 255 no i po uruchomieniu jest kwadrat na ekranie. Czyli tak jakby dane sprite'a
się nie chciały załadować do pamięci.

W każdym bądź razie kompletnie nie rozumiem co robię źle. Pisałem że jestem tutaj początkujący
(chociaż wgl trochę się znam na programowaniu) i jakby co to sorry za zawracanie dvpy takimi głupotami.
Poza tym szczerze dziękuję jeśli ktokolwiek na forum może mi wskazać co i dlaczego mi nie działa.

Re: Sprite nie chce mi się wyświetlić

: 27 lis 2020, 23:24
autor: wegi
Load"nazwapliku",8,1

sys 2*4096

albo

sys 8192

Re: Sprite nie chce mi się wyświetlić

: 27 lis 2020, 23:40
autor: Operator Teleksu
No tak robiłem żeby załadować i uruchomić program. Niestety nie działało jak powinno, tak
jak opisałem problem. W razie czego to dopytajcie, jakbym coś nie zrozumiale napisał.

Re: Sprite nie chce mi się wyświetlić

: 27 lis 2020, 23:54
autor: wegi
Pszecinek 8 pszecinek 1

Najważniejsze jest to 1

Po załadowaniu wpisz LIST

Czy pojawiają się krzaki?

- co rozumiesz jako plik obiektowy - jak go uzyskujesz?
- Używasz cartridga jakiegoś? Jakiego?

Jak nie to wyślij źródło na PM zobaczę w emulatorze (o ile masz możliwość i potrafisz zgrać plik na kartę sd )

A najlepiej plik jak go nazywasz obiektowy wyślij na pm (to będzie plik prg - pewnie trzeba go spakować zipem żeby go wysłać)


edit
aaa na emu działasz to nie ma problemu

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 00:09
autor: carrion
wklej cały kod

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 00:11
autor: Operator Teleksu
Wysłałem ci obrazy dyskietek z czym potrzeba. Wielkie dzięki że się zainteresowałeś i nie obraź się jakby się okazało
że u ciebie jednak działa - już parę razy tak miałem że coś nie działa tylko na moim kompie.

plik objektowy uzyskuje wciskając {5 (strzałka w tył i 5) w turbo assemblerze i wpisując nazwę pliku.
po wpisaniu LIST nie pojawiają się krzaki - nic się nie pojawia.

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 00:18
autor: wegi
zdaje sie że tasm nie ma tej opcji przy kompilacji do pamięci rozłoży ci dane prawidłowo a przy kompilacji na dysk będzie to w ciągu

Nie pamiętam czy jest i jak brzmiała składnia dyrektywy w tasmie .align

Masz coś takiego

Kod: Zaznacz cały

*=$2000
jsr cośtam
sta coś
lda gdzieś
...

*=$2100
.byte $00,$01...
Skompiluj osobno 2 pliki na dysk

pierwszy z kodem
drugi z danymi sprajta

wgraj 2 osobno
będzie działać

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 00:22
autor: Operator Teleksu
Ok, dzięki ci wegi. Jakaś rada to jest ;)

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 00:36
autor: wegi
Albo zrób to tak:

Kod: Zaznacz cały

*=$2000


ldx #$3f
lda sprite,x 
sta $2100,x //;sta spritebank,x
dex
bpl *-7

...
...


sprite
.byte $00,...
i wtedy nie musisz kompilować 2 plików

Oczywiście niebawem musisz "oddalić" bank sprajta, bo jak rozbudujesz swój kod to go nadpiszesz danymi sprajta

Mam nadzieję że kumasz o co mi chodzi

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 00:43
autor: Operator Teleksu
kumam kumam i wypróbuję może kiedy tym drugim sposobem, chociaż zastanawiam się czy
nie poszukać sobie lepiej innego assemblera. Muszę w każdym razie popytać kiedyś w innym
wątku czego tu ludzie najczęściej używają.

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 15:49
autor: Operator Teleksu
Chciałem jeszcze dopisać, w razie by ktoś miał podobny problem i trafił tu przez google.
Próbowałem innych assemblerów i problem jest taki sam. Natomiast te drugie rozwiązanie
od wegi zdaje się że wgl jak najbardziej tak się właśnie robi - znalazłem na GitHubie taki
projekt gry na C64:
https://github.com/darrenfoulds/1nvader-c64
i identyczną sztuczkę tam autor stosuję.

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 15:58
autor: wegi
Skoro i tak się bawisz w emulatorze to takich cyrków nie masz tutaj - sam używałem.

https://www.georg-rottensteiner.de/en/index.html

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 16:05
autor: Operator Teleksu
Dzięki ale C64 Studio znałem już (trochę).

Re: Sprite nie chce mi się wyświetlić

: 28 lis 2020, 16:09
autor: wegi
No i tam skompilowany plik będzie miał właściwą długość, a prg ładujesz do emulatora jednym kliknięciem z c64studio z możliwością pozakładania breakpointów, śledzenia adresów etykiet w trakcie edycji itd.

Re: Sprite nie chce mi się wyświetlić

: 30 lis 2020, 12:01
autor: Nitro
Proponuje jak najszybciej zapoznać się z podstawami monitora albo rodzimym programem C64 Debugger.
Korzystając z powyższych narzędzi będziesz mógł zobaczyć zawartość pamięci co pozwoli szybko dotrzeć do źródła problemu.

Re: Sprite nie chce mi się wyświetlić

: 01 gru 2020, 00:51
autor: Operator Teleksu
Nie za specjalnie lubię używać wszelkiego rodzaju debuggerów ale owszem :wink: przed chwilą sobie ściągnąłem,
programik tego rodzaju, bodajże Elite Mon i znalazłem gdzieś w Internecie instrukcje z jego poleceniami -
w sumie prosty programik tylko jakoś miałem wątpliwości jaką literkę wpisać żeby to czy tamto pokazało.

WIEM ŻE emulator VICE ma wbudowany monitor ale taki cudak ze mnie, że chce po prostu poczuć nostalgiczny
klimat 8-bitowego komputera i wszystko muszę robić w sposób max zbliżony do tego co na prawdziwym C64.

Re: Sprite nie chce mi się wyświetlić

: 02 gru 2020, 17:09
autor: Nitro
To już co kto lubi, ja kiedy kodowałem używałem monitora VICE, próg wejścia niski, poleceń mnóstwo. A potem wyszedł C64 Debugger i nagle zobaczyłem, że monitor VICE to tylko mały karzełek.
Ale co kto lubi, chcesz używać natywnych narzędzi, działaj, jeśli tylko sprawia Ci to frajdę, to najważniejsza rzecz.