mirror of
https://github.com/dborth/vbagx.git
synced 2024-11-25 20:16:53 +01:00
Teenage Mutant Ninja Turtles (more games) and Mortal Kombat (lots of added characters, distinguishes between low and high attacks, standard moves now have normal controls).
This commit is contained in:
parent
e8f54e3d56
commit
b02f07b457
@ -30,14 +30,14 @@
|
|||||||
#include "gba/bios.h"
|
#include "gba/bios.h"
|
||||||
#include "gba/GBAinline.h"
|
#include "gba/GBAinline.h"
|
||||||
|
|
||||||
/*char DebugStr[50] = "";
|
char DebugStr[50] = "";
|
||||||
|
|
||||||
void DebugPrintf(const char *format, ...) {
|
void DebugPrintf(const char *format, ...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start( args, format );
|
va_start( args, format );
|
||||||
vsprintf( DebugStr, format, args );
|
vsprintf( DebugStr, format, args );
|
||||||
va_end( args );
|
va_end( args );
|
||||||
}*/
|
}
|
||||||
|
|
||||||
u32 LegoStarWars1Input(unsigned short pad) {
|
u32 LegoStarWars1Input(unsigned short pad) {
|
||||||
u32 J = StandardMovement(pad) | DecodeGamecube(pad) | DPadWASD(pad);
|
u32 J = StandardMovement(pad) | DecodeGamecube(pad) | DPadWASD(pad);
|
||||||
@ -153,7 +153,7 @@ u32 LegoStarWars2Input(unsigned short pad) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
u32 TMNTInput(unsigned short pad) {
|
u32 TMNTInput(unsigned short pad) {
|
||||||
u32 J = StandardMovement(pad) | StandardDPad(pad) | DecodeClassic(pad) | DecodeKeyboard(pad) | DecodeGamecube(pad);
|
u32 J = StandardMovement(pad) | StandardDPad(pad) | DecodeKeyboard(pad);
|
||||||
static u32 LastDir = VBA_RIGHT;
|
static u32 LastDir = VBA_RIGHT;
|
||||||
static bool wait = false;
|
static bool wait = false;
|
||||||
static int holdcount = 0;
|
static int holdcount = 0;
|
||||||
@ -261,6 +261,346 @@ u32 TMNTInput(unsigned short pad) {
|
|||||||
return J;
|
return J;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 TMNT1Input(unsigned short pad) {
|
||||||
|
u32 J = StandardMovement(pad) | StandardDPad(pad) | DecodeKeyboard(pad);
|
||||||
|
static u32 LastDir = VBA_RIGHT;
|
||||||
|
static bool wait = false;
|
||||||
|
static int holdcount = 0;
|
||||||
|
bool Jump=0, Attack=0, SpinKick=0, Roll=0, Pause=0, Select=0;
|
||||||
|
|
||||||
|
#ifdef HW_RVL
|
||||||
|
WPADData * wp = WPAD_Data(pad);
|
||||||
|
if (wp->exp.type == WPAD_EXP_NUNCHUK) {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5);
|
||||||
|
SpinKick = (fabs(wp->exp.nunchuk.gforce.x)> 0.5);
|
||||||
|
Roll = (wp->btns_h & WPAD_NUNCHUK_BUTTON_Z || wp->btns_h & WPAD_NUNCHUK_BUTTON_C);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
// N/A
|
||||||
|
}
|
||||||
|
} else if (wp->exp.type == WPAD_EXP_CLASSIC) {
|
||||||
|
J |= StandardDPad(pad);
|
||||||
|
Jump = (wp->btns_h & WPAD_CLASSIC_BUTTON_B);
|
||||||
|
Attack = (wp->btns_h & WPAD_CLASSIC_BUTTON_A);
|
||||||
|
SpinKick = (wp->btns_h & WPAD_CLASSIC_BUTTON_X);
|
||||||
|
Pause = (wp->btns_h & WPAD_CLASSIC_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_CLASSIC_BUTTON_MINUS);
|
||||||
|
Roll = (wp->btns_h & (WPAD_CLASSIC_BUTTON_FULL_L | WPAD_CLASSIC_BUTTON_FULL_R | WPAD_CLASSIC_BUTTON_ZL | WPAD_CLASSIC_BUTTON_ZR));
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_CLASSIC_BUTTON_Y) {
|
||||||
|
// N/A
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
//N/A
|
||||||
|
}
|
||||||
|
SpinKick = (wp->btns_h & WPAD_BUTTON_1);
|
||||||
|
Roll = (wp->btns_h & WPAD_BUTTON_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
u32 gc = PAD_ButtonsHeld(pad);
|
||||||
|
u32 released = PAD_ButtonsUp(pad);
|
||||||
|
// DPad moves
|
||||||
|
if (gc & PAD_BUTTON_UP)
|
||||||
|
J |= VBA_UP;
|
||||||
|
if (gc & PAD_BUTTON_DOWN)
|
||||||
|
J |= VBA_DOWN;
|
||||||
|
if (gc & PAD_BUTTON_LEFT)
|
||||||
|
J |= VBA_LEFT;
|
||||||
|
if (gc & PAD_BUTTON_RIGHT)
|
||||||
|
J |= VBA_RIGHT;
|
||||||
|
// Jump
|
||||||
|
if (gc & PAD_BUTTON_A) J |= VBA_BUTTON_A;
|
||||||
|
// Swap turtles, hold for super family move
|
||||||
|
if (gc & PAD_BUTTON_B) {
|
||||||
|
// N/A
|
||||||
|
}
|
||||||
|
// Attack
|
||||||
|
if (gc & PAD_BUTTON_X) Attack = true;
|
||||||
|
// Spin kick
|
||||||
|
if (gc & PAD_BUTTON_Y) SpinKick = true;
|
||||||
|
// Pause
|
||||||
|
if (gc & PAD_BUTTON_START) Pause = true;
|
||||||
|
// Select
|
||||||
|
if (gc & PAD_TRIGGER_Z) Select = true;
|
||||||
|
// Roll
|
||||||
|
if (gc & PAD_TRIGGER_L || gc & PAD_TRIGGER_R) Roll = true;
|
||||||
|
|
||||||
|
if (Jump) J |= VBA_BUTTON_A;
|
||||||
|
if (Attack || SpinKick) J |= VBA_BUTTON_B;
|
||||||
|
if (Pause) J |= VBA_BUTTON_START;
|
||||||
|
if (Select) J |= VBA_BUTTON_SELECT;
|
||||||
|
|
||||||
|
if (J & VBA_RIGHT) LastDir = VBA_RIGHT;
|
||||||
|
else if (J & VBA_LEFT) LastDir = VBA_LEFT;
|
||||||
|
return J;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 TMNT2Input(unsigned short pad) {
|
||||||
|
u32 J = StandardMovement(pad) | StandardDPad(pad) | DecodeKeyboard(pad);
|
||||||
|
static u32 LastDir = VBA_RIGHT;
|
||||||
|
static bool wait = false;
|
||||||
|
static int holdcount = 0;
|
||||||
|
bool Jump=0, Attack=0, SpinKick=0, Roll=0, Pause=0, Select=0;
|
||||||
|
|
||||||
|
#ifdef HW_RVL
|
||||||
|
WPADData * wp = WPAD_Data(pad);
|
||||||
|
if (wp->exp.type == WPAD_EXP_NUNCHUK) {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5);
|
||||||
|
SpinKick = (fabs(wp->exp.nunchuk.gforce.x)> 0.5);
|
||||||
|
Roll = (wp->btns_h & WPAD_NUNCHUK_BUTTON_Z || wp->btns_h & WPAD_NUNCHUK_BUTTON_C);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
// N/A
|
||||||
|
}
|
||||||
|
} else if (wp->exp.type == WPAD_EXP_CLASSIC) {
|
||||||
|
J |= StandardDPad(pad);
|
||||||
|
Jump = (wp->btns_h & WPAD_CLASSIC_BUTTON_B);
|
||||||
|
Attack = (wp->btns_h & WPAD_CLASSIC_BUTTON_A);
|
||||||
|
SpinKick = (wp->btns_h & WPAD_CLASSIC_BUTTON_X);
|
||||||
|
Pause = (wp->btns_h & WPAD_CLASSIC_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_CLASSIC_BUTTON_MINUS);
|
||||||
|
Roll = (wp->btns_h & (WPAD_CLASSIC_BUTTON_FULL_L | WPAD_CLASSIC_BUTTON_FULL_R | WPAD_CLASSIC_BUTTON_ZL | WPAD_CLASSIC_BUTTON_ZR));
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_CLASSIC_BUTTON_Y) {
|
||||||
|
// N/A
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
//N/A
|
||||||
|
}
|
||||||
|
SpinKick = (wp->btns_h & WPAD_BUTTON_1);
|
||||||
|
Roll = (wp->btns_h & WPAD_BUTTON_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
u32 gc = PAD_ButtonsHeld(pad);
|
||||||
|
u32 released = PAD_ButtonsUp(pad);
|
||||||
|
// DPad moves
|
||||||
|
if (gc & PAD_BUTTON_UP)
|
||||||
|
J |= VBA_UP;
|
||||||
|
if (gc & PAD_BUTTON_DOWN)
|
||||||
|
J |= VBA_DOWN;
|
||||||
|
if (gc & PAD_BUTTON_LEFT)
|
||||||
|
J |= VBA_LEFT;
|
||||||
|
if (gc & PAD_BUTTON_RIGHT)
|
||||||
|
J |= VBA_RIGHT;
|
||||||
|
// Jump
|
||||||
|
if (gc & PAD_BUTTON_A) J |= VBA_BUTTON_A;
|
||||||
|
// Swap turtles, hold for super family move
|
||||||
|
if (gc & PAD_BUTTON_B) {
|
||||||
|
// N/A
|
||||||
|
}
|
||||||
|
// Attack
|
||||||
|
if (gc & PAD_BUTTON_X) Attack = true;
|
||||||
|
// Spin kick
|
||||||
|
if (gc & PAD_BUTTON_Y) SpinKick = true;
|
||||||
|
// Pause
|
||||||
|
if (gc & PAD_BUTTON_START) Pause = true;
|
||||||
|
// Select
|
||||||
|
if (gc & PAD_TRIGGER_Z) Select = true;
|
||||||
|
// Roll
|
||||||
|
if (gc & PAD_TRIGGER_L || gc & PAD_TRIGGER_R) Roll = true;
|
||||||
|
|
||||||
|
if (Jump) J |= VBA_BUTTON_A;
|
||||||
|
if (Attack) J |= VBA_BUTTON_B;
|
||||||
|
if (SpinKick || Roll) J |= VBA_BUTTON_B | VBA_BUTTON_A;
|
||||||
|
if (Pause) J |= VBA_BUTTON_START;
|
||||||
|
if (Select) J |= VBA_BUTTON_SELECT;
|
||||||
|
|
||||||
|
if (J & VBA_RIGHT) LastDir = VBA_RIGHT;
|
||||||
|
else if (J & VBA_LEFT) LastDir = VBA_LEFT;
|
||||||
|
return J;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 TMNT3Input(unsigned short pad) {
|
||||||
|
u32 J = StandardMovement(pad) | StandardDPad(pad) | DecodeKeyboard(pad);
|
||||||
|
static u32 LastDir = VBA_RIGHT;
|
||||||
|
static bool wait = false;
|
||||||
|
static int holdcount = 0;
|
||||||
|
bool Jump=0, Attack=0, SpinKick=0, Roll=0, Pause=0, Select=0;
|
||||||
|
|
||||||
|
#ifdef HW_RVL
|
||||||
|
WPADData * wp = WPAD_Data(pad);
|
||||||
|
if (wp->exp.type == WPAD_EXP_NUNCHUK) {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5);
|
||||||
|
SpinKick = (fabs(wp->exp.nunchuk.gforce.x)> 0.5);
|
||||||
|
Roll = (wp->btns_h & WPAD_NUNCHUK_BUTTON_Z || wp->btns_h & WPAD_NUNCHUK_BUTTON_C);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
} else if (wp->exp.type == WPAD_EXP_CLASSIC) {
|
||||||
|
J |= StandardDPad(pad);
|
||||||
|
Jump = (wp->btns_h & WPAD_CLASSIC_BUTTON_B);
|
||||||
|
Attack = (wp->btns_h & WPAD_CLASSIC_BUTTON_A);
|
||||||
|
SpinKick = (wp->btns_h & WPAD_CLASSIC_BUTTON_X);
|
||||||
|
Pause = (wp->btns_h & WPAD_CLASSIC_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_CLASSIC_BUTTON_MINUS);
|
||||||
|
Roll = (wp->btns_h & (WPAD_CLASSIC_BUTTON_FULL_L | WPAD_CLASSIC_BUTTON_FULL_R | WPAD_CLASSIC_BUTTON_ZL | WPAD_CLASSIC_BUTTON_ZR));
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_CLASSIC_BUTTON_Y) {
|
||||||
|
J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
SpinKick = (wp->btns_h & WPAD_BUTTON_1);
|
||||||
|
Roll = (wp->btns_h & WPAD_BUTTON_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
u32 gc = PAD_ButtonsHeld(pad);
|
||||||
|
u32 released = PAD_ButtonsUp(pad);
|
||||||
|
// DPad moves
|
||||||
|
if (gc & PAD_BUTTON_UP)
|
||||||
|
J |= VBA_UP;
|
||||||
|
if (gc & PAD_BUTTON_DOWN)
|
||||||
|
J |= VBA_DOWN;
|
||||||
|
if (gc & PAD_BUTTON_LEFT)
|
||||||
|
J |= VBA_LEFT;
|
||||||
|
if (gc & PAD_BUTTON_RIGHT)
|
||||||
|
J |= VBA_RIGHT;
|
||||||
|
// Jump
|
||||||
|
if (gc & PAD_BUTTON_A) J |= VBA_BUTTON_A;
|
||||||
|
// Swap turtles
|
||||||
|
if (gc & PAD_BUTTON_B) {
|
||||||
|
J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
// Attack
|
||||||
|
if (gc & PAD_BUTTON_X) Attack = true;
|
||||||
|
// Spin kick
|
||||||
|
if (gc & PAD_BUTTON_Y) SpinKick = true;
|
||||||
|
// Pause
|
||||||
|
if (gc & PAD_BUTTON_START) Pause = true;
|
||||||
|
// Select
|
||||||
|
if (gc & PAD_TRIGGER_Z) Select = true;
|
||||||
|
// Roll
|
||||||
|
if (gc & PAD_TRIGGER_L || gc & PAD_TRIGGER_R) Roll = true;
|
||||||
|
|
||||||
|
if (Jump || Roll) J |= VBA_BUTTON_A;
|
||||||
|
if (Attack || SpinKick) J |= VBA_BUTTON_B;
|
||||||
|
if (Pause) J |= VBA_BUTTON_SELECT;
|
||||||
|
if (Select) J |= VBA_BUTTON_START;
|
||||||
|
|
||||||
|
if (J & VBA_RIGHT) LastDir = VBA_RIGHT;
|
||||||
|
else if (J & VBA_LEFT) LastDir = VBA_LEFT;
|
||||||
|
return J;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 TMNTGBAInput(unsigned short pad) {
|
||||||
|
u32 J = StandardMovement(pad) | StandardDPad(pad) | DecodeKeyboard(pad);
|
||||||
|
static u32 LastDir = VBA_RIGHT;
|
||||||
|
static bool wait = false;
|
||||||
|
static int holdcount = 0;
|
||||||
|
bool Jump=0, Attack=0, SpinKick=0, SpecialMove=0, Pause=0, Select=0;
|
||||||
|
|
||||||
|
#ifdef HW_RVL
|
||||||
|
WPADData * wp = WPAD_Data(pad);
|
||||||
|
if (wp->exp.type == WPAD_EXP_NUNCHUK) {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5) || (wp->btns_h & WPAD_BUTTON_B);
|
||||||
|
SpinKick = (fabs(wp->exp.nunchuk.gforce.x)> 0.5);
|
||||||
|
SpecialMove = (wp->btns_h & WPAD_NUNCHUK_BUTTON_Z);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
//J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
} else if (wp->exp.type == WPAD_EXP_CLASSIC) {
|
||||||
|
Jump = (wp->btns_h & WPAD_CLASSIC_BUTTON_B);
|
||||||
|
Attack = (wp->btns_h & WPAD_CLASSIC_BUTTON_A);
|
||||||
|
SpinKick = (wp->btns_h & WPAD_CLASSIC_BUTTON_X);
|
||||||
|
Pause = (wp->btns_h & WPAD_CLASSIC_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_CLASSIC_BUTTON_MINUS);
|
||||||
|
SpecialMove = (wp->btns_h & (WPAD_CLASSIC_BUTTON_FULL_L | WPAD_CLASSIC_BUTTON_FULL_R | WPAD_CLASSIC_BUTTON_ZL | WPAD_CLASSIC_BUTTON_ZR));
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_CLASSIC_BUTTON_Y) {
|
||||||
|
//J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Jump = (wp->btns_h & WPAD_BUTTON_A);
|
||||||
|
Attack = (fabs(wp->gforce.x)> 1.5) || (wp->btns_h & WPAD_BUTTON_B);
|
||||||
|
Pause = (wp->btns_h & WPAD_BUTTON_PLUS);
|
||||||
|
Select = (wp->btns_h & WPAD_BUTTON_MINUS);
|
||||||
|
// Swap Turtles or super turtle summon
|
||||||
|
if (wp->btns_h & WPAD_BUTTON_B) {
|
||||||
|
//J |= VBA_BUTTON_START;
|
||||||
|
}
|
||||||
|
SpinKick = (wp->btns_h & WPAD_BUTTON_1);
|
||||||
|
SpecialMove = (wp->btns_h & WPAD_BUTTON_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
u32 gc = PAD_ButtonsHeld(pad);
|
||||||
|
u32 released = PAD_ButtonsUp(pad);
|
||||||
|
// DPad moves
|
||||||
|
if (gc & PAD_BUTTON_UP)
|
||||||
|
J |= VBA_UP;
|
||||||
|
if (gc & PAD_BUTTON_DOWN)
|
||||||
|
J |= VBA_DOWN;
|
||||||
|
if (gc & PAD_BUTTON_LEFT)
|
||||||
|
J |= VBA_LEFT;
|
||||||
|
if (gc & PAD_BUTTON_RIGHT)
|
||||||
|
J |= VBA_RIGHT;
|
||||||
|
// Jump
|
||||||
|
if (gc & PAD_BUTTON_A) J |= VBA_BUTTON_A;
|
||||||
|
// Swap turtles
|
||||||
|
if (gc & PAD_BUTTON_B) {
|
||||||
|
//J |= VBA_BUTTON_B;
|
||||||
|
}
|
||||||
|
// Attack
|
||||||
|
if (gc & PAD_BUTTON_X) Attack = true;
|
||||||
|
// Spin kick
|
||||||
|
if (gc & PAD_BUTTON_Y) SpinKick = true;
|
||||||
|
// Pause
|
||||||
|
if (gc & PAD_BUTTON_START) Pause = true;
|
||||||
|
// Select
|
||||||
|
if (gc & PAD_TRIGGER_Z) Select = true;
|
||||||
|
// SpecialMove
|
||||||
|
if (gc & PAD_TRIGGER_L || gc & PAD_TRIGGER_R) SpecialMove = true;
|
||||||
|
|
||||||
|
if (Jump) J |= VBA_BUTTON_A;
|
||||||
|
if (Attack) J |= VBA_BUTTON_B;
|
||||||
|
if (SpinKick) J |= VBA_BUTTON_R;
|
||||||
|
if (Pause) J |= VBA_BUTTON_START;
|
||||||
|
if (Select) J |= VBA_BUTTON_SELECT;
|
||||||
|
if (SpecialMove) {
|
||||||
|
J |= VBA_BUTTON_R | VBA_BUTTON_A; // CAKTODO
|
||||||
|
}
|
||||||
|
|
||||||
|
if (J & VBA_RIGHT) LastDir = VBA_RIGHT;
|
||||||
|
else if (J & VBA_LEFT) LastDir = VBA_LEFT;
|
||||||
|
return J;
|
||||||
|
}
|
||||||
|
|
||||||
u32 HarryPotter1GBCInput(unsigned short pad) {
|
u32 HarryPotter1GBCInput(unsigned short pad) {
|
||||||
u32 J = StandardMovement(pad) | StandardDPad(pad) | DPadWASD(pad) | DPadArrowKeys(pad)
|
u32 J = StandardMovement(pad) | StandardDPad(pad) | DPadWASD(pad) | DPadArrowKeys(pad)
|
||||||
| DecodeGamecube(pad);
|
| DecodeGamecube(pad);
|
||||||
|
@ -49,6 +49,10 @@
|
|||||||
#define HARRYPOTTER5 gid('B','J','X')
|
#define HARRYPOTTER5 gid('B','J','X')
|
||||||
#define QUIDDITCH gid('B','H','P')
|
#define QUIDDITCH gid('B','H','P')
|
||||||
|
|
||||||
|
#define TMNT1 0xFF000B
|
||||||
|
#define TMNT2 0xFF000C
|
||||||
|
#define TMNT3 0xFF000D
|
||||||
|
#define TMNTGBA gid('B','N','T')
|
||||||
#define TMNT gid('B','E','X')
|
#define TMNT gid('B','E','X')
|
||||||
|
|
||||||
#define RESIDENTEVIL gid('B','I','O')
|
#define RESIDENTEVIL gid('B','I','O')
|
||||||
@ -84,6 +88,8 @@
|
|||||||
|
|
||||||
#define ONEPIECE gid('B','O','N')
|
#define ONEPIECE gid('B','O','N')
|
||||||
|
|
||||||
|
#define MARBLEMADNESS 0xFF000A
|
||||||
|
|
||||||
u8 gbReadMemory(register u16 address);
|
u8 gbReadMemory(register u16 address);
|
||||||
void gbWriteMemory(register u16 address, register u8 value);
|
void gbWriteMemory(register u16 address, register u8 value);
|
||||||
|
|
||||||
@ -112,6 +118,9 @@ u32 LegoStarWars1Input(unsigned short pad);
|
|||||||
u32 LegoStarWars2Input(unsigned short pad);
|
u32 LegoStarWars2Input(unsigned short pad);
|
||||||
u32 MarioKartInput(unsigned short pad);
|
u32 MarioKartInput(unsigned short pad);
|
||||||
u32 MK1Input(unsigned short pad);
|
u32 MK1Input(unsigned short pad);
|
||||||
|
u32 MK12Input(unsigned short pad);
|
||||||
|
u32 MK2Input(unsigned short pad);
|
||||||
|
u32 MK3Input(unsigned short pad);
|
||||||
u32 MK4Input(unsigned short pad);
|
u32 MK4Input(unsigned short pad);
|
||||||
u32 MKAInput(unsigned short pad);
|
u32 MKAInput(unsigned short pad);
|
||||||
u32 MKTEInput(unsigned short pad);
|
u32 MKTEInput(unsigned short pad);
|
||||||
@ -127,6 +136,10 @@ u32 Metroid1Input(unsigned short pad);
|
|||||||
u32 Metroid2Input(unsigned short pad);
|
u32 Metroid2Input(unsigned short pad);
|
||||||
u32 MetroidFusionInput(unsigned short pad);
|
u32 MetroidFusionInput(unsigned short pad);
|
||||||
u32 TMNTInput(unsigned short pad);
|
u32 TMNTInput(unsigned short pad);
|
||||||
|
u32 TMNT1Input(unsigned short pad);
|
||||||
|
u32 TMNT2Input(unsigned short pad);
|
||||||
|
u32 TMNT3Input(unsigned short pad);
|
||||||
|
u32 TMNTGBAInput(unsigned short pad);
|
||||||
u32 HarryPotter1Input(unsigned short pad);
|
u32 HarryPotter1Input(unsigned short pad);
|
||||||
u32 HarryPotter1GBCInput(unsigned short pad);
|
u32 HarryPotter1GBCInput(unsigned short pad);
|
||||||
u32 HarryPotter2Input(unsigned short pad);
|
u32 HarryPotter2Input(unsigned short pad);
|
||||||
|
@ -751,6 +751,14 @@ static u32 DecodeJoy(unsigned short pad)
|
|||||||
return MetroidFusionInput(pad);
|
return MetroidFusionInput(pad);
|
||||||
|
|
||||||
// TMNT
|
// TMNT
|
||||||
|
case TMNT1:
|
||||||
|
return TMNT1Input(pad);
|
||||||
|
case TMNT2:
|
||||||
|
return TMNT2Input(pad);
|
||||||
|
case TMNT3:
|
||||||
|
return TMNT3Input(pad);
|
||||||
|
case TMNTGBA:
|
||||||
|
return TMNTGBAInput(pad);
|
||||||
case TMNT:
|
case TMNT:
|
||||||
return TMNTInput(pad);
|
return TMNTInput(pad);
|
||||||
|
|
||||||
@ -810,8 +818,12 @@ static u32 DecodeJoy(unsigned short pad)
|
|||||||
// Mortal Kombat
|
// Mortal Kombat
|
||||||
case MK1:
|
case MK1:
|
||||||
return MK1Input(pad);
|
return MK1Input(pad);
|
||||||
|
case MK12:
|
||||||
|
return MK12Input(pad);
|
||||||
case MK2:
|
case MK2:
|
||||||
|
return MK2Input(pad);
|
||||||
case MK3:
|
case MK3:
|
||||||
|
return MK3Input(pad);
|
||||||
case MK4:
|
case MK4:
|
||||||
return MK4Input(pad);
|
return MK4Input(pad);
|
||||||
case MKA:
|
case MKA:
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -972,6 +972,8 @@ static int MenuGameSelection()
|
|||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern char DebugStr[50];
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* MenuGame
|
* MenuGame
|
||||||
*
|
*
|
||||||
@ -982,6 +984,7 @@ static int MenuGame()
|
|||||||
int menu = MENU_NONE;
|
int menu = MENU_NONE;
|
||||||
|
|
||||||
GuiText titleTxt(ROMFilename, 24, (GXColor){255, 255, 255, 255});
|
GuiText titleTxt(ROMFilename, 24, (GXColor){255, 255, 255, 255});
|
||||||
|
if (DebugStr[0]) titleTxt.SetText(DebugStr);
|
||||||
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||||
titleTxt.SetPosition(50,50);
|
titleTxt.SetPosition(50,50);
|
||||||
|
|
||||||
|
@ -768,6 +768,14 @@ static void gbApplyPerImagePreferences()
|
|||||||
RomIdCode = MARIOLAND2;
|
RomIdCode = MARIOLAND2;
|
||||||
else if (strcmp(title, "METROID2") == 0)
|
else if (strcmp(title, "METROID2") == 0)
|
||||||
RomIdCode = METROID2;
|
RomIdCode = METROID2;
|
||||||
|
else if (strcmp(title, "MARBLE MADNESS") == 0)
|
||||||
|
RomIdCode = MARBLEMADNESS;
|
||||||
|
else if (strcmp(title, "TMNT FOOT CLAN") == 0)
|
||||||
|
RomIdCode = TMNT1;
|
||||||
|
else if (strcmp(title, "TMNT BACK FROM") == 0 || strcmp(title, "TMNT 2") == 0)
|
||||||
|
RomIdCode = TMNT2;
|
||||||
|
else if (strcmp(title, "TMNT3") == 0)
|
||||||
|
RomIdCode = TMNT3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user