Hacker Newsnew | past | comments | ask | show | jobs | submit | strstr's commentslogin

Split locks are weird. It’s never been obvious to me why you’d want to do them unless you are on a small core count system. When split lock detection rolled out for linux, it massacred perf for some games (which were probably min-maxing single core perf and didn’t care about noisy neighbor effects).

Frankly, I’m surprised split lock detection is enabled anywhere outside of multi-tenant clouds.


Split locks are never something anyone wants to do, unless they are morons.

Split locks are always bugs, but like many other bugs that are benign on Intel/AMD CPU-based computers (due to efforts done by the hardware designers to mitigate such bugs, instead of crashing applications), they are not uncommon in commercial software written by careless programmers.

The Intel/AMD CPUs contain a lot of additional hardware whose only purpose is to enable them to run programs written by less competent programmers, who also use less sophisticated programming tools, so they are not able to deal with more subtle things, like data alignment or memory barriers.

This additional hardware greatly reduces the performance impact of non-optimized programs, but it cannot eliminate it entirely.


To me it seems an artefact of the x86 architecture; where any sane architecture just declared split locks illegal, x86 has some gently hidden away note about it being a bad thing.

You don't want them. Except for bug-compatibility with old broken software which is something that Intel (and MS) care a lot about.

If you mean split-lock detection, it is because split locks are a massive DoS vulnerability on high core count CPUs.


Popular blogger from roughly a decade ago. His rants were frequently cited early in my career. I think he’s fallen off in popularity substantially since.


This is more of a typing game than anything else. It rejected “blackcapped chickadee” (wanted black-capped chickadee). Frankly that felt a bit tedious on a phone. Had to scrub through to correct and lost.


My suspicion is that the bot was a fairly standard chess bot, but the difficulties were set based on computation time. As airplane computers got better, it turned into a beast.

As a result, if you tried this on older planes, it might have been “easier”


One of my first paid iOS dev jobs was porting a Go game from iPad to iPhone, don't even think the 4 was out yet. It also used computation time based difficulties. By the time I was done writing it, I knew a few tricks I could eke a win out with on 19x19.

When the iPhone 5S came out, I tried it on a whim to check the UI scaling etc... the beginner difficulty on a 9x9 board deleted me. It was grabbing something like 64x more samples per go, the lowest difficulty on the 5S (instant responses) never lost a single game vs the highest difficulty 3GS (15 second turns)

iPhones had a lot of moments like that. Silly bullshit like "what if every pixel was a cell in a collection view" would go from "oh it can barely do 128" to "more responsive than that was, with 2 million" in a few gens.


One of the minor weird things about iOS development early on was just how fast the transition was from the simulator being dramatically faster than actual devices to the simulator being slower than devices. When I started out you’d get things working nicely in the simulator and then discover it’s an order of magnitude too slow on a phone. Just a few years later and my phone was faster than my laptop until thermal throttling kicked in.


Chess on M series Macs has the same issue. Even level 1 is easily 2000+ Elo because of the same thing.


Oh, this led me down a rabbit hole…

I was maintainer of the Chess app from the early 2000s to about 2015. We first noticed in 2004 that level 1 (which was then "Computer thinks for 1 second per move) was getting stronger with each hardware generation (and in fact stronger than myself).

So we introduced 3 new levels, with the Computer thinking 1, 2, or 3 moves ahead. This solved the problem of the engine getting stronger (though the jump from "3 moves ahead" to "1 second" got worse and worse).

A few years after I had handed off the project, somebody decided to meddle with the level setting code (I was not privy to that decision). The time based levels were entirely replaced with depth based levels (which eliminates the strength inflation problem, but unfortunately was not accompanied by UI changes). But for some reason, parsing of the depth setting was broken as well, so the engine now always plays at depth 40 (stronger than ever).

This should be an easy fix, if Apple gets around to make it (Chess was always a side project for the maintainers). I filed feedback report 21609379.

It seems that somebody else had already discovered this and fixed it in a fork of the open source project: https://github.com/aglee/Chess/commit/dfb16b3f32e5a6633d2119...


I found a used copy of Warcraft 3 at the store about ten years after it came out, proudly brought it home, fired it up and didn’t recall the graphics being quite that awful, but the first time I tried to scroll the map sideways it shot to the far end because they didn’t build a timing loop onto the animation and I shut it down, disappointed.

Unfortunately they never released a remastered version of it. They seem to have made some clone of it called “reforged” whatever the fuck that means.


Yeah, Reforged was received very poorly so they basically end of life'd the franchise.

There is a thriving community with a couple different choices for servers to play on. So I'm sure there's a fix for your mouse speed issue.

Check Twitch for people streaming it: https://www.twitch.tv/directory/category/warcraft-iii

Grubby, one of the early esports stars, still streams it regularly and hosts his own for fun tournaments with other streamers.


Reforged was received poorly because it was a lazy half assed job that was a blatant cash grab. Not because culturally we have moved on and the game has aged beyond being fun

You probably knew this, but wanted to make sure others knew that the reason they ended the franchise is not because there was no market, but instead it was pure unadulterated greed that led to that situation. In an alternate reality they would have actually done the remake justice and there would be a lively competitive scene


Sorry for the aside but,

> SOLAR_FIELDS

Panoramic Greetings!


There are various hacks and tools for games (especially DOS games, but for W3 there may exist the same) which delayloop various calls to slow things down enough "to work".

The Dolphin emulator has run into similar things; usually doing things "too fast" just gets you more FPS but sometimes it causes the game to go insane.


Also, some DOS games were coded so that they ran correctly no matter the speed of the hardware, like Alley Cat :)


This is pretty much the experience of trying to play any game from the '90s on modern hardware. It always requires a bit of tinkering and usually a patch from the modding community. Funniest one I've found is Fallout Tactics. The random encounter frequency is somehow tied to clock speed so you'll basically get hit with random encounters during map travel about once every half second.


I've been enjoying Total Annihilation since 1997. Still works fine on fairly modern hardware with Windows 11. No modifications other than some additional maps that I downloaded decades ago.


Interesting. Assuming it did not use DirectDraw -- that's often a major pain point.


Sorry if this is a dumb question but did you patch it to the latest version? I don't know if the in-game updater still works but from memory you could download some sort of patch exe file and update it that way.


The original Wing Commander was like that. Playable on 286s/386s, then Pentiums and beyond showed up and it was unplayable. The game started in the "simulator" to show you the controls, and you'd get blown out of space in about 0.5 seconds.


Oh man, I remember that: on a newer computer, I'd tap the left arrow to turn and the Hornet would do a 360.

I suppose, technically, that's one way to make the Scimitar feel more responsive...


The original Wing Commander brings back memories! I remember being amazed by the graphics and the story.

These days I cannot stand games with cliched storyline and tend to skip the cutscenes, but back then it all seemed so amazing... like a cross between a movie and a game.

I remember playing it later and running into speed issues too, but usually there was a way to tweak the emulator in order to fix this.


> they didn’t build a timing loop onto the animation

Wow.

1984 (!!!) IBM PC (DOS) port of the game Alley Cat had timings built it. They actually used the system clock if I remember correctly, so it would always run at the correct pace no matter how fast the computer. Last I checked it, decades later, it still ran at the correct speed!

I guess some lessons don't get passed on?


There's an SC2 custom campaign that reimplements the wc3 campaign that is worth a look.


I think it means gcc -O0


AFAIK the only reason Chess even ships at all anymore is as a burn utility. They'll set it to AI vs AI at max difficulty to stress the system and make sure the cooling/power management works.


Never heard that one (it may indeed be used that way, but if it were the only reason Apple would probably keep it in the Apple internal parts of their OS installs).

It would also be of limited use, as the engine is purely CPU based; it is single threaded and does not even use SIMD AFAIK, let alone GPU features or the neural engines.


It can't be deleted because it's part of the system tools :)


For my personal usage of ai-studio, I had to use autohotkey to record and replay my mouse deleting my old chats. I thought about cooking up a browser extension, but never got around to it.


How much are my eyeballs worth over the lifetime of a TV?

In the race to the bottom, ads will outcompete others by pushing price lower. But how much lower?


Legitimately, they are often too hard. Balancing the problems is quite challenging.

On top of that, the solutions often make the problems seem much intimidating than they are (not that they are easy). Most solutions involve a lot of “happenstance”, where someone tried something and it got an outcome that was useful, which they build on top of. This makes the solutions look crazy complicated (“how would i have ever thought of this!?”), when in reality they are Rube Goldberg machines built out of duct tape and baling wire.

I’ve only solved a few Google CTF problems, and one of them was the one I wrote, lol. That was nearly a decade ago though.


Source for the ASP firmware is at https://github.com/amd/AMD-ASPFW.

It has a number of gaps, but it is mostly there. It doesn't build, it doesn't have source for some of the service calls iirc (SVC_.*), and the AGESA source isn't open (though a replacement is in progress, openSIL).


This is the source of only a single application (out of 30 or 40?). :)


Fair enough! Just happens to be the one of two I need to read


In practice, it’s essentially infeasible to make a non-detectable virtualization stack. Timing is really really hard to match (as is everything else). You can edit the binary that’s doing the detection, but this is time consuming. Every new feature they push costs you time and will poison your hardware id.

You can go further by, say, requiring fTPMs that are on the SoC (super common these days for most recent consumer CPUs). If you can’t boot into linux without the PCRs reflecting your virtualization stack being in the boot chain, you’re cheat is quite detectable.


That’s not intended to be possible for any reasonable TPM with a trustworthy ekcert.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: