News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: dumb question Is it even possible to make unofficial port for old ps1 game ?  (Read 561 times)

CainIwakura

  • Newbie
  • *
  • Posts: 1
    • View Profile
I'm newbie into the romhacking with only 1 month experience so far, but there's this dumb (maybe) question in my head is it even possible to make a port of old game (let's say ps1 games) to be playable on maybe pc or phone ?
if it's possible what do you even need to make it ?

Risae

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
Of course its possible, it would just take a shitton of reverse engineering and thousands of hours of time to accomplish.
Best examples for this is the SM64 Windows port:

https://www.pcgamer.com/mario-64-pc-port-released/

FAST6191

  • Hero Member
  • *****
  • Posts: 2898
    • View Profile
As mentioned it is a mountain of work to do a port. Generally speaking code when it is compiled (which the PS1 often was) does not go back to being code (see stuff like the halting problem), and you lose a bit of data in the process. This is getting to be less true as time goes on -- there are little things that you can observe that speed things up, as such decompilation as it is called is right at the forefront of computer science research (as in I can easily see people doing it for phd research projects for many years yet, and such places are often where we get the advances in it) but we are nowhere near anything like a one click solution and may never be (outside of serious AI anyway). The PS1's hardware is also a less common target for such efforts, though as noted above the Mario 64 stuff happened and the N64 is similarly not popular hardware to look at.
Technically you don't need to decompile it either as you can figure out all the mechanics of the game (for the mario 64 stuff that is every move you can do (including water, flying), how the controls affect said moves, every collision/hit/interaction with an object, every object behaviour, every enemy behaviour, and how all the levels work, music works, graphics work, every animation and so on and so on) and replicate that in something else. Nobody really does that for PS1 era games though -- it is not so bad for an old arcade game, C64 game or something but for most things in the PS1 era where go anywhere, do anything and anything can happen at any point then yeah. People tend to reserve such efforts for things like document formats, and even then it is usually incomplete (see the fun and games opening microsoft office formats in things that are not from Microsoft, and indeed things that are from microsoft but several versions down the line).

If you are aiming for a PC or something then it would be far quicker to go with emulation. If you are all about one game then you can probably do all the fun high res texture replacement, figure out what widescreen needs for this and maybe kick controls to something more pleasant than a control pad if needs be.

Gemini

  • Hero Member
  • *****
  • Posts: 2024
  • 時を越えよう、そして彼女の元に戻ろう
    • View Profile
    • Apple of Eden
Very possible even without source, here's proof of concept with statically recompiled code and no real decompilation involved whatsoever:




Not an emulator or the official bootleg-ish PC port either.
I am the lord, you all know my name, now. I got it all: cash, money, and fame.

Jorpho

  • Hero Member
  • *****
  • Posts: 4549
  • The cat screams with the voice of a man.
    • View Profile
Very possible even without source, here's proof of concept with statically recompiled code and no real decompilation involved whatsoever:
Isn't that pretty much the same as emulation in the end, though?  I mean, it's not like the recompiled code in there is at all human-readable, is it?
This signature is an illusion and is a trap devised by Satan. Go ahead dauntlessly! Make rapid progres!

Gemini

  • Hero Member
  • *****
  • Posts: 2024
  • 時を越えよう、そして彼女の元に戻ろう
    • View Profile
    • Apple of Eden
Isn't that pretty much the same as emulation in the end, though?  I mean, it's not like the recompiled code in there is at all human-readable, is it?
Not at all, since it's still all native code with actual function names and can be injected with new stuff as it's C/++. It also performs generally a lot better than emulation and can be greatly improved with, say, actual zbuffer support and float primitives. Basically PC ports with all the benefits.
I am the lord, you all know my name, now. I got it all: cash, money, and fame.