Mixat musik och fx.

Diskussioner om programmering

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher, hollowman

Mixat musik och fx.

Inläggav Redreamer » 17 april 2017, 10:26

Kan man vara så fräck att man bara skriver över en valfri kanal med ljudeffekt efter att man anropat en "vanlig" $1000 spelare? Eller hinner man uppfatta ljud från musiken så att det låter skräp?
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Mixat musik och fx.

Inläggav bjonte » 17 april 2017, 13:18

Det kan låta lite fel och på 6581 kan du få problem med att ADSR inte beter sig ok eftersom du behöver två frames för att resetta om det ska vara glitchfritt. Det enklaste är nog att göra en låt per ljudeffekt, köra musik i menyn och bara effekter ingame. Annars behöver du en spelare som bara rör två kanaler och tillåter effektspelande på dem tredje.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1660
Blev medlem: 17 april 2006, 23:12

Re: Mixat musik och fx.

Inläggav bjonte » 17 april 2017, 13:19

Det kanske går att hacka uppspelaren så att den använder två kanaler.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1660
Blev medlem: 17 april 2006, 23:12

Re: Mixat musik och fx.

Inläggav Redreamer » 17 april 2017, 21:02

Det senare alternativet lät mest spännande. Får se om jag får tid till detta senare. Har dock aldrig dekrypterat någon kod, måste väll finnas verktyg för detta?
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Mixat musik och fx.

Inläggav bjonte » 17 april 2017, 22:06

Det är bara att ladda in det i Vice, öppna monitorn och börja kika i minnet med 'd <addr>'. Det finns väl mer sofistikerade sätt att disassemblera men Vice är enkelt. Då kan du också sätta databreakpoints för när rutinen skriver i vissa register så det är kraftfullt.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1660
Blev medlem: 17 april 2006, 23:12

Re: Mixat musik och fx.

Inläggav Redreamer » 18 april 2017, 05:39

Ok. Det tänkte jag inte på. Ska kasta ett öga på det. :)
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Mixat musik och fx.

Inläggav carlsson » 18 april 2017, 14:19

Det läckraste vore förstås att lägga till tre flaggor, en för varje kanal som uppspelningsrutinen tittar på. Om flaggan är satt, rör den inte SID-registren men fortsätter med "beräkningar" som vanligt. Då skulle man kunna ha osynkroniserade ljudeffekter som helt enkelt slår på flaggan när effekten börjar och slår av den när den är klar.
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2313
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: Mixat musik och fx.

Inläggav Redreamer » 18 april 2017, 18:43

Haha. Ja inget duger ju om det inte är på det snyggaste viset ;)
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Mixat musik och fx.

Inläggav carlsson » 19 april 2017, 15:16

De flesta spelarrutiner torde inte vara svårare än att ersätta en #3 med #2 för att bara spela upp två kanaler. Har man sedan komponerat musiken på det sättet är ju hela tredje kanalen fri för ljudeffekter.

GoatTracker verkar redan ha stöd för detta, läs Lasses rant:
http://cadaver.homeftp.net/rants/music.htm
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2313
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: Mixat musik och fx.

Inläggav bjonte » 19 april 2017, 21:09

Ett trick som jag har använt som skulle passa här är att banka ut I/O arean när musikrutinen kör. Då skriver den till RAM istället och så kan man göra vad man vill med det innan man kopierar det vidare till I/O-registen.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1660
Blev medlem: 17 april 2006, 23:12

Re: Mixat musik och fx.

Inläggav Redreamer » 20 april 2017, 07:35

Jag hade nog tänkt lägga en sid där under. Men annars låter det som ett smart trick. Får dessutom ta och fundera på hur man på ett bra sätt komprimerar ihop sidfilerna. Till en början med ska jag sätta ihop mina sid så de går under samma spelare.
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Mixat musik och fx.

Inläggav Dickflame_Offence » 24 maj 2017, 13:40

Mange playere har en tabell med sid register voice offsets: $00,$07,$0E. Hvis du hvis du vil "ta over" en stemme for å spille en kort lydeffekt, kan du overskrive en av verdiene i tabellen med $19. Da vil playeren skrive til sid registre som ikke har noen effekt, og du kan ta over kontrollen med din lydeffektrutine. Du må bruke en type hard-restart for å få din egen lydeffekt til å spille riktig. Hvis det er filter på sangen, er det enklest å holde seg til en stemme hvor filteret ikke er aktivt.

Typisk player-kode:

Kod: Markera allt
  ldx voice
  ldy sid_voice_offsets, x
  ...
  sta sid_AD, y
  ...
sid_voice_offsets:
  .byte $00,$07,$0E
Användarvisningsbild
Dickflame_Offence
Nybörjare
Nybörjare
 
Inlägg: 9
Blev medlem: 15 maj 2012, 10:36
Ort: Oslo

Re: Mixat musik och fx.

Inläggav bjonte » 24 maj 2017, 21:14

Dickflame_Offence skrev:Hvis du hvis du vil "ta over" en stemme for å spille en kort lydeffekt, kan du overskrive en av verdiene i tabellen med $19.


Snyggt trick!
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1660
Blev medlem: 17 april 2006, 23:12

Re: Mixat musik och fx.

Inläggav Redreamer » 19 augusti 2019, 09:02

Har precis börjat trixa med detta. Flyttade uppspelningsfunktionen för sid till slutet av bildritandet genom att ändra raster irq. Sedan bankar jag bort IO och sen flyttar jag "för hand" över till IO, musik eller ev. FX. Får se om det lyckas, hann inte hela vägen fram för att testa i går.
De andra förslagen med att hacka spelaren lät för komplicerat för mig just nu.

Skickat från min ANE-LX1 via Tapatalk
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Mixat musik och fx.

Inläggav Redreamer » 21 augusti 2019, 19:06

Har inte riktigt lyckats lösa detta än men jag kämpar på.
Jag hade ett antagande att sid spelaren bara bangade in SID data på $d400-$d41c, så jag gjorde ett första test med att helt enkelt kopiera data från ram när I/O är bort bankat och sedan kopiera in det i I/O när det är tillbaka bankat igen. Ungefär såhär.
Kod: Markera allt
        lda $0001
        sta var_0001_store
        and #$f8                ;bit 0..2 show ram at $d000
        sta $0001
       
        jsr $1003
        jsr sid_store_data ;store $d400- $d41c RAM to area outside of I/O area (buffer).
       
        lda var_0001_store
        sta $0001
       
        jsr sid_put_data ;now put stored sid data (buffer) to I/O


Som sagt, fungerar inte men jag ska klura vidare =)
Håller på och försöker förstå mig på spelaren, har laddat ner en disassemblator som kanske kan hjälpa mig att förstå.
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1245
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Nästa

Återgå till Programmering/prog.-verktyg

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016