2021-08-20.log

- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7)00:37
+ xet7 (~xet7@user/xet7)01:04
apolkosnik[m]Zool02:06
- RobDangerous (QUIT: Ping timeout: 250 seconds) (~Thunderbi@p200300ec8f3e1c00717bc94d090332a8.dip0.t-ipconnect.de)02:39
- WoC (QUIT: Ping timeout: 240 seconds) (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com)07:07
+ WoC (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com)07:11
+ RobDangerous (~Thunderbi@p200300ec8f3e1c0010eeaa04747799d8.dip0.t-ipconnect.de)08:40
RobDangerousI played through the new Zool game last night. apolkosnik has an eye on me.09:02
_Bnumntmn: Toni found some magical pile of infos, but because he gave up on the new AHI drive quite some time ago he needs to go through it and check what parts of it were actually relevant to what he was doing, more info during the weekend hopefully. :D09:21
_BnuBut apparently the current UAE AHI driver (that works) is mostly an edited Paula driver from the AHI 4.18 dev archive.09:21
mntmn_Bnu: cool!10:35
- S0rin (QUIT: Ping timeout: 248 seconds) (~S0rin@user/s0rin)12:10
+ S0rin (~S0rin@user/s0rin)12:12
- S0rin (QUIT: Read error: Connection reset by peer) (~S0rin@user/s0rin)13:46
+ S0rin (~S0rin@user/s0rin)14:01
_Bnu819 bytes of snake data.14:24
mntmni would like to know more14:53
- S0rin (QUIT: Ping timeout: 250 seconds) (~S0rin@user/s0rin)15:17
+ S0rin (~S0rin@user/s0rin)15:30
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7)16:02
+ xet7 (~xet7@user/xet7)16:03
- S0rin (QUIT: Ping timeout: 252 seconds) (~S0rin@user/s0rin)16:20
+ S0rin (~S0rin@user/s0rin)16:22
- S0rin (QUIT: Ping timeout: 252 seconds) (~S0rin@user/s0rin)17:11
+ S0rin (~S0rin@user/s0rin)17:17
mntmn_Bnu: how often do you think an audio interrupt should fire...18:36
mntmnthe first thing i should maybe figure out is what causes the ahi loopy thing to use up 100% cpu and freeze everything except the audio itself18:37
mntmnis it because of the 127 priority?18:37
mntmn> It is not wise to needlessly raise a task's priority18:38
mntmn> Normally, system tasks execute somewhere in the range of +20 to -20, and most application tasks execute at priority 018:38
mntmni think 127 is def. too much18:38
_BnuAHI wants it once per frame, but I have no idea if the interrupt priority matters.18:53
Claudewhat I was missing by skimming trough the ahi6 driver sources . where is the audio buffer ? 18:55
_BnuNowhere available to the driver, typically.18:56
_BnuAHI will mix things to the buffer you point it at.18:56
_BnuBut I'n trying to get around it.18:56
mntmn_Bnu: i meant task priority, not irq18:58
mntmnthe one of the worker thread18:58
_BnuAh yeah, no idea... ideally it shouldn't matter, if it's Wait()ing, but who knows...18:59
mntmnah makes sense18:59
mntmnin my case i think it was never really wait()ing because it was always fed with new signals18:59
mntmnbecause 1 round going throught the loop was already too slow perhaps19:00
mntmnthrough19:00
mntmntraffic jam, so to speak19:00
_BnuAh, yeah. You could disable the interrupt while it's in the loop I guess.19:00
_BnuBut it's not too abnormal for AHI to use 100% CPU.19:00
mntmn;_;19:00
_BnuEspecially not if you still have it at 48KHz.19:00
mntmni have. that's the only freq i can do (except if i would upsample on the ARM)19:01
mntmnfirst i shall downgrade to ahi4819:01
_BnuYeah, as far as I know, no Amiga can really handle that... Well, maybe a Vampire.19:01
mntmn_Bnu: this scares me19:01
_BnuBut I've always run ScummVM at like 8KHz and 8-bit audio.19:01
mntmnwell, i DID do 48khz 16bit stereo in my test program19:01
mntmnand my amiga did handle it19:02
_BnuYeah well, why do you think I want to get away from AHI's mixing and conversion, hahah.19:02
mntmnbut that did not go through ahi19:02
_BnuYeah but your application isn't AHI.19:02
mntmnexactly19:02
_BnuAHI does a lot of crap we don't want it to do...19:02
mntmnideally it should do absolutely nothign19:02
mntmnbut it does not like doing nothing...19:02
_BnuYeah, I'm hoping Toni can assist me with that.19:03
_BnuSo I can avoid going insane trying to rip AHI apart.19:03
mntmni hope you will give me the cheat codez19:04
mntmni was even thinking to make a ahi shim library19:04
mntmni.e. just replace it19:04
_BnuI mean, I'll give everyone the cheat codes.19:04
mntmnby something dumb19:04
_BnuThey'll be on gutheb.19:04
mntmnbut i don't know if apps are already coded around its weirdness19:04
mntmncool cool19:04
_BnuBut yeah, I dunno if you've tried playing AmiDuke? (Duke Nukem 3D.)19:12
_BnuWithout working AHI sound, it can run at up to 22 FPS.19:12
_BnuWith AHI working and playing back sound, it never breaks 10.19:13
_BnuAnd you probably saw that Monkey Island 3 video at some point?19:13
_BnuWhere the game ran pretty okay... until the music started playing.19:13
_BnuAnd that's on a 50MHz 060. So like 8x the speed of a 50MHz 030.19:15
_BnuUhhh, 25MHz.19:16
mntmnyes19:20
_Bnuhttp://apehead.se/i_will_phone_you_now.jpg I had to dig up my old SysInfo screenshot to make sure I remembered correctly...19:20
mntmnhehe19:27
_BnuBut yeah, just imagine how much faster you could up/downsample and mix buffers on the ZZ9000 compared to on the 030 or even the 060, haha.19:30
mntmnabsolutely19:30
_BnuSlap mode enabled...19:53
mntmnthe ahi docs literally say >  Fast, powerful mixing routines (yeah, right... haha)19:53
mntmn> (yeah, right... haha)19:53
_Bnulol19:54
_BnuYeah.19:54
_BnuSo you'd think it wouldn't be such a problem to just have AHI... not do that, and just give you pointers to sound buffers to mix in and play back.19:54
mntmni'm reading the docs again.19:55
mntmntrying to understand what playerfunc is supposed to do19:55
mntmnwhen i call playerfunc... does that actually call something in the app that is playing?19:56
mntmnso, the buffer should be ready somewhere after calling playerfunc, right?19:56
_BnuNo.19:56
_BnuAs far as I can tell, PlayerFunc is supposed to just tell AHI to move on to its next internal task.19:56
mntmn       AHIA_PlayerFunc (struct Hook *) - A function to be called at regular19:57
mntmn           intervals. By using this hook there is no need for music players19:57
mntmn           to use other timing, such as VBLANK or CIA timers. But the real19:57
_BnuAnd the buffer you point MixerFunc at is the only way you get a sound buffer out of it, aside from like the LoadSound/SetSound things.19:57
mntmn           reason it's present is that it makes it possible to do non-19:57
mntmn           realtime mixing to disk.19:57
mntmn(this is from the application developer point of view)19:57
_BnuSo uh.19:58
_BnuNo, that can't be it, because the Toccata driver also calls PlayerFunc.19:58
mntmnbut why can't that be it?19:58
mntmni mean, why wouldn't toccata call it?19:58
mntmnit appears to me as if this is the mechanism that drives the application's playback19:59
_BnuI was wondering if maybe the driver wasn't supposed to call it.19:59
- WoC (QUIT: Remote host closed the connection) (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com)19:59
mntmnthe ahi driver docs say:        1) Call the user Hook ahiac_PlayerFunc with the following parameters:19:59
mntmnso, the driver calls it19:59
_BnuYeah, I know.19:59
mntmnand the application _can_ implement it but doesn't have to19:59
mntmnif it wants to use its own timing19:59
_BnuBut we don't want to call PlayerFunc or MixBepFunc ever...20:00
_BnuWe just want messages about LoadSound and PlaySound...20:00
_BnuSetSound, even.20:00
mntmnwhy don't we want to call playerfunc?20:01
_BnuBecause why would we...20:01
mntmnonly mixerfunc does heavy lifting20:01
mntmnnaja because some applications might freeze if we don't call playerfunc20:01
mntmnbecause an application can decide to rely on it for timing20:01
mntmnit's kind of the clock for the application20:01
mntmn(or it can be, doesn't have to be)20:01
_BnuYeah, but what does that have to do with the driver calling PlayerFunc? I thought that was for timing purposes in the driver as well.20:02
mntmnno20:02
_BnuBut even so, I can't get it to work at all currently. Because I'm stubborn and refuse to enable mixing/timing.20:02
mntmnok, maybe if you don't enable timing then you don't have to call playerfunc, let me see20:03
_BnuPlayerFunc is the only function available to call if you don't enable timing or mixing.20:03
_BnuThe other ones are null pointers.20:03
mntmn     - If AHIsub_AllocAudio() returned with neither the AHISB_MIXING nor20:03
mntmn       the AHISB_TIMING bit set, then just start playback. Don't forget to20:03
mntmn       call ahiac_PlayerFunc ahiac_PlayerFreq times per second. Only your20:03
mntmn       own timing hardware or 'realtime.library' may be used.20:03
mntmnsee, you have to call playerfunc always20:03
mntmneven if you choose not to use TIMING20:03
_BnuI know20:03
_BnuI have read that.20:03
mntmnok20:03
_BnuBut it quite obviously does not work, even Toni says it doesn't work and he talked to the AHI author about it, haha.20:04
mntmnok20:04
mntmnsorry i'm a few steps behind in understanding, so i just wanna confirm all of these details.20:04
mntmnmy mind is still melting about how to fucking synchronize things with the hardware20:06
_BnuIf you don't enable timing or mixing, you're supposed to handle all those function calls that return AHIS_UNKNOWN.20:06
_BnuBecause you're the one who'll be doing all the mixing (theoretically), so you need that info.20:07
mntmni guess i just need a reliable 50hz timer20:07
- S0rin (QUIT: Ping timeout: 252 seconds) (~S0rin@user/s0rin)20:10
_BnuOr maybe an unreliable one...20:11
_BnuACTION clicks the mouse 50 times per second20:11
+ S0rin (~S0rin@user/s0rin)20:12
pasiksound playback too slow? click faster!20:13
apolkosnik[m]Use HippoPlayer20:13
mntmnhehe20:28
mntmndoes hippoplayer have ahi support?20:28
mntmnand now i wish the docs would actually ~explain~ what pre and post timer do, for real20:30
mntmnwhy is that so secretive20:30
mntmndid everybody write documentation this fuzzy in the 90s?20:31
mntmni mean, the amiga hardware docs are certainly better...20:31
pasikhttps://wiki.amigaos.net/wiki/AHI_Device20:40
pasiksome ahi usage docs there, from the app perspective20:40
pasikbut you've probably seen all those already20:42
_BnuI think it's just that, like.20:52
_BnuNo one ever wrote any drivers for AHI without it being part of a paid product, and they probably did it back at a time when the author of AHI was actually available to contact.20:53
_BnuAnd because no one ever really wrote any drivers for it, the dev archive documentation ended up being half finished.20:53
_BnuNo one needed it, because they already knew how it worked, and no one else wanted to use it.20:54
_BnuIf you consider the fact that the only working AHI driver (currently) for WinUAE is basically just an edit of the Paula driver, it still holds true.20:54
_BnuI of course don't have any of the other sound cards, so I can't check if they actually alleviate CPU load at all.20:54
_BnuThe Prisma Megamix or whatever did not seem to do so, judging by the description a user gave.20:55
apolkosnik[m]https://www.exotica.org.uk/wiki/HippoPlayer20:59
apolkosnik[m]Says that it can do ahi for protracker 21:00
- S0rin (QUIT: Ping timeout: 250 seconds) (~S0rin@user/s0rin)21:04
mntmn_Bnu: prisma is only an MHI card, not AHI21:05
mntmn[aswap] amiga: 3840 dma: 12288 d-a: 844821:05
mntmn[aswap] amiga: 7680 dma: 17152 d-a: 947221:05
mntmn[aswap] amiga: 11520 dma: 22048 d-a: 1052821:05
mntmn[aswap] amiga: 15360 dma: 27232 d-a: 1187221:05
mntmn[aswap] amiga: 19200 dma: 32096 d-a: 1289621:05
mntmni have some sort of playback, just desynchronized still21:05
mntmni.e. one party is faster21:06
mntmnand then they overtake each other on the ring21:06
mntmnit's like 2 little race cars on the circular race track.21:06
mntmni should probably output a timestamp here as well21:08
mntmnand downgrade to 48 finally21:11
_BnuDowngrate.21:13
_BnuBut like.21:13
_BnuThat's how little idea I have about any of the sound cards. I didn't even know the Prisma wasn't an AHI card.21:14
_BnuOr why it matters that it's an AHI card, I thought it just needed drivers.21:14
_BnuBut you're saying that there's some sound card for Amiga that doesn't just take the easy way out as far as AHI goes?21:16
+ S0rin (~S0rin@user/s0rin)21:17
- RobDangerous (QUIT: Ping timeout: 250 seconds) (~Thunderbi@p200300ec8f3e1c0010eeaa04747799d8.dip0.t-ipconnect.de)21:23
mntmn_Bnu: prisma is only for outputting mp3 and stuff. no audio playback21:24
_Bnu('A`) ?!21:25
mntmnit's only a music card21:28
mntmnnot a sound card21:28
mntmnit has an mp3 decoder chip on it, not like a normal audio dac21:28
mntmnok so here is something mind boggling21:28
mntmnahi48 gives me only one channel and the other is zero (silence) ;_______;21:29
mntmnw t f21:29
mntmnso i'm hearing only half of the music now with lots of farts in between21:29
_BnuSounds good to me...21:30
+ drph33r (~igloo@84.67.2.63)21:30
_BnuDid you set the card to two channels in the prefs?21:30
_BnuOtherwise I think it gets really weird about stereo.21:30
mntmnok wait21:31
mntmni did not change the prefs after downgrading, maybe that's the problem21:31
mntmnthe farting is always when my playback dma overtakes what amiga is feeding i think21:32
mntmnneed faster brocessor21:32
mntmnor i could try 24khz21:32
mntmn_Bnu: for me the channels slider is greyed out21:33
mntmnlike, can't change it21:33
mntmnand it also doesn't show a value21:34
_BnuFor the music slider, that should be the case.21:38
_BnuBut not for the unit 0, 1, etc.21:38
mntmnah, i forgot what these mean, i.e. what's the difference between music and 021:39
- drph33r (QUIT: Ping timeout: 240 seconds) (~igloo@84.67.2.63)21:41
mntmnturns out, amiga is not too slow per se. just the timing is fucked up. if i force it to do feed 2x in one vblank, it consistently overtakes the cards dma, i.e. it sounds fast forwarded.21:43
_BnuGood...21:53
_BnuYeah, I have no idea why you would want to use AHI's mixing and timing for playback, rather than just get a sound buffer when it's supposed to play, some command to keep feeding the buffer when it's time. Having to trigger AHI to move on feels so wrong.21:54
+ WoC (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com)22:02
mntmntja22:36
mntmnnow wired up another fabric interrupt from the audio formatter thing22:36
mntmnso that i can time all that stuff...22:37
_BnuD-don't do it...22:42
_BnuACTION dies of timing22:42
mntmndamn damn damn23:08
mntmnok audio formatter interrupt finally firing...23:21
mntmncrazy, it works23:24
mntmnthe only problem is that ahi 4 gives me only that damn mono channel23:24
mntmnbut i can use the system while it's playing at 48khz!23:25
mntmnon a 030/2523:25
mntmni will try one more time with ahi 6 and then go home...23:25
mntmnahi6 gives stereo samples but appears to be too slow indeed23:30
mntmnyeah. there's no doubt that ahi6 mixing got much slower.23:33
mntmn_Bnu: btw there's also something called CyberSound23:37
mntmnlol23:43
mntmnso hippoplayer manages to play to both AHI channels, but... both are the same channel, i.e. copies23:44
mntmnok that is influenced by the "stereo level" setting23:46
mntmnso panning works... but it pans only half of the PT channels to either stereo AHI channel23:47
mntmneven dynamically23:47
_Bnu8D23:47
_BnuCyberSound, related to CyberGraphics?23:47
_BnuWhich would probably in extension mean that it's impossible to make drivers for it...23:48
mntmnhaha perhaps23:50
mntmnthere are settings for it in hippoplayer23:50
mntmnmaaaaan this is annoying23:57
mntmn_Bnu: do you really get stereo from ahi4.18 ;_____;23:58

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!