Enterprise Forever

:HUN => Konvertálás => Spectrum-ról => Topic started by: geco on 2010.January.30. 18:03:04

Title: WHB
Post by: geco on 2010.January.30. 18:03:04
Akkor mostmár jöhetne valami 2010-es enterprise program is... :)
Hát akkor itt is van :D
Egy kis gondom még van vele, zenelejátszás közben egy kicsikét ciripel, keresgéltem, de nem találtam az okát.
Az A7-es port-on keresztül emulálja a hangot a program, hol 0-át, hol 18h-t irva ki rá, a program indulása előtt az A0-AF portokat nullázom, majd az AC-be, és A8-ba töltök némi értéket.
Valmi ötlet? :oops:
Title: Re: WHB
Post by: IstvanV on 2010.January.30. 18:59:33
Hát akkor itt is van :D
Egy kis gondom még van vele, zenelejátszás közben egy kicsikét ciripel, keresgéltem, de nem találtam az okát.
Az A7-es port-on keresztül emulálja a hangot a program, hol 0-át, hol 18h-t irva ki rá, a program indulása előtt az A0-AF portokat nullázom, majd az AC-be, és A8-ba töltök némi értéket.
Valmi ötlet? :oops:

A Spectrum változat nem "ciripelt" ?

Egy másik lehetséges megoldás a Spectrum hang emulációjára:
  A0H, A4H: 1 (ez lehet, hogy nem kell, illetve emulátoron biztosan nem)
  A8H, ACH: 3FH
  A7H: 7
  A1H: 0 vagy 80H váltakozva
De szerintem ez nem oldja meg a problémát. Az okozhatja a "ciripelést", hogy a program úgy valósít meg többszólamú hangot, hogy nagyon gyorsan váltogatja a hangkimeneten az egyes csatrornákat. Lehet, hogy a Spectrumhoz képest más lett az időzítés (ha ott jó a hang) ?
Title: Re: WHB
Post by: geco on 2010.January.30. 19:13:03
A Spectrum változat nem "ciripelt" ?

Egy másik lehetséges megoldás a Spectrum hang emulációjára:
  A0H, A4H: 1 (ez lehet, hogy nem kell, illetve emulátoron biztosan nem)
  A8H, ACH: 3FH
  A7H: 7
  A1H: 0 vagy 80H váltakozva
De szerintem ez nem oldja meg a problémát. Az okozhatja a "ciripelést", hogy a program úgy valósít meg többszólamú hangot, hogy nagyon gyorsan váltogatja a hangkimeneten az egyes csatrornákat. Lehet, hogy a Spectrumhoz képest más lett az időzítés (ha ott jó a hang) ?

Ott jó volt a hang, az időzítés egy kicsit más lett, ugyan az OUT (0FEH),A lecserélésénél nem, de az előtte szereplő LD A,(nnnn) miatt igen, mivel a keretszín kezelését máshol oldottam meg, ezért az előbb említett utasítást LD A,00H-ra, és egy NOP-ra cseréltem, ezzel elméletileg gyorsult egy kicsit a lejátszás.
Arra gyanakodtam, hogy az kavarhat be, amikor az A7H-ra 00H-át írok, nem pedig 03H-t, és hiába van A0H-A5H lenullázva, mégis hang kerül a kimenetre.
Title: Re: WHB
Post by: szipucsu on 2010.January.30. 20:27:47
Egész érdekes játéknak tûnik.  :smt041
Csak még az irányítás viszontagságain nem sikerült túlvergõdnöm, de majd nemsokára.
Title: Re: WHB
Post by: Lacika on 2010.January.30. 22:23:44
Jó kis program, köszönjük!
Két észrevétel.
- Legfelül kicsit sötét a raszter a instrukcióknál illetve a WELL DONE feliratnál, alig lehet elolvasni. Kérhetünk itt egy kicsit világosabb színt? Esetleg ki-bekapcsolható rasztercsíkok?
- Lehetne EP64-en futtathatóvá tenni?
Title: Re: WHB
Post by: geco on 2010.January.31. 00:20:46
Jó kis program, köszönjük!
Két észrevétel.
- Legfelül kicsit sötét a raszter a instrukcióknál illetve a WELL DONE feliratnál, alig lehet elolvasni. Kérhetünk itt egy kicsit világosabb színt? Esetleg ki-bekapcsolható rasztercsíkok?
- Lehetne EP64-en futtathatóvá tenni?
WELL DONE-nál lecseréltem egy másik attributumra, az instrukciónál maradt minden, de F2-vel át lehet váltani a Spectrum palettára, F1-gyel meg vissza.
Úgy készült, hogy ott is fusson, de egy hibát vétettem  :oops: , ezért volt a fagyi, orvosolva :)
W*H*B (http://enterpriseforever.com/dlattach.html;topic=187.0;attach=8046)
Title: Re: WHB
Post by: geco on 2010.January.31. 14:42:25
Akit érdekel, a 31. pályáig kódok, igat nem az elejétől :D
79009233
55197620
82313133
92131998
73983211
22022133
60301769
21074488
98125546
60660666
06217794
88421753
00707077
17522964
11010110
Title: Re: WHB
Post by: Lacika on 2010.January.31. 14:59:47
Itt (http://ep128.hu/Games/WHB.htm) az összes.  :ds_icon_cheesygrin:
Title: Re: WHB
Post by: geco on 2010.January.31. 15:30:53
Itt (http://ep128.hu/Games/WHB.htm) az összes.  :ds_icon_cheesygrin:
Szuper, tovább nem is töröm magam :D Köszi szépen, a lista segítségével észrevettem egy csúnya attribútumhibát, a játék végén a gratuláló képernyő szép zöld színben pompázott :D
Javítva, és a fájl cserélve, a letöltések között.
Title: Re: WHB
Post by: IstvanV on 2010.January.31. 21:38:10
Ott jó volt a hang, az ido"zítés egy kicsit más lett, ugyan az OUT (0FEH),A lecserélésénél nem, de az elo"tte szereplo" LD A,(nnnn) miatt igen, mivel a keretszín kezelését máshol oldottam meg, ezért az elo"bb említett utasítást LD A,00H-ra, és egy NOP-ra cseréltem, ezzel elméletileg gyorsult egy kicsit a lejátszás.

Az LD A, (nnnn) lecserélésének nem hiszem, hogy van jelento"sége, mert az csak inicializálás, és nem része a hangot generáló ciklusnak. Az OUT (0FEH), A cseréje viszont valójában változtatja az ido"zítést, mert az ULA porthoz való hozzáféréskor Spectrumon várakozás lehet a képernyo" pozíciótól függo"en. Azonban ez sem jelento"s, és nem okozhatja a hibát (illetve éppen a Spectrumon kellene kis mértékben pontatlannak lennie :)).
A valódi probléma az emulátor ido"zítésének a pontatlansága :oops: Ez megfigyelheto" a frekvenciákat így beállítva a konfigurációban: 3500000/875000/437500 - azonnal eltu"nik a ciripelés. De akkor sem hallani, ha csak a "video clock frequency" van 1000000-ra állítva az alapértelmezett 889846 helyett, és marad az eredeti EP-s Z80 és DAVE frekvencia.
Tehát vagy az emulátor ido"zítését kellene javítani/továbbfejleszteni, vagy a játékot módosítani, hogy például a DAVE hanggenerátorokat használja. A tömörített verzióban éppen ezt tettem, és így egyben pontosabb lehetett a frekvencia és a sebesség is, és sztereó hangot is meg lehetett valósítani.
Title: Re: WHB
Post by: geco on 2010.February.01. 09:19:14
Az emulátorra nem gondoltam volna soha. Elméletileg ebben a verzióban is mindkét oldalon kéne szólnia a hangnak, hangerő érték mind A8-on, mind AC-n van.
Hibák előfordulhatnak, illetve egy biztosan van: a melegindítás nem működik EP64-en.
Azt nem néztem meg, mivel kb 2200h-ig használom az FF szegmenst, arra gondoltam, hogy emiatt nem megy a melegreset.
Title: Re: WHB
Post by: IstvanV on 2010.February.01. 18:51:23
Elméletileg ebben a verzióban is mindkét oldalon kéne szólnia a hangnak, hangerő érték mind A8-on, mind AC-n van

A sztereó hang alatt azt értettem, hogy a két oldalon nem ugyanaz hallható :) Például - amint ez a módosított verzióban is van - a hang pozíciója változhat a magasság függvényében.

Quote
Azt nem néztem meg, mivel kb 2200h-ig használom az FF szegmenst, arra gondoltam, hogy emiatt nem megy a melegreset.

Valójában volt egy hiba az én verziómban, az eredetivel működött a melegindítás :oops: Ezt javítottam, de további problémát jelentett, hogy a program túl sok memóriát használ (és a felhasználói határt nem ennek megfelelően állítja be), tehát EXDOS-os rendszeren még mindig lefagyott :( Megoldásként töröltem azt a részt, amely az LPT-ről másolatot készít, és átírtam a kódot, hogy az F1 és F2 billentyűk a memóriában módosítsák az LPT-t, és ne a 83H portot állítsák. Így már elfért a betöltő és az LPT a 1710H határig, ami 64K+BASIC+EXDOS mellett elégnek tűnik, akinek pedig nagyon sok bővítője van, az remélhetőleg egyben a RAM-ot is bővíti :). De lehetne 1610H is, ha a módosításokat nem kiegészítésként, hanem a kódot átírva tároltam volna.
További kisebb változtatások:
  - a zenénél a várakozást is átírtam üres ciklusokról DAVE időzítő használatára, tehát EP64-en nem lesz (sokkal) lassabb a zene
  - a melegindításnál átírtam a B217H rutin használatát közvetlen ugrásra a 01:C00DH címre - ez EXOS 2.0 kompatibilis, és egyben rövidebb is; az eredeti megoldásnak csak akkor van igazán értelme, ha az ugrás a 3. lapról történne

[attachurl=#]
[attachurl=#]

Ez az eredeti verzió:

[attachurl=#]

Forráskód (egyszerűen beállítható tömörítetlen verzió fordítására is; a "start.bin" file az eredeti START az első 19 byte nélkül):

[attachurl=#]
Title: Re: WHB
Post by: geco on 2010.February.01. 22:43:03
A sztereó hang alatt azt értettem, hogy a két oldalon nem ugyanaz hallható :) Például - amint ez a módosított verzióban is van - a hang pozíciója változhat a magasság függvényében.
Jogos, ott a pont :D , én azt hittem, hogy csak az egyik oldali hangszóró szól az átiratban.
Valójában volt egy hiba az én verziómban, az eredetivel működött a melegindítás :oops: Ezt javítottam, de további problémát jelentett, hogy a program túl sok memóriát használ (és a felhasználói határt nem ennek megfelelően állítja be), tehát EXDOS-os rendszeren még mindig lefagyott :( Megoldásként töröltem azt a részt, amely az LPT-ről másolatot készít, és átírtam a kódot, hogy az F1 és F2 billentyűk a memóriában módosítsák az LPT-t, és ne a 83H portot állítsák. Így már elfért a betöltő és az LPT a 1710H határig, ami 64K+BASIC+EXDOS mellett elégnek tűnik, akinek pedig nagyon sok bővítője van, az remélhetőleg egyben a RAM-ot is bővíti :). De lehetne 1610H is, ha a módosításokat nem kiegészítésként, hanem a kódot átírva tároltam volna.
További kisebb változtatások:
  - a zenénél a várakozást is átírtam üres ciklusokról DAVE időzítő használatára, tehát EP64-en nem lesz (sokkal) lassabb a zene
  - a melegindításnál átírtam a B217H rutin használatát közvetlen ugrásra a 01:C00DH címre - ez EXOS 2.0 kompatibilis, és egyben rövidebb is; az eredeti megoldásnak csak akkor van igazán értelme, ha az ugrás a 3. lapról történne
Egy zseni vagy  :bow: :bow: :bow: , amikor a palettaváltást valósítottam meg, eszembe se jutott, hogy esetleg nem a két LPT között kéne váltani, nem is tudom miért  :smt017
A user boundary eredetileg jól volt beállítva, csakhogy jött az a fránya 2. LPT :D
Átvettem az újításaid/javításaid, és beépítettem a programba, így a user boundary lekerült 1510h-ra :)
Köszi szépen
Legközelebb tényleg beteszek minden forrást, mint ahogy egyszer már ígértem :) , gondoltam rá most is, de elvetettem, mert eléggé csúnyán nézett ki a betöltő forrása. :)

Ja, és a módosított verzióra lecseréltem a programot a downloads-ban, ismét :D
Title: Re: WHB
Post by: IstvanV on 2010.February.02. 15:53:20
Átvettem az újításaid/javításaid, és beépítettem a programba, így a user boundary lekerült 1510h-ra :)

Tömörítve (a whb.com file ugyanaz maradt):
  [attachurl=#]
"dtf -lz" formátumban:
  [attachurl=#]