Added emulator detection (#651)

* Added emulator detection

* Fixed missing assignments

* Disable interrupts around the count factor test

* Added more comments to emutest

* Changed PJ64 enum values so the versions work as a bitfield

* Updated README

* Fixed comments

* Updated enum values so you can safely AND and OR all emulator version flags together

* Remove redundant gIsConsole, gIsVC, and gCacheEmulated global variables

* Changed console check to be more future proof against Ares

* Use assembly file instead of casting to a function pointer

* Moved round_double_to_float back to its own compilation unit

* Moved the ParallelN64 check before the Ares check for better future-proofing

* Align pj64_get_count_factor_asm with cache lines... not that it actually matters for pj64

* Adjusted some comments

* Made emulator check thread-safe on emulators that emulate PI timings

* Added gIsConsole macro for backwards compatibility

* Added cen64 to INSTANT_INPUT_BLACKLIST

* Updated comment
This commit is contained in:
Matt Pharoah
2023-08-28 18:03:26 -04:00
committed by GitHub
parent 0138b8ea53
commit febcb71ea3
20 changed files with 278 additions and 92 deletions

View File

@@ -42,7 +42,7 @@
/**
* When this option is enabled, LODs will ONLY work on console.
* When this option is disabled, LODs will work regardless of whether console or emulator is used.
* Regardless of whether this setting is enabled or not, you can use gIsConsole to wrap your own code in a console check.
* Regardless of whether this setting is enabled or not, you can use gEmulator to wrap your own code in a console check.
*/
#define AUTO_LOD