Sprite nie chce mi się wyświetlić

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

Sprite nie chce mi się wyświetlić

#1 Post 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.
Have a nice day!

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

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

#2 Post autor: wegi »

Load"nazwapliku",8,1

sys 2*4096

albo

sys 8192
2021.06.16 "U mnie w okolicy też nikt nie umarł - ale nie będę na tej podstawie twierdził, że Covid nie istnieje ani że nie jest żadnym zagrożeniem"

2023.09.09 U mnie też nikt nie umarł włącznie z ciotką chorą na białaczkę. Dwukrotnie zaszczepiona dostała covida w szpitalu - żyje. Ta plandemia to już jak Bóg - wszędzie jest i nikt go nie widział.

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#3 Post 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ł.
Have a nice day!

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

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

#4 Post 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
2021.06.16 "U mnie w okolicy też nikt nie umarł - ale nie będę na tej podstawie twierdził, że Covid nie istnieje ani że nie jest żadnym zagrożeniem"

2023.09.09 U mnie też nikt nie umarł włącznie z ciotką chorą na białaczkę. Dwukrotnie zaszczepiona dostała covida w szpitalu - żyje. Ta plandemia to już jak Bóg - wszędzie jest i nikt go nie widział.

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

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

#5 Post autor: carrion »

wklej cały kod
c64portal.pl, retronavigator.com

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#6 Post 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.
Have a nice day!

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

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

#7 Post 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ć
Ostatnio zmieniony 28 lis 2020, 00:40 przez wegi, łącznie zmieniany 1 raz.
2021.06.16 "U mnie w okolicy też nikt nie umarł - ale nie będę na tej podstawie twierdził, że Covid nie istnieje ani że nie jest żadnym zagrożeniem"

2023.09.09 U mnie też nikt nie umarł włącznie z ciotką chorą na białaczkę. Dwukrotnie zaszczepiona dostała covida w szpitalu - żyje. Ta plandemia to już jak Bóg - wszędzie jest i nikt go nie widział.

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#8 Post autor: Operator Teleksu »

Ok, dzięki ci wegi. Jakaś rada to jest ;)
Have a nice day!

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

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

#9 Post 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
2021.06.16 "U mnie w okolicy też nikt nie umarł - ale nie będę na tej podstawie twierdził, że Covid nie istnieje ani że nie jest żadnym zagrożeniem"

2023.09.09 U mnie też nikt nie umarł włącznie z ciotką chorą na białaczkę. Dwukrotnie zaszczepiona dostała covida w szpitalu - żyje. Ta plandemia to już jak Bóg - wszędzie jest i nikt go nie widział.

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#10 Post 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ą.
Have a nice day!

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#11 Post 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ę.
Have a nice day!

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

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

#12 Post 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
2021.06.16 "U mnie w okolicy też nikt nie umarł - ale nie będę na tej podstawie twierdził, że Covid nie istnieje ani że nie jest żadnym zagrożeniem"

2023.09.09 U mnie też nikt nie umarł włącznie z ciotką chorą na białaczkę. Dwukrotnie zaszczepiona dostała covida w szpitalu - żyje. Ta plandemia to już jak Bóg - wszędzie jest i nikt go nie widział.

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#13 Post autor: Operator Teleksu »

Dzięki ale C64 Studio znałem już (trochę).
Have a nice day!

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

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

#14 Post 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.
2021.06.16 "U mnie w okolicy też nikt nie umarł - ale nie będę na tej podstawie twierdził, że Covid nie istnieje ani że nie jest żadnym zagrożeniem"

2023.09.09 U mnie też nikt nie umarł włącznie z ciotką chorą na białaczkę. Dwukrotnie zaszczepiona dostała covida w szpitalu - żyje. Ta plandemia to już jak Bóg - wszędzie jest i nikt go nie widział.

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

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

#15 Post 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.

Awatar użytkownika
Operator Teleksu
Posty: 59
Rejestracja: 27 lis 2020, 21:31

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

#16 Post 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.
Have a nice day!

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

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

#17 Post 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.

ODPOWIEDZ