Browser ports
category: general [glöplog]
aight so i decided to try my skills in vibe-reverse-engineering as well and after tiresome work ended up making Planet Potion run on Win98 + Voodoo 2 :)

and on other OpenGL cards as well. still few bugs left (mostly in fog handling), maybe i'll dump the results somewhere (although i guess emoon already catched up)
...guess i'd rather back to coding things by hand 😅

and on other OpenGL cards as well. still few bugs left (mostly in fog handling), maybe i'll dump the results somewhere (although i guess emoon already catched up)
...guess i'd rather back to coding things by hand 😅
Yeah rather code things by hand please. The wisest words in this thread even if the results are nice.
Quote:
Just finished VIP 2 by Popsy Team:
https://mrdoob.github.io/vip2/
woa that demo didn't age well huh! nice port though
Quote:
and on other OpenGL cards as well. still few bugs left (mostly in fog handling), maybe i'll dump the results somewhere (although i guess emoon already catched up)
Great work! In my case I actually started on it 1.5 years ago and lots of it is hand written. In my case I run the PPC code inside an emulator and then implement the API calls to Warp3D in OpenGL. Also the music uses a native digibooster playback.
I have already been in contact with some of the original authors and they have granted me permission to release it and we will likely fix some subtle bugs in the original music. I just need to get around to finish everything up. My end goal is to have it so you can compile it in C to different targets and the PPC emulation is simply a step in that direction until the whole Warp3D implementation is fully working so I have a good baseline to start from.
"FREE FOR GIRLS" yeah :P
@skrebbel: or we have better taste
and prefer browser sherries over ports?
Quote:
aight so i decided to try my skills in vibe-reverse-engineering as well and after tiresome work ended up making Planet Potion run on Win98 + Voodoo 2 :)
From amiga executable to windows .exe with glide?
Loving this thread! thanks to everyone for the initiative, digging into how
these things work is what got me into this in the first place, and seeing so
many great demos taken apart is a joy.
Here's my 2c, a Win32 port of Starstruck by TBL, rebuilt from the
68060 binary and verified pixel-by-pixel against the original running under
emulation. Runs off the original, unmodified Starstruck-Final.dat, nothing
else.
@wbcbz7 @emoon: Awesome stuff guys! I had actually started on Planet Potion win32 port when the "show some ambition" challenge landed here lol... and then you two beat me to it :D
these things work is what got me into this in the first place, and seeing so
many great demos taken apart is a joy.
Here's my 2c, a Win32 port of Starstruck by TBL, rebuilt from the
68060 binary and verified pixel-by-pixel against the original running under
emulation. Runs off the original, unmodified Starstruck-Final.dat, nothing
else.
@wbcbz7 @emoon: Awesome stuff guys! I had actually started on Planet Potion win32 port when the "show some ambition" challenge landed here lol... and then you two beat me to it :D
Quote:
aight so i decided to try my skills in vibe-reverse-engineering as well and after tiresome work ended up making Planet Potion run on Win98 + Voodoo 2 :)
and on other OpenGL cards as well. still few bugs left (mostly in fog handling), maybe i'll dump the results somewhere (although i guess emoon already catched up)
...guess i'd rather back to coding things by hand 😅
That setup brings back memories. I had a nice IBM PC back in the day just like that.
Quote:
Here's my 2c, a Win32 port of Starstruck by TBL, rebuilt from the 68060 binary and verified pixel-by-pixel against the original running under emulation. Runs off the original, unmodified Starstruck-Final.dat, nothing else.
Wooo yes!
BPL, if it's actually rebuilt and not just essential parts of WinUAE stitched together as a shell, can you restore the session and, especially if you can use some more advanced model like Fable, execute a prompt "create a .html page about how starstruck demo operates with inline svg illustrations" and post it somewhere please? :)
And then let's hope the information is atleast mostly correct :D I've had some ok results with Fable, Opus is a lot weaker. Don't know about other vendors.
And then let's hope the information is atleast mostly correct :D I've had some ok results with Fable, Opus is a lot weaker. Don't know about other vendors.
https://jasper2-0.github.io/planet-potion-webgl/
completely rebuilt, textures / music byte accurate. No bakes, everything generated.
completely rebuilt, textures / music byte accurate. No bakes, everything generated.
https://jasper2-0.github.io/planet-potion-webgl/mashi/ has the single file mashi version, clocks in at 60,569 bytes, thanks to sagacity’s packer
In late february 2026, in the context of my PhD candidate in digital preservation, I started a first experiment on a Blitz Basic port of Zarch/Virus (the famous Archimedes game by David Braben). I couldn't figure, back then, how coding "assistants" such as Codex would be able to decompile binary code, so it felt to me like a good starting point to try the translation skills of AI on a rather readable source code.
This first port wasn't easy, mainly because of me not being specific enough with Codex (5.3 back then) about what I expected. I learned that asking a roadmap beforehand helps a lot to prevent AI going in the wrong direction. In addition, asking for a "pixel perfect port" helped things to improve. The result was not 100% faithful, but I was genuinely impressed how quick it went to port the entire game.
I'm not a expert in coding, but I've been able to ship an entire game implemented in C for the Amiga, along with a couple of Amiga and Megadrive demos, besides my work as
Next up would be to try the "restoration skills" of Codex (5.3) on the incomplete source code of NxNG (the engine behind Couloir 14). XBarr left an incomplete source of his engine around 2001 on Planet-D (R.I.P) and I managed to salvage the zip file that is still hosted on Archive.org. A lot of C++ files were missing : no I/O, no 3D acceleration layer, no texture loading code and no build system. In a few dozen of minutes, Codex managed to get the engine running. I didn't pursue the tests further.
In march 2026, I started the real deal. Since 1998 I've always been a real fan of the Java demos by Komplex, especially Forward. Years after years, the running environment of this demo suffered from increasing regressions, until it simply stopped to run on any recent machine. The only existing video capture is hosted on Youtube (until when ?) and already shows some compatibilty issues (animations running too fast...). Possibly, by reinstalling Win95 within an emulator, running Internet Explorer and the proper JVM, we could make it run again. My first attempt on the Komplex prod was not an easy journey. Codex managed to decompile the Java .class (using both CFR and Procyon), but then I did a mistake : I tried to have it translated to C++ without having first a fully restored Java source code. What went really really wrong for Codex was :
- the original Java code was heavily obsufscated
- the original code is very demoscene-ish, with dozens of hack, hardcoded timecode triggers, inverted matrix here and there. Classic.
Then, I remembered the innovative Java Calendars by John Maeda. I tried the same approach, having the .class decompiled, I updated the process a bit and asked Codex to rebuild the Java calendar, outside of the Applet context (it is deprecated as of today) and on the most recent JDK multimedia API. It worked like a charm, especially because Maeda's code was not obfuscated, less trick-prone that demoscene code and more focused on one specific effect. From this point, having Codex to translate the Java code to C/SDL2 (because why not?) was an easier step as well.
This made me figure a possible trajectory for the Komplex Forward case, so recently, I restarted the restoration project of this very demo, using Codex 5.4, and managed to :
- get the Java code running outside of a browser on a Windows machine
- de-obfuscate the code by asking Codex to formulate naming proposals for the most inferable symbols (vertices, normals, rgb values...)
- vibe-translate the Java code to C++11
At this point, as I wanted a trustable reference of the original demo, I got my old Power Mac G5 out of the garage and got the demo to run (almost) seamlessly, allowing me to make a hundreds of screenshots. I provided these screenshots to Codex, so that it would compare the result of its own translated work with the "original" material.
About the C++ port step, I made the assumption that if we wanted future humans in 100 years from now to be able to run the demo again in "demo-ish" conditions (that is, having the code to run live and not just watch a video file), it could be a good idea to remove all the multimedia layer from the code. For this reason, my C++11 port behaves as follows :
- runs on the terminal, no display, no audio output
- the framebuffer is sent to a sequence of TGA files, the audio is dumped into a .WAV file.
It will be up the future digital-archeologist to re-assemble it into a readable multimedia file :)
Renderless C++ port is kind of the opposite way of WebGL ports. It doesn't aim for the same goal. WebGL is a good way to improve demoscene mediation now. My proposal is more a (very) long term bet. Well ... that could work, if there's still someone alive on Earth in 100 years (not taking it as a joke).
I was not sure of the reaction of demoscene fellows. The "reluctancy" toward AI is completely understandable. I myself lost my job in a global momentum that is probably partially connected to the advent of AI. I'm fully aware of the environmental issues, the click workers "working" conditions, the IP theft issue, the fact that AI companies are more evil than anything else. I see how these systems are taking more and more space in our society and I decided to figure the size of the threat, as well as discovering what kind of restoration technique it can unlocked.
Komplex's Java demos are unlikely to run again on modern machines, as least for people who don't want to virtualize their original environment.
PS : I started a legacy-cpp-3Dfx to cpp-opengl restoration work on Complex's Cornball demo as well, but it is far less advanced that Jasper/Coat's works and methodology.
coat <3
the first 20 seconds of the factory scene is a slideshow though, i assume it's a mix of 'it's precalcing the music for part two'???? and my old pc? :P
the first 20 seconds of the factory scene is a slideshow though, i assume it's a mix of 'it's precalcing the music for part two'???? and my old pc? :P
Quote:
the first 20 seconds of the factory scene is a slideshow
Rogue mentioned something similar.. probably a tick vs browser thing, where it’s just missing its timing window… I’ll look into it tonight. There’s also some z-fighting in Firefox that I got rid of in Chrome and Safari by switching to a 16bit depth buffer.
Quote:
I was not sure of the reaction of demoscene fellows. The "reluctancy" toward AI is completely understandable. I myself lost my job in a global momentum that is probably partially connected to the advent of AI. I'm fully aware of the environmental issues, the click workers "working" conditions, the IP theft issue, the fact that AI companies are more evil than anything else. I see how these systems are taking more and more space in our society and I decided to figure the size of the threat, as well as discovering what kind of restoration technique it can unlocked.
Yeah, i get it. I'm on the opposite. I don't think some restauration warrants all the fucking gen AI visuals, music, chatgpt garbage and all the other shit that comes with the package.
Also lol at talking about people '100 years in the future' while meanwhile accepting the absolute trash fire AI is for the environment. Not hating, I really see where you come from, but c'mon man :)
Restauration lol, restoration in english, i'm not even french for fucksake
Quote:
PPC Planet Potion Win98 Voodoo2 OpenGL
A combination of things that makes me hornier than it should.
Thanks for everyone involved!
Quote:
Also lol at talking about people '100 years in the future' while meanwhile accepting the absolute trash fire AI is for the environment. Not hating, I really see where you come from, but c'mon man :)
Yup, I'm not trying to appear consistent when I'm not. Thanks for your directness, btw (no hidden message here).
okay so i'm just gonna dump it here - any OpenGL 1.1 card + PII/Win9x or later should do the trick - although you might have to tweak fog settings to make it work correct.
tried to port Future Visions as well (as it uses mostly the same engine as in Planet Potion), sadly one of textures ended up a little bit wrong but otherwise the port is strikingly close to the original.
anyway, i don't want to touch this anymore :D
please do <3
tried to port Future Visions as well (as it uses mostly the same engine as in Planet Potion), sadly one of textures ended up a little bit wrong but otherwise the port is strikingly close to the original.
anyway, i don't want to touch this anymore :D
Quote:
I just need to get around to finish everything up.
please do <3
Fantastic porting tech! I have no idea what's going on so this just seems magic. I figure that having the ground truth of every frame rendered and every byte played through the speakers is facilitating these kind of ports, but I still find it incredible.
Quote:
please do <3
Yes, I'm going to. My release (like I stated above) already has approval from the authors and will be do in co-operation with them.
Quote:
Yes, I'm going to. My release (like I stated above) already has approval from the authors and will be do in co-operation with them.
Cool! and please do! I removed mine. Maali and Okkie threw it down as a challenge, I did pick it up in order to show them it was possible in classic demoscene fashion, but I also feel strongly that approval and working with the original authors with these kind of ports is important.
