Author Topic: A dilemma (Need opinions)  (Read 25852 times)

Offline iq_132

  • Administrator
  • *****
  • Posts: 3732
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
A dilemma (Need opinions)
« on: August 06, 2007, 11:17:44 PM »
I have a project that I've been working on in a fair amount of secrecy.  It started out as something
that piqued my interest, but I actually managed to work something out.

Now, I guess I should share that it is a program that takes CPS-2 program roms, and completely
decrypts them.  More or less like phoenix roms.  As you may or may not know, the phoenix games
have already caused quite a lot of problems with bootlegs, killing off 'needed' boards in order to
burn games that are more valuable or so that they can be advertised as 'never needing a battery
replacement.'

Now, the roms produced by my program do not work without some patching on real hardware. This is
not by my doing, but rather that as the battery dies, some things are changed with the board's
memory mapping.  The patches are fairly easy to figure out though.

Why I think I should release this is that it may prove useful for emulating cps2 on systems with
very low amounts of ram.  PSP, XBox, GP, etc, come to mind.  Also, as much as I do not like
game hacks myself, I know quite a lot of people who really enjoy taking a game and modifying
the hell out of it.  Having decrypted code & data in a single file would make this muuch easier.

So basically:

Cons:
Bootlegs
Killing needed (for dumping) boards

Pros:
Helping emulation for some systems
Helping game hackers

I'd really like to know people's opinions.  Should I release this or not?
« Last Edit: August 11, 2007, 12:21:41 AM by iq_132 »


Offline BisonSAS

  • Expert
  • *****
  • Posts: 216
  • Karma: +27/-0
  • [NGBRT]
    • NeoGeo BR Team
Re: A dilema (Need opinions)
« Reply #1 on: August 07, 2007, 01:11:50 AM »
Release, because the bootlegs already using the Phoenix ROMs.

This tool is very util to make Translations ROMs. :biggrin:

You planed make similar program for CPS3 ROMs? :confused:

Offline jens.l

  • Newbies
  • *
  • Posts: 17
  • Karma: +0/-0
Re: A dilema (Need opinions)
« Reply #2 on: August 07, 2007, 01:49:36 AM »
Hi IQ you have done a great job with creating this tool. It will help the Arm and MIPS emulation programmer much with this tool and only for this clientele.I self have a Gizmondo with not so much memory, so from this stand point release it, but i think only for the real developers for emulators.(like Oopsware, Masterall, Reesy, Franxis and Notaz and some others that i forgot)

In the hands from noobs like me is the tool worthless, but in the hand from the right peoples it will be fine for all.
And maybe you feel better because,your tool is in the right hand.
 
Thats are my thoughts and opinion.
regards
Jens
« Last Edit: August 07, 2007, 01:55:37 AM by jens.l »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3732
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: A dilema (Need opinions)
« Reply #3 on: August 07, 2007, 08:42:27 PM »
This tool is very util to make Translations ROMs. :biggrin:
The data in the roms is not encrypted.  So it should be easy enough to translate them.
As for changing the region, that's also simple enough. Change a single byte at 0xC2 (usually) and it will generally change the region.
Quote
You planed make similar program for CPS3 ROMs? :confused:
CPS3 shouldn't need something like this.  Data and opcodes are encrypted and decrypted.  With CPS-2 the opcodes are encrypted and when you decrypt them, it destroys the data.  So you have to keep two copies in ram.

I self have a Gizmondo
That looks like an interesting device. 64mb of ram, 400mhz, etc.  Very nice platform for emulation.


Offline BisonSAS

  • Expert
  • *****
  • Posts: 216
  • Karma: +27/-0
  • [NGBRT]
    • NeoGeo BR Team
Re: A dilema (Need opinions)
« Reply #4 on: August 07, 2007, 10:50:47 PM »
The data in the roms is not encrypted.  So it should be easy enough to translate them.
As for changing the region, that's also simple enough. Change a single byte at 0xC2 (usually) and it will generally change the region.
The text data is not encrypted. I know. :wink: Some games is hard (for me) change the region. Like SFA3. Other problem is MEMORY CHECK.


Offline iq_132

  • Administrator
  • *****
  • Posts: 3732
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: A dilema (Need opinions)
« Reply #5 on: August 08, 2007, 06:21:54 AM »
My program doesn't fix the memory check.  Most games expect calculate their crc using the data & encrypted opcodes.  This means that you will get a bad memory check.  However, I do know how to fix it, but it's an involved process (using a custom fba build).


Offline CaptainCPS

  • FBNeo Dev
  • ******
  • Posts: 1513
  • Karma: +127/-0
  • FB Alpha Team
    • CaptainCPS's Home
Re: A dilema (Need opinions)
« Reply #6 on: August 08, 2007, 12:33:24 PM »
I would like to test that program somewhere in the future when I get my time back to work on emulation stuff again , so in my case it would be good to have other ways to achieve emulation, is interesting and we learn about new stuff, maybe that will help for an alternate method of emulation for other systems, or just experiment with the system and get more information that maybe was not currently known.

Btw, congrats IQ for making this interesting tool, it really seems pretty cool.  :biggrin:

SeeYaa!
:biggrin:


Offline iq_132

  • Administrator
  • *****
  • Posts: 3732
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: A dilemma (Need opinions)
« Reply #7 on: August 14, 2007, 09:46:11 PM »
In order to hack/fix the crc:

In burn/sek.cpp

Find this :

inline static unsigned short ReadWord(unsigned int a)
{
   unsigned char* pr;

   a &= 0xFFFFFF;


Add this after:

if ((a & ~0x0f) == 0xd0)   // you can also do if (a < 0xdf && a > 0xcf) or whatever you need
{
   // PC -> Position, A -> Address (that's being read), D0 (D0 Register), D1 (D1 Register)
   bprintf (PRINT_NORMAL, _T("PC, %8.8x, A: %8.8x, D0 %8.8x, D1 %8.8x\n"), SekDbgGetRegister(SEK_REG_PC), a, SekDbgGetRegister(SEK_REG_D0), SekDbgGetRegister(SEK_REG_D1));
}


you MUST build a debug fba.  PC is the position of the rom (PC-2, PC-4?) that is actually reading
this value.  It is suggested you use the 68k debugger to tell you which Register(s) actually hold
the CRC the program roms have found (the wrong/right ones).  I've defaulted it to tell you
what D0 & D1 contain.


Offline iq_132

  • Administrator
  • *****
  • Posts: 3732
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: A dilemma (Need opinions)
« Reply #8 on: August 18, 2007, 11:44:56 AM »
I've decided to go ahead and release this program.  But I want to do it in a controlled way.
If you want a copy, please PM me for it.


Offline Skylar

  • New Member
  • *
  • Posts: 3
  • Karma: +0/-0
Re: A dilemma (Need opinions)
« Reply #9 on: September 28, 2007, 11:40:37 AM »
Woot~

Naked XMVSF and MSHVSF :)

-on a side note does this mean it is now possible to change the music in the games?

- skylar