About Porting A Game into Another System

Discussion in 'Game Development General Discussion' started by AnonBaiter, Oct 21, 2015.

  1. AnonBaiter

    AnonBaiter Member

    Joined:
    Oct 21, 2015
    Messages:
    5
    Likes Received:
    0
    So, how can you port a game?

    I've had this question in my mind for a very long time. It might contribute to the fact that I have zero skills at programming complex languages, or maybe it is because I don't have any resources besides the game to begin with. I don't want to remake the entire thing from scratch; I want the game to be transitioned through another console instead, only through the same video game generation the console was released in(example: DC -> PS2).
    But that requires a lot of programming, reverse-engineering and hard work. I have to decide which console it will be ported from, which development kit to use, how to use that, etc. Basically, a port can be anything but an overhaul of the same game into another platform.

    Anyways, where can I start? Programming assembly, C++ or C? Any ideas?
     
  2. Borman

    Borman Xbox Archivist Staff Member

    Joined:
    Mar 24, 2005
    Messages:
    8,701
    Likes Received:
    661
    Location:
    New York, USA
    You would be re-writing the entire game if you dont have the source code.
     
    SILENT_Pavel likes this.
  3. AnonBaiter

    AnonBaiter Member

    Joined:
    Oct 21, 2015
    Messages:
    5
    Likes Received:
    0
    Which is exactly what I intend to do. If I don't have the source code for the game, I would attempt to reproduce it by coding bit by bit, while also reverse-engineering all the formats used for the game so that it could be compatible into the system I'm porting to.
    But then it would require lots of patience and a stronger CPU/GPU/RAM to do such a task.
     
  4. SILENT_Pavel

    SILENT_Pavel Peppy Member

    Joined:
    Jun 23, 2012
    Messages:
    358
    Likes Received:
    110
  5. arcadecollecting

    arcadecollecting Rising Member

    Joined:
    Aug 3, 2012
    Messages:
    66
    Likes Received:
    19
    Maybe start with a simple port to get the hang of it. Like, pick two systems that have the same CPU but different memory maps and video/audio hardware. Once you have a better idea of the challenges involved, you can move on to harder ports. IMO, starting right off on a PS2 to GameCube port, for example, is a lot to bite off.
     
  6. Mord.Fustang

    Mord.Fustang Mordimus Prime.

    Joined:
    Feb 17, 2013
    Messages:
    498
    Likes Received:
    69
    Location:
    Ontario, Canada
    Don't take this the wrong way, but if you have to ask where to start with this type of question, it's probably going to be a MUCH more difficult task than you were hoping for. @arcadecollecting has the right idea with starting with a simpler port. There's a reason you don't see homebrew console ports from DC to PS2 (for example) very often - it's not an easy task.
     
  7. AnonBaiter

    AnonBaiter Member

    Joined:
    Oct 21, 2015
    Messages:
    5
    Likes Received:
    0
    Thanks for the advice, guys. I'll start from the little things.
     
  8. Gemini

    Gemini Retro developer

    Joined:
    Apr 1, 2008
    Messages:
    384
    Likes Received:
    58
    Location:
    Italy
    Reproducing an engine can be quite an ordeal. My suggestion for a first port is to take some old game running on a simple processor (ex. NES), make a full disasseble of it, use macros to convert the code into a somewhat higher level language (assembly to C is a good start). From there document important pieces of the code, like hardware access and rewrite it to simulate to some degree the original hardware.

    While this approach still requires a ton documenting for hardware procedures, you barely need to spend time on figuring out 100% of the engine logic.

    Alternatively, you could try and get something a bit simpler, like some old DOS game. There is quite a good amount of disassemblers for those.
     
    gwald likes this.

Share This Page