"For its 32nd anniversary the legendary PC demo 'Second Reality' got an official 32 bit Windows port..."
category: general [glöplog]
https://mastodon.social/@dosnostalgic/114956347426820871
Nice. I guess another 32 years for a 64-bit port. ;)
Nice. I guess another 32 years for a 64-bit port. ;)
The 8-bit port came on the 4th anniversary. They should've waited until 2001. :(
For the record: from the announcement at Assembly 2025, I assumed this was done by either Future Crew or the Assembly organizing team, but the GitHub credits Gargaj and Saga Musix? If you guys did this, I feel it should have been mentioned at the official showing! Thank you for making it easy to run this piece of scene history!
The text screen shown before included a mention of conspiracy,
but yes it wasn't really well credited at the party place.
but yes it wasn't really well credited at the party place.
Good work gentlemen!
Quote:
The text screen shown before included a mention of conspiracy
We made the slide, not the orgas (thanks for the chance, love you <3), but we wanted to keep the focus on the demo and the original authors.
Oneliner jokes aside, this was a real nice surprise to see after the demo compo.
Thank you Gargaj and Saga Musix! Based on the commit history, looks like this was a lot of work. The demo also runs great on Linux via Wine after I got it started (the command line menu didn't show up so I just pressed enter blindly). 32-bit WinAPI is the only truly stable desktop platform :)
As much as I am bored with this particular demo, the porting work is nothing short of astounding. I've been reading the code and enjoying that a lot too.
It was a really cool experience to see this at Assembly in person, at a dedicated stage area, among a packed audience. I appreciated the fact that the entire thing was shown, including the very long credits and greets scroller at the end which can now be seen as an important historical record.
This really was the cherry on top for the delicious Oldskool Compo. Thanks. Porting a DOS demo to Win32 is not trivial, I imagine. Now I wonder how easy it would be to replace Win32 and Direct*-API in this port with SDL, and make it compile and run on everything ranging from Raspberry Pi, handheld consoles and desktop Linux/BSD...?
Quote:
Now I wonder how easy it would be to replace Win32 and Direct*-API in this port with SDL, and make it compile and run on everything ranging from Raspberry Pi, handheld consoles and desktop Linux/BSD...?
That's the plan, yes; stay tuned :)
I should add that 80% of the code is still in x86 assembly, so crossplatform porting isn't trivial; we'll need to unify everything into C for that - which will obviously make it less "authentic", so it'll be done as a separate project.
Quote:
which will obviously make it less "authentic"
Is that why the assembly code was converted to 32-bit instead of 64-bit as well, or were there technical reasons?
That was more just because 16->32 is a smaller jump, and it suited the purpose (= being able to watch SR on Windows) well enough. There isn't a lot of pointer magic in the code, but there is _some_ that will need converting.
Quote:
Based on the commit history, looks like this was a lot of work.
Quote:
Porting a DOS demo to Win32 is not trivial, I imagine.
I learned more about Second Reality than I ever thought was possible.
You could write a book about it, in the same vein as Fabien Sanglard's books.
didnt some guy already do that based on the original sources?
yes, the "some guy" is who fizzer literally just mentioned: https://fabiensanglard.net/second_reality/
yeah i associated him with the doom book not 2ndreal :P
Between all the YouTube captures and DOS emulators, it's easy to watch 2ndreal anytime we want, but to run it from desktop/cmd box again is still a surreal experience. It would be nice to have a 4:3 aspect option though. Also needs an option to crash 5 seconds into the dot fountain part for a genuine viewing experience. ;)
Stupid GitHub's language box does not mention all that Pascal (three .PAS files consisting of total 784 lines ...some of which is inline asm)
Crazy to do this port, well done !
I noticed some strange artifacts and I wonder if this was how it was back then, or something was lost in the port. For example - the shadows on the rotating jumping particles (just after the plasma cube and before the "ten seconds to transmition"!) - the shadow particles are rasterized OVER the cyan particles and not behind them. I would assume there is no zbuffer or anything fancy anyway there, and that particles are Z ordered first, then rasterized after a first pass rasterization of the shadow particles. Strange isn't it...
I noticed some strange artifacts and I wonder if this was how it was back then, or something was lost in the port. For example - the shadows on the rotating jumping particles (just after the plasma cube and before the "ten seconds to transmition"!) - the shadow particles are rasterized OVER the cyan particles and not behind them. I would assume there is no zbuffer or anything fancy anyway there, and that particles are Z ordered first, then rasterized after a first pass rasterization of the shadow particles. Strange isn't it...
Feel free to compare it to an original capture :)
Funny story: Garg sent us a couple builds over the past few weeks to test to see if we can catch anything. I've always wondered how the x-grid plasma effects worked and in particular I've always loved how ethereal the grey one looks. The first version Garg sent us was just too clean, perfectly grayscale and flat. Took some convincing for him to realize that it's different.
Turns out the effect was actually meant to look like that but issues with the palette animation meant that some of the color from the previous palette sticks around in the original, which gives the grayscale a bit of banding and accounts for what I always liked about that part.
So yeah, my favorite part in second reality came from a bug.
Turns out the effect was actually meant to look like that but issues with the palette animation meant that some of the color from the previous palette sticks around in the original, which gives the grayscale a bit of banding and accounts for what I always liked about that part.
So yeah, my favorite part in second reality came from a bug.