Mad Pascal
Re: Mad Pascal
Dzięki @carrion za miłe słowo :]
Nie, nie pisałem jeszcze na Plus4World.com bo nie mam tam konta, może z czasem założę ale jak chcesz tam dać znać to fajnie.
Ta gra to taka piaskownica z prostymi AI ale można napisać lepsze i to zostawiam chętnym albo sobie jak będę miał natchnienie :]
Do tego trochę pociąga mnie C+4 i Twój artykuł na temat KickC i C+4 pozwolił mi postawić pierwsze kroki
Filmik i art. na portalu był by cool bo zależy mi trochę na promocji Mad Pascala bo wtedy jego autor TeBe doda więcej ficzerów związanych z rodziną Commodore a tak to wsparcie teraz jest podstawowe (mi wystarcza) a cała para idzie w platformę A8.
Większe zainteresowanie z strony Commodore większa motywacja dla autora Mad Pascala
Nie, nie pisałem jeszcze na Plus4World.com bo nie mam tam konta, może z czasem założę ale jak chcesz tam dać znać to fajnie.
Ta gra to taka piaskownica z prostymi AI ale można napisać lepsze i to zostawiam chętnym albo sobie jak będę miał natchnienie :]
Do tego trochę pociąga mnie C+4 i Twój artykuł na temat KickC i C+4 pozwolił mi postawić pierwsze kroki
Filmik i art. na portalu był by cool bo zależy mi trochę na promocji Mad Pascala bo wtedy jego autor TeBe doda więcej ficzerów związanych z rodziną Commodore a tak to wsparcie teraz jest podstawowe (mi wystarcza) a cała para idzie w platformę A8.
Większe zainteresowanie z strony Commodore większa motywacja dla autora Mad Pascala
Siege AI Playground
@carrion właśnie udało mi się (w końcu) wygrać z komputerem we własną grę także proszę nie narzekać na poziom trudności jakby co, gra jest do przejścia, po prostu trzeba zaobserwować najwłaściwszą drogę na każdym poziomie a zwłaszcza na 2 ostatnich
Re: Mad Pascal
hehe właśnie miałem pisać że jest mega trudno. nie wygrałem ani razu - troche za szybcy są dla mnie ci przeciwnicy...
ale ale mam pomysł. Zrobię ci do tego jakiś obrazek tytułowy bo chciałbym zobaczyć jak poradzisz sobie z dodaniem w Mad Pascalu obrazka w trybie graficznym do tej gry... Machne coś na szybko więc nie będzie to jakieś arcydzieło, ale zawsze coś
Czy nazwa "C+4 Tron" będzie OK?
Ide zaraz nakręcę jakiś mini filmik bo najwyższy czas coś na portal i na kanał wstawić.
ale ale mam pomysł. Zrobię ci do tego jakiś obrazek tytułowy bo chciałbym zobaczyć jak poradzisz sobie z dodaniem w Mad Pascalu obrazka w trybie graficznym do tej gry... Machne coś na szybko więc nie będzie to jakieś arcydzieło, ale zawsze coś
Czy nazwa "C+4 Tron" będzie OK?
Ide zaraz nakręcę jakiś mini filmik bo najwyższy czas coś na portal i na kanał wstawić.
c64portal.pl, retronavigator.com
Re: Mad Pascal
No to proszę, w załączniku wersja wolniejsza
Może zrobię wybieranie szybkości? Ta wersja w co grałeś uważana jest przeze mnie za normal w załączniku masz to co uważam za slow :]
Chętnie zapodam Twoją grafikę do tej gry, nie musi być nic fancy
Kluczem do zwycięstwa jest dostrzeżenie patternów AI, też na początku nie mogłem wygrać przez cały dzień od ukończenia prac, ale teraz wygrywam za każdym razem, nie wszystkie rundy ale pierwszy dochodzę do 9 zwycięst.
Tytuł gry jaki chcesz, dla mnie to jest piaskownica
Może zrobię wybieranie szybkości? Ta wersja w co grałeś uważana jest przeze mnie za normal w załączniku masz to co uważam za slow :]
Chętnie zapodam Twoją grafikę do tej gry, nie musi być nic fancy
Kluczem do zwycięstwa jest dostrzeżenie patternów AI, też na początku nie mogłem wygrać przez cały dzień od ukończenia prac, ale teraz wygrywam za każdym razem, nie wszystkie rundy ale pierwszy dochodzę do 9 zwycięst.
Tytuł gry jaki chcesz, dla mnie to jest piaskownica
Tron+4 WINNER ;)
Nie jest lekko ale można :]
Re: Mad Pascal
poszedł news na portalu
https://c64portal.pl/2021/02/22/program ... al-dla-c4/
jest filmik z mini niespodzianką na końcu
zapodałem też info na plus4world - możliwe że będzie news na ich głównej.
https://c64portal.pl/2021/02/22/program ... al-dla-c4/
jest filmik z mini niespodzianką na końcu
zapodałem też info na plus4world - możliwe że będzie news na ich głównej.
c64portal.pl, retronavigator.com
Re: Mad Pascal
Dzięki, bardzo fajnie wyszedł ten materiał, no i dopieściłeś mi ucho moim ulubionym muzykiem ze sceny C64 z lat '90 - lepiej być nie mogło
Tron+4 C16
No to ok, celujemy także w 16KB RAM
Mad Pascal - IRQ
Aby się zsynchronizować z ramką potrzebowałem opanować Raster IRQ, wydaje się, że to może wyglądać tak jak poniżej, od linii 204 to chyba nawet może ten kod robić za VBLK
Kod: Zaznacz cały
var
DETIRQSRC : byte absolute $ff09; //detect IRQ source, and clear IRQ flag
SETIRQSRC : byte absolute $ff0a; //set IRQ source
RC : byte absolute $ff0b; //raser counter bits 0-7
BACKGROUND : byte absolute $ff15;
BOREDER : byte absolute $ff19;
VCOUNT : byte absolute $ff1d; //vertical line bits 0-7
IRQVEC : word absolute $fffe;
var
tmp : byte absolute $ff;
procedure myRasterIrq; interrupt;
begin
asm { phr };
Inc(BOREDER);
tmp:= VCOUNT + 32; repeat until tmp = VCOUNT;
Dec(BOREDER);
DETIRQSRC := DETIRQSRC and %01111111;
asm { plr };
end;
begin
pause;
asm { sei \ sta $ff3f};
RC := 204; SETIRQSRC := 2;
DETIRQSRC := DETIRQSRC and %01111111;
IRQVEC := word(@myRasterIrq);
asm { cli };
repeat until false;
end.
Mad Pascal - kodowanie stringów
No i dzięki TeBe mamy kolejny drobiazg dla rodziny Commodore ale ułatwiający życie
Od dziś zamiast pisać tak:
można już tak:
Od dziś zamiast pisać tak:
Kod: Zaznacz cały
procedure endScreen;
var
winner: string = #23#9#14#14#5#18#33;
loser : string = #12#15#19#5#18#33;
begin
if player1.score = ZERO + VICTORIES then printXY(winner, 2, 0, $71 + $80)
else printXY(loser, 2, 0, $71 + $80);
end;
Kod: Zaznacz cały
procedure endScreen;
var
winner: string = 'winner!'~;
loser : string = 'looser!'~;
begin
if player1.score = ZERO + VICTORIES then printXY(winner, 2, 0, $71 + $80)
else printXY(loser, 2, 0, $71 + $80);
end;
Re: Mad Pascal - IRQ
Eh... Oczywiście miałem na myśli, że ten kod może "robić" za VBI a nie VBLK, podczas VBLK to on będzie pracował.
Mad Pascal - Multicolor
Mad Pascal został skrojony pod Atari i jego znakomity format binarny XEX. Z tego powodu nie działa jeszcze dla rodziny Commodore dyrektywa dołączania zasobów, dlatego musiałem się posłużyć małym trickiem.
Zasoby umieściłem w procedurze ASM gdzie mogłem sterować za pomocą ORG miejscem danych w pamięci a na końcu (by optymalizator nie wyrzucił mi nieużywanej procedury) przypisałem ją do zmiennej absolute.
Mam nadzieję, że z czasem będzie to można zrobić "po ludzku" ale na ten moment działa to w ten sposób
Grafika na szybko wygenerowana za pomocą Multipaint.
Zasoby umieściłem w procedurze ASM gdzie mogłem sterować za pomocą ORG miejscem danych w pamięci a na końcu (by optymalizator nie wyrzucił mi nieużywanej procedury) przypisałem ją do zmiennej absolute.
Mam nadzieję, że z czasem będzie to można zrobić "po ludzku" ale na ten moment działa to w ten sposób
Grafika na szybko wygenerowana za pomocą Multipaint.
Kod: Zaznacz cały
var
SETBITMAP : byte absolute $ff06;
SETMCOLOR : byte absolute $ff07;
BITMAPADDR : byte absolute $ff12;
VIDEOMATRIX : byte absolute $ff14;
BACKGROUND : byte absolute $ff15;
COLOUR1 : byte absolute $ff16;
BORDER : byte absolute $ff19;
var
tmp : pointer absolute $60;
procedure gfxData; assembler;
asm {
org $4000
; bitmap:
.byte ...
org $6000
; colors 2
.byte ...
org $6400
; colors 1
.byte ...
};
end;
{*
multipaint format / txt export
http://multipaint.kameli.net/
*}
begin
SETBITMAP := SETBITMAP or $20;
SETMCOLOR := (SETMCOLOR and $40) or $18;
// (xx010xxx) $4000 = 2 * $2000; (xx111xxx) $e000 = 7 * $2000
BITMAPADDR := %00010000;
// (01100xxx) $6000; (01101xxx) $6800; (01110xxx) $7000; ...
VIDEOMATRIX := %01100000;
{
; border
.byte 6
; background 1:
.byte 0
; background 2:
.byte 65
}
BORDER := 6;
BACKGROUND := 0;
COLOUR1 := 65;
tmp := @gfxData; // opt workaround
repeat until false;
end.
Multicolor a C16
@Carrion coś mi się nie zgadza...
C16 ma 16KB czy od $0 do $3fff.
Pamięci ekranu nie ustawię od $0 więc pierwszy możliwy adres jak zrozumiałem to $2000 czyli mapę kolorów musiałbym dać do $1800 czyli na kod zostaje mi 2KB od $1000 do $17ff.
Naprawdę wąsko C16 to chyba nie Atari bym mógł wczytywać dane od $400
Na upartego można by wczytać spakowaną grę i grafikę, wyłączyć system, przekopiować dane gry za stos od $200 i jakieś inne machlojki, ale czy to jest tego warte?
Podrzuć grafikę jak skończysz to zacznę się bawić Export jako tekst z Mulipaint jako byte z komentarzami :] i prg bym wiedział jak to wygląda. Najlepiej jako załącznik tutaj
C16 ma 16KB czy od $0 do $3fff.
Pamięci ekranu nie ustawię od $0 więc pierwszy możliwy adres jak zrozumiałem to $2000 czyli mapę kolorów musiałbym dać do $1800 czyli na kod zostaje mi 2KB od $1000 do $17ff.
Naprawdę wąsko C16 to chyba nie Atari bym mógł wczytywać dane od $400
Na upartego można by wczytać spakowaną grę i grafikę, wyłączyć system, przekopiować dane gry za stos od $200 i jakieś inne machlojki, ale czy to jest tego warte?
Podrzuć grafikę jak skończysz to zacznę się bawić Export jako tekst z Mulipaint jako byte z komentarzami :] i prg bym wiedział jak to wygląda. Najlepiej jako załącznik tutaj
Mad Pascal - Tron+4
Zrobiłem mały refactor i zszedłem na ten moment do 5.9KB, więc jeszcze można trochę dołożyć "bajerów", spakowane exomizerem ma 2,7KB.
Spakowana wersja do pobrania w załączniku, aby tło nie było takie nudne dodałem prostą paralaksę na znaku
Kod: Zaznacz cały
Writing "siege.prg" as prg, saving from $1001 to $1AB5.
Memory layout: |Start |End |
Crunched data | $0FFF| $19A2|
Decrunched data | $1001| $272A|
Mad Pascal - Tron+4
OK. Gra pójdzie na C16 ale z czołówką PETSCII albo coś jeszcze prostszego, wersja na C+4 będzie miała czołówkę na bitmapie jeżeli będę taką dysponował. Howg! :]
Mad Pascal - Tron+4 C16 Final
Jeżeli chodzi o wersję na C16 to jest tutaj:
https://github.com/zbyti/siege-ai-playg ... /siege.prg
zmieniłem trochę grafikę i dodałem prostą czołówkę.
Nie dodałem zmiany prędkości bo ta co jest ustawiona jest najlepsza do dynamicznej rozgrywki.
---
Jeżeli Carrion zrobi title screen może popracuję jeszcze nad paroma niedoskonałościami, może (ale chyba lenistwo zwycięży) dam stateczek co pół znaku by tak nie szarpał itd., uruchomię własne IRQ etc. Na pewno nie będę wtedy celował w 16KB z multikolorem.
Ale generalnie gra mnie zadowala taka jak jest teraz i wolę pomyśleć nad czymś nowym.
https://github.com/zbyti/siege-ai-playg ... /siege.prg
zmieniłem trochę grafikę i dodałem prostą czołówkę.
Nie dodałem zmiany prędkości bo ta co jest ustawiona jest najlepsza do dynamicznej rozgrywki.
---
Jeżeli Carrion zrobi title screen może popracuję jeszcze nad paroma niedoskonałościami, może (ale chyba lenistwo zwycięży) dam stateczek co pół znaku by tak nie szarpał itd., uruchomię własne IRQ etc. Na pewno nie będę wtedy celował w 16KB z multikolorem.
Ale generalnie gra mnie zadowala taka jak jest teraz i wolę pomyśleć nad czymś nowym.
Tron+4 Title Screen :]
Tak dla picu, ale cieszy może dodam randomizację na osi Y ba na ten moment losuje tylko kierunek.
Tron+4 C16 YT
To tak jakby ktoś uważał, że nie da się przejść Potrafię lepszy wynik zrobić (4 pierwsze można dać AI do zera) ale tak też może być.
https://youtu.be/NAHH3ZmHsKE
https://youtu.be/NAHH3ZmHsKE
Re: Mad Pascal
ja grać może w to nie umiem, ale jestem przekonany, że da się upchnąć i bitmapę na początku + całą grę w 16 kb...
c64portal.pl, retronavigator.com