12 ms·
PlayStation 2 Recompilation Project Is Absolutely Incredible
- emodendroket 9mo agoThis 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.
- flykespice 9mo agoWhat 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.
- dottjt 9mo agoOn the flip side, maybe those traits are what lead to the existence of the emulator in the first place. Better something than nothing.
- Sarkie 9mo agoWasn't he hounded by users as usual?
- siev 9mo agoYeah 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".
- efreak 9mo agoI have no knowledge of this instance, but death threats and being attacked and stalked online tends to cause emotional instability.
- jkingsman 9mo agoIt 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.
- reactordev 9mo agoIt 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.
- wahnfrieden 9mo agoThe 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
- irishcoffee 9mo ago> 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.
- grimgrin 9mo agoI'll take a longbet with you that this or successors tackle more than a small handful of titles We live in interesting times
- Onavo 9mo agoI 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.
- observationist 9mo agoMoore'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.
- freedomben 9mo agoI 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
- timschmidt 9mo agoAs 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 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.
- direwolf20 9mo agoEven when technically accessible to individuals it still costs at least 10k$ to get a batch of chips made on a multi project wafer.
- pjmlp 9mo agoAnd 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.
- PlatoIsADisease 9mo agoI sit here with a laggy windows 11 computer with an Nvidia GPU and wonder: WTF Its fine with Fedora, but Windows 11 is terrible.
- pjmlp 9mo agoAnother one full of Webview2 instances because new hires cannot code anything else, apparently. They aren't to blame, management is.
- josephg 9mo agoThey all bear some of the blame. Software engineers are hired to be the expert in their field. If you don't learn your craft, managers aren't going to do it for you. Ideally new hires would be mentored by senior engineers who understand performance, and who can teach new hires how to write (and ship) good, performant software. But unfortunately that doesn't happen anywhere near as often as it should.
- PlatoIsADisease 9mo agoMaybe. I had a director that fired anyone who wouldn't use Microsoft Power Automate. Previous to that director, I built stuff in python for 5 years under a different director.
- PlatoIsADisease 9mo agoI 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...
- lysace 9mo agoThere is so much work hunting down the proper upscaled/improved texture packs though. Supposedly.
- deleted 9mo ago[deleted]
- BrtByte 9mo agoEmulation is amazing for access right now. Recompilation is about making sure MGS2 or GT4 still runs in 2045 on whatever weird hardware we're using then
- mrguyorama 9mo agoI find PS2 emulation to be lacking. Of course I am spoiled by Dolphin and their meticulous work, and the leap in N64 emulation, and PS3 emulation is way farther than I thought it could ever be. But PCSX2 is mediocre. It reports the vast majority of the library in "green" emulation state, but that usually means there are glaring issues that someone is choosing to overlook, like shadows that are broken. The Ace Combat games for example are all broken with the hardware accelerated renderer. Things run like garbage in the software renderer for a lot of games. Multiplayer functionality is spotty and hard to set up and poorly documented. The state of emulation of that console generation is not up to snuff, save for Dolphin. It's still very much in the "Shut up, it works fine for Super Mario 64 so it works" mindset it seems. This is true even of official emulators! The Xbox emulator that ran on the Xbox 360 has many games that are "officially supported" with serious issues. Forza Motorsport 1 has weird slowdowns on key tracks. I understand the serious hardware difficulties but I still wish emulation accuracy was an option.
- wmf 9mo agoAn application of the first Futamura projection. https://en.wikipedia.org/wiki/Partial_evaluation https://en.wikipedia.org/wiki/Partial_evaluation
- jszymborski 9mo agoI read this as Futurama way too many times
- suprjami 9mo agoSo did I. Considering there is a PS2 Futurama game, it seems a reasonable mistake.
- jszymborski 9mo agohonestly I kept thinking of this https://theinfosphere.org/Futurama_theorem https://theinfosphere.org/Futurama_theorem
- efreak 9mo agoCould be worse
- masfuerte 9mo agoIs it? It would be if it partially evaluated a MIPS emulator on a particular game. But it doesn't seem to work like that.
- wmf 9mo ago"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.
- masfuerte 9mo ago
- imtringued 9mo agoAs 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.
- bluGill 9mo agoYes, 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.
- bri3d 9mo agoThis is PS2 emulation, where most engines were still bespoke and every hack in the book was still on the table.
- xnx 9mo agoEmulation is already amazing. What can be done with recompilation is magic: https://github.com/Zelda64Recomp/Zelda64Recomp https://github.com/Zelda64Recomp/Zelda64Recomp
- Koshkin 9mo agoSo… What’s the magic? (In theory, interpretation/emulation and compilation should produce identical behavior.)
- firegodjr 9mo agoIdentical behavior, sure, but much less overhead and fewer restrictions on e.g. resolution than you'd get on a general purpose emulator
- corysama 9mo agoThe magic is that now you can modify the source code of the game and recompile that. Folks have been optimizing SuperMario64 to run much faster on actual N64 hardware. And, there is a project that has ported it to run on the PlayStation 1. That’s much weaker hardware that has no hope of emulating the N64.
- flykespice 9mo agoI wonder how they will tackle the infamous non-conformant Ps2 floating-point behavior issue, that is the biggest hurdle on emulating Ps2.
- mikepurvis 9mo agoSome context for others who were unaware: https://github.com/PSI-Rockin/DobieStation/issues/51 https://github.com/PSI-Rockin/DobieStation/issues/51 EDIT here's potentially a better link: https://www.gregorygaines.com/blog/emulating-ps2-floating-point-nums-ieee-754-diffs-part-1/ https://www.gregorygaines.com/blog/emulating-ps2-floating-po...
- kmeisthax 9mo agoPS2 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-report-september-and-october-2021/#50-15330-raise-program-exceptions-on-floating-point-exceptions-by-josjuice https://dolphin-emu.org/blog/2021/11/13/dolphin-progress-rep...
- realusername 9mo agoProbably 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.
- toast0 9mo agoAs of now, it looks like they're ignoring it: https://github.com/ran-j/PS2Recomp/blob/91678d19778891b4df854af0a2e9d5c162fb42c1/ps2xRuntime/output/ps2_runtime_macros.h#L133 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).
- OneDeuxTriSeiGo 9mo agoOn 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. 1. https://opengoal.dev/ https://opengoal.dev/ 2. https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
- tetris11 9mo agoThats incredible, I had no idea Jak&Daxter was written with Emacs as the primary IDE!
- OneDeuxTriSeiGo 9mo agoLol yep. Emacs as the IDE, Allegro Common Lisp as the interpreter + HAL implementation, and GOAL itself being a Scheme-like. Naughty Dog in general was actually a primarily Lisp studio for a long time. It was only in the PS3 era with Uncharted and The Last of Us that they switched to C++ because trying to maximise the performance out of a Lisp interpreter environment with the complexity the Cell Processors added on a time and cash budget simply wasn't feasible for them. The Crash Bandicoot games were written in GOOL (Game Oriented Object Lisp) which they wrote prior to GOAL and the Jak and Daxter games. GOOL/Lisp of course was extremely important for the Crash Bandicoot legacy because by writing their own higher level interpreter they were given an excuse to through away the entire standard library that Sony gave them and start from scratch. That process allowed them to write a massively more performant stdlib and execution environment leading to Crash Bandicoot being able to support game environments an order of magnitude more complex than other games at the time could. And of course this allowed them to build in a system for lazy loading the environment as the player progressed through the levels which firmly cemented Naughty Dog in the video games history books. Andy Gavin actually has an incredible blog site (including a 13 part series on Crash Bandicoot and a 5 part series on Jak and Daxter) that has over the decades documented the history of their studio's game development process and all the crazy things they did to make their games work on hardware where it really shouldn't have been able to with the tools they were provided. https://all-things-andy-gavin.com/video-games-archive/ https://all-things-andy-gavin.com/video-games-archive/
- ChrisMarshallNY 9mo agoThis sounds very cool, but I can practically hear the IP lawyers sharpening their buzz-axes...
- doublerabbit 9mo agoOr as in cartoons, IP lawyers with dollar symbols in their eyes.
- chippiewill 9mo agoSony have actually been fairly chill about emulators etc. so I'd be surprised if lawyers got involved here. They actually used an open source Playstation emulator when they released the "Playstation Classic" in 2018.
- zerocrates 9mo agoThey haven't been all that aggressive against the decompile/recompile projects, interestingly. They're sometimes/often set up so you need the original to grab assets etc., but that code is copyrighted too and I'd have to imagine a decompile that purposely compiles to an identical binary would be a derivative work. My best guess is that for them it's not worth the hassle or any possibility of a negative result in court as long as people have to jump through some hoops by providing an original, and for the projects that don't do that, you have very straightforward easy infringement cases without even getting into the decomp stuff. Though really even ROMs seem to be tacitly tolerated to some extent lately. Maybe there's an attitude that keeping people involved with the franchise is worth it, again so long as it doesn't become too easy.
- bananaboy 9mo agoLink to the actual project rather than just a news article about it https://github.com/ran-j/PS2Recomp https://github.com/ran-j/PS2Recomp
- ZX8301 9mo ago90% 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.
- corysama 9mo agoHey! I can speak here. Back in the day, I wrote a simulator for the PS2’s vector units because Sony did not furnish any debugger for them. A month after I got it working, a Sony 2nd party studio made their VU debugger available to everyone… Anyway… The good news is that the VU processors are actually quite simple as far as processors go. Powerful. Complicated to use. But, not complicated to specify. This is made much simpler by the fact that the only documentation Sony provided was written by the Japanese hardware engineers. It laid out the bit-by-bit details of the instruction set. And, the bitwise inputs, outputs, delays and side effects of each instruction. No guidance on how to use it. But, awesome docs for writing a simulator (or recompiler).
- BrtByte 9mo agoI think you're actually describing why recompilation is interesting here rather than why it's futile
- bri3d 9mo agoSee 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).
- colordrops 9mo ago> 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.
- snvzz 9mo agoIndeed, the focus for preservation would be to increase the accuracy of emulators. pcsx2 is pretty good today in terms of running games (there is a single digit list of games it does not run), but it's far from accurate to the hardware. Porting to current systems via recompilation is cool, but it has very little to do with preservation.
- hn_user_9876 9mo ago[dead]
- pwdisswordfishs 9mo ago> The PlayStation 2’s library is easily among the best of any console ever released, and even if you were to narrow down the list of games to the very best, you’d be left with dozens (more like hundreds) of incredible titles. But the PS2 hardware is getting a bit long in the tooth Besides the library, the PS2 is the most successful video game console of all time in terms of number of units shipped, and it stayed on the market for over ten years, featured a DVD drive, and at one point was positioned by Sony not just as an entertainment appliance but as a personal computer, including their own official PS2 Linux distribution. In a more perfect world, this would have: (a) happened with a hypothetical hardware platform released after the PS2 but before the PS3, with specs lying in between the two: a smidge better than the former, but not quite as exotic as the latter (with its Cell CPU or the weird form factor; whereas the PS2's physical profile in comparison was perfect, whether in the original form or the Slim version), which could have: (b) resulted in a sort of standardization in the industry like what happened to the IBM PC and its market of clones, with other vendors continuing to manufacture semi-compatible units even if/when Sony discontinued it themselves, periodically revving the platform (doubling the amount of memory here, providing a way to tap into higher clock speeds there) all while maintaining backwards compatibility such that you would be able to go out today and buy a brand new, $30 bargain-bin, commodity "PS2 clone" that can do basic computing tasks on it (in other words, not including the ability to run a modern Web browser or Electron apps), can play physical media, and supports all the original games and any other new games that explicitly target(ed) the same platform, or you could pay Steam Machine 2026 prices for the latest-gen "PS2" that retains native support for the original titles of the very first platform revision but unlocks also the ability to play those for every intermediate rev, too.
- delaminator 9mo ago> and at one point was positioned by Sony not just as an entertainment appliance but as a personal computer with their own official PS2 Linux distribution. to avoid EU import taxes
- deleted 9mo ago[deleted]
- keyle 9mo agoSide note, are we at the level where tech blogs and news site can't even write <a href> links properly? 2 out of 4 links in the article are messed up, that's mind boggling... On a tech blog! Is that how far deep we've sunk to assert it wasn't written by AI?
- simondotau 9mo agoA more accurate version of the famous idiom: Those who can, do (and sometimes become teachers when they get older). Those who can’t become journalists.
- brcmthrowaway 9mo agoWhats the best PS2 game of all time?
- Cthulhu_ 9mo agoAccording to https://www.metacritic.com/browse/game/ps2/ https://www.metacritic.com/browse/game/ps2/, it's a tie between Tony Hawk's Pro Skater 3 and GTA 3. But it's a subjective question with a subjective answer.
- doublerabbit 9mo agoMetal Gear Solid 2: Sons of Liberty was my favorite, still is. Good story, and we are not to far off of having mechs controlling data flow with how Boston Dynamics is doing.
- aidenn0 9mo agoMildly surprised to see critical darling Shadow of the Colossus as low as position 40 (though at 91/100 not a bad rating).
- sbinnee 9mo agoI have a samurai game, Kengo 3, that I really liked on PS2. I still have that CD at my parents'. Can anyone recommend me a PS2 emulator?
- MobiusHorizons 9mo agoIf you have a Mac aethersx2 it works great on Apple silicon
- matthewfcarlson 9mo agoI’ve been meaning to start decompiling one of my favorite games of the era (Hulk Ultimate Destruction) after watching the decomp of other games. Perhaps this is a sign to start?
- zeroq 9mo agoI absolutely love the idea! As a movie geek I'm personally offended when someone says "oh, it's from 2017, it's an old movie!", or "I don't want to see anything from 90s, yuck" - and that's pretty common. Of course, "Nosferatu, eine Symphonie des Grauens" is not for everyone, but I firmly believe that you can watch the new Dune and Lawrence of Arabia back to back and have similarly enjoyable time. Fallout 1 and 2 are miles ahead of Fallout 3 (mostly due to uncanny valley phenomenon). Sure, the medium has changed a lot and modern consumers are used to more streamlined experience - my favorite example is the endless stream of Baldurs Gate "modern reimplementations" or rehashes, like Pilars of Eterniety that were too close to the original source, and then, suddenly, someone came up with Divinity, basically a Baldurs clone but with modern UI and QoL improvements. But consoles are different. This can truly be a window for the next generation to look back in the past.
- echelon 9mo ago> As a movie geek I'm personally offended when someone says "oh, it's from 2017, it's an old movie!", or "I don't want to see anything from 90s, yuck" - and that's pretty common. Now I feel old. I was thinking you might say 1960 or something.
- vkazanov 9mo agoI recently had a chat with a collegue who never heard of Quake. He also never watched Lock, Stock and 2 Smoking Barrels. And Half-life is just something-something-let-me-check. Oh, well...
- AtlasBarfed 9mo agoN64 as I understand it has some self rewriting code that makes this hard
- whywhywhywhy 9mo agoN64 is the one leading the way on recompilation Mario 64, Perfect Dark, Zelda, Mario Kart etc etc have all been done
- fleroviumna 9mo ago[dead]
- Decabytes 9mo agoI hope the steam machine 2.0 can be a good target for developers for years to come like the ps2 was
- coopykins 9mo agoMy all time favorite console. I keep coming back to it. This to me is a fantastic way to preserve gaming history.
- deleted 9mo ago[deleted]
- freeqaz 9mo agoI've been working on decompiling Dance Central 3 with AI and it's been insane. It's an Xbox 360 game that leverages the Kinect to track your body as your dance. It's a great game, but even with an emulator, it's still dependent on the Kinect hardware which is proprietary and has limited supply. Fortunately, a Debug build of this game was found on a dev unit (somehow), and that build does _not_ have crazy optimizations in place (Link-time Optimization) that make this feat impossible. I am not somebody that is deep on low level assembly, but I love this game (and Rock Band 3 which uses the same engine), and I was curious to see how far I could get by building AI tools to help with this. A project of this magnitude is ... a gargantuan task. Maybe 50k hours of human effort? Could be 100k? Hard to say. Anyway, I've been able to make significant progress by building tools for Claude Code to use and just letting Haiku rip. Honestly, it blows me away. Here is an example that is 100% decompiled now (they compile to the exact same code as in the binary the devs shipped). https://github.com/freeqaz/dc3-decomp/blob/test-objdiff-workflow/src/system/rndobj/TexBlender.cpp https://github.com/freeqaz/dc3-decomp/blob/test-objdiff-work... My branch has added over 1k functions now and worked on them[0]. Some is slop, but I wrote a skill that's been able to get the code quite decent with another pass. I even implemented vmx128 (custom 360-specific CPU instructions) into Ghidra and m2c to allow it to decompile more code. Blows my mind that this is possible with just hours of effort now! Anybody else played with this? 0: https://github.com/freeqaz/dc3-decomp/tree/test-objdiff-workflow https://github.com/freeqaz/dc3-decomp/tree/test-objdiff-work...
- MORPHOICES 9mo ago[dead]
- BrtByte 9mo agoWhat makes this exciting isn't just "PS2 games on PC", we already have that via PCSX2. The big deal is moving from emulation to reconstruction
- mdtrooper 9mo agoI think these kind of things will bring problems. Because Nint€ndo or $ony (and others game companies) have a big problem, their old games are awesome and if the people can play these games, then the people will be happy and will not need new games or new sagas. Because the problem is not the people playing old games, the real problem is the people will not pay for new games And we know that these companies have army of lawyers (and "envelopes" to distribute among politicians) to change the laws and make illegal something that is not illegal.
- slumberlust 9mo agoI have very little sympathy for these companies. They make access to these titles difficult if not impossible. Preservation matters and they have no interest in anything but the bottom line today.
- wiseowise 9mo agoIt’s interesting, because they could potentially make millions, if not billions by selling access to them as a subscription.
- le-mark 9mo agoInteresting. There was a similar project that did this for JVM bytecode. Xmlvm iirc.
- nmstoker 9mo agoEven with tooling isn't this kind of effort going to be enormously complicated, because, as I understand it, so many aspects of the behaviour of 8-bit and console games relied on all sorts of clever techniques, timing quirks and other side effects. Won't it be very difficult for the recompilation process or the dev to recognise when these are being relied on and to match the key behaviour? Or is the idea to pull out the basics of the game structure in a form that runs on modern hardware, then the dev fleshes out the missing parts.
- Cieric 9mo agoFrom the last time I looked at these recompilation projects, they take the assembly and basically convert each opcode back into an llvm instruction and then recompiled from there. This comes with a lot of caveats though, last time I looked at it we still needed a function map of some kind to tell us where all the functions are and you still needed to replace chunks of the generated code afterwards for things like rendering, sound, controller input, and just about anything that would interact with the world outside of the cpu. Edit: After some reading on the github page, it seems they are translating it to c++ instead of using llvm directly, but the original idea still holds. They aren't decompiling it to c++ that looks like original source code, it more like they're converting it to c++ that emulates the processor and gets statically compiled. So it's not really just a drop and go replacement like it sounds like it'd be, but it has so far enabled the recompilation of multiple n64 games. This seems like an extension into the ps2 space. Side note: The ps2 is a 32bit console with a 64bit alu (and some 128bit simd)[1]. So a lot of the weird tricks from the 8bit days weren't really used here. Not that there aren't weird tricks, just things like using undocumented instructions and racing the beam are less prevalent. I could be wrong here, I was growing up at this time not making games. All of this is just from research I've done in the past. Someone feel free to correct me if I'm wrong. [1] https://en.wikipedia.org/wiki/PlayStation_2_technical_specifications#Central_processing_unit https://en.wikipedia.org/wiki/PlayStation_2_technical_specif...
- aidenn0 9mo agoI suspect many PS2 games were mostly written in C or C++, which greatly simplifies things. Games that used the interface libraries from Sony for e.g. managing input will greatly simplify things as well. One notable exception is the Jak and Daxter games, which were written in GOAL[1], but have their own recompilation project. 1: https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
- ouraf 9mo agoOne thing I never understood on these recompilation projects is how static recomp translates the graphics between radically different architectures. Even with the supporting libraries, this translation shouldn't "just work"