Update of /cvsroot/vba/VisualBoyAdvance/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv994
Modified Files:
arm-new.h bios.cpp
Log Message:
- fix prefetch emulation when MSR changes T bit (not recommended by ARM docs)
- fix BIOS HuffUnComp emulation fix (off by one byte)
Index: bios.cpp
===================================================================
RCS file: /cvsroot/vba/VisualBoyAdvance/src/bios.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** bios.cpp 15 Sep 2004 22:12:52 -0000 1.13
--- bios.cpp 9 Nov 2004 16:07:51 -0000 1.14
***************
*** 549,553 ****
u32 treeStart = source;
! source += (treeSize+1)<<1;
int len = header >> 8;
--- 549,553 ----
u32 treeStart = source;
! source += ((treeSize+1)<<1)-1; // minus because we already skipped one byte
int len = header >> 8;
Index: arm-new.h
===================================================================
RCS file: /cvsroot/vba/VisualBoyAdvance/src/arm-new.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** arm-new.h 15 Sep 2004 22:12:52 -0000 1.12
--- arm-new.h 9 Nov 2004 16:07:51 -0000 1.13
***************
*** 3232,3235 ****
--- 3232,3239 ----
reg[16].I = newValue;
CPUUpdateFlags();
+ if(!armState) { // this should not be allowed, but it seems to work
+ THUMB_PREFETCH;
+ reg[15].I = armNextPC + 2;
+ }
}
break;
***************
*** 3344,3347 ****
--- 3348,3355 ----
reg[16].I = newValue;
CPUUpdateFlags();
+ if(!armState) { // this should not be allowed, but it seems to work
+ THUMB_PREFETCH;
+ reg[15].I = armNextPC + 2;
+ }
}
break;
|