X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=spc700a.s;h=b0ba892ecae59ada53d4f4ae05e90b866cd372c0;hb=HEAD;hp=4d4174366f548ee1e36a5bf14fb32e6e913114d7;hpb=3ddd6d5ea2811b783bf349c8947cf1bbaaf3c8b9;p=drnoksnes diff --git a/spc700a.s b/spc700a.s index 4d41743..b0ba892 100644 --- a/spc700a.s +++ b/spc700a.s @@ -11,7 +11,7 @@ @ the code is released under Snes9x license. See spcgen.c or any other source file @ from Snes9x source tree. - +.text .extern IAPU .extern CPU @ for STOP and SLEEP .extern S9xAPUGetByte @@ -20,6 +20,7 @@ .extern S9xAPUSetByteZ .global spc700_execute @ int cycles + .type spc700_execute, function .global Spc700JumpTab opcode .req r3 @@ -55,7 +56,7 @@ spc700_execute: @ int cycles mov cycles,r0 @ Cycles add r0,context,#iapu_allregs_load ldmia r0,{opcodes,spc_pc,spc_ya,spc_p,spc_x,spc_ram} - mov spc_s,spc_x,lsr #8 + uxtb spc_s,spc_x,ror #8 and spc_x,spc_x,#0xff ldrb opcode,[spc_pc],#1 @ Fetch first opcode @@ -88,6 +89,7 @@ Apu01: mov r0,r0,lsr #8 strb r0,[r1,#0x100] sub spc_s,spc_s,#2 + uxtb spc_s, spc_s ldr r0,[context,#iapu_extraram] ldrh r0,[r0,#0x1e] add spc_pc,spc_ram,r0