diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-03-12 16:29:06 -0300 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2018-03-12 16:29:06 -0300 |
| commit | d88b5c762143d42367b9cbcdb48337db482dbed3 (patch) | |
| tree | 80c8aab8b8f01d3a936146367a3c49005fe5b0dc /ChocolArm64 | |
| parent | e32f27158fa314492af35800eb0c84ca0e7b5bd4 (diff) | |
Fix GetAudioRenderersProcessMasterVolume which was totally wrong
Diffstat (limited to 'ChocolArm64')
| -rw-r--r-- | ChocolArm64/Instruction/AInstEmitSystem.cs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ChocolArm64/Instruction/AInstEmitSystem.cs b/ChocolArm64/Instruction/AInstEmitSystem.cs index f9d18602..80b56604 100644 --- a/ChocolArm64/Instruction/AInstEmitSystem.cs +++ b/ChocolArm64/Instruction/AInstEmitSystem.cs @@ -89,6 +89,9 @@ namespace ChocolArm64.Instruction //We treat it as no-op here since we don't have any cache being emulated anyway. AOpCodeSystem Op = (AOpCodeSystem)Context.CurrOp; + //TODO: We should throw on unimplemented sys instructions here, + //since it causing some problems when the programs expects some values + //that never return. switch (GetPackedId(Op)) { case 0b11_011_0111_0100_001: @@ -97,7 +100,7 @@ namespace ChocolArm64.Instruction for (int Offs = 0; Offs < (4 << AThreadState.DczSizeLog2); Offs += 8) { Context.EmitLdarg(ATranslatedSub.MemoryArgIdx); - Context.EmitLdint(Op.Rt); + Context.EmitLdintzr(Op.Rt); Context.EmitLdc_I(Offs); Context.Emit(OpCodes.Add); @@ -106,8 +109,13 @@ namespace ChocolArm64.Instruction AInstEmitMemoryHelper.EmitWriteCall(Context, 3); } + break; } + + //No-op + case 0b11_011_0111_1110_001: //DC CIVAC + break; } } |
