Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2024-05-22 00:00:00Z and 2024-05-23 00:00:00Z
Avatar
And you'll still see the classic propaganda against the socialism, like "look at the stasi, no freedom" The NSA has spying power and capabilities totally surpassing anything the stasi could possibly do Though this is surely off topic now
Avatar
chillerdragon BOT 2024-05-22 00:38:58Z
lmao
Replying to @Patiga huh I was not in vim there
00:39
How to quit discord xd
00:40
Compiling and connecting a tee should do. Then edit bots/sample.cpp and compile again. Let’s talk live when you are awake :)
Replying to @heinrich5991 ChillerDragon: could you give reproducing instructions so I can try loca…
Avatar
ws-client BOT 2024-05-22 01:41:34Z
<ChillerDragon> @heinrich5991 i have somewhat of an proof for a theory i forgot to test yesterday evening
01:42
<ChillerDragon> dlopen never works. Not even the first time. But its hard to catch. Because dlopen passes without error and dlsym passes without error and calling the function works as expected.
01:42
<ChillerDragon> But it never loads the function from the shared object when compiled with -rdynamic it just calls the function within the server
01:44
<ChillerDragon> So when i hold back the dlopen/dlsym calls until i recompiled the shared object it changes nothing. It only ever prints the message that is statically compiled into the server executable not the one from the shared object.
01:45
<ChillerDragon> And yes the function i am calling in the shared object is also compiled directly into the ddnet server. But thats a feature. I want it all. Static/dynamic/hotreload/standalone.
01:46
<ChillerDragon> I thought i ruled out that theory by comparing the function points which did not match. The one found by dlsym and the function that was defined within the server code.
02:14
<ChillerDragon> But the function pointer i load with dlsym and then also call is 0x7fb34456fc2d and the native function is 0x561b3c52a51b given that you can print the functions location with "%p", funname
Avatar
ws-client BOT 2024-05-22 02:24:30Z
<ChillerDragon> ah right and thats why i tried RTLD_DEEPBIND which should place the symbols before global scope. And that now even breaks the error if i delete the shared object.
02:27
<ChillerDragon> Symbol references in the shared object are resolved using (in order): symbols in the link map of objects loaded for the main program and its dependencies; symbols in shared objects (and their depen‐ dencies) that were previously opened with dlopen() using the RTLD_GLOBAL flag; and definitions in the shared object itself (and any dependencies that were loaded for that object).
02:28
<ChillerDragon> from dlopen man page hmm
02:33
<ChillerDragon> ok i made it work
02:33
<ChillerDragon> kinda xd
02:33
<ChillerDragon> so collision accessing hot reloading is working now poggers
02:33
<ChillerDragon> but i had to sacrafice also statically linking the same method into the server code
02:34
<ChillerDragon> but dlsym should be able to find the symbol i want it to find even when compiled with -rdynamic it works without so it has to work
02:35
<ChillerDragon> i guess with -rdynamic the server exposes its own symbols so when it calls dsym to search something it finds it in it self first lol .. so annoying
02:36
<ChillerDragon> especially on windows and releases it should just be compiled into the server. Not being external at all. But then i want the ability to hot reload overwrite it by loading a shared object. That has to be possible.
02:37
<ChillerDragon> why do i pass dlsym a handle to a shared object file when it decides to search in an entirely different file anyways!?
Avatar
ws-client BOT 2024-05-22 03:27:08Z
<ChillerDragon> Interesting it seems like i have the same problem without dlsym. Just a regular function call within the shared object. It is not calling the function defined in the shared object but in the process it was loaded in from?? Shouln't that be a hardcodet address somehow?
03:48
<ChillerDragon> Bus error xd never seen that one before
Avatar
morning
Avatar
good afternoon
Avatar
morning
Avatar
ws-client BOT 2024-05-22 06:38:56Z
<ChillerDragon> good morning european time zone enjoyers
Avatar
morning tea enjoyers and others
Avatar
Coffee (edited)
f3 1
greenthing 1
Avatar
norming
Avatar
ws-client BOT 2024-05-22 07:11:41Z
<ChillerDragon> i have the feeling using a macro to copy code would work
07:11
<ChillerDragon> ffs i want this to work
Avatar
hard working chiller working hard to make hard thing works
Avatar
Welp, here we go again
07:30
This time I can confidently say that I can finish the main menu without giving up on the spot lmao
Avatar
ChillerDragon: morning
07:38
I guess you could rename the function that you statically compile into the server
Avatar
moin owo
Avatar
ws-client BOT 2024-05-22 07:44:25Z
<JStar> good morning epyc irc discord chat enjoyers and others
07:45
<JStar> @chillerdragon, will you create epyc fng server side bots?
07:46
<JStar> then please write in rust, thanks heartw
Avatar
Avatar
Cellegen
Welp, here we go again
epic menu moment
Avatar
yeah, now Imma have to manually insert every single flag data
08:04
justatest
Avatar
and yeah, no other way around it, have to do it
08:05
the fact that we include almost every language in the world is nuts to me
Avatar
you're recreating ddnet in godot? xd
Avatar
Im trying to recreate the client part
08:38
well communicating with the servers with gdextension aint gonna work
08:38
So that needs also an overhaul
08:39
So yeah, gonna implement single player lol
Avatar
Avatar
Cellegen
well communicating with the servers with gdextension aint gonna work
why is communicating with the servers not going to work?
Avatar
matching all of the incoming datas will be very difficult to optimize
08:41
any wrong data or exploit will lead to chaos
Avatar
Avatar
Cellegen
matching all of the incoming datas will be very difficult to optimize
It should work after a quick look in godot docs
08:42
They offer low-mid and high level abstractions
Avatar
can you use external libraries in godot?
Avatar
Avatar
heinrich5991
can you use external libraries in godot?
Yes
Avatar
then it shouldn't be too hard™
Avatar
Avatar
Cellegen
Im trying to recreate the client part
ah i see cool stuff
08:49
i don't think you should try to 1:1 recreate the client though 😅
08:49
if you're going to start from the bottom up why not give it its own flavor
Avatar
Avatar
heinrich5991
then it shouldn't be too hard™
I have to learn that tho
Avatar
Avatar
Cellegen
I have to learn that tho
Modules: The Summator example in Custom modules in C++ is great for small, custom modules, but what if you want to use a larger, external library? Let's look at an example using Festival, a speech ...
Avatar
Avatar
louis
i don't think you should try to 1:1 recreate the client though 😅
I should, good practice
Avatar
I guess it could be hard if you've not dealt with native libraries before
Avatar
I mean, if the data I get from the servers are readable as JSON, I can easily read it (inside GDScript) (edited)
08:58
f3a686b Show percentage of loaded rcon commands - ChillerDragon 612a71f Merge pull request #8351 from ChillerDragon/pr_rcon_percentage - heinrich5991
Avatar
Avatar
Cellegen
I mean, if the data I get from the servers are readable as JSON, I can easily read it (inside GDScript) (edited)
please dont use json for gamedata 🤢
Avatar
this would be terribly slow
Avatar
I'll handle it differently dont worry
Avatar
yaml ftw
Avatar
I can use compressed packages as well, which is cpp
Avatar
Avatar
MilkeeyCat
yaml ftw
toml 🙂
Avatar
Amber The Programming Language
Avatar
Avatar
Avolicious
this would be terribly slow
note that parsing json isn't as slow as you make it out to be
09:08
the json web claims to be a middle ground
09:08
"It is easy for humans to read and write. It is easy for machines to parse and generate. "
Avatar
Avatar
heinrich5991
note that parsing json isn't as slow as you make it out to be
compared to binary, it is slow. There is no human interaction inbetween, so json is the wrong format at all
gigachad 1
09:10
If you really need to depend on key value patterns in data (de)serialization use msgpack instead (edited)
Avatar
Avatar
Avolicious
compared to binary, it is slow. There is no human interaction inbetween, so json is the wrong format at all
the human interaction in this case is the developer who prefers JSON
Avatar
Avatar
heinrich5991
the human interaction in this case is the developer who prefers JSON
but the tradeoff is not worth it
Avatar
pepeW I'll figure something out
09:12
for save / load data handling, I prefer JSON cuz the IDE provides you options
09:12
for constant data handling, idk
Avatar
For static data like maps I can imagine of storing it in json & images as blobs inside json
Avatar
Avatar
Avolicious
but the tradeoff is not worth it
that is for the developer to decide, I'd sy
Avatar
Avatar
heinrich5991
that is for the developer to decide, I'd sy
If you can afford it, sure
Avatar
As long as I can decompress the map files, yeah
Avatar
Avatar
Cellegen
As long as I can decompress the map files, yeah
You can convert them
09:13
from the current format to json
Avatar
oh, so it's encrypted json?
Avatar
sadge
Avatar
its currently binary, but there are tools able to parse this file & then you could write it to json
09:14
twgpu is capable afaik
Avatar
Avatar
Avolicious
If you really need to depend on key value patterns in data (de)serialization use msgpack instead (edited)
I'm not sure if I'd use msgpack over json. json is ubiquitous, msgpack is not. I wouldn't even know if the fastest JSON parsers are slower or faster than the fastest msgpack parsers. due to the popularity, JSON might be faster
Avatar
Avatar
heinrich5991
I'm not sure if I'd use msgpack over json. json is ubiquitous, msgpack is not. I wouldn't even know if the fastest JSON parsers are slower or faster than the fastest msgpack parsers. due to the popularity, JSON might be faster
In JS JSON is faster because of the native integration into V8
09:15
So yeah, probably json is faster due to popularity and optimized parsers
09:15
but bandwidth doesnt grow on trees 😄
09:15
its expensive
Avatar
Avatar
Cellegen
As long as I can decompress the map files, yeah
https://gitlab.com/Patiga/twmap can convert teeworlds/ddnet maps into JSON
A Rust library for parsing, editing and saving Teeworlds and DDNet maps
09:16
compressed JSON is about as long as compressed msgpack in my experiments with the serverbrowser
Avatar
wouldn't it be funny to convert toml into GDScript cuz of it's similarity? lmao
Avatar
now we are adding more cpu time
Avatar
Oh, python script manages the map unpacking. then ez
09:18
we have a python api inside Godot's native tunnel
Avatar
Avatar
Cellegen
Oh, python script manages the map unpacking. then ez
yes, its actually pretty neat
Avatar
Or I could just rewrite it myself inside Godot and deal with it that way
Avatar
https://gitlab.com/Patiga/twmap/-/blob/4d9d3e45507abe8f4870e9d0e4b89555d26ef408/twmap-tools/src/bin/twmap-edit.rs this tool can take a teeworlds/ddnet map and convert it to pngs, json and opus files
A Rust library for parsing, editing and saving Teeworlds and DDNet maps
Avatar
rust gigachad
09:20
imma stick to that python code imo, as long as I can recreate the code onto the IDE's native language, it will be faster imo
Avatar
which python code?
Avatar
ws-client BOT 2024-05-22 09:22:23Z
<JStar> parsing text is defs less efficient than parsing binary tho (if the binary format doesnt suck), even if the json parsers are super optimized for effective runtime
Avatar
JStar: I'm interested in benchmarks of this. I agree with this theoretical point of view, but I don't know if it holds up with parsers in the real world
Avatar
ws-client BOT 2024-05-22 09:23:20Z
<JStar> i dunno i only tested bincode it was faster
09:23
<JStar> for msgpack i cant tell
Avatar
msgpack emulates JSON structure
09:23
it's not really optimized
09:24
<JStar> considering json is text, it's still impressive that it can almost hold up
Avatar
@Cellegen the twmap-edit tool can be compiled and then you can execute ./twmap-edit --mapdir input.map output-directory to obtain the JSONs, PNGs, and OPUS files
Avatar
ws-client BOT 2024-05-22 09:25:05Z
<JStar> but anyway it also depends on the use case
09:25
<JStar> server browser stores lot of text
09:25
<JStar> map files are really more binary like
09:25
<JStar> floats, ints whatever
Avatar
Avatar
heinrich5991
which python code?
twmap/scripts/generate_external_constants.py
Avatar
ws-client BOT 2024-05-22 09:26:43Z
<JStar> i wish json would allow comments
Avatar
I doubt that this will be easier to use than the program
Avatar
ws-client BOT 2024-05-22 09:26:59Z
<JStar> i use them for config files and i think here readability is nice
Avatar
both depend the rust library
09:27
toml is quite nice for config files in my experience
Avatar
Avatar
heinrich5991
@Cellegen the twmap-edit tool can be compiled and then you can execute ./twmap-edit --mapdir input.map output-directory to obtain the JSONs, PNGs, and OPUS files
then I can just run a loop for each map file in the directory and get their data in different folders, neat
09:27
But then, how about doing it at runtime?
Avatar
JSON isn't really a human-writable format, it's more like a machine interchange format
Avatar
ws-client BOT 2024-05-22 09:27:58Z
<JStar> there is json5 or smth that allows comments
09:28
<JStar> but dunno, i want it to work with rust doc comments to generate comments inside the json file :D
Avatar
Avatar
Cellegen
But then, how about doing it at runtime?
can you execute external programs at runtime?
Avatar
I can modify files at runtime
09:29
read it's data, maybe save it's data as well
Avatar
ws-client BOT 2024-05-22 09:29:05Z
<JStar> btw cellegen, patiga also has a godot tw map implementation :D
Avatar
similar to how it handles JSON
09:29
OH YEAH THE FNG ONE
Avatar
ws-client BOT 2024-05-22 09:29:15Z
<JStar> i dunno if u aware of that
Avatar
he has that
Avatar
ws-client BOT 2024-05-22 09:29:36Z
<JStar> i think it's simply a map viewer
Avatar
fuck, what was the project where 3d teeworlds was presented inside a 2d map?
09:29
I could just joink that code and it's ez clap
Avatar
Avatar
heinrich5991
JSON isn't really a human-writable format, it's more like a machine interchange format
But per design its human readable
Avatar
Avatar
Avolicious
But per design its human readable
yea. but it's also quite strict, which makes it nice for machine interchange
Avatar
Avatar
heinrich5991
yea. but it's also quite strict, which makes it nice for machine interchange
Which interchange format is non-strict? 😮 Just curious now
Avatar
I'd consider yaml, toml, json5, etc. unsuitable for machine interchange for that reason
09:37
because there are so many ways to write the same thing
Avatar
well, yaml is indeed a bit of a weird language
Avatar
ws-client BOT 2024-05-22 09:38:27Z
<ChillerDragon> okay now i actually made it work. Everything. Hot reload/collision access/and static linking at the same time.
09:38
<ChillerDragon> but i had to use a macro to duplicate code xd
09:41
<ChillerDragon> i mean i could use a #else and then the code is not duplicated in the resulting shared object. I had to use some #define hacks to not make the IDE trip but all in all this seems hackier than it should be
Avatar
Avatar
ws-client
<ChillerDragon> but i had to use a macro to duplicate code xd
justatest
Avatar
ws-client BOT 2024-05-22 09:42:52Z
<JStar> #ifs are evil, better be careful with them. especially if they contain a struct definition :D
09:46
<JStar> man it's so sad that most epyc rust binary serialization frameworks don't work with serde... most libs only derive serde and not they custom traits
09:47
<JStar> i'd like to have more alternatives to bincode
09:48
Avatar
there's https://github.com/rust-lang/rfcs/pull/3634 which would solve the problem
This may be a bit long. I thought it would be best to go over the interactions with other language features and tooling as well as potential impacts thoroughly in advance, since while the addition ...
09:49
unfortunately
This makes it even more disheartening to shut this down without providing any technical feedback.
Avatar
ws-client BOT 2024-05-22 09:49:03Z
<JStar> omg that would be so epyc
09:49
<JStar> xd
09:49
<JStar> > This makes it even more disheartening to shut this down without providing any technical feedback.
09:49
<JStar> what does that mean?
Avatar
this is a comment on the RFC. some team member said that it's unlikely that it's even considered by the team
Avatar
ws-client BOT 2024-05-22 09:50:17Z
<JStar> mhh too bad
09:56
<JStar> we also need a pure rust encoder for zstd xdd. if someone has nothing better to do ;)
Avatar
for easier cross-compilation? ^^
09:58
I generally think time rewriting working code from language A to language B isn't that well-spent
Avatar
ws-client BOT 2024-05-22 09:58:51Z
<JStar> now that rustcrypto offers rustls, the only things left are: 1. opus en-/decoder, 2. vorbis encoder, 3. easier to use .webm (or .mp4) encoder 4. zstd
09:59
<JStar> >I generally think time rewriting working code from language A to language B isn't that well-spent
09:59
<JStar> true
09:59
<JStar> but i like if u dont need a c compiler
09:59
<JStar> i kinda dislike having to install 2 compilers to work
10:01
<JStar> 1. & 2. could be put behind a feature since it's only required for converting map files, 3. i failed with the mkv repo that exists, and video encoding ofc also needs audio encoding anyway, so vorbis might still be required
10:01
<JStar> and for zstd the only alternative is brotli, where the rust crate seems to not allow passing custom dictionaries
10:01
<JStar> (the only good alternative xd)
10:05
<JStar> oh brotli 6.0 already released... they really shoot out major versions often xD
Avatar
Oh btw, during the flag selection, I noticed that the flag of Mauritania has a different flag now
10:07
Avatar
"flags in video games are a bad idea. vol. 201"
Avatar
"Just read the name bro, you don't need flags to see which country it is"
Avatar
ws-client BOT 2024-05-22 10:40:59Z
<JStar> flags are cool, it's just that ppl directly take it political and are mad.
10:41
<JStar> if ppl from same clan all have same flag it gives the clan a bit more charm
Avatar
At last
Avatar
ws-client BOT 2024-05-22 10:42:21Z
<JStar> maybe cusom flags (with limitated amount of possibilities) would be cool :D
Avatar
It can be easily done, just replacing the flag texture and name does it
10:43
as long as I could make a localization file to make it possible
10:43
csv sounds better
Avatar
Imagine being a conlang
10:55
Well, I only add flags which have a valid flag texture and name in it
Avatar
Imagine being a language spoken by people that don't have their own country (yet), let alone a flag (edited)
11:02
Imagine having two flags (+two alphabets and two orthographies) (edited)
Avatar
Feature gate: #![feature(transmutability)] This is a tracking issue for MCP411: Lang Item for Transmutability. The MCP defines an experimental, compiler-implemented trait that can be used to audit ...
Avatar
Avatar
EGYT
Imagine being a language spoken by people that don't have their own country (yet), let alone a flag (edited)
I won't even comment on Traditional Chinese, so I'll stop there (edited)
Avatar
Heading there
Avatar
They can be handled via the map configs already. Mostly needs updates in DDNet's infrastructure. CC #430
Avatar
ws-client BOT 2024-05-22 12:08:55Z
<ChillerDragon> still no intel mac devs here huh?
12:09
<ChillerDragon> i feel like its 2016 again and i struggle to compile ddnet
Avatar
error message?
Avatar
ws-client BOT 2024-05-22 12:14:27Z
<ChillerDragon> jopsti i may have to increase the search history xd maybe you have a point
12:14
<ChillerDragon> idk what is a reasonable amount of messages to keep in the ram on my server side for it to be useful for search
12:15
<ChillerDragon> the last message i sent that contained SDL is the error message -.-
12:15
<ChillerDragon> got it
12:15
<ChillerDragon> Undefined symbols for architecture x86_64:
12:15
<ChillerDragon> "_SDL_FlashWindow", referenced from:
12:15
<ChillerDragon> CGraphicsBackend_SDL_GL::NotifyWindow() in backend_sdl.cpp.o
12:15
<ChillerDragon> ld: symbol(s) not found for architecture x86_64
12:16
<ChillerDragon> macOS Monterey 12.7.4
Avatar
I guess the SDL doesn't contain the x86_64 variant
12:16
where is it from? ddnet-libs?
Avatar
ws-client BOT 2024-05-22 12:16:49Z
<ChillerDragon> idk
12:17
<ChillerDragon> im currently undusting my sdlvm tool
12:17
<ChillerDragon> then i should be able to use selfcompiled
12:17
<ChillerDragon> but i dont see how any version of sdl should not support x86_64 anymore -.-
Avatar
libraries supporting multiple architectures at the same time are actually the odd ones ^^
Avatar
ws-client BOT 2024-05-22 12:18:36Z
<ChillerDragon> no thats pog
Avatar
but on macos they sometimes do ("fat binaries") https://en.wikipedia.org/wiki/Fat_binary
A fat binary (or multiarchitecture binary) is a computer executable program or library which has been expanded (or "fattened") with code native to multiple instruction sets which can consequently be run on multiple processor types. This results in a file larger than a normal one-architecture binary file, thus the name. The usual method of implem...
Avatar
ws-client BOT 2024-05-22 12:18:44Z
<ChillerDragon> yes
12:18
<ChillerDragon> macos is known for that epic feature
Avatar
macOS has some really solid engineering at random points
Avatar
that feature doubles your download size, it's kinda meh
12:19
it's nice for development though
Avatar
Avatar
Learath2
macOS has some really solid engineering at random points
the framework stuff is also quite nice
Avatar
I love machO in general
Avatar
ws-client BOT 2024-05-22 12:19:53Z
<ChillerDragon> i tried -DPREFER_BUNDLED_LIBS=ON
12:20
<ChillerDragon> /Users/chillerdragon/Desktop/git/ddnet/src/engine/client/sound.cpp:506:3: error: use of undeclared identifier 'WavpackCloseFile'
Avatar
and deleted the build directory?
Avatar
ws-client BOT 2024-05-22 12:20:21Z
<ChillerDragon> aaa
12:20
<ChillerDragon> told you its 2016 again xd
Avatar
The amount of work they put into keeping things properly compatible backwards/forwards is also very nice, this is something linux is severely lacking in
Avatar
ws-client BOT 2024-05-22 12:23:11Z
<ChillerDragon> idk
Avatar
windows is better at it
Avatar
ws-client BOT 2024-05-22 12:23:28Z
<ChillerDragon> i wish my mac could send screenshots xd
12:23
<ChillerDragon> yes agree
12:23
<ChillerDragon> windows is better
Avatar
32-bit support was just completely dropped by apple
12:23
making many games unplayable, likely forever
Avatar
ws-client BOT 2024-05-22 12:24:01Z
<ChillerDragon> and apparently someone dropped my 64 bit support too -.-
Avatar
this is something that can usually be made to work on linux, but on macos it's just completely gone
Avatar
Avatar
heinrich5991
windows is better at it
windows has a fatal flaw, they won't let you use future functionality in a sane manner on a binary built targeting old windows
Avatar
Avatar
Learath2
windows has a fatal flaw, they won't let you use future functionality in a sane manner on a binary built targeting old windows
example please
Avatar
ws-client BOT 2024-05-22 12:28:07Z
<ChillerDragon> i forgot where i saw that i think it was some primagen video where they talked about how windows pads and versions their structs for future compability
12:28
<ChillerDragon> ah ye wasn't it the C is not a language but api article lerato shared like a few years ago already
12:29
<JStar> old stuff has to be emulated, no need to stay compatible directly
12:32
<ChillerDragon> ok -DPREFER_BUNDLED_LIBS and new build dir compiles yay
Avatar
then I question your build environment
12:33
why do you have an architecture-incompatible SDL2 lying around? ^^
Avatar
ws-client BOT 2024-05-22 12:33:25Z
<ChillerDragon> dude i did things to this mac
12:33
<ChillerDragon> but it is indeed a bit odd xd
12:34
<ChillerDragon> maybe brew stopped supporting x86?
12:35
<JStar> how i imagine chillerdragon installing sdl2: "where can i download sdl.dll on macos?" - some scam link xddd
12:35
<ChillerDragon> -.-
12:35
<ChillerDragon> i use sdlvm
12:36
<ChillerDragon> the sdlvm version manager written in bash
12:36
<ChillerDragon> it compiles it from source
12:36
<JStar> yeah tbf, i blame the cpp ecosystem
12:36
<JStar> dependencies always suck there lmao
12:37
C++ Library Manager for Windows, Linux, and MacOS. Contribute to microsoft/vcpkg development by creating an account on GitHub.
12:37
<JStar> even if you target linux only xd
12:37
<ChillerDragon> microsoft to the rescue
12:37
<JStar> nice
12:37
<JStar> thanks microsoft
12:38
<JStar> thanks for inventing windows just to have a reason to invent vcpkg xD
Avatar
dependencies in C++ really are a pain 😦
Avatar
Avatar
heinrich5991
example please
On macOS you have __builtin_available (and @available for obj-c), and the entire "library" is built with availability annotations, if you build an executable targetting old macOS, any function that isn't available on that old version will be weakly linked. It's quite ergonomic On Windows to achieve a similar effect you'll need to just resort to LoadLibrary and hand resolving those symbols that might not exist and checking by hand on MSDN when they are available or not
Avatar
inb4 someone saying "it's a feature"
12:39
is there no weak linking on windows?
12:40
but the annotations are nice, I guess
Avatar
There is an undocumented linker feature that can perform weak linking (edited)
Avatar
eh
Avatar
It's a far cry from the very simple if(__builtin_available(macOS 13.0.1))
Avatar
ws-client BOT 2024-05-22 12:44:11Z
<ChillerDragon> dude i hate brew
Avatar
@heinrich5991 why do you think windows is better at it? Is it only the fact that apple dropped 32bit support and microsoft still keeps it?
Avatar
ws-client BOT 2024-05-22 12:44:32Z
<ChillerDragon> i wanted to check my sdl version and fakin brew is using my bamboo island internet connection to update LIBASS
12:44
<ChillerDragon> fakin lib ASS
Avatar
Avatar
Learath2
@heinrich5991 why do you think windows is better at it? Is it only the fact that apple dropped 32bit support and microsoft still keeps it?
the fact that I can generally run old windows binaries
12:45
I've not heard the same for macos, and especially that with the 32-bit thing
Avatar
They did drop support for 16 bit binaries somewhere along the way, so you can't run those anymore e.g.
Avatar
where they dropped tons of still-used applications and games
Avatar
Avatar
Learath2
They did drop support for 16 bit binaries somewhere along the way, so you can't run those anymore e.g.
the time frame is vastly different
Avatar
Hm, I'
12:47
I'm unsure
Avatar
(and you can actually still run them using wine, I think. although not supported by microsoft)
Avatar
Avatar
heinrich5991
(and you can actually still run them using wine, I think. although not supported by microsoft)
(you can)
Avatar
apparently the feature was only dropped in win11?
Avatar
Avatar
heinrich5991
the time frame is vastly different
Could you elaborate? Was the transition period longer?
Avatar
yes
12:49
also, there was a transition period
12:50
apple didn't announce they will drop support for 32-bit applications ahead of time
Avatar
Avatar
heinrich5991
apparently the feature was only dropped in win11?
the feature you could manually enable to run 16-bit windows applications. searching for it right now
Avatar
Avatar
heinrich5991
apple didn't announce they will drop support for 32-bit applications ahead of time
Did Microsoft? I don't remember one really
Avatar
they made the feature optional in some version of windows, apparently
12:51
so in 1995, microsoft started supporting 32-bit applications
12:52
in 2021, they stopped supporting 16-bit applications
12:52
(assuming the release date of windows 11 is the one where the feature got dropped completely)
12:52
that's 26 years of keeping old binaries running. even now, there's a way to run them using winedvm, apparently
Avatar
ws-client BOT 2024-05-22 12:53:22Z
<ChillerDragon> never seen a 16 bit binary
Avatar
when did apple move to intel 64-bit architecture?
Avatar
ws-client BOT 2024-05-22 12:53:40Z
<ChillerDragon> or a 16 bit download button on a website xd
Avatar
2003 for apples first 64 bit binaries, 2019 for macOS that dropped 32 bit 16 years vs 26 is indeed drastic
12:55
Ah I guess PowerPC era doesn't count, so 2006 for intel 64 bit
Avatar
apparently in 2006, they released the first intel 64-bit macbook. they adopted arm in 2020, so it's like 14 years
Avatar
Avatar
heinrich5991
apparently in 2006, they released the first intel 64-bit macbook. they adopted arm in 2020, so it's like 14 years
Arm didn't drop intel 64bit binary support though
Avatar
ws-client BOT 2024-05-22 12:56:14Z
<ChillerDragon> well
Avatar
You want the release date of macOS catalina where they dropped 32b support
Avatar
ws-client BOT 2024-05-22 12:56:22Z
<ChillerDragon> something broke on my machine xd
Avatar
ah, they dropped it for intel macs as well?
Avatar
Avatar
heinrich5991
ah, they dropped it for intel macs as well?
If you want to upgrade your OS, yes
Avatar
ws-client BOT 2024-05-22 12:56:44Z
<ChillerDragon> i can not update to a new macos
Avatar
I guess to lower the competition for their arm macs. classic
Avatar
ws-client BOT 2024-05-22 12:56:58Z
<JStar> sometimes i really wonder how old heinrich is XDD he talks like he casually used 16-bit apps the whole day
12:57
<ChillerDragon> but that might be classic apple pls buy new hardware thing xd
12:57
<ChillerDragon> is heinrich age secret?
12:57
<JStar> dunno, i'd say 05.09.1991
12:57
<ChillerDragon> he was born in 1959 its in the name
12:57
<JStar> xdd
Avatar
Avatar
heinrich5991
I guess to lower the competition for their arm macs. classic
I actually don't follow this line of logic (I do agree that it probably has a business motivation)
12:58
How does not supporting 32bit binaries on their intel macs push people to the arm macs? Those don't support 32b either
Avatar
it's one fewer argument for staying on intel 64bit macs
Avatar
If you have to have 32bit binaries working, you are forced to stick to High Sierra on an intel mac anyway
Avatar
otherwise people might stay on intel 64bit macs to retain 32bit compatibility. but if they do that now, they also don't get OS updates
12:59
but yea. microsoft dropped 16-bit support when apparently ChillerDragon hasn't even seen one in his life
13:00
wheras I'm sure ChillerDragon used plenty of 32-bit macos apps
Avatar
(I would not be very surprised if it's to just lower engineering costs, keeping 2 different arches and 2 different bus widths all stable is not exactly cheap when you are building and maintaining your own bootloader to kernel to entire OS sdk) (edited)
Avatar
that's fair, too
Avatar
Avatar
heinrich5991
wheras I'm sure ChillerDragon used plenty of 32-bit macos apps
(comparing windows's support for 16b to how 32b binaries were supported under 64b windows for 2decades is pretty wrong anyway, 16b was always a very unwelcome stranger that worked very roughly)
13:03
If we were born just a decade earlier we probably might have been pissed that our DOS era accounting software no longer works on windows xp and damn those nerds with their bits
Avatar
ws-client BOT 2024-05-22 13:04:36Z
<JStar> wowow learath so progressive today. make sure to not drop your love for c
Avatar
Anyway, If anything I feel apple and microsoft have very similar levels of care about compatibility, I feel forwards compatibility is more ergonomic on macOS and backwards compatibility is more comprehensive on windows
13:06
and then there is linux where both are extremely annoying 😄
Avatar
linux kernel backcompat is at least ergonomic
13:07
unfortunately all the UI stuff is veeery unstable
Avatar
Avatar
Learath2
Anyway, If anything I feel apple and microsoft have very similar levels of care about compatibility, I feel forwards compatibility is more ergonomic on macOS and backwards compatibility is more comprehensive on windows
I remember reading about how apple was actively sabotaging backward compatibility. I'll see if I can remember where
Avatar
I would not be surprised at all 😄
Avatar
but you feel differently
13:39
(currently)
Avatar
I feel as if it's not much worse than microsoft if you don't have a need for 32 bit legacy applications. I don't have a need for using old versions of apps. That's perhaps what contributes to my (possibly) erroneous understanding of the situation
13:42
I also don't ever play games on my mac, so that's another part of this. I only ever use creative applications, test and debug, and browse the web on my mac
Avatar
ws-client BOT 2024-05-22 13:51:25Z
<JStar> on linux i can play more games than on any other platform, thanks to wine, emulators etc.
Avatar
Mh, I think windows probably still has the widest library. Any emulator available on linux is also available on windows
13:52
+ you get games with chinese rootkit available there too
Avatar
ws-client BOT 2024-05-22 13:53:24Z
<JStar> but does wine run on windows?
13:53
<JStar> i can use wine to play old games
Avatar
I think you can use Wine to run old Windows games on Windows? But maybe I misremember 😄
Avatar
There are better alternatives on windows. For old games targetting down to XP, you can just run them natively thanks to the impressive backwards compatibility. For DOS era games you have DOSbox
Avatar
ws-client BOT 2024-05-22 13:58:54Z
<JStar> anyway, with such compability addiction (has to run natively) we don't give new tech a chance.
Avatar
Actually on win 11 perhaps it's no longer down to xp but down to win 7 now
Avatar
ws-client BOT 2024-05-22 13:59:12Z
<JStar> i think emulators are fine, most games released 10 years today can run on my CPU lmao
13:59
<JStar> 10 years ago*
Avatar
Avatar
ws-client
<JStar> i think emulators are fine, most games released 10 years today can run on my CPU lmao
As long as there is no significant architecture difference. Yes emulators are fine
14:00
The ps3 released in 2006 still is emulated in a way that requires a beastly computer and JIT
14:01
Thankfully it's getting rarer, recent consoles are just x86-64 or aarch64
14:02
I wonder if one could isolate all the backwards compatibility now that I think about it. That might be a cute idea for an OS
Avatar
Avatar
Learath2
The ps3 released in 2006 still is emulated in a way that requires a beastly computer and JIT
got some more details about that?
Avatar
Avatar
heinrich5991
got some more details about that?
https://rpcs3.net/ They just ship llvm, they lift the powerpc assembly to LLVM IR and then let it compile it back down
RPCS3 is a multi-platform open-source Sony PlayStation 3 emulator and debugger written in C++ for Windows, Linux, macOS and FreeBSD made possible with the power of reverse engineering.
14:05
It is very good now, but it took a decade to get it running this nice 😄
14:06
I guess I'm gonna have to watch that vidoe
Avatar
This is where I learned about SHUFB 😄
14:08
Oh and vgf2p8affineqb
Avatar
Avatar
Learath2
Oh and vgf2p8affineqb
gesundheit!
Avatar
Yuzu alsp does jit, aarch64 to x64 only though and they use some very specific hand coded translator
14:17
Well did, before nintendo nuked yuzu off of planet earth
Avatar
it was open-source though, wasn't it?
Avatar
Mostly
14:18
They had a beta branch that was paywalled iirc
Avatar
which was probably their downfall
Avatar
It got features like native code execution when on aarch64 hosts
Avatar
but sounds like the project could survive the takedown then
Avatar
Avatar
heinrich5991
which was probably their downfall
I would guess so yeah. Charging money for these things is a big no no
Avatar
Avatar
heinrich5991
but sounds like the project could survive the takedown then
There are mirrors that keep popping up only to be nuked again
14:20
Nintendo took down like 90 of them recently
Avatar
14daa6d iwa stepped down as moderator - murpii
feelsbadman 2
Avatar
Avatar
Learath2
There are mirrors that keep popping up only to be nuked again
have they tried not hosting on github yet?
Avatar
Avatar
deen
I think you can use Wine to run old Windows games on Windows? But maybe I misremember 😄
Winevdm is for 16 bit stuff that windows doesn't support now
Avatar
Avatar
Learath2
There are better alternatives on windows. For old games targetting down to XP, you can just run them natively thanks to the impressive backwards compatibility. For DOS era games you have DOSbox
I think wine used to support this but eventually dropped it and started using dosbox instead
14:24
Anyway, wine might even run 32 bit stuff on Mac now that the pe conversion is almost done
Avatar
Avatar
heinrich5991
have they tried not hosting on github yet?
That's the current thinking yeah, but none of these are a continuation fork yet. They all are just people trying to mirror it
Avatar
@Learath2 in x86_64 u can only pass 6 arguments by register right? and if a argument takes more than 1 register and surpases those do you need some kind of padding right?
14:25
to put the whole argument on the stack
14:25
and not partially on a reg and stack
Avatar
Avatar
Peter0x44
I think wine used to support this but eventually dropped it and started using dosbox instead
Iirc wines win16 support was based on what windows used to support. Which wasn't all that great to begin with. The apis still being there isn't enough to do much
Avatar
Avatar
Ryozuki
and not partially on a reg and stack
This is correct. You don't get half a 128b value in register and half on stack
Avatar
Avatar
Learath2
Iirc wines win16 support was based on what windows used to support. Which wasn't all that great to begin with. The apis still being there isn't enough to do much
In what way is it insufficient?
Avatar
Avatar
Peter0x44
Anyway, wine might even run 32 bit stuff on Mac now that the pe conversion is almost done
got a link to that? sounds interesting
Avatar
Avatar
heinrich5991
got a link to that? sounds interesting
It's in the wine 8 change notes I think
14:27
The point is to allow running 32 bit stuff without 32 bit userspace libs
Avatar
aah
14:28
yes, that is amazing
Avatar
Wine is basically one of the few things keeping them around in distros
Avatar
I really liked reading about that change
Avatar
Avatar
Peter0x44
In what way is it insufficient?
Dos programs expect a dos environment, windows made no attempt at emulating one
Avatar
Along with steam... Valve pls fix
Avatar
Avatar
Learath2
Dos programs expect a dos environment, windows made no attempt at emulating one
Ah okay, I think wine currently just starts dosbox for this
Avatar
Yeah, dosbox does handle that kind of stuff. I did not know wine used dosbox that's cool
Avatar
Avatar
Learath2
This is correct. You don't get half a 128b value in register and half on stack
nice, ancient coding discussion again
Avatar
Avatar
Learath2
This is correct. You don't get half a 128b value in register and half on stack
this is a bug i had to fix today xd
Avatar
Avatar
Ryozuki
nice, ancient coding discussion again
This is rather modern 😄
14:31
Also of note is that the abi requires int128s passed on the stack to be 16byte aligned
Avatar
wanna see some nice assembly?
Avatar
(Amd64 sysv abi that is)
Avatar
_invoke_trampoline: # rdi <- fn_ptr: extern "C" fn() # rsi <- args_ptr: *const u64 # rdx <- args_len: usize # rcx <- ret_ptr: &mut [u64; 2] push rbp # Push rbp (callee-saved). push rcx # Push rcx (ret_ptr). mov rbp, rsp # Store the current stack pointer. sub rsp, 8 # Align the stack. mov r10, rdi # We'll need rdi. mov r11, rsi # We'll need rsi. cmp rdx, 6 # Check if there are more than 6 arguments. jbe 2f # If there are less than 6, skip to register arguments. # # Process stack arguments. # # Add padding to support an odd number of stack parameters. mov rax, rdx and rax, 1 lea rsp, [rsp + 8 * rax] 1: dec rdx # Decrement length. mov rax, [r11 + 8 * rdx] # Load the value. push rax # Push it into the stack. cmp rdx, 6 # Check if there are more than 6 arguments. ja 1b # If there still are, loop back and repeat. 2: # # Process registers. # shl rdx, 2 # Multiply remaining length by 4. lea rax, [rip + 3f] # Load the PC-relative address of `3f`. sub rax, rdx # Subtract 4 * remaining_len (rdx). jmp rax # Jump to the resulting address. mov r9, [r11 + 0x28] # Load argument #6. mov r8, [r11 + 0x20] # Load argument #5. mov rcx, [r11 + 0x18] # Load argument #4. mov rdx, [r11 + 0x10] # Load argument #3. mov rsi, [r11 + 0x08] # Load argument #2. nop # Note: The previous 5 `mov` instructions use 4 bytes each, but # the last one only takes 3. This `nop` (1 byte) is used to # align them all at 4 bytes so that the last jump instruction # works correctly. mov rdi, [r11] # Load argument #1. 3: # Call the function. call r10 mov rsp, rbp pop rcx pop rbp # Store return registers. mov [rcx], rax mov [rcx + 8], rdx ret this is like our trampoline method to call a function with X amount of arguments
14:32
and
14:32
we have the same for aarch
Avatar
Can't read that well on a phone, I'll take a look later
Avatar
how to highlight aarch assembly
14:33
xd
14:33
_invoke_trampoline: // x0 <- fn_ptr: extern "C" fn() // x1 <- args_ptr: *const u64 // x2 <- args_len: usize // x3 <- ret_ptr: &mut [u64; 4] stp x29, x30, [sp, #-16]! stp x19, x3, [sp, #-16]! // Necessary to restore the stack after the call. mov x19, sp mov x9, x0 // We'll need x0. add x10, x1, x2, lsl 3 // Move the pointer to the end (past last element). cmp x2, 8 // Check if there are more than 8 arguments. ble 2f // If there are less than 8, skip to register arguments. // // Process stack arguments. // // Add padding to support an odd number of stack parameters. and x0, x2, 1 sub x4, sp, x0, lsl 3 // ARM doesn't like `str reg, [sp]` instructions when // the stack isn't 16-byte aligned (not just on `bl`). 1: sub x2, x2, 1 // Decrement length. ldr x3, [x10, #-8]! // Decrement pointer, then load the value. str x3, [x4, #-8]! // Reserve stack memory, then write the value. cmp x2, 8 // Check if there are more than 8 arguments. bgt 1b // If there still are, loop back and repeat. mov sp, x4 2: // // Process registers. // adr x0, 3f // Load address of label 3f. sub x0, x0, x2, lsl 2 // Subtract 4 * n_args. br x0 // Jump. ldr x7, [x10, #-8]! // Decrement pointer, then load the value. ldr x6, [x10, #-8]! // Decrement pointer, then load the value. ldr x5, [x10, #-8]! // Decrement pointer, then load the value. ldr x4, [x10, #-8]! // Decrement pointer, then load the value. ldr x3, [x10, #-8]! // Decrement pointer, then load the value. ldr x2, [x10, #-8]! // Decrement pointer, then load the value. ldr x1, [x10, #-8]! // Decrement pointer, then load the value. ldr x0, [x10, #-8]! // Decrement pointer, then load the value. 3: // Call the function. blr x9 // Restore the stack and context registers. mov sp, x19 ldp x19, x4, [sp], 16 ldp x29, x30, [sp], 16 // Store the results into `ret_ptr`. stp x0, x1, [x4], 16 stp x2, x3, [x4] ret
14:33
anyway here it is
14:34
arm asm is clean
Avatar
MSVC might disagree with some of these btw. I do remember there being atleast a minor difference in 128bit int passing. Though the difference escapes me rn
Avatar
well we only care about linux 64 bit and apple silicon
14:35
we dont do windows here
Avatar
Ah, then it's fine. Msvc also only passes 4 args in registers e.g.
14:37
im so happy a bug is fixed
14:37
updating to llvm 18 and rust 1.78 has been pain
14:37
xd
14:38
the bliss of programming
Avatar
why was updating to rust 1.78 pain?
Avatar
well we were on 1.76 before
14:38
so they changed the u128 layout to be correct
14:38
16byte align instead of 8
14:39
and we used llvm 17 before
14:40
which also had the old u128 layout
14:40
im a hackerman cuz i used 0xdeadbeef to debug
14:40
gigachad
Avatar
Idk who is right tbf. Llvm wasn't technically wrong to have 8 as alignment for u128
Avatar
ws-client BOT 2024-05-22 14:41:03Z
<JStar> Aimazing
Avatar
Hexspeak is a novelty form of variant English spelling using the hexadecimal digits. Created by programmers as memorable magic numbers, hexspeak words can serve as a clear and unique identifier with which to mark memory or data. Hexadecimal notation represents numbers using the 16 digits 0123456789ABCDEF. Using only the letters ABCDEF it is pos...
Avatar
It was most certainly not the optimal alignment for it, but it is the true minimum alignment
Avatar
Avatar
Learath2
Idk who is right tbf. Llvm wasn't technically wrong to have 8 as alignment for u128
its about adapting to C
14:41
as always
Avatar
Well it's not C that decides this. C couldn't care less how you align anything
14:43
The abi people did make a decision there, perhaps because all the optimization guides for processors I could get my hands on suggest using the natural alignment for 128 bit types
14:43
But I don't know if it's LLVMs job to care about ABI. Isn't that part of clangs job?
Avatar
Avatar
Learath2
But I don't know if it's LLVMs job to care about ABI. Isn't that part of clangs job?
also LLVM
Avatar
Avatar
Learath2
But I don't know if it's LLVMs job to care about ABI. Isn't that part of clangs job?
with llvm u can use any data layout u want, but the one u get if u request the default for the host platform suggests now a 16 byte alignment
14:58
whereas before had 8
14:58
but u can define ur own data layout
14:59
When constructing the data layout for a given target, LLVM starts with a default set of specifications which are then (possibly) overridden by the specifications in the datalayout keyword. The default specifications are given in this list: e - little endian p:64:64:64 - 64-bit pointers with 64-bit alignment. p[n]:64:64:64 - Other address spaces are assumed to be the same as the default address space. S0 - natural stack alignment is unspecified i1:8:8 - i1 is 8-bit (byte) aligned i8:8:8 - i8 is 8-bit (byte) aligned as mandated i16:16:16 - i16 is 16-bit aligned i32:32:32 - i32 is 32-bit aligned i64:32:64 - i64 has ABI alignment of 32-bits but preferred alignment of 64-bits f16:16:16 - half is 16-bit aligned f32:32:32 - float is 32-bit aligned f64:64:64 - double is 64-bit aligned f128:128:128 - quad is 128-bit aligned v64:64:64 - 64-bit vector is 64-bit aligned v128:128:128 - 128-bit vector is 128-bit aligned a:0:64 - aggregates are 64-bit aligned
Avatar
@heinrich5991 https://devblogs.microsoft.com/oldnewthing/20210816-00/?p=105562 there is a devblog about the discussion you were having on github
Avatar
Avatar
Learath2
@heinrich5991 https://devblogs.microsoft.com/oldnewthing/20210816-00/?p=105562 there is a devblog about the discussion you were having on github
yea, I think the docs are misleading
16:11
trying to say a thing but not saying it
Avatar
Just used the wrong words for it perhaps
Avatar
it's free from data races, but be careful when mixing setcurrentdirectory with getcurrentdirectory/relative paths while having multiple threads (edited)
this 1
7148ohgod 1
16:16
raymond chen commented on the rust issue 😮
Avatar
@heinrich5991 Is it a requirement to have multiple servers running in order to gain community status? I'd really like to put BlmapChill into one of those categories, since it's also open source now I thought I'd ask again for specific requirements
Avatar
it's actually not possible to make ddnet grub theme the way i wanted to make it feelsbadman
Avatar
4532a64 Add rescuemodes - gerdoe-jr 9048bf2 Merge pull request #7820 from gerdoe-jr/set-rescue - def-
Avatar
ƤØŢĀŤ0Co 2024-05-22 18:40:38Z
How to change map in server code? (edited)
Avatar
IServer::ChangeMap
Avatar
You can also console exec a sv_map just to spice it up 😛
troll 3
Avatar
ƤØŢĀŤ0Co 2024-05-22 18:46:30Z
ty
Avatar
@fokkonaut I guess you want the community only for the symbol next to the name, right?
Avatar
and filterable, probably
Avatar
ah, also filterable
19:39
I feel like it doesn't really make sense to have a tab for just one server… but I can't really think of anything else
19:40
I'll ask about it
19:41
hmm. it seems you're currently in the kog community
19:41
(ask about the community status for the fokkonaut server)
Avatar
Hey I was wondering if anyone made a chat translator for ddnet?
Avatar
Avatar
k2d222
Hey I was wondering if anyone made a chat translator for ddnet?
it was discussed a few times already
20:22
ddnet will not provide it simply bcs translator APIs are rate limited and often cost money
20:22
if u want it for a custom client search in this discord, maybe u find the person that wanted it before u
Avatar
yeah, I figured but it could be a feature for custom clients not official ddnet
20:24
or embed a small llm in ddnet they are only a few gigs 🙂
Avatar
ez xd
Avatar
Avatar
k2d222
yeah, I figured but it could be a feature for custom clients not official ddnet
it has been done in the past (AllTheHaxx for example)
Avatar
Avatar
ReiTW
it has been done in the past (AllTheHaxx for example)
cool stuff
Avatar
Avatar
k2d222
or embed a small llm in ddnet they are only a few gigs 🙂
llm's Like LLaMA that Run locally are really Bad at actual Translation (Trust me i tried it 😋) Apis Like deepl are rate Limited sadly. @ReiTW do you remember what ATH Used ? Did they Just Use a free Translation api?
Avatar
Avatar
meloƞ
llm's Like LLaMA that Run locally are really Bad at actual Translation (Trust me i tried it 😋) Apis Like deepl are rate Limited sadly. @ReiTW do you remember what ATH Used ? Did they Just Use a free Translation api?
it was a free translation api yes
Avatar
While free api's are bad i might actually try to properly implement it as an external Tool someday, good way to learn golang gigachad (edited)
Avatar
Avatar
meloƞ
llm's Like LLaMA that Run locally are really Bad at actual Translation (Trust me i tried it 😋) Apis Like deepl are rate Limited sadly. @ReiTW do you remember what ATH Used ? Did they Just Use a free Translation api?
I ran mixtral 8x7b with okay-ish results on simple translation tasks, but I think it doesn't know that many languages well.
21:04
but llm is way overkill for this anyway
21:06
I Used this: https://ollama.com/library/llama3 Its great for quick questions about certain Things, it takes less than 1.5 Seconds to answer
Meta Llama 3: The most capable openly available LLM to date
21:06
And it Runs locally on docker, pretty neat
Avatar
I guess good gpu is a requirement also
21:07
but ddnet runs on potato so that should be fine
Avatar
Avatar
k2d222
but ddnet runs on potato so that should be fine
Lmao
21:07
If Doom can Run on a pregnancy Test so can ddnet
21:08
I wonder if doom runs on potato
21:08
like proper potato, you can make electricity with it
Avatar
doom on pregnancy test was pretty much fake IIRC. they replaced both the CPU and the screen of the pregnancy test
Avatar
Eh lets Just say
Avatar
Avatar
heinrich5991
doom on pregnancy test was pretty much fake IIRC. they replaced both the CPU and the screen of the pregnancy test
Yeah i know, its more of a meme at that Point, i also remember Reading it was fake
Avatar
good, now let's extrapolate how many potatoes to run a query on llama3
Avatar
Avatar
k2d222
good, now let's extrapolate how many potatoes to run a query on llama3
Connect all potatoes in China and See If it works
Avatar
How to get the time that goes in the map to server code? (edited)
Avatar
"/time" ? (edited)
Avatar
392fc0b str_from_intstr_format - heinrich5991 df9980e Optimize str_format(…, …, "%d", …) using templates - heinrich5991 68d474c Merge pull request #8363 from heinrich5991/pr_ddnet_str_from_int - Robyt3
Avatar
b2b0cd0 Fix shadowed variable declarations in android_main.cpp - Robyt3 4a2a235 Fix integrity_save.txt file not being closed - Robyt3 dfae99d Fix unused variable Silent in client.cpp on Android - Robyt3 ad9b44b Remove local.properties and add it to .gitignore - Robyt3 9afe744 Fix SDL3 being used in gen_libs.sh - Robyt3 468cd85 Add build folder parameter to cmake_android.sh - Robyt3 ceb1640 Fix incorrect CMake target name in cmake_android.sh - Robyt3 b2c2a74 Remove unused shell script function arguments - Robyt3 cdbe1f7 Various fixes/improvements to Android building scripts - Robyt3 664b0e9 Upgrade Gradle and fix Android deprecation errors - Robyt3 51e4e41 Change tw.DDNet package name to org.ddnet.client - Robyt3 e4a7fd5 Determine default version name and code from version.h - Robyt3 1316ac3 Improve the Android building README.md - Robyt3 848f4a8 Merge pull request #8334 from Robyt3/Android-Building-Fix - heinrich5991
21:43
f04bea6 Minor refactoring of fs_chdir and fs_getcwd functions - Robyt3 1e11fff Merge pull request #8390 from Robyt3/Base-chdir-getcwd-Cleanup - heinrich5991
Avatar
Avatar
meloƞ
Yeah i know, its more of a meme at that Point, i also remember Reading it was fake
some people rendered frames of doom piecemeal in a gut microbiome
21:59
arguably more impressive even if also not real doom
21:59
or something like that
Avatar
Avatar
ReiTW
it has been done in the past (AllTheHaxx for example)
z-team client (0.5.2) had it too xdddd
Avatar
finally purple
Avatar
Hello Devs
Avatar
helo Smlsd
Avatar
Avatar
Ewan
helo Smlsd
How can i create my own ddnet skin
Avatar
use an image editor
22:25
are u familiar with photoshop/paint.net or smth like illustrator/inkscape
Avatar
Yes after?
Avatar
Tell me how to make
22:37
@Ewan
Avatar
look at the default skin
22:38
or find some template
22:38
22:38
change it
22:39
Oke i understand
22:39
I'm Gonna make myself
22:39
Can everybody see when i send in #📬submit-skins ?
22:39
Really?
22:39
YEEEY
22:40
I'm Gonna make myself lik
Avatar
it's not guaranteed lol
Avatar
people have to vote
Avatar
and if your skin sucks then it won't be visible to others
Avatar
What votes
22:40
Soo hmuch likes need
Avatar
#📍info
Avatar
@Ewan what blue
22:43
What means i didn't understand
Avatar
i linked you to the info channel for the skin submission system
22:43
read the messages in the channel
22:43
and please stop pinging me
Avatar
But it's not working dude
22:44
I cant see any emojis
22:44
Like ✅
22:44
#📬submit-skins
22:44
Look
22:44
Nothing have
22:46
Ups sorry my bad
22:46
I understand now
22:46
🙂 tu
22:46
Ty
Avatar
Avatar
meloƞ
I Used this: https://ollama.com/library/llama3 Its great for quick questions about certain Things, it takes less than 1.5 Seconds to answer
this runs pretty well without gpu too in my experience
23:27
but i have an 'ai power' cpu so xd
Avatar
Avatar
ws-client
<ChillerDragon> if you need a free api checkout https://trans.zillyhuhn.com/
mmh very interesting service
23:43
i think ill host one too 🙂
Exported 582 message(s)