Welcome, Guest. Please login or register.


Author Topic: Spectrum programok átírása (Read 245129 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14298
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 84.0 Firefox 84.0
    • View Profile
    • http://enterprise.iko.hu/

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 87.0.4280.141 Chrome 87.0.4280.141
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #571 on: 2021.January.27. 11:42:25 »
Érteni értem, de ha szól a zene, és épp az egyes csatornán is van hang, akkor a zene se lesz jó, és az effekt sem.
De egyébként a menüből lekapcsolásnál kéne az 0a0h  0a1h portot 0001h ra állítani.
Szerintem úgy tudod a legegyszerűbben a zene+0feh effektet használni, ha az 0a7h-es portot jobb oldali digire állítod, így a bal oldalon (0a8h-0abh) szólhat a zene, a jobb oldalon a 0ach-n pedig az effekt, és akkor a zene kussoltatása se okoz problémát.
Sikerült!
Így csináltam, de nem biztos, h ez a legjobb módszer:
az István féle AY emulációban az ayReset rutinban, miután nullázta az összes Dave regisztert, a 0xa7 reg-be 0x10-et írok, azaz a jobb csatornát D/A-ra állítom.
az egész AY emuláció ENABLE_STEREO = 0-val fordul, vagyis monóban. Az összes jobb csatornára írást "out (0ach + ayDaveChnA)" kikommenteztem, beleértve a "set 2,c" utáni "out (c), a"-t is.
Így elvileg csak a bal csatorna fog szólni, összemixelve rajta mindhárom csatorna.

A Zozó féle portfe rutinban pedig csak a 0xac port írást hagytam meg, a 0x0a8 port írást kitöröltem.
Így rendbe jött a hang, de az effektek (jobb csatorna) sokkal hangosabb, mint a zene. Itt majd még játszok az amplitúdóval.
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 78.0 Firefox 78.0
    • View Profile
Re: Spectrum programok átírása
« Reply #572 on: 2021.January.27. 13:29:52 »
Ami szerintem élvezhetőbb megoldás, ha hagyod sztereón az AY rutint, és nem is szedsz ki belőle semmit, minden 0FEh-s író rutin elejére beteszel egy ld a,10h (vagy 08ht) , out (0a7h),a -t és a végére meg egy xor a, out (0a7h),a -t.

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 88.0.4324.104 Chrome 88.0.4324.104
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #573 on: 2021.January.27. 14:08:58 »
Ami szerintem élvezhetőbb megoldás, ha hagyod sztereón az AY rutint, és nem is szedsz ki belőle semmit, minden 0FEh-s író rutin elejére beteszel egy ld a,10h (vagy 08ht) , out (0a7h),a -t és a végére meg egy xor a, out (0a7h),a -t.
hm... és mi van akkor, ha a két out közben befut a zenemegszakítás? vagy akkor már tegyek "di"-t "ei"-t is?
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 78.0 Firefox 78.0
    • View Profile
Re: Spectrum programok átírása
« Reply #574 on: 2021.January.27. 15:40:21 »
hm... és mi van akkor, ha a két out közben befut a zenemegszakítás? vagy akkor már tegyek "di"-t "ei"-t is?
akkor sincs semmi gond, mert az FE írás gyorsan visszaállítja a hangerőt, de amúgy érdemes elkerülni a megszakítást, mert az az effektet torzítja

Offline SlashNet

  • EP lover
  • *
  • Posts: 921
  • Country: ua
  • Enterprise 128K | Cubietruck
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 88.0.4324.99 Chrome 88.0.4324.99
    • View Profile
    • Russian info about Enterprise
Re: Spectrum programok átírása
« Reply #575 on: 2021.February.08. 18:05:13 »
Horror adventure game from TI calculator ported to ZX: https://github.com/nzeemin/spectrum-desolate

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 88.0.4324.182 Chrome 88.0.4324.182
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #576 on: 2021.February.20. 11:32:53 »
Horror adventure game from TI calculator ported to ZX: https://github.com/nzeemin/spectrum-desolate
Nice!
Would be interesting port it to ep128 to use 4 colour grayscale mode (like in the original game) instead of b&w attribute mode!
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3122
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 86.0 Firefox 86.0
    • View Profile
    • http://www.ep128.hu
Re: Spectrum programok átírása
« Reply #577 on: 2021.February.27. 21:19:26 »
Ez milyen jól nézne ki szép színátmenetekkel.
Van a csomagban forráskód... :oops:

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Chrome 99.0.4844.51 Chrome 99.0.4844.51
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #578 on: 2022.March.09. 20:30:22 »
Ami szerintem élvezhetőbb megoldás, ha hagyod sztereón az AY rutint, és nem is szedsz ki belőle semmit, minden 0FEh-s író rutin elejére beteszel egy ld a,10h (vagy 08ht) , out (0a7h),a -t és a végére meg egy xor a, out (0a7h),a -t.
Megint belefutottam egy olyan játékba, ahol együtt szól az AY és az fe port írás. Tudsz egy konkrét példát mutatni erre az esetre? Nálam beragad az AY hang...

la840:  equ     $ + 1
la83f:  ld      bc, 0000
        ld      a,b
        and     a
        ret     z
la845:  ld      a,00h
la847:  out     (0feh),a
        push    bc
        ld      b,c
la84b:  djnz    la84b
        pop     bc
        xor     10h
        djnz    la847
        ld      hl, 0000
        ld      (la840),hl
        ret    
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 97.0 Firefox 97.0
    • View Profile
Re: Spectrum programok átírása
« Reply #579 on: 2022.March.10. 09:14:34 »
Én ezt csinálnám: (az la845 rutint meg elteheted oda, ahová csak akarod)

la840:  equ     $ + 1
la83f:  ld      bc, 0000
        ld      a,b
        and     a
        ret     z
        ld      a,08h
        out     (0a7h),a
        call    la845
        xor     a
        out     (0a7h),a
        ld      hl, 0000
        ld      (la840),hl
        ret

la845:  ld      a,00h
la847:  out     (0a8h),a
        push    bc
        ld      b,c
la84b:  djnz    la84b
        pop     bc
        xor     3fh                    ;ez gyanúsan túl hangos, lehet az 1fh is elég
        djnz    la847
        ret    
« Last Edit: 2022.March.10. 09:19:49 by geco »

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Chrome 99.0.4844.51 Chrome 99.0.4844.51
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #580 on: 2022.March.10. 12:40:11 »
Én ezt csinálnám: (az la845 rutint meg elteheted oda, ahová csak akarod)

na, valami ilyesmire gondoltam én is. Az a baj, ha az a7-re 0x18-at küldök, hogy mindkét csatornán menjen az effekt, (értelemszerűen ekkor nem csak az 0xa8, hanem a 0xac portra is írok), akkor beragad... A jobb csatornán lévő utolsó hang...

Érdekes módon az AY rutin csak a 0xa8 portot bizgerálja, a 0xac-t nem... Itt lehet a probléma...
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Chrome 99.0.4844.51 Chrome 99.0.4844.51
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #581 on: 2022.March.10. 12:50:34 »
No, ha az AY rutinban kikapcsolom a stereo-t, akkor működik a két csatornára kiadott effekt is, nem ragad be a jobb csatorna hangerő 0x1f-en...
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 97.0 Firefox 97.0
    • View Profile
Re: Spectrum programok átírása
« Reply #582 on: 2022.March.10. 14:16:05 »
ó bakker, elfelejtettem a volume nullázást a 0a7h nullázáskor :D :D
Az a baj a 18h 0a7h-re küldéssel, hogy beep alatt nincs akkor AY, én maradnék a nem stereo AY-nál, és az egyik oldalra kiküldött beepernél, vagy stereo AY, egyik oldal beep, de akkor önmódosító kóddal meg kéne változtatni az összes azon oldalra írást, amire a beep megy, majd beep végén vissza.

la840:  equ     $ + 1
la83f:  ld      bc, 0000
        ld      a,b
        and     a
        ret     z
        ld      a,08h
        out     (0a7h),a
        call    la845
        xor     a
        out     (0a7h),a
        out     (0a8h),a
        ld      hl, 0000
        ld      (la840),hl
        ret

la845:  ld      a,00h
la847:  out     (0a8h),a
        push    bc
        ld      b,c
la84b:  djnz    la84b
        pop     bc
        xor     3fh                    ;ez gyanúsan túl hangos, lehet az 1fh is elég
        djnz    la847
        ret    


amíg la845 szól, addig az AY rutinban az 0a8h-ra való írást át kéne tenni 0ach-ra, tehát a meghívása előtt, majd ha végzett, akkor vissza, és nullázni a 0ach-t, ha Stereonál maradsz.
« Last Edit: 2022.March.10. 14:20:40 by geco »

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 97.0 Firefox 97.0
    • View Profile
Re: Spectrum programok átírása
« Reply #583 on: 2022.March.10. 14:23:36 »
A legegyszerűbb megoldás meg az lenne, hogyha jobb oldalon szól az AY, és a balon a beeper, vagy fordítva, de nekem ez az ötlet tetszik legkevésbé :D
A te megvalósításodban meg az a baj, hogy a beeper alatt nem szól az AY, míg Speccyn a kettő egyszerre megy.

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Chrome 99.0.4844.51 Chrome 99.0.4844.51
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #584 on: 2022.March.10. 15:09:11 »
A legegyszerűbb megoldás meg az lenne, hogyha jobb oldalon szól az AY, és a balon a beeper, vagy fordítva, de nekem ez az ötlet tetszik legkevésbé :D
Ez nekem se tetszik annyira, a Yanga-ban így csináltam.
ó bakker, elfelejtettem a volume nullázást a 0a7h nullázáskor
Így már működik stereo-ban is (nem ragad be a hang), de maradok monó AY-nál, és effekt meg csak bal csatornán. Így jó lesz. Köszi.
*** Speicherplatz zu klein