mirror of
https://github.com/patchzyy/wiicompiled
synced 2026-10-25 23:34:34 -04:00
ac99413d45
* move aurora to the aurora-wiicompiled submodule (#315) * Update settings_overlay.cpp (#257) * Simplify controller settings menu (#317) * simplify controller settings menu * platform pairing hint * build for x86-64-v2 on older linux cpus (#319) * Real Wii Remote support over Bluetooth (#323) * pass real wii remotes through emulated bluetooth * build bluetooth tests on macos ci * address review comments * cancel replaced bluetooth reads * Run GX on its own thread (#325) * NTSC-U and NTSC-J support (#326) * add ntsc-u and ntsc-j support Co-authored-by: DarthMDev <mgracer48@yahoo.com> Co-authored-by: rooklz <rookieb@muzo-works.com> * hash inc files and require project for shards * port remaining stale rr us hooks * drop map report generation * drop one-off region porters --------- Co-authored-by: DarthMDev <mgracer48@yahoo.com> Co-authored-by: rooklz <rookieb@muzo-works.com> * Keyboard input for friend code entry (#327) * keyboard input for friend code entry * add new guest imports to synthetic test * replace per-address region table with range map (#328) * paste friend codes from clipboard (#329) * Verify dependency archive hashes (#330) * verify dependency archive hashes * verify cached cppwinrt tool * check dependency path types * Check CPU support before building (#331) * check cpu support before building * build for x86-64-v2 on windows and intel macs * bump aurora for fog fsel fix * add vsync option (#333) * Add exe icons (#334) * add exe icons * rebuild icon resource on ico change * drop icon rebuild tracking * Fix bugs found in forks (#336) * port fixes found in forks * fill whole disk id * dump kamek overlay on crash (#335) * bump aurora and version to 0.9.0 --------- Co-authored-by: DarthMDev <mgracer48@yahoo.com> Co-authored-by: rooklz <rookieb@muzo-works.com>
50 lines
2.6 KiB
C++
50 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include "abi_bridge.h"
|
|
|
|
// hle/gx/gx_fatal_stubs.cpp includes nothing but this header and reaches
|
|
// std::fprintf / std::snprintf / std::abort through it.
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
|
|
// VI Utils
|
|
void VI_HLE_ForceRetrace(CpuContext* ctx);
|
|
void VI_HLE_PollRetrace(CpuContext* ctx);
|
|
void VI_HLE_ProcessRetracesDeferred(int maxToProcess);
|
|
void VI_HLE_WaitForNextRetracePoll();
|
|
// Single owner of the Aurora frame presentation sequence (seal, optional pace
|
|
// to the VI retrace boundary, pre-warm the next frame). paceToRetrace is true
|
|
// for the GXCopyDisp producer path and false for retrace-context presents.
|
|
void VI_HLE_PresentFrame(bool presentedXfb, bool paceToRetrace);
|
|
bool VI_HLE_IsAdvancingRetrace();
|
|
void VI_HLE_SetXfbReady(uint32_t xfbAddr); // Called by GXCopyDisp to signal EFB→XFB copy
|
|
void Audio_HLE_Tick(CpuContext* ctx, uint32_t deltaMicros);
|
|
void Audio_HLE_Poll(CpuContext* ctx);
|
|
// Deferred twin of Audio_HLE_Poll for the long host waits that already service
|
|
// retraces and alarms (the VI retrace pacing loop, the Aurora frame-worker wait
|
|
// callback). Runs the AI DMA tick on an isolated register file the way
|
|
// OS_HLE_ProcessAlarmsDeferred does, so it is safe to call from the middle of an
|
|
// arbitrary translated function.
|
|
void Audio_HLE_PollDeferred();
|
|
bool OS_HLE_InterruptsEnabled() noexcept;
|
|
extern "C" void OS_HLE_ProcessAlarmsDeferred(int maxToProcess);
|
|
extern "C" void OS_HLE_BeginDeferredGuestCallbacks();
|
|
extern "C" void OS_HLE_EndDeferredGuestCallbacks();
|
|
|
|
|
|
// Defines and registers a faithful native reimplementation that REPLACES the translated function
|
|
// at a PPC address (not a stub; genuine not-yet-implemented entries live in hle/gx/gx_fatal_stubs.cpp
|
|
// and abort). The translator regex-parses these macro names to skip that address at build time, so
|
|
// renaming requires updating Translator.Cli/Program.cs, RuntimeNativeGuestEffectAnalyzer.cs,
|
|
// TranslatedBuildShardEmitter.cs and RuntimeNativeFunctionAbiProvider.cs together.
|
|
|
|
// addr_hex is the PAL address (see guest_abi/guest_region.h). The translator reads arg_list as
|
|
// the guest ABI, so the unused wrapper keeps it checked against the implementation.
|
|
#define PPC_NATIVE_OVERRIDE(addr_hex, name, ret_type, arg_list, call_list) \
|
|
[[maybe_unused]] static ret_type native_signature_##addr_hex arg_list { return name call_list; } \
|
|
REGISTER_NATIVE_FUNCTION(0x##addr_hex, name)
|
|
|
|
#define PPC_NATIVE_OVERRIDE_VOID(addr_hex, name, arg_list, call_list) \
|
|
[[maybe_unused]] static void native_signature_##addr_hex arg_list { name call_list; } \
|
|
REGISTER_NATIVE_FUNCTION(0x##addr_hex, name)
|