Welcome, Guest. Please login or register.


Author Topic: Szoftveres CPC emulátor EP-re (Read 99002 times)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8102
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Szoftveres CPC emulátor EP-re
« Reply #135 on: 2009.January.26. 12:26:05 »
Mondjuk azt is lehetne, hogy az összes problémás játékot átírni EP-re. Az emuval már úgyis kb. 90%-ban mûködik is, talán nem lenne olyan nagy munka. És így több EP-s program is lenne. Persze könnyen beszélek, mert én nem értek hozzá...
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #136 on: 2009.January.26. 13:54:00 »
Mondjuk azt is lehetne, hogy az összes problémás játékot átírni EP-re. Az emuval már úgyis kb. 90%-ban mûködik is, talán nem lenne olyan nagy munka. És így több EP-s program is lenne. Persze könnyen beszélek, mert én nem értek hozzá...

A 4 szín üzemmódot használókat nem nehéz átírni, a 16 színűeket macerásabb, mert meg kell keresni a nagyjából megfelelő biast, és a játék grafikájának színeit cserélgetni kell. Ráadásul egyszerűbb átírni azokata programokat, amelyek direkt i/o-t használnak, ezek egyáltalán el sem indulnak az emuban.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8102
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Szoftveres CPC emulátor EP-re
« Reply #137 on: 2009.January.26. 14:15:07 »
És ahol csak a hangok lecsengésével van a probléma (sípolás)? Ha egy ilyen programnak nincs zenéje, még ez a hangerõnullázás is célravezetõ lehet - gondolom én legalábbis.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Attus

  • EP addict
  • *
  • Posts: 1230
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 2.0.0.16 Firefox 2.0.0.16
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #138 on: 2009.January.26. 14:42:05 »
Egy kis  bátorítás a fejlesztéshez részemrõl.
Szerintem azért az utólagos "sípolás" biztos kiküszöbölhetõ.
Én a DOS alatti EP emulátoromnál elég jól megoldottam a DAVE és a PC beeper közti konverziót, ezt szerénytelenség nélkül állíthatom. (A Magicball zeneáje például a "rettenetes" PC szpíkeren elég jó  ;-) )
Ahogy olvasgatlak benneteket, a hangképzést illetõen a CPC és a DAVE hangépzési rendszere közt azért nem lehet olyan ordító különbség, mint a PC beepere és a DAVE közt.  :)

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 2.0.0.18 Firefox 2.0.0.18
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #139 on: 2009.January.26. 18:58:20 »
Megpróbálok majd utánajárni, hogy is működnek pontosan az AY envelope regiszterei, és megpróbálok majd valamit alkotni, meglátjuk mi jön össze :), egyelőre a VIC-kel küzdök, már lehet töltögetni.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13534
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
    • http://enterprise.iko.hu/
Re: Szoftveres CPC emulátor EP-re
« Reply #140 on: 2009.January.26. 19:21:35 »
Az AY emuláló rutin az maradt az amit anno küldtél, vagy sikerült jobbat alkotni?

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #141 on: 2009.January.27. 08:50:23 »
Az AY emuláló rutin az maradt az amit anno küldtél, vagy sikerült jobbat alkotni?
Szerintem az maradt, amit küldtem, abban egyáltalán nincs envelope emuláció.
Tegnap egy kicsit utánajártam, és meg lehet csinálni egy gyengébb envelope emulációt az 50hz-es megszakításba betett rutin által csökkentve, vagy növelve a hangerőt az Envelope shape értéke alapján.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13534
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
    • http://enterprise.iko.hu/
Re: Szoftveres CPC emulátor EP-re
« Reply #142 on: 2009.January.27. 08:59:02 »
És zajgeneráláson elmélkedtél már? Az a rutin a torzitást kapcsolja be, ha zaj is van az adott csatornán, ami meglehetõsen borzalmas eredményre vezet, ha egyszerre kéne rendes hangnak és zajnak lenni :(
Valami olyasmire gondoltam, hogy tárolni kéne a zajigényeket, és valahogy összevonva megvalósítani az egyszem zajcsatornán, miközben a másik hármat békén hagyjuk zeneinek.

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.5 Firefox 3.0.5
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #143 on: 2009.January.27. 14:34:39 »
És zajgeneráláson elmélkedtél már? Az a rutin a torzitást kapcsolja be, ha zaj is van az adott csatornán, ami meglehetõsen borzalmas eredményre vezet, ha egyszerre kéne rendes hangnak és zajnak lenni :(
Valami olyasmire gondoltam, hogy tárolni kéne a zajigényeket, és valahogy összevonva megvalósítani az egyszem zajcsatornán, miközben a másik hármat békén hagyjuk zeneinek.
Úgy emlékszem, hogy a hangemuláció rutinja a DAVE zajcsatornát aktiválja, ha valamelyik AY csatornán megjelenik a zaj is.
Egyelőre az envelope utánzásával foglalkoztam egy keveset, itt az eddigi eredmény (ez a rész lenne a megszakítás rutinban, még a hang kiírását a hangerőregiszterekbe nem döntöttem el, hogy hol legyen):
Code: [Select]
        ld      hl,volreg
        bit     4,(hl)             ;volume of channel A
        jr      nz,envelop
        inc     hl
        bit     4,(hl)             ;volume of channel B
        jr      nz,envelop
        inc     hl
        bit     4,(hl)             ;volume of channel C
        jr      nz,envelop       ;if bit 4 set, then use envelope values
        ret
envelop inc     hl
        inc     hl
        inc     hl
        ld      a,(hl)            ;original envelop period value
        inc     hl
        inc     hl
        inc     hl
        cp      (hl)              ;actual envelope period value of channels
        jr      c,nonenv
        ld      (hl),a
nonenv  dec     (hl)
        ret     nz
        dec     hl
        dec     hl
        dec     hl
        dec     hl
        dec     hl
        dec     hl
        ld      a,(envshp) ;value of envelope shape
        rla
        ld      (jump+1),a
        ld      a,(statsh) ;check shape starts with attack, or decay
        ld      b,a
        and     a
jump    jr      jump
        jr      shape0
        jr      shape0
        jr      shape0
        jr      shape0
        jr      shape1
        jr      shape1
        jr      shape1
        jr      shape1
        jr      shape2
        jr      shape0
        jr      shape3
        jr      shape4
        jr      shape5
        jr      shape6
        jr      shape7
        jr      shape1

shape0 jp      z,decshp          ;\______
        ret

shape1 jp      nz,incshp         ;/|______
        xor     a
        ld      (hl),a
        ret

shape2 jp      z,decshp          ;\|\|\|\|\|
        ld      a,1fh
        ld      (hl),a
        xor     a
        ld      (statsh),a ;change to decay
        ret       

shape3 jp      z,decshp          ;\/\/\/\/\/
jp      incshp

shape4 jp      z,decshp          ;\|-------
        ld      a,1fh
        ld      (hl),a
        ret

shape5 jp      nz,incshp         ;/|/|/|/|/|/|
        xor     a
        ld      (hl),a
        inc     a
        ld      (statsh),a ;change to attack
        ret       

shape6 jp      nz,incshp          ;/----------
        ld      a,1fh
        ld      (hl),a
        ret

shape7 jp      nz,incshp          ;/\/\/\/\/\/\/\
jp      decshp

decshp  dec     (hl)
        ret     nz
        ld      a,01h
        ld      (statsh),a ;change to attack
        ret
       
incshp  inc     (hl)
        ld      a,(hl)
        cp      1fh
        ret     nz
        xor     a
        ld      (statsh),a ;change to decay
        ret

Csak az Envelop period felső 8 bitjét használja ez programrész, ez azt jelenti, hogy egy envelope period 0,2 mp-től 5 mp-ig terjedhetne.
A statsh kezdő értékét (ami az attack, vagy a decay kapcsoló, az envelope shape regiszterírásnál állítanám majd be, ugyanígy a kezdő hangerőt.
« Last Edit: 2009.January.27. 14:38:23 by geco »

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.6 Firefox 3.0.6
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #144 on: 2009.February.09. 09:17:20 »
sikerült haladnom a hétvégén a hangemuláció javítgatásával, a zajgenerálásnál a frekvenciát már egy hangcsatorna frekvenciája állítja be, így az Airwolf (ezen tesztelek)  helikopterének robbanása már jó, az envelope emulálás is műxik valamilyen szinten, de még bugos, elhalálozás után nem szűnik meg a zaj, mert nem nullázódik a hangerő, a hibát megtaláltam, a forrásban már javítottam is, meglátjuk, hogy befordulás után is javítás-e. :D
Egy envelope 1/750-5,12 másodperc hosszú lehet (CPC-n 1/7680-8,5 mp)
Egyelőre úgy műxik a hangutánzás, hogyha az egyik csatornán zaj jelenik meg, akkor annak a csatornának a hangerejét nullázom, a frekvenciáját az AY zajfrekvenciájával töltöm fel, és a megfelelő AY hangcsatorna hangererejét megkapja az AB,AF regiszter.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8102
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.6 Firefox 3.0.6
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Szoftveres CPC emulátor EP-re
« Reply #145 on: 2009.February.09. 13:16:39 »
sikerült haladnom a hétvégén a hangemuláció javítgatásával,
...
a hibát megtaláltam, a forrásban már javítottam is
:smt041
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13534
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.6 Firefox 3.0.6
    • View Profile
    • http://enterprise.iko.hu/
Re: Szoftveres CPC emulátor EP-re
« Reply #146 on: 2009.February.09. 13:46:59 »
sikerült haladnom a hétvégén a hangemuláció javítgatásával
Jól hangzik! Ez mennyire lesz CPC ROM specifikus? Lehet ebbõl egy külön általános AY rutin is, amit pl SP128-as átíratoknál is lehetne használni?

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.6 Firefox 3.0.6
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #147 on: 2009.February.10. 08:52:16 »
Jól hangzik! Ez mennyire lesz CPC ROM specifikus? Lehet ebbõl egy külön általános AY rutin is, amit pl SP128-as átíratoknál is lehetne használni?
Eddig teljesen általános :) ,nem használ semmi ROM rutint, ha kész lesz, akkor bevágom ide valahová az emuláló rutint, még az is lehet, hogy találtok benne egyszerűsítési lehetőséget is. Annyi lesz a plusz az eddigihez képest, hogy a megszakítás rutinba be kell majd illeszteni az envelope utánzást, és a zajcsatorna kezelését.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13534
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.6 Firefox 3.0.6
    • View Profile
    • http://enterprise.iko.hu/
Re: Szoftveres CPC emulátor EP-re
« Reply #148 on: 2009.February.10. 10:47:13 »
Annyi lesz a plusz az eddigihez képest, hogy a megszakítás rutinba be kell majd illeszteni az envelope utánzást, és a zajcsatorna kezelését.
Ez nyilvánvaló, de nem nagy ügy, amennyit eddig néztem, minden 128-as program az 50 Hz-es megszakításban piszkálja az AY-t.

Offline geco

  • EP addict
  • *
  • Posts: 5431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.0.6 Firefox 3.0.6
    • View Profile
Re: Szoftveres CPC emulátor EP-re
« Reply #149 on: 2009.February.10. 11:18:15 »
Ez nyilvánvaló, de nem nagy ügy, amennyit eddig néztem, minden 128-as program az 50 Hz-es megszakításban piszkálja az AY-t.
Akkor csak a helytalálás lesz a gond, szükség lesz kb fél kilobytra. :(