v60: improve CVTSW flags and fix issue with float-to-u32 cast

This commit is contained in:
hap 2025-03-17 15:41:21 +01:00
parent 9bf243a537
commit b5fafba307
4 changed files with 5 additions and 7 deletions

View File

@ -71,12 +71,11 @@ uint32_t v60_device::opCVTSW()
// Convert to uint32_t
val = u2f(m_op1);
m_modwritevalw = (uint32_t)val;
m_modwritevalw = (uint32_t)(int64_t)val;
_OV = 0;
_CY =(val < 0.0f);
_S = ((m_modwritevalw & 0x80000000) != 0);
_Z = (val == 0.0f);
_OV = (_S && val >= 0.0f) || (!_S && val <= -1.0f);
_Z = (m_modwritevalw == 0);
F2WriteSecondOperand(2);
F2END();

View File

@ -776,7 +776,6 @@ private:
[[noreturn]] uint32_t opUNHANDLED();
void v60_do_irq(int vector);
void v60_try_irq();
};

View File

@ -2703,4 +2703,4 @@ GAME( 1997, bnstars, bnstars1, ms32, suchie2, ms32_state,
GAME( 1996, wpksocv2, 0, ms32_invert_lines, wpksocv2, ms32_state, init_ss92046_01, ROT0, "Jaleco", "World PK Soccer V2 (ver 1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
/* these boot and show something */
GAMEL( 1994, f1superb, 0, f1superb, f1superb, ms32_f1superbattle_state, init_f1superb, ROT0, "Jaleco", "F-1 Super Battle", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_f1superb )
GAMEL(1994, f1superb, 0, f1superb, f1superb, ms32_f1superbattle_state, init_f1superb, ROT0, "Jaleco", "F-1 Super Battle", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_f1superb )

View File

@ -4681,7 +4681,7 @@ ROM_END
***************************************************************************/
// year rom clone machine inputs init monitor manufacturer title flags
// year rom clone machine inputs init monitor manufacturer title flags
GAME( 1993, dynagear, 0, dynagear, dynagear, ssv_state, init_ssv, ROT0, "Sammy", "Dyna Gear", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )