frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
546•klaussilveira•9h ago•153 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
872•xnx•15h ago•527 comments

How we made geo joins 400× faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
78•matheusalmeida•1d ago•16 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
186•isitcontent•10h ago•23 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
189•dmpetrov•10h ago•84 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
10•videotopia•3d ago•0 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
298•vecti•12h ago•133 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
347•aktau•16h ago•169 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
73•quibono•4d ago•16 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
343•ostacke•16h ago•90 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
441•todsacerdoti•18h ago•226 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
16•romes•4d ago•2 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
240•eljojo•12h ago•148 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
44•kmm•4d ago•3 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
378•lstoll•16h ago•256 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
5•helloplanets•4d ago•1 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
222•i5heu•13h ago•168 comments

Why I Joined OpenAI

https://www.brendangregg.com/blog/2026-02-07/why-i-joined-openai.html
97•SerCe•6h ago•78 comments

Show HN: ARM64 Android Dev Kit

https://github.com/denuoweb/ARM64-ADK
14•denuoweb•1d ago•2 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
20•gmays•5h ago•3 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
162•limoce•3d ago•83 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
63•phreda4•9h ago•11 comments

I spent 5 years in DevOps – Solutions engineering gave me what I was missing

https://infisical.com/blog/devops-to-solutions-engineering
129•vmatsiiako•15h ago•56 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
40•gfortaine•7h ago•11 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
261•surprisetalk•3d ago•35 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
1032•cdrnsf•19h ago•428 comments

Zlob.h 100% POSIX and glibc compatible globbing lib that is faste and better

https://github.com/dmtrKovalenko/zlob
6•neogoose•2h ago•3 comments

FORTH? Really!?

https://rescrv.net/w/2026/02/06/associative
56•rescrv•17h ago•19 comments

Show HN: Smooth CLI – Token-efficient browser for AI agents

https://docs.smooth.sh/cli/overview
85•antves•1d ago•62 comments

WebView performance significantly slower than PWA

https://issues.chromium.org/issues/40817676
20•denysonique•6h ago•3 comments
Open in hackernews

Why Castrol Honda Superbike crashes on (most) modern systems

https://seri.tools/blog/castrol-honda-superbike/
176•shepmaster•2mo ago

Comments

vintagedave•2mo ago
> Microsoft has only kept the documentation for the DX8 version of EnumDevices left online

This saddens me. Who knows how much valuable info has been lost. I recall back in the days of MSDN, we had docs back to early Windows, and it was a wonderful historical record. Today's Docs site seems to keep info only for a few versions.

falcor84•2mo ago
Another good reason to support independent internet archives
bayindirh•2mo ago
Why share something which you can sell for exorbitant prices? /s
Narishma•2mo ago
They are not selling it either.
bayindirh•2mo ago
Then, where are the docs if they are not publicly available?
bitwize•2mo ago
Anybody who still has MSDN Library CDs from the 90s, archive them at archive.org NOW!
seritools•2mo ago
AFAIK they are all backed up. For the blogpost I used the DX5 SDK docs, DX7 SDK docs, and the MSDN Library from VS2005 (last version to include 9x information).

The VS2008 version purged all API information regarding pre-Windows 2000.

netsharc•2mo ago
Oh geez, I have them, probably from the 00's. I tried to get into Windows programming, but it was all over my head.

Incredible that a few decades after thinking "All the world's knowledge will be online", we probably have to return to physical libraries to find the knowledge that ended up not being online anymore.

stonemetal12•2mo ago
Also of note Valve's Proton only goes back to DX8. Versions prior to that were considered not worth it.
Krutonium•2mo ago
That's only kind of true; Wine itself supports older versions of DirectX with the target API being OpenGL instead of Vulkan. It's just not quite super performant and kinda buggy. That said, there's other wrappers you can use to convert older DirectX versions into new ones, and if you can get to DirectX 8 or 9, now you've got DXVK.
ensocode•2mo ago
Thanks for the flashback :)
PaulKeeble•2mo ago
Its interesting to see how bad assumptions that almost certainly held up at the time really don't any more and that leads to this bug being exposed. Modern machines have a lot more addressable devices and a failure to properly filter and using a vector ultimately leads to a bug that on the surface feels like since it works on Win98 must be caused by Windows but isn't.
gambiting•2mo ago
I mean that's just a bad assumption no matter how anyone looks at it - if you created an array for 8 devices then just stop adding to it when you reach 8. The "a user will never have more than 8 gamepads" is a bad assumption because the logical question then is "what if they do" and the answer even back in the day would have been "the game will crash" which isn't how any code should be written. Stop processing at 8 if you are so sure there will never be more than 8, but have the most basic sanity checks.
AyyEye•2mo ago
Back in the days of manually setting IRQs enough of them were used by the system that no, you couldn't use 8 gamepads. Assuming you could even connect them.

(I think this game is probably past those times but not by much)

seritools•2mo ago
I specifically checked if DirectInput from DirectX 5 already supports/provides USB HID devices, and it does! Granted, even then it was unlikely to encounter 8 USB devices, let alone HID devices in particular.
xx_ns•2mo ago
I appreciated the footnote on filesize optimization as someone who's constantly trying to compulsively generate the smallest binaries possible.

Interesting article, thank you.

purpleidea•2mo ago
The cool part of this adventure is that the author was able to write this DLL patch purely in rust! Good testament of how far it has come. Can't wait to see more C code ported to either Golang or Rust!
Xylakant•2mo ago
I chuckled at the callout to Rust9x. Neat to see it pop up randomly.
seritools•2mo ago
Author here -- given that r9x is also my project it wasn't entirely random :^)
vintagedave•2mo ago
This is pretty amazing, and I'm surprised in a sense by how few workarounds you've had to implement. It makes me wonder what Windows would look like if we had Win2K or Win7 with today's system APIs (for high DPI, increased security etc.)

I know Windows has made great strides in security, but I deeply miss the old Windows and this really hits home about how _little_ has fundamentally changed, or rather, how much the continuance of these APIs means today's Windows could be like old Windows, if MS wanted.

I came across Windhawk a couple of days ago here on HN, a system to patch Windows to look and behave more old-style; wow.

vintagedave•2mo ago
I was quite interested in the patch -- am I right in thinking the DirectX library only exports a single function and _everything_ else is through DX interfaces?

I expected to see significantly more code, pass-through to the original DLL.

xx_ns•2mo ago
The author linked to the repo and the code is at https://github.com/seritools/castrol-honda-dinput-fix/blob/m...

Seems pretty straightforward. They hook DirectInputCreateA() and pass their own device enumeration wrapper with the offending flag removed.

tialaramex•2mo ago
The flag DIDEVTYPE_JOYSTICK was added by this fix not removed.

The idea is, rather than handle up to 8 devices, otherwise UB and usually crash, handle up to 8 "joysticks" and disregard any beyond that.

xx_ns•2mo ago
Apologies, that's what I meant to say. I blame that on my lack of coffee today, my bad.
anthk•2mo ago
I'd just use WineD3D in this case; I'm sure there's dinput.dll too ported to Wine for Windows.
seritools•2mo ago
> am I right in thinking the DirectX library only exports a single function and _everything_ else is through DX interfaces

Yup! That's why I didn't have to create a gazillion passthrough functions.

The original DLL in my modern Windows installation has these 8 exports:

    DirectInputCreateA
    DirectInputCreateEx
    DirectInputCreateW
    DllCanUnloadNow
    DllGetClassObject
    DllRegisterServer
    DllUnregisterServer
The game only calls DirectInputCreateA, and the rest happens via the COM object that that function creates.
jebarker•2mo ago
Nice write-up. Reminds me that debugging is the most fun part of programming!
1313ed01•2mo ago
I have had very bad success rate with my old Windows CDROM/DVD era games. Pretty much all of them either have some kind of DRM or they run but with bugs.

When available I just buy the GOG versions instead, but even those versions sadly often have issues.

Meanwhile slightly older games from the DOS era works perfectly everywhere thanks to DOSBox. I would love to see something like that for old Windows. Merge DOSBox with WINE, someone?

trollbridge•2mo ago
You can run Windows 95 in DOSBox. You could also just run WINE which runs most old games.
anthk•2mo ago
You can use WineD3D for Windows.
seritools•2mo ago
Usually dgVoodoo handles most of the games (that don't have actual bugs like this game) fairly well.

Otherwise, 86Box is a pretty good full-system emulator for everything up to the early 3D era.

As for DRM, there's various ways around it of course :)

neonz80•2mo ago
Why an extra DLL instead of just patching the game executable? With some luck it is a one byte patch (from push 0 to push 4).
seritools•2mo ago
Because I felt like it :) Also works for multiple versions/patchlevels.

But yeah, with the info provided it should be patchable. It's a `push esi` though, where esi has to stay 0 for a few further usages, so it's a bit more than a one-byte patch. It also wouldn't fully resolve the OOB write in the rare case where you _do_ have 9+ game controllers connected.

qingcharles•2mo ago
I feel like this is a cleaner solution. As a user you don't have to faff around running a whole application just to change 3 bytes. Just drop this file in and go.
progforlyfe•2mo ago
I love hard-core deep debugging for stuff like this. Great work!!