Reverse-engineering The 1998 Ultima Online Demo Server

In any MMORPG, the average user will generally only encounter the client side of the system. This makes building a compatible open source version of the proprietary server into a bit of a chore. Of course, sometimes you get a bit of a break, such as with the – still active – MMORPG Ultima Online, when the disc for the 1998 The Second Age expansion contained a stand-alone demo. This also meant a (stripped-down) server which has been gratefully reverse-engineered by the community, with [draxinar] now claiming to have made the most complete server based on this demo server.

To make things extra challenging, the originally written in C++ server binary was reverse-engineered into C99 code, meaning that the use of classes and associated vtables had to be left intact, just without the critter comforts provided by C++.

The total process took about a decade with occasional progress, with the current server binary being mostly identical to a 1998-era Ultima Online server. Some features that were stubbed out or disabled in the demo server had to be re-enabled or reimplemented, including the user account system.

Features that were left out of the final release like the ecology system were also enabled in so far as they were implemented. Although there is probably still a lot more work to be done on the code, [draxinar] reckons that this is a good point for the community to get involved to do some testing and provide feedback. There are also some missing server-related resource files that may still be saved somewhere.

Thanks to [adistuder] for the tip.

Pushing As Many Pixels As Possible To A CRT: Interlaced 4K

Some people love CRTs to a degree that the uninitiated may find obsessive. We all have our thing, and for [Found Tech], it’s absolutely pointing particle accelerators at his face to play video games. He likes modern games, with modern resolutions– none of this 1080p nonsense. Today’s gamers demand 4K! Can a CRT keep up? The answer is a resounding “No, but actually, yes!”

[Found Tech] has an IBM P275 monitor, which is one of the last generation of CRTs.  Officially, the resolution maxes out at 1920 dots by 1440 lines. While one might (inaccurately) call that UHD output “2K”, you certainly cannot claim it is 4K. So, what’s the secret? Interlacing. Yes, interlacing, like old analog TV signals.

Apparently, in spite of what the manual says, getting the screen to absorb the 2880×2160 interlaced signal wasn’t the hard part, but generating it was. NVIDIA and AMD graphics cards are absolutely unable to create an interlaced signal, but Intel integrated GPUs are– if you get the right combo of chip and old driver. Sadly, the video doesn’t list exactly what he used. Of course an iGPU isn’t going to give you a very good gaming experience at this high resolution, so [Found Tech] has his games do their rendering on the discrete card before piping that over to the iGPU for display on the CRT.

Technically, you still can’t call the 2880×2160 picture “4K”, as that trademark refers to 2160p at 16:9, and this is both interlaced and 4:3. Still, close enough. In spite of the artifacting that turned us all against interlaced signals back in the day, this apparently has [Found Tech]’s eyes fooled– he says it’s as good as 2160p on his OLED, plus the extra magic that comes with glowing phosphors.

It certainly looks great in a recording, but the monitor in the recording isn’t displayed at a high enough resolution to say for sure if it’s 4K. Still, if you’re into CRT gaming, maybe give this high-res interlacing a try. If you still don’t get what’s so great about CRTs, check here, and remember it could be worse– at least we’re not going on about Plasma TVs. Continue reading “Pushing As Many Pixels As Possible To A CRT: Interlaced 4K”

Running DOOM On A Travel Router With Touch Screen

Continuing his quest to put DOOM on literally everything that has a capable enough processor and a screen, [Aaron Christophel]’s most recent target is a Slate 7 Pro travel router. With a generous 2.8″ touch screen and a lot of onboard processing power to handle all the advertised networking and routing features via its WAN and (W)LAN interfaces, it should be able to run the game really quite well. As usual the main question is how to get the game to run on it first.

The port of choice is fbdoom, with instructions on how to run it on this router provided on the GitHub project page. The reason for the touch screen is so that you can see the status of interfaces and interact with it without having to open the web interface. Boringly, this router has an SSH daemon ready to connect to, giving you full root access to the Linux-based firmware.

It’s just your typical AArch64 ARM-based system, with the gl_screen process running for the touch screen display. From there it was easy enough to deduce the settings to jot into fbdoom so that it too could use the same screen and touch inputs. After copying the compiled binary with SCP over to the router, it can then be started like any application. With touch inputs somewhat awkwardly mapped to certain areas of the touch screen, it’d be nice to see the USB 2.0 port used for USB HID inputs, but it does show how easy things can be when it runs something like Linux and you got full root access.

Incidentally this also heavily blurs the lines between something like a Valve Steamdeck and a router, with the latter just missing some gamepad controls on the side to do some on-the-go gaming when you’re not using it for routing network traffic.

Continue reading “Running DOOM On A Travel Router With Touch Screen”

Building An X86 Gaming PC Without Intel, NVIDIA Or AMD Parts

This is an interesting challenge from the “why not?” files — [GPUSpecs] over on YouTube built a gaming PC without using a single component from NVIDIA, Intel, or AMD. That immediately makes us think of the high-power ARM workstations or perhaps even perhaps the new “AI workstations” coming available with RISC V architecture, but the challenge here was specifically “gaming PC,” not workstation. A gaming PC, without a GPU by one of those three? To make it even more interesting, the x86 CPU isn’t Intel or AMD either.

If you’re of a certain vintage, you may remember Cyrix. Cyrix reverse-engineered the x86 ISA and made their own compatible chips in the 90s, before being bought out by National Semiconductor, and then VIA Technologies. VIA partnered with the Government of Shanghai to found Zhaoxin, and it is from Zhaoxin that the KaiXian KX 7000 CPU hails — an x86-64 device, that isn’t Intel or AMD. We’ve actually covered the company before. This particular chip benchmarks like an old i5, so not spectacular, but usable. 

Continue reading “Building An X86 Gaming PC Without Intel, NVIDIA Or AMD Parts”

Wipeout Clone Runs Native On ESP32-S3

Psygnosis’s 1995 game Wipeout is remembered for two things: being one of the greatest games of all time, and taking advantage of the then-new PlayStation’s capacity for 3D graphics. The ESP32-S3 might not be your first choice to replace Sony’s iconic console, but [Michael Biggins] a.k.a. [PhonicUK] is working on doing just that, with his own clone of Wipeout on the Expressif MCU. 

It’s actually not that crazy when you think about it. The PlayStation had a 32-bit RISC processor, and the ESP32-S3 is a 32-bit RISC processor. The PlayStation’s was only good for about 30 Million Instructions Per Second (MIPS) but it had a graphics co-processor to help out with the polygons — the ESP32-S3 has two cores that can help each other, which combine to about 300 MIPS. In terms of RAM, the board in use has 8 MB of PSRAM, while the faster 512 kB on the chip is used, in effect, as video ram.

The demo is very impressive, especially considering he’s fit in three computer players. He’s also got it blasting out 60 frames per second, which is probably double what the original Wipeout ran on the PS1. Part of that is the two cores in action: he’s got them working together on the interlaced video output, one sending while the other finishes the second half of the frame. Each half of the video gets dedicated space in the internal memory. Using a 480×320 pixel display doesn’t hurt for speed, either. Sure, it’s paltry by modern standards, but the original Wipeout got by with even fewer pixels — and it didn’t run on a microcontroller. Granted it’s a beefy micro, but we really love how [Michael] is pushing its limits here.

Right now there’s just the Reddit thread and the demo video below. [Michael] is considering sharing the source code for his underlying 3D engine under an open license. We do hope he shares the code, as there are surely tricks in there some of us here could learn from. If it’s all old hat to you, perhaps you’d rather spend a weekend learning raytracing.

Continue reading Wipeout Clone Runs Native On ESP32-S3″

Can You 3D Print A Pinball Machine That’s Fun To Play?

It seems fair to say that pinball machines are among the most universally loved gaming systems known today, yet the full-sized ones are both very expensive and very large, while even the good quality table-sized ones tend to be on the expensive side. That raises the question of whether a fully 3D printed pinball machine could at all be fun and not just feel like a cheapo toy? A recent video by [Steven] from [3D Printer Academy] on YouTube makes here a compelling argument that it might actually be worth something to consider.

In addition to being fully modular and customizable the most compelling element is probably that the design supports two- and four-player multiplayer. This sees the metal balls leaving at the rear and from there entering the playing field of another player’s machine, which can probably get pretty chaotic.

Unfortunately this is part of a Kickstarter campaign, so you’ll have to either shell out some cash to get access to the print files or DIY your own version. We’d also be remiss to not address the durability concerns of a 100% plastic pinball machine like this, plus the lack of serious heft to compensate for more enthusiastic playing styles.

If you are more into traditional DIY pinball machines, we have covered these as well, along with small screen-based machines, and their miniature brethren for when space is really at a premium.

Continue reading “Can You 3D Print A Pinball Machine That’s Fun To Play?”

How Pizza Tycoon Simulates Traffic On A 25 MHz CPU

Although the game Pizza Tycoon – known as Pizza Connection in Europe – probably doesn’t ring a bell for many folk, this 1994 DOS title is special enough for [cowomaly] to write an open source engine to bring it into the modern age as Pizza Legacy. Along the way, some questions popped up, such as how to animate the little cars that you see driving around in the simulated city and how the heck this was done back in the day on a 25 MHz 386 CPU.

Continue reading “How Pizza Tycoon Simulates Traffic On A 25 MHz CPU”