mntmn | giving up for today, no progress made | 00:27 |
---|---|---|
- bfarmilo (QUIT: Ping timeout: 250 seconds) (~bfarmilo@202.56.40.240) | 00:30 | |
mntmn | tomorrow i'm gonna move this into fs-uae and also mess with machine code level debugging to figure out wtf ahi gets confused | 01:44 |
mntmn | i wonder if something overwrites parts of the ahi ctrl dev structure | 01:45 |
mntmn | or maybe it uses the math libs and i have bad ones? | 01:45 |
mntmn | i doubt it though | 01:45 |
+ bfarmilo (~bfarmilo@202.56.40.240) | 04:06 | |
+ bfarmilo_ (~bfarmilo@202.56.40.240) | 04:07 | |
- bfarmilo_ (QUIT: Client Quit) (~bfarmilo@202.56.40.240) | 04:09 | |
- bfarmilo (QUIT: Ping timeout: 252 seconds) (~bfarmilo@202.56.40.240) | 04:11 | |
+ bfarmilo (~bfarmilo@202.56.40.240) | 04:11 | |
- bfarmilo (QUIT: Ping timeout: 252 seconds) (~bfarmilo@202.56.40.240) | 04:35 | |
_Bnu | I fell asleep and died... | 05:05 |
_Bnu | mntmn: It's really strange, I wonder if it could have anything to do with the (68k) CPU data cache? | 05:08 |
_Bnu | Because if it's one thing the emulated Musashi CPU does not have, it's working instruction and data cache, haha. | 05:09 |
+ bfarmilo (~bfarmilo@202.56.40.240) | 05:24 | |
- norly (QUIT: Quit: Leaving.) (~norly@zhong.enpas.org) | 06:09 | |
- _Bnu (QUIT: *.net *.split) (~beeanyew@89-160-120-72.cust.bredband2.com) | 06:48 | |
+ _Bnu (~beeanyew@89-160-120-72.cust.bredband2.com) | 06:49 | |
- bfarmilo (QUIT: Ping timeout: 252 seconds) (~bfarmilo@202.56.40.240) | 08:00 | |
+ mnemotron (~wayne@194.135.47.239) | 08:02 | |
_Bnu | On an unrelated side note, "mahi" is Japanese for "paralysis"... | 08:06 |
+ bfarmilo (~bfarmilo@202.56.40.240) | 08:12 | |
+ bfarmilo_ (~bfarmilo@202.56.40.240) | 08:13 | |
- bfarmilo (QUIT: Ping timeout: 252 seconds) (~bfarmilo@202.56.40.240) | 08:17 | |
+ RobDangerous (~Thunderbi@p200300ec8f3e1c00e9b8d81dc3ff44b6.dip0.t-ipconnect.de) | 09:13 | |
- RobDangerous (QUIT: Client Quit) (~Thunderbi@p200300ec8f3e1c00e9b8d81dc3ff44b6.dip0.t-ipconnect.de) | 09:13 | |
+ RobDangerous (~Thunderbi@p200300ec8f3e1c00e9b8d81dc3ff44b6.dip0.t-ipconnect.de) | 09:20 | |
neoman | hi | 09:33 |
mntmn | _Bnu: i did try without caches and bursts, didn't make a difference. also tried ahi.device.000 | 10:46 |
neoman | disabled optimizations in vbcc? ;) they are buggy partly... | 10:49 |
neoman | (had some problems in my demoengine) | 10:50 |
mntmn | it's gcc | 11:13 |
mntmn | but there could also be a bug there | 11:13 |
mntmn | that's why i'm gonna look at the machine code level later | 11:13 |
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 11:17 | |
+ xet7 (~xet7@user/xet7) | 11:18 | |
_Bnu | Yeah, though I've found that GCC is in general a lot more reliable than VBCC, especially when it comes to keeping registers intact... | 11:45 |
neoman | bebbos? | 12:21 |
_Bnu | Yes. | 12:37 |
_Bnu | The other one doesn't have the NDK or any of the other SDKs suitable for use with GCC. | 12:38 |
neoman | I would also disable optimizations there as we also experienced some bugs | 13:04 |
neoman | or maybe try bartmans GCC 10: https://github.com/BartmanAbyss/vscode-amiga-debug | 13:04 |
neoman | https://github.com/BartmanAbyss/vscode-amiga-debug#gcc | 13:04 |
mntmn | neoman: interesting | 13:27 |
_Bnu | I have not experienced any bugs, aside from broken NDK protos. | 13:36 |
_Bnu | But he usually fixes those very quickly. | 13:36 |
_Bnu | But like I said, Bartman's (the other) GCC seems very unsuitable for things like device drivers. | 13:36 |
_Bnu | Unless you want to do it all in VASM, in which case you wouldn't be using GCC anyway... | 13:37 |
_Bnu | Disabling optimizations in GCC is like saying "I would like to code this all in assembler instead and get the same or a slower result". | 13:39 |
_Bnu | If you feel that you're getting bugs out of GCC, do make sure that they're actually bugs and you didn't just neglect to declare something as volatile if it really is. I did that at first when I ported over the RTG driver to GCC, and it optimized out a bunch of sequential writes to the same register. | 13:40 |
neoman | yeah all in all bebbos gcc is really good. I must admit I still have one bug which I still have to create an issue for... I also don't know if these AHI things are related to that but often I disable optimizations to locate the problem a bit more :) | 14:02 |
neoman | also as GCC is now officially maintained again for m68k, we can use newer GCC versions again! | 14:02 |
neoman | ah right and LLVM also has m68k support now :) didn't try it yet though | 14:04 |
_Bnu | I mean, I would say that my current driver is way too similar to mntmn's, and built with the very same GCC, that it shouldn't be the compiler that's the problem. | 14:26 |
mntmn | _Bnu: what's your theory for ahi4.18 forgetting to mix half of the input channels on my system? | 14:27 |
mntmn | i need to cross check with the paula driver still | 14:28 |
_Bnu | I don't have a theory for it yet. My initial guess would be that you're only copying half of the samples at some point. | 14:28 |
mntmn | _Bnu: that's not what is happening | 14:28 |
_Bnu | But that falls apart because they're interleaved. | 14:28 |
_Bnu | Yes, I know. | 14:28 |
mntmn | _Bnu: because if i pan extremely to one side in hippoplayer for example, i get all those samples filled in | 14:29 |
mntmn | _Bnu: but then left and right are just two copies of half of the input. | 14:29 |
mntmn | _Bnu: hippoplayer or ami-playmod send 4 channels to AHI. | 14:29 |
mntmn | _Bnu: AHI then mixes these into an interleaved stereo buffer. | 14:29 |
mntmn | _Bnu: this mixing step is broken on my system. with ahi 6 it works, but is too slow. | 14:30 |
_Bnu | Do all mods do this, or some specific mod file? All I have is the crap that's on the Coffin "Programs" disk. | 14:30 |
mntmn | _Bnu: my theory is that either 1. something breaks AHI at runtime or 2. AHI uses some broken system dependency. | 14:30 |
mntmn | _Bnu: all mods that i tried, for example chaosengine.mod, turrican 2 remix, some others that are in ami-playmod as examples | 14:31 |
_Bnu | That's possible, but all I have on the PiStorm is some super basic OS 3.1 install with AHI, P96 and some other stuff I use for testing. | 14:31 |
mntmn | yeah, i have a frankenstein OS so i will try in pristine os3.1 | 14:31 |
mntmn | i should check with snoopdos if ahi uses any libraries | 14:31 |
_Bnu | This is so strange. | 15:59 |
_Bnu | For some reason, AHI is sending me 729 mixed samples for what is supposedly an 11100Hz ass-music unit audio stream. | 16:00 |
_Bnu | Ehrr, 792 mixed bytes. | 16:01 |
_Bnu | So 198 mixed sample pairs, 16-bit. | 16:01 |
_Bnu | But it should be 888 bytes, or 222 mixed sample pairs. | 16:01 |
_Bnu | I mean, I can resample it to the target 11025Hz output no problem. But why does it do it. | 16:03 |
_Bnu | Now I'm curious though. What does AHI consider "11KHz" to be? | 16:07 |
_Bnu | Definitely 11025, so that's good. | 16:08 |
_Bnu | It's just that HippoPlayer's settings suck too much to actually set it to 11025. | 16:08 |
mntmn | haha | 16:22 |
mntmn | the AHI installer is not compatible with the Installer on the wb3.1 install disk. craps out because of some error | 16:24 |
mntmn | this is just some bizarre computer-like text adventure... | 16:24 |
mntmn | manual install it is | 16:25 |
mntmn | ok i have an emulator setup with serial debug via sashimi | 16:38 |
mntmn | kprintf doesn't work correctly though. it prints only zeroes | 16:39 |
mntmn | ok kprintf with %lx works | 16:45 |
mntmn | behaves exactly the same in emulator | 16:48 |
mntmn | with fresh 3.1 | 16:48 |
mntmn | so, at least i can reproduce the exact same brokenness | 16:48 |
mntmn | i removed some debug prints and now it crashes. | 16:51 |
mntmn | very fragile | 16:51 |
mntmn | (crashes in emulator) | 16:51 |
_Bnu | Yeah, you have to use %l when building for any 32-bit CPU, there was some thing in the Amiga developer manual thing about that, I think? | 16:51 |
_Bnu | Well, KPrintF is super dangerous anyway. | 16:51 |
mntmn | i didn't use it before | 16:51 |
mntmn | like, to debug i wrote to a zz register. but in the emulator i use kprintf now | 16:51 |
_Bnu | Moogles. | 16:52 |
_Bnu | ACTION tries to thonk | 16:53 |
_Bnu | Is it maybe crashing because you're freeing/not freeing something in AhiSubStop? or whatever the function is called? | 16:53 |
_Bnu | Or is it just crashing in general when you open the AHI prefs or something... | 16:53 |
mntmn | now it doesn't crash anymore, might have been stack of playmod / not enough stack for it. | 16:55 |
mntmn | ok so here you can see my loop and the output http://dump.mntmn.com/screenshot-2021-08-23-16-54-29.png | 16:55 |
mntmn | wait that's even weirder | 16:55 |
_Bnu | One chammel is empty... | 16:56 |
mntmn | not only that | 16:56 |
mntmn | those are longs | 16:56 |
mntmn | so every second set of samples is even empty here (both channels) | 16:56 |
mntmn | ah no | 16:56 |
mntmn | i am le dumbs | 16:56 |
mntmn | i made uint16_t* xbuf | 16:56 |
mntmn | uno moment | 16:56 |
mntmn | here http://dump.mntmn.com/screenshot-2021-08-23-16-57-52.png | 16:58 |
mntmn | so yeah, one channel is empty. | 16:58 |
mntmn | and you can see 1204 in the output. that is 0x1200 + number of channels | 16:59 |
mntmn | i.e. ahiac_Channels | 16:59 |
_Bnu | Yeah, I have that in my debuge output as well, that's just the internal number of channels. Only useful for self-mixing, if that would ever work... | 16:59 |
mntmn | also we have flags of 0x7 which is stereo, panning, volume iirc | 16:59 |
mntmn | _Bnu: ok | 17:00 |
_Bnu | https://gist.github.com/beeanyew/b7abf1dd5b3c219d6f3fa8c025bc0c63 | 17:00 |
_Bnu | The values are wrong endian, but that's what the first four bytes look for me with any random mod. | 17:00 |
mntmn | _Bnu: are you printing 16 bit words? | 17:00 |
_Bnu | But let me try switching to 48KHz. | 17:00 |
mntmn | i can also give you exactly this mod just to check if i am insane | 17:00 |
_Bnu | Yes, so left/right/left/right. First four samples. | 17:00 |
mntmn | http://dump.mntmn.com/ce.mod | 17:01 |
mntmn | ok | 17:01 |
_Bnu | Oops, forgot to recompile pi_ahi.c for 48KHz, lolb. | 17:02 |
mntmn | lulzes | 17:02 |
mntmn | for me it is same kaputt with 22050 hz | 17:02 |
mntmn | ok i have a call unfortunately... | 17:02 |
_Bnu | It sounds very good... | 17:03 |
mntmn | ;__; | 17:03 |
mntmn | then there is hope... | 17:03 |
_Bnu | But yeah, I see no empty samples... | 17:03 |
_Bnu | That's a lie, I'm sure there are some empty ones. | 17:03 |
_Bnu | But every second one isn't empty... | 17:04 |
_Bnu | Are you SURE you replaced the prefsfile with one that has HIFI disabled for the modes? | 17:04 |
_Bnu | https://cdn.discordapp.com/attachments/789807768554831902/879381997091442749/2021-08-23_17-08-36.mp4 | 17:10 |
_Bnu | There's some stutter, possibly because of the millions of piles of debuf printfs I have every time there's a new buffer... | 17:10 |
- mnemotron (QUIT: Quit: He Who Must Not Be Named) (~wayne@194.135.47.239) | 17:16 | |
_Bnu | Debuf... | 17:47 |
pasik | depoof | 17:48 |
mntmn | _Bnu: i have all kinds of modes! hifi and non hifi | 17:52 |
mntmn | _Bnu: panning and non panning | 17:52 |
mntmn | _Bnu: stereo and non stereo | 17:53 |
_Bnu | ce.mod also playing in stereo. | 17:53 |
_Bnu | Ah yeah, I only have four modes, 16-bit stereo/mono and 8-bit stereo/mono. | 17:53 |
mntmn | _Bnu: so here i was testing with VPS (volume, panning, stereo set to TRUE) | 17:53 |
mntmn | (i don't have 8 bit modez) | 17:53 |
mntmn | hmm how do you make 8 bit modes in the prefs file anyway... | 17:53 |
mntmn | do you set AHICF_BITS or whateves? | 17:54 |
_Bnu | That's a good question... | 17:56 |
_Bnu | I haven't really tested the 8 bit modes, since I wasn't going to do that until I had 16-bit working. | 17:57 |
_Bnu | But yeah, I hear the different Chaos engine sounds on different speakers. | 17:59 |
_Bnu | Unless I downmix to mono in OBS. | 17:59 |
_Bnu | https://cdn.discordapp.com/attachments/789807768554831902/879394897063473152/2021-08-23_18-00-46.mp4 | 18:01 |
mntmn | you are living my dream _Bnu and i am living my own mono nightmare | 18:01 |
pasik | :) | 18:02 |
_Bnu | ('A`) | 18:02 |
mntmn | ok what am i going to do about it... | 18:02 |
mntmn | emulator freezes when trying to play back another time, so something is definitely corrupted. | 18:03 |
_Bnu | I can re-upload my zip file and you can check if there's something I'm doing differently, not sure. I'd test it on the ZZ9000, but I lack some vital equipments... | 18:05 |
mntmn | yeah, i mean i'm testing without zz9000 in UAE right now. | 18:05 |
mntmn | same driver just without outputting anything to zz, instead it writes in a static buffer | 18:05 |
mntmn | static uint8_t glob_buf[3840*2]; | 18:05 |
mntmn | and then i just print a few words from it | 18:06 |
_Bnu | http://www.apehead.se/snakes9000/ahi.zip | 18:06 |
mntmn | and i use VERTB instead of my own external irq. doesn't make any difference | 18:06 |
_Bnu | Hm, I've tried to avoid global variables as much as I can in my driver, since it seemed like it might have different AudioCtrl for different playback things. | 18:07 |
_Bnu | But when mixing to your buffer on the ZZ9000, that shouldn't matter. | 18:07 |
_Bnu | (Since that's just a direct address.) | 18:07 |
_Bnu | Just don't ask me why I allocate 8 mixing/playback buffers and then I only use one and I have max channels set to 16... | 18:09 |
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 18:10 | |
+ xet7 (~xet7@user/xet7) | 18:11 | |
mntmn | _Bnu: yeah. i've thrown out many things from the driver | 18:15 |
_Bnu | Well, you can do as you wish, of course. I've mostly just added more things to mine... | 18:17 |
mntmn | hmm you have some stuff in SetSound | 18:24 |
_Bnu | Just debug things, I think? | 18:33 |
_Bnu | Oh, uh. I don't actually remember why that is there. | 18:34 |
_Bnu | Chaos Engine music still playing after 37 minutes... | 18:37 |
mntmn | ;_; | 18:44 |
_Bnu | But I don't think the code in SetSound actually does anything. | 18:47 |
_Bnu | It's just left over from when I was trying to do the mixing myself. | 18:48 |
mntmn | damn, why is keyboard input to COP fucked up in UAE | 18:52 |
mntmn | it types 10x b if i press b... | 18:52 |
_Bnu | Why not... bonus letters... | 18:53 |
mntmn | ah, i can get amiga serial port routed to telnet | 18:55 |
mntmn | > Starting program... watch out for bugs... | 18:58 |
_Bnu | Starting snakes... | 19:01 |
_Bnu | Playback in pi-ahi.audio is actually done over Snake 1, I guess... | 19:02 |
mntmn | why do we need utility library? | 19:04 |
mntmn | i forgot... | 19:05 |
_Bnu | Uhh... it's for something. | 19:16 |
_Bnu | One of the function calls, can't remember which one. | 19:16 |
_Bnu | But basically if you try to call anything and you don't have the library open in the current process, it'll crash and die. | 19:17 |
_Bnu | And then the AHI device managed to keep the Amiga alive even though it locked up from a missed interrupt... | 19:18 |
mntmn | cool cool | 19:21 |
mntmn | anyway here's a strange thing | 19:21 |
mntmn | if i allocate my base data structure in AllocAudio instead of init, it doesn't crash on reopening it anymore. | 19:21 |
_Bnu | I don't think I use the base data structure for anything... | 19:24 |
_Bnu | I set it, but I never use it. | 19:24 |
_Bnu | It's just left over from... something. | 19:25 |
mntmn | hmm so you don't have the signals in there? | 19:27 |
_Bnu | Which ones? | 19:33 |
_Bnu | I keep them in the one that gets allocated for AllocAudio. | 19:34 |
mntmn | yeah. | 19:34 |
_Bnu | The base one is never actually used, other than as a makeshift means to pass the address to the allocated one to the slave process. | 19:34 |
mntmn | ok | 19:35 |
_Bnu | So technically it's a memory leak... | 19:35 |
mntmn | yeah | 19:35 |
_Bnu | And I should figure out a better way to pass the pointer to the slave process. | 19:35 |
mntmn | i just use a global variable ;) | 19:35 |
_Bnu | But I couldn't figure out where CreateNewProcTags stuff the userdata. | 19:35 |
mntmn | what's your AHI stereo level in hippo player? 0%? | 19:35 |
_Bnu | Yeah but that won't work depending on where you declare it. | 19:35 |
mntmn | please explain @ that won't work | 19:35 |
mntmn | do global variables cause some kind of problem? | 19:36 |
_Bnu | Yes, depending on where you place them. | 19:36 |
mntmn | aha?? | 19:36 |
mntmn | so maybe that's my problem | 19:36 |
_Bnu | Only the bases can go above start. | 19:36 |
mntmn | maybe they point to stuff in AHI that i then overwrite | 19:36 |
mntmn | ah well i don't have my vars above start | 19:37 |
_Bnu | Because they end up in the BSS something something which is just a collection of single null pointers. | 19:37 |
_Bnu | Still, I assume there's some reason Thomas Richter says you shouldn't use global variables in P96 drivers. | 19:37 |
_Bnu | And we're just lucky that it works. | 19:37 |
mntmn | interdazzling | 19:38 |
mntmn | well, i can try to work around that... | 19:38 |
mntmn | maybe they don't use a proper segment loader with all bells and whistles to load this stuff | 19:39 |
_Bnu | Balls and whistlers, heh heh heh. | 19:39 |
_Bnu | Also, I have the stereo level set to 50% or something, because otherwise the stereo separation sounds kind of bad. | 19:40 |
_Bnu | But even if I set it to 0%, I still have sound on both speakers. | 19:41 |
mntmn | heh | 19:51 |
mntmn | ok | 19:51 |
mntmn | thanks | 19:51 |
mntmn | ok got it | 20:04 |
mntmn | global vars was the problem | 20:04 |
mntmn | so looks like global vars were overwriting stuff in AHI | 20:05 |
mntmn | i got rid of all of them and now i get stereo data | 20:05 |
mntmn | my god. | 20:09 |
- S0rin (QUIT: Ping timeout: 268 seconds) (~S0rin@user/s0rin) | 20:09 | |
+ S0rin (~S0rin@user/s0rin) | 20:13 | |
_Bnu | Yeah, the bases are the only thing you can really keep like that, I think... because they're sort of a natural part of all Amygor applications. | 20:13 |
mntmn | ok utility.library is needed for CallHookPkt | 20:14 |
_Bnu | Ah yeah, I knew it was needed for some function call. | 20:17 |
mntmn | ok, back to real hardware... | 20:19 |
mntmn | debugging this in UAE was a really good idea | 20:19 |
mntmn | coz of the speed of resetting etc... | 20:19 |
mntmn | and copying new driver versions in | 20:19 |
mntmn | yes, getting stereo on the real device now, just playback is very slow. | 20:23 |
mntmn | probably because of all those naughty kprintfs | 20:23 |
_Bnu | Also lolb, HippoPlayer playback time goes back to 0 if it goes over one hour. | 20:24 |
_Bnu | So now it's at 45 minutes again... | 20:24 |
mntmn | lol | 20:25 |
mntmn | are you listening to the same track for 1h45m? :3 | 20:25 |
_Bnu | Yes... | 20:30 |
_Bnu | I mean I listened to the Pinball Fantasies Party Land high score music for an entire day once, lol. | 20:30 |
_Bnu | I still don't remember how it goes... | 20:30 |
_Bnu | Because I always have to hear the first few notes before I remember a song at all. | 20:31 |
mntmn | nice. | 20:32 |
mntmn | i wonder if there are any 16 bit mods or something | 20:33 |
mntmn | hifi mods... | 20:33 |
mntmn | anyway, 030/25 has no problem with 48khz playback | 20:34 |
mntmn | at least if it's ahi 4.18 and byte swapping happens on the zz... | 20:34 |
mntmn | i have to say superfrog sounds really good | 20:35 |
pasik | at least all the unholy pc modules can be 16bit.. .xm, .s3m, .it | 20:38 |
pasik | dunno if hippo wants to play those | 20:38 |
mntmn | ah | 20:39 |
mntmn | good idea | 20:39 |
mntmn | it == impulse tracker? | 20:40 |
pasik | yup | 20:41 |
_Bnu | Infernal turds. | 20:47 |
- Fate (QUIT: Ping timeout: 248 seconds) (~fate@bnc.nordkommission.de) | 20:59 | |
+ Fate (~fate@bnc.nordkommission.de) | 20:59 | |
mntmn | hm mhm | 21:03 |
_Bnu | Oh no, sorry, apparently it goes up to 99:99 before it resets to 0. | 21:05 |
_Bnu | Ehrr, 99:59. | 21:05 |
_Bnu | So I've now been listening for 100 minutes and 86 minutes. | 21:05 |
mntmn | nice | 21:15 |
mntmn | deliplayer's ahinoteplayer seems to be too damn slow. | 21:15 |
mntmn | hippoplayer is much faster for some reason | 21:16 |
mntmn | need... 68060 | 21:24 |
mntmn | hippo can play .xm, but my comput0r is too slow | 21:24 |
_Bnu | Hipo Pleyer. | 21:24 |
_Bnu | Okay, 08:05, I think that's enough Chaos Engine, lolb. | 21:26 |
_Bnu | Playback stopped immediately, so it was feeding the samples close enough to 48KHz at least. | 21:27 |
mntmn | lol | 21:32 |
mntmn | nice | 21:32 |
neoman | you guys got AHI working? | 21:32 |
mntmn | yeah | 21:32 |
neoman | congratulations :) | 21:33 |
_Bnu | Now I just have to re-schmample to whatever the user configures the output as... since I can't actually count on it being any specific value. | 21:33 |
mntmn | but for separate things | 21:33 |
_Bnu | And then try to figure out how to get AHI to stop doing the mixing. | 21:33 |
_Bnu | I just hope I was of some help, lol. | 21:33 |
mntmn | _Bnu: yes. here is my current driver version btw https://source.mnt.re/amiga/zz9000-drivers/-/blob/wip-zz9000ax/ahi/driver/zz9000ax-ahi.c | 21:34 |
mntmn | fiddling with cs mk1 now... doesn't seem to like autobootz | 21:36 |
mntmn | i remember you told me your 060 machine also wasn't happy about it | 21:36 |
_Bnu | Yeah, it didn't like it at all. | 21:39 |
_Bnu | Maybe if you compile it with 68020-060 or whatever that flag is? | 21:39 |
mntmn | i can try. but it does end up in parse_rdb | 21:39 |
_Bnu | Yeah, that I saw from the debug output. | 21:40 |
mntmn | and gives some happy data and returns, but then everything hangs | 21:40 |
mntmn | like, it just sits there. i think you had this problem too | 21:40 |
mntmn | csmk1 already has a 060 patching rom, btw. | 21:41 |
_Bnu | Yeah, doesn't surprise me. It was surprising to me that no one seemed to know, though. | 21:43 |
_Bnu | And said you needed a dummy 68040 library, when all it does is make the thing crash. | 21:43 |
mntmn | ok, without my autoboot stuffs i get to the kickstart screen. | 21:45 |
mntmn | but now i have no disk with my softwarez. | 21:45 |
mntmn | autobootizzle | 21:46 |
_Bnu | Just insert flopy... | 21:48 |
_Bnu | 544MB floppy disk. | 21:48 |
mntmn | superfloppy | 21:51 |
mntmn | i think it might be about diagpt vs bootpt | 21:51 |
_Bnu | As far as I could tell, you need both(s). | 21:52 |
mntmn | yeah i have both. the docs about the diag area are a bit strönge | 21:58 |
mntmn | i am calling InitResident myself at the end of DiagPt, that maybe wrong? | 22:00 |
_Bnu | Just ignore all the docks... | 22:00 |
_Bnu | Well, I cann it at DiagInit, since I don't get to that code until after relocation is done. | 22:01 |
_Bnu | Call, even. | 22:01 |
_Bnu | You're not forgetting to open expansion.library in the new ROM, right? | 22:01 |
_Bnu | I forgot to check, and it's assembler so I have insane trouble reading it... | 22:02 |
mntmn | hmmm what about expansion.library... | 22:08 |
_Bnu | You have to open it for InitResident. Or I do. | 22:10 |
_Bnu | Uh wait, no. | 22:10 |
_Bnu | Not InitResident, something else. | 22:10 |
_Bnu | What was it... | 22:10 |
mntmn | the main difference is that you have another rom tag in the assembl0r bootrom | 22:10 |
_Bnu | AddBootNode | 22:10 |
mntmn | while the device itself contains a romtag already | 22:11 |
_Bnu | AddBootNode needs expansion.library. | 22:11 |
mntmn | ok | 22:11 |
_Bnu | Possibly MakeDosNode and etc. as well. | 22:11 |
mntmn | i have addbootnode in my device's init function and that opens expansion.library | 22:11 |
mntmn | i do not have 2 romtags | 22:11 |
mntmn | only 1, inside the device. | 22:11 |
_Bnu | Calling AddBootNode does not open expansion.library, though. At least not in my experience. | 22:12 |
mntmn | but i'm calling initresident in diag, and that might be wrong. | 22:12 |
mntmn | i know. | 22:12 |
mntmn | but i'm opening expansion.library in the device | 22:12 |
mntmn | and later call addbootnode, in the device. | 22:12 |
mntmn | not in assembler but in c code | 22:12 |
_Bnu | Ah yeah, sorry, I dunno how it works without a separate ROMtag for the device. | 22:12 |
_Bnu | I don't know why you wouldn't have a ROMtag in both. | 22:12 |
mntmn | well, in your case it looks like the Init in the romtag is called automatically | 22:13 |
mntmn | i don't know why you would have 2 romtags | 22:13 |
_Bnu | I don't know what it does, it's the example boot ROM. | 22:13 |
mntmn | ok | 22:13 |
mntmn | my understanding is that kickstart should find the romtag in the device and call init of it, perhaps | 22:13 |
mntmn | " dc.l _device_name \n" | 22:14 |
mntmn | " dc.l _device_id_string \n" | 22:14 |
mntmn | " dc.l _auto_init_tables \n" | 22:14 |
mntmn | interesting | 22:14 |
_Bnu | Ah yeah, sorry. I don't know why or how it'd do that. | 22:14 |
mntmn | naja the structure is exactly the same | 22:15 |
_Bnu | If your device is not loadable as a device driver in WB, something's wrong with it. | 22:15 |
_Bnu | Ie, by specifying it when running HDToolBox or something. | 22:15 |
mntmn | why should it not be loadable? | 22:15 |
_Bnu | I don't know...! | 22:15 |
mntmn | did you see it not being loadable? | 22:15 |
_Bnu | I did not, I only had it embedded in the firmware. | 22:16 |
mntmn | ok | 22:16 |
_Bnu | But I also don't know why the boot ROM wouldn't have a ROMtag when they all seem to have ROMtags. | 22:16 |
mntmn | ok weird thing | 22:16 |
mntmn | yeah but it has a romtag. in the device. the device in my case is combined with the rest of the bootrom | 22:16 |
mntmn | so there is a bootrom in all of this concatenated mess | 22:16 |
mntmn | sorry | 22:16 |
mntmn | i mean a romtag | 22:16 |
mntmn | damn words! | 22:17 |
mntmn | words are hard! | 22:17 |
mntmn | i mean, my bootrom = some assembler + the .device | 22:17 |
mntmn | mashed together in one binary | 22:17 |
mntmn | but there is one difference in the romtag i don't quite get. | 22:17 |
_Bnu | Yeah, but why only one? I've seen no other boot ROM that has no ROMtag for the boot ROM itself and a separate one for the device driver. | 22:18 |
mntmn | hmm ok i didn't know that you need two | 22:19 |
mntmn | i mean, i don't get what the "bootrom itself" is | 22:19 |
_Bnu | If you take a look at the Apollo boot ROM, the driver itself (which is gigantic) has a ROMtag in it separate from the one in RomBoot1.s | 22:19 |
mntmn | ok! | 22:19 |
_Bnu | I mean... as far as I know, the bootROM itself is what's called bootrom.s for PiSCSI. | 22:19 |
mntmn | i mean your romtag in the bootrom has the same device name like the device... | 22:19 |
mntmn | i mean, they have the same name | 22:19 |
_Bnu | It does. I can change it, if you want. | 22:19 |
_Bnu | To like sneaking_balls.device or something. | 22:20 |
mntmn | no, i don't know what any of that means | 22:20 |
_Bnu | It's code from the example boot ROM that isn't used. | 22:20 |
_Bnu | http://amigadev.elowar.com/read/ADCD_2.1/Libraries_Manual_guide/node0594.html | 22:21 |
_Bnu | You can mostly ignore all of it and just start doing your code after Init: | 22:21 |
_Bnu | But I can clean up the PiSCSI boot ROM if you want, and remove all the things that aren't used. | 22:27 |
mntmn | i am 100% sure that only 1 romtag is needed, in the device, and i understand now why there can be different types of Init in a romtag. | 22:27 |
mntmn | it's explained here http://wandel.ca/homepage/execdis/devices_doc.txt | 22:27 |
mntmn | The InitResident() function first checks if the RTF_AUTOINIT flag is | 22:27 |
mntmn | set in the RomTag. If it is not, it simply calls the routine pointed to | 22:27 |
mntmn | by "rt_Init" with A0 containing the value passed as "segList", and | 22:27 |
mntmn | returns. | 22:27 |
_Bnu | Alright, sorry. | 22:28 |
mntmn | in my device driver RTF_AUTOINIT is set, so in that case it looks for a init table instead of just jumping to a function | 22:28 |
_Bnu | Gotcha. | 22:28 |
mntmn | in your romtag RTF_AUTOINIT is not set, so that Init is called directly | 22:29 |
_Bnu | Yeah it's not set in the boot ROM ROMtag because it didn't seem like it should be set. | 22:29 |
mntmn | yeah. | 22:29 |
mntmn | i was calling InitResident() prematurely in diagpt that is probably wrong, kickstart should init the device itself later when it thinks so | 22:29 |
+ norly (~norly@zhong.enpas.org) | 22:30 | |
_Bnu | But autoinit is set in my device driver, because that's how it seemed like it should be. | 22:31 |
_Bnu | And I call InitResident on the address of the ROMtag at the point of allocated memory where I reloc the driver to. | 22:32 |
_Bnu | I don't call it on the boot ROM ROMtag. | 22:32 |
_Bnu | I thought the boot ROM ROMtag was just supposed to describe how the boot ROM worked. | 22:33 |
mntmn | the question is, can kickstart stuff handle RTF_AUTOINIT | 22:37 |
_Bnu | I dunno, I've never tried it. | 22:38 |
_Bnu | It says all the code has to be position independent, which is why I'm using branches instead of jumps everywhere. | 22:39 |
_Bnu | And all the jsrs are (pc). | 22:39 |
mntmn | yeah | 22:41 |
mntmn | rtc matschword | 23:11 |
_Bnu | Matchbox... | 23:17 |
mntmn | big hmm. | 23:29 |
mntmn | oh i have the drives now in Boot Options | 23:33 |
mntmn | maybe i really needed to compile the device for 060 | 23:34 |
mntmn | ZZDisk has a checksum error | 23:34 |
mntmn | eeeeeeeek | 23:34 |
mntmn | mon does not list 68060.library. | 23:38 |
mntmn | so i believe it is not in the cs rom. | 23:38 |
mntmn | leeching those phase5 libraries... | 23:40 |
_Bnu | You probably don't need to compile it specifically for 68060. | 23:41 |
_Bnu | But with the flag thing that makes it compatible with 68020 through 060. | 23:41 |
mntmn | nice, are you using that flag? then i will take it... | 23:42 |
mntmn | now it doesn't work anymore | 23:45 |
mntmn | how did i manage to get it to work once | 23:45 |
mntmn | seems to be a matter of luck. now it works again | 23:46 |
mntmn | ok setpatch now says "68040 support code loaded" | 23:47 |
mntmn | and "vl" in mon shows 68040.library and 68060.library. | 23:47 |
mntmn | ok i have a workbench | 23:54 |
_Bnu | I'm not using it, because I don't remember what it is. :( | 23:54 |
mntmn | workbench? | 23:54 |
_Bnu | I always just compile everything with m68020 for the PiStorm, since it's only 000-060. | 23:54 |
mntmn | ah, that flag | 23:54 |
_Bnu | No, the flag. | 23:54 |
mntmn | fun with flags | 23:55 |
_Bnu | 000-040, even. | 23:55 |
_Bnu | Technically it also supports the 68070, which is some weird 020 variant... | 23:56 |
mntmn | ok, my ahi stuff works on 060 too... | 23:56 |
mntmn | 68070? :3 | 23:56 |
mntmn | even 68060 is too slow to play jungle_3.xm | 23:57 |
_Bnu | Yeah, it's the CPU the Philips CD-i uses. | 23:57 |
_Bnu | How many channels is it? Isn't even a Pentium too slow to play some of those XM songs... | 23:58 |
mntmn | 8 channels | 23:58 |
mntmn | 3MB+ | 23:58 |
_Bnu | Huh, would be down to the rate of the samples then I guess. | 23:58 |
mntmn | i mean, i can faintly hear a crazy dnb track through all the overrun noise... | 23:58 |
_Bnu | I've only seen a few samples above 22KHz while playing MOBs on the PuStorm. | 23:58 |
mntmn | it's only a tiny bit too slow | 23:59 |
mntmn | maybe i shouldn't use ahi.device.000 | 23:59 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!