I saw an interesting block that did figure in that card_game_number (probably just going to serve to obscure things more, but here it is):
Code:
int tf_change_step(int temp_step)
{// addr = 0x0041E424 -- defined in 'src/tfcard_cartoon.c' at line 157
int _v0; // _cfa_0
intOrPtr _v4; // _cfa_fffffffc
intOrPtr _t83; // _t83
_unknown_ _t84; // _t84
__t9 = __t9;
__a0 = __a0;
__sp = __sp + -8;
_v4 = _t83;
_t84 = __sp;
_v0 = __a0;
if(tfgame_less_than_5 != 0) {
if(_v0 < &tfcard_cartoon->card_game_num + -1) {
if(_v0 < 0) {
_v0 = 4;
}
} else {
_v0 = 4;
}
} else {
if(_v0 != -2) {
if(_v0 != -1) {
if( &tfcard_cartoon->card_game_num != _v0) {
if( &tfcard_cartoon->card_game_num + 1 != _v0) {
if( &tfcard_cartoon->card_game_num + 2 == _v0) {
_v0 = 2;
}
} else {
_v0 = 1;
}
} else {
_v0 = 0;
}
} else {
_v0 = &tfcard_cartoon->card_game_num + -1;
}
} else {
_v0 = &tfcard_cartoon->card_game_num + -2;
}
}
_t84 = _t84 + 8;
return _v0;
}
smasherimp, that sounds like a good idea. I think it would just be a matter of changing this line of machine code:
Code:
0x004136D4: beq v0,zero,L0041375C
To always branch to that address. I'll see if I can get the modified binary made.
Here's another interesting block:
Code:
int tfcard_game_check()
{// addr = 0x0041D6C0 -- defined in 'src/tfcard_cartoon.c' at line 43
char[255] temp_path; // _cfa_fffffed0
intOrPtr _v4; // _cfa_fffffffc
intOrPtr _v8; // _cfa_fffffff8
char** _v16; // _cfa_fffffff0
char* _v20; // _cfa_ffffffec
int _v24; // _cfa_ffffffe8
struct * _v28; // _cfa_ffffffe4
char** _v32; // _cfa_ffffffe0
char* _v36; // _cfa_ffffffdc
int _v40; // _cfa_ffffffd8
struct * _v44; // _cfa_ffffffd4
int _v48; // _cfa_ffffffd0
int i; // _cfa_fffffecc
int _v312; // _cfa_fffffec8
intOrPtr _v320; // _cfa_fffffec0
char* _v324; // _cfa_fffffebc
char _v2360; // _cfa_fffff6c8
intOrPtr _t271; // _t271
_unknown_ _t272; // _t272
__sp = __sp + -2376;
_v4 = __ra;
_v8 = _t271;
_t272 = __sp;
_v320 = 0x28880 + __t9;
_v44 = &card_game_cf;
_v324 = "card_game_number";
_v40 = 0;
_v36 = &_v2360;
_v32 = &(_v44->key[4]);
while(_v40 < 2036) {
*(_v36 + _v40) = *(_v32 + _v40) & 255;
_v40 = _v40 + 1;
}
&tfcard_cartoon->card_game_num = cfg_get_key_value_to_int();
_v28 = &card_game_cf;
_v324 = "card_game_work_path";
_v24 = 0;
_v20 = &_v2360;
_v16 = &(_v28->key[4]);
while(_v24 < 2036) {
*(_v20 + _v24) = *(_v16 + _v24) & 255;
_v24 = _v24 + 1;
}
&tfcard_cartoon->card_game_work_path = cfg_get_key_value();
if( &tfcard_cartoon->card_game_num >= 5) {
tfgame_less_than_5 = 1;
}
_v312 = 0;
while( &tfcard_cartoon->card_game_num < _v312) {
memset( &i, 0, 256);
sprintf( &i, "%sgame%d.fba");
if(access() == 0) {
_v312 = _v312 + 1;
continue;
} else {
_v48 = 0;
}
L19:
_t272 = _t272 + 2376;
return _v48;
}
_v312 = 0;
while( &tfcard_cartoon->card_game_num < _v312) {
memset( &i, 0, 256);
sprintf( &i, "%sgame%d.png");
if(access() == 0) {
_v312 = _v312 + 1;
continue;
} else {
_v48 = 0;
}
goto L19;
}
_v48 = 1;
goto L19;
}