diff options
| author | hrydgard <hrydgard@gmail.com> | 2008-11-09 19:54:51 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2008-11-09 19:54:51 +0000 |
| commit | ee3dae495276ba1140bab287c1b17099f1a1ff96 (patch) | |
| tree | a11c0ec42a8c2d3d13b7fcca31d113ef75059af9 /Source | |
| parent | 35e8951f995cd78dcc6bb2a6d16df76574d89fbe (diff) | |
More AX
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1104 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source')
3 files changed, 32 insertions, 51 deletions
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXStructs.h b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXStructs.h index f1e24384c3..582e7e8aba 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXStructs.h +++ b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXStructs.h @@ -162,6 +162,14 @@ struct PBLpf u16 b0;
};
+struct PBHpf
+{
+ u16 enabled;
+ u16 yn1;
+ u16 a0;
+ u16 b0;
+};
+
struct AXParamBlockWii
{
u16 next_pb_hi;
@@ -172,9 +180,9 @@ struct AXParamBlockWii u16 src_type; // Type of sample rate converter (none, ?, linear)
u16 coef_select;
+ u32 mixer_control;
- u16 mixer_control;
- u16 running; // 1=RUN 0=STOP
+ u16 running; // 1=RUN 0=STOP
u16 is_stream; // 1 = stream, 0 = one shot
PBMixerWii mixer;
@@ -188,6 +196,7 @@ struct AXParamBlockWii PBSampleRateConverter src;
PBADPCMLoopInfo adpcm_loop_info;
PBLpf lpf;
+ PBHpf hpf;
u16 pad[22];
};
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp index 36b2febc34..53e6b2e75a 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp @@ -206,10 +206,6 @@ bool CUCode_AXWii::AXTask(u32& _uMail) u32 Addr__AXOutSBuffer_2;
u32 Addr__A;
u32 Addr__12;
- u32 Addr__4_1;
- u32 Addr__4_2;
- u32 Addr__4_3;
- u32 Addr__4_4;
u32 Addr__5_1;
u32 Addr__5_2;
u32 Addr__6;
@@ -250,40 +246,30 @@ bool CUCode_AXWii::AXTask(u32& _uMail) break;
case 0x0001:
- {
+ {
u32 address = Memory_Read_U32(uAddress);
uAddress += 4;
DebugLog("AXLIST 1: %08x", address);
- }
+ }
break;
- //
- // Somewhere we should be getting a bitmask of AX_SYNC values
- // that tells us what has been updated
- // Dunno if important
- //
- case 0x0002: //02
+ case 0x0003:
{
- m_addressPBs = Memory_Read_U32(uAddress);
+ u32 address = Memory_Read_U32(uAddress);
uAddress += 4;
+ DebugLog("AXLIST 3: %08x", address);
+ }
+ break;
+ case 0x0004: // PBs are here now
+ m_addressPBs = Memory_Read_U32(uAddress);
mixer_HLEready = true;
DebugLog("AXLIST PB address: %08x", m_addressPBs);
#ifdef _WIN32
DebugLog("Update the SoundThread to be in sync");
DSound::DSound_UpdateSound(); //do it in this thread to avoid sync problems
#endif
- }
- break;
-
- case 0x0003:
- DebugLog("AXLIST command 0x0003 ????");
- break;
-
- case 0x0004: // AUX?
- Addr__4_1 = Memory_Read_U32(uAddress);
uAddress += 4;
- DebugLog("AXLIST 4 address: %08x", Addr__4_1);
break;
case 0x0005:
@@ -300,20 +286,20 @@ bool CUCode_AXWii::AXTask(u32& _uMail) Addr__6 = Memory_Read_U32(uAddress);
uAddress += 10;
DebugLog("AXLIST 6 address: %08x", Addr__6);
- break;
+ break;
- case 0x0007: // AXLIST_SBUFFER
+/* case 0x0007: // AXLIST_SBUFFER
Addr__AXOutSBuffer = Memory_Read_U32(uAddress);
uAddress += 4;
// uAddress += 12;
DebugLog("AXLIST OutSBuffer address: %08x", Addr__AXOutSBuffer);
- break;
+ break;*/
- case 0x0009:
+/* case 0x0009:
Addr__9 = Memory_Read_U32(uAddress);
uAddress += 4;
DebugLog("AXLIST 6 address: %08x", Addr__9);
- break;
+ break;*/
case 0x000a: // AXLIST_COMPRESSORTABLE
Addr__A = Memory_Read_U32(uAddress);
@@ -328,6 +314,11 @@ bool CUCode_AXWii::AXTask(u32& _uMail) uAddress += 4 * 2; // then two RAM addressses
break;
+ case 0x000c:
+ uAddress += 2; // one 0x8000 in rabbids
+ uAddress += 4 * 2; // then two RAM addressses
+ break;
+
case 0x000d:
uAddress += 4 * 4;
break;
@@ -338,26 +329,6 @@ bool CUCode_AXWii::AXTask(u32& _uMail) DebugLog("AXLIST end, wii stylee.");
break;
- case 0x0010: //Super Monkey Ball 2
- DebugLog("AXLIST unknown");
- //should probably read/skip stuff here
- uAddress += 8;
- break;
-
- case 0x0011:
- uAddress += 4;
- break;
-
- case 0x0012:
- Addr__12 = Memory_Read_U16(uAddress);
- uAddress += 2;
- break;
-
- case 0x0013:
- uAddress += 6 * 4; // 6 Addresses.
- break;
-
-
default:
{
static bool bFirst = true;
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCodes.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCodes.cpp index 2016e1bca8..25e41b1d7b 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCodes.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCodes.cpp @@ -72,8 +72,9 @@ IUCode* UCodeFactory(u32 _CRC, CMailHandler& _rMailHandler) DebugLog("Zelda Wii ucode chosen");
return new CUCode_Zelda(_rMailHandler);
+ case 0x5ef56da3: // AX demo
case 0x347112ba: // raving rabbits
- DebugLog("Wii - AXWii chosen");
+ DebugLog("Wii - AXWii chosen");
return new CUCode_AXWii(_rMailHandler);
default:
|
