Welcome, Guest. Please login or register.


Author Topic: PC -> EP képkonverzió (Read 341503 times)

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: PC -> EP képkonverzió
« Reply #60 on: 2006.December.08. 20:13:34 »
És itt a kezdeti verzió tiszta BASIC-ben.

Egyébként ez itt OFF, mert ezek a képek Atari ST-rõl lettek áthozva :-)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9888
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: PC -> EP képkonverzió
« Reply #61 on: 2006.December.09. 11:33:54 »
Quote from: "geco"
Én anno úgy csináltam, hogy a BMP-t lebutítottam 16 ( de inkább 11-12 színûre a bias miatt ), a BMP fejlécét levágtam, majd átkonvertáltam EP formátumra, amit a VLOAD is be tudott tölteni, a palettát külön file-ba tettem.


Nahát, szinte nem hiszem el. :o Ilyen egyszerû lenne az egész? Ennyire hasonló módon tárolja a képet az EP és a PC-s bmp? Egyébként bõvebben kifejtve a fejléclevágás, a konverzió és a palettakészítés hogyan megy? És mekkora képméretet (hányszor hányast) kell PC-n beállítani ehhez?

Szerintem az animált GIF-ek átvitele ha másként nem is, úgy megoldható lenne, hogy egy GIF-et szétszedünk BMP-kre, a különbözõ fázisoknak megfelelõen ("képkockákra"), és azokat nyomjuk át EP-re, ott pedig valami sprite szerkesztõben (ha van, ebben nem vagyok járatos) egyenként hozzáadjuk a fázisokat a fájlokból - ha lehet ilyet.

Egyébként érdekes lehet, milyen képformátumok léteznek EP-re. A Legelterjedtebb az a SCR, ami majdnem minden játéknál így van, az valamivel talán kisebb, mint 8 KB (pl. Art Studio is ezt kezeli, a Bam-féle legalábbis). Meg talán a Lorigraph használja azt a 12 KB körüli formátumot. A VLOAD-os az azonos valamelyikkel, vagy az külön formátum?

Quote from: "Zozosoft"
Egyébként ez itt OFF, mert ezek a képek Atari ST-rõl lettek áthozva :-)


Szerintem nem baj, belefér :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: PC -> EP képkonverzió
« Reply #62 on: 2006.December.09. 12:03:09 »
Quote from: "szipucsu"
A Legelterjedtebb az a SCR, ami majdnem minden játéknál így van, az valamivel talán kisebb, mint 8 KB (pl. Art Studio is ezt kezeli, a Bam-féle legalábbis).

Az SCR, pontosabban a 6912 bájtos képek, amelyeknek általában SCR kiterjesztést szoktak adni, azok Spectrum formátumúak.
És mivel az Art Studió is Spectrumról lett átírva, nem véletlen, hogy azt kezeli :-)

Quote from: "szipucsu"
A VLOAD-os az azonos valamelyikkel, vagy az külön formátum?

A VLOAD-os (mint általában az összes régi mikrógépes formátum) csak sima egyszerû memória mentés, annyi bájt ahány kell a szóban forgó videólaphoz plusz egy 16 bájtos fejléc.
Ha jól emlékszem a Paintbox kezeli.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: PC -> EP képkonverzió
« Reply #63 on: 2006.December.09. 16:14:59 »
Quote from: "geco"
Én csak VLOAD által megemészthetõt ismer(t)em, ott a fejléc után egybõl tolja az adatokat képernyõsoronként fentrõl lefelé. A fejléc tartalmazza a Video Mode-ot, a Video Colour-t, és a Video X-et, és Y-t, ha érdekel, és megtalálom, akkor leírom pontosabban.

Megtaláltam, mert anno beküldtük az Enterpressbe :-)
1991 szeptember, 11. oldal.

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: PC -> EP képkonverzió
« Reply #64 on: 2006.December.09. 23:10:10 »
Quote from: "szipucsu"
Nahát, szinte nem hiszem el. :o Ilyen egyszerû lenne az egész? Ennyire hasonló módon tárolja a képet az EP és a PC-s bmp? Egyébként bõvebben kifejtve a fejléclevágás, a konverzió és a palettakészítés hogyan megy? És mekkora képméretet (hányszor hányast) kell PC-n beállítani ehhez?

Van némi hasonlóság, de azért van bõven konvertálni való.
fejléclevágás: legegyszerûbb hexaeditorral kitörölni.
                    header mérete= 14 byte ( file header ) + a 0Eh-012H-n található BMP fejléc hossza.
A fejlécben fontos még 1Ch-1Dh, ez határozza meg, hogy egy pixelt hány bit határoz meg, és az 1Eh-21H, ami az adat tömörítésére utal, nem lenne szerencsés egy tömörített BMP-vel próbálkozni. :)
2EH-31H -n található érték határozza x4 meg a paletta méretét.

A fejléc után jönnek a paletta adatai, minden egyed színt 4 byte határoz meg: 1. byte kék, 2. zöld, 3. piros, 4. 0, ennek segítségével lehet kiszámolni a használni kívánt EP palettát.
Végül jönnek a bitmap adatai, EP-vel ellentétben itt a képernyõn alján megjelenõ pixelsor az elsõ a file-ban, és eltérés van a képpont tárolásában is 4 bit/pixel (16 szín) esetén. Ebben az esetben 2 pixelt tárol 1 byte.

...1. pixel.........2.pixel
PC:
b7,b6,b5,b4.....b3,b2,b1,b0 ----- valami ilyesmire emlékszem

EP:
b1,b5,b3,b7.....b0,b4,b2,b6  

A PC-s képméret beállítása függ attól, hogy EP-n mekkora video lap, milyen video mód, és szín mód lett deifniálva.

40x25 pixel mód
2 szín esetén 640x200
4 szín esetén 320x200
16 szín esetén 160x200

Bõvebben az EP képernyõkezelésérõl az Enterpress május-augusztusi számának 16-17. oldala, valamint szept-okt számának 11-12 oldala foglalkozik.

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: PC -> EP képkonverzió
« Reply #65 on: 2006.December.09. 23:16:50 »
Quote from: "Zozosoft"
Így pont maradt 10 szabad bájt a fejlécben, amiben kényelmesen elfér a 8 paletta szín + fixbias :)

Szép. Úgy emlékeztem, hogy a fejléc rövidebb, ezek szerint rosszul.:)

Offline vizor

  • EP fan
  • *
  • Posts: 238
  • Country: hu
Re: PC -> EP képkonverzió
« Reply #66 on: 2006.December.12. 15:58:54 »
Quote from: "geco"
EP:
b1,b5,b3,b7.....b0,b4,b2,b6

Erre a bitsorrendre az életben nem jöttem volna rá  :)
Papíron leírva ezzel a módszerrel gyönyörûen kijönnek az Entersprite spr fájljainak színei. De miért van így megkeverve EP-en a bitek sorrendje ? Van valami egyszerû trükk a színek kiemelésére ? Már teljesen beleõrültem a bitek rotálásába és kiemelgetésébe :shock:  Help plízz  :oops:

Régebben PC-n programozáshoz a tömörítetlen TGA-t és BMP-t (256color,Hicolor,Truecolor), a tömörítetlen CEL-t (256color) és a 256 színû PCX-et használtam.

Igazándiból semmi konkrét tervem nincs, csak gondoltam ebbõl ki lehetne hozni valamit pl. EPSee (ACDSee mintára  :) ) vagy csak egyszerûen oda vissza konvertálgatni. Esetleg egy újabb sprite tervezõt Spred-nél is több extrával.

u.i.: valaki nem akarja kijavítani az Entersprite bõvítõt ?  :)  Tudjátok, idõzítési problémái vannak, szinte lehetetlen normális ütközésvizsgálatot csinálni benne.

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: PC -> EP képkonverzió
« Reply #67 on: 2006.December.12. 22:46:47 »
Quote from: "vizor"
Erre a bitsorrendre az életben nem jöttem volna rá  :)
Papíron leírva ezzel a módszerrel gyönyörûen kijönnek az Entersprite spr fájljainak színei. De miért van így megkeverve EP-en a bitek sorrendje ? Van valami egyszerû trükk a színek kiemelésére ? Már teljesen beleõrültem a bitek rotálásába és kiemelgetésébe :shock:  Help plízz  :oops:

Én az EXOS 2.1 Mûszaki Leírásból tudtam meg, de az Enterpressben is fellelhetõ, 3 hozzászólásommal ezelõtt megtalálhatod, hogy melyik cikk foglalkozott a témával. Ha jól tudom, akkor azért van ez a kevert sorrend, mert így egy byte oldalirányú scrollozása csak egy bitléptetõ utasítás.
Esetleg ki lehetne emelni az egy pixelhez tartozó adatokat, majd 4 bit ellenõrzõ utasítás segítségével meghatározni a színkódot.
Kiemelés:

második pixel
AND 55H

elsõ pixel
AND AAh
RRCA    

Quote from: "vizor"
Igazándiból semmi konkrét tervem nincs, csak gondoltam ebbõl ki lehetne hozni valamit pl. EPSee (ACDSee mintára  :) ) vagy csak egyszerûen oda vissza konvertálgatni. Esetleg egy újabb sprite tervezõt Spred-nél is több extrával.

Kifejezetten jó ötlet, én is belekezdtem valami hasonlóba, de aztán abbamaradt a dolog.

Offline vizor

  • EP fan
  • *
  • Posts: 238
  • Country: hu
Re: PC -> EP képkonverzió
« Reply #68 on: 2006.December.13. 13:25:26 »
Hát nekem így valami nem stimmel.  :oops:

Addig rendben van, hogy 55h-el és AAh-el kiemelem a páratlan és a páros biteket de mitõl fog a sorrendjük ilyenné változni ? :
- b0,b2,b4,b6 ---> b0,b4,b2,b6
- b1,b3,b5,b7 ---> b1,b5,b3,b7
Ugyanis papíron a jobb oldali a helyes, ahogy mondtad. De én azt a sorrendet semmilyen tologatással nem tudom elérni.

Csináltam Spred-el egy spritét, amiben ilyen színek vannak:
1,2,x,x,x,x,x,x,x,x,x,x,x,x,x,x
7,7,x,x,x,x,x,x,x,x,x,x,x,x,x,x
1,7,x,x,x,x,x,x,x,x,x,x,x,x,x,x
...

Papíron számolva, jobbról indítva a számozást (b7,b6,b5,b4,b3,b2,b1,b0):

Az elsõ byte értéke 84h, 10000100
P1: 10000100 AND 10101010 = 10000000 ---> b1,b5,b3,b7 = 0001 (1) kék, oké
P2: 10000100 AND 01010101 = 00000100 ---> b0,b4,b2,b6 = 0010 (2) piros, oké

A 9. byte értéke FCh, 11111100
P1: 11111100 AND 10101010 = 10101000 ---> b1,b5,b3,b7 = 0111 (7) szürkésfehér, oké
P2: 11111100 AND 01010101 = 01010100 ---> b0,b4,b2,b6 = 0111 (7) szürkésfehér, oké

A 17. byte értéke D4h, 11111100
P1: 11010100 AND 10101010 = 10000000 ---> b1,b5,b3,b7 = 0001 (1) kék, oké
P2: 11010100 AND 01010101 = 01010100 ---> b0,b4,b2,b6 = 0111 (7) szürkésfehér, oké

Remélem nem írtam el valamit, már jojózik a szemem a bináris számoktól  :)

Szóval így papíron kijön minden, de milyen utasításokkal érem el, hogy a b0 után a b4-et vegye ki és rakja a b0 mellé majd a b2-est és végül a b6-ost ? Mert a sima rotálástól biztos nem.

Egyenlõre Delphiben próbálom megjeleníteni az spr fázisait, de sok pakolászás kell, hogy a helyes bitsorrend legyen. Az már szinte mellékes, hogy a Delphi beépített SHL és SHR utasítása nem ér semmit mert a kimenõ bitek nem jönnek be a másik oldalon hanem egyszerûen elvesznek. Ha ilyesmit akarok, be kell rakni a byte-ot egy word-be vagy egy longint-be és a HI/LO utasításokkal vagdosni az eredményt...

Valami nagyon fontosat biztos nem tudok, ha win alatt ilyen nehézkesen érek el ereményt  :)  :oops:  :wink:

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: PC -> EP képkonverzió
« Reply #69 on: 2006.December.14. 15:03:46 »
Quote from: "vizor"
Hát nekem így valami nem stimmel.  :oops:

Addig rendben van, hogy 55h-el és AAh-el kiemelem a páratlan és a páros biteket de mitõl fog a sorrendjük ilyenné változni ? :
- b0,b2,b4,b6 ---> b0,b4,b2,b6
- b1,b3,b5,b7 ---> b1,b5,b3,b7
Ugyanis papíron a jobb oldali a helyes, ahogy mondtad. De én azt a sorrendet semmilyen tologatással nem tudom elérni.


Valahogy így néz ki, nem biztos, hogy hibamentes, nincs tesztelve.

- b0,b1,b2,b3,b4,b5,b6,b7 ---> b0,b1,b4,b5,b2,b3,b6,b7

Code: [Select]
ld b,00h
 ld a,érték
 rrca ;bit 0 ki
 rl b
 rrca ;bit 1 ki
 rl b
 rrca
 rrca
 rrca ;bit 4 ki
 rl b
 rrca ;bit 5 ki
 rl b
 rlca
 rlca
 rlca
 rlca ;bit 2 ki
 rl b
 rrca
 rrca ;bit 3 ki
 rl b
 rrca
 rrca
 rrca ;bit 6 ki
 rl b
 rrca ;bit 7 ki
 rl b


vagy

Code: [Select]
ld b,érték
ld a,b
or 3ch
bit 2,b
jr nz,bt3
res 4,a
bt3 bit 3,b
jr nz,bt4
res 5,a
bt4 bit 4,b
jr nz,bt5
res 2,a
bt5 bit 5,b
jr nz,bt6
res 3,a
bt6      vége

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: PC -> EP képkonverzió
« Reply #70 on: 2006.December.14. 15:16:53 »
De neked nem a b7,b6,b5,b4,b3,b2,b1,b0   ----> b1,b5,b3,b7,b0,b4,b2,b6 konverzióra van szükséged?

Offline vizor

  • EP fan
  • *
  • Posts: 238
  • Country: hu
Re: PC -> EP képkonverzió
« Reply #71 on: 2006.December.15. 16:07:49 »
Valószínûleg igen, bár már semmiben nem vagyok biztos  :oops:

Most egy kicsit gondolkodok a dolgon...

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: PC -> EP képkonverzió
« Reply #72 on: 2007.March.08. 13:01:58 »
Egy nem pont ide vágó kérdés olyasmi cuccok létezik már kifejlesztve, ami mondjuk egy tetszõleges pc formátumú képet képes olyan byte formátumba menteni amit bedobva az ep videó memóriájába máris a megfelelõ képet kapjuk (esetleg elõ is állítja hozzá az optimális palettát) ? Mert ha igen akkor nem görcsölök vele :)
Kifejezetten ilyen nincs, pedig érdekes lenne egy olyan ami pixelsoronként képes lenne új palettát számolni, maximálisan kihasználva az EP lehetõségeit.

Egyébként nézz be az angol fórumba, ott készülõdik egy fejlesztõ eszköz retro gépekre játékíráshoz (Spectrum, CPC, C64, és most már EP is :-), a készített képeket, sprite-okat, (majdan zenéket) assembly forrásszöveggel lehet összeszerkeszteni, lefordítani.

Offline Gep

  • Newbie
  • Posts: 9
  • Country: hu
Re: PC -> EP képkonverzió
« Reply #73 on: 2007.March.08. 16:14:44 »
Megoldható az is mármint a soronkénti optimális paletta előállítás :) Eddig ezt nem volt teljesen világos a számomra, hogy ez micsoda de így össze állt a fejembe a kép :) Az a gond, hogy az játékoknál nem sok mindenre lenne jó, inkább demóknál vagy szimpla képeknél :) Picit körül néztem a fórumon ez a symbos brutál :) A prince of persia is nagyon jól sikerült :) Látom vannak elvetemült programozók :) Picit el kanyarodtunk a témától :)

Az jó lesz ha el készül az említett fejlesztői eszköz :) Addig is tanulmányozom tovább a hardware felépítését van még mit tanulnom :)

Offline Ep128

  • EP addict
  • *
  • Posts: 1847
  • Country: hu
    • Honlapom
Re: PC -> EP képkonverzió
« Reply #74 on: 2007.March.08. 23:48:18 »
Szerintem ha ennyire összeáltl a fejedben, akkor ess is neki, mielõtt a feledés homályába merül a project...  ;-)  :lol:
Érdekes kérdést feszegetsz ezzel a kép -dologgal, nekem régi álmom a PC -képek (a mostaninál kevésbé macerás) átvitele EP-re.