CPS2 - This weekend I was bored and ...

Discussion in 'Arcade and Supergun' started by l_oliveira, Mar 15, 2010.

  1. Shou

    Shou Gutsy Member

    Joined:
    Nov 13, 2009
    Messages:
    465
    Likes Received:
    5
    I didn't know that! Link please :)
     
  2. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    Another one:

    Ultimate Ecology 931203 (Known outside of Japan as "ECO FIGHTERS")
    [​IMG]
    [​IMG]

    This one is actually different from the one from Raz since this was worked out from the original japanese version. His version is based on the EURO release.

    CAPCOM did "offset change" all of them to prevent attempts at decryption by file compare. Basically they put pieces of data and code of the game at different places in each regional variation of this game.

    Edit: Also this game was the most annoying and gruesome piece of (Ha Capcom ! I give that to you guys since it's intentional as it's part of the protection) spaghetti code I ever touched. :x
     
    Last edited: Sep 4, 2012
  3. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
    So in two different region exact same revision program roms they are absolutely identical for all data, only code differs? Is it code and not data that determines the ROM's region? I remember figuring out how to change Rockman on CPS1 by changing a byte in ROM to make it run in USA region.
     
  4. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    Well, there's several different situations. Towards the end of the life of the system, they got very lazy and stopped caring much.

    I know I had to do a LOT more of disassembly work on the early games because they're quite well protected.

    Because the games are coded in C, they use a compiler and a linker to build the binaries. With simple changes on the directives for the linker, they can move huge chunks of data or code within the program which make an "collision attack" (an attack where you just make a diff of the two files to figure what matches and what mismatches) impossible. Ultimate Ecology/Eco Warriors is one of the earliest games on the system and while the program is identical for all regions, the pointers and some of the data are not, exactly because the Capcom programmer changed the linker directives when he was making the builds.

    Sadly only after I disassembled the whole Japan rom I found out about this. So it was half a week of hobby time poured on this just to discover that the different region ROMs are offset by two bytes at about the middle of the image (the complete program image is 2MB).

    Games like Pocket Fighter, MvsC, VSHvsSF, the late Vampire games and HSF anniversary edition are vulnerable to the "collision attack" technique because several versions of them with the exact same code and different encryption keys do exist...

    Games like the Mitchell ones have the same key on all regions so the only way of hacking them into "phoenix" is IDA or something similar. Luckly the Mitchell games are hilariously simple on their programming ... So it took me like 4 hours to decrypt Choko.
     
  5. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    This one requires no explanation:
    [​IMG]
    [​IMG]
    [​IMG]

    :very_drunk:
     
  6. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
  7. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    Another weekend, another game:


    Brazil version:
    [​IMG]
    [​IMG]
    [​IMG]

    Mexico version:
    [​IMG]
    [​IMG]

    Hacked soundtest timer with a 6 byte patch I got rid of the timer and countdown text:
    [​IMG]

    Trivia: Ryu text says he's looking forward "anxiously" for the next battle. In the portuguese version it implies a female is saying that due to the way the language deals with genders on the words. Classical mistake. That's how the original encrypted one was so I decided to leave it alone. :very_drunk:

    Also I think the Mexican version it should be "ansioso" not "ans oso" lol. :highly_amused:
    (I think that has to do with the text having an accent in the i character and the game engine not supporting it...) ;)
     
    Last edited: Sep 10, 2012
  8. ASSEMbler

    ASSEMbler Administrator Staff Member

    Joined:
    Mar 13, 2004
    Messages:
    19,394
    Likes Received:
    995
  9. jep

    jep Member

    Joined:
    Mar 18, 2011
    Messages:
    7
    Likes Received:
    0
    :encouragement:
     
  10. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    This one is special for me...

    It's the first CPS2 game I've ever seen. Back in 1994, when it was new.

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    [​IMG]
    <CURSES>


    Edit:
    SHOW VERSION flag enables "FREE PLAY" at the SYSTEM CONFIGURATION:
    [​IMG]

    STOP VERSION flag enables CAPCOM's debugger:
    [​IMG]
    (I caused that crash through messing the stack to cause it to show up)
     
    Last edited: Sep 13, 2012
  11. la-li-lu-le-lo

    la-li-lu-le-lo ラリルレロ

    Joined:
    Feb 8, 2006
    Messages:
    5,657
    Likes Received:
    238
    I played Alien vs. Predator a couple weeks ago at a local arcade. That's a really fun game, and quite impressive for the time it was released.
     
  12. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
    This Show Version/Stop Version was dumped or did you mess with flags to enable those features?
     
  13. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    I had to disassemble the game completely to figure out where the non encrypted data was at, so yes I found the flags on the disassembly process. It was disabled and I enabled through editing the said flags.
     
  14. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    Currently W.I.P, for a member of another forum:

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Regional variations for this particular game are completely different from each other despites what version numbers say and this game has HORRIBLY complex coding.

    Only feasible "attack method" for this game was disassembly and manual identification of data/code sections.

    This game is a strong contestant for the most annoying piece of code I ever put my hands on.
    It's on par with Ultimate Ecology on the "convoluted coding" category.

    I think I exhausted all possible decryption related bugs on this game, but I'm unsure still.


    by the way, this is how CAPCOM debugger looks like on DDSOM:
    [​IMG]
     
    Last edited: Oct 2, 2012
  15. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
    I'm guessing you saw the debugger screen come up alot. Aren't you glad 68000 had that exception capability? Unlike the 65xx which will gladly try to run just about anything as code.
     
  16. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    That proves how the 68000 was designed to run complex stuff such as multi user Operating systems with memory protection and secure management/process isolation (as per 70s and 80s standards, of course).

    Yes I am glad. Also I am glad the 68000 uses word aligned instructions and they're aways an even number of bytes so code never loses alignment on the hexadecimal editor... ;)

    That in particular helps a TON when I am doing things I'm not 100% sure about...
     
    Last edited: Oct 2, 2012
  17. dlfrsilver

    dlfrsilver Newly Registered

    Joined:
    Nov 17, 2011
    Messages:
    2
    Likes Received:
    4
    Hello l_oliveira :)

    I have a question about the texts in DDTOD and DDSOM. I wanted to hack and retranslate the horrible french texts these games boast.
    But alas i was not able to find the texts. Are they crunched or hidden, or do i need to get the letters hex values ?

    Thanks if you can hint on this :)

    PS : last question, are all those CPS-2 games coded in C, or are there some coded in ASM 68000 ?

    Cheers !!!!
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page