From: <rog...@us...> - 2011-11-07 07:29:59
|
Revision: 4121 http://desmume.svn.sourceforge.net/desmume/?rev=4121&view=rev Author: rogerman Date: 2011-11-07 07:29:53 +0000 (Mon, 07 Nov 2011) Log Message: ----------- - Allows the NDS input system to work on big-endian processors. Modified Paths: -------------- trunk/desmume/src/NDSSystem.cpp Modified: trunk/desmume/src/NDSSystem.cpp =================================================================== --- trunk/desmume/src/NDSSystem.cpp 2011-11-04 05:24:24 UTC (rev 4120) +++ trunk/desmume/src/NDSSystem.cpp 2011-11-07 07:29:53 UTC (rev 4121) @@ -2652,8 +2652,13 @@ if(movieMode != MOVIEMODE_INACTIVE && movieMode != MOVIEMODE_FINISHED) { // just in case, since the movie only stores 8 bits per touch coord +#ifdef WORDS_BIGENDIAN + rawUserInput.touch.touchX &= 0xF00F; + rawUserInput.touch.touchY &= 0xF00F; +#else rawUserInput.touch.touchX &= 0x0FF0; rawUserInput.touch.touchY &= 0x0FF0; +#endif } } void NDS_releaseTouch(void) @@ -2717,6 +2722,7 @@ ((input.buttons.E ? 0 : 0x80) << 1) | ((input.buttons.W ? 0 : 0x80) << 2)) ; + pad = LOCAL_TO_LE_16(pad); ((u16 *)MMU.ARM9_REG)[0x130>>1] = (u16)pad; ((u16 *)MMU.ARM7_REG)[0x130>>1] = (u16)pad; @@ -2789,13 +2795,15 @@ countLid--; } - u16 padExt = (((u16 *)MMU.ARM7_REG)[0x136>>1] & 0x0070) | - ((input.buttons.X ? 0 : 0x80) >> 7) | + u16 padExt = ((input.buttons.X ? 0 : 0x80) >> 7) | ((input.buttons.Y ? 0 : 0x80) >> 6) | ((input.buttons.G ? 0 : 0x80) >> 4) | ((LidClosed) << 7) | 0x0034; + padExt = LOCAL_TO_LE_16(padExt); + padExt |= (((u16 *)MMU.ARM7_REG)[0x136>>1] & 0x0070); + ((u16 *)MMU.ARM7_REG)[0x136>>1] = (u16)padExt; InputDisplayString=MakeInputDisplayString(padExt, pad); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |