Welcome, Guest. Please login or register.


Author Topic: HiSoft Pascal (Read 87677 times)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #315 on: 2017.May.21. 09:10:06 »
futtatható programot is berakhatnál, főleg a sprite-os dolgokról :)
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #316 on: 2017.May.21. 10:34:50 »
Futtatható példák:

[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

Kisebb javítások, a SpriteDraw most 255 értéket ad vissza érvénytelen koordináták esetén, a 'p' paraméternek viszont párosnak kell lennie:

[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #317 on: 2017.May.26. 12:14:01 »
Továbbfejlesztett változat:
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

A sprite kezelés így módosult:

procedure SpriteInit(p,s,n,c:integer);
procedure SpriteNew(b,p:integer);
function SpriteDraw(b,n,x,y:integer):integer;
procedure SpriteClr(b:integer);


s = (a SpriteInit után már nem használt) forrás adat címe, a mérete N * 6 * 21 byte
p = konvertált sprite adat címe, a mérete N * 6 * 21 * 4 byte
b = sprite puffer (az aktuális állapot és a háttér mentése) címe, csak páros lehet, a mérete 130 byte

Több sprite esetén mindegyik külön 'b' paramétert használ, de a 'p' megosztható. Jelenleg villogás nélkül csak 2 sprite jeleníthető meg, esetleg 3 a második példában látható módon az egyiket a képernyő alsó részére korlátozva. Két video lap használatával a villogás elkerülhető lenne.

Még egy kisebb újdonság:

procedure DrawChar(i,x,y:integer; c:char);

Karakter rajzolása a megadott pozícióban, az 'i' a paletta szín (0..15) vagy -1. Az előbbi esetben pixelenkénti Plot() történik a 2 színű karaktert vízszintesen nagyítva, a háttérszínű pixelek változatlanok maradnak. Ha a szín -1, akkor byte alapú a rajzolás, ami gyorsabb, és 16 színű (felhasználó által definiált) karakterkészletet tételez fel. Ez a mód csak akkor működik helyesen, ha az 'x' páros, és a teljes karakter látható (nem fordulnak elő érvénytelen koordináták).

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #318 on: 2017.June.13. 19:50:44 »
A graph16.hpu fejlesztése befejeződött? Lesz még változás? Az ismertető miatt kérdezem.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #319 on: 2017.June.13. 19:57:09 »
A graph16.hpu fejlesztése befejeződött?

Egyelőre igen, az esetleges hibák vagy nem jól optimalizált kód lehetőségétől eltekintve. :oops:

Szerk.: korábban elkezdtem C (SDCC) változat készítését is, de nem tudom, érdemes-e befejezni.
« Last Edit: 2017.June.14. 14:28:52 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: HiSoft Pascal
« Reply #320 on: 2017.June.14. 21:15:29 »
Egyelőre igen, az esetleges hibák vagy nem jól optimalizált kód lehetőségétől eltekintve. :oops:

Szerk.: korábban elkezdtem C (SDCC) változat készítését is, de nem tudom, érdemes-e befejezni.
szerintem tuti, ha valaki esetleg C-ben szeretne programot irni

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #321 on: 2017.June.14. 23:21:46 »
István! Majd itt a GRAPH16.HPU-ra vonatkozó részt? Pl. a SpriteNew(b,p) működése nekem nem egyértelmű.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #322 on: 2017.June.15. 10:28:21 »
István! Majd itt a GRAPH16.HPU-ra vonatkozó részt? Pl. a SpriteNew(b,p) működése nekem nem egyértelmű.

A SpriteNew() sprite számára inicializálja a 'b' paraméterben megadott kezdőcímű (ennek párosnak kell lennie), 130 byte méretű területet. Ugyanezt a paramétert használják a SpriteDraw és SpriteClr későbbi hívásai. A 'p' a SpriteInit rutinnal konvertált pixel adatra mutat, több sprite is használhatja ugyanazt a grafikát, bár 4 MHz-es gépen csak 2-3 jeleníthető meg villogás nélkül. :oops:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #323 on: 2017.June.15. 19:38:16 »
Egy kisebb hibát találtam a leírásban: a SpriteDraw első paramétere nem p (pixel/maszk adat), hanem b (puffer).

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #324 on: 2017.June.15. 23:01:16 »
Javítva.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #325 on: 2017.June.16. 16:46:04 »
szerintem tuti, ha valaki esetleg C-ben szeretne programot irni

Ez ugyan nem tűnik túl valószínűnek. :oops: Új EP-s programok jelenleg BASIC vagy assembly nyelven készülnek, talán BASIC verziónak lenne a legtöbb értelme, bár azt nem tudom, hogyan lehetne jól megoldani.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #326 on: 2017.June.16. 17:03:37 »
mindig is nagy vágyam volt egy olyan basic/exos lehetőség, hogy egyik videólap megadott részét átmásolja egy másikra.
így egy videolapra kirajzolhatók (vagy betölthetők) figurák, másikra háttér, és egy harmadikon meg szépen lehet másolgatni a sprite-okat, háttér kezeléssel együtt.
persze csak úgy lenne jó, ha a zzzip is le tudná fordítani :)
(a mutant test játékomban gépi kódú sprite kirakás van, szóval valahogy biztos megoldható)
Vigyázat! Szektás vagyok! :)

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #327 on: 2017.June.16. 21:54:55 »
talán BASIC verziónak lenne a legtöbb értelme, bár azt nem tudom, hogyan lehetne jól megoldani.
BASIC utasítás bővítés?

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #328 on: 2017.July.31. 17:23:08 »
itt van még két régi játékom.
az egyik egy platform-kaland játék engine, pár pályával, kb minden funkcióval, de amúgy nem kész játék. ez is delphi és csak fullscreenben megy, win7 alatt már nem fut nekem... az volt benne az extra, hogy truecolor 320x200-ban futott. :)
ebből mellékeltem képeket is.
de gondolom ezt nincs értelme átírni mert nem kész játék. meg a grafika konverziója is marha sok munka lenne.

a másik egy dos alatt futó turbo pascal, rpg-szerű játék, saját nézet, 3d-ben rajzolja ki a falakat, 90 fokban lehet forogni, szóval mint a régi klasszikus eye of beholder és társai. de itt csak egy karakterrel lehet menni, inkább kalandjáték. ezt a book of life játékom után csináltam. ez jól fut dosbox-ban.
ez szerintem átírható lehetne.

Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #329 on: 2017.July.31. 17:25:18 »
ah sajnos a minirpg-nek nem találom a forrását...
Vigyázat! Szektás vagyok! :)