Strona 2 z 4
Re: Mad Pascal
: 19 lut 2021, 13:46
autor: zbyti
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
Siege AI Playground
: 20 lut 2021, 01:06
autor: zbyti
@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
: 21 lut 2021, 12:09
autor: carrion
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ć.
Re: Mad Pascal
: 21 lut 2021, 13:09
autor: zbyti
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
Tron+4 WINNER ;)
: 21 lut 2021, 15:00
autor: zbyti
Nie jest lekko ale można :]
- Screenshot_2021-02-21_14-59-02.png (32.15 KiB) Przejrzano 1902 razy
Re: Mad Pascal
: 22 lut 2021, 09:46
autor: carrion
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.
Re: Mad Pascal
: 22 lut 2021, 10:31
autor: zbyti
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
Re: Mad Pascal
: 22 lut 2021, 12:50
autor: carrion
Przetestowałem grę na 16 kb. Działa!
Tron+4 C16
: 22 lut 2021, 13:13
autor: zbyti
No to ok, celujemy także w 16KB RAM
Mad Pascal - IRQ
: 22 lut 2021, 22:22
autor: zbyti
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.
- Screenshot_2021-02-22_22-37-00.png (17.35 KiB) Przejrzano 1832 razy
Mad Pascal - kodowanie stringów
: 23 lut 2021, 09:54
autor: zbyti
No i dzięki TeBe mamy kolejny drobiazg dla rodziny Commodore ale ułatwiający życie
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;
można już tak:
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
: 24 lut 2021, 23:54
autor: zbyti
zbyti pisze: ↑22 lut 2021, 22:22
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
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
: 26 lut 2021, 14:58
autor: zbyti
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.
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.
- Screenshot_2021-02-26_14-48-00.png (24.84 KiB) Przejrzano 1771 razy
Multicolor a C16
: 26 lut 2021, 19:41
autor: zbyti
@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
Mad Pascal - Tron+4
: 27 lut 2021, 01:57
autor: zbyti
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.
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|
Spakowana wersja do pobrania w załączniku, aby tło nie było takie nudne dodałem prostą paralaksę na znaku
Mad Pascal - Tron+4
: 27 lut 2021, 09:32
autor: zbyti
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
: 27 lut 2021, 23:23
autor: zbyti
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.
Tron+4 Title Screen :]
: 28 lut 2021, 10:16
autor: zbyti
Tak dla picu, ale cieszy
może dodam randomizację na osi Y ba na ten moment losuje tylko kierunek.
- Screenshot_2021-02-28_10-14-36.png (26.01 KiB) Przejrzano 1703 razy
Tron+4 C16 YT
: 28 lut 2021, 11:40
autor: zbyti
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
Re: Mad Pascal
: 28 lut 2021, 22:16
autor: carrion
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...