HNHacker News
TopNewBestAskShowJobs

seritools

764 karma · joined May 25, 2020

submissionscomments
seritools··on I tried Gleam for Advent of Code
For a quick fix: `font-variant-ligatures: none;` on body or similar.
seritools··on Microsoft makes Zork open-source
Infocom was bought by Activision, ActivisionBlizzard was bought by Microsoft.
seritools··on Unofficial "Tier 4" Rust Target for older Windows versions
Author here -- previous discussions/blog posts:

https://news.ycombinator.com/item?id=23313577

https://news.ycombinator.com/item?id=31112273

https://news.ycombinator.com/item?id=37787161

https://news.ycombinator.com/item?id=38810782

seritools··on Why Castrol Honda Superbike crashes on (most) modern systems
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.
seritools··on Why Castrol Honda Superbike crashes on (most) modern systems
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.

seritools··on Why Castrol Honda Superbike crashes on (most) modern systems
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 :)

seritools··on Why Castrol Honda Superbike crashes on (most) modern systems
> 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.
seritools··on Why Castrol Honda Superbike crashes on (most) modern systems
Author here -- given that r9x is also my project it wasn't entirely random :^)
seritools··on Why Castrol Honda Superbike crashes on (most) modern systems
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.

seritools··on Thunk: Build Rust program to support Windows XP, Vista and more
According to https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Histo..., the last version to support Win3.1 is VC++ 1.52 (which was shipped with VC++ up to version 4).

Unless you mean NT3.1 of course :^)

seritools··on Thunk: Build Rust program to support Windows XP, Vista and more
this comment thread hasn't been talking about win16.

but you're right, win16 can only load some 32-bit PE files through something like Win32s

seritools··on Thunk: Build Rust program to support Windows XP, Vista and more
sorry, i was referring specifically to the x86 segmented memory model: https://en.wikipedia.org/wiki/X86_memory_segmentation (basically, near and far pointers)
seritools··on Thunk: Build Rust program to support Windows XP, Vista and more
it would, just without standard library support, as the default stdlib imports system APIs that older versions don't provide. Other than those and a "supported OS version" filed in the PE header there isn't really much else in your way (hence my Rust9x project)
seritools··on Thunk: Build Rust program to support Windows XP, Vista and more
likely no_std, and running via Win32s. Rust doesn't have support for segmented memory, so native 16-bit would be much harder
seritools··on Apple's Browser Engine Ban Persists, Even Under the DMA
it's the "thin" browsers that are half-embedded in other apps, such as Google News. In the menu you can see "Running in Chrome" and "Open in <yourdefaultbowser>"
seritools··on Tree Borrows
"can do things" in this case doesn't mean "is allowed to do things".

"Unsafe code allows to express the following, which is UB:"

seritools··on Inigo Quilez: computer graphics, mathematics, shaders, fractals, demoscene
https://mercury.sexy/hg_sdf/
seritools··on Fast machines, slow machines (2023)
> Notepad had been a native app until very recently, and it still opened pretty much instantaneously. With its rewrite as a UWP app, things went downhill. The before and after are apparent, and yet… the app continues to be as unfeatureful as it had always been. This is extra slowness for no user benefit.

We now have HUGE (/s) advancements in Notepad, like tabs and uh... Copilot

seritools··on GCC 15.1
> If the size of the new type is larger than the size of the last-written type, the contents of the excess bytes are unspecified (and may be a trap representation). Before C99 TC3 (DR 283) this behavior was undefined, but commonly implemented this way.

https://en.cppreference.com/w/c/language/union

> When initializing a union, the initializer list must have only one member, which initializes the first member of the union unless a designated initializer is used(since C99).

https://en.cppreference.com/w/c/language/struct_initializati...

→ = {0} initializes the first union variant, and bytes outside of that first variant are unspecified. Seems like GCC 15.1 follows the 26 year old standard correctly. (not sure how much has changed from C89 here)

seritools··on High-Performance PNG Decoding
> I didn't do performance testing or anything, it just didn't seem like there was any point in trying to compete with whatever millisecond-scale gainz libpng presumably had over my library when both of them are capable of loading the picture in less time it takes me to recognize the picture on the screen in front of me.

The gains become relevant in bulk processing.

seritools··on IronRDP: a Rust implementation of Microsoft's RDP protocol
It's instructions for the Windows RDP server to enable RemoteFX support so that the Rust client can make use of it.

Maybe I'm missing something, but for the server side it's only crates that help you build your own server, no direct integration with any system, be it Windows or otherwise.

seritools··on Test if a number is even
it's a semantics problem, not a maths problem - modulus and remainder are not the same operation. This easily trips up people since `%` is often called "modulo", yet is implemented as remainder operation in many languages

https://stackoverflow.com/questions/13683563/whats-the-diffe...

seritools··on Fun facts about SQLite
> I hate that it doesn’t have types. It’s totally YOLO:

SQLite _does_ support strict column types since 3.37: https://www.sqlite.org/stricttables.html

seritools··on MIT study explains why laws are written in an incomprehensible style
https://catala-lang.org/
seritools··on Solaar is a Linux manager for many Logitech keyboards, mice, and other devices
for Logitech G there is the Onboard Memory Manager, a portable tool to just set up the onboard profiles. Since they released it I've not had to use their normal software anymore: https://support.logi.com/hc/en-ca/articles/360059641133-Onbo...
seritools··on How to Reverse Engineer a 12 EUR Intel PCIe FPGA Card IBM 98Y2610
related: https://news.ycombinator.com/item?id=42368784
seritools··on Intel announces Arc B-series "Battlemage" discrete graphics with Linux support
1440p is colloquially referred to as 2.5K, not 2K.
seritools··on Raspberry Pi boosts Pi 5 performance with SDRAM tuning
> You can actually monitor the temperature of the sdram and it reports if refresh at half or quarter the rate can be done. That allows the overhead due to refresh to be reduced by a half or a quarter which does improve benchmark results.

I wonder why this is not available on PCs. tREFI tuning has a big impact on performance, and having an automated guided optimization based on temperature would be nice.

seritools··on The Birthday Paradox Experiment (2018)
> While the math is clear, I'm a bit annoyed by the label "paradox" as the whole setup is too simplistic and reductionistic.

https://en.wikipedia.org/wiki/Paradox#Veridical_paradox

(also https://www.youtube.com/watch?v=ppX7Qjbe6BM for a 40min video discussing the weird usages of the word "paradox")

seritools··on Show HN: Scooter – Interactive find and replace in the terminal
(And `ignore` uses `walkdir` internally)
← PreviousPage 2 of 6Next →