1,076

(62 odpowiedzi, napisanych Programowanie - 8 bit)

Mq, nacisnij klawisz "1"

---

jeszcze troche zmienie... ale:

synteze mowy mozna zrobic w 256 bajtach ale to bedzie straszna bieda - mozna tego posluchac w demku ktore zrobilem na atari 2600. https://www.youtube.com/watch?v=ASXzDhAA814

wspominam to bo na tej zasadzie mozna robic szeleszczace tony ale nie dzwieczne co zreszta slychac w tym demie ;-)

w tej syntezie tak sa zrealizowane "szeleszczace" dzwieki. a dzwieczne to takie nakladanie "obwiedni" na bardzo uproszczonego sampla ;-)

jak dodam jeszcze 1kb danych to bedzie mozna posluchac wyrazow z nalozona intonacja i akcentami.... chcialbys posluchac jak atari mowi do Ciebie po angielsku z polskim akcentem ? :D no to posluchaj jak mowi po polsku w przykladzie.

opisze to dokladniej jak skoncze - format rozkazu jest podobny do tego z odtwarzania sampla tylko zamiast sampla bedzie wskaznik do "wyrazow"/ tonow. to caly czas tylko test...

1,077

(62 odpowiedzi, napisanych Programowanie - 8 bit)

synteza mowy

1,078

(12 odpowiedzi, napisanych Scena - 8bit)

to co podlinkowales gra w stereo.

wystaw ten utwor w neo sam go sobie zaladuje :-)

1,079

(12 odpowiedzi, napisanych Scena - 8bit)

heh a czy to nie idzie w stereo?

porownujesz 8 bit covoxa z NeoTrackera z playerem na gole atari na POKEYa i mowisz ze gra tak samo ?

:D

1,080

(12 odpowiedzi, napisanych Scena - 8bit)

Moze na COVOXIE lub nieAtari bo na POKEY nie robi roboty ;-) co zreszta nie zmienia faktu ze sam program jest super.

1,081

(12 odpowiedzi, napisanych Scena - 8bit)

mp3?

boisz sie sprawdzic ;-)

do uruchomienia poprosze :-)

1,082

(62 odpowiedzi, napisanych Programowanie - 8 bit)

SFX_ENGINE moze takze odtwarzac sample w 3 oktawach. jakby ktos chcial pisac takze muze ;-)


w przykladzie na jednym kanale idzie oktawa na gitarze a na drugin jiniel z Preliminaty monty

1,083

(12 odpowiedzi, napisanych Scena - 8bit)

Pin napisał/a:

gra tak samo jak NeoTracker

zamiast polegac na wrazeniach mozna to sprawdzic :-)

umiesc jakas muze z NeoTrackera najlepiej w formie samouruchamialnej :-)

1,084

(12 odpowiedzi, napisanych Scena - 8bit)

Yerzmyey na POKEYu

tak wylada wlasciwa jakosc odtwarzania sampli na POKEY


https://megawrzuta.pl/download/a1b3f0b9 … 5125f.html

i mp3:

https://megawrzuta.pl/download/be73bc80 … 669d5.html

1,085

(62 odpowiedzi, napisanych Programowanie - 8 bit)

kolejne modyfikacje.

do uzytku samplowanych SFX mamy 3 kanaly F1,F2,F4 (Atari nie ma sprzetowego licznika IRQ dla F3)
kazdy kanal moze grac sample z inna czestotliwoscia
oczywiscie caly czas mamy dostep do pozostalych kanalow dla SFX

przyklad odtwarzania SFX z International Karate na jednm kanale a na drugim jedoczesnie Jingiel z Preliminary Monty

1,086

(62 odpowiedzi, napisanych Programowanie - 8 bit)

mono napisał/a:

Fajny silniczek. Czy aby na pewno okrzyki w IK są na samplach? Bo np to http://asma.atari.org/asmadb/search.php?play=1839 chyba nie...

po malych modyfikacjach mozna uzywac instrumentow z RMT jako SFXy, tu przeniesiony fragment utworu Rastra.

sfxEngine swietnie sobie radzi z odtwarzaniem muzyki albo SFX takze podczas wczytwania danych :-) xB


===

kolejne zmiany:
podzial funkcji (dla kazdego kanalu osobno)
1. funkcje ktore dzialaja 1x, 2x, 3x, 4x... na ramke zawsze przed zapisem do rejestrow dzwieku (moga sluzyc np. do realizacji obwiedni)
2. funkcje ktore dzialaja na czytanych danych dla rejestrow AUDF/AUDC podczas pobierania danych z SFXa
3. funkcje sterujace, np. POKE adres,dana, wlaczanie/wylaczanie funkcji nr. nn typu 1 lub 2, JMP, JSR, RTS, LOOP, OFF

dzieki funkcji typu 1 mozemy przeniesc dowolny instrument z edytorow muzycznych
dzieki funkcji typu 2 mozemy przeniesc dowolny utwor z tych edytorow

funkcje 3 zwlaszacza POKE pozwala synchronizowac nasze SFX z akcja w grze... wywolujemy naszego SFX ktory w pewnm moemencie sam zglosi wykonanie zadania ;-) np. podobnie jest synchronizowany kot w AlleyCat z muzyka w ktorej gra instrument "miałłłłłłłł"

1,087

(62 odpowiedzi, napisanych Programowanie - 8 bit)

proceduralne SFX? dlaczego nie... :-)

przykladowe uderzenie pioruna z Cavelord:

.HE A0 81     
.HE C0 01 1C 00
.HE 00 02 0A 00

w zalaczniku uderzenie pioruna i wybuch wulkanu z Cavelord

1,088

(62 odpowiedzi, napisanych Programowanie - 8 bit)

mam klopoty z nazewnictwem, jak "fachowo" nazwac:

1. efekt nakladany na wartosc audf co ramke
2. efekt nakladany na wartosc audc co ramke
3. efekt nakladany na audf lub audc co jednostke "speed" utworu np. raz na 4 ramki przy pobieraniu kolejnej wartosci z utworu

obecnie "2" nazywam Envelope a "3" Plugin, "1" - ?

1,089

(62 odpowiedzi, napisanych Programowanie - 8 bit)

i kolejna zmiana:

;1. TIME,AUDF,AUDC ; play
;2. REPF+FUNC,COUNT     ; repeat audf C0 +FUNC NO
;3. REPC+FUNC,COUNT     ; repeat audc 80 +FUNC NO
;4. 00,LOOP        ; loop
;5. 00,FF          ; end/rts
;6. JSR nnnnn      ; jsr nnnnn  A0+sfx no !=0
;7. JMP nnnnn      ; jmp nnnnn  E0+sfx no !=0
;8. SET,ENV        ; set env E0,nn


mozemy juz robic SFX proceduralne, mozemy robic SFX ktore pobieraja wartosci z dowolnych rejestrow, mozemy przekazywac parametry z SFX do pluginu


ale może jesteśmy przywiązani do zapisu nutowego, albo edytor którego używamy zapisuje indeksy do wartości nut? za pomocą funkcji możemy otrzymywać wartość zależną od parametru. przkladowo mozemy za pomoca pluginu czytac dane muzyki z jakiegos edytora i konwertowac na podstawie tablicy czestotliwosci, mozemy tez w ten sposob zrobic obwiednie i przekazywac parametry ADSR (czasowe) z danych ale...

dostajemy nowa komende SETENV

format rozkazu SET zmieni się, obecnie obwiednie są predefiniowane bez ograniczen wielkosci ale być może obwiednie powinny być pobierane z danych SFX, albo definiowane jak funkcje? jeszcze nie wiem.

w zalaczniku przkladowa muzyka z the Goonies - klawisz "1" - on, "2" off

1,090

(62 odpowiedzi, napisanych Programowanie - 8 bit)

za duzo danych? dwa dodatkowe rozkazy pozwalajace znacznie skrocic ilosc danych:

1. TIME,AUDF,AUDC ; play
2. REPF,COUNT     ; repeat audf C0
3. REPC,COUNT     ; repeat audc 80
4. 00,LOOP        ; loop
5. 00,FF          ; end/rts
6. JSR nnnnn      ; jsr nnnnn  A+sfx no !=0
7. JMP nnnnn      ; jmp nnnnn  E+sfx no !=0

dzieki JSR i JMP mozna wywolywac instrumenty z wlasnego SFX. przyklad muzyki z Preliminary Monty

ins5
.HE 09 39 AA
.HE C0 07
.HE 22 1D 44 2B 22 39 22
.HE 00 FF
ins6
.HE 09 87 AA
.HE C0 07
.HE 55 44 AB 72 55 87 55
.HE 00 FF
ins7
.HE 07 5B AC
.HE C0 18
.HE 36 2D 44 36 22 5B 36 2D 44 36 22 36 22 1B 2D 1B 17 36 22 1B 2D 1B 17 1B
.HE 00 FF
ins8
.HE 07 87 AC
.HE C0 18
.HE 5B 44 6B 5B 36 87 5B 44 6B 5B 36 5B 36 2D 44 2D 22 5B 36 2D 44 2D 22 44
.HE 00 FF
ins9
.HE 05 6B AE
.HE C0 1C
.HE 48 36 2B 55 36 2B 24 6B 48 36 2B 55 36 2B 24 48 2B 24 1B 36 24 1B 15 2B 24 1B 15 12
.HE 00 FF
insA
.HE 05 90 AE
.HE C0 1C
.HE 6B 55 48 6B 55 48 36 90 6B 55 48 6B 55 48 36 55 48 36 2B 48 36 2B 24 36 2B 24 1B 15
.HE 00 FF

sfx1
.HE A5 A7 A9 A5
.HE 09 1D AA
.HE C0 0B
.HE 2B 1D 15 39 22 1D 2B 1D 1A 18 15
.HE A7 A9
.HE 00 FF

sfx2
.HE A6 A8 AA A6
.HE 09 44 AA
.HE C0 0B
.HE 72 44 39 87 55 44 72 44 39 40 44
.HE A8 AA
.HE 00 FF

nalezy pamietac ze jesli zalezy nam na super szybkiej procedurze to korzystamy tylko z rozkazu 1 ;-)

1,091

(62 odpowiedzi, napisanych Programowanie - 8 bit)

duza zmiana (nie uaktualniona na stronie)

nowy format danych (bardziej czytelny) a przy okacji daje mozliwosc wprowadzenia podprocedur modyfikujacych wartosci - dodatkowo moze skrocic SFXy... moze posluzyc np. do zmiany losu meskiego na zenski w tym przykladzie z pseudo synteza mowy ;-)

testowy import muzy z Soundmachine ;-) ale mozna z dowolnego programu :p

1,092

(127 odpowiedzi, napisanych Fabryka - 8bit)

zawsze

pajero napisał/a:

Co do AtariDos, przypomnę, że Memlo np. $700 dla FOXa dos.  Zapis jest, co prawda tylko jako zastępowanie istniejących danych.

zawsze mozna uzyc: https://xxl.atari.pl/xbootdos/


Pin napisał/a:

wątpliwe, a można przynajmniej zyskać pełną kompatybilność z hardare'm.

licze na kunsztowna "wybieraczke do bankow"

;-)

1,093

(127 odpowiedzi, napisanych Fabryka - 8bit)

mam tylko nadzieje ze walka z "DOS" nie wplynie negatywnie na gre sama w sobie.

1,094

(10,041 odpowiedzi, napisanych Bałagan)

użyj słowa pedał w filmiku np. z serwisowaniem rowerow. zobaczysz co sie stanie :D

kazdy o lewicowych pogladach ... zamiast lisci ;-)

1,095

(62 odpowiedzi, napisanych Programowanie - 8 bit)

no i prosze, silniczek gotowy:

http://xxl.atari.pl/sfx-engine/

przyklad uzycia w zalaczniku

1,096

(62 odpowiedzi, napisanych Programowanie - 8 bit)

i mala korekta formau rozkazu REP:

%10|11 RTIME, REP, AUDF, AUDC

przykład z Gossip: dzwonek telefonu i pseudo synteza "Hello"

klawiszem "1" uruchamiamy, klawiszem "2" natychmiast przerywamy - korzystajac z funkcji xSFX_START i xSFX_STOP :-)

1,097

(127 odpowiedzi, napisanych Fabryka - 8bit)

Lizard napisał/a:

Nie ma takiej potrzeby. Kod, wykorzystywany w każdej części gry, ładuje w pierwszym bloku, a resztę doczytuje w następnych. Po każdym bloku skacze przez init w $02e2, np. do "rezydentnej" części z pierwszego bloku.

rozumiem. gramy sobie, jestesmy w 10 levelu gra juz doczytala tych 10 blokow a my stracilismy ostatnie zycie. chcemy zagrac jeszcze raz... jak gra ma zaladowac ten pierwszy blok danych jeszcze raz?

1,098

(127 odpowiedzi, napisanych Fabryka - 8bit)

mono napisał/a:

Edit: Skoro potrzebujesz CIO i urządzenia D: to pewnie zamiast loadera potrzebny będzie jakiś GameDOS. Czemu właściwie używasz CIO a nie wpakujesz wszystkiego do jednego .XEX-a, choćby i megabajtowego, i nie porozmieszczasz samodzielnie wszystkiego po pamięci jak Ci pasuje? Gra ładowałaby się nawet z najprostszego loadera a nikt nie zabrania wykonywania bloków init.

skoro gra doczytuje dane to jak wykonac "powrot" do juz wczesniej zaladowanego/wykonanego inita?

1,099

(62 odpowiedzi, napisanych Programowanie - 8 bit)

dodalem dwie funkcje do biblioteki:

xSFX_START  in:  A=sfx, X=channel, C=1 (force)
                 A=sfx, C=0 (find free channel)
            out: C=1 no free channel
                 C=0 ok
(inicjuje odtwarzanie konkretnego SFX ma wybranym kanale lub na pierwszym wolnym kanale)

xSFX_STOP   in:  X=channel
(natychmiast przerwij odtwarzanie SFX - gdybysmy mieli zapetlone SFX lub chcemy zrobic miejsce na kolejne)

zauwazylem ze gry implementuja funkcjonalnosc uprzywilejowanych SFX ktore musza byc odtworzone nawet kosztem przerwania innego

zmienilem tez format kodu petli - teraz mozna skakac wewnatrz SFX a nie tylko do jego poczatku - dosc wazne :-)


o czym zapomnialem?


w przykladzie wlasnie taki zapetlony SFX z Pacmana


padlo pytanie ile czasu zabiera ten silnik: zabiera mniej niz 1 linie skaningowa na kanal, przy czym jesli nie korzystamy z wszystkich kanalow warto ustawic taki na nieobslugiwany co jeszcze przyspiesza procedure

1,100

(62 odpowiedzi, napisanych Programowanie - 8 bit)

cos dla prawdziwych konsumentow

pole siłowe:
.HE 90 0B 21
.HE 22 22 23 23 24 24 25 27 27 26 25 24 23 22 21 21
.HE 00 01

i dwa przyklady, pierwszy do wszystkie SFX z gry Stealth a drugi to przyklad bardzo specyficznego podejscia do SFX z gry Joust :-)