8 ms·
Quake on the Game Boy Advance [video]
- JohnBooty 4y agoVery impressive video; second half of the video gives some great detail on specific optimization techniques in play.
- pferdone 4y agoSaw it yesterday and as someone already mentioned in the comments, it's crazy to think the Game Boy Advance only lasted 3yrs before it got replaced with the Nintendo DS. This demo blows my mind, and even after watching the video on it I still can't fathom it.
- 83457 4y ago"the Game Boy Advance only lasted 3yrs before it got replaced with the Nintendo DS" I assume most did not believe Nintendo's statement on the matter. https://www.gamespot.com/articles/nintendo-ds-not-game-boy-advances-successor/1100-6086771/ https://www.gamespot.com/articles/nintendo-ds-not-game-boy-a...
- gs17 4y agoI remember arguing with my friends about this as a kid. A lot of the target audience was naïve enough to believe it, even when it was clear first-party games had moved to DS.
- MBCook 4y agoIt’s clear that’s what they wanted to do, but I think they really weren’t sure it would work and had a backup “it was GBA all along” plan.
- monocasa 4y agoI don't blame them either with the scars of the VirtualBoy still fresh in their minds.
- MBCook 4y agoExactly. The late time they “strayed from their lane” they got slapped hard. Easy to see why they were gun shy.
- Wowfunhappy 4y agoI disagree! I think Nintendo wanted both consoles to coexist in order to provide an additional revenue stream. When you want to play traditional games, you grab your Gameboy Micro or the still-highly-pocketable GBA SP. When you want a stylus and dual screens to play Nintendogs, you grab your bulkier Nintendo DS. It didn’t really work and Nintendo pivoted—possibly also to compete with the PSP—but I see the Gameboy Micro as evidence of their strategy. Compare an original model DS and the Gameboy Micro side-by-side—the size difference isn’t entirely unlike that of an iPhone versus an iPad Mini. It’s not the first time Nintendo tried to create a third category between console and handheld—see also the Virtual Boy.
- minimaul 4y agoThey said the same thing about the Switch and the 3DS as well :)
- bombcar 4y agoThe GBA was still sold for four+ years after the DS came out, and games were still popular. The DS being able to play GBA games was a huge selling point, as people forget how "radical" the dual screens were and how uncertain it was that people would adapt, so having the GBA fallback was nice. Also, the DS was a better GBA than the GBA.
- goosedragons 4y agoDepends on the GBA. The original model, sure. With the backlit SP it's less clear. The DS is more comfortable but less pocketable, can't play GBC or GB games and doesn't have a link cable port so no multiplayer and no trading Pokemon. IMO a backlit SP is the best stock GBA you can get.
- qbasic_forever 4y agoThe first few generations of DS were fully backwards compatible with the GBA though so the transition wasn't that bad. The Gameboy in general had an amazing run of backwards compatibility through its lifetime. The GBA could play original Gameboy games going back all the way to 1989. The one annoyance of the GBA at its release and original lifetime was the screen. It wasn't backlit and was very difficult to see without perfect bright lighting in your room. They eventually fixed this with the backlit GBA SP some years later, but gaming on the original GBA was rough. It's easy to forget just how bad things were without backlit screens, we've been spoiled by decades of amazing smartphone screens in the years since.
- pferdone 4y agoI know, every Game Boy Advance (variant, except for the micro) was able to play GB/GBC games. Also for backlight: only the SP AGS-101 and the GB Micro were backlit.
- Jaruzel 4y agoQuite early on in the GBAs lifecycle, there were third party backlighting solutions. I fitted a few back in the day for myself and my friends. Even now you can get decent IPS LCD screen replacements from places like AliExpress.
- romanhn 4y agoAn absolutely incredible achievement. Though to clarify - this is not Quake running on Game Boy, but rather a custom engine hand-written in assembly that can run Quake levels (or, I think, just the first level anyways). Which, in my mind, is even more impressive.
- tomxor 4y agoIn 2k lines of assembly apparently. Which sounds like a bit of a golf too for a ~quake compatible engine!
- kube-system 4y agoThe video says 200k lines
- tomxor 4y agoAh I must have misheard, that sounds more realistic.
- jonny_eh 4y agoIt looks and plays like Quake, it is Quake. It just doesn't use the original engine. Similarly, the recent re-release of Doom doesn't use the original Doom engine, it uses Unity, but it's still Doom.
- ThatPlayer 4y agoThe re-releases of Doom do use the original Doom, alongside Unity. Here's where we get into Theseus' ship: the game logic engine itself is still original Doom's, but Unity is used for the video output, sound, and input engines, allowing for easier ports because of the difference between console and phone graphic APIs and input options. https://doomwiki.org/wiki/Doom_Classic_Unity_port#Architecture https://doomwiki.org/wiki/Doom_Classic_Unity_port#Architectu...
- monocasa 4y agoTo be fair, ports of games for that class of console would often be complete rewrites. Sometimes even the assets would be redrawn just from looking at another version of the game running. Remember, despite coming out later, the gameboy advance would be in the space of SNES/Genesis if it were a home console.
- Thaxll 4y agoAre modern compiler good enough / have good optimization on old hardware so that you don't need to write ASM? I remember that impressive opti on Mario64 and it's using C / GCC: https://www.youtube.com/watch?v=t_rzYnXEQlE https://www.youtube.com/watch?v=t_rzYnXEQlE
- jeffbee 4y agoYes, the idea that wall-to-wall assembly is somehow superior is definitely flawed. High-level language compilers have many optimization passes and can transform code in ways that the user might not have imagined. Writing high-level code that causes the toolchain to produce the machine code the author wants is its own skill, though, and a habitual assembly programmer might not have that particular skill.
- kingcharles 4y agoI agree with this. A smart coder is going to write it all in a high-level language and then profile it to see which tiny bits might be better off in assembler and then profile it again to test their theory. Modern compilers know a lot of tricks and can often find optimizations that would be hard to do manually in machine code.
- drcode 4y agoYes, but Randy also had to get uber-expert level understanding of the hardware to reach such performance... It would be hard to do that without writing copious assembly specific to the hardware somewhere along the way, regardless of compiler quality, so his "100% assembly" strategy served both goals.
- qbasic_forever 4y agoYeah the GBA uses an older ARM processor and is really well supported by GCC and modern compiler toolchains. Heck you can even write Go and run it with TinyGo targeting the GBA: https://tinygo.org/docs/reference/microcontrollers/gameboy-advance/ https://tinygo.org/docs/reference/microcontrollers/gameboy-a... Plain old C/C++ is really well supported for hobbyist development though: https://github.com/gbadev-org/awesome-gbadev https://github.com/gbadev-org/awesome-gbadev
- ant6n 4y agoI’ve spent a bunch of time learning the gba hardware and mapping out how a software renderer could perhaps work. There are so many cool tricks possible on the gba, with its arm32 and various different ram areas with different clocks. But going through and actually implementing a quake renderer is a huge amount of work. Wow.
- hnthrowaway0328 4y agoIs there any place that I find technical optimization details regarding porting graphical intensive games (such as DOOM/Quake) to a platform that is significantly less powerful than their intended ones?
- bombcar 4y agohttps://doom.fandom.com/wiki/Super_NES https://doom.fandom.com/wiki/Super_NES may have some info, the SNES wasn't able to run Doom as it was written for the PC. Of course, for many of the "it runs Doom" the reality is that whatever the device is (fridge, toaster, printer) it has a much MORE powerful computer than a 1990s 386.
- hnthrowaway0328 4y agoThanks! Yeah I'm more interested in insane optimization, especially done in modern time as people don't have to optimize that crazily these days.
- huachimingo 4y agoNot only ports, but the actual original source, see Fabien Sanglard's work: https://fabiensanglard.net/ https://fabiensanglard.net/ He has a "[Game Engine] Black Book" series where he touches old games, its full development history and so on. The Doom one is pretty good.
- rasz 4y agohttps://kilograham.github.io/rp2040-doom/ https://kilograham.github.io/rp2040-doom/
- bze12 4y agomy friend from college got quake to run on an iPod https://www.fwei.tk/blog/adieu-quake.html https://www.fwei.tk/blog/adieu-quake.html
- david422 4y agoThis same guy - Randy Linden - got DOOM to run on SNES. I don't know where I read the original article - but the amount of skill it took for him to accomplish this was just incredible: "DOOM on SNES happened thanks to the genius and determination of a single man: Randy Linden. The man had an admiration for the game and decided to port it to a mass-market machine so more players could enjoy it. Randy never had access to the source code or the assets from either the PC or the console version. He started from nothing."
- 0xcde4c3db 4y agoHe also wrote the commercial PlayStation emulator "bleem!". That is, he single-handedly wrote an emulator of a then-current console that ran well enough that people actually paid for it.
- com2kid 4y agoI was lucky enough to work with Randy at Microsoft, an incredible developer all around. Strangely enough for the majority of the time we were working with him, none of us knew he was a programming legend. I think eventually someone was Googling team member names and realized who we had in our midst!
- bennysomething 4y agoWhat was he working on at ms? I watched a video about his snes port of doom, amazing stuff (and slightly depressing know I'll never be any where near that level).
- nfgrep 4y agoThis absolutely rips. So impressed by the 3D achieved here. The other examples of 3D GBA games I’ve seen play some pretty obvious tricks to make it performant, I cant spot any of those tricks here.
- AdmiralAsshat 4y ago3D on the GBA always seemed woefully unexplored. I mean this port of THPS2 was a launch title: https://www.youtube.com/watch?v=b26QnlpaVaA https://www.youtube.com/watch?v=b26QnlpaVaA
- ArtWomb 4y agoV-Rally 3 is prob my fave title. But you see pseudo 3D in many GBA classics: Iridium 2, Driv3r. Each a custom rendering method presumably ;)
- JohnBooty 4y agoIridium is just insane visually, I love it. As far as I've ever been able to tell, there are no polygons. - Player and enemy ships + missiles etc are flat 2D scaled sprites - Some backgrounds are pure FMV (I think some warping is applied as the player ship moves, to give a more 3D feel) - Some backgrounds are "SNES Mode 7" style ceilings and floors Probably the definitive example of "faking 3D without using any polygons" IMO. Even more impressive than Sega's super-scaler games like Space Harrier, Galaxy Force, etc.
- egypturnash 4y agoIridion 2? https://www.youtube.com/watch?v=ztBqI3UvIs0 https://www.youtube.com/watch?v=ztBqI3UvIs0 I'm seeing a pre-rendered background loop with a little skewing applied as the player moves from one side to the other, with a lot of scaled sprites on top of it. Nicely done. The big tell on the background loop for me is that the repeating background stuff never changes during a level.
- JohnBooty 4y agoRight, Iridion, thanks. Not sure about Iridion 2 but some levels in Iridion 3D are not purely prerendered background loops - this level is a Mode7ish flat "floor" (the ocean) with a perspective-warping sky BG It's not super advanced technically, maybe, but it's very well done IMO