Well, there is a dedicated forum for RA, no idea why were are discussing the release here to be honest, place is full of shitheads.
not really. i got alot of help from this site.Well, there is a dedicated forum for RA, no idea why were are discussing the release here to be honest, place is full of shitheads.
Well, there is a dedicated forum for RA, no idea why were are discussing the release here to be honest, place is full of shitheads.
not really. i got alot of help from this site.
I need a little help with the last update for the wii. How do I go about updating the right way?
The last time I believe, all I did was remove the old .dol files in the apps/retroarch folder and replace them with the new ones, but for some reason, this isnt working this time.
Using both a forwarder channel and the homebrew channel to start retroarch, I only arrive at black screens.
Redownloaded the 1.0.0.0 file again, still not working.
Would anyone happen to know what the problem is?
static void gx_input_poll(void *data)
{
gx_input_t *gx = (gx_input_t*)data;
gx->pad_state[0] = 0;
gx->pad_state[1] = 0;
gx->pad_state[2] = 0;
gx->pad_state[3] = 0;
gx->analog_state[0][0][0] = gx->analog_state[0][0][1] = gx->analog_state[0][1][0] = gx->analog_state[0][1][1] = 0;
gx->analog_state[1][0][0] = gx->analog_state[1][0][1] = gx->analog_state[1][1][0] = gx->analog_state[1][1][1] = 0;
gx->analog_state[2][0][0] = gx->analog_state[2][0][1] = gx->analog_state[2][1][0] = gx->analog_state[2][1][1] = 0;
gx->analog_state[3][0][0] = gx->analog_state[3][0][1] = gx->analog_state[3][1][0] = gx->analog_state[3][1][1] = 0;
u8 gcpad = PAD_ScanPads();
#ifdef HW_RVL
WPAD_ReadPending(WPAD_CHAN_ALL, NULL);
#endif
for (unsigned port = 0; port < MAX_PADS; port++)
{
uint32_t down = 0;
uint64_t *state_cur = &gx->pad_state[port];
if (gcpad & (1 << port))
{
down = PAD_ButtonsHeld(port);
*state_cur |= (down & PAD_BUTTON_A) ? (1ULL << GX_GC_A) : 0;
*state_cur |= (down & PAD_BUTTON_B) ? (1ULL << GX_GC_B) : 0;
*state_cur |= (down & PAD_BUTTON_X) ? (1ULL << GX_GC_X) : 0;
*state_cur |= (down & PAD_BUTTON_Y) ? (1ULL << GX_GC_Y) : 0;
*state_cur |= (down & PAD_BUTTON_UP) ? (1ULL << GX_GC_UP) : 0;
*state_cur |= (down & PAD_BUTTON_DOWN) ? (1ULL << GX_GC_DOWN) : 0;
*state_cur |= (down & PAD_BUTTON_LEFT) ? (1ULL << GX_GC_LEFT) : 0;
*state_cur |= (down & PAD_BUTTON_RIGHT) ? (1ULL << GX_GC_RIGHT) : 0;
*state_cur |= (down & PAD_BUTTON_START) ? (1ULL << GX_GC_START) : 0;
*state_cur |= (down & PAD_TRIGGER_Z) ? (1ULL << GX_GC_Z_TRIGGER) : 0;
*state_cur |= ((down & PAD_TRIGGER_L) || PAD_TriggerL(port) > 127) ? (1ULL << GX_GC_L_TRIGGER) : 0;
*state_cur |= ((down & PAD_TRIGGER_R) || PAD_TriggerR(port) > 127) ? (1ULL << GX_GC_R_TRIGGER) : 0;
int16_t ls_x = (int16_t)PAD_StickX(port) * 256;
int16_t ls_y = (int16_t)PAD_StickY(port) * -256;
int16_t rs_x = (int16_t)PAD_SubStickX(port) * 256;
int16_t rs_y = (int16_t)PAD_SubStickY(port) * -256;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = ls_x;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = ls_y;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rs_x;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = rs_y;
const uint64_t menu_combo = (1ULL << GX_GC_START) | (1ULL << GX_GC_Z_TRIGGER) | (1ULL << GX_GC_L_TRIGGER) | (1ULL << GX_GC_R_TRIGGER);
if ((*state_cur & menu_combo) == menu_combo)
*state_cur |= (1ULL << GX_WIIMOTE_HOME);
if (g_settings.input.autodetect_enable)
{
if (strcmp(g_settings.input.device_names[port], "Gamecube Controller") != 0)
gx_input_set_keybinds(NULL, DEVICE_GAMECUBE, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
}
}
#ifdef HW_RVL
uint32_t ptype = 0;
uint32_t connected = WPAD_Probe(port, &ptype);
if (connected == WPAD_ERR_NONE)
{
WPADData *wpaddata = WPAD_Data(port);
down = wpaddata->btns_h;
expansion_t *exp = &wpaddata->exp;
*state_cur |= (down & WPAD_BUTTON_A) ? (1ULL << GX_WIIMOTE_A) : 0;
*state_cur |= (down & WPAD_BUTTON_B) ? (1ULL << GX_WIIMOTE_B) : 0;
*state_cur |= (down & WPAD_BUTTON_1) ? (1ULL << GX_WIIMOTE_1) : 0;
*state_cur |= (down & WPAD_BUTTON_2) ? (1ULL << GX_WIIMOTE_2) : 0;
*state_cur |= (down & WPAD_BUTTON_PLUS) ? (1ULL << GX_WIIMOTE_PLUS) : 0;
*state_cur |= (down & WPAD_BUTTON_MINUS) ? (1ULL << GX_WIIMOTE_MINUS) : 0;
*state_cur |= (down & WPAD_BUTTON_HOME) ? (1ULL << GX_WIIMOTE_HOME) : 0;
if (ptype != WPAD_EXP_NUNCHUK)
{
// rotated d-pad on Wiimote
*state_cur |= (down & WPAD_BUTTON_UP) ? (1ULL << GX_WIIMOTE_LEFT) : 0;
*state_cur |= (down & WPAD_BUTTON_DOWN) ? (1ULL << GX_WIIMOTE_RIGHT) : 0;
*state_cur |= (down & WPAD_BUTTON_LEFT) ? (1ULL << GX_WIIMOTE_DOWN) : 0;
*state_cur |= (down & WPAD_BUTTON_RIGHT) ? (1ULL << GX_WIIMOTE_UP) : 0;
}
if (ptype == WPAD_EXP_CLASSIC)
{
*state_cur |= (down & WPAD_CLASSIC_BUTTON_A) ? (1ULL << GX_CLASSIC_A) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_B) ? (1ULL << GX_CLASSIC_B) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_X) ? (1ULL << GX_CLASSIC_X) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_Y) ? (1ULL << GX_CLASSIC_Y) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_UP) ? (1ULL << GX_CLASSIC_UP) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_DOWN) ? (1ULL << GX_CLASSIC_DOWN) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_LEFT) ? (1ULL << GX_CLASSIC_LEFT) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_RIGHT) ? (1ULL << GX_CLASSIC_RIGHT) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_PLUS) ? (1ULL << GX_CLASSIC_PLUS) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_MINUS) ? (1ULL << GX_CLASSIC_MINUS) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_HOME) ? (1ULL << GX_CLASSIC_HOME) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_FULL_L) ? (1ULL << GX_CLASSIC_L_TRIGGER) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_FULL_R) ? (1ULL << GX_CLASSIC_R_TRIGGER) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_ZL) ? (1ULL << GX_CLASSIC_ZL_TRIGGER) : 0;
*state_cur |= (down & WPAD_CLASSIC_BUTTON_ZR) ? (1ULL << GX_CLASSIC_ZR_TRIGGER) : 0;
float ljs_mag = exp->classic.ljs.mag;
float ljs_ang = exp->classic.ljs.ang;
float rjs_mag = exp->classic.rjs.mag;
float rjs_ang = exp->classic.rjs.ang;
if (ljs_mag > 1.0f)
ljs_mag = 1.0f;
else if (ljs_mag < -1.0f)
ljs_mag = -1.0f;
if (rjs_mag > 1.0f)
rjs_mag = 1.0f;
else if (rjs_mag < -1.0f)
rjs_mag = -1.0f;
double ljs_val_x = ljs_mag * sin(M_PI * ljs_ang / 180.0);
double ljs_val_y = -ljs_mag * cos(M_PI * ljs_ang / 180.0);
double rjs_val_x = rjs_mag * sin(M_PI * rjs_ang / 180.0);
double rjs_val_y = -rjs_mag * cos(M_PI * rjs_ang / 180.0);
int16_t ls_x = (int16_t)(ljs_val_x * 32767.0f);
int16_t ls_y = (int16_t)(ljs_val_y * 32767.0f);
int16_t rs_x = (int16_t)(rjs_val_x * 32767.0f);
int16_t rs_y = (int16_t)(rjs_val_y * 32767.0f);
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = ls_x;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = ls_y;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rs_x;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = rs_y;
if (g_settings.input.autodetect_enable)
{
if (strcmp(g_settings.input.device_names[port], "Classic Controller") != 0)
gx_input_set_keybinds(NULL, DEVICE_CLASSIC, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
}
}
else if (ptype == WPAD_EXP_NUNCHUK)
{
// wiimote is held upright with nunchuk, do not change d-pad orientation
*state_cur |= (down & WPAD_BUTTON_UP) ? (1ULL << GX_WIIMOTE_UP) : 0;
*state_cur |= (down & WPAD_BUTTON_DOWN) ? (1ULL << GX_WIIMOTE_DOWN) : 0;
*state_cur |= (down & WPAD_BUTTON_LEFT) ? (1ULL << GX_WIIMOTE_LEFT) : 0;
*state_cur |= (down & WPAD_BUTTON_RIGHT) ? (1ULL << GX_WIIMOTE_RIGHT) : 0;
*state_cur |= (down & WPAD_NUNCHUK_BUTTON_Z) ? (1ULL << GX_NUNCHUK_Z) : 0;
*state_cur |= (down & WPAD_NUNCHUK_BUTTON_C) ? (1ULL << GX_NUNCHUK_C) : 0;
float js_mag = exp->nunchuk.js.mag;
float js_ang = exp->nunchuk.js.ang;
if (js_mag > 1.0f)
js_mag = 1.0f;
else if (js_mag < -1.0f)
js_mag = -1.0f;
double js_val_x = js_mag * sin(M_PI * js_ang / 180.0);
double js_val_y = -js_mag * cos(M_PI * js_ang / 180.0);
int16_t x = (int16_t)(js_val_x * 32767.0f);
int16_t y = (int16_t)(js_val_y * 32767.0f);
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = x;
gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = y;
if (g_settings.input.autodetect_enable)
{
if (strcmp(g_settings.input.device_names[port], "Wiimote + Nunchuk") != 0)
gx_input_set_keybinds(NULL, DEVICE_NUNCHUK, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
}
}
else
{
//no attachment, assume standalone Wiimote
if (g_settings.input.autodetect_enable)
{
if (strcmp(g_settings.input.device_names[port], "Wiimote") != 0)
gx_input_set_keybinds(NULL, DEVICE_WIIMOTE, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
}
}
}
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
if (gx->analog_state[port][i][j] == -0x8000)
gx->analog_state[port][i][j] = -0x7fff;
#endif
}
uint64_t *state_p1 = &gx->pad_state[0];
uint64_t *lifecycle_state = &g_extern.lifecycle_state;
*lifecycle_state &= ~((1ULL << RARCH_MENU_TOGGLE));
if (g_menu)
{
*state_p1 |= (1ULL << GX_WIIMOTE_HOME);
g_menu = false;
}
if (*state_p1 & ((1ULL << GX_WIIMOTE_HOME)
#ifdef HW_RVL
| (1ULL << GX_CLASSIC_HOME)
#endif
))
*lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);
}
The config files need to be deleted, it should say that on the download page I think. The emulator cores have new names, so they conflict with old config files.
@squarepusher, here is your code
I have not github account and there is no way I'm going to go throught he hassle of cloning your git repository, etc... so a basic copy/paste like in old times is all what I can offer
Code:static void gx_input_poll(void *data) { gx_input_t *gx = (gx_input_t*)data; gx->pad_state[0] = 0; gx->pad_state[1] = 0; gx->pad_state[2] = 0; gx->pad_state[3] = 0; gx->analog_state[0][0][0] = gx->analog_state[0][0][1] = gx->analog_state[0][1][0] = gx->analog_state[0][1][1] = 0; gx->analog_state[1][0][0] = gx->analog_state[1][0][1] = gx->analog_state[1][1][0] = gx->analog_state[1][1][1] = 0; gx->analog_state[2][0][0] = gx->analog_state[2][0][1] = gx->analog_state[2][1][0] = gx->analog_state[2][1][1] = 0; gx->analog_state[3][0][0] = gx->analog_state[3][0][1] = gx->analog_state[3][1][0] = gx->analog_state[3][1][1] = 0; u8 gcpad = PAD_ScanPads(); #ifdef HW_RVL WPAD_ReadPending(WPAD_CHAN_ALL, NULL); #endif for (unsigned port = 0; port < MAX_PADS; port++) { uint32_t down = 0; uint64_t *state_cur = &gx->pad_state[port]; if (gcpad & (1 << port)) { down = PAD_ButtonsHeld(port); *state_cur |= (down & PAD_BUTTON_A) ? (1ULL << GX_GC_A) : 0; *state_cur |= (down & PAD_BUTTON_B) ? (1ULL << GX_GC_B) : 0; *state_cur |= (down & PAD_BUTTON_X) ? (1ULL << GX_GC_X) : 0; *state_cur |= (down & PAD_BUTTON_Y) ? (1ULL << GX_GC_Y) : 0; *state_cur |= (down & PAD_BUTTON_UP) ? (1ULL << GX_GC_UP) : 0; *state_cur |= (down & PAD_BUTTON_DOWN) ? (1ULL << GX_GC_DOWN) : 0; *state_cur |= (down & PAD_BUTTON_LEFT) ? (1ULL << GX_GC_LEFT) : 0; *state_cur |= (down & PAD_BUTTON_RIGHT) ? (1ULL << GX_GC_RIGHT) : 0; *state_cur |= (down & PAD_BUTTON_START) ? (1ULL << GX_GC_START) : 0; *state_cur |= (down & PAD_TRIGGER_Z) ? (1ULL << GX_GC_Z_TRIGGER) : 0; *state_cur |= ((down & PAD_TRIGGER_L) || PAD_TriggerL(port) > 127) ? (1ULL << GX_GC_L_TRIGGER) : 0; *state_cur |= ((down & PAD_TRIGGER_R) || PAD_TriggerR(port) > 127) ? (1ULL << GX_GC_R_TRIGGER) : 0; int16_t ls_x = (int16_t)PAD_StickX(port) * 256; int16_t ls_y = (int16_t)PAD_StickY(port) * -256; int16_t rs_x = (int16_t)PAD_SubStickX(port) * 256; int16_t rs_y = (int16_t)PAD_SubStickY(port) * -256; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = ls_x; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = ls_y; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rs_x; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = rs_y; const uint64_t menu_combo = (1ULL << GX_GC_START) | (1ULL << GX_GC_Z_TRIGGER) | (1ULL << GX_GC_L_TRIGGER) | (1ULL << GX_GC_R_TRIGGER); if ((*state_cur & menu_combo) == menu_combo) *state_cur |= (1ULL << GX_WIIMOTE_HOME); if (g_settings.input.autodetect_enable) { if (strcmp(g_settings.input.device_names[port], "Gamecube Controller") != 0) gx_input_set_keybinds(NULL, DEVICE_GAMECUBE, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)); } } #ifdef HW_RVL uint32_t ptype = 0; uint32_t connected = WPAD_Probe(port, &ptype); if (connected == WPAD_ERR_NONE) { WPADData *wpaddata = WPAD_Data(port); down = wpaddata->btns_h; expansion_t *exp = &wpaddata->exp; *state_cur |= (down & WPAD_BUTTON_A) ? (1ULL << GX_WIIMOTE_A) : 0; *state_cur |= (down & WPAD_BUTTON_B) ? (1ULL << GX_WIIMOTE_B) : 0; *state_cur |= (down & WPAD_BUTTON_1) ? (1ULL << GX_WIIMOTE_1) : 0; *state_cur |= (down & WPAD_BUTTON_2) ? (1ULL << GX_WIIMOTE_2) : 0; *state_cur |= (down & WPAD_BUTTON_PLUS) ? (1ULL << GX_WIIMOTE_PLUS) : 0; *state_cur |= (down & WPAD_BUTTON_MINUS) ? (1ULL << GX_WIIMOTE_MINUS) : 0; *state_cur |= (down & WPAD_BUTTON_HOME) ? (1ULL << GX_WIIMOTE_HOME) : 0; if (ptype != WPAD_EXP_NUNCHUK) { // rotated d-pad on Wiimote *state_cur |= (down & WPAD_BUTTON_UP) ? (1ULL << GX_WIIMOTE_LEFT) : 0; *state_cur |= (down & WPAD_BUTTON_DOWN) ? (1ULL << GX_WIIMOTE_RIGHT) : 0; *state_cur |= (down & WPAD_BUTTON_LEFT) ? (1ULL << GX_WIIMOTE_DOWN) : 0; *state_cur |= (down & WPAD_BUTTON_RIGHT) ? (1ULL << GX_WIIMOTE_UP) : 0; } if (ptype == WPAD_EXP_CLASSIC) { *state_cur |= (down & WPAD_CLASSIC_BUTTON_A) ? (1ULL << GX_CLASSIC_A) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_B) ? (1ULL << GX_CLASSIC_B) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_X) ? (1ULL << GX_CLASSIC_X) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_Y) ? (1ULL << GX_CLASSIC_Y) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_UP) ? (1ULL << GX_CLASSIC_UP) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_DOWN) ? (1ULL << GX_CLASSIC_DOWN) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_LEFT) ? (1ULL << GX_CLASSIC_LEFT) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_RIGHT) ? (1ULL << GX_CLASSIC_RIGHT) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_PLUS) ? (1ULL << GX_CLASSIC_PLUS) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_MINUS) ? (1ULL << GX_CLASSIC_MINUS) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_HOME) ? (1ULL << GX_CLASSIC_HOME) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_FULL_L) ? (1ULL << GX_CLASSIC_L_TRIGGER) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_FULL_R) ? (1ULL << GX_CLASSIC_R_TRIGGER) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_ZL) ? (1ULL << GX_CLASSIC_ZL_TRIGGER) : 0; *state_cur |= (down & WPAD_CLASSIC_BUTTON_ZR) ? (1ULL << GX_CLASSIC_ZR_TRIGGER) : 0; float ljs_mag = exp->classic.ljs.mag; float ljs_ang = exp->classic.ljs.ang; float rjs_mag = exp->classic.rjs.mag; float rjs_ang = exp->classic.rjs.ang; if (ljs_mag > 1.0f) ljs_mag = 1.0f; else if (ljs_mag < -1.0f) ljs_mag = -1.0f; if (rjs_mag > 1.0f) rjs_mag = 1.0f; else if (rjs_mag < -1.0f) rjs_mag = -1.0f; double ljs_val_x = ljs_mag * sin(M_PI * ljs_ang / 180.0); double ljs_val_y = -ljs_mag * cos(M_PI * ljs_ang / 180.0); double rjs_val_x = rjs_mag * sin(M_PI * rjs_ang / 180.0); double rjs_val_y = -rjs_mag * cos(M_PI * rjs_ang / 180.0); int16_t ls_x = (int16_t)(ljs_val_x * 32767.0f); int16_t ls_y = (int16_t)(ljs_val_y * 32767.0f); int16_t rs_x = (int16_t)(rjs_val_x * 32767.0f); int16_t rs_y = (int16_t)(rjs_val_y * 32767.0f); gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = ls_x; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = ls_y; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rs_x; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = rs_y; if (g_settings.input.autodetect_enable) { if (strcmp(g_settings.input.device_names[port], "Classic Controller") != 0) gx_input_set_keybinds(NULL, DEVICE_CLASSIC, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)); } } else if (ptype == WPAD_EXP_NUNCHUK) { // wiimote is held upright with nunchuk, do not change d-pad orientation *state_cur |= (down & WPAD_BUTTON_UP) ? (1ULL << GX_WIIMOTE_UP) : 0; *state_cur |= (down & WPAD_BUTTON_DOWN) ? (1ULL << GX_WIIMOTE_DOWN) : 0; *state_cur |= (down & WPAD_BUTTON_LEFT) ? (1ULL << GX_WIIMOTE_LEFT) : 0; *state_cur |= (down & WPAD_BUTTON_RIGHT) ? (1ULL << GX_WIIMOTE_RIGHT) : 0; *state_cur |= (down & WPAD_NUNCHUK_BUTTON_Z) ? (1ULL << GX_NUNCHUK_Z) : 0; *state_cur |= (down & WPAD_NUNCHUK_BUTTON_C) ? (1ULL << GX_NUNCHUK_C) : 0; float js_mag = exp->nunchuk.js.mag; float js_ang = exp->nunchuk.js.ang; if (js_mag > 1.0f) js_mag = 1.0f; else if (js_mag < -1.0f) js_mag = -1.0f; double js_val_x = js_mag * sin(M_PI * js_ang / 180.0); double js_val_y = -js_mag * cos(M_PI * js_ang / 180.0); int16_t x = (int16_t)(js_val_x * 32767.0f); int16_t y = (int16_t)(js_val_y * 32767.0f); gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = x; gx->analog_state[port][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = y; if (g_settings.input.autodetect_enable) { if (strcmp(g_settings.input.device_names[port], "Wiimote + Nunchuk") != 0) gx_input_set_keybinds(NULL, DEVICE_NUNCHUK, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)); } } else { //no attachment, assume standalone Wiimote if (g_settings.input.autodetect_enable) { if (strcmp(g_settings.input.device_names[port], "Wiimote") != 0) gx_input_set_keybinds(NULL, DEVICE_WIIMOTE, port, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)); } } } for (int i = 0; i < 2; i++) for (int j = 0; j < 2; j++) if (gx->analog_state[port][i][j] == -0x8000) gx->analog_state[port][i][j] = -0x7fff; #endif } uint64_t *state_p1 = &gx->pad_state[0]; uint64_t *lifecycle_state = &g_extern.lifecycle_state; *lifecycle_state &= ~((1ULL << RARCH_MENU_TOGGLE)); if (g_menu) { *state_p1 |= (1ULL << GX_WIIMOTE_HOME); g_menu = false; } if (*state_p1 & ((1ULL << GX_WIIMOTE_HOME) #ifdef HW_RVL | (1ULL << GX_CLASSIC_HOME) #endif )) *lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE); }
It might not fix the reported issue (which by the way I never encoutered myself... so much for questioning my motivation of helping you) but it's cleaner this way.
Now please do not turn up the situation like you always seem to do, YOU were the one coming here publically attacking people who haven't done or said anything against you, you should at least expect some reaction and deal wit it, instead of being so over defensive everytime someone criticizes your work.
I sure don't feel superior to anybody (far from it) and from what I remember, none of the Wii devs you have been attacking ever appeared that way, they are all nice people who were always very helpful when asked kindly so I am not sure why you feel the need to bash them now (especially when they basically left that scene years ago and aren't probably aware of these problems you are having) or painting them like gods or gurus who feel superior to lame users. Again, if you have an inferiority complex, deal with it but do not put it on other people who never asked you anything.
Were are RA's video settings handled?
If anyone can help, please do!
Wii is pal, component 480p.
Roms are NTSCU.
Yet when I load them in any of the 8 bit cores, they are displayed a 50 fps.
fcue, nestopia, quicknes
It makes no sense to me as I allready, did a clean nand install.
Did a sd card format, reinstalled RA 0.9.9 ( wich worked fine before )
Still same problem....
Ra starts out at 59,9~60 fps and drops after asecond to 50~52 fps.
Really have no cleu how this could happen..
What could have caused this problem?
Any help appreciated!
EDIT: I'll try to set my Wii video output to NTSC, just to see what happens..
I can imagine maintaining your workload since I've had to deal with several projects under my lead with over 5 groups of 20+ people and it can be overwhelming, even more kudos to u since what I can't imagine is doing it for free. Listen, you and your team are doing something amazing, beyond Wii, Android, PC, iOS, GC, Pi ports and all that. It really is a masterpiece which is trying to integrate everything into one simple way for people to just code what they want and have it work across all platforms. I don't expect anything from u guys, you do it cuz u want to, like u said, cuz it's important to you, to maintain your integrity and high standards, to keep things open, RetroArch is like a stand for morality u know lol.Retroarch is probably the last project that came to the Wii worth having and worth following.
At the moment it's all I care about in gaming, passionately.
Checking this thread almost everyday.
Doesn't that mean/ tells anything to you?
Your the man here Lib, the ball is in your court all the time, you prove yourself to be a man of your word, when proven wrong you commit, you lay it all down on the table and you emotionally show everything at face value here, it's something to be appreciated and the same time, too strong for some of us. I respect you and all devs really, I have an extremely low level understanding of what you guys go through in a dedicated open source community, so I can't put myself in your shoes, but "dev scene" aside can you put yourself in ours? I believe those of us that are still here are not being ungrateful, we're reporting our experiences with your wonderful program, if you can take the time to look at it and fix it at your own leisure, wonderful if not and your priorities lie elsewhere, so be it. We appreciate whatever you can hand down to what's really an inferior console in ram/memory at least. Maybe we need a lesson in civility, what would help you see us in a better light and relieve some of the personal resentment? If reporting bugs in your repo is what you would prefer, rather then feel we're putting RA down, then absolutely, I'm sure most of us senior members can do that.Accept the positives as well as the negatives?
If I tell you I am experiencing problems with RA, I'm not trying to bash your work or being ungrateful.
It's that part of me wishing to get the best, wishing I could code like that.
Trying to enjoy what is left of my life.
Nothing but respect really.
I'm just wondering why they're running 20% on your end, it's baffling indeed, as my run full speed but let us know how changing the video mode to NSTC works.
I'll be honest and say that nowadays, i use my own Wii console to use RetroArch to play the old classics from long ago. I even use the forwarder in this thread for easy access, as well from the Wii Menu.