146 points | 15h ago | Discuss on Hacker News | Back to Radar
If the games had been for DOS, it would probably have made more sense to just run the original binaries in DOSBox-X or some other emulator. I think there is already some debug API that can be enabled. Or adding MCP or something similar to DOSBox(-X) would probably be a lot less work than to reimplement the games.
The entire point of the port was to add headless play for AI training. But porting the old interface and playing it in the browser was lots of fun. Can not upload that to GitHub, obviously.
IIRC Windows 9x & ME were based on (MS)DOS; but 2k and XP were based on NT, which was quite different.
(Note sure what those differences actually are, since I only started programming once I'd switched to Linux...)
The demoscene was all about human ingenuity getting the most out of the machine. It was about showing off how good your crew was at making things from nothing but their minds.
Now, it too, has been swallowed by the AI that is destroying this entire mode of being, the joy and creativity of writing code, of solving seemingly-impossible puzzles with ones mind.
My favorite creative and intellectual outlet is dying off and its killer is wearing its corpse as a costume.
We'll get unlimited frozen pizzas, but we'll kill off chefs in the process.
It's not a trade I'm feeling good about.
Have you ever soured on a video game because you downloaded a "god mode" cheat?
It's really cool to be able to rewatch these demo, but the spirit in which they were created is somewhat lost.
lol, that would be 160MB then, a fraction of what a Firefox Tab consumes and in todays hardware specs its a roundoff error :-D
(while back then you were the ultimate king if you had 8 MB of RAM available at all! :-)
But it did require a 386, which typically had 2 MB or more of RAM back then.
AI slop productions tend to be frowned upon, or even banned, writing code and using cool tricks to to what seems impossible is still a big part of the demoscene, in particular in the sizecoding, oldschool and wild categories. Clever use of AI is a debated topic, the demoscene is about pushing the limits of current technology, and AI is part of current technology. There is also the question of using AI for tooling (modelers, compressors, test harnesses, etc...), as in, will you stop using a particular IDE because it is written with the help of AI, even if it is good?
But still, most productions are hand made.
I write demos and games as a hobby predominantly for MS-DOS and machines ranging from the 386 up to the Pentium (soon to add 8088/286 to that list) as well as old consoles like the Sega Master System and other random platforms (like ARM-based kids toys like the Leapster Explorer).
Right now I'm working on an EGA production. I could just get an AI to generate a lot of the code for me or give me all the answers, but instead, I have my Programmer's Guide to the EGA/VGA/SVGA by Ferraro and another reference open on my desk trying to understand the CRTC so I can create a custom video mode. I live for this stuff and want to fully understand what's going on in the hardware. I like the creative aspects of making demos and games but I also like the technical aspects, and understanding the platform and the deep details.
When I spend too much time reading HN or X and see too much of the AI stuff, it really bums me out, so I have to detox by unfollowing/ignoring and getting back to my projects.
I think the biggest effect of AI here is that you can no longer make the inference from "that program looks impressive" to "the person who created it must be very skilful and/or invested a lot of effort in making it". So someone else seeing your work might not appreciate the level of effort and skill you put into it, or might even suspect you of lying if you say explicitly that you made it "by hand". I'm not going to say that we shouldn't care what others think; that's not realistic, most of us do want some recognition for things we've worked hard on. I think there will always be people interested in doing things the hard way, and among those people the "old" paths to recognition and respect still operate, it just gets harder because there has to be a lot of trust between them that no one's taken the easy way out (AI) and pretended otherwise.
/s if that wasn't obv.
Those demos from the '90s remind me of the incredible creativity and ingenuity of the human mind. Thanks for bringing them back to life and making them so effortlessly accessible.
You don't need any AI for that. Just visit https://pouet.net
The demo scene is still very much happening.
High fps is probably a little more rare than HiDPI, but also becoming more common. It's already common in phones.
A workaround for modern hardware is frame doubling then blanking every other frame (software black frame insertion). It halves the brightness, but modern monitors generally support higher brightness than CRTs so this just brings it back to the authentic level. It's possible with FFMPEG filters, although I don't remember how I accomplished it when I tried it years ago.
The importance of CRT flicker is one reason I greatly prefer DOS demos to C64 and Amiga demos. Those were mostly designed for 50Hz PAL CRTs, so the flicker is far more annoying than 70Hz VGA.
The effects in some of the demos simply kill any video encoder, only way to properly experience them is by running or emulating locally. Not that crystal sharp upscaled square pixels on modern display or poor quality CRT filters are very representative either, but it's likely better than blurry mess you get when video encoder tries to deal with high frequency details or random noise from procedural effects.
Then I betrayed you all: I bought my first ugly machine because of Doom. I was so ashamed...
Now, only 4KB demos can at least impress me a bit.
Feeling old.
But watching Crystal Dreams II on my phone actually made me feel young again :)
The standard VGA resolution fit a full screen in a single 64KB segment nicely, you had many colors but not limitless, so I would argue that this was really the golden era of the demoscene. Partly because almost anyone could do some kind of a short demo that was still enjoyable to watch, and did not require the insane amount of cycle-counting and optimization and planning that the C64 does.
But the focus shifted in recent years to treating "OCS" (ie "standard" Amiga500 with original chipset and 1mb,etc) more like a fixed platform like the C64 instead and imho has seen a bit of a revival since is mostly in the interesting part of pushing the OCS HW.
State of the Art was ported to the browser as well.
Please keep AI away from the demoscene.
Ive been active in the demoscene for almost 30 years, its a big part of my life, and i am truly worried people using AI to build tools and code demos will destroy it by removing the very reason why its interesting. I want to be impressed by real peoples knowledge, skill and creativity. Not your ability to prompt.
Mostly, i hate the AI remaster option. It was never intended to look or sound like that.
Demoscene should embrace it.
Yes, but “doing” with AI is not actually doing it, is it? Yes, something gets done, but the end result was never the point of the demoscene. The finished product was merely the proof-of-work.
As with AI it's no different than delegating work to a group member. What counts is vision and execution.
If I delegate something to somebody else, I can’t then claim that I made it, because of my “vision and execution”.
I think many people are confused what's AI has given to them. An ability to be a boss. Something that used to be afforded to the rich. Now you can assemble a "team" and deliver whatever idea you have in mind without spending thousands or millions.
Its about people doing the seemingly impossible with technology, not technology doing whats possible with technology. If you use AI, you did nothing but ask it, and i could never be impressed by that.
And how would you vote in the competitions at demoparties? By tokens used?
Most parties strictly forbid the use of AI in production, but im afraid some people aren't honest enough to abide to that rule.
I suppose it would be interesting to have a random split, half use AI half don't, judging is blind and see what the outcome is
Sceners are no strangers to imposing artificial constraints on themselves. Just look at high end 64k, 8k, 4k, and 256byte intro coding, there is no real reason for it other than the challenge. So I really hope this mindset can be applied to AI use as well.
I think the point is your not outputting anything. For crud apps that's fine but an activity where the whole point of it is to show off your technical skills it seems quite pointless.
If I can beat someone's technical skills with AI what are their technical skills worth? That's the question that a lot of people are struggling with right now.
If you can come up with a problem that a human can solve better without AI, then that's an interesting competition and the tools involved wouldn't end up mattering much.
Now if the contest is "who can develop the best/smallest/fastest app without AI" that's completely fine, there are similarly "who can cut the most grass with a scythe" competitions and everyone involved knows what they're signing up for and has a good time. Nothing wrong with that.
> If I can beat someone's technical skills with AI what are their technical skills worth? That's the question that a lot of people are struggling with right now.
I could turn up on a chess competition with a chess machine and beat my opponents with it, but that is not the point of chess competitions
Why would I care about vibe coded a demo when I could just ask Claude to make the same thing for me?
If you have two demos side by side, one AI and the other human, the human version is immediately more interesting because it showcases a high level of skill that you may aspire to achieve one day. The AI version is as forgettable as the person who prompted it, because it does not demonstrate that person's skill.
Same reason why we generally find weightlifters to be impressive even though machines have been able to out-lift anyone for thousands of years.
That said, I don't think most people dislike using it for tedious work or information searching. Similar to how most are still impressed by a lifter using a Smith machine to stabilize an absurd weight.
There will always be competitions that limit tool use, and competitions that don't. There are many examples that go either way.
Using AI requires next to zero technical skill.
That's the key.
I think the problem is that you think of demoscene as just fancy videos, but it's actually about making a fancy video while dealing with serious constraints. In the classic demoscene of the 80s/90s, that constraint was processing power or RAM. In the modern day, processing power is immense, so people make the constraints artificial, such as putting a limit on your executable size.
Using AI to produce a demo within constraints is simply not impressive.
AI isn't a tool the way a debugger, compiler, or IDE are. It's more like outsourcing your work to someone else, then taking the credit for producing it.
Yes demoscene is about doing the impossible with Technology, but its also about proving that your group is good at performing miracles with computers. Modern demos are still technically impressive, but art direction is much more important for a high-tier demo. It's not "we are doing this impressive thing" as much as it is "Look what WE are able to do with this technical trick we are harnessing". The group and people behind the demo is a brand and part of the experience.
My personal opinion is that if you think a 100% vibecoded demo is cool, you don't really "get" the demoscene. Nobody is impressed that you could vibecode a visually impressive demo. You aren't winning anyone's respect. Nobody will work to beat you (they will at best push Claude harder - its a question of money not talent). The point of the demoscene is to pull off impressive feats with computer hardware, and if you didn't even do it yourself, nobody cares, because it's not impressive.
I think few are going to hate you for outsourcing basic, repetitive work to an LLM. But if you go "hey claude make me a particle engine" it kind of misses the point?
Then again I'm not really a hardcore scener myself, with just a few mediocre prods, so maybe someone from Farbrausch, ASD, TBL, or others will show up and tell me why I am wrong.
I am just saying that AI is also something to harness, show it can help create something mindblowing. I am not saying that everyone should now go and type: "Make me a blob animation with phong reflections, put a bouncy scroll bar with 80s looking fonts and craft Ikari style chip tune and book tickets to the next demoscene party".
Opinion ignored.
This obviously intersected broadly with getting the most out of technology, but the main purpose was always (and still is) showing skillsets.
Because there is no natural right for you to be part of a scene. The right is earned, and every scene does well by keeping posers and mouthbreathers out.
And I didn't do any coding to achieve that. Cool right?
Eh.. no. A completely boring negation of what demos are about.
I got my first PC (a 486 DX2-66) in 1994 and got a Creative Soundblaster graphics card + speakers later that year. Second reality was the first demo I had on that PC. I remember being blown away by the graphics and audio... I showed it off to everyone. Of course it looks quite quaint now, but at the time I had just upgraded from a Commodore 64!
Comments are loaded live from Hacker News and are not stored by Mid or Real.
Retr0id 12h ago on HN
> That recording is translated into C - the original instructions, one for one, with the exact cycle timing of the emulated machine.
What's the advantage of this approach vs cycle-accurate emulation? (I'd guess it can go faster, due to compiler optimization?)
> The result is checked against the emulator event for event: every interrupt, port access and frame at the same moment of emulated time.
It's funny how LLMs leak their test procedure docs into user-facing output.
vardump 12h ago on HN
dspillett 11h ago on HN
It works, and has done for some time, surely. What more is there to add here above accurate playback?
> From 386SX-16 to Pentium 66 MHz, that's 10-20x difference in performance.
Yep, and some demos had specific requirements for not only minimal CPU but maximal because the assumptions inherent in small-code timing tricks would break beyond a certain speed or because of significant differences in relative instruction execution times (and sometimes the unpredictability of those execution times as the P5 architecture and some of its frankenstein-486-like competitors added branch prediction). Larger demos were more flexible as you didn't need the small-code tricks to squeeze into 4Kb or sometimes less, so 64K demos and larger could be more flexible wrt target CPU.
But cycle-accurate emulation has this sorted to: you just need the instruction cycle time accuracy to be matching a particular CPU running to the pace of a particular clock. And given the description of how this is being done (“The demo is run on an x86 emulator that records…”) I assume this is actually using cycle-accurate emulation!
I'm guessing the benefit here is that the overhead of playing back the demo on each client machine is lower when playing this recorded version, compared to each viewer's browser running the initial emulation live in the browser. That and doing something a new way was fun or otherwise intellectually stimulating for the dev(s) involved.
vardump 9h ago on HN
Even with a cycle accurate CPU you'd still have a lot of variation caused by the motherboard chipsets, DRAM speeds, cache chips and graphics cards.
Tseng ET4000 was on a completely different level than something like Cirrus Logic CL-GD510 or heaven forbid, Oak Technologies card.
If the era appropriate PCs had huge variations, what extra does cycle accuracy really bring at this point? The same PC demo could perform very differently on two 486DX2 66 MHz PCs.
dspillett 6h ago on HN
Wrt GFX: Most demos, certainly when thinking about the 4K challenges, would be using nothing more than some variant of a basic VGA display mode (usually but not always Mode 13h or some variant like “Mode X”) without detecting and taking advantage of acceleration features - the difference between graphics cards at this point was not nearly as significant as what the demos were doing in the CPU, even the nastiest ISA card of the era is going to keep up at a reasonable framerate, IIRC from my doom playing days.
vardump 5h ago on HN
At this point you can be talking about 600 kB on a DOS machine. Sky is the limit on modern systems.
That said, typical inner loops of that era demos were pretty small, usually 20-200 byte range, IIRC.
Pre-cache era demos often had huge unrolled self-modifying speedcode inner loops, but that's another matter.
EvanAnderson 7h ago on HN
Absolutely
"How much of the sword emerged from the water" in Second Reality was a good measurement of CPU speed and video card performance, for example.
I remember seeing stuff in demos on my friend's Pentium Pro machine that I never saw on my 486SX-25 because routines ran faster and you could see more of the effect (since some demos were sync'd to the music and would move on irrespective of the progress of the effects). Heck-- just replacing my video card made a huge difference with some demos.
rmnclmnt 12h ago on HN
You have to constantly fight so hard to not get this. And for the past few months it seems most people do not even care to remove it and have proper user facing docs
christophilus 12h ago on HN
rmnclmnt 12h ago on HN
dspillett 11h ago on HN
By “fight so hard” you mean “do a bit of basic editing before publishing the text”?
You wouldn't have thrown a junior's text straight at end users without any review in the past (at least I hope not, though obviously some teams actually were and still are that lax), why do you expect to get away with skipping the review/edit step with your clockwork colleague?
Sharlin 11h ago on HN
dspillett 11h ago on HN
Also: I've always avoided being anything like a lead or manager, but I do effectively have a couple of relative juniors ATM who I wish would have a better long-term learn/forget ratio when it comes to feedback from myself and elsewhere!
Retr0id 10h ago on HN
rmnclmnt 9h ago on HN
rmnclmnt 9h ago on HN
And while in 2025 I considered AI coding agent in the realm of junior devs, we have been way way past that since early 2026 honestly.
bananaboy 11h ago on HN
I don't think anyone is doing it this way because they chose to do it this way. All the AI decomp/recomp projects I've seen recently have done it this way. It just seems an easy way to have an AI brute force "port" something.
Retr0id 11h ago on HN
bananaboy 10h ago on HN
_the_inflator 10h ago on HN
On the other hand, at least these folks build and create and I prefer wrapper demos instead of a perfect emulator that will never finish.
Nevertheless, on the feature side of these wrappers I really miss a fast-forward option. If you go pseudo-emulation, then at least come up with some convenience features.
Maybe this is the irony: the ff button is perfectly legit, I used mine many times with the 486DX3-100 and Pentium 133. Back then it was called turbo button.
pjc50 10h ago on HN
In some ways this is similar to the concurrent-systems problems that memory barriers are a tool to address. Your emulator will come in two halves, a CPU side and a gfx/sfx side, as well as control inputs, and the "intermediate" approach is when you're just trying to preserve the sequence of load/stores between the two with an accuracy relative to frame timing. Maintaining ultra precise timing within a frame imposes more detailed coordination requirements on both sides of the emulation.
whizzter 9h ago on HN
I guess the point is that a pre-compiled version could have HW checkpoints from a slow emulated run, so that it can then run at full speed and just advance the HW to the required timestate when a write is to occur (ie, instead of costly cycle-accurate emulationg, most HW operations can be batched inbetween time-sensitive checkpoints).
Then again, why not just record a video at that point? :P