Welcome, Guest. Please login or register.


Author Topic: New Zeland Story (Read 3378 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: New Zeland Story
« Reply #15 on: 2012.May.20. 12:18:19 »
Akkor ezek szerint kéne ez is  :oops:

Az ay.s-ben van burkológörbe emuláció, de az envelopeInterrupt hívását be kell építeni a megszakításkezelő rutinba. A legjobb minőséget 1 kHz-es (illetve CPC átiratoknál jól használható a 300 Hz-es) megszakítással lehet elérni, de ha nincs gyors burkológörbe, akkor megfelelő lehet a video megszakítás is, az ENV_SRATE_DIV-et 20-ra állítva.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • http://enterprise.iko.hu/
Re: New Zeland Story
« Reply #16 on: 2012.May.20. 12:27:01 »
A végén van egy kikommentelt IF IRQ rész is, azt vissza kell tenni, vagy Spectrumoz nem kell?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: New Zeland Story
« Reply #17 on: 2012.May.20. 12:43:18 »
A végén van egy kikommentelt IF IRQ rész is

Pontosan hol ? :oops:

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • http://enterprise.iko.hu/
Re: New Zeland Story
« Reply #18 on: 2012.May.20. 14:06:59 »
Pontosan hol ? :oops:
767-774 sorok az ide feltett ay.s-ben.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: New Zeland Story
« Reply #19 on: 2012.May.20. 15:55:44 »
767-774 sorok az ide feltett ay.s-ben.

Ennek a résznek akkor van jelentősége, ha az ayRegisterWriteAllD a burkológörbe regisztereket is írja, azaz a táblázat mérete 13 vagy 14 byte.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • http://enterprise.iko.hu/
Re: New Zeland Story
« Reply #20 on: 2012.May.20. 16:25:11 »
ENV_SRATE_DIV-et 20-ra állítva.
Így gond lesz itt:
  ld    a, MIN_ENV_FREQVAL
Mert a:
MIN_ENV_FREQVAL         equ     24 * ENV_SRATE_DIV
több lesz mint egy bájt.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: New Zeland Story
« Reply #21 on: 2012.May.20. 16:34:42 »
MIN_ENV_FREQVAL         equ     24 * ENV_SRATE_DIV

A 24 * ENV_SRATE_DIV helyett lehet 255, ami ugyan valamivel kisebb a megjegyzésben ajánlott minimális értéknél, de használható (50 Hz-es emulációval az ilyen gyors burkológörbe nem túl jó minőségű).

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • http://enterprise.iko.hu/
Re: New Zeland Story
« Reply #22 on: 2012.May.20. 19:42:35 »
Köszi a segítséget! Egész jónak tûnik a végeredmény. Már csak ezt a sok apró fájlt kell betömöríteni  :)

Offline Lacika

  • EP addict
  • *
  • Posts: 2918
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://www.ep128.hu
Re: New Zeland Story
« Reply #23 on: 2012.May.20. 21:39:55 »
Eredetileg én csak azt kértem, hogy nézzük meg, a "néma" átiratba be lehet-e rakni a hangot...  :oops:

A Saboteur 2-ben a billentyûzetfigyelésrõl volt régebben szó, hogy pl. név és kódbeíráskor nem minden billentyû mûködik megfelelõen. Más baja amúgy nincs, több nehézségi szinten sokszor végignyomtam. Az javítható lenne? Úgy nézem az a program nem csak nekem tetszik, a WoS-on a toplistában is elõl van.
Meg után megnézni az R-Type-ot... :oops:

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • http://enterprise.iko.hu/
Re: New Zeland Story
« Reply #24 on: 2012.May.20. 22:24:10 »
Eredetileg én csak azt kértem, hogy nézzük meg, a "néma" átiratba be lehet-e rakni a hangot...  :oops:
128-as hanggal csak jobb  :ds_icon_cheesygrin:

Offline Lacika

  • EP addict
  • *
  • Posts: 2918
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://www.ep128.hu
Re: New Zeland Story
« Reply #25 on: 2012.May.20. 22:39:25 »
128-as hanggal csak jobb  :ds_icon_cheesygrin:

Szó se róla, tényleg jól szól.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: New Zeland Story
« Reply #26 on: 2012.May.21. 13:57:59 »
És jól gondolom, hogy ezt az AYRESET rutint így csak a program elején kell hívni, menet közben amikor a játék resetelgeti az AY-t (konkrét esetben úgy tûnik minden hangeffektnél), akkor oda praktikusabb egy csak a regisztertörléseket alkalmazó egyszerûbb verziót rakni?

Talán nem sok jelentősége van, de jelenleg nem hívja az ayReset-et a program. Itt egy módosított verzió, ami a turbó felismerést csak az első hívásnál végzi el, így nem kell külön ayNull rutin. Ezen kívül, mivel a burkológörbe emuláció nem használ 1 kHz-es megszakítást, annak az engedélyezését töröltem.

Code: ZiLOG Z80 Assembler
  1. ayReset:
  2.         di
  3.         ld    hl, ayRegisters - 1
  4.         ld    bc, 10afh
  5.         xor   a
  6. .l1:    inc   hl
  7.         out   (c), a
  8.         ld    (hl), a
  9.         dec   c
  10.         djnz  .l1
  11.         res   3, l                      ; register 7
  12.         ld    (hl), 3fh
  13.     if NO_ENVELOPE_IRQ == 0
  14.         ld    (envelopeInterrupt.l4 + 1), a
  15.         ld    a, 18h                    ; = JR +nn
  16.         ld    (envelopeInterrupt.l2), a
  17.         ld    hl, MIN_ENV_FREQVAL
  18.         ld    (envelopeInterrupt.l3 + 1), hl
  19.         ld    a, low (envelopeInterrupt.l12 - envelopeInterrupt.l11)
  20.         ld    (envelopeInterrupt.l10 + 1), a
  21.         ld    a, low envelopeEnableTable
  22.         ld    (setChannelAmplitude.l3 + 1), a
  23.     endif
  24.         ld    a, 10h                    ; use 17-bit noise generator
  25.         out   (0a6h), a
  26. .l4:    ld    a, 0c9h                   ; * = RET
  27.         ld    (.l4), a
  28.         ld    a, 04h
  29.         out   (0bfh), a
  30.         ld    c, b
  31.         call  .l2
  32.         ld    l, b
  33.         call  .l2                       ; L = 1 kHz interrupts per video frame
  34.         ld    a, 25
  35.         cp    l
  36.         ld    a, 03h
  37.         rla
  38.         rla
  39.         out   (0bfh), a                 ; Z80 <= 5 MHz: 04h, > 5 MHz: 06h
  40. ;   if NO_ENVELOPE_IRQ == 0
  41. ;       ld    a, 33h
  42. ;   else
  43.         ld    a, 30h
  44. ;   endif
  45.         out   (0b4h), a                 ; enable 1 kHz and video interrupts
  46.         ret
  47. .l2:    in    a, (0b4h)
  48.         and   11h
  49.         or    c
  50.         rlca
  51.         and   66h
  52.         ld    c, a                      ; -ON--ON-
  53.         rlca                            ; ON--ON--
  54.         xor   c                         ; OXN-OXN-
  55.         bit   2, a
  56.         jr    z, .l3
  57.         inc   l                         ; 1 kHz interrupt
  58. .l3:    cp    0c0h
  59.         jr    c, .l2                    ; not 50 Hz interrupt ?
  60.         ret

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • http://enterprise.iko.hu/
Re: New Zeland Story
« Reply #27 on: 2012.May.21. 14:25:09 »
Ezt ilyenformában meg bármely progiba lehet berakni a fix out (191) helyett?
Code: ZiLOG Z80 Assembler
  1.         di
  2.         ld    a, 04h
  3.         out   (0bfh), a
  4.         ld    c, 0
  5.         call  .l2
  6.         ld    l, 0
  7.         call  .l2                       ; L = 1 kHz interrupts per video frame
  8.         ld    a, 25
  9.         cp    l
  10.         ld    a, 03h
  11.         rla
  12.         rla
  13.         out   (0bfh), a                 ; Z80 <= 5 MHz: 04h, > 5 MHz: 06h
  14.         ret
  15. .l2:    in    a, (0b4h)
  16.         and   11h
  17.         or    c
  18.         rlca
  19.         and   66h
  20.         ld    c, a                      ; -ON--ON-
  21.         rlca                            ; ON--ON--
  22.         xor   c                         ; OXN-OXN-
  23.         bit   2, a
  24.         jr    z, .l3
  25.         inc   l                         ; 1 kHz interrupt
  26. .l3:    cp    0c0h
  27.         jr    c, .l2                    ; not 50 Hz interrupt ?
  28.         ret

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: New Zeland Story
« Reply #28 on: 2012.May.21. 14:57:50 »
Ezt ilyenformában meg bármely progiba lehet berakni a fix out (191) helyett?

Igen; az "ld    a, 03h" (out 191, 12/14) helyett lehet "ld    a, 01h" is (out 191, 4/6).

Offline szipucsu

  • EP addict
  • *
  • Posts: 7786
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 12.0 Firefox 12.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: New Zeland Story
« Reply #29 on: 2012.May.22. 14:02:29 »
NewZealandStory_Beta.zip (87.22 KB - letöltve 252346 .)
Eddig jónak tûnik! Bár nem sokáig jutottam vele, igaz, csak egy percig próbálkoztam.
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