diff --git a/hw/xbox/mcpx/apu_int.h b/hw/xbox/mcpx/apu_int.h index 108a834e12..f25ae48b07 100644 --- a/hw/xbox/mcpx/apu_int.h +++ b/hw/xbox/mcpx/apu_int.h @@ -95,32 +95,7 @@ typedef struct MCPXAPUState { } se; /* Voice Processor */ - struct { - MemoryRegion mmio; - VoiceWorkDispatch voice_work_dispatch; - MCPXAPUVoiceFilter filters[MCPX_HW_MAX_VOICES]; - QemuSpin out_buf_lock; - Fifo8 out_buf; - - // FIXME: Where are these stored? - int ssl_base_page; - MCPXAPUVPSSLData ssl[MCPX_HW_MAX_VOICES]; - uint8_t hrtf_headroom; - uint8_t hrtf_submix[4]; - uint8_t submix_headroom[NUM_MIXBINS]; - float sample_buf[NUM_SAMPLES_PER_FRAME][2]; - uint64_t voice_locked[4]; - QemuSpin voice_spinlocks[MCPX_HW_MAX_VOICES]; - - struct { - int current_entry; - // FIXME: Stored in RAM - struct { - float hrir[2][HRTF_NUM_TAPS]; - float itd; - } entries[HRTF_ENTRY_COUNT]; - } hrtf; - } vp; + MCPXAPUVPState vp; /* Global Processor */ struct { diff --git a/hw/xbox/mcpx/vp/vp.h b/hw/xbox/mcpx/vp/vp.h index ff65f0d034..808a8d57fd 100644 --- a/hw/xbox/mcpx/vp/vp.h +++ b/hw/xbox/mcpx/vp/vp.h @@ -75,6 +75,33 @@ typedef struct VoiceWorkDispatch { int queue_len; } VoiceWorkDispatch; +typedef struct { + MemoryRegion mmio; + VoiceWorkDispatch voice_work_dispatch; + MCPXAPUVoiceFilter filters[MCPX_HW_MAX_VOICES]; + QemuSpin out_buf_lock; + Fifo8 out_buf; + + // FIXME: Where are these stored? + int ssl_base_page; + MCPXAPUVPSSLData ssl[MCPX_HW_MAX_VOICES]; + uint8_t hrtf_headroom; + uint8_t hrtf_submix[4]; + uint8_t submix_headroom[NUM_MIXBINS]; + float sample_buf[NUM_SAMPLES_PER_FRAME][2]; + uint64_t voice_locked[4]; + QemuSpin voice_spinlocks[MCPX_HW_MAX_VOICES]; + + struct { + int current_entry; + // FIXME: Stored in RAM + struct { + float hrir[2][HRTF_NUM_TAPS]; + float itd; + } entries[HRTF_ENTRY_COUNT]; + } hrtf; +} MCPXAPUVPState; + extern const MemoryRegionOps vp_ops; void mcpx_apu_vp_init(MCPXAPUState *d);