diff --git a/main/wired/nsi.c b/main/wired/nsi.c index 82abea2a..f1724c35 100644 --- a/main/wired/nsi.c +++ b/main/wired/nsi.c @@ -106,6 +106,7 @@ static uint8_t rumble_state[4] = {0}; static uint8_t ctrl_acc_mode[4] = {0}; static uint8_t ctrl_acc_update[4] = {0}; static uint8_t ctrl_mem_banksel = 0; +static uint8_t ctrl_init = 0; static uint32_t gc_l_trig_prev_state = 0; static uint32_t gc_r_trig_prev_state = 0; @@ -581,7 +582,15 @@ static unsigned n64_isr(unsigned cause) { item = nsi_items_to_bytes(channel * RMT_MEM_ITEM_NUM, buf, 1); /* Check if need to flag a pak change */ - if (config.global_cfg.banksel != ctrl_mem_banksel) { + if (ctrl_init == 0) { + ctrl_mem_banksel = config.global_cfg.banksel; + ctrl_acc_mode[0] = config.out_cfg[0].acc_mode; + ctrl_acc_mode[1] = config.out_cfg[1].acc_mode; + ctrl_acc_mode[2] = config.out_cfg[2].acc_mode; + ctrl_acc_mode[3] = config.out_cfg[3].acc_mode; + ctrl_init = 1; + } + else if (config.global_cfg.banksel != ctrl_mem_banksel) { *(uint32_t *)ctrl_acc_update = 0x20202020; ctrl_mem_banksel = config.global_cfg.banksel; }