Update of /cvsroot/vba/VisualBoyAdvance/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1641
Modified Files:
bios.cpp
Log Message:
- Fixed Arctan2.
Index: bios.cpp
===================================================================
RCS file: /cvsroot/vba/VisualBoyAdvance/src/bios.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** bios.cpp 18 Nov 2004 01:18:36 -0000 1.15
--- bios.cpp 7 Jun 2005 10:19:26 -0000 1.16
***************
*** 101,114 ****
#endif
! s16 x = reg[0].I;
! s16 y = reg[1].I;
! s16 res = 0;
if (y == 0) {
! res = 0x8000 & x;
} else {
if (x == 0) {
! res = (0x8000 & y) + 0x4000;
} else {
! if (abs(x) > abs(y)) {
reg[1].I = x;
reg[0].I = y << 14;
--- 101,114 ----
#endif
! s32 x = reg[0].I;
! s32 y = reg[1].I;
! u32 res = 0;
if (y == 0) {
! res = ((x>>16) & 0x8000);
} else {
if (x == 0) {
! res = ((y>>16) & 0x8000) + 0x4000;
} else {
! if ((abs(x) > abs(y)) || ((abs(x) == abs(y)) && (!((x<0) && (y<0))))) {
reg[1].I = x;
reg[0].I = y << 14;
***************
*** 118,131 ****
res = 0x8000 + reg[0].I;
else
! res = ((y & 0x8000) << 1 ) + reg[0].I;
} else {
reg[0].I = x << 14;
BIOS_Div();
BIOS_ArcTan();
! res = (0x4000 + (y & 0x8000)) - reg[0].I;
}
}
}
! reg[0].I = ((u32)res) & 0xffff;
#ifdef DEV_VERSION
--- 118,131 ----
res = 0x8000 + reg[0].I;
else
! res = (((y>>16) & 0x8000)<<1) + reg[0].I;
} else {
reg[0].I = x << 14;
BIOS_Div();
BIOS_ArcTan();
! res = (0x4000 + ((y>>16) & 0x8000)) - reg[0].I;
}
}
}
! reg[0].I = res;
#ifdef DEV_VERSION
***************
*** 135,139 ****
}
#endif
! }
void BIOS_BitUnPack()
--- 135,139 ----
}
#endif
! }
void BIOS_BitUnPack()
|