Sign in

iiinova is part of the Atmosphere — an open, public network where you own your identity.

ROllerozxa

@ROllerozxa.hachyderm.io.ap.brid.gy
20 followers 0 following 1.2K posts

I like touching the computer. University student, Principia maintainer, Luanti contributor, various other FOSS stuff... Used to pretend to be Ralsei on the […] 🌉 bridged from ⁂ hachyderm.io/@ROllerozxa, follow @ap.brid.gy to interact

PostsRepliesMedia
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 2h
@sodiboo little bobby tables' random diceroll
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 2h
The ARM dystopia continues.
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 3h
Info about the compromise: emudhra.we-have-a-problem.com Alleged private key values: mastodon.catgirl.cloud/@49016/11747…
emudhra.we-have-a-problem.com
eMudhra Intermediate CA Compromise
eMudhra Intermediate CA Compromise
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 3h
> Eight intermediate CA certificates are compromised Oh fuck... > The private keys are all numbers below 255, one of them is just "4" WTF???
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 9h
Nintendo really knew how to make astrology fun. Flinging people off a spinning circle board and making suspicious stews
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 9h
@parrot opened this link with zero context and am both confused and amazed by what I saw
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 22h
My forums, the Voxelmanip Forums, is fully open for registrations by the way. Last year I implemented an invitation system for registering on the forums, but this didn't work particularly well for onboarding new members. Before that I had to close registrations entirely in 2024 due to a former […]
hachyderm.io
Original post on hachyderm.io
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 22h
My website at voxelmanip.se, which includes my blog, is fully static and I don't think I will intend to change that. I could do some JavaScript to fetch the current amount of replies from a custom endpoint on the forums, but will likely not do any further […] [Original post on hachyderm.io]
Comments & support

You can discuss the blog post in this forum thread on the Voxelmanip Forums.

All blog posts are written by a human who would also appreciate a donation if you got some value out of this piece of writing.
110 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 22h
Ever since I launched my blog, there has not been any kind of comments section for posts - occasionally people have sent me emails about posts, but otherwise it's largely been a one-way communication method for me to publish stuff. Yesterday I had the idea that […] [Original post on hachyderm.io]
 	[Blog] Principia and the Open Letter from Keep Android Open 	voxelmanip.se 	0 	30 	2026-10-10 14:00
by voxelmanip.se »
	[Blog] That time I broke the laws of physics 	voxelmanip.se 	0 	18 	2026-10-09 14:00
by voxelmanip.se »
	[Blog] Write More 	voxelmanip.se 	0 	21 	2026-09-28 14:00
by voxelmanip.se »
	[Blog] Building Principia for Windows XP 	voxelmanip.se 	0 	16 	2026-06-28 14:00
by voxelmanip.se »
	[Blog] Trying Out Claude's C Compiler 	voxelmanip.se 	0 	14 	2026-02-06 13:00
by voxelmanip.se »
	[Blog] A wet physics gamedev adventure 	voxelmanip.se 	0 	15 	2025-12-26 13:00
by voxelmanip.se »
	[Blog] Tensy has been released 	voxelmanip.se 	0 	14 	2025-11-23 13:00
by voxelmanip.se »
	[Blog] Cleaning up a Git repository for public consumption 	voxelmanip.se 	0 	13 	2025-10-04 14:00
by voxelmanip.se »
	[Blog] Setting up an XMPP server with Prosody 	voxelmanip.se 	0 	14 	2025-06-25 14:00
by voxelmanip.se »
	[Blog] Wildcard HTTPS certificates with Certbot and Cloudflare DNS 	voxelmanip.se 	0 	14 	2025-06-23 14:00
by voxelmanip.se »
	[Blog] Jokes and Humour in the public Android API 	voxelmanip.se 	0 	14 	2025-06-14 14:00
by voxelmanip.se »
	[Blog] Porting a game to 7 platforms 	voxelmanip.se 	0 	14 	2025-05-06 14:00
by voxelmanip.se »
	[Blog] Post-mortem: The 2025-04-18 IP spoofing attack 	voxelmanip.se 	0 	15 	2025-04-28 14:00
by voxelmanip.se »
	[Blog] Generating PDF documents from Markdown 	voxelmanip.se 	0 	15 	2025-04-22 14:00
by voxelmanip.se »
	[Blog] The Luanti Techage Backdoor 	voxelmanip.se 	0 	11 	2025-03-23 13:00
by voxelmanip.se »
	[Blog] Display Managers, and Ly 	voxelmanip.se 	0 	16 	2025-02-19 13:00
by voxelmanip.se »
	[Blog] How (not) to compare strings in C 	voxelmanip.se 	0 	16 	2025-02-13 13:00
by voxelmanip.se »[From the user "voxelmanip.se"]

Building Principia for Windows XP

28 June 2026

Back in the day when Principia originally released for Windows in 2014, the game would run on versions as far back as Windows XP. Given that Principia 1.4 was released while Windows XP still had mainstream support, this of course made sense at the time, and there was no real reason not to support it given that the tooling and dependencies at the time were still compatible with it.

Fast forward to today with Principia as an open source project. While the Windows version should still run as far back as Windows 7, our usage of modern toolchains, dependencies and system libraries such as UCRT means that hard to truly guarantee far into the future as the ecosystem moves forward. However, this has always been something I wanted to change one day, bringing Principia back onto Windows XP and producing a fully open source build of the game that can run on it.
(Read the full blog post)
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 23h
@sodiboo I made such a grave mistake not waiting a day longer to release Principia 2026.06.06. however, a date with 6 7 happens more often than 6 6 6...
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 19/10/2026
@guigui I was just checking up on SceneSat and saw they had gotten a new site redesign: scenesat.com The redesign itself doesn't seem all that bad until I went to the new About page of the site. All the text just feels off and very unlike how the […] [Original post on hachyderm.io]
/**
 * The chat in a window of its own (docs/chat.md, "Pop-out window").
 *
 * On the site, [data-chat-popout] buttons — the floating panel's launcher row and the /chat page —
 * take the chat out of the page:
 *  - "window" opens /chat/popout as a browser popup that the chat fills, at the size and place it
 *    last had;
 *  - "top" floats the same page above every other app, in an iframe inside a Document
 *    Picture-in-Picture window (Chrome, Edge). It closes with the tab that opened it: the
 *    browser's rule, not ours.
 * The buttons are rendered hidden and only what this browser can do is revealed; nothing on a
 * touch-only device, where a popup is just another tab.
 *
 * The pop-out page (body[data-chat-popout-window]) and every tab talk over the "ss-chat-window"
 * BroadcastChannel. The pop-out says "open" when it loads and when pinged, "closed" when it goes;
 * while one is open, the floating panel shows a placeholder instead of a second live copy. A link
 * to the rest of the site clicked in the pop-out is handed to the tab that opened it ("navigate"),
 * which follows it as a boosted navigation so the music never stops; with that tab gone, the link
 * opens in a new one. Only one pop-out at a time: opening one asks any other to "close". "Put
 * back" in the pop-out ("dock") and "Bring it back here" in the panel return the chat to the page.
 */    /* Star layers are kept against the VIEWPORT via position:fixed pseudo-elements rather than
       background-attachment:fixed on html/body (which used to carry
       just the starfield here). That property is unreliable on iOS WebKit — Safari AND
       Chrome-for-iOS alike, since Apple requires every iOS browser to use Safari's own engine —
       where it commonly just behaves as background-attachment:scroll, so the starfield visibly
       scrolled along with the page instead of staying put as a backdrop (reported 2026-08-31).
       position:fixed is reliably supported there (this site already leans on it elsewhere: the
       header, the footer player, the corner clock's old home before it moved into the status
       bar). The oversized inset leaves a gutter for the tiny transforms, so no edge can enter
       the viewport while either layer drifts.

       The starfield itself: a seamless 2048x2048 tile generated by scripts/make-starfield.py
       (see its header for why the tile is square, and why the asset is lossless WebP); `auto`
       keeps it at native size, since scaling it would soften the stars and, worse, shrink the
       repeat distance.

       z-index MUST be negative, not 0 — this cost a real regression 2026-08-31, caught only
       after shipping: per the CSS stacking spec, non-positioned in-flow content (#content,
       site-footer — everything here is plain position:static) paints in an EARLIER phase than
       ANY positioned element carrying a z-index of 0, even explicitly. So at z-index:0 this
       pseudo-element painted ON TOP of the entire page, not behind it — invisible for years with
       just the near-transparent gradient (16% opacity, fading to nothing), but the starfield
       tile is opaque enough to visibly blank out every real content section once it joined this
       layer. Negative z-index moves it into the phase that paints BEFORE non-positioned content,
       restoring "backdrop behind everything" without needing position:relative on #content and
       every other static content wrapper on the site. *//* Theatre mode WITH a chat rail: widen the whole pane GROUP, not the frame on its own.

   html.ss-theatre .video-frame above breaks the frame out with margin-left:50% + translateX —
   inside this grid that centres it on its own TRACK rather than on the viewport, so it lands
   half a track to the left and overlaps the rail. That is why theatre used to stack the two
   panes; but a live chat pushed below a viewport-tall video is a chat nobody reads, which is the
   same reason .watch-panes exists at all. So neutralise the frame's breakout here and break the
   grid out instead: the frame simply fills a much wider track, and the chat keeps its place
   beside it.

   Width = what a 16:9 frame needs to fill the viewport height (the same
   100vh − player − chrome term the frame's own rule uses), plus the rail and the gap, capped at
   the viewport. The 48vw floor keeps the height term from collapsing the frame on short
   viewports, where it goes negative — same guard, lower than the frame-alone rule's 60vw
   because the rail is taking a slice of the width here.

   Full-bleed via margin-left, NOT translateX: a transformed ancestor becomes the containing
   block for its descendants, and the rail below is position:sticky. */
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 19/10/2026
Why is the demoscene of all things being slopped up :(
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 19/10/2026
@sodiboo I just thought about how funny it would be to call the Windows Media Center icon "green Windows"
021 2
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 18/10/2026
@eri Truly a mystery!
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 18/10/2026
> [...] that has absolutely zero footage of it on YouTube [...] Footage of the game has now appeared on YouTube. A 20 year old Java phone game, when it was originally released YouTube wasn't even owned by Google yet! www.youtube.com/watch?v=3mUkvYv9Fw8
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 18/10/2026
sun, and water, and yummy soil, yes that is what will make the flowers grow
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 18/10/2026
sandwiches and yahtzee
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 17/10/2026
@eri @sodiboo yeah exactly, why wouldn't I want the inspect element button in my context menu to wiggle
110 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 17/10/2026
@sodiboo !!! that's crazy
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 17/10/2026
@sodiboo The right click menu? I'm pretty sure at least this one is still native (GTK on Linux I think).
Firefox right click context menu, looks like my Breeze Dark theme with a green primary colour
110 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 17/10/2026
@sodiboo this is generated HTML right
020 2
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 17/10/2026
typing phrases into word 2003 that have never been typed into it before
Screenshot of Office Word 2003 running on Windows XP. The text "67 cuddly raccoons eating mangoes" is written in the document
091 9
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 16/10/2026
I completely forgot this old phone has 5Ghz too. And decacore CPU, but still the same amount of 4GB of RAM. Too bad it's obsolete. I factory reset it some time ago and the Play Services it comes with out ot the box is too old to even update to the latest supported, even if Android 6 is no longer […]
hachyderm.io
Original post on hachyderm.io
011 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 16/10/2026
Dug out the old phone I used previously before my current one, and I'm amazed at how crisp the screen is compared to my current one. Yes, I downgraded from a 1080p screen to a 720p one. The newer is actually wider than 16:9 but it's also physically slightly bigger, just for fun. The only thing […]
hachyderm.io
Original post on hachyderm.io
111 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 15/10/2026
"it was perfect and sadly we will never see any games like that"
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 15/10/2026
Every now and then I still check up on webfishing to see if there has miraculously been an update to it to reintroduce the geographical-based lobbies. Even though it's been almost two years by now
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 14/10/2026
yeah sure whatever
Start date: 2026-07-12
(Error: Date can't be after 1970-01-01)

End date: 2026-10-14
(Error: Date can't be after 1970-01-01)Start date: 1970-01-01
(Error: Date can't be before 2025-06-14)

End date: 1970-01-01
(Error: Date can't be after 2025-06-14)
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 13/10/2026
@sodiboo browsers are evil
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
"but what did you eat for lunch a week ago?" we won't talk about that
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
"the internet never forgets" wrong. however. the raccoon never forgets.
110 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
I am definitely gonna try to get a full playthrough video out sometime... if I even manage to do so. I wish I could like, do savestates to not have to play through the game every time to grind up collectibles but also take damage along the way. Honestly, with the era this game is from, writing […]
hachyderm.io
Original post on hachyderm.io
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
[vague spoilers for a 20 year old mobile game you haven't heard of] okay there was actually a forum thread about someone being stuck on the same level I'm on... and then the developer mentions there being a hidden backdoor at the bottom of the level... BRO WHAT
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
The ending is lost media, the strats to finish the game have been lost to time
100 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
Playing a game that has absolutely zero footage of it on YouTube is interesting, but once you get stuck at a part and want to look up a playthrough video I realise that shit, there are no surviving records of anyone playing the game in its entirety
200 2
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
[some bullshit i'm getting worked up about precisely for the reason that i didn't find it on the internet. but now i'm sharing it on the internet so that you can ignore the bullshit you heard about on the internet] @sodiboo haha yes exactly. moral of the story - if you download movies free from […]
hachyderm.io
Original post on hachyderm.io
011 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
[some bullshit i'm getting worked up about precisely for the reason that i didn't find it on the internet. but now i'm sharing it on the internet so that you can ignore the bullshit you heard about on the internet] @sodiboo Yeah this capture from 2019 looks more like what I'd expect […]
hachyderm.io
Original post on hachyderm.io
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 12/10/2026
[some bullshit i'm getting worked up about precisely for the reason that i didn't find it on the internet. but now i'm sharing it on the internet so that you can ignore the bullshit you heard about on the internet] @sodiboo This looks like one of those filler sites with a bunch of words words […]
hachyderm.io
Original post on hachyderm.io
210 2
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 11/10/2026
I was doubting whether to actually publish this post, but since I had been publicly mentioning reaching out to sign the open letter back in March, an update detailing everything since then would only be fitting for closure. I don't think it's my best piece of writing but it's enough for me to […]
hachyderm.io
Original post on hachyderm.io
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 11/10/2026
New blog post out detailing my attempts to sign the open letter by Keep Android Open as the Principia project maintainer. I never managed to sign it. voxelmanip.se/2026/10/10/principia-…
voxelmanip.se
Principia and the Open Letter from Keep Android Open
Keep Android Open is a grassroots campaign originally launched in October 2025 by Marc Prud’hommeaux as a response to Google’s Android developer verification announcement last year, which requires all Android developers to pay a fee and verify their identity with Google even if they do not distribute apps through the Google Play Store. I have previously written on my blog about the Google Play developer policy update that Google originally announced in July of 2023, and how my Google Play developer account was suspended in February last year as a result of my refusal to comply. So when Google announced this new policy change for distributing outside of Google Play too, I was rather furious by the fact that Google is further exercising control over the Android ecosystem. Safe to say, I wholly supported the Keep Android Open campaign when it was originally launched, and got very intrigued to throw my hat into the ring as the Principia project maintainer.
111 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 10/10/2026
It feels so weird writing about the smartphone duopoly after just having done a deep dive into old pre-iPhone feature phones. It's extremely hard to not feel sad about certain things
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 10/10/2026
@sodiboo yeah don't really know. @librewolf would have the true answer, if there is one.
010 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 10/10/2026
@sodiboo @librewolf yeah you're probably correct in that assessment, the special handling of local domains should be a lot lower-level than this. I went to check the origin of the lines and found this commit in the settings repo it was originally stored in […]
hachyderm.io
Original post on hachyderm.io
110 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 10/10/2026
@sodiboo @librewolf Is it to prevent sites from making requests to localhost? While if you have something hosted on localhost you would always want it to be able to make requests on the same origin (don't know how the policies work)
110 1
Reposted by ROllerozxa
Principia @principia.hachyderm.io.ap.brid.gy · 10/10/2026
Principia 2026.09.19 has finally made it onto F-Droid. Be sure to update as it contains an important fix regarding HTTPS certificate validation on Android, along with many other bugfixes and improvements. To check up on what is new, see the changelog […] [Original post on hachyderm.io]
Pixel art of the Android robot made inside of Principia
022 2
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 09/10/2026
the video in question (it's public domain!): commons.wikimedia.org/wiki/File:Som…
commons.wikimedia.org
File:Something for nothing (1940).ogv - Wikimedia Commons
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 09/10/2026
we're here, we're queer, we will violate the laws of thermodynamics
001 1
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 09/10/2026
me when I'm watching a video from 1940 of rube "rube goldberg machine" goldberg talking about the patentability of perpetual motion machines and he calls them queer devices
43
00:03:02,520 --> 00:03:04,520
Well, anyway, this is just one example

44
00:03:04,520 --> 00:03:07,680
of the many queer devices that have actually been patented.

45
00:03:07,680 --> 00:03:09,440
And here's a copy of the patent to prove it.
200 2
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 09/10/2026
I was very surprised that you can do this entirely with modern Java tooling, without needing anything from the ancient J2ME SDKs. Just OpenJDK 8 targeting Java 1.3 on a source level, and Java 1.1 for the bytecode target. Then using ProGuard to do the preverification step which does some […]
hachyderm.io
Original post on hachyderm.io
000 0
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 09/10/2026
Well there we go, got a Java ME app with a bunch of raccoons bouncing around the screen built and running on my feature phone. Interesting novelty.
Photo of my Sony Ericsson S312 phone running a simple self-built J2ME app which is a bunch of pixelated raccoon icons on a black background moving around.
132 3
ROllerozxa @rollerozxa.hachyderm.io.ap.brid.gy · 09/10/2026
Me when I have a blog post draft that's been sitting for so long that someone mentioned in it passed away since I first began writing it
000 0