| ▲ | Classic PC demoscene productions running natively in the browser(treylorswift.github.io) |
| 97 points by adunk 6 hours ago | 83 comments |
| |
|
| ▲ | velo_aprx 33 minutes ago | parent | next [-] |
| I understand that it might be nice to be able to play old demos in your browser, and its fine, but... 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. |
| |
| ▲ | freecodeio 32 minutes ago | parent [-] | | it's as if someone took the "everything you touch turns to gold" and replaced gold with sh*t and said "yeah this is a good power to have" | | |
|
|
| ▲ | Retr0id 4 hours ago | parent | prev | next [-] |
| > The demo is run on an x86 emulator that records every block of code the CPU actually executes, over the whole demo. > 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 3 hours ago | parent | next [-] | | Cycle accurate emulation helps little with this era PC demos, because back in 1993 PC hardware performance variation was already massive. From 386SX-16 to Pentium 66 MHz, that's over 20x difference in performance. | | |
| ▲ | dspillett 2 hours ago | parent [-] | | > Cycle accurate emulation helps little with this era PC demos 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 an hour ago | parent [-] | | Cycle accurate compared to what? 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. |
|
| |
| ▲ | rmnclmnt 3 hours ago | parent | prev | next [-] | | > It's funny how LLMs leak their test procedure docs into user-facing output. 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 | | |
| ▲ | dspillett 3 hours ago | parent | next [-] | | > You have to constantly fight so hard to not get this. 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? | | |
| ▲ | rmnclmnt 42 minutes ago | parent | next [-] | | Okay yes "fight so hard" might have been a bit stronger sorry for that. But it was more in line with "this has become so annoying recently" rightly so because yes you do need to remove the cruft that has nothing to be here and I don't remember being such as issue 6 months ago. The other part of it is to regularly remind colleagues of this rising issue because as I said, even experienced people tend not to care anymore, and this is saddening me. 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. | |
| ▲ | Sharlin 3 hours ago | parent | prev | next [-] | | Because we expect a junior colleague to learn from feedback and not have to fix the same problems in their output year after year. | | |
| ▲ | dspillett 2 hours ago | parent [-] | | But having learned from the feedback they or you then go off to work on something else and, unless you move onwards/upwards/both in perfect sync, and you end up with new juniors who need the feedback afresh. 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 2 hours ago | parent | prev [-] | | The people who don't care can output slop orders of magnitude faster than those that do. | | |
| |
| ▲ | christophilus 3 hours ago | parent | prev [-] | | I didn’t notice it when using Codex. Recently switched to Claude to test Opus 5.5, and it is constantly adding useless commentary. | | |
| ▲ | rmnclmnt 3 hours ago | parent [-] | | I don’t think that’s specific to Claude though. I’ve seen people use GH Copilot harneds (don’t with which models) and it was even worst |
|
| |
| ▲ | pjc50 2 hours ago | parent | prev | next [-] | | Yes, cycle-accurate is very expensive because it prevents optimization. But as described they say they're doing an AOT version of cycle-accurate anyway? 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 25 minutes ago | parent [-] | | Being cycle-accurate is annoying when you want full realtime if the hosting platform doesn't have enough CPU power to emulate all parts at full speed. 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 |
| |
| ▲ | bananaboy 2 hours ago | parent | prev [-] | | > What's the advantage of this approach vs cycle-accurate emulation? (I'd guess it can go faster, due to compiler optimization?) 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 2 hours ago | parent [-] | | This only works for something noninteractive that always executes the same code (unless I'm misunderstanding the LLM's description of what it did) | | |
| ▲ | bananaboy 2 hours ago | parent [-] | | Ah yeah true, no I don't think you're misunderstanding. Actually sorry I misspoke - what I've seen in the game re/decomp projects is that the binary gets turned into a direct C implementation of the instruction stream, and it's basically a sort of emulation with CPU/memory state and emulation of whatever hardware it might need to talk to. | | |
| ▲ | _the_inflator an hour ago | parent [-] | | I agree on this description. It looks like a wrapper for an app alias demo, not a generalization for all app following the hardware possibilities at the time. 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. |
|
|
|
|
|
| ▲ | Martin_Silenus 3 hours ago | parent | prev | next [-] |
| The days I gave up with demoscene. When PC killed Atari ST and Amiga scene (sorry to put you after amiguys, but life was always easier for you ;) ), all the magic of fixed hardware without tons of Mhz and RAM, when we were running after that cathode ray which wouldn't wait, exploiting hardware bugs to break those damn borders above, below and sideways, spending hours turning my head upside-down to read unreadable scrolltexts, looking at psychedelic plasma effects with bazillions colors... 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. |
| |
| ▲ | haspok an hour ago | parent | next [-] | | Running Crystal Dream 2 on a 386 was just as impressive as running those border-removing, cycle-counting C64 demos. Hardware was not fixed on the PC, but upgrades were mostly about improving quality without losing any of the original charm (Gravis Ultrasound FTW!), like a 40MHz 386 was only marginally faster than a 33MHz, and that just allowed you a few more FPS in Doom. 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. | |
| ▲ | cowlevel 32 minutes ago | parent | prev | next [-] | | The Amiga scene is still popular, probably for the reason you said. | | |
| ▲ | whizzter 21 minutes ago | parent [-] | | To be specific, the Amiga scene for a good while chased "coolness" with accelerated "monster"-Amigas. 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. |
| |
| ▲ | smokel 2 hours ago | parent | prev [-] | | I gave up once full screen video playback was possible from CD-ROM. After that, doing (typically worse) non-interactive animations in real-time, seemed a bit pointless. But watching Crystal Dreams II on my phone actually made me feel young again :) | | |
| ▲ | Martin_Silenus 2 hours ago | parent [-] | | Man, demoscene has always been pointless. That's one of the beauties of the thing, you cannot sell that. I call it love. |
|
|
|
| ▲ | futurecat an hour ago | parent | prev | next [-] |
| a couple of days ago I posted this: https://news.ycombinator.com/item?id=49982323 State of the Art was ported to the browser as well. |
|
| ▲ | Sharlin 3 hours ago | parent | prev | next [-] |
| If there’s no human effort behind this, what’s the point? You could just as well watch any of the zillions of video recordings of these demos. There’s no inherent value in "running natively in the browser". Never mind the vast irony in demoscene specifically being a celebration of human skill and creativity. |
| |
| ▲ | Karliss 3 hours ago | parent | next [-] | | Not going to say anything about AI translations. But the video recording don't do justice for many of demos. 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. | | |
| ▲ | Sharlin 2 hours ago | parent [-] | | I’m sure there are lossless recordings around. At 320x200x8bit even a simple sequence of PNGs wouldn’t take that much space in today’s terms. | | |
| ▲ | Karliss an hour ago | parent [-] | | Just did a quick test 320x200x8bit grayscale PNG (couldn't quickly figure out how to get 8bit color pallet) compressed to ~15-40kB. Multiply that by 60frames a second (or whatever odd framerate historic hardware used) and 120seconds and you get 200MB. Not completely impractical, but I wouldn't call it trivial amount of space. And if you find any demoscene collection providing losslessly compressed videos let me know. All I have seen is original executable+youtube video (which suffers from compression artifacts). And I doubt many demoscene website maintainers are eager to increase their storage and bandwidth costs 100x. | | |
| ▲ | Sharlin an hour ago | parent [-] | | Fair, it’s indeed a shame if there aren’t lossless or very-high-bitrate lossy recordings available. A literal sequence of PNGs is of course an upper limit, using temporal coherence (of which there’s a lot of) would shrink the size to maybe a few tens of megabytes. But of course there aren’t many lossless video formats in common use because it’s a rather niche use case outside mastering and archival. There’s lossless H.264 and H.265, and IETF’s FFV seems pretty well-supported too. Not sure if browsers support them though. |
|
|
| |
| ▲ | Retr0id 3 hours ago | parent | prev [-] | | Well, there is a little advantage. Most recordings are not at the native framerate, and have compression artefacts (which impacts some effects more than others) | | |
| ▲ | mrob 2 minutes ago | parent | next [-] | | Lack of CRT flicker is the biggest problem. Demo text scrolls are far more readable when you don't have sample-and-hold blur. There are gaming monitors with strobed backlights but I don't know of any that allow you to enable the strobing at 70Hz. 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. | |
| ▲ | bananaboy 2 hours ago | parent | prev [-] | | I mean even these browser ports aren't at the native framerate. The native framerate for these demos was 70hz as they were all designed for VGA video modes. | | |
| ▲ | Retr0id 2 hours ago | parent [-] | | A browser can run at whatever framerate you set your monitor to. Mine supports 70Hz. | | |
| ▲ | Sharlin 2 hours ago | parent | next [-] | | But most people’s monitors don’t, or people just never set them outside the standard rate. | | |
| ▲ | ahartmetz an hour ago | parent [-] | | My monitor's standard and actual rate is 165 Hz, which is probably not terrible at approximating 70 Hz (very few fps from a small multiple of 70 would be worst). High fps is probably a little more rare than HiDPI, but also becoming more common. It's already common in phones. |
| |
| ▲ | bananaboy 2 hours ago | parent | prev [-] | | Sure. I don't think I've ever had an LCD monitor that supports 70hz at a useful resolution though. My current monitors (native resolution 2560x1440) only seem to support it at 1024x768! | | |
| ▲ | Retr0id an hour ago | parent [-] | | Well, the demo runs at a lower res than 1024x768 so you're all set ;) | | |
|
|
|
|
|
|
| ▲ | vrganj 4 hours ago | parent | prev | next [-] |
| This kind of made me sad. 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. |
| |
| ▲ | mrweasel 3 hours ago | parent | next [-] | | For these four demos I don't know, but part of the challenge was certainly working within the constraints of the machines of the day. The Furture Crew demo I believe comes in at 2.5MB and ran on a 1993 PC, so probably 8MB of ram at the most. Running it in the browser is probably at least 20 times the memory. It's really cool to be able to rewatch these demo, but the spirit in which they were created is somewhat lost. | | |
| ▲ | smokel 2 hours ago | parent | next [-] | | Second Reality ran comfortably with only 640KB RAM using the Gravis Ultrasound. But it did require a 386, which typically had 2 MB or more of RAM back then. | |
| ▲ | bananaboy 2 hours ago | parent | prev | next [-] | | Second Reality runs in real mode, and doesn't use XMS or EMS so it runs in 640kb! | | | |
| ▲ | KellyCriterion 3 hours ago | parent | prev [-] | | > probably 8MB of ram at the most. Running it in the browser is probably at least 20 times the memory. 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! :-) |
| |
| ▲ | haspok 41 minutes ago | parent | prev | next [-] | | The C64 scene is still surprisingly active, and they usually do the seemingly impossible on such a limited hardware, while remaining incredibly creative (in how many ways could you phase out the C64 BASIC screen and show your demo't title?...). After the PC golden era I've been interested in the C64 only for a very, very long time, and I have not regretted it. | |
| ▲ | bananaboy 2 hours ago | parent | prev | next [-] | | I feel the same, it sucks. All you can do is carve out a space for yourself doing the things you enjoy, and don't let the AI grifters tell you that AI is the only way and everyone else is "cooked", no one will be writing things by hand, etc etc. God that rhetoric is depressing. 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. | |
| ▲ | Krei-se 2 hours ago | parent | prev | next [-] | | You just don't understand, it's the prompt and knowing which foreign work to endless rehash that's the new creativity now. There's taste in knowing what artist to steal from! /s if that wasn't obv. | |
| ▲ | sgt 3 hours ago | parent | prev | next [-] | | Who's going to show up to the next big demo party (like the ones they arrange in Europe), having e.g. hand coded 68k assembly or done some highly impressive 4k demo, having been intimate with every single instruction? | | |
| ▲ | bananaboy 2 hours ago | parent [-] | | Uh, many people. There are plenty of demo parties with retro categories in the compos, and plenty of people still interested in writing their own code for those platforms. | | |
| ▲ | sgt 2 hours ago | parent [-] | | Glad to hear that! But then again, might be hard to know how their approach was. Traditionally people write a lot of code and prepare before the compos, it didn't all come during those few hours. |
|
| |
| ▲ | pona-a 3 hours ago | parent | prev | next [-] | | Maybe it will just pass? Eventually maybe people will get bored of this consumerist mode of creation, of projects born with no vision or craft, made with the tastefulness of a kid smashing together their favorite toys. And when the majority finally agrees these stunts are a corrosive influence on the community, we can just approach it as a moderation problem, figure out some system of vouches and reports, or downsize and our communities until trust again becomes tractable, maybe even coming to appreciate some tactical slop as a stepping stone or a proof of concept to be eventually reverse-engineered into a maintainable human project. | |
| ▲ | GuB-42 2 hours ago | parent | prev | next [-] | | What makes you say this? Just because someone used AI to port some classic productions to the browser (which is actually pretty cool), doesn't mean that AI has taken over. 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. | |
| ▲ | plastic-enjoyer 4 hours ago | parent | prev [-] | | It's the eternal sloptember, but for humanity. | | |
| ▲ | blackhaz 3 hours ago | parent [-] | | Or an eternal heaven, our every wish coming true. The next iteration of homo sapiens will not be thinking how to do things, but what things to do. Is this the new creative space for us? | | |
| ▲ | vrganj 3 hours ago | parent [-] | | But the thinking is the valuable and meaningful part. I don't want it monopolized by a few megacorps, sterilized and devoid of human touch, only thinking of things that said corps find acceptable. 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. |
|
|
|
|
| ▲ | meerita 2 hours ago | parent | prev | next [-] |
| It's quiet amazing how much people did with 4kb, 64kb demos. |
| |
|
| ▲ | gritzko 4 hours ago | parent | prev | next [-] |
| So much fun. I recently ported some old strategy games. Claude does it almost on its own http://replicated.live/blog/games |
| |
| ▲ | 1313ed01 3 hours ago | parent | next [-] | | Lots of talk of DOS, but both games that are described (Panzer General II and Imperialism II) were only released for Windows? 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. | | |
| ▲ | gritzko 3 hours ago | parent [-] | | Ah, yes, sorry. At this point, XP and DOS are almost synonymous for me. 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. | | |
| ▲ | chriswarbo 3 hours ago | parent [-] | | > At this point, XP and DOS are almost synonymous for me. 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...) | | |
| ▲ | bananaboy 2 hours ago | parent | next [-] | | That's correct. Personally as an MS-DOS retro enthusiast and programmer I don't know how anyone could call XP and DOS synonymous! | |
| ▲ | gritzko an hour ago | parent | prev [-] | | Exactly. I switched to Linux in the 90s. |
|
|
| |
| ▲ | cyclopeanutopia 3 hours ago | parent | prev [-] | | So who or what ported them? | | |
| ▲ | bananaboy 2 hours ago | parent | next [-] | | I find it hard to congratulate someone on a project when they say Claude or whatever did it for them. It just feels so insincere. I myself wouldn't feel good getting compliments about something that I prompted into existence. | |
| ▲ | dspillett 3 hours ago | parent | prev | next [-] | | It is true what people say wrt using agentic development being like being a manager: you take an idea from elsewhere (a lot of game porting is happening right now), describe it to someone else who will do the hard work while you relax, and then at the end you as the team lead/manager claim all the credit. | |
| ▲ | gritzko 3 hours ago | parent | prev [-] | | Opus 5.5. |
|
|
|
| ▲ | joking 3 hours ago | parent | prev | next [-] |
| bufff.... the music from second reality still gives me goosebumps. |
|
| ▲ | melicerte 3 hours ago | parent | prev | next [-] |
| How to skin a cat... |
|
| ▲ | Krisso 3 hours ago | parent | prev [-] |
| I'm all for this future. Let's remove the tooling and let true creativity and diligence be what we appreciate and marvel at. If we can instruct AI well enough, it can eliminate the plumbing layer entirely, allowing us to focus on what truly matters. 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. |
| |
| ▲ | Sharlin 3 hours ago | parent | next [-] | | Hilarious. | | | |
| ▲ | leptons an hour ago | parent | prev | next [-] | | >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. | |
| ▲ | treylorswift 3 hours ago | parent | prev [-] | | You're welcome! These demos blew my mind in the early 90s and they still do today. Glad you enjoyed them! |
|