apolkosnik[m] | I told the bunch of people on Acill's discord, so some more orders are in | 00:04 |
---|---|---|
apolkosnik[m] | * I told a bunch of people on Acill's discord, so some more orders are in | 00:04 |
mntmn | awesome, thank you!! | 00:06 |
emiespo[m] | Oh already available to order? Wow amazing! | 00:10 |
emiespo[m] | ACTION orders | 00:13 |
emiespo[m] | Ouch! 30€ for shipping to the Uk? Curse you Brexit! | 00:14 |
emiespo[m] | I think I’ll have it shipped to Italy 🇮🇹 lol and retrieve once I manage to go home. | 00:17 |
emiespo[m] | (But will do it tomorrow as I need to retrieve the best address) | 00:23 |
mntmn | ooop yeah it's because UK is marked as "world" and not EU now | 00:45 |
mntmn | sorry for that | 00:45 |
+ ProfPlum (~IceChat9@67.212.64.194) | 00:56 | |
ProfPlum | Lukas and team, fast question: When is the zz9000ax shipping? I live in Canada. My mom and dad are in Europe. I will be visiting them in 10 days. I can save some bucks$ in shipping costs. | 00:59 |
emiespo[m] | <mntmn> "sorry for that" <- Definitely not your fault and not mine either. I might be moving to Germany if things get worse here… | 01:05 |
mntmn | ok :| | 01:06 |
+ bfarmilo (~bfarmilo@202.56.40.240) | 01:17 | |
+ bfarmilo_ (~bfarmilo@202.56.40.240) | 01:18 | |
- bfarmilo (QUIT: Ping timeout: 240 seconds) (~bfarmilo@202.56.40.240) | 01:22 | |
- xet7 (QUIT: Read error: Connection reset by peer) (~xet7@user/xet7) | 02:26 | |
+ xet7 (~xet7@user/xet7) | 02:27 | |
- WoC (QUIT: Remote host closed the connection) (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com) | 03:01 | |
+ WoC (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com) | 03:02 | |
- ProfPlum (QUIT: Quit: The early bird may get the worm, but the second mouse gets the cheese) (~IceChat9@67.212.64.194) | 05:09 | |
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 05:14 | |
+ xet7 (~xet7@user/xet7) | 05:35 | |
Claude | mntmn: just a sanity check. the audio card is compatible with a first revision ZZ9k? I think on the first revision cards only the hdmi i2s header is missing. right ? | 07:47 |
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 07:50 | |
+ xet7 (~xet7@user/xet7) | 07:57 | |
+ RobDangerous (~Thunderbi@p200300ec8f3e1c0059d89a3a77bac934.dip0.t-ipconnect.de) | 08:07 | |
- bfarmilo_ (QUIT: Ping timeout: 268 seconds) (~bfarmilo@202.56.40.240) | 08:13 | |
forcie_ | just preordered a ZZ9000AX :) | 08:50 |
emiespo[m] | @ProfPlum:libera.chat: if you go to the checkout page there’s an expected delivery before end of 2021… so it’s more like a preorder now :-) | 10:04 |
mntmn | Claude: yes compatible | 10:32 |
+ bfarmilo (~bfarmilo@202.56.40.240) | 10:41 | |
Claude | mntmn , alright :) | 10:59 |
mntmn | Claude: it basically needs the expansion port for the I2S interface, and currently two pins from MIO port for I2C. and amiga audio comes from the AUD header | 11:00 |
mntmn | will be quite the kabelbaum | 11:00 |
_Bnu | This AHI driver stuff is ridiculous. ('A`) | 12:15 |
mntmn | tell me everything _Bnu | 12:20 |
_Bnu | I don't actually see anywhere to get the stupid sound buffers you're supposed to use, unless you let AHI mix everything using the CPU, and even then I can't quite gett it to work. | 12:22 |
_Bnu | It's like it initializes properly, starts up along with ScummVM, then it does a LoadSound, SetFreq, SetVol and SetSound and then it just... stops. | 12:23 |
mntmn | what's LoadSound supposed to do? | 12:24 |
mntmn | SetFreq, is that the output freq that you select in prefs? or an input freq from the application? | 12:24 |
_Bnu | LoadSound is something you're not actually supposed to use, because all drivers mark it as an unused function that just returns AHIS_UNKNOWN. | 12:25 |
_Bnu | But if you don't specify AHISF_MIXING and AHISF_TIMING when you allocate your audio, you're supposed to be allowed to handle these yourself. | 12:25 |
_Bnu | It basically just means load these samples into a buffer somewhere and identify them as sound X. | 12:26 |
_Bnu | static uint32_t __attribute__((used)) intAHIsub_LoadSound(uint16_t sound asm("d0"), uint32_t type asm("d1"), struct AHISampleInfo *info asm("a0"), struct AHIAudioCtrlDrv *AudioCtrl asm("a2")) | 12:26 |
mntmn | i see, so like loading a texture into a gpu | 12:26 |
_Bnu | Then SetFreq sets the sample frequency for a channel, SetVol sets the volume for a channel and SetSound is supposed to set the loaded sound as ready to play. | 12:26 |
_Bnu | But the docs make no sense. It's like half of it is missing because no one could figure out how to use it except for the people who made closed source drivers that probably all use the CPU for mixing audio. | 12:27 |
_Bnu | type - The type of the sound. Currently four types are supported: | 12:27 |
_Bnu | And then it lists three types. | 12:27 |
mntmn | haha | 12:28 |
mntmn | but it sounds like you have all the bits to go ahead and play the sound then? | 12:28 |
_Bnu | Sure, if I want to play back one 1024 sample buffer of all zeroes. | 12:28 |
mntmn | LoadSound gave you silence? | 12:28 |
mntmn | maybe that's just how it works and you need to signal to the application that you are done? | 12:29 |
mntmn | and they kinda start with silence? | 12:29 |
_Bnu | Signal it how. ('A`) | 12:29 |
mntmn | how does Scumm use the AHI API? | 12:29 |
_Bnu | Like anything else... | 12:30 |
mntmn | maybe they do LoadSound, SetSound in a loop? | 12:30 |
_Bnu | This is AHI itself getting stuck somewhere. | 12:30 |
mntmn | ah | 12:30 |
mntmn | so it halts everything? | 12:30 |
mntmn | sounds like you need to signal AHI that you are done perhaps hmm | 12:30 |
_Bnu | But how... I'm doing everything it says for me to do. | 12:31 |
mntmn | my pc since a few days fails to wake from sleep. annoying | 12:32 |
mntmn | the year of linux on the desktop | 12:33 |
mntmn | as soon as it has rebooted i will take a look if i see some detail | 12:33 |
mntmn | i googled "scummvm amiga git" and found my own fork as the top hit ;_; | 12:34 |
Claude | raise an issue there :) | 12:35 |
mntmn | haha | 12:37 |
mntmn | omg it would be so easy to just directly poke the sound from scummvm to the hardware | 12:37 |
_Bnu | I updated the ahi_driver_amiga.zip file in snakes9000, since I made a lot of changes. | 12:37 |
_Bnu | Yes, yes it would. | 12:37 |
mntmn | big mood | 12:37 |
mntmn | abstract driver systems were an error, lets go back to the 80s | 12:38 |
_Bnu | But that's not the point, then you'll have to mod every single piece of software using AHI to use the ZZ9000 sound instead. | 12:38 |
mntmn | damn indirections | 12:38 |
_Bnu | Which is of course not an issue when it comes to ScummVM, since it already has a pile of ZZ9000-specific code... | 12:38 |
mntmn | maybe the API should just be a single "MAKE SOUND" call | 12:38 |
mntmn | which plays back what you give it... | 12:38 |
_Bnu | The API should fucking make any sense, lol. | 12:38 |
mntmn | haha yeah sorry i'm just joking around | 12:38 |
mntmn | i'm reading a bit in amigaos3-mixer.cpp | 12:39 |
_Bnu | You shouldn't be reading it unless you're up to date with mheyer's and my changes. | 12:39 |
mntmn | i just want to see how AHI is used from an application POV | 12:40 |
_Bnu | https://github.com/beeanyew/scummvm-amigaos3/tree/zz9k-stuff | 12:40 |
mntmn | i have never used it... i only sell a product for it... | 12:40 |
_Bnu | Yeah, but I think it changed a bunch. | 12:40 |
_Bnu | Depending on how old your branch is. | 12:40 |
mntmn | p. old | 12:41 |
mntmn | in my version there's an endless loop, it has an IORequest for AHI (CMD_WRITE) and it stuffs the sound buffer as Data into it and sets Type, Frequency, Position, Volume and then does a SendIO. and then it uses CheckIO to check if the sound has already played i guess | 12:43 |
mntmn | also waits for 1 << ahiPort->mp_SigBit | 12:43 |
_Bnu | Yes, but none of that makes it through to the driver. | 12:44 |
_Bnu | There's no IO requests, no anything, no nothing. | 12:44 |
_Bnu | Just the worst piece of crap ever. | 12:44 |
_Bnu | Doing what the docs say and calling PlayerFunc X times per second just does nothing. I'm pretty sure there's some vital step the documentation skips, but it's in assembler files for all the example drivers. | 12:46 |
mntmn | ok | 12:46 |
mntmn | assembl0r | 12:46 |
mntmn | i can try to read that | 12:46 |
_Bnu | I was hoping that handling loadsound/setsound directly would allow me to avoid AHI's CPU audio conversion and mixing, since it seemed that way based on the docs. | 12:47 |
_Bnu | But then it just stops doing anything. Which is not exclusive to avoiding AHI doing the mixing, but something's missing. | 12:48 |
mntmn | which bits do you return from AHIsub_AllocAudio? | 12:49 |
mntmn | also i should just look at your code | 12:49 |
mntmn | sorry i forgot where the git with your driver is at | 12:49 |
_Bnu | It's not on git, it's in ahi_driver_amiga.zip | 12:50 |
trixster | Is it possible to see a picture with the ZZ9000AX connected up to the ZZ9000, and with the Paula audio header connected too? | 12:50 |
_Bnu | I don't want to put it on git, because people will pull it and complain that it doesn't work, lolb. | 12:50 |
mntmn | trixster: not yet, sorry | 12:50 |
trixster | Np! | 12:50 |
mntmn | _Bnu: ok i have a zip from a few days ago i believe | 12:50 |
_Bnu | http://www.apehead.se/snakes9000/ahi_driver_amiga.zip | 12:50 |
_Bnu | Well I updated it a few seconds ago. | 12:50 |
_Bnu | Minutes. | 12:51 |
mntmn | cool cool | 12:51 |
_Bnu | Because I changed a lot of stuff. | 12:51 |
trixster | So Paula header - there’s a Paula header on the motherboard of a 3000/4000? | 12:51 |
mntmn | trixster: no, it's on the ZZ9000 | 12:51 |
trixster | Ah ok, I see | 12:51 |
_Bnu | But I changed it to this: return AHISF_KNOWSTEREO;// | AHISF_MIXING | AHISF_TIMING; | 12:51 |
mntmn | the audio comes from the videoslot | 12:51 |
_Bnu | Because KNOWHIFI made it default to 32-bit samples, and MIXING and TIMING means that AHI will handle both of those in software, which I don't want. | 12:52 |
mntmn | gotcha | 12:52 |
trixster | Ok, I have ordered :) exciting | 12:54 |
mntmn | thanks trixster | 12:54 |
trixster | I need to work out how to get it in the AA3000+. This machine already has a Prisma Megamix and a Delfina Flipper :D something will have to come out. Too much audio :D | 12:54 |
mntmn | :33 | 12:54 |
trixster | https://usercontent.irccloud-cdn.com/file/E2cj4hI5/IMG_5051.JPG | 12:55 |
trixster | Silly machine | 12:55 |
mntmn | nice | 12:56 |
mntmn | _Bnu: ok the docs for AHIsub_Start are intense | 12:57 |
_Bnu | Intense and useless. | 12:58 |
mntmn | does this function get called? | 12:58 |
_Bnu | Yes, it does. | 12:58 |
mntmn | ok something at least... | 12:58 |
_Bnu | All of the functions get called. | 12:58 |
_Bnu | But for instance, the Toccata driver sets up some soft interrupts. | 13:01 |
mntmn | ok | 13:01 |
_Bnu | But it's not clear at all when they're supposed to be triggered, or what they do. | 13:01 |
mntmn | so the loop in SlaveProcess runs yes? | 13:02 |
_Bnu | And I probably don't want them, since they seem to be dependent on the AHI software mixing/buffer handling functions. | 13:02 |
_Bnu | Yes, it all runs. | 13:02 |
mntmn | the docs say to call ahiac_MixerFunc also, i see it is commented out | 13:02 |
mntmn | unnecessary? | 13:02 |
_Bnu | It doesn't exist | 13:02 |
mntmn | haha ok | 13:02 |
_Bnu | If you don't specify AHISF_MIXING, it's null. | 13:02 |
_Bnu | If you skip past all the intense documentation, you'll find this: | 13:02 |
mntmn | ok makes sense | 13:02 |
_Bnu | - If AHIsub_AllocAudio() returned with neither the AHISB_MIXING nor | 13:03 |
_Bnu | the AHISB_TIMING bit set | 13:03 |
mntmn | i see | 13:03 |
mntmn | got it | 13:04 |
mntmn | so ahiac_PlayerFunc is supposed to keep the wheel rolling | 13:04 |
_Bnu | But yeah, once it stops, I still see the debug messages from the SlaveProcess loop rolling by. | 13:04 |
_Bnu | But I can tell that something did Forbid() somewhere, because the disk drive stops clicking. | 13:05 |
mntmn | ah! | 13:05 |
mntmn | Verboten() | 13:05 |
mntmn | i guess i will have to test it myself! | 13:08 |
Claude | the multitask-still-running-metronome . aka df0 | 13:08 |
mntmn | haha | 13:08 |
mntmn | the floppy disk time slicing quantum | 13:08 |
mntmn | _Bnu: did i understand correctly that it behaves differently if you allow it to do CPU mixing? | 13:09 |
_Bnu | No, it does not. | 13:09 |
mntmn | ok | 13:09 |
_Bnu | It still gets stuck there. I tried enabling it and using that other thing with the mixfunc and stuff, but it doesn't help at all. | 13:10 |
mntmn | which ahi are people using btw? i see there is some old ahi 6 beta | 13:10 |
_Bnu | 4, 6 is too slow. | 13:10 |
mntmn | ok | 13:10 |
_Bnu | I mean. | 13:10 |
_Bnu | They're probably using 6 on AROS x86 and all that stuff. | 13:11 |
_Bnu | MorphgloBS. | 13:11 |
_Bnu | AmigaONS 5 | 13:11 |
_Bnu | But on 68k, it's pretty much unusable. | 13:11 |
mntmn | haha ok | 13:12 |
mntmn | oh there's a FileSave driver incl source | 13:12 |
_Bnu | https://gist.github.com/beeanyew/4b29205a45bc86fa638eb411553ce81d | 13:13 |
_Bnu | This is all the debug output. | 13:13 |
_Bnu | Yeah I know, and it also has a bunch of assembler functions. | 13:13 |
mntmn | ah, asmfuncs.a ? | 13:14 |
_Bnu | Not as many, so I guess nothing in there should be too important. | 13:14 |
mntmn | weirdly they call FindTask in assembler | 13:16 |
_Bnu | Yeah, I don't think it matters, it's for passing data to the slave task. | 13:17 |
_Bnu | (Which I circumvented.) | 13:17 |
mntmn | mhm | 13:18 |
mntmn | toccata and your task prio is 127 while they use -1 in filesave. dunno why | 13:19 |
_Bnu | Because filesave isn't realtime, I think? | 13:21 |
mntmn | that makes sense | 13:22 |
_Bnu | But yeah, it may not seem like it, but I have very detailed debug output on the Raspberry Pi console. | 13:22 |
_Bnu | https://gist.github.com/beeanyew/4b29205a45bc86fa638eb411553ce81d | 13:22 |
_Bnu | (Avoiding all the slowness of KPrintF.) | 13:23 |
mntmn | chuckled | 13:23 |
mntmn | int8_t fart_signal; | 13:23 |
mntmn | int8_t snake_signal; | 13:23 |
_Bnu | lol | 13:23 |
_Bnu | They seemed like better options than padding... | 13:23 |
mntmn | those are important signals | 13:24 |
mntmn | ok i'll try to hack your driver into something i can run | 13:25 |
mntmn | why -fomit-frame-pointer again? | 13:26 |
mntmn | (trying to remember what that was for) | 13:26 |
_Bnu | I don't recall, but I don't think it makes a difference... | 13:27 |
_Bnu | -ldebug isn't used anymore either, so it can be deleted. | 13:28 |
_Bnu | I was hoping that calling PlayerFunc would just be some sort of AHI keepalive, but it seems not. | 13:29 |
_Bnu | I don't know if you have an A500 around to put a PiStorm in, else I could just send you my WB 3.1 hard drive image and the files I changed when I added Pi-AHI. | 13:30 |
_Bnu | But yeah, if I open the AHI prefs and change unit 0 to some Paula thing, it works, so they can coexist and stuff. | 13:32 |
mntmn | deleted | 13:34 |
mntmn | ok so i have it bulded | 13:34 |
mntmn | i should be able to use your premade PREFSFILE yes? | 13:34 |
_Bnu | Yeah. Though you might want to change some of the commented out debug stuff in pi-ahi.c if you didn't already. | 13:36 |
_Bnu | Like uncomment all the debugmsg/byte/word/long and comment out the ones that aren't commented. | 13:37 |
_Bnu | Else it'll try to write to $8800000 somewhere and might crash the Amiga. | 13:37 |
mntmn | didn't, so far i just stubbed out WRITESHORT WRITELONG and those AHI_Uxxx stuff | 13:37 |
mntmn | because i don't have the pi enums header | 13:37 |
_Bnu | Ah, they're never used directly. | 13:38 |
mntmn | well they are | 13:38 |
mntmn | i got compil0r errors about them | 13:38 |
mntmn | for example debuglong(AHI_U321, (uint32_t)dev); | 13:38 |
_Bnu | No, they're never used directly. Always through debug* macros. | 13:38 |
_Bnu | That's why I had stubbed out versions of the debug* things there. | 13:39 |
mntmn | you mean WRITESHORT and brethren | 13:39 |
_Bnu | Yes. | 13:39 |
shanshe_ | wow mntmn... can we preorder now???? excited... hehehe | 13:39 |
mntmn | oh i see | 13:39 |
mntmn | shanshe_: yeah!! | 13:39 |
_Bnu | https://gist.github.com/beeanyew/a2c293fd7caf4e805f42db7e27512aa3 | 13:40 |
_Bnu | They're basically just register offsets. | 13:40 |
mntmn | yeah | 13:40 |
shanshe_ | @mntmn it is valid for rev1 boards? or wee have to do some mod? | 13:40 |
_Bnu | But the driver should work as a stub, it doesn't do any PiStorm-specific communication yet. I mean it doesn't work, but it should... I hoped it would... | 13:41 |
_Bnu | I was hoping I could then adapt it to a ZZ9000 driver with different DMARTG-like commands, haha. | 13:42 |
_Bnu | Or DMAACC... | 13:42 |
mntmn | yes | 13:43 |
mntmn | i will try it now... first i have to crap AHI all over my system | 13:43 |
mntmn | shanshe_: should work just fine on R-1 | 13:43 |
_Bnu | Oh, check the contents of the prefsfile just to be sure, btw. | 13:44 |
_Bnu | So that it starts with "FORM". | 13:44 |
mntmn | hmm \0\0�\0\0\0prefsfile.a\0\0\0�\0\0\0CODE\0\0�\0\0\0eFORM\0\0�AHIMAUDN\0\0 | 13:44 |
mntmn | does not start with FORM | 13:44 |
_Bnu | It doesn't... I accidentally left in the hunk header. | 13:44 |
mntmn | hunk funk | 13:44 |
mntmn | can you uploadz the real one? | 13:44 |
_Bnu | But you can just chop off the first 28 bytes. | 13:44 |
mntmn | ok | 13:44 |
mntmn | i will do that | 13:44 |
_Bnu | I couldn't figure out how to get VASM to do PhxAss-style "NOEXE", so I settled for just chopping... | 13:45 |
mntmn | you mean 0x28 bytes right... | 13:47 |
_Bnu | Do i... | 13:49 |
_Bnu | Indeed I do... | 13:50 |
mntmn | the resulting prefsfile should then be 528 bytes yes? | 14:00 |
_Bnu | Uhh, no idea, never really looked at the size. | 14:04 |
_Bnu | 528 bytes, says Directory Onpus. | 14:05 |
mntmn | cool cool | 14:05 |
mntmn | _Bnu: is the PREFSFILE an AudioMode or...? | 14:13 |
_Bnu | It goes in DEVS:AudioModes, yeah. | 14:13 |
_Bnu | You can rename it to anything you want, like SNAKES or BLOBS. | 14:14 |
mntmn | cool cool | 14:15 |
mntmn | ok it works | 14:15 |
mntmn | _Bnu: http://dump.mntmn.com/screenshot-2021-08-18-14-15-37.png | 14:15 |
_Bnu | Yeah, that works fine. | 14:16 |
mntmn | the numbers in the background is serial debug of random numbers from your debug traces. | 14:16 |
_Bnu | It's launching anything that uses it that doesn't work. | 14:16 |
mntmn | ok i will press "Play a test sound" | 14:16 |
_Bnu | AHI prefs mostly just calls GetAttr. | 14:16 |
_Bnu | That will probably lock up.. | 14:16 |
mntmn | hmm when i bumped op the Frequency to 48khz i got some more debug numbers | 14:17 |
mntmn | hmm it does not lock up | 14:17 |
mntmn | oh it does | 14:17 |
mntmn | and i'm probably getting 03e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e3 from your loop | 14:17 |
mntmn | periodically | 14:18 |
mntmn | yeah thats hex 995 | 14:18 |
_Bnu | Perdodicatllyu. | 14:18 |
mntmn | so it behaves the same here. | 14:18 |
mntmn | even without a Pi... | 14:19 |
mntmn | hey, multitasking is back | 14:19 |
mntmn | "only" the AHI prefs itself is still locked up | 14:20 |
mntmn | so "play a test sound" locks up the system only for a while | 14:22 |
mntmn | _Bnu: AHI task was waiting for a signal | 14:23 |
_Bnu | That's still one while too many... | 14:23 |
mntmn | _Bnu: i signalled it via Scout and that made the prefs GUI come back | 14:23 |
_Bnu | For what signal, lol. | 14:23 |
_Bnu | There's no way to send a signal to it. | 14:23 |
mntmn | $08000000 i think, wait | 14:23 |
mntmn | well, scout can do it, so can anyone... but i'm not sure that's the expected way | 14:24 |
_Bnu | I doubt it is. If it was, wouldn't the docs say so? | 14:24 |
mntmn | yeah, just an interesting factoid | 14:24 |
mntmn | ok so now pi-ahi.audio crashed ("Software Failure" requester) | 14:25 |
mntmn | it survived a "suspend" though. | 14:25 |
mntmn | the slave task is still running | 14:25 |
mntmn | i pressed play a test sound again. ahi is hung, system works | 14:25 |
mntmn | so yeah the task called "AHI" is waiting for signal bit 1<<27 | 14:26 |
_Bnu | Good. | 14:28 |
mntmn | interesting that signalling it will make the pi-ahi process crap out | 14:28 |
mntmn | maybe AHI aborts and ahiac_PlayerFunc is then not valid anymore | 14:29 |
_Bnu | Well, it's just that there's no way for the SlaveProcess to quit. | 14:32 |
_Bnu | It needs some variable to check to be able to escape because it has no signals. | 14:32 |
_Bnu | I see nothing in any of the drivers signaling AHI to stop waiting... | 14:35 |
_Bnu | I wouldn't even know how to find the AHI main task from the driver anyway, so. | 14:36 |
mntmn | ok so here's one thing | 14:46 |
mntmn | the filesave drivers' _intAHIsub_Enable sends the Enable signal to the main loop (slave stuff) | 14:46 |
_Bnu | Main loop? | 14:47 |
mntmn | and that waits for this signal before calling those hooks | 14:47 |
mntmn | yeah the for(;;) loop in SlaveProcess | 14:48 |
mntmn | i see you call Enable() and Disable() in those functions, but the filesave driver does not do that | 14:48 |
_Bnu | Yeah I mean, I have no idea what the enable/disable calls are supposed to really be fore, but it wouldn't be hard to just have variables controlling that as well. | 14:48 |
_Bnu | I just read the docs. | 14:48 |
_Bnu | which said this | 14:49 |
_Bnu | IMPLEMENTATION | 14:49 |
_Bnu | If you are lazy, then call exec.library/Enable(). If you are smart, only enable your own interrupt or task. | 14:49 |
mntmn | ah! | 14:49 |
mntmn | lazy vs smart | 14:49 |
mntmn | lol | 14:49 |
_Bnu | It doesn't change anything even if I remove the enable/disable calls though. | 14:49 |
_Bnu | But I can make the loop not do anything while that's going on if you think that'll help. | 14:50 |
mntmn | o' | 14:53 |
mntmn | i'll test around here | 14:53 |
mntmn | before sending you down the wrong roads | 14:54 |
_Bnu | Tried it, and it seemed to disable the call fine, but then it got stuck as usual. | 14:56 |
_Bnu | Also, my AHI does not have that "Play a test sound" button... | 14:58 |
_Bnu | Or those audio modes. | 15:00 |
_Bnu | Which version of AHI are you using, anyway? | 15:00 |
_Bnu | 6.0, I guess. | 15:04 |
_Bnu | I'm using 4.18, because I couldn't get 6.0 to play back any sound without stuttering like crazy on my A4000. | 15:04 |
mntmn | hmm i only downloaded something from aminet without looking at the version... | 15:07 |
mntmn | oh yeah that is 6.0 https://aminet.net/package/driver/audio/m68k-amigaos-ahiusr | 15:07 |
mntmn | btw the test sound does get played | 15:08 |
mntmn | "played" | 15:08 |
mntmn | i mean it doesn't sound very good | 15:08 |
mntmn | but it's arriving in my buffer | 15:08 |
mntmn | and it is farted out through the ZZ9000AX... | 15:09 |
_Bnu | Yeah sorry, I know nothing about 6.0 except for the fact that it's nearly unusable because it's too slow. | 15:09 |
mntmn | hmm we get many stop messages | 15:10 |
_Bnu | Maybe it's not too slow if you can completely avoid the software mixing/timing, I dunno. | 15:10 |
_Bnu | I don't. | 15:10 |
_Bnu | I really wouldn't test an AHI 4.X driver with 6.0 | 15:10 |
mntmn | i got it to play, stop and then hang | 15:10 |
mntmn | well i changed a bunch of things in the driver | 15:10 |
_Bnu | Still. | 15:11 |
mntmn | yeah but i have that handy test button... if i get it to work in 6.0 i can still go back to test it with 4. | 15:11 |
_Bnu | Alright. But I still think you should take a look at thge 6.0 dev archive in that case. | 15:12 |
_Bnu | See if the function table changed or something. | 15:12 |
mntmn | ah, Stop is supposed to signal the slave process to stop. | 15:13 |
mntmn | afaik the drivers are backwards compatible | 15:13 |
mntmn | because you have to specify the API version | 15:13 |
mntmn | i mean, the drivers are forwards compatible | 15:13 |
mntmn | and AHI itself backwards. | 15:13 |
_Bnu | Well, I set it up to check disable_cnt and playing as a sign to not signal the playerfunc, and it still gets stuck. | 15:18 |
mntmn | ok i got it to not hang | 15:22 |
mntmn | so i can "play a test sound" over and over again | 15:22 |
mntmn | but the buffer is incredibly tiny so i can't hear it | 15:22 |
mntmn | _Bnu: here are my working codez if you want to port it back https://gist.github.com/mntmn/1e6fbdc266d599b55254c32394e47c2f | 15:23 |
mntmn | but i am using return AHISF_KNOWSTEREO | AHISF_MIXING | AHISF_TIMING; | 15:23 |
mntmn | and i stubbed out all of those SetSound and friends | 15:24 |
_Bnu | But I don't want that. ;_; | 15:26 |
mntmn | well | 15:26 |
mntmn | maybe you can remove em | 15:27 |
mntmn | still testing | 15:27 |
_Bnu | No, if you enable MIXING and TIMING, all conversion, mixing and timing will be done in 68k software by AHI. | 15:27 |
_Bnu | It says so in the docs, that you should just return AHIS_UNKNOWN if you enable those. | 15:28 |
_Bnu | Like, then there's no point really. But if it works with the ZZ9000AX, that's nice I guess. | 15:28 |
_Bnu | At least someone got some use out of the code I wrote, lolb. | 15:29 |
mntmn | well, i only just started | 15:29 |
mntmn | hmm looks like some memory corruption http://dump.mntmn.com/screenshot-2021-08-18-15-30-22.png | 15:30 |
_Bnu | But yeah, it's okay. I don't really care too much if it can't be accelerated any, just go with what works. | 15:31 |
mntmn | yeah first i want to have anything working and then we can look at how do make it faster and stuff | 15:34 |
mntmn | ahi sends me only 1920 samples... | 15:36 |
mntmn | or are they bytes... | 15:36 |
_Bnu | Length is in samples, but buffer size is in bytes.. | 15:37 |
_Bnu | You're not using the pre/post timer stuff, though. | 15:38 |
_Bnu | So maybe that's confusing AHI and you're only getting samples when it calls enable. | 15:38 |
mntmn | ah oh | 15:40 |
mntmn | i think the key is in all this signalling and waiting crap | 15:49 |
_Bnu | I mean yeah, if you're using AHI's software timing and mixing, then yes. | 15:50 |
_Bnu | Then it's essential for it to work. | 15:50 |
mntmn | no i mean it's the key to stuff hanging or not | 15:54 |
_Bnu | That's impossible, though. The only function call available without MIXING and TIMING is PlayerFunc. | 15:55 |
_Bnu | All the others are null pointers. | 15:55 |
mntmn | no i mean you need to wait for being enabled before calling the playerfunc etc | 15:55 |
_Bnu | Sure, but I did try that. | 15:56 |
_Bnu | [PI-AHI-amiga] Called ENABLE. | 15:56 |
_Bnu | [PI-AHI] WORD write to DEBUGMSG: 000003E3 (995) | 15:56 |
_Bnu | 995 being the call to PlayerFunc. | 15:56 |
mntmn | ok | 15:58 |
mntmn | had some pizzer | 16:42 |
mntmn | btw i broke it again in the meantime and got new hangs and endless 0 buffers | 16:42 |
_Bnu | Pfizer AHI Vaccine | 17:03 |
_Bnu | What did you say the signal was that AHI was waiting for... | 17:34 |
mntmn | $08000000 | 17:40 |
_Bnu | Blah, signaling it to ahi.device in the loop doesn't do anything. | 17:42 |
mntmn | hmm i'm getting only 1 playback buffer from ami-playmod and that's it. | 17:43 |
mntmn | ah maybe i am doing this wrong... but not sure | 17:44 |
mntmn | how is it supposed to behave... will AHI call enable/disable all the time? | 17:44 |
mntmn | for every loop? | 17:44 |
mntmn | apparently not | 17:45 |
_Bnu | I have absolutely no idea how it's supposed to work, no. | 17:45 |
_Bnu | I thought I followed the instructions, but apparently I didn't. Or something. | 17:46 |
_Bnu | Like, how do the soft interrupts in the toccata drivers do anything at all, ever? | 17:47 |
_Bnu | How do the signals ever get triggered, and by what? None of the standard functions appear to Cause them. | 17:47 |
_Bnu | The Toccata driver also just does Disable/Enable in those function calls. | 17:47 |
mntmn | well the slave process has to wait for the play signal | 17:48 |
mntmn | that is called in the end of the Start function | 17:48 |
mntmn | i am not using Enable()/Disable() so the rest of what i would have to say doesn't apply | 17:48 |
mntmn | i'm using enable and disable signals, it's just tricky to implement them | 17:49 |
_Bnu | Yes, it gets the play signal once. | 17:50 |
_Bnu | And then the rest of the magic appears to happen in Toccata.library. | 17:50 |
_Bnu | So there's like sixty percent of it missing or something, I have no idea. | 17:51 |
mntmn | maybe the filesave driver is the better base? | 17:51 |
_Bnu | I'm going to attempt rebasing this on FileSave, and see if it makes any difference. | 17:51 |
mntmn | interezzling | 17:52 |
mntmn | now i ended up in a situation where the test tone gets fed to me over and over again and the whole system hangs | 17:52 |
_Bnu | Sounds good. | 17:53 |
mntmn | sounds like a tone... | 17:54 |
mntmn | it's like i didn't get the disable signal... | 17:54 |
_Bnu | No one needs it. | 17:55 |
apolkosnik[m] | For a moment I thought Disable() | 17:56 |
mntmn | _Bnu: i agree that this stuff is highly annoying | 17:58 |
mntmn | it feels like we are trashing some memory or stack inside of AHI and sometimes it just gets into endless loops | 18:07 |
mntmn | _Bnu: btw if i remember correctly you used dos.library Delay() in your endless loop, is that safe? | 18:14 |
mntmn | oh. | 18:23 |
_Bnu | No idea. Nothing is safe, probably. | 18:26 |
_Bnu | I also made it non-endless by adding a "quitting" variable to the ahi_data... | 18:27 |
mntmn | mhm. so for me it seems like calling playerfunc/mixerfunc in a loop without Wait() ing for something freezes the system | 18:34 |
mntmn | which is weird because the filesave thing Wait()s only if it got a disable signal... then it waits to be enabled again. | 18:34 |
mntmn | the toccata driver Wait()s every time for a new signal, i think it is driven by the mix signal | 18:35 |
mntmn | but unclear to me how the mix signal is steered. it comes from the assembler | 18:35 |
mntmn | the PlayFunc monster does that | 18:36 |
mntmn | ok PlayFunc is passed into the SoftInt | 18:37 |
mntmn | achso and that is passed into T_RawPlaybackTags | 18:39 |
mntmn | > Note that ahiac_MixerFunc preserves ALL registers | 18:45 |
mntmn | but can that also be said for AudioCtrl->ahiac_PlayerFunc... | 18:46 |
mntmn | pretimer: All registers | 18:47 |
mntmn | * except d0 are preserved | 18:47 |
mntmn | so sometimes they clobber registers... | 18:47 |
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 18:51 | |
+ xet7 (~xet7@user/xet7) | 18:52 | |
_Bnu | Good. | 18:52 |
_Bnu | If d0 gets clobbered, you could probably do like uint32_t snakes = CallHookSomethingSomething, and then it'd by default grab that into d0 and stow away whatever might be in d0 at the moment. | 18:53 |
mntmn | true | 18:53 |
_Bnu | Haven't started adapting FileSave yet, just got back from the grobbery store. | 18:57 |
_Bnu | But yeah, if you look at the arguments they pass to the T_ (Toccata) functions | 19:01 |
_Bnu | The soft interrupts and stuff make appearances there, so that's probably what triggers them. | 19:01 |
- TadeusTaD (QUIT: Remote host closed the connection) (tadeustad@fulu.psifactor.pl) | 19:07 | |
mntmn | yup | 19:11 |
+ TadeusTaD (tadeustad@psifactor.pl) | 19:11 | |
mntmn | i'm trying to hook this up to my zz9000 audio interrupt now... even if that is much too slow (my buffers are ginormous) | 19:11 |
_Bnu | Bats 2000. | 19:12 |
_Bnu | I think it only requires you to call the thing something like 30-ish times per second for it to work... supposedly... | 19:12 |
mntmn | yeah but my buffer is like 1 second. | 19:12 |
mntmn | i should probably make it smoler | 19:12 |
_Bnu | Yeah, even 1/32nd of a second is a bit much for low latency audio, hahah. | 19:13 |
mntmn | alas, it is not working | 19:17 |
_Bnu | Why not... fix it... | 19:28 |
mntmn | because i made a silly mistake | 19:28 |
_Bnu | Fix it... | 19:29 |
mntmn | signalled glob_enable_signal instead of 1L<<glob_enable_signal | 19:29 |
_Bnu | globule | 19:31 |
mntmn | LOL | 19:34 |
_Bnu | ACTION enables the globules | 19:34 |
mntmn | i'm getting very slow output from ami playmod thingie | 19:34 |
mntmn | mostly noise | 19:35 |
mntmn | but yeah the interrupt is required to keep the thing going! | 19:35 |
mntmn | you need some kind of outside event source to tell it, ok next buffer | 19:35 |
_Bnu | Yeah, it seems like you can do absolutely nothing in that loop other than call those functions and quit. | 19:35 |
mntmn | no, you need to Wait() | 19:36 |
mntmn | until it's time to call the functions | 19:36 |
_Bnu | Well yeah. | 19:36 |
_Bnu | But I mean you can't do anything. | 19:36 |
mntmn | yeah you can't block | 19:36 |
mntmn | like you need to yield most time to the OS | 19:36 |
mntmn | ok i am getting very interesting noises... | 19:36 |
mntmn | now i just need to figure out wtf is their format | 19:37 |
_Bnu | Just modems. | 19:37 |
mntmn | haha | 19:37 |
_Bnu | If you set KNOWHIFI, it's probably S32. | 19:37 |
mntmn | i do not know hifi | 19:37 |
mntmn | return AHISF_KNOWSTEREO | AHISF_MIXING | AHISF_TIMING; | 19:37 |
mntmn | this is what i have | 19:37 |
_Bnu | Then probably S16... stereo? Depending on which one you selected. | 19:37 |
mntmn | well s16 stereo should be exactly right | 19:37 |
mntmn | maybe it's byte swapped for no reason | 19:37 |
mntmn | swyte bapped | 19:38 |
_Bnu | Yeah, that's why I added the debug output for what format the buffer's in. | 19:38 |
_Bnu | It's in the ahi_data->BuffType or something. | 19:38 |
mntmn | now i'm sad i removed my please-do-a-huge-byteswap register in zz9000 | 19:38 |
mntmn | what is AHIST_M16S | 19:42 |
mntmn | achso mono | 19:43 |
_Bnu | Yeah, S16S is Stereo and M16S is mono. | 19:44 |
mntmn | this is the kind of audio data i am getting http://dump.mntmn.com/screenshot-2021-08-18-19-47-23.png | 19:47 |
_Bnu | Looks like music. | 19:48 |
mntmn | yes but it mostly sounds like white noise | 19:48 |
mntmn | i guess i will just try a little/big endian swarp | 19:48 |
pasik_ | btw just thought of winuae.. and it seems it has UAESND AHI driver | 19:51 |
pasik_ | i wonder if that is opensource | 19:51 |
+ gdonner (~gdonner@c-98-253-93-116.hsd1.in.comcast.net) | 19:51 | |
pasik_ | i mean, if there's still need to check/verify details about the ahi driver mystery | 19:52 |
_Bnu | To begin with, the UAE AHI driver is not real. | 19:54 |
mntmn | hyper real | 19:54 |
_Bnu | Yeah, but it's not real 68k code. | 19:54 |
mntmn | wow i just wrote completely wrong code. | 19:57 |
pasik_ | https://github.com/tonioni/WinUAE/tree/master/od-win32 | 19:57 |
pasik_ | ^there's some ahi stuff there | 19:57 |
mntmn | in which is swap the same byte over and over again... | 19:57 |
- RobDangerous (QUIT: Ping timeout: 245 seconds) (~Thunderbi@p200300ec8f3e1c0059d89a3a77bac934.dip0.t-ipconnect.de) | 19:58 | |
pasik_ | but maybe that's just the host/windows side of the driver | 19:59 |
mntmn | still only noise | 20:00 |
mntmn | maybe it's 8 bit? | 20:00 |
_Bnu | Hm, it shouldn't be. | 20:06 |
mntmn | yeah. my byte swap is again completely wrong | 20:07 |
mntmn | maybe i'm too tired | 20:07 |
pasik_ | third time lucky | 20:08 |
_Bnu | I really dislike how AHI works, lolb. | 20:09 |
mntmn | yeah | 20:12 |
mntmn | ok now i get harsh farting noises | 20:12 |
mntmn | maybe it's because i request samples so rarely and i am missing most of them | 20:13 |
_Bnu | Probably, you're supposed to at least match the rate it requests of you, which it sets in ahiac_PlayerFreq. | 20:14 |
mntmn | ok hmm | 20:14 |
_Bnu | But it's like. | 20:14 |
_Bnu | How facking hard can it be to just tell you "here's an audio buffer, it's this big and it's in this format, play it", lol. | 20:15 |
_Bnu | It can call your driver functions whenever it wants to, but it chooses not to. | 20:15 |
mntmn | haha | 20:15 |
mntmn | naja they want a tiny buffer, they shall get a tiny buffer... | 20:17 |
mntmn | shrinking the buffer to 3840 bytes... | 20:30 |
- gdonner (QUIT: ) (~gdonner@c-98-253-93-116.hsd1.in.comcast.net) | 20:38 | |
_Bnu | BLAM BLAM BLOM | 20:53 |
_Bnu | ACTION blobs | 20:53 |
mntmn | i am getting some extremely noisy, broken, distorted playback that freezes the computer while playing | 20:59 |
mntmn | but it unfreezes after playback is done at least... | 20:59 |
forcie_ | smol smol buffer | 21:04 |
* forcie_ -> forcie | 21:05 | |
mntmn | i will just fake a smol buffer and append to a big buffer so that i can look at the data | 21:08 |
mntmn | i have confirmed that the format is AHIST_S16S | 21:21 |
mntmn | but it plays as noisy noise | 21:21 |
mntmn | i have captured a buffer to disk now and will check on the pc what's up with it | 21:22 |
mntmn | if you're interested, here's one buffer... http://dump.mntmn.com/ahidump1 | 21:23 |
mntmn | ok that data is actually fine when imported as raw data in audacity | 21:25 |
mntmn | with endianness "big endian" | 21:26 |
mntmn | dd conv=swab <infile >outfile | 21:27 |
mntmn | > swab swap every pair of bytes of input data | 21:29 |
mntmn | well that's what i tried to do in the damn ahi driver... maybe i did it wrong even after 3 tried | 21:29 |
mntmn | tries | 21:29 |
_Bnu | ('A`) | 21:36 |
_Bnu | Maybe that's what's freezing up the computer, all the endian swapping, haha. | 21:36 |
mntmn | well, that is possible. i just brought it back in | 21:38 |
mntmn | obvs it should better be done in the zz... | 21:38 |
mntmn | hey it works! | 21:39 |
mntmn | it's just a little too slow lol | 21:39 |
mntmn | like, the playback... | 21:40 |
mntmn | how are you supposed to time this... | 21:40 |
mntmn | is the pre+post timer thing supposed to fix up the timing? | 21:40 |
_Bnu | I think so, yeah. | 21:41 |
_Bnu | I mean I wasn't planning on using that crap at all, lolb. | 21:41 |
_Bnu | But then AHI foiled me, and I wasn't allowed to just eat the buffers. | 21:41 |
mntmn | fingers off those buffers... | 21:42 |
_Bnu | It's so stupid. It should really just be LoadSound and SetSound and not lock up waiting for something. | 21:43 |
_Bnu | It's like what is it even waiting for. It even says all I need to do is call the PlayerFunc X times per second... but maybe it'd work if I had something external trigger it instead of trying to delay it in the driver. | 21:43 |
_Bnu | The question is, how do I make something external trigger it on the PiStorm. | 21:44 |
_Bnu | I can trigger a fake interrupt, at the risk of locking up the Amiga chipset. | 21:44 |
mntmn | maybe you can use timer.device | 21:44 |
mntmn | or use amiga chipset vblank interrupts | 21:45 |
_Bnu | How, though... can I make the vblank interrupt trigger my soft interrupt or send a signal or something... | 21:46 |
mntmn | sure | 21:46 |
mntmn | you can register an interrupt server on any of those interrupts | 21:46 |
mntmn | and from inside your interrupt handler you can do Signal() | 21:47 |
mntmn | that's what i do right now... just i use AddIntServer(INTB_EXTER, db_interrupt); | 21:47 |
mntmn | and you would use something other than INTB_EXTER | 21:47 |
_Bnu | I think I tried to read the interrupt server stuff in the ZZ9000 USB Storage source or something, but I couldn't figure out how it worked. | 21:47 |
mntmn | it is very simple | 21:47 |
mntmn | you make a node like this: | 21:48 |
mntmn | db_interrupt->is_Node.ln_Type = NT_INTERRUPT; | 21:48 |
mntmn | db_interrupt->is_Node.ln_Pri = -60; | 21:48 |
mntmn | db_interrupt->is_Node.ln_Name = "ZZ9000AX"; | 21:48 |
mntmn | db_interrupt->is_Data = (APTR)0; | 21:48 |
mntmn | db_interrupt->is_Code = dev_isr; | 21:48 |
mntmn | (Interrupt structure) | 21:48 |
mntmn | dev_isr is just a function pointer | 21:48 |
mntmn | that function will be called when the interrupt is triggered | 21:48 |
mntmn | and you attach it to the desired interrupt line with AddIntServer(INTB_EXTER, db_interrupt); | 21:48 |
mntmn | and that's it | 21:48 |
_Bnu | Maybe it even has Nibbles support... | 21:49 |
mntmn | http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_3._guide/node01DA.html | 21:49 |
mntmn | funky docs | 21:49 |
mntmn | PORTS, COPER, VERTB, EXTER and NMI | 21:49 |
_Bnu | NMI sounds infinitely useful on the Amiga. | 21:50 |
_Bnu | I just have to press an external switch every time I want to trigger it... | 21:51 |
mntmn | haha | 21:51 |
mntmn | just connect it to your mouse wheel... | 21:51 |
mntmn | ok so i added the mystery pre / post timer thing and it made everything much worse | 21:51 |
mntmn | so i'm not sure what exactly that's supposed to do | 21:52 |
_Bnu | The free scrolling mouse wheel on my Logitech MZ500 or whatever it's called. | 21:52 |
_Bnu | So I can trigger a few thousand interrupts + get banned from Diablo II battle.net | 21:52 |
mntmn | oh what's that > AHIA_PlayerFreq (Fixed) - If non-zero, enables timing and specifies | 21:53 |
mntmn | how many times per second PlayerFunc will be called. This must | 21:53 |
mntmn | be specified if AHIA_PlayerFunc is! Do not use any extreme | 21:53 |
mntmn | frequencies | 21:53 |
mntmn | > enables timing | 21:53 |
mntmn | ah that's something that a user can do | 21:54 |
_Bnu | Yeah, but AHI sets that on its own. | 22:00 |
_Bnu | IIRC it defaults to 32 or something for 11KHz. | 22:01 |
mntmn | interrumps | 22:08 |
_Bnu | One interrupt costs $650. | 22:11 |
mntmn | seems so | 22:12 |
mntmn | accidentally turned chaos engine into a dance track by looping the first half second | 22:13 |
mntmn | (it wouldn't progress further as no more interrupts were fired) | 22:13 |
_Bnu | The secret strategy is to look at your phone, and then everything happens. | 22:16 |
mntmn | all these FIFOs and interrupts are making my head spin | 22:24 |
mntmn | it's a series of pipes... | 22:24 |
mntmn | ok after a while ahi is like this is going too fast! | 22:27 |
mntmn | and then it tries to throttle using disable/enable | 22:28 |
+ RobDangerous (~Thunderbi@p200300ec8f3e1c006065bac4a1b3280a.dip0.t-ipconnect.de) | 22:28 | |
mntmn | and that kinda fucks everything up | 22:31 |
_Bnu | I'm so glad that AHI is keeping track of you... | 22:32 |
mntmn | what we need is an mp3 decoder in main.c... | 22:35 |
_Bnu | Pfft, just use ADPCM, you already have that... | 22:37 |
_Bnu | As long as there's some MP3 decoder that can operate entirely on a piece of memory though, it should be easy to do it. | 22:37 |
_Bnu | Just allocate a buffer using the DMA ACC stuff and then call ACC_DEC_MP3 on it . . . | 22:38 |
mntmn | i think those kind of players exist | 22:40 |
mntmn | anyway, i need to put byteswapping in the card, it seems like 030 can't do it in realtime, wtf | 22:41 |
mntmn | something is going too slow so it processes only 20 buffers in the time it should process 25 | 22:41 |
mntmn | probably because it has to go in and out of zorro again to do the swarping | 22:42 |
_Bnu | Not all CPUs have a one cycle endian swap opcode for some reason... | 22:42 |
mntmn | ok, my last try for today | 22:48 |
_Bnu | But is it your final try for the game... | 23:05 |
mntmn | insert coin | 23:07 |
mntmn | finding the right synchronization primitives will be the hard part | 23:15 |
_Bnu | Bottle Force.adf | 23:39 |
mntmn | ok, enough of this for today | 23:42 |
mntmn | AHI is a huge timesink! | 23:42 |
_Bnu | ACTION is an action game | 23:45 |
_Bnu | Yeah, tell me about it. | 23:46 |
_Bnu | I've been at it for like three full days. | 23:46 |
mntmn | oof | 23:46 |
mntmn | at least i have some sound coming out, albeit it desynchronizes quickly | 23:46 |
mntmn | it might also be the player | 23:46 |
_Bnu | Or the disk you're reading it from, if it doesn't load the entire file... | 23:47 |
mntmn | naja it was reading a .mod | 23:47 |
mntmn | so that was ok | 23:47 |
_Bnu | Small mods... | 23:47 |
mntmn | but not clear if rendering the mod at 48khz 16bit stereo is fun for 030@25mhz | 23:47 |
mntmn | i would need to do some calculations... | 23:48 |
mntmn | it needs to feed 192000 bytes per second. | 23:48 |
mntmn | that should be doable for a 25mhz machine? | 23:49 |
mntmn | depending on how many layers of junk are in between... | 23:49 |
mntmn | i still have to understand better what the hell AHI thinks about timing | 23:50 |
_Bnu | No, probably impossible. | 23:52 |
_Bnu | Even 11KHz 8-bit is super hard for AHI typically. | 23:52 |
_Bnu | Like, AHI is the single biggest bottleneck for ScummVM, haha. | 23:52 |
_Bnu | Which is why I was hoping to completely avoid its stupid mixing and sample rate conversion shit. | 23:52 |
mntmn | ah i forgot that i'm using AHI 6 | 23:53 |
mntmn | the slow one | 23:53 |
_Bnu | Yeah, that's even worse. | 23:53 |
mntmn | ok ok ok | 23:53 |
_Bnu | The default setting for AHI is to "limit" itself to 90% CPU usage. | 23:54 |
mntmn | haha | 23:54 |
mntmn | > 'AHI' is pronounced 'atchii', as in 'God bless!'.) | 23:55 |
mntmn | wat | 23:55 |
_Bnu | Made by Swedish people, probably... | 23:55 |
mntmn | aha! | 23:56 |
mntmn | ok time to call it a day | 23:57 |
mntmn | probably it would be prudent later to write some direct-to-hardware plugin for eagleplayer and stuff | 23:57 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!