Cocoa port compiling and running again, with all the new cpp files

This commit is contained in:
gecko_reverse 2008-09-13 17:09:51 +00:00
parent 7009a9a91b
commit fa73952d6c
7 changed files with 232 additions and 253 deletions

View File

@ -41,6 +41,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]>
<Compiler>
<Add option="-march=pentium-m" />
<Add option="-msse2" />
<Add option="-DDESMUME_COCOA" />
<Add option="-DHAVE_LIBZ" />
</Compiler>
<ExtraCommands>
<Add after="cp DeSmuME.app/Contents/MacOS/DeSmuME DeSmuME.app/Contents/MacOS/DeSmuME_x86" />
@ -55,6 +57,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]>
<Option compiler="gcc" />
<Compiler>
<Add option="-arch ppc" />
<Add option="-DDESMUME_COCOA" />
<Add option="-DHAVE_LIBZ" />
</Compiler>
<Linker>
<Add option="-arch ppc" />
@ -71,8 +75,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]>
<Add option="-fexpensive-optimizations" />
<Add option="-O3" />
<Add option="-fpascal-strings -fasm-blocks" />
<Add option="-DDESMUME_COCOA" />
<Add option="-DHAVE_LIBZ" />
<Add option="-DDESMUME_OBJ_C" />
<Add directory="dialogs" />
<Add directory="../cocoa" />
</Compiler>
@ -87,50 +90,26 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]>
<Mode after="always" />
</ExtraCommands>
<Unit filename="../ARM9.h" />
<Unit filename="../Disassembler.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../Disassembler.h" />
<Unit filename="../FIFO.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../FIFO.cpp" />
<Unit filename="../FIFO.h" />
<Unit filename="../GPU.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../GPU.cpp" />
<Unit filename="../GPU.h" />
<Unit filename="../MMU.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../MMU.cpp" />
<Unit filename="../MMU.h" />
<Unit filename="../NDSSystem.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../NDSSystem.cpp" />
<Unit filename="../NDSSystem.h" />
<Unit filename="../ROMReader.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../ROMReader.cpp" />
<Unit filename="../ROMReader.h" />
<Unit filename="../SPU.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../SPU.cpp" />
<Unit filename="../SPU.h" />
<Unit filename="../arm_instructions.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../arm_instructions.cpp" />
<Unit filename="../arm_instructions.h" />
<Unit filename="../armcpu.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../armcpu.cpp" />
<Unit filename="../armcpu.h" />
<Unit filename="../bios.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../bios.cpp" />
<Unit filename="../bios.h" />
<Unit filename="../bits.h" />
<Unit filename="../cflash.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../cflash.cpp" />
<Unit filename="../cflash.h" />
<Unit filename="English.strings" />
<Unit filename="Japanese.strings" />
@ -163,7 +142,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]>
<Option link="1" />
</Unit>
<Unit filename="nds_control.h" />
<Unit filename="nds_control.m">
<Unit filename="nds_control.mm">
<Option compile="1" />
<Option link="1" />
</Unit>
@ -193,71 +172,36 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]]>
<Option link="1" />
</Unit>
<Unit filename="../config.h" />
<Unit filename="../cp15.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../cp15.cpp" />
<Unit filename="../cp15.h" />
<Unit filename="../debug.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../debug.cpp" />
<Unit filename="../debug.h" />
<Unit filename="../dscard.h" />
<Unit filename="../fat.h" />
<Unit filename="../fs-linux.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../fs-linux.cpp" />
<Unit filename="../fs.h" />
<Unit filename="../gdbstub.h" />
<Unit filename="../gl_vertex.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../gl_vertex.cpp" />
<Unit filename="../gl_vertex.h" />
<Unit filename="../matrix.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../matrix.cpp" />
<Unit filename="../matrix.h" />
<Unit filename="../mc.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../mc.cpp" />
<Unit filename="../mc.h" />
<Unit filename="../mem.h" />
<Unit filename="../opengl_collector_3Demu.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../opengl_collector_3Demu.h" />
<Unit filename="../registers.h" />
<Unit filename="../render3D.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../render3D.cpp" />
<Unit filename="../render3D.h" />
<Unit filename="../saves.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../saves.cpp" />
<Unit filename="../saves.h" />
<Unit filename="../thumb_instructions.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../thumb_instructions.cpp" />
<Unit filename="../thumb_instructions.h" />
<Unit filename="../types.h" />
<Unit filename="../wifi.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../wifi.cpp" />
<Unit filename="../wifi.h" />
<Unit filename="../windows/OGLRender.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../windows/OGLRender.cpp" />
<Unit filename="../windows/OGLRender.h" />
<Unit filename="../windows/ginfo.c">
<Option compilerVar="CC" />
<Option compile="0" />
<Option link="0" />
</Unit>
<Unit filename="../windows/ginfo.h" />
<Unit filename="../windows/main.c">
<Option compilerVar="CC" />
<Option compile="0" />
<Option link="0" />
</Unit>
<Extensions>
<code_completion />
<envvars />

View File

@ -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 = "<absolute>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
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 = "<group>"; };
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 = "<group>"; };
726D68AA0E310B1800800002 /* French.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = French.nib; sourceTree = "<group>"; };
@ -67,6 +89,7 @@
7277B6E10D9E045700D283BD /* Japanese.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = Japanese.nib; sourceTree = "<group>"; };
7277B6E20D9E045700D283BD /* Japanese.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; path = Japanese.strings; sourceTree = "<group>"; };
7277B8EA0D9F25F700D283BD /* about.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = about.m; sourceTree = "<group>"; };
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 = "<group>"; };
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 = "<absolute>"; };
729BECEF0D9D581900ED561B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
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 = "<group>"; };
72C000020D9D59E60046B7EA /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = InfoPlist.strings; sourceTree = "<group>"; };
@ -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,
);

View File

@ -19,6 +19,11 @@
#import <Cocoa/Cocoa.h>
#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;
typedef float CGFloat;
#ifdef __cplusplus
}
#endif

View File

@ -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 <OpenGL/OpenGL.h>
#import <OpenGL/gl.h>
//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];

View File

@ -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

View File

@ -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__

View File

@ -29,7 +29,7 @@
#include <string.h>
#include <assert.h>
#ifndef DESMUME_COCOA
#ifndef DESMUME_OBJ_C
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <gl/gl.h>
@ -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;j<type;j++) {
VERT* vert = &vertlist->list[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
//consider building a little state structure that looks exactly like this describes