Enterprise Forever  |  :HUN  |  Játékok  |  Topic: Enterball
Author Topic: Enterball  (Read 8737 times)« previous next »
PiotrSoft
Beginner
*
Offline Offline

Hungary

Posts: 46


OS:
Windows 7
Browser:
Firefox 3.6.8


View Profile WWW
New Posts
« Reply #90 on: 2010.August.22. 17:31:28 »

Majd faggatom, de nem ígérek semmit, de ellenben ezt meg is tartom! Smiley
Logged

Medgyesegyháza s Mezőkovácsháza után, Budapestre vetett a sors.Itt tanultam, dolgoztam mígnem megházasodtam s Budakalászra költöztem.Voltam programozó, jármű-villamossági szerelő,jelenleg látványtechnikus és tűzoltó, de ami a legfontosabb 3 gyermek apja!

Enterprise Forever
« Reply #90 on: 2010.August.22. 17:31:28 »

 Logged

szipucsu
EP addict
*
Offline Offline

Hungary

Posts: 2887


OS:
Windows XP
Browser:
Firefox 3.6.9


View Profile WWW
New Posts
« Reply #91 on: 2010.September.13. 13:14:10 »

Mi lett azóta a játék Spectrumra átírásával? Felkerült a WOS-ra? Vagy még nem?

Egy ötlet: azt meg lehetne csinálni, hogy amikor lassabb a labda, mélyebb frekvenciával szólnak a digi effektek (az emiatti megakadás így kevésbé lenne feltűnő), és ahogy gyorsul, úgy a digi effektek is egyre rövidebb ideig szólnának (és így ez a megakadás is kevésbé lenne észrevehető)? Írtátok, hogy ha mélyebb hangjuk van a dobeffekteknek, akkor szebben szólnak, és amikor még nagyon lassú a labda, addig ezeket a szebb effekteket be lehetne dobni.
Logged

Az EP jobb volt, mint a PC, nem volt hirtelen kikapcsolás után scandisk, és nem kellett újratelepíteni a Windows-t, kék képernyő pedig legfeljebb a DOS ablakban volt, az is más funkcióval.
The EP was better than the PC- no scandisk/reinstall/blue screen.

Zozosoft
EP addict
*
Online Online

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 3.6.9


View Profile WWW
New Posts
« Reply #92 on: 2010.September.13. 13:48:04 »

Mi lett azóta a játék Spectrumra átírásával? Felkerült a WOS-ra? Vagy még nem?
Türelem  ds_icon_wink
Logged


endi
EP addict
*
Offline Offline

Hungary

Posts: 1028


OS:
Windows XP
Browser:
Opera 9.80


View Profile WWW
New Posts
« Reply #93 on: 2010.September.13. 13:50:35 »

szipucsu, ha mélyebben szólnak akkor lassabban kell lejátszani a digi hangot, tehát hosszabb lesz Smiley
de amúgy az ötlet jó, érdekesebbé tenné a játékot kicsit ha változatosabbak a hangok
Logged


szipucsu
EP addict
*
Offline Offline

Hungary

Posts: 2887


OS:
Windows XP
Browser:
Firefox 3.6.9


View Profile WWW
New Posts
« Reply #94 on: 2010.September.13. 16:35:40 »

Türelem  ds_icon_wink
Csak nyugodtan! Csak megijedtem, hogy esetleg lemaradtam a dologról. Cheesy

szipucsu, ha mélyebben szólnak akkor lassabban kell lejátszani a digi hangot, tehát hosszabb lesz Smiley
Én is így gondoltam. De a legkisebb (1-es, 2-es körüli) sebességnél talán még beleférne.
Logged

Az EP jobb volt, mint a PC, nem volt hirtelen kikapcsolás után scandisk, és nem kellett újratelepíteni a Windows-t, kék képernyő pedig legfeljebb a DOS ablakban volt, az is más funkcióval.
The EP was better than the PC- no scandisk/reinstall/blue screen.

Zozosoft
EP addict
*
Online Online

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Microsoft Internet Explorer 8.0


View Profile WWW
New Posts
« Reply #95 on: 2010.October.30. 22:22:10 »

Próbálkozás a zene felvételére:

Elég nagy méretű a felvett zene, bár ennyire azért nem pazarló, valójában ez a felvétel többször is tartalmazza ismételve - azt még meg kell oldani, hogy az egész zene pontosan az elejétől a végéig egyszer legyen felvéve. A minőségen még lehetne javítani; a hangerő/burkológörbe konverzió nem tűnik tökéletesnek, és a zajcsatornával problémák vannak (ez a script mindig arra a csatornára teszi, ahol éppen a legkisebb lenne a hangerő, ami érdekesen szólna sztereó AY kimeneten Smiley).

Megpróbáltam a DAT fájlban megkeresni az ismétlődéseket, a 38h-tól lévő FC 34 4A 8D stb-vel kezdődő blokk ismétlődik 5x. Levágva az első blokkvégnél, már belefér egy szegmensbe Igaz úgy hallom, hogy még mindig 2x van benne a zene, de pont a végénél ér véget. Arra hogyan lehetne rá venni a lejátszót, hogy a végén előlről kezdje?

* ay2.dat (7.69 KB - downloaded 29 times.)
« Last Edit: 2010.October.30. 22:26:50 by Zozosoft » Logged


IstvanV
EP addict
*
Offline Offline

Posts: 2104

OS:
Linux 64 bit (Suse)
Browser:
Firefox 3.5.4


View Profile
New Posts
« Reply #96 on: 2010.October.30. 22:50:15 »

Igaz úgy hallom, hogy még mindig 2x van benne a zene

Ez előfordulhat, mert az adatformátumot bitenként kell feldolgozni, és nem biztos, hogy a zene egy ismétlődése egész byte méretű.

Quote
Arra hogyan lehetne rá venni a lejátszót, hogy a végén előlről kezdje?

Az adat végén kellene lennie egy "file vége" jelzésnek, ami a file egyszerű rövidebbre vágásával elveszik.
Megpróbálom újra felvenni pontosan egyszer az elejétől a végéig (esetleg a minőségen is lehetne javítani még ds_icon_redface).
Logged

Zozosoft
EP addict
*
Online Online

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Microsoft Internet Explorer 8.0


View Profile WWW
New Posts
« Reply #97 on: 2010.October.30. 22:57:32 »

Az adat végén kellene lennie egy "file vége" jelzésnek, ami a file egyszerű rövidebbre vágásával elveszik.
Áhá  ds_icon_redface
Quote
Megpróbálom újra felvenni pontosan egyszer az elejétől a végéig (esetleg a minőségen is lehetne javítani még ds_icon_redface).
Ha nem túl nagy kérés  ds_icon_redface

Azt ugye jól nézem, hogy egyszer kell az inicializálási részt hívni (a programba beépítve ebből az IRQ tábla létrehozás már nem kell), ezt lehet a SOUND megnyítása helyére berakni, aztán az IRQ rutint kell hivogatni 50Hz-ben?
Logged


IstvanV
EP addict
*
Offline Offline

Posts: 2104

OS:
Linux 64 bit (Suse)
Browser:
Firefox 3.5.4


View Profile
New Posts
« Reply #98 on: 2010.October.30. 23:23:11 »

Azt ugye jól nézem, hogy egyszer kell az inicializálási részt hívni (a programba beépítve ebből az IRQ tábla létrehozás már nem kell), ezt lehet a SOUND megnyítása helyére berakni, aztán az IRQ rutint kell hivogatni 50Hz-ben?

Igen.
Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2104

OS:
Linux 64 bit (Suse)
Browser:
Firefox 3.5.4


View Profile
New Posts
« Reply #99 on: 2010.October.31. 13:57:16 »

Az új script és felvétel (az eredeti itt található):
  * daverec.lua (10.4 KB - downloaded 41 times.)
  * ayplay.s (5.66 KB - downloaded 30 times.)
  * ay.dat (3.85 KB - downloaded 34 times.)
  * ayplay.out (4.41 KB - downloaded 32 times.)
Így már talán elfér Smiley Hangszerkesztő programmal sikerült megállapítani, hogy a zene 41.57 másodpercenként ismétlődik, ami 2080 50.036325 Hz-es képkockának felel meg. A továbbfejlesztett scriptben be lehet állítani a felvétel maximális hosszát, és nem indítja el a felvételt addig, amíg nincs hang; így már egyszerűen megoldható volt a zenét pontosan egyszer felvenni az elejétől a végéig. A zajcsatorna kezelése is megváltozott: most nem használja a négyszögjel&zaj módot; lehet, hogy így jobban szól, de az is lehet, hogy nem ds_icon_redface Az eredeti megoldás könnyen visszaállítható a noToneAndNoise változó false értékre állításával a script elején.
Logged

Zozosoft
EP addict
*
Online Online

Hungary

Posts: 5611


OS:
Java Platform Micro Edition
Browser:
Opera 9.80 (Opera Mini 4.2.20663)


View Profile WWW
New Posts
« Reply #100 on: 2010.October.31. 14:24:37 »

Szuper! smt038
Logged


Zozosoft
EP addict
*
Online Online

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 3.6.12


View Profile WWW
New Posts
« Reply #101 on: 2010.November.02. 12:20:13 »

Digitális hangot hogyan lenne célszerű az AY-val lejátszani?
Tiszta hang, maximális frekvencia, aztán birizgálni a hangerőt?
A 000h frekvencia a max? Vagy az osztás miatt 0-val kiakad?
Logged


IstvanV
EP addict
*
Offline Offline

Posts: 2104

OS:
Linux 64 bit (Suse)
Browser:
Firefox 3.5.4


View Profile
New Posts
« Reply #102 on: 2010.November.02. 12:49:25 »

Digitális hangot hogyan lenne célszerű az AY-val lejátszani?
Tiszta hang, maximális frekvencia, aztán birizgálni a hangerőt?

A legegyszerűbb megoldás az, ha a mixer (7-es) regiszterben nincs engedélyezve a négyszögjel és a zaj sem. Amint az AY leírásban már említettem, az "alapértelmezett" kimeneti szint logikai 1, és ezt tudja a négyszögjel és/vagy a zaj "lehúzni" 0-ra az engedélyezése esetén (ez az oka az AND műveletnek is, ha mindkettő be van kapcsolva ugyanazon a csatornán).

Quote
A 000h frekvencia a max? Vagy az osztás miatt 0-val kiakad?

A 0 frekvencia ugyanazt a hangot eredményezi, mint az 1. Ez nem csak a hanggenerátorokra, hanem a zaj és burkológörbe frekvenciára is igaz.

Némi problémát jelenthet a lejátszásnál, hogy az AY hangerő regiszterei csak 4 bitesek, és nem lineárisan állítják a szintet. A legegyszerűbb megoldás erre az, ha a betöltő a Spectrum 128 felismerése után automatikusan konvertálja a hangmintákat AY hangerő értékekre (esetleg akár ditherelve), így a lejátszáskor ezzel már nem kell foglalkozni. Jobb minőséget lehetne elérni két AY csatorna használatával (táblázatból olvasva az egyes EP hangmintáknak megfelelő két AY hangerőt), de ez az eredeti mintavételezési frekvenciához valószínűleg túl lassú lenne; a frekvenciát felezve talán működne.
Logged

Zozosoft
EP addict
*
Online Online

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 3.6.12


View Profile WWW
New Posts
« Reply #103 on: 2010.November.02. 13:04:35 »

Jobb minőséget lehetne elérni két AY csatorna használatával (táblázatból olvasva az egyes EP hangmintáknak megfelelő két AY hangerőt), de ez az eredeti mintavételezési frekvenciához valószínűleg túl lassú lenne; a frekvenciát felezve talán működne.
Két csatorna használatára én is gondoltam, oly módon elképzelve, hogy fixen át lenne konvertálva a kódban az eredeti 8 bites hangminták 2x 4 bitesre, így akkor be is férne a helyére. Lejátszásnál meg kimaradna 8->6 bitre konverzió, és annak helyére mehetne a félbájt szétszedés.
Logged


IstvanV
EP addict
*
Offline Offline

Posts: 2104

OS:
Linux 64 bit (Suse)
Browser:
Firefox 3.5.4


View Profile
New Posts
« Reply #104 on: 2010.November.30. 14:14:58 »

Két csatorna használatára én is gondoltam, oly módon elképzelve, hogy fixen át lenne konvertálva a kódban az eredeti 8 bites hangminták 2x 4 bitesre, így akkor be is férne a helyére. Lejátszásnál meg kimaradna 8->6 bitre konverzió, és annak helyére mehetne a félbájt szétszedés.

A sebességgel még így is problémák lehetnek Sad Ha jól látom, ez az eredeti lejátszó ciklus:
Code
.   B2E5  06 01        LD    B, 01
.   B2E7  10 FE        DJNZ  B2E7
.   B2E9  3E 20        LD    A, 20
.   B2EB  86           ADD   A, (HL)
.   B2EC  CB 3F        SRL   A
.   B2EE  CB 3F        SRL   A
.   B2F0  D3 AC        OUT   (AC), A
.   B2F2  23           INC   HL
.   B2F3  1B           DEC   DE
.   B2F4  7A           LD    A, D
.   B2F5  B3           OR    E
.   B2F6  20 ED        JR    NZ, B2E5
Ennek a futásideje midössze 88 ciklus (az LD B, 1 utasítás azonban változhat, nem minden hangminta lejátszási frekvenciája azonos), aminek az átiratban a Spectrum alacsonyabb órajele miatt 78-nak kellene lennie, a frekvencia pedig 45455 Hz ds_icon_eek

Az első próbálkozás elég lassúra sikerült ds_icon_redface Itt a HL a lejátszandó hang kezdőcíme, a BC pedig a hangminták száma. Minden byte felső 4 bitje tartalmazza az A csatorna hangerejét, az alsó 4 bit pedig a B csatornáét. Ez a verzió 155 ciklus, ami kb. 2-szer lassabb.
Code
        exx
       ld    c, 0fdh
       ld    de, 0ffbfh
       ld    l, 8
       exx
.l1:    ld    a, (hl)                   ;   7
       inc   hl                        ;  13
       exx                             ;  17
       ld    h, a                      ;  21
       rrca                            ;  25
       rrca                            ;  29
       rrca                            ;  33
       rrca                            ;  37
       and   0fh                       ;  44
       ld    b, d                      ;  48
       out   (c), l                    ;  60
       ld    b, e                      ;  64
       out   (c), a                    ;  76
       ld    a, h                      ;  80
       and   0fh                       ;  87
       ld    b, d                      ;  91
       inc   l                         ;  95
       out   (c), l                    ; 107
       ld    b, e                      ; 111
       out   (c), a                    ; 123
       dec   l                         ; 127
       exx                             ; 131
       dec   bc                        ; 137
       ld    a, c                      ; 141
       or    b                         ; 145
       jp    nz, .l1                   ; 155

Újabb verzió: itt a hangminták nincsenek konvertálva, hanem a konverzió lejátszás közben történik egy 512 byte-os, 512-vel osztható címen kezdődő táblázat segítségével (minden lehetséges hangminta értékhez tartalmazza az A és B csatorna hangerejét). Néhány egyéb kisebb optimalizálást is tartalmaz, így 125 ciklusra gyorsult, ami még mindig több, mint másfélszer lassabb a megfelelő sebességnél. Sad Itt egyébként az AY programozása sem egészen szabványos módon történik: a regiszterszámot FFFDh helyett C0FDh I/O címre írja, ami bővített Spectrum esetén talán problémát okozhat.
Code
        exx
       ld    bc, 0bffdh
       ld    de, 0809h
       exx
       inc   bc
       ld    de, .l2 + 1
       jp    .l3
.l1:    dec   de                        ;   6
       exx                             ;  10
.l2:    ld    hl, sampleConvTable / 2   ;  20
       add   hl, hl                    ;  31
       inc   b                         ;  35
       out   (c), d                    ;  47
       outi                            ;  63
       inc   b                         ;  67
       out   (c), e                    ;  79
       outi                            ;  95
       exx                             ;  99
.l3:    ldi                             ; 115
       jp    pe, .l1                   ; 125

Ezen még egy keveset sikerült javítani: a hangmintákat konvertálni kell 7 bitesre (a 0. bitnek mindig 0-nak kell lennie), de ez nem feltétlenül probléma, mert a két 4 bites hangerő kombinációja egyébként sem eredményezhet 7 bitesnél több különböző hangerőt. A táblázat mérete 256 byte-ra csökkent. Egy DEC DE utasítást is sikerült DEC E-re cserélni. Az AY programozása továbbra sem szabványos, és még mindig 112 ciklus a futásidő 78 helyett.
Code
        exx
       ld    bc, 0bffdh
       ld    de, 0809h
       exx
       inc   bc
       ld    de, .l2 + 1
       jp    .l3
       align 2
       nop
.l1:    dec   e                         ;   4
       exx                             ;   8
.l2:    ld    hl, sampleConvTable       ;  18
       inc   b                         ;  22
       out   (c), d                    ;  34
       outi                            ;  50
       inc   b                         ;  54
       out   (c), e                    ;  66
       outi                            ;  82
       exx                             ;  86
.l3:    ldi                             ; 102
       jp    pe, .l1                   ; 112

Talán lehetne még javítani rajta, de az I/O port címzés szabványossá tétele viszont némi lassulást eredményezne. Mindenesetre úgy látszik, az eredeti sebességgel problémás lehet a két csatornás lejátszást megoldani. Tehát valószínűleg marad az egyszerű egy csatornás, 4 bites hang, vagy a hangmintákat konvertálni kell alacsonyabb (kb. 30 kHz-es) mintavételezési frekvenciára, attól függően, hogy melyik ront kevésbé a hangminőségen. Az utóbbinak előnye lehet még, hogy helyet szabadítana fel, ahova esetleg elférhetne a konvertált zene és az új kód és táblázatok.
« Last Edit: 2010.November.30. 14:47:34 by IstvanV » Logged

Enterprise Forever
« Reply #104 on: 2010.November.30. 14:14:58 »

 Logged
Tags:
Enterprise Forever  |  :HUN  |  Játékok  |  Topic: Enterball

Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks

Template made by Mr.Prise
Page created in 0.212 seconds with 24 queries.
Google visited last this page Yesterday at 19:33
Follow ep4ever_news on Twitter