iidx: detect ldj/tdj I/O mismatch (#470)

## Link to GitHub Issue, if one exists
#345 

## Description of change
For IIDX31+, detect if BI2A or BI2X I/O emulation becomes active, and
see if there is a mismatch between the -iidxtdj setting.

Right now a mismatch results in warning in log + deferred error log, but
in the future we could turn this into a fatal error and crash the game
to make it more obvious.

## Testing
Tested 4 combinations:

1. DLL in LDJ mode + -iidxtdj off (pass)
2. DLL in LDJ mode + -iidxtdj on (error)
3. DLL in TDJ mode + -iidxtdj off (error)
4. DLL in TDJ mode + -iidxtdj on (pass)
This commit is contained in:
bicarus-dev
2025-12-22 18:52:37 -08:00
committed by GitHub
parent 462a07680b
commit 4c8d4ebab6
5 changed files with 68 additions and 5 deletions
+6
View File
@@ -62,4 +62,10 @@ namespace games::iidx {
const char* get_16seg();
bool is_tdj_fhd();
void apply_audio_hacks();
enum class iidx_aio_emulation_state {
bi2a_com2,
bi2x_hook
};
void update_io_emulation_state(iidx_aio_emulation_state state);
}