Welcome, Guest. Please login or register.


Author Topic: game00 (Read 34574 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #150 on: 2015.October.12. 19:19:17 »
Addig is az

Olli and Lissa 3

-mat CPC -ről nem akarja átírni senki ? :) :

https://www.youtube.com/watch?v=zVCc98RNKXY
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #151 on: 2015.October.12. 22:24:00 »
Szóval egy mondatban összefoglalva: retró játék (ráadásul EP tvíkelt) de mai ízléssel mérve is játszható, kazuárabb cucc, értelem szerűen anélkül hogy 42 óra renderelt animáció lenne benne, meg 172 emberév fejlesztés 127 millió dollárral támogatva ... :)

Gondolok itt olyanra, a galaga valaga témakörén belül, hogy mégha a grafika a 2 piros pötty kerget egy feketét kategóriás is,
akkor is az ellenségek mozgása, változatossága, a nehézség állíthatósága, és hogy nem kell mindíg elölről kezdeni, mert menti a játékállást,
és mert van elég "játékóra" ellenség haladni előre, ez talán élményszerűbbé, kevéssé frusztrálóvá tehet egy ilyen játékot kazuárok számára is ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #152 on: 2015.October.14. 22:06:32 »
Most nézem, a JOE MEGADEMO1 -ben van dual-plane -es grafika ... 2 képet mozgat és mixel össze "villogtatással" szerintem ...

És én valahogy úgy képzeltem, hogy az sokkal jobban villog majd .... de CRT TV -n alig villog ... na jó, nem alig, de azért nézhető ...

Mondjuk az emu -k szerintem megbuknak majd rajta, de elképzelhető hogy a dual-plane -es színkeverést már egyből elkezdem használni ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: game00
« Reply #153 on: 2015.October.14. 22:14:42 »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #154 on: 2015.October.14. 22:40:22 »
Quote
Ezt nézted már?

Eddig nem nagyon néztem,
most néztem (mindkét CRT monitorommal),
csak nem nagyon értem mit látok ...



Először is (minden csak akkor él ha jól látom) HIRES16 színű módban van (de legalábbis a pixelek nyújtottak, lehetne még LORES4 is de mér lenne az, ha csak nem tech kísérlet gyanánt, de ez egy kiadott demó, mér lenne abban ...) és ha jól látom összesen nincs a képeken legtöbbször 8 szín se, de 16 -nál meg tuti nincsen több ...

Másodszor vibrál mint a bolond, ha ennyire kell vibráljon (csak valahogy a MEGADEMO1 karakterisztikájából ez jobban jött ki), akkor inkább mégse fogom alkalmazni.

Harmadszor ez mintha nem "tiszta" dual-plane keverés lenne (két kép pontosan EGYMÁSON), hanem valós függőleges (interlace) elmozdulást is tartalmazó képváltogatás.

Negyedszer az egészen van valami olyan jelenség (a feliratoknál nagyon látszik) mintha így "össze vissza" mozogna a függőleg szinkron, és ez ilyen változó-vastagodó fekete scanline csíkokban meg "eltömődő betűkben" jelentkezne. Mintha afféle interferencia jelenség lenne ...


Szóval nem nagyon értem mit látok, de ha csak ilyet lehet a dual-plane -nel, akkor maradok a normál képnél.
A MEGADEMO1 sokkal meggyőzőbbnek tűnik, de az is igaz hogy ott mozgatják a képeket gyorsan, és egy szín árnyalatai csak a paletta ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: game00
« Reply #155 on: 2015.October.14. 22:52:44 »
Ez HIRES4, 7 színnel.
Két 4 színű kép van mixelve, a fekete közös szín mindkettőben, plusz 3-3 különböző. Az egyik LPT-ben az első kép páratlan sorai vannak, és a másik kép páros sorai, a másik LPT-ben az első kép páros sorai, és a második kép páratlan sorai.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #156 on: 2015.October.14. 22:59:30 »
Quote
Ez HIRES4, 7 színnel.

Hmmm ... hát akkor ez a graf nem igényelte a "320" -as felbontást, vagy peniglen világtalan vok.

Quote
Az egyik LPT-ben az első kép páratlan sorai vannak, és a másik kép páros sorai, a másik LPT-ben az első kép páros sorai, és a második kép páratlan sorai.

Ez a kavarás a párossal meg páratlannal pedig elképzelésem nincs mire lehet jó ... interlace LPT ? van függőleges eltolás a két LPT között szinkronnal ?

Mindenesetre amiről én beszélek (és amit a MEGADEMO1 -ben is látni vélek) az 2 töknormál progresszív LPT ami 2 képet váltogatva egymásra vetíti azokat,
és intenzitás vibráción kívül más zavart nem tesz bele.
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: game00
« Reply #157 on: 2015.October.15. 08:59:29 »
Ez a kavarás a párossal meg páratlannal pedig elképzelésem nincs mire lehet jó ... interlace LPT ? van függőleges eltolás a két LPT között szinkronnal ?
Igen

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #158 on: 2015.October.15. 16:53:27 »
Quote
Igen

Azért találnám ezt teljesen feleslegesnek, amiért a 320 -as felbontást is.

Mert a képek felbontása (szemre, szerintem) ezt egyáltalán nem igényli.
Olyan értelemben, ahogy egy fekete/fehér sakktábla sem igényelné, mert túl kevés benne a szín és túl kevés benne a részlet,
tökéletesen megjeleníthető HIRES16 -ban, teljesen normális progresszív 50HZ -en,
nem kell vibráltatni sem intenzitásokban sem geometriailag.

Az interlace meg egy függőleges felbontást növelő (növelni igyekvő) technika ... ami ezeken a képeken csak ront, nem javít.
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: game00
« Reply #159 on: 2015.October.15. 18:33:16 »
Nem értek egyet, sokkal szebb képeket lehet csinálni, lásd EPIMGCONV-val készített attributum módú interlace képek, és nemcsak a függőleges felbontást lehet megduplázni, hanem a szem átverésével a színek számát is meg lehet növelni,
Zozó interlace Garfield-es képei legfőképp a színsokszorozás miatt készültek, nem a felbontás miatt, össze kéne hasonlítani egy ilyen képet interlace mód 7 szín (4 szín mód felbontásban), és egy sima 4 szín módú képet, meglátszik a különbség.
Amúgy speccyn a R G B 3 kép egymáson villogtatása is eredményez szép képeket, csak villog.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: game00
« Reply #160 on: 2015.October.15. 18:57:43 »
Az egész nem ezekről a képekről szól! Volt ez a színlacés ötlet, és kellett hozzá valami amit az én egyszerű grafikához tök hülye agyammal is el tudtam készíteni.
A korábban már létező fekete fehér képekből vettem párat, és paintboxban átszíneztem az egyes területeket. Ennyit még én is fejben tudtam tartani, hogy a 7 színből mit hova kell elszórni az egyes képeken.

A sor váltós villogtatás amúgy onnan jött, hogy így mindig van egyszerre mind a 7 színből a képen. Lehetne egyébként simán felváltva is villogtatni. Ott a forrás, lehet kísérletezni!

És ahogy írtam is anno, azzal is lehetne kísérletezni, hogy a két palettában különböző színeket összekeverve újabbakat létrehozni.

Az igazán érdekes az lenne, ha az imgconv tudna ilyet is, és aztán megnézni mi jön ki belőle...


Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #161 on: 2015.October.16. 23:25:39 »
Na próbálom összerakni az új memóriatérképet az aktuális prioritásoknak megfelelően.

Következőnek tűnik egyenlőre:

b0:
 f8 - common (mindenféle kódok, kisebb méretű táblák, cache -ek, játéklogikák, ellenségmozgatások)

b1:
 f9 - stars (a csillagmozgás fázisai. úgy 4K üres hely maradt még itt.)
 fa - sprites (8-16 fázis. ez az éppen használatos, rendszer ram -ba kibontott, grafikus adatokat is inline tartalmazó sprite kirajzoló kódok szegmense. Nagyon sovi az a 8-16 fázis, ami egyszerre használható lesz. Ne is várjatok szép hosszú animokat. 2 fázisos villódzás, max. Mozgásokból kell tudni valami érdekeset összehekkelni.)

b2:
 fc - video ram + sprite graphics
 fd - video ram + sprite graphics (a három szegmensen összesen 100-300 fázis, ez a normál sprite grafika, ami jó sok, tehát magába a játékba jó sok beleférhet, csak egyszerre lehet majd belőlük keveset látni a képen.)
 fe - video ram + sprite graphics
 ff - lpt + system

b3:
 fb - audio buffer (8-16 sample, ami egyszerre úgy nagyjából elég lehet, csak itt meg tartalék nincs.)


Ahol tól-ig érték van, ott értelem szerűen a méret miatt nem lehet konkrét számot mondani, nagyobb sprite vagy hosszabb minta többet foglal.

Szóval lehetne még ezen finomítani, lehetne az audió buffer és a common szegmensekből valamennyit odatolni még a sprites szegmensnek, valamint a sprite grafiká helyekből áttolni vlaamit plussz hangmintáknak, amiket alkalomadtán az audio buffer -be rakhatnék, de ilyen finomhangolásokkal sztm nem akarok majd foglalkozni.

Inkább hagyom így tisztán 128K -s gépen, és ha lesz még anyag, amit bele kéne tolni, azt majd csak bővített gépeken fogom kezelni. Bővített gépeken viszont annyi hang meg sprite anim lehet majd, mint a tenger ... :)
« Last Edit: 2015.October.17. 10:55:04 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #162 on: 2015.October.17. 14:42:29 »
Á, szép álom volt, de a csillagmozgás beborította, szóval vissza a legkorábbi felálláshoz:



f8 - common

f9 - stars
fa - sprites

fb - samples

fc - video ram + sprite graphics
fd - video ram + sprite graphics
fe - video ram + sprite graphics + lpt

ff - exos (kenje a hajára)



b0:
 f8 - általában ez van itt, és csak ideiglenesen lapozzuk el

 f9 - ha meghívtuk a csillagkirajzolást
 fa - ha meghívtuk a sprite kirajzolást

b1:
 fc - általában ez van itt, és csak ideiglenesen lapozzuk el

 f9 - ha be akarunk valami paramétert állítani a csillagkirajzolónak hívás előtt
 fa - ha be akarunk valami paramétert állítani a sprite kirajzolónak hívás előtt
 fb - hangmegszaknál a megszak lapozza be magának hogy elérje a hangmintákat

b2:
 fd

b3:
 fe



Alapgép: 128K -s EP. 64K -s gépre nem csinálok verziót.
Bővített gép: minimum kb. 4-8 szegmenssel bővített memóriájú gép. Ha végül lesz ilyen verzió, akkor szerintem inkább 8.



common:

Általános kódok, bufferek, cache -ek, táblák, magas szintű játéklogika, ellenségmozgatások.
Ez a szegmens fog saját maga alól kilapozós cross-segment hívásokat kiadni és azok ide térnek majd vissza.
Természetesen ezek a hívott szegmensek is tartalmazni fogják az első 100H -át, ami tartalmazza magát a teljes hangmegszakot,
és a sajátmaga alól kilapozós cross segment hívási és visszatérési kódokat, valamint a stack -et is.
Ha a stack esetleg kicsi lesz valamiért akkor az első 200H lesz ismételve, vagy ilyesmi.
Ezek jelenleg a stars és sprites kódokat tartalmazó szegmensek lesznek.
Ezekből bővített gépen több is lehet persze, alapgépen mindegyikből csak egy lesz.

stars:

Egy 46* 256 bájt méretű csillagmozgatás táblázat (gyakorlatilag előre letárolt animáció) egy speciális formátumban,
melynél gyakorlatilag nem találtam jelentősen gyorsabban megjeleníthető formátumot, ami méretben ne lett volna
minimum dupla, de akár 3-4 szeres méretű.

sprites:

Grafikát is inline magába foglaló sprite fázis kirajzoló rutinok, köztük az eltolt fázisokkal és a törlő rutinokkal.
Ezeket a rutinokat ellenségváltás közben (bővített gép esetén, ahol lehetne hozzá háttérszegmens, esetleg konkrétan játék közben)
remélném generálni a raw grafikából.
Sajnos csak 8-16 (*4 eltolás) darab sprite fázis fog beleférni a szegmensbe, ami mondjuk azt jelentheti egy rosszabb esetben,
hogy ha a főhős karakternek van 4 fázisa, akkor mondjuk az ellenség csupán 1 darab 4 fázisú dolog lehet, vagy 4 db 1 fázisú, stb ...
Arról még lövésem nincs, hogy milyen gyorsan tudom majd generálni ezt a szegmenst a raw grafikából.
Remélem nem fogja a gameplay -t nagyon beszaggatni.

samples:

Hasonló mint az előző, csak nem sprite kódokat cache -el egy pillanatnyi játékhelyzethez, hanem hang mintákat.
Előzőhöz képest különbség, hogy alapgépen csak fel lesz töltve és kész, mert nem lesz honnan összemásolni másik készleteket.
Bővített gépen éppúgy ahogy a sprites kódokat, ezeket is ellenségváltáskor vagy menet közben tervezném összemásolni.
Olyan 8-16 hangminta fog beférni a szegmensre, amit random módon lejátszogathatok játék közben.

sprite graphics:

Raw sprite grafika, ami a 100h -ás sorok közeiben van elrejtve, 1-2 sprite fázis fér el egy közben. Leíró táblák a common szegmensen.
Innen generálom le a sprites szegmenst. Olyan 100-300 sprite fázis fér be még alapgépen is, szóval hely az lesz a grafikának, csak grafika is legyen ...

lpt:

Scanline -onkénti lpb -kből álló lpt, két végén annyi plussz lpb -vel, hogy azok a sprite -ok melyek lpt -t (színeket) is manipulálnak azok ne kelljen
figyeljenek a vágásra függőlegesen itt sem. Lesz jó sok szín ... :)

exos:

Mivel a legújabb erővonalak mentén haladva játékmentést is akarok, esetleg pálya adat betöltést is, ezért mégsem nyírhatom ki az exos -t.
Szóval a szegmensét egyszerűen kihagyom. További exos kompatibilitásra azonban továbbra sem törekszem.

video ram:

Sokat nyűglődtem, hogy megtartsam -e a 100h -ás scanline -okat vagy sem, illetve ha meg is tartom (és így a video RAM 3 szegmensre is szétnyúlik)
akkor megkövetelhessék -e a rajzoló kódok hogy mindhárom szegmens folyamatában be kell legyen lapozva miközben rajzolnak,
vagy tanítsam meg a kirajzolókódokat vágni függőlegesen és lapozzák be maguknak mindíg a szükséges szegmenst.

Különösen problémás a helyzet amiatt, hogy digi hangokat tervezek a játékhoz, aminek a 4K -s megszakítása folyamatosan működik (ami kb. 80 hívást jelent 50Hz -enként ugye),
és azt a megszakítást értelem szerűen a lehető leggyorsabbra kellene megírni, így árnyékregiszteresre lett megoldva, ami nem csinal mást mint beírja a két hangerőportot
(HL),(DE) -ről, majd növeli HL,DE -t. Namost ha a video ram 3 és a 0 -as lapon levo kirajzoló kód 1 lapot igényel, akkor hova rakom a hangmintás szegmenst kirajzolások közben.

Felmerült még bennem, hogy 50 Hz -en másolom a 0 -as lapra a 2* 80 körüli hangmintát, amit aztán a hangmegszak onnan játszhat a következő 80 hívódásakor,
de ez egyrészt nem tetszik, mert ez kb- mínusz 1-2 sprite lenne időben, amiből amúgy is kevés lesz, másrészt pedig ne felejtsük, hogy sajnos a 0 -ás lap sem fix,
az is változik 50 Hz -en belül N -szer ...

A sprite kirakó kódokat még viszonylag 0 időveszteséggel meg lehetett volna tanítani függőlegesen vágni a szegmenshatárokon, viszont a csillagmozgást képtelen voltam
kitalálni nem lassabbra, de lapozást kezelőre. Nem beszélve az esetlegesen közben felmerűlő egyéb rajzolókódokról, amiket még nem is tudom mik lesznek.

Szóval úgy döntöttem megmarad a 100h -ás scanline, sőt vágni sem tanítok meg semmit, a rajzolókódok igényelni fogják a 3+1 lapot,
és a hangmegszakba rakok mégis lapozást.

Remélem ezzel bukom a legkevesebbet, bár még nem mértem ...

Ez volt a régi hangmegszak:

Code: [Select]
void IRQ() __naked
{
__asm

IRQ_B:

ex af, af
exx

ld a, #D_Ints+ 0x2
out (0xb4), a

ld a, (de)
out (0xa8), a
inc de

ld a, (hl)
out (0xac), a
inc hl

exx
ex af, af

ei

ret

IRQ_E:

__endasm;
}

És ezt kell kibővíteni még a lapozással:

Code: [Select]
ld a,b //hangszegmens be
out (0b1h), a

ld a,c //video szegmens vissza
out (0b1h), a

Ez fog 80X meghívódni plusszban egy 50Hz -es időintervallumban ...
« Last Edit: 2015.October.17. 14:56:56 by Z80System »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: game00
« Reply #163 on: 2015.October.17. 15:29:07 »
Bővített gép: minimum kb. 4-8 szegmenssel bővített memóriájú gép. Ha végül lesz ilyen verzió, akkor szerintem inkább 8.
A legkisebb szokásos verzió a 320-as gép, azaz plusz 12 szegmens.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: game00
« Reply #164 on: 2015.October.18. 11:52:41 »
Van valakinek tippje hol találok a neten ilyen 16X16 pixel körüli méretben 2 vagy 4 színnel megrajzolt ellenség sprite -okat,
amik jók lennének ilyen "űrben alulról lövöldözöm őket" játéba ?

Lehetnének szellemek, koponyák, mindenféle űrrovarok, devenérek, akármik,
szóval nyilván tematikában nem kell szorosan az űr koncepciójához tartozniuk,
csak nyilván ne földön futkosó karakterek legyenek, hisz itt minden "repülni" fog.

Mert azt mondjuk vehetjük készpénznek, hogy ha én rajzolom a játék karaktereit,
akkor az a nem jó értelemben lesz vicces :) :


Z80 System