This is cool but of course it's only going to be a small handful of titles that ever receive this kind of attention. But I have been blown away that now sub-$300 Android handhelds are more than capable of emulating the entire PS2 library, often with upscaling if you prefer.
Moore's law never ceases to amaze (the vulgar version where we're talking compute/dollar, not the transistor count doubling rate.) It won't be too long before phones are running AI models with performance equal to or better than current frontier models running on $100 million dollar clusters. It's hard to even imagine the things that will be running on billion dollar clusters in 10 years.
I do hope you're right, but I'm quite skeptical. As mobile devices get more and more locked down, All that memory capacity gets less and less usable. I'm sure it will be accessible to Apple and Google models, but models that obey the user? Not likely
As state of the art machines continue to chase the latest node, capacity for older nodes has become much less expensive, more openly documented, and actually accessible to individuals. Open source FPGA and ASIC synthesis tools have also immensely improved in quality and capability. The Raspberry Pi Pico RP2350 contains an open source Risc-V core designed by an individual. And 4G cell phones like the https://lilygo.cc/products/t-deck-pro are available on the market built around the very similar ESP32. The latest greatest will always be behind a paywall, but the rising tide floats all boats, and hobbyist projects are growing more sophisticated. Even a $1 ESP32 has dual 240mhz 32bit cores, 8Mb ram, and fast network interfaces which blow away the 8bit micros I grew up with. The state of the open-source art may be a bit behind the state of the proprietary arts, but is advancing as well.
It's really fun to have useful hardware that's easy to program at the bare metal.
It really is incredible. I've been playing through my childhood games on retro handhelds, and recently jumped from <$100 handhelds to a Retroid Pocket Flip, and it's incredible. Been playing WiiU and PS2 games flawlessly at 2x res, and even tackling some lighter Switch games on it.
It truly is. My issue though, like in 2010 when I built an arcade cabinet capable of playing everything is you eventually just run out of interest. In it all. Not even the nostalgia of it keeps my attention. With the exception of just a small handful of titles.
- Excite Bike (it’s in its own league) NES
- Punchout (good arcade fun) NES
- TMNT 4-P Coop Mame Version
- NBA Jam Mame Version
- Secret of Mana SNES
- Chronotrigger SNES
- Breath of Fire 2 SNES
- Mortal Kombat Series SEGA32X
- FF Tactics PS1
I know these can all be basically run in a browser at this point but even Switch or Dreamcast games were meh. N64/PS1/PS2/Xbox was peak and it’s been rehashed franchises ever since. Shame. The only innovative thing that has happened since storytelling died has been Battle Royale Looter Shooters.
Outer Wilds, Baba is You, Blue Prince, Hades 1&2, Disco Elysium, Hollow Knight, Slay the Spire, Vampire Survivors, Clair Obscur, What Remains of Edith Finch, 1000xResist, Return of the Obra Dinn, Roboquest, Rocket League, Dark Souls, etc. I could go on, and on, and...
Not rehashes. Original, phenomenal games covering damm near every genre and if there is a genre you're missing, I can find a modern game to match.
Do you actually engage with modern games?
Of course there are good modern games, but I agree there was something special about the first 3D generation of hardware (hardware cheap enough to be in home consoles at least) and the games it enabled.
Only VR has come close recently, but that hasn't hit in the same way because it is still too expensive and cumbersome.
This. Half-life was amazing, and not because it was Quake 2. It was a story. Less about blowing stuff up with guns and more about uncovering the secrets of Black Mesa. Then came along mods…
The first one was Team Fortress. Remember that? Still strong today as a ftp title TF2. The second one was a spec-ops style delta force mod (I can’t remember the name) but it gave the 3rd modder the idea that a modern setting could work. Counter-Strike was released as an early alpha on my forum and the rest was history.
I mention this because this was a tuning point from fixed function pipelines to programmable pipelines (shaders).
There was this awe of what we can do, what could be possible, and today’s modern games are a fulfillment of that. I feel this same sense of awe when it comes to some of these foundational models. It’s just incredible what they are capable of.
In reality, while AAA titles have been pumping out annual titles to keep shares high and pigs fat, there have been some wonderful indie titles, smaller budget games, that have made a significant impact on the games industry as a whole.
Ok, I’ll give you Rocket League. That’s an entirely new spin on a genre I didn’t see coming. The rest are just RPGs or platformers you like. Good games, but not innovative. Yes, some new franchises have been born and some successful indie titles have been launched but most of the market share in the games industry is held by the top 5.
Yes, I have over 1,000 games in my Steam library going back to 1999. I engage in most games that make the top 500 and have so since I was a teenager making games myself.
So, is Outer Wilds a RPG or a platformer?
Open world game but also a mystery game as we’re a couple others mentioned above. Those go back to Carmen San Diego and Sherlock homes series. Open World, we’ve seen plenty of those.
Well, nothing new has been invented since checkers, if you really think about it hard enough and reduce everything to a few buckets of games that everything can fit neatly into, then everything is just a mystery game or just open world or just a platformer. Again, I have a feeling like you're just looking at it mechanically and not how these elements work together to produce a game that is larger than just the sum of its parts. Outer Wilds has puzzles and open world and mystery element to it - and all of those have been done before. But has anyone else combined them this way to produce a game with this narrative? No, I don't believe so(happy to be proven wrong, as always).
Like the other commenter said - I hope I don't become jaded like this about video games, it still brings me joy to see how every new game twists the known formula a little bit more and in new and exciting ways, I believe there are several nieches where we haven't seen the game of that genre yet and I can't wait to see it emerge and how and who is going to do it.
>>Good games, but not innovative
Calling outer wilds or Clair Obscur "not innovative" just tells me you haven't played these games from start to finish, and I don't mean any offence saying this. Unless you mean just mechanically?
I have played both. I stand by my statement.
I hope I never become this jaded and cynical about video games.
Keep playing them for 20 years :D
>The only innovative thing that has happened since storytelling died
lol
There are countless already classic modern story driven games which pushing the boundaries of video games forward.
I know nostalgia is a very strong drug and I also love the games I grew up with in the 90s but it's pure ignorance to say that 1, "storytelling died" 2, no innovation happened in video games in modern times (whatever that even means)
You are misconstruing my love for nostalgia games for when you think I believe storytelling died. It didn’t die in the 90s, it died in 2010s. Everything since 2018 that I have played has been relatively easy to guess the plot line or it didn’t ever materialize to begin with.
>>Everything since 2018 that I have played has been relatively easy to guess the plot line
Be honest- you guessed the plot of Claire Obscure before you got to Act 3? Or the plot of Death Stranding 1 & 2 before you finished them?
What kind of games have you played since 2018? Because yeah, there is a lot of predictable cookie cutter AAA games out there, sure. But each year there are games which are surprising in their storytelling, same as somehow there are still new and surprising films despite film being much older than gaming. Not to mention books.
For the oldies but goodies in my list:
- Any one of the 194_ games
- Legend of Zelda: A Link To The Past
- Super Mario World
- Final Fantasy VI, VII, IX
- Chrono Trigger (agree)
- Street Fighter 2 Championship Edition
- Metal Gear Solid 1-3, MGS: Peace Walker
But I think there's been good stuff since.
- The Super Mario Galaxy games
- Super Monkey Ball
- MGS4, MGS5
- Witcher 3
- The Bioshock games
- Minecraft-- probably the game with the most replay value of anything of all time.
I don't know what will stand the test of time. I don't want to play any of these games now, since I've burnt them out, but at some point I'll likely want to play them again...
- Undertale
- Bravely Default
- The Octopath games
- Dispatch
- AstroBot
- Clair Obscur
Street Fighter 2 Championship Edition (whichever was the one with the most characters) as well as Street Fighter Alpha were great for the arcade machine.
Most of my buddies at the time would come over, have a beer, immediately hang it on the boat-coozy cup holders (the ones that gyro) and go to town shoulder to shoulder playing SF2. The cup holders gyro would prevent the beers from spilling as the arcade cabinet rocked back and forth from two grown men having a virtual fist fight. Best times.
Paradox of choice. When you were single digit/low double years old, and you only had 3 games, you had to play the shit out of them. With every game available at your fingertips, there's no such compunction.
Blockbuster and Funco Land gave me all the titles I could get my 7 year old fingers on.
> N64/PS1/PS2/Xbox was peak and it’s been rehashed franchises ever since. Shame. The only innovative thing that has happened since storytelling died has been Battle Royale Looter Shooters.
I was a kid when ps1/n64 came out so I also have a lot of nostalgia about that era of gaming.
However…
There are a ton of great games out there from this era. Hell, the Uncharted series and Expedition 33 will get you 100-200 hours of excellent gameplay, Elden ring is another 200. Lies of P is a fantastic game, 50-100 more. The star wars Legos and star wars Harry Potter games are a lot of fun to play with kids, and Breath of the Wild/Tears of the Kingdom are the Zelda games we wanted on n64 as a kid, I love those games. And they’re not a rehash, at all.
There’s a lot of fun things out there to play if you poke around. Your local library might surprise you with the collection for completely free games you can borrow. Modern games even.
What? Dreamcast was a marvel when it came to games, Crazy Taxi, Virtua Tennis, Power Stone, Jet Set Radio, Grandia, SoulCalibur etc.
SoulCalibur was better on PlayStation.
Dreamcast’s only hit was Crazy Taxi.
The Demons Souls lineage titles are another valuable innovation (I understand the earlier inspirations it had but those aren't playable like these modern ones)
For MAME I recommend trying Pang and Super Buster Bros
And then folks waste whole that power away, with embedded widgets applications.
My Android phone is more powerful than the four PCs I owned during the 1990 - 2002, 386SX - P75 - P166 - Athlon XP, all CPU, GPU, RAM and disk space added together.
I sit here with a laggy windows 11 computer with an Nvidia GPU and wonder: WTF
Its fine with Fedora, but Windows 11 is terrible.
I'll take a longbet with you that this or successors tackle more than a small handful of titles
We live in interesting times
It's so much work hunting down the proper upscaled/improved texture packs though. Supposedly.
I gave up video games, but I remember that being a huge reason why I picked Android a decade + ago. Emulators :D
Apparently now iphone allows it. Eventually Apple gives features that are standard elsewhere. Veblen goods...
I suspect we will see a proliferation of emulator development in the next few years.
In a lot of ways, emulators are the perfect problem for vision/LLMs. It's like all those web browser projects popping up on HN. You have a very well define problem with existing reference test cases. It's not going to be fun for Nintendo's lawyers in future when everybody can crowdfund an emulator by simply running a VLM against a screen recording of gameplay (barring non deterministic éléments).
They can't oppress the software engineering masses any longer through lawfare.
What the dev of AertherSx2 did to run games smooth, even on my midrange 2019 android phone, is wonders.
Too bad the dev is a very emotionally unstable person that abandoned his port, despite his big talent.
Wasn't he hounded by users as usual?
Yeah and he didn't want to deal with receiving death threats for working on a passion project. Which I guess is considered being "emotionally unstable".
On the flip side, maybe those traits are what lead to the existence of the emulator in the first place. Better something than nothing.
Link to the actual project rather than just a news article about it https://github.com/ran-j/PS2Recomp
An application of the first Futamura projection. https://en.wikipedia.org/wiki/Partial_evaluation
I read this as Futurama way too many times
So did I. Considering there is a PS2 Futurama game, it seems a reasonable mistake.
honestly I kept thinking of this https://theinfosphere.org/Futurama_theorem
Is it? It would be if it partially evaluated a MIPS emulator on a particular game. But it doesn't seem to work like that.
"Decoding the MIPS R5900 instructions in each function Translating those instructions to equivalent C++ code Generating a runtime that can execute the recompiled code The translated code is very literal, with each MIPS instruction mapping to a C++ operation." It sounds like a MIPS interpreter that gets statically unrolled.
Yes, it's like the result of unrolling a MIPS interpreter, but there never was an actual MIPS interpreter.
I thought the point of the Futamura projection was that there was actually partial evaluation happening, i.e. you take a real interpreter and specialize it in some automated fashion. That's what makes it interesting.
But I could well be wrong about the naming. It doesn't really matter what it's called if we're all clear about what's actually happening.
On this topic of ports/recomps there's also OpenGOAL [1] which is a FOSS desktop native implementation of the GOAL (Game Oriented Assembly Lisp) interpreter [2] used by Naughty Dog to develop a number of their famous PS2 titles.
Since they were able to port the interpreter over they have been able to start rapidly start porting over these titles even with a small volunteer team.
2. https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
90% of the PS2’s floating point throughput is in the two vector units, not the R5900 conducting them. Concentrating on that, as the article does, seems as futile as focussing on the 68000 rather than the Amiga PAD in a 16-bit context (ignoring the EE’s 16-bit RAMBUS bottleneck).
However that approach will probably suit the least-ambitious PC-ports to PS2 (by studios that didn’t appreciate the difference) - rather as an ST emulator was a short cut to run the simplest Amiga games.
This is amazing for preservation. Being able to run these classics on modern hardware with native recompilation is a huge step forward.
See also: XenonRecomp, which does the same thing for Xbox 360, and N64:Recompiled which does the same thing for N64.
Note that this "recompilation" and the "decompilation" projects like the famous Super Mario 64 one are almost orthogonal approaches in a way that the article failed to understand; this approach turns the assembly into C++ macros and then compiles the C++ (so basically using the C++ compiler as a macro re-assembler / emulation recompiler in a very weird way). The famous Super Mario 64 decompilation (and openrct and so on) use the output from an actual decompiler which attempts to reconstruct C from assembly, and then modify that code accordingly (basically, converting the game's object code back into some semblance of its source code, which this approach does NOT do).
Emulation is already amazing. What can be done with recompilation is magic: https://github.com/Zelda64Recomp/Zelda64Recomp
This sounds very cool, but I can practically hear the IP lawyers sharpening their buzz-axes...
Or as in cartoons, IP lawyers with dollar symbols in their eyes.
Only in terms of their own salaries and bonuses. For all their litigiousness over emulation I can't imagine it really makes them money.
Do IP cases ever make anyone other than outside counsel money?
> So yes, currently playing PS2 games on PC via emulator is still absolutely fantastic, but native ports would be the holy grail of game preservation.
I would think that emulation of the original game as closely as possible would be the gold standard of preservation, and native ports would be a cool alternative. As described in the article, native ports are typically not faithful reproductions but enhanced to use the latest hardware.
I wonder how they will tackle the infamous non-conformant Ps2 floating-point behavior issue, that is the biggest hurdle on emulating Ps2.
As of now, it looks like they're ignoring it:
https://github.com/ran-j/PS2Recomp/blob/91678d19778891b4df85...
#define FPU_ADD_S(a, b) ((float)(a) + (float)(b))
(etc)But if you wanted to handle it, you'd presumably macro expand the floating point operations to something that matches the PS2 fpu (or comes closer).
Some context for others who were unaware: https://github.com/PSI-Rockin/DobieStation/issues/51
EDIT here's potentially a better link: https://www.gregorygaines.com/blog/emulating-ps2-floating-po...
Probably the same way as the emulator themselves, with a list of titles needing the real PS2 floating point.
A lot of titles don't actually need it and work fine with standard IEEE floating point.
PS2 floating-point behavior is one of the few hardware misfeatures so awful it affects emulation of competing systems[0]. The game True Crime: New York City is so dependent on PS2 floating point that the GameCube port installs an error handler just to make 1/0 = 0. Which isn't even PS2 hardware behavior. But it is "close enough" that the game does not immediately throw you into the void every time you step on a physics object.
[0] https://dolphin-emu.org/blog/2021/11/13/dolphin-progress-rep...
As far as I know, static recompilation is thwarted by self modifying code (primarily JITs) and the ability to jump to arbitrary code locations at runtime.
The latter means that even in the absence of a JIT, you would need to achieve 100% code coverage (akin to unit testing or fuzzing) to perform static recompilation, otherwise you need to compile code at runtime at which point you're back to state of the art emulation with a JIT. The only real downside of JITs is the added latency similar to the lag induced by shader compilation, but this could be addressed by having a smart code cache instead. That code cache realistically only needs to store a trace of potential starting locations, then the JIT can compile the code before starting the game.
JIT isn't _that_ common in games (although it is certainly present in some, even from the PS2 era), but self-modifying or even self-referencing executables were a quite common memory saving trick that lingered into the PS2 era - binaries that would swap different parts in and out of disk were quite common, and some developers kept using really old school space-saving tricks like reusing partial functions as code gadgets, although this was dying out by the PS2 era.
Emulation actually got easier after around the PS2 era because hardware got a little closer to commodity and console makers realized they would need to emulate their own consoles in the future and banned things like self-modifying code as policy (AFAIK, the PowerPC code segment on both PS3 and Xbox 360 is mapped read only; although I think SPE code could technically self-modify I'm not sure this was widespread)
The fundamental challenges in this style of recompilation are mostly offset jump tables and virtual dispatch / function pointer passing; this is usually handled with some kind of static analysis fixup pass to deal with jump tables and some kind of function boundary detection + symbol table to deal with virtual dispatch.
Yes, but in practice that isn't a problem. People do write self modifying code, and jump to random places today. However it is much less common today than in the past. IT is safe to say that most games are developed and run on the developers PC and then ported to the target system. If they know the target system they will make sure it works on the system from day one, but most developers are going to prefer to run their latest changes on their current system over sending it to the target system. If you really need to take advantage of the hardware you can't do this, but most games don't.
Many games are written in a high level language (like C...) which doesn't give you easy access to self modifying code. (even higher level languages like python do, but they are not compiled and so not part of this discussion). Likewise, jumping to arbitrary code is limited to function calls for most programmers.
Many games just run on a game engine, and the game engine is something we can port or rewrite to other systems and then enable running the game.
Be careful of the above: most games don't become popular. It is likely the "big ticket games" people are most interested in emulating had the development budget and need to take advantage of the hardware in the hard ways. That is the small minority of exceptions are the ones we care about the most.
This is PS2 emulation, where most engines were still bespoke and every hack in the book was still on the table.
How many PS2-era games used JIT? I would be surprised if there were many of them - most games for the console were released between 2000 and 2006. JIT was still considered a fairly advanced and uncommon technology at the time.
A lot of PS2-era games unfortunately used various self-modifying executable tricks to swap code in and out of memory; Naughty Dog games are notorious for this. This got easier in the Xbox 360 and PS3 era where the vendors started banning self-modifying code as a matter of policy, probably because they recognized that they would need to emulate their own consoles in the future.
The PS2 is one of the most deeply cursed game console architectures (VU1 -> GS pipeline, VU1 microcode, use of the PS1 processor as IOP, etc) so it will be interesting to see how far this gets.
Ah - so, not full-on runtime code generation, just runtime loading (with some associated code-mangling operations like applying relocations). That seems considerably more manageable than what I was thinking at first.