Welcome, Guest. Please login or register.


Author Topic: CPC (Read 263838 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
Re: CPC
« Reply #270 on: 2010.May.28. 12:54:56 »
Ilyen trükköt is szoktak csinálni? Ennek mi értelme?

Némi CPU idő megtakarítása :) Így ugyanis nem kell minden sprite sor elején újra beállítani a vízszintes pozíciót, hanem soronként felváltva INC E és DEC E utasításokat lehet használni (itt SP mutat a sprite adatokra, DE a video memóriára, BC' a sprite alatti terület mentésére, és a C700h-C7FFh területen egy táblázat van, amelyben az egyes sprite pixel byte értékekhez tartozó AND maszk található):

Code: ZiLOG Z80 Assembler
  1. .   A708  26 C7        LD    H, C7
  2. .   A70A  C1           POP   BC
  3. .   A70B  1A           LD    A, (DE)
  4. .   A70C  D9           EXX
  5. .   A70D  02           LD    (BC), A
  6. .   A70E  03           INC   BC
  7. .   A70F  D9           EXX
  8. .   A710  69           LD    L, C
  9. .   A711  A6           AND   (HL)
  10. .   A712  B1           OR    C
  11. .   A713  12           LD    (DE), A
  12. .   A714  1C           INC   E
  13. .   A715  1A           LD    A, (DE)
  14. .   A716  D9           EXX
  15. .   A717  02           LD    (BC), A
  16. .   A718  03           INC   BC
  17. .   A719  D9           EXX
  18. .   A71A  68           LD    L, B
  19. .   A71B  A6           AND   (HL)
  20. .   A71C  B0           OR    B
  21. .   A71D  12           LD    (DE), A
  22. .   A71E  7A           LD    A, D
  23. .   A71F  C6 08        ADD   A, 08
  24. .   A721  57           LD    D, A
  25. .   A722  C1           POP   BC
  26. .   A723  1A           LD    A, (DE)
  27. .   A724  D9           EXX
  28. .   A725  02           LD    (BC), A
  29. .   A726  03           INC   BC
  30. .   A727  D9           EXX
  31. .   A728  69           LD    L, C
  32. .   A729  A6           AND   (HL)
  33. .   A72A  B1           OR    C
  34. .   A72B  12           LD    (DE), A
  35. .   A72C  1D           DEC   E
  36. .   A72D  1A           LD    A, (DE)
  37. .   A72E  D9           EXX
  38. .   A72F  02           LD    (BC), A
  39. .   A730  03           INC   BC
  40. .   A731  D9           EXX
  41. .   A732  68           LD    L, B
  42. .   A733  A6           AND   (HL)
  43. .   A734  B0           OR    B
  44. .   A735  12           LD    (DE), A

bepróbáltam a 16Kb-s videoramot, de nem lett gyorsabb, azt hittem, hogy ebben az esetben Nick barátunk lemond a másik 48kb lassításáról, de nem :(

Ha emulátoron nézted, akkor természetesen nincs semmilyen hatása, mert ez egyelőre csak igazi gépen működik :) :oops: Még tesztelni kellene EP-n, hogy pontosan mire jó, és aztán beépíteni az emulátor következő verziójába.
« Last Edit: 2010.May.28. 12:59:38 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: CPC
« Reply #271 on: 2010.May.28. 13:29:45 »
Némi CPU idő megtakarítása :) Így ugyanis nem kell minden sprite sor elején újra beállítani a vízszintes pozíciót, hanem soronként felváltva INC E és DEC E utasításokat lehet használni (itt SP mutat a sprite adatokra, DE a video memóriára, BC' a sprite alatti terület mentésére, és a C700h-C7FFh területen egy táblázat van, amelyben az egyes sprite pixel byte értékekhez tartozó AND maszk található):
Ez qrva jó. :)

Ha emulátoron nézted, akkor természetesen nincs semmilyen hatása, mert ez egyelőre csak igazi gépen működik :) :oops: Még tesztelni kellene EP-n, hogy pontosan mire jó, és aztán beépíteni az emulátor következő verziójába.
Természetesen ott :)
Én arra gondoltam, hogyha 16K-ra váltunk, akkor Nick elengedi a másik 48-at, és így annak az elérése felgyorsul, és csak az FF szegmens lesz a videó RAM.
Ezt kipróbálhatná valaki, akinek van EP64-e az Impossible Missionnel, generálok hozzá szívesen programot:)

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: CPC
« Reply #272 on: 2010.May.28. 13:38:59 »
Addig is itt van az a változat, ami EP64-en 16K Video RAM beállítást használ, egyébként 64-et.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
Re: CPC
« Reply #273 on: 2010.May.28. 14:11:13 »
Én arra gondoltam, hogyha 16K-ra váltunk, akkor Nick elengedi a másik 48-at, és így annak az elérése felgyorsul, és csak az FF szegmens lesz a videó RAM.

Egy rövid teszt alapján úgy látszik, nem működik ez a megoldás. A 0. bit beállítása után továbbra is "látja" a NICK az alsó 48K video memóriát, és az lassú is marad. Azonban ilyenkor valamiért lefagy az EXOS, ha megpróbálom elindítani a rendszert a 01:C00Dh címen.

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: CPC
« Reply #274 on: 2010.May.28. 14:57:50 »
Egy rövid teszt alapján úgy látszik, nem működik ez a megoldás. A 0. bit beállítása után továbbra is "látja" a NICK az alsó 48K video memóriát, és az lassú is marad. Azonban ilyenkor valamiért lefagy az EXOS, ha megpróbálom elindítani a rendszert a 01:C00Dh címen.

Szuper, ez egy rejtélyes kapcsoló ;)
Valami haszna csak van, ne kelljen csalódnunk kedvenc gépünkben :D

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
Re: CPC
« Reply #275 on: 2010.May.28. 18:55:59 »
Segédprogram 16 színű paletta konvertálásához:
  * cpccolor.exe (14.5 KB - downloaded 3 times.)
  * cpccolor.cpp (21.26 KB - downloaded 4 times.)
Optimalizált palettát és BIAS-t keres (de az utóbbi lehet a felhasználó által megadott fix érték is), átrendezi a palettaszínek sorrendjét (azonban megadhatók "fix" színek, amelyeknek a pozíciója a palettán nem változhat), és pixel konvertáló táblázatot ír bináris, assembler, vagy Lua formátumban.

Új verzió:
  - javít egy hibát, amely több azonos "fix" szín esetén fordult elő
  - az "==" prefix használatával olyan színt lehet megadni, amely nem csak fix, hanem más színek nem használhatják még akkor sem, ha azonosak (ez akkor hasznos, ha például "átlátszó" és normál fekete szín is van a palettán, ilyenkor az előbbi lesz ==0x14)
  - kissé eltérő színeket választ (lehet, hogy jobb a réginél, de az is lehet, hogy nem)

* cpccolor.exe (17.5 kB - downloaded 150 times.)
* cpccolor.cpp (23.42 kB - downloaded 199 times.)

hú de randa ez a cpc dizzy...

Akkor mégsem érdemes átírni, vagy célszerűbb lenne a Spectrum verzióval próbálkozni ? :oops:

Offline Lacika

  • EP addict
  • *
  • Posts: 2930
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
    • http://www.ep128.hu
Re: CPC
« Reply #276 on: 2010.May.28. 19:13:57 »
Akkor mégsem érdemes átírni, vagy célszerűbb lenne a Spectrum verzióval próbálkozni ? :oops:

Szerintem legalább az utolsó részből legyen nem attribútum változat. Ennél a résznél egyébként már a Spectrum változatban zavaróbb a háttér, mint a többiben, és a C64 verzió sem "Spectrum-"szerű" grafikával készült el, szemben a korábbi részekkel.
Miért ronda? Nekem tetszik. Akkor a Get Dexter is ronda...

Offline nyuzga

  • EP addict
  • *
  • Posts: 2112
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
Re: CPC
« Reply #277 on: 2010.May.28. 20:00:28 »
Miért ronda? Nekem tetszik.

Így van, egy EP fannak örülni kell egy ilyen progginak és a zenéje is jó.
« Last Edit: 2010.May.28. 20:07:53 by nyuzga »

Offline nyuzga

  • EP addict
  • *
  • Posts: 2112
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
Re: CPC
« Reply #278 on: 2010.May.28. 20:15:35 »
Ez a játék is jópofa. :)

5195-0
5197-1
5199-2

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: CPC
« Reply #279 on: 2010.May.28. 20:24:25 »
Dizzyben az a zavaró hogy tök kicsi a kép, ezáltal még kevesebb a pixel, még kisebb felbontásúnak tûnik.
Na meg az hogy ismerjük az másik, részletes és hozzá illõ grafikát...
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
Re: CPC
« Reply #280 on: 2010.May.29. 01:29:18 »
Javított Crystal Kingdom Dizzy átirat:
  - átlátszó/lyukas sprite-ok javítva
  - nem villognak a sprite-ok, 4 MHz-es és turbós gépen sem
  - az itt említett konvertálatlan pixelek most már konvertáltak
  - működik a csalás választás: M: örökélet, .: végtelen energia, ,: csak minden második sérülésre fogy az energia; érdekesség: a játék elején megjelenő menüben, ahol az irányítást lehet beállítani, már eredetileg is volt csalás: a T, U, R, B, és O billentyűk egyidejű lenyomása sebezhetetlenséget eredményez (ezt fehér keretszín jelzi)
  - az F1-F8 billentyűk nem használhatók a hang mód állítására (egyértelműen az alapértelmezett 1-es mód tűnt a legjobbnak); érdemes viszont a monitorban kipróbálni az "O A6 18" parancsot játék közben - ez javítana a zenén (talán "cintányérszerűbb" zaj) ?

Két változat van, amelyek csak a színekben térnek el (egyik sem igazán jó :oops:):
  5201-0

  * crystdiz.prg (36.3 kB - downloaded 155 times.)
  5203-2

  * crysdiz2.prg (36.19 kB - downloaded 154 times.)

A forráskód alapértelmezés szerint az 1. verzióra fordul le (amelyben a zöld szín a rossz), ezen a BIAS és paletta előtti "if 0" "if 1"-re való átírásával lehet változtatni:
  * crystdiz.s (77.02 kB - downloaded 163 times.)

Ezek ugyan valószínűleg senkit nem érdekelnek, de azért itt van az eredeti CPC-s verzió, az arról közvetlenül a betöltés után készült snapshot (G 100-ra indul), és a konvertáló program forráskódja:
  * crystdiz.cdt (72.16 kB - downloaded 160 times.)
  * crystdiz_g0100.ep128s (160.28 kB - downloaded 167 times.)
  * cdizconv.s (15.59 kB - downloaded 152 times.)
A konvertáláshoz le kell fordítani a cdizconv.s file-t sjasm-el (a 2. verzió színeihez előbb a pixel táblázatnál át kell írni az "if 0"-t "if 1"-re), betölteni a snapshotot az ep128emu CPC módjában, majd a lefordított konvertáló programot a monitorban C000h-ra, lefuttatni a konvertálást (G C000), és amikor az HALT utasításnál megáll, törölni a C000h-C47Fh területet és menteni a 64K RAM-ot .prg file-ba.

Offline Lacika

  • EP addict
  • *
  • Posts: 2930
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
    • http://www.ep128.hu
Re: CPC
« Reply #281 on: 2010.May.29. 01:53:52 »
Két változat van, amelyek csak a színekben térnek el (egyik sem igazán jó :oops:):

Egymás mellé raktam a CPC emu-t és az Ep Emut, de esküszöm, nem tudom, hol kellene rossz színeket látnom...  :ds_icon_cheesygrin:
A zöldben látok árnyalatnyi különbséget. Az 1. verziót választanám, mert a 2.-ba a súlyon (felvehető tárgy) is láttam apró különbséget.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
Re: CPC
« Reply #282 on: 2010.May.29. 12:54:10 »
Egymás mellé raktam a CPC emu-t és az Ep Emut, de esküszöm, nem tudom, hol kellene rossz színeket látnom...  :ds_icon_cheesygrin:
A zöldben látok árnyalatnyi különbséget. Az 1. verziót választanám, mert a 2.-ba a súlyon (felvehető tárgy) is láttam apró különbséget.

Valóban, szerintem is az első a jobb (azért is az az alapértelmezett a forráskódokban), csak próbáltam olyan változatot is készíteni, ami nem rontja el a zöld színt. Összehasonlításképpen itt egy táblázat a különböző palettákról:

5209-0

Az EP1, az első, az EP2 pedig a második verzió; itt van egy harmadik is, amit nem használtam, ebben a narancs és piros szín lenne azonos, a kettő közötti árnyalat.
Ez ugyan biztosan nem érdekel senkit, de az egyes paletták előállíthatók az alábbi cpccolor parancsokkal (sorban az 1., 2., és 3.):

cpccolor ==0x14 0x0E 0x0C 0x1C 0x19 0x03 0x14 0x16 0x07 0x05 0x18 0x15 0x17 0x13 0x00 0x0B
cpccolor ==0x14 0x0E 0x0C 0x1C 0x19 0x03 0x14 0x16 0x07 0x05:0.1 0x18 0x15 0x17 0x13 0x00 0x0B
cpccolor ==0x14 0x0E 0x0C 0x1C 0x19 0x03 0x14 0x16:10 0x07 0x05 0x18 0x15 0x17 0x13 0x00 0x0B


Offline nyuzga

  • EP addict
  • *
  • Posts: 2112
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
Re: CPC
« Reply #283 on: 2010.May.29. 13:08:03 »
5211-0

Offline nyuzga

  • EP addict
  • *
  • Posts: 2112
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
Re: CPC
« Reply #284 on: 2010.May.29. 14:22:37 »
Javított Crystal Kingdom Dizzy átirat:

Jelentem, hibátlan lett! :)
Most játszottam végig, a leirás alapján.
Íme az utolsó előtti szoba. 
5213-0