Welcome, Guest. Please login or register.


Author Topic: EP128pal képkonvertáló (Read 8557 times)

Online BruceTanner

  • EP user
  • *
  • Posts: 462
  • Country: gb
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
Re: EP128pal képkonvertáló
« Reply #45 on: 2018.January.18. 12:05:48 »
NickAddr0: INTEGER is declaring a signed variable. When you divide by 16 it will do a signed divide.

You need an unsigned variable instead. I don't know how to do that in your Pascal, but in some you can declare NickAddr0: WORD.

----Google Translate ----

NickAddr0: Az INTEGER aláírt változót deklarál. Ha osztja 16-ig, akkor aláírja a megosztást.

Szüksége van egy aláírás nélküli változóra. Nem tudom, hogyan kell ezt tenni a Pascalban, de egyesekben kijelentheted NickAddr0: WORD.

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: EP128pal képkonvertáló
« Reply #46 on: 2018.January.18. 12:54:38 »
Thanks, Bruce! Probably the problem is that the value is higher than 32767 (sign bit?) and the calculation is wrong. I will try to separate the value into two CHAR variables.

Geco: köszi a részletes magyarázatot! Shift-et és bináris OR-t nem találtam Pascalban, de majd két CHAR változóval megcsinálom este.
Kotasoft

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
Re: EP128pal képkonvertáló
« Reply #47 on: 2018.January.18. 23:29:06 »
Sikerült az eredeti LPT címének a visszaállítása!!!! :) Valószínűleg tényleg a 32767 fölötti érték zavart be, hiába volt átállítva POKE-okkal az INTEGER a 0..65535 tartományra. Azért be kell vallani, hogy nem csak ez volt az egyetlen hiba, csináltam én is párat. :) Egyet kiemelnék: az LPT-nek kevés helyet hagytam (ez a bitmap előtt van), így nagy képnél a bittérkép első sorát felülírta az LPT vége, ez is javítva lett. Ezt a képet a Pascal program töltötte be, és utána visszaállította rendesen a képernyőt. Újfent köszönöm mindenkinek a segítséget, nagyon jó fórum ez nagyon jó társasággal!

Maga a konvertáló program most nem változott, csak a példaprogram és a leírás, de a verziószámot átírtam a mai napra, ezért újrafordítottam.

Módosítás: mégis változott a program, a konvertált kép nagyításánál volt egy hiba, ami javítva lett. Ahogy látom, még nem lett letöltve a hibás verzió.
« Last Edit: 2018.January.18. 23:54:51 by Tomato77 »
Kotasoft

Offline endi

  • EP addict
  • *
  • Posts: 6883
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
    • Honlapom
Re: EP128pal képkonvertáló
« Reply #48 on: 2018.January.19. 11:23:36 »
karakteres módú konvertálást nem akarsz csinálni? :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: EP128pal képkonvertáló
« Reply #49 on: 2018.January.19. 11:37:20 »
Nem. :) Azt az üzemmódot nem ismerem, meg így is jóval több lett a program, mint aminek indult (16 színű módban háttérkép készítése játékhoz).

Az az üzemmód nem a 256 színű módhoz áll legközelebb? Felbontásban és színekben mintha ugyanaz lenne, csak valahogy karakteresen éred el és a karakter kódja határozza meg a színt, ha jól értem. Vagy miben más ez, mint egy HIRES 256 képernyő?
Kotasoft

Offline endi

  • EP addict
  • *
  • Posts: 6883
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
    • Honlapom
Re: EP128pal képkonvertáló
« Reply #50 on: 2018.January.19. 11:56:53 »
a karakteres módoknak az a lényege hogy van 256 féle karaktered, lehet 8x8 de 8x9 stb is.
van a két színű és 4 színű karakter mód, azaz 2 vagy 4 szín van egy karakterben, de 4 színpár van a 2 színű és 2 színpár a 4 színű módban.
azaz ha az ember képet akar konvertálni karakteres módra, akkor azt kell csinálni hogy megkeresni az azonos részeket a képen és ezek 1 karakter lesznek. olyat is érdemes csinálni hogy kis különbség esetén is azonosnak venni a karaktert (veszteséges tömörítés).

én ilyet már csináltam kb 18 éve, kiadott játékba én kezdtem el írni az editort és az ilyen karakteres konvertálót (gameboy advanced játék).
pascalban volt amúgy :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline geco

  • EP addict
  • *
  • Posts: 5188
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: EP128pal képkonvertáló
« Reply #51 on: 2018.January.19. 11:59:30 »
Karakteres módban is van 2, 4, 16, és 256 szín, és chr64, chr128, chr256 mód
Annyiban különbözik a bitmap módtól, hogy van egy külön memória rész a karakter definícióknak, (8 pixel magas karakterek esetén chr64 módban 200h , chr128-ban 400h, chr256-ban 800h a mérete)
ennek a címe található meg az LPB 6-7 pozíciójában (kis számolgatás szükséges :D ), és az LPB 4-5 pozíciójában található character map, ami a képernyőn megjelent karaktereket tartalmazza, egy bájt azonosít egy karaktert a characterset memóriában, és az jelenik meg a képernyőn.
A színek is érdekesek ebben a módban, 2 szín módban 1 színpártól egészen 4 színpárig be lehet állítani a használt színeket, és a színeket a character map karakterkódjainak felső két bitje szabályozza (1 színpár használatánál természetesen nem :D )
4 szín módban 2 x szín négyes használható, természetesen a felbntás feleződik a 2 szín módhoz képest (4 pixel széles egy karakter)
16 szín módot még sose használtam, de gondolom a paletta 16 színéről veszi a színeket, és 2 pixel széles egy karakter
256 szín módban minden karakterset byte 1 színt azonosít, és 1 pixel széles egy karakter

Offline endi

  • EP addict
  • *
  • Posts: 6883
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
    • Honlapom
Re: EP128pal képkonvertáló
« Reply #52 on: 2018.January.19. 12:02:46 »
jaja tényleg, azokat a furcsa módokat jól írja geco, azok kép konvertáláshoz hasznosak lehetnek.
amire én gondolok az inkább játék pálya konvertáláshoz hasznos.
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: EP128pal képkonvertáló
« Reply #53 on: 2018.January.19. 12:38:20 »
Akkor ez inkább az attribútum üzemmódhoz hasonlít, de mégis más. Ha megértem pontosan, akkor majd megnézem, hogyan lehetne ezzel kibővíteni a programot. Geco magyarázata érthető, csak kell némi idő megemészteni.
Kotasoft

Offline geco

  • EP addict
  • *
  • Posts: 5188
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: EP128pal képkonvertáló
« Reply #54 on: 2018.January.19. 14:42:56 »
Akkor ez inkább az attribútum üzemmódhoz hasonlít, de mégis más. Ha megértem pontosan, akkor majd megnézem, hogyan lehetne ezzel kibővíteni a programot. Geco magyarázata érthető, csak kell némi idő megemészteni.
Hát igazából nem :)
Ez a mód a C64-es karakteres, meg az MSX karakteres módhoz hasonlít leginkább.

A lényege az, hogy van egy karakterkészleted, aminek a mérete függ, hogy hány karakteres módot használtál, és a karakterek magasságától (64 karaktert tartalmazó karakterkészlet esetén a méret: 64 x karakter magasság (EXOS esetén ez 9), 128 karatert tartalmazó esetén: 128 x karakter magasság (EXOS esetén ez 9, és pont ezt a módot használja két színben, 2 színpárral), 256 karaktert tartalmazó esetén: 256 x karakter magasság)

Nickben a karakterkészlet felépítése a vidó RAM-ban a következő pl egy 128 karakteres módra:
karakterek 1. sora 00-127 byte definíció a 128 karakterre
karakterek 2. sora 00-127 byte definíció a 128 karakterre
karakterek 3. sora 00-127 byte definíció a 128 karakterre
karakterek 4. sora 00-127 byte definíció a 128 karakterre
karakterek 5. sora 00-127 byte definíció a 128 karakterre
...
karakterek x. sora 00-127 byte definíció a 128 karakterre

A charactermapban csak a karakterkészlet kódjai szerepelnek csak, ez így nagyon memóriahatékonnyá teszi ezt a módot, tehát itt egy bájt x pixel sor magas karaktert ír le.
A színezés bonyolít egy picit a helyzeten, mert a karakter kódok felső két bitjével állíthatóak a kiválasztható színek.

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: EP128pal képkonvertáló
« Reply #55 on: 2018.January.19. 16:16:14 »
Akkor egy kép -> ascii konverterhez hasonló, csak itt a karakterek is definiálhatók, plusz vannak színek. Ez teljesen más logika, mint sok színből kiválasztani 16-ot, aztán ditheringgel még javítani rajta.

Fel kéne osztani a képet X*Y méretű karakterekre, majd azokat, amik nagyon kicsit különböznek alakra, egy közös bitmap-pal helyettesíteni. Ezt addig folytatni, amíg 64, 128 vagy 256 különböző marad. Aztán lehetne színezni. Az mondjuk megzavarhatja a konvertálást, ha az ismétlődő részek nem X és Y többszörösének megfelelő pozíción vannak. Ki kéne próbálni, milyen hatású képet csinálna.
Kotasoft

Offline geco

  • EP addict
  • *
  • Posts: 5188
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: EP128pal képkonvertáló
« Reply #56 on: 2018.January.19. 16:23:44 »
lehet több karakterkészletet is használni x soronként, mondjuk minden 8 karaktersornak lehetne különböző a karakterkészlete.

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: EP128pal képkonvertáló
« Reply #57 on: 2018.January.19. 16:33:21 »
Minden 8 sorhoz saját karakterkészlet az már szinte bitmap. :) Azzal az összes 8*8-as terület lefedhetô, ha mondjuk 46 karakter széles a kép. Akkor inkább mindegyik ilyen területet egy-egy konvertálandó mini képnek kellene tekinteni, és kiválogatni hozzá azt a 2 vagy 4 színt, ami leginkább jellemzi. Mint attribútum módban. :)
Kotasoft

Offline endi

  • EP addict
  • *
  • Posts: 6883
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
    • Honlapom
Re: EP128pal képkonvertáló
« Reply #58 on: 2018.January.19. 17:01:54 »
hát a karakteres módnak az értelme a mem takarékoskodás, plusz spec effektek. szóval ha minden karakter egyedi, annak nem sok értelme van.
de igazából a legjobb játékok pályáihoz használni.
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline Tomato77

  • EP fan
  • *
  • Posts: 180
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 63.0.3239.132 Chrome 63.0.3239.132
    • View Profile
Re: EP128pal képkonvertáló
« Reply #59 on: 2018.January.26. 18:44:34 »
Kotasoft EP128pal 2.180126-os verzió változások:
- blokkonként különböző videomódok támogatása (ehhez új vezérlő van a kép bal oldalán)
- a videomódok miatt megváltozott az .EPI kép formátuma (a videomódot a blokkokba menti, a vízszintes méretet nem tárolja, stb.)
- a Pascal és Basic példaprogramok módosítása az új formátumhoz
- a pixelsoronkénti üzemmódot jobb kattintással egyszerűbben lehet be/kikapcsolni
- a kép arányos átméretezésénél be/kikapcsolható a teljes kitöltés

A változó videomódokkal kíváncsi voltam, hogy milyen hatást lehet elérni. Igazából inkább csak érdekes lett, mint látványos, de ha a Nick chip támogatja ezt, akkor érdemes kísérletezgetni vele. Talán olyankor lehet jó, mikor egy grafikus játék fölé/alá valamilyen nagyobb felbontású logót szeretnénk elhelyezni. Érdekes lehet esetleg a pixelsoronként változó videomód, mert a Nick ilyet is tud, de ahhoz nagyon át kéne alakítani a program felületét, hogy ezt kezelni lehessen. Esetleg fixen két üzemmódot váltakoztatva, pl. attribútum és 256 szín, vagy valami algoritmus megnézné, hogy melyik üzemmód lenne a legjobb... A mostani verzió csak a 9 egész számú többszörösének megfelelő méretű blokkokat támogatja, ami annyiból jó, hogy szabványos EXOS videolapokkal is használható pl. Basicből.
Kotasoft