GP32 How Do You Read The Pduid?


dunno but if you want i have a method (via gplink) that works..
not using darkfader's gps2 (that i didn't manage to work, really)
 
Nah, I'm looking for a way to read it from inside a game. I want to experiment with my own copy protection, incase I want to sell any future games I make.
 
You can read it from the eeprom via i2c. It's encrypted by a very light XOR algorithm,. I've spotted routines in one of the open source file managers (forgot it's name).

Edit: Started with a "G" I think...
 
I want to experiment with my own copy protection, incase I want to sell any future games I make.
using pduid for this is a very bad choice : it's possible to modify it! (-> using the same pduid on several gp32 and the same encryption will work on all those gp32s)
prefer to use smcid... (you also can find how to do it on the gpfm 1.5 sources..)
 
I'm not looking for the be all and end all.. I'm just looking for an easy way to stop the same executable running on several unmodified GP32s. Plus, using the SMCID would not work since it would stop the user from being able to run the game from multiple SMCs.
 
I cannot find the sources to that application. Does anyone have them. Or just know how to do this.. I've been looking for like 5 days now and come up with nothing.
 
Damn it! To grab the ID he's calling a Macro or function called _gp_dev_id_get(), but it doesn't exist in his code. Nor does it exist in the GP32 SDK. :(

Why are things never straight forward.
 
Do you mean this function?

ERR_CODE GpDeviceIDGet(unsigned char * data)
{
char sn_encode_stream[8] = {"SANGHYUK"};
int i,j;
ERR_CODE err = GpE2PROMRead(DEVICE_SN_POS, DEVICE_SN_LEN, data);
if ( err == SM_OK )
{
j = 0;
for ( i=0; i<DEVICE_SN_LEN; i++ )
{
data ^= sn_encode_stream[j++];
j %= sizeof(sn_encode_stream);
}
}
return err;
}

Pretty much all it is... and there's loads of i2c E2 routines around...
 
Eeprom stuff is located in libgpstdlib.a.. swi #0105 for read/writing the eeprom. There was a thread earlier that described the usage of the particular swi..
 
Back
Top