diff --git a/src/lindbergh/config.c b/src/lindbergh/config.c index e7e9bab..e87380d 100644 --- a/src/lindbergh/config.c +++ b/src/lindbergh/config.c @@ -70,6 +70,24 @@ static int detectGame() return 0; } + if (strstr(program_invocation_name, "abc1080")) + { + config.game = ABC; + return 0; + } + + if (strstr(program_invocation_name, "drive")) + { + config.game = SRTV; + return 0; + } + + if (strstr(program_invocation_name, "dsr")) + { + config.game = RTUNED; + return 0; + } + config.game = UNKNOWN; return 1; } @@ -90,6 +108,12 @@ char *getGameName() return "The House of the Dead 4"; case LETS_GO_JUNGLE: return "Let's Go Jungle! Lost on the Island of Spice"; + case ABC: + return "After Burner Climax"; + case SRTV: + return "SEGA Race TV"; + case RTUNED: + return "R-Tuned Ultimate Street Racing"; default: return "Unknown Game"; } diff --git a/src/lindbergh/config.h b/src/lindbergh/config.h index 841605f..8befbf4 100644 --- a/src/lindbergh/config.h +++ b/src/lindbergh/config.h @@ -11,7 +11,10 @@ typedef enum THE_HOUSE_OF_THE_DEAD_4, OUTRUN, OUTRUN_TEST, - LETS_GO_JUNGLE + LETS_GO_JUNGLE, + ABC, + SRTV, + RTUNED } Game; typedef enum diff --git a/src/lindbergh/patch.c b/src/lindbergh/patch.c index 6d2b2f9..6d5beaa 100644 --- a/src/lindbergh/patch.c +++ b/src/lindbergh/patch.c @@ -70,7 +70,29 @@ int initPatch() switch (game) { - + case RTUNED: + { + detourFunction(0x08366846, amDongleInit); + detourFunction(0x08365301, amDongleIsAvailable); + detourFunction(0x08365cf7, amDongleUpdate); + } + break; + + case SRTV: + { + detourFunction(0x084d5b40, amDongleInit); + detourFunction(0x084d45f9, amDongleIsAvailable); + detourFunction(0x084d4fef, amDongleUpdate); + } + break; + + case ABC: + { + detourFunction(0x081e3424, amDongleInit); + detourFunction(0x081e3772, amDongleIsAvailable); + detourFunction(0x081e369e, amDongleUpdate); + } + break; case OUTRUN: { setVariable(0x0893a24c, 2); // amBackupDebugLevel @@ -119,4 +141,4 @@ int initPatch() } return 0; -} \ No newline at end of file +}