01:03 <+bridge> [ddnet] 01:03 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583067758422523924/q6qmmaiaux031.png 01:12 <+bridge> [ddnet] R.I.P. Linux ๐Ÿ˜‚ 05:35 <+bridge> [ddnet] <ะบะพั‚ัั> ๐Ÿค” 13:50 <+bridge> [ddnet] Hey, does someone have an idea why my client *sometimes* crashes if i try to connect my dummy on my server if there are more than 64 players? 13:55 <+bridge> [ddnet] @fokkonaut because of bugs 13:56 <+bridge> [ddnet] but is it clientside or serverside? because it only crashes sometimes 13:56 <+bridge> [ddnet] make a debug build and look at the core dump 13:56 <+bridge> [ddnet] how? 13:56 <+bridge> [ddnet] every crash in the client is a client-side bug 13:56 <+bridge> [ddnet] every crash in the server is a server-side bug 13:56 <+bridge> [ddnet] cmake -DCMAKE_BUILD_TYPE=Debug 13:56 <+bridge> [ddnet] how do i get the core dump? is it possible in vs 13:56 <+bridge> [ddnet] oh, Windows 13:56 <+bridge> [ddnet] ๐Ÿ˜„ 13:57 <+bridge> [ddnet] xd 13:57 <+bridge> [ddnet] Not sure, google how to debug a crash in VS 13:59 <+bridge> [ddnet] BTW what is this used for? SvMapUpdateRate 14:23 <+bridge> [ddnet] I can't seem to crash the client in debug mode xd 14:26 <+bridge> [ddnet] im running the vs compiled release version now and i also cant xD? 14:27 <+bridge> [ddnet] does anyone has another idea? 14:27 <+bridge> [ddnet] on how to debug this 14:27 <+bridge> [ddnet] maybe u fixed when u compiled xd 14:27 <+bridge> [ddnet] i havent changed client code 14:31 <+bridge> [ddnet] yea, i can crash the release version from ddnet.tw, but not the self compiled one 14:31 <+bridge> [ddnet] weird xd 14:32 <+bridge> [ddnet] try compiling the version from ddnet.tw not latest master 14:32 <+bridge> [ddnet] there is basically no difference and i just pulled, before i tried it with a version thats about 2 weeks old 14:32 <+bridge> [ddnet] also didnt crash 14:32 <+bridge> [ddnet] debug mode doesnt apply optimizations 14:33 <+bridge> [ddnet] ddnet binaries are crosscompiled mayb it has to do with it 14:33 <+bridge> [ddnet] delete windows 14:36 <+bridge> [ddnet] xd 14:36 <+bridge> [ddnet] u use windows 14:38 <+bridge> [ddnet] oh man i want to debug this :( 14:38 <+bridge> [ddnet] but i cant 14:38 <+bridge> [ddnet] :x 14:40 <+bridge> [ddnet] seems like its the cross compiling 14:41 <+bridge> [ddnet] hey @archimede67 do you have a second? 14:41 <+bridge> [ddnet] ye 14:41 <+bridge> [ddnet] can you join me? 14:42 <+bridge> [ddnet] where 14:42 <+bridge> [ddnet] oof 14:42 <+bridge> [ddnet] did your client crash? 14:42 <+bridge> [ddnet] man its instant 14:42 <+bridge> [ddnet] xd 14:42 <+bridge> [ddnet] ye 14:43 <+bridge> [ddnet] lol?!?!?!?!?! 14:43 <+bridge> [ddnet] but this seems ot be only for you 14:43 <+bridge> [ddnet] its weird like its not responding but i can see that its showing connection problems xd 14:43 <+bridge> [ddnet] crash 14:44 <+bridge> [ddnet] nobody ever had this before tbh :D 14:44 <+bridge> [ddnet] maybe its my pc 14:44 <+bridge> [ddnet] its too old 14:44 <+bridge> [ddnet] i mean, the code is kinda non-client-crashable xd 14:44 <+bridge> [ddnet] probably your pc, yea 14:44 <+bridge> [ddnet] xd 14:45 <+bridge> [ddnet] its this: 14:45 <+bridge> [ddnet] https://github.com/fokkonaut/BlockDDrace/blob/master/src/game/server/entities/character.cpp#L2926 14:45 <+bridge> [ddnet] 14:45 <+bridge> [ddnet] and this: 14:45 <+bridge> [ddnet] https://github.com/fokkonaut/BlockDDrace/blob/master/src/game/server/entities/character.cpp#L2957 14:45 <+bridge> [ddnet] man i know 14:46 <+bridge> [ddnet] 14:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583274851695984671/unknown.png 14:46 <+bridge> [ddnet] oh, so you get a timeout? 14:46 <+bridge> [ddnet] yeah 14:46 <+bridge> [ddnet] oh 14:46 <+bridge> [ddnet] 14:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583274970990379044/unknown.png 14:46 <+bridge> [ddnet] i thought your client crashed 14:46 <+bridge> [ddnet] me too 14:46 <+bridge> [ddnet] its not responding 14:47 <+bridge> [ddnet] but it responded again 14:47 <+bridge> [ddnet] and this happend xd 14:51 <+bridge> [ddnet] lol @archimede67 for me first try xD 14:52 <+bridge> [ddnet] @archimede67 also this time 14:53 <+bridge> [ddnet] doenst it crash for you? 14:53 <+bridge> [ddnet] no xd 14:53 <+bridge> [ddnet] oof u timed out 14:53 <+bridge> [ddnet] can you give me your settings_ddnet.cfg in pm? 14:53 <+bridge> [ddnet] k 14:54 <+bridge> [ddnet] do you have x64 or x86? 14:54 <+bridge> [ddnet] x64 14:57 <+bridge> [ddnet] yea, well, no XD it is still crashing 14:59 <+bridge> [ddnet] i just tested it with my brothers pc, it also crashes there 14:59 <+bridge> [ddnet] lmao my pc is just weird af 15:00 <+bridge> [ddnet] when it needs to crash it doesn't, but when not it does xd 16:03 <+bridge> [ddnet] @deen we should get UndoDB for ddnet ๐Ÿ˜› 16:17 <@deen> I'd be happy enough with a coredump for now 16:35 <+bridge> [ddnet] help me pls i have "error sound" 16:36 <@deen> Tysou: can you be more specific? 16:37 <+bridge> [ddnet] 16:37 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583302913150156810/unknown.png 16:37 <+bridge> [ddnet] but french 16:37 <+bridge> [ddnet] error audio 16:37 <+bridge> [ddnet] reload pc 16:39 <+bridge> [ddnet] rep 16:39 <+bridge> [ddnet] same 16:41 <@deen> ok, what error do you get on the black cmd window? 16:42 <+bridge> [ddnet] dont have cmd 16:42 <+bridge> [ddnet] ddnet 16:42 <+bridge> [ddnet] ?? 16:42 <@deen> You're on Windows? There should be a black window in the background showing the log 16:43 <+bridge> [ddnet] yes windows 16:44 <+bridge> [ddnet] but i dont know how to do sry french .. 16:45 <@deen> then ingame f1, logfile "client.log", restart client 16:45 <@deen> and check the client.log file 16:45 <+bridge> [ddnet] @Tysou normalement quand tu ouvres ton jeu t'as une fenรชtre de commande qui s'ouvre aussi 16:46 <+bridge> [ddnet] non ddnet j'ai pas 16:46 <+bridge> [ddnet] ๐Ÿ˜ญ 16:46 <+bridge> [ddnet] รงa 16:46 <+bridge> [ddnet] 16:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583305081500467221/unknown.png 16:46 <+bridge> [ddnet] dont have 16:46 <+bridge> [ddnet] tu es sur? 16:46 <+bridge> [ddnet] oui j'ai que celle de droite 16:46 <+bridge> [ddnet] ok vas dans les paramรจtres 16:46 <+bridge> [ddnet] dans le jeu 16:47 <+bridge> [ddnet] ok 16:47 <+bridge> [ddnet] dans "Gรฉnรฉral" 16:47 <+bridge> [ddnet] y 16:47 <+bridge> [ddnet] et coche cette case 16:47 <+bridge> [ddnet] 16:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583305359251210306/unknown.png 16:47 <+bridge> [ddnet] puis redรฉmarre ton jeu 16:47 <+bridge> [ddnet] ok 16:47 <+bridge> [ddnet] c'est lร  que s'affichent les logs que @deen te demande 16:48 <+bridge> [ddnet] ok 16:48 <+bridge> [ddnet] mr 16:48 <+bridge> [ddnet] c 16:48 <+bridge> [ddnet] then ingame f1, logfile "client.log", restart client 16:48 <+bridge> [ddnet] and check the client.log file 16:48 <+bridge> [ddnet] รงa pas besoin, regarde juste les messages dans la console quand tu as l'erreur 16:48 <+bridge> [ddnet] k 16:49 <+bridge> [ddnet] 16:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583305951113904129/unknown.png 16:50 <+bridge> [ddnet] [quakenet 16:51 <+bridge> [ddnet] @[quakenet] deen 16:51 <+bridge> [ddnet] no just @deen 16:51 <+bridge> [ddnet] @deen 16:51 <+bridge> [ddnet] xd 16:51 <+bridge> [ddnet] pardon xD 16:51 <+bridge> [ddnet] sry deen you'll have 6000 notifications :troll: 16:52 <+bridge> [ddnet] ;D 16:53 <+bridge> [ddnet] ... 16:56 <+bridge> [ddnet] Is it that short? 16:56 <+bridge> [ddnet] Nothing after the colon at the end? 16:56 <+bridge> [ddnet] @Tysou y'a pas marquรฉ plus sur cette ligne ? 16:56 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583307810444673030/unknown.png 16:58 <+bridge> [ddnet] 16:58 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583308168008957952/unknown.png 16:58 <+bridge> [ddnet] @Learath2 xd nice debug 16:59 <+bridge> [ddnet] pas mon faute 16:59 <+bridge> [ddnet] ๐Ÿ˜„ 16:59 <+bridge> [ddnet] its "ma faute" 16:59 <+bridge> [ddnet] :p 16:59 <+bridge> [ddnet] knew that was feminine the second i pressed enter 16:59 <+bridge> [ddnet] xD 17:00 <+bridge> [ddnet] just didn't sound right 17:00 <+bridge> [ddnet] also it's sdl's fault really 17:00 <+bridge> [ddnet] we just call SDL_GetError() 17:01 <+bridge> [ddnet] lol 17:01 <+bridge> [ddnet] nice sdl debug 17:01 <+bridge> [ddnet] comprend pas xD 17:01 <+bridge> [ddnet] @Learath2 so what can he do? 17:01 <+bridge> [ddnet] yes 17:02 <+bridge> [ddnet] makes two of us that comprends pas ๐Ÿ˜› 17:02 <+bridge> [ddnet] gimme a minute I'll take a look 17:02 <+bridge> [ddnet] ๐Ÿ˜‚ 17:04 <+bridge> [ddnet] what's even weirder is that the SDL source code doesn't have that colon, neither does our code 17:04 <+bridge> [ddnet] @archimede67 17:05 <+bridge> [ddnet] oh, it's winapi returning nothing for the error 17:05 <+bridge> [ddnet] hmm 17:06 <+bridge> [ddnet] @Tysou quelle version de windows? 17:06 <+bridge> [ddnet] last 17:06 <+bridge> [ddnet] 10 17:07 <+bridge> [ddnet] @Learath2 wait wat 17:07 <+bridge> [ddnet] how is that even possible 17:07 <+bridge> [ddnet] yeah makes no sense 17:08 <+bridge> [ddnet] @Tysou did you try redownloading the client? 17:09 <+bridge> [ddnet] yes 17:09 <+bridge> [ddnet] and delete config 17:09 <+bridge> [ddnet] same 17:11 <+bridge> [ddnet] @Learath2 17:12 <+bridge> [ddnet] my name _TPS_Dragon 17:13 <+bridge> [ddnet] Yeah I don't really see how that ever happens, It doesn't make sense that windows doesn't return a proper message for an error it produced 17:14 <+bridge> [ddnet] c'est un mystรจre ๐Ÿ˜› 17:14 <+bridge> [ddnet] ๐Ÿ˜‚ its so funny to see you speak french xd 17:14 <+bridge> [ddnet] quelle da dada 17:14 <+bridge> [ddnet] tf does that mean xd 17:14 <+bridge> [ddnet] idk 17:14 <+bridge> [ddnet] it sounds funny 17:14 <+bridge> [ddnet] ๐Ÿ˜‚ 17:14 <+bridge> [ddnet] ryozuki is obv better then me at french ๐Ÿ˜› 17:15 <+bridge> [ddnet] obv 17:15 <+bridge> [ddnet] and now ? 17:16 <+bridge> [ddnet] SDL calls `IAudioclient_Initialize`, which returns an error as a `HRESULT` which SDL passes to `FormatMessage` to get the error message, It makes no sense at all that the message is empty 17:17 <+bridge> [ddnet] hmmmmm 17:17 <+bridge> [ddnet] dont understand xD 17:17 <+bridge> [ddnet] @archimede67 17:18 <+bridge> [ddnet] short answer: Je ne sais pas aussi ๐Ÿ˜› 17:18 <+bridge> [ddnet] or should that be a "non plus", meh, either way idk 17:19 <+bridge> [ddnet] non plus is better 17:19 <+bridge> [ddnet] i dont know 17:19 <+bridge> [ddnet] yeah 17:19 <+bridge> [ddnet] Bonjour je ne connais pas le franรงais mais je sais comment utiliser un traducteur :) 17:19 <+bridge> [ddnet] maybe theres no error xd 17:19 <+bridge> [ddnet] @Ryozuki lol nobo 17:19 <+bridge> [ddnet] https://www.deepl.com/ 17:20 <+bridge> [ddnet] DeepL works pretty well actually 17:20 <+bridge> [ddnet] y 17:20 <+bridge> [ddnet] n 17:20 <+bridge> [ddnet] i work better 17:20 <+bridge> [ddnet] ๐Ÿ˜› 17:20 <+bridge> [ddnet] ๐Ÿ˜„ 17:20 <+bridge> [ddnet] but it doesnt has japanese 17:20 <+bridge> [ddnet] have 17:20 <+bridge> [ddnet] xd 17:21 <+bridge> [ddnet] oof 17:21 <+bridge> [ddnet] du coup ? 17:21 <+bridge> [ddnet] learn english 17:21 <+bridge> [ddnet] and now 17:21 <+bridge> [ddnet] @deen you seem to be the last one to touch the sound code, any idea why it'd fail like that? 17:21 <+bridge> [ddnet] i guess we'll have to wait deen 17:22 <+bridge> [ddnet] no matter how many times you ask @Tysou we just don't know, and it's really hard to know when it doesn't happen on our computers 17:22 <+bridge> [ddnet] yep 17:23 <+bridge> [ddnet] your best chance would be if deen somehow knows of this one ๐Ÿ˜› 17:23 <+bridge> [ddnet] whats the problem btw 17:23 <+bridge> [ddnet] @Ryozuki `SDL_OpenAudioDevice` fails, the error is `""` 17:24 <+bridge> [ddnet] sound is broken 17:24 <+bridge> [ddnet] on his pc 17:24 <+bridge> [ddnet] i had the same on arch but i installed pulseaudio to fix it ;) 17:24 <+bridge> [ddnet] xdd 17:24 <+bridge> [ddnet] ๐Ÿ‘Œ 17:24 <+bridge> [ddnet] pulseaudio 17:24 <+bridge> [ddnet] im joking u wont fix it u windows peasant 17:24 <+bridge> [ddnet] Well technically the error is `"WASAPI can't initialize audio client: "` 17:25 <+bridge> [ddnet] idk about windows api so 17:25 <+bridge> [ddnet] But that part is returned by SDL, winapi seems to return "" 17:25 <+bridge> [ddnet] i once had to change it to use directsound on ddnet 17:25 <+bridge> [ddnet] but idk if it was changed again 17:26 <+bridge> [ddnet] we cant do everything ? 17:26 <+bridge> [ddnet] u can try SDL_AUDIODRIVER=somewindows api ./DDNet 17:26 <+bridge> [ddnet] or smth like that 17:27 <+bridge> [ddnet] @Tysou just wait now until we go back to u i guess 17:27 <+bridge> [ddnet] k 17:27 <+bridge> [ddnet] @Ryozuki how to 17:28 <+bridge> [ddnet] ignore me 17:29 <+bridge> [ddnet] xd 17:30 <+bridge> [ddnet] okkk xD 17:30 <+bridge> [ddnet] but stressing if i dont play with sound 17:30 <+bridge> [ddnet] when did this happen anyways? 17:36 <+bridge> [ddnet] @Tysou 17:37 <+bridge> [ddnet] in other news, i'm starving and youtube keeps showing me food videos 17:37 <+bridge> [ddnet] for all 17:37 <+bridge> [ddnet] @Tysou c'est arrivรฉ quand ton problรจme de son? 17:38 <+bridge> [ddnet] yesterday 17:41 <+bridge> [ddnet] dont understand bad ... 17:41 <+bridge> [ddnet] Ah the discussion is here 17:41 <+bridge> [ddnet] I had the same problem once i guess 17:42 <+bridge> [ddnet] And it happend when i opened a corrupted demo by dragging it on ddnet.exe 17:44 <+bridge> [ddnet] @Learath2 17:44 <+bridge> [ddnet] how is it possible that the problem persists 17:46 <+bridge> [ddnet] I dunno which bind this caused, i should look it up when i am home 17:46 <+bridge> [ddnet] But i removed that bind and the problem was gone. 17:46 <+bridge> [ddnet] a bind? 17:46 <+bridge> [ddnet] for what 17:47 <+bridge> [ddnet] Apparently to open a demo. I dunno 17:48 <+bridge> [ddnet] wot 17:48 <+bridge> [ddnet] I am home in 15 min maybe i got time to check it out then 17:48 <+bridge> [ddnet] k but it sounds strange xd 18:17 <+bridge> [ddnet] i'm trying to understand how the actual `TStaticRingBuffer` works xd 18:40 <+bridge> [ddnet] Problem was caused by ui_demo_selected 19:00 <+bridge> [ddnet] @Learath2 how should i use TStaticRingBuffer with the replay having a variable length? 19:02 <+bridge> [ddnet] @archimede67 I'm not even sure if my idea would work tbh, I just put it out there, you'll have to stitch it together yourself 19:04 <+bridge> [ddnet] ๐Ÿ˜ญ xd 19:05 <+bridge> [ddnet] you might need to mess around a little 19:05 <+bridge> [ddnet] e.g. it comes to mind that snapshots are by definition, not complete 19:06 <+bridge> [ddnet] but I guess demos aren't complete either 19:07 <+bridge> [ddnet] its hard stuff 19:07 <+bridge> [ddnet] I think demos record one complete snapshot every 5 seconds 19:07 <+bridge> [ddnet] that's why i used a demorecorder xd 19:07 <+bridge> [ddnet] yeah I know, but the easiest solution is rarely the best solution ๐Ÿ˜› 19:07 <+bridge> [ddnet] but 19:08 <+bridge> [ddnet] now i have a ringbuffer with `CSnaphost` but idk if it acutally works xd 19:09 <+bridge> [ddnet] well write it out to a file and see if it works? ๐Ÿ˜› 19:09 <+bridge> [ddnet] i need to write demo header and all that stuff before xd 19:09 <+bridge> [ddnet] Create a demo recorder 19:09 <+bridge> [ddnet] Start it 19:09 <+bridge> [ddnet] feed it the snapshots using RecordSnapshot 19:10 <+bridge> [ddnet] oh yeah 19:10 <+bridge> [ddnet] and i need it to not record the actual gameplay 19:10 <+bridge> [ddnet] ok i see 19:10 <+bridge> [ddnet] ๐Ÿ˜„ 19:10 <+bridge> [ddnet] but now i go eat xd 19:12 <+bridge> [ddnet] trying to craft a demo by hand is a futile effort ๐Ÿ˜› 19:12 <+bridge> [ddnet] too much work 19:29 <+bridge> [ddnet] Rofi needs a better fuzzy search 19:29 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583346270115069952/JPEG_20190529_192932.jpg 19:30 <+bridge> [ddnet] i never had problems 19:30 <+bridge> [ddnet] xd 19:32 <+bridge> [ddnet] well i'm sure firefox should match fire better then "file creator" ๐Ÿ˜„ 19:41 <+bridge> [ddnet] @Learath2 even my fuzzy searcher does better than that ๐Ÿ˜› 19:49 <+bridge> [ddnet] @Learath2 werent u the one complaining about a unthemed rofi xd 20:00 <+bridge> [ddnet] @Ryozuki don't judge me, I'm just setting up ๐Ÿ˜› 20:00 <+bridge> [ddnet] i also got a good theme now 20:05 <+bridge> [ddnet] Lol only the f matches in firefox when u type fire? xd 20:07 <+bridge> [ddnet] 20:07 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583355840883326990/unknown.png 20:08 <+bridge> [ddnet] :poggers: 20:08 <+bridge> [ddnet] maim -d | xclip -selection clipboard -t image/png 20:08 <+bridge> [ddnet] so complicated to screenshot rofi 20:08 <+bridge> [ddnet] xd 20:37 <+bridge> [ddnet] xD 20:38 <+bridge> [ddnet] Still cannot stream? 20:55 <+bridge> [ddnet] oof 20:55 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583367899972894730/unknown.png 20:55 <+bridge> [ddnet] i guess what i did doesn't really work xd 21:04 <+bridge> [ddnet] @archimede67 du coup on peut rien faire pour moi ? 21:04 <+bridge> [ddnet] pas pour l'instant xd 21:04 <+bridge> [ddnet] ok 21:04 <+bridge> [ddnet] @jao be nice 21:05 <+bridge> [ddnet] @Ryozuki I just gave up and took the photo with a phone ๐Ÿ˜› 21:06 <+bridge> [ddnet] @archimede67 hf debugging that 21:06 <+bridge> [ddnet] xd 21:06 <+bridge> [ddnet] what i'm doing is fukin ugly xd 21:08 <+bridge> [ddnet] ah maybe its because i didn't stop the recorder xd 21:09 <+bridge> [ddnet] oh i heard hammer sound ๐Ÿ˜ฎ 21:11 <+bridge> [ddnet] lol, did you manage to record only a hammer sound? 21:12 <+bridge> [ddnet] idk xd 21:12 <+bridge> [ddnet] actually 21:12 <+bridge> [ddnet] i don't even know what size the ringbuffer should be 21:12 <+bridge> [ddnet] well I guess the amount of seconds you want to record times 50 21:12 <+bridge> [ddnet] why 50? 21:12 <+bridge> [ddnet] 50 fps? 21:13 <+bridge> [ddnet] there are 50 ticks in a second 21:13 <+bridge> [ddnet] oh 21:13 <+bridge> [ddnet] for now the size is 64*1024 21:13 <+bridge> [ddnet] and i get 0s demo from that 21:13 <+bridge> [ddnet] 0s doesn't really make sense 21:14 <+bridge> [ddnet] or at least 0.xx seconds 21:14 <+bridge> [ddnet] like 0.2 or something because only like 12 snapshots can fit in this buffer 21:14 <+bridge> [ddnet] show me how you are adding the snapshots to the buffer 21:14 <+bridge> [ddnet] 64*1024? 21:14 <+bridge> [ddnet] there 21:14 <+bridge> [ddnet] ```cpp 21:15 <+bridge> [ddnet] // replay: add snapshot to ringbuffer 21:15 <+bridge> [ddnet] if(g_Config.m_ClRaceReplays) 21:15 <+bridge> [ddnet] { 21:15 <+bridge> [ddnet] //dbg_msg("replay", "snapsize: %d", SnapSize); 21:15 <+bridge> [ddnet] CSnapshot *pSnapshot = m_ReplayBuffer.Allocate(sizeof(CSnapshot) + SnapSize); 21:15 <+bridge> [ddnet] mem_copy(pSnapshot, aExtraInfoRemoved, SnapSize); 21:15 <+bridge> [ddnet] } 21:15 <+bridge> [ddnet] ``` 21:15 <+bridge> [ddnet] there 21:15 <+bridge> [ddnet] ```cpp 21:15 <+bridge> [ddnet] // replay: add snapshot to ringbuffer 21:15 <+bridge> [ddnet] if(g_Config.m_ClRaceReplays) 21:15 <+bridge> [ddnet] { 21:15 <+bridge> [ddnet] //dbg_msg("replay", "snapsize: %d", SnapSize); 21:15 <+bridge> [ddnet] CSnapshot *pSnapshot = m_ReplayBuffer.Allocate(sizeof(CSnapshot) + SnapSize); 21:15 <+bridge> [ddnet] mem_copy(pSnapshot, aExtraInfoRemoved, SnapSize); 21:15 <+bridge> [ddnet] } 21:15 <+bridge> [ddnet] ``` 21:15 <+bridge> [ddnet] I meant of seconds you want to record times 50 snapshots obv 21:15 <+bridge> [ddnet] not bytes ๐Ÿ˜› 21:15 <+bridge> [ddnet] ok lemme tryagain xd 21:17 <+bridge> [ddnet] OH 21:17 <+bridge> [ddnet] i got a 6s demo now 21:17 <+bridge> [ddnet] but is it working 21:17 <+bridge> [ddnet] idk, you tell me ๐Ÿ˜› 21:17 <+bridge> [ddnet] LMAO 21:17 <+bridge> [ddnet] Its fully bugged ๐Ÿ˜‚ 21:18 <+bridge> [ddnet] Send 21:18 <+bridge> [ddnet] wtf the teeworlds music is playing from everywhere xD 21:18 <+bridge> [ddnet] k 21:18 <+bridge> [ddnet] but be ready 21:18 <+bridge> [ddnet] and its so speeded up xd 21:18 <+bridge> [ddnet] I'm guessing CSnapshot doesn't really take too well to being mem_copy'd ๐Ÿ˜› 21:19 <+bridge> [ddnet] 21:19 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583373823857000470/Genereatron_2019-05-29_21-17-15_replay.demo 21:19 <+bridge> [ddnet] oh dang it xd 21:19 <+bridge> [ddnet] 21:19 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583373888243761163/unknown.png 21:20 <+bridge> [ddnet] lol it's not as broken as i expected 21:21 <+bridge> [ddnet] xd 21:21 <+bridge> [ddnet] its still broken 21:21 <+bridge> [ddnet] you want to see a better broken demo? xd 21:22 <+bridge> [ddnet] try this one ๐Ÿ˜‚ 21:22 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/583374559542116354/Halloween_Night_2019-05-29_21-21-38_replay.demo 21:23 <+bridge> [ddnet] LOL 21:23 <+bridge> [ddnet] brilliant 21:23 <+bridge> [ddnet] ๐Ÿ˜‚ 21:23 <+bridge> [ddnet] need to be fixed xd 21:25 <+bridge> [ddnet] @archimede67 first of all, the timing 21:25 <+bridge> [ddnet] are you passing in the correct ticks? 21:25 <+bridge> [ddnet] idk 21:25 <+bridge> [ddnet] like 21:25 <+bridge> [ddnet] to Record snapshot that is 21:25 <+bridge> [ddnet] i added a thing in the ringbuffer to get the number of actual allocations it has 21:26 <+bridge> [ddnet] so i can loop through it and get all the snapshots 21:26 <+bridge> [ddnet] there 21:27 <+bridge> [ddnet] ```cpp 21:27 <+bridge> [ddnet] CSnapshot *pEntry = m_ReplayBuffer.First(); 21:27 <+bridge> [ddnet] 21:27 <+bridge> [ddnet] dbg_msg("replay", "number of snapshots in buffer: %d", m_ReplayBuffer.Allocations()); 21:27 <+bridge> [ddnet] 21:27 <+bridge> [ddnet] ReplayRecorder.RecordSnapshot(0, pEntry, pEntry->GetDataSize()); 21:27 <+bridge> [ddnet] for(int i = 1; i < m_ReplayBuffer.Allocations(); i++) 21:27 <+bridge> [ddnet] { 21:27 <+bridge> [ddnet] pEntry = m_ReplayBuffer.Next(pEntry); 21:27 <+bridge> [ddnet] ReplayRecorder.RecordSnapshot(i, pEntry, pEntry->GetDataSize()); 21:27 <+bridge> [ddnet] } 21:27 <+bridge> [ddnet] ``` 21:28 <+bridge> [ddnet] each snapshot is recorded on a tick no? 21:28 <+bridge> [ddnet] that is definitely not how you use a ringbuffer ๐Ÿ˜„ 21:28 <+bridge> [ddnet] ah 21:28 <+bridge> [ddnet] rip 21:28 <+bridge> [ddnet] i tought 21:28 <+bridge> [ddnet] while(buffer->Next()) { void *first = buffer->First(); .... buffer->PopFirst(); } 21:28 <+bridge> [ddnet] is the idiom 21:29 <+bridge> [ddnet] but the buffer is used 21:29 <+bridge> [ddnet] i should make a copy? 21:29 <+bridge> [ddnet] while(buffer->First()) sorry 21:29 <+bridge> [ddnet] i thought 21:30 <+bridge> [ddnet] see that is a problem I haven't actually considered 21:30 <+bridge> [ddnet] xd 21:30 <+bridge> [ddnet] it'll be fucked up if i pop it as i add items into it xd 21:31 <+bridge> [ddnet] if i pop items* 21:31 <+bridge> [ddnet] you could lock it, when you produce the demo 21:32 <+bridge> [ddnet] but then it'll be missing snapshots 21:32 <+bridge> [ddnet] it might be* 21:32 <+bridge> [ddnet] hmm 21:33 <+bridge> [ddnet] but i need to have the correct ticks also 21:34 <+bridge> [ddnet] ticks you could just store along with the snapshot, that's not the hard part 21:35 <+bridge> [ddnet] I guess you do need a copy, but you can't really just copy a ringbuffer 21:35 <+bridge> [ddnet] not the kind we have in the codebase atleast 21:36 <+bridge> [ddnet] nice... xd 21:36 <+bridge> [ddnet] you could allocate an array of snapshots in your thread, then copy into that from the ringbuffer 21:37 <+bridge> [ddnet] ah ye 21:37 <+bridge> [ddnet] like while(pEntry != buffer->Last()) { copystuff; pEntry = buffer->Next(pEntry); } 21:38 <+bridge> [ddnet] `for(void *pEnt = buffer->First(); pEnt != buffer->Last(); pEnt = buffer->Next(pEnt))` 21:38 <+bridge> [ddnet] even looks cute as a for loop ๐Ÿ˜› 21:38 <+bridge> [ddnet] ok thanks xd 21:39 <+bridge> [ddnet] I mean this is looking more and more horrible every second ๐Ÿ˜› 21:39 <+bridge> [ddnet] yeah xd 21:39 <+bridge> [ddnet] @heinrich5991 maybe you can come up with a decent idea ๐Ÿ™‚ 21:48 <+bridge> [ddnet] @archimede67 `CSnapshotStorage` looks interesting 21:50 <+bridge> [ddnet] hmm yeah 21:50 <+bridge> [ddnet] but what's the Tagtime? 21:53 <+bridge> [ddnet] I have no idea, looks like it's the current time 21:55 <+bridge> [ddnet] could maybe tack on a `GetInterval` function to return all the snapshots between two given ticks 21:56 <+bridge> [ddnet] but it's a linked list, not a ringbuffer, so it might be a tad unwieldy to use as such 21:56 <+bridge> [ddnet] you'll need to drop old snapshots 22:07 <+bridge> [ddnet] oh man i need to record snapshot from dummy as well 22:12 <+bridge> [ddnet] i'm lost 23:11 <+bridge> [ddnet] this seems like it's getting lost 23:11 <+bridge> [ddnet] in the intial version, how much did it lag? 23:11 <+bridge> [ddnet] perhaps we can just merge the single-threaded variant 23:15 <+bridge> [ddnet] I did a version with a thread which was safe i guess, you can take a look at it if u want, the only problem i could fine is that when you were playing for a long time (>50 mins) then save a replay, there is some delay (it gets bigger the more you play) like 3-4 seconds before seeing the notification, but you dont notice any freeze as it is in a thread 23:20 <+bridge> [ddnet] how did you deliver the notification back? 23:20 <+bridge> [ddnet] i wait for the thread to be done in the client loop 23:20 <+bridge> [ddnet] ah 23:20 <+bridge> [ddnet] do you know why it takes longer if you are playing for a longer time? 23:20 <+bridge> [ddnet] ye 23:21 <+bridge> [ddnet] the file size is bigger, so when loading the actual demo it takes more or less time, depending on that size 23:21 <+bridge> [ddnet] ah 23:21 <+bridge> [ddnet] to create a replay i use the slice method of the demoeditor, which loads first the demo then record it from a starttick to and endtick 23:22 <+bridge> [ddnet] ah 23:22 <+bridge> [ddnet] to create a replay i use the slice method of the demoeditor, which loads first the demo then record it from a starttick to an endtick 23:22 <+bridge> [ddnet] I mean if that version is safe from races, we could probably merge it and look onward from there 23:30 <+bridge> [ddnet] yeah just need to make sure i didn't do shit xd