diff --git a/desmume/src/cocoa/DeSmuME.cbp b/desmume/src/cocoa/DeSmuME.cbp index c10073f88..2d597dd90 100644 --- a/desmume/src/cocoa/DeSmuME.cbp +++ b/desmume/src/cocoa/DeSmuME.cbp @@ -41,6 +41,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]> + + @@ -55,6 +57,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]> - - - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + @@ -163,7 +142,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]> - + @@ -193,71 +172,36 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]> - - + - - + - - + - - + - - + - - + - - - - + - - + - - + - - + - - + - - - - diff --git a/desmume/src/cocoa/DeSmuME.xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME.xcodeproj/project.pbxproj index ce13c15ff..b651669b1 100644 --- a/desmume/src/cocoa/DeSmuME.xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME.xcodeproj/project.pbxproj @@ -7,6 +7,27 @@ objects = { /* Begin PBXBuildFile section */ + 722764620E78E18100AEDC8B /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227644A0E78E18100AEDC8B /* arm_instructions.cpp */; }; + 722764630E78E18100AEDC8B /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227644B0E78E18100AEDC8B /* armcpu.cpp */; }; + 722764640E78E18100AEDC8B /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227644C0E78E18100AEDC8B /* bios.cpp */; }; + 722764650E78E18100AEDC8B /* cflash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227644D0E78E18100AEDC8B /* cflash.cpp */; }; + 722764660E78E18100AEDC8B /* cp15.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227644E0E78E18100AEDC8B /* cp15.cpp */; }; + 722764670E78E18100AEDC8B /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227644F0E78E18100AEDC8B /* debug.cpp */; }; + 722764680E78E18100AEDC8B /* Disassembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764500E78E18100AEDC8B /* Disassembler.cpp */; }; + 722764690E78E18100AEDC8B /* FIFO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764510E78E18100AEDC8B /* FIFO.cpp */; }; + 7227646A0E78E18100AEDC8B /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764520E78E18100AEDC8B /* fs-linux.cpp */; }; + 7227646C0E78E18100AEDC8B /* gl_vertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764550E78E18100AEDC8B /* gl_vertex.cpp */; }; + 7227646D0E78E18100AEDC8B /* GPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764560E78E18100AEDC8B /* GPU.cpp */; }; + 7227646E0E78E18100AEDC8B /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764570E78E18100AEDC8B /* matrix.cpp */; }; + 7227646F0E78E18100AEDC8B /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764580E78E18100AEDC8B /* mc.cpp */; }; + 722764700E78E18100AEDC8B /* MMU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764590E78E18100AEDC8B /* MMU.cpp */; }; + 722764710E78E18100AEDC8B /* NDSSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227645A0E78E18100AEDC8B /* NDSSystem.cpp */; }; + 722764720E78E18100AEDC8B /* render3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227645B0E78E18100AEDC8B /* render3D.cpp */; }; + 722764730E78E18100AEDC8B /* ROMReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227645C0E78E18100AEDC8B /* ROMReader.cpp */; }; + 722764740E78E18100AEDC8B /* saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227645D0E78E18100AEDC8B /* saves.cpp */; }; + 722764760E78E18100AEDC8B /* SPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7227645F0E78E18100AEDC8B /* SPU.cpp */; }; + 722764770E78E18100AEDC8B /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764600E78E18100AEDC8B /* thumb_instructions.cpp */; }; + 722764780E78E18100AEDC8B /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 722764610E78E18100AEDC8B /* wifi.cpp */; }; 7233955A0E596E9100999693 /* speed_limit_selection_window.m in Sources */ = {isa = PBXBuildFile; fileRef = 723395590E596E9100999693 /* speed_limit_selection_window.m */; }; 726D68AC0E310B1800800002 /* French.nib in Resources */ = {isa = PBXBuildFile; fileRef = 726D68AA0E310B1800800002 /* French.nib */; }; 726D68AD0E310B1800800002 /* French.strings in Resources */ = {isa = PBXBuildFile; fileRef = 726D68AB0E310B1800800002 /* French.strings */; }; @@ -16,40 +37,19 @@ 7277B6E50D9E045700D283BD /* Japanese.nib in Resources */ = {isa = PBXBuildFile; fileRef = 7277B6E10D9E045700D283BD /* Japanese.nib */; }; 7277B6E60D9E045700D283BD /* Japanese.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7277B6E20D9E045700D283BD /* Japanese.strings */; }; 7277B8EB0D9F25F700D283BD /* about.m in Sources */ = {isa = PBXBuildFile; fileRef = 7277B8EA0D9F25F700D283BD /* about.m */; }; + 7286BEA20E7C1EAF00C9F662 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7286BEA10E7C1EAF00C9F662 /* OGLRender.cpp */; }; 729BEC6F0D9D55DB00ED561B /* cocoa_util.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC5A0D9D55DB00ED561B /* cocoa_util.m */; }; 729BEC710D9D55DB00ED561B /* input.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC5E0D9D55DB00ED561B /* input.m */; }; 729BEC730D9D55DB00ED561B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC600D9D55DB00ED561B /* main.m */; }; 729BEC740D9D55DB00ED561B /* main_window.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC620D9D55DB00ED561B /* main_window.m */; }; - 729BEC750D9D55DB00ED561B /* nds_control.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC640D9D55DB00ED561B /* nds_control.m */; }; + 729BEC750D9D55DB00ED561B /* nds_control.mm in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC640D9D55DB00ED561B /* nds_control.mm */; }; 729BEC760D9D55DB00ED561B /* preferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC660D9D55DB00ED561B /* preferences.m */; }; 729BEC770D9D55DB00ED561B /* rom_info.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC680D9D55DB00ED561B /* rom_info.m */; }; 729BEC780D9D55DB00ED561B /* screenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC6A0D9D55DB00ED561B /* screenshot.m */; }; 729BEC790D9D55DB00ED561B /* sndOSX.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC6C0D9D55DB00ED561B /* sndOSX.m */; }; 729BEC7A0D9D55DB00ED561B /* video_output_view.m in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC6E0D9D55DB00ED561B /* video_output_view.m */; }; - 729BECCC0D9D57AF00ED561B /* arm_instructions.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC9B0D9D57AF00ED561B /* arm_instructions.c */; }; - 729BECCD0D9D57AF00ED561B /* armcpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC9D0D9D57AF00ED561B /* armcpu.c */; }; - 729BECCE0D9D57AF00ED561B /* bios.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BEC9F0D9D57AF00ED561B /* bios.c */; }; - 729BECCF0D9D57AF00ED561B /* cflash.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECA20D9D57AF00ED561B /* cflash.c */; }; - 729BECD00D9D57AF00ED561B /* cp15.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECA50D9D57AF00ED561B /* cp15.c */; }; - 729BECD10D9D57AF00ED561B /* debug.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECA70D9D57AF00ED561B /* debug.c */; }; - 729BECD20D9D57AF00ED561B /* Disassembler.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECA90D9D57AF00ED561B /* Disassembler.c */; }; - 729BECD30D9D57AF00ED561B /* FIFO.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECAD0D9D57AF00ED561B /* FIFO.c */; }; - 729BECD40D9D57AF00ED561B /* fs-linux.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECAF0D9D57AF00ED561B /* fs-linux.c */; }; - 729BECD50D9D57AF00ED561B /* gl_vertex.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECB10D9D57AF00ED561B /* gl_vertex.c */; }; - 729BECD60D9D57AF00ED561B /* GPU.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECB30D9D57AF00ED561B /* GPU.c */; }; - 729BECD70D9D57AF00ED561B /* matrix.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECB50D9D57AF00ED561B /* matrix.c */; }; - 729BECD80D9D57AF00ED561B /* mc.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECB70D9D57AF00ED561B /* mc.c */; }; - 729BECD90D9D57AF00ED561B /* MMU.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECBA0D9D57AF00ED561B /* MMU.c */; }; - 729BECDA0D9D57AF00ED561B /* NDSSystem.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECBC0D9D57AF00ED561B /* NDSSystem.c */; }; - 729BECDB0D9D57AF00ED561B /* render3D.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECBF0D9D57AF00ED561B /* render3D.c */; }; - 729BECDC0D9D57AF00ED561B /* ROMReader.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECC10D9D57AF00ED561B /* ROMReader.c */; }; - 729BECDD0D9D57AF00ED561B /* saves.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECC30D9D57AF00ED561B /* saves.c */; }; - 729BECDE0D9D57AF00ED561B /* SPU.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECC50D9D57AF00ED561B /* SPU.c */; }; - 729BECDF0D9D57AF00ED561B /* thumb_instructions.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECC70D9D57AF00ED561B /* thumb_instructions.c */; }; - 729BECE00D9D57AF00ED561B /* wifi.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECCA0D9D57AF00ED561B /* wifi.c */; }; 729BECE70D9D57F600ED561B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 729BECE60D9D57F600ED561B /* OpenGL.framework */; }; 729BECF00D9D581900ED561B /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 729BECEF0D9D581900ED561B /* AudioUnit.framework */; }; - 729BECFA0D9D589E00ED561B /* OGLRender.c in Sources */ = {isa = PBXBuildFile; fileRef = 729BECF80D9D589E00ED561B /* OGLRender.c */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; /* End PBXBuildFile section */ @@ -57,6 +57,28 @@ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 7227644A0E78E18100AEDC8B /* arm_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_instructions.cpp; path = ../arm_instructions.cpp; sourceTree = SOURCE_ROOT; }; + 7227644B0E78E18100AEDC8B /* armcpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armcpu.cpp; path = ../armcpu.cpp; sourceTree = SOURCE_ROOT; }; + 7227644C0E78E18100AEDC8B /* bios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bios.cpp; path = ../bios.cpp; sourceTree = SOURCE_ROOT; }; + 7227644D0E78E18100AEDC8B /* cflash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cflash.cpp; path = ../cflash.cpp; sourceTree = SOURCE_ROOT; }; + 7227644E0E78E18100AEDC8B /* cp15.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cp15.cpp; path = ../cp15.cpp; sourceTree = SOURCE_ROOT; }; + 7227644F0E78E18100AEDC8B /* debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = debug.cpp; path = ../debug.cpp; sourceTree = SOURCE_ROOT; }; + 722764500E78E18100AEDC8B /* Disassembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Disassembler.cpp; path = ../Disassembler.cpp; sourceTree = SOURCE_ROOT; }; + 722764510E78E18100AEDC8B /* FIFO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FIFO.cpp; path = ../FIFO.cpp; sourceTree = SOURCE_ROOT; }; + 722764520E78E18100AEDC8B /* fs-linux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "fs-linux.cpp"; path = "../fs-linux.cpp"; sourceTree = SOURCE_ROOT; }; + 722764540E78E18100AEDC8B /* gdbstub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gdbstub.h; path = ../gdbstub.h; sourceTree = SOURCE_ROOT; }; + 722764550E78E18100AEDC8B /* gl_vertex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gl_vertex.cpp; path = ../gl_vertex.cpp; sourceTree = SOURCE_ROOT; }; + 722764560E78E18100AEDC8B /* GPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU.cpp; path = ../GPU.cpp; sourceTree = SOURCE_ROOT; }; + 722764570E78E18100AEDC8B /* matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = matrix.cpp; path = ../matrix.cpp; sourceTree = SOURCE_ROOT; }; + 722764580E78E18100AEDC8B /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mc.cpp; path = ../mc.cpp; sourceTree = SOURCE_ROOT; }; + 722764590E78E18100AEDC8B /* MMU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MMU.cpp; path = ../MMU.cpp; sourceTree = SOURCE_ROOT; }; + 7227645A0E78E18100AEDC8B /* NDSSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NDSSystem.cpp; path = ../NDSSystem.cpp; sourceTree = SOURCE_ROOT; }; + 7227645B0E78E18100AEDC8B /* render3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = render3D.cpp; path = ../render3D.cpp; sourceTree = SOURCE_ROOT; }; + 7227645C0E78E18100AEDC8B /* ROMReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ROMReader.cpp; path = ../ROMReader.cpp; sourceTree = SOURCE_ROOT; }; + 7227645D0E78E18100AEDC8B /* saves.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = saves.cpp; path = ../saves.cpp; sourceTree = SOURCE_ROOT; }; + 7227645F0E78E18100AEDC8B /* SPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SPU.cpp; path = ../SPU.cpp; sourceTree = SOURCE_ROOT; }; + 722764600E78E18100AEDC8B /* thumb_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = thumb_instructions.cpp; path = ../thumb_instructions.cpp; sourceTree = SOURCE_ROOT; }; + 722764610E78E18100AEDC8B /* wifi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wifi.cpp; path = ../wifi.cpp; sourceTree = SOURCE_ROOT; }; 723395580E596E9100999693 /* speed_limit_selection_window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speed_limit_selection_window.h; path = dialogs/speed_limit_selection_window.h; sourceTree = ""; }; 723395590E596E9100999693 /* speed_limit_selection_window.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = speed_limit_selection_window.m; path = dialogs/speed_limit_selection_window.m; sourceTree = ""; }; 726D68AA0E310B1800800002 /* French.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = French.nib; sourceTree = ""; }; @@ -67,6 +89,7 @@ 7277B6E10D9E045700D283BD /* Japanese.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = Japanese.nib; sourceTree = ""; }; 7277B6E20D9E045700D283BD /* Japanese.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; path = Japanese.strings; sourceTree = ""; }; 7277B8EA0D9F25F700D283BD /* about.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = about.m; sourceTree = ""; }; + 7286BEA10E7C1EAF00C9F662 /* OGLRender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OGLRender.cpp; path = ../windows/OGLRender.cpp; sourceTree = SOURCE_ROOT; }; 729BEC5A0D9D55DB00ED561B /* cocoa_util.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = cocoa_util.m; sourceTree = SOURCE_ROOT; }; 729BEC5C0D9D55DB00ED561B /* globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globals.h; sourceTree = SOURCE_ROOT; }; 729BEC5D0D9D55DB00ED561B /* input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = input.h; sourceTree = SOURCE_ROOT; }; @@ -75,7 +98,7 @@ 729BEC610D9D55DB00ED561B /* main_window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = main_window.h; sourceTree = SOURCE_ROOT; }; 729BEC620D9D55DB00ED561B /* main_window.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main_window.m; sourceTree = SOURCE_ROOT; }; 729BEC630D9D55DB00ED561B /* nds_control.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nds_control.h; sourceTree = SOURCE_ROOT; }; - 729BEC640D9D55DB00ED561B /* nds_control.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = nds_control.m; sourceTree = SOURCE_ROOT; }; + 729BEC640D9D55DB00ED561B /* nds_control.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = nds_control.mm; sourceTree = ""; }; 729BEC650D9D55DB00ED561B /* preferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = preferences.h; sourceTree = SOURCE_ROOT; }; 729BEC660D9D55DB00ED561B /* preferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = preferences.m; sourceTree = SOURCE_ROOT; }; 729BEC670D9D55DB00ED561B /* rom_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rom_info.h; sourceTree = SOURCE_ROOT; }; @@ -87,58 +110,36 @@ 729BEC6D0D9D55DB00ED561B /* video_output_view.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = video_output_view.h; sourceTree = SOURCE_ROOT; }; 729BEC6E0D9D55DB00ED561B /* video_output_view.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = video_output_view.m; sourceTree = SOURCE_ROOT; }; 729BEC9A0D9D57AF00ED561B /* ARM9.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARM9.h; path = ../ARM9.h; sourceTree = SOURCE_ROOT; }; - 729BEC9B0D9D57AF00ED561B /* arm_instructions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = arm_instructions.c; path = ../arm_instructions.c; sourceTree = SOURCE_ROOT; }; 729BEC9C0D9D57AF00ED561B /* arm_instructions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arm_instructions.h; path = ../arm_instructions.h; sourceTree = SOURCE_ROOT; }; - 729BEC9D0D9D57AF00ED561B /* armcpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = armcpu.c; path = ../armcpu.c; sourceTree = SOURCE_ROOT; }; 729BEC9E0D9D57AF00ED561B /* armcpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armcpu.h; path = ../armcpu.h; sourceTree = SOURCE_ROOT; }; - 729BEC9F0D9D57AF00ED561B /* bios.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bios.c; path = ../bios.c; sourceTree = SOURCE_ROOT; }; 729BECA00D9D57AF00ED561B /* bios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bios.h; path = ../bios.h; sourceTree = SOURCE_ROOT; }; 729BECA10D9D57AF00ED561B /* bits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bits.h; path = ../bits.h; sourceTree = SOURCE_ROOT; }; - 729BECA20D9D57AF00ED561B /* cflash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cflash.c; path = ../cflash.c; sourceTree = SOURCE_ROOT; }; 729BECA30D9D57AF00ED561B /* cflash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cflash.h; path = ../cflash.h; sourceTree = SOURCE_ROOT; }; 729BECA40D9D57AF00ED561B /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../config.h; sourceTree = SOURCE_ROOT; }; - 729BECA50D9D57AF00ED561B /* cp15.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cp15.c; path = ../cp15.c; sourceTree = SOURCE_ROOT; }; 729BECA60D9D57AF00ED561B /* cp15.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cp15.h; path = ../cp15.h; sourceTree = SOURCE_ROOT; }; - 729BECA70D9D57AF00ED561B /* debug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = debug.c; path = ../debug.c; sourceTree = SOURCE_ROOT; }; 729BECA80D9D57AF00ED561B /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debug.h; path = ../debug.h; sourceTree = SOURCE_ROOT; }; - 729BECA90D9D57AF00ED561B /* Disassembler.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Disassembler.c; path = ../Disassembler.c; sourceTree = SOURCE_ROOT; }; 729BECAA0D9D57AF00ED561B /* Disassembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Disassembler.h; path = ../Disassembler.h; sourceTree = SOURCE_ROOT; }; 729BECAB0D9D57AF00ED561B /* dscard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dscard.h; path = ../dscard.h; sourceTree = SOURCE_ROOT; }; 729BECAC0D9D57AF00ED561B /* fat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fat.h; path = ../fat.h; sourceTree = SOURCE_ROOT; }; - 729BECAD0D9D57AF00ED561B /* FIFO.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FIFO.c; path = ../FIFO.c; sourceTree = SOURCE_ROOT; }; 729BECAE0D9D57AF00ED561B /* FIFO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FIFO.h; path = ../FIFO.h; sourceTree = SOURCE_ROOT; }; - 729BECAF0D9D57AF00ED561B /* fs-linux.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "fs-linux.c"; path = "../fs-linux.c"; sourceTree = SOURCE_ROOT; }; 729BECB00D9D57AF00ED561B /* fs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fs.h; path = ../fs.h; sourceTree = SOURCE_ROOT; }; - 729BECB10D9D57AF00ED561B /* gl_vertex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_vertex.c; path = ../gl_vertex.c; sourceTree = SOURCE_ROOT; }; 729BECB20D9D57AF00ED561B /* gl_vertex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl_vertex.h; path = ../gl_vertex.h; sourceTree = SOURCE_ROOT; }; - 729BECB30D9D57AF00ED561B /* GPU.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = GPU.c; path = ../GPU.c; sourceTree = SOURCE_ROOT; }; 729BECB40D9D57AF00ED561B /* GPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GPU.h; path = ../GPU.h; sourceTree = SOURCE_ROOT; }; - 729BECB50D9D57AF00ED561B /* matrix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = matrix.c; path = ../matrix.c; sourceTree = SOURCE_ROOT; }; 729BECB60D9D57AF00ED561B /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = matrix.h; path = ../matrix.h; sourceTree = SOURCE_ROOT; }; - 729BECB70D9D57AF00ED561B /* mc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mc.c; path = ../mc.c; sourceTree = SOURCE_ROOT; }; 729BECB80D9D57AF00ED561B /* mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mc.h; path = ../mc.h; sourceTree = SOURCE_ROOT; }; 729BECB90D9D57AF00ED561B /* mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mem.h; path = ../mem.h; sourceTree = SOURCE_ROOT; }; - 729BECBA0D9D57AF00ED561B /* MMU.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = MMU.c; path = ../MMU.c; sourceTree = SOURCE_ROOT; }; 729BECBB0D9D57AF00ED561B /* MMU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMU.h; path = ../MMU.h; sourceTree = SOURCE_ROOT; }; - 729BECBC0D9D57AF00ED561B /* NDSSystem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NDSSystem.c; path = ../NDSSystem.c; sourceTree = SOURCE_ROOT; }; 729BECBD0D9D57AF00ED561B /* NDSSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NDSSystem.h; path = ../NDSSystem.h; sourceTree = SOURCE_ROOT; }; 729BECBE0D9D57AF00ED561B /* registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = registers.h; path = ../registers.h; sourceTree = SOURCE_ROOT; }; - 729BECBF0D9D57AF00ED561B /* render3D.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = render3D.c; path = ../render3D.c; sourceTree = SOURCE_ROOT; }; 729BECC00D9D57AF00ED561B /* render3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = render3D.h; path = ../render3D.h; sourceTree = SOURCE_ROOT; }; - 729BECC10D9D57AF00ED561B /* ROMReader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ROMReader.c; path = ../ROMReader.c; sourceTree = SOURCE_ROOT; }; 729BECC20D9D57AF00ED561B /* ROMReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ROMReader.h; path = ../ROMReader.h; sourceTree = SOURCE_ROOT; }; - 729BECC30D9D57AF00ED561B /* saves.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = saves.c; path = ../saves.c; sourceTree = SOURCE_ROOT; }; 729BECC40D9D57AF00ED561B /* saves.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = saves.h; path = ../saves.h; sourceTree = SOURCE_ROOT; }; - 729BECC50D9D57AF00ED561B /* SPU.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SPU.c; path = ../SPU.c; sourceTree = SOURCE_ROOT; }; 729BECC60D9D57AF00ED561B /* SPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SPU.h; path = ../SPU.h; sourceTree = SOURCE_ROOT; }; - 729BECC70D9D57AF00ED561B /* thumb_instructions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = thumb_instructions.c; path = ../thumb_instructions.c; sourceTree = SOURCE_ROOT; }; 729BECC80D9D57AF00ED561B /* thumb_instructions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = thumb_instructions.h; path = ../thumb_instructions.h; sourceTree = SOURCE_ROOT; }; 729BECC90D9D57AF00ED561B /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../types.h; sourceTree = SOURCE_ROOT; }; - 729BECCA0D9D57AF00ED561B /* wifi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wifi.c; path = ../wifi.c; sourceTree = SOURCE_ROOT; }; 729BECCB0D9D57AF00ED561B /* wifi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wifi.h; path = ../wifi.h; sourceTree = SOURCE_ROOT; }; 729BECE60D9D57F600ED561B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 729BECEF0D9D581900ED561B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; - 729BECF80D9D589E00ED561B /* OGLRender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OGLRender.c; path = ../windows/OGLRender.c; sourceTree = SOURCE_ROOT; }; 729BECF90D9D589E00ED561B /* OGLRender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OGLRender.h; path = ../windows/OGLRender.h; sourceTree = SOURCE_ROOT; }; 72C000010D9D59E60046B7EA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 72C000020D9D59E60046B7EA /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = InfoPlist.strings; sourceTree = ""; }; @@ -172,7 +173,8 @@ 729BEC610D9D55DB00ED561B /* main_window.h */, 729BEC620D9D55DB00ED561B /* main_window.m */, 729BEC630D9D55DB00ED561B /* nds_control.h */, - 729BEC640D9D55DB00ED561B /* nds_control.m */, + 729BEC640D9D55DB00ED561B /* nds_control.mm */, + 7286BEA10E7C1EAF00C9F662 /* OGLRender.cpp */, 729BEC650D9D55DB00ED561B /* preferences.h */, 729BEC660D9D55DB00ED561B /* preferences.m */, 729BEC670D9D55DB00ED561B /* rom_info.h */, @@ -229,57 +231,57 @@ 29B97315FDCFA39411CA2CEA /* Core */ = { isa = PBXGroup; children = ( - 729BECF80D9D589E00ED561B /* OGLRender.c */, + 7227644A0E78E18100AEDC8B /* arm_instructions.cpp */, + 7227644B0E78E18100AEDC8B /* armcpu.cpp */, + 7227644C0E78E18100AEDC8B /* bios.cpp */, + 7227644D0E78E18100AEDC8B /* cflash.cpp */, + 7227644E0E78E18100AEDC8B /* cp15.cpp */, + 7227644F0E78E18100AEDC8B /* debug.cpp */, + 722764500E78E18100AEDC8B /* Disassembler.cpp */, + 722764510E78E18100AEDC8B /* FIFO.cpp */, + 722764520E78E18100AEDC8B /* fs-linux.cpp */, + 722764540E78E18100AEDC8B /* gdbstub.h */, + 722764550E78E18100AEDC8B /* gl_vertex.cpp */, + 722764560E78E18100AEDC8B /* GPU.cpp */, + 722764570E78E18100AEDC8B /* matrix.cpp */, + 722764580E78E18100AEDC8B /* mc.cpp */, + 722764590E78E18100AEDC8B /* MMU.cpp */, + 7227645A0E78E18100AEDC8B /* NDSSystem.cpp */, + 7227645B0E78E18100AEDC8B /* render3D.cpp */, + 7227645C0E78E18100AEDC8B /* ROMReader.cpp */, + 7227645D0E78E18100AEDC8B /* saves.cpp */, + 7227645F0E78E18100AEDC8B /* SPU.cpp */, + 722764600E78E18100AEDC8B /* thumb_instructions.cpp */, + 722764610E78E18100AEDC8B /* wifi.cpp */, 729BECF90D9D589E00ED561B /* OGLRender.h */, 729BEC9A0D9D57AF00ED561B /* ARM9.h */, - 729BEC9B0D9D57AF00ED561B /* arm_instructions.c */, 729BEC9C0D9D57AF00ED561B /* arm_instructions.h */, - 729BEC9D0D9D57AF00ED561B /* armcpu.c */, 729BEC9E0D9D57AF00ED561B /* armcpu.h */, - 729BEC9F0D9D57AF00ED561B /* bios.c */, 729BECA00D9D57AF00ED561B /* bios.h */, 729BECA10D9D57AF00ED561B /* bits.h */, - 729BECA20D9D57AF00ED561B /* cflash.c */, 729BECA30D9D57AF00ED561B /* cflash.h */, 729BECA40D9D57AF00ED561B /* config.h */, - 729BECA50D9D57AF00ED561B /* cp15.c */, 729BECA60D9D57AF00ED561B /* cp15.h */, - 729BECA70D9D57AF00ED561B /* debug.c */, 729BECA80D9D57AF00ED561B /* debug.h */, - 729BECA90D9D57AF00ED561B /* Disassembler.c */, 729BECAA0D9D57AF00ED561B /* Disassembler.h */, 729BECAB0D9D57AF00ED561B /* dscard.h */, 729BECAC0D9D57AF00ED561B /* fat.h */, - 729BECAD0D9D57AF00ED561B /* FIFO.c */, 729BECAE0D9D57AF00ED561B /* FIFO.h */, - 729BECAF0D9D57AF00ED561B /* fs-linux.c */, 729BECB00D9D57AF00ED561B /* fs.h */, - 729BECB10D9D57AF00ED561B /* gl_vertex.c */, 729BECB20D9D57AF00ED561B /* gl_vertex.h */, - 729BECB30D9D57AF00ED561B /* GPU.c */, 729BECB40D9D57AF00ED561B /* GPU.h */, - 729BECB50D9D57AF00ED561B /* matrix.c */, 729BECB60D9D57AF00ED561B /* matrix.h */, - 729BECB70D9D57AF00ED561B /* mc.c */, 729BECB80D9D57AF00ED561B /* mc.h */, 729BECB90D9D57AF00ED561B /* mem.h */, - 729BECBA0D9D57AF00ED561B /* MMU.c */, 729BECBB0D9D57AF00ED561B /* MMU.h */, - 729BECBC0D9D57AF00ED561B /* NDSSystem.c */, 729BECBD0D9D57AF00ED561B /* NDSSystem.h */, 729BECBE0D9D57AF00ED561B /* registers.h */, - 729BECBF0D9D57AF00ED561B /* render3D.c */, 729BECC00D9D57AF00ED561B /* render3D.h */, - 729BECC10D9D57AF00ED561B /* ROMReader.c */, 729BECC20D9D57AF00ED561B /* ROMReader.h */, - 729BECC30D9D57AF00ED561B /* saves.c */, 729BECC40D9D57AF00ED561B /* saves.h */, - 729BECC50D9D57AF00ED561B /* SPU.c */, 729BECC60D9D57AF00ED561B /* SPU.h */, - 729BECC70D9D57AF00ED561B /* thumb_instructions.c */, 729BECC80D9D57AF00ED561B /* thumb_instructions.h */, 729BECC90D9D57AF00ED561B /* types.h */, - 729BECCA0D9D57AF00ED561B /* wifi.c */, 729BECCB0D9D57AF00ED561B /* wifi.h */, ); name = Core; @@ -407,36 +409,36 @@ 729BEC710D9D55DB00ED561B /* input.m in Sources */, 729BEC730D9D55DB00ED561B /* main.m in Sources */, 729BEC740D9D55DB00ED561B /* main_window.m in Sources */, - 729BEC750D9D55DB00ED561B /* nds_control.m in Sources */, + 729BEC750D9D55DB00ED561B /* nds_control.mm in Sources */, 729BEC760D9D55DB00ED561B /* preferences.m in Sources */, 729BEC770D9D55DB00ED561B /* rom_info.m in Sources */, 729BEC780D9D55DB00ED561B /* screenshot.m in Sources */, 729BEC790D9D55DB00ED561B /* sndOSX.m in Sources */, 729BEC7A0D9D55DB00ED561B /* video_output_view.m in Sources */, - 729BECCC0D9D57AF00ED561B /* arm_instructions.c in Sources */, - 729BECCD0D9D57AF00ED561B /* armcpu.c in Sources */, - 729BECCE0D9D57AF00ED561B /* bios.c in Sources */, - 729BECCF0D9D57AF00ED561B /* cflash.c in Sources */, - 729BECD00D9D57AF00ED561B /* cp15.c in Sources */, - 729BECD10D9D57AF00ED561B /* debug.c in Sources */, - 729BECD20D9D57AF00ED561B /* Disassembler.c in Sources */, - 729BECD30D9D57AF00ED561B /* FIFO.c in Sources */, - 729BECD40D9D57AF00ED561B /* fs-linux.c in Sources */, - 729BECD50D9D57AF00ED561B /* gl_vertex.c in Sources */, - 729BECD60D9D57AF00ED561B /* GPU.c in Sources */, - 729BECD70D9D57AF00ED561B /* matrix.c in Sources */, - 729BECD80D9D57AF00ED561B /* mc.c in Sources */, - 729BECD90D9D57AF00ED561B /* MMU.c in Sources */, - 729BECDA0D9D57AF00ED561B /* NDSSystem.c in Sources */, - 729BECDB0D9D57AF00ED561B /* render3D.c in Sources */, - 729BECDC0D9D57AF00ED561B /* ROMReader.c in Sources */, - 729BECDD0D9D57AF00ED561B /* saves.c in Sources */, - 729BECDE0D9D57AF00ED561B /* SPU.c in Sources */, - 729BECDF0D9D57AF00ED561B /* thumb_instructions.c in Sources */, - 729BECE00D9D57AF00ED561B /* wifi.c in Sources */, - 729BECFA0D9D589E00ED561B /* OGLRender.c in Sources */, 7277B8EB0D9F25F700D283BD /* about.m in Sources */, 7233955A0E596E9100999693 /* speed_limit_selection_window.m in Sources */, + 722764620E78E18100AEDC8B /* arm_instructions.cpp in Sources */, + 722764630E78E18100AEDC8B /* armcpu.cpp in Sources */, + 722764640E78E18100AEDC8B /* bios.cpp in Sources */, + 722764650E78E18100AEDC8B /* cflash.cpp in Sources */, + 722764660E78E18100AEDC8B /* cp15.cpp in Sources */, + 722764670E78E18100AEDC8B /* debug.cpp in Sources */, + 722764680E78E18100AEDC8B /* Disassembler.cpp in Sources */, + 722764690E78E18100AEDC8B /* FIFO.cpp in Sources */, + 7227646A0E78E18100AEDC8B /* fs-linux.cpp in Sources */, + 7227646C0E78E18100AEDC8B /* gl_vertex.cpp in Sources */, + 7227646D0E78E18100AEDC8B /* GPU.cpp in Sources */, + 7227646E0E78E18100AEDC8B /* matrix.cpp in Sources */, + 7227646F0E78E18100AEDC8B /* mc.cpp in Sources */, + 722764700E78E18100AEDC8B /* MMU.cpp in Sources */, + 722764710E78E18100AEDC8B /* NDSSystem.cpp in Sources */, + 722764720E78E18100AEDC8B /* render3D.cpp in Sources */, + 722764730E78E18100AEDC8B /* ROMReader.cpp in Sources */, + 722764740E78E18100AEDC8B /* saves.cpp in Sources */, + 722764760E78E18100AEDC8B /* SPU.cpp in Sources */, + 722764770E78E18100AEDC8B /* thumb_instructions.cpp in Sources */, + 722764780E78E18100AEDC8B /* wifi.cpp in Sources */, + 7286BEA20E7C1EAF00C9F662 /* OGLRender.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -488,6 +490,7 @@ ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)"; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( + DESMUME_OBJ_C, HAVE_LIBZ, DESMUME_COCOA, ); @@ -507,6 +510,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)"; GCC_PREPROCESSOR_DEFINITIONS = ( + DESMUME_OBJ_C, HAVE_LIBZ, DESMUME_COCOA, ); diff --git a/desmume/src/cocoa/globals.h b/desmume/src/cocoa/globals.h index e2cceef61..459bd860b 100644 --- a/desmume/src/cocoa/globals.h +++ b/desmume/src/cocoa/globals.h @@ -19,6 +19,11 @@ #import +#ifdef __cplusplus +extern "C" +{ +#endif + void messageDialog(NSString *title, NSString *text); BOOL messageDialogYN(NSString *title, NSString *text); NSString* openDialog(NSArray *file_types); @@ -32,4 +37,8 @@ typedef int NSInteger; typedef unsigned int NSUInteger; #endif -typedef float CGFloat; \ No newline at end of file +typedef float CGFloat; + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/desmume/src/cocoa/nds_control.m b/desmume/src/cocoa/nds_control.mm similarity index 98% rename from desmume/src/cocoa/nds_control.m rename to desmume/src/cocoa/nds_control.mm index eb8a1682a..1563ea121 100644 --- a/desmume/src/cocoa/nds_control.m +++ b/desmume/src/cocoa/nds_control.mm @@ -17,14 +17,15 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#import "nds_control.h"= +#import "nds_control.h" +#import "preferences.h" +#import "sndOSX.h" + #import #import //DeSmuME general includes #define OBJ_C -#include "sndOSX.h" -#include "preferences.h" #include "../NDSSystem.h" #include "../saves.h" #include "../render3D.h" @@ -110,12 +111,12 @@ struct NDS_fw_config_data firmware; NSOpenGLPixelFormatAttribute attrs[] = { - NSOpenGLPFAColorSize, 24, - NSOpenGLPFAAlphaSize, 8, - NSOpenGLPFADepthSize, 24, - NSOpenGLPFAStencilSize, 8, + NSOpenGLPFAColorSize, (NSOpenGLPixelFormatAttribute)24, + NSOpenGLPFAAlphaSize, (NSOpenGLPixelFormatAttribute)8, + NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute)24, + NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)8, NSOpenGLPFAOffScreen, - 0 + (NSOpenGLPixelFormatAttribute)0 }; if((pixel_format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs]) == nil) @@ -1181,8 +1182,6 @@ struct NDS_fw_config_data firmware; //it's controlled by the run and finish varaiables of the instance //and its status can be determined with the paused and finished variables -@class NSOpenGLContext; - - (void)videoUpdateHelper:(ScreenState*)screen_data { //we check if the emulation is running before we update the screen @@ -1222,7 +1221,7 @@ struct NDS_fw_config_data firmware; [gl_context retain]; [gl_context makeCurrentContext]; - CGLLockContext([gl_context CGLContextObj]); + CGLLockContext((CGLContextObj)[gl_context CGLContextObj]); u32 cycles = 0; @@ -1329,7 +1328,7 @@ struct NDS_fw_config_data firmware; [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:.1]]; } - CGLUnlockContext([gl_context CGLContextObj]); + CGLUnlockContext((CGLContextObj)[gl_context CGLContextObj]); [gl_context release]; [autorelease release]; diff --git a/desmume/src/cocoa/sndOSX.h b/desmume/src/cocoa/sndOSX.h index 255f0c8ff..432175347 100644 --- a/desmume/src/cocoa/sndOSX.h +++ b/desmume/src/cocoa/sndOSX.h @@ -17,7 +17,14 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define OBJ_C #include "../SPU.h" +#undef OBJ_C + +#ifdef __cplusplus +extern "C" +{ +#endif #define SNDCORE_OSX 58325 //hopefully this is unique number @@ -37,3 +44,7 @@ bool SNDOSXOpenFile(void *fname); //opens a file for recording (if filename is void SNDOSXStartRecording(); //begins recording to the currently open file if there is an open file void SNDOSXStopRecording(); //pauses recording (you can continue recording later) void SNDOSXCloseFile(); //closes the file, making sure it's saved + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/desmume/src/types.h b/desmume/src/types.h index 571446efc..3af1c8a28 100644 --- a/desmume/src/types.h +++ b/desmume/src/types.h @@ -23,7 +23,7 @@ #ifndef FASTCALL #ifdef __MINGW32__ #define FASTCALL __attribute__((fastcall)) -#elif defined (DESMUME_COCOA) +#elif defined (DESMUME_OBJ_C) #define FASTCALL __attribute__((fastcall)) #elif defined (__i386__) #define FASTCALL __attribute__((regparm(3))) @@ -42,7 +42,7 @@ #endif #endif -#ifdef DESMUME_COCOA +#ifdef DESMUME_OBJ_C #define __declspec(ignore) #define printlog(ignore) #ifdef __BIG_ENDIAN__ diff --git a/desmume/src/windows/OGLRender.cpp b/desmume/src/windows/OGLRender.cpp index 7afc092f1..7a1814e40 100644 --- a/desmume/src/windows/OGLRender.cpp +++ b/desmume/src/windows/OGLRender.cpp @@ -29,7 +29,7 @@ #include #include -#ifndef DESMUME_COCOA +#ifndef DESMUME_OBJ_C #define WIN32_LEAN_AND_MEAN #include #include @@ -91,20 +91,20 @@ static bool needRefreshFramebuffer = false; //is this a crazy idea? this table spreads 5 bits evenly over 31 from exactly 0 to INT_MAX static const int material_5bit_to_31bit[] = { - 0x00000000, 0x04210842, 0x08421084, 0x0C6318C6, - 0x10842108, 0x14A5294A, 0x18C6318C, 0x1CE739CE, - 0x21084210, 0x25294A52, 0x294A5294, 0x2D6B5AD6, - 0x318C6318, 0x35AD6B5A, 0x39CE739C, 0x3DEF7BDE, + 0x00000000, 0x04210842, 0x08421084, 0x0C6318C6, + 0x10842108, 0x14A5294A, 0x18C6318C, 0x1CE739CE, + 0x21084210, 0x25294A52, 0x294A5294, 0x2D6B5AD6, + 0x318C6318, 0x35AD6B5A, 0x39CE739C, 0x3DEF7BDE, 0x42108421, 0x46318C63, 0x4A5294A5, 0x4E739CE7, - 0x5294A529, 0x56B5AD6B, 0x5AD6B5AD, 0x5EF7BDEF, - 0x6318C631, 0x6739CE73, 0x6B5AD6B5, 0x6F7BDEF7, + 0x5294A529, 0x56B5AD6B, 0x5AD6B5AD, 0x5EF7BDEF, + 0x6318C631, 0x6739CE73, 0x6B5AD6B5, 0x6F7BDEF7, 0x739CE739, 0x77BDEF7B, 0x7BDEF7BD, 0x7FFFFFFF }; static const u8 material_5bit_to_8bit[] = { - 0x00, 0x08, 0x10, 0x18, 0x21, 0x29, 0x31, 0x39, - 0x42, 0x4A, 0x52, 0x5A, 0x63, 0x6B, 0x73, 0x7B, - 0x84, 0x8C, 0x94, 0x9C, 0xA5, 0xAD, 0xB5, 0xBD, + 0x00, 0x08, 0x10, 0x18, 0x21, 0x29, 0x31, 0x39, + 0x42, 0x4A, 0x52, 0x5A, 0x63, 0x6B, 0x73, 0x7B, + 0x84, 0x8C, 0x94, 0x9C, 0xA5, 0xAD, 0xB5, 0xBD, 0xC6, 0xCE, 0xD6, 0xDE, 0xE7, 0xEF, 0xF7, 0xFF }; @@ -166,7 +166,7 @@ static unsigned int depthFuncMode=0; static unsigned int lightMask=0; static unsigned int envMode=0; static unsigned int cullingMask=0; -static unsigned char texMAP[1024*2048*4]; +static unsigned char texMAP[1024*2048*4]; static float fogColor[4] = {0.f}; static float fogOffset = 0.f; static float alphaTestRef = 0.01f; @@ -186,9 +186,9 @@ static unsigned int old_vtxFormat; static unsigned int textureMode=0; static u16 dsDiffuse, dsAmbient, dsSpecular, dsEmission; -static int diffuse[4] = {0}, - ambient[4] = {0}, - specular[4] = {0}, +static int diffuse[4] = {0}, + ambient[4] = {0}, + specular[4] = {0}, emission[4] = {0}; typedef struct _POLY { @@ -240,6 +240,7 @@ static void twiddleLists() { //------------------------------------------------------------ +#ifndef DESMUME_OBJ_C #define OGLEXT(x,y) x y; #define INITOGLEXT(x,y) y = (x)wglGetProcAddress(#y); @@ -255,6 +256,12 @@ OGLEXT(PFNGLLINKPROGRAMPROC,glLinkProgram) OGLEXT(PFNGLUSEPROGRAMPROC,glUseProgram) OGLEXT(PFNGLGETSHADERINFOLOGPROC,glGetShaderInfoLog) +#else + +#define INITOGLEXT(x,y) + +#endif + //opengl state caching: //This is of dubious performance assistance, but it is easy to take out so I am leaving it for now. //every function that is xgl* can be replaced with gl* if we decide to rip this out or if anyone else @@ -368,7 +375,7 @@ typedef struct LightInformation g_lightInfo[4] = { 0 }; -#ifndef DESMUME_COCOA +#ifndef DESMUME_OBJ_C extern HWND hwnd; int CheckHardwareSupport(HDC hdc) @@ -415,7 +422,7 @@ char NDS_glInit(void) { int i; -#ifndef DESMUME_COCOA +#ifndef DESMUME_OBJ_C HDC oglDC = NULL; HGLRC hRC = NULL; int pixelFormat; @@ -450,9 +457,9 @@ char NDS_glInit(void) if(!wglMakeCurrent(oglDC, hRC)) return 0; res=CheckHardwareSupport(oglDC); - if (res>=0&&res<=2) - printlog("OpenGL mode: %s\n",opengl_modes[res]); - else + if (res>=0&&res<=2) + printlog("OpenGL mode: %s\n",opengl_modes[res]); + else printlog("OpenGL mode: uknown\n"); #endif glClearColor (0.f, 0.f, 0.f, 1.f); @@ -521,16 +528,16 @@ char NDS_glInit(void) //TODO - this should modulate or add depending on whether we are in highlight or toon mode - toonShader = glCreateShader(GL_FRAGMENT_SHADER); + toonShader = glCreateShader(GL_FRAGMENT_SHADER); toonProgram = glCreateProgram(); - glShaderSource(toonShader, 1, (GLchar**)toonShaderSource, 0); + glShaderSource(toonShader, 1, (const GLchar**)toonShaderSource, 0); glCompileShader(toonShader); glGetShaderInfoLog(toonShader,10000,0,buf); glAttachShader(toonProgram,toonShader); glLinkProgram(toonProgram); - toonShader = 0; + toonShader = 0; } } @@ -635,9 +642,9 @@ __forceinline void NDS_glStoreMatrix(unsigned long v) short mymode = (mode==1?2:mode); //for the projection matrix, the provided value is supposed to be reset to zero - if(mymode==0) + if(mymode==0) v = 0; - + MatrixStackLoadMatrix (&mtxStack[mymode], v&31, mtxCurrent[mymode]); if(mymode==2) MatrixStackLoadMatrix (&mtxStack[1], v&31, mtxCurrent[1]); @@ -698,7 +705,7 @@ __forceinline void NDS_glTranslate(signed long v) __forceinline void NDS_glScale(signed long v) { short mymode = (mode==2?1:mode); - + scale[scaleind] = fix2float(v); ++scaleind; @@ -805,7 +812,9 @@ __forceinline void NDS_glMultMatrix4x4(signed long v) //todo - make all color conversions go through a properly spread table!! //I think this is slower than the regular memcmp.. doesnt make sense to me, but my -//asm optimization knowlege is 15 years old.. +//asm optimization knowlege is 15 years old.. + +#ifndef WORDS_BIGENDIAN __forceinline int memcmp_slow(const void* src, const void* dst, u32 count) { int retval; __asm { @@ -827,8 +836,8 @@ __forceinline void* memcpy_fast(void* dest, const void* src, size_t count) __asm { - mov esi, [src] - mov edi, [dest] + mov esi, [src] + mov edi, [dest] mov ecx, [blockCnt] test ecx, ecx @@ -837,7 +846,7 @@ __forceinline void* memcpy_fast(void* dest, const void* src, size_t count) copyloop: //prefetchnta [esi] mov eax, [esi] - + movq mm0, qword ptr [esi] movq mm1, qword ptr [esi+8] movq mm2, qword ptr [esi+16] @@ -870,7 +879,10 @@ __forceinline void* memcpy_fast(void* dest, const void* src, size_t count) } return dest; -} +} +#else +#define memcpy_fast(d,s,c) memcpy(d,s,c) +#endif static void DebugDumpTexture(int which) { @@ -898,7 +910,7 @@ void setTexture(unsigned int format, unsigned int texpal) int i=0; unsigned int x=0, y=0; unsigned int palZeroTransparent; - + unsigned short *pal = NULL; unsigned char *dst = texMAP; unsigned int sizeX=(8 << ((format>>20)&0x07)); @@ -925,9 +937,9 @@ void setTexture(unsigned int format, unsigned int texpal) txt_slot_current=(format>>14)&0x03; adr=(unsigned char *)(ARM9Mem.textureSlotAddr[txt_slot_current]+((format&0x3FFF)<<3)); - + i=texcache_start; - + //if(false) while (TRUE) { @@ -953,12 +965,12 @@ void setTexture(unsigned int format, unsigned int texpal) } } i++; - if (i>MAX_TEXTURE) + if (i>MAX_TEXTURE) { texcache_stop=texcache_start; texcache[texcache_stop].frm=0; texcache_start++; - if (texcache_start>MAX_TEXTURE) + if (texcache_start>MAX_TEXTURE) { texcache_start=0; texcache_stop=MAX_TEXTURE<<1; @@ -990,7 +1002,7 @@ void setTexture(unsigned int format, unsigned int texpal) glScaled (texcache[i].invSizeX, texcache[i].invSizeY, 1.0f); //printlog("Texture %03i - format=%08X; pal=%04X (mode %X, width %04i, height %04i)\n",i, texcache[i].frm, texcache[i].pal, texcache[i].mode, sizeX, sizeY); - + //============================================================================ Texture render palZeroTransparent = (1-((format>>29)&1))*255; // shash: CONVERT THIS TO A TABLE :) txt_slot_size=(txt_slot_current_size=0x020000-((format & 0x3FFF)<<3)); @@ -1097,7 +1109,7 @@ void setTexture(unsigned int format, unsigned int texpal) if ( (texcache[i].frm & 0xc000) == 0x8000) // texel are in slot 2 slot1=(unsigned short*)&ARM9Mem.textureSlotAddr[1][((texcache[i].frm&0x3FFF)<<2)+0x010000]; - else + else slot1=(unsigned short*)&ARM9Mem.textureSlotAddr[1][(texcache[i].frm&0x3FFF)<<2]; bool dead = false; @@ -1117,7 +1129,7 @@ void setTexture(unsigned int format, unsigned int texpal) tmp_col[0]=RGB16TO32(pal[pal1offset],255); tmp_col[1]=RGB16TO32(pal[pal1offset+1],255); - switch (mode) + switch (mode) { case 0: tmp_col[2]=RGB16TO32(pal[pal1offset+2],255); @@ -1134,7 +1146,7 @@ void setTexture(unsigned int format, unsigned int texpal) tmp_col[2]=RGB16TO32(pal[pal1offset+2],255); tmp_col[3]=RGB16TO32(pal[pal1offset+3],255); break; - case 3: + case 3: { u32 red1, red2; u32 green1, green2; @@ -1177,7 +1189,7 @@ void setTexture(unsigned int format, unsigned int texpal) dst[currentPos+2] = 0; dst[currentPos+3] = 0; } - + txt_slot_current_size-=4;; if (txt_slot_current_size<=0) { @@ -1215,13 +1227,13 @@ void setTexture(unsigned int format, unsigned int texpal) unsigned short * map = ((unsigned short *)adr); unsigned int * dst = (unsigned int *)texMAP; pal = (unsigned short *)(ARM9Mem.texPalSlot[0] + (texturePalette<<4)); - + for(x = 0; x < imageSize; ++x) { unsigned short c = map[x]; int alpha = ((c&0x8000)?255:0); *dst = RGB15TO32(c&0x7FFF,alpha); - + dst++; txt_slot_current_size-=2;; if (txt_slot_current_size<=0) @@ -1237,14 +1249,14 @@ void setTexture(unsigned int format, unsigned int texpal) } - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, - texcache[i].sizeX, texcache[i].sizeY, 0, + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, + texcache[i].sizeX, texcache[i].sizeY, 0, GL_RGBA, GL_UNSIGNED_BYTE, texMAP); //============================================================================================ texcache_count=i; - + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, texEnv[texcache[i].texenv]); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); @@ -1568,7 +1580,7 @@ static void InstallPolygonAttrib(unsigned long val) // Alpha value, actually not well handled, 0 should be wireframe colorRGB[3] = colorAlpha = material_5bit_to_31bit[((val>>16)&0x1F)]; - + // polyID polyID = (val>>24)&0x1F; } @@ -1771,7 +1783,7 @@ __forceinline void NDS_glNormal(unsigned long v) //TODO - only do this when the projection matrix changes __declspec(align(16)) float lineOfSight[4] = { 0, 0, -1, 0 }; MatrixMultVec4x4 (mtxCurrent[0], lineOfSight); - + if (texCoordinateTransform == 2) { last_s =( (normal[0] *mtxCurrent[3][0] + normal[1] *mtxCurrent[3][4] + @@ -1785,22 +1797,22 @@ __forceinline void NDS_glNormal(unsigned long v) //apply lighting model { - u8 diffuse[3] = { + u8 diffuse[3] = { (dsDiffuse)&0x1F, (dsDiffuse>>5)&0x1F, (dsDiffuse>>10)&0x1F }; - u8 ambient[3] = { + u8 ambient[3] = { (dsAmbient)&0x1F, (dsAmbient>>5)&0x1F, (dsAmbient>>10)&0x1F }; - u8 emission[3] = { + u8 emission[3] = { (dsEmission)&0x1F, (dsEmission>>5)&0x1F, (dsEmission>>10)&0x1F }; - u8 specular[3] = { + u8 specular[3] = { (dsSpecular)&0x1F, (dsSpecular>>5)&0x1F, (dsSpecular>>10)&0x1F }; @@ -1815,7 +1827,7 @@ __forceinline void NDS_glNormal(unsigned long v) continue; { - u8 lightColor[3] = { + u8 lightColor[3] = { (g_lightInfo[i].color)&0x1F, (g_lightInfo[i].color>>5)&0x1F, (g_lightInfo[i].color>>10)&0x1F }; @@ -1823,7 +1835,7 @@ __forceinline void NDS_glNormal(unsigned long v) float dot = Vector3Dot(g_lightInfo[i].floatDirection,normal); float diffuseComponent = max(0,dot); float specularComponent; - + //a specular formula which I couldnt get working //float halfAngle[3] = { // (lineOfSight[0] + g_lightInfo[i].floatDirection[0])/2, @@ -1838,7 +1850,7 @@ __forceinline void NDS_glNormal(unsigned long v) // //float specularAngle = -Vector3Dot(halfAngleNormalized,normal); //specularComponent = max(0,cos(specularAngle)); - + //a specular formula which seems to work float temp[4]; float diff = Vector3Dot(normal,g_lightInfo[i].floatDirection); @@ -1847,7 +1859,7 @@ __forceinline void NDS_glNormal(unsigned long v) Vector3Add(temp,g_lightInfo[i].floatDirection); Vector3Scale(temp,-1); specularComponent = max(0,Vector3Dot(lineOfSight,temp)); - + //if the game isnt producing unit normals, then we can accidentally out of range components. so lets saturate them here //so we can at least keep for crashing. we're not sure what the hardware does in this case, but the game shouldnt be doing this. specularComponent = max(0,min(1,specularComponent)); @@ -1901,7 +1913,7 @@ void GL_Draw() lastTexturePalette = texturePalette = poly->texPalette; BeginRenderPoly(); } - + //since we havent got the whole pipeline working yet, lets use opengl for the projection glMatrixMode(GL_PROJECTION); glLoadMatrixf(poly->projMatrix); @@ -1909,7 +1921,7 @@ void GL_Draw() glBegin(type==3?GL_TRIANGLES:GL_QUADS); for(int j=0;jlist[poly->vertIndexes[j]]; - + //float tempCoord[4]; //Vector4Copy(tempCoord,vert->coord); //we havent got the whole pipeline working yet, so we cant do this @@ -1921,7 +1933,7 @@ void GL_Draw() //todo - edge flag? glTexCoord2fv(vert->texcoord); - glColor4iv(vert->color); + glColor4iv((GLint*)vert->color); //glVertex3fv(tempCoord); glVertex3fv(vert->coord); } @@ -1959,7 +1971,7 @@ void NDS_3D_VramReconfigureSignal() void GL_ReadFramebuffer() { glFinish(); - glReadPixels(0,0,256,192,GL_RGBA, GL_UNSIGNED_BYTE, GPU_screen3D); + glReadPixels(0,0,256,192,GL_RGBA, GL_UNSIGNED_BYTE, GPU_screen3D); glReadPixels(0,0,256,192,GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, GPU_screenStencil); //debug: view depth buffer via color buffer for debugging @@ -1993,7 +2005,7 @@ static void NDS_glGetLine (int line, u16* dst) needRefreshFramebuffer = false; GL_ReadFramebuffer(); } - + u8 *screen3D = (u8*)GPU_screen3D+((191-line)<<10); u8 *screenStencil = (u8*)GPU_screenStencil+((191-line)<<8); @@ -2001,7 +2013,7 @@ static void NDS_glGetLine (int line, u16* dst) //then it sets it to 1 whenever it renders a pixel that passes the alpha test //(it also sets it to 2 under some circumstances when rendering shadow volumes) //so, we COULD use a zero stencil value to indicate that nothing should get composited. - //in fact, we are going to do that to fix some problems. + //in fact, we are going to do that to fix some problems. //but beware that it i figure it might could CAUSE some problems //this alpha compositing blending logic isnt thought through at all @@ -2084,7 +2096,7 @@ __forceinline void NDS_glCallList(unsigned long v) --clInd; clCmd >>= 8; continue; - } + } break; } @@ -2572,4 +2584,4 @@ GPU3DInterface gpu3Dgl = { NDS_glInit, //http://www.opengl.org/documentation/specs/version1.1/glspec1.1/node17.html //talks about the state required to process verts in quadlists etc. helpful ideas. -//consider building a little state structure that looks exactly like this describes \ No newline at end of file +//consider building a little state structure that looks exactly like this describes