gamebridge hacks

This commit is contained in:
Cadey Ratio 2020-10-21 20:27:12 -04:00
parent c30ec9e5c1
commit a49c44a017
6 changed files with 25 additions and 13 deletions

View File

@ -42,7 +42,7 @@ fn main() -> Result<()> {
let mut vblank = File::open("vblank")?; let mut vblank = File::open("vblank")?;
let mut input = OpenOptions::new().write(true).open("input")?; let mut input = OpenOptions::new().write(true).open("input")?;
const STICK_LERP_TIME: f64 = 270.0; // 270 frames to lerp stick positions down to 0 const STICK_LERP_TIME: f64 = 500.0; // 450 frames to lerp stick positions down to 0
const BUTTON_LERP_TIME: f64 = 20.0; // 20 frames to lerp button inputs down to 0 const BUTTON_LERP_TIME: f64 = 20.0; // 20 frames to lerp button inputs down to 0
let st = { let st = {

View File

@ -12,9 +12,9 @@ pub(crate) fn run(st: MTState) {
async fn handle(st: MTState) { async fn handle(st: MTState) {
let (nick, pass) = ( let (nick, pass) = (
// twitch name // twitch name
std::env::var("TWITCH_NICK").unwrap(), std::env::var("TWITCH_NICK").expect("bot nickname to be in the environment"),
// oauth token for twitch name // oauth token for twitch name
std::env::var("TWITCH_PASS").unwrap(), std::env::var("TWITCH_PASS").expect("bot password to be in the environment"),
); );
// putting this in the env so people don't join my channel when running this // putting this in the env so people don't join my channel when running this
@ -87,17 +87,27 @@ async fn run_loop(
"a" => data.a_button.add(BUTTON_ADD_AMT), "a" => data.a_button.add(BUTTON_ADD_AMT),
"b" => data.b_button.add(BUTTON_ADD_AMT), "b" => data.b_button.add(BUTTON_ADD_AMT),
"z" => data.z_button.add(BUTTON_ADD_AMT), "z" => data.z_button.add(BUTTON_ADD_AMT),
"r" => data.r_button.add(BUTTON_ADD_AMT), "cam" | "camera" => data.r_button.add(BUTTON_ADD_AMT),
"cup" => data.c_up.add(BUTTON_ADD_AMT), "cup" => data.c_up.add(BUTTON_ADD_AMT),
"cdown" => data.c_down.add(BUTTON_ADD_AMT), "cdown" => data.c_down.add(BUTTON_ADD_AMT),
"cleft" => data.c_left.add(BUTTON_ADD_AMT), "cleft" => data.c_left.add(BUTTON_ADD_AMT),
"cright" => data.c_right.add(BUTTON_ADD_AMT), "cright" => data.c_right.add(BUTTON_ADD_AMT),
"start" => data.start.add(BUTTON_ADD_AMT), "start" => data.start.add(BUTTON_ADD_AMT),
"up" => data.sticky.add(127), "up" | "u" => data.sticky.add(127),
"down" => data.sticky.add(-128), "down" | "d" => data.sticky.add(-128),
"left" => data.stickx.add(-128), "left" | "l" => data.stickx.add(-128),
"right" => data.stickx.add(127), "right" | "r" => data.stickx.add(127),
"stop" => {data.stickx.update(0); data.sticky.update(0);}, "stop" => {data.stickx.update(0); data.sticky.update(0);},
"unstuck" => {
data.a_button.update(0);
data.b_button.update(0);
data.z_button.update(0);
data.r_button.update(0);
data.c_up.update(0);
data.c_down.update(0);
data.c_left.update(0);
data.c_right.update(0);
}
_ => {}, _ => {},
} }
} }

View File

@ -1258,6 +1258,7 @@ void debug_print_speed_action_normal(struct MarioState *m) {
void update_mario_button_inputs(struct MarioState *m) { void update_mario_button_inputs(struct MarioState *m) {
if (m->controller->buttonPressed & A_BUTTON) { if (m->controller->buttonPressed & A_BUTTON) {
m->input |= INPUT_A_PRESSED; m->input |= INPUT_A_PRESSED;
print_text(210, 32, "A");
} }
if (m->controller->buttonDown & A_BUTTON) { if (m->controller->buttonDown & A_BUTTON) {
@ -1268,6 +1269,7 @@ void update_mario_button_inputs(struct MarioState *m) {
if (m->squishTimer == 0) { if (m->squishTimer == 0) {
if (m->controller->buttonPressed & B_BUTTON) { if (m->controller->buttonPressed & B_BUTTON) {
m->input |= INPUT_B_PRESSED; m->input |= INPUT_B_PRESSED;
print_text(210, 48, "B");
} }
if (m->controller->buttonDown & Z_TRIG) { if (m->controller->buttonDown & Z_TRIG) {

View File

@ -9,10 +9,10 @@
static struct ControllerAPI *controller_implementations[] = { static struct ControllerAPI *controller_implementations[] = {
&controller_recorded_tas, &controller_recorded_tas,
&controller_gamebridge,
&controller_sdl, &controller_sdl,
&controller_keyboard, &controller_keyboard,
&controller_gamebridge, //&controller_tas_recorder,
&controller_tas_recorder,
}; };
s32 osContInit(OSMesgQueue *mq, u8 *controllerBits, OSContStatus *status) { s32 osContInit(OSMesgQueue *mq, u8 *controllerBits, OSContStatus *status) {

View File

@ -69,7 +69,7 @@ static void gamebridge_init(void) {
printf("[gamebridge] starting rust daemon\n"); printf("[gamebridge] starting rust daemon\n");
fflush(stdout); fflush(stdout);
system("./target/debug/gamebridge &"); system("./target/release/gamebridge &");
atexit(gamebridge_close); atexit(gamebridge_close);
} }

View File

@ -1,7 +1,7 @@
#ifndef GFX_SCREEN_CONFIG_H #ifndef GFX_SCREEN_CONFIG_H
#define GFX_SCREEN_CONFIG_H #define GFX_SCREEN_CONFIG_H
#define DESIRED_SCREEN_WIDTH 640 #define DESIRED_SCREEN_WIDTH 1366
#define DESIRED_SCREEN_HEIGHT 480 #define DESIRED_SCREEN_HEIGHT 768
#endif #endif