pouët.net

Go to bottom

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 :)

BB Image

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 😅
added on the 2026-08-17 16:49:28 by wbcbz7 wbcbz7
Yeah rather code things by hand please. The wisest words in this thread even if the results are nice.
added on the 2026-08-17 17:33:13 by neoman neoman
Quote:
Just finished VIP 2 by Popsy Team:
https://mrdoob.github.io/vip2/


woa that demo didn't age well huh! nice port though
added on the 2026-08-17 18:26:23 by skrebbel skrebbel
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.
added on the 2026-08-17 18:47:52 by emoon emoon
"FREE FOR GIRLS" yeah :P
added on the 2026-08-17 18:48:06 by havoc havoc
@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
added on the 2026-08-18 22:44:59 by BPL BPL
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 :)

BB Image

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.
added on the 2026-08-19 01:16:54 by mudlord mudlord
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!
added on the 2026-08-19 01:39:55 by mrdoob mrdoob
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.
https://jasper2-0.github.io/planet-potion-webgl/

completely rebuilt, textures / music byte accurate. No bakes, everything generated.
added on the 2026-08-19 08:44:31 by coat coat
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
added on the 2026-08-19 08:58:40 by coat coat
BB Image

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 BB Image on the late Harfang engine.

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.
added on the 2026-08-19 09:00:11 by fra fra
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
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.
added on the 2026-08-19 13:31:13 by coat coat
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 :)
added on the 2026-08-19 15:49:17 by okkie okkie
Restauration lol, restoration in english, i'm not even french for fucksake
added on the 2026-08-19 15:50:06 by okkie okkie
Quote:
PPC Planet Potion Win98 Voodoo2 OpenGL

A combination of things that makes me hornier than it should.
Thanks for everyone involved!
added on the 2026-08-19 15:56:12 by hfr hfr
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).
added on the 2026-08-19 16:04:02 by fra fra
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

Quote:
I just need to get around to finish everything up.

please do <3
added on the 2026-08-19 23:01:15 by wbcbz7 wbcbz7
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.
added on the 2026-08-19 23:22:49 by rloaderro rloaderro
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.
added on the 2026-08-20 12:47:44 by emoon emoon
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.
added on the 2026-08-20 13:14:22 by coat coat

login

Go to top