02:02 < bridge> Yea same lol, with std::fill I would need to check cpp reference to know what it actually does 02:24 < bridge> It's used a lot in the ddnet code anyway 02:24 < bridge> Fill just fills the variable, it's not that confusing as other cpp stuff 02:26 < bridge> I just found this today 02:26 < bridge> I think I've been affected by this bug for a long time and just haven't noticed the exact cause / thought it was random until now 02:26 < bridge> or that I was going crazy because normally the tz setting that gets eaten is like off screen and the whole thing shifts and stuff seems to be randomly broken lol 02:27 < bridge> so, the fix is to check the full string before replacement 02:27 < bridge> (up to the value, obviously if the key were the same it should replace it) 02:27 < bridge> (up to the value, obviously if the key for what is being tuned were the same it should replace it) 02:29 < bridge> very frequently i will find that i can actually combine some tunes for simplicity, then doing this actually just sucks and i have to end up adding them all instead and deleting the old ones 02:29 < bridge> not to mention there is no easy way to choose where a setting appears in the list 02:29 < bridge> (at cursor position should be an option) 02:32 < bridge> I think overall the fact that it replaces redundant tunes is... a bit weird UX wise, I would prefer a warning but I understand why the check is done at all 02:33 < bridge> ddnet-rs' DDrace hud concept 02:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414045916658270329/image.png?ex=68be2462&is=68bcd2e2&hm=db26266900661eaa9aa619517c4c3300768b3e975262fb1ba5ac4e7f914a4d7c& 06:54 < bridge> morning 08:27 < bridge> gm 08:36 < bridge> This is wonderful:poggers2: 08:41 < bridge> Aw tyyyyyyyyy :3 08:41 < bridge> I love the difference between #showroom and #developer 08:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414138538227666975/image.png?ex=68be7aa4&is=68bd2924&hm=d6012ef933b5e1151d43dc72e9118a89d06b801586c93704ff8e700ae481a83f& 08:41 < bridge> but we are still waiting for accounts... 08:42 < bridge> :feelsbadman: 08:42 < bridge> They are done 08:42 < bridge> This is ddnet-rs hud and ddnet-rs has accounts 08:43 < bridge> so we just have to wait for ddnet-rs to be released? 08:43 < bridge> :nouis: 08:43 < bridge> Why wait 08:43 < bridge> Play it today 08:43 < bridge> Well, it's not completely done D: 08:44 < bridge> That probably won’t change in the near future 08:44 < bridge> But it’s quite complete actually 08:44 < bridge> lies lies lies 08:44 < bridge> I would play it already if gameplay wouldn’t feel off 08:44 < bridge> But the game sense might be a me issue 08:44 < bridge> Maybe it’s ready to play for others 08:45 < bridge> only thing that feels of for me is the emote wheel like oh my goodness gracious why can't i go all the way on the scroll 08:45 < bridge> See 08:45 < bridge> and also why is there a specific cursor for it 08:45 < bridge> @filoqcus: listen to dis guy he says it’s playable 08:45 < bridge> By the way, what an idea to create a clan system in DDNetPP, and clean up the db table with accounts a bit, because there are +- 100 values and half of them are not used 08:46 < bridge> Yes the db should be cleaned 08:46 < bridge> But not sure if I want to do a major db refactor now 08:46 < bridge> I rather focus on polishing the bugs first 08:47 < bridge> Also im a bit busy with ddnet-insta and ddnet and becoming top1 gores player 08:48 < bridge> ah but what about becoming top 1 employee /j 08:48 < bridge> Employee? 08:48 < bridge> Where 08:49 < bridge> Im free dancer 08:49 < bridge> I know 😄 08:49 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414140516932517990/IMG_2935.png?ex=68be7c7c&is=68bd2afc&hm=e66fae44470f9b5b9617cb81343e84eb9638ed38adde9cc5f8d3ea24939696f1& 08:49 < bridge> Pro Kogger 08:50 < bridge> yes the green full impact carry bush is often on kog 08:53 < bridge> when is Teeworlds in 2025? :omo: 09:05 < bridge> I usually upload these new years but not sure if there is one coming this year 09:17 < ws-client> **** can someone pls send some git merge driver pls 09:18 < ws-client> **** how is it that in 2025 i still get a git conflict when two new messages were added to the same array 09:18 < ws-client> **** https://zillyhuhn.com/cs/.d574303f-e3d9-43e1-9c13-6b3839edd637.png 09:18 < ws-client> **** like bro i want both adds. Just take it and be quiet. Watafak i want with a conflict here. So useless. 09:23 < bridge> Wat 09:23 < bridge> Just use AI to resolve merge conflicts like every 2025 programmer would do 09:32 < bridge> Why are harddrives so expensive rn xD 09:33 < bridge> I want 8TB ssd, but these mf costs like 600+ bucks 09:34 < bridge> Why do we have nobody here that works for Samsung xd 09:37 < bridge> good question 09:38 < bridge> boot times are way better on my new drive but I moved a lot of stuff around & now NixOS just lives on multiple drives where before it was spread out 09:38 < bridge> I'm happy with my computer upgrade. time to get 64gb more ram 09:42 < bridge> I swear RAM is never enough. 09:42 < bridge> 09:42 < bridge> Hard to believe just few years ago 4GB was the standard 09:42 < bridge> I am rarely under 32GB usage nowadays xD 09:43 < bridge> 2-3 code projects open + browsers = rip 09:49 < bridge> same 09:50 < bridge> if ur a mega multitasker u may ahti have open VMs or games 09:50 < bridge> if ur a mega multitasker u may also have open VMs or games 09:50 < bridge> Ok I tried codex from openai now on ddnet-rs. Simple task 09:50 < bridge> 09:50 < bridge> Prompt 09:50 < bridge> ``` 09:50 < bridge> the system.rs in lib/base currently only exposes time. 09:50 < bridge> 09:50 < bridge> I want to rename it to steady_clock.rs 09:50 < bridge> 09:50 < bridge> Additionally the SystemTimeInterface can be removed. time_get -> now 09:50 < bridge> The whole System struct can be renamed to SteadyClock and merged with SystemTime. It should still be clonable tho -> start_time: Arc. 09:50 < bridge> 09:50 < bridge> Make sure the whole program still compiles, since it's used in lots of places 09:50 < bridge> ``` 09:51 < bridge> 09:51 < bridge> https://github.com/ddnet/ddnet-rs/pull/143/commits/6e5b15f9faa25021cb31ac16cc5b33024c65517e 09:51 < bridge> 09:51 < bridge> First of all, it compiles.. Nice. 09:51 < bridge> 09:51 < bridge> But it throws 1 warning. 09:51 < bridge> 09:51 < bridge> Additionally from a human I'd have expected renames like this: 09:51 < bridge> ```diff 09:51 < bridge> -sys: Arc, 09:51 < bridge> +time: SteadyClock, 09:51 < bridge> ``` 09:51 < bridge> This AI thing simply left them called `sys`. 09:51 < bridge> 09:51 < bridge> I'd rate it a 7/10. I mean I had to do nothing except creating the prompt, but I'll need to refactor stuff. Also it took really long, I think the AI often compiled the project to check for errors (instead of e.g. using clippy). 09:51 < bridge> My pc fans were on most of the time.. 09:51 < bridge> 09:51 < bridge> It took like 15 minutes for that prompt 09:51 < bridge> I think I could have done it in a similar time 09:51 < bridge> ohoho, thats not half bad 09:51 < bridge> turn on prompt, say you're compiling and grab a coffee 09:52 < bridge> :nouis: 09:54 < bridge> just realized even tho there's not enough space in the case, I have a free 16x slot for my old gpu now but I can mount it vertically... 09:54 < bridge> fill the thing with fans and put it somewhere too far to hear 09:59 < bridge> opinions? 10:00 < bridge> i dont understand how you want to put your gpu far away xD 10:02 < bridge> no the whole computer 10:02 < bridge> it will be so loud to air cool all that 10:02 < bridge> especially in my case 10:03 < bridge> Buy new case 10:03 < bridge> `Arc` ok that is one example where AI is retarded again.. SteadyClock itself is already clonable 10:04 < bridge> -1 point for such an obvious error 10:06 < bridge> `Arc` ok that is one example where AI is retarded again.. SteadyClock itself is already clonable (even mentioned in the prompt) 10:10 < bridge> brilliant, I am going to ask chatgpt to write a rewview about a PR 10:12 < bridge> I revise my call, AI still sucks too much 10:12 < bridge> Gotta wait another 5 years 10:15 < bridge> My test is over, AI failed me, it just states obvious things and wants me to write unit tests 10:29 < ws-client> **** promting skill issue 10:30 < ws-client> **** my 2yo brother already prompts like a gigachad he is just AI native. We boomers just dont get it. 10:31 < bridge> if i prompt every step in detail then i dont need ai 😬 10:31 < bridge> but true 10:32 < bridge> 5 years old props can better deal with AI than us boomers already 10:33 < chillerbot12> Elo @ChillerDragon I just wanted to remind you that: twmap check for missing solo tiles around spawn for https://github.com/ddnet/ddnet/pull/10844 10:34 < ws-client> **** @Jupstar ✪ u still write prompts by hand??? ur so 2024 10:34 < ws-client> **** use AI to write prompt 10:36 < ws-client> **** AI is like mongodb. You turn it on and it scales right up. The only limiting factor is the human using it. 10:36 < bridge> I attached my mind reader cables now.. how stupid from me 10:36 < ws-client> **** I replaced my self at work with AI 3 months ago. So far nobody noticed. 10:37 < bridge> You still work? 10:37 < ws-client> **** no anymore 10:37 < bridge> What even is work? 10:37 < ws-client> **** reviewing ddnet prs is work 10:37 < bridge> I was born in a world where machines do everything 10:38 < bridge> As soon as i hit the jackpot I gonna be fulltime ddnet dev too 10:38 < bridge> Just wait few days 10:38 < ws-client> **** ok enuff trolling back to work i have short shift today 10:38 < bridge> Ah yeah true, sunday 10:38 < ws-client> **** MERGEDAY 10:39 < ws-client> **** rossbit already started at like 00:01 AM 10:39 < ws-client> **** embracing merge day with early bird mentality 10:39 < bridge> Robyte at 23:59. 10:39 < bridge> "Only 1 minute left til I can finnaly start a new day of work" 10:39 < ws-client> **** xd 10:39 < ws-client> **** fr 10:40 < ws-client> **** he is not hooman i swear 10:40 < bridge> Maybe he is AI.. have u ever seen him IRL? 10:40 < ws-client> **** I have not 10:40 < ws-client> **** have you? 10:40 < bridge> Yes I have, but have you met me IRL? 10:40 < ws-client> **** I have not 10:40 < bridge> I could be his companion 10:40 < ws-client> **** have you? 10:40 < bridge> I do 10:40 < ws-client> **** Hm 10:40 < ws-client> **** I have meet Zwelf irl 10:41 < ws-client> **** he can confirm you are real 10:41 < bridge> But did he? 10:41 < ws-client> **** he did not. 10:41 < bridge> You are real bcs someone else confirmed you 10:41 < ws-client> **** whO???? 10:41 < bridge> You know xd 10:41 < ws-client> **** i know 10:42 < ws-client> **** Meskalin saw my passport 10:42 < bridge> What xD 10:42 < ws-client> **** yes 10:42 < ws-client> **** and i saw his left egg 10:42 < bridge> ? 10:42 < bridge> is that enough confirmation though 10:42 < ws-client> **** okay now i rly gotta go back to productiveness 10:42 < bridge> Chiller u gey? 10:42 < ws-client> **** yes 10:42 < bridge> ogay 10:43 < bridge> meskalin isn't though, how did you manage to see that lmao 10:43 < ws-client> **** it was soo funny ngl 10:43 < ws-client> **** but i dont wanna dox him here 10:43 < ws-client> **** he is bae 10:56 < bridge> yo chiller 10:58 < bridge> what hertz your monitor has that you used yesterday ingame? 10:58 < bridge> and did you also check fps during our gameplay? 10:58 < bridge> 10:58 < bridge> bcs the default fps target is 4x hertz. just for fair comparision you'd need same fps in ddnet 10:58 < bridge> and if it's fps problem that ofc needs fixed xd 10:59 < bridge> and the freakin prediction timer needs fix 11:00 < bridge> harder than vulkan backend, 100% guaranteed 11:00 < ws-client> **** @Jupstar ✪ its 10 year old 60hz 4k monitor 11:01 < ws-client> **** u see fps in the clip right? 700 something 11:01 < bridge> oke 11:01 < ws-client> **** its not a fps problem i think 11:01 < ws-client> **** i play ddnet with 666 fps 11:02 < bridge> Well maybe this is not a FPS problem, but FPS is a problem 11:02 < bridge> When I play 500 fps it sucks hard 11:02 < bridge> 1000 fps smoothie 11:03 < bridge> Just want to minimize other factors 11:03 < bridge> :deen_star: 11:05 < ws-client> **** @learath2 @robyt3 can i only move parts of system.cpp to str.cpp for now? Doing this in smaller prs will be so much more fun and safer. Otherwise I have to try to speedrun it now. 11:05 < ws-client> **** wait 11:05 < ws-client> **** how did i never see this? 11:05 < ws-client> **** do we have numbered admins????? 11:06 < ws-client> **** heinrich5991 learath2 robyt3 11:06 < ws-client> **** 1 2 3 11:06 < ws-client> **** WATATFAKA 11:06 < ws-client> **** ILLUMINATI 11:06 < ws-client> **** @Jupstar ✪ my laptop has more hz i think it was also wonkey there iirc 11:06 < bridge> Ofc you can do it in pieces 11:07 < ws-client> **** <:poggers2:1008007455936094328> @learath2 did i ever tell you that you are my favorite maintainer? 11:08 < ws-client> **** dennis felsin9 would set the max of admins to 9 i assume? 11:08 < ws-client> **** interesting 11:08 < ws-client> **** gonna rename to ChillerDrag0 11:08 < ws-client> **** ez admin glitch 11:09 < ws-client> **** im sober i swear 11:10 < ws-client> **** @learath2 how do we order? 11:11 < ws-client> **** first all non utf8 and then all utf8? 11:11 < ws-client> **** or mix them to have str_truncate and str_utf8_truncate together? 11:18 < bridge> You can ask for ai review on any PR I think and the githuh AI will do it, I think you just request a review from co pilot. 11:20 < bridge> Not all that important to me, but first all non utf then all utf sounds a tad better 11:20 < ws-client> **** to me as well 11:20 < bridge> You need to ask githubs ai objective stuff. It refuses to form any opinion 😄 11:21 < ws-client> **** u mean subjective? 11:21 < bridge> No I mean objective. If you ask it to have a subjective opinion it doesnt answer 11:22 < bridge> E.g. "do you think this change is for the better" didn't work last I tried 11:22 < ws-client> **** How can objective stuff have a subjective opinion? xd 11:22 < ws-client> **** isnt objective = clear 11:22 < ws-client> **** and subjective = opinions possible 11:23 < ws-client> **** Like objective is when you have clear evidence 11:24 < ws-client> **** Reminds me of the one time our Ethics teacher said in front of a class of 14 year olds that there are objectively ugly people xxxxxxxxxxxxxxxD 11:24 < bridge> Ive never tried it tbh I only seen people use it on their own PRs when no one else will review it 11:25 < bridge> Humm, maybe I could have worded that better. Idk how to word it. Maybe specificity is more important? 11:25 < bridge> Idk, I know I couldn't get it to just give it's general opinion about a pr 11:29 < bridge> :justatest: 11:30 < furo> ChillerDragon: You can fix #10854 with `tune explosion_strength 0` 11:30 < chillerbot12> https://github.com/ddnet/ddnet/issues/10854 11:40 < ws-client> **** hmm 11:40 < ws-client> **** is that good style furo? 11:41 < ws-client> **** do vanilla servers even have that ye right? 11:42 < furo> Vanilla does not have it. 11:43 < ws-client> **** Oh i thought ddnet only added like 2 new tunes or sumsin 11:43 < ws-client> **** thats rip then 11:43 < ws-client> **** So it doesnt help with https://github.com/ddnet/ddnet/issues/10854 but with https://github.com/ddnet-insta/ddnet-insta/pull/411 :p 11:51 < ws-client> **** @byfox let me cook! I am onto something 11:51 < ws-client> **** yikes gotta go in 10mins aaaaaaaaaaa 11:52 < bridge> What do you want to cook? 11:52 < ws-client> **** never mind it only made it worse xd 11:53 < ws-client> **** i tried to unset this https://github.com/ddnet/ddnet/blob/bf28bd8201bbc4d6a2cdb6445b070afb7574726d/src/game/server/entities/projectile.cpp#L434 11:53 < ws-client> **** but then the nade still bounces you and goes through walls xd 11:53 < ws-client> **** but there probably is a cleanish way to actually do it 11:53 < ws-client> **** without any downsides 11:57 < ws-client> **** yea watefek non explosive projectiles antiping predicts to go through walls omg 11:58 < ws-client> **** we need proper prediction for the ball bounces i think anything else is cursed 11:58 < ws-client> **** fak 12:02 < bridge> Does the projectile have m_bouncing and still explodes? 12:03 < bridge> Ou there is bouncing? Nice 12:04 < bridge> I only tried explosive so far 12:04 < bridge> Why is there even bouncing? Does ddnet use that somewhere? 12:04 < bridge> wasntme 🙁 12:04 < bridge> Bouncing bullets 12:04 < bridge> Where 12:04 < bridge> Since when 12:05 < bridge> ?? 12:05 < bridge> I mean generally not related to anything we coded 😄 12:05 < bridge> Never seen them 12:05 < bridge> Every bullet bounces xd 12:05 < bridge> How do I get them 12:05 < bridge> ???? 12:05 < bridge> Off walls? 12:05 < bridge> yes 12:05 < bridge> you are trolling 12:05 < bridge> Your trolling 12:05 < bridge> Xd 12:05 < bridge> the shotgun bullets 12:05 < bridge> Bro whf 12:05 < bridge> That freeze you 12:05 < bridge> They hit the wall and stop there 12:05 < bridge> Oh ddrace 12:05 < bridge> And or explode 12:06 < bridge> ddrace yes 12:06 < bridge> Oh and laser 12:06 < bridge> Right 12:06 < bridge> laser is not a projectile 12:06 < bridge> Right 12:06 < bridge> So my troll question made more sense 12:06 < bridge> Because real shotgun doesn’t bounce 12:06 < bridge> Only laser does 12:06 < bridge> And laser is not a projectile ez 12:07 < bridge> So ddnet has no bouncing projectiles after all 12:07 < bridge> you are working on ddnet code though no? 12:07 < bridge> Yes yes shatap xd 12:07 < bridge> tf you mean. bullets bounce in ddnet 12:07 < bridge> Why would you call a laser a shotgun projectile 12:07 < bridge> Oh true 12:07 < bridge> ??? It's not 12:07 < bridge> Aaaaa 12:07 < bridge> Now I know which one you mean 12:07 < bridge> The tile not the weapon 12:08 < bridge> you dumbass 12:08 < bridge> Yes sorry I am new to the game 12:28 < ws-client> **** i only get different variations of bad and ridiculously horrible when playing with bounce and explosive flags 12:57 < bridge> I think chiller 12:57 < bridge> we onto smth 12:58 < bridge> i play the game in 0.25x speed, and it has weird micro stutters when changing directions 12:58 < bridge> why is this so unsmooth.. why are the physics so unsmooth generally 12:59 < bridge> and wtf is wrong with the server ghost 12:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414203523297447997/ghosty.mp4?ex=68beb72a&is=68bd65aa&hm=11ce2b0dcf39dc88d8d0373eaa90c62666ba6b7d65a46dd5d452de8ce30e605a& 13:00 < bridge> why does it jump around as if the LAN server is on northpole 13:00 < bridge> we need physics change 13:54 < bridge> Isn't that just the relatively harsh quantization? 13:55 < bridge> imo most noticeable part of it is that all velocities under 1/32 per tick get reduced to 0 13:55 < bridge> Looks like a rather unsmooth curve tho. 13:55 < bridge> 13:55 < bridge> I'd like to have that plotted 13:55 < bridge> Interpolated positions during a direction change 13:56 < bridge> that's 1/1600 tiles per second 13:56 < bridge> must be smth ugly like dis 13:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414217820530802840/image.png?ex=68bec47b&is=68bd72fb&hm=f20cfedbfd7948e111d70f646529c707aa6b5f285c92ea7e82f34447d0e79d77& 13:58 < bridge> that's 1.5625 tiles per second 13:58 < bridge> kinda ridiculous actually that 1 tile per second is too slow for the game to handle 15:13 < bridge> Hm, is this not exactly how it's meant to be? The fact that the hook applies uneven force causes the changes in slope, can't exactly smooth those out very easily without visually lying a lot 15:13 < bridge> Is it also stuttery if you just walk at normal walk speed? 15:13 < bridge> It is, but it's not very visible 15:14 < bridge> I mean from tick based games perspective probably 15:14 < bridge> But real physics would be smooth 15:16 < bridge> Not only is the slope not smooth, the velocity is limited to a discrete set of values 15:16 < bridge> I think it's just the relatively low tickrate, we can never have truly smooth physics but with tinier steps the assumption that the curve is linear is a better and better assumption 15:17 < bridge> yeah 15:17 < bridge> trash geme 15:17 < bridge> We could also use a better integrator 15:17 < bridge> I assume Teeworlds just uses explicit Euler integration? 15:18 < bridge> I mean that won't help interpolation but it would help "correctness" 15:18 < bridge> We could do a cubic interpolation with one more point 15:18 < bridge> but this point would probs need come from the past too and that would noticable make the game have even more input lag 15:19 < bridge> with 100 ticks it would be possible 15:19 < bridge> While talking about interpolation I missed my metro stop, now I need to go back 15:19 < bridge> Tja 15:19 < bridge> Yep, but it would be smootherly laggy 😛 15:21 < bridge> But 15:21 < bridge> I wonder about demos 15:22 < bridge> @learath2 do u know what is MSI and MSI-X 15:22 < bridge> now the MSI brand name makes more sense or maybe its unrelated 15:22 < bridge> positions being multiples of 1/32 of a tile is fine, but velocities being multiples of 1.5625 tiles per second feels wrong 15:22 < bridge> https://en.wikipedia.org/wiki/Message_Signaled_Interrupts 15:22 < bridge> Only what they are, nothing more 15:23 < bridge> @learath2 basically allows to have more control over setting up interrupts 15:23 < bridge> Microsoft Installer 15:23 < bridge> i think for example in AHCI, u can have like 6 ports, so for example u can setup different interrupts for each port 15:23 < bridge> Isn't it just in-band interrupts? 15:23 < bridge> with traditional interrupts u cant iirc 15:23 < bridge> u just have 1 ahci interrupt 15:25 < bridge> > MSI increases the number of interrupts that are possible. While conventional PCI was limited to four interrupts per card (and, because they were shared among all cards, most are using only one), message signalled interrupts allow dozens of interrupts per card, when that is useful 15:25 < bridge> > There is also a slight performance advantage. In software, a pin-based interrupt could race with a posted write to memory. That is, the PCI device would write data to memory and then send an interrupt to indicate the DMA write was complete. However, a PCI bridge or memory controller might buffer the write in order to not interfere with some other memory use. The interrupt could arrive before the DMA write was complete, and the processor could rea 15:27 < bridge> MSI (first defined in PCI 2.2) permits a device to allocate 1, 2, 4, 8, 16 or 32 interrupts. 15:27 < bridge> MSI-X (first defined in PCI 3.0) permits a device to allocate up to 2048 interrupts. 15:27 < bridge> > According to a 2009 Intel benchmark using Linux, using MSI reduced the latency of interrupts by a factor of almost three when compared to I/O APIC delivery. 16:07 < bridge> hello, is the wiki down ? 16:09 < bridge> no it was deleted 16:10 < bridge> some data from 2024 will hopefully be recovered in the next few weeks 16:21 < bridge> tf why 16:41 < bridge> !wiki 16:41 < chillerbot12> dead, tldr is ryo upgraded debian 13, somehow the mediawiki instance inside docker says db is read only mode, ryo thought backups worked but they didnt for a year cuz a tool renamed from mysqldump to mariadb-dump 16:45 < bridge> Actually, we have tee velocity, both internal and actual resulting velocity post-quantization, which could be used to refine interpolation 16:47 < bridge> Could it really be? What would you use those values for? 16:47 < bridge> wait, do we or do we not know both v0 and v1? 16:48 < bridge> We can know it if it's useful 16:49 < bridge> The issue is that I think that information is in reality redundant. The distance between the points already encodes the velocity due to the fixed tickrafe 16:49 < bridge> The issue is that I think that information is in reality redundant. The distance between the points already encodes the velocity due to the fixed tickrate 16:49 < bridge> that means we know the slope at both ends of the interpolation interval 16:49 < bridge> actually yeah I was thinking actual internal velocity would be useful but now I'm second-guessing myself 16:49 < bridge> Ah, I guess that can actually be used, you could have a bezier curve 16:50 < bridge> actually yeah I was thinking internal velocity would be useful but now I'm second-guessing myself 16:50 < bridge> now instead of a polyline we get a squiggly line 16:51 < bridge> Maybe, I think, could be useful 16:54 < ws-client> **** @Jupstar ✪ that clip is c++ right? not ddnet-rs? Then its the low tick rate i guess. 16:54 < ws-client> **** is it a high bandwidth server? 16:58 < bridge> So we are going from t1 to t2, we have x1 and x2, we have v1 and v2. Normally we just do a linterp from x1 to x2. That implies a constant v between t1 and t2, however that creates a discontinuity on the v curve, because we assume a constant v. 16:58 < bridge> 16:58 < bridge> So we are looking for a smooth curve v(t) s.t. v(t1) == v1, v(t2) == v2 and \int_{t1}^{t2} v(t) dt == x2 - x1 16:59 < bridge> I code next level game 17:06 < bridge> Don't have pen and paper with me, but you can definitely fit a quadratic there, so maybe we can try one. It would be more expensive to evaluate, but not that bad 17:06 < bridge> maybe it can fix interpolation with tele prediction too 17:07 < bridge> bcs velocity going into tele is usually 0 so it wont be interpolated in the middle between tele and to 17:21 < ChillerDragon> @avolicious sos GER3 little bit laggy omagawd helpo 17:56 < bridge> look up catmull-rom splines 17:56 < bridge> Those would work too, aren't they just quadratic too? 17:57 < bridge> actually wait I'm drunk 17:58 < bridge> hermite splines are what your use case is 17:59 < bridge> Nope, I misremembered catmull rom splines are cubic, but a quadratic can fit this, so anything higher degree can also be fitted np 18:00 < bridge> Also cubic, but yes it might be very easy to fit a hermite spline here 18:00 < bridge> the (cubic) hermite spline would be for x(t) so the velocity would be quadratic, yeah 18:03 < bridge> Probably a cubic bezier is what we'd want here. Even easier to control the derivatives at the end and start 18:05 < bridge> in the end they're all equivalent since there's usually a unique cubic satisfying the conditions, but cubic hermite splines are exactly the formulation where you specify the values and first derivatives at every node 18:07 < bridge> as opposed to bezier curves where you specify four control points (which have somewhat direct relations to input/output velocity, but with hermite splines it's a direct one-to-one) 18:07 < bridge> Oh, I was misremembering what hermite splines were, yeah, those would be easiest to fit 18:39 < bridge> ``` 18:39 < bridge> [1.433649] === Testing Read Sectors with GPT Header === 18:39 < bridge> Reading GPT header from LBA 1... 18:39 < bridge> Successfully read GPT header! 18:39 < bridge> Valid GPT signature found! 18:39 < bridge> GPT Revision: 0x10000 18:39 < bridge> Header Size: 92 bytes 18:39 < bridge> Number of partition entries: 128 18:39 < bridge> GPT Header (first 64 bytes): 18:39 < bridge> 0000: 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 18:39 < bridge> 0010: ef ec a9 70 00 00 00 00 01 00 00 00 00 00 00 00 18:39 < bridge> 0020: ff ff 1f 00 00 00 00 00 22 00 00 00 00 00 00 00 18:39 < bridge> 0030: de ff 1f 00 00 00 00 00 fe 7b 2e 51 dc 37 34 4e 18:39 < bridge> 18:39 < bridge> 18:39 < bridge> Testing multi-sector read (LBA 0-1, 2 sectors)... 18:39 < bridge> Successfully read 2 sectors! 18:39 < bridge> MBR signature at end of first sector: 55 aa 18:39 < bridge> GPT signature in second sector: "EFI PART" 18:40 < bridge> ``` 18:40 < bridge> im back with ahci, this time way better 18:40 < bridge> GPT????? 18:40 < bridge> When go back to MBR? 18:40 < bridge> @learath2 i didnt implement any filesystem 18:40 < bridge> im just reading the first 2 sectors 18:40 < bridge> i have no sense of filesystem yet 18:40 < bridge> just ahci reads 18:40 < bridge> GPT sounds too much like ai, we should replace it 18:40 < bridge> xd 18:41 < bridge> What are you planning for fs? Something novel or just fat32? 18:41 < bridge> i need fat32 for sure, because thats a filesystem i need to support for "installing" the OS itself, and many things like limine use it 18:41 < bridge> then i plan to make edfs 18:41 < bridge> I have had a veeeery long lived goal of making a filesystem suited for storing multimedia 18:42 < bridge> the boot partition uses fat too 18:42 < bridge> its a must 18:42 < bridge> we are bound to M$$ partitions even in computers 18:42 < bridge> life sucks 18:42 < bridge> Btreefs is not a bad point of inspiration 18:42 < bridge> a fs is a complex btree change my mind 18:42 < bridge> Eventhough it's author is an entitled ass 18:43 < bridge> Eventhough its author is an entitled ass 18:43 < bridge> i kinda like fat32 simplicity, its just limited by old time stuff 18:43 < bridge> like max 10 char filenames 18:43 < bridge> Btreefs and btrfs would agree with you 18:43 < bridge> And max 4g files 18:43 < bridge> exFAT is nice 18:43 < bridge> (the vfat hack extends filenames but imho its a ugly hack) 18:44 < bridge> also no notion of user ownership 18:44 < bridge> edfs v1 will probs be inspired by fat32 but with user and perms and not that limited 18:44 < bridge> Another thing I always wanted to do was try implement NTFS. I just find it insane that it takes so many LoC 18:45 < bridge> why does ntfs take so much? 18:45 < bridge> @learath2 anyway i want to keep it simple because i also want to get into the world of network driver implementation, and i hear it has a lot of quirks and bugs, will be fun 18:46 < bridge> No idea, that's why I wanna try. Every NTFS driver is soooo large 😄 18:46 < bridge> For a specific NIC? 18:46 < bridge> i guess there is no generic nic i think 18:46 < bridge> Veery annoying stuff, very annoying to test too, passthrough didn't work great last I tried 18:46 < bridge> ill search the most common one and the one qem usupports 18:47 < bridge> (i specifically avoid virtio because i dont want qemu only) 18:47 < bridge> I guess you could always do a virtio driver yeah 18:47 < bridge> How about a linux driver compatibility layer for edos? Instant support for literally everything 18:48 < bridge> idk how it would work 18:48 < bridge> sounds complex 18:48 < bridge> Extremely 18:48 < bridge> also part of fun is making them myself 18:48 < bridge> im learning a lot 18:48 < bridge> now i know about fat32 internals 18:48 < bridge> dir entries, sector chains 18:49 < bridge> btw bytemuck is a nice crate 18:49 < bridge> makes working with PODs ez 18:49 < bridge> I find old things so soothing. Such elegantly simple solutions 18:49 < bridge> yeah, optimizing for performance often makes things ugly 18:50 < bridge> Sure it wasn't extremely efficient, sure it wasn't without limitations. But it always looked so nice. None of this weird 2050 monkeysass sextuple tree with simd 18:51 < bridge> also currently i have a terminal and i have a "raw input syscall" but in the future i want to add "device" files that u mmap like linux 18:51 < bridge> ioctl 19:03 < bridge> o7 wiki 19:05 < bridge> Are you just mimicing linux for everything? You might find it more fun to experiment, I considered having most of init be part of the kernel in the past 19:05 < bridge> Another interesting idea is sockets for everything instead of files for everything 19:10 < bridge> what's negative stability buffer 19:46 < bridge> i guess yeah, its just that syscalls for some stuff can be expensive so it makes sense to mmap stuff in user land 19:52 < bridge> doing it from user is more complex tho 19:53 < bridge> i think 19:53 < bridge> i wonder howit would work, what if another program decides to mess up 19:54 < bridge> also some stuff from kernel threads i can have "atomic" parts bytemporarly disabling interrupts, i wonder how that would work in user 20:02 < bridge> @learath2 do u have any idea for alternative ways to handle errors in syscalls? by alternative i mean for example an alternative to errno 20:07 < bridge> Well idk what you need, but you can technically return whatever you'd like in whatever method you like from there 20:08 < bridge> You could even return json if that's what you want 20:08 < bridge> xd 20:09 < bridge> returning a single u64 is easy 20:09 < bridge> if i need to return a json i would need to allocate it for the user, or maybe the user provide a buffer 20:09 < bridge> but that buffer can fail 20:10 < bridge> Don't leave it to the user. You can have a thread local buffer for the error that the kernel manages 20:10 < bridge> true 20:10 < bridge> ur rigfht ive been mimicking linux a lot 20:10 < bridge> even my syscalls have nearly same numbers 20:10 < bridge> altho i added some syscalls that dont exist 20:11 < bridge> ``` 20:11 < bridge> const SYS_READ: u64 = 0; 20:11 < bridge> const SYS_WRITE: u64 = 1; 20:11 < bridge> const SYS_CLOSE: u64 = 3; 20:11 < bridge> const SYS_PIPE: u64 = 22; 20:11 < bridge> const SYS_MMAP: u64 = 9; 20:11 < bridge> const SYS_MUNMAP: u64 = 11; 20:11 < bridge> const SYS_EXIT: u64 = 60; 20:11 < bridge> const SYS_ERRNO: u64 = 0x400; 20:11 < bridge> const SYS_GETPID: u64 = 39; // get process ID 20:11 < bridge> const SYS_DRAW_RECT: u64 = 100; 20:11 < bridge> const SYS_RENDER: u64 = 101; 20:11 < bridge> const SYS_SCREEN_INFO: u64 = 102; 20:11 < bridge> const SYS_DRAW: u64 = 103; 20:11 < bridge> const SYS_RAW_INPUT: u64 = 200; 20:11 < bridge> ``` 20:11 < bridge> (Tbh I don't really mind linux, it made some pretty good decisions, but if you are making your own kernel might aswell have fun) 20:11 < bridge> i have these 20:11 < bridge> (yes i have syscalls to render) 20:11 < bridge> xd 20:11 < bridge> I would definitely want a kernel level bus in mine e.g. 20:12 < bridge> Though I guess people did propose kdbus already so it's not very novel 20:12 < bridge> multimedia 👀 20:12 < bridge> what would such a filesystem entail 20:12 < bridge> what do u mean by bus? 20:12 < bridge> like udev? 20:12 < bridge> I want the concept of tags to be native to the filesystem 20:12 < bridge> Like dbus 20:12 < bridge> dbus*^ 20:12 < bridge> ah 20:13 < bridge> yeah thats a nice idea 20:13 < bridge> i kinda have already "mailboxes" for inter thread comms 20:13 < bridge> but they require known data format 20:13 < bridge> 20:13 < bridge> i would need to do one for serializable data 20:15 < bridge> fwiw, it's not directly in the file system, but I was made aware of https://hydrusnetwork.github.io/hydrus/index.html recently and it looks cool 20:15 < bridge> ```rust 20:15 < bridge> pub fn sys_keyboard_raw(timeout_milis: u64, scancodes_buffer: *mut u32, size: usize) -> i64 { 20:15 < bridge> let thread = sched().current_thread_mut(); 20:15 < bridge> thread.errno = Errno::Clear; 20:15 < bridge> 20:15 < bridge> if scancodes_buffer.is_null() { 20:15 < bridge> thread.errno = Errno::EINVAL; 20:15 < bridge> return -1; 20:15 < bridge> } 20:15 < bridge> 20:15 < bridge> let mut buf = Vec::with_capacity(size); 20:15 < bridge> 20:15 < bridge> x86_64::instructions::interrupts::enable(); 20:15 < bridge> 20:15 < bridge> let rx = KEYBOARD_BROADCAST.subscribe_or_get(); 20:16 < bridge> 20:16 < bridge> while buf.len() < size 20:16 < bridge> && let Some(key) = rx.try_recv() 20:16 < bridge> { 20:16 < bridge> buf.push(convert_key(key)); 20:16 < bridge> } 20:16 < bridge> 20:16 < bridge> if buf.len() < size 20:16 < bridge> && let Ok(key) = rx.recv_timeout(Duration::from_millis(timeout_milis)) 20:16 < bridge> { 20:16 < bridge> buf.push(convert_key(key)); 20:16 < bridge> } 20:16 < bridge> 20:16 < bridge> unsafe { core::ptr::copy_nonoverlapping(buf.as_ptr(), scancodes_buffer, buf.len()) }; 20:16 < bridge> 20:16 < bridge> buf.len() as i64 20:16 < bridge> xd 20:16 < bridge> Nothing that can't really be implemented on top tbh, but I kinda like the idea of files being accessible as if they are real files but through many paths without having to build all the symlinks by hand 20:17 < bridge> hm i dont know what tags are 20:17 < bridge> Maybe versioning built right into the fs 20:17 < bridge> http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187 https://github.com/mayuresh/dhtfs 20:17 < bridge> Tags as in "rock", "familyphoto", "nature" 20:18 < bridge> Think a heavily indexed flat file store that emulates a folder structure 20:18 < bridge> Yeah literally this. Someone stole my idea :pepeW: 20:19 < bridge> the world is already made 20:19 < bridge> 11y ago too, I proabably first had it back then too. I wonder if it is someone that got inspired by me talking about it in many places 😄 20:19 < chillerbot12> Elo @chillerdragon I just wanted to remind you that: fix ddnet++ null GetInt loggedin 21:35 < ws-client> **** imagine if there was an emote for lags 21:35 < ws-client> **** like a broken signal thingy 21:35 < ws-client> **** everyone would spam during ddos xd 21:42 < bridge> As if that would be a normal thing to experience 21:42 < bridge> good idea 21:45 < ws-client> **** xd 21:45 < ws-client> **** plenty of laggers and high pingers would love it 21:46 < ws-client> **** trust 21:46 < ws-client> **** u know that `bind x say lag` is a thing right? 22:17 < bridge> yea 22:35 < bridge> @chillerdragon another big bug, v1,7 every time someone joins 22:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414348305768386590/image.png?ex=68bf3e01&is=68bdec81&hm=8295adbb011a590b1989a687810e6c91877c94ab32217b8a8b0019611e1cb64f& 22:52 < bridge> What’s the bug? @pathos3005 also holy shit SP someone is still alive? 22:54 < bridge> Oh you mean they didn’t send the message? Yea nobody ever had that bug that’s quite suspicious. But sorry I don’t take bug reports for old versions @pathos3005 :p let’s fix the new bugs together instead 22:54 < bridge> le chat 22:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414353141213691985/image.png?ex=68bf4282&is=68bdf102&hm=060575cf44c4a8b3b28cb393606bce9beae53c2dc94c572d201bba31ad1e8e81& 22:57 < bridge> Why is it that you are the only one that has weird bugs nobody else has? @pathos3005 is there anything unusual about your setup? 22:58 < bridge> like the current chat is very ... bulky 22:59 < bridge> works on wide res 23:07 < bridge> huh? 23:09 < bridge> idrk what you mean with "bulky" 23:10 < bridge> idrk what you mean by "bulky" 23:10 < bridge> i like the new function solly added, i could make the background invisible 23:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414357245831020714/image.png?ex=68bf4654&is=68bdf4d4&hm=e2045024130140baaddd99c232231f1065dfb8ff3ea2294ddfdb9d6f91ecb20b& 23:11 < bridge> kind of league of legends chat feel 23:11 < bridge> no bloat 23:12 < bridge> lmao i use it the opposite way 23:12 < bridge> i cant see the text xd 23:13 < bridge> everythings big 23:13 < bridge> better than the current ddnet-rs chat 23:15 < bridge> it's quite quite smaller than the current ddnet-rs' though 23:15 < bridge> yar but thats not the baseline 23:16 < bridge> btw 23:16 < bridge> working on a "classic mode" chat style 23:16 < bridge> cuz I'm pretty sure the so called og players wouldn't like this discordish style 23:16 < bridge> https://tenor.com/view/kitty-cute-yarn-gif-13128288 23:16 < bridge> cuz I'm pretty sure the so called og players wouldn't like this discord-styled chat 23:22 < bridge> https://tenor.com/view/done-overit-giveup-fall-fail-gif-7356905 23:23 < bridge> he never left and he's still trolling 23:24 < bridge> maybe it's too large, imagine this chat rapidly going by with 64 players 23:25 < bridge> but regardless, I like this chat look. I hope it's as easy to interact with it while on the menu 23:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414361442626572400/image.png?ex=68bf4a3d&is=68bdf8bd&hm=f0cf6284b6c8198967ce444a1fa8b305e33ea29e930c4f2971fbff4887429a29& 23:27 < bridge> Timestamps will still appear but only when you hover on the messages with the chat open 23:44 < bridge> could you make the player chats' margin lower, while the margin for the command chat the same? 23:45 < bridge> same with the playerboard on the bottom right, a bit closer together 23:47 < bridge> Like this? 23:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414366587309391892/image.png?ex=68bf4f08&is=68bdfd88&hm=544ecc01ab47316a37a126f231d554a7f1f2ebd2422a02121124d7b856882d1d& 23:49 < bridge> I think yeah, I kinda see the messages being closer, perhaps a bit more closer. But try to make the command messages further away from the player messages if able 23:49 < bridge> I think yeah, I kinda see the messages being closer, perhaps move it a bit more closer. But try to make the command messages further away from the player messages if able 23:49 < bridge> oh sure 23:49 < bridge> the point is to make the command messages and the player messages separate for readability, while making more space for them 23:50 < bridge> also based message example 23:50 < bridge> > perhaps move it a bit more closer 23:50 < bridge> oh jeez even closer? 23:50 < bridge> DD: 23:50 < bridge> I mean, what like 2 pixel - 4 pixel separation? 23:50 < bridge> the 10 pixels gap was precisely to improve readability 23:50 < bridge> I reduced it to 5 in this example 23:51 < bridge> imo the sweet spot is inbetween 2 and 4 23:51 < bridge> 2 is way too much DDDDDDDDDDDDDDDDDDD: 23:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414367429710319656/image.png?ex=68bf4fd0&is=68bdfe50&hm=fe0b704a6a666e86b839343871c00d8c43ccb399923c0e59680e9e2680175a09& 23:51 < bridge> well this is what I wanted so XD 23:51 < bridge> like, show the full screenshot 23:52 < bridge> 4 is okay 23:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414367632257187840/image.png?ex=68bf5001&is=68bdfe81&hm=4aa223d6b491f76fa30158e1bcc7d6b9b7544e1ea05807c1b80097318cde319a& 23:52 < bridge> kinda, but see how the letters actually get deformed a bit? 23:52 < bridge> how? 23:52 < bridge> set it to 8, 23:52 < bridge> divisible by 4 23:52 < bridge> letters tend to follow this rule 23:53 < bridge> I don't get what you mean by this 23:53 < bridge> nothing got deformed at all 23:53 < bridge> being a nerd at image compression algorithms, so I recognize the outlines being off by a pixel 23:53 < bridge> 8 is honestly perfect 23:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414368022524854313/image.png?ex=68bf505e&is=68bdfede&hm=bd9962977aa8da736554b9f1356918b307e4dfd62b5d4856ccdf587376d69a25& 23:53 < bridge> don't ask how I know that 23:53 < bridge> yeah, there you go 23:53 < bridge> this fine by me 23:54 < bridge> ...ok? 23:54 < bridge> I don't know how is that relevant with the conversation honestly LOL 23:54 < bridge> I don't know how is that relevant to the conversation honestly LOL 23:54 < bridge> Anyways 23:55 < bridge> about the player ranks on the bottom right, a bit closer? 23:55 < bridge> current padding for it is 20 23:55 < bridge> set it to around 15, but if it's too close, then around 18 23:56 < bridge> there we go, 8 for you close gaps enjoyer 23:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414368666530746431/image.png?ex=68bf50f7&is=68bdff77&hm=8a24ca2108c0368259bfba4b36ae1986d2c5a0114501d15ca7487c558dc48bd5& 23:56 < bridge> alr 23:56 < bridge> xd, 23:56 < bridge> before vs after 23:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414368843329044611/image.png?ex=68bf5121&is=68bdffa1&hm=c6d27478eb1ea94b592359c48221f8cf1b2d39bfab0aff0ee20bfbc45b0181c6& 23:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414368843794747433/image2.png?ex=68bf5122&is=68bdffa2&hm=34583b0ad7a6e439e6b1c3282a27f998db286b7aeb6bc1645ff008c1c3456573& 23:56 < bridge> jokes aside 8 really really fits 23:57 < bridge> imo the after is good 23:57 < bridge> yeah 23:57 < bridge> top left panel looks a bit weird, but idk how you wanna deal with it 23:57 < bridge> idk either if I'm honest 💯 23:58 < bridge> maybe add like a dropdown which will contain the other UI stuff like doublejump, deep, etc? 23:58 < bridge> and only show above the dropdown the weaons you can have? 23:58 < bridge> it looks super strange without the bg 23:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1414369243587412089/image.png?ex=68bf5181&is=68be0001&hm=e4b60c5fb5e472ad36e949c8d1734cac86a1c3763be1883135af28ec65d9df0d& 23:58 < bridge> yeah, the bg is necessary 23:59 < bridge> try it with a dropdown if you could, no need for animations currently, just only to hide the UI elements below 23:59 < bridge> eh idk i think this part would be nice if it was the same as in regular ddnet