OpenLara - a stunning GBA port of the 1996 classic Tomb Raider



In what appears to be an impossible feat, GBAtemp member @XProger has managed to get the the original 1996 PlayStation and PC classic, Tomb Raider running on the Game Boy Advance.

OpenLara is open-source project that can function as a replacement engine for Tomb Raider (1996) and is available for a number of platforms (including but not limited to the 3DO, Raspberry Pi, Xbox and more).

Lead engine developer @XProger has gone a step further and managed to scale the project down to run under the GBA's 16.78MHz arm CPU at a frame rate that appears to hover around the 16fps mark - an outstanding display of technical wizardry.

In what @XProger describes as an alpha version, OpenLara for the GBA currently only offers 3 levels of the game and excludes original FMV sequences, however the developer has expressed their intent to continue work on the GBA port by improving performance, trimming cutscenes down and more. The author goes on to state that they expect the complete package will be able to fit within a 256Mbit ROM.

Hi guys, I'm the lead developer of OpenLara engine.
More than year ago I released a tech demo, back then I was not sure that the GBA is capable for such game. But over time I improved my ARM skills, found new ways to optimize rendering and logic. The result is what I can honestly call an alpha version. There are many further improvements in the plan, as well as optimization of content and video to fit the entire Tomb Rader game in a 32 MB cartridge, but so far only 3 levels are available.

Check out the video of OpenLara in action on the GBA above and follow the links below for further information and to support the dev.

:arrow: OpenLara Github page
:discuss: OpenLara discussion thread (GBAtemp)
 

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
4,427
Trophies
1
Age
41
XP
4,636
Country
Argentina
That’s still a playable game as far as I’m concerned, just one that’s a work in progress. It’s not like we haven’t seen less content on offer in the era of Early Access, three levels of a game that by all accounts grossly exceeds the hardware spec is no less astonishing to me.

In my time it was called shareware or playable demo.
 

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
4,427
Trophies
1
Age
41
XP
4,636
Country
Argentina
Oh, I remember shareware. Lots of those were full games too. :P

No, some made the mistake of including so much of the complete game it felt like the full game. Or were so hard or long you got many hours of fun with just the free stuff. For example the Doom shareware was 2/3 of the full game so many people didn't bother to get the full game. That's why Doom 2 didn't have a demo or shareware version
 

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
13,063
Trophies
4
Location
WA State
Website
ko-fi.com
XP
17,257
Country
United States
Has the full game been converted to the Open Lara GBA engine, or just the first two levels?
I think one big problm is the arbitrary 32MB ROM size limit. If we had a mapper that could address 256MB like a multi-rom bootleg does, they could probably continue with more of the game.
 

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
4,427
Trophies
1
Age
41
XP
4,636
Country
Argentina
Has the full game been converted to the Open Lara GBA engine, or just the first two levels?

The biggest problem is the GBA cartridge size limit. To convert the full game either several cards should be used or this will never run in anything but an emulator.

But no, the full game has not been converted yet.

Maybe they should try to aim for the Nintendo DS instead? The full game can technically work as a DS game if a conversion is made.
 

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
13,063
Trophies
4
Location
WA State
Website
ko-fi.com
XP
17,257
Country
United States
The biggest problem is the GBA cartridge size limit. To convert the full game either several cards should be used or this will never run in anything but an emulator.

But no, the full game has not been converted yet.

Maybe they should try to aim for the Nintendo DS instead? The full game can technically work as a DS game if a conversion is made.
What emulator you running that allows larger than 32MB banking? I can't get mGBA or VBA-M to work with roms over 32MB.
 

therabbitofthenorth

Active Member
Newcomer
Joined
Jan 24, 2024
Messages
35
Trophies
0
Age
25
XP
86
Country
United States
Really don’t care for the TR series, but *fuck* is this insane. Really curious if these tricks and optimizations can be applied generally to PS1 games, or if they’re more engine-specific. Excellent work (even if the Funko Pop was cringe).
 

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
4,427
Trophies
1
Age
41
XP
4,636
Country
Argentina
Really don’t care for the TR series, but *fuck* is this insane. Really curious if these tricks and optimizations can be applied generally to PS1 games, or if they’re more engine-specific. Excellent work (even if the Funko Pop was cringe).

You can make a PS1 game look better using an emulator and these tricks are indeed GBA specific.
 

therabbitofthenorth

Active Member
Newcomer
Joined
Jan 24, 2024
Messages
35
Trophies
0
Age
25
XP
86
Country
United States
You can make a PS1 game look better using an emulator and these tricks are indeed GBA specific.
I’m confused; do you mean better via a PSX emulator or with a GBA emulator?

Additionally the GBA is not an engine, but OpenLara is, so the question is whether this is OpenLara-specific or can be applied generally to porting PSX games to GBA.
 

Urbanshadow

Well-Known Member
Member
Joined
Oct 16, 2015
Messages
1,578
Trophies
0
Age
33
XP
1,723
Country
I think one big problm is the arbitrary 32MB ROM size limit. If we had a mapper that could address 256MB like a multi-rom bootleg does, they could probably continue with more of the game.
GB carts solved this by writing to arbitrary ROM addresses to inform the mapper to switch to specific banks. The trick is understanding the ROM mapper is physically inside the cart.

Of course it would need to be a custom mapper. Emulators will need changes to be able to access the data, but its not outside of GBA hardware spec. Its one of this weird things it might be easier to do directly in a fpga than it is to do in emulator.
 
  • Like
Reactions: Jayro

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Did you feed the hamster in your internet router? It prob died and is running slow now.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, why did you start saying my pc has a hamster in the first place?
    +1
  • BigOnYa @ BigOnYa:
    Its actua!ly just a old joke, meaning its slow. Was just kidding around with you.
    +1
  • BigOnYa @ BigOnYa:
    I bet @AncientBoi has some hamsters hidden somewhere tho....
    +2
  • Psionic Roshambo @ Psionic Roshambo:
    I think Game streaming should work like this.... Local Hardware able the run the game fine, game engine and common assets stored locally, all FMV and music and textures could be streaming
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Some temporary storage
  • Xdqwerty @ Xdqwerty:
    also @BigOnYa im making some progress on my gdevelop project, implemented various mechanics
  • Psionic Roshambo @ Psionic Roshambo:
    They went all in on streaming, should have been more of a hybrid approach
    +1
  • BigOnYa @ BigOnYa:
    Or free government supplied high speed internet be nice also. Like Obama care. Xdqwerty that's cool, its time consuming but rewarding once done or playable, to see what you've made from scratch. Animations take forever, but worth it.
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, although the bullets are a bit buggy
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Not to mention this would be a massive pain to pirate
  • Xdqwerty @ Xdqwerty:
    @BigOnYa,
    and the visual aspect of the game is quite crude (the sprite that looks best is that of the protagonist just because he is a stickman with sunglasses)
    +1
  • BigOnYa @ BigOnYa:
    There is a bullets behaviour you assign to your character, that makes the code easier, under "behaviours"
  • Xdqwerty @ Xdqwerty:
    i meant that when the character is pointing to the right, the bullets spawn where they should, but when he is on the right, they move to the right but the spawn point is incorrect
  • BigOnYa @ BigOnYa:
    Itch.io has lots of free assets also. Under the bullets behavior tab, there is a "rotate bullets" option, can try that. Or in the code can try
    - fire bullet Player.X(PlayerDirection)
  • Xdqwerty @ Xdqwerty:
    im taking a break for today anyway
    +1
  • BigOnYa @ BigOnYa:
    YEa gotta after a while, looking at code for long periods will bug your eyes.
    +1
  • BigOnYa @ BigOnYa:
    That's cool tho, I'm proud of you going back to it, not giving up. It is difficult at first to learn, but fun once you get the hang of it. I think I've watched every tutorial video there is, but I still struggle sometimes to get stuff to work right. But gotta keep trying dif things, and eventually you will get it right.
    +1
  • K3Nv2 @ K3Nv2:
    Lol McDonald's has a grandma mcflurry
  • Xdqwerty @ Xdqwerty:
    @K3Nv2, furry grandma?
  • BigOnYa @ BigOnYa:
    It sounds good actually, I like butterscotch
  • K3Nv2 @ K3Nv2:
    It sucked don't know wtf these little bits and pieces are they use now
    +1
    K3Nv2 @ K3Nv2: It sucked don't know wtf these little bits and pieces are they use now +1