Unfortunately Doom has a lot of undefined behavior (because it's a 30 year old codebase) so if you enable UBSAN you're inundated with warnings. Finding this specific needle in that haystack would take quite a lot of effort.
HN user
turol
For a real world example of how this can affect code check out this commit I made in mesa: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20...
Hieno homma
That is a very good description of the Paranoia RPG.
There’s probably another name for this
Race to the bottom
Right, my humor there was that I'm assuming people specifically did non-debug flags for the build as an optimization.
It used to be the case that the presence of debug symbols would affect GCC code generation. Nowadays that should be fixed. I think it still affects the speed of compilation so if you're building the whole system from source you might want to avoid it.
I think vtune and toplev will report that as a frontend stall in their topdown metrics.
In theory it should only be about writing a new build script (not based on `wmake` but on a real `make`). And then workout the tiny flag/preprocessor/C compiler discrepancies.
For mostly C code like the original Doom source, yes. But it looks like FastDoom people have added quite a bit of assembly. That needs to be ported to AT&T syntax. Or you need to find out if Intel syntax works in your version of DJGPP's gas. While this should work nowadays I have not tried it. Then there's other differences like Watcom mapping low memory by default into the low part of the address space but DJGPP needing explicit mapping or access.
The Voodoo 2 completely takes over display output. VESA stuff shouldn't have any effect in this case.
True. I've tried it on a Pentium 166/MMX with a Voodoo 2 and it runs about 15 fps.
If the OS doesn't provide an actual sound API developers will only write support for the most popular sound cards.
If you click on the domain name next to the main link you get a filtered view of submissions for just that domain. This way you can easily find the related posts. It looks like this is the fifth submission of this article but the others didn't get many comments.
https://news.ycombinator.com/from?site=blogsystem5.substack....
death match in a museum would be fun too.
"There has grown up in the minds of certain groups in this country the notion that because a man or corporation has made a profit out of the public for a number of years, the government and the courts are charged with the duty of guaranteeing such profit in the future, even in the face of changing circumstances and contrary to the public interest. This strange doctrine is not supported by statute or common law. Neither individuals nor corporations have any right to come into court and ask that the clock of history be stopped, or turned back."
Robert Heinlein in "Life-Line"
That does not really work since the only IO was the BIOS-provided one that was 1. synchronous and 2. really slow. If you tried to do that you'd just get insanely bad pauses.
https://github.com/turol/valoserveri
It's for controlling DMX colored lights over network. It takes UDP packets (and later Websocket messages) and turns them into DMX protocol packets which get sent over USB serial adapter to the DMX wire. It's a rewrite of a previous node.js version which had bitrotted.
I think I made the MVP in about 7 hours during one saturday afternoon. Finishing it up took a few weeks more of evenings.
This is not possible. Both disassembly and decompilation are equivalent to the halting problem. At least Mike Van Emmerik's PhD thesis ("Static Single Assignment for Decompilation") mentions this though I'm not sure if that's the original source.
Strange that they list FreeDOS, DR-DOS and MS-DOS as separate OSes even though they are very similar. They are effectively ABI-compatible, unlike the different Unix flavors.
Discussion on part one: https://news.ycombinator.com/item?id=37415478
A followup to https://aras-p.info/blog/2023/09/05/Gaussian-Splatting-is-pr... discussed at https://news.ycombinator.com/item?id=37415478
It was Travis Downs: https://travisdowns.github.io/blog/2019/08/20/interrupts.htm...
That one is blocked for Europeans.