Revision: 4324
http://desmume.svn.sourceforge.net/desmume/?rev=4324&view=rev
Author: gocha
Date: 2012-07-27 11:26:55 +0000 (Fri, 27 Jul 2012)
Log Message:
-----------
0.9.8: merge r4255,r4269,r4286,r4288,r4302,r4322,r4323
Revision Links:
--------------
http://desmume.svn.sourceforge.net/desmume/?rev=4255&view=rev
http://desmume.svn.sourceforge.net/desmume/?rev=4269&view=rev
http://desmume.svn.sourceforge.net/desmume/?rev=4286&view=rev
http://desmume.svn.sourceforge.net/desmume/?rev=4288&view=rev
http://desmume.svn.sourceforge.net/desmume/?rev=4302&view=rev
http://desmume.svn.sourceforge.net/desmume/?rev=4322&view=rev
http://desmume.svn.sourceforge.net/desmume/?rev=4323&view=rev
Modified Paths:
--------------
branches/release_0_9_8/desmume/src/GPU.cpp
branches/release_0_9_8/desmume/src/GPU_osd.cpp
branches/release_0_9_8/desmume/src/MMU.cpp
branches/release_0_9_8/desmume/src/NDSSystem.cpp
branches/release_0_9_8/desmume/src/NDSSystem.h
branches/release_0_9_8/desmume/src/lua-engine.cpp
branches/release_0_9_8/desmume/src/windows/hotkey.cpp
branches/release_0_9_8/desmume/src/windows/hotkey.h
branches/release_0_9_8/desmume/src/windows/main.cpp
branches/release_0_9_8/desmume/src/windows/main.h
branches/release_0_9_8/desmume/src/windows/resource.h
branches/release_0_9_8/desmume/src/windows/resources.rc
branches/release_0_9_8/desmume/src/windows/soundView.cpp
Modified: branches/release_0_9_8/desmume/src/GPU.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/GPU.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/GPU.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -2038,8 +2038,9 @@
switch(gpu->setFinalColorBck_funcNum)
{
//for backdrops, blend isnt applied (it's illogical, isnt it?)
- case 0:
- case 1:
+ case 0:
+ case 1:
+PLAIN_CLEAR:
memset_u16_le<256>(gpu->currDst,backdrop_color);
break;
@@ -2047,10 +2048,12 @@
case 2:
if(gpu->BLDCNT & 0x20) //backdrop is selected for color effect
memset_u16_le<256>(gpu->currDst,gpu->currentFadeInColors[backdrop_color]);
+ else goto PLAIN_CLEAR;
break;
case 3:
if(gpu->BLDCNT & 0x20) //backdrop is selected for color effect
memset_u16_le<256>(gpu->currDst,gpu->currentFadeOutColors[backdrop_color]);
+ else goto PLAIN_CLEAR;
break;
//windowed cases apparently need special treatment? why? can we not render the backdrop? how would that even work?
Modified: branches/release_0_9_8/desmume/src/GPU_osd.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/GPU_osd.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/GPU_osd.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -433,9 +433,10 @@
aggDraw.hud->line(temptouch.X, temptouch.Y - 256, temptouch.X, temptouch.Y + 384); //vert
}
- if(nds.isTouch) {
- temptouch.X = nds.scr_touchX;
- temptouch.Y = nds.scr_touchY;
+ if(nds.isTouch)
+ {
+ temptouch.X = nds.scr_touchX / 16;
+ temptouch.Y = nds.scr_touchY / 16;
aggDraw.hud->lineColor(255, 0, 0, 128);
aggDraw.hud->line(temptouch.X - 256, temptouch.Y + 192, temptouch.X + 256, temptouch.Y + 192); //horiz
aggDraw.hud->line(temptouch.X, temptouch.Y - 256, temptouch.X, temptouch.Y + 384); //vert
Modified: branches/release_0_9_8/desmume/src/MMU.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/MMU.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/MMU.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -4029,8 +4029,11 @@
if(nds.adc_jitterctr == 25)
{
nds.adc_jitterctr = 0;
- nds.adc_touchY ^= 16;
- nds.adc_touchX ^= 16;
+ if (nds.stylusJitter)
+ {
+ nds.adc_touchY ^= 16;
+ nds.adc_touchX ^= 16;
+ }
}
if(MMU.SPI_CNT&(1<<11))
{
Modified: branches/release_0_9_8/desmume/src/NDSSystem.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/NDSSystem.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/NDSSystem.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -2482,6 +2482,7 @@
nds.ConsoleType = CommonSettings.ConsoleType;
nds._DebugConsole = CommonSettings.DebugConsole;
nds.ensataEmulation = CommonSettings.EnsataEmulation;
+ nds.stylusJitter = CommonSettings.StylusJitter;
nds.ensataHandshake = ENSATA_HANDSHAKE_none;
nds.ensataIpcSyncCounter = 0;
SetupMMU(nds.Is_DebugConsole(),nds.Is_DSI());
Modified: branches/release_0_9_8/desmume/src/NDSSystem.h
===================================================================
--- branches/release_0_9_8/desmume/src/NDSSystem.h 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/NDSSystem.h 2012-07-27 11:26:55 UTC (rev 4324)
@@ -177,6 +177,7 @@
u16 adc_touchX;
u16 adc_touchY;
s32 adc_jitterctr;
+ BOOL stylusJitter;
//the DSI returns calibrated touch coords from its TSC (?), so we need to save these separately
u16 scr_touchX;
@@ -507,6 +508,7 @@
, spu_advanced(false)
, StylusPressure(50)
, ConsoleType(NDS_CONSOLE_TYPE_FAT)
+ , StylusJitter(true)
{
strcpy(ARM9BIOS, "biosnds9.bin");
strcpy(ARM7BIOS, "biosnds7.bin");
@@ -553,6 +555,7 @@
bool rigorous_timing;
int StylusPressure;
+ bool StylusJitter;
bool dispLayers[2][5];
Modified: branches/release_0_9_8/desmume/src/lua-engine.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/lua-engine.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/lua-engine.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -1856,7 +1856,7 @@
{
if(IsHardwareAddressValid(a))
{
- unsigned char value = (unsigned char)(_MMU_read08<ARMCPU_ARM9>(address) & 0xFF);
+ unsigned char value = (unsigned char)(_MMU_read08<ARMCPU_ARM9>(a) & 0xFF);
lua_pushinteger(L, value);
lua_rawseti(L, -2, n);
}
@@ -4421,7 +4421,8 @@
return 0;
}
-static int stylus_read(lua_State *L){
+DEFINE_LUA_FUNCTION(stylus_read, "")
+{
lua_newtable(L);
@@ -4434,7 +4435,8 @@
return 1;
}
-static int stylus_peek(lua_State *L){
+DEFINE_LUA_FUNCTION(stylus_peek, "")
+{
lua_newtable(L);
@@ -4452,7 +4454,7 @@
pixCoord = std::min(std::max(pixCoord, 0), maximum-1);
return (pixCoord << 4) & 0x0FF0;
}
-static int stylus_write(lua_State *L)
+DEFINE_LUA_FUNCTION(stylus_write, "table")
{
if(movieMode == MOVIEMODE_PLAY) // don't allow tampering with a playing movie's input
return 0; // (although it might be useful sometimes...)
Modified: branches/release_0_9_8/desmume/src/windows/hotkey.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/windows/hotkey.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/windows/hotkey.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -450,8 +450,20 @@
if(CommonSettings.StylusPressure<0) CommonSettings.StylusPressure = 0;
osd->addLine("Stylus Pressure to %d%%",CommonSettings.StylusPressure);
}
+void HK_ToggleStylusJitter(int, bool justPressed) {
+ CommonSettings.StylusJitter = !CommonSettings.StylusJitter;
+ nds.stylusJitter = CommonSettings.StylusJitter;
+ WritePrivateProfileBool("Emulation", "StylusJitter", CommonSettings.StylusJitter, IniName);
+ osd->addLine("Stylus Jitter %s",CommonSettings.StylusJitter ? "On" : "Off");
+}
+void HK_Rotate0(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 0);}
+void HK_Rotate90(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 90);}
+void HK_Rotate180(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 180);}
+void HK_Rotate270(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 270);}
+
+
//======================================================================================
//=====================================DEFINITIONS======================================
//======================================================================================
@@ -535,6 +547,12 @@
keys->DecreaseSpeed.page = HOTKEY_PAGE_MAIN;
keys->DecreaseSpeed.key = VK_OEM_MINUS;
+ keys->ToggleStylusJitter.handleKeyDown = HK_ToggleStylusJitter;
+ keys->ToggleStylusJitter.code = "ToggleStylusJitter";
+ keys->ToggleStylusJitter.name = STRW(ID_LABEL_HK61);
+ keys->ToggleStylusJitter.page = HOTKEY_PAGE_MAIN;
+ keys->ToggleStylusJitter.key = NULL;
+
keys->FrameLimitToggle.handleKeyDown = HK_FrameLimitToggle;
keys->FrameLimitToggle.code = "FrameLimitToggle";
keys->FrameLimitToggle.name = STRW(ID_LABEL_HK8b);
@@ -808,6 +826,31 @@
keys->ResetLagCounter.page = HOTKEY_PAGE_MOVIE;
keys->ResetLagCounter.key = NULL;
+ //Other Page -------------------------------------------------------
+ keys->Rotate0.handleKeyDown = HK_Rotate0;
+ keys->Rotate0.code = "Rotate0";
+ keys->Rotate0.name = STRW(ID_LABEL_HK57);
+ keys->Rotate0.page = HOTKEY_PAGE_OTHER;
+ keys->Rotate0.key = NULL;
+
+ keys->Rotate90.handleKeyDown = HK_Rotate90;
+ keys->Rotate90.code = "Rotate90";
+ keys->Rotate90.name = STRW(ID_LABEL_HK58);
+ keys->Rotate90.page = HOTKEY_PAGE_OTHER;
+ keys->Rotate90.key = NULL;
+
+ keys->Rotate180.handleKeyDown = HK_Rotate180;
+ keys->Rotate180.code = "Rotate180";
+ keys->Rotate180.name = STRW(ID_LABEL_HK59);
+ keys->Rotate180.page = HOTKEY_PAGE_OTHER;
+ keys->Rotate180.key = NULL;
+
+ keys->Rotate270.handleKeyDown = HK_Rotate270;
+ keys->Rotate270.code = "Rotate270";
+ keys->Rotate270.name = STRW(ID_LABEL_HK60);
+ keys->Rotate270.page = HOTKEY_PAGE_OTHER;
+ keys->Rotate270.key = NULL;
+
//StateSlots Page --------------------------------------------------
keys->NextSaveSlot.handleKeyDown = HK_NextSaveSlot;
keys->NextSaveSlot.code = "NextSaveSlot";
Modified: branches/release_0_9_8/desmume/src/windows/hotkey.h
===================================================================
--- branches/release_0_9_8/desmume/src/windows/hotkey.h 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/windows/hotkey.h 2012-07-27 11:26:55 UTC (rev 4324)
@@ -30,6 +30,7 @@
HOTKEY_PAGE_STATE,
HOTKEY_PAGE_STATE_SLOTS,
HOTKEY_PAGE_TURBO,
+ HOTKEY_PAGE_OTHER,
NUM_HOTKEY_PAGE,
};
@@ -39,6 +40,7 @@
_T("Savestates"),
_T("Savestate Slots"),
_T("Turbo"),
+ _T("Other"),
_T("NUM_HOTKEY_PAGE"),
};
@@ -65,8 +67,10 @@
SCustomKey Slot[10];
SCustomKey QuickSave, QuickLoad, NextSaveSlot, PreviousSaveSlot;
- SCustomKey OpenROM, ReloadROM, Reset, Pause, FrameAdvance, FastForward, FastForwardToggle, IncreaseSpeed, DecreaseSpeed, FrameLimitToggle, Microphone, IncreasePressure, DecreasePressure;
+ SCustomKey Rotate0, Rotate90, Rotate180, Rotate270;
+ SCustomKey OpenROM, ReloadROM, Reset, Pause, FrameAdvance, FastForward, FastForwardToggle, IncreaseSpeed, DecreaseSpeed, FrameLimitToggle, Microphone, IncreasePressure, DecreasePressure, ToggleStylusJitter;
+
SCustomKey PlayMovie, RecordMovie, StopMovie, ToggleReadOnly;
SCustomKey TurboRight, TurboLeft, TurboDown, TurboUp, TurboSelect, TurboStart, TurboB, TurboA, TurboY, TurboX, TurboR, TurboL;
Modified: branches/release_0_9_8/desmume/src/windows/main.cpp
===================================================================
--- branches/release_0_9_8/desmume/src/windows/main.cpp 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/windows/main.cpp 2012-07-27 11:26:55 UTC (rev 4324)
@@ -435,8 +435,6 @@
void SetScreenGap(int gap);
-void SetRotate(HWND hwnd, int rot, bool user=true);
-
bool ForceRatio = true;
bool SeparationBorderDrag = true;
int ScreenGapColor = 0xFFFFFF;
Modified: branches/release_0_9_8/desmume/src/windows/main.h
===================================================================
--- branches/release_0_9_8/desmume/src/windows/main.h 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/windows/main.h 2012-07-27 11:26:55 UTC (rev 4324)
@@ -41,6 +41,7 @@
void WavEnd();
void UpdateToolWindows();
bool DemandLua();
+void SetRotate(HWND hwnd, int rot, bool user = true);
extern bool frameCounterDisplay;
extern bool FpsDisplay;
Modified: branches/release_0_9_8/desmume/src/windows/resource.h
===================================================================
--- branches/release_0_9_8/desmume/src/windows/resource.h 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/windows/resource.h 2012-07-27 11:26:55 UTC (rev 4324)
@@ -800,6 +800,11 @@
#define ID_LABEL_HK54 4519
#define ID_LABEL_HK55 4520
#define ID_LABEL_HK56 4521
+#define ID_LABEL_HK57 4522
+#define ID_LABEL_HK58 4523
+#define ID_LABEL_HK59 4524
+#define ID_LABEL_HK60 4525
+#define ID_LABEL_HK61 4526
#define IDD_MICROPHONE 5000
#define IDM_MICROPHONESETTINGS 5001
#define IDC_MICSAMPLEBROWSE 5003
Modified: branches/release_0_9_8/desmume/src/windows/resources.rc
===================================================================
--- branches/release_0_9_8/desmume/src/windows/resources.rc 2012-07-27 10:31:23 UTC (rev 4323)
+++ branches/release_0_9_8/desmume/src/windows/resources.rc 2012-07-27 11:26:55 UTC (rev 4324)
@@ -3485,6 +3485,8 @@
|