From: <mta...@us...> - 2009-11-19 11:43:11
|
Revision: 3084 http://desmume.svn.sourceforge.net/desmume/?rev=3084&view=rev Author: mtabachenko Date: 2009-11-19 11:43:05 +0000 (Thu, 19 Nov 2009) Log Message: ----------- ops, sorry :( Modified Paths: -------------- trunk/desmume/src/NDSSystem.cpp Modified: trunk/desmume/src/NDSSystem.cpp =================================================================== --- trunk/desmume/src/NDSSystem.cpp 2009-11-19 11:40:34 UTC (rev 3083) +++ trunk/desmume/src/NDSSystem.cpp 2009-11-19 11:43:05 UTC (rev 3084) @@ -2964,7 +2964,37 @@ ((u16 *)MMU.ARM9_REG)[0x130>>1] = (u16)pad; ((u16 *)MMU.ARM7_REG)[0x130>>1] = (u16)pad; + u16 k_cnt = ((u16 *)MMU.ARM9_REG)[0x132>>1]; + if ( k_cnt & (1<<14)) + { + //INFO("ARM9: KeyPad IRQ (pad 0x%04X, cnt 0x%04X (condition %s))\n", pad, k_cnt, k_cnt&(1<<15)?"AND":"OR"); + u16 k_cnt_selected = (k_cnt & 0x3F); + if (k_cnt&(1<<15)) // AND + { + if ((~pad & k_cnt_selected) == k_cnt_selected) NDS_makeARM9Int(12); + } + else // OR + { + if (~pad & k_cnt_selected) NDS_makeARM9Int(12); + } + } + k_cnt = ((u16 *)MMU.ARM7_REG)[0x132>>1]; + if ( k_cnt & (1<<14)) + { + //INFO("ARM7: KeyPad IRQ (pad 0x%04X, cnt 0x%04X (condition %s))\n", pad, k_cnt, k_cnt&(1<<15)?"AND":"OR"); + u16 k_cnt_selected = (k_cnt & 0x3F); + if (k_cnt&(1<<15)) // AND + { + if ((~pad & k_cnt_selected) == k_cnt_selected) NDS_makeARM7Int(12); + } + else // OR + { + if (~pad & k_cnt_selected) NDS_makeARM7Int(12); + } + } + + if(input.touch.isTouch) { nds.touchX = input.touch.touchX; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |