Welcome, Guest. Please login or register.


Author Topic: Tegyük rendbe az EP programokat! (Read 372404 times)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Tegyük rendbe az EP programokat!
« Reply #540 on: 2010.June.24. 14:45:17 »
Igen, szerintem mind a hat program egy kaptafára kézült.

Ugyanazzal az enginnel készültek, de ez nem azt jelenti hogy egy kaptafára. Az, hogy ugyanolyan stílusú játékok, az se jelenti, hogy egy kaptafára. Fogalomzavarban vagy. :)
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #541 on: 2010.June.25. 16:27:14 »
Nem gyorsabb a Spectrum verzió? Abból indultam ki, hogy fele annyi adatot kell mozgatnia, meg számolnia a grafikai eltérések miatt.
De egyébként egyetértek, sokkal szebbek a CPC-s verziók :)

Valóban gyorsabb valamivel a Spectrum verzió, de nem kétszer, mert az idő nagy részét a felbontástól független számolással tölti, és nem csak a pixelek rajzolásával. A kiindulópontnál egy teljes fordulat átlagosan kb. 19-20%-al lassabb CPC-n mint Spectrum 128-on. De ez nem egy fix arány, hanem az egyes képkockák bonyolultságától függ: a lassabb képkockáknál ennél kisebb, az egyszerűeknél (pl. ha csak egy üres fal van a képernyőn) viszont nagyobb arányú a lassulás.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Tegyük rendbe az EP programokat!
« Reply #542 on: 2010.June.25. 21:26:18 »
Valóban gyorsabb valamivel a Spectrum verzió, de nem kétszer, mert az idő nagy részét a felbontástól független számolással tölti, és nem csak a pixelek rajzolásával. A kiindulópontnál egy teljes fordulat átlagosan kb. 19-20%-al lassabb CPC-n mint Spectrum 128-on. De ez nem egy fix arány, hanem az egyes képkockák bonyolultságától függ: a lassabb képkockáknál ennél kisebb, az egyszerűeknél (pl. ha csak egy üres fal van a képernyőn) viszont nagyobb arányú a lassulás.
Szuper, sokkal nagyobb eltérésre számítottam, nem sokkal lassabb, viszont sokkal szebb :D
Néztem screenshotot a Total Eclipse-ről, ott a színeket is nagyon eltalálták

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Tegyük rendbe az EP programokat!
« Reply #543 on: 2010.July.15. 11:48:45 »
Nem tudom már, a Nether ki lett javítva? (Mentés-töltés nem mûködött.) Ha igen, akkor a wikin is be kéne írni a javított játékok közé. Ebben az információhalmazban nem sikerült utánakeresnem.
Átnéznétek ott a listát, maradt ki valami bugos játék, vagy olyan játék, aminek kijavítása már megtörént?
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline vizor

  • EP fan
  • *
  • Posts: 238
  • Country: hu
Re: Tegyük rendbe az EP programokat!
« Reply #544 on: 2010.July.19. 17:25:18 »
Üdv Mindenki!

A Chaos 2-ben is vannak hibák, nem tudom foglalkoztatok-e már vele. Már nem emlékszem pontosan de voltak olyan varázslatok pl. Lightning amit egyszerûen nem lehetett elsütni senkire. "Cancel"-ezni kellett és ezzel kiesett egy kör. Ez akkor volt zavaró, amikor már nem volt igazán más lehetõség vagy volt a közelben valami lény vagy jármû amit ki lehetett volna ütni. Ha már volt a probléma akkor bocsi.  :roll:

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Tegyük rendbe az EP programokat!
« Reply #545 on: 2010.July.19. 19:54:17 »
szerintem a legtöbb játékban vannak hibák, átiratokban fõleg
eléggé lehetetlen vállalkozás hogy mindet kijavítsátok, vagy akár kis részét is :)
mindenesetre szerintem a világon egyedülálló dolgot csináltok :)
Vigyázat! Szektás vagyok! :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Tegyük rendbe az EP programokat!
« Reply #546 on: 2010.August.23. 12:54:44 »
Ezt a hibát valószínűleg könnyen lehet javítani. Itt már leírtam, melyik byte-ot kell átírni a memóriában. Úgy látom, ez az egyik tömörített adatblokk kicsomagolásakor kerül oda.

A sebesség problémák maradnak ? :oops:

A 37,5 fps-re lenne ötletem, az 1 kHz-es DAVE megszakítás bevezetésével, de ennek megvalósításához ki kéne iktatni az EXOS megszakítást, arra esetleg van valami tipp, hogy lehetne zenélni EXOS megszakítás nélkül? Így felgyorsulna a scroll is.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #547 on: 2010.August.23. 13:06:13 »
A 37,5 fps-re lenne ötletem, az 1 kHz-es DAVE megszakítás bevezetésével,

Az eredeti 300 Hz-es CPC megszakítás emulációja is használható lenne, illetve akár 150 is, mert a 37.5 fps előállításához az is elég (150 / 4). Igaz, ez növelné az LPT méretét (de csak ehhez nem kell minden sorhoz külön LPB). Ha fontos tudni, hogy éppen melyik megszakítás történt, akkor az LPT-t folyamatosan módosítani kell minden megszakításnál, egyébként a megszakítást elég egyszerre több helyen engedélyezni az LPT-ben. 150 Hz-nél minden harmadik megszakítás meghívja az EXOS megszakítást is (amely általában talán nem annyira lassú, hogy nem tér vissza még a következő 150 Hz-es megszakítás előtt).

Quote
de ennek megvalósításához ki kéne iktatni az EXOS megszakítást, arra esetleg van valami tipp, hogy lehetne zenélni EXOS megszakítás nélkül?

Ha a játék a CPC ROM rutinokat használta, akkor azoknak az emulációjával. Valószínűleg gyorsabb lenne, mint a SOUND: eszköz. De lehet, hogy ez sok helyet foglalna a memóriában, vagy egyéb probléma lenne ?

Esetleg csak a SOUND: megszakítását lehetne hívni közvetlenül az EXOS ROM-ból, bár nem tudom, hogy ez mennyire függ az EXOS megszakítás többi részétől. Természetesen így fell kell ismerni az EXOS verzióit, és mindegyiknél más címet hívni. EXOS 2.1-nél például a 00h:EBD6h címen van, de ezt a SOUND: eszközleírójának a megkeresésével is meg lehet állapítani. A futásideje letiltott memória várakozással, és megnyitott SOUND: csatornával de aktív hangok nélkül valamivel kevesebb, mint 0.9 ms (~4.5% CPU idő). A teljes EXOS megszakítás így (csak egy SOUND: csatorna) ~3.7 ms lenne, azaz több, mint 18% CPU idő.
« Last Edit: 2010.August.23. 13:55:10 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Tegyük rendbe az EP programokat!
« Reply #548 on: 2010.August.23. 15:38:39 »
Az eredeti 300 Hz-es CPC megszakítás emulációja is használható lenne, illetve akár 150 is, mert a 37.5 fps előállításához az is elég (150 / 4). Igaz, ez növelné az LPT méretét (de csak ehhez nem kell minden sorhoz külön LPB). Ha fontos tudni, hogy éppen melyik megszakítás történt, akkor az LPT-t folyamatosan módosítani kell minden megszakításnál, egyébként a megszakítást elég egyszerre több helyen engedélyezni az LPT-ben. 150 Hz-nél minden harmadik megszakítás meghívja az EXOS megszakítást is (amely általában talán nem annyira lassú, hogy nem tér vissza még a következő 150 Hz-es megszakítás előtt).

Ha a játék a CPC ROM rutinokat használta, akkor azoknak az emulációjával. Valószínűleg gyorsabb lenne, mint a SOUND: eszköz. De lehet, hogy ez sok helyet foglalna a memóriában, vagy egyéb probléma lenne ?

Esetleg csak a SOUND: megszakítását lehetne hívni közvetlenül az EXOS ROM-ból, bár nem tudom, hogy ez mennyire függ az EXOS megszakítás többi részétől. Természetesen így fell kell ismerni az EXOS verzióit, és mindegyiknél más címet hívni. EXOS 2.1-nél például a 00h:EBD6h címen van, de ezt a SOUND: eszközleírójának a megkeresésével is meg lehet állapítani. A futásideje letiltott memória várakozással, és megnyitott SOUND: csatornával de aktív hangok nélkül valamivel kevesebb, mint 0.9 ms (~4.5% CPU idő). A teljes EXOS megszakítás így (csak egy SOUND: csatorna) ~3.7 ms lenne, azaz több, mint 18% CPU idő.
Az LPT-s 300 Hz-et szeretném elkerülni, ezért gondoltam az 1kHz-es megszakításra, amivel pont 37,5 Hz-et nem lehet elérni de vagy 37, vagy 38,5 Hz et be lehet lőni, nekem ez tűnik a legegyszerűbbnek.
Hát szerintem a CPC ROM rutin beillesztése sok helyet foglalna, a közvetlen SOUND: hívásra gondoltam, csak nem tudtam, honnan kell hívni, sztem ezzel, meg az 1kHz-es megszakítással megoldható lenne a sebesség probléma.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #549 on: 2010.August.23. 15:52:57 »
Az LPT-s 300 Hz-et szeretném elkerülni, ezért gondoltam az 1kHz-es megszakításra, amivel pont 37,5 Hz-et nem lehet elérni de vagy 37, vagy 38,5 Hz et be lehet lőni, nekem ez tűnik a legegyszerűbbnek.

Az LPT-s 150 Hz nem jó ? Csak 32 byte-al növelné az LPT méretét, és az 1 kHz-hez képest még megtakarítana néhány százalék CPU-t, illetve nem jelentene problémát, hogy az EXOS megszakítás nem tud időben visszatérni a következő 1 kHz-es megszakítás előtt.
Kisebb esztétikai LPT probléma (de talán csak emulátoron, a TV-k ezt valószínűleg levágják): a képernyő felső részéről a néhány fekete sort el lehetne tüntetni.

Quote
a közvetlen SOUND: hívásra gondoltam, csak nem tudtam, honnan kell hívni

Az eszközleíró megkeresésével megállapítható a hívandó cím, de itt van a különböző EXOS verziókhoz:
  EXOS 2.0: 00h:EBA1h
  EXOS 2.1: 00h:EBD6h  (ez a későbbi verziókkal - 2.2, 2.3x - is működik)
A hívása előtt természetesen be kell állítani az EXOS-nak megfelelő lapozást és esetleg vermet.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Tegyük rendbe az EP programokat!
« Reply #550 on: 2010.August.24. 10:47:31 »
Az LPT-s 150 Hz nem jó ? Csak 32 byte-al növelné az LPT méretét, és az 1 kHz-hez képest még megtakarítana néhány százalék CPU-t, illetve nem jelentene problémát, hogy az EXOS megszakítás nem tud időben visszatérni a következő 1 kHz-es megszakítás előtt.
Kisebb esztétikai LPT probléma (de talán csak emulátoron, a TV-k ezt valószínűleg levágják): a képernyő felső részéről a néhány fekete sort el lehetne tüntetni.
A +32, vagy + 16 byte miatt nem szimpi, meg azért, mert esetleg elcsúszhat az 50Hz-es megszakítás helye a másik két megszakítási helyre az LPT-ben. Arra gondoltam ,hogy az 50Hz-es megszakítás idejére nem tiltanám le a megszakítást, így az 1kHz-es megszakítások futhatnának, azok úgyis csak csökkentenének egy számlálót 25-ról 0-ra.
Valahogy úgy gondoltam a megszakítási részt, hogy AF-et eltárolom, utána csekkolom, hogy 50Hz-es megszakítás történt-e, ha nem, akkor számláló csökkentése, ha negatívba billen, akkor újra 25-os értéket kap, AF veremből ki, és visszatérés, ha 50Hz-es megszakítás történt, akkor a normál megszakítás hívása, Sound: eszközzel együtt.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #551 on: 2010.August.24. 13:04:16 »
A +32, vagy + 16 byte miatt nem szimpi

Ez biztos, hogy probléma ? Úgy látom, még van néhány kilobyte szabad hely az LPT után. De lehet, hogy azt valamikor valami használja, csak nem teszteltem eleget ?

Quote
meg azért, mert esetleg elcsúszhat az 50Hz-es megszakítás helye a másik két megszakítási helyre az LPT-ben.

Ennek nem biztos, hogy van jelentősége, mert a képfrissítés helye egyébként is folyamatosan elcsúszik a 37.5 Hz miatt, az pedig talán nem lényeges, hogy például a hang lejátszás a képernyő melyik pontján történik :) De ha mégis fontos a megszakítások helye, akkor egyszerűen csak egy LPB-ben kell engedélyezni a megszakítást, és ezt az LPB-t váltogatni a megszakítási rutinból. Ez a művelet még mindig gyorsabb, mint az 1 kHz-es megszakítás.

Quote
Arra gondoltam ,hogy az 50Hz-es megszakítás idejére nem tiltanám le a megszakítást, így az 1kHz-es megszakítások futhatnának, azok úgyis csak csökkentenének egy számlálót 25-ról 0-ra.
Valahogy úgy gondoltam a megszakítási részt, hogy AF-et eltárolom, utána csekkolom, hogy 50Hz-es megszakítás történt-e, ha nem, akkor számláló csökkentése, ha negatívba billen, akkor újra 25-os értéket kap, AF veremből ki, és visszatérés, ha 50Hz-es megszakítás történt, akkor a normál megszakítás hívása, Sound: eszközzel együtt.

Valami ilyesmi ?

Code: ZiLOG Z80 Assembler
  1. irqRoutine:
  2.         push  af
  3.         in    a, (0b4h)
  4.         and   02h
  5.         jr    z, .l4
  6.         ld    a, 13h
  7.         out   (0b4h), a
  8. .l1:    ld    a, 27                     ; *
  9.         dec   a
  10.         jr    z, .l3
  11. .l2:    ld    (.l1 + 1), a
  12.         pop   af
  13.         ei
  14.         ret
  15. .l3:    ...                             ; 37.5 Hz IRQ
  16.         ld    a, 27
  17.         jr    .l2
  18. .l4:    ld    a, 31h                    ; video IRQ
  19.         out   (0b4h), a
  20.         ei
  21.         ...
  22.         pop   af
  23.         ret

Ez kb. 3.3% CPU időt használ az 1 kHz-es megszakításra, ami tulajdonképpen elfogadható. Itt nem vettem figyelembe azt az esetleges problémát, hogy a video megszakítás megváltoztathatja a lapozást, ami zavarhatja a közben történő újabb megszakítás működését; ennek elkerüléséhez további kódra lehet szükség.
« Last Edit: 2010.August.24. 13:15:00 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Tegyük rendbe az EP programokat!
« Reply #552 on: 2010.August.24. 14:06:50 »
Ez biztos, hogy probléma ? Úgy látom, még van néhány kilobyte szabad hely az LPT után. De lehet, hogy azt valamikor valami használja, csak nem teszteltem eleget ?

Az igazat megvallva nem tudom, újra meg kell ismerkednem a kóddal, azt még nem néztem meg, lehet ez a megoldás is, csak azért nem szimpatikus, mert már futottam bele hibába, és az maradt is, pl a Donkey Kongban, azóta próbálom kerülni a 300Hz-es megszakítást, és átalakítani a CPC-s képernyőcímzést EP-ssé.

Ennek nem biztos, hogy van jelentősége, mert a képfrissítés helye egyébként is folyamatosan elcsúszik a 37.5 Hz miatt, az pedig talán nem lényeges, hogy például a hang lejátszás a képernyő melyik pontján történik :) De ha mégis fontos a megszakítások helye, akkor egyszerűen csak egy LPB-ben kell engedélyezni a megszakítást, és ezt az LPB-t váltogatni a megszakítási rutinból. Ez a művelet még mindig gyorsabb, mint az 1 kHz-es megszakítás.

Valami ilyesmi ?
Jaja, ilyesmire gondoltam.
lehet bepróbálkozom a 300Hz-cel, vagy a 3 fix megszakítási hellyel, vagy a változó eggyel, ha van szabad hely az új sor(ok)nak.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Tegyük rendbe az EP programokat!
« Reply #553 on: 2010.August.27. 18:21:49 »
mondjuk sose értettem hogy mire jó EP-n az hogy lpt-be megszakítást lehet tenni
ez olyan gépen értelmes ahol nincs lpt, nem? ahol megszakítással kell átszínezni a palettát vagy ilyesmi

vagy másra is használható lenne? mire?
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #554 on: 2010.August.27. 18:39:42 »
mondjuk sose értettem hogy mire jó EP-n az hogy lpt-be megszakítást lehet tenni
ez olyan gépen értelmes ahol nincs lpt, nem? ahol megszakítással kell átszínezni a palettát vagy ilyesmi

vagy másra is használható lenne? mire?

Használható például:
  - keret vagy BIAS átszínezésére
  - képernyő frissítésének a szinkronizálására, például hogy ne villogjanak a sprite-ok
  - 50 * N Hz-es megszakítás előállítására (ha 312 / N egész szám) DAVE hangcsatorna felhasználása nélkül