# Hook points: recompiled game functions that the port's native code can wrap or replace
# (port/src/hooks.cpp; see RHookFn in tools/recomp/runtime/recomp.h).
# Format: <address> <name>  # purpose. USA v1.3.0 addresses. Adding or removing one
# changes the generated code, so the code library has to be rebuilt (tools/build_game.py).
0x006442f8 sMain::updateFrameTiming   # frame-rate cap (MH4U_FPS)
0x00af5250 sMhMain::frame             # per-frame timing trace (MH4U_TRACE_FRAMES)
0x00c46380 uMhCamera::getProjMatrix   # widescreen: widen the 3D view (MH4U_WIDESCREEN)
0x002535f8 uFreeCamera::getProjMatrix # widescreen
0x0032e338 uMotionCamera::getProjMatrix  # widescreen (cutscene cameras)
0x00633188 nDraw::Scene::Scene        # wide render: main scene target size
0x0062e184 nDraw::DisplayBuffer::init # wide render: top display buffers
0x00aefd44 sCamera::Viewport::updateRegion  # wide render: top viewport regions
0x002951fc PanelManager::processTouch # second screen: trace panel touches (MH4U_TRACE_PANELS)
0x0028f2f0 PanelManager::touchAllowed # skip: the Skip button's tap put where processTouch reads the hit test (r5)
0x00288f4c PanelManager::isTapped     # second screen: trace / later bind panels to keys
0x00694c98 sMhPad::update             # second screen: trace / inject panel actions
0x00bfcfd8 sMhCamera::turnByInput     # mouse camera: the app's mouse turn added to the camera's input angles
0x00b7c010 QuestFlow::startQuest      # quest start: rebuild the quest list until it has the quest (above 60 fps)
0x0065c18c aQuest::playing            # skip: cut the wait after a quest short when the tap did nothing (weapon drawn)
0x00ae65a4 nLayout::objectConstants    # wide render: move the HUD's side objects out to the screen's edges
0x00b92e24 QuestHud::updatePanels      # touch overlay: show only the map while the quest's touch panels are up
# Screen filters: the engine's post-processing passes, render(this, cDraw*) of each uFilter class
# (docs/research/screen-filters.md); the port can skip a pass (mh4u.ini bloom, motion_blur, ...)
# or log which ones draw (trace_filters)
0x002bc238 uBloomFilter::render        # bloom
0x003b0804 uMotionBlurFilter::render   # motion blur
0x001b0890 uDOFFilter::render          # depth of field
0x002bd53c uBokehFilter::render        # bokeh
0x003b2938 uRadialBlurFilter::render   # radial blur (uMhRadialBlurFilter too)
0x002d3168 uMultiBlurFilter::render    # multi blur
0x0025655c uHazeFilter::render         # heat haze (uMhHazeFilter too)
0x003dd740 uColorCorrectFilter::render # colour correction (trace only)
0x002bffc0 uColorFilter::render        # colour, fades (uFadeFilter too; trace only)
0x003a1a6c uCrossFadeFilter::render    # cross-fade (trace only)
0x003aeccc uImagePlaneFilter::render   # image plane (trace only)
0x0040a218 uImagePlaneFilterRange::render  # image plane range (trace only)
0x003808ac uOutlineFilter::render      # outline (trace only)
0x00385c34 uTVNoiseFilter::render      # TV noise (trace only)
