Gameblabla's blog

My personal blog for my projects and personal views

OpenLara Port ideas (Part 1)

Posted at — Jan 31, 2022

In late 2021, XProger ported his OpenLara engine to the 3DO.

https://twitter.com/XProger_san/status/1453488510833414152

The port is quite amazing and definitively worth a look if you own a 3DO.

A few months after, a GBA version has been done as well.

This port was quite a bit more challenging to do as the GBA is quite limited :

However, as long as you can fit the game in RAM, doing 3D rendering on the GBA is not impossible and the hardware makes it very suitable for 3D rendering.

For its (linear) bitmap modes, it supports :

The first one is decent and is what some 3D games used but the lack of double buffering can be annoying. This may lead to the second one, which does support page-flipping (as there’s enough space in VRAM for that) but it’s only 8bpp wide and this results in decreased color count.

The Doom ports used this and i believe most of the 3D GBA games used this as well as rendering at 16bpp in software can really hammer the CPU.

The last one is what OpenLara chose, and has the benefits of page flipping and increased color count but has a decreased screen resolution that is not even a proper integer scale. This was used because the game uses PS1 textures and those are in BGR format as well It probably made more sense to him (and less work) to work in BGR555 than just an 8-bits paletted mode.

Attempts are currently ongoing for the Atari Jaguar and N64 as well. The Jaguar port as of writing runsat about 1 FPS as it does not attempt to use the other coprocessors and the N64 port ran at about 4-6 FPS in software mode. The N64 porter eventually worked on a proper 3D renderer for it but it’s still quite glitchy visually. (However the FPS seems to be greatly improved)

You can download all of the OpenLara ports here :

https://github.com/XProger/OpenLara/releases/tag/latest

That made me wonder though, how doable OpenLara would be on some exotic platforms ? Let’s talk about it.

Amiga CD32

Commodore’s last attempt at a video game console.

Despite this, it’s probably their best of all, despite the (obvious) flaws it has.

The AGA chipset is probably the worst part about the CD32 as using the internal RAM steals CPU cycles from the main processor. This is refered to as “Slow RAM” and is the reason why even adding 512kb of Fast RAM can tremendously increase the speed of some games. (such as the DoomAttack port)

Like its PC counterpart, the CD32 uses planar graphics, not linear unlike VGA. This makes it decent for 2D games but not so much for 3D rendering.

Commodore must have realized this is a problem because they added a way of converting a Linear framebuffer to Planar graphics in the Akiko chip. This was surprisingly used little in retail games (in fact not even a whole lot of them bothered to use AGA graphics or more than 1 button) but some homebrew did make use of it.

However in some benchmark tests against DoomAttack, it was found that a 68030 is faster than the Akiko to do the same job. So if you can upgrade your CD32 with those, you can have a pretty nice upgrade to your hardware. This of course, and the extra fast RAM that comes with it as well.

As you may guess however, this sort of makes a port like OpenLara really challenging as the central CPU is not that strong to begin with and it is absolutely crucial that the Akiko chip is used. On top of that, the game will need to make sure to render at 8bpp. As far as i know, the game pretty much works and assumes a 16bpp buffer. This may make it tricky for the game to work on the CD32 as is.

I honestly don’t even think that nCraft would run that much better than it does on the PCFX, much less this.

As a proof of concept, it’s entirely possible that this game does fit in RAM and boots. After all, the GBA certainly could and this has 2MB to work with.

This does not mean however, that it will run good. If you’ve seen the attempt on the Atari Jaguar, that was running on a 10Mhz 68000 CPU and the framerate was around 1-2 FPS.

Doomattack on the CD32 with the Akiko version runs at 5 FPS..

I don’t think this will run much faster, if at all. But hey, maybe people can handle Tomb Raider at 4 FPS just for the novelty of playing it on the CD32.

Possible ?

It could boot yes but it would require a lot of work to the codebase.

Phillips CDI

The CDI ! Wow, amazing ! It failed hard !

CDI has sort of become a joke in the retro gaming community as a lot of its games are simply not fun to play at all.

The Nintendo games on it in particular are notorious for their bad quality but most of the CDI games are even worse than that. Recently however, a new GCC port for it has been made and Novelia also got finished for it.

Yours truly also made Super Quartet in hopes of reviving interest in the CDi (which sort of suceeded, i must say :P).

This may come as a shock to you but the CDI only offers a framebuffer to programmers and nothing else !

However, You can choose between several color formats, including RGB565 and CLUT8. Most CDI games use CLUT8 and the 2 background layers for graphics as this is the faster mode.

Compatibility between all CDi units is an issue and is partly attributed to the downfall of the CDi, as it meant that potential good games that could have come out for the platform couldn’t because they were requried to work on all 3rd party CDI consoles, all of which had minor changes and some outright broken. (such as ADPCM not working on some units)

The OS-9 on the CDi is a major issue and it is absolutely crucial that you need to bypass it as much as possible.

This is especially important for user input as otherwise input lag will be very noticeable (and this is something that a lot of CD-i games suffer from).

In any case, if you’ve seen the Jaguar port running, that was using the same CPU as this thing does. And it was running at 1 FPS.

The CDI is in even higher resolution than the Jaguar is although it’s sort of possible to reduce the virtual resolution through other ways. In addition to that, this only has 1MB of RAM. Although, given that the GBA could do it and this has more than to compensate for the lack of ROM access, i think a simple demo could be feasible.

Question is whenever or not it’s worth the trouble… :P

Possible ?

Once again, it might boot but this is very unlikely to go decently fast.

But worst case, we could always port that DVD Tomb Raider game to the CDI…

I kid but you know what i mean.