diff -Nru desmume-0.9.9/aclocal.m4 desmume-0.9.10/aclocal.m4 --- desmume-0.9.9/aclocal.m4 2013-05-01 21:30:05.000000000 +0000 +++ desmume-0.9.10/aclocal.m4 2013-11-28 00:43:24.542872876 +0000 @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.6 -*- Autoconf -*- +# generated automatically by aclocal 1.14 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,13 +11,14 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. @@ -673,7 +673,7 @@ # nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -865,25 +865,22 @@ fi[]dnl ])# PKG_CHECK_MODULES -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' +[am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.6], [], +m4_if([$1], [1.14], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -899,24 +896,22 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.6])dnl +[AM_AUTOMAKE_VERSION([1.14])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -935,7 +930,7 @@ # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -961,22 +956,19 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -995,16 +987,14 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, -# 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 12 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -1014,7 +1004,7 @@ # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -1027,12 +1017,13 @@ AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -1040,8 +1031,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -1081,16 +1072,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -1099,8 +1090,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -1108,7 +1099,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -1156,7 +1147,7 @@ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -1166,9 +1157,13 @@ # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -1183,20 +1178,18 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -1209,7 +1202,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -1221,21 +1214,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -1253,7 +1244,7 @@ # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will +# is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -1263,18 +1254,21 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 16 - # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -1287,7 +1281,7 @@ # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl +[AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -1316,31 +1310,40 @@ # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -1351,34 +1354,78 @@ [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. @@ -1400,15 +1447,12 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -1422,16 +1466,14 @@ install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -1448,20 +1490,17 @@ # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), @@ -1472,10 +1511,11 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE @@ -1483,18 +1523,14 @@ ] ) -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -1512,7 +1548,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -1539,15 +1575,12 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -1555,11 +1588,10 @@ $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) - # AM_MISSING_HAS_RUN # ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -1572,54 +1604,22 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + AC_MSG_WARN(['missing' script is too old or missing]) fi ]) -# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, -# Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 1 - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -1629,7 +1629,7 @@ # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -1643,24 +1643,82 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Check to make sure that the build environment is sane. -*- Autoconf -*- +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -1671,32 +1729,40 @@ esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -1706,46 +1772,118 @@ AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -1759,18 +1897,16 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -1780,76 +1916,114 @@ # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar +# AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. + +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR diff -Nru desmume-0.9.9/AUTHORS desmume-0.9.10/AUTHORS --- desmume-0.9.9/AUTHORS 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/AUTHORS 2013-11-28 00:36:53.004604383 +0000 @@ -6,15 +6,15 @@ ------------ Guillaume Duhamel Normmatt -Bernat Muņoz (shash) Riccardo Magliocchetti -Max Tabachenko (CrazyMax) +CrazyMax zeromus rogerman Luigi__ Contributors ------------ +Bernat Muņoz (shash) Allustar amponzi Anthony Molinaro @@ -40,9 +40,8 @@ pengvado dormito ldesnogue - -Thanks to our super testers for this release ------------- +mtheall +thelemonman nash679 pokefan999 dottorleo diff -Nru desmume-0.9.9/ChangeLog desmume-0.9.10/ChangeLog --- desmume-0.9.9/ChangeLog 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/ChangeLog 2013-11-28 00:37:28.925184546 +0000 @@ -1,4 +1,41 @@ -0.9.8 -> 0.9.9 (r4228-r4591-r4623) +0.9.9 -> 0.9.10 (r4623-r4908) + +In this version, we have focused on trying to clean up some complexities in the user experience and emulator internals. Pretty unglamorous stuff, but some games are newly compatible. + +General/Core: + enh: break savestate back-compatibility + bug: improve save size autodetection for some games + bug: cpu: fix many basic jit cpu bugs + bug: 3d: tweak softrasterizer edge marking + bug: 3d: fix stale 4x4 texture palettes + bug: fix some GPU sprite blending scenarios + bug: fix bios HLE BitUnPack, UnCompHuffman + enh: modular slot-1 device system, emulate GC bus more faithfully + enh: support NAND slot-1 device + enh: auto-detect appropriate slot-1 and slot-2 device + enh: many revisions to firmware boot process for more authenticity. iQue and FlashME versions function, .dfc rewritten. + enh: support streaming NDS file from disk (like an ISO, to avoid long initial load time) + enh: run .dsv directly on disk, to save long flushing times. should speed backup operations. + enh: spu synch mode and method on commandline + +Windows: + bug: fixes to advanscene DB import + bug: save opengl display method filter option + bug: general bugfixes to various screen layout modes + enh: add option to stop non-integer scaling during fullscreen or maximize + enh: improvements to save import dialog + enh: improved memory viewer tool + enh: operate better when run, against our advice, from a zipfile + enh: add slot-1 Nitro Filesystem viewer tool + +Cocoa: + bug: fix slot1-R4 path saving + bug: fix bug with mic samples < 16khz + bug: fix bugs and enhancements in multi display windows + bug: fix handling of some joystick analog inputs + enh: save display windows configuration and emulation speed on app exit + +0.9.8 -> 0.9.9 (r4228-r4623) Yes, it's been a while since the last release, but we haven't been completely idle. There's a brand new jit cpu core which yields some impressive speedups! @@ -17,7 +54,6 @@ bug: 3d: fix some polygon and texture coloring bugs on big-endian systems Windows: - bug: fixes to advanscene DB import bug: fix some full screen stretching bugs enh: add xaudio2 output driver enh: add opengl display method (as opposed to directdraw), with controllable bilinear filter diff -Nru desmume-0.9.9/compile desmume-0.9.10/compile --- desmume-0.9.9/compile 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/compile 2013-11-28 00:43:25.990895748 +0000 @@ -1,9 +1,9 @@ #! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. +# Wrapper for compilers which do not understand '-c -o'. -scriptversion=2005-05-14.22 +scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,8 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -29,21 +28,224 @@ # bugs to or send patches to # . +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. +right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF @@ -53,11 +255,13 @@ echo "compile $scriptversion" exit $? ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; esac ofile= cfile= -eat= for arg do @@ -66,8 +270,8 @@ else case $1 in -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) @@ -94,22 +298,22 @@ done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a + # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also + # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name +# Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break @@ -124,9 +328,9 @@ ret=$? if test -f "$cofile"; then - mv "$cofile" "$ofile" + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" @@ -138,5 +342,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff -Nru desmume-0.9.9/config.guess desmume-0.9.10/config.guess --- desmume-0.9.9/config.guess 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/config.guess 2013-11-28 00:43:25.990895748 +0000 @@ -1,14 +1,12 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. +# Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2012-02-10' +timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -22,19 +20,17 @@ # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -54,9 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -138,6 +132,27 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -200,6 +215,10 @@ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -302,7 +321,7 @@ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -801,6 +820,9 @@ i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; @@ -852,21 +874,21 @@ exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -879,59 +901,54 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else - echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -950,54 +967,63 @@ #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1201,6 +1227,9 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1227,19 +1256,21 @@ exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1256,7 +1287,7 @@ NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1330,9 +1361,6 @@ exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - eval $set_cc_for_build cat >$dummy.c <. @@ -26,11 +20,12 @@ # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -73,9 +68,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,7 +116,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) @@ -156,7 +149,7 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; @@ -259,10 +252,12 @@ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | be32 | be64 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | clipper \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ @@ -273,7 +268,7 @@ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -291,16 +286,17 @@ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ - | nios | nios2 \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ - | or32 \ + | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ @@ -370,13 +366,13 @@ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -389,7 +385,8 @@ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -407,12 +404,13 @@ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ @@ -788,11 +786,15 @@ basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -828,7 +830,7 @@ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i386-pc + basic_machine=i686-pc os=-msys ;; mvs) @@ -1019,7 +1021,11 @@ basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1346,21 +1352,21 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-uclibc* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1492,9 +1498,6 @@ -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; @@ -1543,6 +1546,9 @@ c4x-* | tic4x-*) os=-coff ;; + c8051-*) + os=-elf + ;; hexagon-*) os=-elf ;; @@ -1586,6 +1592,9 @@ mips*-*) os=-elf ;; + or1k-*) + os=-elf + ;; or32-*) os=-coff ;; diff -Nru desmume-0.9.9/configure desmume-0.9.10/configure --- desmume-0.9.9/configure 2013-05-01 21:30:06.000000000 +0000 +++ desmume-0.9.10/configure 2013-11-28 00:43:25.514888230 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for desmume 0.9.9. +# Generated by GNU Autoconf 2.69 for desmume 0.9.10. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='desmume' PACKAGE_TARNAME='desmume' -PACKAGE_VERSION='0.9.9' -PACKAGE_STRING='desmume 0.9.9' +PACKAGE_VERSION='0.9.10' +PACKAGE_STRING='desmume 0.9.10' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -649,18 +649,6 @@ CATALOGS MSGFMT_OPTS GETTEXT_PACKAGE -HAVE_WX_FALSE -HAVE_WX_TRUE -WX_RESCOMP -WX_VERSION -WX_LIBS_STATIC -WX_LIBS -WX_CXXFLAGS_ONLY -WX_CFLAGS_ONLY -WX_CXXFLAGS -WX_CFLAGS -WX_CPPFLAGS -WX_CONFIG_PATH HAVE_LIBSOUNDTOUCH_FALSE HAVE_LIBSOUNDTOUCH_TRUE LIBSOUNDTOUCH_LIBS @@ -694,8 +682,11 @@ PKG_CONFIG HAVE_OPENAL_FALSE HAVE_OPENAL_TRUE +HAVE_GL_GLX_FALSE +HAVE_GL_GLX_TRUE HAVE_LIBOSMESA_FALSE HAVE_LIBOSMESA_TRUE +GLX_LIBS OSMESA_LIBS HAVE_GL_FALSE HAVE_GL_TRUE @@ -734,7 +725,6 @@ INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE -AM_DEFAULT_VERBOSITY INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE @@ -766,6 +756,10 @@ LDFLAGS CXXFLAGS CXX +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -839,13 +833,14 @@ ac_subst_files='' ac_user_opts=' enable_option_checking +enable_silent_rules enable_dependency_tracking enable_nls enable_osmesa +enable_glx enable_hud enable_openal enable_glade -enable_wxwidgets enable_wifi with_x enable_gdb_stub @@ -1431,7 +1426,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures desmume 0.9.9 to adapt to many kinds of systems. +\`configure' configures desmume 0.9.10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1505,7 +1500,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of desmume 0.9.9:";; + short | recursive ) echo "Configuration of desmume 0.9.10:";; esac cat <<\_ACEOF @@ -1513,14 +1508,18 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --disable-nls do not use Native Language Support --enable-osmesa use off-screen mesa + --enable-glx use hw accelerated rendering --enable-hud Enable HUD rendering, requires libagg --enable-openal enable experimental OpenAL microphone input --enable-glade enable glade frontend - --enable-wxwidgets Enable cross platform wx widgets frontend --enable-wifi enable experimental wifi comm support --enable-gdb-stub enable gdb stub --enable-hardcore turn on -W -Wall -Werror @@ -1529,8 +1528,9 @@ --enable-div-debug enable div debug information --enable-sqrt-debug enable sqrt debug information --enable-dma-debug enable dma debug information - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1648,7 +1648,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -desmume configure 0.9.9 +desmume configure 0.9.10 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2051,7 +2051,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by desmume $as_me 0.9.9, which was +It was created by desmume $as_me 0.9.10, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2508,7 +2508,7 @@ esac -am__api_version='1.11' +am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2605,9 +2605,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2618,32 +2615,40 @@ esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then @@ -2655,6 +2660,16 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2677,12 +2692,12 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -2694,10 +2709,10 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -2836,12 +2851,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -2924,6 +2933,45 @@ fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -2946,7 +2994,7 @@ # Define the identity of the package. PACKAGE='desmume' - VERSION='0.9.9' + VERSION='0.9.10' cat >>confdefs.h <<_ACEOF @@ -2974,18 +3022,155 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 +$as_echo_n "checking how to create a pax tar archive... " >&6; } + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_pax-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x pax -w "$$tardir"' + am__tar_='pax -L -x pax -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H pax -L' + am__tar_='find "$tardir" -print | cpio -o -H pax -L' + am__untar='cpio -i -H pax -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_pax}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if ${am_cv_prog_tar_pax+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_pax=$_am_tool +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 +$as_echo "$am_cv_prog_tar_pax" >&6; } + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -3512,7 +3697,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3568,8 +3753,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -3604,16 +3789,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -3622,8 +3807,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -3631,7 +3816,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4318,6 +4503,65 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -4329,8 +4573,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4365,16 +4609,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4383,8 +4627,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4392,7 +4636,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -5069,18 +5313,22 @@ esac -# took this from geany, hope it works -REVISION="r0" +REVISION=0 SVN=`which svn 2>/dev/null` -if test -d ".svn" -a "x${SVN}" != "x" -a -x "${SVN}" ; then - REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` +if ( test -d .svn || test -d ../.svn ; ) && test "x${SVN}" != "x" -a -x "${SVN}" ; then + REVISION=`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` + echo "$REVISION" fi cat >>confdefs.h <<_ACEOF -#define SVN_REV "$REVISION" +#define SVN_REV $REVISION _ACEOF +cat >>confdefs.h <<_ACEOF +#define SVN_REV_STR "$REVISION" +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 @@ -5848,7 +6096,7 @@ cat >>confdefs.h <<_ACEOF #define HAVE_GL_GLU_H 1 _ACEOF - have_gl_h=yes LIBS="$LIBS -lGLU" + have_gl_h=yes LIBS="$LIBS -lGL -lGLU" else have_gl_h=no fi @@ -5878,7 +6126,15 @@ if test "${enable_osmesa+set}" = set; then : enableval=$enable_osmesa; osmesa=$enableval else - osmesa=yes + osmesa=no +fi + + +# Check whether --enable-glx was given. +if test "${enable_glx+set}" = set; then : + enableval=$enable_glx; glx=$enableval +else + glx=yes fi @@ -6001,6 +6257,105 @@ fi +else + if test "x$glx" = "xyes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5 +$as_echo_n "checking for main in -ldl... " >&6; } +if ${ac_cv_lib_dl_main+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_main=yes +else + ac_cv_lib_dl_main=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_main" >&5 +$as_echo "$ac_cv_lib_dl_main" >&6; } +if test "x$ac_cv_lib_dl_main" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + + LIBS="-ldl $LIBS" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lGL" >&5 +$as_echo_n "checking for main in -lGL... " >&6; } +if ${ac_cv_lib_GL_main+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lGL $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_GL_main=yes +else + ac_cv_lib_GL_main=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GL_main" >&5 +$as_echo "$ac_cv_lib_GL_main" >&6; } +if test "x$ac_cv_lib_GL_main" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBGL 1 +_ACEOF + + LIBS="-lGL $LIBS" + +fi + + for ac_header in GL/glx.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "GL/glx.h" "ac_cv_header_GL_glx_h" "$ac_includes_default" +if test "x$ac_cv_header_GL_glx_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GL_GLX_H 1 +_ACEOF + + useglx=yes + $as_echo "#define HAVE_GL_GLX 1" >>confdefs.h + + GLX_LIBS="-lX11" + + +fi + +done + + fi fi if test "${useosmesa}" = "yes"; then HAVE_LIBOSMESA_TRUE= @@ -6010,6 +6365,14 @@ HAVE_LIBOSMESA_FALSE= fi + if test "${useglx}" = "yes"; then + HAVE_GL_GLX_TRUE= + HAVE_GL_GLX_FALSE='#' +else + HAVE_GL_GLX_TRUE='#' + HAVE_GL_GLX_FALSE= +fi + # Check whether --enable-hud was given. if test "${enable_hud+set}" = set; then : @@ -7071,288 +7434,12 @@ fi fi - -# Check whether --enable-wxwidgets was given. -if test "${enable_wxwidgets+set}" = set; then : - enableval=$enable_wxwidgets; wxwidgets=$enableval -else - wxwidgets=no -fi - -if test "x$wxwidgets" = "xyes" ; then - - - - - - - - - - - - - - - - - if test x${WX_CONFIG_NAME+set} != xset ; then - WX_CONFIG_NAME=wx-config - fi - - if test "x$wx_config_name" != x ; then - WX_CONFIG_NAME="$wx_config_name" - fi - - if test x$wx_config_exec_prefix != x ; then - wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" - WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" - fi - if test x$wx_config_prefix != x ; then - wx_config_args="$wx_config_args --prefix=$wx_config_prefix" - WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" - fi - if test "$cross_compiling" = "yes"; then - wx_config_args="$wx_config_args --host=$host_alias" - fi - - if test -x "$WX_CONFIG_NAME" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wx-config" >&5 -$as_echo_n "checking for wx-config... " >&6; } - WX_CONFIG_PATH="$WX_CONFIG_NAME" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_CONFIG_PATH" >&5 -$as_echo "$WX_CONFIG_PATH" >&6; } - else - # Extract the first word of "$WX_CONFIG_NAME", so it can be a program name with args. -set dummy $WX_CONFIG_NAME; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_WX_CONFIG_PATH+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $WX_CONFIG_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_WX_CONFIG_PATH="$WX_CONFIG_PATH" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy=""$WX_LOOKUP_PATH:$PATH"" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_WX_CONFIG_PATH="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_WX_CONFIG_PATH" && ac_cv_path_WX_CONFIG_PATH="no" - ;; -esac -fi -WX_CONFIG_PATH=$ac_cv_path_WX_CONFIG_PATH -if test -n "$WX_CONFIG_PATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_CONFIG_PATH" >&5 -$as_echo "$WX_CONFIG_PATH" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test "$WX_CONFIG_PATH" != "no" ; then - WX_VERSION="" - - min_wx_version=2.4.0 - if test -z "" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets version >= $min_wx_version" >&5 -$as_echo_n "checking for wxWidgets version >= $min_wx_version... " >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets version >= $min_wx_version ()" >&5 -$as_echo_n "checking for wxWidgets version >= $min_wx_version ()... " >&6; } - fi - - WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args " - - WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` - wx_config_major_version=`echo $WX_VERSION | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` - wx_config_minor_version=`echo $WX_VERSION | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` - wx_config_micro_version=`echo $WX_VERSION | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` - - wx_requested_major_version=`echo $min_wx_version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` - wx_requested_minor_version=`echo $min_wx_version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` - wx_requested_micro_version=`echo $min_wx_version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` - - - wx_ver_ok="" - if test "x$WX_VERSION" != x ; then - if test $wx_config_major_version -gt $wx_requested_major_version; then - wx_ver_ok=yes - else - if test $wx_config_major_version -eq $wx_requested_major_version; then - if test $wx_config_minor_version -gt $wx_requested_minor_version; then - wx_ver_ok=yes - else - if test $wx_config_minor_version -eq $wx_requested_minor_version; then - if test $wx_config_micro_version -ge $wx_requested_micro_version; then - wx_ver_ok=yes - fi - fi - fi - fi - fi - fi - - - if test -n "$wx_ver_ok"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $WX_VERSION)" >&5 -$as_echo "yes (version $WX_VERSION)" >&6; } - WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs` - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets static library" >&5 -$as_echo_n "checking for wxWidgets static library... " >&6; } - WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null` - if test "x$WX_LIBS_STATIC" = "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - wx_has_cppflags="" - if test $wx_config_major_version -gt 2; then - wx_has_cppflags=yes - else - if test $wx_config_major_version -eq 2; then - if test $wx_config_minor_version -gt 2; then - wx_has_cppflags=yes - else - if test $wx_config_minor_version -eq 2; then - if test $wx_config_micro_version -ge 6; then - wx_has_cppflags=yes - fi - fi - fi - fi - fi - - wx_has_rescomp="" - if test $wx_config_major_version -gt 2; then - wx_has_rescomp=yes - else - if test $wx_config_major_version -eq 2; then - if test $wx_config_minor_version -ge 7; then - wx_has_rescomp=yes - fi - fi - fi - if test "x$wx_has_rescomp" = x ; then - WX_RESCOMP= - else - WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` - fi - - if test "x$wx_has_cppflags" = x ; then - WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` - WX_CPPFLAGS=$WX_CFLAGS - WX_CXXFLAGS=$WX_CFLAGS - - WX_CFLAGS_ONLY=$WX_CFLAGS - WX_CXXFLAGS_ONLY=$WX_CFLAGS - else - WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags` - WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags` - WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` - - WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` - WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` - fi - - wxwin=yes - - else - - if test "x$WX_VERSION" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (version $WX_VERSION is not new enough)" >&5 -$as_echo "no (version $WX_VERSION is not new enough)" >&6; } - fi - - WX_CFLAGS="" - WX_CPPFLAGS="" - WX_CXXFLAGS="" - WX_LIBS="" - WX_LIBS_STATIC="" - WX_RESCOMP="" - : - - fi - else - - WX_CFLAGS="" - WX_CPPFLAGS="" - WX_CXXFLAGS="" - WX_LIBS="" - WX_LIBS_STATIC="" - WX_RESCOMP="" - - : - - fi - - - - - - - - - - - - if test "x$wxwin" = "xyes"; then - - - $as_echo "#define WANT_WX 1" >>confdefs.h - - fi -fi - - if test "x$wxwidgets" = "xyes"; then - HAVE_WX_TRUE= - HAVE_WX_FALSE='#' -else - HAVE_WX_TRUE='#' - HAVE_WX_FALSE= -fi - - PO_DIR="po" PO_MAKEFILE="po/Makefile.in" UI_DIR="cli $UI_DIR" if test "x$HAVE_GTK" = "xyes"; then UI_DIR="gtk $UI_DIR" fi -if test "x$wxwin" = "xyes"; then - UI_DIR="wx $UI_DIR" -fi if test "x$HAVE_LIBGLADE" = "xyes"; then UI_DIR="gtk-glade $UI_DIR" @@ -8835,6 +8922,40 @@ ;; esac +# Detect the host platform and architecture and feed them to the compiler as +# defines +case $host in #( + *linux*) : + $as_echo "#define HOST_LINUX 1" >>confdefs.h + ;; #( + *bsd* ) : + $as_echo "#define HOST_BSD 1" >>confdefs.h + ;; #( + *mingw*) : + $as_echo "#define HOST_WINDOWS 1" >>confdefs.h + ;; #( + *darwin*) : + $as_echo "#define HOST_DARWIN 1" >>confdefs.h + ;; #( + *) : + $as_echo "#define HOST_UNK 1" >>confdefs.h + + ;; +esac + +case $host_cpu in #( + x86_64) : + $as_echo "#define HOST_64 1" >>confdefs.h + ;; #( + amd64) : + $as_echo "#define HOST_64 1" >>confdefs.h + ;; #( + *) : + $as_echo "#define HOST_32 1" >>confdefs.h + + ;; +esac + @@ -8940,7 +9061,7 @@ -ac_config_files="$ac_config_files Makefile ${PO_MAKEFILE} src/Makefile src/cli/Makefile src/cli/doc/Makefile src/gtk/Makefile src/gtk/doc/Makefile src/gtk-glade/Makefile src/gtk-glade/doc/Makefile src/wx/Makefile src/gdbstub/Makefile autopackage/default.apspec" +ac_config_files="$ac_config_files Makefile ${PO_MAKEFILE} src/Makefile src/cli/Makefile src/cli/doc/Makefile src/gtk/Makefile src/gtk/doc/Makefile src/gtk-glade/Makefile src/gtk-glade/doc/Makefile src/gdbstub/Makefile autopackage/default.apspec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -9087,6 +9208,14 @@ LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -9120,6 +9249,10 @@ as_fn_error $? "conditional \"HAVE_LIBOSMESA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_GL_GLX_TRUE}" && test -z "${HAVE_GL_GLX_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GL_GLX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${HAVE_OPENAL_TRUE}" && test -z "${HAVE_OPENAL_FALSE}"; then as_fn_error $? "conditional \"HAVE_OPENAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -9140,10 +9273,6 @@ as_fn_error $? "conditional \"HAVE_LIBSOUNDTOUCH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${HAVE_WX_TRUE}" && test -z "${HAVE_WX_FALSE}"; then - as_fn_error $? "conditional \"HAVE_WX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${HAVE_JIT_TRUE}" && test -z "${HAVE_JIT_FALSE}"; then as_fn_error $? "conditional \"HAVE_JIT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -9553,7 +9682,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by desmume $as_me 0.9.9, which was +This file was extended by desmume $as_me 0.9.10, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -9610,7 +9739,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -desmume config.status 0.9.9 +desmume config.status 0.9.10 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -9740,7 +9869,6 @@ "src/gtk/doc/Makefile") CONFIG_FILES="$CONFIG_FILES src/gtk/doc/Makefile" ;; "src/gtk-glade/Makefile") CONFIG_FILES="$CONFIG_FILES src/gtk-glade/Makefile" ;; "src/gtk-glade/doc/Makefile") CONFIG_FILES="$CONFIG_FILES src/gtk-glade/doc/Makefile" ;; - "src/wx/Makefile") CONFIG_FILES="$CONFIG_FILES src/wx/Makefile" ;; "src/gdbstub/Makefile") CONFIG_FILES="$CONFIG_FILES src/gdbstub/Makefile" ;; "autopackage/default.apspec") CONFIG_FILES="$CONFIG_FILES autopackage/default.apspec" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; @@ -10174,7 +10302,7 @@ case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -10187,7 +10315,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -10221,21 +10349,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || diff -Nru desmume-0.9.9/configure.ac desmume-0.9.10/configure.ac --- desmume-0.9.9/configure.ac 2013-05-01 21:27:18.000000000 +0000 +++ desmume-0.9.10/configure.ac 2013-11-28 00:43:12.426681490 +0000 @@ -1,7 +1,7 @@ dnl --- Package name is first argument to AC_INIT dnl --- Release version is second argument to AC_INIT -AC_INIT(desmume, [0.9.9]) +AC_INIT(desmume, [0.9.10]) dnl -- find host architecture for some os specific libraries AC_CANONICAL_HOST @@ -13,7 +13,7 @@ esac AC_SUBST(desmume_arch) -AM_INIT_AUTOMAKE([1.10]) +AM_INIT_AUTOMAKE([1.10 subdir-objects tar-pax]) dnl -- make sure we have a c++ compiler AC_PROG_CXX @@ -24,14 +24,16 @@ dnl -- check for endianess AC_C_BIGENDIAN -# took this from geany, hope it works -REVISION="r0" +dnl -- since svn 1.7 theres only a single .svn folder in the root dir of the checkout +dnl -- depending on what was checked out that might be .svn or ../.svn +REVISION=0 SVN=`which svn 2>/dev/null` -if test -d ".svn" -a "x${SVN}" != "x" -a -x "${SVN}" ; then - REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` +if ( test -d .svn || test -d ../.svn ; ) && test "x${SVN}" != "x" -a -x "${SVN}" ; then + REVISION=`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` + echo "$REVISION" fi -AC_DEFINE_UNQUOTED([SVN_REV], "$REVISION", [subversion revision number]) - +AC_DEFINE_UNQUOTED([SVN_REV], [$REVISION], [subversion revision number]) +AC_DEFINE_UNQUOTED([SVN_REV_STR], ["$REVISION"], [subversion revision number string]) dnl - Check for intltool/gettext macros IT_PROG_INTLTOOL @@ -65,7 +67,7 @@ dnl - Check for the OpenGL includes AC_CHECK_HEADERS([GL/gl.h], - [AC_CHECK_HEADERS([GL/glu.h], [have_gl_h=yes LIBS="$LIBS -lGLU"], [have_gl_h=no])], + [AC_CHECK_HEADERS([GL/glu.h], [have_gl_h=yes LIBS="$LIBS -lGL -lGLU"], [have_gl_h=no])], [have_gl_h=no]) if test "have_gl_h" = "no" ; then AC_MSG_WARN([Building without GL support because of missing headers.]) @@ -76,7 +78,13 @@ AC_ARG_ENABLE([osmesa], [AC_HELP_STRING([--enable-osmesa], [use off-screen mesa])], [osmesa=$enableval], - [osmesa=yes]) + [osmesa=no]) + +dnl - GLX is the default renderer +AC_ARG_ENABLE([glx], + [AC_HELP_STRING([--enable-glx], [use hw accelerated rendering])], + [glx=$enableval], + [glx=yes]) if test "x$osmesa" = "xyes" ; then AC_CHECK_LIB(dl, main) @@ -87,8 +95,20 @@ OSMESA_LIBS="-lOSMesa" AC_SUBST(OSMESA_LIBS) ]) +else + if test "x$glx" = "xyes" ; then + AC_CHECK_LIB(dl, main) + AC_CHECK_LIB([GL], main) + AC_CHECK_HEADERS([GL/glx.h], [ + useglx=yes + AC_DEFINE(HAVE_GL_GLX) + GLX_LIBS="-lX11" + AC_SUBST(GLX_LIBS) + ]) + fi fi -AM_CONDITIONAL([HAVE_LIBOSMESA], [test "${useosmesa}" = "yes"]) +AM_CONDITIONAL([HAVE_LIBOSMESA], [test "${useosmesa}" = "yes"]) +AM_CONDITIONAL([HAVE_GL_GLX], [test "${useglx}" = "yes"]) dnl - make the usage of libagg for HUD rendering configurable AC_ARG_ENABLE([hud], @@ -211,25 +231,6 @@ fi fi -dnl - Check for wxWidgets - -dnl - if --enable-wxwidgets is used, check for it -AC_ARG_ENABLE([wxwidgets], - [AC_HELP_STRING([--enable-wxwidgets], [Enable cross platform wx widgets frontend])], - [wxwidgets=$enableval], - [wxwidgets=no]) -if test "x$wxwidgets" = "xyes" ; then - m4_include(wxwin.m4) - AM_PATH_WXCONFIG([2.4.0], wxwin=yes) - if test "x$wxwin" = "xyes"; then - AC_SUBST(WX_CPPFLAGS) - AC_SUBST(WX_LIBS) - AC_DEFINE([WANT_WX]) - fi -fi - -AM_CONDITIONAL([HAVE_WX], [test "x$wxwidgets" = "xyes"]) - dnl - Determine which UIs to build and if po/ should be included PO_DIR="po" PO_MAKEFILE="po/Makefile.in" @@ -237,9 +238,6 @@ if test "x$HAVE_GTK" = "xyes"; then UI_DIR="gtk $UI_DIR" fi -if test "x$wxwin" = "xyes"; then - UI_DIR="wx $UI_DIR" -fi if test "x$HAVE_LIBGLADE" = "xyes"; then UI_DIR="gtk-glade $UI_DIR" @@ -282,12 +280,28 @@ AC_DEFINE(HAVE_OPENAL) LIBS="$LIBS -framework OpenGL -framework OpenAL" CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/OpenAL.framework/Headers" - AC_SUBST(CPPFLAGS) + AC_SUBST(CPPFLAGS) dnl - extra hackery needed for X includes AC_PATH_XTRA ;; esac +# Detect the host platform and architecture and feed them to the compiler as +# defines +AS_CASE([$host], + [*linux*], [AC_DEFINE(HOST_LINUX)], + [*bsd*] , [AC_DEFINE(HOST_BSD)], + [*mingw*], [AC_DEFINE(HOST_WINDOWS)], + [*darwin*],[AC_DEFINE(HOST_DARWIN)], + [AC_DEFINE(HOST_UNK)] +) + +AS_CASE([$host_cpu], + [x86_64], [AC_DEFINE(HOST_64)], + [amd64], [AC_DEFINE(HOST_64)], + [AC_DEFINE(HOST_32)] +) + AC_SUBST(UI_DIR) AC_SUBST(PO_DIR) @@ -362,7 +376,6 @@ src/gtk/doc/Makefile src/gtk-glade/Makefile src/gtk-glade/doc/Makefile - src/wx/Makefile src/gdbstub/Makefile autopackage/default.apspec ]) diff -Nru desmume-0.9.9/debian/changelog desmume-0.9.10/debian/changelog --- desmume-0.9.9/debian/changelog 2014-04-14 18:30:15.000000000 +0000 +++ desmume-0.9.10/debian/changelog 2014-04-14 18:30:16.000000000 +0000 @@ -1,3 +1,27 @@ +desmume (0.9.10-2~ppa1) trusty; urgency=low + + * Backported from Debian unstable. + * Rebuild for Trusty + + -- Nate Muench Mon, 14 Apr 2014 13:28:42 -0500 + +desmume (0.9.10-2) unstable; urgency=medium + + * Fix FTBFS on *BSD due to sysctl() not taking const parameters. + Patch from upstream SVN trunk. + + -- Evgeni Golov Sun, 23 Mar 2014 14:24:31 +0100 + +desmume (0.9.10-1) unstable; urgency=low + + * New upstream release. + * Refresh 01_use_system_tinyxml.patch against 0.9.10. + * Correct Vcs-* URLs to point to anonscm.debian.org + * Standards-Version: 3.9.5 + * add keywords to desktop files, thanks lintian + + -- Evgeni Golov Sun, 23 Mar 2014 12:49:09 +0100 + desmume (0.9.9-1) unstable; urgency=low * New upstream release. diff -Nru desmume-0.9.9/debian/control desmume-0.9.10/debian/control --- desmume-0.9.9/debian/control 2014-04-14 18:30:15.000000000 +0000 +++ desmume-0.9.10/debian/control 2014-04-14 18:30:16.000000000 +0000 @@ -7,10 +7,10 @@ Build-Depends: debhelper (>= 9), libglade2-dev, libgtk2.0-dev, libsdl1.2-dev, libosmesa6-dev, libagg-dev, intltool, quilt, libgtkglext1-dev, libtinyxml-dev, libsoundtouch-dev -Standards-Version: 3.9.3 +Standards-Version: 3.9.5 Homepage: http://desmume.org/ -Vcs-Svn: svn://svn.debian.org/svn/pkg-games/packages/trunk/desmume/ -Vcs-Browser: http://svn.debian.org/wsvn/pkg-games/packages/trunk/desmume/?op=log +Vcs-Svn: svn://anonscm.debian.org/pkg-games/packages/trunk/desmume/ +Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-games/packages/trunk/desmume/ Package: desmume Architecture: any diff -Nru desmume-0.9.9/debian/patches/01_use_system_tinyxml.patch desmume-0.9.10/debian/patches/01_use_system_tinyxml.patch --- desmume-0.9.9/debian/patches/01_use_system_tinyxml.patch 2014-04-14 18:30:15.000000000 +0000 +++ desmume-0.9.10/debian/patches/01_use_system_tinyxml.patch 2014-04-14 18:30:16.000000000 +0000 @@ -1,12 +1,12 @@ From: Evgeni Golov Subject: use the system tinyxml instead of the embedded copy -Last-Update: 2013-05-05 +Last-Update: 2014-03-23 diff --git a/src/Makefile.am b/src/Makefile.am -index b8bb18e..b027330 100644 +index 13d7957..0284eed 100644 --- a/src/Makefile.am +++ b/src/Makefile.am -@@ -79,12 +79,6 @@ libdesmume_a_SOURCES = \ +@@ -82,12 +82,6 @@ libdesmume_a_SOURCES = \ utils/libfat/mem_allocate.h \ utils/libfat/partition.cpp \ utils/libfat/partition.h \ @@ -16,39 +16,40 @@ - utils/tinyxml/tinyxml.h \ - utils/tinyxml/tinyxmlerror.cpp \ - utils/tinyxml/tinyxmlparser.cpp \ - addons.cpp addons.h \ - addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail.cpp addons/slot1_retail_nand.cpp \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot2_passme.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp addons/slot1_retail_mcrom.cpp addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp addons/slot1comp_mc.h addons/slot1comp_rom.h addons/slot1comp_rom.cpp addons/slot1comp_protocol.h addons/slot1comp_protocol.cpp \ cheatSystem.cpp cheatSystem.h \ -@@ -201,3 +195,4 @@ if HAVE_GDB_STUB + texcache.cpp texcache.h rasterize.cpp rasterize.h \ +@@ -203,3 +197,4 @@ if HAVE_GDB_STUB libdesmume_a_SOURCES += gdbstub.h endif libdesmume_a_LIBADD = fs-$(desmume_arch).$(OBJEXT) +LIBS += -ltinyxml diff --git a/src/Makefile.in b/src/Makefile.in -index b862802..dcebe7d 100644 +index 27747fe..5e207f5 100644 --- a/src/Makefile.in +++ b/src/Makefile.in -@@ -183,9 +183,6 @@ am__libdesmume_a_SOURCES_DIST = armcpu.cpp armcpu.h \ +@@ -215,9 +215,6 @@ am__libdesmume_a_SOURCES_DIST = armcpu.cpp armcpu.h \ utils/libfat/libfat_public_api.h utils/libfat/lock.cpp \ utils/libfat/lock.h utils/libfat/mem_allocate.h \ utils/libfat/partition.cpp utils/libfat/partition.h \ - utils/tinyxml/tinystr.cpp utils/tinyxml/tinystr.h \ - utils/tinyxml/tinyxml.cpp utils/tinyxml/tinyxml.h \ - utils/tinyxml/tinyxmlerror.cpp utils/tinyxml/tinyxmlparser.cpp \ - addons.cpp addons.h addons/slot2_mpcf.cpp \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp \ addons/slot2_paddle.cpp addons/slot2_gbagame.cpp \ addons/slot2_none.cpp addons/slot2_rumblepak.cpp \ -@@ -295,8 +292,7 @@ am_libdesmume_a_OBJECTS = armcpu.$(OBJEXT) arm_instructions.$(OBJEXT) \ - fatfile.$(OBJEXT) filetime.$(OBJEXT) \ - file_allocation_table.$(OBJEXT) libfat.$(OBJEXT) \ - libfat_public_api.$(OBJEXT) lock.$(OBJEXT) partition.$(OBJEXT) \ -- tinystr.$(OBJEXT) tinyxml.$(OBJEXT) tinyxmlerror.$(OBJEXT) \ -- tinyxmlparser.$(OBJEXT) addons.$(OBJEXT) slot2_mpcf.$(OBJEXT) \ -+ addons.$(OBJEXT) slot2_mpcf.$(OBJEXT) \ - slot2_paddle.$(OBJEXT) slot2_gbagame.$(OBJEXT) \ - slot2_none.$(OBJEXT) slot2_rumblepak.$(OBJEXT) \ - slot2_guitarGrip.$(OBJEXT) slot2_expMemory.$(OBJEXT) \ -@@ -434,7 +430,7 @@ LIBAGG_LIBS = @LIBAGG_LIBS@ +@@ -354,10 +351,6 @@ am_libdesmume_a_OBJECTS = armcpu.$(OBJEXT) arm_instructions.$(OBJEXT) \ + utils/libfat/libfat.$(OBJEXT) \ + utils/libfat/libfat_public_api.$(OBJEXT) \ + utils/libfat/lock.$(OBJEXT) utils/libfat/partition.$(OBJEXT) \ +- utils/tinyxml/tinystr.$(OBJEXT) \ +- utils/tinyxml/tinyxml.$(OBJEXT) \ +- utils/tinyxml/tinyxmlerror.$(OBJEXT) \ +- utils/tinyxml/tinyxmlparser.$(OBJEXT) \ + addons/slot2_auto.$(OBJEXT) addons/slot2_mpcf.$(OBJEXT) \ + addons/slot2_paddle.$(OBJEXT) addons/slot2_gbagame.$(OBJEXT) \ + addons/slot2_none.$(OBJEXT) addons/slot2_rumblepak.$(OBJEXT) \ +@@ -554,7 +547,7 @@ LIBAGG_LIBS = @LIBAGG_LIBS@ LIBGLADE_CFLAGS = @LIBGLADE_CFLAGS@ LIBGLADE_LIBS = @LIBGLADE_LIBS@ LIBOBJS = @LIBOBJS@ @@ -57,90 +58,83 @@ LIBSOUNDTOUCH_CFLAGS = @LIBSOUNDTOUCH_CFLAGS@ LIBSOUNDTOUCH_LIBS = @LIBSOUNDTOUCH_LIBS@ LTLIBOBJS = @LTLIBOBJS@ -@@ -592,9 +588,6 @@ libdesmume_a_SOURCES = armcpu.cpp armcpu.h arm_instructions.cpp \ +@@ -704,9 +697,6 @@ libdesmume_a_SOURCES = armcpu.cpp armcpu.h arm_instructions.cpp \ utils/libfat/libfat_public_api.h utils/libfat/lock.cpp \ utils/libfat/lock.h utils/libfat/mem_allocate.h \ utils/libfat/partition.cpp utils/libfat/partition.h \ - utils/tinyxml/tinystr.cpp utils/tinyxml/tinystr.h \ - utils/tinyxml/tinyxml.cpp utils/tinyxml/tinyxml.h \ - utils/tinyxml/tinyxmlerror.cpp utils/tinyxml/tinyxmlparser.cpp \ - addons.cpp addons.h addons/slot2_mpcf.cpp \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp \ addons/slot2_paddle.cpp addons/slot2_gbagame.cpp \ addons/slot2_none.cpp addons/slot2_rumblepak.cpp \ -@@ -764,10 +757,6 @@ distclean-compile: - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texcache.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thumb_instructions.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinystr.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxml.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlerror.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlparser.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfat.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/videofilter.Po@am__quote@ -@@ -1136,62 +1125,6 @@ partition.obj: utils/libfat/partition.cpp - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o partition.obj `if test -f 'utils/libfat/partition.cpp'; then $(CYGPATH_W) 'utils/libfat/partition.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/partition.cpp'; fi` - --tinystr.o: utils/tinyxml/tinystr.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinystr.o -MD -MP -MF $(DEPDIR)/tinystr.Tpo -c -o tinystr.o `test -f 'utils/tinyxml/tinystr.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinystr.cpp --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinystr.Tpo $(DEPDIR)/tinystr.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinystr.cpp' object='tinystr.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinystr.o `test -f 'utils/tinyxml/tinystr.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinystr.cpp -- --tinystr.obj: utils/tinyxml/tinystr.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinystr.obj -MD -MP -MF $(DEPDIR)/tinystr.Tpo -c -o tinystr.obj `if test -f 'utils/tinyxml/tinystr.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinystr.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinystr.cpp'; fi` --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinystr.Tpo $(DEPDIR)/tinystr.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinystr.cpp' object='tinystr.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinystr.obj `if test -f 'utils/tinyxml/tinystr.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinystr.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinystr.cpp'; fi` -- --tinyxml.o: utils/tinyxml/tinyxml.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxml.o -MD -MP -MF $(DEPDIR)/tinyxml.Tpo -c -o tinyxml.o `test -f 'utils/tinyxml/tinyxml.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxml.cpp --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxml.Tpo $(DEPDIR)/tinyxml.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxml.cpp' object='tinyxml.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxml.o `test -f 'utils/tinyxml/tinyxml.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxml.cpp -- --tinyxml.obj: utils/tinyxml/tinyxml.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxml.obj -MD -MP -MF $(DEPDIR)/tinyxml.Tpo -c -o tinyxml.obj `if test -f 'utils/tinyxml/tinyxml.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxml.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxml.cpp'; fi` --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxml.Tpo $(DEPDIR)/tinyxml.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxml.cpp' object='tinyxml.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxml.obj `if test -f 'utils/tinyxml/tinyxml.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxml.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxml.cpp'; fi` -- --tinyxmlerror.o: utils/tinyxml/tinyxmlerror.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlerror.o -MD -MP -MF $(DEPDIR)/tinyxmlerror.Tpo -c -o tinyxmlerror.o `test -f 'utils/tinyxml/tinyxmlerror.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlerror.cpp --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlerror.Tpo $(DEPDIR)/tinyxmlerror.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlerror.cpp' object='tinyxmlerror.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlerror.o `test -f 'utils/tinyxml/tinyxmlerror.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlerror.cpp -- --tinyxmlerror.obj: utils/tinyxml/tinyxmlerror.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlerror.obj -MD -MP -MF $(DEPDIR)/tinyxmlerror.Tpo -c -o tinyxmlerror.obj `if test -f 'utils/tinyxml/tinyxmlerror.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlerror.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlerror.cpp'; fi` --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlerror.Tpo $(DEPDIR)/tinyxmlerror.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlerror.cpp' object='tinyxmlerror.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlerror.obj `if test -f 'utils/tinyxml/tinyxmlerror.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlerror.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlerror.cpp'; fi` -- --tinyxmlparser.o: utils/tinyxml/tinyxmlparser.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlparser.o -MD -MP -MF $(DEPDIR)/tinyxmlparser.Tpo -c -o tinyxmlparser.o `test -f 'utils/tinyxml/tinyxmlparser.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlparser.cpp --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlparser.Tpo $(DEPDIR)/tinyxmlparser.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlparser.cpp' object='tinyxmlparser.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlparser.o `test -f 'utils/tinyxml/tinyxmlparser.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlparser.cpp -- --tinyxmlparser.obj: utils/tinyxml/tinyxmlparser.cpp --@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlparser.obj -MD -MP -MF $(DEPDIR)/tinyxmlparser.Tpo -c -o tinyxmlparser.obj `if test -f 'utils/tinyxml/tinyxmlparser.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlparser.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlparser.cpp'; fi` --@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlparser.Tpo $(DEPDIR)/tinyxmlparser.Po --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlparser.cpp' object='tinyxmlparser.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlparser.obj `if test -f 'utils/tinyxml/tinyxmlparser.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlparser.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlparser.cpp'; fi` -- - slot2_mpcf.o: addons/slot2_mpcf.cpp - @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_mpcf.o -MD -MP -MF $(DEPDIR)/slot2_mpcf.Tpo -c -o slot2_mpcf.o `test -f 'addons/slot2_mpcf.cpp' || echo '$(srcdir)/'`addons/slot2_mpcf.cpp - @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_mpcf.Tpo $(DEPDIR)/slot2_mpcf.Po +@@ -839,20 +829,6 @@ utils/libfat/lock.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) + utils/libfat/partition.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/$(am__dirstamp): +- @$(MKDIR_P) utils/tinyxml +- @: > utils/tinyxml/$(am__dirstamp) +-utils/tinyxml/$(DEPDIR)/$(am__dirstamp): +- @$(MKDIR_P) utils/tinyxml/$(DEPDIR) +- @: > utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinystr.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinyxml.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinyxmlerror.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinyxmlparser.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) + addons/$(am__dirstamp): + @$(MKDIR_P) addons + @: > addons/$(am__dirstamp) +@@ -1038,7 +1014,6 @@ mostlyclean-compile: + -rm -f utils/AsmJit/x86/*.$(OBJEXT) + -rm -f utils/decrypt/*.$(OBJEXT) + -rm -f utils/libfat/*.$(OBJEXT) +- -rm -f utils/tinyxml/*.$(OBJEXT) + + distclean-compile: + -rm -f *.tab.c +@@ -1171,10 +1146,6 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/libfat_public_api.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/lock.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/partition.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinystr.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxml.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxmlerror.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxmlparser.Po@am__quote@ + + .c.o: + @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@@ -1409,8 +1380,6 @@ distclean-generic: + -rm -f utils/decrypt/$(am__dirstamp) + -rm -f utils/libfat/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/libfat/$(am__dirstamp) +- -rm -f utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +- -rm -f utils/tinyxml/$(am__dirstamp) + + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" +@@ -1420,7 +1389,7 @@ clean: clean-recursive + clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am + + distclean: distclean-recursive +- -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) utils/tinyxml/$(DEPDIR) ++ -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) + -rm -f Makefile + distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags +@@ -1466,7 +1435,7 @@ install-ps-am: + installcheck-am: + + maintainer-clean: maintainer-clean-recursive +- -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) utils/tinyxml/$(DEPDIR) ++ -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) + -rm -f Makefile + maintainer-clean-am: distclean-am maintainer-clean-generic + diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am index 1985209..d958323 100644 --- a/src/cli/Makefile.am @@ -155,10 +149,10 @@ desmume_cli_LDADD += ../gdbstub/libgdbstub.a endif diff --git a/src/cli/Makefile.in b/src/cli/Makefile.in -index 6d4d37d..722099f 100644 +index 7e9afc3..f568745 100644 --- a/src/cli/Makefile.in +++ b/src/cli/Makefile.in -@@ -320,7 +320,7 @@ AM_LDFLAGS = +@@ -387,7 +387,7 @@ AM_LDFLAGS = desmume_cli_SOURCES = main.cpp ../sndsdl.cpp ../ctrlssdl.h ../ctrlssdl.cpp ../driver.h ../driver.cpp desmume_cli_LDADD = ../libdesmume.a $(SDL_LIBS) $(ALSA_LIBS) \ $(LIBAGG_LIBS) $(GLIB_LIBS) $(GTHREAD_LIBS) \ @@ -181,10 +175,10 @@ desmume_glade_LDADD += ../gdbstub/libgdbstub.a endif diff --git a/src/gtk-glade/Makefile.in b/src/gtk-glade/Makefile.in -index 103dc8b..930ddac 100644 +index b633083..e7dd238 100644 --- a/src/gtk-glade/Makefile.in +++ b/src/gtk-glade/Makefile.in -@@ -375,7 +375,7 @@ desmume_glade_SOURCES = \ +@@ -443,7 +443,7 @@ desmume_glade_SOURCES = \ desmume_glade_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTKGLEXT_LIBS) \ $(LIBGLADE_LIBS) $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) \ @@ -194,10 +188,10 @@ .SUFFIXES: diff --git a/src/gtk/Makefile.am b/src/gtk/Makefile.am -index 4cdf643..88ca09a 100644 +index 4bfda77..29bacc3 100644 --- a/src/gtk/Makefile.am +++ b/src/gtk/Makefile.am -@@ -26,7 +26,7 @@ desmume_SOURCES = \ +@@ -27,7 +27,7 @@ desmume_SOURCES = \ ../filter/videofilter.cpp ../filter/videofilter.h \ main.cpp main.h desmume_LDADD = ../libdesmume.a \ @@ -207,34 +201,20 @@ desmume_LDADD += ../gdbstub/libgdbstub.a endif diff --git a/src/gtk/Makefile.in b/src/gtk/Makefile.in -index 120353f..cb5e5f1 100644 +index 3718566..a653c99 100644 --- a/src/gtk/Makefile.in +++ b/src/gtk/Makefile.in -@@ -377,7 +377,8 @@ desmume_SOURCES = \ +@@ -452,7 +452,7 @@ desmume_SOURCES = \ desmume_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTK_LIBS) \ $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) \ -- $(LIBSOUNDTOUCH_LIBS) $(am__append_1) $(am__append_2) -+ $(LIBSOUNDTOUCH_LIBS) -ltinyxml $(am__append_1) \ -+ $(am__append_2) +- $(LIBSOUNDTOUCH_LIBS) $(am__append_1) $(am__append_2) \ ++ $(LIBSOUNDTOUCH_LIBS) -ltinyxml $(am__append_1) $(am__append_2) \ + $(am__append_3) UPDATE_DESKTOP = \ appsdir=$(DESTDIR)$(datadir)/applications ; \ - if [ -f $$appsdir/mimeinfo.cache ] ; then \ -diff --git a/src/mc.cpp b/src/mc.cpp -index eedf0d3..0a3fde9 100644 ---- a/src/mc.cpp -+++ b/src/mc.cpp -@@ -26,7 +26,7 @@ - #include "readwrite.h" - #include "NDSSystem.h" - #define TIXML_USE_STL --#include "utils/tinyxml/tinyxml.h" -+#include - - //temporary hack until we have better error reporting facilities - #ifdef _WINDOWS diff --git a/src/mc.h b/src/mc.h -index 7afcd60..2848b01 100644 +index 2495d7b..1c44753 100644 --- a/src/mc.h +++ b/src/mc.h @@ -26,7 +26,7 @@ @@ -246,3 +226,16 @@ #define MAX_SAVE_TYPES 13 #define MC_TYPE_AUTODETECT 0x0 +diff --git a/src/utils/advanscene.cpp b/src/utils/advanscene.cpp +index af22335..ca3dd33 100644 +--- a/src/utils/advanscene.cpp ++++ b/src/utils/advanscene.cpp +@@ -19,7 +19,7 @@ + #include + + #define TIXML_USE_STL +-#include "tinyxml/tinyxml.h" ++#include + + #include "advanscene.h" + #include "mc.h" diff -Nru desmume-0.9.9/debian/patches/add-keywords-to-desktop-files.patch desmume-0.9.10/debian/patches/add-keywords-to-desktop-files.patch --- desmume-0.9.9/debian/patches/add-keywords-to-desktop-files.patch 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/debian/patches/add-keywords-to-desktop-files.patch 2014-04-14 18:30:16.000000000 +0000 @@ -0,0 +1,34 @@ +From: Evgeni Golov +Date: Sun, 23 Mar 2014 12:03:04 +0100 +Subject: add keywords to desktop files + +see + http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html + https://wiki.gnome.org/Initiatives/GnomeGoals/DesktopFileKeywords +for details +--- + src/gtk-glade/desmume-glade.desktop | 1 + + src/gtk/desmume.desktop | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/gtk-glade/desmume-glade.desktop b/src/gtk-glade/desmume-glade.desktop +index 64a7363..3c2360b 100644 +--- a/src/gtk-glade/desmume-glade.desktop ++++ b/src/gtk-glade/desmume-glade.desktop +@@ -7,3 +7,4 @@ TryExec=desmume-glade + Exec=desmume-glade + Icon=DeSmuME + Categories=GNOME;GTK;Game;Emulator; ++Keywords=nintendo;ds;emulator +diff --git a/src/gtk/desmume.desktop b/src/gtk/desmume.desktop +index cae4c8e..788c05a 100644 +--- a/src/gtk/desmume.desktop ++++ b/src/gtk/desmume.desktop +@@ -8,3 +8,4 @@ Exec=desmume + Icon=DeSmuME + Categories=GNOME;GTK;Game;Emulator; + MimeType=application/x-nintendo-ds-rom; ++Keywords=nintendo;ds;emulator +-- +1.9.1 + diff -Nru desmume-0.9.9/debian/patches/bsd_sysctl_ftbfs_fix.patch desmume-0.9.10/debian/patches/bsd_sysctl_ftbfs_fix.patch --- desmume-0.9.9/debian/patches/bsd_sysctl_ftbfs_fix.patch 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/debian/patches/bsd_sysctl_ftbfs_fix.patch 2014-04-14 18:30:16.000000000 +0000 @@ -0,0 +1,15 @@ +diff --git a/src/utils/task.cpp b/src/utils/task.cpp +index a169276..83cfa57 100644 +--- a/src/utils/task.cpp ++++ b/src/utils/task.cpp +@@ -41,8 +41,8 @@ int getOnlineCores (void) + return sysconf(_SC_NPROCESSORS_ONLN); + #elif defined HOST_BSD + int cores; +- const int mib[4] = { CTL_HW, HW_NCPU, 0, 0 }; +- const size_t len = sizeof(cores); ++ int mib[4] = { CTL_HW, HW_NCPU, 0, 0 }; ++ size_t len = sizeof(cores); //don't make this const, i guess sysctl can't take a const * + sysctl(mib, 2, &cores, &len, NULL, 0); + return (cores < 1) ? 1 : cores; + #else diff -Nru desmume-0.9.9/debian/patches/series desmume-0.9.10/debian/patches/series --- desmume-0.9.9/debian/patches/series 2014-04-14 18:30:15.000000000 +0000 +++ desmume-0.9.10/debian/patches/series 2014-04-14 18:30:16.000000000 +0000 @@ -1 +1,3 @@ 01_use_system_tinyxml.patch +add-keywords-to-desktop-files.patch +bsd_sysctl_ftbfs_fix.patch diff -Nru desmume-0.9.9/depcomp desmume-0.9.10/depcomp --- desmume-0.9.9/depcomp 2013-05-01 21:30:08.000000000 +0000 +++ desmume-0.9.10/depcomp 2013-11-28 00:43:26.482903520 +0000 @@ -1,10 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2012-03-27.16; # UTC +scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,9 +27,9 @@ case $1 in '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -57,11 +56,65 @@ ;; esac +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + # A tabulation character. tab=' ' # A newline character. nl=' ' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 @@ -75,6 +128,9 @@ rm -f "$tmpdepfile" +# Avoid interferences from the environment. +gccflag= dashmflag= + # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -86,32 +142,32 @@ fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 fi if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. - gccflag=-qmakedep=gcc,-MF - depmode=gcc + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc fi case "$depmode" in @@ -134,8 +190,7 @@ done "$@" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -143,13 +198,17 @@ ;; gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -157,15 +216,14 @@ fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. + # The second -e expression handles DOS-style file names with drive + # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. @@ -174,15 +232,15 @@ ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. - tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -200,8 +258,7 @@ "$@" -MDupdate "$tmpdepfile" fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -209,7 +266,6 @@ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in @@ -217,19 +273,15 @@ # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr "$nl" ' ' >> "$depfile" + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" - # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" ;; @@ -247,9 +299,8 @@ # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -262,9 +313,7 @@ "$@" -M fi stat=$? - - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -273,65 +322,113 @@ do test -f "$tmpdepfile" && break done - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependent.h'. - # Do two passes, one to just change these to - # '$object: dependent.h' and one to simply 'dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -icc) - # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. - # However on - # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\': + # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... - # tcc 0.9.26 (FIXME still under development at the moment of writing) - # will emit a similar output, but also prepend the continuation lines - # with horizontal tabulation characters. - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" - # Each line is of the form 'foo.o: dependent.h', - # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to - # '$object: dependent.h' and one to simply 'dependent.h:'. - sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ - < "$tmpdepfile" > "$depfile" - sed ' - s/[ '"$tab"'][ '"$tab"']*/ /g - s/^ *// - s/ *\\*$// - s/^[^:]*: *// - /^$/d - /:$/d - s/$/ :/ - ' < "$tmpdepfile" >> "$depfile" + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -342,9 +439,8 @@ # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -355,8 +451,7 @@ "$@" +Maked fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -366,76 +461,61 @@ test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; msvc7) if test "$libtool" = yes; then @@ -446,8 +526,7 @@ "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" - if test "$stat" = 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -473,6 +552,7 @@ G p }' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; @@ -524,13 +604,14 @@ # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - tr ' ' "$nl" < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -583,10 +664,12 @@ # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -622,10 +705,10 @@ esac done - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -657,15 +740,15 @@ shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | diff -Nru desmume-0.9.9/INSTALL desmume-0.9.10/INSTALL --- desmume-0.9.9/INSTALL 2013-05-01 21:30:08.000000000 +0000 +++ desmume-0.9.10/INSTALL 2013-11-28 00:43:26.022896254 +0000 @@ -1,7 +1,7 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, @@ -309,9 +309,10 @@ overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -367,4 +368,3 @@ `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. - diff -Nru desmume-0.9.9/install-sh desmume-0.9.10/install-sh --- desmume-0.9.9/install-sh 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/install-sh 2013-11-28 00:43:25.998895875 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-01-19.21; # UTC +scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,7 +35,7 @@ # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it +# 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written @@ -156,7 +156,7 @@ -s) stripcmd=$stripprog;; -t) dst_arg=$2 - # Protect names problematic for `test' and other utilities. + # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac @@ -190,7 +190,7 @@ fi shift # arg dst_arg=$arg - # Protect names problematic for `test' and other utilities. + # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac @@ -202,7 +202,7 @@ echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call `install-sh -d' without argument. + # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi @@ -240,7 +240,7 @@ for src do - # Protect names problematic for `test' and other utilities. + # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac @@ -354,7 +354,7 @@ if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. + # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in diff -Nru desmume-0.9.9/Makefile.in desmume-0.9.10/Makefile.in --- desmume-0.9.9/Makefile.in 2013-05-01 21:30:08.000000000 +0000 +++ desmume-0.9.10/Makefile.in 2013-11-28 00:43:26.058896823 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,15 +78,13 @@ build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in \ - $(top_srcdir)/autopackage/default.apspec.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - TODO compile config.guess config.sub depcomp install-sh \ - missing +DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(top_srcdir)/autopackage/default.apspec.in COPYING TODO \ + compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -67,15 +92,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = autopackage/default.apspec CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -83,11 +121,32 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) @@ -98,6 +157,7 @@ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -125,6 +185,7 @@ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best +DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -162,6 +223,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -235,16 +297,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -351,22 +403,25 @@ cd $(top_builddir) && $(SHELL) ./config.status $@ # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -381,57 +436,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -447,12 +457,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -464,15 +469,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -481,9 +482,31 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -551,40 +574,42 @@ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__remove_distdir) + $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) + $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) + $(am__post_remove_distdir) -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -595,8 +620,6 @@ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -608,9 +631,9 @@ *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ @@ -642,7 +665,7 @@ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' @@ -777,13 +800,12 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ @@ -793,7 +815,7 @@ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am + pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/missing desmume-0.9.10/missing --- desmume-0.9.9/missing 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/missing 2013-11-28 00:43:25.998895875 +0000 @@ -1,11 +1,10 @@ #! /bin/sh -# Common stub for a few missing GNU programs while installing. +# Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-01-06.13; # UTC +scriptversion=2012-06-26.16; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,68 +25,40 @@ # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "Try '$0 --help' for more information" exit 1 fi -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi +case $1 in -msg="missing on your system" + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch] + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. Send bug reports to ." exit $? @@ -99,228 +70,141 @@ ;; -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; +# Run the given program, remember its exit status. +"$@"; st=$? - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; +# If it succeeded, we are done. +test $st -eq 0 && exit 0 - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi -exit 0 +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'automa4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -Nru desmume-0.9.9/po/POTFILES.skip desmume-0.9.10/po/POTFILES.skip --- desmume-0.9.9/po/POTFILES.skip 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/po/POTFILES.skip 2013-11-28 00:37:28.937184740 +0000 @@ -1,7 +0,0 @@ -src/wx/PadSimple/GUI/ConfigDlg.cpp -src/wxdlg/wxdlg3dViewer.cpp -src/wxdlg/wxcontrolsconfigdialog.cpp -src/windows/libelf_libdwarf/libelf/errors.h -src/windows/wx/include/wx/msw/ole/oleutils.h -src/windows/wx/include/wx/unix/pipe.h -src/windows/wx/include/wx/xti.h diff -Nru desmume-0.9.9/README desmume-0.9.10/README --- desmume-0.9.9/README 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/README 2013-11-28 00:37:28.925184546 +0000 @@ -1,8 +1,8 @@ DeSmuME _________________________________________ Copyright (C) 2006 yopyop - Copyright (C) 2006-2012 DeSmuME team - Last Updated: March 31, 2012 + Copyright (C) 2006-2013 DeSmuME team + Last Updated: November 23, 2013 Contents: 1) About ................................................................... 14 @@ -74,7 +74,7 @@ Official Website: http://desmume.org Public Forum: http://forums.desmume.org Developer Chat: irc://irc.freenode.net/desmume -Bug Reports: http://sourceforge.net/tracker/?group_id=164579&atid=832291 +Bug Reports: http://sourceforge.net/p/desmume/bugs Please don't ask for ROMs, BIOS files, or any other copyrighted stuff. diff -Nru desmume-0.9.9/README.LIN desmume-0.9.10/README.LIN --- desmume-0.9.9/README.LIN 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/README.LIN 2013-11-28 00:37:28.933184675 +0000 @@ -14,7 +14,7 @@ DeSmuME is written in C using the gtk+ and SDL libraries. So you need a working C compiler, such as gcc and -the above libraries runtime and development packages: +the following libraries runtime and development packages: * http://www.gtk.org @@ -48,7 +48,10 @@ Move to the toplevel directory (the one that contains the configure.ac file). Type "./autogen.sh" to generate the configure/install scripts and needed Makefiles. Then you can follow the -same procedure as in 1.1 . +same procedure as in 1.1 . intltoolize is required for the +autogen stage: + + * http://freedesktop.org/wiki/Software/intltool/ 2 How to use DeSmuME__________________________________________ diff -Nru desmume-0.9.9/README.MAC desmume-0.9.10/README.MAC --- desmume-0.9.9/README.MAC 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/README.MAC 2013-11-28 00:37:28.925184546 +0000 @@ -2,7 +2,7 @@ _________________________________________ Copyright (C) 2006 yopyop Copyright (C) 2006-2013 DeSmuME team - Last Updated: April 16, 2013 + Last Updated: November 27, 2013 Contents: 1) System Requirements ..................................................... 15 @@ -248,7 +248,7 @@ bugs. For example, if you observed a bug in the game Golden Sun: Dark Dawn, then the bug report could look something like this: - App Version: v0.9.9 + App Version: v0.9.10 Operating System: OS X v10.8.3 (12D78) Mac Model Identifier: iMac11,2 ROM Name: GOLDENSUN_DD diff -Nru desmume-0.9.9/src/addons/slot1comp_mc.cpp desmume-0.9.10/src/addons/slot1comp_mc.cpp --- desmume-0.9.9/src/addons/slot1comp_mc.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1comp_mc.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -0,0 +1,35 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +//this file contains the components used for emulating standard gamecard "MC" devices (eeprom, fram, flash) +//this is largely done by accessing the BackupDevice resources in the core emulator + +#include "types.h" +#include "../MMU.h" +#include "slot1comp_mc.h" + +Slot1Comp_MC g_Slot1Comp_MC; + +u8 Slot1Comp_MC::auxspi_transaction(int PROCNUM, u8 value) +{ + return MMU_new.backupDevice.data_command(value, PROCNUM); +} +void Slot1Comp_MC::auxspi_reset(int PROCNUM) +{ + MMU_new.backupDevice.reset_command(); +} + diff -Nru desmume-0.9.9/src/addons/slot1comp_mc.h desmume-0.9.10/src/addons/slot1comp_mc.h --- desmume-0.9.9/src/addons/slot1comp_mc.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1comp_mc.h 2013-11-28 00:37:17.913006725 +0000 @@ -0,0 +1,27 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +//this file contains the components used for emulating standard gamecard "MC" devices (eeprom, fram, flash) + +class Slot1Comp_MC +{ +public: + u8 auxspi_transaction(int PROCNUM, u8 value); + void auxspi_reset(int PROCNUM); +}; + +extern Slot1Comp_MC g_Slot1Comp_MC; \ No newline at end of file diff -Nru desmume-0.9.9/src/addons/slot1comp_protocol.cpp desmume-0.9.10/src/addons/slot1comp_protocol.cpp --- desmume-0.9.9/src/addons/slot1comp_protocol.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1comp_protocol.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -0,0 +1,239 @@ +/* + Copyright (C) 2012-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "slot1comp_protocol.h" +#include "MMU.h" +#include "armcpu.h" +#include "encrypt.h" +#include "../utils/decrypt/decrypt.h" + +static _KEY1 key1((const u8*)arm7_key); + +void Slot1Comp_Protocol::reset(ISlot1Comp_Protocol_Client* client) +{ + this->client = client; + + //we have to initialize this to something.. lets use dummy. + //(need to clean this up...) + memcpy(&command,"\x9F\0\0\0\0\0\0\0",8); + operation = eSlot1Operation_9F_Dummy; + + length = 0; + delay = 0; + mode = eCardMode_RAW; +} + +void Slot1Comp_Protocol::write_command_RAW(GC_Command command) +{ + int cmd = command.bytes[0]; + if(cmd == 0x9F) + { + operation = eSlot1Operation_9F_Dummy; + length = 0x2000; + } + if(cmd == 0x90) + { + operation = eSlot1Operation_90_ChipID; + length = 4; + //we handle this operation ourselves + } + if(cmd == 0x3C) + { + //switch to KEY1 + length = 0; + mode = eCardMode_KEY1; + + //defer initialization of KEY1 until we know we need it, just to save some CPU time. + //TODO - some information about these parameters + //level == 2 + //modulo == 8 + key1.init(gameCode, 2, 0x08); + GCLOG("[GC] KEY1 ACTIVATED\n"); + } + if(cmd == 0x00) + { + operation = eSlot1Operation_00_ReadHeader_Unencrypted; + client->slot1client_startOperation(operation); + } +} + +void Slot1Comp_Protocol::write_command_KEY1(GC_Command command) +{ + //decrypt the KEY1-format command + u32 temp[2]; + command.toCryptoBuffer(temp); + key1.decrypt(temp); + command.fromCryptoBuffer(temp); + GCLOG("[GC] (key1-decrypted):"); command.print(); + + //and process it: + int cmd = command.bytes[0]; + switch(cmd&0xF0) + { + case 0x10: + operation = eSlot1Operation_1x_ChipID; + delay = 0x910, length = 4; + //we handle this operation ourselves + break; + case 0x20: + operation = eSlot1Operation_2x_SecureAreaLoad; + delay = 0x910, length = 0x11A8; + + //TODO - more endian-safe way of doing this (theres examples in R4) + { + u64 cmd64 = bswap64(*(u64*)command.bytes); + //todo - parse into blocknumber + address = (u32)((cmd64 >> 32) & 0xF000); + } + client->slot1client_startOperation(operation); + + break; + case 0x40: + //switch to KEY2 + delay = 0x910, length = 0; + //well.. not really... yet. + GCLOG("[GC] KEY2 ACTIVATED\n"); + break; + case 0x60: + //KEY2 disable? any info? + break; + case 0xA0: + delay = 0x910, length = 0; + mode = eCardMode_NORMAL; + GCLOG("[GC] NORMAL MODE ACTIVATED\n"); + break; + + } +} + +void Slot1Comp_Protocol::write_command_NORMAL(GC_Command command) +{ + switch(command.bytes[0]) + { + case 0xB7: + { + operation = eSlot1Operation_B7_Read; + + //TODO - more endian-safe way of doing this (theres examples in R4) + u64 cmd64 = bswap64(*(u64*)command.bytes); + address = (u32)((cmd64 >> 24)); + length = 0x200; + + client->slot1client_startOperation(operation); + } + break; + + case 0xB8: + operation = eSlot1Operation_B8_ChipID; + delay = 0, length = 4; + //we handle this operation ourselves + break; + + default: + operation = eSlot1Operation_Unknown; + client->slot1client_startOperation(operation); + break; + } +} + +void Slot1Comp_Protocol::write_command(GC_Command command) +{ + this->command = command; + + //unrecognized commands will do something depending on the current state of the card + delay = 0; + length = 0; + address = 0; + + switch(mode) + { + case eCardMode_RAW: + write_command_RAW(command); + break; + + case eCardMode_KEY1: + write_command_KEY1(command); + break; + + case eCardMode_NORMAL: + write_command_NORMAL(command); + break; + } +} + +void Slot1Comp_Protocol::write_GCDATAIN(u8 PROCNUM, u32 val) +{ + switch(operation) + { + case eSlot1Operation_Unknown: + client->slot1client_write_GCDATAIN(operation,val); + break; + } +} + +u32 Slot1Comp_Protocol::read_GCDATAIN(u8 PROCNUM) +{ + switch(operation) + { + default: + return client->slot1client_read_GCDATAIN(operation); + + case eSlot1Operation_9F_Dummy: + return 0xFFFFFFFF; + + case eSlot1Operation_1x_ChipID: + return chipId; + + case eSlot1Operation_90_ChipID: + case eSlot1Operation_B8_ChipID: + + //Most games continuously compare the current chipId with the value in + //stored in memory at boot-up, probably to know if the card was removed. + + //staff of kings verifies this (it also uses the arm7 IRQ 20 to detect card ejects) + return chipId; + } + + return 0xFFFFFFFF; +} + +void Slot1Comp_Protocol::savestate(EMUFILE* os) +{ + s32 version = 0; + os->write32le(version); + os->write32le((s32)mode); + os->write32le((s32)operation); + os->fwrite(command.bytes,8); + os->write32le(address); + os->write32le(length); + os->write32le(delay); + os->write32le(chipId); + os->write32le(gameCode); +} + +void Slot1Comp_Protocol::loadstate(EMUFILE* is) +{ + s32 version = is->read32le(); + mode = (eCardMode)is->read32le(); + operation = (eSlot1Operation)is->read32le(); + is->fread(command.bytes,8); + address = is->read32le(); + length = is->read32le(); + delay = is->read32le(); + chipId = is->read32le(); + gameCode = is->read32le(); +} diff -Nru desmume-0.9.9/src/addons/slot1comp_protocol.h desmume-0.9.10/src/addons/slot1comp_protocol.h --- desmume-0.9.9/src/addons/slot1comp_protocol.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1comp_protocol.h 2013-11-28 00:37:17.913006725 +0000 @@ -0,0 +1,111 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +//this file contains the components used for emulating standard gamecard protocol. +//this largely means the complex boot-up process. +//i think there's no reason why proprietary cards couldn't speak any protocol they wish, as long as they didn't mind being unbootable. +//TODO - could this be refactored into a base class? that's probably more reasonable. but we've gone with this modular mix-in architecture so... not yet. + +#ifndef _SLOT1COMP_PROTOCOL_H +#define _SLOT1COMP_PROTOCOL_H + +#include "MMU.h" + +enum eSlot1Operation +{ + //---------- + //RAW mode operations + //before encrypted communications can be established, some values from the rom header must be read. + //this is the only way to read the header, actually, since the only reading commands available to games (after KEY2 mode is set) are + eSlot1Operation_00_ReadHeader_Unencrypted, + //it's not clear why this exists + eSlot1Operation_9F_Dummy, + eSlot1Operation_90_ChipID, + //---------- + + //---------- + //KEY1 mode operations + eSlot1Operation_1x_ChipID, + eSlot1Operation_2x_SecureAreaLoad, + //---------- + + //---------- + //NORMAL mode operations + //the main rom data reading command + eSlot1Operation_B7_Read, + eSlot1Operation_B8_ChipID, + //---------- + + eSlot1Operation_Unknown +}; + +class ISlot1Comp_Protocol_Client +{ +public: + virtual void slot1client_startOperation(eSlot1Operation operation) {} + virtual u32 slot1client_read_GCDATAIN(eSlot1Operation operation) = 0; + virtual void slot1client_write_GCDATAIN(eSlot1Operation operation, u32 val) {} +}; + + +class Slot1Comp_Protocol +{ +public: + + void savestate(EMUFILE* os); + void loadstate(EMUFILE* is); + + //set some kind of protocol/hardware reset state + void reset(ISlot1Comp_Protocol_Client* client); + + //signals from the GC bus + void write_command(GC_Command command); + void write_GCDATAIN(u8 PROCNUM, u32 val); + u32 read_GCDATAIN(u8 PROCNUM); + + //helpers for write_command() + void write_command_RAW(GC_Command command); + void write_command_KEY1(GC_Command command); + void write_command_NORMAL(GC_Command command); + + //operations not related to obscurities of the protocol or otherwise unknown are passed through to the client here + ISlot1Comp_Protocol_Client* client; + + //--state-- + + //the major operational mode. the protocol shifts modes and interprets commands into operations differently depending on the mode + eCardMode mode; + + //the current operational state + eSlot1Operation operation; + + //the command we're currently crunching on + GC_Command command; + + //most operations are defined in terms of returning a series of bytes + //the meaning of these varies by operation. they are provided publicly as a service to clients + u32 address; + s32 length, delay; //the expected length and delay of this state + + //chipId which should be returned by the various chipId commands + u32 chipId; + + //gameCode used by the protocol KEY1 crypto + u32 gameCode; +}; + +#endif //_SLOT1COMP_PROTOCOL_H \ No newline at end of file diff -Nru desmume-0.9.9/src/addons/slot1comp_rom.cpp desmume-0.9.10/src/addons/slot1comp_rom.cpp --- desmume-0.9.9/src/addons/slot1comp_rom.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1comp_rom.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -0,0 +1,116 @@ +/* + Copyright (C) 2010-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "slot1comp_rom.h" +#include "MMU.h" +#include "NDSSystem.h" + + +void Slot1Comp_Rom::start(eSlot1Operation operation, u32 addr) +{ + this->operation = operation; + this->address = addr; +} + +u32 Slot1Comp_Rom::read() +{ + switch(operation) + { + case eSlot1Operation_00_ReadHeader_Unencrypted: + { + u32 ret = gameInfo.readROM(address); + address = (address + 4) & 0xFFF; + return ret; + } + break; + + case eSlot1Operation_2x_SecureAreaLoad: + { + //see B7 for details + address &= gameInfo.mask; //sanity check + u32 ret = *(u32*)(gameInfo.secureArea + (address - 0x4000)); + address = (address&~0xFFF) + ((address+4)&0xFFF); + return ret; + } + + case eSlot1Operation_B7_Read: + { + //TODO - check about non-4-byte aligned addresses + + //OBSOLETED? + ////it seems that etrian odyssey 3 doesnt work unless we mask this to cart size. + ////but, a thought: does the internal rom address counter register wrap around? we may be making a mistake by keeping the extra precision + ////but there is no test case yet + //at any rate, this is good for safety's sake. + + address &= gameInfo.mask; + + //"Can be used only for addresses 8000h and up, smaller addresses will be silently redirected to address `8000h+(addr AND 1FFh)`" + if(address < 0x8000) + address = (0x8000 + (address & 0x1FF)); + + //as a sanity measure for funny-sized roms (homebrew and perhaps truncated retail roms) + //we need to protect ourselves by returning 0xFF for things still out of range + if (address > gameInfo.header.endROMoffset) + { + DEBUG_Notify.ReadBeyondEndOfCart(address,gameInfo.romsize); + return 0xFFFFFFFF; + } + + //actually read from the ROM provider + u32 ret = gameInfo.readROM(address); + + //"However, the datastream wraps to the begin of the current 4K block when address+length crosses a 4K boundary (1000h bytes)" + address = (address&~0xFFF) + ((address+4)&0xFFF); + + return ret; + } + break; + + default: + return 0; + + } //switch(operation) +} //Slot1Comp_Rom::read() + +u32 Slot1Comp_Rom::getAddress() +{ + return address & gameInfo.mask; +} //Slot1Comp_Rom::getAddress() + +u32 Slot1Comp_Rom::incAddress() +{ + address &= gameInfo.mask; + address = (address&~0xFFF) + ((address+4)&0xFFF); + return address; +} + + +void Slot1Comp_Rom::savestate(EMUFILE* os) +{ + s32 version = 0; + os->write32le(version); + os->write32le((s32)operation); + os->write32le(address); +} + +void Slot1Comp_Rom::loadstate(EMUFILE* is) +{ + s32 version = is->read32le(); + operation = (eSlot1Operation)is->read32le(); + address = is->read32le(); +} \ No newline at end of file diff -Nru desmume-0.9.9/src/addons/slot1comp_rom.h desmume-0.9.10/src/addons/slot1comp_rom.h --- desmume-0.9.9/src/addons/slot1comp_rom.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1comp_rom.h 2013-11-28 00:37:17.909006661 +0000 @@ -0,0 +1,39 @@ +/* + Copyright (C) 2010-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +//this file contains the components used for emulating standard gamecard ROMs +//this is largely done by accessing the rom provided in the core emulator + +#include "slot1comp_protocol.h" +#include "emufile.h" + +class Slot1Comp_Rom +{ +public: + void start(eSlot1Operation operation, u32 addr); + u32 read(); + u32 getAddress(); + u32 incAddress(); + + void savestate(EMUFILE* os); + void loadstate(EMUFILE* is); + +private: + u32 address; + eSlot1Operation operation; +}; + diff -Nru desmume-0.9.9/src/addons/slot1_none.cpp desmume-0.9.10/src/addons/slot1_none.cpp --- desmume-0.9.9/src/addons/slot1_none.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_none.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2010-2012 DeSmuME team + Copyright (C) 2010-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,45 +16,23 @@ */ #include "../slot1.h" +#include "../registers.h" +#include "../MMU.h" +#include "../NDSSystem.h" -static void slot1_info(char *info) { strcpy(info, "Slot1 no-card emulation"); } -static void slot1_config(void) {} - -static BOOL slot1_init() { return (TRUE); } - -static void slot1_reset() {} - -static void slot1_close() {} - - -static void slot1_write08(u8 PROCNUM, u32 adr, u8 val) {} -static void slot1_write16(u8 PROCNUM, u32 adr, u16 val) {} -static void slot1_write32(u8 PROCNUM, u32 adr, u32 val) {} - -static u8 slot1_read08(u8 PROCNUM, u32 adr) -{ - return 0xFF; -} -static u16 slot1_read16(u8 PROCNUM, u32 adr) -{ - return 0xFFFF; -} -static u32 slot1_read32(u8 PROCNUM, u32 adr) +class Slot1_None : public ISlot1Interface { - return 0xFFFFFFFF; -} +public: + virtual Slot1Info const* info() + { + static Slot1InfoSimple info("None","Slot1 no-card emulation", 0xFF); + return &info; + } + + //pretty much every access to the card should just be ignored and reading HIGH-Z off the GC bus. + //so, nothing really to do here + //(notably, it results in a 0xFFFFFFFF card ID) +}; -SLOT1INTERFACE slot1None = { - "None", - slot1_init, - slot1_reset, - slot1_close, - slot1_config, - slot1_write08, - slot1_write16, - slot1_write32, - slot1_read08, - slot1_read16, - slot1_read32, - slot1_info}; +ISlot1Interface* construct_Slot1_None() { return new Slot1_None(); } \ No newline at end of file diff -Nru desmume-0.9.9/src/addons/slot1_r4.cpp desmume-0.9.10/src/addons/slot1_r4.cpp --- desmume-0.9.9/src/addons/slot1_r4.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_r4.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,20 +1,18 @@ -/* Copyright (C) 2010-2011 DeSmuME team +/* + Copyright (C) 2010-2013 DeSmuME team - This file is part of DeSmuME + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ #include @@ -24,214 +22,222 @@ #include "../MMU.h" #include "../NDSSystem.h" #include "../emufile.h" +#include "slot1comp_protocol.h" -static EMUFILE *img = NULL; -static u32 write_count = 0; -static u32 write_enabled = 0; -static void init_r4_flash() +class Slot1_R4 : public ISlot1Interface, public ISlot1Comp_Protocol_Client { - srand(time(NULL)); +private: + EMUFILE *img; + Slot1Comp_Protocol protocol; + u32 write_count; + u32 write_enabled; - if (!img) - img = slot1GetFatImage(); - - if(!img) +public: + Slot1_R4() + : img(NULL) + , write_count(0) + , write_enabled(0) { - INFO("slot1 fat not successfully mounted\n"); } -} -static void info(char *info) { strcpy(info, "Slot1 R4 Emulation"); } -static void config(void) {} + virtual Slot1Info const* info() + { + static Slot1InfoSimple info("R4", "Slot1 R4 emulation", 0x03); + return &info; + } -static BOOL init() -{ - init_r4_flash(); - return TRUE; -} + //called once when the emulator starts up, or when the device springs into existence + virtual bool init() + { + //strange to do this here but we need to make sure its done at some point + srand(time(NULL)); + return true; + } + + virtual void connect() + { + img = slot1_GetFatImage(); -static void reset() { - init_r4_flash(); -} + if(!img) + INFO("slot1 fat not successfully mounted\n"); -static void close() { - img = NULL; -} + protocol.reset(this); + protocol.chipId = 0xFC2; + protocol.gameCode = T1ReadLong((u8*)gameInfo.header.gameCode,0); + } + //called when the emulator disconnects the device + virtual void disconnect() + { + img = NULL; + } + + //called when the emulator shuts down, or when the device disappears from existence + virtual void shutdown() + { + } -static void write08(u8 PROCNUM, u32 adr, u8 val) {} -static void write16(u8 PROCNUM, u32 adr, u16 val) {} -static void write32_GCROMCTRL(u32 val) -{ - nds_dscard& card = MMU.dscard[0]; - - switch(card.command[0]) + virtual void write_command(u8 PROCNUM, GC_Command command) + { + protocol.write_command(command); + } + virtual void write_GCDATAIN(u8 PROCNUM, u32 val) { - case 0xB0: - break; - case 0xB9: - case 0xBA: - card.address = (card.command[1] << 24) | (card.command[2] << 16) | (card.command[3] << 8) | card.command[4]; - img->fseek(card.address,SEEK_SET); - break; - case 0xBB: - write_enabled = 1; - write_count = 0x80; - case 0xBC: - card.address = (card.command[1] << 24) | (card.command[2] << 16) | (card.command[3] << 8) | card.command[4]; - img->fseek(card.address,SEEK_SET); - break; + protocol.write_GCDATAIN(PROCNUM, val); + } + virtual u32 read_GCDATAIN(u8 PROCNUM) + { + return protocol.read_GCDATAIN(PROCNUM); } -} -static void write32_GCDATAIN(u32 val) -{ - nds_dscard& card = MMU.dscard[0]; - //bool log=false; + virtual void slot1client_startOperation(eSlot1Operation operation) + { + if(operation != eSlot1Operation_Unknown) + return; - memcpy(&card.command[0], &MMU.MMU_MEM[0][0x40][0x1A8], 8); + u32 address; + int cmd = protocol.command.bytes[0]; + switch(cmd) + { + case 0xB0: + break; + case 0xB9: + case 0xBA: + address = (protocol.command.bytes[1] << 24) | (protocol.command.bytes[2] << 16) | (protocol.command.bytes[3] << 8) | protocol.command.bytes[4]; + img->fseek(address,SEEK_SET); + break; + case 0xBB: + write_enabled = 1; + write_count = 0x80; + //passthrough on purpose? + case 0xBC: + address = (protocol.command.bytes[1] << 24) | (protocol.command.bytes[2] << 16) | (protocol.command.bytes[3] << 8) | protocol.command.bytes[4]; + img->fseek(address,SEEK_SET); + break; + } + } - //last_write_count = write_count; - if(card.command[4]) + virtual u32 slot1client_read_GCDATAIN(eSlot1Operation operation) { - // transfer is done - T1WriteLong(MMU.MMU_MEM[0][0x40], 0x1A4,val & 0x7F7FFFFF); + if(operation != eSlot1Operation_Unknown) + return 0; - // if needed, throw irq for the end of transfer - if(MMU.AUX_SPI_CNT & 0x4000) - NDS_makeIrq(ARMCPU_ARM9, IRQ_BIT_GC_TRANSFER_COMPLETE); + u32 val; + int cmd = protocol.command.bytes[0]; + switch(cmd) + { + case 0xB0: + val = (img) ? 0x1F4 : 0x1F2; + break; + case 0xB9: + val = (rand() % 100) ? (img) ? 0x1F4 : 0x1F2 : 0; + break; + case 0xBB: + case 0xBC: + val = 0; + break; + case 0xBA: + //INFO("Read from sd at sector %08X at adr %08X ",card.address/512,ftell(img)); + img->fread(&val, 4); + //INFO("val %08X\n",val); + break; + default: + val = 0; + break; + } - return; + return val; } - switch(card.command[0]) + void slot1client_write_GCDATAIN(eSlot1Operation operation, u32 val) { - case 0xBB: + if(operation != eSlot1Operation_Unknown) + return; + + int cmd = protocol.command.bytes[0]; + switch(cmd) { - if(write_count && write_enabled) + case 0xBB: { - img->fwrite(&val, 4); - img->fflush(); - write_count--; + if(write_count && write_enabled) + { + img->fwrite(&val, 4); + img->fflush(); + write_count--; + } + break; } - break; + default: + break; } - default: - break; } - if(write_count==0) + virtual void post_fakeboot(int PROCNUM) + { + // The BIOS leaves the card in NORMAL mode + protocol.mode = eCardMode_NORMAL; + } + + void write32_GCDATAIN(u32 val) { - write_enabled = 0; + //bool log = false; - // transfer is done - T1WriteLong(MMU.MMU_MEM[0][0x40], 0x1A4,val & 0x7F7FFFFF); + //last_write_count = write_count; - // if needed, throw irq for the end of transfer - if(MMU.AUX_SPI_CNT & 0x4000) - NDS_makeIrq(ARMCPU_ARM9, IRQ_BIT_GC_TRANSFER_COMPLETE); - } + //can someone tell me ... what the hell is this doing, anyway? + //seems odd to use card.command[4] for this... isnt it part of the address? + if(protocol.command.bytes[4]) + { + // transfer is done + //are you SURE this is logical? there doesnt seem to be any way for the card to signal that + T1WriteLong(MMU.MMU_MEM[0][0x40], 0x1A4,val & 0x7F7FFFFF); - /*if(log) - { - INFO("WRITE CARD command: %02X%02X%02X%02X%02X%02X%02X%02X\t", - card.command[0], card.command[1], card.command[2], card.command[3], - card.command[4], card.command[5], card.command[6], card.command[7]); - INFO("FROM: %08X\t", NDS_ARM9.instruct_adr); - INFO("VAL: %08X\n", val); - }*/ -} + MMU_GC_endTransfer(0); -static void write32(u8 PROCNUM, u32 adr, u32 val) -{ - switch(adr) - { - case REG_GCROMCTRL: - write32_GCROMCTRL(val); - break; - case REG_GCDATAIN: - write32_GCDATAIN(val); - break; - } -} + return; + } -static u8 read08(u8 PROCNUM, u32 adr) -{ - return 0xFF; -} -static u16 read16(u8 PROCNUM, u32 adr) -{ - return 0xFFFF; -} + int cmd = protocol.command.bytes[0]; + switch(cmd) + { + case 0xBB: + { + if(write_count && write_enabled) + { + img->fwrite(&val, 4); + img->fflush(); + write_count--; + } + break; + } + default: + break; + } + if(write_count==0) + { + write_enabled = 0; -static u32 read32_GCDATAIN() -{ - nds_dscard& card = MMU.dscard[0]; - - u32 val; + //transfer is done - switch(card.command[0]) - { - //Get ROM chip ID - case 0x90: - case 0xB8: - val = 0xFC2; - break; - - case 0xB0: - val = 0x1F4; - break; - case 0xB9: - val = (rand() % 100) ? 0x1F4 : 0; - break; - case 0xBB: - case 0xBC: - val = 0; - break; - case 0xBA: - //INFO("Read from sd at sector %08X at adr %08X ",card.address/512,ftell(img)); - img->fread(&val, 4); - //INFO("val %08X\n",val); - break; - - default: - val = 0; - } - - /*INFO("READ CARD command: %02X%02X%02X%02X% 02X%02X%02X%02X RET: %08X ", - card.command[0], card.command[1], card.command[2], card.command[3], - card.command[4], card.command[5], card.command[6], card.command[7], - val); - INFO("FROM: %08X LR: %08X\n", NDS_ARM9.instruct_adr, NDS_ARM9.R[14]);*/ + //are you SURE this is logical? there doesnt seem to be any way for the card to signal that + T1WriteLong(MMU.MMU_MEM[0][0x40], 0x1A4,val & 0x7F7FFFFF); + //but isnt this a different IRQ? IREQ_MC perhaps + MMU_GC_endTransfer(0); + } - return val; -} //read32_GCDATAIN + /*if(log) + { + INFO("WRITE CARD command: %02X%02X%02X%02X%02X%02X%02X%02X\t", + card.command[0], card.command[1], card.command[2], card.command[3], + card.command[4], card.command[5], card.command[6], card.command[7]); + INFO("FROM: %08X\t", NDS_ARM9.instruct_adr); + INFO("VAL: %08X\n", val); + }*/ + } +}; -static u32 read32(u8 PROCNUM, u32 adr) -{ - switch(adr) - { - case REG_GCDATAIN: - return read32_GCDATAIN(); - default: - return 0; - } -} - -SLOT1INTERFACE slot1R4 = { - "R4", - init, - reset, - close, - config, - write08, - write16, - write32, - read08, - read16, - read32, - info}; +ISlot1Interface* construct_Slot1_R4() { return new Slot1_R4(); } diff -Nru desmume-0.9.9/src/addons/slot1_retail_auto.cpp desmume-0.9.10/src/addons/slot1_retail_auto.cpp --- desmume-0.9.9/src/addons/slot1_retail_auto.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_retail_auto.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -0,0 +1,104 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "../slot1.h" +#include "../registers.h" +#include "../MMU.h" +#include "../NDSSystem.h" + +class Slot1_Retail_Auto : public ISlot1Interface +{ +private: + ISlot1Interface *mSelectedImplementation; + +public: + Slot1_Retail_Auto() + : mSelectedImplementation(NULL) + { + } + + virtual Slot1Info const* info() + { + static Slot1InfoSimple info("Retail (Auto)","Slot1 Retail (auto-selection) card emulation", 0xFE); + return &info; + } + + virtual void connect() + { + + NDS_SLOT1_TYPE selection = NDS_SLOT1_RETAIL_MCROM; + + //check game ID in core emulator and select right implementation + if ((memcmp(gameInfo.header.gameCode, "UOR", 3) == 0) || // WarioWare - D.I.Y. (U)(E)(EUR) / Made in Ore (J) + (memcmp(gameInfo.header.gameCode, "UXBP", 4) == 0) // Jam with the Band (EUR) + ) + selection = NDS_SLOT1_RETAIL_NAND; + + slot1_selected_type = selection; + mSelectedImplementation = slot1_List[selection]; + mSelectedImplementation->connect(); + printf("Slot1 auto-selected device type: %s\n",mSelectedImplementation->info()->name()); + } + + virtual void disconnect() + { + if(mSelectedImplementation) mSelectedImplementation->disconnect(); + mSelectedImplementation = NULL; + } + + virtual void write_command(u8 PROCNUM, GC_Command command) + { + mSelectedImplementation->write_command(PROCNUM, command); + } + + virtual void write_GCDATAIN(u8 PROCNUM, u32 val) + { + mSelectedImplementation->write_GCDATAIN(PROCNUM, val); + } + + virtual u32 read_GCDATAIN(u8 PROCNUM) + { + return mSelectedImplementation->read_GCDATAIN(PROCNUM); + } + + virtual u8 auxspi_transaction(int PROCNUM, u8 value) + { + return mSelectedImplementation->auxspi_transaction(PROCNUM, value); + } + + virtual void auxspi_reset(int PROCNUM) + { + mSelectedImplementation->auxspi_reset(PROCNUM); + } + + virtual void post_fakeboot(int PROCNUM) + { + mSelectedImplementation->post_fakeboot(PROCNUM); + } + + virtual void savestate(EMUFILE* os) + { + mSelectedImplementation->savestate(os); + } + + virtual void loadstate(EMUFILE* is) + { + mSelectedImplementation->loadstate(is); + } +}; + +ISlot1Interface* construct_Slot1_Retail_Auto() { return new Slot1_Retail_Auto(); } diff -Nru desmume-0.9.9/src/addons/slot1_retail.cpp desmume-0.9.10/src/addons/slot1_retail.cpp --- desmume-0.9.9/src/addons/slot1_retail.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_retail.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,288 +0,0 @@ -/* Copyright (C) 2010-2011 DeSmuME team - - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "../slot1.h" -#include "../registers.h" -#include "../MMU.h" -#include "../NDSSystem.h" - -static void info(char *info) { strcpy(info, "Slot1 Retail card emulation"); } -static void config(void) {} - -static BOOL init() { return (TRUE); } - -static void reset() {} - -static void close() {} - - -static void write08(u8 PROCNUM, u32 adr, u8 val) {} -static void write16(u8 PROCNUM, u32 adr, u16 val) {} - -static void write32_GCROMCTRL(u8 PROCNUM, u32 val) -{ - nds_dscard& card = MMU.dscard[PROCNUM]; - - switch(card.command[0]) - { - case 0x00: //Data read - case 0xB7: - card.address = (card.command[1] << 24) | (card.command[2] << 16) | (card.command[3] << 8) | card.command[4]; - card.transfer_count = 0x80; - break; - - case 0xB8: // Chip ID - card.address = 0; - card.transfer_count = 1; - break; - - default: - card.address = 0; - card.transfer_count = 0; - break; - } -} - -static void write32(u8 PROCNUM, u32 adr, u32 val) -{ - switch(adr) - { - case REG_GCROMCTRL: - write32_GCROMCTRL(PROCNUM, val); - break; - } -} - -static u8 read08(u8 PROCNUM, u32 adr) -{ - return 0xFF; -} -static u16 read16(u8 PROCNUM, u32 adr) -{ - return 0xFFFF; -} - -static u32 read32_GCDATAIN(u8 PROCNUM) -{ - nds_dscard& card = MMU.dscard[PROCNUM]; - - switch(card.command[0]) - { - //Get ROM chip ID - case 0x90: - case 0xB8: - { - // Note: the BIOS stores the chip ID in main memory - // Most games continuously compare the chip ID with - // the value in memory, probably to know if the card - // was removed. - // As DeSmuME normally boots directly from the game, the chip - // ID in main mem is zero and this value needs to be - // zero too. - - //note that even if desmume was booting from firmware, and reading this chip ID to store in main memory, - //this still works, since it will have read 00 originally and then read 00 to validate. - - //staff of kings verifies this (it also uses the arm7 IRQ 20) - if(nds.cardEjected) //TODO - handle this with ejected card slot1 device (and verify using this case) - return 0xFFFFFFFF; - else return 0; - } - break; - - - // Data read - case 0x00: - case 0xB7: - { - //it seems that etrian odyssey 3 doesnt work unless we mask this to cart size. - //but, a thought: does the internal rom address counter register wrap around? we may be making a mistake by keeping the extra precision - //but there is no test case yet - u32 address = card.address & (gameInfo.mask); - - // Make sure any reads below 0x8000 redirect to 0x8000+(adr&0x1FF) as on real cart - if((card.command[0] == 0xB7) && (address < 0x8000)) - { - //TODO - refactor this to include the PROCNUM, for debugging purposes if nothing else - //(can refactor gbaslot also) - - //INFO("Read below 0x8000 (0x%04X) from: ARM%s %08X\n", - // card.address, (PROCNUM ? "7":"9"), (PROCNUM ? NDS_ARM7:NDS_ARM9).instruct_adr); - - address = (0x8000 + (address&0x1FF)); - } - - //as a sanity measure for funny-sized roms (homebrew and perhaps truncated retail roms) - //we need to protect ourselves by returning 0xFF for things still out of range - if(address >= gameInfo.romsize) - { - DEBUG_Notify.ReadBeyondEndOfCart(address,gameInfo.romsize); - return 0xFFFFFFFF; - } - - return T1ReadLong(MMU.CART_ROM, address); - } - break; - default: - return 0; - } //switch(card.command[0]) -} //read32_GCDATAIN - -static u32 read32(u8 PROCNUM, u32 adr) -{ - switch(adr) - { - case REG_GCDATAIN: - return read32_GCDATAIN(PROCNUM); - default: - return 0; - } -} - - -SLOT1INTERFACE slot1Retail = { - "Retail", - init, - reset, - close, - config, - write08, - write16, - write32, - read08, - read16, - read32, - info -}; - - - - // ///writetoGCControl: - //// --- Ninja SD commands ------------------------------------- - - // // NJSD init/reset - // case 0x20: - // { - // card.address = 0; - // card.transfer_count = 0; - // } - // break; - - // // NJSD_sendCLK() - // case 0xE0: - // { - // card.address = 0; - // card.transfer_count = 0; - // NDS_makeInt(PROCNUM, 20); - // } - // break; - - // // NJSD_sendCMDN() / NJSD_sendCMDR() - // case 0xF0: - // case 0xF1: - // switch (card.command[2]) - // { - // // GO_IDLE_STATE - // case 0x40: - // card.address = 0; - // card.transfer_count = 0; - // NDS_makeInt(PROCNUM, 20); - // break; - - // case 0x42: // ALL_SEND_CID - // case 0x43: // SEND_RELATIVE_ADDR - // case 0x47: // SELECT_CARD - // case 0x49: // SEND_CSD - // case 0x4D: - // case 0x77: // APP_CMD - // case 0x69: // SD_APP_OP_COND - // card.address = 0; - // card.transfer_count = 6; - // NDS_makeInt(PROCNUM, 20); - // break; - - // // SET_BLOCKLEN - // case 0x50: - // card.address = 0; - // card.transfer_count = 6; - // card.blocklen = card.command[6] | (card.command[5] << 8) | (card.command[4] << 16) | (card.command[3] << 24); - // NDS_makeInt(PROCNUM, 20); - // break; - - // // READ_SINGLE_BLOCK - // case 0x51: - // card.address = card.command[6] | (card.command[5] << 8) | (card.command[4] << 16) | (card.command[3] << 24); - // card.transfer_count = (card.blocklen + 3) >> 2; - // NDS_makeInt(PROCNUM, 20); - // break; - // } - // break; - - // // --- Ninja SD commands end --------------------------------- - - - - // //GCDATAIN: - // // --- Ninja SD commands ------------------------------------- - - // // NJSD_sendCMDN() / NJSD_sendCMDR() - // case 0xF0: - // case 0xF1: - // switch (card.command[2]) - // { - // // ALL_SEND_CID - // case 0x42: - // if (card.transfer_count == 2) val = 0x44534A4E; - // else val = 0x00000000; - - // // SEND_RELATIVE_ADDR - // case 0x43: - // case 0x47: - // case 0x49: - // case 0x50: - // val = 0x00000000; - // break; - - // case 0x4D: - // if (card.transfer_count == 2) val = 0x09000000; - // else val = 0x00000000; - // break; - - // // APP_CMD - // case 0x77: - // if (card.transfer_count == 2) val = 0x00000037; - // else val = 0x00000000; - // break; - - // // SD_APP_OP_COND - // case 0x69: - // if (card.transfer_count == 2) val = 0x00008000; - // else val = 0x00000000; - // break; - - // // READ_SINGLE_BLOCK - // case 0x51: - // val = 0x00000000; - // break; - // } - // break; - - // // --- Ninja SD commands end --------------------------------- - - diff -Nru desmume-0.9.9/src/addons/slot1_retail_mcrom.cpp desmume-0.9.10/src/addons/slot1_retail_mcrom.cpp --- desmume-0.9.9/src/addons/slot1_retail_mcrom.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_retail_mcrom.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -0,0 +1,107 @@ +/* + Copyright (C) 2010-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "../slot1.h" +#include "../registers.h" +#include "../MMU.h" +#include "../NDSSystem.h" +#include "slot1comp_mc.h" +#include "slot1comp_rom.h" +#include "slot1comp_protocol.h" + +//quick architecture overview: +//MCROM receives GC bus commands from MMU.cpp +//those are passed on to the protocol component for parsing +//protocol calls back into MCROM via ISlot1Comp_Protocol_Client interface for things the protocol doesnt know about (the contents of the rom, chiefly) +//MCROM utilizes the rom component for address logic and delivering data + +class Slot1_Retail_MCROM : public ISlot1Interface, public ISlot1Comp_Protocol_Client +{ +private: + Slot1Comp_Protocol protocol; + Slot1Comp_Rom rom; + +public: + + virtual Slot1Info const* info() + { + static Slot1InfoSimple info("Retail MC+ROM", "Slot1 Retail MC+ROM (standard) card emulation", 0x01); + return &info; + } + + virtual void connect() + { + protocol.reset(this); + protocol.chipId = gameInfo.chipID; + protocol.gameCode = T1ReadLong((u8*)gameInfo.header.gameCode,0); + } + + virtual u8 auxspi_transaction(int PROCNUM, u8 value) + { + return g_Slot1Comp_MC.auxspi_transaction(PROCNUM,value); + } + + virtual void auxspi_reset(int PROCNUM) + { + g_Slot1Comp_MC.auxspi_reset(PROCNUM); + } + + virtual void write_command(u8 PROCNUM, GC_Command command) + { + protocol.write_command(command); + } + virtual void write_GCDATAIN(u8 PROCNUM, u32 val) + { + protocol.write_GCDATAIN(PROCNUM, val); + } + virtual u32 read_GCDATAIN(u8 PROCNUM) + { + return protocol.read_GCDATAIN(PROCNUM); + } + + virtual void slot1client_startOperation(eSlot1Operation operation) + { + rom.start(operation,protocol.address); + } + + virtual void post_fakeboot(int PROCNUM) + { + // The BIOS leaves the card in NORMAL mode + protocol.mode = eCardMode_NORMAL; + } + + virtual void savestate(EMUFILE* os) + { + protocol.savestate(os); + rom.savestate(os); + } + + virtual void loadstate(EMUFILE* is) + { + protocol.loadstate(is); + rom.loadstate(is); + } + +private: + + u32 slot1client_read_GCDATAIN(eSlot1Operation operation) + { + return rom.read(); + } +}; + +ISlot1Interface* construct_Slot1_Retail_MCROM() { return new Slot1_Retail_MCROM(); } diff -Nru desmume-0.9.9/src/addons/slot1_retail_mcrom_debug.cpp desmume-0.9.10/src/addons/slot1_retail_mcrom_debug.cpp --- desmume-0.9.9/src/addons/slot1_retail_mcrom_debug.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_retail_mcrom_debug.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -0,0 +1,218 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "../slot1.h" +#include "../registers.h" +#include "../MMU.h" +#include "../NDSSystem.h" +#include "../utils/fsnitro.h" +#include "../path.h" +#include "slot1comp_mc.h" +#include "slot1comp_rom.h" +#include "slot1comp_protocol.h" + +//quick architecture overview: +//MCROM receives GC bus commands from MMU.cpp +//those are passed on to the protocol component for parsing +//protocol calls back into MCROM via ISlot1Comp_Protocol_Client interface for things the protocol doesnt know about (the contents of the rom, chiefly) +//MCROM utilizes the rom component for address logic and delivering data + +class Slot1_Retail_DEBUG : public ISlot1Interface, public ISlot1Comp_Protocol_Client +{ +private: + Slot1Comp_Protocol protocol; + Slot1Comp_Rom rom; + FILE *fpROM; + FS_NITRO *fs; + u16 curr_file_id; + string pathData; + +public: + + virtual Slot1Info const* info() + { + static Slot1InfoSimple info("Retail DEBUG","Slot1 Retail (standard) card emulation + FS Nitro DEBUG", 0x04); + return &info; + } + + virtual void connect() + { + protocol.reset(this); + protocol.chipId = gameInfo.chipID; + protocol.gameCode = T1ReadLong((u8*)gameInfo.header.gameCode,0); + + curr_file_id = 0xFFFF; + fpROM = NULL; + fs = NULL; + + if (!CommonSettings.loadToMemory) + { + printf("NitroFS: change load type to \"Load to RAM\"\n"); + return; + } + pathData = path.getpath(path.SLOT1D) + path.GetRomNameWithoutExtension(); + printf("Path to Slot1 data: %s\n", pathData.c_str()); + + fs = new FS_NITRO(gameInfo.romdata); + fs->rebuildFAT(pathData); + } + + virtual u8 auxspi_transaction(int PROCNUM, u8 value) + { + return g_Slot1Comp_MC.auxspi_transaction(PROCNUM,value); + } + + virtual void auxspi_reset(int PROCNUM) + { + g_Slot1Comp_MC.auxspi_reset(PROCNUM); + } + + virtual void write_command(u8 PROCNUM, GC_Command command) + { + protocol.write_command(command); + } + virtual void write_GCDATAIN(u8 PROCNUM, u32 val) + { + protocol.write_GCDATAIN(PROCNUM, val); + } + virtual u32 read_GCDATAIN(u8 PROCNUM) + { + return protocol.read_GCDATAIN(PROCNUM); + } + + virtual void post_fakeboot(int PROCNUM) + { + // The BIOS leaves the card in NORMAL mode + protocol.mode = eCardMode_NORMAL; + } + + virtual void savestate(EMUFILE* os) + { + protocol.savestate(os); + rom.savestate(os); + } + + virtual void loadstate(EMUFILE* is) + { + protocol.loadstate(is); + rom.loadstate(is); + } + + virtual void slot1client_startOperation(eSlot1Operation operation) + { + if (protocol.operation == eSlot1Operation_B7_Read) + { + u16 file_id = 0xFFFF; u32 offset = 0; + bool bFromFile = false; + + if (fs && fs->isFAT(protocol.address)) + { + fs->rebuildFAT(protocol.address, protocol.length, pathData); + } + else + { + if (fs && fs->getFileIdByAddr(protocol.address, file_id, offset)) + { + if (file_id != curr_file_id) + { + string tmp = fs->getFullPathByFileID(file_id); + printf("%04X:[%08X, ofs %08X] %s\n", file_id, protocol.address, offset, tmp.c_str()); + + if (fpROM) + { + fclose(fpROM); + fpROM = NULL; + } + tmp = pathData + tmp; + + fpROM = fopen(tmp.c_str(), "rb"); + if (fpROM) + { + bFromFile = true; + printf("\t * found at disk, offset %08X\n", offset); + if (fseek(fpROM, offset, SEEK_SET) != 0) + { + printf("\t\t - ERROR seek file position\n"); + } + } + } + else + { + if (fpROM) + { + bFromFile = true; + if (ftell(fpROM) != offset) + { + printf("\t * new file seek %08Xh\n", offset); + fseek(fpROM, offset, SEEK_SET); + } + } + } + } + } + if (!bFromFile && fpROM) + { + fclose(fpROM); + fpROM = NULL; + } + + curr_file_id = file_id; + } + rom.start(operation, protocol.address); + } + +private: + + u32 slot1client_read_GCDATAIN(eSlot1Operation operation) + { + if (protocol.operation == eSlot1Operation_B7_Read) + { + + u32 address = rom.getAddress(); + + if (fs && fs->isFAT(address)) + { + u32 res = fs->getFATRecord(address); + if (res != 0xFFFFFFFF) + { + rom.incAddress(); + return res; + } + } + else + if (fpROM) + { + u32 data = 0; + u32 readed = fread(&data, 1, 4, fpROM); + if (readed) + { + rom.incAddress(); + if (readed < 4) + data |= ((u32)0xFFFFFFFF << (readed * 8)); + return data; + } + + fclose(fpROM); + fpROM = NULL; + } + } + + return rom.read(); + } +}; + +ISlot1Interface* construct_Slot1_Retail_DEBUG() { return new Slot1_Retail_DEBUG(); } diff -Nru desmume-0.9.9/src/addons/slot1_retail_nand.cpp desmume-0.9.10/src/addons/slot1_retail_nand.cpp --- desmume-0.9.9/src/addons/slot1_retail_nand.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot1_retail_nand.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -1,205 +1,306 @@ -/* Copyright (C) 2011 DeSmuME team +/* + Copyright (C) 2010-2013 DeSmuME team - This file is part of DeSmuME + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ +// Games with NAND Flash: +// Ore/WarioWare D.I.Y. - chip: SAMSUNG 004 +// KLC2811ANB-P204 +// NTR-UORE-0 +// - 128Mbit + #include "../slot1.h" #include "../registers.h" #include "../MMU.h" #include "../NDSSystem.h" +#include "slot1comp_rom.h" +#include "slot1comp_protocol.h" -static void info(char *info) { strcpy(info, "Slot1 Retail NAND card emulation"); } -static void config(void) {} - -static BOOL init() { return (TRUE); } +//quick architecture overview: +//NAND receives GC bus commands from MMU.cpp +//those are passed on to the protocol component for parsing +//protocol calls back into NAND via ISlot1Comp_Protocol_Client interface for things the protocol doesn't know about (the contents of the rom, chiefly) +//NAND utilizes the rom component for address logic and delivering data. +//it also processes some commands itself which aren't rom-related (the NANDy stuff) -static void reset() {} +class Slot1_Retail_NAND : public ISlot1Interface, public ISlot1Comp_Protocol_Client +{ +private: + u32 subAdr; -static void close() {} + Slot1Comp_Protocol protocol; + Slot1Comp_Rom rom; + u32 mode; + u32 handle_save; + u32 save_adr; + u32 save_start_adr; -static void write08(u8 PROCNUM, u32 adr, u8 val) {} -static void write16(u8 PROCNUM, u32 adr, u16 val) {} +public: + virtual Slot1Info const* info() + { + static Slot1InfoSimple info("Retail NAND","Slot1 retail NAND card emulation", 0x02); + return &info; + } -static void write32_GCROMCTRL(u8 PROCNUM, u32 val) -{ - nds_dscard& card = MMU.dscard[PROCNUM]; + virtual void connect() + { + protocol.reset(this); + protocol.chipId = gameInfo.chipID; + protocol.gameCode = T1ReadLong((u8*)gameInfo.header.gameCode,0); + + save_start_adr = 0; + handle_save = 0; + mode = 0; + subAdr = T1ReadWord(gameInfo.header.reserved2, 0x6) << 17; + } - switch(card.command[0]) + virtual void write_command(u8 PROCNUM, GC_Command command) { - case 0x00: //Data read - case 0xB7: - card.address = (card.command[1] << 24) | (card.command[2] << 16) | (card.command[3] << 8) | card.command[4]; - card.transfer_count = 0x80; - break; - - case 0xB8: // Chip ID - card.address = 0; - card.transfer_count = 1; - break; - - // Nand Init - case 0x94: - card.address = 0; - card.transfer_count = 0x80; - break; - - // Nand Error? - case 0xD6: - card.address = 0; - card.transfer_count = 1; - break; - - // Nand Write? ---- PROGRAM for INTERNAL DATA MOVE/RANDOM DATA INPUT - //case 0x8B: - case 0x85: - card.address = 0; - card.transfer_count = 0x80; - break; - - default: - card.address = 0; - card.transfer_count = 0; - break; + protocol.write_command(command); } -} -static void write32(u8 PROCNUM, u32 adr, u32 val) -{ - switch(adr) + virtual void write_GCDATAIN(u8 PROCNUM, u32 val) + { + protocol.write_GCDATAIN(PROCNUM, val); + } + virtual u32 read_GCDATAIN(u8 PROCNUM) { - case REG_GCROMCTRL: - write32_GCROMCTRL(PROCNUM, val); - break; + return protocol.read_GCDATAIN(PROCNUM); } -} -static u8 read08(u8 PROCNUM, u32 adr) -{ - return 0xFF; -} -static u16 read16(u8 PROCNUM, u32 adr) -{ - return 0xFFFF; -} + virtual void slot1client_startOperation(eSlot1Operation operation) + { + protocol.address = (protocol.command.bytes[1] << 24) | (protocol.command.bytes[2] << 16) | (protocol.command.bytes[3] << 8) | protocol.command.bytes[4]; -static u32 read32_GCDATAIN(u8 PROCNUM) -{ - nds_dscard& card = MMU.dscard[PROCNUM]; + //INFO("Start command: %02X%02X%02X%02X%02X%02X%02X%02X\t", + // protocol.command.bytes[0], protocol.command.bytes[1], protocol.command.bytes[2], protocol.command.bytes[3], + // protocol.command.bytes[4], protocol.command.bytes[5], protocol.command.bytes[6], protocol.command.bytes[7]); + //INFO("FROM: %08X\n", NDS_ARM9.instruct_adr); + + //pass the normal rom operations along to the rom component + switch(operation) + { + case eSlot1Operation_00_ReadHeader_Unencrypted: + case eSlot1Operation_2x_SecureAreaLoad: + //case eSlot1Operation_B7_Read: + rom.start(operation,protocol.address); + return; + } + + //handle special commands ourselves + int cmd = protocol.command.bytes[0]; + switch(cmd) + { + // Nand Init + case 0x94: + mode = cmd; + break; + + // Nand Error? + case 0xD6: + break; + + //Nand Write Page + case 0x81: + mode = cmd; + if (save_start_adr != (protocol.address & gameInfo.mask) - subAdr) + { + save_start_adr = save_adr = (protocol.address & gameInfo.mask) - subAdr; + MMU_new.backupDevice.seek(save_start_adr); + } + handle_save = 1; + break; - switch(card.command[0]) - { - //Get ROM chip ID - case 0x90: - case 0xB8: - { - // Note: the BIOS stores the chip ID in main memory - // Most games continuously compare the chip ID with - // the value in memory, probably to know if the card - // was removed. - // As DeSmuME boots directly from the game, the chip - // ID in main mem is zero and this value needs to be - // zero too. - - //note that even if desmume was booting from firmware, and reading this chip ID to store in main memory, - //this still works, since it will have read 00 originally and then read 00 to validate. - - //staff of kings verifies this (it also uses the arm7 IRQ 20) - if(nds.cardEjected) //TODO - handle this with ejected card slot1 device (and verify using this case) - return 0xFFFFFFFF; - else return 0; - } - break; - - - // Data read - case 0x00: - case 0xB7: - { - // Make sure any reads below 0x8000 redirect to 0x8000+(adr&0x1FF) as on real cart - if((card.command[0] == 0xB7) && (card.address < 0x8000)) + case 0x84: //Write disable + case 0x85: //Write enable + mode = cmd; + break; + case 0x8B: + mode = cmd; + handle_save = 0; + MMU_new.backupDevice.flushBackup(); + break; + + case 0xB7: + if (handle_save) + { + mode = cmd; + if (save_start_adr != (protocol.address & gameInfo.mask) - subAdr) + { + save_start_adr = save_adr = (protocol.address & gameInfo.mask) - subAdr; + MMU_new.backupDevice.seek(save_start_adr); + } + } + else { - //TODO - refactor this to include the PROCNUM, for debugging purposes if nothing else - //(can refactor gbaslot also) + rom.start(operation, protocol.address); + } + break; - //INFO("Read below 0x8000 (0x%04X) from: ARM%s %08X\n", - // card.address, (PROCNUM ? "7":"9"), (PROCNUM ? NDS_ARM7:NDS_ARM9).instruct_adr); + case 0xB2: //Set save position + mode = cmd; + save_start_adr = save_adr = (protocol.address & gameInfo.mask) - subAdr; + MMU_new.backupDevice.seek(save_start_adr); + handle_save = 1; + break; + } + } - card.address = (0x8000 + (card.address&0x1FF)); + virtual u32 slot1client_read_GCDATAIN(eSlot1Operation operation) + { + //pass the normal rom operations along to the rom component + switch(operation) + { + case eSlot1Operation_00_ReadHeader_Unencrypted: + case eSlot1Operation_2x_SecureAreaLoad: + //case eSlot1Operation_B7_Read: + return rom.read(); + } + + //handle special commands ourselves + int cmd = protocol.command.bytes[0]; + int val = 0; + switch(cmd) + { + // Nand Init? + case 0x94: + val = 0; + mode = 0; + break; + + //Rom/Save Read + case 0xB7: + { + if(handle_save) + { + MMU_new.backupDevice.ensure(save_adr+4, (u8)0); + + val = MMU_new.backupDevice.readLong(save_adr, 0); + + save_adr += 4; + } + else + { + val = rom.read(); + } } + break; - //it seems that etrian odyssey 3 doesnt work unless we mask this to cart size. - //but, a thought: does the internal rom address counter register wrap around? we may be making a mistake by keeping the extra precision - //but there is no test case yet - u32 address = card.address & (gameInfo.mask); - - //as a sanity measure for funny-sized roms (homebrew and perhaps truncated retail roms) - //we need to protect ourselves by returning 0xFF for things still out of range - if(address >= gameInfo.romsize) + // Nand Status? + case 0xD6: + //0x80 == busy + //0x40 == ?? + //0x20 == ready? + //0x10 == write enabled? + switch (mode) { - DEBUG_Notify.ReadBeyondEndOfCart(address,gameInfo.romsize); - return 0xFFFFFFFF; + case 0x84: //Write disable + val = 0x20202020; + break; + case 0x85: //Write enable + val = 0x20202020 | 0x10101010; + break; + case 0x8B: + val = 0x60606060 | 0x10101010; + break; + case 0xB2: //Set save position + val = 0x20202020; + break; + default: + val = 0x60606060; //0x20 == ready + break; } + break; + } + + return val; + } + + virtual void slot1client_write_GCDATAIN(eSlot1Operation operation, u32 val) + { + //pass the normal rom operations along to the rom component + switch(operation) + { + case eSlot1Operation_00_ReadHeader_Unencrypted: + case eSlot1Operation_B7_Read: + case eSlot1Operation_2x_SecureAreaLoad: + return; + } + + //handle special commands ourselves + int cmd = protocol.command.bytes[0]; + u32 value = val; + u32 adr = save_adr; + switch(cmd) + { + case 0x81: //Nand Write + + MMU_new.backupDevice.ensure(adr+4, (u8)0); + MMU_new.backupDevice.writeLong(adr, val); + + save_adr += 4; + break; + } + } - return T1ReadLong(MMU.CART_ROM, address); - } - break; - - // Nand Init? - case 0x94: - return 0; //Unsure what to return here so return 0 for now - - // Nand Status? - case 0xD6: - //0x80 == busy - // Made in Ore/WariWare D.I.Y. need set value to 0x80 - return 0x80; //0x20 == ready - - default: - return 0; - } //switch(card.command[0]) -} //read32_GCDATAIN + virtual void post_fakeboot(int PROCNUM) + { + // The BIOS leaves the card in NORMAL mode + protocol.mode = eCardMode_NORMAL; + } -static u32 read32(u8 PROCNUM, u32 adr) -{ - switch(adr) + virtual void savestate(EMUFILE* os) { - case REG_GCDATAIN: - return read32_GCDATAIN(PROCNUM); - default: - return 0; - } -} - - -SLOT1INTERFACE slot1Retail_NAND = { - "Retail with NAND Flash", - init, - reset, - close, - config, - write08, - write16, - write32, - read08, - read16, - read32, - info + s32 version = 0; + + protocol.savestate(os); + rom.savestate(os); + + os->write32le(version); + + os->write32le(mode); + os->write32le(handle_save); + os->write32le(save_adr); + os->write32le(save_start_adr); + os->write32le(subAdr); + } + + virtual void loadstate(EMUFILE* is) + { + s32 version = 0; + + protocol.loadstate(is); + rom.loadstate(is); + + is->read32le(&version); + + // version 0 + if (version >= 0) + { + is->read32le(&mode); + is->read32le(&handle_save); + is->read32le(&save_adr); + is->read32le(&save_start_adr); + is->read32le(&subAdr); + } + } + + }; +ISlot1Interface* construct_Slot1_Retail_NAND() { return new Slot1_Retail_NAND(); } diff -Nru desmume-0.9.9/src/addons/slot2_auto.cpp desmume-0.9.10/src/addons/slot2_auto.cpp --- desmume-0.9.9/src/addons/slot2_auto.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_auto.cpp 2013-11-28 00:37:17.917006791 +0000 @@ -0,0 +1,116 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "../slot2.h" +#include "../registers.h" +#include "../MMU.h" +#include "../NDSSystem.h" +#ifdef HOST_WINDOWS +#include "../windows/inputdx.h" +#endif + +class Slot2_Auto : public ISlot2Interface +{ +private: + ISlot2Interface *mSelectedImplementation; + +public: + Slot2_Auto() + : mSelectedImplementation(NULL) + { + } + + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("Auto","Slot2 (auto-selection) device emulation", 0xFE); + return &info; + } + + virtual void connect() + { + + NDS_SLOT2_TYPE selection = NDS_SLOT2_NONE; + + //check game ID in core emulator and select right implementation + if (gameInfo.romsize == 0) + {} + else + if ((memcmp(gameInfo.header.gameCode, "UBR", 3) == 0)) selection = NDS_SLOT2_EXPMEMORY; // Opera Browser + else + if ((memcmp(gameInfo.header.gameCode, "YGH", 3) == 0)) selection = NDS_SLOT2_GUITARGRIP; // Guitar Hero - On Tour + else + if ((memcmp(gameInfo.header.gameCode, "CGS", 3) == 0)) selection = NDS_SLOT2_GUITARGRIP; // Guitar Hero - On Tour - Decades + else + if ((memcmp(gameInfo.header.gameCode, "C6Q", 3) == 0)) selection = NDS_SLOT2_GUITARGRIP; // Guitar Hero - On Tour - Modern Hits + else + if ((memcmp(gameInfo.header.gameCode, "YGR", 3) == 0)) selection = NDS_SLOT2_GUITARGRIP; // Guitar Hero - On Tour (Demo) + else + if ((memcmp(gameInfo.header.gameCode, "Y56", 3) == 0)) selection = NDS_SLOT2_GUITARGRIP; // Guitar Hero - On Tour - Decades (Demo) + else + if ((memcmp(gameInfo.header.gameCode, "Y6R", 3) == 0)) selection = NDS_SLOT2_GUITARGRIP; // Guitar Hero - On Tour - Modern Hits (Demo) + else + if ((memcmp(gameInfo.header.gameCode, "BEP", 3) == 0)) selection = NDS_SLOT2_EASYPIANO; // Easy Piano (EUR)(USA) + else + if ((memcmp(gameInfo.header.gameCode, "YAA", 3) == 0)) selection = NDS_SLOT2_PADDLE; // Arkanoid DS + else + if ((memcmp(gameInfo.header.gameCode, "CB6", 3) == 0)) selection = NDS_SLOT2_PADDLE; // Space Bust-A-Move + else + if ((memcmp(gameInfo.header.gameCode, "YXX", 3) == 0)) selection = NDS_SLOT2_PADDLE; // Space Invaders Extreme + else + if ((memcmp(gameInfo.header.gameCode, "CV8", 3) == 0)) selection = NDS_SLOT2_PADDLE; // Space Invaders Extreme 2 + else + if (gameInfo.isHomebrew()) + selection = NDS_SLOT2_PASSME; + + slot2_selected_type = selection; + mSelectedImplementation = slot2_List[selection]; + mSelectedImplementation->connect(); + printf("Slot2 auto-selected device type: %s (0x%02X)\n", mSelectedImplementation->info()->name(), mSelectedImplementation->info()->id()); + +#ifdef HOST_WINDOWS + Guitar.Enabled = (selection == NDS_SLOT2_GUITARGRIP)?true:false; + Piano.Enabled = (selection == NDS_SLOT2_EASYPIANO)?true:false; + Paddle.Enabled = (selection == NDS_SLOT2_PADDLE)?true:false; +#endif + } + + virtual void disconnect() + { + if(mSelectedImplementation) mSelectedImplementation->disconnect(); + mSelectedImplementation = NULL; + } + + virtual void writeByte(u8 PROCNUM, u32 addr, u8 val) { mSelectedImplementation->writeByte(PROCNUM, addr, val); } + virtual void writeWord(u8 PROCNUM, u32 addr, u16 val) { mSelectedImplementation->writeWord(PROCNUM, addr, val); } + virtual void writeLong(u8 PROCNUM, u32 addr, u32 val) { mSelectedImplementation->writeLong(PROCNUM, addr, val); } + + virtual u8 readByte(u8 PROCNUM, u32 addr) { return mSelectedImplementation->readByte(PROCNUM, addr); } + virtual u16 readWord(u8 PROCNUM, u32 addr) { return mSelectedImplementation->readWord(PROCNUM, addr); } + virtual u32 readLong(u8 PROCNUM, u32 addr) { return mSelectedImplementation->readLong(PROCNUM, addr); } + + virtual void savestate(EMUFILE* os) + { + mSelectedImplementation->savestate(os); + } + + virtual void loadstate(EMUFILE* is) + { + mSelectedImplementation->loadstate(is); + } +}; + +ISlot2Interface* construct_Slot2_Auto() { return new Slot2_Auto(); } diff -Nru desmume-0.9.9/src/addons/slot2_expMemory.cpp desmume-0.9.10/src/addons/slot2_expMemory.cpp --- desmume-0.9.9/src/addons/slot2_expMemory.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_expMemory.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,29 +1,22 @@ -/* Copyright (C) 2009-2010 DeSmuME team +/* + Copyright (C) 2009 CrazyMax + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ -#include "../addons.h" -#include "../mem.h" -#include -#include "../MMU.h" - -u8 *expMemory = NULL; -u32 expMemSize = 8 * 1024 * 1024; // 8Mb +#include "../slot2.h" #if 0 #define EXPINFO(...) INFO(__VA_ARGS__) @@ -31,126 +24,172 @@ #define EXPINFO(...) #endif -static BOOL ExpMemory_init(void) { return (TRUE); } -static void ExpMemory_reset(void) +#define EXPANSION_MEMORY_SIZE (8 * 1024 * 1024) + +static u8 header_0x00B0[] = +{ 0xFF, 0xFF, 0x96, 0x00, //this 0x96 is strange. it can't be read from the pak when it boots, it must appear later + 0x00, 0x24, 0x24, 0x24, + 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x7F +}; + +class Slot2_ExpansionPak : public ISlot2Interface { - if (expMemory) +private: + u8 *expMemory; + bool ext_ram_lock; +public: + virtual Slot2Info const* info() { - delete [] expMemory; - expMemory = NULL; + static Slot2InfoSimple info("Memory Expansion Pak", "Official RAM expansion for Opera browser", 0x05); + return &info; } - expMemory = new u8 [expMemSize]; - memset(expMemory, 0xFF, expMemSize); -} -static void ExpMemory_close(void) -{ - if (expMemory) + + virtual void connect() { - delete [] expMemory; - expMemory = NULL; + if (expMemory) + { + delete [] expMemory; + expMemory = NULL; + } + + expMemory = new u8 [EXPANSION_MEMORY_SIZE]; + memset(expMemory, 0xFF, EXPANSION_MEMORY_SIZE); + ext_ram_lock = true; } -} -static void ExpMemory_config(void) {} -static void ExpMemory_write08(u32 procnum, u32 adr, u8 val) -{ - if (adr >= 0x09000000) - { - u32 offs = (adr - 0x09000000); - if (offs >= expMemSize) return; - T1WriteByte(expMemory, offs, val); - } - EXPINFO("ExpMemory: write 08 at 0x%08X = 0x%02X\n", adr, val); -} -static void ExpMemory_write16(u32 procnum, u32 adr, u16 val) -{ - if (adr >= 0x09000000) + + virtual void disconnect() { - u32 offs = (adr - 0x09000000); - if (offs >= expMemSize) return; - T1WriteWord(expMemory, offs, val); - } - EXPINFO("ExpMemory: write 16 at 0x%08X = 0x%04X\n", adr, val); -} -static void ExpMemory_write32(u32 procnum, u32 adr, u32 val) -{ - - if (adr >= 0x09000000) + if (expMemory) + { + delete [] expMemory; + expMemory = NULL; + } + } + + virtual void writeByte(u8 PROCNUM, u32 addr, u8 val) { - u32 offs = (adr - 0x09000000); - if (offs >= expMemSize) return; - T1WriteLong(expMemory, offs, val); + if (ext_ram_lock) return; + + if (addr >= 0x09000000) + { + u32 offs = (addr - 0x09000000); + if (offs >= EXPANSION_MEMORY_SIZE) return; + T1WriteByte(expMemory, offs, val); + } + EXPINFO("ExpMemory: write 08 at 0x%08X = 0x%02X\n", addr, val); } - EXPINFO("ExpMemory: write 32 at 0x%08X = 0x%08X\n", adr, val); -} + virtual void writeWord(u8 PROCNUM, u32 addr, u16 val) + { + if (addr == 0x08240000) + { + if (val == 0) + ext_ram_lock = true; + else + if (val == 1) + ext_ram_lock = false; + return; + } -static u8 header_0x00B0[] = -{ 0xFF, 0xFF, 0x96, 0x00, //this 0x96 is strange. it can't be read from the pak when it boots, it must appear later - 0x00, 0x24, 0x24, 0x24, - 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x7F -}; + if (ext_ram_lock) return; -static u8 ExpMemory_read08(u32 procnum, u32 adr) -{ - EXPINFO("ExpMemory: read 08 at 0x%08X\n", adr); - - if(adr>=0x080000B0 && adr<0x080000C0) - return T1ReadByte(header_0x00B0,adr-0x080000B0); + if (addr >= 0x09000000) + { + u32 offs = (addr - 0x09000000); + if (offs >= EXPANSION_MEMORY_SIZE) return; + T1WriteWord(expMemory, offs, val); + } + EXPINFO("ExpMemory: write 16 at 0x%08X = 0x%04X\n", addr, val); + } + virtual void writeLong(u8 PROCNUM, u32 addr, u32 val) + { + if (ext_ram_lock) return; + + if (addr >= 0x09000000) + { + u32 offs = (addr - 0x09000000); + if (offs >= EXPANSION_MEMORY_SIZE) return; + T1WriteLong(expMemory, offs, val); + } + EXPINFO("ExpMemory: write 32 at 0x%08X = 0x%08X\n", addr, val); + } - if (adr >= 0x09000000) + virtual u8 readByte(u8 PROCNUM, u32 addr) { - u32 offs = (adr - 0x09000000); - if (offs >= expMemSize) return (0xFF); - return T1ReadByte(expMemory, offs); + EXPINFO("ExpMemory: read 08 at 0x%08X\n", addr); + + if ((addr >= 0x080000B0) && (addr < 0x080000C0)) + return T1ReadByte(header_0x00B0, (addr - 0x080000B0)); + + if (addr >= 0x09000000) + { + u32 offs = (addr - 0x09000000); + if (offs >= EXPANSION_MEMORY_SIZE) return (0xFF); + return T1ReadByte(expMemory, offs); + } + + return 0xFF; } + virtual u16 readWord(u8 PROCNUM, u32 addr) + { + EXPINFO("ExpMemory: read 16 at 0x%08X\n", addr); - return 0xFF; -} -static u16 ExpMemory_read16(u32 procnum, u32 adr) -{ - if(adr>=0x080000B0 && adr<0x080000C0) - return T1ReadWord(header_0x00B0,adr-0x080000B0); + if ((addr >= 0x080000B0) && (addr < 0x080000C0)) + return T1ReadWord(header_0x00B0, (addr - 0x080000B0)); - if (adr == 0x0801FFFC) return 0x7FFF; - if (adr == 0x08240002) return 0; //this can't be 0xFFFF. dunno why, we just guessed 0 + if (addr == 0x0801FFFC) return 0x7FFF; + if (addr == 0x08240002) return 0; //this can't be 0xFFFF. dunno why, we just guessed 0 - if (adr >= 0x09000000) + if (addr >= 0x09000000) + { + u32 offs = (addr - 0x09000000); + if (offs >= EXPANSION_MEMORY_SIZE) return (0xFFFF); + return T1ReadWord(expMemory, offs); + } + + return 0xFFFF; + } + virtual u32 readLong(u8 PROCNUM, u32 addr) { - u32 offs = (adr - 0x09000000); - if (offs >= expMemSize) return (0xFFFF); - return T1ReadWord(expMemory, offs); + EXPINFO("ExpMemory: read 32 at 0x%08X\n", addr); + + if((addr >= 0x080000B0) && (addr < 0x080000C0)) + return T1ReadLong(header_0x00B0, (addr - 0x080000B0)); + + if (addr >= 0x09000000) + { + u32 offs = (addr - 0x09000000); + if (offs >= EXPANSION_MEMORY_SIZE) return 0xFFFFFFFF; + return T1ReadLong(expMemory, offs); + } + + return 0xFFFFFFFF; } - EXPINFO("ExpMemory: read 16 at 0x%08X\n", adr); - return 0xFFFF; -} -static u32 ExpMemory_read32(u32 procnum, u32 adr) -{ - if(adr>=0x080000B0 && adr<0x080000C0) - return T1ReadLong(header_0x00B0,adr-0x080000B0); + virtual void savestate(EMUFILE* os) + { + s32 version = 0; + EMUFILE_MEMORY *ram = new EMUFILE_MEMORY(expMemory, EXPANSION_MEMORY_SIZE); + os->write32le(version); + os->write32le((u32)ext_ram_lock); + os->writeMemoryStream(ram); + delete ram; + } - if (adr >= 0x09000000) + virtual void loadstate(EMUFILE* is) { - u32 offs = (adr - 0x09000000); - if (offs >= expMemSize) return 0xFFFFFFFF; - return T1ReadLong(expMemory, offs); - } - - EXPINFO("ExpMemory: read 32 at 0x%08X\n", adr); - return 0xFFFFFFFF; -} -static void ExpMemory_info(char *info) { strcpy(info, "Memory Expansion Pak"); } - -ADDONINTERFACE addonExpMemory = { - "Memory Expansion Pak", - ExpMemory_init, - ExpMemory_reset, - ExpMemory_close, - ExpMemory_config, - ExpMemory_write08, - ExpMemory_write16, - ExpMemory_write32, - ExpMemory_read08, - ExpMemory_read16, - ExpMemory_read32, - ExpMemory_info}; + EMUFILE_MEMORY *ram = new EMUFILE_MEMORY(); + + s32 version = is->read32le(); + + if (version >= 0) + { + is->read32le((u32*)&ext_ram_lock); + is->readMemoryStream(ram); + memcpy(expMemory, ram->buf(), std::min(EXPANSION_MEMORY_SIZE, ram->size())); + } + delete ram; + } +}; + +ISlot2Interface* construct_Slot2_ExpansionPak() { return new Slot2_ExpansionPak(); } diff -Nru desmume-0.9.9/src/addons/slot2_gbagame.cpp desmume-0.9.10/src/addons/slot2_gbagame.cpp --- desmume-0.9.9/src/addons/slot2_gbagame.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_gbagame.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,473 +1,431 @@ -/* Copyright (C) 2009 CrazyMax - Copyright (C) 2009 DeSmuME team +/* + Copyright (C) 2009 CrazyMax + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ -#include "../addons.h" -#include "../mem.h" #include +#include "../mem.h" #include "../MMU.h" +#include "../NDSSystem.h" #include "../path.h" +#include "../slot2.h" -//SRAM is going to be stored just above the rom. -//that is convenient for us, since it mirrors the nds memory map -#define GBA_ROMSIZE (32 * 1024 * 1024) + 1 -#define GBA_SAVESIZE (512 * 1024) + 1 - -static u8 *GBArom = NULL; -static u8 *saveData = NULL; -static u8 saveType = 0xFF; +#define EEPROM 0x52504545 +#define SRAM_ 0x4D415253 +#define FLASH 0x53414C46 +#define FLASH1M_ 0x5F4D3148 +#define SIIRTC_V 0x52494953 + +static const char *saveTypes[] = { + "EEPROM", + "SRAM", + "FLASH", + "FLASH1M", + "SIIRTC_V", +}; + +class Slot2_GbaCart : public ISlot2Interface +{ +private: + FILE *fROM; + FILE *fSRAM; + u32 romSize; + u32 currentROMPos; + u32 sramSize; + u32 currentSRAMPos; + u32 saveType; + + struct + { + u32 size; + u8 state; + u8 cmd; + u8 idDevice; + u8 idManufacturer; + u8 bank; + } gbaFlash; -//================================================================================== Flash GBA -typedef struct -{ - u8 state; - u8 cmd; - u32 size; - u8 idDevice; - u8 idManufacturer; - u8 bank; -} FLASH_GBA; + u32 readRom(const u32 pos, const u8 size) + { + if (fROM) + { + if (currentROMPos != pos) + fseek(fROM, pos, SEEK_SET); -FLASH_GBA gbaFlash = {0}; + u32 data = 0xFFFFFFFF; + u32 readed = fread(&data, 1, size, fROM); + currentROMPos = (pos + readed); + return data; + } + return 0xFFFFFFFF; + } -static void gbaWriteFlash(u32 adr, u8 val) -{ - switch (gbaFlash.state) + u32 readSRAM(const u32 pos, const u8 size) { - case 0: - if (adr == 0x0A005555) - { - if (val == 0xF0) - { - //INFO("GBAgame: Flash: reset\n"); - gbaFlash.state = 0; - gbaFlash.cmd = 0; - return; - } - if (val == 0xAA) - { - gbaFlash.state = 1; - return; - } - } + if (fSRAM) + { + if (currentSRAMPos != pos) + fseek(fSRAM, pos, SEEK_SET); - if (adr == 0x0A000000) - { - if (gbaFlash.cmd == 0xB0) - { - gbaFlash.bank = val; - gbaFlash.cmd = 0; - //INFO("GBAgame: Flash: change bank %i\n", val); - return; - } - } - break; - case 1: - if ( (adr == 0x0A002AAA) && (val == 0x55) ) - { - gbaFlash.state = 2; - return; - } - gbaFlash.state = 0; - break; - case 2: - if (adr == 0x0A005555) - { - //INFO("GBAgame: Flash: send command flash 0x%02X\n", val); - switch (val) - { - case 0x80: // Erase - gbaFlash.state = 0x80; - break; - - case 0x90: // Chip Identification - gbaFlash.state = 0x90; - break; + u32 data = 0xFFFFFFFF; + u32 readed = fread(&data, 1, size, fSRAM); + currentSRAMPos = (pos + readed); + return data; + } + return 0xFFFFFFFF; + } - case 0xA0: // Write - gbaFlash.state = 0; - break; + void writeSRAM(const u32 pos, const u8 *data, u32 size) + { + if (fSRAM) + { + if (currentSRAMPos != pos) + fseek(fSRAM, pos, SEEK_SET); - default: - gbaFlash.state = 0; - break; - } - gbaFlash.cmd = val; - return; - } - gbaFlash.state = 0; - break; + u32 writed = fwrite(&data, 1, size, fSRAM); + currentSRAMPos = (pos + writed); + } + } - // erase - case 0x80: - if ( (adr == 0x0A005555) && (val == 0xAA) ) - { - gbaFlash.state = 0x81; - return; - } - gbaFlash.state = 0; - break; - case 0x81: - if ( (adr == 0x0A002AAA) && (val == 0x55) ) - { - gbaFlash.state = 0x82; - return; - } - gbaFlash.state = 0; - break; + u32 getSaveTypeGBA() + { + if (!fROM) return 0xFF; - case 0x82: - if (val == 0x30) - { - u32 ofs = (adr & 0x0000F000); - //INFO("GBAgame: Flash: erase from 0x%08X to 0x%08X\n", ofs + 0x0A000000, ofs + 0x0A001000); - for (u32 i = ofs; i < (ofs + 0x1000); i++) - saveData[i] = 0xFF; - } - gbaFlash.state = 0; - gbaFlash.cmd = 0; - return; + u32 saveROMPos = currentROMPos; + u32 tmp = 0; - // Chip Identification - case 0x90: - if ( (adr == 0x0A005555) && (val == 0xAA) ) - { - gbaFlash.state = 0x91; - return; - } - gbaFlash.state = 0; - break; + fseek(fROM, 0, SEEK_SET); + + while (!feof(fROM)) + { + u32 readed = fread(&tmp, 1, 4, fROM); + if (readed < 4) break; - case 0x91: - if ( (adr == 0x0A002AAA) && (val == 0x55) ) + switch (tmp) { - gbaFlash.state = 0x92; - return; + case EEPROM: fseek(fROM, saveROMPos, SEEK_SET); return 1; + case SRAM_: fseek(fROM, saveROMPos, SEEK_SET); return 2; + case FLASH: + { + fread(&tmp, 1, 4, fROM); + fseek(fROM, saveROMPos, SEEK_SET); + return ((tmp == FLASH1M_)?3:5); + } + case SIIRTC_V: fseek(fROM, saveROMPos, SEEK_SET); return 4; } - gbaFlash.state = 0; - break; - - case 0x92: - gbaFlash.state = 0; - gbaFlash.cmd = 0; - return; - } - - if (gbaFlash.cmd == 0xA0) // write - { - saveData[(adr & 0x1FFFF)+(0x10000*gbaFlash.bank)] = val; - gbaFlash.state = 0; - gbaFlash.cmd = 0; - return; - } - INFO("GBAgame: Flash: write unknown atn 0x%08X = 0x%02X\n", adr, val); -} + } -static u8 gbaReadFlash(u32 adr) -{ - if (gbaFlash.cmd == 0) - { - //INFO("GBAgame: flash read at 0x%08X = 0x%02X\n", adr, saveData[(adr & 0x1FFFF)+(0x10000*gbaFlash.bank)]); - return saveData[(adr & 0x1FFFF)+(0x10000*gbaFlash.bank)]; + return 0xFF; } - //INFO("GBAgame: flash read at 0x%08X\n", adr); - - switch (gbaFlash.cmd) + void gbaWriteFlash(u32 adr, u8 val) { - case 0x90: // Chip Identification - if (adr == 0x0A000000) return gbaFlash.idManufacturer; - if (adr == 0x0A000001) return gbaFlash.idDevice; - break; + if (!fSRAM) return; + switch (gbaFlash.state) + { + case 0: + if (adr == 0x0A005555) + { + if (val == 0xF0) + { + //INFO("GBAgame: Flash: reset\n"); + gbaFlash.state = 0; + gbaFlash.cmd = 0; + return; + } + if (val == 0xAA) + { + gbaFlash.state = 1; + return; + } + } - case 0xF0: // - //INFO("GBAgame: Flash: reset2\n"); - gbaFlash.state = 0; - gbaFlash.cmd = 0; - break; + if (adr == 0x0A000000) + { + if (gbaFlash.cmd == 0xB0) + { + gbaFlash.bank = val; + gbaFlash.cmd = 0; + //INFO("GBAgame: Flash: change bank %i\n", val); + return; + } + } + break; + case 1: + if ( (adr == 0x0A002AAA) && (val == 0x55) ) + { + gbaFlash.state = 2; + return; + } + gbaFlash.state = 0; + break; + case 2: + if (adr == 0x0A005555) + { + //INFO("GBAgame: Flash: send command flash 0x%02X\n", val); + switch (val) + { + case 0x80: // Erase + gbaFlash.state = 0x80; + break; + + case 0x90: // Chip Identification + gbaFlash.state = 0x90; + break; + + case 0xA0: // Write + gbaFlash.state = 0; + break; + + default: + gbaFlash.state = 0; + break; + } + gbaFlash.cmd = val; + return; + } + gbaFlash.state = 0; + break; - case 0xB0: // Bank switching - break; + // erase + case 0x80: + if ( (adr == 0x0A005555) && (val == 0xAA) ) + { + gbaFlash.state = 0x81; + return; + } + gbaFlash.state = 0; + break; - default: - INFO("GBAgame: Flash: read - unknown command at 0x%08X = 0x%02X\n", adr, gbaFlash.cmd); - break; - } + case 0x81: + if ( (adr == 0x0A002AAA) && (val == 0x55) ) + { + gbaFlash.state = 0x82; + return; + } + gbaFlash.state = 0; + break; - return 0xFF; -} -//================================================================================== + case 0x82: + if (val == 0x30) + { + u32 ofs = (adr & 0x0000F000); + //INFO("GBAgame: Flash: erase from 0x%08X to 0x%08X\n", ofs + 0x0A000000, ofs + 0x0A001000); + u8 *tmp = new u8[0x1000]; + memset(tmp, 0xFF, 0x1000); + writeSRAM(ofs, tmp, 0x1000); + delete [] tmp; + } + gbaFlash.state = 0; + gbaFlash.cmd = 0; + return; + + // Chip Identification + case 0x90: + if ( (adr == 0x0A005555) && (val == 0xAA) ) + { + gbaFlash.state = 0x91; + return; + } + gbaFlash.state = 0; + break; -static u8 getSaveTypeGBA(const u8 *data, const u32 size) -{ - u8 *dat = (u8 *)data; - - for (u32 i = 0; i < size; i++) - { - u32 tmp = T1ReadLong(dat, 0); + case 0x91: + if ( (adr == 0x0A002AAA) && (val == 0x55) ) + { + gbaFlash.state = 0x92; + return; + } + gbaFlash.state = 0; + break; - if (tmp == 0x52504545) - { - if(memcmp(dat, "EEPROM_", 7) == 0) - { - return 1; - } + case 0x92: + gbaFlash.state = 0; + gbaFlash.cmd = 0; + return; } - if (tmp == 0x4D415253) + if (gbaFlash.cmd == 0xA0) // write { - if(memcmp(dat, "SRAM_", 5) == 0) - { - return 2; - } + writeSRAM((adr & 0x1FFFF) + (0x10000 * gbaFlash.bank), &val, 1); + gbaFlash.state = 0; + gbaFlash.cmd = 0; + return; } + INFO("GBAgame: Flash: write unknown atn 0x%08X = 0x%02X\n", adr, val); + } - if (tmp == 0x53414C46) - { - if(memcmp(dat, "FLASH1M_", 8) == 0) - { - return 3; - } - } + u8 gbaReadFlash(u32 adr) + { + if (!fSRAM) return 0xFF; + if (gbaFlash.cmd == 0) + return readSRAM((adr & 0x1FFFF) + (0x10000 * gbaFlash.bank), 1); - if (tmp == 0x52494953) - { - if(memcmp(dat, "SIIRTC_V", 8) == 0) - { - return 4; - } - } + //INFO("GBAgame: flash read at 0x%08X\n", adr); - if(memcmp(dat, "FLASH", 5) == 0) + switch (gbaFlash.cmd) { - return 5; - } - dat++; - } + case 0x90: // Chip Identification + if (adr == 0x0A000000) return gbaFlash.idManufacturer; + if (adr == 0x0A000001) return gbaFlash.idDevice; + break; - return 0xFF; // NONE -} + case 0xF0: // + gbaFlash.state = 0; + gbaFlash.cmd = 0; + break; -static BOOL GBAgame_init(void) -{ - return (TRUE); -} + case 0xB0: // Bank switching + break; -static void GBAgame_reset(void) -{ - memset(&gbaFlash, 0, sizeof(gbaFlash)); + default: + INFO("GBAgame: Flash: read - unknown command at 0x%08X = 0x%02X\n", adr, gbaFlash.cmd); + break; + } - if (GBArom) - { - delete [] GBArom; - GBArom = NULL; + return 0xFF; } - GBArom = new u8 [GBA_ROMSIZE]; - memset(GBArom, 0xFF, GBA_ROMSIZE); - if (saveData) +public: + virtual Slot2Info const* info() { - delete [] saveData; - saveData = NULL; + static Slot2InfoSimple info("GBA cartridge", "GBA cartridge in slot", 0x03); + return &info; } - saveData = new u8 [GBA_SAVESIZE]; - memset(saveData, 0xFF, GBA_SAVESIZE); - - if (!strlen(GBAgameName)) return; - FILE *fgame = 0; - //perk: if the gbagame name is "self" this is a special indicator that we should mount the main rom that we're running as the gba game - if(!strcasecmp(GBAgameName,"self")) + virtual void connect() { - strcpy(GBAgameName,path.path.c_str()); - } + if (fROM) fclose(fROM); + if (fSRAM) fclose(fSRAM); + fROM = NULL; fSRAM = NULL; + romSize = 0; + currentROMPos = 0; + sramSize = 0; + currentSRAMPos = 0; - fgame = fopen(GBAgameName,"rb"); - if (!fgame) return; - fseek(fgame, 0, SEEK_END); - u32 size = ftell(fgame); - rewind(fgame); + if (gameInfo.romsize == 0) return; - if (!fread(GBArom, 1, size, fgame)) - { - fclose(fgame); - return; - } - fclose(fgame); - - saveType = getSaveTypeGBA(GBArom, size); - INFO("Loaded \"%s\" in GBA slot (save type %i)\n", GBAgameName, saveType); - - //try loading the sram - char * dot = strrchr(GBAgameName,'.'); - if(!dot) return; - std::string sram_fname = GBAgameName; - sram_fname.resize(dot-GBAgameName); - sram_fname += ".sav"; - fgame = fopen(sram_fname.c_str(),"rb"); - if(!fgame) return; + if (!strcasecmp(GBAgameName, "self")) + strcpy(GBAgameName, path.path.c_str()); - fseek(fgame, 0, SEEK_END); - size = ftell(fgame); - rewind(fgame); - - if (!fread(saveData, 1, size, fgame)) - { - fclose(fgame); - return; - } - fclose(fgame); - - gbaFlash.size = size; - if (gbaFlash.size <= (64 * 1024)) - { - gbaFlash.idDevice = 0x1B; - gbaFlash.idManufacturer = 0x32; - } - else - { - gbaFlash.idDevice = 0x09; - gbaFlash.idManufacturer = 0xC2; - } - - INFO("Loaded save \"%s\" in GBA slot\n", sram_fname.c_str()); -} + if (!strlen(GBAgameName)) return; + + printf("GBASlot opening ROM %s", GBAgameName); -static void GBAgame_close(void) -{ - if (GBArom) - { - delete [] GBArom; - GBArom = NULL; + fROM = fopen(GBAgameName, "rb"); + if (fROM) + { + fseek(fROM, 0, SEEK_END); + romSize = ftell(fROM); + fseek(fROM, 0, SEEK_SET); + printf(" - Success (%u bytes)\n", romSize); + + //try loading the sram + char *dot = strrchr(GBAgameName, '.'); + if(!dot) return; + + std::string sram_fname = GBAgameName; + sram_fname.resize(dot-GBAgameName); + sram_fname += ".sav"; + fSRAM = fopen(sram_fname.c_str(), "rb+"); + if(!fSRAM) return; + fseek(fSRAM, 0, SEEK_END); + sramSize = ftell(fSRAM); + fseek(fSRAM, 0, SEEK_SET); + saveType = getSaveTypeGBA(); + printf("GBASlot found SRAM %s (%s - %u bytes)\n", sram_fname.c_str(), (saveType == 0xFF)?"Unknown":saveTypes[saveType], sramSize); + gbaFlash.size = sramSize; + if (gbaFlash.size <= (64 * 1024)) + { + gbaFlash.idDevice = 0x1B; + gbaFlash.idManufacturer = 0x32; + } + else + { + gbaFlash.idDevice = 0x09; + gbaFlash.idManufacturer = 0xC2; + } + } + else + printf(" - Failed\n"); } - if (saveData) + virtual void disconnect() { - delete [] saveData; - saveData = NULL; + if (fROM) fclose(fROM); + if (fSRAM) fclose(fSRAM); + fROM = NULL; fSRAM = NULL; + romSize = 0; + currentROMPos = 0; + sramSize = 0; + currentSRAMPos = 0; } -} - -static void GBAgame_config(void) {} -static void GBAgame_write08(u32 procnum, u32 adr, u8 val) -{ - //INFO("GBAgame: write08 at 0x%08X val=0x%02X\n", adr, val); - if ( (adr >= 0x0A000000) && (adr < 0x0A010000) ) + virtual void writeByte(u8 PROCNUM, u32 addr, u8 val) { - switch (saveType) + if ((addr >= 0x0A000000) && (addr < 0x0A010000)) { - case 3: // Flash - case 5: - gbaWriteFlash(adr, val); - break; - - default: + switch (saveType) + { + case 3: // Flash + case 5: + gbaWriteFlash(addr, val); break; + + default: break; + } } - //return (u8)T1ReadByte(saveData, (adr - 0x0A000000)); } -} -static void GBAgame_write16(u32 procnum, u32 adr, u16 val) -{ - //INFO("GBAgame: write16 at 0x%08X val=0x%04X\n", adr, val); -} - -static void GBAgame_write32(u32 procnum, u32 adr, u32 val) -{ - //INFO("GBAgame: write32 at 0x%08X val=0x%08X\n", adr, val); -} - -static u8 GBAgame_read08(u32 procnum, u32 adr) -{ - //INFO("GBAgame: read08 at 0x%08X value 0x%02X\n", adr, (u8)T1ReadByte(GBArom, (adr - 0x08000000))); - - if (adr < 0x0A000000) - return (u8)T1ReadByte(GBArom, (adr - 0x08000000)); - if (adr < 0x0A010000) + virtual u8 readByte(u8 PROCNUM, u32 addr) { - switch (saveType) + if (addr < 0x0A000000) + return (u8)readRom(addr - 0x08000000, 1); + + if (addr < 0x0A010000) { - case 3: // Flash - case 5: - return gbaReadFlash(adr); + if ((saveType == 3) || (saveType == 5)) + return gbaReadFlash(addr); - default: - break; + return (u8)readSRAM(addr - 0x0A000000, 1); } - - //INFO("Read08 at 0x%08X val=0x%08X\n", adr, (u8)T1ReadByte(GBArom, (adr - 0x08000000)) ); - return (u8)T1ReadByte(saveData, (adr - 0x0A000000)); - } - - //INFO("Read08 at 0x%08X val=0x%08X\n", adr, (u8)T1ReadByte(GBArom, (adr - 0x08000000)) ); - return 0xFF; -} + return 0xFF; + } + virtual u16 readWord(u8 PROCNUM, u32 addr) + { + if (addr < 0x0A000000) + return (u16)readRom(addr - 0x08000000, 2); -static u16 GBAgame_read16(u32 procnum, u32 adr) -{ - //INFO("GBAgame: read16 at 0x%08X value 0x%04X\n", adr, (u16)T1ReadWord(GBArom, (adr - 0x08000000))); - - if (adr < 0x0A000000) - return (u16)T1ReadWord(GBArom, (adr - 0x08000000)); + if (addr < 0x0A010000) + return (u16)readSRAM(addr - 0x0A000000, 2); - if (adr < 0x0A010000) - { - //INFO("GBAgame: flash read16 at 0x%08X\n", adr); - return (u16)T1ReadWord(saveData, (adr - 0x0A000000)); + return 0xFFFF; } - return 0xFFFF; -} - -static u32 GBAgame_read32(u32 procnum, u32 adr) -{ - //INFO("GBAgame: read32 at 0x%08X value 0x%08X\n", adr, (u32)T1ReadLong(GBArom, (adr - 0x08000000))); + virtual u32 readLong(u8 PROCNUM, u32 addr) + { + if (addr < 0x0A000000) + return (u32)readRom(addr - 0x08000000, 4); - if (adr < 0x0A000000) - return (u32)T1ReadLong(GBArom, (adr - 0x08000000)); + if (addr < 0x0A010000) + return (u32)readSRAM(addr - 0x0A000000, 4); - if (adr < 0x0A010000) - { - //INFO("GBAgame: flash read32 at 0x%08X\n", adr); - return (u32)T1ReadLong(saveData, (adr - 0x0A000000)); + return 0xFFFFFFFF; } - return 0xFFFFFFFF; -} - -static void GBAgame_info(char *info) -{ - strcpy(info, "GBA game in slot"); -} +}; -ADDONINTERFACE addonGBAgame = { - "GBA game", - GBAgame_init, - GBAgame_reset, - GBAgame_close, - GBAgame_config, - GBAgame_write08, - GBAgame_write16, - GBAgame_write32, - GBAgame_read08, - GBAgame_read16, - GBAgame_read32, - GBAgame_info}; +ISlot2Interface* construct_Slot2_GbaCart() { return new Slot2_GbaCart(); } diff -Nru desmume-0.9.9/src/addons/slot2_guitarGrip.cpp desmume-0.9.10/src/addons/slot2_guitarGrip.cpp --- desmume-0.9.9/src/addons/slot2_guitarGrip.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_guitarGrip.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -1,72 +1,52 @@ -/* Copyright (C) 2009-2010 DeSmuME team +/* + Copyright (C) 2009 CrazyMax + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ -#include "../addons.h" -#include - -static u8 guitarKeyStatus = 0; +#include "../slot2.h" +static u8 guitarKeyStatus; -static BOOL guitarGrip_init(void) { return (TRUE); } -static void guitarGrip_reset(void) -{ - //INFO("GuitarGrip: Reset\n"); - guitarKeyStatus = 0; -} -static void guitarGrip_close(void) {} -static void guitarGrip_config(void) {} -static void guitarGrip_write08(u32 procnum, u32 adr, u8 val) {} -static void guitarGrip_write16(u32 procnum, u32 adr, u16 val) {} -static void guitarGrip_write32(u32 procnum, u32 adr, u32 val) {} -static u8 guitarGrip_read08(u32 procnum, u32 adr) -{ - //INFO("GuitarGrip: read 08 at 0x%08X\n", adr); - if (adr == 0x0A000000) return (~guitarKeyStatus); - else if(adr&1) return 0xF9; - else return 0xFF; -} -static u16 guitarGrip_read16(u32 procnum, u32 adr) +class Slot2_GuitarGrip : public ISlot2Interface { - //INFO("GuitarGrip: read 16 at 0x%08X\n", adr); - return 0xF9FF; -} -static u32 guitarGrip_read32(u32 procnum, u32 adr) -{ - //INFO("GuitarGrip: read 32 at 0x%08X\n", adr); - return (0xF9FFF9FF); -} -static void guitarGrip_info(char *info) { strcpy(info, "Guitar Grip for Guitar Hero games"); } +private: + +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("Guitar Grip", "Guitar Grip for Guitar Hero games", 0x04); + return &info; + } + + virtual void connect() + { + guitarKeyStatus = 0; + } + + virtual u8 readByte(u8 PROCNUM, u32 addr) + { + if (addr == 0x0A000000) return (~guitarKeyStatus); + return (addr & 1)?0xF9:0xFF; + } + virtual u16 readWord(u8 PROCNUM, u32 addr) { return 0xF9FF; } + virtual u32 readLong(u8 PROCNUM, u32 addr) { return 0xF9FFF9FF; } +}; + +ISlot2Interface* construct_Slot2_GuitarGrip() { return new Slot2_GuitarGrip(); } void guitarGrip_setKey(bool green, bool red, bool yellow, bool blue) { guitarKeyStatus = 0 | (green << 6) | (red << 5) | (yellow << 4) | (blue << 3); } - -ADDONINTERFACE addonGuitarGrip = { - "Guitar Grip", - guitarGrip_init, - guitarGrip_reset, - guitarGrip_close, - guitarGrip_config, - guitarGrip_write08, - guitarGrip_write16, - guitarGrip_write32, - guitarGrip_read08, - guitarGrip_read16, - guitarGrip_read32, - guitarGrip_info}; diff -Nru desmume-0.9.9/src/addons/slot2_mpcf.cpp desmume-0.9.10/src/addons/slot2_mpcf.cpp --- desmume-0.9.9/src/addons/slot2_mpcf.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_mpcf.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,39 +1,32 @@ /* Copyright (C) 2006 yopyop Copyright (C) 2006 Mic - Copyright (C) 2009-2011 DeSmuME team + Copyright (C) 2009-2013 DeSmuME team - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify + This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. - DeSmuME is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + along with the this software. If not, see . */ -#include "../addons.h" #include #include -#include "debug.h" #include #include #include - -#include "types.h" -#include "../utils/vfat.h" +#include "../types.h" +#include "../debug.h" #include "../path.h" - -#include "MMU.h" -#include "NDSSystem.h" +#include "../utils/vfat.h" +#include "../slot2.h" // Set up addresses for GBAMP #define CF_REG_DATA 0x9000000 @@ -92,6 +85,8 @@ INFO("Using CFlash directory: %s\n", sFlashPath.c_str()); } + if (sFlashPath == "") return FALSE; + if(CFlash_IsUsingPath()) { cflashDeviceEnabled = FALSE; @@ -266,73 +261,33 @@ inited = FALSE; } -static BOOL init(void) -{ - return TRUE; -} - -static void reset(void) -{ - cflash_close(); - cflash_init(); -} - -static void close(void) -{ - cflash_close(); -} - -static void config(void) -{ -} - -static void write08(u32 procnum, u32 adr, u8 val) -{ - cflash_write(adr, val); -} - -static void write16(u32 procnum, u32 adr, u16 val) +class Slot2_CFlash : public ISlot2Interface { - cflash_write(adr, val); -} - -static void write32(u32 procnum, u32 adr, u32 val) -{ - cflash_write(adr, val); -} - -static u8 read08(u32 procnum, u32 adr) -{ - return (cflash_read(adr)); -} - -static u16 read16(u32 procnum, u32 adr) -{ - return (cflash_read(adr)); -} +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("MPCF Flash Card Device", "MPCF Flash Card Device", 0x01); + return &info; + } -static u32 read32(u32 procnum, u32 adr) -{ - return (cflash_read(adr)); -} + virtual void connect() + { + cflash_close(); + cflash_init(); + } + virtual void disconnect() + { + cflash_close(); + } -static void info(char *info) -{ - strcpy(info, "MPCF Flash Card Device"); -} + virtual void writeByte(u8 PROCNUM, u32 addr, u8 val) { cflash_write(addr, val); } + virtual void writeWord(u8 PROCNUM, u32 addr, u16 val) { cflash_write(addr, val); } + virtual void writeLong(u8 PROCNUM, u32 addr, u32 val) { cflash_write(addr, val); } + + virtual u8 readByte(u8 PROCNUM, u32 addr) { return (cflash_read(addr)); } + virtual u16 readWord(u8 PROCNUM, u32 addr) { return (cflash_read(addr)); } + virtual u32 readLong(u8 PROCNUM, u32 addr) { return (cflash_read(addr)); } -ADDONINTERFACE addonCFlash = { - "MPCF Flash Card Device", - init, - reset, - close, - config, - write08, - write16, - write32, - read08, - read16, - read32, - info}; +}; -#undef CFLASHDEBUG +ISlot2Interface* construct_Slot2_CFlash() { return new Slot2_CFlash(); } diff -Nru desmume-0.9.9/src/addons/slot2_none.cpp desmume-0.9.10/src/addons/slot2_none.cpp --- desmume-0.9.9/src/addons/slot2_none.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_none.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,48 +1,31 @@ -/* Copyright (C) 2009 CrazyMax - Copyright (C) 2009 DeSmuME team +/* + Copyright (C) 2009 CrazyMax + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ -#include "../addons.h" -#include +#include "../slot2.h" + +class Slot2_None : public ISlot2Interface +{ +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("None", "Slot2 no-device emulation", 0xFF); + return &info; + } +}; -static BOOL None_init(void) { return (TRUE); } -static void None_reset(void) {} -static void None_close(void) {} -static void None_config(void) {} -static void None_write08(u32 procnum, u32 adr, u8 val) {} -static void None_write16(u32 procnum, u32 adr, u16 val) {} -static void None_write32(u32 procnum, u32 adr, u32 val) {} -static u8 None_read08(u32 procnum, u32 adr){ return (0xFF); } -static u16 None_read16(u32 procnum, u32 adr){ return (0xFFFF); } -static u32 None_read32(u32 procnum, u32 adr){ return (0xFFFFFFFF); } -static void None_info(char *info) { strcpy(info, "Nothing in GBA slot"); } - -ADDONINTERFACE addonNone = { - "NONE", - None_init, - None_reset, - None_close, - None_config, - None_write08, - None_write16, - None_write32, - None_read08, - None_read16, - None_read32, - None_info}; +ISlot2Interface* construct_Slot2_None() { return new Slot2_None(); } diff -Nru desmume-0.9.9/src/addons/slot2_paddle.cpp desmume-0.9.10/src/addons/slot2_paddle.cpp --- desmume-0.9.9/src/addons/slot2_paddle.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_paddle.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,4 +1,5 @@ -/* Copyright (C) 2011 DeSmuME team +/* + Copyright (C) 2011-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -36,109 +37,96 @@ maybe legally configure the paddle differently, which could be rejected here; in which case this code will need finetuning */ -#include "../addons.h" #include -#include "NDSSystem.h" - -static BOOL init(void) { return (TRUE); } -static void reset(void) -{ -} +#include "../NDSSystem.h" +#include "../slot2.h" -static void calibrate() +class Slot2_Paddle : public ISlot2Interface { - nds.paddle = 0; -} +private: + void calibrate() { nds.paddle = 0; } + bool Validate(u32 procnum, bool rom) + { + if(rom) + return ValidateSlot2Access(procnum, 0, 0, 0, -1); + else + return ValidateSlot2Access(procnum, 18, 0, 0, 1); + } -static void close(void) {} -static void config(void) {} -static void write08(u32 procnum, u32 adr, u8 val) -{ - if(adr<0x0A000000) return; - calibrate(); -} -static void write16(u32 procnum, u32 adr, u16 val) -{ - if(adr<0x0A000000) { calibrate(); return; } -} -static void write32(u32 procnum, u32 adr, u32 val) -{ - if(adr<0x0A000000) { calibrate(); return; } -} -extern int currFrameCounter; - -static bool Validate(u32 procnum, bool rom) { - if(rom) - return ValidateSlot2Access(procnum,0,0,0,-1); - else - return ValidateSlot2Access(procnum,18,0,0,1); -} -static u8 read08(u32 procnum, u32 adr) -{ - //printf("paddle: read 08 at 0x%08X\n", adr); - if(!Validate(procnum,adr<0x0A000000)) - return 0xFF; +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("Paddle Controller", "Taito Paddle Controller", 0x07); + return &info; + } - if(adr<0x0A000000) + virtual void writeByte(u8 PROCNUM, u32 addr, u8 val) + { + if (addr < 0x0A000000) + calibrate(); + } + virtual void writeWord(u8 PROCNUM, u32 addr, u16 val) { - if(adr&1) return 0xFF; - else return 0xEF; + if (addr < 0x0A000000) + calibrate(); } + virtual void writeLong(u8 PROCNUM, u32 addr, u32 val) + { + if (addr < 0x0A000000) + calibrate(); + } + + virtual u8 readByte(u8 PROCNUM, u32 addr) + { + //printf("paddle: read 08 at 0x%08X\n", addr); + if (!Validate(PROCNUM, (addr < 0x0A000000))) + return 0xFF; + + if (addr < 0x0A000000) + return (addr & 1)?0xFF:0xEF; + + if (addr == 0x0A000000) + return (nds.paddle & 0xFF); - if(adr==0x0A000000) + if (addr == 0x0A000001) + return ((nds.paddle >> 8) & 0x0F); + + return 0x00; + } + virtual u16 readWord(u8 PROCNUM, u32 addr) { - return nds.paddle&0xFF; + //printf("paddle: read 16 at 0x%08X\n", addr); + if (!Validate(PROCNUM, (addr < 0x0A000000))) + return 0xFFFF; + + if (addr < 0x0A000000) + return 0xEFFF; + + if (addr == 0x0A000000) + { + u8 val = (nds.paddle & 0xFF); + return (val | (val << 8)); + } + + return 0x0000; } - if(adr==0x0A000001) + virtual u32 readLong(u8 PROCNUM, u32 addr) { - return (nds.paddle>>8)&0x0F; + //printf("paddle: read 32 at 0x%08X\n", addr); + if (!Validate(PROCNUM, (addr < 0x0A000000))) + return 0xFFFFFFFF; + + if (addr < 0x0A000000) + return 0xEFFFEFFF; + + if (addr == 0x0A000000) + { + u8 val = (nds.paddle & 0xFF); + return (val | (val << 8) | (val << 16) | (val << 24)); + } + + return 0x00000000; } - return 0x00; -} -static u16 read16(u32 procnum, u32 adr) -{ - //printf("paddle : read 16 at 0x%08X\n", adr); - if(!Validate(procnum,adr<0x0A000000)) - return 0xFFFF; - - if(adr<0x0A000000) - return 0xEFFF; - if(adr==0x0A000000) - { - u8 val = nds.paddle&0xFF; - return val|(val<<8); - } - - return 0x0000; -} -static u32 read32(u32 procnum, u32 adr) -{ - //printf("paddle: read 32 at 0x%08X\n", adr); - if(!Validate(procnum,adr<0x0A000000)) - return 0xFFFFFFFF; - - if(adr<0x0A000000) - return 0xEFFFEFFF; - if(adr==0x0A000000) - { - u8 val = nds.paddle&0xFF; - return val|(val<<8)|(val<<16)|(val<<24); - } - - return 0x00000000; -} -static void info(char *info) { strcpy(info, "Paddle"); } - -ADDONINTERFACE addonPaddle = { - "Paddle", - init, - reset, - close, - config, - write08, - write16, - write32, - read08, - read16, - read32, - info}; +}; + +ISlot2Interface* construct_Slot2_Paddle() { return new Slot2_Paddle(); } diff -Nru desmume-0.9.9/src/addons/slot2_passme.cpp desmume-0.9.10/src/addons/slot2_passme.cpp --- desmume-0.9.9/src/addons/slot2_passme.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_passme.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -0,0 +1,57 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "../NDSSystem.h" +#include "../types.h" +#include "../slot2.h" + +class Slot2_PassME : public ISlot2Interface +{ +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("PassME", "PassME in GBA slot", 0x08); + return &info; + } + + virtual u8 readByte(u8 PROCNUM, u32 addr) + { + u32 tmp_addr = (addr & 0x07FFFFFF); + if (tmp_addr < gameInfo.romsize) + return (u8)gameInfo.readROM(tmp_addr); + + return (0xFF); + } + virtual u16 readWord(u8 PROCNUM, u32 addr) + { + u32 tmp_addr = (addr & 0x07FFFFFF); + if (tmp_addr < gameInfo.romsize) + return (u16)gameInfo.readROM(tmp_addr); + + return (0xFFFF); + } + virtual u32 readLong(u8 PROCNUM, u32 addr) + { + u32 tmp_addr = (addr & 0x07FFFFFF); + if (tmp_addr < gameInfo.romsize) + return (u32)gameInfo.readROM(tmp_addr); + + return (0xFFFFFFFF); + } +}; + +ISlot2Interface* construct_Slot2_PassME() { return new Slot2_PassME(); } diff -Nru desmume-0.9.9/src/addons/slot2_piano.cpp desmume-0.9.10/src/addons/slot2_piano.cpp --- desmume-0.9.9/src/addons/slot2_piano.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_piano.cpp 2013-11-28 00:37:17.913006725 +0000 @@ -1,4 +1,5 @@ -/* Copyright (C) 2010-2011 DeSmuME team +/* + Copyright (C) 2010-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -14,82 +15,69 @@ along with the this software. If not, see . */ -#include "../addons.h" -#include +#include "../slot2.h" static u16 pianoKeyStatus = 0; -static BOOL piano_init(void) { return (TRUE); } -static void piano_reset(void) +class Slot2_EasyPiano : public ISlot2Interface { - //INFO("piano: Reset\n"); - pianoKeyStatus = 0; -} +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("Piano", "Piano for EasyPiano", 0x06); + return &info; + } + + virtual void connect() + { + pianoKeyStatus = 0; + } + + virtual u8 readByte(u8 PROCNUM, u32 addr) + { + //printf("piano: read 08 at 0x%08X\n", adr); + + //the actual keyboard output + + //byte:bit + //0x09FFFFFE:0 = C + //0x09FFFFFE:1 = C# + //0x09FFFFFE:2 = D + //0x09FFFFFE:3 = D# + //0x09FFFFFE:4 = E + //0x09FFFFFE:5 = F + //0x09FFFFFE:6 = F# + //0x09FFFFFE:7 = G + //0x09FFFFFF:0 = G# + //0x09FFFFFF:1 = A + //0x09FFFFFF:2 = A# + //0x09FFFFFF:3 = ? + //0x09FFFFFF:4 = ? + //0x09FFFFFF:5 = B + //0x09FFFFFF:6 = hiC + //0x09FFFFFF:7 = ? + + //deassert bit if key is pressed + + //LOG("PIANO: %04X\n",pianoKeyStatus); + + if(addr == 0x09FFFFFE) return (~(pianoKeyStatus&0xFF)); + if(addr == 0x09FFFFFF) return (~((pianoKeyStatus>>8)&0xFF))&~(0x18); + + return (addr & 1)?0xE7:0xFF; + } + virtual u16 readWord(u8 PROCNUM, u32 addr) + { + if (addr != 0x09FFFFFE) + return 0xE7FF; + + return readByte(PROCNUM, 0x09FFFFFE) | (readByte(PROCNUM,0x09FFFFFF) << 8); + } + virtual u32 readLong(u8 PROCNUM, u32 addr) { return 0xE7FFE7FF; } -static void piano_close(void) {} -static void piano_config(void) {} -static void piano_write08(u32 procnum, u32 adr, u8 val) -{ - //INFO("piano: write 08 at 0x%08X = %02X\n", adr, val); -} -static void piano_write16(u32 procnum, u32 adr, u16 val) -{ - //INFO("piano: write 16 at 0x%08X = %04X\n", adr, val); -} -static void piano_write32(u32 procnum, u32 adr, u32 val) -{ - //INFO("piano: write 32 at 0x%08X = %08X\n", adr, val); -} -extern int currFrameCounter; -static u8 piano_read08(u32 procnum, u32 adr) -{ - //printf("piano: read 08 at 0x%08X\n", adr); +}; - //the actual keyboard output - - //byte:bit - //0x09FFFFFE:0 = C - //0x09FFFFFE:1 = C# - //0x09FFFFFE:2 = D - //0x09FFFFFE:3 = D# - //0x09FFFFFE:4 = E - //0x09FFFFFE:5 = F - //0x09FFFFFE:6 = F# - //0x09FFFFFE:7 = G - //0x09FFFFFF:0 = G# - //0x09FFFFFF:1 = A - //0x09FFFFFF:2 = A# - //0x09FFFFFF:3 = ? - //0x09FFFFFF:4 = ? - //0x09FFFFFF:5 = B - //0x09FFFFFF:6 = hiC - //0x09FFFFFF:7 = ? - - //deassert bit if key is pressed - - //LOG("PIANO: %04X\n",pianoKeyStatus); - - if(adr == 0x09FFFFFE) return (~(pianoKeyStatus&0xFF)); - if(adr == 0x09FFFFFF) return (~((pianoKeyStatus>>8)&0xFF))&~(0x18); - - if(adr&1) return 0xE7; - else return 0xFF; -} -static u16 piano_read16(u32 procnum, u32 adr) -{ - //printf("piano: read 16 at 0x%08X\n", adr); - if(adr != 0x09FFFFFE) - return 0xE7FF; - u16 ret = piano_read08(procnum,0x09FFFFFE)|(piano_read08(procnum,0x09FFFFFF)<<8); - //return ( (PIANO_PAK & 0x1800 ) == 0 ); - return ret; -} -static u32 piano_read32(u32 procnum, u32 adr) -{ - //printf("piano: read 32 at 0x%08X\n", adr); - return 0xE7FFE7FF; -} -static void piano_info(char *info) { strcpy(info, "Piano for EasyPiano"); } +ISlot2Interface* construct_Slot2_EasyPiano() { return new Slot2_EasyPiano(); } void piano_setKey(bool c, bool cs, bool d, bool ds, bool e, bool f, bool fs, bool g, bool gs, bool a, bool as, bool b, bool hic) { @@ -110,35 +98,20 @@ //0x09FFFFFF:6 = hiC //0x09FFFFFF:7 = ? -#define BIT(N,v) ((v)?(1<<(N)):0) - pianoKeyStatus = - BIT(0,c) | - BIT(1,cs) | - BIT(2,d) | - BIT(3,ds) | - BIT(4,e) | - BIT(5,f) | - BIT(6,fs) | - BIT(7,g) | - BIT(8,gs) | - BIT(9,a) | - BIT(10,as) | - BIT(13,b) | - BIT(14,hic) - ; - pianoKeyStatus = pianoKeyStatus; + #define BIT_P(N,v) ((v)?(1<<(N)):0) + pianoKeyStatus = + BIT_P(0,c) | + BIT_P(1,cs) | + BIT_P(2,d) | + BIT_P(3,ds) | + BIT_P(4,e) | + BIT_P(5,f) | + BIT_P(6,fs) | + BIT_P(7,g) | + BIT_P(8,gs) | + BIT_P(9,a) | + BIT_P(10,as) | + BIT_P(13,b) | + BIT_P(14,hic) + ; } - -ADDONINTERFACE addonPiano = { - "Piano", - piano_init, - piano_reset, - piano_close, - piano_config, - piano_write08, - piano_write16, - piano_write32, - piano_read08, - piano_read16, - piano_read32, - piano_info}; diff -Nru desmume-0.9.9/src/addons/slot2_rumblepak.cpp desmume-0.9.10/src/addons/slot2_rumblepak.cpp --- desmume-0.9.9/src/addons/slot2_rumblepak.cpp 2013-05-01 18:47:28.000000000 +0000 +++ desmume-0.9.10/src/addons/slot2_rumblepak.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -1,98 +1,57 @@ -/* Copyright (C) 2009-2010 DeSmuME team +/* + Copyright (C) 2009 CrazyMax + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - This file is part of DeSmuME - - DeSmuME is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DeSmuME is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DeSmuME; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + You should have received a copy of the GNU General Public License + along with the this software. If not, see . */ -#include "../addons.h" -#include "../mem.h" -#include "../MMU.h" -#include - -u16 old_val_rumble = 0; +#include "../slot2.h" void (*FeedbackON)(BOOL enable) = NULL; -static BOOL RumblePak_init(void) { return (TRUE); } - -static void RumblePak_reset(void) -{ - old_val_rumble = 0; - if (!FeedbackON) return; - FeedbackON(false); -} - -static void RumblePak_close(void) {} - -static void RumblePak_config(void) {} - -static void RumblePak_write08(u32 procnum, u32 adr, u8 val) -{ -} - -static void RumblePak_write16(u32 procnum, u32 adr, u16 val) -{ - if (!FeedbackON) return; - - if (old_val_rumble == val) return; - - old_val_rumble = val; - // CrazyMax 17/01/2009 - // i don't know how send to feedback (PC) impulse with small latency. - if (adr == 0x08000000) - FeedbackON(val); - if (adr == 0x08001000) - FeedbackON(val); -} - -static void RumblePak_write32(u32 procnum, u32 adr, u32 val) -{ -} - -static u8 RumblePak_read08(u32 procnum, u32 adr) +class Slot2_RumblePak : public ISlot2Interface { - if(adr&1) return 0xFF; - else return 0xFD; -} +private: + u16 old_val_rumble; -static u16 RumblePak_read16(u32 procnum, u32 adr) -{ - return 0xFFFD; -} - -static u32 RumblePak_read32(u32 procnum, u32 adr) -{ - return 0xFFFDFFFD; -} - -static void RumblePak_info(char *info) -{ - strcpy(info, "NDS Rumble Pak (need joystick with Feedback)"); -} +public: + virtual Slot2Info const* info() + { + static Slot2InfoSimple info("Rumble Pak", "NDS Rumble Pak (need joystick with Feedback)", 0x02); + return &info; + } + + virtual void connect() + { + old_val_rumble = 0; + if (!FeedbackON) return; + FeedbackON(false); + } + + virtual void writeWord(u8 PROCNUM, u32 addr, u16 val) + { + if (!FeedbackON) return; + if (old_val_rumble == val) return; + + old_val_rumble = val; + if ((addr == 0x08000000) || (addr == 0x08001000)) + FeedbackON(val); + } + + virtual u8 readByte(u8 PROCNUM, u32 addr) { return (addr & 1)?0xFF:0xFD; }; + virtual u16 readWord(u8 PROCNUM, u32 addr) { return 0xFFFD; }; + virtual u32 readLong(u8 PROCNUM, u32 addr) { return 0xFFFDFFFD; }; +}; -ADDONINTERFACE addonRumblePak = { - "Rumble Pak", - RumblePak_init, - RumblePak_reset, - RumblePak_close, - RumblePak_config, - RumblePak_write08, - RumblePak_write16, - RumblePak_write32, - RumblePak_read08, - RumblePak_read16, - RumblePak_read32, - RumblePak_info}; +ISlot2Interface* construct_Slot2_RumblePak() { return new Slot2_RumblePak(); } \ No newline at end of file diff -Nru desmume-0.9.9/src/addons.cpp desmume-0.9.10/src/addons.cpp --- desmume-0.9.9/src/addons.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/addons.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -/* - Copyright (C) 2009-2012 DeSmuME team - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with the this software. If not, see . -*/ -#include "addons.h" -#include - -//this is the currently-configured cflash mode -ADDON_CFLASH_MODE CFlash_Mode; - -//this is the currently-configured path (directory or filename) for cflash. -//it should be viewed as a parameter for the above. -std::string CFlash_Path; - -char GBAgameName[MAX_PATH]; - -extern ADDONINTERFACE addonNone; -extern ADDONINTERFACE addonCFlash; -extern ADDONINTERFACE addonRumblePak; -extern ADDONINTERFACE addonGBAgame; -extern ADDONINTERFACE addonGuitarGrip; -extern ADDONINTERFACE addonExpMemory; -extern ADDONINTERFACE addonPiano; -extern ADDONINTERFACE addonPaddle; -//extern ADDONINTERFACE addonExternalMic; - -ADDONINTERFACE addonList[NDS_ADDON_COUNT] = { - addonNone, - addonCFlash, - addonRumblePak, - addonGBAgame, - addonGuitarGrip, - addonExpMemory, - addonPiano, - addonPaddle -}; - -ADDONINTERFACE addon = addonCFlash; // default none pak -NDS_ADDON_TYPE addon_type = NDS_ADDON_CFLASH; - -BOOL addonsInit() -{ - return addon.init(); -} - -void addonsClose() -{ - addon.close(); -} - -void addonsReset() -{ - addon.reset(); -} - -BOOL addonsChangePak(NDS_ADDON_TYPE type) -{ - if (type > NDS_ADDON_COUNT) return FALSE; - addon.close(); - addon = addonList[type]; - addon_type = type; - printf("Slot 2: %s\n", addon.name); - return addon.init(); -} diff -Nru desmume-0.9.9/src/addons.h desmume-0.9.10/src/addons.h --- desmume-0.9.9/src/addons.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/addons.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -/* - Copyright (C) 2009-2011 DeSmuME team - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with the this software. If not, see . -*/ - -#ifndef __ADDONS_H__ -#define __ADDONS_H__ - -#include "common.h" -#include "types.h" -#include "debug.h" - -struct ADDONINTERFACE -{ - // The name of the plugin, this name will appear in the plugins list - const char * name; - - //called once when the plugin starts up - BOOL (*init)(void); - - //called when the emulator resets - void (*reset)(void); - - //called when the plugin shuts down - void (*close)(void); - - //called when the user configurating plugin - void (*config)(void); - - //called when the emulator write to addon - void (*write08)(u32 procnum, u32 adr, u8 val); - void (*write16)(u32 procnum, u32 adr, u16 val); - void (*write32)(u32 procnum, u32 adr, u32 val); - - //called when the emulator read from addon - u8 (*read08)(u32 procnum, u32 adr); - u16 (*read16)(u32 procnum, u32 adr); - u32 (*read32)(u32 procnum, u32 adr); - - //called when the user get info about addon pak (description) - void (*info)(char *info); -}; - -enum NDS_ADDON_TYPE -{ - NDS_ADDON_NONE, - NDS_ADDON_CFLASH, // compact flash - NDS_ADDON_RUMBLEPAK, // rumble pack - NDS_ADDON_GBAGAME, // gba game in slot - NDS_ADDON_GUITARGRIP, // Guitar Grip - NDS_ADDON_EXPMEMORY, // Memory Expansion - NDS_ADDON_PIANO, // Piano - NDS_ADDON_PADDLE, - //NDS_ADDON_EXTERNALMIC, - NDS_ADDON_COUNT // use for counter addons - MUST TO BE LAST!!! -}; - -enum ADDON_CFLASH_MODE -{ - ADDON_CFLASH_MODE_Path, ADDON_CFLASH_MODE_File, ADDON_CFLASH_MODE_RomPath -}; - -extern ADDON_CFLASH_MODE CFlash_Mode; -extern std::string CFlash_Path; -inline bool CFlash_IsUsingPath() { return CFlash_Mode==ADDON_CFLASH_MODE_Path || CFlash_Mode==ADDON_CFLASH_MODE_RomPath; } - -extern ADDONINTERFACE addon; // current pak -extern ADDONINTERFACE addonList[NDS_ADDON_COUNT]; // lists pointer on paks -extern NDS_ADDON_TYPE addon_type; // current type pak - -extern char GBAgameName[MAX_PATH]; // file name for GBA game (rom) -extern void (*FeedbackON)(BOOL enable); // feedback on/off - -extern BOOL addonsInit(); // Init addons -extern void addonsClose(); // Shutdown addons -extern void addonsReset(); // Reset addon -extern BOOL addonsChangePak(NDS_ADDON_TYPE type); // change current adddon - -extern void guitarGrip_setKey(bool green, bool red, bool yellow, bool blue); // Guitar grip keys -extern void piano_setKey(bool c, bool cs, bool d, bool ds, bool e, bool f, bool fs, bool g, bool gs, bool a, bool as, bool b, bool hic); //piano keys - -#endif //__ADDONS_H__ diff -Nru desmume-0.9.9/src/armcpu.cpp desmume-0.9.10/src/armcpu.cpp --- desmume-0.9.9/src/armcpu.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/armcpu.cpp 2013-11-28 00:37:18.805021131 +0000 @@ -171,7 +171,7 @@ memcpy(&armcpu->cond_table[0], &arm_cond_table[0], sizeof(arm_cond_table)); #endif - armcpu->LDTBit = (armcpu->proc_ID==0); //Si ARM9 utiliser le syte v5 pour le load + armcpu->LDTBit = (armcpu->proc_ID==0); //set ARMv5 style bit--different for each processor armcpu->intVector = 0xFFFF0000 * (armcpu->proc_ID==0); armcpu->waitIRQ = FALSE; armcpu->halt_IE_and_IF = FALSE; @@ -202,7 +202,9 @@ //armcpu->R[15] = adr; //#endif - armcpu->next_instruction = adr; + //do something sensible when booting up to a thumb address + armcpu->next_instruction = adr & ~1; + armcpu->CPSR.bits.T = BIT0(adr); //#ifndef GDB_STUB armcpu_prefetch(armcpu); @@ -669,6 +671,7 @@ { if (jit) { + ARMPROC.instruct_adr &= ARMPROC.CPSR.bits.T?0xFFFFFFFE:0xFFFFFFFC; ArmOpCompiled f = (ArmOpCompiled)JIT_COMPILED_FUNC(ARMPROC.instruct_adr, PROCNUM); return f ? f() : arm_jit_compile(); } diff -Nru desmume-0.9.9/src/armcpu.h desmume-0.9.10/src/armcpu.h --- desmume-0.9.9/src/armcpu.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/armcpu.h 2013-11-28 00:37:18.797021001 +0000 @@ -55,6 +55,22 @@ template inline T SIGNED_UNDERFLOW(T a,T b,T c) { return BIT31(((a)&(~(b))&(~c)) | ((~a)&(b)&(c))); } +#define bswap32(val) \ + ( (val << 24) & 0xFF000000) | \ + ( (val << 8) & 0x00FF0000) | \ + ( (val >> 8) & 0x0000FF00) | \ + ( (val >> 24) & 0x000000FF) + +#define bswap64(x) \ + ( (x << 56) & 0xff00000000000000ULL ) | \ + ( (x << 40) & 0x00ff000000000000ULL ) | \ + ( (x << 24) & 0x0000ff0000000000ULL ) | \ + ( (x << 8) & 0x000000ff00000000ULL ) | \ + ( (x >> 8) & 0x00000000ff000000ULL ) | \ + ( (x >> 24) & 0x0000000000ff0000ULL ) | \ + ( (x >> 40) & 0x000000000000ff00ULL ) | \ + ( (x >> 56) & 0x00000000000000ffULL ) + // ============================= CPRS flags funcs inline bool CarryFrom(s32 left, s32 right) { diff -Nru desmume-0.9.9/src/arm_instructions.cpp desmume-0.9.10/src/arm_instructions.cpp --- desmume-0.9.9/src/arm_instructions.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/arm_instructions.cpp 2013-11-28 00:37:18.809021196 +0000 @@ -32,6 +32,7 @@ #include "armcpu.h" #include "NDSSystem.h" #include "MMU_timing.h" +#include "bios.h" #define cpu (&ARMPROC) #define TEMPLATE template @@ -6191,10 +6192,11 @@ (cpu->intVector == 0x00000000 && PROCNUM==0) || (cpu->intVector == 0xFFFF0000 && PROCNUM==1); + //printf("ARM%c SWI %02X\t; %s\n", PROCNUM?'7':'9', (swinum & 0x1F), ARM_swi_names[PROCNUM][(swinum & 0x1F)]); + if(cpu->swi_tab && !bypassBuiltinSWI) { swinum &= 0x1F; - //printf("%d ARM SWI %d \n",PROCNUM,swinum); return cpu->swi_tab[swinum]() + 3; } else diff -Nru desmume-0.9.9/src/arm_jit.cpp desmume-0.9.10/src/arm_jit.cpp --- desmume-0.9.9/src/arm_jit.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/arm_jit.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2006 yopyop Copyright (C) 2011 Loren Merritt - Copyright (C) 2012 DeSmuME team + Copyright (C) 2012-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,11 +17,13 @@ */ #include "types.h" + #ifdef HAVE_JIT -#if !defined(__x86_64__) && !defined(__LP64) && !defined(__IA64__) && !defined(_M_X64) && !defined(_WIN64) && !defined(_M_IX86) && !defined(__INTEL__) && !defined(__i386__) +#if !defined(HOST_32) && !defined(HOST_64) #error "ERROR: JIT compiler - unsupported target platform" #endif -#ifdef _WINDOWS + +#ifdef HOST_WINDOWS // **** Windows port #else #include @@ -30,6 +32,7 @@ #include #define HAVE_STATIC_CODE_BUFFER #endif + #include "instructions.h" #include "instruction_attributes.h" #include "Disassembler.h" @@ -60,12 +63,12 @@ c.lea(txt, dword_ptr_abs(&buf)); \ c.mov(data, *(GpVar*)&val); \ X86CompilerFuncCall* prn = c.call((uintptr_t)fprintf); \ - prn->setPrototype(ASMJIT_CALL_CONV, FuncBuilder3()); \ + prn->setPrototype(kX86FuncConvDefault, FuncBuilder3()); \ prn->setArgument(0, io); \ prn->setArgument(1, txt); \ prn->setArgument(2, data); \ X86CompilerFuncCall* prn_flush = c.call((uintptr_t)fflush); \ - prn_flush->setPrototype(ASMJIT_CALL_CONV, FuncBuilder1()); \ + prn_flush->setPrototype(kX86FuncConvDefault, FuncBuilder1()); \ prn_flush->setArgument(0, io); \ } #else @@ -74,6 +77,8 @@ #define printJIT(buf, val) #endif +u32 saveBlockSizeJIT = 0; + #ifdef MAPPED_JIT_FUNCS CACHE_ALIGN JIT_struct JIT; @@ -269,6 +274,7 @@ #define reg_pos_thumb(x) dword_ptr(bb_cpu, offsetof(armcpu_t, R) + 4*((i>>(x))&0x7)) #define reg_pos_thumbB(x) byte_ptr(bb_cpu, offsetof(armcpu_t, R) + 4*((i>>(x))&0x7)) #define cp15_ptr(x) dword_ptr(bb_cp15, offsetof(armcp15_t, x)) +#define cp15_ptr_off(x, y) dword_ptr(bb_cp15, offsetof(armcp15_t, x) + y) #define mmu_ptr(x) dword_ptr(bb_mmu, offsetof(MMU_struct, x)) #define mmu_ptr_byte(x) byte_ptr(bb_mmu, offsetof(MMU_struct, x)) #define _REG_NUM(i, n) ((i>>(n))&0x7) @@ -280,7 +286,7 @@ // sequencer.reschedule = true; #define changeCPSR { \ X86CompilerFuncCall* ctxCPSR = c.call((void*)NDS_Reschedule); \ - ctxCPSR->setPrototype(ASMJIT_CALL_CONV, FuncBuilder0()); \ + ctxCPSR->setPrototype(kX86FuncConvDefault, FuncBuilder0()); \ } #if (PROFILER_JIT_LEVEL > 0) @@ -387,6 +393,32 @@ JIT_COMMENT("end SET_NZ"); \ } +#define SET_N { \ + JIT_COMMENT("SET_N"); \ + GpVar x = c.newGpVar(kX86VarTypeGpz); \ + GpVar y = c.newGpVar(kX86VarTypeGpz); \ + c.sets(x.r8Lo()); \ + c.movzx(y, flags_ptr); \ + c.and_(y, 0x7F); \ + c.shl(x, 7); \ + c.or_(x, y); \ + c.mov(flags_ptr, x.r8Lo()); \ + JIT_COMMENT("end SET_N"); \ +} + +#define SET_Z { \ + JIT_COMMENT("SET_Z"); \ + GpVar x = c.newGpVar(kX86VarTypeGpz); \ + GpVar y = c.newGpVar(kX86VarTypeGpz); \ + c.setz(x.r8Lo()); \ + c.movzx(y, flags_ptr); \ + c.and_(y, 0xBF); \ + c.shl(x, 6); \ + c.or_(x, y); \ + c.mov(flags_ptr, x.r8Lo()); \ + JIT_COMMENT("end SET_Z"); \ +} + #define SET_Q { \ JIT_COMMENT("SET_Q"); \ GpVar x = c.newGpVar(kX86VarTypeGpz); \ @@ -404,7 +436,7 @@ c.mov(tmp, SPSR); \ c.and_(tmp, 0x1F); \ X86CompilerFuncCall* ctx = c.call((void*)armcpu_switchMode); \ - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder2()); \ + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder2()); \ ctx->setArgument(0, bb_cpu); \ ctx->setArgument(1, tmp); \ c.mov(cpu_ptr(CPSR.val), SPSR); \ @@ -566,7 +598,7 @@ #define IMM_OFF_12 \ JIT_COMMENT("IMM_OFF_12"); \ bool rhs_is_imm = true; \ - u32 rhs = i&0xFFF; \ + u32 rhs = (i & 0xFFF); \ u32 rhs_first = rhs; // ============================================================================================= REG @@ -755,7 +787,6 @@ { \ if(REG_POS(i,12)==15) \ { \ - GpVar tmp = c.newGpVar(kX86VarTypeGpd); \ c.mov(cpu_ptr(next_instruction), lhs); \ c.add(bb_total_cycles, 2); \ } \ @@ -1205,7 +1236,8 @@ c.adc(hi, reg_pos_ptr(16)); \ c.mov(reg_pos_ptr(12), lhs); \ c.mov(reg_pos_ptr(16), hi); \ - c.cmp(hi, lhs); SET_NZ(0); \ + c.or_(lhs, hi); SET_Z; \ + c.and_(hi, (1 << 31)); SET_N; \ } \ else \ { \ @@ -1385,7 +1417,7 @@ c.mov(mode, rhs); \ c.and_(mode, 0x1F); \ X86CompilerFuncCall* ctx = c.call((void*)armcpu_switchMode); \ - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder2()); \ + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder2()); \ ctx->setArgument(0, bb_cpu); \ ctx->setArgument(1, mode); \ } \ @@ -1459,7 +1491,7 @@ c.mov(mode, rhs); \ c.and_(mode, 0x1F); \ X86CompilerFuncCall* ctx = c.call((void*)armcpu_switchMode); \ - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder2()); \ + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder2()); \ ctx->setArgument(0, bb_cpu); \ ctx->setArgument(1, mode); \ } \ @@ -1604,7 +1636,7 @@ if (PROCNUM == 0) \ { \ GpVar thumb = c.newGpVar(kX86VarTypeGpz); \ - c.movzx(thumb, reg_pos_ptrB(16)); \ + c.mov(thumb, tmp); \ c.and_(thumb, 1); \ c.shl(thumb, 5); \ c.or_(cpu_ptr(CPSR), thumb.r64()); \ @@ -2313,7 +2345,7 @@ //oldmode = armcpu_switchMode(cpu, SYS); c.mov(oldmode, SYS); X86CompilerFuncCall *ctx = c.call((void*)armcpu_switchMode); - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder2()); + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder2()); ctx->setArgument(0, bb_cpu); ctx->setArgument(1, oldmode); ctx->setReturn(oldmode); @@ -2325,7 +2357,7 @@ { //armcpu_switchMode(cpu, oldmode); X86CompilerFuncCall *ctx = c.call((void*)armcpu_switchMode); - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder2()); + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder2()); ctx->setArgument(0, bb_cpu); ctx->setArgument(1, oldmode); } @@ -2423,7 +2455,6 @@ return 1; } -//TODO: exeption when Rm=PC static int OP_BX(const u32 i) { return op_bx(reg_pos_ptr(0), 0, 1); } static int OP_BLX_REG(const u32 i) { return op_bx(reg_pos_ptr(0), 1, 1); } @@ -2444,11 +2475,58 @@ //----------------------------------------------------------------------------- // MCR / MRC //----------------------------------------------------------------------------- -#define maskPrecalc \ + +// precalculate region masks/sets from cp15 register ----- JIT +// TODO: rewrite to asm +static void maskPrecalc(u32 _num) +{ +#define precalc(num) { \ + u32 mask = 0, set = 0xFFFFFFFF ; /* (x & 0) == 0xFF..FF is allways false (disabled) */ \ + if (BIT_N(cp15.protectBaseSize[num],0)) /* if region is enabled */ \ + { /* reason for this define: naming includes var */ \ + mask = CP15_MASKFROMREG(cp15.protectBaseSize[num]) ; \ + set = CP15_SETFROMREG(cp15.protectBaseSize[num]) ; \ + if (CP15_SIZEIDENTIFIER(cp15.protectBaseSize[num])==0x1F) \ + { /* for the 4GB region, u32 suffers wraparound */ \ + mask = 0 ; set = 0 ; /* (x & 0) == 0 is allways true (enabled) */ \ + } \ + } \ + cp15.setSingleRegionAccess(num, mask, set) ; \ +} + switch(_num) + { + case 0: precalc(0); break; + case 1: precalc(1); break; + case 2: precalc(2); break; + case 3: precalc(3); break; + case 4: precalc(4); break; + case 5: precalc(5); break; + case 6: precalc(6); break; + case 7: precalc(7); break; + + case 0xFF: + precalc(0); + precalc(1); + precalc(2); + precalc(3); + precalc(4); + precalc(5); + precalc(6); + precalc(7); + break; + } +#undef precalc +} + +#define _maskPrecalc(num) \ { \ - X86CompilerFuncCall* ctxM = c.call((void*)maskPrecalc); \ - ctxM->setPrototype(ASMJIT_CALL_CONV, FuncBuilder0()); \ + GpVar _num = c.newGpVar(kX86VarTypeGpd); \ + X86CompilerFuncCall* ctxM = c.call((uintptr_t)maskPrecalc); \ + c.mov(_num, num); \ + ctxM->setPrototype(kX86FuncConvDefault, FuncBuilder1()); \ + ctxM->setArgument(0, _num); \ } + static int OP_MCR(const u32 i) { if (PROCNUM == ARMCPU_ARM7) return 0; @@ -2548,12 +2626,12 @@ case 2: //DaccessPerm = val; c.mov(cp15_ptr(DaccessPerm), data); - maskPrecalc; + _maskPrecalc(0xFF); break; case 3: //IaccessPerm = val; c.mov(cp15_ptr(IaccessPerm), data); - maskPrecalc; + _maskPrecalc(0xFF); break; default: bUnknown = true; @@ -2565,51 +2643,12 @@ case 6: if((opcode1==0) && (opcode2==0)) { - switch(CRm) + if (CRm < 8) { - case 0: - //protectBaseSize0 = val; - c.mov(cp15_ptr(protectBaseSize0), data); - maskPrecalc; - break; - case 1: - //protectBaseSize1 = val; - c.mov(cp15_ptr(protectBaseSize1), data); - maskPrecalc; - break; - case 2: - //protectBaseSize2 = val; - c.mov(cp15_ptr(protectBaseSize2), data); - maskPrecalc; - break; - case 3: - //protectBaseSize3 = val; - c.mov(cp15_ptr(protectBaseSize3), data); - maskPrecalc; - break; - case 4: - //protectBaseSize4 = val; - c.mov(cp15_ptr(protectBaseSize4), data); - maskPrecalc; - break; - case 5: - //protectBaseSize5 = val; - c.mov(cp15_ptr(protectBaseSize5), data); - maskPrecalc; - break; - case 6: - //protectBaseSize6 = val; - c.mov(cp15_ptr(protectBaseSize6), data); - maskPrecalc; - break; - case 7: - //protectBaseSize7 = val; - c.mov(cp15_ptr(protectBaseSize7), data); - maskPrecalc; - break; - default: - bUnknown = true; - break; + //protectBaseSize[CRm] = val; + c.mov(cp15_ptr_off(protectBaseSize, (CRm * sizeof(u32))), data); + _maskPrecalc(CRm); + break; } } bUnknown = true; @@ -2810,45 +2849,12 @@ case 6: if((opcode1==0) && (opcode2==0)) { - switch(CRm) + if (CRm < 8) { - case 0: - // *R = protectBaseSize0; - c.mov(data, cp15_ptr(protectBaseSize0)); - break; - case 1: - // *R = protectBaseSize1; - c.mov(data, cp15_ptr(protectBaseSize1)); - break; - case 2: - // *R = protectBaseSize2; - c.mov(data, cp15_ptr(protectBaseSize2)); - break; - case 3: - // *R = protectBaseSize3; - c.mov(data, cp15_ptr(protectBaseSize3)); - break; - case 4: - // *R = protectBaseSize4; - c.mov(data, cp15_ptr(protectBaseSize4)); - break; - case 5: - // *R = protectBaseSize5; - c.mov(data, cp15_ptr(protectBaseSize5)); - break; - case 6: - // *R = protectBaseSize6; - c.mov(data, cp15_ptr(protectBaseSize6)); - break; - case 7: - // *R = protectBaseSize7; - c.mov(data, cp15_ptr(protectBaseSize7)); - break; - default: - bUnknown = true; - break; + // *R = protectBaseSize[CRm]; + c.mov(data, cp15_ptr_off(protectBaseSize, (CRm * sizeof(u32)))); + break; } - break; } bUnknown = true; break; @@ -2944,7 +2950,7 @@ return 0; #else X86CompilerFuncCall *ctx = c.call((void*)ARM_swi_tab[PROCNUM][swinum]); - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder0()); + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder0()); ctx->setReturn(bb_cycles); c.add(bb_cycles, 3); return 1; @@ -2959,7 +2965,7 @@ JIT_COMMENT("enter SVC mode"); c.mov(mode, imm(SVC)); X86CompilerFuncCall* ctx = c.call((void*)armcpu_switchMode); - ctx->setPrototype(ASMJIT_CALL_CONV, FuncBuilder2()); + ctx->setPrototype(kX86FuncConvDefault, FuncBuilder2()); ctx->setArgument(0, bb_cpu); ctx->setArgument(1, mode); c.unuse(mode); @@ -3758,7 +3764,17 @@ return 1; } -static int OP_BX_THUMB(const u32 i) { if (REG_POS(i, 3) == 15) c.mov(reg_ptr(15), bb_r15); return op_bx_thumb(reg_pos_ptr(3), 0, 0); } +static int op_bx_thumbR15() +{ + const u32 r15 = (bb_r15 & 0xFFFFFFFC); + c.mov(cpu_ptr(instruct_adr), Imm(r15)); + c.mov(reg_ptr(15), Imm(r15)); + c.and_(cpu_ptr(CPSR), (u32)~(1<< 5)); + + return 1; +} + +static int OP_BX_THUMB(const u32 i) { if (REG_POS(i, 3) == 15) return op_bx_thumbR15(); return op_bx_thumb(reg_pos_ptr(3), 0, 0); } static int OP_BLX_THUMB(const u32 i) { return op_bx_thumb(reg_pos_ptr(3), 1, 1); } static int OP_SWI_THUMB(const u32 i) { return op_swi(i & 0x1F); } @@ -3853,11 +3869,16 @@ static bool instr_is_branch(u32 opcode) { u32 x = instr_attributes(opcode); + if(bb_thumb) + { + // merge OP_BL_10+OP_BL_11 + if (x & MERGE_NEXT) return false; return (x & BRANCH_ALWAYS) || ((x & BRANCH_POS0) && ((opcode&7) | ((opcode>>4)&8)) == 15) || (x & BRANCH_SWI) || (x & JIT_BYPASS); + } else return (x & BRANCH_ALWAYS) || ((x & BRANCH_POS12) && REG_POS(opcode,12) == 15) @@ -3936,9 +3957,9 @@ { if(instr_does_prefetch(opcode)) { - assert(!instr_uses_r15(opcode)); if(force) { + //assert(!instr_uses_r15(opcode)); JIT_COMMENT("sync_r15: force instruct_adr %08Xh (PREFETCH)", bb_adr); c.mov(cpu_ptr(instruct_adr), bb_next_instruction); } @@ -4096,7 +4117,7 @@ u32 cycles = instr_cycles(opcode); - bEndBlock = (i >= (CommonSettings.jit_max_block_size - 1)) || instr_is_branch(opcode); + bEndBlock = instr_is_branch(opcode) || (i >= (CommonSettings.jit_max_block_size - 1)); #if LOG_JIT if (instr_is_conditional(opcode) && (cycles > 1) || (cycles == 0)) @@ -4221,7 +4242,7 @@ template u32 arm_jit_compile<0>(); template u32 arm_jit_compile<1>(); -void arm_jit_reset(bool enable) +void arm_jit_reset(bool enable, bool suppress_msg) { #if LOG_JIT c.setLogger(&logger); @@ -4232,11 +4253,14 @@ #ifdef HAVE_STATIC_CODE_BUFFER scratchptr = scratchpad; #endif - printf("CPU mode: %s\n", enable?"JIT":"Interpreter"); + if (!suppress_msg) + printf("CPU mode: %s\n", enable?"JIT":"Interpreter"); + saveBlockSizeJIT = CommonSettings.jit_max_block_size; if (enable) { printf("JIT: max block size %d instruction(s)\n", CommonSettings.jit_max_block_size); + #ifdef MAPPED_JIT_FUNCS //these pointers are allocated by asmjit and need freeing diff -Nru desmume-0.9.9/src/arm_jit.h desmume-0.9.10/src/arm_jit.h --- desmume-0.9.9/src/arm_jit.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/arm_jit.h 2013-11-28 00:37:28.421176409 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2006 yopyop Copyright (C) 2011 Loren Merritt - Copyright (C) 2012 DeSmuME team + Copyright (C) 2012-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,18 +20,18 @@ #define ARM_JIT #include "types.h" -#ifndef _MSC_VER +#ifndef _MSC_VER #include #endif typedef u32 (FASTCALL* ArmOpCompiled)(); -void arm_jit_reset(bool enable); +void arm_jit_reset(bool enable, bool suppress_msg = false); void arm_jit_close(); void arm_jit_sync(); template u32 arm_jit_compile(); -#if defined(_WINDOWS) || defined(DESMUME_COCOA) +#if defined(HOST_WINDOWS) || defined(DESMUME_COCOA) #define MAPPED_JIT_FUNCS #endif #ifdef MAPPED_JIT_FUNCS @@ -60,10 +60,11 @@ extern uintptr_t compiled_funcs[]; // there isn't anything mapped between 07000000 and 0EFFFFFF, so we can mask off bit 27 and get away with a smaller array #define JIT_COMPILED_FUNC(adr, PROCNUM) compiled_funcs[((adr) & 0x07FFFFFE) >> 1] -#define JIT_COMPILED_FUNC_PREMASKED(adr, PROCNUM, ofs) JIT_COMPILED_FUNC(adr, PROCNUM) -#define JIT_COMPILED_FUNC_KNOWNBANK(adr, bank, mask, ofs) JIT_COMPILED_FUNC(adr, PROCNUM) +#define JIT_COMPILED_FUNC_PREMASKED(adr, PROCNUM, ofs) JIT_COMPILED_FUNC(adr+(ofs<<1), PROCNUM) +#define JIT_COMPILED_FUNC_KNOWNBANK(adr, bank, mask, ofs) JIT_COMPILED_FUNC(adr+(ofs<<1), PROCNUM) #define JIT_MAPPED(adr, PROCNUM) true #endif +extern u32 saveBlockSizeJIT; #endif diff -Nru desmume-0.9.9/src/bios.cpp desmume-0.9.10/src/bios.cpp --- desmume-0.9.9/src/bios.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/bios.cpp 2013-11-28 00:37:28.425176472 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2006 yopyop - Copyright (C) 2008-2012 DeSmuME team + Copyright (C) 2008-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ along with the this software. If not, see . */ +//this file contains HLE for the arm9 and arm7 bios SWI routines. +//it renders the use of bios files generally unnecessary. +//it turns out that they're not too complex, although of course the timings will be all wrong here. + #include "cp15.h" #include #include "MMU.h" @@ -23,7 +27,18 @@ #include "NDSSystem.h" #define cpu (&ARMPROC) -#define TEMPLATE template +#define TEMPLATE template + +struct CompressionHeader +{ +public: + CompressionHeader(u32 _value) : value(_value) {} + u32 DataSize() const { return value&15; } + u32 Type() const { return (value>>4)&15; } + u32 DecompressedSize() const { return value>>8; } +private: + u32 value; +}; static const u16 getsinetbl[] = { 0x0000, 0x0324, 0x0648, 0x096A, 0x0C8C, 0x0FAB, 0x12C8, 0x15E2, @@ -279,7 +294,16 @@ TEMPLATE static u32 sleep() { - _MMU_write08(0x04000301, 0xC0); + //just set REG_HALTCNT to the fixed Sleep value + _MMU_write08(REG_HALTCNT, 0xC0); + return 1; +} + +//ARM7 only +TEMPLATE static u32 CustomHalt() +{ + //just set REG_HALTCNT to the provided value + _MMU_write08(REG_HALTCNT, cpu->R[2]); return 1; } @@ -628,6 +652,10 @@ TEMPLATE static u32 RLUnCompWram() { + //this routine is used by yoshi touch&go from the very beginning + + //printf("RLUnCompWram\n"); + int i; int len; u32 source = cpu->R[0]; @@ -671,6 +699,8 @@ TEMPLATE static u32 UnCompHuffman() { + //this routine is used by the nintendo logo in the firmware boot screen + u32 source, dest, writeValue, header, treeStart, mask; u32 data; u8 treeSize, currentNode, rootNode; @@ -680,7 +710,7 @@ source = cpu->R[0]; dest = cpu->R[1]; - header = _MMU_read08(source); + header = _MMU_read32(source); source += 4; //INFO("swi uncomphuffman\n"); @@ -698,7 +728,7 @@ len = header >> 8; mask = 0x80000000; - data = _MMU_read08(source); + data = _MMU_read32(source); source += 4; pos = 0; @@ -741,7 +771,7 @@ if(byteCount == 4) { byteCount = 0; byteShift = 0; - _MMU_write08(dest, writeValue); + _MMU_write32(dest, writeValue); writeValue = 0; dest += 4; len -= 4; @@ -750,7 +780,7 @@ mask >>= 1; if(mask == 0) { mask = 0x80000000; - data = _MMU_read08(source); + data = _MMU_read32(source); source += 4; } } @@ -794,7 +824,7 @@ if(byteCount == 4) { byteCount = 0; byteShift = 0; - _MMU_write08(dest, writeValue); + _MMU_write32(dest, writeValue); dest += 4; writeValue = 0; len -= 4; @@ -807,157 +837,151 @@ mask >>= 1; if(mask == 0) { mask = 0x80000000; - data = _MMU_read08(source); + data = _MMU_read32(source); source += 4; } } } return 1; } - TEMPLATE static u32 BitUnPack() { - u32 source,dest,header,base,d,temp; - int len,bits,revbits,dataSize,data,bitwritecount,mask,bitcount,addBase; - u8 b; - - source = cpu->R[0]; - dest = cpu->R[1]; - header = cpu->R[2]; - - len = _MMU_read16(header); - bits = _MMU_read08(header+2); - switch (bits) - { + u32 source,dest,header,base,temp; + int len,bits,revbits,dataSize,data,bitwritecount,mask,bitcount,addBase; + u8 b; + + source = cpu->R[0]; + dest = cpu->R[1]; + header = cpu->R[2]; + + len = _MMU_read16(header); + bits = _MMU_read08(header+2); + switch (bits) + { case 1: case 2: case 4: case 8: - break; - default: return (0); // error - } - dataSize = _MMU_read08(header+3); - switch (dataSize) - { + break; + default: + return (0); // error + } + dataSize = _MMU_read08(header+3); + switch (dataSize) + { case 1: case 2: case 4: case 8: case 16: case 32: - break; - default: return (0); // error - } - - revbits = 8 - bits; - // u32 value = 0; - base = _MMU_read08(header+4); - addBase = (base & 0x80000000) ? 1 : 0; - base &= 0x7fffffff; - - //INFO("SWI10: bitunpack src 0x%08X dst 0x%08X hdr 0x%08X (src len %05i src bits %02i dst bits %02i)\n\n", source, dest, header, len, bits, dataSize); + break; + default: + return (0); // error + } - data = 0; - bitwritecount = 0; - while(1) { - len -= 1; - if(len < 0) - break; - mask = 0xff >> revbits; - b = _MMU_read08(source); - source++; - bitcount = 0; - while(1) { - if(bitcount >= 8) - break; - d = b & mask; - temp = d >> bitcount; - if(!temp && addBase) { - temp += base; - } - data |= temp << bitwritecount; - bitwritecount += dataSize; - if(bitwritecount >= 32) { - _MMU_write08(dest, data); - dest += 4; - data = 0; - bitwritecount = 0; - } - mask <<= bits; - bitcount += bits; - } - } - return 1; + revbits = 8 - bits; + base = _MMU_read32(header+4); + addBase = (base & 0x80000000) ? 1 : 0; + base &= 0x7fffffff; + + //INFO("SWI10: bitunpack src 0x%08X dst 0x%08X hdr 0x%08X (src len %05i src bits %02i dst bits %02i)\n\n", source, dest, header, len, bits, dataSize); + + data = 0; + bitwritecount = 0; + while(1) { + len -= 1; + if(len < 0) + break; + mask = 0xff >> revbits; + b = _MMU_read08(source); + source++; + bitcount = 0; + while(1) { + if(bitcount >= 8) + break; + temp = b & mask; + if(temp) + temp += base; + else if(addBase) + temp += base; + + //you might think you should do this. but you would be wrong! + //this is meant for palette adjusting things, i.e. 16col data to 256col data in colors 240..255. In that case theres no modulo normally. + //Users expecting modulo have done something wrong anyway. + //temp &= (1<= 32) { + _MMU_write32(dest, data); + dest += 4; + data = 0; + bitwritecount = 0; + } + bitcount += bits; + b >>= bits; + } + } + return 1; } -TEMPLATE static u32 Diff8bitUnFilterWram() +TEMPLATE static u32 Diff8bitUnFilterWram() //this one might be different on arm7 and needs checking { - u32 source,dest,header; - u8 data,diff; - int len; + //INFO("swi Diff8bitUnFilterWram\n"); - source = cpu->R[0]; - dest = cpu->R[1]; + u32 source = cpu->R[0]; + u32 dest = cpu->R[1]; - header = _MMU_read08(source); - source += 4; + CompressionHeader header(_MMU_read32(source)); + source += 4; - //INFO("swi diff8bitunfilterwram\n"); + if(header.DataSize() != 1) printf("WARNING: incorrect header passed to Diff8bitUnFilterWram\n"); + if(header.Type() != 8) printf("WARNING: incorrect header passed to Diff8bitUnFilterWram\n"); + u32 len = header.DecompressedSize(); - if(((source & 0xe000000) == 0) || - (( (source + ((header >> 8) & 0x1fffff)) & 0xe000000) == 0)) - return 0; + u8 data = _MMU_read08(source++); + _MMU_write08(dest++, data); + len--; - len = header >> 8; - - data = _MMU_read08(source++); - _MMU_write08(dest++, data); - len--; - - while(len > 0) { - diff = _MMU_read08(source++); - data += diff; - _MMU_write08(dest++, data); - len--; - } - return 1; + while(len > 0) { + u8 diff = _MMU_read08(source++); + data += diff; + _MMU_write08(dest++, data); + len--; + } + return 1; } TEMPLATE static u32 Diff16bitUnFilter() { - u32 source,dest,header; - u16 data; - int len; - - source = cpu->R[0]; - dest = cpu->R[1]; + //INFO("swi Diff16bitUnFilter\n"); - //INFO("swi diff16bitunfilter\n"); + u32 source = cpu->R[0]; + u32 dest = cpu->R[1]; - header = _MMU_read08(source); - source += 4; + CompressionHeader header(_MMU_read32(source)); + source += 4; - if(((source & 0xe000000) == 0) || - ((source + ((header >> 8) & 0x1fffff)) & 0xe000000) == 0) - return 0; - - len = header >> 8; - - data = _MMU_read16(source); - source += 2; - _MMU_write16(dest, data); - dest += 2; - len -= 2; - - while(len >= 2) { - u16 diff = _MMU_read16(source); - source += 2; - data += diff; - _MMU_write16(dest, data); - dest += 2; - len -= 2; - } - return 1; + if(header.DataSize() != 2) printf("WARNING: incorrect header passed to Diff16bitUnFilter\n"); + if(header.Type() != 8) printf("WARNING: incorrect header passed to Diff16bitUnFilter\n"); + u32 len = header.DecompressedSize(); + + u16 data = _MMU_read16(source); + source += 2; + _MMU_write16(dest, data); + dest += 2; + len -= 2; + + while(len >= 2) { + u16 diff = _MMU_read16(source); + source += 2; + data += diff; + _MMU_write16(dest, data); + dest += 2; + len -= 2; + } + return 1; } TEMPLATE static u32 bios_sqrt() @@ -966,12 +990,15 @@ return 1; } -TEMPLATE static u32 setHaltCR() +//ARM9 only +TEMPLATE static u32 CustomPost() { - _MMU_write08(0x4000300+cpu->proc_ID, cpu->R[0]); - return 1; + //just write provided value to REG_POSTFLG + _MMU_write08(REG_POSTFLG, cpu->R[0]); + return 1; } +//ARM7 only TEMPLATE static u32 getSineTab() { //ds returns garbage according to gbatek, but we must protect ourselves @@ -986,6 +1013,7 @@ return 1; } +//ARM7 only TEMPLATE static u32 getPitchTab() { //ds returns garbage according to gbatek, but we must protect ourselves @@ -999,6 +1027,7 @@ return 1; } +//ARM7 only TEMPLATE static u32 getVolumeTab() { //ds returns garbage according to gbatek, but we must protect ourselves @@ -1007,47 +1036,46 @@ printf("Invalid SWI getVolumeTab: %08X\n",cpu->R[0]); return 1; } + cpu->R[0] = getvoltbl[cpu->R[0]]; + return 1; +} - cpu->R[0] = getvoltbl[cpu->R[0]]; - return 1; -} +TEMPLATE static u32 getCRC16_old_and_broken(u32 crc, u32 datap, u32 size) +{ + unsigned int i,j; + + const u16 val[] = { 0xC0C1,0xC181,0xC301,0xC601,0xCC01,0xD801,0xF001,0xA001 }; + for(i = 0; i < size; i++) + { + crc = crc ^ _MMU_read08(datap + i); + + for(j = 0; j < 8; j++) { + int do_bit = 0; + if ( crc & 0x1) + do_bit = 1; -//TEMPLATE static u32 getCRC16_old(u32 crc, u32 datap, u32 size) -//{ -// unsigned int i,j; -// -// const u16 val[] = { 0xC0C1,0xC181,0xC301,0xC601,0xCC01,0xD801,0xF001,0xA001 }; -// for(i = 0; i < size; i++) -// { -// crc = crc ^ _MMU_read08(datap + i); -// -// for(j = 0; j < 8; j++) { -// int do_bit = 0; -// -// if ( crc & 0x1) -// do_bit = 1; -// -// crc = crc >> 1; -// -// if ( do_bit) { -// crc = crc ^ (val[j] << (7-j)); -// } -// } -// } -// return crc; -//} + crc = crc >> 1; + + if ( do_bit) { + crc = crc ^ (val[j] << (7-j)); + } + } + } + return crc; +} TEMPLATE static u32 getCRC16() { - //gbatek is wrong. - //dawn of sorrow uses this to checksum its save data; //if this implementation is wrong, then it won't match what the real bios returns, - //and savefiles created with a bios will be invalid when loaded with non-bios (and vice-versa) - - //u32 old = getCRC16_old(cpu->R[0],cpu->R[1],cpu->R[2]); + //and savefiles created with a bios will be invalid when loaded with non-bios (and vice-versa). + //Once upon a time, desmume was doing this wrongly; this was due to its mis-use of high bits of the input CRC. + //Additionally, that implementation was not handling odd sizes and addresses correctly (but this was discovered independently) + //We have confirmed that the crc16 works the same on the arm9 and arm7. + //The following call is left here so we can A/B test with the old version. Glad I left it, because we keep coming back to this code. + //u32 old = getCRC16_old_and_broken(cpu->R[0],cpu->R[1],cpu->R[2]); u16 crc = (u16)cpu->R[0]; u32 datap = cpu->R[1]; @@ -1073,8 +1101,11 @@ } cpu->R[0] = crc; - // R3 contains the last processed halfword + + //R3 contains the last processed halfword + //this is significant -- why? Can we get a test case? Supposedly there is one.. cpu->R[3] = currVal; + return 1; } @@ -1088,16 +1119,18 @@ return 1; } +//ARM7 only TEMPLATE static u32 SoundBias() { - u32 curBias = _MMU_read32(0x04000504); - u32 newBias = (curBias == 0) ? 0x000:0x200; - u32 delay = (newBias > curBias) ? (newBias-curBias) : (curBias-newBias); + u32 curBias = _MMU_read32(0x04000504); + u32 newBias = (curBias == 0) ? 0x000:0x200; + u32 delay = (newBias > curBias) ? (newBias-curBias) : (curBias-newBias); - _MMU_write32(0x04000504, newBias); - return cpu->R[1] * delay; + _MMU_write32(0x04000504, newBias); + return cpu->R[1] * delay; } +//ARM7 only TEMPLATE static u32 getBootProcs() { cpu->R[0] = 0x00000A2E; @@ -1106,73 +1139,153 @@ return 1; } +TEMPLATE static u32 SoftReset() +{ + //not emulated yet + return 1; +} + + u32 (* ARM_swi_tab[2][32])()={ { - bios_nop, // 0x00 - bios_nop, // 0x01 - bios_nop, // 0x02 - WaitByLoop, // 0x03 - intrWaitARM, // 0x04 - waitVBlankARM, // 0x05 - wait4IRQ, // 0x06 - bios_nop, // 0x07 - bios_nop, // 0x08 - divide, // 0x09 - bios_nop, // 0x0A - copy, // 0x0B - fastCopy, // 0x0C - bios_sqrt, // 0x0D - getCRC16, // 0x0E - isDebugger, // 0x0F - BitUnPack, // 0x10 - LZ77UnCompWram, // 0x11 - LZ77UnCompVram, // 0x12 - UnCompHuffman, // 0x13 - RLUnCompWram, // 0x14 - RLUnCompVram, // 0x15 - Diff8bitUnFilterWram, // 0x16 - bios_nop, // 0x17 - Diff16bitUnFilter, // 0x18 - bios_nop, // 0x19 - bios_nop, // 0x1A - bios_nop, // 0x1B - bios_nop, // 0x1C - bios_nop, // 0x1D - bios_nop, // 0x1E - setHaltCR, // 0x1F + SoftReset, // 0x00 + bios_nop, // 0x01 + bios_nop, // 0x02 + WaitByLoop, // 0x03 + intrWaitARM, // 0x04 + waitVBlankARM, // 0x05 + wait4IRQ, // 0x06 + bios_nop, // 0x07 + bios_nop, // 0x08 + divide, // 0x09 + bios_nop, // 0x0A + copy, // 0x0B + fastCopy, // 0x0C + bios_sqrt, // 0x0D + getCRC16, // 0x0E + isDebugger, // 0x0F + BitUnPack, // 0x10 + LZ77UnCompWram, // 0x11 + LZ77UnCompVram, // 0x12 + UnCompHuffman, // 0x13 + RLUnCompWram, // 0x14 + RLUnCompVram, // 0x15 + Diff8bitUnFilterWram, // 0x16 + bios_nop, // 0x17 + Diff16bitUnFilter, // 0x18 + bios_nop, // 0x19 + bios_nop, // 0x1A + bios_nop, // 0x1B + bios_nop, // 0x1C + bios_nop, // 0x1D + bios_nop, // 0x1E + CustomPost, // 0x1F + }, + { + SoftReset, // 0x00 + bios_nop, // 0x01 + bios_nop, // 0x02 + WaitByLoop, // 0x03 + intrWaitARM, // 0x04 + waitVBlankARM, // 0x05 + wait4IRQ, // 0x06 + sleep, // 0x07 + SoundBias, // 0x08 + divide, // 0x09 + bios_nop, // 0x0A + copy, // 0x0B + fastCopy, // 0x0C + bios_sqrt, // 0x0D + getCRC16, // 0x0E + isDebugger, // 0x0F + BitUnPack, // 0x10 + LZ77UnCompWram, // 0x11 + LZ77UnCompVram, // 0x12 + UnCompHuffman, // 0x13 + RLUnCompWram, // 0x14 + RLUnCompVram, // 0x15 + bios_nop, // 0x16 + bios_nop, // 0x17 + bios_nop, // 0x18 + bios_nop, // 0x19 + getSineTab, // 0x1A + getPitchTab, // 0x1B + getVolumeTab, // 0x1C + getBootProcs, // 0x1D + bios_nop, // 0x1E + CustomHalt, // 0x1F + } +}; + +#define BIOS_NOP "bios_nop" +const char* ARM_swi_names[2][32] = { + { + "SoftReset", // 0x00 + BIOS_NOP, // 0x01 + BIOS_NOP, // 0x02 + "WaitByLoop", // 0x03 + "IntrWait", // 0x04 + "VBlankIntrWait", // 0x05 + "Halt", // 0x06 + BIOS_NOP, // 0x07 + BIOS_NOP, // 0x08 + "Div", // 0x09 + BIOS_NOP, // 0x0A + "CpuSet", // 0x0B + "CpuFastSet", // 0x0C + "Sqrt", // 0x0D + "GetCRC16", // 0x0E + "IsDebugger", // 0x0F + "BitUnPack", // 0x10 + "LZ77UnCompWram", // 0x11 + "LZ77UnCompVram", // 0x12 + "HuffUnComp", // 0x13 + "RLUnCompWram", // 0x14 + "RLUnCompVram", // 0x15 + "Diff8bitUnFilterWram", // 0x16 + BIOS_NOP, // 0x17 + "Diff16bitUnFilter", // 0x18 + BIOS_NOP, // 0x19 + BIOS_NOP, // 0x1A + BIOS_NOP, // 0x1B + BIOS_NOP, // 0x1C + BIOS_NOP, // 0x1D + BIOS_NOP, // 0x1E + "CustomPost", // 0x1F }, { - bios_nop, // 0x00 - bios_nop, // 0x01 - bios_nop, // 0x02 - WaitByLoop, // 0x03 - intrWaitARM, // 0x04 - waitVBlankARM, // 0x05 - wait4IRQ, // 0x06 - sleep, // 0x07 - SoundBias, // 0x08 - divide, // 0x09 - bios_nop, // 0x0A - copy, // 0x0B - fastCopy, // 0x0C - bios_sqrt, // 0x0D - getCRC16, // 0x0E - isDebugger, // 0x0F - BitUnPack, // 0x10 - LZ77UnCompWram, // 0x11 - LZ77UnCompVram, // 0x12 - UnCompHuffman, // 0x13 - RLUnCompWram, // 0x14 - RLUnCompVram, // 0x15 - Diff8bitUnFilterWram, // 0x16 - bios_nop, // 0x17 - bios_nop, // 0x18 - bios_nop, // 0x19 - getSineTab, // 0x1A - getPitchTab, // 0x1B - getVolumeTab, // 0x1C - getBootProcs, // 0x1D - bios_nop, // 0x1E - setHaltCR, // 0x1F + "SoftReset", // 0x00 + BIOS_NOP, // 0x01 + BIOS_NOP, // 0x02 + "WaitByLoop", // 0x03 + "IntrWait", // 0x04 + "VBlankIntrWait", // 0x05 + "Halt", // 0x06 + "Sleep", // 0x07 + "SoundBias", // 0x08 + "Div", // 0x09 + BIOS_NOP, // 0x0A + "CpuSet", // 0x0B + "CpuFastSet", // 0x0C + "Sqrt", // 0x0D + "GetCRC16", // 0x0E + "IsDebugger", // 0x0F + "BitUnPack", // 0x10 + "LZ77UnCompWram", // 0x11 + "LZ77UnCompVram", // 0x12 + "HuffUnComp", // 0x13 + "RLUnCompWram", // 0x14 + "RLUnCompVram", // 0x15 + BIOS_NOP, // 0x16 + BIOS_NOP, // 0x17 + BIOS_NOP, // 0x18 + BIOS_NOP, // 0x19 + "GetSineTable", // 0x1A + "GetPitchTable", // 0x1B + "GetVolumeTable", // 0x1C + "GetBootProcs", // 0x1D + BIOS_NOP, // 0x1E + "CustomHalt", // 0x1F } }; +#undef BIOS_NOP diff -Nru desmume-0.9.9/src/bios.h desmume-0.9.10/src/bios.h --- desmume-0.9.9/src/bios.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/bios.h 2013-11-28 00:37:18.797021001 +0000 @@ -21,7 +21,8 @@ #include "armcpu.h" -extern u32 (* ARM_swi_tab[2][32])();; +extern u32 (* ARM_swi_tab[2][32])(); +extern const char* ARM_swi_names[2][32]; #endif diff -Nru desmume-0.9.9/src/cheatSystem.cpp desmume-0.9.10/src/cheatSystem.cpp --- desmume-0.9.9/src/cheatSystem.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/cheatSystem.cpp 2013-11-28 00:37:18.805021131 +0000 @@ -23,7 +23,7 @@ #include "debug.h" #include "utils/xstring.h" -#ifndef _MSC_VER +#ifndef _MSC_VER #include #endif @@ -399,7 +399,7 @@ _MMU_write08(hi+t, tmp); } break; - default: PROGINFO("AR: ERROR uknown command 0x%2X at %08X:%08X\n", type, hi, lo); break; + default: PROGINFO("AR: ERROR unknown command 0x%2X at %08X:%08X\n", type, hi, lo); break; } } } @@ -536,6 +536,22 @@ return list.size(); } +size_t CHEATS::getActiveCount() +{ + size_t activeCheatCount = 0; + const size_t cheatListCount = this->getSize(); + + for (size_t i = 0; i < cheatListCount; i++) + { + if (list[i].enabled) + { + activeCheatCount++; + } + } + + return activeCheatCount; +} + void CHEATS::setDescription(const char *description, u32 pos) { strncpy(list[pos].description, description, sizeof(list[pos].description)); @@ -653,7 +669,7 @@ continue; } trim(buf); - if ((strlen(buf) == 0) || (buf[0] == ';')) continue; + if ((buf[0] == 0) || (buf[0] == ';')) continue; if(!strncasecmp(buf,"name=",5)) continue; if(!strncasecmp(buf,"serial=",7)) continue; diff -Nru desmume-0.9.9/src/cheatSystem.h desmume-0.9.10/src/cheatSystem.h --- desmume-0.9.9/src/cheatSystem.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/cheatSystem.h 2013-11-28 00:37:18.797021001 +0000 @@ -82,6 +82,7 @@ BOOL get(CHEATS_LIST *cheat, u32 pos); CHEATS_LIST* getItemByIndex(const u32 pos); u32 getSize(); + size_t getActiveCount(); void setDescription(const char *description, u32 pos); BOOL save(); BOOL load(); diff -Nru desmume-0.9.9/src/cli/doc/Makefile.in desmume-0.9.10/src/cli/doc/Makefile.in --- desmume-0.9.9/src/cli/doc/Makefile.in 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/src/cli/doc/Makefile.in 2013-11-28 00:43:26.262900045 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,16 +78,27 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/cli/doc -DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -99,6 +137,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(dist_man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -133,6 +172,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -206,16 +246,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -353,27 +383,14 @@ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -510,16 +527,17 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man1 install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ - uninstall-am uninstall-man uninstall-man1 +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-man \ + uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/src/cli/main.cpp desmume-0.9.10/src/cli/main.cpp --- desmume-0.9.9/src/cli/main.cpp 2013-05-01 18:48:58.000000000 +0000 +++ desmume-0.9.10/src/cli/main.cpp 2013-11-28 00:37:28.269173954 +0000 @@ -56,7 +56,7 @@ #include "GPU_osd.h" #include "desmume_config.h" #include "commandline.h" -#include "addons.h" +#include "slot2.h" #ifdef GDB_STUB #include "gdbstub.h" #endif @@ -518,6 +518,13 @@ /* the firmware settings */ struct NDS_fw_config_data fw_config; +#ifdef GDB_STUB + NDS_Init( arm9_memio, &arm9_ctrl_iface, + arm7_memio, &arm7_ctrl_iface); +#else + NDS_Init(); +#endif + /* default the firmware settings, they may get changed later */ NDS_FillDefaultFirmwareConfigData( &fw_config); @@ -532,28 +539,52 @@ fw_config.language = my_config.firmware_language; } - /* addons */ - my_config.process_addonCommands(); - addon_type = NDS_ADDON_NONE; - if (my_config.is_cflash_configured) - addon_type = NDS_ADDON_CFLASH; - - if(my_config.gbaslot_rom != "") { - addon_type = NDS_ADDON_GBAGAME; - strncpy(GBAgameName, my_config.gbaslot_rom.c_str(), MAX_PATH); - } - - switch (addon_type) { - case NDS_ADDON_CFLASH: - case NDS_ADDON_RUMBLEPAK: - case NDS_ADDON_NONE: - case NDS_ADDON_GBAGAME: - break; - default: - addon_type = NDS_ADDON_NONE; - break; - } - addonsChangePak (addon_type); + my_config.process_addonCommands(); + + int slot2_device_type = NDS_SLOT2_AUTO; + + if (my_config.is_cflash_configured) + slot2_device_type = NDS_SLOT2_CFLASH; + + if(my_config.gbaslot_rom != "") { + strncpy(GBAgameName, my_config.gbaslot_rom.c_str(), MAX_PATH); + // Check if the file exists and can be opened + FILE * test = fopen(GBAgameName, "rb"); + if (test) { + slot2_device_type = NDS_SLOT2_GBACART; + fclose(test); + } + } + + switch (slot2_device_type) + { + case NDS_SLOT2_NONE: + break; + case NDS_SLOT2_AUTO: + break; + case NDS_SLOT2_CFLASH: + break; + case NDS_SLOT2_RUMBLEPAK: + break; + case NDS_SLOT2_GBACART: + break; + case NDS_SLOT2_GUITARGRIP: + break; + case NDS_SLOT2_EXPMEMORY: + break; + case NDS_SLOT2_EASYPIANO: + break; + case NDS_SLOT2_PADDLE: + break; + case NDS_SLOT2_PASSME: + break; + default: + slot2_device_type = NDS_SLOT2_NONE; + break; + } + + slot2_Init(); + slot2_Change((NDS_SLOT2_TYPE)slot2_device_type); if ( !g_thread_supported()) { g_thread_init( NULL); @@ -586,13 +617,6 @@ } #endif -#ifdef GDB_STUB - NDS_Init( arm9_memio, &arm9_ctrl_iface, - arm7_memio, &arm7_ctrl_iface); -#else - NDS_Init(); -#endif - /* Create the dummy firmware */ NDS_CreateDummyFirmware( &fw_config); diff -Nru desmume-0.9.9/src/cli/Makefile.in desmume-0.9.10/src/cli/Makefile.in --- desmume-0.9.9/src/cli/Makefile.in 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/src/cli/Makefile.in 2013-11-28 00:43:26.222899413 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,14 +78,13 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/src/desmume.mk +DIST_COMMON = $(top_srcdir)/src/desmume.mk $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp bin_PROGRAMS = desmume-cli$(EXEEXT) @HAVE_GDB_STUB_TRUE@am__append_1 = ../gdbstub/libgdbstub.a subdir = src/cli ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -66,36 +92,66 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) -am_desmume_cli_OBJECTS = main.$(OBJEXT) sndsdl.$(OBJEXT) \ - ctrlssdl.$(OBJEXT) driver.$(OBJEXT) +am__dirstamp = $(am__leading_dot)dirstamp +am_desmume_cli_OBJECTS = main.$(OBJEXT) ../sndsdl.$(OBJEXT) \ + ../ctrlssdl.$(OBJEXT) ../driver.$(OBJEXT) desmume_cli_OBJECTS = $(am_desmume_cli_OBJECTS) am__DEPENDENCIES_1 = desmume_cli_DEPENDENCIES = ../libdesmume.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(desmume_cli_SOURCES) DIST_SOURCES = $(desmume_cli_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -103,9 +159,29 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -168,6 +244,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -241,16 +318,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -365,10 +432,11 @@ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -389,101 +457,76 @@ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +../$(am__dirstamp): + @$(MKDIR_P) .. + @: > ../$(am__dirstamp) +../$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../$(DEPDIR) + @: > ../$(DEPDIR)/$(am__dirstamp) +../sndsdl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../ctrlssdl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../driver.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) + desmume-cli$(EXEEXT): $(desmume_cli_OBJECTS) $(desmume_cli_DEPENDENCIES) $(EXTRA_desmume_cli_DEPENDENCIES) @rm -f desmume-cli$(EXEEXT) - $(CXXLINK) $(desmume_cli_OBJECTS) $(desmume_cli_LDADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(desmume_cli_OBJECTS) $(desmume_cli_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f ../*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlssdl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/ctrlssdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/driver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/sndsdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndsdl.Po@am__quote@ .cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -sndsdl.o: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.o -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp - -sndsdl.obj: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.obj -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` - -ctrlssdl.o: ../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ctrlssdl.o -MD -MP -MF $(DEPDIR)/ctrlssdl.Tpo -c -o ctrlssdl.o `test -f '../ctrlssdl.cpp' || echo '$(srcdir)/'`../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ctrlssdl.Tpo $(DEPDIR)/ctrlssdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../ctrlssdl.cpp' object='ctrlssdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ctrlssdl.o `test -f '../ctrlssdl.cpp' || echo '$(srcdir)/'`../ctrlssdl.cpp - -ctrlssdl.obj: ../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ctrlssdl.obj -MD -MP -MF $(DEPDIR)/ctrlssdl.Tpo -c -o ctrlssdl.obj `if test -f '../ctrlssdl.cpp'; then $(CYGPATH_W) '../ctrlssdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../ctrlssdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ctrlssdl.Tpo $(DEPDIR)/ctrlssdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../ctrlssdl.cpp' object='ctrlssdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ctrlssdl.obj `if test -f '../ctrlssdl.cpp'; then $(CYGPATH_W) '../ctrlssdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../ctrlssdl.cpp'; fi` - -driver.o: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.o -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.o' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp - -driver.obj: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.obj -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -498,57 +541,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -564,12 +562,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -581,15 +574,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -598,6 +587,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -691,6 +695,8 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../$(DEPDIR)/$(am__dirstamp) + -rm -f ../$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -700,7 +706,7 @@ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ../$(DEPDIR) ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -746,7 +752,7 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ../$(DEPDIR) ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -764,23 +770,21 @@ uninstall-am: uninstall-binPROGRAMS -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-binPROGRAMS \ - clean-generic ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-binPROGRAMS clean-generic cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/src/cocoa/cocoa_cheat.h desmume-0.9.10/src/cocoa/cocoa_cheat.h --- desmume-0.9.9/src/cocoa/cocoa_cheat.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_cheat.h 2013-11-28 00:37:19.701035600 +0000 @@ -111,6 +111,7 @@ - (void) remove:(CocoaDSCheatItem *)cheatItem; - (BOOL) update:(CocoaDSCheatItem *)cheatItem; - (BOOL) save; +- (NSUInteger) activeCount; - (NSMutableArray *) cheatListFromDatabase:(NSURL *)fileURL errorCode:(NSInteger *)error; - (void) applyInternalCheat:(CocoaDSCheatItem *)cheatItem; diff -Nru desmume-0.9.9/src/cocoa/cocoa_cheat.mm desmume-0.9.10/src/cocoa/cocoa_cheat.mm --- desmume-0.9.9/src/cocoa/cocoa_cheat.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_cheat.mm 2013-11-28 00:37:19.701035600 +0000 @@ -424,7 +424,7 @@ - (NSString *) memAddressString { - return [NSString stringWithFormat:@"0x%08X", self.memAddress]; + return [NSString stringWithFormat:@"0x%08X", (unsigned int)self.memAddress]; } - (void) setMemAddressString:(NSString *)addressString @@ -446,7 +446,7 @@ - (NSString *) memAddressSixDigitString { - return [NSString stringWithFormat:@"%06X", (self.memAddress & 0x00FFFFFF)]; + return [NSString stringWithFormat:@"%06X", (unsigned int)(self.memAddress & 0x00FFFFFF)]; } - (void) setMemAddressSixDigitString:(NSString *)addressString @@ -888,6 +888,15 @@ return result; } +- (NSUInteger) activeCount +{ + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + NSUInteger activeCheatsCount = self.listData->getActiveCount(); + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + return activeCheatsCount; +} + - (NSMutableArray *) cheatListFromDatabase:(NSURL *)fileURL errorCode:(NSInteger *)error { NSMutableArray *newDBList = nil; diff -Nru desmume-0.9.9/src/cocoa/cocoa_core.h desmume-0.9.10/src/cocoa/cocoa_core.h --- desmume-0.9.9/src/cocoa/cocoa_core.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_core.h 2013-11-28 00:37:19.697035535 +0000 @@ -34,7 +34,7 @@ void *cdsController; int state; bool isFrameSkipEnabled; - unsigned int frameCount; + size_t frameCount; unsigned int framesToSkip; uint64_t timeBudgetMachAbsTime; bool exitThread; @@ -138,6 +138,10 @@ - (void) removeOutput:(CocoaDSOutput *)theOutput; - (void) removeAllOutputs; +- (NSString *) cpuEmulationEngineString; +- (NSString *) slot1DeviceTypeString; +- (NSString *) slot2DeviceTypeString; + @end static void* RunCoreThread(void *arg); diff -Nru desmume-0.9.9/src/cocoa/cocoa_core.mm desmume-0.9.10/src/cocoa/cocoa_core.mm --- desmume-0.9.9/src/cocoa/cocoa_core.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_core.mm 2013-11-28 00:37:19.697035535 +0000 @@ -28,9 +28,9 @@ #include #include -#include "../addons.h" #include "../NDSSystem.h" #include "../slot1.h" +#include "../slot2.h" #undef BOOL @@ -99,7 +99,7 @@ emuFlagDebugConsole = NO; emuFlagEmulateEnsata = NO; - slot1DeviceType = NDS_SLOT1_RETAIL; + slot1DeviceType = NDS_SLOT1_RETAIL_AUTO; slot1StatusText = NSSTRING_STATUS_EMULATION_NOT_RUNNING; spinlockMasterExecute = OS_SPINLOCK_INIT; @@ -187,7 +187,7 @@ return isCoreStarted; } - addonsChangePak(NDS_ADDON_NONE); + slot2_Change(NDS_SLOT2_NONE); result = NDS_Init(); if (result == -1) @@ -675,9 +675,9 @@ pthread_mutex_lock(&threadParam.mutexThreadExecute); _slot1R4Path = (r4Path != nil) ? std::string([r4Path cStringUsingEncoding:NSUTF8StringEncoding]) : ""; - slot1SetFatDir(_slot1R4Path); + slot1_SetFatDir(_slot1R4Path); - BOOL result = slot1Change((NDS_SLOT1_TYPE)deviceTypeID); + BOOL result = slot1_Change((NDS_SLOT1_TYPE)deviceTypeID); pthread_mutex_unlock(&threadParam.mutexThreadExecute); @@ -687,7 +687,7 @@ [self setSlot1StatusText:NSSTRING_STATUS_SLOT1_NO_DEVICE]; break; - case NDS_SLOT1_RETAIL: + case NDS_SLOT1_RETAIL_AUTO: [self setSlot1StatusText:NSSTRING_STATUS_SLOT1_RETAIL_INSERTED]; break; @@ -699,6 +699,10 @@ [self setSlot1StatusText:NSSTRING_STATUS_SLOT1_R4_INSERTED]; break; + case NDS_SLOT1_RETAIL_MCROM: + [self setSlot1StatusText:NSSTRING_STATUS_SLOT1_STANDARD_INSERTED]; + break; + default: [self setSlot1StatusText:NSSTRING_STATUS_SLOT1_UNKNOWN_STATE]; break; @@ -755,6 +759,67 @@ [CocoaDSCore shutdownCore]; } +- (NSString *) cpuEmulationEngineString +{ + NSString *theString = @"Uninitialized"; + + switch ([self cpuEmulationEngine]) + { + case CPU_EMULATION_ENGINE_INTERPRETER: + theString = @"Interpreter"; + break; + + case CPU_EMULATION_ENGINE_DYNAMIC_RECOMPILER: + theString = @"Dynamic Recompiler"; + break; + + default: + break; + } + + return theString; +} + +- (NSString *) slot1DeviceTypeString +{ + NSString *theString = @"Uninitialized"; + + pthread_mutex_lock(&threadParam.mutexThreadExecute); + + if(slot1_device == NULL) + { + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + return theString; + } + + const Slot1Info *info = slot1_device->info(); + theString = [NSString stringWithCString:info->name() encoding:NSUTF8StringEncoding]; + + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + return theString; +} + +- (NSString *) slot2DeviceTypeString +{ + NSString *theString = @"Uninitialized"; + + pthread_mutex_lock(&threadParam.mutexThreadExecute); + + if(slot2_device == NULL) + { + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + return theString; + } + + const Slot2Info *info = slot2_device->info(); + theString = [NSString stringWithCString:info->name() encoding:NSUTF8StringEncoding]; + + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + return theString; +} + @end static void* RunCoreThread(void *arg) diff -Nru desmume-0.9.9/src/cocoa/cocoa_file.mm desmume-0.9.10/src/cocoa/cocoa_file.mm --- desmume-0.9.9/src/cocoa/cocoa_file.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_file.mm 2013-11-28 00:37:19.693035471 +0000 @@ -22,6 +22,7 @@ #import "cocoa_util.h" #include "../NDSSystem.h" +#include "../MMU.h" #include "../path.h" #include "../saves.h" #undef BOOL @@ -180,7 +181,7 @@ } const char *romPath = [[romURL path] cStringUsingEncoding:NSUTF8StringEncoding]; - NSInteger resultCode = NDS_LoadROM(romPath, nil); + NSInteger resultCode = NDS_LoadROM(romPath, NULL, NULL); if (resultCode > 0) { result = YES; @@ -194,7 +195,7 @@ BOOL result = NO; const char *romSavePath = [[romSaveURL path] cStringUsingEncoding:NSUTF8StringEncoding]; - NSInteger resultCode = NDS_ImportSave(romSavePath); + NSInteger resultCode = MMU_new.backupDevice.importData(romSavePath, 0); if (resultCode == 0) { return result; @@ -224,7 +225,7 @@ case ROMSAVEFORMAT_NOGBA: { const char *destinationPath = [[[destinationURL path] stringByAppendingPathExtension:@FILE_EXT_ROM_SAVE_NOGBA] cStringUsingEncoding:NSUTF8StringEncoding]; - bool resultCode = NDS_ExportSave(destinationPath); + bool resultCode = MMU_new.backupDevice.exportData(destinationPath); if (resultCode) { result = YES; @@ -235,7 +236,7 @@ case ROMSAVEFORMAT_RAW: { const char *destinationPath = [[[destinationURL path] stringByAppendingPathExtension:@FILE_EXT_ROM_SAVE_RAW] cStringUsingEncoding:NSUTF8StringEncoding]; - bool resultCode = NDS_ExportSave(destinationPath); + bool resultCode = MMU_new.backupDevice.exportData(destinationPath); if (resultCode) { result = YES; @@ -678,6 +679,14 @@ portStr = @"Cocoa"; } + versionURL = [CocoaDSFile userAppSupportURL:nil version:@"0.9.9"]; + versionPath = [versionURL path]; + if (versionPath != nil && [[[filePath stringByDeletingLastPathComponent] stringByDeletingLastPathComponent] isEqualToString:versionPath]) + { + versionStr = @"0.9.9"; + portStr = @"Cocoa"; + } + fileVersion = [[versionStr stringByAppendingString:@" "] stringByAppendingString:portStr]; return fileVersion; diff -Nru desmume-0.9.9/src/cocoa/cocoa_globals.h desmume-0.9.10/src/cocoa/cocoa_globals.h --- desmume-0.9.9/src/cocoa/cocoa_globals.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_globals.h 2013-11-28 00:37:19.701035600 +0000 @@ -20,7 +20,7 @@ #define STRING_DESMUME_SHORT_DESCRIPTION "Nintendo DS Emulator" #define STRING_DESMUME_FORUM_SITE "http://forums.desmume.org/index.php" #define STRING_DESMUME_TECH_SUPPORT_SITE "http://forums.desmume.org/viewforum.php?id=4" -#define STRING_DESMUME_BUG_REPORT_SITE "http://sourceforge.net/tracker/?group_id=164579&atid=832291" +#define STRING_DESMUME_BUG_REPORT_SITE "http://sourceforge.net/p/desmume/bugs" // User Interface Localized Strings #define NSSTRING_TITLE_OPEN_ROM_PANEL NSLocalizedString(@"Open ROM", nil) @@ -46,6 +46,8 @@ #define NSSTRING_TITLE_ENABLE_CHEATS NSLocalizedString(@"Enable Cheats", nil) #define NSSTRING_TITLE_DISABLE_HUD NSLocalizedString(@"Disable HUD", nil) #define NSSTRING_TITLE_ENABLE_HUD NSLocalizedString(@"Enable HUD", nil) +#define NSSTRING_TITLE_EXIT_FULL_SCREEN NSLocalizedString(@"Exit Full Screen", nil) +#define NSSTRING_TITLE_ENTER_FULL_SCREEN NSLocalizedString(@"Enter Full Screen", nil) #define NSSTRING_TITLE_HIDE_STATUS_BAR NSLocalizedString(@"Hide Status Bar", nil) #define NSSTRING_TITLE_SHOW_STATUS_BAR NSLocalizedString(@"Show Status Bar", nil) #define NSSTRING_TITLE_HIDE_TOOLBAR NSLocalizedString(@"Hide Toolbar", nil) @@ -100,13 +102,16 @@ #define NSSTRING_STATUS_EMULATION_NOT_RUNNING NSLocalizedString(@"Emulation is not running.", nil) #define NSSTRING_STATUS_SLOT1_UNKNOWN_STATE NSLocalizedString(@"Unknown state.", nil) #define NSSTRING_STATUS_SLOT1_NO_DEVICE NSLocalizedString(@"No device inserted.", nil) -#define NSSTRING_STATUS_SLOT1_RETAIL_INSERTED NSLocalizedString(@"Retail cartridge inserted.", nil) -#define NSSTRING_STATUS_SLOT1_RETAIL_NAND_INSERTED NSLocalizedString(@"Retail cartridge (with NAND flash) inserted.", nil) +#define NSSTRING_STATUS_SLOT1_RETAIL_INSERTED NSLocalizedString(@"Retail cartridge inserted. (Auto-detect)", nil) +#define NSSTRING_STATUS_SLOT1_RETAIL_NAND_INSERTED NSLocalizedString(@"Retail cartridge w/ NAND flash inserted.", nil) #define NSSTRING_STATUS_SLOT1_R4_INSERTED NSLocalizedString(@"R4 cartridge interface inserted.", nil) +#define NSSTRING_STATUS_SLOT1_STANDARD_INSERTED NSLocalizedString(@"Standard retail cartridge inserted.", nil) + +#define NSSTRING_STATUS_AUTOLOAD_ROM_NAME_NONE NSLocalizedString(@"No ROM chosen.", nil) #define NSSTRING_DISPLAYMODE_MAIN NSLocalizedString(@"Main", nil) #define NSSTRING_DISPLAYMODE_TOUCH NSLocalizedString(@"Touch", nil) -#define NSSTRING_DISPLAYMODE_COMBO NSLocalizedString(@"Combo", nil) +#define NSSTRING_DISPLAYMODE_DUAL NSLocalizedString(@"Dual Screen", nil) #define NSSTRING_INPUTPREF_NUM_INPUTS_MAPPED NSLocalizedString(@"%ld Input Mapped", nil) #define NSSTRING_INPUTPREF_NUM_INPUTS_MAPPED_PLURAL NSLocalizedString(@"%ld Inputs Mapped", nil) @@ -226,7 +231,9 @@ enum { ROMAUTOLOADOPTION_LOAD_LAST = 0, - ROMAUTOLOADOPTION_LOAD_SELECTED = 1 + ROMAUTOLOADOPTION_LOAD_SELECTED = 1, + ROMAUTOLOADOPTION_LOAD_NONE = 10000, + ROMAUTOLOADOPTION_CHOOSE_ROM = 10001 }; enum @@ -419,7 +426,7 @@ { DS_DISPLAY_TYPE_MAIN = 0, DS_DISPLAY_TYPE_TOUCH, - DS_DISPLAY_TYPE_COMBO + DS_DISPLAY_TYPE_DUAL }; enum @@ -441,7 +448,7 @@ { DS_GPU_TYPE_MAIN = 0, DS_GPU_TYPE_SUB, - DS_GPU_TYPE_COMBO + DS_GPU_TYPE_MAIN_AND_SUB }; /* diff -Nru desmume-0.9.9/src/cocoa/cocoa_GPU.h desmume-0.9.10/src/cocoa/cocoa_GPU.h --- desmume-0.9.9/src/cocoa/cocoa_GPU.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_GPU.h 2013-11-28 00:37:19.701035600 +0000 @@ -60,6 +60,8 @@ - (void) hideGPUType:(const NSInteger)theGpuType; - (void) showGPUType:(const NSInteger)theGpuType; +- (NSString *) render3DRenderingEngineString; + @end #ifdef __cplusplus diff -Nru desmume-0.9.9/src/cocoa/cocoa_GPU.mm desmume-0.9.10/src/cocoa/cocoa_GPU.mm --- desmume-0.9.9/src/cocoa/cocoa_GPU.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_GPU.mm 2013-11-28 00:37:19.697035535 +0000 @@ -586,7 +586,7 @@ } break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: if (flags & (GPUSTATE_MAIN_GPU_MASK | GPUSTATE_SUB_GPU_MASK)) { result = YES; @@ -614,7 +614,7 @@ flags &= ~GPUSTATE_SUB_GPU_MASK; break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: flags &= ~GPUSTATE_MAIN_GPU_MASK; flags &= ~GPUSTATE_SUB_GPU_MASK; break; @@ -640,7 +640,7 @@ flags |= GPUSTATE_SUB_GPU_MASK; break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: flags |= GPUSTATE_MAIN_GPU_MASK; flags |= GPUSTATE_SUB_GPU_MASK; break; @@ -652,6 +652,26 @@ [self setGpuStateFlags:flags]; } +- (NSString *) render3DRenderingEngineString +{ + NSString *theString = @"Uninitialized"; + + pthread_mutex_lock(self.mutexProducer); + + if(gpu3D == NULL) + { + pthread_mutex_unlock(self.mutexProducer); + return theString; + } + + const char *theName = gpu3D->name; + theString = [NSString stringWithCString:theName encoding:NSUTF8StringEncoding]; + + pthread_mutex_unlock(self.mutexProducer); + + return theString; +} + @end void SetGPULayerState(const int gpuType, const unsigned int i, const bool state) @@ -674,7 +694,7 @@ theGpu = MainScreen.gpu; break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: SetGPULayerState(DS_GPU_TYPE_SUB, i, state); // Recursive call theGpu = MainScreen.gpu; break; @@ -722,7 +742,7 @@ } break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: if (SubScreen.gpu != NULL && MainScreen.gpu != NULL) { theState = (CommonSettings.dispLayers[SubScreen.gpu->core][i] && CommonSettings.dispLayers[MainScreen.gpu->core][i]); @@ -748,7 +768,7 @@ CommonSettings.showGpu.main = state; break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: CommonSettings.showGpu.sub = state; CommonSettings.showGpu.main = state; break; @@ -772,7 +792,7 @@ theState = CommonSettings.showGpu.main; break; - case DS_GPU_TYPE_COMBO: + case DS_GPU_TYPE_MAIN_AND_SUB: theState = (CommonSettings.showGpu.sub && CommonSettings.showGpu.main); break; diff -Nru desmume-0.9.9/src/cocoa/cocoa_input.mm desmume-0.9.10/src/cocoa/cocoa_input.mm --- desmume-0.9.9/src/cocoa/cocoa_input.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_input.mm 2013-11-28 00:37:26.229141015 +0000 @@ -36,7 +36,7 @@ return self; } - for (unsigned int i = 0; i < DSControllerState_StatesCount; i++) + for (size_t i = 0; i < DSControllerState_StatesCount; i++) { controllerState[i] = false; } @@ -95,7 +95,7 @@ const NSInteger theMicMode = micMode; static bool flushedStates[DSControllerState_StatesCount] = {0}; - for (unsigned int i = 0; i < DSControllerState_StatesCount; i++) + for (size_t i = 0; i < DSControllerState_StatesCount; i++) { flushedStates[i] = controllerState[i]; } diff -Nru desmume-0.9.9/src/cocoa/cocoa_output.h desmume-0.9.10/src/cocoa/cocoa_output.h --- desmume-0.9.9/src/cocoa/cocoa_output.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_output.h 2013-11-28 00:37:19.693035471 +0000 @@ -37,8 +37,8 @@ typedef struct { NSInteger displayModeID; - unsigned int width; // Measured in pixels - unsigned int height; // Measured in pixels + size_t width; // Measured in pixels + size_t height; // Measured in pixels } DisplaySrcPixelAttributes; @interface CocoaDSOutput : CocoaDSThread @@ -101,6 +101,9 @@ - (void) setMute:(BOOL)mute; - (NSInteger) filter; - (void) setFilter:(NSInteger)filter; +- (NSString *) audioOutputEngineString; +- (NSString *) spuInterpolationModeString; +- (NSString *) spuSyncMethodString; - (void) handleSetVolume:(NSData *)volumeData; - (void) handleSetAudioOutputEngine:(NSData *)methodIdData; - (void) handleSetSpuAdvancedLogic:(NSData *)stateData; diff -Nru desmume-0.9.9/src/cocoa/cocoa_output.mm desmume-0.9.10/src/cocoa/cocoa_output.mm --- desmume-0.9.9/src/cocoa/cocoa_output.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_output.mm 2013-11-28 00:37:26.229141015 +0000 @@ -264,10 +264,9 @@ [property setValue:[NSNumber numberWithInteger:modeID] forKey:@"spuSyncMode"]; OSSpinLockUnlock(&spinlockSpuSyncMode); - NSInteger methodID = [self spuSyncMethod]; - pthread_mutex_lock(self.mutexProducer); - SPU_SetSynchMode(modeID, methodID); + CommonSettings.SPU_sync_mode = (int)modeID; + SPU_SetSynchMode(CommonSettings.SPU_sync_mode, CommonSettings.SPU_sync_method); pthread_mutex_unlock(self.mutexProducer); } @@ -286,10 +285,9 @@ [property setValue:[NSNumber numberWithInteger:methodID] forKey:@"spuSyncMethod"]; OSSpinLockUnlock(&spinlockSpuSyncMethod); - NSInteger modeID = [self spuSyncMode]; - pthread_mutex_lock(self.mutexProducer); - SPU_SetSynchMode(modeID, methodID); + CommonSettings.SPU_sync_method = (int)methodID; + SPU_SetSynchMode(CommonSettings.SPU_sync_mode, CommonSettings.SPU_sync_method); pthread_mutex_unlock(self.mutexProducer); } @@ -331,6 +329,87 @@ [property setValue:[NSNumber numberWithInteger:filter] forKey:@"filter"]; } +- (NSString *) audioOutputEngineString +{ + NSString *theString = @"Uninitialized"; + + pthread_mutex_lock(self.mutexProducer); + + SoundInterface_struct *soundCore = SPU_SoundCore(); + if(soundCore == NULL) + { + pthread_mutex_unlock(self.mutexProducer); + return theString; + } + + const char *theName = soundCore->Name; + theString = [NSString stringWithCString:theName encoding:NSUTF8StringEncoding]; + + pthread_mutex_unlock(self.mutexProducer); + + return theString; +} + +- (NSString *) spuInterpolationModeString +{ + NSString *theString = @"Unknown"; + NSInteger theMode = [self spuInterpolationMode]; + + switch (theMode) + { + case SPUInterpolation_None: + theString = @"None"; + break; + + case SPUInterpolation_Linear: + theString = @"Linear"; + break; + + case SPUInterpolation_Cosine: + theString = @"Cosine"; + break; + + default: + break; + } + + return theString; +} + +- (NSString *) spuSyncMethodString +{ + NSString *theString = @"Unknown"; + NSInteger theMode = [self spuSyncMode]; + NSInteger theMethod = [self spuSyncMethod]; + + if (theMode == ESynchMode_DualSynchAsynch) + { + theString = @"Dual SPU Sync/Async"; + } + else + { + switch (theMethod) + { + case ESynchMethod_N: + theString = @"\"N\" Sync Method"; + break; + + case ESynchMethod_Z: + theString = @"\"Z\" Sync Method"; + break; + + case ESynchMethod_P: + theString = @"\"P\" Sync Method"; + break; + + default: + break; + } + } + + return theString; +} + - (void)handlePortMessage:(NSPortMessage*)portMessage { NSInteger message = (NSInteger)[portMessage msgid]; @@ -436,7 +515,7 @@ spinlockDisplayType = OS_SPINLOCK_INIT; delegate = nil; - displayMode = DS_DISPLAY_TYPE_COMBO; + displayMode = DS_DISPLAY_TYPE_DUAL; frameSize = NSMakeSize((CGFloat)GPU_DISPLAY_WIDTH, (CGFloat)GPU_DISPLAY_HEIGHT * 2); [property setValue:[NSNumber numberWithInteger:displayMode] forKey:@"displayMode"]; @@ -497,8 +576,8 @@ newDispString = NSSTRING_DISPLAYMODE_TOUCH; break; - case DS_DISPLAY_TYPE_COMBO: - newDispString = NSSTRING_DISPLAYMODE_COMBO; + case DS_DISPLAY_TYPE_DUAL: + newDispString = NSSTRING_DISPLAYMODE_DUAL; newFrameSize.height *= 2; break; @@ -551,12 +630,12 @@ { gpuData = [[NSData alloc] initWithBytes:(GPU_screen + GPU_SCREEN_SIZE_BYTES) length:GPU_SCREEN_SIZE_BYTES]; } - else if(displayModeID == DS_DISPLAY_TYPE_COMBO) + else if(displayModeID == DS_DISPLAY_TYPE_DUAL) { gpuData = [[NSData alloc] initWithBytes:GPU_screen length:GPU_SCREEN_SIZE_BYTES * 2]; } - DisplaySrcPixelAttributes attr = {displayModeID, (unsigned int)displayFrameSize.width, (unsigned int)displayFrameSize.height}; + DisplaySrcPixelAttributes attr = {displayModeID, (size_t)displayFrameSize.width, (size_t)displayFrameSize.height}; NSData *attributesData = [[NSData alloc] initWithBytes:&attr length:sizeof(DisplaySrcPixelAttributes)]; NSArray *messageComponents = [[NSArray alloc] initWithObjects:gpuData, attributesData, nil]; @@ -665,15 +744,9 @@ - (void) fillVideoFrameWithColor:(UInt16)colorValue { - NSData *gpuData = nil; - NSInteger displayModeID = [self displayMode]; - NSSize displayFrameSize = [self frameSize]; - size_t numberBytes = GPU_SCREEN_SIZE_BYTES * 2; - - if (displayModeID == DS_DISPLAY_TYPE_MAIN || displayModeID == DS_DISPLAY_TYPE_TOUCH) - { - numberBytes = GPU_SCREEN_SIZE_BYTES; - } + const NSInteger displayModeID = [self displayMode]; + const NSSize displayFrameSize = [self frameSize]; + const size_t numberBytes = (displayModeID == DS_DISPLAY_TYPE_DUAL) ? GPU_SCREEN_SIZE_BYTES * 2 : GPU_SCREEN_SIZE_BYTES; UInt16 *gpuBytes = (UInt16 *)malloc(numberBytes); if (gpuBytes == NULL) @@ -683,15 +756,16 @@ const UInt16 colorValuePattern[] = {colorValue, colorValue, colorValue, colorValue, colorValue, colorValue, colorValue, colorValue}; memset_pattern16(gpuBytes, colorValuePattern, numberBytes); - gpuData = [[[NSData alloc] initWithBytes:gpuBytes length:numberBytes] autorelease]; + NSData *gpuData = [[NSData alloc] initWithBytes:gpuBytes length:numberBytes]; free(gpuBytes); gpuBytes = nil; - DisplaySrcPixelAttributes attr = {displayModeID, (unsigned int)displayFrameSize.width, (unsigned int)displayFrameSize.height}; + DisplaySrcPixelAttributes attr = {displayModeID, (size_t)displayFrameSize.width, (size_t)displayFrameSize.height}; NSData *attributesData = [[[NSData alloc] initWithBytes:&attr length:sizeof(DisplaySrcPixelAttributes)] autorelease]; [self handleEmuFrameProcessed:gpuData attributes:attributesData]; + [gpuData release]; } - (NSImage *) image @@ -772,7 +846,7 @@ } videoDelegate = nil; - lastDisplayMode = DS_DISPLAY_TYPE_COMBO; + lastDisplayMode = DS_DISPLAY_TYPE_DUAL; spinlockVideoFilterType = OS_SPINLOCK_INIT; spinlockVFBuffers = OS_SPINLOCK_INIT; diff -Nru desmume-0.9.9/src/cocoa/cocoa_rom.h desmume-0.9.10/src/cocoa/cocoa_rom.h --- desmume-0.9.9/src/cocoa/cocoa_rom.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_rom.h 2013-11-28 00:37:19.701035600 +0000 @@ -39,11 +39,13 @@ @property (readonly) NSMutableDictionary *header; @property (readonly) NSMutableDictionary *bindings; @property (readonly) NSURL *fileURL; +@property (assign) BOOL willStreamLoadData; @property (readonly) BOOL isDataLoaded; @property (assign) NSInteger saveType; - (id) initWithURL:(NSURL *)theURL; - (id) initWithURL:(NSURL *)theURL saveType:(NSInteger)saveTypeID; +- (id) initWithURL:(NSURL *)theURL saveType:(NSInteger)saveTypeID streamLoadData:(BOOL)willStreamLoad; - (void) initHeader; - (BOOL) loadData:(NSURL *)theURL; - (void) loadDataOnThread:(id)object; @@ -52,6 +54,8 @@ - (NSString *) banner:(const UInt16 *)UTF16TextBuffer; - (NSString *) internalName; - (NSString *) serial; +- (NSString *) developerName; +- (NSString *) developerNameAndCode; - (NSImage *) icon; - (void) handleAdvansceneDatabaseInfo; diff -Nru desmume-0.9.9/src/cocoa/cocoa_rom.mm desmume-0.9.10/src/cocoa/cocoa_rom.mm --- desmume-0.9.9/src/cocoa/cocoa_rom.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_rom.mm 2013-11-28 00:37:24.477112725 +0000 @@ -32,6 +32,7 @@ @synthesize header; @synthesize bindings; @synthesize fileURL; +@dynamic willStreamLoadData; @dynamic isDataLoaded; @synthesize saveType; @@ -49,6 +50,11 @@ - (id) initWithURL:(NSURL *)theURL saveType:(NSInteger)saveTypeID { + return [self initWithURL:theURL saveType:ROMSAVETYPE_AUTOMATIC streamLoadData:NO]; +} + +- (id) initWithURL:(NSURL *)theURL saveType:(NSInteger)saveTypeID streamLoadData:(BOOL)willStreamLoad +{ self = [super init]; if (self == nil) { @@ -94,6 +100,8 @@ xmlElementStack = [[NSMutableArray alloc] initWithCapacity:32]; xmlCharacterStack = [[NSMutableArray alloc] initWithCapacity:32]; + [self setWillStreamLoadData:willStreamLoad]; + if (theURL != nil) { [self loadData:theURL]; @@ -118,9 +126,19 @@ [super dealloc]; } +- (void) setWillStreamLoadData:(BOOL)theState +{ + CommonSettings.loadToMemory = (theState) ? false : true; +} + +- (BOOL) willStreamLoadData +{ + return (CommonSettings.loadToMemory ? NO : YES); +} + - (BOOL) isDataLoaded { - return (MMU.CART_ROM != MMU.UNUSED_RAM); + return (gameInfo.romdata != NULL); } - (void) initHeader @@ -154,6 +172,8 @@ { [self.header setValue:[self title] forKey:@"gameTitle"]; [self.header setValue:[self code] forKey:@"gameCode"]; + [self.header setValue:[self developerName] forKey:@"gameDeveloper"]; + [self.header setValue:[self developerNameAndCode] forKey:@"gameDeveloperWithCode"]; [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->makerCode] forKey:@"makerCode"]; [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->cardSize] forKey:@"romSize"]; [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM9src] forKey:@"arm9BinaryOffset"]; @@ -169,11 +189,13 @@ [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->FATOff] forKey:@"fatOffset"]; [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->FATSize] forKey:@"fatSize"]; [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->IconOff] forKey:@"iconOffset"]; - [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ROMSize] forKey:@"usedRomSize"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->endROMoffset] forKey:@"usedRomSize"]; [self.bindings setValue:[self.header objectForKey:@"gameTitle"] forKey:@"gameTitle"]; [self.bindings setValue:[self.header objectForKey:@"gameCode"] forKey:@"gameCode"]; - [self.bindings setValue:[NSString stringWithFormat:@"%04Xh", [[self.header objectForKey:@"makerCode"] intValue]] forKey:@"makerCode"]; + [self.bindings setValue:[self.header objectForKey:@"gameDeveloper"] forKey:@"gameDeveloper"]; + [self.bindings setValue:[self.header objectForKey:@"gameDeveloperWithCode"] forKey:@"gameDeveloperWithCode"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%04X", [[self.header objectForKey:@"makerCode"] intValue]] forKey:@"makerCode"]; [self.bindings setValue:[NSString stringWithFormat:@"%i", [[self.header objectForKey:@"romSize"] intValue]] forKey:@"romSize"]; [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm9BinaryOffset"] intValue]] forKey:@"arm9BinaryOffset"]; [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm9BinaryEntryAddress"] intValue]] forKey:@"arm9BinaryEntryAddress"]; @@ -300,6 +322,28 @@ return [NSString stringWithCString:gameInfo.ROMserial encoding:NSUTF8StringEncoding]; } +- (NSString *) developerName +{ + NDS_header *ndsRomHeader = NDS_getROMHeader(); + if (ndsRomHeader == nil) + { + return nil; + } + + return [NSString stringWithCString:getDeveloperNameByID(ndsRomHeader->makerCode).c_str() encoding:NSUTF8StringEncoding]; +} + +- (NSString *) developerNameAndCode +{ + NDS_header *ndsRomHeader = NDS_getROMHeader(); + if (ndsRomHeader == nil) + { + return nil; + } + + return [NSString stringWithFormat:@"%s [0x%04X]", getDeveloperNameByID(ndsRomHeader->makerCode).c_str(), ndsRomHeader->makerCode]; +} + - (NSImage *) icon { NSImage *newImage = nil; @@ -501,6 +545,8 @@ NSSTRING_STATUS_NO_ROM_LOADED, @"bannerSpanish", NSSTRING_STATUS_NO_ROM_LOADED, @"gameTitle", NSSTRING_STATUS_NO_ROM_LOADED, @"gameCode", + NSSTRING_STATUS_NO_ROM_LOADED, @"gameDeveloper", + NSSTRING_STATUS_NO_ROM_LOADED, @"gameDeveloperWithCode", NSSTRING_STATUS_NO_ROM_LOADED, @"makerCode", [NSString stringWithFormat:NSSTRING_STATUS_NO_ROM_LOADED, 0], @"romSize", [NSString stringWithFormat:@"0x%08X", 0], @"arm9BinaryOffset", @@ -544,8 +590,7 @@ ********************************************************************************************/ void RomIconToRGBA8888(uint32_t *bitmapData) { - const NDS_header *ndsRomHeader = NDS_getROMHeader(); // Contains the memory addresses we need to get our read pointer locations. - int iconOffset; // Memory location offset for the ROM icon data. + const RomBanner &ndsRomBanner = gameInfo.getRomBanner(); // Contains the memory addresses we need to get our read pointer locations. const uint16_t *iconClutPtr; // Read pointer for the icon's CLUT. const uint32_t *iconPixPtr; // Read pointer for the icon's pixel data. @@ -563,16 +608,15 @@ return; } - if (ndsRomHeader == NULL) + if (&ndsRomBanner == NULL) { memset(bitmapData, 0, 4096); // 4096 bytes = 32px * 32px * sizeof(uint32_t) return; } - // Set all of our pointers relative to iconOffset. - iconOffset = ndsRomHeader->IconOff; - iconClutPtr = (uint16_t *)&MMU.CART_ROM[iconOffset + 0x220] + 1; - iconPixPtr = (uint32_t *)&MMU.CART_ROM[iconOffset + 0x20]; + // Set all of our icon read pointers. + iconClutPtr = (uint16_t *)ndsRomBanner.palette + 1; + iconPixPtr = (uint32_t *)ndsRomBanner.bitmap; // Setup the 4-bit CLUT. // diff -Nru desmume-0.9.9/src/cocoa/cocoa_videofilter.mm desmume-0.9.10/src/cocoa/cocoa_videofilter.mm --- desmume-0.9.9/src/cocoa/cocoa_videofilter.mm 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/cocoa_videofilter.mm 2013-11-28 00:37:19.689035407 +0000 @@ -45,7 +45,7 @@ return self; } - vf = new VideoFilter((unsigned int)theSize.width, (unsigned int)theSize.height, typeID, numThreads); + vf = new VideoFilter((size_t)theSize.width, (size_t)theSize.height, typeID, numThreads); currentFilterType = typeID; return self; @@ -61,7 +61,7 @@ { BOOL result = NO; - bool cResult = vf->SetSourceSize((unsigned int)theSize.width, (unsigned int)theSize.height); + bool cResult = vf->SetSourceSize((size_t)theSize.width, (size_t)theSize.height); if (cResult) { result = YES; Binary files /tmp/FPu7km2IPq/desmume-0.9.9/src/cocoa/DefaultUserPrefs.plist and /tmp/hECIq6vq9R/desmume-0.9.10/src/cocoa/DefaultUserPrefs.plist differ diff -Nru desmume-0.9.9/src/cocoa/DeleteUserDefaults.applescript desmume-0.9.10/src/cocoa/DeleteUserDefaults.applescript --- desmume-0.9.9/src/cocoa/DeleteUserDefaults.applescript 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeleteUserDefaults.applescript 2013-11-28 00:37:26.229141015 +0000 @@ -0,0 +1,39 @@ +(* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . + *) + +display dialog "Are you sure that you want to delete DeSmuME's preferences?" buttons {"Cancel", "Delete"} default button "Delete" cancel button "Cancel" with title "Delete DeSmuME Preferences" + +try + set userDefaultsPath to ((path to "pref" as text) & "org.desmume.DeSmuME.plist") + set isUserDefaultsDeleted to false + + tell application "Finder" + if exists file userDefaultsPath then + set isUserDefaultsDeleted to true + delete file userDefaultsPath + end if + + if isUserDefaultsDeleted then + display dialog "The preference files have been moved to the Trash." buttons {"OK"} default button {"OK"} + else + display dialog "No preference files were found." buttons {"OK"} default button {"OK"} + end if + end tell + +on error errorMsg + display dialog errorMsg +end try \ No newline at end of file diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (Legacy).xcodeproj/project.pbxproj desmume-0.9.10/src/cocoa/DeSmuME (Legacy).xcodeproj/project.pbxproj --- desmume-0.9.9/src/cocoa/DeSmuME (Legacy).xcodeproj/project.pbxproj 2013-05-01 18:48:32.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (Legacy).xcodeproj/project.pbxproj 2013-11-28 00:37:25.809134233 +0000 @@ -30,7 +30,6 @@ AB0191D614BD72EC004CB612 /* MainMenu (Legacy).xib in Resources */ = {isa = PBXBuildFile; fileRef = AB0191D214BD72EC004CB612 /* MainMenu (Legacy).xib */; }; AB06CCD6135B8AA200E977B3 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; AB06CCD7135B8AA300E977B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - AB06CD3D135B8ACE00E977B3 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; AB06CD3F135B8ACE00E977B3 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; AB06CD40135B8ACE00E977B3 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; AB06CD41135B8ACE00E977B3 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD12135B8ACE00E977B3 /* bios.cpp */; }; @@ -66,7 +65,6 @@ AB06CD69135B8ACE00E977B3 /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD3A135B8ACE00E977B3 /* thumb_instructions.cpp */; }; AB06CD6A135B8ACE00E977B3 /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD3B135B8ACE00E977B3 /* version.cpp */; }; AB06CD6B135B8ACE00E977B3 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD3C135B8ACE00E977B3 /* wifi.cpp */; }; - AB06CD6C135B8ACE00E977B3 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; AB06CD6D135B8ACE00E977B3 /* aggdraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0F135B8ACE00E977B3 /* aggdraw.cpp */; }; AB06CD6E135B8ACE00E977B3 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; AB06CD6F135B8ACE00E977B3 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; @@ -113,7 +111,6 @@ AB06CD9A135B8ACE00E977B3 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD3C135B8ACE00E977B3 /* wifi.cpp */; }; AB06CE13135B8AEE00E977B3 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; AB06CE14135B8AEE00E977B3 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - AB06CE15135B8AEE00E977B3 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; AB06CE16135B8AEE00E977B3 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; AB06CE17135B8AEE00E977B3 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; AB06CE18135B8AEE00E977B3 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */; }; @@ -160,7 +157,6 @@ AB06CE54135B8AEE00E977B3 /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CE11135B8AED00E977B3 /* xstring.cpp */; }; AB06CE55135B8AEE00E977B3 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; AB06CE56135B8AEE00E977B3 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - AB06CE57135B8AEE00E977B3 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; AB06CE58135B8AEE00E977B3 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; AB06CE59135B8AEE00E977B3 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; AB06CE5A135B8AEE00E977B3 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */; }; @@ -209,7 +205,6 @@ AB06CE96135B8AEE00E977B3 /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CE11135B8AED00E977B3 /* xstring.cpp */; }; AB0A0D1E14AACACC00E83E91 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1D14AACACC00E83E91 /* libz.dylib */; }; AB0A0D3714AACE9500E83E91 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1F4B55090F53924500C8B514 /* Localizable.strings */; }; - AB0A0D4614AACE9500E83E91 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; AB0A0D4714AACE9500E83E91 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; AB0A0D4814AACE9500E83E91 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; AB0A0D4914AACE9500E83E91 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD12135B8ACE00E977B3 /* bios.cpp */; }; @@ -247,7 +242,6 @@ AB0A0D6914AACE9500E83E91 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD3C135B8ACE00E977B3 /* wifi.cpp */; }; AB0A0D6A14AACE9500E83E91 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; AB0A0D6B14AACE9500E83E91 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - AB0A0D6C14AACE9500E83E91 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; AB0A0D6D14AACE9500E83E91 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; AB0A0D6E14AACE9500E83E91 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; AB0A0D6F14AACE9500E83E91 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */; }; @@ -327,6 +321,13 @@ AB0E770414C5635800EF460C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = ABEB321914C56182007F0D4C /* InfoPlist.strings */; }; AB0E770514C5635900EF460C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = ABEB321914C56182007F0D4C /* InfoPlist.strings */; }; AB0E770614C5635900EF460C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = ABEB321914C56182007F0D4C /* InfoPlist.strings */; }; + AB126D25182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; + AB126D26182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; + AB126D27182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; + AB126D28182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; + AB126D29182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; + AB126D2A182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; + AB126D2B182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */; }; AB18136D15D1FB73007A6CC3 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB18136C15D1FB73007A6CC3 /* arm_jit.cpp */; }; AB18136E15D1FB73007A6CC3 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB18136C15D1FB73007A6CC3 /* arm_jit.cpp */; }; AB18136F15D1FB73007A6CC3 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB18136C15D1FB73007A6CC3 /* arm_jit.cpp */; }; @@ -357,7 +358,6 @@ AB1814D715D212B4007A6CC3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB1814D915D212B4007A6CC3 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDDD135B8AED00E977B3 /* ConvertUTF.c */; }; AB1814DA15D212B4007A6CC3 /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDBB135B8AED00E977B3 /* AAFilter.cpp */; }; - AB1814DB15D212B4007A6CC3 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; AB1814DC15D212B4007A6CC3 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; AB1814DD15D212B4007A6CC3 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; AB1814DE15D212B4007A6CC3 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD12135B8ACE00E977B3 /* bios.cpp */; }; @@ -415,7 +415,6 @@ AB18151215D212B4007A6CC3 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD36135B8ACE00E977B3 /* slot1.cpp */; }; AB18151315D212B4007A6CC3 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; AB18151415D212B4007A6CC3 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - AB18151515D212B4007A6CC3 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; AB18151615D212B4007A6CC3 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 956B96C213DF4CF900FCDCD0 /* slot1_retail_nand.cpp */; }; AB18151715D212B4007A6CC3 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; AB18151815D212B4007A6CC3 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; @@ -488,7 +487,6 @@ AB18157315D21469007A6CC3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB18157515D21469007A6CC3 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDDD135B8AED00E977B3 /* ConvertUTF.c */; }; AB18157615D21469007A6CC3 /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDBB135B8AED00E977B3 /* AAFilter.cpp */; }; - AB18157715D21469007A6CC3 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; AB18157815D21469007A6CC3 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; AB18157915D21469007A6CC3 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; AB18157A15D21469007A6CC3 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD12135B8ACE00E977B3 /* bios.cpp */; }; @@ -546,7 +544,6 @@ AB1815AE15D21469007A6CC3 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD36135B8ACE00E977B3 /* slot1.cpp */; }; AB1815AF15D21469007A6CC3 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; AB1815B015D21469007A6CC3 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - AB1815B115D21469007A6CC3 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; AB1815B215D21469007A6CC3 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 956B96C213DF4CF900FCDCD0 /* slot1_retail_nand.cpp */; }; AB1815B315D21469007A6CC3 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; AB1815B415D21469007A6CC3 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; @@ -619,7 +616,6 @@ AB18160F15D214F2007A6CC3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB18161115D214F2007A6CC3 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDDD135B8AED00E977B3 /* ConvertUTF.c */; }; AB18161215D214F2007A6CC3 /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDBB135B8AED00E977B3 /* AAFilter.cpp */; }; - AB18161315D214F2007A6CC3 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; AB18161415D214F2007A6CC3 /* aggdraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0F135B8ACE00E977B3 /* aggdraw.cpp */; }; AB18161515D214F2007A6CC3 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; AB18161615D214F2007A6CC3 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; @@ -687,7 +683,6 @@ AB18165415D214F2007A6CC3 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD36135B8ACE00E977B3 /* slot1.cpp */; }; AB18165515D214F2007A6CC3 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; AB18165615D214F2007A6CC3 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - AB18165715D214F2007A6CC3 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; AB18165815D214F2007A6CC3 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; AB18165915D214F2007A6CC3 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; AB18165A15D214F2007A6CC3 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */; }; @@ -747,6 +742,20 @@ AB3AD16D14C4F6AD00D7D192 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB3AD16B14C4F6AD00D7D192 /* FileTypeInfo.plist */; }; AB3AD16E14C4F6AD00D7D192 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB3AD16B14C4F6AD00D7D192 /* FileTypeInfo.plist */; }; AB3AD16F14C4F6AD00D7D192 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB3AD16B14C4F6AD00D7D192 /* FileTypeInfo.plist */; }; + AB4352B517D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352B617D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352B717D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352B817D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352B917D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352BA17D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352BB17D66187007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352B417D66187007417C8 /* fsnitro.cpp */; }; + AB4352C117D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB4352C217D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB4352C317D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB4352C417D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB4352C517D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB4352C617D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB4352C717D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */; }; AB46780A14ABD4890002FF94 /* AppIcon_DeSmuME.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB46780614ABD4890002FF94 /* AppIcon_DeSmuME.icns */; }; AB46780B14ABD4890002FF94 /* AppIcon_NintendoDS_ROM.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB46780714ABD4890002FF94 /* AppIcon_NintendoDS_ROM.icns */; }; AB46780C14ABD4890002FF94 /* AppIcon_ROMSave.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB46780814ABD4890002FF94 /* AppIcon_ROMSave.icns */; }; @@ -763,6 +772,48 @@ AB46781714ABD4890002FF94 /* AppIcon_NintendoDS_ROM.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB46780714ABD4890002FF94 /* AppIcon_NintendoDS_ROM.icns */; }; AB46781814ABD4890002FF94 /* AppIcon_ROMSave.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB46780814ABD4890002FF94 /* AppIcon_ROMSave.icns */; }; AB46781914ABD4890002FF94 /* AppIcon_SaveState.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB46780914ABD4890002FF94 /* AppIcon_SaveState.icns */; }; + AB4C80E417C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80E517C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80E617C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80E717C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80E817C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80E917C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80EA17C5DA070024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80E317C5DA070024D479 /* advanscene.cpp */; }; + AB4C80F517C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C80F617C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C80F717C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C80F817C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C80F917C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C80FA17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C80FB17C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C80FC17C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C80FD17C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C80FE17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C80FF17C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C810017C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C810117C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C810217C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C810317C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C810417C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C810517C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C810617C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C810717C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C810817C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C810917C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C810A17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C810B17C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C810C17C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C810D17C5DA240024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */; }; + AB4C810E17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C810F17C5DA240024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */; }; + AB4C811017C5DA240024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */; }; + AB4C815917C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; + AB4C815A17C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; + AB4C815B17C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; + AB4C815C17C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; + AB4C815D17C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; + AB4C815E17C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; + AB4C815F17C5DC240024D479 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C815817C5DC240024D479 /* encrypt.cpp */; }; AB4F981716C30117000E90EA /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD2E135B8ACE00E977B3 /* OGLRender.cpp */; }; AB73B12B14BDA01C00F49C92 /* appDelegate_legacy.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB73B12914BDA01C00F49C92 /* appDelegate_legacy.mm */; }; AB73B12C14BDA01C00F49C92 /* emuWindowDelegate_legacy.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB73B12A14BDA01C00F49C92 /* emuWindowDelegate_legacy.mm */; }; @@ -815,6 +866,27 @@ ABAC890A14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; }; ABAC890B14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; }; ABAC890C14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; }; + ABB328E718313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328E818313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328E918313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328EA18313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328EB18313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328EC18313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328ED18313F5A00FEE4C4 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328E618313F5A00FEE4C4 /* slot2.cpp */; }; + ABB328EF18313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB328F018313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB328F118313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB328F218313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB328F318313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB328F418313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB328F518313F7C00FEE4C4 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */; }; + ABB9215A17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9215B17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9215C17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9215D17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9215E17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9215F17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9216017CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; }; ABBF053014B5436E00E505A0 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBF052F14B5436E00E505A0 /* cocoa_file.mm */; }; ABBF053114B5436E00E505A0 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBF052F14B5436E00E505A0 /* cocoa_file.mm */; }; ABBF053214B5436E00E505A0 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBF052F14B5436E00E505A0 /* cocoa_file.mm */; }; @@ -992,7 +1064,6 @@ ABF50C5B169F61540018C08D /* x86operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABF50BAB169F61540018C08D /* x86operand.cpp */; }; ABF50C5C169F61540018C08D /* x86util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABF50BAD169F61540018C08D /* x86util.cpp */; }; ABFE4242143E32F0009A3CCE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1F4B55090F53924500C8B514 /* Localizable.strings */; }; - ABFE4251143E32F0009A3CCE /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD0E135B8ACE00E977B3 /* addons.cpp */; }; ABFE4252143E32F0009A3CCE /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */; }; ABFE4253143E32F0009A3CCE /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD11135B8ACE00E977B3 /* armcpu.cpp */; }; ABFE4254143E32F0009A3CCE /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD12135B8ACE00E977B3 /* bios.cpp */; }; @@ -1030,7 +1101,6 @@ ABFE4274143E32F0009A3CCE /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD3C135B8ACE00E977B3 /* wifi.cpp */; }; ABFE4275143E32F0009A3CCE /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */; }; ABFE4276143E32F0009A3CCE /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */; }; - ABFE4277143E32F0009A3CCE /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */; }; ABFE4278143E32F0009A3CCE /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */; }; ABFE4279143E32F0009A3CCE /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */; }; ABFE427A143E32F0009A3CCE /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */; }; @@ -1113,7 +1183,6 @@ AB0191E914BD7425004CB612 /* Romanian */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Romanian; path = "translations/Romanian.lproj/MainMenu (Legacy).xib"; sourceTree = ""; }; AB06CB49135B8A4D00E977B3 /* sndOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sndOSX.h; sourceTree = ""; }; AB06CCD5135B8A9B00E977B3 /* DeSmuME_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeSmuME_Prefix.pch; sourceTree = ""; }; - AB06CCD8135B8ACE00E977B3 /* addons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = addons.h; path = ../addons.h; sourceTree = SOURCE_ROOT; }; AB06CCD9135B8ACE00E977B3 /* agg2d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = agg2d.h; path = ../agg2d.h; sourceTree = SOURCE_ROOT; }; AB06CCDA135B8ACE00E977B3 /* aggdraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aggdraw.h; path = ../aggdraw.h; sourceTree = SOURCE_ROOT; }; AB06CCDC135B8ACE00E977B3 /* armcpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armcpu.h; path = ../armcpu.h; sourceTree = SOURCE_ROOT; }; @@ -1164,7 +1233,6 @@ AB06CD0B135B8ACE00E977B3 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../types.h; sourceTree = SOURCE_ROOT; }; AB06CD0C135B8ACE00E977B3 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../version.h; sourceTree = SOURCE_ROOT; }; AB06CD0D135B8ACE00E977B3 /* wifi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wifi.h; path = ../wifi.h; sourceTree = SOURCE_ROOT; }; - AB06CD0E135B8ACE00E977B3 /* addons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = addons.cpp; path = ../addons.cpp; sourceTree = SOURCE_ROOT; }; AB06CD0F135B8ACE00E977B3 /* aggdraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggdraw.cpp; path = ../aggdraw.cpp; sourceTree = SOURCE_ROOT; }; AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_instructions.cpp; path = ../arm_instructions.cpp; sourceTree = SOURCE_ROOT; }; AB06CD11135B8ACE00E977B3 /* armcpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armcpu.cpp; path = ../armcpu.cpp; sourceTree = SOURCE_ROOT; }; @@ -1212,7 +1280,6 @@ AB06CD3C135B8ACE00E977B3 /* wifi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wifi.cpp; path = ../wifi.cpp; sourceTree = SOURCE_ROOT; }; AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_none.cpp; sourceTree = ""; }; AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_r4.cpp; sourceTree = ""; }; - AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail.cpp; sourceTree = ""; }; AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_expMemory.cpp; sourceTree = ""; }; AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_gbagame.cpp; sourceTree = ""; }; AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_guitarGrip.cpp; sourceTree = ""; }; @@ -1310,6 +1377,7 @@ AB0A0EA914AAF77000E83E91 /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ChangeLog; path = ../../ChangeLog; sourceTree = SOURCE_ROOT; }; AB0A0EAA14AAF77000E83E91 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = COPYING; path = ../../COPYING; sourceTree = SOURCE_ROOT; }; AB0A0EAB14AAF77000E83E91 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README; path = ../../README; sourceTree = SOURCE_ROOT; }; + AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_passme.cpp; sourceTree = ""; }; AB18136C15D1FB73007A6CC3 /* arm_jit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_jit.cpp; path = ../arm_jit.cpp; sourceTree = SOURCE_ROOT; }; AB18137115D1FB8F007A6CC3 /* arm_jit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arm_jit.h; path = ../arm_jit.h; sourceTree = SOURCE_ROOT; }; AB18137215D1FBA6007A6CC3 /* instruction_attributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = instruction_attributes.h; path = ../instruction_attributes.h; sourceTree = SOURCE_ROOT; }; @@ -1320,10 +1388,23 @@ AB2F5B011704EE0100E28885 /* utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utilities.h; sourceTree = ""; }; AB2F5B021704EE0100E28885 /* utilities.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = utilities.c; sourceTree = ""; }; AB3AD16B14C4F6AD00D7D192 /* FileTypeInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = FileTypeInfo.plist; sourceTree = ""; }; + AB4352B317D66187007417C8 /* fsnitro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fsnitro.h; sourceTree = ""; }; + AB4352B417D66187007417C8 /* fsnitro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fsnitro.cpp; sourceTree = ""; }; + AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom_debug.cpp; sourceTree = ""; }; AB46780614ABD4890002FF94 /* AppIcon_DeSmuME.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_DeSmuME.icns; sourceTree = ""; }; AB46780714ABD4890002FF94 /* AppIcon_NintendoDS_ROM.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_NintendoDS_ROM.icns; sourceTree = ""; }; AB46780814ABD4890002FF94 /* AppIcon_ROMSave.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMSave.icns; sourceTree = ""; }; AB46780914ABD4890002FF94 /* AppIcon_SaveState.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_SaveState.icns; sourceTree = ""; }; + AB4C80E217C5DA070024D479 /* advanscene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = advanscene.h; sourceTree = ""; }; + AB4C80E317C5DA070024D479 /* advanscene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = advanscene.cpp; sourceTree = ""; }; + AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_auto.cpp; sourceTree = ""; }; + AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom.cpp; sourceTree = ""; }; + AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_mc.cpp; sourceTree = ""; }; + AB4C80F217C5DA240024D479 /* slot1comp_mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_mc.h; sourceTree = ""; }; + AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_rom.cpp; sourceTree = ""; }; + AB4C80F417C5DA240024D479 /* slot1comp_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_rom.h; sourceTree = ""; }; + AB4C815717C5DC240024D479 /* encrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encrypt.h; path = ../encrypt.h; sourceTree = SOURCE_ROOT; }; + AB4C815817C5DC240024D479 /* encrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = encrypt.cpp; path = ../encrypt.cpp; sourceTree = SOURCE_ROOT; }; AB73B12714BDA01C00F49C92 /* appDelegate_legacy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = appDelegate_legacy.h; path = userinterface/appDelegate_legacy.h; sourceTree = ""; }; AB73B12814BDA01C00F49C92 /* emuWindowDelegate_legacy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emuWindowDelegate_legacy.h; path = userinterface/emuWindowDelegate_legacy.h; sourceTree = ""; }; AB73B12914BDA01C00F49C92 /* appDelegate_legacy.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = appDelegate_legacy.mm; path = userinterface/appDelegate_legacy.mm; sourceTree = ""; }; @@ -1338,6 +1419,11 @@ AB8FE37514B652EC009E20B1 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = ""; }; AB97D29516964D01002AC11B /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; ABAC890814B7943E001B299F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + ABB328E518313F5A00FEE4C4 /* slot2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = slot2.h; path = ../slot2.h; sourceTree = SOURCE_ROOT; }; + ABB328E618313F5A00FEE4C4 /* slot2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = slot2.cpp; path = ../slot2.cpp; sourceTree = SOURCE_ROOT; }; + ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_auto.cpp; sourceTree = ""; }; + ABB9215817CEB53A0049D4C5 /* slot1comp_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_protocol.h; sourceTree = ""; }; + ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_protocol.cpp; sourceTree = ""; }; ABBF045E14B5144D00E505A0 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = "translations/English.lproj/MainMenu (Legacy).xib"; sourceTree = ""; }; ABBF04CB14B51BBB00E505A0 /* Chinese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = ""; }; ABBF04CC14B51BC300E505A0 /* Norwegian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = ""; }; @@ -1634,7 +1720,6 @@ AB06CDAF135B8AED00E977B3 /* gdbstub */, AB06CDB3135B8AED00E977B3 /* metaspu */, AB06CDDC135B8AED00E977B3 /* utils */, - AB06CD0E135B8ACE00E977B3 /* addons.cpp */, AB06CD0F135B8ACE00E977B3 /* aggdraw.cpp */, AB06CD10135B8ACE00E977B3 /* arm_instructions.cpp */, AB18136C15D1FB73007A6CC3 /* arm_jit.cpp */, @@ -1650,6 +1735,7 @@ AB06CD1A135B8ACE00E977B3 /* Disassembler.cpp */, AB06CD1B135B8ACE00E977B3 /* driver.cpp */, AB06CD1C135B8ACE00E977B3 /* emufile.cpp */, + AB4C815817C5DC240024D479 /* encrypt.cpp */, AB06CD1D135B8ACE00E977B3 /* FIFO.cpp */, AB06CD1E135B8ACE00E977B3 /* firmware.cpp */, AB06CD1F135B8ACE00E977B3 /* fs-linux.cpp */, @@ -1675,13 +1761,13 @@ AB06CD34135B8ACE00E977B3 /* rtc.cpp */, AB06CD35135B8ACE00E977B3 /* saves.cpp */, AB06CD36135B8ACE00E977B3 /* slot1.cpp */, + ABB328E618313F5A00FEE4C4 /* slot2.cpp */, AB06CD37135B8ACE00E977B3 /* sndsdl.cpp */, AB06CD38135B8ACE00E977B3 /* SPU.cpp */, AB06CD39135B8ACE00E977B3 /* texcache.cpp */, AB06CD3A135B8ACE00E977B3 /* thumb_instructions.cpp */, AB06CD3B135B8ACE00E977B3 /* version.cpp */, AB06CD3C135B8ACE00E977B3 /* wifi.cpp */, - AB06CCD8135B8ACE00E977B3 /* addons.h */, AB06CCD9135B8ACE00E977B3 /* agg2d.h */, AB06CCDA135B8ACE00E977B3 /* aggdraw.h */, AB18137115D1FB8F007A6CC3 /* arm_jit.h */, @@ -1699,6 +1785,7 @@ AB06CCE7135B8ACE00E977B3 /* driver.h */, AB06CCE9135B8ACE00E977B3 /* emufile.h */, AB06CCE8135B8ACE00E977B3 /* emufile_types.h */, + AB4C815717C5DC240024D479 /* encrypt.h */, AB06CCEA135B8ACE00E977B3 /* FIFO.h */, AB06CCEB135B8ACE00E977B3 /* firmware.h */, AB06CCEC135B8ACE00E977B3 /* fs.h */, @@ -1729,6 +1816,7 @@ AB06CD03135B8ACE00E977B3 /* rtc.h */, AB06CD04135B8ACE00E977B3 /* saves.h */, AB06CD06135B8ACE00E977B3 /* slot1.h */, + ABB328E518313F5A00FEE4C4 /* slot2.h */, AB06CD07135B8ACE00E977B3 /* sndsdl.h */, AB06CD08135B8ACE00E977B3 /* SPU.h */, AB06CD09135B8ACE00E977B3 /* texcache.h */, @@ -1794,16 +1882,26 @@ children = ( AB06CD9C135B8AED00E977B3 /* slot1_none.cpp */, AB06CD9D135B8AED00E977B3 /* slot1_r4.cpp */, - AB06CD9E135B8AED00E977B3 /* slot1_retail.cpp */, + AB4C80EF17C5DA240024D479 /* slot1_retail_auto.cpp */, + AB4C80F017C5DA240024D479 /* slot1_retail_mcrom.cpp */, + AB4352C017D661AC007417C8 /* slot1_retail_mcrom_debug.cpp */, 956B96C213DF4CF900FCDCD0 /* slot1_retail_nand.cpp */, + AB4C80F117C5DA240024D479 /* slot1comp_mc.cpp */, + ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */, + AB4C80F317C5DA240024D479 /* slot1comp_rom.cpp */, + ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */, AB06CD9F135B8AED00E977B3 /* slot2_expMemory.cpp */, AB06CDA0135B8AED00E977B3 /* slot2_gbagame.cpp */, AB06CDA1135B8AED00E977B3 /* slot2_guitarGrip.cpp */, AB06CDA2135B8AED00E977B3 /* slot2_mpcf.cpp */, AB06CDA3135B8AED00E977B3 /* slot2_none.cpp */, AB06CDA4135B8AED00E977B3 /* slot2_paddle.cpp */, + AB126D24182ECC7B00EBCF22 /* slot2_passme.cpp */, AB06CDA5135B8AED00E977B3 /* slot2_piano.cpp */, AB06CDA6135B8AED00E977B3 /* slot2_rumblepak.cpp */, + AB4C80F217C5DA240024D479 /* slot1comp_mc.h */, + ABB9215817CEB53A0049D4C5 /* slot1comp_protocol.h */, + AB4C80F417C5DA240024D479 /* slot1comp_rom.h */, ); name = addons; path = ../addons; @@ -1879,18 +1977,22 @@ AB06CDEE135B8AED00E977B3 /* libfat */, 7FA912191426523900E2ABDD /* tinyxml */, AB06CDDD135B8AED00E977B3 /* ConvertUTF.c */, + AB4C80E317C5DA070024D479 /* advanscene.cpp */, AB06CDDF135B8AED00E977B3 /* datetime.cpp */, AB06CDE8135B8AED00E977B3 /* dlditool.cpp */, AB06CDE9135B8AED00E977B3 /* emufat.cpp */, + AB4352B417D66187007417C8 /* fsnitro.cpp */, AB06CDEC135B8AED00E977B3 /* guid.cpp */, AB06CE0A135B8AED00E977B3 /* md5.cpp */, AB06CE0C135B8AED00E977B3 /* task.cpp */, AB06CE0F135B8AED00E977B3 /* vfat.cpp */, AB06CE11135B8AED00E977B3 /* xstring.cpp */, + AB4C80E217C5DA070024D479 /* advanscene.h */, AB06CDDE135B8AED00E977B3 /* ConvertUTF.h */, AB06CDE0135B8AED00E977B3 /* datetime.h */, AB06CDEA135B8AED00E977B3 /* emufat.h */, AB06CDEB135B8AED00E977B3 /* emufat_types.h */, + AB4352B317D66187007417C8 /* fsnitro.h */, AB06CDED135B8AED00E977B3 /* guid.h */, AB06CE0B135B8AED00E977B3 /* md5.h */, AB06CE0D135B8AED00E977B3 /* task.h */, @@ -2634,7 +2736,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76A9B15E090C100F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2648,7 +2750,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76A9D15E090CE00F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2662,7 +2764,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76A9F15E090E500F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2676,7 +2778,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76AA115E090FA00F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2690,7 +2792,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76AA315E0910700F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2704,7 +2806,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76AA515E0911E00F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2718,7 +2820,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; /* End PBXShellScriptBuildPhase section */ @@ -2729,7 +2831,6 @@ files = ( AB06CE80135B8AEE00E977B3 /* ConvertUTF.c in Sources */, AB06CE6C135B8AEE00E977B3 /* AAFilter.cpp in Sources */, - AB06CD6C135B8ACE00E977B3 /* addons.cpp in Sources */, AB06CD6D135B8ACE00E977B3 /* aggdraw.cpp in Sources */, AB06CD6E135B8ACE00E977B3 /* arm_instructions.cpp in Sources */, AB06CD6F135B8ACE00E977B3 /* armcpu.cpp in Sources */, @@ -2797,7 +2898,6 @@ AB06CD94135B8ACE00E977B3 /* slot1.cpp in Sources */, AB06CE55135B8AEE00E977B3 /* slot1_none.cpp in Sources */, AB06CE56135B8AEE00E977B3 /* slot1_r4.cpp in Sources */, - AB06CE57135B8AEE00E977B3 /* slot1_retail.cpp in Sources */, AB06CE58135B8AEE00E977B3 /* slot2_expMemory.cpp in Sources */, AB06CE59135B8AEE00E977B3 /* slot2_gbagame.cpp in Sources */, AB06CE5A135B8AEE00E977B3 /* slot2_guitarGrip.cpp in Sources */, @@ -2871,6 +2971,18 @@ ABF50C04169F61540018C08D /* x86operand.cpp in Sources */, ABF50C05169F61540018C08D /* x86util.cpp in Sources */, AB2F5B051704EE0100E28885 /* utilities.c in Sources */, + AB4C80E617C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C80FD17C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C80FE17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C80FF17C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C810017C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815B17C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9215C17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352B717D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C317D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D2A182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328EC18313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328F418313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2880,7 +2992,6 @@ files = ( AB06CE3E135B8AEE00E977B3 /* ConvertUTF.c in Sources */, AB06CE2A135B8AEE00E977B3 /* AAFilter.cpp in Sources */, - AB06CD3D135B8ACE00E977B3 /* addons.cpp in Sources */, AB06CD3F135B8ACE00E977B3 /* arm_instructions.cpp in Sources */, AB06CD40135B8ACE00E977B3 /* armcpu.cpp in Sources */, AB06CD41135B8ACE00E977B3 /* bios.cpp in Sources */, @@ -2938,7 +3049,6 @@ AB06CD65135B8ACE00E977B3 /* slot1.cpp in Sources */, AB06CE13135B8AEE00E977B3 /* slot1_none.cpp in Sources */, AB06CE14135B8AEE00E977B3 /* slot1_r4.cpp in Sources */, - AB06CE15135B8AEE00E977B3 /* slot1_retail.cpp in Sources */, 956B96C313DF4CF900FCDCD0 /* slot1_retail_nand.cpp in Sources */, AB06CE16135B8AEE00E977B3 /* slot2_expMemory.cpp in Sources */, AB06CE17135B8AEE00E977B3 /* slot2_gbagame.cpp in Sources */, @@ -3012,6 +3122,18 @@ ABF50C5B169F61540018C08D /* x86operand.cpp in Sources */, ABF50C5C169F61540018C08D /* x86util.cpp in Sources */, AB2F5B081704EE0100E28885 /* utilities.c in Sources */, + AB4C80E917C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C810917C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C810A17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C810B17C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C810C17C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815E17C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9215F17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352BA17D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C617D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D28182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328EA18313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328F218313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3021,7 +3143,6 @@ files = ( AB0A0D8214AACE9500E83E91 /* ConvertUTF.c in Sources */, AB0A0D7714AACE9500E83E91 /* AAFilter.cpp in Sources */, - AB0A0D4614AACE9500E83E91 /* addons.cpp in Sources */, AB0A0D4714AACE9500E83E91 /* arm_instructions.cpp in Sources */, AB0A0D4814AACE9500E83E91 /* armcpu.cpp in Sources */, AB0A0D4914AACE9500E83E91 /* bios.cpp in Sources */, @@ -3079,7 +3200,6 @@ AB0A0D6414AACE9500E83E91 /* slot1.cpp in Sources */, AB0A0D6A14AACE9500E83E91 /* slot1_none.cpp in Sources */, AB0A0D6B14AACE9500E83E91 /* slot1_r4.cpp in Sources */, - AB0A0D6C14AACE9500E83E91 /* slot1_retail.cpp in Sources */, AB0A0D9C14AACE9500E83E91 /* slot1_retail_nand.cpp in Sources */, AB0A0D6D14AACE9500E83E91 /* slot2_expMemory.cpp in Sources */, AB0A0D6E14AACE9500E83E91 /* slot2_gbagame.cpp in Sources */, @@ -3153,6 +3273,18 @@ ABF50BCA169F61540018C08D /* x86operand.cpp in Sources */, ABF50BCB169F61540018C08D /* x86util.cpp in Sources */, AB2F5B031704EE0100E28885 /* utilities.c in Sources */, + AB4C80E417C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C80F517C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C80F617C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C80F717C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C80F817C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815917C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9215A17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352B517D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C117D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D26182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328E818313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328F018313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3162,7 +3294,6 @@ files = ( AB1814D915D212B4007A6CC3 /* ConvertUTF.c in Sources */, AB1814DA15D212B4007A6CC3 /* AAFilter.cpp in Sources */, - AB1814DB15D212B4007A6CC3 /* addons.cpp in Sources */, AB1814DC15D212B4007A6CC3 /* arm_instructions.cpp in Sources */, AB1814DD15D212B4007A6CC3 /* armcpu.cpp in Sources */, AB1814DE15D212B4007A6CC3 /* bios.cpp in Sources */, @@ -3220,7 +3351,6 @@ AB18151215D212B4007A6CC3 /* slot1.cpp in Sources */, AB18151315D212B4007A6CC3 /* slot1_none.cpp in Sources */, AB18151415D212B4007A6CC3 /* slot1_r4.cpp in Sources */, - AB18151515D212B4007A6CC3 /* slot1_retail.cpp in Sources */, AB18151615D212B4007A6CC3 /* slot1_retail_nand.cpp in Sources */, AB18151715D212B4007A6CC3 /* slot2_expMemory.cpp in Sources */, AB18151815D212B4007A6CC3 /* slot2_gbagame.cpp in Sources */, @@ -3264,6 +3394,18 @@ AB18153E15D212B4007A6CC3 /* ringbuffer.cpp in Sources */, AB1816B615D216EC007A6CC3 /* OGLRender.cpp in Sources */, AB2F5B071704EE0100E28885 /* utilities.c in Sources */, + AB4C80E817C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C810517C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C810617C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C810717C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C810817C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815D17C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9215E17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352B917D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C517D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D25182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328E718313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328EF18313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3273,7 +3415,6 @@ files = ( AB18157515D21469007A6CC3 /* ConvertUTF.c in Sources */, AB18157615D21469007A6CC3 /* AAFilter.cpp in Sources */, - AB18157715D21469007A6CC3 /* addons.cpp in Sources */, AB18157815D21469007A6CC3 /* arm_instructions.cpp in Sources */, AB18157915D21469007A6CC3 /* armcpu.cpp in Sources */, AB18157A15D21469007A6CC3 /* bios.cpp in Sources */, @@ -3331,7 +3472,6 @@ AB1815AE15D21469007A6CC3 /* slot1.cpp in Sources */, AB1815AF15D21469007A6CC3 /* slot1_none.cpp in Sources */, AB1815B015D21469007A6CC3 /* slot1_r4.cpp in Sources */, - AB1815B115D21469007A6CC3 /* slot1_retail.cpp in Sources */, AB1815B215D21469007A6CC3 /* slot1_retail_nand.cpp in Sources */, AB1815B315D21469007A6CC3 /* slot2_expMemory.cpp in Sources */, AB1815B415D21469007A6CC3 /* slot2_gbagame.cpp in Sources */, @@ -3375,6 +3515,18 @@ AB1815DA15D21469007A6CC3 /* ringbuffer.cpp in Sources */, AB4F981716C30117000E90EA /* OGLRender.cpp in Sources */, AB2F5B091704EE0100E28885 /* utilities.c in Sources */, + AB4C80EA17C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C810D17C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C810E17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C810F17C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C811017C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815F17C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9216017CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352BB17D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C717D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D27182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328E918313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328F118313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3384,7 +3536,6 @@ files = ( AB18161115D214F2007A6CC3 /* ConvertUTF.c in Sources */, AB18161215D214F2007A6CC3 /* AAFilter.cpp in Sources */, - AB18161315D214F2007A6CC3 /* addons.cpp in Sources */, AB18161415D214F2007A6CC3 /* aggdraw.cpp in Sources */, AB18161515D214F2007A6CC3 /* arm_instructions.cpp in Sources */, AB18161615D214F2007A6CC3 /* armcpu.cpp in Sources */, @@ -3452,7 +3603,6 @@ AB18165415D214F2007A6CC3 /* slot1.cpp in Sources */, AB18165515D214F2007A6CC3 /* slot1_none.cpp in Sources */, AB18165615D214F2007A6CC3 /* slot1_r4.cpp in Sources */, - AB18165715D214F2007A6CC3 /* slot1_retail.cpp in Sources */, AB18165815D214F2007A6CC3 /* slot2_expMemory.cpp in Sources */, AB18165915D214F2007A6CC3 /* slot2_gbagame.cpp in Sources */, AB18165A15D214F2007A6CC3 /* slot2_guitarGrip.cpp in Sources */, @@ -3496,6 +3646,18 @@ AB18168015D214F2007A6CC3 /* ringbuffer.cpp in Sources */, AB1816B815D216F5007A6CC3 /* OGLRender.cpp in Sources */, AB2F5B041704EE0100E28885 /* utilities.c in Sources */, + AB4C80E517C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C80F917C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C80FA17C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C80FB17C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C80FC17C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815A17C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9215B17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352B617D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C217D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D2B182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328ED18313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328F518313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3505,7 +3667,6 @@ files = ( ABFE428D143E32F0009A3CCE /* ConvertUTF.c in Sources */, ABFE4282143E32F0009A3CCE /* AAFilter.cpp in Sources */, - ABFE4251143E32F0009A3CCE /* addons.cpp in Sources */, ABFE4252143E32F0009A3CCE /* arm_instructions.cpp in Sources */, ABFE4253143E32F0009A3CCE /* armcpu.cpp in Sources */, ABFE4254143E32F0009A3CCE /* bios.cpp in Sources */, @@ -3563,7 +3724,6 @@ ABFE426F143E32F0009A3CCE /* slot1.cpp in Sources */, ABFE4275143E32F0009A3CCE /* slot1_none.cpp in Sources */, ABFE4276143E32F0009A3CCE /* slot1_r4.cpp in Sources */, - ABFE4277143E32F0009A3CCE /* slot1_retail.cpp in Sources */, ABFE42A7143E32F0009A3CCE /* slot1_retail_nand.cpp in Sources */, ABFE4278143E32F0009A3CCE /* slot2_expMemory.cpp in Sources */, ABFE4279143E32F0009A3CCE /* slot2_gbagame.cpp in Sources */, @@ -3637,6 +3797,18 @@ ABF50C21169F61540018C08D /* x86operand.cpp in Sources */, ABF50C22169F61540018C08D /* x86util.cpp in Sources */, AB2F5B061704EE0100E28885 /* utilities.c in Sources */, + AB4C80E717C5DA070024D479 /* advanscene.cpp in Sources */, + AB4C810117C5DA240024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C810217C5DA240024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C810317C5DA240024D479 /* slot1comp_mc.cpp in Sources */, + AB4C810417C5DA240024D479 /* slot1comp_rom.cpp in Sources */, + AB4C815C17C5DC240024D479 /* encrypt.cpp in Sources */, + ABB9215D17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB4352B817D66187007417C8 /* fsnitro.cpp in Sources */, + AB4352C417D661AC007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB126D29182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */, + ABB328EB18313F5A00FEE4C4 /* slot2.cpp in Sources */, + ABB328F318313F7C00FEE4C4 /* slot2_auto.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff -Nru desmume-0.9.9/src/cocoa/DeSmuME_Prefix.pch desmume-0.9.10/src/cocoa/DeSmuME_Prefix.pch --- desmume-0.9.9/src/cocoa/DeSmuME_Prefix.pch 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME_Prefix.pch 2013-11-28 00:37:25.805134168 +0000 @@ -20,6 +20,7 @@ #define OBJ_C #endif +#define HOST_DARWIN #define DESMUME_COCOA #define HAVE_OPENGL #define HAVE_LIBZ diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj desmume-0.9.10/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj --- desmume-0.9.9/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj 2013-05-01 18:47:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj 2013-11-28 00:37:18.813021260 +0000 @@ -52,6 +52,11 @@ AB0F29C714BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */; }; AB0F29C814BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */; }; AB0F29C914BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */; }; + AB126D07182ECB9500EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */; }; + AB126D08182ECB9500EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */; }; + AB126D09182ECB9500EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */; }; + AB126D0A182ECB9500EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */; }; + AB126D0B182ECB9500EBCF22 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */; }; AB213D45170CB141006DDB0F /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB213D44170CB141006DDB0F /* InputProfileController.mm */; }; AB213D46170CB141006DDB0F /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB213D44170CB141006DDB0F /* InputProfileController.mm */; }; AB213D47170CB141006DDB0F /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB213D44170CB141006DDB0F /* InputProfileController.mm */; }; @@ -137,7 +142,6 @@ AB2A99ED1725F00F0062C1A1 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB2A99EE1725F00F0062C1A1 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB700DB816CDDBC400FBD336 /* DisplayWindow.xib */; }; AB2A99F11725F00F0062C1A1 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; - AB2A99F21725F00F0062C1A1 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; AB2A99F31725F00F0062C1A1 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; AB2A99F41725F00F0062C1A1 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; AB2A99F51725F00F0062C1A1 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -189,7 +193,6 @@ AB2A9A231725F00F0062C1A1 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; AB2A9A241725F00F0062C1A1 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; AB2A9A251725F00F0062C1A1 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - AB2A9A261725F00F0062C1A1 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; AB2A9A271725F00F0062C1A1 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; AB2A9A281725F00F0062C1A1 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; AB2A9A291725F00F0062C1A1 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; @@ -340,7 +343,6 @@ AB2F3BC215CF9C6000858373 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; AB2F3BC315CF9C6000858373 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB2F3BC515CF9C6000858373 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; - AB2F3BC715CF9C6000858373 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; AB2F3BC815CF9C6000858373 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; AB2F3BC915CF9C6000858373 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; AB2F3BCA15CF9C6000858373 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -392,7 +394,6 @@ AB2F3BFD15CF9C6000858373 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; AB2F3BFE15CF9C6000858373 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; AB2F3BFF15CF9C6000858373 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - AB2F3C0015CF9C6000858373 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; AB2F3C0115CF9C6000858373 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; AB2F3C0215CF9C6000858373 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; AB2F3C0315CF9C6000858373 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; @@ -463,6 +464,16 @@ AB3ACC4614C24D5400D7D192 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3A14C24D5400D7D192 /* COPYING */; }; AB3ACC4714C24D5400D7D192 /* README in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3B14C24D5400D7D192 /* README */; }; AB3ACC4914C24D5400D7D192 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; + AB43527217D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB43527317D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB43527417D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB43527517D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB43527617D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */; }; + AB43528717D5BA95007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43528617D5BA95007417C8 /* fsnitro.cpp */; }; + AB43528817D5BA95007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43528617D5BA95007417C8 /* fsnitro.cpp */; }; + AB43528917D5BA95007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43528617D5BA95007417C8 /* fsnitro.cpp */; }; + AB43528A17D5BA95007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43528617D5BA95007417C8 /* fsnitro.cpp */; }; + AB43528B17D5BA95007417C8 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB43528617D5BA95007417C8 /* fsnitro.cpp */; }; AB4C4C3F16F55C64002E07CD /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C4C2A16F55C64002E07CD /* AAFilter.cpp */; }; AB4C4C4016F55C64002E07CD /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C4C2B16F55C64002E07CD /* cpu_detect_x86_gcc.cpp */; }; AB4C4C4116F55C64002E07CD /* FIFOSampleBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C4C2C16F55C64002E07CD /* FIFOSampleBuffer.cpp */; }; @@ -503,6 +514,41 @@ AB4C4C6416F55C64002E07CD /* sse_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C4C3116F55C64002E07CD /* sse_optimized.cpp */; }; AB4C4C6516F55C64002E07CD /* TDStretch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C4C3216F55C64002E07CD /* TDStretch.cpp */; }; AB4C4C6616F55C64002E07CD /* WavFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C4C3316F55C64002E07CD /* WavFile.cpp */; }; + AB4C808D17C5D7780024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */; }; + AB4C808E17C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C808F17C5D7780024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */; }; + AB4C809017C5D7780024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */; }; + AB4C809117C5D7780024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */; }; + AB4C809217C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C809317C5D7780024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */; }; + AB4C809417C5D7780024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */; }; + AB4C809517C5D7780024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */; }; + AB4C809617C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C809717C5D7780024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */; }; + AB4C809817C5D7780024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */; }; + AB4C809917C5D7780024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */; }; + AB4C809A17C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C809B17C5D7780024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */; }; + AB4C809C17C5D7780024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */; }; + AB4C809D17C5D7780024D479 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */; }; + AB4C809E17C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */; }; + AB4C809F17C5D7780024D479 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */; }; + AB4C80A017C5D7780024D479 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */; }; + AB4C80AA17C5D7A00024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80A917C5D7A00024D479 /* advanscene.cpp */; }; + AB4C80AB17C5D7A00024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80A917C5D7A00024D479 /* advanscene.cpp */; }; + AB4C80AC17C5D7A00024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80A917C5D7A00024D479 /* advanscene.cpp */; }; + AB4C80AD17C5D7A00024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80A917C5D7A00024D479 /* advanscene.cpp */; }; + AB4C80AE17C5D7A00024D479 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C80A917C5D7A00024D479 /* advanscene.cpp */; }; + AB53517F18313E3100CCD532 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53517E18313E3100CCD532 /* slot2_auto.cpp */; }; + AB53518018313E3100CCD532 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53517E18313E3100CCD532 /* slot2_auto.cpp */; }; + AB53518118313E3100CCD532 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53517E18313E3100CCD532 /* slot2_auto.cpp */; }; + AB53518218313E3100CCD532 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53517E18313E3100CCD532 /* slot2_auto.cpp */; }; + AB53518318313E3100CCD532 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53517E18313E3100CCD532 /* slot2_auto.cpp */; }; + AB53518618313E4E00CCD532 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53518518313E4E00CCD532 /* slot2.cpp */; }; + AB53518718313E4E00CCD532 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53518518313E4E00CCD532 /* slot2.cpp */; }; + AB53518818313E4E00CCD532 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53518518313E4E00CCD532 /* slot2.cpp */; }; + AB53518918313E4E00CCD532 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53518518313E4E00CCD532 /* slot2.cpp */; }; + AB53518A18313E4E00CCD532 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB53518518313E4E00CCD532 /* slot2.cpp */; }; AB5A795816D5A56000ED84B7 /* InputManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB5A795716D5A56000ED84B7 /* InputManager.mm */; }; AB5A795916D5A56000ED84B7 /* InputManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB5A795716D5A56000ED84B7 /* InputManager.mm */; }; AB5A795A16D5A56000ED84B7 /* InputManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB5A795716D5A56000ED84B7 /* InputManager.mm */; }; @@ -538,7 +584,6 @@ AB711EFC1481C35F009011C8 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */; }; AB711EFD1481C35F009011C8 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */; }; AB711EFE1481C35F009011C8 /* HID_usage_strings.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB350D3A147A1D93007165AC /* HID_usage_strings.plist */; }; - AB711F001481C35F009011C8 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; AB711F011481C35F009011C8 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; AB711F021481C35F009011C8 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; AB711F031481C35F009011C8 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -574,7 +619,6 @@ AB711F211481C35F009011C8 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; AB711F221481C35F009011C8 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; AB711F231481C35F009011C8 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - AB711F241481C35F009011C8 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; AB711F251481C35F009011C8 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; AB711F261481C35F009011C8 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; AB711F271481C35F009011C8 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; @@ -707,7 +751,6 @@ AB73A9B01507C9F500A310C8 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; AB73A9B11507C9F500A310C8 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB73A9B31507C9F500A310C8 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; - AB73A9B51507C9F500A310C8 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; AB73A9B61507C9F500A310C8 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; AB73A9B71507C9F500A310C8 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; AB73A9B81507C9F500A310C8 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -759,7 +802,6 @@ AB73A9EB1507C9F500A310C8 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; AB73A9EC1507C9F500A310C8 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; AB73A9ED1507C9F500A310C8 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - AB73A9EE1507C9F500A310C8 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; AB73A9EF1507C9F500A310C8 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; AB73A9F01507C9F500A310C8 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; AB73A9F11507C9F500A310C8 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; @@ -818,6 +860,10 @@ AB73AA2E1507C9F500A310C8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; AB73AA2F1507C9F500A310C8 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; AB75226F14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; + AB7DDA6D173DC38F004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; }; + AB7DDA6E173DC399004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; }; + AB7DDA6F173DC39E004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; }; + AB7DDA70173DC3A3004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; }; AB97C554169646D1002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; }; AB97D5E516964F3B002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; }; AB97D60916964F48002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; }; @@ -826,6 +872,11 @@ ABA03571169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; }; ABA03572169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; }; ABA03573169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; }; + ABA93EB0178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; }; + ABA93EB1178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; }; + ABA93EB2178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; }; + ABA93EB3178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; }; + ABA93EB4178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; }; ABAAFBEA172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */; }; ABAAFBEB172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */; }; ABAAFBEC172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */; }; @@ -902,7 +953,6 @@ ABAD0FB815ACE7A00000EC47 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; ABAD0FB915ACE7A00000EC47 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; ABAD0FBB15ACE7A00000EC47 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; - ABAD0FBD15ACE7A00000EC47 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; ABAD0FBE15ACE7A00000EC47 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; ABAD0FBF15ACE7A00000EC47 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; ABAD0FC015ACE7A00000EC47 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -954,7 +1004,6 @@ ABAD0FF315ACE7A00000EC47 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; ABAD0FF415ACE7A00000EC47 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; ABAD0FF515ACE7A00000EC47 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - ABAD0FF615ACE7A00000EC47 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; ABAD0FF715ACE7A00000EC47 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; ABAD0FF815ACE7A00000EC47 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; ABAD0FF915ACE7A00000EC47 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; @@ -1012,6 +1061,12 @@ ABAD104315ACE7A00000EC47 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; }; ABAD104415ACE7A00000EC47 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; ABAD104515ACE7A00000EC47 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + ABB6AD5D173A3F2B00EC2E8D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; }; + ABB9212117CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9212217CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9212317CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9212417CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */; }; + ABB9212517CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */; }; ABBCE29715ACB1FF00A2C965 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */; }; ABBCE29815ACB1FF00A2C965 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */; }; ABBF04A614B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; @@ -1145,6 +1200,7 @@ AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_RotateCW_420x420.png; path = images/Icon_RotateCW_420x420.png; sourceTree = ""; }; AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ShowHUD_420x420.png; path = images/Icon_ShowHUD_420x420.png; sourceTree = ""; }; AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speaker_420x420.png; path = images/Icon_Speaker_420x420.png; sourceTree = ""; }; + AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_passme.cpp; sourceTree = ""; }; AB213D43170CB141006DDB0F /* InputProfileController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputProfileController.h; sourceTree = ""; }; AB213D44170CB141006DDB0F /* InputProfileController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InputProfileController.mm; sourceTree = ""; }; AB213E981710D074006DDB0F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; @@ -1171,6 +1227,9 @@ AB3ACC3D14C24D5400D7D192 /* README.MAC */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.MAC; path = ../../README.MAC; sourceTree = SOURCE_ROOT; }; AB3E34C7134AF4500056477A /* cocoa_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_output.h; sourceTree = ""; }; AB3E34C8134AF4500056477A /* cocoa_output.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_output.mm; sourceTree = ""; }; + AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom_debug.cpp; sourceTree = ""; }; + AB43528517D5BA95007417C8 /* fsnitro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fsnitro.h; sourceTree = ""; }; + AB43528617D5BA95007417C8 /* fsnitro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fsnitro.cpp; sourceTree = ""; }; AB4C4C2A16F55C64002E07CD /* AAFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AAFilter.cpp; sourceTree = ""; }; AB4C4C2B16F55C64002E07CD /* cpu_detect_x86_gcc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu_detect_x86_gcc.cpp; sourceTree = ""; }; AB4C4C2C16F55C64002E07CD /* FIFOSampleBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FIFOSampleBuffer.cpp; sourceTree = ""; }; @@ -1192,6 +1251,17 @@ AB4C4C3C16F55C64002E07CD /* STTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STTypes.h; sourceTree = ""; }; AB4C4C3D16F55C64002E07CD /* TDStretch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDStretch.h; sourceTree = ""; }; AB4C4C3E16F55C64002E07CD /* WavFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WavFile.h; sourceTree = ""; }; + AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_auto.cpp; sourceTree = ""; }; + AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom.cpp; sourceTree = ""; }; + AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_mc.cpp; sourceTree = ""; }; + AB4C808A17C5D7780024D479 /* slot1comp_mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_mc.h; sourceTree = ""; }; + AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_rom.cpp; sourceTree = ""; }; + AB4C808C17C5D7780024D479 /* slot1comp_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_rom.h; sourceTree = ""; }; + AB4C80A817C5D7A00024D479 /* advanscene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = advanscene.h; sourceTree = ""; }; + AB4C80A917C5D7A00024D479 /* advanscene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = advanscene.cpp; sourceTree = ""; }; + AB53517E18313E3100CCD532 /* slot2_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_auto.cpp; sourceTree = ""; }; + AB53518418313E4E00CCD532 /* slot2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = slot2.h; path = ../slot2.h; sourceTree = SOURCE_ROOT; }; + AB53518518313E4E00CCD532 /* slot2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = slot2.cpp; path = ../slot2.cpp; sourceTree = SOURCE_ROOT; }; AB58F32B1364F44B0074C376 /* cocoa_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_file.h; sourceTree = ""; }; AB58F32C1364F44B0074C376 /* cocoa_file.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_file.mm; sourceTree = ""; }; AB5A795616D5A56000ED84B7 /* InputManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputManager.h; sourceTree = ""; }; @@ -1224,9 +1294,14 @@ ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = troubleshootingWindowDelegate.mm; sourceTree = ""; }; ABA6574914511EC90077E5E9 /* cocoa_cheat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_cheat.h; sourceTree = ""; }; ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_cheat.mm; sourceTree = ""; }; + ABA93EAE178C7D4200CBF50B /* encrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encrypt.h; path = ../encrypt.h; sourceTree = SOURCE_ROOT; }; + ABA93EAF178C7D4200CBF50B /* encrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = encrypt.cpp; path = ../encrypt.cpp; sourceTree = SOURCE_ROOT; }; ABAAFBE8172122B6005DDDBE /* FileMigrationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileMigrationDelegate.h; sourceTree = ""; }; ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileMigrationDelegate.mm; sourceTree = ""; }; ABAD104915ACE7A00000EC47 /* DeSmuME (PPC).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (PPC).app"; sourceTree = BUILT_PRODUCTS_DIR; }; + ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + ABB9211F17CEB4110049D4C5 /* slot1comp_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_protocol.h; sourceTree = ""; }; + ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_protocol.cpp; sourceTree = ""; }; ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ActionReplay_32x32.png; path = Images/Icon_ActionReplay_32x32.png; sourceTree = ""; }; ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_CodeBreaker_32x32.png; path = Images/Icon_CodeBreaker_32x32.png; sourceTree = ""; }; ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DeSmuME_32x32.png; path = Images/Icon_DeSmuME_32x32.png; sourceTree = ""; }; @@ -1257,7 +1332,6 @@ ABD104141346652500AF11D1 /* sndOSX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sndOSX.cpp; sourceTree = ""; }; ABD104271346653B00AF11D1 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; ABD10452134666DD00AF11D1 /* DeSmuME_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeSmuME_Prefix.pch; sourceTree = ""; }; - ABD1FE6B1345AC8400AF11D1 /* addons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = addons.h; path = ../addons.h; sourceTree = SOURCE_ROOT; }; ABD1FE6C1345AC8400AF11D1 /* agg2d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = agg2d.h; path = ../agg2d.h; sourceTree = SOURCE_ROOT; }; ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aggdraw.h; path = ../aggdraw.h; sourceTree = SOURCE_ROOT; }; ABD1FE6F1345AC8400AF11D1 /* armcpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armcpu.h; path = ../armcpu.h; sourceTree = SOURCE_ROOT; }; @@ -1308,7 +1382,6 @@ ABD1FE9E1345AC8400AF11D1 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../types.h; sourceTree = SOURCE_ROOT; }; ABD1FE9F1345AC8400AF11D1 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../version.h; sourceTree = SOURCE_ROOT; }; ABD1FEA01345AC8400AF11D1 /* wifi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wifi.h; path = ../wifi.h; sourceTree = SOURCE_ROOT; }; - ABD1FEA11345AC8400AF11D1 /* addons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = addons.cpp; path = ../addons.cpp; sourceTree = SOURCE_ROOT; }; ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggdraw.cpp; path = ../aggdraw.cpp; sourceTree = SOURCE_ROOT; }; ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_instructions.cpp; path = ../arm_instructions.cpp; sourceTree = SOURCE_ROOT; }; ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armcpu.cpp; path = ../armcpu.cpp; sourceTree = SOURCE_ROOT; }; @@ -1356,7 +1429,6 @@ ABD1FECF1345AC8400AF11D1 /* wifi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wifi.cpp; path = ../wifi.cpp; sourceTree = SOURCE_ROOT; }; ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_none.cpp; sourceTree = ""; }; ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_r4.cpp; sourceTree = ""; }; - ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail.cpp; sourceTree = ""; }; ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_expMemory.cpp; sourceTree = ""; }; ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_gbagame.cpp; sourceTree = ""; }; ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_guitarGrip.cpp; sourceTree = ""; }; @@ -1536,6 +1608,7 @@ AB2A9A731725F00F0062C1A1 /* OpenGL.framework in Frameworks */, AB2A9A741725F00F0062C1A1 /* libz.dylib in Frameworks */, AB2A9A751725F00F0062C1A1 /* AudioToolbox.framework in Frameworks */, + ABB6AD5D173A3F2B00EC2E8D /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1552,6 +1625,7 @@ AB2F3C4015CF9C6000858373 /* OpenGL.framework in Frameworks */, AB2F3C4115CF9C6000858373 /* libz.dylib in Frameworks */, AB213EC41710D0A0006DDB0F /* AudioToolbox.framework in Frameworks */, + AB7DDA70173DC3A3004F3D07 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1568,6 +1642,7 @@ AB711F761481C35F009011C8 /* OpenGL.framework in Frameworks */, ABC3AFCF14B8D16700D5B13D /* libz.dylib in Frameworks */, AB213E991710D074006DDB0F /* AudioToolbox.framework in Frameworks */, + AB7DDA6D173DC38F004F3D07 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1584,6 +1659,7 @@ AB73AA2E1507C9F500A310C8 /* OpenGL.framework in Frameworks */, AB73AA2F1507C9F500A310C8 /* libz.dylib in Frameworks */, AB213EC61710D0A1006DDB0F /* AudioToolbox.framework in Frameworks */, + AB7DDA6E173DC399004F3D07 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1600,6 +1676,7 @@ ABAD104415ACE7A00000EC47 /* OpenGL.framework in Frameworks */, ABAD104515ACE7A00000EC47 /* libz.dylib in Frameworks */, AB213EC51710D0A1006DDB0F /* AudioToolbox.framework in Frameworks */, + AB7DDA6F173DC39E004F3D07 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1654,6 +1731,7 @@ 29B97324FDCFA39411CA2CEA /* AppKit.framework */, AB213E981710D074006DDB0F /* AudioToolbox.framework */, ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */, + ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 29B97325FDCFA39411CA2CEA /* Foundation.framework */, AB350BA41478AC96007165AC /* IOKit.framework */, @@ -1858,7 +1936,6 @@ ABFE14F914C92FF5005D6699 /* filter */, ABD1FF761345ACFA00AF11D1 /* metaspu */, ABD1FF1C1345ACBF00AF11D1 /* utils */, - ABD1FEA11345AC8400AF11D1 /* addons.cpp */, ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */, ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */, ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */, @@ -1874,6 +1951,7 @@ ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */, ABD1FEAE1345AC8400AF11D1 /* driver.cpp */, ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */, + ABA93EAF178C7D4200CBF50B /* encrypt.cpp */, ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */, ABD1FEB11345AC8400AF11D1 /* firmware.cpp */, ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */, @@ -1899,13 +1977,13 @@ ABD1FEC71345AC8400AF11D1 /* rtc.cpp */, ABD1FEC81345AC8400AF11D1 /* saves.cpp */, ABD1FEC91345AC8400AF11D1 /* slot1.cpp */, + AB53518518313E4E00CCD532 /* slot2.cpp */, ABD1FECA1345AC8400AF11D1 /* sndsdl.cpp */, ABD1FECB1345AC8400AF11D1 /* SPU.cpp */, ABD1FECC1345AC8400AF11D1 /* texcache.cpp */, ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */, ABD1FECE1345AC8400AF11D1 /* version.cpp */, ABD1FECF1345AC8400AF11D1 /* wifi.cpp */, - ABD1FE6B1345AC8400AF11D1 /* addons.h */, ABD1FE6C1345AC8400AF11D1 /* agg2d.h */, ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */, ABBCE29415ACB1E600A2C965 /* arm_jit.h */, @@ -1923,6 +2001,7 @@ ABD1FE7A1345AC8400AF11D1 /* driver.h */, ABD1FE7C1345AC8400AF11D1 /* emufile.h */, ABD1FE7B1345AC8400AF11D1 /* emufile_types.h */, + ABA93EAE178C7D4200CBF50B /* encrypt.h */, ABD1FE7D1345AC8400AF11D1 /* FIFO.h */, ABD1FE7E1345AC8400AF11D1 /* firmware.h */, ABD1FE7F1345AC8400AF11D1 /* fs.h */, @@ -1953,6 +2032,7 @@ ABD1FE961345AC8400AF11D1 /* rtc.h */, ABD1FE971345AC8400AF11D1 /* saves.h */, ABD1FE991345AC8400AF11D1 /* slot1.h */, + AB53518418313E4E00CCD532 /* slot2.h */, ABD1FE9A1345AC8400AF11D1 /* sndsdl.h */, ABD1FE9B1345AC8400AF11D1 /* SPU.h */, ABD1FE9C1345AC8400AF11D1 /* texcache.h */, @@ -1968,16 +2048,26 @@ children = ( ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */, ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */, + AB4C808717C5D7780024D479 /* slot1_retail_auto.cpp */, + AB4C808817C5D7780024D479 /* slot1_retail_mcrom.cpp */, + AB43527117D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp */, AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */, - ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */, + AB4C808917C5D7780024D479 /* slot1comp_mc.cpp */, + ABB9212017CEB4110049D4C5 /* slot1comp_protocol.cpp */, + AB4C808B17C5D7780024D479 /* slot1comp_rom.cpp */, + AB53517E18313E3100CCD532 /* slot2_auto.cpp */, ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */, ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */, ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */, ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */, ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */, ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */, + AB126D06182ECB9500EBCF22 /* slot2_passme.cpp */, ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */, ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */, + AB4C808A17C5D7780024D479 /* slot1comp_mc.h */, + ABB9211F17CEB4110049D4C5 /* slot1comp_protocol.h */, + AB4C808C17C5D7780024D479 /* slot1comp_rom.h */, ); name = addons; path = ../addons; @@ -2001,18 +2091,22 @@ ABD1FF2E1345ACBF00AF11D1 /* libfat */, ABE670241415DE6C00E8E4C9 /* tinyxml */, ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */, + AB4C80A917C5D7A00024D479 /* advanscene.cpp */, ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */, ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */, ABD1FF291345ACBF00AF11D1 /* emufat.cpp */, + AB43528617D5BA95007417C8 /* fsnitro.cpp */, ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */, ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */, ABD1FF4C1345ACBF00AF11D1 /* task.cpp */, ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */, ABD1FF511345ACBF00AF11D1 /* xstring.cpp */, + AB4C80A817C5D7A00024D479 /* advanscene.h */, ABD1FF1E1345ACBF00AF11D1 /* ConvertUTF.h */, ABD1FF201345ACBF00AF11D1 /* datetime.h */, ABD1FF2A1345ACBF00AF11D1 /* emufat.h */, ABD1FF2B1345ACBF00AF11D1 /* emufat_types.h */, + AB43528517D5BA95007417C8 /* fsnitro.h */, ABD1FF2D1345ACBF00AF11D1 /* guid.h */, ABD1FF4B1345ACBF00AF11D1 /* md5.h */, ABD1FF4D1345ACBF00AF11D1 /* task.h */, @@ -2790,7 +2884,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; AB2F3B7B15CF9C6000858373 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2864,7 +2958,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76A7C15E0902700F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2878,7 +2972,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76A7E15E0903E00F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2892,7 +2986,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; ABE76A8015E0904E00F458AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2906,7 +3000,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; /* End PBXShellScriptBuildPhase section */ @@ -2916,7 +3010,6 @@ buildActionMask = 2147483647; files = ( AB2A99F11725F00F0062C1A1 /* ConvertUTF.c in Sources */, - AB2A99F21725F00F0062C1A1 /* addons.cpp in Sources */, AB2A99F31725F00F0062C1A1 /* arm_instructions.cpp in Sources */, AB2A99F41725F00F0062C1A1 /* armcpu.cpp in Sources */, AB2A99F51725F00F0062C1A1 /* bios.cpp in Sources */, @@ -2968,7 +3061,6 @@ AB2A9A231725F00F0062C1A1 /* slot1.cpp in Sources */, AB2A9A241725F00F0062C1A1 /* slot1_none.cpp in Sources */, AB2A9A251725F00F0062C1A1 /* slot1_r4.cpp in Sources */, - AB2A9A261725F00F0062C1A1 /* slot1_retail.cpp in Sources */, AB2A9A271725F00F0062C1A1 /* slot1_retail_nand.cpp in Sources */, AB2A9A281725F00F0062C1A1 /* slot2_expMemory.cpp in Sources */, AB2A9A291725F00F0062C1A1 /* slot2_gbagame.cpp in Sources */, @@ -3038,6 +3130,18 @@ AB2A9A691725F00F0062C1A1 /* InputProfileController.mm in Sources */, AB2A9A6A1725F00F0062C1A1 /* audiosamplegenerator.cpp in Sources */, AB2A9A6B1725F00F0062C1A1 /* FileMigrationDelegate.mm in Sources */, + ABA93EB4178C7D4200CBF50B /* encrypt.cpp in Sources */, + AB4C809D17C5D7780024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C809E17C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C809F17C5D7780024D479 /* slot1comp_mc.cpp in Sources */, + AB4C80A017C5D7780024D479 /* slot1comp_rom.cpp in Sources */, + AB4C80AE17C5D7A00024D479 /* advanscene.cpp in Sources */, + ABB9212517CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB43527617D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB43528B17D5BA95007417C8 /* fsnitro.cpp in Sources */, + AB126D0B182ECB9500EBCF22 /* slot2_passme.cpp in Sources */, + AB53518318313E3100CCD532 /* slot2_auto.cpp in Sources */, + AB53518A18313E4E00CCD532 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3046,7 +3150,6 @@ buildActionMask = 2147483647; files = ( AB2F3BC515CF9C6000858373 /* ConvertUTF.c in Sources */, - AB2F3BC715CF9C6000858373 /* addons.cpp in Sources */, AB2F3BC815CF9C6000858373 /* arm_instructions.cpp in Sources */, AB2F3BC915CF9C6000858373 /* armcpu.cpp in Sources */, AB2F3BCA15CF9C6000858373 /* bios.cpp in Sources */, @@ -3098,7 +3201,6 @@ AB2F3BFD15CF9C6000858373 /* slot1.cpp in Sources */, AB2F3BFE15CF9C6000858373 /* slot1_none.cpp in Sources */, AB2F3BFF15CF9C6000858373 /* slot1_r4.cpp in Sources */, - AB2F3C0015CF9C6000858373 /* slot1_retail.cpp in Sources */, AB2F3C0115CF9C6000858373 /* slot1_retail_nand.cpp in Sources */, AB2F3C0215CF9C6000858373 /* slot2_expMemory.cpp in Sources */, AB2F3C0315CF9C6000858373 /* slot2_gbagame.cpp in Sources */, @@ -3168,6 +3270,18 @@ AB213D46170CB141006DDB0F /* InputProfileController.mm in Sources */, AB2145241714DFF4006DDB0F /* audiosamplegenerator.cpp in Sources */, ABAAFBEB172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */, + ABA93EB1178C7D4200CBF50B /* encrypt.cpp in Sources */, + AB4C809117C5D7780024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C809217C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C809317C5D7780024D479 /* slot1comp_mc.cpp in Sources */, + AB4C809417C5D7780024D479 /* slot1comp_rom.cpp in Sources */, + AB4C80AB17C5D7A00024D479 /* advanscene.cpp in Sources */, + ABB9212217CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB43527317D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB43528817D5BA95007417C8 /* fsnitro.cpp in Sources */, + AB126D08182ECB9500EBCF22 /* slot2_passme.cpp in Sources */, + AB53518018313E3100CCD532 /* slot2_auto.cpp in Sources */, + AB53518718313E4E00CCD532 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3176,7 +3290,6 @@ buildActionMask = 2147483647; files = ( AB711F2D1481C35F009011C8 /* ConvertUTF.c in Sources */, - AB711F001481C35F009011C8 /* addons.cpp in Sources */, AB711F011481C35F009011C8 /* arm_instructions.cpp in Sources */, AB711F021481C35F009011C8 /* armcpu.cpp in Sources */, AB711F031481C35F009011C8 /* bios.cpp in Sources */, @@ -3229,7 +3342,6 @@ AB711F1C1481C35F009011C8 /* slot1.cpp in Sources */, AB711F221481C35F009011C8 /* slot1_none.cpp in Sources */, AB711F231481C35F009011C8 /* slot1_r4.cpp in Sources */, - AB711F241481C35F009011C8 /* slot1_retail.cpp in Sources */, AB711F501481C35F009011C8 /* slot1_retail_nand.cpp in Sources */, AB711F251481C35F009011C8 /* slot2_expMemory.cpp in Sources */, AB711F261481C35F009011C8 /* slot2_gbagame.cpp in Sources */, @@ -3328,6 +3440,18 @@ AB213D48170CB141006DDB0F /* InputProfileController.mm in Sources */, AB2145261714DFF4006DDB0F /* audiosamplegenerator.cpp in Sources */, ABAAFBEA172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */, + ABA93EB0178C7D4200CBF50B /* encrypt.cpp in Sources */, + AB4C808D17C5D7780024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C808E17C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C808F17C5D7780024D479 /* slot1comp_mc.cpp in Sources */, + AB4C809017C5D7780024D479 /* slot1comp_rom.cpp in Sources */, + AB4C80AA17C5D7A00024D479 /* advanscene.cpp in Sources */, + ABB9212117CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB43527217D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB43528717D5BA95007417C8 /* fsnitro.cpp in Sources */, + AB126D07182ECB9500EBCF22 /* slot2_passme.cpp in Sources */, + AB53517F18313E3100CCD532 /* slot2_auto.cpp in Sources */, + AB53518618313E4E00CCD532 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3336,7 +3460,6 @@ buildActionMask = 2147483647; files = ( AB73A9B31507C9F500A310C8 /* ConvertUTF.c in Sources */, - AB73A9B51507C9F500A310C8 /* addons.cpp in Sources */, AB73A9B61507C9F500A310C8 /* arm_instructions.cpp in Sources */, AB73A9B71507C9F500A310C8 /* armcpu.cpp in Sources */, AB73A9B81507C9F500A310C8 /* bios.cpp in Sources */, @@ -3388,7 +3511,6 @@ AB73A9EB1507C9F500A310C8 /* slot1.cpp in Sources */, AB73A9EC1507C9F500A310C8 /* slot1_none.cpp in Sources */, AB73A9ED1507C9F500A310C8 /* slot1_r4.cpp in Sources */, - AB73A9EE1507C9F500A310C8 /* slot1_retail.cpp in Sources */, AB73A9EF1507C9F500A310C8 /* slot1_retail_nand.cpp in Sources */, AB73A9F01507C9F500A310C8 /* slot2_expMemory.cpp in Sources */, AB73A9F11507C9F500A310C8 /* slot2_gbagame.cpp in Sources */, @@ -3488,6 +3610,18 @@ AB213D45170CB141006DDB0F /* InputProfileController.mm in Sources */, AB2145251714DFF4006DDB0F /* audiosamplegenerator.cpp in Sources */, ABAAFBED172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */, + ABA93EB3178C7D4200CBF50B /* encrypt.cpp in Sources */, + AB4C809917C5D7780024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C809A17C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C809B17C5D7780024D479 /* slot1comp_mc.cpp in Sources */, + AB4C809C17C5D7780024D479 /* slot1comp_rom.cpp in Sources */, + AB4C80AD17C5D7A00024D479 /* advanscene.cpp in Sources */, + ABB9212417CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB43527517D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB43528A17D5BA95007417C8 /* fsnitro.cpp in Sources */, + AB126D0A182ECB9500EBCF22 /* slot2_passme.cpp in Sources */, + AB53518218313E3100CCD532 /* slot2_auto.cpp in Sources */, + AB53518918313E4E00CCD532 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3496,7 +3630,6 @@ buildActionMask = 2147483647; files = ( ABAD0FBB15ACE7A00000EC47 /* ConvertUTF.c in Sources */, - ABAD0FBD15ACE7A00000EC47 /* addons.cpp in Sources */, ABAD0FBE15ACE7A00000EC47 /* arm_instructions.cpp in Sources */, ABAD0FBF15ACE7A00000EC47 /* armcpu.cpp in Sources */, ABAD0FC015ACE7A00000EC47 /* bios.cpp in Sources */, @@ -3548,7 +3681,6 @@ ABAD0FF315ACE7A00000EC47 /* slot1.cpp in Sources */, ABAD0FF415ACE7A00000EC47 /* slot1_none.cpp in Sources */, ABAD0FF515ACE7A00000EC47 /* slot1_r4.cpp in Sources */, - ABAD0FF615ACE7A00000EC47 /* slot1_retail.cpp in Sources */, ABAD0FF715ACE7A00000EC47 /* slot1_retail_nand.cpp in Sources */, ABAD0FF815ACE7A00000EC47 /* slot2_expMemory.cpp in Sources */, ABAD0FF915ACE7A00000EC47 /* slot2_gbagame.cpp in Sources */, @@ -3618,6 +3750,18 @@ AB213D47170CB141006DDB0F /* InputProfileController.mm in Sources */, AB2145231714DFF4006DDB0F /* audiosamplegenerator.cpp in Sources */, ABAAFBEC172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */, + ABA93EB2178C7D4200CBF50B /* encrypt.cpp in Sources */, + AB4C809517C5D7780024D479 /* slot1_retail_auto.cpp in Sources */, + AB4C809617C5D7780024D479 /* slot1_retail_mcrom.cpp in Sources */, + AB4C809717C5D7780024D479 /* slot1comp_mc.cpp in Sources */, + AB4C809817C5D7780024D479 /* slot1comp_rom.cpp in Sources */, + AB4C80AC17C5D7A00024D479 /* advanscene.cpp in Sources */, + ABB9212317CEB4110049D4C5 /* slot1comp_protocol.cpp in Sources */, + AB43527417D5BA5E007417C8 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB43528917D5BA95007417C8 /* fsnitro.cpp in Sources */, + AB126D09182ECB9500EBCF22 /* slot2_passme.cpp in Sources */, + AB53518118313E3100CCD532 /* slot2_auto.cpp in Sources */, + AB53518818313E4E00CCD532 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3817,6 +3961,7 @@ GCC_ALTIVEC_EXTENSIONS = YES; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_FAST_MATH = YES; GCC_FAST_OBJC_DISPATCH = NO; GCC_MODEL_TUNING = ""; "GCC_MODEL_TUNING[sdk=macosx10.4][arch=ppc]" = G4; @@ -3829,6 +3974,7 @@ _DEBUG, "DEBUG=1", ); + GCC_STRICT_ALIASING = YES; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_THREADSAFE_STATICS = NO; GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; @@ -3869,6 +4015,7 @@ GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS[arch=i386]" = NO; + GCC_FAST_MATH = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; "GCC_MODEL_PPC64[sdk=macosx10.5][arch=ppc64]" = YES; diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj --- desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj 2013-05-01 18:48:29.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj 2013-11-28 00:37:25.405127710 +0000 @@ -60,9 +60,18 @@ AB0F29B514BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */; }; AB0F29B614BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */; }; AB0F29B714BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */; }; + AB107685182ECB29000D6F67 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB107684182ECB29000D6F67 /* slot2_passme.cpp */; }; + AB107686182ECB29000D6F67 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB107684182ECB29000D6F67 /* slot2_passme.cpp */; }; + AB107687182ECB29000D6F67 /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB107684182ECB29000D6F67 /* slot2_passme.cpp */; }; AB15CA7214A29EE500B8A6A4 /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */; }; AB181D0013B66889006CA82D /* datetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */; }; AB1949DB15034F900098793E /* OESoundInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABB3C6401501BB8300E0C22E /* OESoundInterface.mm */; }; + AB1B702C18313D7700E64141 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B702B18313D7700E64141 /* slot2_auto.cpp */; }; + AB1B702D18313D7700E64141 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B702B18313D7700E64141 /* slot2_auto.cpp */; }; + AB1B702E18313D7700E64141 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B702B18313D7700E64141 /* slot2_auto.cpp */; }; + AB1B703018313D9000E64141 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B702F18313D9000E64141 /* slot2.cpp */; }; + AB1B703118313D9000E64141 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B702F18313D9000E64141 /* slot2.cpp */; }; + AB1B703218313D9000E64141 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B702F18313D9000E64141 /* slot2.cpp */; }; AB1B9E631501A78000464647 /* coreaudiosound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */; }; AB1B9E661501A78000464647 /* ringbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E601501A78000464647 /* ringbuffer.cpp */; }; AB1F468413A0ADE400B80DE6 /* SndOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */; }; @@ -74,6 +83,7 @@ AB29B33216D4BEBF000EF671 /* InputManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB29B33016D4BEBF000EF671 /* InputManager.mm */; }; AB350BA51478AC96007165AC /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; }; AB350D3B147A1D93007165AC /* HID_usage_strings.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB350D3A147A1D93007165AC /* HID_usage_strings.plist */; }; + AB3701E5173A3FBF006E573E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB74EC891738499C0026C41E /* Carbon.framework */; }; AB3A655E16CC5421001F5D4A /* EmuControllerDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A655D16CC5421001F5D4A /* EmuControllerDelegate.mm */; }; AB3A655F16CC5421001F5D4A /* EmuControllerDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A655D16CC5421001F5D4A /* EmuControllerDelegate.mm */; }; AB3A656116CC5438001F5D4A /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A656016CC5438001F5D4A /* cocoa_GPU.mm */; }; @@ -177,6 +187,12 @@ AB405694169F5DCC0016AC3E /* x86util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405676169F5DCC0016AC3E /* x86util.cpp */; }; AB405695169F5DCC0016AC3E /* x86util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405676169F5DCC0016AC3E /* x86util.cpp */; }; AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + AB497A9B17D583EE0045B888 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB497A9A17D583EE0045B888 /* fsnitro.cpp */; }; + AB497A9C17D583EE0045B888 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB497A9A17D583EE0045B888 /* fsnitro.cpp */; }; + AB497A9D17D583EE0045B888 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB497A9A17D583EE0045B888 /* fsnitro.cpp */; }; + AB497A9F17D584570045B888 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB497A9E17D584570045B888 /* slot1_retail_mcrom_debug.cpp */; }; + AB497AA017D584570045B888 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB497A9E17D584570045B888 /* slot1_retail_mcrom_debug.cpp */; }; + AB497AA117D584570045B888 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB497A9E17D584570045B888 /* slot1_retail_mcrom_debug.cpp */; }; AB4FCEBD1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; }; AB4FCEBE1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; }; AB4FCEBF1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; }; @@ -187,6 +203,7 @@ AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; AB68A0DD16B139BC00DE0546 /* OGLRender_3_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */; }; AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; + AB74EC8A1738499C0026C41E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB74EC891738499C0026C41E /* Carbon.framework */; }; AB75226E14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB796C9C15CDCB0F00C59155 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */; }; AB796C9F15CDCB0F00C59155 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */; }; @@ -263,7 +280,6 @@ AB796CED15CDCBA200C59155 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB796CEF15CDCBA200C59155 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; AB796CF015CDCBA200C59155 /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */; }; - AB796CF115CDCBA200C59155 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; AB796CF215CDCBA200C59155 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; AB796CF315CDCBA200C59155 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; AB796CF415CDCBA200C59155 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -321,7 +337,6 @@ AB796D2815CDCBA200C59155 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; AB796D2915CDCBA200C59155 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; AB796D2A15CDCBA200C59155 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - AB796D2B15CDCBA200C59155 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; AB796D2C15CDCBA200C59155 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; AB796D2D15CDCBA200C59155 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; AB796D2E15CDCBA200C59155 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; @@ -422,7 +437,6 @@ ABB3C6781501C04F00E0C22E /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; ABB3C6791501C04F00E0C22E /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; ABB3C67A1501C04F00E0C22E /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; - ABB3C67B1501C04F00E0C22E /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; ABB3C67C1501C04F00E0C22E /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; ABB3C67D1501C04F00E0C22E /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; ABB3C67E1501C04F00E0C22E /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; @@ -478,7 +492,6 @@ ABB3C6B01501C04F00E0C22E /* task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4C1345ACBF00AF11D1 /* task.cpp */; }; ABB3C6B11501C04F00E0C22E /* vfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */; }; ABB3C6B21501C04F00E0C22E /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF511345ACBF00AF11D1 /* xstring.cpp */; }; - ABB3C6B31501C04F00E0C22E /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; ABB3C6B41501C04F00E0C22E /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; ABB3C6B51501C04F00E0C22E /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; ABB3C6B61501C04F00E0C22E /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -540,7 +553,6 @@ ABD10AEC1715FCDD00B5729D /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE61715FCDD00B5729D /* mic_ext.cpp */; }; ABD10AED17160C9300B5729D /* ringbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E601501A78000464647 /* ringbuffer.cpp */; }; ABD10AEE17160CDD00B5729D /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; }; - ABD1FED01345AC8400AF11D1 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; ABD1FED21345AC8400AF11D1 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; ABD1FED31345AC8400AF11D1 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; ABD1FED41345AC8400AF11D1 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; @@ -576,7 +588,6 @@ ABD1FEFE1345AC8400AF11D1 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; ABD1FF0B1345AC9C00AF11D1 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; ABD1FF0C1345AC9C00AF11D1 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; - ABD1FF0D1345AC9C00AF11D1 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; ABD1FF0E1345AC9C00AF11D1 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; ABD1FF0F1345AC9C00AF11D1 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; ABD1FF101345AC9C00AF11D1 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; @@ -610,6 +621,9 @@ ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; ABD42047172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; + ABD798C8178C7B9000089F19 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD798C7178C7B9000089F19 /* encrypt.cpp */; }; + ABD798C9178C7B9000089F19 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD798C7178C7B9000089F19 /* encrypt.cpp */; }; + ABD798CA178C7B9000089F19 /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD798C7178C7B9000089F19 /* encrypt.cpp */; }; ABE5DE95143F781900835AD8 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; ABE5DFE5143FB1DA00835AD8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; ABE6702B1415DE6C00E8E4C9 /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; @@ -625,6 +639,9 @@ ABEFCF64141AB82A000CC0CD /* AppIcon_SaveState.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */; }; ABF2B9FB16904133000FF7C0 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */; }; ABF2B9FC16904133000FF7C0 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */; }; + ABF55C2817CEB38F00A193FD /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABF55C2717CEB38F00A193FD /* slot1comp_protocol.cpp */; }; + ABF55C2917CEB38F00A193FD /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABF55C2717CEB38F00A193FD /* slot1comp_protocol.cpp */; }; + ABF55C2A17CEB38F00A193FD /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABF55C2717CEB38F00A193FD /* slot1comp_protocol.cpp */; }; ABFE150714C92FF5005D6699 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */; }; ABFE150814C92FF5005D6699 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FB14C92FF5005D6699 /* bilinear.cpp */; }; ABFE150914C92FF5005D6699 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FC14C92FF5005D6699 /* epx.cpp */; }; @@ -632,6 +649,21 @@ ABFE150B14C92FF5005D6699 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150014C92FF5005D6699 /* hq4x.cpp */; }; ABFE150D14C92FF5005D6699 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150414C92FF5005D6699 /* lq2x.cpp */; }; ABFE150E14C92FF5005D6699 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150614C92FF5005D6699 /* scanline.cpp */; }; + ABFE7C8217C5CFE70028DC56 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8117C5CFE70028DC56 /* advanscene.cpp */; }; + ABFE7C8317C5CFE70028DC56 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8117C5CFE70028DC56 /* advanscene.cpp */; }; + ABFE7C8417C5CFE70028DC56 /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8117C5CFE70028DC56 /* advanscene.cpp */; }; + ABFE7C8B17C5D03C0028DC56 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8717C5D03C0028DC56 /* slot1_retail_auto.cpp */; }; + ABFE7C8C17C5D03C0028DC56 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8717C5D03C0028DC56 /* slot1_retail_auto.cpp */; }; + ABFE7C8D17C5D03C0028DC56 /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8717C5D03C0028DC56 /* slot1_retail_auto.cpp */; }; + ABFE7C8E17C5D03C0028DC56 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8817C5D03C0028DC56 /* slot1_retail_mcrom.cpp */; }; + ABFE7C8F17C5D03C0028DC56 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8817C5D03C0028DC56 /* slot1_retail_mcrom.cpp */; }; + ABFE7C9017C5D03C0028DC56 /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8817C5D03C0028DC56 /* slot1_retail_mcrom.cpp */; }; + ABFE7C9117C5D03C0028DC56 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8917C5D03C0028DC56 /* slot1comp_mc.cpp */; }; + ABFE7C9217C5D03C0028DC56 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8917C5D03C0028DC56 /* slot1comp_mc.cpp */; }; + ABFE7C9317C5D03C0028DC56 /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8917C5D03C0028DC56 /* slot1comp_mc.cpp */; }; + ABFE7C9417C5D03C0028DC56 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8A17C5D03C0028DC56 /* slot1comp_rom.cpp */; }; + ABFE7C9517C5D03C0028DC56 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8A17C5D03C0028DC56 /* slot1comp_rom.cpp */; }; + ABFE7C9617C5D03C0028DC56 /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7C8A17C5D03C0028DC56 /* slot1comp_rom.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -693,6 +725,10 @@ AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_RotateCW_420x420.png; path = images/Icon_RotateCW_420x420.png; sourceTree = ""; }; AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ShowHUD_420x420.png; path = images/Icon_ShowHUD_420x420.png; sourceTree = ""; }; AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speaker_420x420.png; path = images/Icon_Speaker_420x420.png; sourceTree = ""; }; + AB107684182ECB29000D6F67 /* slot2_passme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_passme.cpp; sourceTree = ""; }; + AB1B702B18313D7700E64141 /* slot2_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_auto.cpp; sourceTree = ""; }; + AB1B702F18313D9000E64141 /* slot2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = slot2.cpp; path = ../slot2.cpp; sourceTree = ""; }; + AB1B703318313D9F00E64141 /* slot2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = slot2.h; path = ../slot2.h; sourceTree = ""; }; AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coreaudiosound.cpp; sourceTree = ""; }; AB1B9E601501A78000464647 /* ringbuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ringbuffer.cpp; sourceTree = ""; }; AB1B9E611501A78000464647 /* coreaudiosound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = coreaudiosound.h; sourceTree = ""; }; @@ -789,6 +825,9 @@ AB405675169F5DCC0016AC3E /* x86operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86operand.h; sourceTree = ""; }; AB405676169F5DCC0016AC3E /* x86util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86util.cpp; sourceTree = ""; }; AB405677169F5DCC0016AC3E /* x86util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86util.h; sourceTree = ""; }; + AB497A9917D583EE0045B888 /* fsnitro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fsnitro.h; sourceTree = ""; }; + AB497A9A17D583EE0045B888 /* fsnitro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fsnitro.cpp; sourceTree = ""; }; + AB497A9E17D584570045B888 /* slot1_retail_mcrom_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom_debug.cpp; sourceTree = ""; }; AB4FCEBC1692AB82000F498F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; AB5785FC17176AFC002C5FC7 /* OpenEmuBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenEmuBase.framework; path = openemu/OpenEmuBase.framework; sourceTree = ""; }; AB58F32B1364F44B0074C376 /* cocoa_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_file.h; sourceTree = ""; }; @@ -796,6 +835,7 @@ AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = FileTypeInfo.plist; sourceTree = ""; }; AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OGLRender_3_2.cpp; path = ../OGLRender_3_2.cpp; sourceTree = ""; }; AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_nand.cpp; sourceTree = ""; }; + AB74EC891738499C0026C41E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_FirmwareConfig.icns; sourceTree = ""; }; AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_jit.cpp; path = ../arm_jit.cpp; sourceTree = ""; }; AB796CA115CDCB4600C59155 /* arm_jit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = arm_jit.h; path = ../arm_jit.h; sourceTree = ""; }; @@ -877,7 +917,6 @@ ABD10AE41715FCDD00B5729D /* mic_ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mic_ext.h; sourceTree = SOURCE_ROOT; }; ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audiosamplegenerator.cpp; sourceTree = SOURCE_ROOT; }; ABD10AE61715FCDD00B5729D /* mic_ext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mic_ext.cpp; sourceTree = SOURCE_ROOT; }; - ABD1FE6B1345AC8400AF11D1 /* addons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = addons.h; path = ../addons.h; sourceTree = SOURCE_ROOT; }; ABD1FE6C1345AC8400AF11D1 /* agg2d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = agg2d.h; path = ../agg2d.h; sourceTree = SOURCE_ROOT; }; ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aggdraw.h; path = ../aggdraw.h; sourceTree = SOURCE_ROOT; }; ABD1FE6F1345AC8400AF11D1 /* armcpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armcpu.h; path = ../armcpu.h; sourceTree = SOURCE_ROOT; }; @@ -928,7 +967,6 @@ ABD1FE9E1345AC8400AF11D1 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../types.h; sourceTree = SOURCE_ROOT; }; ABD1FE9F1345AC8400AF11D1 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../version.h; sourceTree = SOURCE_ROOT; }; ABD1FEA01345AC8400AF11D1 /* wifi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wifi.h; path = ../wifi.h; sourceTree = SOURCE_ROOT; }; - ABD1FEA11345AC8400AF11D1 /* addons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = addons.cpp; path = ../addons.cpp; sourceTree = SOURCE_ROOT; }; ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggdraw.cpp; path = ../aggdraw.cpp; sourceTree = SOURCE_ROOT; }; ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_instructions.cpp; path = ../arm_instructions.cpp; sourceTree = SOURCE_ROOT; }; ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armcpu.cpp; path = ../armcpu.cpp; sourceTree = SOURCE_ROOT; }; @@ -976,7 +1014,6 @@ ABD1FECF1345AC8400AF11D1 /* wifi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wifi.cpp; path = ../wifi.cpp; sourceTree = SOURCE_ROOT; }; ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_none.cpp; sourceTree = ""; }; ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_r4.cpp; sourceTree = ""; }; - ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail.cpp; sourceTree = ""; }; ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_expMemory.cpp; sourceTree = ""; }; ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_gbagame.cpp; sourceTree = ""; }; ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_guitarGrip.cpp; sourceTree = ""; }; @@ -1046,6 +1083,8 @@ ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timestretcher.cpp; sourceTree = ""; }; ABD42045172319D1006A9B46 /* FileMigrationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileMigrationDelegate.h; sourceTree = ""; }; ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileMigrationDelegate.mm; sourceTree = ""; }; + ABD798C6178C7B9000089F19 /* encrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encrypt.h; path = ../encrypt.h; sourceTree = ""; }; + ABD798C7178C7B9000089F19 /* encrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = encrypt.cpp; path = ../encrypt.cpp; sourceTree = ""; }; ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_videofilter.h; sourceTree = ""; }; ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_videofilter.mm; sourceTree = ""; }; ABE670251415DE6C00E8E4C9 /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = ""; }; @@ -1062,6 +1101,8 @@ ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_SaveState.icns; sourceTree = ""; }; ABF2B9F81690412A000FF7C0 /* troubleshootingWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = troubleshootingWindowDelegate.h; sourceTree = ""; }; ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = troubleshootingWindowDelegate.mm; sourceTree = ""; }; + ABF55C2617CEB38F00A193FD /* slot1comp_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_protocol.h; sourceTree = ""; }; + ABF55C2717CEB38F00A193FD /* slot1comp_protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_protocol.cpp; sourceTree = ""; }; ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 2xsai.cpp; sourceTree = ""; }; ABFE14FB14C92FF5005D6699 /* bilinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bilinear.cpp; sourceTree = ""; }; ABFE14FC14C92FF5005D6699 /* epx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = epx.cpp; sourceTree = ""; }; @@ -1074,6 +1115,14 @@ ABFE150414C92FF5005D6699 /* lq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lq2x.cpp; sourceTree = ""; }; ABFE150514C92FF5005D6699 /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lq2x.h; sourceTree = ""; }; ABFE150614C92FF5005D6699 /* scanline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scanline.cpp; sourceTree = ""; }; + ABFE7C8017C5CFE70028DC56 /* advanscene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = advanscene.h; sourceTree = ""; }; + ABFE7C8117C5CFE70028DC56 /* advanscene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = advanscene.cpp; sourceTree = ""; }; + ABFE7C8517C5D03C0028DC56 /* slot1comp_mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_mc.h; sourceTree = ""; }; + ABFE7C8617C5D03C0028DC56 /* slot1comp_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_rom.h; sourceTree = ""; }; + ABFE7C8717C5D03C0028DC56 /* slot1_retail_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_auto.cpp; sourceTree = ""; }; + ABFE7C8817C5D03C0028DC56 /* slot1_retail_mcrom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom.cpp; sourceTree = ""; }; + ABFE7C8917C5D03C0028DC56 /* slot1comp_mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_mc.cpp; sourceTree = ""; }; + ABFE7C8A17C5D03C0028DC56 /* slot1comp_rom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_rom.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1090,6 +1139,7 @@ AB350BA51478AC96007165AC /* IOKit.framework in Frameworks */, ABC570D5134431DA00E7B0B1 /* OpenGL.framework in Frameworks */, AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */, + AB3701E5173A3FBF006E573E /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1101,6 +1151,7 @@ AB796D6615CDCBA200C59155 /* AppKit.framework in Frameworks */, ABACB8DC1710B621003B845D /* AudioToolbox.framework in Frameworks */, AB796D6715CDCBA200C59155 /* AudioUnit.framework in Frameworks */, + AB74EC8A1738499C0026C41E /* Carbon.framework in Frameworks */, AB796D6815CDCBA200C59155 /* Cocoa.framework in Frameworks */, AB796D6915CDCBA200C59155 /* Foundation.framework in Frameworks */, AB796D6A15CDCBA200C59155 /* IOKit.framework in Frameworks */, @@ -1178,6 +1229,7 @@ 29B97324FDCFA39411CA2CEA /* AppKit.framework */, ABACB8DB1710B621003B845D /* AudioToolbox.framework */, ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */, + AB74EC891738499C0026C41E /* Carbon.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 29B97325FDCFA39411CA2CEA /* Foundation.framework */, AB350BA41478AC96007165AC /* IOKit.framework */, @@ -1394,11 +1446,11 @@ ABB3C63A1501BB8300E0C22E /* openemu */ = { isa = PBXGroup; children = ( - ABB3C6401501BB8300E0C22E /* OESoundInterface.mm */, ABB3C63D1501BB8300E0C22E /* NDSGameCore.h */, ABB3C63F1501BB8300E0C22E /* OENDSSystemResponderClient.h */, ABB3C6411501BB8300E0C22E /* OESoundInterface.h */, ABB3C63E1501BB8300E0C22E /* NDSGameCore.mm */, + ABB3C6401501BB8300E0C22E /* OESoundInterface.mm */, ABB3C63B1501BB8300E0C22E /* DeSmuME_Prefix_OpenEmu.pch */, ABB3C63C1501BB8300E0C22E /* Info (OpenEmu Plug-in).plist */, ); @@ -1473,7 +1525,6 @@ ABFE14F914C92FF5005D6699 /* filter */, ABD1FF761345ACFA00AF11D1 /* metaspu */, ABD1FF1C1345ACBF00AF11D1 /* utils */, - ABD1FEA11345AC8400AF11D1 /* addons.cpp */, ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */, ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */, AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */, @@ -1489,6 +1540,7 @@ ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */, ABD1FEAE1345AC8400AF11D1 /* driver.cpp */, ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */, + ABD798C7178C7B9000089F19 /* encrypt.cpp */, ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */, ABD1FEB11345AC8400AF11D1 /* firmware.cpp */, ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */, @@ -1515,13 +1567,13 @@ ABD1FEC71345AC8400AF11D1 /* rtc.cpp */, ABD1FEC81345AC8400AF11D1 /* saves.cpp */, ABD1FEC91345AC8400AF11D1 /* slot1.cpp */, + AB1B702F18313D9000E64141 /* slot2.cpp */, ABD1FECA1345AC8400AF11D1 /* sndsdl.cpp */, ABD1FECB1345AC8400AF11D1 /* SPU.cpp */, ABD1FECC1345AC8400AF11D1 /* texcache.cpp */, ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */, ABD1FECE1345AC8400AF11D1 /* version.cpp */, ABD1FECF1345AC8400AF11D1 /* wifi.cpp */, - ABD1FE6B1345AC8400AF11D1 /* addons.h */, ABD1FE6C1345AC8400AF11D1 /* agg2d.h */, ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */, ABD1FE6F1345AC8400AF11D1 /* armcpu.h */, @@ -1539,6 +1591,7 @@ ABD1FE7A1345AC8400AF11D1 /* driver.h */, ABD1FE7C1345AC8400AF11D1 /* emufile.h */, ABD1FE7B1345AC8400AF11D1 /* emufile_types.h */, + ABD798C6178C7B9000089F19 /* encrypt.h */, ABD1FE7D1345AC8400AF11D1 /* FIFO.h */, ABD1FE7E1345AC8400AF11D1 /* firmware.h */, ABD1FE7F1345AC8400AF11D1 /* fs.h */, @@ -1570,6 +1623,7 @@ ABD1FE961345AC8400AF11D1 /* rtc.h */, ABD1FE971345AC8400AF11D1 /* saves.h */, ABD1FE991345AC8400AF11D1 /* slot1.h */, + AB1B703318313D9F00E64141 /* slot2.h */, ABD1FE9A1345AC8400AF11D1 /* sndsdl.h */, ABD1FE9B1345AC8400AF11D1 /* SPU.h */, ABD1FE9C1345AC8400AF11D1 /* texcache.h */, @@ -1585,16 +1639,26 @@ children = ( ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */, ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */, + ABFE7C8717C5D03C0028DC56 /* slot1_retail_auto.cpp */, + ABFE7C8817C5D03C0028DC56 /* slot1_retail_mcrom.cpp */, + AB497A9E17D584570045B888 /* slot1_retail_mcrom_debug.cpp */, AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */, - ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */, + ABFE7C8917C5D03C0028DC56 /* slot1comp_mc.cpp */, + ABF55C2717CEB38F00A193FD /* slot1comp_protocol.cpp */, + ABFE7C8A17C5D03C0028DC56 /* slot1comp_rom.cpp */, + AB1B702B18313D7700E64141 /* slot2_auto.cpp */, ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */, ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */, ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */, ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */, ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */, ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */, + AB107684182ECB29000D6F67 /* slot2_passme.cpp */, ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */, ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */, + ABFE7C8517C5D03C0028DC56 /* slot1comp_mc.h */, + ABF55C2617CEB38F00A193FD /* slot1comp_protocol.h */, + ABFE7C8617C5D03C0028DC56 /* slot1comp_rom.h */, ); name = addons; path = ../addons; @@ -1618,18 +1682,22 @@ ABD1FF2E1345ACBF00AF11D1 /* libfat */, ABE670241415DE6C00E8E4C9 /* tinyxml */, ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */, + ABFE7C8117C5CFE70028DC56 /* advanscene.cpp */, ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */, ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */, ABD1FF291345ACBF00AF11D1 /* emufat.cpp */, + AB497A9A17D583EE0045B888 /* fsnitro.cpp */, ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */, ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */, ABD1FF4C1345ACBF00AF11D1 /* task.cpp */, ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */, ABD1FF511345ACBF00AF11D1 /* xstring.cpp */, + ABFE7C8017C5CFE70028DC56 /* advanscene.h */, ABD1FF1E1345ACBF00AF11D1 /* ConvertUTF.h */, ABD1FF201345ACBF00AF11D1 /* datetime.h */, ABD1FF2A1345ACBF00AF11D1 /* emufat.h */, ABD1FF2B1345ACBF00AF11D1 /* emufat_types.h */, + AB497A9917D583EE0045B888 /* fsnitro.h */, ABD1FF2D1345ACBF00AF11D1 /* guid.h */, ABD1FF4B1345ACBF00AF11D1 /* md5.h */, ABD1FF4D1345ACBF00AF11D1 /* task.h */, @@ -1734,11 +1802,11 @@ isa = PBXGroup; children = ( ABE670251415DE6C00E8E4C9 /* tinystr.cpp */, - ABE670261415DE6C00E8E4C9 /* tinystr.h */, ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */, - ABE670281415DE6C00E8E4C9 /* tinyxml.h */, ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */, ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */, + ABE670261415DE6C00E8E4C9 /* tinystr.h */, + ABE670281415DE6C00E8E4C9 /* tinyxml.h */, ); path = tinyxml; sourceTree = ""; @@ -2058,7 +2126,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; AB2DF23415E0838600B4D0BC /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2072,7 +2140,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; AB2DF23515E0839D00B4D0BC /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2086,7 +2154,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"${SRCROOT}/../../\"\nREV=`svnversion -n`\nprintf \"// REVISION TRACKING\\n\\\n// This file is auto-generated.\\n\\\n// Do not commit this file to the code repository!\\n\\\n#define SVN_REV $REV\\n\\\n#define SVN_REV_STR \\\"$REV\\\"\\n\" > ./src/svnrev.h"; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; }; AB75221714C79884009B97B3 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2127,7 +2195,6 @@ files = ( ABD1FF531345ACBF00AF11D1 /* ConvertUTF.c in Sources */, ABAD3E7113AF1D6D00502E1E /* AAFilter.cpp in Sources */, - ABD1FED01345AC8400AF11D1 /* addons.cpp in Sources */, ABD1FED21345AC8400AF11D1 /* arm_instructions.cpp in Sources */, ABD1FED31345AC8400AF11D1 /* armcpu.cpp in Sources */, ABD1FED41345AC8400AF11D1 /* bios.cpp in Sources */, @@ -2184,7 +2251,6 @@ ABD1FEF81345AC8400AF11D1 /* slot1.cpp in Sources */, ABD1FF0B1345AC9C00AF11D1 /* slot1_none.cpp in Sources */, ABD1FF0C1345AC9C00AF11D1 /* slot1_r4.cpp in Sources */, - ABD1FF0D1345AC9C00AF11D1 /* slot1_retail.cpp in Sources */, AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */, ABD1FF0E1345AC9C00AF11D1 /* slot2_expMemory.cpp in Sources */, ABD1FF0F1345AC9C00AF11D1 /* slot2_gbagame.cpp in Sources */, @@ -2280,6 +2346,18 @@ ABD10AE81715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */, ABD10AEB1715FCDD00B5729D /* mic_ext.cpp in Sources */, ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */, + ABD798C9178C7B9000089F19 /* encrypt.cpp in Sources */, + ABFE7C8317C5CFE70028DC56 /* advanscene.cpp in Sources */, + ABFE7C8C17C5D03C0028DC56 /* slot1_retail_auto.cpp in Sources */, + ABFE7C8F17C5D03C0028DC56 /* slot1_retail_mcrom.cpp in Sources */, + ABFE7C9217C5D03C0028DC56 /* slot1comp_mc.cpp in Sources */, + ABFE7C9517C5D03C0028DC56 /* slot1comp_rom.cpp in Sources */, + ABF55C2917CEB38F00A193FD /* slot1comp_protocol.cpp in Sources */, + AB497A9C17D583EE0045B888 /* fsnitro.cpp in Sources */, + AB497AA017D584570045B888 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB107686182ECB29000D6F67 /* slot2_passme.cpp in Sources */, + AB1B702D18313D7700E64141 /* slot2_auto.cpp in Sources */, + AB1B703118313D9000E64141 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2289,7 +2367,6 @@ files = ( AB796CEF15CDCBA200C59155 /* ConvertUTF.c in Sources */, AB796CF015CDCBA200C59155 /* AAFilter.cpp in Sources */, - AB796CF115CDCBA200C59155 /* addons.cpp in Sources */, AB796CF215CDCBA200C59155 /* arm_instructions.cpp in Sources */, AB796CF315CDCBA200C59155 /* armcpu.cpp in Sources */, AB796CF415CDCBA200C59155 /* bios.cpp in Sources */, @@ -2347,7 +2424,6 @@ AB796D2815CDCBA200C59155 /* slot1.cpp in Sources */, AB796D2915CDCBA200C59155 /* slot1_none.cpp in Sources */, AB796D2A15CDCBA200C59155 /* slot1_r4.cpp in Sources */, - AB796D2B15CDCBA200C59155 /* slot1_retail.cpp in Sources */, AB796D2C15CDCBA200C59155 /* slot1_retail_nand.cpp in Sources */, AB796D2D15CDCBA200C59155 /* slot2_expMemory.cpp in Sources */, AB796D2E15CDCBA200C59155 /* slot2_gbagame.cpp in Sources */, @@ -2441,6 +2517,18 @@ ABD10AE71715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */, ABD10AEA1715FCDD00B5729D /* mic_ext.cpp in Sources */, ABD42047172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */, + ABD798C8178C7B9000089F19 /* encrypt.cpp in Sources */, + ABFE7C8217C5CFE70028DC56 /* advanscene.cpp in Sources */, + ABFE7C8B17C5D03C0028DC56 /* slot1_retail_auto.cpp in Sources */, + ABFE7C8E17C5D03C0028DC56 /* slot1_retail_mcrom.cpp in Sources */, + ABFE7C9117C5D03C0028DC56 /* slot1comp_mc.cpp in Sources */, + ABFE7C9417C5D03C0028DC56 /* slot1comp_rom.cpp in Sources */, + ABF55C2817CEB38F00A193FD /* slot1comp_protocol.cpp in Sources */, + AB497A9B17D583EE0045B888 /* fsnitro.cpp in Sources */, + AB497A9F17D584570045B888 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB107685182ECB29000D6F67 /* slot2_passme.cpp in Sources */, + AB1B702C18313D7700E64141 /* slot2_auto.cpp in Sources */, + AB1B703018313D9000E64141 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2458,7 +2546,6 @@ ABB3C6781501C04F00E0C22E /* slot1_none.cpp in Sources */, ABB3C6791501C04F00E0C22E /* slot1_r4.cpp in Sources */, ABB3C67A1501C04F00E0C22E /* slot1_retail_nand.cpp in Sources */, - ABB3C67B1501C04F00E0C22E /* slot1_retail.cpp in Sources */, ABB3C67C1501C04F00E0C22E /* slot2_expMemory.cpp in Sources */, ABB3C67D1501C04F00E0C22E /* slot2_gbagame.cpp in Sources */, ABB3C67E1501C04F00E0C22E /* slot2_guitarGrip.cpp in Sources */, @@ -2514,7 +2601,6 @@ ABB3C6B01501C04F00E0C22E /* task.cpp in Sources */, ABB3C6B11501C04F00E0C22E /* vfat.cpp in Sources */, ABB3C6B21501C04F00E0C22E /* xstring.cpp in Sources */, - ABB3C6B31501C04F00E0C22E /* addons.cpp in Sources */, ABB3C6B41501C04F00E0C22E /* arm_instructions.cpp in Sources */, ABB3C6B51501C04F00E0C22E /* armcpu.cpp in Sources */, ABB3C6B61501C04F00E0C22E /* bios.cpp in Sources */, @@ -2591,6 +2677,18 @@ ABD10AEE17160CDD00B5729D /* cocoa_input.mm in Sources */, AB5785F817175F16002C5FC7 /* cocoa_core.mm in Sources */, AB5785F9171760D2002C5FC7 /* cocoa_output.mm in Sources */, + ABD798CA178C7B9000089F19 /* encrypt.cpp in Sources */, + ABFE7C8417C5CFE70028DC56 /* advanscene.cpp in Sources */, + ABFE7C8D17C5D03C0028DC56 /* slot1_retail_auto.cpp in Sources */, + ABFE7C9017C5D03C0028DC56 /* slot1_retail_mcrom.cpp in Sources */, + ABFE7C9317C5D03C0028DC56 /* slot1comp_mc.cpp in Sources */, + ABFE7C9617C5D03C0028DC56 /* slot1comp_rom.cpp in Sources */, + ABF55C2A17CEB38F00A193FD /* slot1comp_protocol.cpp in Sources */, + AB497A9D17D583EE0045B888 /* fsnitro.cpp in Sources */, + AB497AA117D584570045B888 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB107687182ECB29000D6F67 /* slot2_passme.cpp in Sources */, + AB1B702E18313D7700E64141 /* slot2_auto.cpp in Sources */, + AB1B703218313D9000E64141 /* slot2.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2727,6 +2825,7 @@ DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_DYNAMIC_NO_PIC = NO; + GCC_FAST_MATH = YES; GCC_FAST_OBJC_DISPATCH = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -2771,6 +2870,7 @@ COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; GCC_DYNAMIC_NO_PIC = YES; + GCC_FAST_MATH = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_OPTIMIZATION_LEVEL = 3; diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme --- desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme 2013-11-28 00:37:25.405127710 +0000 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme --- desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme 2013-11-28 00:37:25.405127710 +0000 @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme --- desmume-0.9.9/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (XCode 4).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme 2013-11-28 00:37:25.409127773 +0000 @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj --- desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj 2013-11-28 00:37:25.489129066 +0000 @@ -0,0 +1,2943 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AB00E87B14205EAE00DE561F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87914205EAE00DE561F /* InfoPlist.strings */; }; + AB00E87E14205EBC00DE561F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87C14205EBC00DE561F /* MainMenu.xib */; }; + AB01005E170D07B000D70FBE /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB01005D170D07B000D70FBE /* InputProfileController.mm */; }; + AB01005F170D07B000D70FBE /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB01005D170D07B000D70FBE /* InputProfileController.mm */; }; + AB010060170D07B000D70FBE /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB01005D170D07B000D70FBE /* InputProfileController.mm */; }; + AB02475C13886BF300E9F9AB /* KeyNames.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB02475B13886BF300E9F9AB /* KeyNames.plist */; }; + AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */; }; + AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */; }; + AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */; }; + AB0F290514BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */; }; + AB0F291D14BE6F4A009ABC6F /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; }; + AB0F293814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */; }; + AB0F293914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */; }; + AB0F293A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */; }; + AB0F293B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */; }; + AB0F293C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */; }; + AB0F293D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */; }; + AB0F293E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */; }; + AB0F293F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */; }; + AB0F294014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */; }; + AB0F294114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */; }; + AB0F294214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */; }; + AB0F294314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */; }; + AB0F294414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */; }; + AB0F294514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */; }; + AB0F294614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */; }; + AB0F294714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */; }; + AB0F296D14BE705D009ABC6F /* Icon_ActionReplay_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */; }; + AB0F296E14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */; }; + AB0F297A14BE70BC009ABC6F /* VideoFilterPreview_64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */; }; + AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */; }; + AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */; }; + AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */; }; + AB0F298F14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */; }; + AB0F29A614BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */; }; + AB0F29A714BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */; }; + AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */; }; + AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */; }; + AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */; }; + AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */; }; + AB0F29AC14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */; }; + AB0F29AD14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */; }; + AB0F29AE14BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */; }; + AB0F29AF14BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */; }; + AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */; }; + AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */; }; + AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */; }; + AB0F29B314BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */; }; + AB0F29B414BE7213009ABC6F /* Icon_RotateCCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */; }; + AB0F29B514BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */; }; + AB0F29B614BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */; }; + AB0F29B714BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */; }; + AB15CA7214A29EE500B8A6A4 /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */; }; + AB1773FD182ECA8A009F29DD /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1773FC182ECA8A009F29DD /* slot2_passme.cpp */; }; + AB1773FE182ECA8A009F29DD /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1773FC182ECA8A009F29DD /* slot2_passme.cpp */; }; + AB1773FF182ECA8A009F29DD /* slot2_passme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1773FC182ECA8A009F29DD /* slot2_passme.cpp */; }; + AB181D0013B66889006CA82D /* datetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */; }; + AB1949DB15034F900098793E /* OESoundInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABB3C6401501BB8300E0C22E /* OESoundInterface.mm */; }; + AB1B9E631501A78000464647 /* coreaudiosound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */; }; + AB1B9E661501A78000464647 /* ringbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E601501A78000464647 /* ringbuffer.cpp */; }; + AB1F468413A0ADE400B80DE6 /* SndOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */; }; + AB1F469813A0AE2F00B80DE6 /* Timestretcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */; }; + AB23567416C2F6F400DA782E /* macosx_10_5_compat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB23567216C2F6F400DA782E /* macosx_10_5_compat.cpp */; }; + AB23567516C2FAD800DA782E /* OGLRender_3_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */; }; + AB26D87C16B5253D00A2305C /* OGLRender_3_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */; }; + AB29B16218313AF5009B7982 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB29B16118313AF5009B7982 /* slot2.cpp */; }; + AB29B16318313AF5009B7982 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB29B16118313AF5009B7982 /* slot2.cpp */; }; + AB29B16418313AF5009B7982 /* slot2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB29B16118313AF5009B7982 /* slot2.cpp */; }; + AB29B16618313C14009B7982 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB29B16518313C14009B7982 /* slot2_auto.cpp */; }; + AB29B16718313C14009B7982 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB29B16518313C14009B7982 /* slot2_auto.cpp */; }; + AB29B16818313C14009B7982 /* slot2_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB29B16518313C14009B7982 /* slot2_auto.cpp */; }; + AB29B33116D4BEBF000EF671 /* InputManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB29B33016D4BEBF000EF671 /* InputManager.mm */; }; + AB29B33216D4BEBF000EF671 /* InputManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB29B33016D4BEBF000EF671 /* InputManager.mm */; }; + AB2EE12C17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB2EE12B17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp */; }; + AB2EE12D17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB2EE12B17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp */; }; + AB2EE12E17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB2EE12B17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp */; }; + AB2EE13117D57F5000F68622 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB2EE13017D57F5000F68622 /* fsnitro.cpp */; }; + AB2EE13217D57F5000F68622 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB2EE13017D57F5000F68622 /* fsnitro.cpp */; }; + AB2EE13317D57F5000F68622 /* fsnitro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB2EE13017D57F5000F68622 /* fsnitro.cpp */; }; + AB350BA51478AC96007165AC /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; }; + AB350D3B147A1D93007165AC /* HID_usage_strings.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB350D3A147A1D93007165AC /* HID_usage_strings.plist */; }; + AB3701E5173A3FBF006E573E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB74EC891738499C0026C41E /* Carbon.framework */; }; + AB3A655E16CC5421001F5D4A /* EmuControllerDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A655D16CC5421001F5D4A /* EmuControllerDelegate.mm */; }; + AB3A655F16CC5421001F5D4A /* EmuControllerDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A655D16CC5421001F5D4A /* EmuControllerDelegate.mm */; }; + AB3A656116CC5438001F5D4A /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A656016CC5438001F5D4A /* cocoa_GPU.mm */; }; + AB3A656216CC5438001F5D4A /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A656016CC5438001F5D4A /* cocoa_GPU.mm */; }; + AB3A656316CC5438001F5D4A /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3A656016CC5438001F5D4A /* cocoa_GPU.mm */; }; + AB3ACB7214C2361100D7D192 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; }; + AB3ACB7314C2361100D7D192 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; }; + AB3ACB7614C2361100D7D192 /* inputPrefsView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */; }; + AB3ACB7714C2361100D7D192 /* preferencesWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */; }; + AB3ACC3E14C24D5400D7D192 /* AUTHORS in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3814C24D5400D7D192 /* AUTHORS */; }; + AB3ACC3F14C24D5400D7D192 /* ChangeLog in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3914C24D5400D7D192 /* ChangeLog */; }; + AB3ACC4014C24D5400D7D192 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3A14C24D5400D7D192 /* COPYING */; }; + AB3ACC4114C24D5400D7D192 /* README in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3B14C24D5400D7D192 /* README */; }; + AB3ACC4314C24D5400D7D192 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; + AB3E34C9134AF4500056477A /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; }; + AB40562A169F5DBB0016AC3E /* assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405600169F5DBB0016AC3E /* assembler.cpp */; }; + AB40562B169F5DBB0016AC3E /* assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405600169F5DBB0016AC3E /* assembler.cpp */; }; + AB40562C169F5DBB0016AC3E /* assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405600169F5DBB0016AC3E /* assembler.cpp */; }; + AB40562D169F5DBB0016AC3E /* assert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405602169F5DBB0016AC3E /* assert.cpp */; }; + AB40562E169F5DBB0016AC3E /* assert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405602169F5DBB0016AC3E /* assert.cpp */; }; + AB40562F169F5DBB0016AC3E /* assert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405602169F5DBB0016AC3E /* assert.cpp */; }; + AB405630169F5DBB0016AC3E /* buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405604169F5DBB0016AC3E /* buffer.cpp */; }; + AB405631169F5DBB0016AC3E /* buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405604169F5DBB0016AC3E /* buffer.cpp */; }; + AB405632169F5DBB0016AC3E /* buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405604169F5DBB0016AC3E /* buffer.cpp */; }; + AB405633169F5DBB0016AC3E /* compiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405607169F5DBB0016AC3E /* compiler.cpp */; }; + AB405634169F5DBB0016AC3E /* compiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405607169F5DBB0016AC3E /* compiler.cpp */; }; + AB405635169F5DBB0016AC3E /* compiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405607169F5DBB0016AC3E /* compiler.cpp */; }; + AB405636169F5DBB0016AC3E /* compilercontext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405609169F5DBB0016AC3E /* compilercontext.cpp */; }; + AB405637169F5DBB0016AC3E /* compilercontext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405609169F5DBB0016AC3E /* compilercontext.cpp */; }; + AB405638169F5DBB0016AC3E /* compilercontext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405609169F5DBB0016AC3E /* compilercontext.cpp */; }; + AB405639169F5DBB0016AC3E /* compilerfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560B169F5DBB0016AC3E /* compilerfunc.cpp */; }; + AB40563A169F5DBB0016AC3E /* compilerfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560B169F5DBB0016AC3E /* compilerfunc.cpp */; }; + AB40563B169F5DBB0016AC3E /* compilerfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560B169F5DBB0016AC3E /* compilerfunc.cpp */; }; + AB40563C169F5DBB0016AC3E /* compileritem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560D169F5DBB0016AC3E /* compileritem.cpp */; }; + AB40563D169F5DBB0016AC3E /* compileritem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560D169F5DBB0016AC3E /* compileritem.cpp */; }; + AB40563E169F5DBB0016AC3E /* compileritem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560D169F5DBB0016AC3E /* compileritem.cpp */; }; + AB40563F169F5DBB0016AC3E /* context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560F169F5DBB0016AC3E /* context.cpp */; }; + AB405640169F5DBB0016AC3E /* context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560F169F5DBB0016AC3E /* context.cpp */; }; + AB405641169F5DBB0016AC3E /* context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40560F169F5DBB0016AC3E /* context.cpp */; }; + AB405642169F5DBB0016AC3E /* cpuinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405611169F5DBB0016AC3E /* cpuinfo.cpp */; }; + AB405643169F5DBB0016AC3E /* cpuinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405611169F5DBB0016AC3E /* cpuinfo.cpp */; }; + AB405644169F5DBB0016AC3E /* cpuinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405611169F5DBB0016AC3E /* cpuinfo.cpp */; }; + AB405645169F5DBB0016AC3E /* defs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405613169F5DBB0016AC3E /* defs.cpp */; }; + AB405646169F5DBB0016AC3E /* defs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405613169F5DBB0016AC3E /* defs.cpp */; }; + AB405647169F5DBB0016AC3E /* defs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405613169F5DBB0016AC3E /* defs.cpp */; }; + AB405648169F5DBB0016AC3E /* func.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405615169F5DBB0016AC3E /* func.cpp */; }; + AB405649169F5DBB0016AC3E /* func.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405615169F5DBB0016AC3E /* func.cpp */; }; + AB40564A169F5DBB0016AC3E /* func.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405615169F5DBB0016AC3E /* func.cpp */; }; + AB40564B169F5DBB0016AC3E /* logger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405619169F5DBB0016AC3E /* logger.cpp */; }; + AB40564C169F5DBB0016AC3E /* logger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405619169F5DBB0016AC3E /* logger.cpp */; }; + AB40564D169F5DBB0016AC3E /* logger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405619169F5DBB0016AC3E /* logger.cpp */; }; + AB40564E169F5DBB0016AC3E /* memorymanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561B169F5DBB0016AC3E /* memorymanager.cpp */; }; + AB40564F169F5DBB0016AC3E /* memorymanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561B169F5DBB0016AC3E /* memorymanager.cpp */; }; + AB405650169F5DBB0016AC3E /* memorymanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561B169F5DBB0016AC3E /* memorymanager.cpp */; }; + AB405651169F5DBB0016AC3E /* memorymarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561D169F5DBB0016AC3E /* memorymarker.cpp */; }; + AB405652169F5DBB0016AC3E /* memorymarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561D169F5DBB0016AC3E /* memorymarker.cpp */; }; + AB405653169F5DBB0016AC3E /* memorymarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561D169F5DBB0016AC3E /* memorymarker.cpp */; }; + AB405654169F5DBB0016AC3E /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561F169F5DBB0016AC3E /* operand.cpp */; }; + AB405655169F5DBB0016AC3E /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561F169F5DBB0016AC3E /* operand.cpp */; }; + AB405656169F5DBB0016AC3E /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40561F169F5DBB0016AC3E /* operand.cpp */; }; + AB405657169F5DBB0016AC3E /* stringbuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405622169F5DBB0016AC3E /* stringbuilder.cpp */; }; + AB405658169F5DBB0016AC3E /* stringbuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405622169F5DBB0016AC3E /* stringbuilder.cpp */; }; + AB405659169F5DBB0016AC3E /* stringbuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405622169F5DBB0016AC3E /* stringbuilder.cpp */; }; + AB40565A169F5DBB0016AC3E /* stringutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405624169F5DBB0016AC3E /* stringutil.cpp */; }; + AB40565B169F5DBB0016AC3E /* stringutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405624169F5DBB0016AC3E /* stringutil.cpp */; }; + AB40565C169F5DBB0016AC3E /* stringutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405624169F5DBB0016AC3E /* stringutil.cpp */; }; + AB40565D169F5DBB0016AC3E /* virtualmemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405626169F5DBB0016AC3E /* virtualmemory.cpp */; }; + AB40565E169F5DBB0016AC3E /* virtualmemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405626169F5DBB0016AC3E /* virtualmemory.cpp */; }; + AB40565F169F5DBB0016AC3E /* virtualmemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405626169F5DBB0016AC3E /* virtualmemory.cpp */; }; + AB405660169F5DBB0016AC3E /* zonememory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405628169F5DBB0016AC3E /* zonememory.cpp */; }; + AB405661169F5DBB0016AC3E /* zonememory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405628169F5DBB0016AC3E /* zonememory.cpp */; }; + AB405662169F5DBB0016AC3E /* zonememory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405628169F5DBB0016AC3E /* zonememory.cpp */; }; + AB405678169F5DCC0016AC3E /* x86assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405664169F5DCC0016AC3E /* x86assembler.cpp */; }; + AB405679169F5DCC0016AC3E /* x86assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405664169F5DCC0016AC3E /* x86assembler.cpp */; }; + AB40567A169F5DCC0016AC3E /* x86assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405664169F5DCC0016AC3E /* x86assembler.cpp */; }; + AB40567B169F5DCC0016AC3E /* x86compiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405666169F5DCC0016AC3E /* x86compiler.cpp */; }; + AB40567C169F5DCC0016AC3E /* x86compiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405666169F5DCC0016AC3E /* x86compiler.cpp */; }; + AB40567D169F5DCC0016AC3E /* x86compiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405666169F5DCC0016AC3E /* x86compiler.cpp */; }; + AB40567E169F5DCC0016AC3E /* x86compilercontext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405668169F5DCC0016AC3E /* x86compilercontext.cpp */; }; + AB40567F169F5DCC0016AC3E /* x86compilercontext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405668169F5DCC0016AC3E /* x86compilercontext.cpp */; }; + AB405680169F5DCC0016AC3E /* x86compilercontext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405668169F5DCC0016AC3E /* x86compilercontext.cpp */; }; + AB405681169F5DCC0016AC3E /* x86compilerfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566A169F5DCC0016AC3E /* x86compilerfunc.cpp */; }; + AB405682169F5DCC0016AC3E /* x86compilerfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566A169F5DCC0016AC3E /* x86compilerfunc.cpp */; }; + AB405683169F5DCC0016AC3E /* x86compilerfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566A169F5DCC0016AC3E /* x86compilerfunc.cpp */; }; + AB405684169F5DCC0016AC3E /* x86compileritem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566C169F5DCC0016AC3E /* x86compileritem.cpp */; }; + AB405685169F5DCC0016AC3E /* x86compileritem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566C169F5DCC0016AC3E /* x86compileritem.cpp */; }; + AB405686169F5DCC0016AC3E /* x86compileritem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566C169F5DCC0016AC3E /* x86compileritem.cpp */; }; + AB405687169F5DCC0016AC3E /* x86cpuinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566E169F5DCC0016AC3E /* x86cpuinfo.cpp */; }; + AB405688169F5DCC0016AC3E /* x86cpuinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566E169F5DCC0016AC3E /* x86cpuinfo.cpp */; }; + AB405689169F5DCC0016AC3E /* x86cpuinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB40566E169F5DCC0016AC3E /* x86cpuinfo.cpp */; }; + AB40568A169F5DCC0016AC3E /* x86defs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405670169F5DCC0016AC3E /* x86defs.cpp */; }; + AB40568B169F5DCC0016AC3E /* x86defs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405670169F5DCC0016AC3E /* x86defs.cpp */; }; + AB40568C169F5DCC0016AC3E /* x86defs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405670169F5DCC0016AC3E /* x86defs.cpp */; }; + AB40568D169F5DCC0016AC3E /* x86func.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405672169F5DCC0016AC3E /* x86func.cpp */; }; + AB40568E169F5DCC0016AC3E /* x86func.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405672169F5DCC0016AC3E /* x86func.cpp */; }; + AB40568F169F5DCC0016AC3E /* x86func.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405672169F5DCC0016AC3E /* x86func.cpp */; }; + AB405690169F5DCC0016AC3E /* x86operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405674169F5DCC0016AC3E /* x86operand.cpp */; }; + AB405691169F5DCC0016AC3E /* x86operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405674169F5DCC0016AC3E /* x86operand.cpp */; }; + AB405692169F5DCC0016AC3E /* x86operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405674169F5DCC0016AC3E /* x86operand.cpp */; }; + AB405693169F5DCC0016AC3E /* x86util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405676169F5DCC0016AC3E /* x86util.cpp */; }; + AB405694169F5DCC0016AC3E /* x86util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405676169F5DCC0016AC3E /* x86util.cpp */; }; + AB405695169F5DCC0016AC3E /* x86util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB405676169F5DCC0016AC3E /* x86util.cpp */; }; + AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + AB4FCEBD1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; }; + AB4FCEBE1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; }; + AB4FCEBF1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; }; + AB5785F817175F16002C5FC7 /* cocoa_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104121346652500AF11D1 /* cocoa_core.mm */; }; + AB5785F9171760D2002C5FC7 /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; }; + AB5785FD17176AFC002C5FC7 /* OpenEmuBase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB5785FC17176AFC002C5FC7 /* OpenEmuBase.framework */; }; + AB58F32D1364F44B0074C376 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; }; + AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; + AB68A0DD16B139BC00DE0546 /* OGLRender_3_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */; }; + AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; + AB74EC8A1738499C0026C41E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB74EC891738499C0026C41E /* Carbon.framework */; }; + AB75226E14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; + AB796C9C15CDCB0F00C59155 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */; }; + AB796C9F15CDCB0F00C59155 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */; }; + AB796CA715CDCBA200C59155 /* KeyNames.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB02475B13886BF300E9F9AB /* KeyNames.plist */; }; + AB796CA815CDCBA200C59155 /* DefaultKeyMappings.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */; }; + AB796CA915CDCBA200C59155 /* DefaultUserPrefs.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */; }; + AB796CAA15CDCBA200C59155 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; + AB796CAB15CDCBA200C59155 /* AppIcon_ROMSave.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */; }; + AB796CAC15CDCBA200C59155 /* AppIcon_DeSmuME.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */; }; + AB796CAD15CDCBA200C59155 /* AppIcon_NintendoDS_ROM.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */; }; + AB796CAE15CDCBA200C59155 /* AppIcon_SaveState.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */; }; + AB796CAF15CDCBA200C59155 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87914205EAE00DE561F /* InfoPlist.strings */; }; + AB796CB015CDCBA200C59155 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87C14205EBC00DE561F /* MainMenu.xib */; }; + AB796CB115CDCBA200C59155 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB901BDD1420706100348EEC /* Localizable.strings */; }; + AB796CB215CDCBA200C59155 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */; }; + AB796CB315CDCBA200C59155 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */; }; + AB796CB415CDCBA200C59155 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */; }; + AB796CB515CDCBA200C59155 /* HID_usage_strings.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB350D3A147A1D93007165AC /* HID_usage_strings.plist */; }; + AB796CB615CDCBA200C59155 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; + AB796CB715CDCBA200C59155 /* Icon_VolumeFull_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */; }; + AB796CB815CDCBA200C59155 /* Icon_VolumeMute_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */; }; + AB796CB915CDCBA200C59155 /* Icon_VolumeOneThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */; }; + AB796CBA15CDCBA200C59155 /* Icon_VolumeTwoThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */; }; + AB796CBB15CDCBA200C59155 /* Icon_Execute_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */; }; + AB796CBC15CDCBA200C59155 /* Icon_Pause_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */; }; + AB796CBD15CDCBA200C59155 /* Icon_Speed1x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */; }; + AB796CBE15CDCBA200C59155 /* Icon_Speed2x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */; }; + AB796CBF15CDCBA200C59155 /* ColorSwatch_Blue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */; }; + AB796CC015CDCBA200C59155 /* ColorSwatch_Brown_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */; }; + AB796CC115CDCBA200C59155 /* ColorSwatch_DarkBlue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */; }; + AB796CC215CDCBA200C59155 /* ColorSwatch_DarkGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */; }; + AB796CC315CDCBA200C59155 /* ColorSwatch_DarkPurple_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */; }; + AB796CC415CDCBA200C59155 /* ColorSwatch_Gray_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */; }; + AB796CC515CDCBA200C59155 /* ColorSwatch_Green_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */; }; + AB796CC615CDCBA200C59155 /* ColorSwatch_LimeGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */; }; + AB796CC715CDCBA200C59155 /* ColorSwatch_Magenta_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */; }; + AB796CC815CDCBA200C59155 /* ColorSwatch_Orange_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */; }; + AB796CC915CDCBA200C59155 /* ColorSwatch_Pink_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */; }; + AB796CCA15CDCBA200C59155 /* ColorSwatch_Red_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */; }; + AB796CCB15CDCBA200C59155 /* ColorSwatch_SeaGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */; }; + AB796CCC15CDCBA200C59155 /* ColorSwatch_Turquoise_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */; }; + AB796CCD15CDCBA200C59155 /* ColorSwatch_Violet_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */; }; + AB796CCE15CDCBA200C59155 /* ColorSwatch_Yellow_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */; }; + AB796CCF15CDCBA200C59155 /* Icon_ActionReplay_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */; }; + AB796CD015CDCBA200C59155 /* Icon_CodeBreaker_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */; }; + AB796CD115CDCBA200C59155 /* VideoFilterPreview_64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */; }; + AB796CD215CDCBA200C59155 /* Icon_ArrowDown_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */; }; + AB796CD315CDCBA200C59155 /* Icon_ArrowLeft_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */; }; + AB796CD415CDCBA200C59155 /* Icon_ArrowRight_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */; }; + AB796CD515CDCBA200C59155 /* Icon_ArrowUp_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */; }; + AB796CD615CDCBA200C59155 /* Icon_DoubleSpeed_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */; }; + AB796CD715CDCBA200C59155 /* Icon_DSButtonA_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */; }; + AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */; }; + AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */; }; + AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */; }; + AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */; }; + AB796CDC15CDCBA200C59155 /* Icon_DSButtonStart_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */; }; + AB796CDD15CDCBA200C59155 /* Icon_DSButtonX_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */; }; + AB796CDE15CDCBA200C59155 /* Icon_DSButtonY_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */; }; + AB796CDF15CDCBA200C59155 /* Icon_Emulation_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */; }; + AB796CE015CDCBA200C59155 /* Icon_Input_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */; }; + AB796CE115CDCBA200C59155 /* Icon_Microphone_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */; }; + AB796CE215CDCBA200C59155 /* Icon_OpenROM_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */; }; + AB796CE315CDCBA200C59155 /* Icon_Reset_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */; }; + AB796CE415CDCBA200C59155 /* Icon_RotateCCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */; }; + AB796CE515CDCBA200C59155 /* Icon_RotateCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */; }; + AB796CE615CDCBA200C59155 /* Icon_ShowHUD_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */; }; + AB796CE715CDCBA200C59155 /* Icon_Speaker_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */; }; + AB796CE815CDCBA200C59155 /* AUTHORS in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3814C24D5400D7D192 /* AUTHORS */; }; + AB796CE915CDCBA200C59155 /* ChangeLog in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3914C24D5400D7D192 /* ChangeLog */; }; + AB796CEA15CDCBA200C59155 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3A14C24D5400D7D192 /* COPYING */; }; + AB796CEB15CDCBA200C59155 /* README in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3B14C24D5400D7D192 /* README */; }; + AB796CEC15CDCBA200C59155 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; + AB796CED15CDCBA200C59155 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; + AB796CEF15CDCBA200C59155 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; + AB796CF015CDCBA200C59155 /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */; }; + AB796CF215CDCBA200C59155 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; + AB796CF315CDCBA200C59155 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; + AB796CF415CDCBA200C59155 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; + AB796CF515CDCBA200C59155 /* cache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF301345ACBF00AF11D1 /* cache.cpp */; }; + AB796CF615CDCBA200C59155 /* cheatSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */; }; + AB796CF715CDCBA200C59155 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA81345AC8400AF11D1 /* common.cpp */; }; + AB796CF815CDCBA200C59155 /* cp15.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA91345AC8400AF11D1 /* cp15.cpp */; }; + AB796CF915CDCBA200C59155 /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */; }; + AB796CFA15CDCBA200C59155 /* crc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF221345ACBF00AF11D1 /* crc.cpp */; }; + AB796CFB15CDCBA200C59155 /* datetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */; }; + AB796CFC15CDCBA200C59155 /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAB1345AC8400AF11D1 /* debug.cpp */; }; + AB796CFD15CDCBA200C59155 /* decrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */; }; + AB796CFE15CDCBA200C59155 /* directory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF331345ACBF00AF11D1 /* directory.cpp */; }; + AB796CFF15CDCBA200C59155 /* Disassembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */; }; + AB796D0015CDCBA200C59155 /* disc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF351345ACBF00AF11D1 /* disc.cpp */; }; + AB796D0115CDCBA200C59155 /* dlditool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */; }; + AB796D0215CDCBA200C59155 /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAE1345AC8400AF11D1 /* driver.cpp */; }; + AB796D0315CDCBA200C59155 /* emufat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF291345ACBF00AF11D1 /* emufat.cpp */; }; + AB796D0415CDCBA200C59155 /* emufile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */; }; + AB796D0515CDCBA200C59155 /* fatdir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */; }; + AB796D0615CDCBA200C59155 /* fatfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */; }; + AB796D0715CDCBA200C59155 /* FIFO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */; }; + AB796D0815CDCBA200C59155 /* FIFOSampleBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */; }; + AB796D0915CDCBA200C59155 /* file_allocation_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */; }; + AB796D0A15CDCBA200C59155 /* filetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */; }; + AB796D0B15CDCBA200C59155 /* FIRFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */; }; + AB796D0C15CDCBA200C59155 /* firmware.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB11345AC8400AF11D1 /* firmware.cpp */; }; + AB796D0D15CDCBA200C59155 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + AB796D0E15CDCBA200C59155 /* gfx3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */; }; + AB796D0F15CDCBA200C59155 /* GPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB71345AC8400AF11D1 /* GPU.cpp */; }; + AB796D1015CDCBA200C59155 /* GPU_osd_stub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */; }; + AB796D1115CDCBA200C59155 /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */; }; + AB796D1215CDCBA200C59155 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF261345ACBF00AF11D1 /* header.cpp */; }; + AB796D1315CDCBA200C59155 /* libfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF411345ACBF00AF11D1 /* libfat.cpp */; }; + AB796D1415CDCBA200C59155 /* libfat_public_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */; }; + AB796D1515CDCBA200C59155 /* lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF451345ACBF00AF11D1 /* lock.cpp */; }; + AB796D1615CDCBA200C59155 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB91345AC8400AF11D1 /* matrix.cpp */; }; + AB796D1715CDCBA200C59155 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBA1345AC8400AF11D1 /* mc.cpp */; }; + AB796D1815CDCBA200C59155 /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */; }; + AB796D1915CDCBA200C59155 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; + AB796D1A15CDCBA200C59155 /* MMU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */; }; + AB796D1B15CDCBA200C59155 /* mmx_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */; }; + AB796D1C15CDCBA200C59155 /* movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBF1345AC8400AF11D1 /* movie.cpp */; }; + AB796D1D15CDCBA200C59155 /* NDSSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */; }; + AB796D1E15CDCBA200C59155 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; }; + AB796D1F15CDCBA200C59155 /* partition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF481345ACBF00AF11D1 /* partition.cpp */; }; + AB796D2015CDCBA200C59155 /* path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC21345AC8400AF11D1 /* path.cpp */; }; + AB796D2115CDCBA200C59155 /* rasterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */; }; + AB796D2215CDCBA200C59155 /* RateTransposer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */; }; + AB796D2315CDCBA200C59155 /* readwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */; }; + AB796D2415CDCBA200C59155 /* render3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC51345AC8400AF11D1 /* render3D.cpp */; }; + AB796D2515CDCBA200C59155 /* ROMReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */; }; + AB796D2615CDCBA200C59155 /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC71345AC8400AF11D1 /* rtc.cpp */; }; + AB796D2715CDCBA200C59155 /* saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC81345AC8400AF11D1 /* saves.cpp */; }; + AB796D2815CDCBA200C59155 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; + AB796D2915CDCBA200C59155 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; + AB796D2A15CDCBA200C59155 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; + AB796D2C15CDCBA200C59155 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; + AB796D2D15CDCBA200C59155 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; + AB796D2E15CDCBA200C59155 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; + AB796D2F15CDCBA200C59155 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; + AB796D3015CDCBA200C59155 /* slot2_mpcf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */; }; + AB796D3115CDCBA200C59155 /* slot2_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */; }; + AB796D3215CDCBA200C59155 /* slot2_paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */; }; + AB796D3315CDCBA200C59155 /* slot2_piano.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */; }; + AB796D3415CDCBA200C59155 /* slot2_rumblepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */; }; + AB796D3515CDCBA200C59155 /* sndOSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD104141346652500AF11D1 /* sndOSX.cpp */; }; + AB796D3615CDCBA200C59155 /* SndOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */; }; + AB796D3715CDCBA200C59155 /* SoundTouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */; }; + AB796D3815CDCBA200C59155 /* SPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECB1345AC8400AF11D1 /* SPU.cpp */; }; + AB796D3915CDCBA200C59155 /* sse_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */; }; + AB796D3A15CDCBA200C59155 /* task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4C1345ACBF00AF11D1 /* task.cpp */; }; + AB796D3B15CDCBA200C59155 /* TDStretch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */; }; + AB796D3C15CDCBA200C59155 /* texcache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECC1345AC8400AF11D1 /* texcache.cpp */; }; + AB796D3D15CDCBA200C59155 /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */; }; + AB796D3E15CDCBA200C59155 /* Timestretcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */; }; + AB796D3F15CDCBA200C59155 /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; + AB796D4015CDCBA200C59155 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */; }; + AB796D4115CDCBA200C59155 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */; }; + AB796D4215CDCBA200C59155 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */; }; + AB796D4315CDCBA200C59155 /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECE1345AC8400AF11D1 /* version.cpp */; }; + AB796D4415CDCBA200C59155 /* vfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */; }; + AB796D4515CDCBA200C59155 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; + AB796D4615CDCBA200C59155 /* WavFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */; }; + AB796D4715CDCBA200C59155 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; + AB796D4815CDCBA200C59155 /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF511345ACBF00AF11D1 /* xstring.cpp */; }; + AB796D4915CDCBA200C59155 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABD104271346653B00AF11D1 /* main.m */; }; + AB796D4A15CDCBA200C59155 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; }; + AB796D4B15CDCBA200C59155 /* cocoa_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104121346652500AF11D1 /* cocoa_core.mm */; }; + AB796D4C15CDCBA200C59155 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; }; + AB796D4D15CDCBA200C59155 /* cocoa_firmware.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */; }; + AB796D4F15CDCBA200C59155 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; }; + AB796D5115CDCBA200C59155 /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; }; + AB796D5215CDCBA200C59155 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; }; + AB796D5315CDCBA200C59155 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; }; + AB796D5415CDCBA200C59155 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; + AB796D5515CDCBA200C59155 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; }; + AB796D5615CDCBA200C59155 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; }; + AB796D5915CDCBA200C59155 /* inputPrefsView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */; }; + AB796D5A15CDCBA200C59155 /* preferencesWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */; }; + AB796D5B15CDCBA200C59155 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */; }; + AB796D5C15CDCBA200C59155 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FB14C92FF5005D6699 /* bilinear.cpp */; }; + AB796D5D15CDCBA200C59155 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FC14C92FF5005D6699 /* epx.cpp */; }; + AB796D5E15CDCBA200C59155 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FE14C92FF5005D6699 /* hq2x.cpp */; }; + AB796D5F15CDCBA200C59155 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150014C92FF5005D6699 /* hq4x.cpp */; }; + AB796D6015CDCBA200C59155 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150414C92FF5005D6699 /* lq2x.cpp */; }; + AB796D6115CDCBA200C59155 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150614C92FF5005D6699 /* scanline.cpp */; }; + AB796D6215CDCBA200C59155 /* coreaudiosound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */; }; + AB796D6315CDCBA200C59155 /* ringbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E601501A78000464647 /* ringbuffer.cpp */; }; + AB796D6415CDCBA200C59155 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */; }; + AB796D6615CDCBA200C59155 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; + AB796D6715CDCBA200C59155 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */; }; + AB796D6815CDCBA200C59155 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AB796D6915CDCBA200C59155 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; + AB796D6A15CDCBA200C59155 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; }; + AB796D6B15CDCBA200C59155 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; + AB796D6C15CDCBA200C59155 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + AB80E04D142BC4A800A52038 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; }; + AB82445B1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; }; + AB82445C1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; }; + AB82445D1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; }; + AB8967D916D2ED0700F826F1 /* DisplayWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB8967D816D2ED0700F826F1 /* DisplayWindowController.mm */; }; + AB8967DA16D2ED0700F826F1 /* DisplayWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB8967D816D2ED0700F826F1 /* DisplayWindowController.mm */; }; + AB8967DD16D2ED2700F826F1 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB8967DB16D2ED2700F826F1 /* DisplayWindow.xib */; }; + AB8967DE16D2ED2700F826F1 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB8967DB16D2ED2700F826F1 /* DisplayWindow.xib */; }; + AB8B7AAC17CE8C440051CEBF /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; }; + AB8B7AAD17CE8C440051CEBF /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; }; + AB8B7AAE17CE8C440051CEBF /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; }; + AB901BDE1420706100348EEC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB901BDD1420706100348EEC /* Localizable.strings */; }; + AB9038A617C5ECFD00F410BD /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038A517C5ECFD00F410BD /* advanscene.cpp */; }; + AB9038A717C5ECFD00F410BD /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038A517C5ECFD00F410BD /* advanscene.cpp */; }; + AB9038A817C5ECFD00F410BD /* advanscene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038A517C5ECFD00F410BD /* advanscene.cpp */; }; + AB9038AF17C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038A917C5ED2200F410BD /* slot1_retail_auto.cpp */; }; + AB9038B017C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038A917C5ED2200F410BD /* slot1_retail_auto.cpp */; }; + AB9038B117C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038A917C5ED2200F410BD /* slot1_retail_auto.cpp */; }; + AB9038B217C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AA17C5ED2200F410BD /* slot1_retail_mcrom.cpp */; }; + AB9038B317C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AA17C5ED2200F410BD /* slot1_retail_mcrom.cpp */; }; + AB9038B417C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AA17C5ED2200F410BD /* slot1_retail_mcrom.cpp */; }; + AB9038B517C5ED2200F410BD /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AB17C5ED2200F410BD /* slot1comp_mc.cpp */; }; + AB9038B617C5ED2200F410BD /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AB17C5ED2200F410BD /* slot1comp_mc.cpp */; }; + AB9038B717C5ED2200F410BD /* slot1comp_mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AB17C5ED2200F410BD /* slot1comp_mc.cpp */; }; + AB9038B817C5ED2200F410BD /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AD17C5ED2200F410BD /* slot1comp_rom.cpp */; }; + AB9038B917C5ED2200F410BD /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AD17C5ED2200F410BD /* slot1comp_rom.cpp */; }; + AB9038BA17C5ED2200F410BD /* slot1comp_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB9038AD17C5ED2200F410BD /* slot1comp_rom.cpp */; }; + AB91D46B13BD013800462471 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + ABA6574B14511EC90077E5E9 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; }; + ABACB8DC1710B621003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; + ABACB8DD1710B656003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; + ABACB8DE1710B65F003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; + ABAD3E7113AF1D6D00502E1E /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */; }; + ABAD3E7413AF1D6D00502E1E /* FIFOSampleBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */; }; + ABAD3E7513AF1D6D00502E1E /* FIRFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */; }; + ABAD3E7613AF1D6D00502E1E /* mmx_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */; }; + ABAD3E7713AF1D6D00502E1E /* RateTransposer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */; }; + ABAD3E7813AF1D6D00502E1E /* SoundTouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */; }; + ABAD3E7913AF1D6D00502E1E /* sse_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */; }; + ABAD3E7A13AF1D6D00502E1E /* TDStretch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */; }; + ABAD3E7B13AF1D6D00502E1E /* WavFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */; }; + ABB3C6621501BF4E00E0C22E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87914205EAE00DE561F /* InfoPlist.strings */; }; + ABB3C6631501BF4E00E0C22E /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; + ABB3C6641501BF8A00E0C22E /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; + ABB3C6651501BF8A00E0C22E /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */; }; + ABB3C6661501BF8A00E0C22E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + ABB3C6671501BF8A00E0C22E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; + ABB3C6691501BF8A00E0C22E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; + ABB3C66A1501BF8A00E0C22E /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + ABB3C66C1501C04F00E0C22E /* NDSGameCore.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABB3C63E1501BB8300E0C22E /* NDSGameCore.mm */; }; + ABB3C6701501C04F00E0C22E /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; + ABB3C6721501C04F00E0C22E /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; }; + ABB3C6751501C04F00E0C22E /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; }; + ABB3C6761501C04F00E0C22E /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; }; + ABB3C6771501C04F00E0C22E /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; + ABB3C6781501C04F00E0C22E /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; + ABB3C6791501C04F00E0C22E /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; + ABB3C67A1501C04F00E0C22E /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; + ABB3C67C1501C04F00E0C22E /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; + ABB3C67D1501C04F00E0C22E /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; + ABB3C67E1501C04F00E0C22E /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; + ABB3C67F1501C04F00E0C22E /* slot2_mpcf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */; }; + ABB3C6801501C04F00E0C22E /* slot2_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */; }; + ABB3C6811501C04F00E0C22E /* slot2_paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */; }; + ABB3C6821501C04F00E0C22E /* slot2_piano.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */; }; + ABB3C6831501C04F00E0C22E /* slot2_rumblepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */; }; + ABB3C6841501C04F00E0C22E /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */; }; + ABB3C6851501C04F00E0C22E /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FB14C92FF5005D6699 /* bilinear.cpp */; }; + ABB3C6861501C04F00E0C22E /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FC14C92FF5005D6699 /* epx.cpp */; }; + ABB3C6871501C04F00E0C22E /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FE14C92FF5005D6699 /* hq2x.cpp */; }; + ABB3C6881501C04F00E0C22E /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150014C92FF5005D6699 /* hq4x.cpp */; }; + ABB3C6891501C04F00E0C22E /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150414C92FF5005D6699 /* lq2x.cpp */; }; + ABB3C68A1501C04F00E0C22E /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150614C92FF5005D6699 /* scanline.cpp */; }; + ABB3C68B1501C04F00E0C22E /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */; }; + ABB3C68C1501C04F00E0C22E /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */; }; + ABB3C68D1501C04F00E0C22E /* FIFOSampleBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */; }; + ABB3C68E1501C04F00E0C22E /* FIRFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */; }; + ABB3C68F1501C04F00E0C22E /* mmx_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */; }; + ABB3C6901501C04F00E0C22E /* RateTransposer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */; }; + ABB3C6911501C04F00E0C22E /* SoundTouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */; }; + ABB3C6921501C04F00E0C22E /* sse_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */; }; + ABB3C6931501C04F00E0C22E /* TDStretch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */; }; + ABB3C6941501C04F00E0C22E /* WavFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */; }; + ABB3C6951501C04F00E0C22E /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; + ABB3C6961501C04F00E0C22E /* SndOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */; }; + ABB3C6971501C04F00E0C22E /* Timestretcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */; }; + ABB3C6981501C04F00E0C22E /* crc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF221345ACBF00AF11D1 /* crc.cpp */; }; + ABB3C6991501C04F00E0C22E /* decrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */; }; + ABB3C69A1501C04F00E0C22E /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF261345ACBF00AF11D1 /* header.cpp */; }; + ABB3C69B1501C04F00E0C22E /* cache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF301345ACBF00AF11D1 /* cache.cpp */; }; + ABB3C69C1501C04F00E0C22E /* directory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF331345ACBF00AF11D1 /* directory.cpp */; }; + ABB3C69D1501C04F00E0C22E /* disc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF351345ACBF00AF11D1 /* disc.cpp */; }; + ABB3C69E1501C04F00E0C22E /* fatdir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */; }; + ABB3C69F1501C04F00E0C22E /* fatfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */; }; + ABB3C6A01501C04F00E0C22E /* file_allocation_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */; }; + ABB3C6A11501C04F00E0C22E /* filetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */; }; + ABB3C6A21501C04F00E0C22E /* libfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF411345ACBF00AF11D1 /* libfat.cpp */; }; + ABB3C6A31501C04F00E0C22E /* libfat_public_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */; }; + ABB3C6A41501C04F00E0C22E /* lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF451345ACBF00AF11D1 /* lock.cpp */; }; + ABB3C6A51501C04F00E0C22E /* partition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF481345ACBF00AF11D1 /* partition.cpp */; }; + ABB3C6A61501C04F00E0C22E /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; + ABB3C6A71501C04F00E0C22E /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */; }; + ABB3C6A81501C04F00E0C22E /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */; }; + ABB3C6A91501C04F00E0C22E /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */; }; + ABB3C6AA1501C04F00E0C22E /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; + ABB3C6AB1501C04F00E0C22E /* datetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */; }; + ABB3C6AC1501C04F00E0C22E /* dlditool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */; }; + ABB3C6AD1501C04F00E0C22E /* emufat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF291345ACBF00AF11D1 /* emufat.cpp */; }; + ABB3C6AE1501C04F00E0C22E /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */; }; + ABB3C6AF1501C04F00E0C22E /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */; }; + ABB3C6B01501C04F00E0C22E /* task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4C1345ACBF00AF11D1 /* task.cpp */; }; + ABB3C6B11501C04F00E0C22E /* vfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */; }; + ABB3C6B21501C04F00E0C22E /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF511345ACBF00AF11D1 /* xstring.cpp */; }; + ABB3C6B41501C04F00E0C22E /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; + ABB3C6B51501C04F00E0C22E /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; + ABB3C6B61501C04F00E0C22E /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; + ABB3C6B71501C04F00E0C22E /* cheatSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */; }; + ABB3C6B81501C04F00E0C22E /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA81345AC8400AF11D1 /* common.cpp */; }; + ABB3C6B91501C04F00E0C22E /* cp15.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA91345AC8400AF11D1 /* cp15.cpp */; }; + ABB3C6BA1501C04F00E0C22E /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAB1345AC8400AF11D1 /* debug.cpp */; }; + ABB3C6BB1501C04F00E0C22E /* Disassembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */; }; + ABB3C6BC1501C04F00E0C22E /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAE1345AC8400AF11D1 /* driver.cpp */; }; + ABB3C6BD1501C04F00E0C22E /* emufile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */; }; + ABB3C6BE1501C04F00E0C22E /* FIFO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */; }; + ABB3C6BF1501C04F00E0C22E /* firmware.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB11345AC8400AF11D1 /* firmware.cpp */; }; + ABB3C6C01501C04F00E0C22E /* gfx3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */; }; + ABB3C6C11501C04F00E0C22E /* GPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB71345AC8400AF11D1 /* GPU.cpp */; }; + ABB3C6C21501C04F00E0C22E /* GPU_osd_stub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */; }; + ABB3C6C31501C04F00E0C22E /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB91345AC8400AF11D1 /* matrix.cpp */; }; + ABB3C6C41501C04F00E0C22E /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBA1345AC8400AF11D1 /* mc.cpp */; }; + ABB3C6C61501C04F00E0C22E /* MMU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */; }; + ABB3C6C71501C04F00E0C22E /* movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBF1345AC8400AF11D1 /* movie.cpp */; }; + ABB3C6C81501C04F00E0C22E /* NDSSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */; }; + ABB3C6C91501C04F00E0C22E /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; }; + ABB3C6CA1501C04F00E0C22E /* path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC21345AC8400AF11D1 /* path.cpp */; }; + ABB3C6CB1501C04F00E0C22E /* rasterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */; }; + ABB3C6CC1501C04F00E0C22E /* readwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */; }; + ABB3C6CD1501C04F00E0C22E /* render3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC51345AC8400AF11D1 /* render3D.cpp */; }; + ABB3C6CE1501C04F00E0C22E /* ROMReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */; }; + ABB3C6CF1501C04F00E0C22E /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC71345AC8400AF11D1 /* rtc.cpp */; }; + ABB3C6D01501C04F00E0C22E /* saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC81345AC8400AF11D1 /* saves.cpp */; }; + ABB3C6D11501C04F00E0C22E /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; + ABB3C6D31501C04F00E0C22E /* SPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECB1345AC8400AF11D1 /* SPU.cpp */; }; + ABB3C6D41501C04F00E0C22E /* texcache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECC1345AC8400AF11D1 /* texcache.cpp */; }; + ABB3C6D51501C04F00E0C22E /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */; }; + ABB3C6D61501C04F00E0C22E /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECE1345AC8400AF11D1 /* version.cpp */; }; + ABB3C6D71501C04F00E0C22E /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; + ABB97876144E89CC00793FA3 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */; }; + ABB97877144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */; }; + ABB97878144E89CC00793FA3 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */; }; + ABBC0F8D1394B1AA0028B6BD /* DefaultUserPrefs.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */; }; + ABBF04A514B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; + ABC3AF2F14B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */; }; + ABC3AF3014B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */; }; + ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */; }; + ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */; }; + ABC570D1134431CE00E7B0B1 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */; }; + ABC570D5134431DA00E7B0B1 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; + ABC5720D1344346600E7B0B1 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; + ABC572101344347000E7B0B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; + ABC719E2138CB25E002827A9 /* DefaultKeyMappings.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */; }; + ABCFA9F4178BDE920030C8BA /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABCFA9F3178BDE920030C8BA /* encrypt.cpp */; }; + ABCFA9F5178BDE920030C8BA /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABCFA9F3178BDE920030C8BA /* encrypt.cpp */; }; + ABCFA9F6178BDE920030C8BA /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABCFA9F3178BDE920030C8BA /* encrypt.cpp */; }; + ABD1041C1346652500AF11D1 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; }; + ABD1041D1346652500AF11D1 /* cocoa_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104121346652500AF11D1 /* cocoa_core.mm */; }; + ABD1041E1346652500AF11D1 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; }; + ABD1041F1346652500AF11D1 /* sndOSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD104141346652500AF11D1 /* sndOSX.cpp */; }; + ABD104281346653B00AF11D1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABD104271346653B00AF11D1 /* main.m */; }; + ABD10AE71715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */; }; + ABD10AE81715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */; }; + ABD10AE91715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */; }; + ABD10AEA1715FCDD00B5729D /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE61715FCDD00B5729D /* mic_ext.cpp */; }; + ABD10AEB1715FCDD00B5729D /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE61715FCDD00B5729D /* mic_ext.cpp */; }; + ABD10AEC1715FCDD00B5729D /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD10AE61715FCDD00B5729D /* mic_ext.cpp */; }; + ABD10AED17160C9300B5729D /* ringbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1B9E601501A78000464647 /* ringbuffer.cpp */; }; + ABD10AEE17160CDD00B5729D /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; }; + ABD1FED21345AC8400AF11D1 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; + ABD1FED31345AC8400AF11D1 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; + ABD1FED41345AC8400AF11D1 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; + ABD1FED51345AC8400AF11D1 /* cheatSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */; }; + ABD1FED71345AC8400AF11D1 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA81345AC8400AF11D1 /* common.cpp */; }; + ABD1FED81345AC8400AF11D1 /* cp15.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA91345AC8400AF11D1 /* cp15.cpp */; }; + ABD1FEDA1345AC8400AF11D1 /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAB1345AC8400AF11D1 /* debug.cpp */; }; + ABD1FEDC1345AC8400AF11D1 /* Disassembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */; }; + ABD1FEDD1345AC8400AF11D1 /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAE1345AC8400AF11D1 /* driver.cpp */; }; + ABD1FEDE1345AC8400AF11D1 /* emufile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */; }; + ABD1FEDF1345AC8400AF11D1 /* FIFO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */; }; + ABD1FEE01345AC8400AF11D1 /* firmware.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB11345AC8400AF11D1 /* firmware.cpp */; }; + ABD1FEE31345AC8400AF11D1 /* gfx3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */; }; + ABD1FEE41345AC8400AF11D1 /* GPU_osd_stub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */; }; + ABD1FEE61345AC8400AF11D1 /* GPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB71345AC8400AF11D1 /* GPU.cpp */; }; + ABD1FEE81345AC8400AF11D1 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB91345AC8400AF11D1 /* matrix.cpp */; }; + ABD1FEE91345AC8400AF11D1 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBA1345AC8400AF11D1 /* mc.cpp */; }; + ABD1FEED1345AC8400AF11D1 /* MMU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */; }; + ABD1FEEE1345AC8400AF11D1 /* movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBF1345AC8400AF11D1 /* movie.cpp */; }; + ABD1FEEF1345AC8400AF11D1 /* NDSSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */; }; + ABD1FEF11345AC8400AF11D1 /* path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC21345AC8400AF11D1 /* path.cpp */; }; + ABD1FEF21345AC8400AF11D1 /* rasterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */; }; + ABD1FEF31345AC8400AF11D1 /* readwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */; }; + ABD1FEF41345AC8400AF11D1 /* render3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC51345AC8400AF11D1 /* render3D.cpp */; }; + ABD1FEF51345AC8400AF11D1 /* ROMReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */; }; + ABD1FEF61345AC8400AF11D1 /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC71345AC8400AF11D1 /* rtc.cpp */; }; + ABD1FEF71345AC8400AF11D1 /* saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC81345AC8400AF11D1 /* saves.cpp */; }; + ABD1FEF81345AC8400AF11D1 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; + ABD1FEFA1345AC8400AF11D1 /* SPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECB1345AC8400AF11D1 /* SPU.cpp */; }; + ABD1FEFB1345AC8400AF11D1 /* texcache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECC1345AC8400AF11D1 /* texcache.cpp */; }; + ABD1FEFC1345AC8400AF11D1 /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */; }; + ABD1FEFD1345AC8400AF11D1 /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECE1345AC8400AF11D1 /* version.cpp */; }; + ABD1FEFE1345AC8400AF11D1 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; + ABD1FF0B1345AC9C00AF11D1 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; + ABD1FF0C1345AC9C00AF11D1 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; + ABD1FF0E1345AC9C00AF11D1 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; + ABD1FF0F1345AC9C00AF11D1 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; + ABD1FF101345AC9C00AF11D1 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; + ABD1FF111345AC9C00AF11D1 /* slot2_mpcf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */; }; + ABD1FF121345AC9C00AF11D1 /* slot2_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */; }; + ABD1FF131345AC9C00AF11D1 /* slot2_paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */; }; + ABD1FF141345AC9C00AF11D1 /* slot2_piano.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */; }; + ABD1FF151345AC9C00AF11D1 /* slot2_rumblepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */; }; + ABD1FF531345ACBF00AF11D1 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; + ABD1FF551345ACBF00AF11D1 /* crc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF221345ACBF00AF11D1 /* crc.cpp */; }; + ABD1FF561345ACBF00AF11D1 /* decrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */; }; + ABD1FF571345ACBF00AF11D1 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF261345ACBF00AF11D1 /* header.cpp */; }; + ABD1FF581345ACBF00AF11D1 /* dlditool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */; }; + ABD1FF591345ACBF00AF11D1 /* emufat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF291345ACBF00AF11D1 /* emufat.cpp */; }; + ABD1FF5A1345ACBF00AF11D1 /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */; }; + ABD1FF5B1345ACBF00AF11D1 /* cache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF301345ACBF00AF11D1 /* cache.cpp */; }; + ABD1FF5C1345ACBF00AF11D1 /* directory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF331345ACBF00AF11D1 /* directory.cpp */; }; + ABD1FF5D1345ACBF00AF11D1 /* disc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF351345ACBF00AF11D1 /* disc.cpp */; }; + ABD1FF5E1345ACBF00AF11D1 /* fatdir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */; }; + ABD1FF5F1345ACBF00AF11D1 /* fatfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */; }; + ABD1FF601345ACBF00AF11D1 /* file_allocation_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */; }; + ABD1FF611345ACBF00AF11D1 /* filetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */; }; + ABD1FF621345ACBF00AF11D1 /* libfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF411345ACBF00AF11D1 /* libfat.cpp */; }; + ABD1FF631345ACBF00AF11D1 /* libfat_public_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */; }; + ABD1FF641345ACBF00AF11D1 /* lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF451345ACBF00AF11D1 /* lock.cpp */; }; + ABD1FF651345ACBF00AF11D1 /* partition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF481345ACBF00AF11D1 /* partition.cpp */; }; + ABD1FF661345ACBF00AF11D1 /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */; }; + ABD1FF671345ACBF00AF11D1 /* task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4C1345ACBF00AF11D1 /* task.cpp */; }; + ABD1FF681345ACBF00AF11D1 /* vfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */; }; + ABD1FF691345ACBF00AF11D1 /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF511345ACBF00AF11D1 /* xstring.cpp */; }; + ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; + ABD42047172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; + ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; + ABE5DE95143F781900835AD8 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; + ABE5DFE5143FB1DA00835AD8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; + ABE6702B1415DE6C00E8E4C9 /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; + ABE6702C1415DE6C00E8E4C9 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */; }; + ABE6702D1415DE6C00E8E4C9 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */; }; + ABE6702E1415DE6C00E8E4C9 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */; }; + ABE7F53E13EE1C7900FD3A71 /* cocoa_firmware.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */; }; + ABE9EEEA1501C6EB00D3FB19 /* cocoa_firmware.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */; }; + ABE9EEEB1501C78700D3FB19 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + ABEFCF61141AB82A000CC0CD /* AppIcon_ROMSave.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */; }; + ABEFCF62141AB82A000CC0CD /* AppIcon_DeSmuME.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */; }; + ABEFCF63141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */; }; + ABEFCF64141AB82A000CC0CD /* AppIcon_SaveState.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */; }; + ABF2B9FB16904133000FF7C0 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */; }; + ABF2B9FC16904133000FF7C0 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */; }; + ABFE150714C92FF5005D6699 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */; }; + ABFE150814C92FF5005D6699 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FB14C92FF5005D6699 /* bilinear.cpp */; }; + ABFE150914C92FF5005D6699 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FC14C92FF5005D6699 /* epx.cpp */; }; + ABFE150A14C92FF5005D6699 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE14FE14C92FF5005D6699 /* hq2x.cpp */; }; + ABFE150B14C92FF5005D6699 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150014C92FF5005D6699 /* hq4x.cpp */; }; + ABFE150D14C92FF5005D6699 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150414C92FF5005D6699 /* lq2x.cpp */; }; + ABFE150E14C92FF5005D6699 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE150614C92FF5005D6699 /* scanline.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; + AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; + AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = ""; }; + AB00E89114205ECC00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = ""; }; + AB01005C170D07AF00D70FBE /* InputProfileController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputProfileController.h; sourceTree = ""; }; + AB01005D170D07B000D70FBE /* InputProfileController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InputProfileController.mm; sourceTree = ""; }; + AB02475B13886BF300E9F9AB /* KeyNames.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = KeyNames.plist; sourceTree = ""; }; + AB02791814415E4C0075E58C /* Info (Debug).plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info (Debug).plist"; sourceTree = ""; }; + AB0A0D1914AACA9600E83E91 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Execute_420x420.png; path = images/Icon_Execute_420x420.png; sourceTree = ""; }; + AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Pause_420x420.png; path = images/Icon_Pause_420x420.png; sourceTree = ""; }; + AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speed1x_420x420.png; path = images/Icon_Speed1x_420x420.png; sourceTree = ""; }; + AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speed2x_420x420.png; path = images/Icon_Speed2x_420x420.png; sourceTree = ""; }; + AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Blue_16x16.png; path = images/ColorSwatch_Blue_16x16.png; sourceTree = ""; }; + AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Brown_16x16.png; path = images/ColorSwatch_Brown_16x16.png; sourceTree = ""; }; + AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_DarkBlue_16x16.png; path = images/ColorSwatch_DarkBlue_16x16.png; sourceTree = ""; }; + AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_DarkGreen_16x16.png; path = images/ColorSwatch_DarkGreen_16x16.png; sourceTree = ""; }; + AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_DarkPurple_16x16.png; path = images/ColorSwatch_DarkPurple_16x16.png; sourceTree = ""; }; + AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Gray_16x16.png; path = images/ColorSwatch_Gray_16x16.png; sourceTree = ""; }; + AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Green_16x16.png; path = images/ColorSwatch_Green_16x16.png; sourceTree = ""; }; + AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_LimeGreen_16x16.png; path = images/ColorSwatch_LimeGreen_16x16.png; sourceTree = ""; }; + AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Magenta_16x16.png; path = images/ColorSwatch_Magenta_16x16.png; sourceTree = ""; }; + AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Orange_16x16.png; path = images/ColorSwatch_Orange_16x16.png; sourceTree = ""; }; + AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Pink_16x16.png; path = images/ColorSwatch_Pink_16x16.png; sourceTree = ""; }; + AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Red_16x16.png; path = images/ColorSwatch_Red_16x16.png; sourceTree = ""; }; + AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_SeaGreen_16x16.png; path = images/ColorSwatch_SeaGreen_16x16.png; sourceTree = ""; }; + AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Turquoise_16x16.png; path = images/ColorSwatch_Turquoise_16x16.png; sourceTree = ""; }; + AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Violet_16x16.png; path = images/ColorSwatch_Violet_16x16.png; sourceTree = ""; }; + AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Yellow_16x16.png; path = images/ColorSwatch_Yellow_16x16.png; sourceTree = ""; }; + AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ActionReplay_128x128.png; path = images/Icon_ActionReplay_128x128.png; sourceTree = ""; }; + AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_CodeBreaker_128x128.png; path = images/Icon_CodeBreaker_128x128.png; sourceTree = ""; }; + AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = VideoFilterPreview_64x64.png; path = images/VideoFilterPreview_64x64.png; sourceTree = ""; }; + AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowDown_420x420.png; path = images/Icon_ArrowDown_420x420.png; sourceTree = ""; }; + AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowLeft_420x420.png; path = images/Icon_ArrowLeft_420x420.png; sourceTree = ""; }; + AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowRight_420x420.png; path = images/Icon_ArrowRight_420x420.png; sourceTree = ""; }; + AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowUp_420x420.png; path = images/Icon_ArrowUp_420x420.png; sourceTree = ""; }; + AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DoubleSpeed_420x420.png; path = images/Icon_DoubleSpeed_420x420.png; sourceTree = ""; }; + AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonA_420x420.png; path = images/Icon_DSButtonA_420x420.png; sourceTree = ""; }; + AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonB_420x420.png; path = images/Icon_DSButtonB_420x420.png; sourceTree = ""; }; + AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonL_420x420.png; path = images/Icon_DSButtonL_420x420.png; sourceTree = ""; }; + AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonR_420x420.png; path = images/Icon_DSButtonR_420x420.png; sourceTree = ""; }; + AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonSelect_420x420.png; path = images/Icon_DSButtonSelect_420x420.png; sourceTree = ""; }; + AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonStart_420x420.png; path = images/Icon_DSButtonStart_420x420.png; sourceTree = ""; }; + AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonX_420x420.png; path = images/Icon_DSButtonX_420x420.png; sourceTree = ""; }; + AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonY_420x420.png; path = images/Icon_DSButtonY_420x420.png; sourceTree = ""; }; + AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Emulation_420x420.png; path = images/Icon_Emulation_420x420.png; sourceTree = ""; }; + AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Input_420x420.png; path = images/Icon_Input_420x420.png; sourceTree = ""; }; + AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Microphone_420x420.png; path = images/Icon_Microphone_420x420.png; sourceTree = ""; }; + AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_OpenROM_420x420.png; path = images/Icon_OpenROM_420x420.png; sourceTree = ""; }; + AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Reset_420x420.png; path = images/Icon_Reset_420x420.png; sourceTree = ""; }; + AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_RotateCCW_420x420.png; path = images/Icon_RotateCCW_420x420.png; sourceTree = ""; }; + AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_RotateCW_420x420.png; path = images/Icon_RotateCW_420x420.png; sourceTree = ""; }; + AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ShowHUD_420x420.png; path = images/Icon_ShowHUD_420x420.png; sourceTree = ""; }; + AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speaker_420x420.png; path = images/Icon_Speaker_420x420.png; sourceTree = ""; }; + AB1773FC182ECA8A009F29DD /* slot2_passme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_passme.cpp; sourceTree = ""; }; + AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coreaudiosound.cpp; sourceTree = ""; }; + AB1B9E601501A78000464647 /* ringbuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ringbuffer.cpp; sourceTree = ""; }; + AB1B9E611501A78000464647 /* coreaudiosound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = coreaudiosound.h; sourceTree = ""; }; + AB1B9E621501A78000464647 /* ringbuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ringbuffer.h; sourceTree = ""; }; + AB23567216C2F6F400DA782E /* macosx_10_5_compat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macosx_10_5_compat.cpp; sourceTree = ""; }; + AB29B15C18313ACD009B7982 /* slot2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = slot2.h; path = ../slot2.h; sourceTree = ""; }; + AB29B16118313AF5009B7982 /* slot2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = slot2.cpp; path = ../slot2.cpp; sourceTree = ""; }; + AB29B16518313C14009B7982 /* slot2_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_auto.cpp; sourceTree = ""; }; + AB29B32F16D4BEBF000EF671 /* InputManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputManager.h; sourceTree = ""; }; + AB29B33016D4BEBF000EF671 /* InputManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InputManager.mm; sourceTree = ""; }; + AB2EE12B17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom_debug.cpp; sourceTree = ""; }; + AB2EE12F17D57F5000F68622 /* fsnitro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fsnitro.h; sourceTree = ""; }; + AB2EE13017D57F5000F68622 /* fsnitro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fsnitro.cpp; sourceTree = ""; }; + AB350BA41478AC96007165AC /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + AB350D38147A1D8D007165AC /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = English; path = translations/English.lproj/HID_usage_strings.plist; sourceTree = ""; }; + AB3A655C16CC5416001F5D4A /* EmuControllerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmuControllerDelegate.h; sourceTree = ""; }; + AB3A655D16CC5421001F5D4A /* EmuControllerDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EmuControllerDelegate.mm; sourceTree = ""; }; + AB3A656016CC5438001F5D4A /* cocoa_GPU.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_GPU.mm; sourceTree = ""; }; + AB3A656416CC5442001F5D4A /* cocoa_GPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_GPU.h; sourceTree = ""; }; + AB3ACB6614C2361100D7D192 /* appDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = appDelegate.h; sourceTree = ""; }; + AB3ACB6714C2361100D7D192 /* appDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = appDelegate.mm; sourceTree = ""; }; + AB3ACB6814C2361100D7D192 /* cheatWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cheatWindowDelegate.h; sourceTree = ""; }; + AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cheatWindowDelegate.mm; sourceTree = ""; }; + AB3ACB6E14C2361100D7D192 /* inputPrefsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inputPrefsView.h; sourceTree = ""; }; + AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = inputPrefsView.mm; sourceTree = ""; }; + AB3ACB7014C2361100D7D192 /* preferencesWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = preferencesWindowDelegate.h; sourceTree = ""; }; + AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = preferencesWindowDelegate.mm; sourceTree = ""; }; + AB3ACC3814C24D5400D7D192 /* AUTHORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = AUTHORS; path = ../../AUTHORS; sourceTree = SOURCE_ROOT; }; + AB3ACC3914C24D5400D7D192 /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ChangeLog; path = ../../ChangeLog; sourceTree = SOURCE_ROOT; }; + AB3ACC3A14C24D5400D7D192 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = COPYING; path = ../../COPYING; sourceTree = SOURCE_ROOT; }; + AB3ACC3B14C24D5400D7D192 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README; path = ../../README; sourceTree = SOURCE_ROOT; }; + AB3ACC3D14C24D5400D7D192 /* README.MAC */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.MAC; path = ../../README.MAC; sourceTree = SOURCE_ROOT; }; + AB3E34C7134AF4500056477A /* cocoa_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_output.h; sourceTree = ""; }; + AB3E34C8134AF4500056477A /* cocoa_output.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_output.mm; sourceTree = ""; }; + AB4055ED169F59380016AC3E /* AsmJit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsmJit.h; sourceTree = ""; }; + AB4055EE169F59380016AC3E /* Config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config.h; sourceTree = ""; }; + AB4055EF169F59380016AC3E /* core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = core.h; sourceTree = ""; }; + AB4055F0169F59380016AC3E /* x86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86.h; sourceTree = ""; }; + AB4055FE169F5DBB0016AC3E /* apibegin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = apibegin.h; sourceTree = ""; }; + AB4055FF169F5DBB0016AC3E /* apiend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = apiend.h; sourceTree = ""; }; + AB405600169F5DBB0016AC3E /* assembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assembler.cpp; sourceTree = ""; }; + AB405601169F5DBB0016AC3E /* assembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assembler.h; sourceTree = ""; }; + AB405602169F5DBB0016AC3E /* assert.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assert.cpp; sourceTree = ""; }; + AB405603169F5DBB0016AC3E /* assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assert.h; sourceTree = ""; }; + AB405604169F5DBB0016AC3E /* buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = buffer.cpp; sourceTree = ""; }; + AB405605169F5DBB0016AC3E /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffer.h; sourceTree = ""; }; + AB405606169F5DBB0016AC3E /* build.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build.h; sourceTree = ""; }; + AB405607169F5DBB0016AC3E /* compiler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compiler.cpp; sourceTree = ""; }; + AB405608169F5DBB0016AC3E /* compiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compiler.h; sourceTree = ""; }; + AB405609169F5DBB0016AC3E /* compilercontext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compilercontext.cpp; sourceTree = ""; }; + AB40560A169F5DBB0016AC3E /* compilercontext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compilercontext.h; sourceTree = ""; }; + AB40560B169F5DBB0016AC3E /* compilerfunc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compilerfunc.cpp; sourceTree = ""; }; + AB40560C169F5DBB0016AC3E /* compilerfunc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compilerfunc.h; sourceTree = ""; }; + AB40560D169F5DBB0016AC3E /* compileritem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compileritem.cpp; sourceTree = ""; }; + AB40560E169F5DBB0016AC3E /* compileritem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compileritem.h; sourceTree = ""; }; + AB40560F169F5DBB0016AC3E /* context.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = context.cpp; sourceTree = ""; }; + AB405610169F5DBB0016AC3E /* context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = context.h; sourceTree = ""; }; + AB405611169F5DBB0016AC3E /* cpuinfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpuinfo.cpp; sourceTree = ""; }; + AB405612169F5DBB0016AC3E /* cpuinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpuinfo.h; sourceTree = ""; }; + AB405613169F5DBB0016AC3E /* defs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = defs.cpp; sourceTree = ""; }; + AB405614169F5DBB0016AC3E /* defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = defs.h; sourceTree = ""; }; + AB405615169F5DBB0016AC3E /* func.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = func.cpp; sourceTree = ""; }; + AB405616169F5DBB0016AC3E /* func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = func.h; sourceTree = ""; }; + AB405617169F5DBB0016AC3E /* intutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = intutil.h; sourceTree = ""; }; + AB405618169F5DBB0016AC3E /* lock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lock.h; sourceTree = ""; }; + AB405619169F5DBB0016AC3E /* logger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = logger.cpp; sourceTree = ""; }; + AB40561A169F5DBB0016AC3E /* logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = logger.h; sourceTree = ""; }; + AB40561B169F5DBB0016AC3E /* memorymanager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memorymanager.cpp; sourceTree = ""; }; + AB40561C169F5DBB0016AC3E /* memorymanager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memorymanager.h; sourceTree = ""; }; + AB40561D169F5DBB0016AC3E /* memorymarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memorymarker.cpp; sourceTree = ""; }; + AB40561E169F5DBB0016AC3E /* memorymarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memorymarker.h; sourceTree = ""; }; + AB40561F169F5DBB0016AC3E /* operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand.cpp; sourceTree = ""; }; + AB405620169F5DBB0016AC3E /* operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand.h; sourceTree = ""; }; + AB405621169F5DBB0016AC3E /* podvector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = podvector.h; sourceTree = ""; }; + AB405622169F5DBB0016AC3E /* stringbuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringbuilder.cpp; sourceTree = ""; }; + AB405623169F5DBB0016AC3E /* stringbuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringbuilder.h; sourceTree = ""; }; + AB405624169F5DBB0016AC3E /* stringutil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringutil.cpp; sourceTree = ""; }; + AB405625169F5DBB0016AC3E /* stringutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringutil.h; sourceTree = ""; }; + AB405626169F5DBB0016AC3E /* virtualmemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = virtualmemory.cpp; sourceTree = ""; }; + AB405627169F5DBB0016AC3E /* virtualmemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = virtualmemory.h; sourceTree = ""; }; + AB405628169F5DBB0016AC3E /* zonememory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = zonememory.cpp; sourceTree = ""; }; + AB405629169F5DBB0016AC3E /* zonememory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zonememory.h; sourceTree = ""; }; + AB405664169F5DCC0016AC3E /* x86assembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86assembler.cpp; sourceTree = ""; }; + AB405665169F5DCC0016AC3E /* x86assembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86assembler.h; sourceTree = ""; }; + AB405666169F5DCC0016AC3E /* x86compiler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86compiler.cpp; sourceTree = ""; }; + AB405667169F5DCC0016AC3E /* x86compiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86compiler.h; sourceTree = ""; }; + AB405668169F5DCC0016AC3E /* x86compilercontext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86compilercontext.cpp; sourceTree = ""; }; + AB405669169F5DCC0016AC3E /* x86compilercontext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86compilercontext.h; sourceTree = ""; }; + AB40566A169F5DCC0016AC3E /* x86compilerfunc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86compilerfunc.cpp; sourceTree = ""; }; + AB40566B169F5DCC0016AC3E /* x86compilerfunc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86compilerfunc.h; sourceTree = ""; }; + AB40566C169F5DCC0016AC3E /* x86compileritem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86compileritem.cpp; sourceTree = ""; }; + AB40566D169F5DCC0016AC3E /* x86compileritem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86compileritem.h; sourceTree = ""; }; + AB40566E169F5DCC0016AC3E /* x86cpuinfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86cpuinfo.cpp; sourceTree = ""; }; + AB40566F169F5DCC0016AC3E /* x86cpuinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86cpuinfo.h; sourceTree = ""; }; + AB405670169F5DCC0016AC3E /* x86defs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86defs.cpp; sourceTree = ""; }; + AB405671169F5DCC0016AC3E /* x86defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86defs.h; sourceTree = ""; }; + AB405672169F5DCC0016AC3E /* x86func.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86func.cpp; sourceTree = ""; }; + AB405673169F5DCC0016AC3E /* x86func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86func.h; sourceTree = ""; }; + AB405674169F5DCC0016AC3E /* x86operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86operand.cpp; sourceTree = ""; }; + AB405675169F5DCC0016AC3E /* x86operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86operand.h; sourceTree = ""; }; + AB405676169F5DCC0016AC3E /* x86util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = x86util.cpp; sourceTree = ""; }; + AB405677169F5DCC0016AC3E /* x86util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x86util.h; sourceTree = ""; }; + AB4FCEBC1692AB82000F498F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + AB5785FC17176AFC002C5FC7 /* OpenEmuBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenEmuBase.framework; path = openemu/OpenEmuBase.framework; sourceTree = ""; }; + AB58F32B1364F44B0074C376 /* cocoa_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_file.h; sourceTree = ""; }; + AB58F32C1364F44B0074C376 /* cocoa_file.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_file.mm; sourceTree = ""; }; + AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = FileTypeInfo.plist; sourceTree = ""; }; + AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OGLRender_3_2.cpp; path = ../OGLRender_3_2.cpp; sourceTree = ""; }; + AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_nand.cpp; sourceTree = ""; }; + AB74EC891738499C0026C41E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_FirmwareConfig.icns; sourceTree = ""; }; + AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_jit.cpp; path = ../arm_jit.cpp; sourceTree = ""; }; + AB796CA115CDCB4600C59155 /* arm_jit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = arm_jit.h; path = ../arm_jit.h; sourceTree = ""; }; + AB796CA215CDCB6B00C59155 /* instruction_attributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = instruction_attributes.h; path = ../instruction_attributes.h; sourceTree = ""; }; + AB796CA315CDCB6B00C59155 /* instructions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = instructions.h; path = ../instructions.h; sourceTree = ""; }; + AB796D7015CDCBA200C59155 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; + AB80E04C142BC4A800A52038 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = ""; }; + AB80E050142BC4FA00A52038 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = ""; }; + AB817A34143EE2DB00A7DFE9 /* videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videofilter.h; sourceTree = ""; }; + AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = videofilter.cpp; sourceTree = ""; }; + AB82445A1704AE9A00B8EE20 /* utilities.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = utilities.c; sourceTree = ""; }; + AB82445E1704AEC400B8EE20 /* utilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utilities.h; sourceTree = ""; }; + AB8967D716D2ED0700F826F1 /* DisplayWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisplayWindowController.h; sourceTree = ""; }; + AB8967D816D2ED0700F826F1 /* DisplayWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DisplayWindowController.mm; sourceTree = ""; }; + AB8967DC16D2ED2700F826F1 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/DisplayWindow.xib; sourceTree = ""; }; + AB8B7AAA17CE8C440051CEBF /* slot1comp_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_protocol.h; sourceTree = ""; }; + AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_protocol.cpp; sourceTree = ""; }; + AB901BDF1420706B00348EEC /* Japanese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Japanese; path = translations/Japanese.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE01420706F00348EEC /* French */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = French; path = translations/French.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE11420707400348EEC /* Italian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Italian; path = translations/Italian.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE21420707800348EEC /* Chinese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE31420707D00348EEC /* Norwegian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE41420708200348EEC /* Romanian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Romanian; path = translations/Romanian.lproj/Localizable.strings; sourceTree = ""; }; + AB9038A417C5ECFD00F410BD /* advanscene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = advanscene.h; sourceTree = ""; }; + AB9038A517C5ECFD00F410BD /* advanscene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = advanscene.cpp; sourceTree = ""; }; + AB9038A917C5ED2200F410BD /* slot1_retail_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_auto.cpp; sourceTree = ""; }; + AB9038AA17C5ED2200F410BD /* slot1_retail_mcrom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_mcrom.cpp; sourceTree = ""; }; + AB9038AB17C5ED2200F410BD /* slot1comp_mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_mc.cpp; sourceTree = ""; }; + AB9038AC17C5ED2200F410BD /* slot1comp_mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_mc.h; sourceTree = ""; }; + AB9038AD17C5ED2200F410BD /* slot1comp_rom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_rom.cpp; sourceTree = ""; }; + AB9038AE17C5ED2200F410BD /* slot1comp_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_rom.h; sourceTree = ""; }; + AB9971CE134EDA0800531BA7 /* cocoa_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_globals.h; sourceTree = ""; }; + ABA6574914511EC90077E5E9 /* cocoa_cheat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_cheat.h; sourceTree = ""; }; + ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_cheat.mm; sourceTree = ""; }; + ABACB8DB1710B621003B845D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + ABAD3E5913AF1D6D00502E1E /* AAFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAFilter.h; sourceTree = ""; }; + ABAD3E5A13AF1D6D00502E1E /* BPMDetect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BPMDetect.h; sourceTree = ""; }; + ABAD3E5B13AF1D6D00502E1E /* cpu_detect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu_detect.h; sourceTree = ""; }; + ABAD3E5C13AF1D6D00502E1E /* FIFOSampleBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIFOSampleBuffer.h; sourceTree = ""; }; + ABAD3E5D13AF1D6D00502E1E /* FIFOSamplePipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIFOSamplePipe.h; sourceTree = ""; }; + ABAD3E5E13AF1D6D00502E1E /* FIRFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRFilter.h; sourceTree = ""; }; + ABAD3E5F13AF1D6D00502E1E /* RateTransposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RateTransposer.h; sourceTree = ""; }; + ABAD3E6013AF1D6D00502E1E /* SoundTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundTouch.h; sourceTree = ""; }; + ABAD3E6113AF1D6D00502E1E /* STTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STTypes.h; sourceTree = ""; }; + ABAD3E6213AF1D6D00502E1E /* TDStretch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDStretch.h; sourceTree = ""; }; + ABAD3E6313AF1D6D00502E1E /* WavFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WavFile.h; sourceTree = ""; }; + ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AAFilter.cpp; sourceTree = ""; }; + ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu_detect_x86_gcc.cpp; sourceTree = ""; }; + ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FIFOSampleBuffer.cpp; sourceTree = ""; }; + ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FIRFilter.cpp; sourceTree = ""; }; + ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mmx_optimized.cpp; sourceTree = ""; }; + ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RateTransposer.cpp; sourceTree = ""; }; + ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SoundTouch.cpp; sourceTree = ""; }; + ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sse_optimized.cpp; sourceTree = ""; }; + ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TDStretch.cpp; sourceTree = ""; }; + ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WavFile.cpp; sourceTree = ""; }; + ABB3C63B1501BB8300E0C22E /* DeSmuME_Prefix_OpenEmu.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeSmuME_Prefix_OpenEmu.pch; sourceTree = ""; }; + ABB3C63C1501BB8300E0C22E /* Info (OpenEmu Plug-in).plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info (OpenEmu Plug-in).plist"; sourceTree = ""; }; + ABB3C63D1501BB8300E0C22E /* NDSGameCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NDSGameCore.h; sourceTree = ""; }; + ABB3C63E1501BB8300E0C22E /* NDSGameCore.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = NDSGameCore.mm; sourceTree = ""; }; + ABB3C63F1501BB8300E0C22E /* OENDSSystemResponderClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OENDSSystemResponderClient.h; sourceTree = ""; }; + ABB3C6401501BB8300E0C22E /* OESoundInterface.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = OESoundInterface.mm; sourceTree = ""; }; + ABB3C6411501BB8300E0C22E /* OESoundInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OESoundInterface.h; sourceTree = ""; }; + ABB3C6471501BC6D00E0C22E /* DeSmuME.oecoreplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DeSmuME.oecoreplugin; sourceTree = BUILT_PRODUCTS_DIR; }; + ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ActionReplay_32x32.png; path = Images/Icon_ActionReplay_32x32.png; sourceTree = ""; }; + ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_CodeBreaker_32x32.png; path = Images/Icon_CodeBreaker_32x32.png; sourceTree = ""; }; + ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DeSmuME_32x32.png; path = Images/Icon_DeSmuME_32x32.png; sourceTree = ""; }; + ABBB421516B4A5F30012E5AB /* OGLRender_3_2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OGLRender_3_2.h; path = ../OGLRender_3_2.h; sourceTree = ""; }; + ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = DefaultUserPrefs.plist; sourceTree = ""; }; + ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMCheats.icns; sourceTree = ""; }; + ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeFull_16x16.png; path = images/Icon_VolumeFull_16x16.png; sourceTree = ""; }; + ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeMute_16x16.png; path = images/Icon_VolumeMute_16x16.png; sourceTree = ""; }; + ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeOneThird_16x16.png; path = images/Icon_VolumeOneThird_16x16.png; sourceTree = ""; }; + ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeTwoThird_16x16.png; path = images/Icon_VolumeTwoThird_16x16.png; sourceTree = ""; }; + ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + ABC570D4134431DA00E7B0B1 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = DefaultKeyMappings.plist; sourceTree = ""; }; + ABCFA9F2178BDE920030C8BA /* encrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encrypt.h; path = ../encrypt.h; sourceTree = ""; }; + ABCFA9F3178BDE920030C8BA /* encrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = encrypt.cpp; path = ../encrypt.cpp; sourceTree = ""; }; + ABD103FE1346652500AF11D1 /* cocoa_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_core.h; sourceTree = ""; }; + ABD103FF1346652500AF11D1 /* cocoa_input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_input.h; sourceTree = ""; }; + ABD104001346652500AF11D1 /* cocoa_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_rom.h; sourceTree = ""; }; + ABD104011346652500AF11D1 /* sndOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sndOSX.h; sourceTree = ""; }; + ABD104111346652500AF11D1 /* cocoa_input.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_input.mm; sourceTree = ""; }; + ABD104121346652500AF11D1 /* cocoa_core.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_core.mm; sourceTree = ""; }; + ABD104131346652500AF11D1 /* cocoa_rom.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_rom.mm; sourceTree = ""; }; + ABD104141346652500AF11D1 /* sndOSX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sndOSX.cpp; sourceTree = ""; }; + ABD104271346653B00AF11D1 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + ABD10452134666DD00AF11D1 /* DeSmuME_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeSmuME_Prefix.pch; sourceTree = ""; }; + ABD10AE31715FCDD00B5729D /* audiosamplegenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audiosamplegenerator.h; sourceTree = SOURCE_ROOT; }; + ABD10AE41715FCDD00B5729D /* mic_ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mic_ext.h; sourceTree = SOURCE_ROOT; }; + ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audiosamplegenerator.cpp; sourceTree = SOURCE_ROOT; }; + ABD10AE61715FCDD00B5729D /* mic_ext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mic_ext.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FE6C1345AC8400AF11D1 /* agg2d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = agg2d.h; path = ../agg2d.h; sourceTree = SOURCE_ROOT; }; + ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aggdraw.h; path = ../aggdraw.h; sourceTree = SOURCE_ROOT; }; + ABD1FE6F1345AC8400AF11D1 /* armcpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armcpu.h; path = ../armcpu.h; sourceTree = SOURCE_ROOT; }; + ABD1FE701345AC8400AF11D1 /* bios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bios.h; path = ../bios.h; sourceTree = SOURCE_ROOT; }; + ABD1FE711345AC8400AF11D1 /* bits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bits.h; path = ../bits.h; sourceTree = SOURCE_ROOT; }; + ABD1FE721345AC8400AF11D1 /* cheatSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cheatSystem.h; path = ../cheatSystem.h; sourceTree = SOURCE_ROOT; }; + ABD1FE731345AC8400AF11D1 /* commandline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = commandline.h; path = ../commandline.h; sourceTree = SOURCE_ROOT; }; + ABD1FE741345AC8400AF11D1 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../common.h; sourceTree = SOURCE_ROOT; }; + ABD1FE751345AC8400AF11D1 /* cp15.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cp15.h; path = ../cp15.h; sourceTree = SOURCE_ROOT; }; + ABD1FE761345AC8400AF11D1 /* ctrlssdl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ctrlssdl.h; path = ../ctrlssdl.h; sourceTree = SOURCE_ROOT; }; + ABD1FE771345AC8400AF11D1 /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debug.h; path = ../debug.h; sourceTree = SOURCE_ROOT; }; + ABD1FE781345AC8400AF11D1 /* desmume_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = desmume_config.h; path = ../desmume_config.h; sourceTree = SOURCE_ROOT; }; + ABD1FE791345AC8400AF11D1 /* Disassembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Disassembler.h; path = ../Disassembler.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7A1345AC8400AF11D1 /* driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = driver.h; path = ../driver.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7B1345AC8400AF11D1 /* emufile_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emufile_types.h; path = ../emufile_types.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7C1345AC8400AF11D1 /* emufile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emufile.h; path = ../emufile.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7D1345AC8400AF11D1 /* FIFO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FIFO.h; path = ../FIFO.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7E1345AC8400AF11D1 /* firmware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = firmware.h; path = ../firmware.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7F1345AC8400AF11D1 /* fs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fs.h; path = ../fs.h; sourceTree = SOURCE_ROOT; }; + ABD1FE801345AC8400AF11D1 /* gdbstub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gdbstub.h; path = ../gdbstub.h; sourceTree = SOURCE_ROOT; }; + ABD1FE811345AC8400AF11D1 /* gfx3d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gfx3d.h; path = ../gfx3d.h; sourceTree = SOURCE_ROOT; }; + ABD1FE821345AC8400AF11D1 /* GPU_osd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GPU_osd.h; path = ../GPU_osd.h; sourceTree = SOURCE_ROOT; }; + ABD1FE831345AC8400AF11D1 /* GPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GPU.h; path = ../GPU.h; sourceTree = SOURCE_ROOT; }; + ABD1FE841345AC8400AF11D1 /* lua-engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "lua-engine.h"; path = "../lua-engine.h"; sourceTree = SOURCE_ROOT; }; + ABD1FE851345AC8400AF11D1 /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = matrix.h; path = ../matrix.h; sourceTree = SOURCE_ROOT; }; + ABD1FE861345AC8400AF11D1 /* mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mc.h; path = ../mc.h; sourceTree = SOURCE_ROOT; }; + ABD1FE871345AC8400AF11D1 /* mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mem.h; path = ../mem.h; sourceTree = SOURCE_ROOT; }; + ABD1FE881345AC8400AF11D1 /* mic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mic.h; path = ../mic.h; sourceTree = SOURCE_ROOT; }; + ABD1FE891345AC8400AF11D1 /* MMU_timing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMU_timing.h; path = ../MMU_timing.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8A1345AC8400AF11D1 /* MMU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMU.h; path = ../MMU.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8B1345AC8400AF11D1 /* movie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = movie.h; path = ../movie.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8C1345AC8400AF11D1 /* NDSSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NDSSystem.h; path = ../NDSSystem.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8D1345AC8400AF11D1 /* OGLRender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OGLRender.h; path = ../OGLRender.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8E1345AC8400AF11D1 /* PACKED_END.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PACKED_END.h; path = ../PACKED_END.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8F1345AC8400AF11D1 /* PACKED.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PACKED.h; path = ../PACKED.h; sourceTree = SOURCE_ROOT; }; + ABD1FE901345AC8400AF11D1 /* path.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = path.h; path = ../path.h; sourceTree = SOURCE_ROOT; }; + ABD1FE911345AC8400AF11D1 /* rasterize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rasterize.h; path = ../rasterize.h; sourceTree = SOURCE_ROOT; }; + ABD1FE921345AC8400AF11D1 /* readwrite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = readwrite.h; path = ../readwrite.h; sourceTree = SOURCE_ROOT; }; + ABD1FE931345AC8400AF11D1 /* registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = registers.h; path = ../registers.h; sourceTree = SOURCE_ROOT; }; + ABD1FE941345AC8400AF11D1 /* render3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = render3D.h; path = ../render3D.h; sourceTree = SOURCE_ROOT; }; + ABD1FE951345AC8400AF11D1 /* ROMReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ROMReader.h; path = ../ROMReader.h; sourceTree = SOURCE_ROOT; }; + ABD1FE961345AC8400AF11D1 /* rtc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rtc.h; path = ../rtc.h; sourceTree = SOURCE_ROOT; }; + ABD1FE971345AC8400AF11D1 /* saves.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = saves.h; path = ../saves.h; sourceTree = SOURCE_ROOT; }; + ABD1FE991345AC8400AF11D1 /* slot1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = slot1.h; path = ../slot1.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9A1345AC8400AF11D1 /* sndsdl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sndsdl.h; path = ../sndsdl.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9B1345AC8400AF11D1 /* SPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SPU.h; path = ../SPU.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9C1345AC8400AF11D1 /* texcache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = texcache.h; path = ../texcache.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9E1345AC8400AF11D1 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../types.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9F1345AC8400AF11D1 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../version.h; sourceTree = SOURCE_ROOT; }; + ABD1FEA01345AC8400AF11D1 /* wifi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wifi.h; path = ../wifi.h; sourceTree = SOURCE_ROOT; }; + ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggdraw.cpp; path = ../aggdraw.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_instructions.cpp; path = ../arm_instructions.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armcpu.cpp; path = ../armcpu.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA51345AC8400AF11D1 /* bios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bios.cpp; path = ../bios.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cheatSystem.cpp; path = ../cheatSystem.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA71345AC8400AF11D1 /* commandline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = commandline.cpp; path = ../commandline.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA81345AC8400AF11D1 /* common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = common.cpp; path = ../common.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA91345AC8400AF11D1 /* cp15.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cp15.cpp; path = ../cp15.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAA1345AC8400AF11D1 /* ctrlssdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ctrlssdl.cpp; path = ../ctrlssdl.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAB1345AC8400AF11D1 /* debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = debug.cpp; path = ../debug.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAC1345AC8400AF11D1 /* desmume_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = desmume_config.cpp; path = ../desmume_config.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Disassembler.cpp; path = ../Disassembler.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAE1345AC8400AF11D1 /* driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = driver.cpp; path = ../driver.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = emufile.cpp; path = ../emufile.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FIFO.cpp; path = ../FIFO.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB11345AC8400AF11D1 /* firmware.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = firmware.cpp; path = ../firmware.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "fs-linux.cpp"; path = "../fs-linux.cpp"; sourceTree = SOURCE_ROOT; }; + ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gfx3d.cpp; path = ../gfx3d.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU_osd_stub.cpp; path = ../GPU_osd_stub.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB61345AC8400AF11D1 /* GPU_osd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU_osd.cpp; path = ../GPU_osd.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB71345AC8400AF11D1 /* GPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU.cpp; path = ../GPU.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB81345AC8400AF11D1 /* lua-engine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "lua-engine.cpp"; path = "../lua-engine.cpp"; sourceTree = SOURCE_ROOT; }; + ABD1FEB91345AC8400AF11D1 /* matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = matrix.cpp; path = ../matrix.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBA1345AC8400AF11D1 /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mc.cpp; path = ../mc.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBB1345AC8400AF11D1 /* mic_alsa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mic_alsa.cpp; path = ../mic_alsa.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBC1345AC8400AF11D1 /* mic_openal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mic_openal.cpp; path = ../mic_openal.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBD1345AC8400AF11D1 /* mic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mic.cpp; path = ../mic.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MMU.cpp; path = ../MMU.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBF1345AC8400AF11D1 /* movie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = movie.cpp; path = ../movie.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NDSSystem.cpp; path = ../NDSSystem.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OGLRender.cpp; path = ../OGLRender.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC21345AC8400AF11D1 /* path.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = path.cpp; path = ../path.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rasterize.cpp; path = ../rasterize.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = readwrite.cpp; path = ../readwrite.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC51345AC8400AF11D1 /* render3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = render3D.cpp; path = ../render3D.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ROMReader.cpp; path = ../ROMReader.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC71345AC8400AF11D1 /* rtc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rtc.cpp; path = ../rtc.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC81345AC8400AF11D1 /* saves.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = saves.cpp; path = ../saves.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC91345AC8400AF11D1 /* slot1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = slot1.cpp; path = ../slot1.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECA1345AC8400AF11D1 /* sndsdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sndsdl.cpp; path = ../sndsdl.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECB1345AC8400AF11D1 /* SPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SPU.cpp; path = ../SPU.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECC1345AC8400AF11D1 /* texcache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = texcache.cpp; path = ../texcache.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = thumb_instructions.cpp; path = ../thumb_instructions.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECE1345AC8400AF11D1 /* version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = version.cpp; path = ../version.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECF1345AC8400AF11D1 /* wifi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wifi.cpp; path = ../wifi.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_none.cpp; sourceTree = ""; }; + ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_r4.cpp; sourceTree = ""; }; + ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_expMemory.cpp; sourceTree = ""; }; + ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_gbagame.cpp; sourceTree = ""; }; + ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_guitarGrip.cpp; sourceTree = ""; }; + ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_mpcf.cpp; sourceTree = ""; }; + ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_none.cpp; sourceTree = ""; }; + ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_paddle.cpp; sourceTree = ""; }; + ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_piano.cpp; sourceTree = ""; }; + ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_rumblepak.cpp; sourceTree = ""; }; + ABD1FF171345ACA900AF11D1 /* gdbstub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gdbstub.cpp; sourceTree = ""; }; + ABD1FF181345ACA900AF11D1 /* gdbstub_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gdbstub_internal.h; sourceTree = ""; }; + ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ConvertUTF.c; sourceTree = ""; }; + ABD1FF1E1345ACBF00AF11D1 /* ConvertUTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConvertUTF.h; sourceTree = ""; }; + ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = datetime.cpp; sourceTree = ""; }; + ABD1FF201345ACBF00AF11D1 /* datetime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = datetime.h; sourceTree = ""; }; + ABD1FF221345ACBF00AF11D1 /* crc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crc.cpp; sourceTree = ""; }; + ABD1FF231345ACBF00AF11D1 /* crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc.h; sourceTree = ""; }; + ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decrypt.cpp; sourceTree = ""; }; + ABD1FF251345ACBF00AF11D1 /* decrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + ABD1FF261345ACBF00AF11D1 /* header.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = header.cpp; sourceTree = ""; }; + ABD1FF271345ACBF00AF11D1 /* header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = header.h; sourceTree = ""; }; + ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dlditool.cpp; sourceTree = ""; }; + ABD1FF291345ACBF00AF11D1 /* emufat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = emufat.cpp; sourceTree = ""; }; + ABD1FF2A1345ACBF00AF11D1 /* emufat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emufat.h; sourceTree = ""; }; + ABD1FF2B1345ACBF00AF11D1 /* emufat_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emufat_types.h; sourceTree = ""; }; + ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guid.cpp; sourceTree = ""; }; + ABD1FF2D1345ACBF00AF11D1 /* guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guid.h; sourceTree = ""; }; + ABD1FF2F1345ACBF00AF11D1 /* bit_ops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_ops.h; sourceTree = ""; }; + ABD1FF301345ACBF00AF11D1 /* cache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache.cpp; sourceTree = ""; }; + ABD1FF311345ACBF00AF11D1 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cache.h; sourceTree = ""; }; + ABD1FF321345ACBF00AF11D1 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + ABD1FF331345ACBF00AF11D1 /* directory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = directory.cpp; sourceTree = ""; }; + ABD1FF341345ACBF00AF11D1 /* directory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = directory.h; sourceTree = ""; }; + ABD1FF351345ACBF00AF11D1 /* disc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disc.cpp; sourceTree = ""; }; + ABD1FF361345ACBF00AF11D1 /* disc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disc.h; sourceTree = ""; }; + ABD1FF371345ACBF00AF11D1 /* disc_io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disc_io.h; sourceTree = ""; }; + ABD1FF381345ACBF00AF11D1 /* fat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fat.h; sourceTree = ""; }; + ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fatdir.cpp; sourceTree = ""; }; + ABD1FF3A1345ACBF00AF11D1 /* fatdir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fatdir.h; sourceTree = ""; }; + ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fatfile.cpp; sourceTree = ""; }; + ABD1FF3C1345ACBF00AF11D1 /* fatfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fatfile.h; sourceTree = ""; }; + ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_allocation_table.cpp; sourceTree = ""; }; + ABD1FF3E1345ACBF00AF11D1 /* file_allocation_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_allocation_table.h; sourceTree = ""; }; + ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filetime.cpp; sourceTree = ""; }; + ABD1FF401345ACBF00AF11D1 /* filetime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filetime.h; sourceTree = ""; }; + ABD1FF411345ACBF00AF11D1 /* libfat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libfat.cpp; sourceTree = ""; }; + ABD1FF421345ACBF00AF11D1 /* libfat_pc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libfat_pc.h; sourceTree = ""; }; + ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libfat_public_api.cpp; sourceTree = ""; }; + ABD1FF441345ACBF00AF11D1 /* libfat_public_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libfat_public_api.h; sourceTree = ""; }; + ABD1FF451345ACBF00AF11D1 /* lock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lock.cpp; sourceTree = ""; }; + ABD1FF461345ACBF00AF11D1 /* lock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lock.h; sourceTree = ""; }; + ABD1FF471345ACBF00AF11D1 /* mem_allocate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_allocate.h; sourceTree = ""; }; + ABD1FF481345ACBF00AF11D1 /* partition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = partition.cpp; sourceTree = ""; }; + ABD1FF491345ACBF00AF11D1 /* partition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = partition.h; sourceTree = ""; }; + ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md5.cpp; sourceTree = ""; }; + ABD1FF4B1345ACBF00AF11D1 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = ""; }; + ABD1FF4C1345ACBF00AF11D1 /* task.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = task.cpp; sourceTree = ""; }; + ABD1FF4D1345ACBF00AF11D1 /* task.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = task.h; sourceTree = ""; }; + ABD1FF4E1345ACBF00AF11D1 /* valuearray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = valuearray.h; sourceTree = ""; }; + ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vfat.cpp; sourceTree = ""; }; + ABD1FF501345ACBF00AF11D1 /* vfat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vfat.h; sourceTree = ""; }; + ABD1FF511345ACBF00AF11D1 /* xstring.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xstring.cpp; sourceTree = ""; }; + ABD1FF521345ACBF00AF11D1 /* xstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xstring.h; sourceTree = ""; }; + ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = metaspu.cpp; sourceTree = ""; }; + ABD1FF781345ACFA00AF11D1 /* metaspu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = metaspu.h; sourceTree = ""; }; + ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SndOut.cpp; sourceTree = ""; }; + ABD1FF7B1345ACFA00AF11D1 /* SndOut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SndOut.h; sourceTree = ""; }; + ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timestretcher.cpp; sourceTree = ""; }; + ABD42045172319D1006A9B46 /* FileMigrationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileMigrationDelegate.h; sourceTree = ""; }; + ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileMigrationDelegate.mm; sourceTree = ""; }; + ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_videofilter.h; sourceTree = ""; }; + ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_videofilter.mm; sourceTree = ""; }; + ABE670251415DE6C00E8E4C9 /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = ""; }; + ABE670261415DE6C00E8E4C9 /* tinystr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinystr.h; sourceTree = ""; }; + ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = ""; }; + ABE670281415DE6C00E8E4C9 /* tinyxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyxml.h; sourceTree = ""; }; + ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlerror.cpp; sourceTree = ""; }; + ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = ""; }; + ABE7F53C13EE1C7900FD3A71 /* cocoa_firmware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_firmware.h; sourceTree = ""; }; + ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_firmware.mm; sourceTree = ""; }; + ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMSave.icns; sourceTree = ""; }; + ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_DeSmuME.icns; sourceTree = ""; }; + ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_NintendoDS_ROM.icns; sourceTree = ""; }; + ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_SaveState.icns; sourceTree = ""; }; + ABF2B9F81690412A000FF7C0 /* troubleshootingWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = troubleshootingWindowDelegate.h; sourceTree = ""; }; + ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = troubleshootingWindowDelegate.mm; sourceTree = ""; }; + ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 2xsai.cpp; sourceTree = ""; }; + ABFE14FB14C92FF5005D6699 /* bilinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bilinear.cpp; sourceTree = ""; }; + ABFE14FC14C92FF5005D6699 /* epx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = epx.cpp; sourceTree = ""; }; + ABFE14FD14C92FF5005D6699 /* filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter.h; sourceTree = ""; }; + ABFE14FE14C92FF5005D6699 /* hq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq2x.cpp; sourceTree = ""; }; + ABFE14FF14C92FF5005D6699 /* hq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq2x.h; sourceTree = ""; }; + ABFE150014C92FF5005D6699 /* hq4x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq4x.cpp; sourceTree = ""; }; + ABFE150214C92FF5005D6699 /* hq4x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq4x.h; sourceTree = ""; }; + ABFE150314C92FF5005D6699 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp.h; sourceTree = ""; }; + ABFE150414C92FF5005D6699 /* lq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lq2x.cpp; sourceTree = ""; }; + ABFE150514C92FF5005D6699 /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lq2x.h; sourceTree = ""; }; + ABFE150614C92FF5005D6699 /* scanline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scanline.cpp; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB4FCEBE1692AB82000F498F /* Accelerate.framework in Frameworks */, + ABC5720D1344346600E7B0B1 /* AppKit.framework in Frameworks */, + ABACB8DD1710B656003B845D /* AudioToolbox.framework in Frameworks */, + ABC570D1134431CE00E7B0B1 /* AudioUnit.framework in Frameworks */, + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + ABC572101344347000E7B0B1 /* Foundation.framework in Frameworks */, + AB350BA51478AC96007165AC /* IOKit.framework in Frameworks */, + ABC570D5134431DA00E7B0B1 /* OpenGL.framework in Frameworks */, + AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */, + AB3701E5173A3FBF006E573E /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB796D6515CDCBA200C59155 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB4FCEBD1692AB82000F498F /* Accelerate.framework in Frameworks */, + AB796D6615CDCBA200C59155 /* AppKit.framework in Frameworks */, + ABACB8DC1710B621003B845D /* AudioToolbox.framework in Frameworks */, + AB796D6715CDCBA200C59155 /* AudioUnit.framework in Frameworks */, + AB74EC8A1738499C0026C41E /* Carbon.framework in Frameworks */, + AB796D6815CDCBA200C59155 /* Cocoa.framework in Frameworks */, + AB796D6915CDCBA200C59155 /* Foundation.framework in Frameworks */, + AB796D6A15CDCBA200C59155 /* IOKit.framework in Frameworks */, + AB796D6B15CDCBA200C59155 /* OpenGL.framework in Frameworks */, + AB796D6C15CDCBA200C59155 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ABB3C6441501BC6D00E0C22E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB4FCEBF1692AB82000F498F /* Accelerate.framework in Frameworks */, + ABB3C6641501BF8A00E0C22E /* AppKit.framework in Frameworks */, + ABACB8DE1710B65F003B845D /* AudioToolbox.framework in Frameworks */, + ABB3C6651501BF8A00E0C22E /* AudioUnit.framework in Frameworks */, + ABB3C6661501BF8A00E0C22E /* Cocoa.framework in Frameworks */, + ABB3C6671501BF8A00E0C22E /* Foundation.framework in Frameworks */, + ABB3C6691501BF8A00E0C22E /* OpenGL.framework in Frameworks */, + ABB3C66A1501BF8A00E0C22E /* libz.dylib in Frameworks */, + AB5785FD17176AFC002C5FC7 /* OpenEmuBase.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Cocoa Port */ = { + isa = PBXGroup; + children = ( + ABB3C63A1501BB8300E0C22E /* openemu */, + AB3ACB6514C2361100D7D192 /* userinterface */, + AB82445A1704AE9A00B8EE20 /* utilities.c */, + ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */, + AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */, + AB23567216C2F6F400DA782E /* macosx_10_5_compat.cpp */, + ABD10AE61715FCDD00B5729D /* mic_ext.cpp */, + AB1B9E601501A78000464647 /* ringbuffer.cpp */, + ABD104141346652500AF11D1 /* sndOSX.cpp */, + ABD10AE31715FCDD00B5729D /* audiosamplegenerator.h */, + ABA6574914511EC90077E5E9 /* cocoa_cheat.h */, + ABD103FE1346652500AF11D1 /* cocoa_core.h */, + AB58F32B1364F44B0074C376 /* cocoa_file.h */, + ABE7F53C13EE1C7900FD3A71 /* cocoa_firmware.h */, + AB9971CE134EDA0800531BA7 /* cocoa_globals.h */, + AB3A656416CC5442001F5D4A /* cocoa_GPU.h */, + ABD103FF1346652500AF11D1 /* cocoa_input.h */, + AB3E34C7134AF4500056477A /* cocoa_output.h */, + ABD104001346652500AF11D1 /* cocoa_rom.h */, + AB80E050142BC4FA00A52038 /* cocoa_util.h */, + ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */, + AB1B9E611501A78000464647 /* coreaudiosound.h */, + ABD10AE41715FCDD00B5729D /* mic_ext.h */, + AB1B9E621501A78000464647 /* ringbuffer.h */, + ABD104011346652500AF11D1 /* sndOSX.h */, + AB82445E1704AEC400B8EE20 /* utilities.h */, + ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */, + ABD104121346652500AF11D1 /* cocoa_core.mm */, + AB58F32C1364F44B0074C376 /* cocoa_file.mm */, + ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */, + AB3A656016CC5438001F5D4A /* cocoa_GPU.mm */, + ABD104111346652500AF11D1 /* cocoa_input.mm */, + AB3E34C8134AF4500056477A /* cocoa_output.mm */, + ABD104131346652500AF11D1 /* cocoa_rom.mm */, + AB80E04C142BC4A800A52038 /* cocoa_util.mm */, + ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */, + ); + name = "Cocoa Port"; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + AB4FCEBC1692AB82000F498F /* Accelerate.framework */, + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + ABACB8DB1710B621003B845D /* AudioToolbox.framework */, + ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */, + AB74EC891738499C0026C41E /* Carbon.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + AB350BA41478AC96007165AC /* IOKit.framework */, + ABC570D4134431DA00E7B0B1 /* OpenGL.framework */, + AB0A0D1914AACA9600E83E91 /* libz.dylib */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + AB5785FC17176AFC002C5FC7 /* OpenEmuBase.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */, + ABB3C6471501BC6D00E0C22E /* DeSmuME.oecoreplugin */, + AB796D7015CDCBA200C59155 /* DeSmuME (Debug).app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* DeSmuME */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Cocoa Port */, + ABC572B7134592D900E7B0B1 /* Core */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 19C28FACFE9D520D11CA2CBB /* Products */, + 29B97317FDCFA39411CA2CEA /* Resources */, + ); + name = DeSmuME; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + ABD104271346653B00AF11D1 /* main.m */, + ABD10452134666DD00AF11D1 /* DeSmuME_Prefix.pch */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + ABC2ECD613B1C87000FAAA2A /* Images */, + AB00E87C14205EBC00DE561F /* MainMenu.xib */, + AB8967DB16D2ED2700F826F1 /* DisplayWindow.xib */, + AB350D3A147A1D93007165AC /* HID_usage_strings.plist */, + 8D1107310486CEB800E47090 /* Info.plist */, + AB02791814415E4C0075E58C /* Info (Debug).plist */, + AB00E87914205EAE00DE561F /* InfoPlist.strings */, + AB02475B13886BF300E9F9AB /* KeyNames.plist */, + AB901BDD1420706100348EEC /* Localizable.strings */, + ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */, + ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */, + AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */, + AB3ACC3814C24D5400D7D192 /* AUTHORS */, + AB3ACC3914C24D5400D7D192 /* ChangeLog */, + AB3ACC3A14C24D5400D7D192 /* COPYING */, + AB3ACC3B14C24D5400D7D192 /* README */, + AB3ACC3D14C24D5400D7D192 /* README.MAC */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + AB3ACB6514C2361100D7D192 /* userinterface */ = { + isa = PBXGroup; + children = ( + AB3ACB6614C2361100D7D192 /* appDelegate.h */, + AB3ACB6814C2361100D7D192 /* cheatWindowDelegate.h */, + AB8967D716D2ED0700F826F1 /* DisplayWindowController.h */, + AB3A655C16CC5416001F5D4A /* EmuControllerDelegate.h */, + ABD42045172319D1006A9B46 /* FileMigrationDelegate.h */, + AB29B32F16D4BEBF000EF671 /* InputManager.h */, + AB3ACB6E14C2361100D7D192 /* inputPrefsView.h */, + AB01005C170D07AF00D70FBE /* InputProfileController.h */, + AB3ACB7014C2361100D7D192 /* preferencesWindowDelegate.h */, + ABF2B9F81690412A000FF7C0 /* troubleshootingWindowDelegate.h */, + AB3ACB6714C2361100D7D192 /* appDelegate.mm */, + AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */, + AB8967D816D2ED0700F826F1 /* DisplayWindowController.mm */, + AB3A655D16CC5421001F5D4A /* EmuControllerDelegate.mm */, + ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */, + AB29B33016D4BEBF000EF671 /* InputManager.mm */, + AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */, + AB01005D170D07B000D70FBE /* InputProfileController.mm */, + AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */, + ABF2B9FA16904133000FF7C0 /* troubleshootingWindowDelegate.mm */, + ); + path = userinterface; + sourceTree = ""; + }; + AB4055FD169F5DBB0016AC3E /* core */ = { + isa = PBXGroup; + children = ( + AB405600169F5DBB0016AC3E /* assembler.cpp */, + AB405602169F5DBB0016AC3E /* assert.cpp */, + AB405604169F5DBB0016AC3E /* buffer.cpp */, + AB405607169F5DBB0016AC3E /* compiler.cpp */, + AB405609169F5DBB0016AC3E /* compilercontext.cpp */, + AB40560B169F5DBB0016AC3E /* compilerfunc.cpp */, + AB40560D169F5DBB0016AC3E /* compileritem.cpp */, + AB40560F169F5DBB0016AC3E /* context.cpp */, + AB405611169F5DBB0016AC3E /* cpuinfo.cpp */, + AB405613169F5DBB0016AC3E /* defs.cpp */, + AB405615169F5DBB0016AC3E /* func.cpp */, + AB405619169F5DBB0016AC3E /* logger.cpp */, + AB40561B169F5DBB0016AC3E /* memorymanager.cpp */, + AB40561D169F5DBB0016AC3E /* memorymarker.cpp */, + AB40561F169F5DBB0016AC3E /* operand.cpp */, + AB405622169F5DBB0016AC3E /* stringbuilder.cpp */, + AB405624169F5DBB0016AC3E /* stringutil.cpp */, + AB405626169F5DBB0016AC3E /* virtualmemory.cpp */, + AB405628169F5DBB0016AC3E /* zonememory.cpp */, + AB4055FE169F5DBB0016AC3E /* apibegin.h */, + AB4055FF169F5DBB0016AC3E /* apiend.h */, + AB405601169F5DBB0016AC3E /* assembler.h */, + AB405603169F5DBB0016AC3E /* assert.h */, + AB405605169F5DBB0016AC3E /* buffer.h */, + AB405606169F5DBB0016AC3E /* build.h */, + AB405608169F5DBB0016AC3E /* compiler.h */, + AB40560A169F5DBB0016AC3E /* compilercontext.h */, + AB40560C169F5DBB0016AC3E /* compilerfunc.h */, + AB40560E169F5DBB0016AC3E /* compileritem.h */, + AB405610169F5DBB0016AC3E /* context.h */, + AB405612169F5DBB0016AC3E /* cpuinfo.h */, + AB405614169F5DBB0016AC3E /* defs.h */, + AB405616169F5DBB0016AC3E /* func.h */, + AB405617169F5DBB0016AC3E /* intutil.h */, + AB405618169F5DBB0016AC3E /* lock.h */, + AB40561A169F5DBB0016AC3E /* logger.h */, + AB40561C169F5DBB0016AC3E /* memorymanager.h */, + AB40561E169F5DBB0016AC3E /* memorymarker.h */, + AB405620169F5DBB0016AC3E /* operand.h */, + AB405621169F5DBB0016AC3E /* podvector.h */, + AB405623169F5DBB0016AC3E /* stringbuilder.h */, + AB405625169F5DBB0016AC3E /* stringutil.h */, + AB405627169F5DBB0016AC3E /* virtualmemory.h */, + AB405629169F5DBB0016AC3E /* zonememory.h */, + ); + path = core; + sourceTree = ""; + }; + AB405663169F5DCC0016AC3E /* x86 */ = { + isa = PBXGroup; + children = ( + AB405664169F5DCC0016AC3E /* x86assembler.cpp */, + AB405666169F5DCC0016AC3E /* x86compiler.cpp */, + AB405668169F5DCC0016AC3E /* x86compilercontext.cpp */, + AB40566A169F5DCC0016AC3E /* x86compilerfunc.cpp */, + AB40566C169F5DCC0016AC3E /* x86compileritem.cpp */, + AB40566E169F5DCC0016AC3E /* x86cpuinfo.cpp */, + AB405670169F5DCC0016AC3E /* x86defs.cpp */, + AB405672169F5DCC0016AC3E /* x86func.cpp */, + AB405674169F5DCC0016AC3E /* x86operand.cpp */, + AB405676169F5DCC0016AC3E /* x86util.cpp */, + AB405665169F5DCC0016AC3E /* x86assembler.h */, + AB405667169F5DCC0016AC3E /* x86compiler.h */, + AB405669169F5DCC0016AC3E /* x86compilercontext.h */, + AB40566B169F5DCC0016AC3E /* x86compilerfunc.h */, + AB40566D169F5DCC0016AC3E /* x86compileritem.h */, + AB40566F169F5DCC0016AC3E /* x86cpuinfo.h */, + AB405671169F5DCC0016AC3E /* x86defs.h */, + AB405673169F5DCC0016AC3E /* x86func.h */, + AB405675169F5DCC0016AC3E /* x86operand.h */, + AB405677169F5DCC0016AC3E /* x86util.h */, + ); + path = x86; + sourceTree = ""; + }; + AB796D7415CDD20E00C59155 /* AsmJit */ = { + isa = PBXGroup; + children = ( + AB4055ED169F59380016AC3E /* AsmJit.h */, + AB4055EE169F59380016AC3E /* Config.h */, + AB4055EF169F59380016AC3E /* core.h */, + AB4055F0169F59380016AC3E /* x86.h */, + AB4055FD169F5DBB0016AC3E /* core */, + AB405663169F5DCC0016AC3E /* x86 */, + ); + path = AsmJit; + sourceTree = ""; + }; + AB85D77414ABE42100286B70 /* App Icons */ = { + isa = PBXGroup; + children = ( + ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */, + ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */, + ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */, + ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */, + AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */, + ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */, + ); + name = "App Icons"; + sourceTree = ""; + }; + ABB3C63A1501BB8300E0C22E /* openemu */ = { + isa = PBXGroup; + children = ( + ABB3C63D1501BB8300E0C22E /* NDSGameCore.h */, + ABB3C63F1501BB8300E0C22E /* OENDSSystemResponderClient.h */, + ABB3C6411501BB8300E0C22E /* OESoundInterface.h */, + ABB3C63E1501BB8300E0C22E /* NDSGameCore.mm */, + ABB3C6401501BB8300E0C22E /* OESoundInterface.mm */, + ABB3C63B1501BB8300E0C22E /* DeSmuME_Prefix_OpenEmu.pch */, + ABB3C63C1501BB8300E0C22E /* Info (OpenEmu Plug-in).plist */, + ); + path = openemu; + sourceTree = ""; + }; + ABC2ECD613B1C87000FAAA2A /* Images */ = { + isa = PBXGroup; + children = ( + AB85D77414ABE42100286B70 /* App Icons */, + AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */, + AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */, + AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */, + AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */, + AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */, + AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */, + AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */, + AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */, + AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */, + AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */, + AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */, + AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */, + AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */, + AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */, + AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */, + AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */, + AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */, + ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */, + AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */, + AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */, + AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */, + AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */, + AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, + ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, + ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, + AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, + AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, + AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */, + AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */, + AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */, + AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */, + AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */, + AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, + AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, + AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */, + AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */, + AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */, + AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */, + AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */, + AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */, + AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */, + AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */, + AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */, + AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */, + AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */, + ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */, + ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */, + ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */, + ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */, + AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */, + ); + name = Images; + sourceTree = ""; + }; + ABC572B7134592D900E7B0B1 /* Core */ = { + isa = PBXGroup; + children = ( + ABD1FEFF1345AC9B00AF11D1 /* addons */, + ABD1FF161345ACA900AF11D1 /* gdbstub */, + ABFE14F914C92FF5005D6699 /* filter */, + ABD1FF761345ACFA00AF11D1 /* metaspu */, + ABD1FF1C1345ACBF00AF11D1 /* utils */, + ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */, + ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */, + AB796C9B15CDCB0F00C59155 /* arm_jit.cpp */, + ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */, + ABD1FEA51345AC8400AF11D1 /* bios.cpp */, + ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */, + ABD1FEA71345AC8400AF11D1 /* commandline.cpp */, + ABD1FEA81345AC8400AF11D1 /* common.cpp */, + ABD1FEA91345AC8400AF11D1 /* cp15.cpp */, + ABD1FEAA1345AC8400AF11D1 /* ctrlssdl.cpp */, + ABD1FEAB1345AC8400AF11D1 /* debug.cpp */, + ABD1FEAC1345AC8400AF11D1 /* desmume_config.cpp */, + ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */, + ABD1FEAE1345AC8400AF11D1 /* driver.cpp */, + ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */, + ABCFA9F3178BDE920030C8BA /* encrypt.cpp */, + ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */, + ABD1FEB11345AC8400AF11D1 /* firmware.cpp */, + ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */, + ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */, + ABD1FEB71345AC8400AF11D1 /* GPU.cpp */, + ABD1FEB61345AC8400AF11D1 /* GPU_osd.cpp */, + ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */, + ABD1FEB81345AC8400AF11D1 /* lua-engine.cpp */, + ABD1FEB91345AC8400AF11D1 /* matrix.cpp */, + ABD1FEBA1345AC8400AF11D1 /* mc.cpp */, + ABD1FEBD1345AC8400AF11D1 /* mic.cpp */, + ABD1FEBB1345AC8400AF11D1 /* mic_alsa.cpp */, + ABD1FEBC1345AC8400AF11D1 /* mic_openal.cpp */, + ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */, + ABD1FEBF1345AC8400AF11D1 /* movie.cpp */, + ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */, + ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */, + AB68A0DA16B139BC00DE0546 /* OGLRender_3_2.cpp */, + ABD1FEC21345AC8400AF11D1 /* path.cpp */, + ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */, + ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */, + ABD1FEC51345AC8400AF11D1 /* render3D.cpp */, + ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */, + ABD1FEC71345AC8400AF11D1 /* rtc.cpp */, + ABD1FEC81345AC8400AF11D1 /* saves.cpp */, + ABD1FEC91345AC8400AF11D1 /* slot1.cpp */, + AB29B16118313AF5009B7982 /* slot2.cpp */, + ABD1FECA1345AC8400AF11D1 /* sndsdl.cpp */, + ABD1FECB1345AC8400AF11D1 /* SPU.cpp */, + ABD1FECC1345AC8400AF11D1 /* texcache.cpp */, + ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */, + ABD1FECE1345AC8400AF11D1 /* version.cpp */, + ABD1FECF1345AC8400AF11D1 /* wifi.cpp */, + ABD1FE6C1345AC8400AF11D1 /* agg2d.h */, + ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */, + ABD1FE6F1345AC8400AF11D1 /* armcpu.h */, + AB796CA115CDCB4600C59155 /* arm_jit.h */, + ABD1FE701345AC8400AF11D1 /* bios.h */, + ABD1FE711345AC8400AF11D1 /* bits.h */, + ABD1FE721345AC8400AF11D1 /* cheatSystem.h */, + ABD1FE731345AC8400AF11D1 /* commandline.h */, + ABD1FE741345AC8400AF11D1 /* common.h */, + ABD1FE751345AC8400AF11D1 /* cp15.h */, + ABD1FE761345AC8400AF11D1 /* ctrlssdl.h */, + ABD1FE771345AC8400AF11D1 /* debug.h */, + ABD1FE781345AC8400AF11D1 /* desmume_config.h */, + ABD1FE791345AC8400AF11D1 /* Disassembler.h */, + ABD1FE7A1345AC8400AF11D1 /* driver.h */, + ABD1FE7C1345AC8400AF11D1 /* emufile.h */, + ABD1FE7B1345AC8400AF11D1 /* emufile_types.h */, + ABCFA9F2178BDE920030C8BA /* encrypt.h */, + ABD1FE7D1345AC8400AF11D1 /* FIFO.h */, + ABD1FE7E1345AC8400AF11D1 /* firmware.h */, + ABD1FE7F1345AC8400AF11D1 /* fs.h */, + ABD1FE801345AC8400AF11D1 /* gdbstub.h */, + ABD1FE811345AC8400AF11D1 /* gfx3d.h */, + ABD1FE831345AC8400AF11D1 /* GPU.h */, + ABD1FE821345AC8400AF11D1 /* GPU_osd.h */, + AB796CA215CDCB6B00C59155 /* instruction_attributes.h */, + AB796CA315CDCB6B00C59155 /* instructions.h */, + ABD1FE841345AC8400AF11D1 /* lua-engine.h */, + ABD1FE851345AC8400AF11D1 /* matrix.h */, + ABD1FE861345AC8400AF11D1 /* mc.h */, + ABD1FE871345AC8400AF11D1 /* mem.h */, + ABD1FE881345AC8400AF11D1 /* mic.h */, + ABD1FE8A1345AC8400AF11D1 /* MMU.h */, + ABD1FE891345AC8400AF11D1 /* MMU_timing.h */, + ABD1FE8B1345AC8400AF11D1 /* movie.h */, + ABD1FE8C1345AC8400AF11D1 /* NDSSystem.h */, + ABD1FE8D1345AC8400AF11D1 /* OGLRender.h */, + ABBB421516B4A5F30012E5AB /* OGLRender_3_2.h */, + ABD1FE8F1345AC8400AF11D1 /* PACKED.h */, + ABD1FE8E1345AC8400AF11D1 /* PACKED_END.h */, + ABD1FE901345AC8400AF11D1 /* path.h */, + ABD1FE911345AC8400AF11D1 /* rasterize.h */, + ABD1FE921345AC8400AF11D1 /* readwrite.h */, + ABD1FE931345AC8400AF11D1 /* registers.h */, + ABD1FE941345AC8400AF11D1 /* render3D.h */, + ABD1FE951345AC8400AF11D1 /* ROMReader.h */, + ABD1FE961345AC8400AF11D1 /* rtc.h */, + ABD1FE971345AC8400AF11D1 /* saves.h */, + ABD1FE991345AC8400AF11D1 /* slot1.h */, + AB29B15C18313ACD009B7982 /* slot2.h */, + ABD1FE9A1345AC8400AF11D1 /* sndsdl.h */, + ABD1FE9B1345AC8400AF11D1 /* SPU.h */, + ABD1FE9C1345AC8400AF11D1 /* texcache.h */, + ABD1FE9E1345AC8400AF11D1 /* types.h */, + ABD1FE9F1345AC8400AF11D1 /* version.h */, + ABD1FEA01345AC8400AF11D1 /* wifi.h */, + ); + name = Core; + sourceTree = ""; + }; + ABD1FEFF1345AC9B00AF11D1 /* addons */ = { + isa = PBXGroup; + children = ( + ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */, + ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */, + AB9038A917C5ED2200F410BD /* slot1_retail_auto.cpp */, + AB9038AA17C5ED2200F410BD /* slot1_retail_mcrom.cpp */, + AB2EE12B17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp */, + AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */, + AB9038AB17C5ED2200F410BD /* slot1comp_mc.cpp */, + AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */, + AB9038AD17C5ED2200F410BD /* slot1comp_rom.cpp */, + AB29B16518313C14009B7982 /* slot2_auto.cpp */, + ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */, + ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */, + ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */, + ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */, + ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */, + ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */, + AB1773FC182ECA8A009F29DD /* slot2_passme.cpp */, + ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */, + ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */, + AB9038AC17C5ED2200F410BD /* slot1comp_mc.h */, + AB8B7AAA17CE8C440051CEBF /* slot1comp_protocol.h */, + AB9038AE17C5ED2200F410BD /* slot1comp_rom.h */, + ); + name = addons; + path = ../addons; + sourceTree = SOURCE_ROOT; + }; + ABD1FF161345ACA900AF11D1 /* gdbstub */ = { + isa = PBXGroup; + children = ( + ABD1FF171345ACA900AF11D1 /* gdbstub.cpp */, + ABD1FF181345ACA900AF11D1 /* gdbstub_internal.h */, + ); + name = gdbstub; + path = ../gdbstub; + sourceTree = SOURCE_ROOT; + }; + ABD1FF1C1345ACBF00AF11D1 /* utils */ = { + isa = PBXGroup; + children = ( + AB796D7415CDD20E00C59155 /* AsmJit */, + ABD1FF211345ACBF00AF11D1 /* decrypt */, + ABD1FF2E1345ACBF00AF11D1 /* libfat */, + ABE670241415DE6C00E8E4C9 /* tinyxml */, + ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */, + AB9038A517C5ECFD00F410BD /* advanscene.cpp */, + ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */, + ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */, + ABD1FF291345ACBF00AF11D1 /* emufat.cpp */, + AB2EE13017D57F5000F68622 /* fsnitro.cpp */, + ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */, + ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */, + ABD1FF4C1345ACBF00AF11D1 /* task.cpp */, + ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */, + ABD1FF511345ACBF00AF11D1 /* xstring.cpp */, + AB9038A417C5ECFD00F410BD /* advanscene.h */, + ABD1FF1E1345ACBF00AF11D1 /* ConvertUTF.h */, + ABD1FF201345ACBF00AF11D1 /* datetime.h */, + ABD1FF2A1345ACBF00AF11D1 /* emufat.h */, + ABD1FF2B1345ACBF00AF11D1 /* emufat_types.h */, + AB2EE12F17D57F5000F68622 /* fsnitro.h */, + ABD1FF2D1345ACBF00AF11D1 /* guid.h */, + ABD1FF4B1345ACBF00AF11D1 /* md5.h */, + ABD1FF4D1345ACBF00AF11D1 /* task.h */, + ABD1FF4E1345ACBF00AF11D1 /* valuearray.h */, + ABD1FF501345ACBF00AF11D1 /* vfat.h */, + ABD1FF521345ACBF00AF11D1 /* xstring.h */, + ); + name = utils; + path = ../utils; + sourceTree = SOURCE_ROOT; + }; + ABD1FF211345ACBF00AF11D1 /* decrypt */ = { + isa = PBXGroup; + children = ( + ABD1FF221345ACBF00AF11D1 /* crc.cpp */, + ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */, + ABD1FF261345ACBF00AF11D1 /* header.cpp */, + ABD1FF231345ACBF00AF11D1 /* crc.h */, + ABD1FF251345ACBF00AF11D1 /* decrypt.h */, + ABD1FF271345ACBF00AF11D1 /* header.h */, + ); + path = decrypt; + sourceTree = ""; + }; + ABD1FF2E1345ACBF00AF11D1 /* libfat */ = { + isa = PBXGroup; + children = ( + ABD1FF301345ACBF00AF11D1 /* cache.cpp */, + ABD1FF331345ACBF00AF11D1 /* directory.cpp */, + ABD1FF351345ACBF00AF11D1 /* disc.cpp */, + ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */, + ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */, + ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */, + ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */, + ABD1FF411345ACBF00AF11D1 /* libfat.cpp */, + ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */, + ABD1FF451345ACBF00AF11D1 /* lock.cpp */, + ABD1FF481345ACBF00AF11D1 /* partition.cpp */, + ABD1FF2F1345ACBF00AF11D1 /* bit_ops.h */, + ABD1FF311345ACBF00AF11D1 /* cache.h */, + ABD1FF321345ACBF00AF11D1 /* common.h */, + ABD1FF341345ACBF00AF11D1 /* directory.h */, + ABD1FF361345ACBF00AF11D1 /* disc.h */, + ABD1FF371345ACBF00AF11D1 /* disc_io.h */, + ABD1FF381345ACBF00AF11D1 /* fat.h */, + ABD1FF3A1345ACBF00AF11D1 /* fatdir.h */, + ABD1FF3C1345ACBF00AF11D1 /* fatfile.h */, + ABD1FF3E1345ACBF00AF11D1 /* file_allocation_table.h */, + ABD1FF401345ACBF00AF11D1 /* filetime.h */, + ABD1FF421345ACBF00AF11D1 /* libfat_pc.h */, + ABD1FF441345ACBF00AF11D1 /* libfat_public_api.h */, + ABD1FF461345ACBF00AF11D1 /* lock.h */, + ABD1FF471345ACBF00AF11D1 /* mem_allocate.h */, + ABD1FF491345ACBF00AF11D1 /* partition.h */, + ); + path = libfat; + sourceTree = ""; + }; + ABD1FF761345ACFA00AF11D1 /* metaspu */ = { + isa = PBXGroup; + children = ( + ABD1FF7C1345ACFA00AF11D1 /* SoundTouch */, + ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */, + ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */, + ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */, + ABD1FF781345ACFA00AF11D1 /* metaspu.h */, + ABD1FF7B1345ACFA00AF11D1 /* SndOut.h */, + ); + name = metaspu; + path = ../metaspu; + sourceTree = SOURCE_ROOT; + }; + ABD1FF7C1345ACFA00AF11D1 /* SoundTouch */ = { + isa = PBXGroup; + children = ( + ABAD3E5913AF1D6D00502E1E /* AAFilter.h */, + ABAD3E5A13AF1D6D00502E1E /* BPMDetect.h */, + ABAD3E5B13AF1D6D00502E1E /* cpu_detect.h */, + ABAD3E5C13AF1D6D00502E1E /* FIFOSampleBuffer.h */, + ABAD3E5D13AF1D6D00502E1E /* FIFOSamplePipe.h */, + ABAD3E5E13AF1D6D00502E1E /* FIRFilter.h */, + ABAD3E5F13AF1D6D00502E1E /* RateTransposer.h */, + ABAD3E6013AF1D6D00502E1E /* SoundTouch.h */, + ABAD3E6113AF1D6D00502E1E /* STTypes.h */, + ABAD3E6213AF1D6D00502E1E /* TDStretch.h */, + ABAD3E6313AF1D6D00502E1E /* WavFile.h */, + ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */, + ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */, + ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */, + ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */, + ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */, + ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */, + ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */, + ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */, + ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */, + ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */, + ); + path = SoundTouch; + sourceTree = ""; + }; + ABE670241415DE6C00E8E4C9 /* tinyxml */ = { + isa = PBXGroup; + children = ( + ABE670251415DE6C00E8E4C9 /* tinystr.cpp */, + ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */, + ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */, + ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */, + ABE670261415DE6C00E8E4C9 /* tinystr.h */, + ABE670281415DE6C00E8E4C9 /* tinyxml.h */, + ); + path = tinyxml; + sourceTree = ""; + }; + ABFE14F914C92FF5005D6699 /* filter */ = { + isa = PBXGroup; + children = ( + ABFE14FA14C92FF5005D6699 /* 2xsai.cpp */, + ABFE14FB14C92FF5005D6699 /* bilinear.cpp */, + ABFE14FC14C92FF5005D6699 /* epx.cpp */, + ABFE14FE14C92FF5005D6699 /* hq2x.cpp */, + ABFE150014C92FF5005D6699 /* hq4x.cpp */, + ABFE150414C92FF5005D6699 /* lq2x.cpp */, + ABFE150614C92FF5005D6699 /* scanline.cpp */, + AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */, + ABFE14FD14C92FF5005D6699 /* filter.h */, + ABFE14FF14C92FF5005D6699 /* hq2x.h */, + ABFE150214C92FF5005D6699 /* hq4x.h */, + ABFE150314C92FF5005D6699 /* interp.h */, + ABFE150514C92FF5005D6699 /* lq2x.h */, + AB817A34143EE2DB00A7DFE9 /* videofilter.h */, + ); + name = filter; + path = ../filter; + sourceTree = SOURCE_ROOT; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* DeSmuME (OS X App; v10.5 Leopard Release Build) */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "DeSmuME (OS X App; v10.5 Leopard Release Build)" */; + buildPhases = ( + AB75221714C79884009B97B3 /* ShellScript */, + 8D1107290486CEB800E47090 /* Resources */, + AB2DF23415E0838600B4D0BC /* ShellScript */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + AB067BF0153E59B000F417B1 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DeSmuME (OS X App; v10.5 Leopard Release Build)"; + productInstallPath = "$(HOME)/Applications"; + productName = DeSmuME; + productReference = 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */; + productType = "com.apple.product-type.application"; + }; + AB796CA415CDCBA200C59155 /* DeSmuME (OS X App) */ = { + isa = PBXNativeTarget; + buildConfigurationList = AB796D6D15CDCBA200C59155 /* Build configuration list for PBXNativeTarget "DeSmuME (OS X App)" */; + buildPhases = ( + AB796CA515CDCBA200C59155 /* ShellScript */, + AB796CA615CDCBA200C59155 /* Resources */, + AB2DF23215E0834E00B4D0BC /* ShellScript */, + AB796CEE15CDCBA200C59155 /* Sources */, + AB796D6515CDCBA200C59155 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DeSmuME (OS X App)"; + productInstallPath = "$(HOME)/Applications"; + productName = DeSmuME; + productReference = AB796D7015CDCBA200C59155 /* DeSmuME (Debug).app */; + productType = "com.apple.product-type.application"; + }; + ABB3C6461501BC6D00E0C22E /* DeSmuME (OpenEmu Plug-in) */ = { + isa = PBXNativeTarget; + buildConfigurationList = ABB3C6571501BC6D00E0C22E /* Build configuration list for PBXNativeTarget "DeSmuME (OpenEmu Plug-in)" */; + buildPhases = ( + ABB3C6611501BF3700E0C22E /* Resources */, + AB2DF23515E0839D00B4D0BC /* ShellScript */, + ABB3C6431501BC6D00E0C22E /* Sources */, + ABB3C6441501BC6D00E0C22E /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DeSmuME (OpenEmu Plug-in)"; + productName = DeSmuME; + productReference = ABB3C6471501BC6D00E0C22E /* DeSmuME.oecoreplugin */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + ORGANIZATIONNAME = "DeSmuME Team"; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "DeSmuME (Xcode 5)" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + Italian, + Chinese, + Norwegian, + Romanian, + en, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* DeSmuME */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + AB796CA415CDCBA200C59155 /* DeSmuME (OS X App) */, + 8D1107260486CEB800E47090 /* DeSmuME (OS X App; v10.5 Leopard Release Build) */, + ABB3C6461501BC6D00E0C22E /* DeSmuME (OpenEmu Plug-in) */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB02475C13886BF300E9F9AB /* KeyNames.plist in Resources */, + ABC719E2138CB25E002827A9 /* DefaultKeyMappings.plist in Resources */, + ABBC0F8D1394B1AA0028B6BD /* DefaultUserPrefs.plist in Resources */, + AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */, + ABEFCF61141AB82A000CC0CD /* AppIcon_ROMSave.icns in Resources */, + ABEFCF62141AB82A000CC0CD /* AppIcon_DeSmuME.icns in Resources */, + ABEFCF63141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns in Resources */, + ABEFCF64141AB82A000CC0CD /* AppIcon_SaveState.icns in Resources */, + AB00E87B14205EAE00DE561F /* InfoPlist.strings in Resources */, + AB00E87E14205EBC00DE561F /* MainMenu.xib in Resources */, + AB901BDE1420706100348EEC /* Localizable.strings in Resources */, + ABB97876144E89CC00793FA3 /* Icon_ActionReplay_32x32.png in Resources */, + ABB97877144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png in Resources */, + ABB97878144E89CC00793FA3 /* Icon_DeSmuME_32x32.png in Resources */, + AB350D3B147A1D93007165AC /* HID_usage_strings.plist in Resources */, + ABBF04A514B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */, + ABC3AF2F14B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */, + ABC3AF3014B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */, + ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, + ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, + AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */, + AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */, + AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */, + AB0F290514BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */, + AB0F293814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png in Resources */, + AB0F293914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png in Resources */, + AB0F293A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png in Resources */, + AB0F293B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png in Resources */, + AB0F293C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png in Resources */, + AB0F293D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png in Resources */, + AB0F293E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png in Resources */, + AB0F293F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png in Resources */, + AB0F294014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png in Resources */, + AB0F294114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png in Resources */, + AB0F294214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png in Resources */, + AB0F294314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png in Resources */, + AB0F294414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png in Resources */, + AB0F294514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png in Resources */, + AB0F294614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png in Resources */, + AB0F294714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png in Resources */, + AB0F296D14BE705D009ABC6F /* Icon_ActionReplay_128x128.png in Resources */, + AB0F296E14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png in Resources */, + AB0F297A14BE70BC009ABC6F /* VideoFilterPreview_64x64.png in Resources */, + AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */, + AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */, + AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */, + AB0F298F14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */, + AB0F29A614BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */, + AB0F29A714BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */, + AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */, + AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, + AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */, + AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */, + AB0F29AC14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */, + AB0F29AD14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */, + AB0F29AE14BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */, + AB0F29AF14BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */, + AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */, + AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */, + AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */, + AB0F29B314BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */, + AB0F29B414BE7213009ABC6F /* Icon_RotateCCW_420x420.png in Resources */, + AB0F29B514BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */, + AB0F29B614BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */, + AB0F29B714BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */, + AB3ACC3E14C24D5400D7D192 /* AUTHORS in Resources */, + AB3ACC3F14C24D5400D7D192 /* ChangeLog in Resources */, + AB3ACC4014C24D5400D7D192 /* COPYING in Resources */, + AB3ACC4114C24D5400D7D192 /* README in Resources */, + AB3ACC4314C24D5400D7D192 /* README.MAC in Resources */, + AB75226E14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */, + AB8967DE16D2ED2700F826F1 /* DisplayWindow.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB796CA615CDCBA200C59155 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB796CA715CDCBA200C59155 /* KeyNames.plist in Resources */, + AB796CA815CDCBA200C59155 /* DefaultKeyMappings.plist in Resources */, + AB796CA915CDCBA200C59155 /* DefaultUserPrefs.plist in Resources */, + AB796CAA15CDCBA200C59155 /* FileTypeInfo.plist in Resources */, + AB796CAB15CDCBA200C59155 /* AppIcon_ROMSave.icns in Resources */, + AB796CAC15CDCBA200C59155 /* AppIcon_DeSmuME.icns in Resources */, + AB796CAD15CDCBA200C59155 /* AppIcon_NintendoDS_ROM.icns in Resources */, + AB796CAE15CDCBA200C59155 /* AppIcon_SaveState.icns in Resources */, + AB796CAF15CDCBA200C59155 /* InfoPlist.strings in Resources */, + AB796CB015CDCBA200C59155 /* MainMenu.xib in Resources */, + AB796CB115CDCBA200C59155 /* Localizable.strings in Resources */, + AB796CB215CDCBA200C59155 /* Icon_ActionReplay_32x32.png in Resources */, + AB796CB315CDCBA200C59155 /* Icon_CodeBreaker_32x32.png in Resources */, + AB796CB415CDCBA200C59155 /* Icon_DeSmuME_32x32.png in Resources */, + AB796CB515CDCBA200C59155 /* HID_usage_strings.plist in Resources */, + AB796CB615CDCBA200C59155 /* AppIcon_ROMCheats.icns in Resources */, + AB796CB715CDCBA200C59155 /* Icon_VolumeFull_16x16.png in Resources */, + AB796CB815CDCBA200C59155 /* Icon_VolumeMute_16x16.png in Resources */, + AB796CB915CDCBA200C59155 /* Icon_VolumeOneThird_16x16.png in Resources */, + AB796CBA15CDCBA200C59155 /* Icon_VolumeTwoThird_16x16.png in Resources */, + AB796CBB15CDCBA200C59155 /* Icon_Execute_420x420.png in Resources */, + AB796CBC15CDCBA200C59155 /* Icon_Pause_420x420.png in Resources */, + AB796CBD15CDCBA200C59155 /* Icon_Speed1x_420x420.png in Resources */, + AB796CBE15CDCBA200C59155 /* Icon_Speed2x_420x420.png in Resources */, + AB796CBF15CDCBA200C59155 /* ColorSwatch_Blue_16x16.png in Resources */, + AB796CC015CDCBA200C59155 /* ColorSwatch_Brown_16x16.png in Resources */, + AB796CC115CDCBA200C59155 /* ColorSwatch_DarkBlue_16x16.png in Resources */, + AB796CC215CDCBA200C59155 /* ColorSwatch_DarkGreen_16x16.png in Resources */, + AB796CC315CDCBA200C59155 /* ColorSwatch_DarkPurple_16x16.png in Resources */, + AB796CC415CDCBA200C59155 /* ColorSwatch_Gray_16x16.png in Resources */, + AB796CC515CDCBA200C59155 /* ColorSwatch_Green_16x16.png in Resources */, + AB796CC615CDCBA200C59155 /* ColorSwatch_LimeGreen_16x16.png in Resources */, + AB796CC715CDCBA200C59155 /* ColorSwatch_Magenta_16x16.png in Resources */, + AB796CC815CDCBA200C59155 /* ColorSwatch_Orange_16x16.png in Resources */, + AB796CC915CDCBA200C59155 /* ColorSwatch_Pink_16x16.png in Resources */, + AB796CCA15CDCBA200C59155 /* ColorSwatch_Red_16x16.png in Resources */, + AB796CCB15CDCBA200C59155 /* ColorSwatch_SeaGreen_16x16.png in Resources */, + AB796CCC15CDCBA200C59155 /* ColorSwatch_Turquoise_16x16.png in Resources */, + AB796CCD15CDCBA200C59155 /* ColorSwatch_Violet_16x16.png in Resources */, + AB796CCE15CDCBA200C59155 /* ColorSwatch_Yellow_16x16.png in Resources */, + AB796CCF15CDCBA200C59155 /* Icon_ActionReplay_128x128.png in Resources */, + AB796CD015CDCBA200C59155 /* Icon_CodeBreaker_128x128.png in Resources */, + AB796CD115CDCBA200C59155 /* VideoFilterPreview_64x64.png in Resources */, + AB796CD215CDCBA200C59155 /* Icon_ArrowDown_420x420.png in Resources */, + AB796CD315CDCBA200C59155 /* Icon_ArrowLeft_420x420.png in Resources */, + AB796CD415CDCBA200C59155 /* Icon_ArrowRight_420x420.png in Resources */, + AB796CD515CDCBA200C59155 /* Icon_ArrowUp_420x420.png in Resources */, + AB796CD615CDCBA200C59155 /* Icon_DoubleSpeed_420x420.png in Resources */, + AB796CD715CDCBA200C59155 /* Icon_DSButtonA_420x420.png in Resources */, + AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */, + AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */, + AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */, + AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */, + AB796CDC15CDCBA200C59155 /* Icon_DSButtonStart_420x420.png in Resources */, + AB796CDD15CDCBA200C59155 /* Icon_DSButtonX_420x420.png in Resources */, + AB796CDE15CDCBA200C59155 /* Icon_DSButtonY_420x420.png in Resources */, + AB796CDF15CDCBA200C59155 /* Icon_Emulation_420x420.png in Resources */, + AB796CE015CDCBA200C59155 /* Icon_Input_420x420.png in Resources */, + AB796CE115CDCBA200C59155 /* Icon_Microphone_420x420.png in Resources */, + AB796CE215CDCBA200C59155 /* Icon_OpenROM_420x420.png in Resources */, + AB796CE315CDCBA200C59155 /* Icon_Reset_420x420.png in Resources */, + AB796CE415CDCBA200C59155 /* Icon_RotateCCW_420x420.png in Resources */, + AB796CE515CDCBA200C59155 /* Icon_RotateCW_420x420.png in Resources */, + AB796CE615CDCBA200C59155 /* Icon_ShowHUD_420x420.png in Resources */, + AB796CE715CDCBA200C59155 /* Icon_Speaker_420x420.png in Resources */, + AB796CE815CDCBA200C59155 /* AUTHORS in Resources */, + AB796CE915CDCBA200C59155 /* ChangeLog in Resources */, + AB796CEA15CDCBA200C59155 /* COPYING in Resources */, + AB796CEB15CDCBA200C59155 /* README in Resources */, + AB796CEC15CDCBA200C59155 /* README.MAC in Resources */, + AB796CED15CDCBA200C59155 /* AppIcon_FirmwareConfig.icns in Resources */, + AB8967DD16D2ED2700F826F1 /* DisplayWindow.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ABB3C6611501BF3700E0C22E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ABB3C6621501BF4E00E0C22E /* InfoPlist.strings in Resources */, + ABB3C6631501BF4E00E0C22E /* FileTypeInfo.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + AB067BF0153E59B000F417B1 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/bin/sh\n\n# This script creates an application package that merges the ppc binary of an\n# Xcode 3 PowerPC release build to the i386 and x86_64 binaries of an Xcode 4\n# (or later) release build.\n#\n# Before you use this script, make sure that you already have an existing\n# PowerPC Release build from Xcode 3 in the ${SRCROOT}/build/Release directory.\n\nif test -e \"${SRCROOT}/build/Release/DeSmuME (PPC).app/Contents/MacOS/DeSmuME (PPC)\"\nthen\n\n# Create the Merged Release directory, plus a working copy of the\n# universal binary .app.\ncd \"${SRCROOT}/build\"\nmkdir -p \"./Merged Release\"\ncd \"./Merged Release\"\ncp -a \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app\" \"./\"\nrm -f \"./${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\"\n\n# Create the temp binaries for Intel.\ncd \"${TARGET_BUILD_DIR}\"\nlipo \"./${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\" -thin i386 -output \"./${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}_i386\"\nlipo \"./${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\" -thin x86_64 -output \"./${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}_x86_64\"\n\n# Merge the separate temp binaries into a single binary package.\ncd \"${SRCROOT}/build/Merged Release\"\nlipo \"../Release/DeSmuME (PPC).app/Contents/MacOS/DeSmuME (PPC)\" \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}_i386\" \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}_x86_64\" -create -output \"./${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\"\n\n# Remove the temp binaries now that we're done with them.\nrm -f \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}_i386\"\nrm -f \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}_x86_64\"\n\nfi"; + }; + AB2DF23215E0834E00B4D0BC /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/../svnrev.h", + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; + }; + AB2DF23415E0838600B4D0BC /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/../svnrev.h", + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; + }; + AB2DF23515E0839D00B4D0BC /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/../svnrev.h", + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"${SRCROOT}\"\nsh \"svnrev.sh\""; + }; + AB75221714C79884009B97B3 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.xib", + ); + outputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.strings", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; + }; + AB796CA515CDCBA200C59155 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.xib", + ); + outputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.strings", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ABD1FF531345ACBF00AF11D1 /* ConvertUTF.c in Sources */, + ABAD3E7113AF1D6D00502E1E /* AAFilter.cpp in Sources */, + ABD1FED21345AC8400AF11D1 /* arm_instructions.cpp in Sources */, + ABD1FED31345AC8400AF11D1 /* armcpu.cpp in Sources */, + ABD1FED41345AC8400AF11D1 /* bios.cpp in Sources */, + ABD1FF5B1345ACBF00AF11D1 /* cache.cpp in Sources */, + ABD1FED51345AC8400AF11D1 /* cheatSystem.cpp in Sources */, + AB29B16718313C14009B7982 /* slot2_auto.cpp in Sources */, + ABD1FED71345AC8400AF11D1 /* common.cpp in Sources */, + ABD1FED81345AC8400AF11D1 /* cp15.cpp in Sources */, + AB15CA7214A29EE500B8A6A4 /* cpu_detect_x86_gcc.cpp in Sources */, + ABD1FF551345ACBF00AF11D1 /* crc.cpp in Sources */, + AB181D0013B66889006CA82D /* datetime.cpp in Sources */, + ABD1FEDA1345AC8400AF11D1 /* debug.cpp in Sources */, + ABD1FF561345ACBF00AF11D1 /* decrypt.cpp in Sources */, + ABD1FF5C1345ACBF00AF11D1 /* directory.cpp in Sources */, + ABD1FEDC1345AC8400AF11D1 /* Disassembler.cpp in Sources */, + ABD1FF5D1345ACBF00AF11D1 /* disc.cpp in Sources */, + ABD1FF581345ACBF00AF11D1 /* dlditool.cpp in Sources */, + ABD1FEDD1345AC8400AF11D1 /* driver.cpp in Sources */, + ABD1FF591345ACBF00AF11D1 /* emufat.cpp in Sources */, + ABD1FEDE1345AC8400AF11D1 /* emufile.cpp in Sources */, + ABD1FF5E1345ACBF00AF11D1 /* fatdir.cpp in Sources */, + ABD1FF5F1345ACBF00AF11D1 /* fatfile.cpp in Sources */, + ABD1FEDF1345AC8400AF11D1 /* FIFO.cpp in Sources */, + ABAD3E7413AF1D6D00502E1E /* FIFOSampleBuffer.cpp in Sources */, + ABD1FF601345ACBF00AF11D1 /* file_allocation_table.cpp in Sources */, + AB2EE12D17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp in Sources */, + ABD1FF611345ACBF00AF11D1 /* filetime.cpp in Sources */, + ABAD3E7513AF1D6D00502E1E /* FIRFilter.cpp in Sources */, + ABD1FEE01345AC8400AF11D1 /* firmware.cpp in Sources */, + AB91D46B13BD013800462471 /* fs-linux.cpp in Sources */, + ABD1FEE31345AC8400AF11D1 /* gfx3d.cpp in Sources */, + ABD1FEE61345AC8400AF11D1 /* GPU.cpp in Sources */, + ABD1FEE41345AC8400AF11D1 /* GPU_osd_stub.cpp in Sources */, + ABD1FF5A1345ACBF00AF11D1 /* guid.cpp in Sources */, + ABD1FF571345ACBF00AF11D1 /* header.cpp in Sources */, + ABD1FF621345ACBF00AF11D1 /* libfat.cpp in Sources */, + ABD1FF631345ACBF00AF11D1 /* libfat_public_api.cpp in Sources */, + ABD1FF641345ACBF00AF11D1 /* lock.cpp in Sources */, + ABD1FEE81345AC8400AF11D1 /* matrix.cpp in Sources */, + ABD1FEE91345AC8400AF11D1 /* mc.cpp in Sources */, + ABD1FF661345ACBF00AF11D1 /* md5.cpp in Sources */, + ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */, + ABD1FEED1345AC8400AF11D1 /* MMU.cpp in Sources */, + ABAD3E7613AF1D6D00502E1E /* mmx_optimized.cpp in Sources */, + ABD1FEEE1345AC8400AF11D1 /* movie.cpp in Sources */, + AB29B16318313AF5009B7982 /* slot2.cpp in Sources */, + ABD1FEEF1345AC8400AF11D1 /* NDSSystem.cpp in Sources */, + ABD1FF651345ACBF00AF11D1 /* partition.cpp in Sources */, + ABD1FEF11345AC8400AF11D1 /* path.cpp in Sources */, + ABD1FEF21345AC8400AF11D1 /* rasterize.cpp in Sources */, + ABAD3E7713AF1D6D00502E1E /* RateTransposer.cpp in Sources */, + ABD1FEF31345AC8400AF11D1 /* readwrite.cpp in Sources */, + ABD1FEF41345AC8400AF11D1 /* render3D.cpp in Sources */, + ABD1FEF51345AC8400AF11D1 /* ROMReader.cpp in Sources */, + ABD1FEF61345AC8400AF11D1 /* rtc.cpp in Sources */, + ABD1FEF71345AC8400AF11D1 /* saves.cpp in Sources */, + ABD1FEF81345AC8400AF11D1 /* slot1.cpp in Sources */, + ABD1FF0B1345AC9C00AF11D1 /* slot1_none.cpp in Sources */, + ABD1FF0C1345AC9C00AF11D1 /* slot1_r4.cpp in Sources */, + AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */, + ABCFA9F5178BDE920030C8BA /* encrypt.cpp in Sources */, + ABD1FF0E1345AC9C00AF11D1 /* slot2_expMemory.cpp in Sources */, + ABD1FF0F1345AC9C00AF11D1 /* slot2_gbagame.cpp in Sources */, + ABD1FF101345AC9C00AF11D1 /* slot2_guitarGrip.cpp in Sources */, + ABD1FF111345AC9C00AF11D1 /* slot2_mpcf.cpp in Sources */, + ABD1FF121345AC9C00AF11D1 /* slot2_none.cpp in Sources */, + ABD1FF131345AC9C00AF11D1 /* slot2_paddle.cpp in Sources */, + ABD1FF141345AC9C00AF11D1 /* slot2_piano.cpp in Sources */, + ABD1FF151345AC9C00AF11D1 /* slot2_rumblepak.cpp in Sources */, + ABD1041F1346652500AF11D1 /* sndOSX.cpp in Sources */, + AB1F468413A0ADE400B80DE6 /* SndOut.cpp in Sources */, + ABAD3E7813AF1D6D00502E1E /* SoundTouch.cpp in Sources */, + AB9038B017C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */, + ABD1FEFA1345AC8400AF11D1 /* SPU.cpp in Sources */, + ABAD3E7913AF1D6D00502E1E /* sse_optimized.cpp in Sources */, + ABD1FF671345ACBF00AF11D1 /* task.cpp in Sources */, + ABAD3E7A13AF1D6D00502E1E /* TDStretch.cpp in Sources */, + ABD1FEFB1345AC8400AF11D1 /* texcache.cpp in Sources */, + ABD1FEFC1345AC8400AF11D1 /* thumb_instructions.cpp in Sources */, + AB1F469813A0AE2F00B80DE6 /* Timestretcher.cpp in Sources */, + ABE6702B1415DE6C00E8E4C9 /* tinystr.cpp in Sources */, + AB9038B617C5ED2200F410BD /* slot1comp_mc.cpp in Sources */, + ABE6702C1415DE6C00E8E4C9 /* tinyxml.cpp in Sources */, + ABE6702D1415DE6C00E8E4C9 /* tinyxmlerror.cpp in Sources */, + ABE6702E1415DE6C00E8E4C9 /* tinyxmlparser.cpp in Sources */, + ABD1FEFD1345AC8400AF11D1 /* version.cpp in Sources */, + ABD1FF681345ACBF00AF11D1 /* vfat.cpp in Sources */, + ABE5DE95143F781900835AD8 /* videofilter.cpp in Sources */, + AB1773FE182ECA8A009F29DD /* slot2_passme.cpp in Sources */, + ABAD3E7B13AF1D6D00502E1E /* WavFile.cpp in Sources */, + ABD1FEFE1345AC8400AF11D1 /* wifi.cpp in Sources */, + AB9038B317C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */, + ABD1FF691345ACBF00AF11D1 /* xstring.cpp in Sources */, + ABD104281346653B00AF11D1 /* main.m in Sources */, + ABA6574B14511EC90077E5E9 /* cocoa_cheat.mm in Sources */, + ABD1041D1346652500AF11D1 /* cocoa_core.mm in Sources */, + AB58F32D1364F44B0074C376 /* cocoa_file.mm in Sources */, + ABE7F53E13EE1C7900FD3A71 /* cocoa_firmware.mm in Sources */, + ABD1041C1346652500AF11D1 /* cocoa_input.mm in Sources */, + AB3E34C9134AF4500056477A /* cocoa_output.mm in Sources */, + ABD1041E1346652500AF11D1 /* cocoa_rom.mm in Sources */, + AB80E04D142BC4A800A52038 /* cocoa_util.mm in Sources */, + ABE5DFE5143FB1DA00835AD8 /* cocoa_videofilter.mm in Sources */, + AB0F291D14BE6F4A009ABC6F /* OGLRender.cpp in Sources */, + AB8B7AAD17CE8C440051CEBF /* slot1comp_protocol.cpp in Sources */, + AB3ACB7214C2361100D7D192 /* appDelegate.mm in Sources */, + AB3ACB7314C2361100D7D192 /* cheatWindowDelegate.mm in Sources */, + AB3ACB7614C2361100D7D192 /* inputPrefsView.mm in Sources */, + AB3ACB7714C2361100D7D192 /* preferencesWindowDelegate.mm in Sources */, + ABFE150714C92FF5005D6699 /* 2xsai.cpp in Sources */, + ABFE150814C92FF5005D6699 /* bilinear.cpp in Sources */, + ABFE150914C92FF5005D6699 /* epx.cpp in Sources */, + ABFE150A14C92FF5005D6699 /* hq2x.cpp in Sources */, + ABFE150B14C92FF5005D6699 /* hq4x.cpp in Sources */, + AB9038A717C5ECFD00F410BD /* advanscene.cpp in Sources */, + ABFE150D14C92FF5005D6699 /* lq2x.cpp in Sources */, + ABFE150E14C92FF5005D6699 /* scanline.cpp in Sources */, + AB1B9E631501A78000464647 /* coreaudiosound.cpp in Sources */, + AB1B9E661501A78000464647 /* ringbuffer.cpp in Sources */, + AB796C9C15CDCB0F00C59155 /* arm_jit.cpp in Sources */, + ABF2B9FC16904133000FF7C0 /* troubleshootingWindowDelegate.mm in Sources */, + AB40562B169F5DBB0016AC3E /* assembler.cpp in Sources */, + AB40562E169F5DBB0016AC3E /* assert.cpp in Sources */, + AB405631169F5DBB0016AC3E /* buffer.cpp in Sources */, + AB405634169F5DBB0016AC3E /* compiler.cpp in Sources */, + AB405637169F5DBB0016AC3E /* compilercontext.cpp in Sources */, + AB40563A169F5DBB0016AC3E /* compilerfunc.cpp in Sources */, + AB40563D169F5DBB0016AC3E /* compileritem.cpp in Sources */, + AB405640169F5DBB0016AC3E /* context.cpp in Sources */, + AB405643169F5DBB0016AC3E /* cpuinfo.cpp in Sources */, + AB405646169F5DBB0016AC3E /* defs.cpp in Sources */, + AB405649169F5DBB0016AC3E /* func.cpp in Sources */, + AB40564C169F5DBB0016AC3E /* logger.cpp in Sources */, + AB40564F169F5DBB0016AC3E /* memorymanager.cpp in Sources */, + AB405652169F5DBB0016AC3E /* memorymarker.cpp in Sources */, + AB405655169F5DBB0016AC3E /* operand.cpp in Sources */, + AB405658169F5DBB0016AC3E /* stringbuilder.cpp in Sources */, + AB40565B169F5DBB0016AC3E /* stringutil.cpp in Sources */, + AB40565E169F5DBB0016AC3E /* virtualmemory.cpp in Sources */, + AB405661169F5DBB0016AC3E /* zonememory.cpp in Sources */, + AB405679169F5DCC0016AC3E /* x86assembler.cpp in Sources */, + AB40567C169F5DCC0016AC3E /* x86compiler.cpp in Sources */, + AB40567F169F5DCC0016AC3E /* x86compilercontext.cpp in Sources */, + AB405682169F5DCC0016AC3E /* x86compilerfunc.cpp in Sources */, + AB405685169F5DCC0016AC3E /* x86compileritem.cpp in Sources */, + AB405688169F5DCC0016AC3E /* x86cpuinfo.cpp in Sources */, + AB40568B169F5DCC0016AC3E /* x86defs.cpp in Sources */, + AB40568E169F5DCC0016AC3E /* x86func.cpp in Sources */, + AB405691169F5DCC0016AC3E /* x86operand.cpp in Sources */, + AB405694169F5DCC0016AC3E /* x86util.cpp in Sources */, + AB2EE13217D57F5000F68622 /* fsnitro.cpp in Sources */, + AB23567416C2F6F400DA782E /* macosx_10_5_compat.cpp in Sources */, + AB23567516C2FAD800DA782E /* OGLRender_3_2.cpp in Sources */, + AB3A655F16CC5421001F5D4A /* EmuControllerDelegate.mm in Sources */, + AB3A656216CC5438001F5D4A /* cocoa_GPU.mm in Sources */, + AB9038B917C5ED2200F410BD /* slot1comp_rom.cpp in Sources */, + AB8967DA16D2ED0700F826F1 /* DisplayWindowController.mm in Sources */, + AB29B33216D4BEBF000EF671 /* InputManager.mm in Sources */, + AB82445C1704AE9A00B8EE20 /* utilities.c in Sources */, + AB01005F170D07B000D70FBE /* InputProfileController.mm in Sources */, + ABD10AE81715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */, + ABD10AEB1715FCDD00B5729D /* mic_ext.cpp in Sources */, + ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB796CEE15CDCBA200C59155 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB796CEF15CDCBA200C59155 /* ConvertUTF.c in Sources */, + AB796CF015CDCBA200C59155 /* AAFilter.cpp in Sources */, + AB796CF215CDCBA200C59155 /* arm_instructions.cpp in Sources */, + AB796CF315CDCBA200C59155 /* armcpu.cpp in Sources */, + AB796CF415CDCBA200C59155 /* bios.cpp in Sources */, + AB796CF515CDCBA200C59155 /* cache.cpp in Sources */, + AB2EE13117D57F5000F68622 /* fsnitro.cpp in Sources */, + AB796CF615CDCBA200C59155 /* cheatSystem.cpp in Sources */, + AB796CF715CDCBA200C59155 /* common.cpp in Sources */, + AB9038B517C5ED2200F410BD /* slot1comp_mc.cpp in Sources */, + AB796CF815CDCBA200C59155 /* cp15.cpp in Sources */, + AB796CF915CDCBA200C59155 /* cpu_detect_x86_gcc.cpp in Sources */, + AB796CFA15CDCBA200C59155 /* crc.cpp in Sources */, + AB796CFB15CDCBA200C59155 /* datetime.cpp in Sources */, + AB796CFC15CDCBA200C59155 /* debug.cpp in Sources */, + AB796CFD15CDCBA200C59155 /* decrypt.cpp in Sources */, + AB796CFE15CDCBA200C59155 /* directory.cpp in Sources */, + AB796CFF15CDCBA200C59155 /* Disassembler.cpp in Sources */, + AB796D0015CDCBA200C59155 /* disc.cpp in Sources */, + AB29B16218313AF5009B7982 /* slot2.cpp in Sources */, + AB796D0115CDCBA200C59155 /* dlditool.cpp in Sources */, + AB796D0215CDCBA200C59155 /* driver.cpp in Sources */, + AB796D0315CDCBA200C59155 /* emufat.cpp in Sources */, + AB9038B217C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */, + AB796D0415CDCBA200C59155 /* emufile.cpp in Sources */, + AB796D0515CDCBA200C59155 /* fatdir.cpp in Sources */, + AB796D0615CDCBA200C59155 /* fatfile.cpp in Sources */, + AB796D0715CDCBA200C59155 /* FIFO.cpp in Sources */, + AB796D0815CDCBA200C59155 /* FIFOSampleBuffer.cpp in Sources */, + AB796D0915CDCBA200C59155 /* file_allocation_table.cpp in Sources */, + AB796D0A15CDCBA200C59155 /* filetime.cpp in Sources */, + AB796D0B15CDCBA200C59155 /* FIRFilter.cpp in Sources */, + AB796D0C15CDCBA200C59155 /* firmware.cpp in Sources */, + AB796D0D15CDCBA200C59155 /* fs-linux.cpp in Sources */, + AB796D0E15CDCBA200C59155 /* gfx3d.cpp in Sources */, + AB796D0F15CDCBA200C59155 /* GPU.cpp in Sources */, + AB9038AF17C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */, + AB796D1015CDCBA200C59155 /* GPU_osd_stub.cpp in Sources */, + AB796D1115CDCBA200C59155 /* guid.cpp in Sources */, + AB796D1215CDCBA200C59155 /* header.cpp in Sources */, + AB796D1315CDCBA200C59155 /* libfat.cpp in Sources */, + AB796D1415CDCBA200C59155 /* libfat_public_api.cpp in Sources */, + AB796D1515CDCBA200C59155 /* lock.cpp in Sources */, + AB796D1615CDCBA200C59155 /* matrix.cpp in Sources */, + AB796D1715CDCBA200C59155 /* mc.cpp in Sources */, + AB796D1815CDCBA200C59155 /* md5.cpp in Sources */, + AB796D1915CDCBA200C59155 /* metaspu.cpp in Sources */, + AB796D1A15CDCBA200C59155 /* MMU.cpp in Sources */, + AB796D1B15CDCBA200C59155 /* mmx_optimized.cpp in Sources */, + AB796D1C15CDCBA200C59155 /* movie.cpp in Sources */, + AB9038B817C5ED2200F410BD /* slot1comp_rom.cpp in Sources */, + AB796D1D15CDCBA200C59155 /* NDSSystem.cpp in Sources */, + AB796D1E15CDCBA200C59155 /* OGLRender.cpp in Sources */, + AB796D1F15CDCBA200C59155 /* partition.cpp in Sources */, + AB796D2015CDCBA200C59155 /* path.cpp in Sources */, + AB796D2115CDCBA200C59155 /* rasterize.cpp in Sources */, + AB796D2215CDCBA200C59155 /* RateTransposer.cpp in Sources */, + AB796D2315CDCBA200C59155 /* readwrite.cpp in Sources */, + AB796D2415CDCBA200C59155 /* render3D.cpp in Sources */, + AB796D2515CDCBA200C59155 /* ROMReader.cpp in Sources */, + AB796D2615CDCBA200C59155 /* rtc.cpp in Sources */, + AB796D2715CDCBA200C59155 /* saves.cpp in Sources */, + AB796D2815CDCBA200C59155 /* slot1.cpp in Sources */, + AB796D2915CDCBA200C59155 /* slot1_none.cpp in Sources */, + AB2EE12C17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp in Sources */, + AB796D2A15CDCBA200C59155 /* slot1_r4.cpp in Sources */, + AB796D2C15CDCBA200C59155 /* slot1_retail_nand.cpp in Sources */, + AB796D2D15CDCBA200C59155 /* slot2_expMemory.cpp in Sources */, + AB796D2E15CDCBA200C59155 /* slot2_gbagame.cpp in Sources */, + AB796D2F15CDCBA200C59155 /* slot2_guitarGrip.cpp in Sources */, + AB796D3015CDCBA200C59155 /* slot2_mpcf.cpp in Sources */, + AB796D3115CDCBA200C59155 /* slot2_none.cpp in Sources */, + AB796D3215CDCBA200C59155 /* slot2_paddle.cpp in Sources */, + AB796D3315CDCBA200C59155 /* slot2_piano.cpp in Sources */, + AB796D3415CDCBA200C59155 /* slot2_rumblepak.cpp in Sources */, + AB796D3515CDCBA200C59155 /* sndOSX.cpp in Sources */, + AB796D3615CDCBA200C59155 /* SndOut.cpp in Sources */, + AB796D3715CDCBA200C59155 /* SoundTouch.cpp in Sources */, + AB796D3815CDCBA200C59155 /* SPU.cpp in Sources */, + AB796D3915CDCBA200C59155 /* sse_optimized.cpp in Sources */, + AB796D3A15CDCBA200C59155 /* task.cpp in Sources */, + AB796D3B15CDCBA200C59155 /* TDStretch.cpp in Sources */, + AB796D3C15CDCBA200C59155 /* texcache.cpp in Sources */, + AB796D3D15CDCBA200C59155 /* thumb_instructions.cpp in Sources */, + AB9038A617C5ECFD00F410BD /* advanscene.cpp in Sources */, + AB796D3E15CDCBA200C59155 /* Timestretcher.cpp in Sources */, + AB796D3F15CDCBA200C59155 /* tinystr.cpp in Sources */, + AB796D4015CDCBA200C59155 /* tinyxml.cpp in Sources */, + AB796D4115CDCBA200C59155 /* tinyxmlerror.cpp in Sources */, + AB796D4215CDCBA200C59155 /* tinyxmlparser.cpp in Sources */, + AB796D4315CDCBA200C59155 /* version.cpp in Sources */, + AB796D4415CDCBA200C59155 /* vfat.cpp in Sources */, + AB796D4515CDCBA200C59155 /* videofilter.cpp in Sources */, + AB796D4615CDCBA200C59155 /* WavFile.cpp in Sources */, + AB796D4715CDCBA200C59155 /* wifi.cpp in Sources */, + AB796D4815CDCBA200C59155 /* xstring.cpp in Sources */, + AB796D4915CDCBA200C59155 /* main.m in Sources */, + AB796D4A15CDCBA200C59155 /* cocoa_cheat.mm in Sources */, + AB796D4B15CDCBA200C59155 /* cocoa_core.mm in Sources */, + AB796D4C15CDCBA200C59155 /* cocoa_file.mm in Sources */, + AB796D4D15CDCBA200C59155 /* cocoa_firmware.mm in Sources */, + AB796D4F15CDCBA200C59155 /* cocoa_input.mm in Sources */, + AB796D5115CDCBA200C59155 /* cocoa_output.mm in Sources */, + AB796D5215CDCBA200C59155 /* cocoa_rom.mm in Sources */, + AB796D5315CDCBA200C59155 /* cocoa_util.mm in Sources */, + AB796D5415CDCBA200C59155 /* cocoa_videofilter.mm in Sources */, + AB796D5515CDCBA200C59155 /* appDelegate.mm in Sources */, + AB796D5615CDCBA200C59155 /* cheatWindowDelegate.mm in Sources */, + AB796D5915CDCBA200C59155 /* inputPrefsView.mm in Sources */, + AB796D5A15CDCBA200C59155 /* preferencesWindowDelegate.mm in Sources */, + AB796D5B15CDCBA200C59155 /* 2xsai.cpp in Sources */, + AB796D5C15CDCBA200C59155 /* bilinear.cpp in Sources */, + AB796D5D15CDCBA200C59155 /* epx.cpp in Sources */, + AB796D5E15CDCBA200C59155 /* hq2x.cpp in Sources */, + AB796D5F15CDCBA200C59155 /* hq4x.cpp in Sources */, + AB29B16618313C14009B7982 /* slot2_auto.cpp in Sources */, + ABCFA9F4178BDE920030C8BA /* encrypt.cpp in Sources */, + AB796D6015CDCBA200C59155 /* lq2x.cpp in Sources */, + AB796D6115CDCBA200C59155 /* scanline.cpp in Sources */, + AB796D6215CDCBA200C59155 /* coreaudiosound.cpp in Sources */, + AB796D6315CDCBA200C59155 /* ringbuffer.cpp in Sources */, + AB796D6415CDCBA200C59155 /* arm_jit.cpp in Sources */, + ABF2B9FB16904133000FF7C0 /* troubleshootingWindowDelegate.mm in Sources */, + AB40562A169F5DBB0016AC3E /* assembler.cpp in Sources */, + AB40562D169F5DBB0016AC3E /* assert.cpp in Sources */, + AB405630169F5DBB0016AC3E /* buffer.cpp in Sources */, + AB405633169F5DBB0016AC3E /* compiler.cpp in Sources */, + AB405636169F5DBB0016AC3E /* compilercontext.cpp in Sources */, + AB405639169F5DBB0016AC3E /* compilerfunc.cpp in Sources */, + AB40563C169F5DBB0016AC3E /* compileritem.cpp in Sources */, + AB40563F169F5DBB0016AC3E /* context.cpp in Sources */, + AB405642169F5DBB0016AC3E /* cpuinfo.cpp in Sources */, + AB405645169F5DBB0016AC3E /* defs.cpp in Sources */, + AB405648169F5DBB0016AC3E /* func.cpp in Sources */, + AB40564B169F5DBB0016AC3E /* logger.cpp in Sources */, + AB40564E169F5DBB0016AC3E /* memorymanager.cpp in Sources */, + AB405651169F5DBB0016AC3E /* memorymarker.cpp in Sources */, + AB405654169F5DBB0016AC3E /* operand.cpp in Sources */, + AB405657169F5DBB0016AC3E /* stringbuilder.cpp in Sources */, + AB40565A169F5DBB0016AC3E /* stringutil.cpp in Sources */, + AB40565D169F5DBB0016AC3E /* virtualmemory.cpp in Sources */, + AB405660169F5DBB0016AC3E /* zonememory.cpp in Sources */, + AB405678169F5DCC0016AC3E /* x86assembler.cpp in Sources */, + AB40567B169F5DCC0016AC3E /* x86compiler.cpp in Sources */, + AB40567E169F5DCC0016AC3E /* x86compilercontext.cpp in Sources */, + AB405681169F5DCC0016AC3E /* x86compilerfunc.cpp in Sources */, + AB405684169F5DCC0016AC3E /* x86compileritem.cpp in Sources */, + AB1773FD182ECA8A009F29DD /* slot2_passme.cpp in Sources */, + AB405687169F5DCC0016AC3E /* x86cpuinfo.cpp in Sources */, + AB40568A169F5DCC0016AC3E /* x86defs.cpp in Sources */, + AB40568D169F5DCC0016AC3E /* x86func.cpp in Sources */, + AB405690169F5DCC0016AC3E /* x86operand.cpp in Sources */, + AB405693169F5DCC0016AC3E /* x86util.cpp in Sources */, + AB26D87C16B5253D00A2305C /* OGLRender_3_2.cpp in Sources */, + AB3A655E16CC5421001F5D4A /* EmuControllerDelegate.mm in Sources */, + AB3A656116CC5438001F5D4A /* cocoa_GPU.mm in Sources */, + AB8967D916D2ED0700F826F1 /* DisplayWindowController.mm in Sources */, + AB29B33116D4BEBF000EF671 /* InputManager.mm in Sources */, + AB8B7AAC17CE8C440051CEBF /* slot1comp_protocol.cpp in Sources */, + AB82445B1704AE9A00B8EE20 /* utilities.c in Sources */, + AB01005E170D07B000D70FBE /* InputProfileController.mm in Sources */, + ABD10AE71715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */, + ABD10AEA1715FCDD00B5729D /* mic_ext.cpp in Sources */, + ABD42047172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ABB3C6431501BC6D00E0C22E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ABE9EEEB1501C78700D3FB19 /* fs-linux.cpp in Sources */, + ABCFA9F6178BDE920030C8BA /* encrypt.cpp in Sources */, + ABB3C66C1501C04F00E0C22E /* NDSGameCore.mm in Sources */, + ABB3C6701501C04F00E0C22E /* videofilter.cpp in Sources */, + ABB3C6721501C04F00E0C22E /* cocoa_file.mm in Sources */, + ABB3C6751501C04F00E0C22E /* cocoa_rom.mm in Sources */, + AB29B16418313AF5009B7982 /* slot2.cpp in Sources */, + ABB3C6761501C04F00E0C22E /* cocoa_util.mm in Sources */, + ABB3C6771501C04F00E0C22E /* cocoa_videofilter.mm in Sources */, + ABB3C6781501C04F00E0C22E /* slot1_none.cpp in Sources */, + AB29B16818313C14009B7982 /* slot2_auto.cpp in Sources */, + AB9038B417C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */, + ABB3C6791501C04F00E0C22E /* slot1_r4.cpp in Sources */, + ABB3C67A1501C04F00E0C22E /* slot1_retail_nand.cpp in Sources */, + ABB3C67C1501C04F00E0C22E /* slot2_expMemory.cpp in Sources */, + ABB3C67D1501C04F00E0C22E /* slot2_gbagame.cpp in Sources */, + ABB3C67E1501C04F00E0C22E /* slot2_guitarGrip.cpp in Sources */, + AB2EE12E17D57ED500F68622 /* slot1_retail_mcrom_debug.cpp in Sources */, + ABB3C67F1501C04F00E0C22E /* slot2_mpcf.cpp in Sources */, + ABB3C6801501C04F00E0C22E /* slot2_none.cpp in Sources */, + ABB3C6811501C04F00E0C22E /* slot2_paddle.cpp in Sources */, + ABB3C6821501C04F00E0C22E /* slot2_piano.cpp in Sources */, + ABB3C6831501C04F00E0C22E /* slot2_rumblepak.cpp in Sources */, + ABB3C6841501C04F00E0C22E /* 2xsai.cpp in Sources */, + ABB3C6851501C04F00E0C22E /* bilinear.cpp in Sources */, + ABB3C6861501C04F00E0C22E /* epx.cpp in Sources */, + ABB3C6871501C04F00E0C22E /* hq2x.cpp in Sources */, + ABB3C6881501C04F00E0C22E /* hq4x.cpp in Sources */, + ABB3C6891501C04F00E0C22E /* lq2x.cpp in Sources */, + ABB3C68A1501C04F00E0C22E /* scanline.cpp in Sources */, + ABB3C68B1501C04F00E0C22E /* AAFilter.cpp in Sources */, + ABB3C68C1501C04F00E0C22E /* cpu_detect_x86_gcc.cpp in Sources */, + ABB3C68D1501C04F00E0C22E /* FIFOSampleBuffer.cpp in Sources */, + AB9038A817C5ECFD00F410BD /* advanscene.cpp in Sources */, + ABB3C68E1501C04F00E0C22E /* FIRFilter.cpp in Sources */, + ABB3C68F1501C04F00E0C22E /* mmx_optimized.cpp in Sources */, + ABB3C6901501C04F00E0C22E /* RateTransposer.cpp in Sources */, + ABB3C6911501C04F00E0C22E /* SoundTouch.cpp in Sources */, + ABB3C6921501C04F00E0C22E /* sse_optimized.cpp in Sources */, + ABB3C6931501C04F00E0C22E /* TDStretch.cpp in Sources */, + ABB3C6941501C04F00E0C22E /* WavFile.cpp in Sources */, + ABB3C6951501C04F00E0C22E /* metaspu.cpp in Sources */, + ABB3C6961501C04F00E0C22E /* SndOut.cpp in Sources */, + ABB3C6971501C04F00E0C22E /* Timestretcher.cpp in Sources */, + ABB3C6981501C04F00E0C22E /* crc.cpp in Sources */, + ABB3C6991501C04F00E0C22E /* decrypt.cpp in Sources */, + ABB3C69A1501C04F00E0C22E /* header.cpp in Sources */, + AB1773FF182ECA8A009F29DD /* slot2_passme.cpp in Sources */, + ABB3C69B1501C04F00E0C22E /* cache.cpp in Sources */, + ABB3C69C1501C04F00E0C22E /* directory.cpp in Sources */, + ABB3C69D1501C04F00E0C22E /* disc.cpp in Sources */, + ABB3C69E1501C04F00E0C22E /* fatdir.cpp in Sources */, + ABB3C69F1501C04F00E0C22E /* fatfile.cpp in Sources */, + ABB3C6A01501C04F00E0C22E /* file_allocation_table.cpp in Sources */, + ABB3C6A11501C04F00E0C22E /* filetime.cpp in Sources */, + ABB3C6A21501C04F00E0C22E /* libfat.cpp in Sources */, + ABB3C6A31501C04F00E0C22E /* libfat_public_api.cpp in Sources */, + ABB3C6A41501C04F00E0C22E /* lock.cpp in Sources */, + ABB3C6A51501C04F00E0C22E /* partition.cpp in Sources */, + ABB3C6A61501C04F00E0C22E /* tinystr.cpp in Sources */, + ABB3C6A71501C04F00E0C22E /* tinyxml.cpp in Sources */, + ABB3C6A81501C04F00E0C22E /* tinyxmlerror.cpp in Sources */, + ABB3C6A91501C04F00E0C22E /* tinyxmlparser.cpp in Sources */, + ABB3C6AA1501C04F00E0C22E /* ConvertUTF.c in Sources */, + ABB3C6AB1501C04F00E0C22E /* datetime.cpp in Sources */, + AB9038B117C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */, + ABB3C6AC1501C04F00E0C22E /* dlditool.cpp in Sources */, + ABB3C6AD1501C04F00E0C22E /* emufat.cpp in Sources */, + ABB3C6AE1501C04F00E0C22E /* guid.cpp in Sources */, + ABB3C6AF1501C04F00E0C22E /* md5.cpp in Sources */, + ABB3C6B01501C04F00E0C22E /* task.cpp in Sources */, + ABB3C6B11501C04F00E0C22E /* vfat.cpp in Sources */, + ABB3C6B21501C04F00E0C22E /* xstring.cpp in Sources */, + ABB3C6B41501C04F00E0C22E /* arm_instructions.cpp in Sources */, + ABB3C6B51501C04F00E0C22E /* armcpu.cpp in Sources */, + ABB3C6B61501C04F00E0C22E /* bios.cpp in Sources */, + ABB3C6B71501C04F00E0C22E /* cheatSystem.cpp in Sources */, + ABB3C6B81501C04F00E0C22E /* common.cpp in Sources */, + ABB3C6B91501C04F00E0C22E /* cp15.cpp in Sources */, + ABB3C6BA1501C04F00E0C22E /* debug.cpp in Sources */, + ABB3C6BB1501C04F00E0C22E /* Disassembler.cpp in Sources */, + ABB3C6BC1501C04F00E0C22E /* driver.cpp in Sources */, + ABB3C6BD1501C04F00E0C22E /* emufile.cpp in Sources */, + ABB3C6BE1501C04F00E0C22E /* FIFO.cpp in Sources */, + ABB3C6BF1501C04F00E0C22E /* firmware.cpp in Sources */, + ABB3C6C01501C04F00E0C22E /* gfx3d.cpp in Sources */, + ABB3C6C11501C04F00E0C22E /* GPU.cpp in Sources */, + ABB3C6C21501C04F00E0C22E /* GPU_osd_stub.cpp in Sources */, + ABB3C6C31501C04F00E0C22E /* matrix.cpp in Sources */, + ABB3C6C41501C04F00E0C22E /* mc.cpp in Sources */, + ABB3C6C61501C04F00E0C22E /* MMU.cpp in Sources */, + ABB3C6C71501C04F00E0C22E /* movie.cpp in Sources */, + AB8B7AAE17CE8C440051CEBF /* slot1comp_protocol.cpp in Sources */, + ABB3C6C81501C04F00E0C22E /* NDSSystem.cpp in Sources */, + ABB3C6C91501C04F00E0C22E /* OGLRender.cpp in Sources */, + ABB3C6CA1501C04F00E0C22E /* path.cpp in Sources */, + ABB3C6CB1501C04F00E0C22E /* rasterize.cpp in Sources */, + ABB3C6CC1501C04F00E0C22E /* readwrite.cpp in Sources */, + ABB3C6CD1501C04F00E0C22E /* render3D.cpp in Sources */, + ABB3C6CE1501C04F00E0C22E /* ROMReader.cpp in Sources */, + ABB3C6CF1501C04F00E0C22E /* rtc.cpp in Sources */, + ABB3C6D01501C04F00E0C22E /* saves.cpp in Sources */, + ABB3C6D11501C04F00E0C22E /* slot1.cpp in Sources */, + ABB3C6D31501C04F00E0C22E /* SPU.cpp in Sources */, + ABB3C6D41501C04F00E0C22E /* texcache.cpp in Sources */, + AB9038BA17C5ED2200F410BD /* slot1comp_rom.cpp in Sources */, + ABB3C6D51501C04F00E0C22E /* thumb_instructions.cpp in Sources */, + AB2EE13317D57F5000F68622 /* fsnitro.cpp in Sources */, + ABB3C6D61501C04F00E0C22E /* version.cpp in Sources */, + ABB3C6D71501C04F00E0C22E /* wifi.cpp in Sources */, + ABE9EEEA1501C6EB00D3FB19 /* cocoa_firmware.mm in Sources */, + AB1949DB15034F900098793E /* OESoundInterface.mm in Sources */, + AB796C9F15CDCB0F00C59155 /* arm_jit.cpp in Sources */, + AB40562C169F5DBB0016AC3E /* assembler.cpp in Sources */, + AB40562F169F5DBB0016AC3E /* assert.cpp in Sources */, + AB405632169F5DBB0016AC3E /* buffer.cpp in Sources */, + AB405635169F5DBB0016AC3E /* compiler.cpp in Sources */, + AB405638169F5DBB0016AC3E /* compilercontext.cpp in Sources */, + AB40563B169F5DBB0016AC3E /* compilerfunc.cpp in Sources */, + AB40563E169F5DBB0016AC3E /* compileritem.cpp in Sources */, + AB405641169F5DBB0016AC3E /* context.cpp in Sources */, + AB405644169F5DBB0016AC3E /* cpuinfo.cpp in Sources */, + AB405647169F5DBB0016AC3E /* defs.cpp in Sources */, + AB40564A169F5DBB0016AC3E /* func.cpp in Sources */, + AB40564D169F5DBB0016AC3E /* logger.cpp in Sources */, + AB405650169F5DBB0016AC3E /* memorymanager.cpp in Sources */, + AB405653169F5DBB0016AC3E /* memorymarker.cpp in Sources */, + AB405656169F5DBB0016AC3E /* operand.cpp in Sources */, + AB405659169F5DBB0016AC3E /* stringbuilder.cpp in Sources */, + AB40565C169F5DBB0016AC3E /* stringutil.cpp in Sources */, + AB40565F169F5DBB0016AC3E /* virtualmemory.cpp in Sources */, + AB405662169F5DBB0016AC3E /* zonememory.cpp in Sources */, + AB40567A169F5DCC0016AC3E /* x86assembler.cpp in Sources */, + AB40567D169F5DCC0016AC3E /* x86compiler.cpp in Sources */, + AB405680169F5DCC0016AC3E /* x86compilercontext.cpp in Sources */, + AB405683169F5DCC0016AC3E /* x86compilerfunc.cpp in Sources */, + AB405686169F5DCC0016AC3E /* x86compileritem.cpp in Sources */, + AB405689169F5DCC0016AC3E /* x86cpuinfo.cpp in Sources */, + AB40568C169F5DCC0016AC3E /* x86defs.cpp in Sources */, + AB40568F169F5DCC0016AC3E /* x86func.cpp in Sources */, + AB405692169F5DCC0016AC3E /* x86operand.cpp in Sources */, + AB405695169F5DCC0016AC3E /* x86util.cpp in Sources */, + AB68A0DD16B139BC00DE0546 /* OGLRender_3_2.cpp in Sources */, + AB9038B717C5ED2200F410BD /* slot1comp_mc.cpp in Sources */, + AB3A656316CC5438001F5D4A /* cocoa_GPU.mm in Sources */, + AB82445D1704AE9A00B8EE20 /* utilities.c in Sources */, + AB010060170D07B000D70FBE /* InputProfileController.mm in Sources */, + ABD10AE91715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */, + ABD10AEC1715FCDD00B5729D /* mic_ext.cpp in Sources */, + ABD10AED17160C9300B5729D /* ringbuffer.cpp in Sources */, + ABD10AEE17160CDD00B5729D /* cocoa_input.mm in Sources */, + AB5785F817175F16002C5FC7 /* cocoa_core.mm in Sources */, + AB5785F9171760D2002C5FC7 /* cocoa_output.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + AB00E87914205EAE00DE561F /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + AB00E87A14205EAE00DE561F /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + AB00E87C14205EBC00DE561F /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + AB00E87D14205EBC00DE561F /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + AB350D3A147A1D93007165AC /* HID_usage_strings.plist */ = { + isa = PBXVariantGroup; + children = ( + AB350D38147A1D8D007165AC /* English */, + ); + name = HID_usage_strings.plist; + sourceTree = ""; + }; + AB8967DB16D2ED2700F826F1 /* DisplayWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + AB8967DC16D2ED2700F826F1 /* English */, + ); + name = DisplayWindow.xib; + sourceTree = ""; + }; + AB901BDD1420706100348EEC /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + AB00E89114205ECC00DE561F /* English */, + AB901BE01420706F00348EEC /* French */, + AB901BE11420707400348EEC /* Italian */, + AB901BDF1420706B00348EEC /* Japanese */, + AB901BE21420707800348EEC /* Chinese */, + AB901BE31420707D00348EEC /* Norwegian */, + AB901BE41420708200348EEC /* Romanian */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + AB796D6E15CDCBA200C59155 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + AB796D6F15CDCBA200C59155 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + ABB3C6581501BC6D00E0C22E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/openemu\"", + ); + GCC_PREFIX_HEADER = openemu/DeSmuME_Prefix_OpenEmu.pch; + INFOPLIST_FILE = "openemu/Info (OpenEmu Plug-in).plist"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + PRODUCT_NAME = DeSmuME; + WRAPPER_EXTENSION = oecoreplugin; + }; + name = Debug; + }; + ABB3C6591501BC6D00E0C22E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/openemu\"", + ); + GCC_PREFIX_HEADER = openemu/DeSmuME_Prefix_OpenEmu.pch; + INFOPLIST_FILE = "openemu/Info (OpenEmu Plug-in).plist"; + LLVM_LTO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + PRODUCT_NAME = DeSmuME; + WRAPPER_EXTENSION = oecoreplugin; + }; + name = Release; + }; + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.5; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + NDEBUG, + PUBLIC_RELEASE, + ); + LLVM_LTO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.5; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; + CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; + CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CLANG_X86_VECTOR_INSTRUCTIONS = sse3; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_DYNAMIC_NO_PIC = NO; + GCC_FAST_MATH = YES; + GCC_FAST_OBJC_DISPATCH = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = DeSmuME_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + _DEBUG, + "DEBUG=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THREADSAFE_STATICS = NO; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_SHADOW = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IBC_FLATTEN_NIBS = NO; + INFOPLIST_FILE = "Info (Debug).plist"; + MACOSX_DEPLOYMENT_TARGET = 10.6; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "DeSmuME (Debug)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; + CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; + CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CLANG_X86_VECTOR_INSTRUCTIONS = ssse3; + "CLANG_X86_VECTOR_INSTRUCTIONS[arch=i386]" = sse3; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + GCC_DYNAMIC_NO_PIC = YES; + GCC_FAST_MATH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_OPTIMIZATION_LEVEL = fast; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = DeSmuME_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = NDEBUG; + GCC_STRICT_ALIASING = YES; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_THREADSAFE_STATICS = NO; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_UNROLL_LOOPS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_SHADOW = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + LD_NO_PIE = YES; + LLVM_VECTORIZE_LOOPS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.6; + PRODUCT_NAME = DeSmuME; + SDKROOT = macosx; + STRIP_INSTALLED_PRODUCT = NO; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + AB796D6D15CDCBA200C59155 /* Build configuration list for PBXNativeTarget "DeSmuME (OS X App)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AB796D6E15CDCBA200C59155 /* Debug */, + AB796D6F15CDCBA200C59155 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + ABB3C6571501BC6D00E0C22E /* Build configuration list for PBXNativeTarget "DeSmuME (OpenEmu Plug-in)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + ABB3C6581501BC6D00E0C22E /* Debug */, + ABB3C6591501BC6D00E0C22E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "DeSmuME (OS X App; v10.5 Leopard Release Build)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "DeSmuME (Xcode 5)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.xcworkspace/contents.xcworkspacedata desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.xcworkspace/contents.xcworkspacedata --- desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.xcworkspace/contents.xcworkspacedata 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.xcworkspace/contents.xcworkspacedata 2013-11-28 00:37:25.493129130 +0000 @@ -0,0 +1,7 @@ + + + + + diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme --- desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OpenEmu Plug-in).xcscheme 2013-11-28 00:37:25.493129130 +0000 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme --- desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App; v10.5 Leopard Release Build).xcscheme 2013-11-28 00:37:25.493129130 +0000 @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme --- desmume-0.9.9/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/DeSmuME (Xcode 5).xcodeproj/xcshareddata/xcschemes/DeSmuME (OS X App).xcscheme 2013-11-28 00:37:25.493129130 +0000 @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru desmume-0.9.9/src/cocoa/FileTypeInfo.plist desmume-0.9.10/src/cocoa/FileTypeInfo.plist --- desmume-0.9.9/src/cocoa/FileTypeInfo.plist 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/FileTypeInfo.plist 2013-11-28 00:37:19.701035600 +0000 @@ -8,6 +8,7 @@ 0.9.7 0.9.8 0.9.9 + 0.9.10 PortStrings @@ -29,6 +30,11 @@ Cocoa OpenEmu + 0.9.10 + + Cocoa + OpenEmu + DefaultPaths @@ -96,6 +102,27 @@ ${OPENEMU} + 0.9.10 + + Cocoa + + ROM Save + ${APPSUPPORT} + Cheat + ${APPSUPPORT} + Firmware Configuration + ${APPSUPPORT} + Save State + ${APPSUPPORT} + + OpenEmu + + ROM Save + ${OPENEMU} + Save State + ${OPENEMU} + + DirectoryNames @@ -203,6 +230,32 @@ SoundSamples + 0.9.10 + + Cocoa + + ROM Save + Battery + Cheat + Cheats + Firmware Configuration + Battery + Lua Script + Lua + Video + AviFiles + R4 Format + R4format + ROM + Roms + Save State + States + Screenshot + Screenshots + Sound Sample + SoundSamples + + FileExtensionByTypes @@ -278,6 +331,24 @@ nds + 0.9.10 + + Cocoa + + ROM Save + dsv + Cheat + dct + Firmware Configuration + dfc + Lua Script + lua + Save State + dst + ROM + nds + + FileTypeByExtensions @@ -339,6 +410,24 @@ Cocoa + dsv + ROM Save + dct + Cheat + dfc + Firmware Configuration + lua + Lua Script + dst + Save State + nds + ROM + + + 0.9.10 + + Cocoa + dsv ROM Save dct diff -Nru desmume-0.9.9/src/cocoa/Info (Debug).plist desmume-0.9.10/src/cocoa/Info (Debug).plist --- desmume-0.9.9/src/cocoa/Info (Debug).plist 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/Info (Debug).plist 2013-11-28 00:37:19.697035535 +0000 @@ -240,17 +240,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - v0.9.9 (Debug) + v0.9.10 (Debug) CFBundleSignature DSmM CFBundleVersion - 0.9.9 + 0.9.10 LSApplicationCategoryType public.app-category.entertainment LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright ÂĐ2013 DeSmuME Team. All rights reserved. + Copyright ÂĐ2012-2013 DeSmuME Team. All rights reserved. NSMainNibFile MainMenu NSPrincipalClass diff -Nru desmume-0.9.9/src/cocoa/Info (Legacy Debug).plist desmume-0.9.10/src/cocoa/Info (Legacy Debug).plist --- desmume-0.9.9/src/cocoa/Info (Legacy Debug).plist 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/Info (Legacy Debug).plist 2013-11-28 00:37:26.225140950 +0000 @@ -240,17 +240,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - v0.9.9 (Debug) + v0.9.10 (Debug) CFBundleSignature DSmM CFBundleVersion - 0.9.9 + 0.9.10 LSApplicationCategoryType public.app-category.entertainment LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright ÂĐ2012 DeSmuME Team. All rights reserved. + Copyright ÂĐ2012-2013 DeSmuME Team. All rights reserved. NSMainNibFile MainMenu (Legacy) NSPrincipalClass diff -Nru desmume-0.9.9/src/cocoa/Info (Legacy).plist desmume-0.9.10/src/cocoa/Info (Legacy).plist --- desmume-0.9.9/src/cocoa/Info (Legacy).plist 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/Info (Legacy).plist 2013-11-28 00:37:19.693035471 +0000 @@ -240,17 +240,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - v0.9.9 + v0.9.10 CFBundleSignature DSmM CFBundleVersion - 0.9.9 + 0.9.10 LSApplicationCategoryType public.app-category.entertainment LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright ÂĐ2012 DeSmuME Team. All rights reserved. + Copyright ÂĐ2012-2013 DeSmuME Team. All rights reserved. NSMainNibFile MainMenu (Legacy) NSPrincipalClass diff -Nru desmume-0.9.9/src/cocoa/Info.plist desmume-0.9.10/src/cocoa/Info.plist --- desmume-0.9.9/src/cocoa/Info.plist 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/Info.plist 2013-11-28 00:37:25.805134168 +0000 @@ -240,17 +240,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - v0.9.9 + v0.9.10 CFBundleSignature DSmM CFBundleVersion - 0.9.9 + 0.9.10 LSApplicationCategoryType public.app-category.entertainment LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright ÂĐ2013 DeSmuME Team. All rights reserved. + Copyright ÂĐ2012-2013 DeSmuME Team. All rights reserved. NSMainNibFile MainMenu NSPrincipalClass diff -Nru desmume-0.9.9/src/cocoa/openemu/DeSmuME_Prefix_OpenEmu.pch desmume-0.9.10/src/cocoa/openemu/DeSmuME_Prefix_OpenEmu.pch --- desmume-0.9.9/src/cocoa/openemu/DeSmuME_Prefix_OpenEmu.pch 2013-05-01 18:48:18.000000000 +0000 +++ desmume-0.9.10/src/cocoa/openemu/DeSmuME_Prefix_OpenEmu.pch 2013-11-28 00:37:24.473112660 +0000 @@ -19,6 +19,7 @@ #define OBJ_C #endif +#define HOST_DARWIN #define DESMUME_COCOA #define HAVE_OPENGL #define HAVE_LIBZ diff -Nru desmume-0.9.9/src/cocoa/openemu/Info (OpenEmu Plug-in).plist desmume-0.9.10/src/cocoa/openemu/Info (OpenEmu Plug-in).plist --- desmume-0.9.9/src/cocoa/openemu/Info (OpenEmu Plug-in).plist 2013-05-01 18:48:18.000000000 +0000 +++ desmume-0.9.10/src/cocoa/openemu/Info (OpenEmu Plug-in).plist 2013-11-28 00:37:24.473112660 +0000 @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - v0.9.9 (OpenEmu Plug-in) + v0.9.10 (OpenEmu Plug-in) CFBundleSignature ???? CFBundleVersion - 0.9.9 + 0.9.10 CSResourcesFileMapped yes NSHumanReadableCopyright diff -Nru desmume-0.9.9/src/cocoa/openemu/NDSGameCore.mm desmume-0.9.10/src/cocoa/openemu/NDSGameCore.mm --- desmume-0.9.9/src/cocoa/openemu/NDSGameCore.mm 2013-05-01 18:48:18.000000000 +0000 +++ desmume-0.9.10/src/cocoa/openemu/NDSGameCore.mm 2013-11-28 00:37:24.469112595 +0000 @@ -176,7 +176,9 @@ - (void)resetEmulation { + pthread_mutex_lock(&mutexCoreExecute); NDS_Reset(); + pthread_mutex_unlock(&mutexCoreExecute); execute = true; } diff -Nru desmume-0.9.9/src/cocoa/svnrev.sh desmume-0.9.10/src/cocoa/svnrev.sh --- desmume-0.9.9/src/cocoa/svnrev.sh 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/cocoa/svnrev.sh 2013-11-28 00:37:19.705035665 +0000 @@ -0,0 +1,27 @@ +# Copyright (C) 2013 DeSmuME team +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the this software. If not, see . + +cd "${SRCROOT}/../../" + +REV=`svnversion -n | sed -e 's/[[:alpha:]]//g' -e 's/^[[:digit:]]*://'` +if test "$REV" == "" ; then + REV="0" +fi + +printf "// REVISION TRACKING\n\ +// This file is auto-generated.\n\ +// Do not commit this file to the code repository!\n\ +#define SVN_REV $REV\n\ +#define SVN_REV_STR \"$REV\"\n" > ./src/svnrev.h \ No newline at end of file diff -Nru desmume-0.9.9/src/cocoa/translations/English.lproj/DisplayWindow.xib desmume-0.9.10/src/cocoa/translations/English.lproj/DisplayWindow.xib --- desmume-0.9.9/src/cocoa/translations/English.lproj/DisplayWindow.xib 2013-05-01 18:48:28.000000000 +0000 +++ desmume-0.9.10/src/cocoa/translations/English.lproj/DisplayWindow.xib 2013-11-28 00:37:25.329126481 +0000 @@ -1,31 +1,44 @@ - 1060 - 10K549 - 851 - 1038.36 - 461.00 + 1050 + 12D78 + 3084 + 1187.37 + 626.00 com.apple.InterfaceBuilder.CocoaPlugin - 851 + 3084 - + YES - + NSCustomObject + NSCustomView + NSImageCell + NSImageView + NSMenu + NSMenuItem + NSPopUpButton + NSPopUpButtonCell + NSProgressIndicator + NSSlider + NSSliderCell + NSTextField + NSTextFieldCell + NSToolbar + NSToolbarFlexibleSpaceItem + NSToolbarItem + NSToolbarSpaceItem + NSView + NSWindowTemplate YES com.apple.InterfaceBuilder.CocoaPlugin - YES - - YES - - - YES - + PluginDependencyRecalculationVersion + YES @@ -69,7 +82,7 @@ NSToolbarFlexibleSpaceItem NSToolbarSpaceItem - + YES @@ -276,7 +289,7 @@ - + YES @@ -285,9 +298,11 @@ - + + YES + - {1.79769e+308, 1.79769e+308} + {256, 408} @@ -297,9 +312,9 @@ 5156 - {{2, 3}, {16, 16}} + 28938 100 @@ -320,9 +335,10 @@ {{160, 1}, {20, 20}} + YES - 130560 + 134217728 33554432 NSImage @@ -333,6 +349,7 @@ 0 YES + NO YES @@ -340,9 +357,10 @@ 294 {{17, 5}, {137, 14}} + YES - 68288064 + 68157504 272634880 @@ -371,12 +389,14 @@ + NO 45 {{0, 24}, {256, 384}} + YES DisplayView @@ -387,7 +407,7 @@ YES - -2079981824 + -2080112384 131072 @@ -400,14 +420,17 @@ NO NO + NO {256, 408} + {{0, 0}, {1920, 1178}} - {256, 476} - {1.79769e+308, 1.79769e+308} + {256, 477} + {10000000000000, 10000000000000} + NO @@ -421,7 +444,7 @@ YES - -2076049856 + -2076180416 2048 LucidaGrande @@ -429,7 +452,7 @@ 1044 - 109199615 + 109199360 1 @@ -515,6 +538,7 @@ YES 2 + NO @@ -523,7 +547,7 @@ YES - 68288064 + 68157504 71304192 Select Image Format: @@ -531,6 +555,7 @@ + NO {350, 35} @@ -541,74 +566,6 @@ YES - - window - - - - 22 - - - - hidden: isShowingStatusBar - - - - - - hidden: isShowingStatusBar - hidden - isShowingStatusBar - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 52 - - - - enabled: isShowingStatusBar - - - - - - enabled: isShowingStatusBar - enabled - isShowingStatusBar - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 53 - - - - hidden: isShowingStatusBar - - - - - - hidden: isShowingStatusBar - hidden - isShowingStatusBar - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 54 - - changeCoreSpeed: @@ -642,35 +599,79 @@ - delegate - - + view + + - 62 + 64 + + + + changeVolume: + + + + 89 - view + saveScreenshotPanelAccessoryView - + - 64 + 105 + + + + reset: + + + + 107 + + + + toggleExecutePause: + + + + 108 + + + + window + + + + 109 + + + + delegate + + + + 62 - value: emuControl.currentVolumeIcon - + enabled: isShowingStatusBar + - + - value: emuControl.currentVolumeIcon - value - emuControl.currentVolumeIcon + enabled: isShowingStatusBar + enabled + isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + 2 - 65 + 53 @@ -691,7 +692,7 @@ NSRaisesForNotApplicableKeys NSValidatesImmediately - + YES @@ -705,6 +706,62 @@ + hidden: isShowingStatusBar + + + + + + hidden: isShowingStatusBar + hidden + isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 52 + + + + value: emuControl.currentVolumeIcon + + + + + + value: emuControl.currentVolumeIcon + value + emuControl.currentVolumeIcon + 2 + + + 65 + + + + hidden: isShowingStatusBar + + + + + + hidden: isShowingStatusBar + hidden + isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 54 + + + animate: emuControl.isWorking @@ -736,14 +793,6 @@ 88 - - changeVolume: - - - - 89 - - hidden: isShowingStatusBar @@ -764,14 +813,6 @@ 92 - - saveScreenshotPanelAccessoryView - - - - 105 - - selectedTag: screenshotFileFormat @@ -787,22 +828,6 @@ 106 - - - reset: - - - - 107 - - - - toggleExecutePause: - - - - 108 - @@ -1059,12 +1084,12 @@ -2.IBPluginDependency -3.IBPluginDependency 10.IBPluginDependency - 10.IBViewBoundsToFrameTransform 100.IBPluginDependency 101.IBPluginDependency 102.IBPluginDependency 103.IBPluginDependency 104.IBPluginDependency + 12.IBPluginDependency 13.IBPluginDependency 14.IBPluginDependency 15.IBPluginDependency @@ -1074,47 +1099,30 @@ 19.IBPluginDependency 20.IBPluginDependency 21.IBPluginDependency - 3.IBEditorWindowLastContentRect 3.IBPluginDependency 3.IBWindowTemplateEditedContentRect 3.NSWindowTemplate.visibleAtLaunch - 3.editorWindowContentRectSynchronizationRect - 3.windowTemplate.hasMinSize - 3.windowTemplate.maxSize - 3.windowTemplate.minSize - 4.IBEditorWindowLastContentRect 4.IBPluginDependency 5.IBPluginDependency 6.IBPluginDependency - 6.IBViewBoundsToFrameTransform 63.IBPluginDependency - 63.IBViewBoundsToFrameTransform - 8.IBViewBoundsToFrameTransform + 8.IBPluginDependency 84.IBPluginDependency - 84.IBViewBoundsToFrameTransform 85.IBPluginDependency - 93.IBEditorWindowLastContentRect 93.IBPluginDependency - 93.IBViewBoundsToFrameTransform 94.IBPluginDependency - 94.IBViewBoundsToFrameTransform 95.IBPluginDependency - 95.IBViewBoundsToFrameTransform 96.IBPluginDependency 97.IBPluginDependency - 98.IBEditorWindowLastContentRect 98.IBPluginDependency 99.IBPluginDependency - + YES com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABAQAAAwjAAAA - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1129,47 +1137,22 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1316, 313}, {256, 408}} com.apple.InterfaceBuilder.CocoaPlugin - {{1316, 313}, {256, 408}} + com.apple.InterfaceBuilder.CocoaPlugin + {{875, 319}, {256, 408}} - {{33, 99}, {480, 360}} - - {3.40282e+38, 3.40282e+38} - {256, 408} - {{1136, 494}, {616, 227}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwYgAAA - com.apple.InterfaceBuilder.CocoaPlugin - - AQAAAABDnAAAA - - - AULcAAA/gAAAA - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCwAAAwZAAAA - com.apple.InterfaceBuilder.CocoaPlugin - {{1220, 906}, {350, 35}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMAAAwegAAA - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCGAAAwgwAAA - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1185, 897}, {126, 123}} + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1177,697 +1160,29 @@ YES - - YES - + YES - - YES - + - 108 - - - - YES - - DisplayView - NSView - - IBProjectSource - userinterface/DisplayWindowController.h - - - - DisplayWindowController - NSWindowController - - YES - - YES - changeCoreSpeed: - changeRotationRelative: - changeVolume: - copy: - openRom: - reset: - saveScreenshotAs: - toggleExecutePause: - toggleKeepMinDisplaySizeAtNormal: - toggleStatusBar: - - - YES - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - changeCoreSpeed: - changeRotationRelative: - changeVolume: - copy: - openRom: - reset: - saveScreenshotAs: - toggleExecutePause: - toggleKeepMinDisplaySizeAtNormal: - toggleStatusBar: - - - YES - - changeCoreSpeed: - id - - - changeRotationRelative: - id - - - changeVolume: - id - - - copy: - id - - - openRom: - id - - - reset: - id - - - saveScreenshotAs: - id - - - toggleExecutePause: - id - - - toggleKeepMinDisplaySizeAtNormal: - id - - - toggleStatusBar: - id - - - - - YES - - YES - saveScreenshotPanelAccessoryView - view - - - YES - NSView - DisplayView - - - - YES - - YES - saveScreenshotPanelAccessoryView - view - - - YES - - saveScreenshotPanelAccessoryView - NSView - - - view - DisplayView - - - - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSImageCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSImageCell.h - - - - NSImageView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSImageView.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - - - NSProgressIndicator - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSProgressIndicator.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSToolbar - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbar.h - - - - NSToolbarItem - NSObject - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - showWindow: - - showWindow: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - + 109 + 0 IBCocoaFramework - + com.apple.InterfaceBuilder.CocoaPlugin.macosx - + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES - ../../DeSmuME (XCode 3).xcodeproj 3 YES @@ -1883,7 +1198,7 @@ NSMenuCheckmark NSMenuMixedState - + YES {420, 420} {420, 420} @@ -1892,8 +1207,8 @@ {420, 420} {420, 420} {20, 20} - {9, 8} - {7, 2} + {11, 11} + {10, 3} Binary files /tmp/FPu7km2IPq/desmume-0.9.9/src/cocoa/translations/English.lproj/MainMenu.strings and /tmp/hECIq6vq9R/desmume-0.9.10/src/cocoa/translations/English.lproj/MainMenu.strings differ diff -Nru desmume-0.9.9/src/cocoa/translations/English.lproj/MainMenu.xib desmume-0.9.10/src/cocoa/translations/English.lproj/MainMenu.xib --- desmume-0.9.9/src/cocoa/translations/English.lproj/MainMenu.xib 2013-05-01 18:48:28.000000000 +0000 +++ desmume-0.9.10/src/cocoa/translations/English.lproj/MainMenu.xib 2013-11-28 00:37:25.329126481 +0000 @@ -1,3951 +1,4250 @@ - - 1050 - 10K549 - 851 - 1038.36 - 461.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 851 - - - YES - - - - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - MainMenu - - YES - - - DeSmuME - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - DeSmuME - - YES - - - About DeSmuME - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferencesâ€Ķ - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide DeSmuME - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit DeSmuME - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - File - - YES - - - New Display Window - n - 1048576 - 2147483647 - - - - - - Load ROMâ€Ķ - o - 1048576 - 2147483647 - - - - - - Load Recent ROM - - 1048576 - 2147483647 - - - submenuAction: - - Load Recent ROM - - YES - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close Window - w - 1048576 - 2147483647 - - - - - - Unload ROM - w - 1572864 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - ROM Info - i - 1048576 - 2147483647 - - - - - - Reveal ROM in Finder - - 2147483647 - - - - - - Reveal Game Data Folder in Finder - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Open State File... - O - 1048576 - 2147483647 - - - - - - Close State File - W - 1048576 - 2147483647 - - - - - - Save State File - s - 1048576 - 2147483647 - - - - - - Save State File Asâ€Ķ - S - 1179648 - 2147483647 - - - - - - Revert State File to Saved - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Load State Slot - - 2147483647 - - - submenuAction: - - Load State Slot - - YES - - - - - - Save State Slot - - 2147483647 - - - submenuAction: - - Save State Slot - - YES - - - - - - YES - YES - - - 2147483647 - - - - - - Import ROM Save File... - - 2147483647 - - - - - - Export ROM Save File... - - 2147483647 - - - - - - - - - Edit - - 2147483647 - - - submenuAction: - - Edit - - YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - - - - Emulation - - 2147483647 - - - submenuAction: - - Emulation - - YES - - - Speed Limit - - 2147483647 - - - submenuAction: - - Speed Limit - - YES - - - Half - - 2147483647 - - - 50 - - - - Normal - - 2147483647 - - - 100 - - - - Double - - 2147483647 - - - 200 - - - - YES - YES - - - 2147483647 - - - -1 - - - - Custom... - - 2147483647 - - - -1 - - - - - - - Disable Speed Limit - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Disable Auto Frame Skip - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Show Cheat Manager... - - 2147483647 - - - - - - Disable Cheats - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Execute - - 2147483647 - - - - - - Reset - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Show SLOT-1 Manager... - - 2147483647 - - - - - - ROM Save Type - - 2147483647 - - - submenuAction: - - ROM Save Type - - YES - - - Automatic - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - -1 - - - - EEPROM 4Kb - - 2147483647 - - - 1 - - - - EEPROM 64Kb - - 2147483647 - - - 2 - - - - EEPROM 512Kb - - 2147483647 - - - 3 - - - - FRAM 256Kb - - 2147483647 - - - 4 - - - - FLASH 2Mb - - 2147483647 - - - 5 - - - - FLASH 4Mb - - 2147483647 - - - 6 - - - - FLASH 8Mb - - 2147483647 - - - 7 - - - - FLASH 16Mb - - 2147483647 - - - 8 - - - - FLASH 32Mb - - 2147483647 - - - 9 - - - - FLASH 64Mb - - 2147483647 - - - 10 - - - - FLASH 128Mb - - 2147483647 - - - 11 - - - - FLASH 256Mb - - 2147483647 - - - 12 - - - - FLASH 512Mb - - 2147483647 - - - 13 - - - - - - - - - - View - - 1048576 - 2147483647 - - - submenuAction: - - View - - YES - - - Display Mode - - 2147483647 - - - submenuAction: - - Display Mode - - YES - - - Main - - 2147483647 - - - - - - Touch - - 2147483647 - - - 1 - - - - Combo - - 2147483647 - - - 2 - - - - - - - Display Size - - 2147483647 - - - submenuAction: - - Display Size - - YES - - - 1x - - 2147483647 - - - 100 - - - - 2x - - 2147483647 - - - 200 - - - - 3x - - 2147483647 - - - 300 - - - - 4x - - 2147483647 - - - 400 - - - - 5x - - 2147483647 - - - 500 - - - - - - - Display Rotation - - 2147483647 - - - submenuAction: - - Display Rotation - - YES - - - Rotate Left - - 2147483647 - - - -90 - - - - Rotate Right - - 2147483647 - - - 90 - - - - YES - YES - - - 2147483647 - - - - - - 0š - - 2147483647 - - - - - - 90š - - 2147483647 - - - 90 - - - - 180š - - 2147483647 - - - 180 - - - - 270š - - 2147483647 - - - 270 - - - - YES - YES - - - 2147483647 - - - - - - Custom... - - 2147483647 - - - -1 - - - - - - - Display Orientation - - 2147483647 - - - submenuAction: - - Display Orientation - - YES - - - Vertical - - 2147483647 - - - - - - Horizontal - - 2147483647 - - - 1 - - - - - - - Display Order - - 2147483647 - - - submenuAction: - - Display Order - - YES - - - Main Screen First - - 2147483647 - - - - - - Touch Screen First - - 2147483647 - - - 1 - - - - - - - Display Separation - - 2147483647 - - - submenuAction: - - Display Separation - - YES - - - 0% - - 2147483647 - - - - - - 50% - - 2147483647 - - - 50 - - - - 100% - - 2147483647 - - - 100 - - - - 150% - - 2147483647 - - - 150 - - - - 200% - - 2147483647 - - - 200 - - - - YES - YES - - - 2147483647 - - - - - - Custom... - - 2147483647 - - - -1 - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Display Video Settings... - - 2147483647 - - - - - - Show 3D Rendering Settings... - - 2147483647 - - - - - - Show Emulation Settings... - - 2147483647 - - - - - - Show Sound Settings... - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Keep Minimum Display Size at 1x - - 2147483647 - - - - - - Show Status Bar - / - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Show Toolbar - t - 1572864 - 2147483647 - - - - - - Customize Toolbarâ€Ķ - - 1048576 - 2147483647 - - - - - - - - - Tools - - 2147483647 - - - submenuAction: - - Tools - - YES - - - Save Screenshot As... - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Show GPU Layers... - - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - Window - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 2147483647 - - - submenuAction: - - Help - - YES - - - DeSmuME Help - ? - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Go to Website... - - 2147483647 - - - - - - Go to Forums... - - 2147483647 - - - - - - Submit a Support Request... - - 2147483647 - - - - - - Submit a Bug Report... - - 2147483647 - - - - - _NSHelpMenu - - - - _NSMainMenu - - - Media - - 2147483647 - - - submenuAction: - - Media - - YES - - - New Movie Recording - - 2147483647 - - - - - - Open Movie... - - 2147483647 - - - - - - Open Recent Movie - - 2147483647 - - - submenuAction: - - Open Recent Movie - - YES - - - Clear Menu - - 2147483647 - - - - - - - - - Close Movie - - 2147483647 - - - - - - - - AppDelegate - - - EmuControllerDelegate - - - InputManager - - - 15 - 2 - {{81, 659}, {550, 450}} - 1148716032 - About DeSmuME - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{20, 302}, {128, 128}} - - YES - - 130560 - 33554432 - - NSImage - NSApplicationIcon - - 0 - 1 - 0 - NO - - YES - - - - 18 - {{13, 10}, {524, 290}} - - - YES - - 1 - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 2322 - {490, 14} - - - - - - - - - - - YES - - - 6 - - - - 490 - 1 - - - 10245 - 0 - - - 3 - MQA - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - System - selectedTextBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - selectedTextColor - - 3 - MAA - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - - - 6 - {495, 1e+07} - {148, 0} - - - - {490, 244} - - - - - - {4, -5} - 1 - - 2 - - - - 256 - {{490, 0}, {15, 244}} - - - _doScroller: - 0.96240601503759393 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{-3, -3}, {505, 244}} - - - 16 - - - - - - {{10, 33}, {504, 244}} - - - Read Me - - 6 - System - controlColor - - - - - - 2 - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 2322 - {490, 14} - - - - - - - - - - - YES - - - 6 - - - - 490 - 1 - - - 10245 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {490, 1e+07} - {223, 0} - - - - {490, 244} - - - - - - 2 - - - - 256 - {{490, 0}, {15, 244}} - - - _doScroller: - 0.96240601503759393 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{-3, -3}, {505, 244}} - - - 16 - - - - - - {{10, 33}, {504, 244}} - - License - - - - - Item 2 - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 2322 - {490, 14} - - - - - - - - - - - YES - - - 6 - - - - 490 - 1 - - - 10245 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {490, 1e+07} - {223, 0} - - - - {490, 244} - - - - - - 2 - - - - 256 - {{490, 0}, {15, 244}} - - - _doScroller: - 0.96240601503759393 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{-3, -3}, {505, 244}} - - - 16 - - - - - - {{10, 33}, {504, 244}} - - Authors - - - - - Item 3 - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 2322 - {490, 14} - - - - - - - - - - - YES - - - 6 - - - - 490 - 1 - - - 10245 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {490, 1e+07} - {223, 0} - - - - {490, 244} - - - - - - 2 - - - - 256 - {{490, 0}, {15, 244}} - - - _doScroller: - 0.96240601503759393 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{-3, -3}, {505, 244}} - - - 16 - - - - - - {{10, 33}, {504, 244}} - - Change Log - - - - - - - LucidaGrande - 13 - 1044 - - 0 - YES - YES - - YES - - - - - - 270 - {{153, 374}, {380, 56}} - - YES - - 69336577 - 4198400 - - - App Description - - - - 6 - System - controlTextColor - - - - - - - 270 - {{156, 302}, {374, 64}} - - YES - - 73530881 - 4329472 - - - LucidaGrande - 11 - 3100 - - Build Info - - YES - - - - - - {550, 450} - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 7 - 2 - {{121, 962}, {400, 100}} - 1685588992 - DeSmuME Preferences - NSWindow - - - 7F8262D5-9D3C-423C-B7C5-79385DDE5A70 - - - YES - YES - NO - NO - 1 - 1 - - YES - - YES - 8DD2F943-8717-4EC3-A3C5-30068405F029 - A9C4AA28-77F8-4AD3-96D8-A67306997B4C - AC584A31-E187-4BC3-9981-D18A2C8553F7 - C9B4F2D8-9F6E-4ED5-84C7-E13EB3484A3A - E30B98EC-D044-488C-A4E0-5BCE53366462 - NSToolbarFlexibleSpaceItem - NSToolbarSpaceItem - - - YES - - - 8DD2F943-8717-4EC3-A3C5-30068405F029 - - Input - Input - - - - NSImage - Icon_Input_420x420 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - A9C4AA28-77F8-4AD3-96D8-A67306997B4C - - General - General - - - - NSImage - NSPreferencesGeneral - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - AC584A31-E187-4BC3-9981-D18A2C8553F7 - - Emulation - Emulation - - - - NSImage - Icon_Emulation_420x420 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - C9B4F2D8-9F6E-4ED5-84C7-E13EB3484A3A - - Sound - Sound - - - - NSImage - Icon_Speaker_420x420 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - E30B98EC-D044-488C-A4E0-5BCE53366462 - - Display - Display - - - - NSImage - Icon_ShowHUD_420x420 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - NSToolbarFlexibleSpaceItem - - Flexible Space - - - - - - {1, 5} - {20000, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - NSToolbarSpaceItem - - Space - - - - - - {32, 5} - {32, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - - - YES - - - - - - - - - - YES - - - - - - - - - YES - - - {1.79769e+308, 1.79769e+308} - - - 256 - {400, 100} - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - - - 268 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{175, 50}, {199, 21}} - - - 2 - YES - - 613547584 - 272634880 - - - File Name - - - - - - - - 268 - {{376, 43}, {96, 32}} - - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 53}, {155, 17}} - - - YES - - 68288064 - 71304192 - ADVANsCEne Database: - - - - - - - - - 268 - {{15, 14}, {454, 28}} - - - YES - - 69336577 - 138543104 - WW91IGNhbiBkb3dubG9hZCB0aGUgbGF0ZXN0IEFEVkFOc0NFbmUgRGF0YWJhc2UgZnJvbToKaHR0cDov + + 1050 + 12F45 + 851 + 1187.40 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + MainMenu + + YES + + + DeSmuME + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + DeSmuME + + YES + + + About DeSmuME + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferencesâ€Ķ + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide DeSmuME + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit DeSmuME + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New Display Window + n + 1048576 + 2147483647 + + + + + + Load ROMâ€Ķ + o + 1048576 + 2147483647 + + + + + + Load Recent ROM + + 1048576 + 2147483647 + + + submenuAction: + + Load Recent ROM + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close Window + w + 1048576 + 2147483647 + + + + + + Unload ROM + w + 1572864 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + ROM Info + i + 1048576 + 2147483647 + + + + + + Reveal ROM in Finder + + 2147483647 + + + + + + Reveal Game Data Folder in Finder + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Open State File... + O + 1048576 + 2147483647 + + + + + + Close State File + W + 1048576 + 2147483647 + + + + + + Save State File + s + 1048576 + 2147483647 + + + + + + Save State File Asâ€Ķ + S + 1179648 + 2147483647 + + + + + + Revert State File to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Load State Slot + + 2147483647 + + + submenuAction: + + Load State Slot + + YES + + + + + + Save State Slot + + 2147483647 + + + submenuAction: + + Save State Slot + + YES + + + + + + YES + YES + + + 2147483647 + + + + + + Import ROM Save File... + + 2147483647 + + + + + + Export ROM Save File... + + 2147483647 + + + + + + + + + Edit + + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + + + + Emulation + + 2147483647 + + + submenuAction: + + Emulation + + YES + + + Speed Limit + + 2147483647 + + + submenuAction: + + Speed Limit + + YES + + + Half + + 2147483647 + + + 50 + + + + Normal + + 2147483647 + + + 100 + + + + Double + + 2147483647 + + + 200 + + + + YES + YES + + + 2147483647 + + + -1 + + + + Custom... + + 2147483647 + + + -1 + + + + + + + Disable Speed Limit + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Disable Auto Frame Skip + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Cheat Manager... + + 2147483647 + + + + + + Disable Cheats + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Execute + + 2147483647 + + + + + + Reset + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show SLOT-1 Manager... + + 2147483647 + + + + + + ROM Save Type + + 2147483647 + + + submenuAction: + + ROM Save Type + + YES + + + Automatic + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + -1 + + + + EEPROM 4Kb + + 2147483647 + + + 1 + + + + EEPROM 64Kb + + 2147483647 + + + 2 + + + + EEPROM 512Kb + + 2147483647 + + + 3 + + + + FRAM 256Kb + + 2147483647 + + + 4 + + + + FLASH 2Mb + + 2147483647 + + + 5 + + + + FLASH 4Mb + + 2147483647 + + + 6 + + + + FLASH 8Mb + + 2147483647 + + + 7 + + + + FLASH 16Mb + + 2147483647 + + + 8 + + + + FLASH 32Mb + + 2147483647 + + + 9 + + + + FLASH 64Mb + + 2147483647 + + + 10 + + + + FLASH 128Mb + + 2147483647 + + + 11 + + + + FLASH 256Mb + + 2147483647 + + + 12 + + + + FLASH 512Mb + + 2147483647 + + + 13 + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Display Mode + + 2147483647 + + + submenuAction: + + Display Mode + + YES + + + Main + + 2147483647 + + + + + + Touch + + 2147483647 + + + 1 + + + + Dual Screen + + 2147483647 + + + 2 + + + + + + + Display Size + + 2147483647 + + + submenuAction: + + Display Size + + YES + + + 1x + + 2147483647 + + + 100 + + + + 2x + + 2147483647 + + + 200 + + + + 3x + + 2147483647 + + + 300 + + + + 4x + + 2147483647 + + + 400 + + + + 5x + + 2147483647 + + + 500 + + + + + + + Display Rotation + + 2147483647 + + + submenuAction: + + Display Rotation + + YES + + + Rotate Left + + 2147483647 + + + -90 + + + + Rotate Right + + 2147483647 + + + 90 + + + + YES + YES + + + 2147483647 + + + + + + 0š + + 2147483647 + + + + + + 90š + + 2147483647 + + + 90 + + + + 180š + + 2147483647 + + + 180 + + + + 270š + + 2147483647 + + + 270 + + + + YES + YES + + + 2147483647 + + + + + + Custom... + + 2147483647 + + + -1 + + + + + + + Display Orientation + + 2147483647 + + + submenuAction: + + Display Orientation + + YES + + + Vertical + + 2147483647 + + + + + + Horizontal + + 2147483647 + + + 1 + + + + + + + Display Order + + 2147483647 + + + submenuAction: + + Display Order + + YES + + + Main Screen First + + 2147483647 + + + + + + Touch Screen First + + 2147483647 + + + 1 + + + + + + + Display Separation + + 2147483647 + + + submenuAction: + + Display Separation + + YES + + + 0% + + 2147483647 + + + + + + 50% + + 2147483647 + + + 50 + + + + 100% + + 2147483647 + + + 100 + + + + 150% + + 2147483647 + + + 150 + + + + 200% + + 2147483647 + + + 200 + + + + YES + YES + + + 2147483647 + + + + + + Custom... + + 2147483647 + + + -1 + + + + + + + Display Video Output + + 2147483647 + + + submenuAction: + + Display Video Output + + YES + + + Show Settings... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Use Bilinear Filtered Output + + 2147483647 + + + + + + Use Vertical Sync + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + None + + 2147483647 + + + + + + LQ2x + + 2147483647 + + + 1 + + + + LQ2xS + + 2147483647 + + + 2 + + + + HQ2x + + 2147483647 + + + 3 + + + + HQ2xS + + 2147483647 + + + 4 + + + + HQ4x + + 2147483647 + + + 5 + + + + HQ4xS + + 2147483647 + + + 18 + + + + 2xSaI + + 2147483647 + + + 6 + + + + Super 2xSaI + + 2147483647 + + + 7 + + + + Super Eagle + + 2147483647 + + + 8 + + + + Scanline + + 2147483647 + + + 9 + + + + Bilinear + + 2147483647 + + + 10 + + + + Nearest 2x + + 2147483647 + + + 11 + + + + Nearest 1.5x + + 2147483647 + + + 12 + + + + Nearest+ 1.5x + + 2147483647 + + + 13 + + + + EPX + + 2147483647 + + + 14 + + + + EPX+ + + 2147483647 + + + 15 + + + + EPX 1.5x + + 2147483647 + + + 16 + + + + EPX+ 1.5x + + 2147483647 + + + 17 + + + + + + + YES + YES + + + 2147483647 + + + + + + Show 3D Rendering Settings... + + 2147483647 + + + + + + Show Emulation Settings... + + 2147483647 + + + + + + Show Sound Settings... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Enter Full Screen + f + 1310720 + 2147483647 + + + + + + Keep Minimum Display Size at 1x + + 2147483647 + + + + + + Show Status Bar + / + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbarâ€Ķ + + 1048576 + 2147483647 + + + + + + + + + Tools + + 2147483647 + + + submenuAction: + + Tools + + YES + + + Save Screenshot As... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show GPU Layers... + + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + YES + + + DeSmuME Help + ? + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Go to Website... + + 2147483647 + + + + + + Go to Forums... + + 2147483647 + + + + + + Submit a Support Request... + + 2147483647 + + + + + + Submit a Bug Report... + + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + Media + + 2147483647 + + + submenuAction: + + Media + + YES + + + New Movie Recording + + 2147483647 + + + + + + Open Movie... + + 2147483647 + + + + + + Open Recent Movie + + 2147483647 + + + submenuAction: + + Open Recent Movie + + YES + + + Clear Menu + + 2147483647 + + + + + + + + + Close Movie + + 2147483647 + + + + + + + + AppDelegate + + + EmuControllerDelegate + + + InputManager + + + 15 + 2 + {{81, 659}, {550, 450}} + 1148716032 + About DeSmuME + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{20, 302}, {128, 128}} + + YES + + 134217728 + 33554432 + + NSImage + NSApplicationIcon + + 0 + 1 + 0 + NO + + NO + YES + + + + 18 + {{13, 10}, {524, 290}} + + + YES + + 1 + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {490, 244} + + + + + + + + + + + YES + + + 38 + + + + 490 + 1 + + + 100673541 + 0 + + + 3 + MQA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + selectedTextColor + + 3 + MAA + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + + 1 + + 6 + {495, 10000000} + + + + {490, 244} + + + + + + {4, 5} + + 79691776 + + YES + + YES + + + + file://localhost/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/DVTIbeamCursor.tiff + + + + + 3 + MCAwAA + + + + 2 + + + + 256 + {{490, 0}, {15, 244}} + + NO + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {505, 244}} + + + 133136 + + + + 0.25 + 4 + 1 + + + {{10, 33}, {504, 244}} + + + Read Me + + 6 + System + controlColor + + + + + + 2 + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {490, 244} + + + + + + + + + + + YES + + + 38 + + + + 490 + 1 + + + 100673541 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {490, 10000000} + + + + {490, 244} + + + + + + 2 + + + + 256 + {{490, 0}, {15, 244}} + + NO + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {505, 244}} + + + 133136 + + + + 0.25 + 4 + 1 + + + {{10, 33}, {504, 244}} + + License + + + + + Item 2 + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {490, 244} + + + + + + + + + + + YES + + + 38 + + + + 490 + 1 + + + 100673541 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {490, 10000000} + + + + {490, 244} + + + + + + 2 + + + + 256 + {{490, 0}, {15, 244}} + + NO + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {505, 244}} + + + 133136 + + + + 0.25 + 4 + 1 + + + {{10, 33}, {504, 244}} + + Authors + + + + + Item 3 + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {490, 244} + + + + + + + + + + + YES + + + 38 + + + + 490 + 1 + + + 100673541 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {490, 10000000} + + + + {490, 244} + + + + + + 2 + + + + 256 + {{490, 0}, {15, 244}} + + NO + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {505, 244}} + + + 133136 + + + + 0.25 + 4 + 1 + + + {{10, 33}, {504, 244}} + + Change Log + + + + + + + LucidaGrande + 13 + 1040 + + 0 + YES + YES + + YES + + + + + + 270 + {{153, 374}, {380, 56}} + + YES + + 69206017 + 4198400 + + + App Description + + + + 6 + System + controlTextColor + + + + NO + + + + 270 + {{156, 302}, {374, 64}} + + YES + + 73400321 + 4329472 + + + LucidaGrande + 11 + 3088 + + Build Info + + YES + + + + NO + + + {550, 450} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 7 + 2 + {{121, 962}, {400, 100}} + 1685588992 + DeSmuME Preferences + NSWindow + + + 7F8262D5-9D3C-423C-B7C5-79385DDE5A70 + + + YES + YES + NO + NO + 1 + 1 + + YES + + YES + 8DD2F943-8717-4EC3-A3C5-30068405F029 + A9C4AA28-77F8-4AD3-96D8-A67306997B4C + AC584A31-E187-4BC3-9981-D18A2C8553F7 + C9B4F2D8-9F6E-4ED5-84C7-E13EB3484A3A + E30B98EC-D044-488C-A4E0-5BCE53366462 + NSToolbarFlexibleSpaceItem + NSToolbarSpaceItem + + + YES + + + 8DD2F943-8717-4EC3-A3C5-30068405F029 + + Input + Input + + + + NSImage + Icon_Input_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + A9C4AA28-77F8-4AD3-96D8-A67306997B4C + + General + General + + + + NSImage + NSPreferencesGeneral + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + AC584A31-E187-4BC3-9981-D18A2C8553F7 + + Emulation + Emulation + + + + NSImage + Icon_Emulation_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + C9B4F2D8-9F6E-4ED5-84C7-E13EB3484A3A + + Sound + Sound + + + + NSImage + Icon_Speaker_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + E30B98EC-D044-488C-A4E0-5BCE53366462 + + Display + Display + + + + NSImage + Icon_ShowHUD_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + + + YES + + + + + + + + + + YES + + + + + + + + + YES + + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + {400, 100} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + + YES + + + + 268 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{175, 50}, {199, 21}} + + YES + + 613417024 + 272634880 + + + File Name + + + + + NO + + + + 268 + {{376, 43}, {96, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{15, 53}, {155, 17}} + + YES + + 68157504 + 71304192 + ADVANsCEne Database: + + + + + + NO + + + + 268 + {{15, 14}, {454, 28}} + + YES + + 69206017 + 138543104 + WW91IGNhbiBkb3dubG9hZCB0aGUgbGF0ZXN0IEFEVkFOc0NFbmUgRGF0YWJhc2UgZnJvbToKaHR0cDov L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA - - - - - - - - {{1, 1}, {484, 81}} - - - - - {{17, 16}, {486, 97}} - - - {0, 0} - - 67239424 - 0 - ADVANsCEne Database - - - 6 - System - textBackgroundColor - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{148, 14}, {226, 21}} - - - 2 - YES - - 613547584 - 272634880 - - - File Name - - - - - - - - 268 - {{376, 7}, {96, 32}} - - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 17}, {128, 17}} - - - YES - - 68288064 - 71304192 - R4 Cheat Database: - - - - - - - - {{1, 1}, {484, 45}} - - - - - {{17, 117}, {486, 61}} - - - {0, 0} - - 67239424 - 0 - Cheat Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{92, 12}, {314, 18}} - - - YES - - 67239424 - 0 - Do not show File Migration window on startup - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 268 - {{141, 33}, {217, 32}} - - - YES - - 67239424 - 134217728 - Show File Migration Window - - - -2038284033 - 129 - - - 200 - 25 - - - - {{1, 1}, {484, 75}} - - - - - {{17, 182}, {486, 91}} - - - {0, 0} - - 67239424 - 0 - User File Migration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 111}, {366, 18}} - - - 2 - YES - - -2080244224 - 0 - Automatically Execute Emulation When Loading a ROM - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 71}, {274, 18}} - - - 2 - YES - - 67239424 - 0 - Automatically Load a ROM Upon Launch - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{34, 41}, {227, 26}} - - - 2 - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Load Last Loaded ROM - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Load Selected ROM - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{114, 14}, {260, 21}} - - - 2 - YES - - 613547584 - 272634880 - - - ROM Name - - - - - - - - 268 - {{376, 7}, {96, 32}} - - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 17}, {94, 17}} - - - YES - - 68288064 - 71304192 - Selected ROM: - - - - - - - - {{1, 1}, {484, 137}} - - - 2 - - - {{17, 277}, {486, 153}} - - - 2 - {0, 0} - - 67239424 - 0 - ROM Behavior - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {520, 450} - - - 2 - NSView - - - - 268 - - YES - - - 268 - {{97, 463}, {96, 17}} - - YES - - 68288064 - 71304192 - Saved Profiles: - - - - - - - - - 268 - {{195, 457}, {265, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - New... - - 2147483647 - 1 - - NSImage - NSActionTemplate - - - - _popUpItemAction: - -1 - - - YES - - InputConfigurationMenu - - YES - - - YES - YES - - - 2147483647 - - - _popUpItemAction: - - - - - YES - - - 1 - 1 - YES - YES - 2 - - - - - 268 - {{462, 457}, {116, 26}} - - YES - - -2076049856 - 134219776 - - - -2038284033 - 129 - - LucidaGrande - 13 - 16 - - - - 400 - 75 - - - YES - Actions - - 1048576 - 2147483647 - 1 - - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - View - - 2147483647 - - - _popUpItemAction: - - - - - Apply - - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 2147483647 - - - _popUpItemAction: - - - - - YES - Rename - - 2147483647 - - - _popUpItemAction: - - - - - YES - Save - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 2147483647 - - - _popUpItemAction: - - - - - YES - Delete - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - YES - - - YES - 1 - YES - YES - 2 - - - - - 274 - - YES - - - 2304 - - YES - - - 256 - {640, 394} - - YES - - - 256 - {640, 17} - - - - - - -2147483392 - {{584, 0}, {16, 17}} - - - - YES - - InputCommandTagColumn - 155 - 16 - 1000 - - 75628096 - 2048 - Set Command - - - 3 - MC4zMzMzMzI5ODU2AA - - - 6 - System - headerTextColor - - - - - 67239424 - 131072 - Command - - - -2034482945 - 100 - - - - 200 - 25 - - 3 - YES - - - - InputDeviceColumn - 175 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Input Device - - - 6 - System - headerColor - - - - - - 69336641 - 137216 - Text Cell - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - InputSettingsSummaryColumn - 136 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Input Settings Summary - - - - - - 69336641 - 137216 - Text Cell - - - - - - 3 - YES - - - - InputSettingsColumn - 69 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - - - - - - - 604110336 - 134348800 - Settings - - - -2035007233 - 36 - - - 200 - 25 - - - - - RemoveInputColumn - 67 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - - - - - - - 67239424 - 134348800 - Remove - - - -2035007233 - 36 - - - 200 - 25 - - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - 1402994688 - - - InputPreferences - 0 - 15 - 0 - NO - 0 - NO - YES - - - {{1, 17}, {640, 394}} - - - - - 4 - - - - -2147483392 - {{584, 17}, {15, 102}} - - - _doScroller: - 0.96411483253588515 - - - - -2147483392 - {{1, 420}, {624, 15}} - - 1 - - _doScroller: - 0.99843505477308292 - - - - 2304 - - YES - - - {{1, 0}, {640, 17}} - - - - - 4 - - - - {{-1, 37}, {642, 412}} - - - 562 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - {{197, 12}, {247, 17}} - - YES - - 605158976 - 171971584 - Click this area to map mouse input. - - LucidaGrande-Bold - 13 - 16 - - - - - - - - {640, 495} - InputPrefsView - - - - 268 - - YES - - - 12 - {{13, 10}, {463, 401}} - - - YES - - 1 - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{72, 44}, {84, 17}} - - YES - - 68288064 - 71304192 - Display Size: - - - - - - - - - 268 - {{44, 16}, {112, 17}} - - YES - - 68288064 - 71304192 - Display Rotation: - - - - - - - - - 268 - {{158, 38}, {126, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - 1x - - 2147483647 - 1 - - - _popUpItemAction: - 100 - - - YES - - OtherViews - - YES - - - - 2x - - 2147483647 - - - _popUpItemAction: - 200 - - - - - 3x - - 2147483647 - - - _popUpItemAction: - 300 - - - - - 4x - - 2147483647 - - - _popUpItemAction: - 400 - - - - - 5x - - 2147483647 - - - _popUpItemAction: - 500 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{289, 14}, {72, 22}} - - YES - - -1804468671 - 71304192 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximum - maximumIntegerDigits - minimum - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - - -∞ - - - #0.##š - +∞ - - - - #0.##š - #0.##š - - - - - - - - NaN - - YES - - - YES - - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - 6 - System - textColor - - - - - - - 268 - {{63, 72}, {93, 17}} - - YES - - 68288064 - 71304192 - Display Mode: - - - - - - - - - 268 - {{158, 66}, {126, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Combo - - 2147483647 - 1 - - - _popUpItemAction: - 2 - - - YES - - OtherViews - - YES - - - Main - - 2147483647 - - - _popUpItemAction: - - - - - Touch - - 2147483647 - - - _popUpItemAction: - 1 - - - - - YES - - - 2 - 1 - YES - YES - 2 - - - - - 268 - {{158, 11}, {126, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - 0š - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - 90š - - 1048576 - 2147483647 - - - _popUpItemAction: - 90 - - - - - 180š - - 1048576 - 2147483647 - - - _popUpItemAction: - 180 - - - - - 270š - - 2147483647 - - - _popUpItemAction: - 270 - - - - - YES - YES - - - 2147483647 - 1 - - - _popUpItemAction: - - - - - Custom - - 2147483647 - - - _popUpItemAction: - -1 - - - - - - 1 - YES - YES - 2 - - - - {{1, 1}, {429, 100}} - - - - {{6, 206}, {431, 116}} - - {0, 0} - - 67239424 - 0 - General Settings - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {100, 38}} - - YES - 2 - 1 - - YES - - -2080244224 - 0 - Vertical - - - 1211912703 - 0 - - NSRadioButton - - - - 200 - 25 - - - 67239424 - 0 - Horizontal - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + NO + + + {{1, 1}, {484, 81}} + + + + {{17, 16}, {486, 97}} + + {0, 0} + + 67108864 + 0 + ADVANsCEne Database + + + 6 + System + textBackgroundColor + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{148, 14}, {226, 21}} + + YES + + 613417024 + 272634880 + + + File Name + + + + + NO + + + + 268 + {{376, 7}, {96, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{15, 17}, {128, 17}} + + YES + + 68157504 + 71304192 + R4 Cheat Database: + + + + + + NO + + + {{1, 1}, {484, 45}} + + + + {{17, 117}, {486, 61}} + + {0, 0} + + 67108864 + 0 + Cheat Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{92, 12}, {314, 18}} + + YES + + 67108864 + 0 + Do not show File Migration window on startup + + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{141, 33}, {217, 32}} + + YES + + 67108864 + 134217728 + Show File Migration Window + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {{1, 1}, {484, 75}} + + + + {{17, 182}, {486, 91}} + + {0, 0} + + 67108864 + 0 + User File Migration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 40}, {366, 18}} + + YES + + -2080374784 + 0 + Automatically execute emulation when loading a ROM + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 84}, {247, 18}} + + YES + + -2080374784 + 0 + Restore display windows on startup + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{273, 10}, {196, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + None + + 2147483647 + 1 + + + _popUpItemAction: + 10000 + + + YES + + OtherViews + + YES + + + + Last Loaded ROM + + 2147483647 + + + _popUpItemAction: + + + + + YES + No ROM chosen. + + 2147483647 + + + _popUpItemAction: + 1 + + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + -1 + + + + + Choose ROM... + + 2147483647 + + NSImage + NSActionTemplate + + + + _popUpItemAction: + 10001 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{15, 16}, {256, 17}} + + _NS:4068 + YES + + 68157504 + 272630784 + Automatically load this ROM on startup: + + _NS:4068 + + + + + NO + + + + 268 + {{16, 62}, {216, 18}} + + _NS:682 + YES + + -2080374784 + 0 + Only load ROM data as needed + + _NS:682 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {484, 109}} + + + + {{17, 277}, {486, 125}} + + {0, 0} + + 67108864 + 0 + General Behavior + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {520, 422} + NSView + + + + 268 + + YES + + + 268 + {{97, 463}, {96, 17}} + + YES + + 68157504 + 71304192 + Saved Profiles: + + + + + + NO + + + + 268 + {{195, 457}, {265, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + New... + + 2147483647 + 1 + + + + _popUpItemAction: + -1 + + + YES + + InputConfigurationMenu + + YES + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + YES + + + 1 + 1 + YES + YES + 2 + + NO + + + + 268 + {{462, 457}, {116, 26}} + + YES + + -2076180416 + 134219776 + + + -2038284288 + 129 + + LucidaGrande + 13 + 16 + + + + 400 + 75 + + + YES + Actions + + 1048576 + 2147483647 + 1 + + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + View + + 2147483647 + + + _popUpItemAction: + + + + + Apply + + 2147483647 + + + _popUpItemAction: + + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + YES + Rename + + 2147483647 + + + _popUpItemAction: + + + + + YES + Save + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + YES + Delete + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + YES + + + YES + 1 + YES + YES + 2 + + NO + + + + 274 + + YES + + + 2304 + + YES + + + 256 + {640, 394} + + YES + NO + YES + + + 256 + {640, 17} + + + + + + -2147483392 + {{584, 0}, {16, 17}} + + + + YES + + InputCommandTagColumn + 155 + 16 + 1000 + + 75497536 + 2048 + Set Command + + + 3 + MC4zMzMzMzI5ODU2AA + + + 6 + System + headerTextColor + + + + + 68157504 + 132096 + Command + + + -2034483200 + 100 + + + + 200 + 25 + + 3 + YES + + + + InputDeviceColumn + 175 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Input Device + + + 6 + System + headerColor + + + + + + 70254657 + 136192 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + InputSettingsSummaryColumn + 136 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Input Settings Summary + + + + + + 70254657 + 136192 + Text Cell + + + + + + 3 + YES + + + + InputSettingsColumn + 69 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + + + + + 605028416 + 134349824 + Settings + + + -2035007488 + 36 + + + 200 + 25 + + + + + RemoveInputColumn + 67 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + + + + + 68157504 + 134349824 + Remove + + + -2035007488 + 36 + + + 200 + 25 + + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + 1402994688 + + + InputPreferences + 0 + 15 + 0 + NO + 0 + 1 + NO + YES + + + {{1, 17}, {640, 394}} + + + + + 4 + + + + -2147483392 + {{584, 17}, {15, 102}} + + NO + + _doScroller: + 0.96411483253588515 + + + + -2147483392 + {{1, 420}, {624, 15}} + + NO + 1 + + _doScroller: + 0.99843505477308292 + + + + 2304 + + YES + + + {{1, 0}, {640, 17}} + + + + + 4 + + + + {{-1, 37}, {642, 412}} + + + 133682 + + + + + QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 + + + + {{197, 12}, {247, 17}} + + YES + + 605028416 + 171971584 + Click this area to map mouse input. + + LucidaGrande-Bold + 13 + 16 + + + + + + NO + + + {640, 495} + InputPrefsView + + + + 268 + + YES + + + 12 + {{13, 10}, {463, 401}} + + + YES + + 1 + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{72, 44}, {84, 17}} + + YES + + 68157504 + 71304192 + Display Size: + + + + + + NO + + + + 268 + {{44, 16}, {112, 17}} + + YES + + 68157504 + 71304192 + Display Rotation: + + + + + + NO + + + + 268 + {{158, 38}, {126, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + 1x + + 2147483647 + 1 + + + _popUpItemAction: + 100 + + + YES + + OtherViews + + YES + + + + 2x + + 2147483647 + + + _popUpItemAction: + 200 + + + + + 3x + + 2147483647 + + + _popUpItemAction: + 300 + + + + + 4x + + 2147483647 + + + _popUpItemAction: + 400 + + + + + 5x + + 2147483647 + + + _popUpItemAction: + 500 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + + YES + + {{289, 14}, {72, 22}} + + YES + + -1804599231 + 71304192 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximum + maximumIntegerDigits + minimum + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + + -∞ + + + #0.##š + +∞ + + + + #0.##š + #0.##š + + + + + + + + NaN + + YES + + + YES + + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + + YES + + + 6 + System + textColor + + + + NO + + + + 268 + {{63, 72}, {93, 17}} + + YES + + 68157504 + 71304192 + Display Mode: + + + + + + NO + + + + 268 + {{158, 66}, {126, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + Dual Screen + + 2147483647 + 1 + + + _popUpItemAction: + 2 + + + YES + + OtherViews + + YES + + + Main + + 2147483647 + + + _popUpItemAction: + + + + + Touch + + 2147483647 + + + _popUpItemAction: + 1 + + + + + YES + + + 2 + 1 + YES + YES + 2 + + NO + + + + 268 + {{158, 11}, {126, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + 0š + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + 90š + + 1048576 + 2147483647 + + + _popUpItemAction: + 90 + + + + + 180š + + 1048576 + 2147483647 + + + _popUpItemAction: + 180 + + + + + 270š + + 2147483647 + + + _popUpItemAction: + 270 + + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + Custom + + 2147483647 + + + _popUpItemAction: + -1 + + + + + + 1 + YES + YES + 2 + + NO + + + {{1, 1}, {429, 100}} + + + + {{6, 206}, {431, 116}} + + {0, 0} + + 67108864 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {100, 38}} + + YES + NO + 2 + 1 + + YES + + -2080374784 + 0 + Vertical + + + 1211912448 + 0 + + NSRadioButton + + + + 200 + 25 + + + 67108864 + 0 + Horizontal + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -4022,42 +4321,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - - {100, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {100, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -4082,100 +4378,101 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - {{1, 1}, {194, 62}} - - - - {{15, 53}, {196, 78}} - - {0, 0} - - 67239424 - 0 - Display Orientation - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {150, 38}} - - YES - 2 - 1 - - YES - - -2080244224 - 0 - Main Screen First - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Touch Screen First - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {194, 62}} + + + + {{15, 53}, {196, 78}} + + {0, 0} + + 67108864 + 0 + Display Orientation + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {150, 38}} + + YES + NO + 2 + 1 + + YES + + -2080374784 + 0 + Main Screen First + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + Touch Screen First + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -4252,39 +4549,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - {150, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {150, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -4309,1451 +4606,1480 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - {{1, 1}, {194, 62}} - - - - {{218, 53}, {196, 78}} - - {0, 0} - - 67239424 - 0 - Display Order - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{15, 18}, {126, 17}} - - YES - - 68288064 - 4195328 - Display Separation: - - - - - - - - - 268 - {{339, 16}, {72, 22}} - - YES - - -1804468671 - 71304192 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximum - maximumIntegerDigits - minimum - multiplier - negativeFormat - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - #0.#% - -∞ - - - #0.#% - +∞ - - - - #0.#% - #0.#% - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - - - - - 268 - {{144, 12}, {189, 26}} - - YES - - -2079981824 - 0 - - - 200 - 0.0 - 0.0 - 0.0 - 5 - 1 - NO - NO - - - - - 268 - {{305, 38}, {38, 11}} - - YES - - 68288064 - 138675200 - 200% - - LucidaGrande - 9 - 3614 - - - - - - - - - 268 - {{263, 38}, {38, 11}} - - YES - - 68288064 - 138675200 - 150% - - - - - - - - - 268 - {{220, 38}, {38, 11}} - - YES - - 68288064 - 138675200 - 100% - - - - - - - - - 268 - {{178, 38}, {38, 11}} - - YES - - 68288064 - 138675200 - 50% - - - - - - - - - 268 - {{137, 38}, {38, 11}} - - YES - - 68288064 - 138675200 - 0% - - - - - - - - {{1, 1}, {429, 141}} - - - - {{6, 45}, {431, 157}} - - {0, 0} - - 67239424 - 0 - Combo Display Layout - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {{10, 33}, {443, 355}} - - - Display Views - - - - - 2 - - - 256 - - YES - - - 268 - {{118, 278}, {151, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - None - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - LQ2x - - 2147483647 - - - _popUpItemAction: - 1 - - - - - LQ2xS - - 2147483647 - - - _popUpItemAction: - 2 - - - - - HQ2x - - 2147483647 - - - _popUpItemAction: - 3 - - - - - HQ2xS - - 2147483647 - - - _popUpItemAction: - 4 - - - - - HQ4x - - 2147483647 - - - _popUpItemAction: - 5 - - - - - HQ4xS - - 2147483647 - - - _popUpItemAction: - 18 - - - - - 2xSaI - - 2147483647 - - - _popUpItemAction: - 6 - - - - - Super 2xSaI - - 2147483647 - - - _popUpItemAction: - 7 - - - - - Super Eagle - - 2147483647 - - - _popUpItemAction: - 8 - - - - - Scanline - - 2147483647 - - - _popUpItemAction: - 9 - - - - - Bilinear - - 2147483647 - - - _popUpItemAction: - 10 - - - - - Nearest 2x - - 2147483647 - - - _popUpItemAction: - 11 - - - - - Nearest 1.5x - - 2147483647 - - - _popUpItemAction: - 12 - - - - - Nearest+ 1.5x - - 2147483647 - - - _popUpItemAction: - 13 - - - - - EPX - - 2147483647 - - - _popUpItemAction: - 14 - - - - - EPX+ - - 2147483647 - - - _popUpItemAction: - 15 - - - - - EPX 1.5x - - 2147483647 - - - _popUpItemAction: - 16 - - - - - EPX+ 1.5x - - 2147483647 - - - _popUpItemAction: - 17 - - - - YES - - - 1 - YES - YES - 2 - - - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{118, 9}, {262, 262}} - - YES - - 604110336 - 33554432 - - 0 - 3 - 2 - NO - - YES - - - - 268 - {{10, 251}, {106, 17}} - - YES - - 68288064 - 71304192 - Preview: - - - - - - - - - 268 - {{10, 284}, {106, 17}} - - YES - - 68288064 - 71304192 - Video Filter: - - - - - - - - - 268 - {{119, 328}, {196, 18}} - - YES - - -2080244224 - 0 - Use Bilinear Filtered Output - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{119, 308}, {154, 18}} - - YES - - 67239424 - 0 - Use Vertical Sync - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{10, 33}, {443, 355}} - - Video Output - - - - - 4 - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 82}, {239, 18}} - - YES - - -2080244224 - 0 - High-Precision Color Interpolation - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 62}, {154, 18}} - - YES - - -2080244224 - 0 - Enable Edge Marking - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 42}, {91, 18}} - - YES - - -2080244224 - 0 - Enable Fog - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{215, 14}, {60, 22}} - - YES - - -1804468671 - 71304192 - - - - YES - - YES - allowsFloats - attributedStringForZero - currencyDecimalSeparator - currencySymbol - decimalSeparator - exponentSymbol - formatterBehavior - generatesDecimalNumbers - groupingSeparator - internationalCurrencySymbol - lenient - locale - maximumFractionDigits - maximumIntegerDigits - minimumFractionDigits - minusSign - negativeFormat - negativeInfinitySymbol - negativePrefix - negativeSuffix - nilSymbol - notANumberSymbol - numberStyle - paddingCharacter - perMillSymbol - percentSymbol - plusSign - positiveFormat - positiveInfinitySymbol - positivePrefix - positiveSuffix - roundingIncrement - roundingMode - usesGroupingSeparator - - - YES - - - 0 - - - . - ÂĪ - . - E - - - , - ÂĪÂĪ - - - - - - - - # - -∞ - - - - - NaN - - * - ‰ - % - + - # - +∞ - - - - - - - - # - # - - - - - - - - NaN - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - - 268 - {{15, 16}, {195, 17}} - - YES - - 68288064 - 71304192 - Depth Comparison Threshold: - - - - - - - - - 268 - {{276, 11}, {19, 27}} - - YES - - 68025888 - 0 - - - 100 - 1 - YES - - - - {{1, 1}, {310, 108}} - - - - {{64, 110}, {312, 124}} - - {0, 0} - - 67239424 - 0 - SoftRasterizer Options - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{207, 318}, {169, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - SoftRasterizer - - 2147483647 - 1 - - - _popUpItemAction: - 1 - - - YES - - OtherViews - - YES - - - None - - 2147483647 - - - _popUpItemAction: - - - - - - OpenGL - - 2147483647 - - - _popUpItemAction: - 2 - - - - - - 1 - 1 - YES - YES - 2 - - - - - 268 - {{37, 324}, {168, 17}} - - YES - - 68288064 - 71304192 - 3D Rendering Engine: - - - - - - - - - 268 - {{195, 13}, {181, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Automatic - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Single-Threaded - - 2147483647 - - - _popUpItemAction: - 1 - - - - - 2 Threads - - 2147483647 - - - _popUpItemAction: - 2 - - - - - 4 Threads - - 2147483647 - - - _popUpItemAction: - 4 - - - - - 8 Threads - - 2147483647 - - - _popUpItemAction: - 8 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{37, 19}, {156, 17}} - - YES - - 68288064 - 71304192 - Rendering Threads: - - - - - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 32}, {129, 18}} - - YES - - -2080244224 - 0 - Enable Line Hack - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {124, 18}} - - YES - - -2080244224 - 0 - Enable Textures - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {310, 58}} - - - - {{64, 238}, {312, 74}} - - {0, 0} - - 67239424 - 0 - General Settings - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 256 - - YES - - - 268 - {{16, 12}, {223, 18}} - - YES - - 67239424 - 0 - Enable Multisample Antialiasing - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {310, 38}} - - - - {{64, 52}, {312, 54}} - - {0, 0} - - 67239424 - 0 - OpenGL Options - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {{10, 33}, {443, 355}} - - 3D Rendering - - - - - - - 0 - YES - YES - - YES - - - - - {489, 425} - - NSView - - - - 268 - - YES - - - 268 - {{163, 329}, {220, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - OS X Core Audio - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - 58325 - - - YES - - OtherViews - - YES - - - None - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1 - 1 - YES - YES - 2 - - - - - 268 - {{17, 335}, {144, 17}} - - - YES - - 68288064 - 272630784 - Audio Output Engine: - - - - - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 12}, {148, 18}} - - - YES - - -2080244224 - 0 - Advanced SPU Logic - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {364, 38}} - - - - - {{17, 209}, {366, 54}} - - - {0, 0} - - 67239424 - 0 - SPU Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 15}, {180, 46}} - - - YES - 2 - 1 - - YES - - 67239424 - 0 - Dual SPU Synch/Asynch - - - 1211912703 - 0 - - - - 200 - 25 - - - -2080244224 - 0 - Synchronous - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {194, 62}} + + + + {{218, 53}, {196, 78}} + + {0, 0} + + 67108864 + 0 + Display Order + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{15, 18}, {126, 17}} + + YES + + 68157504 + 4195328 + Display Separation: + + + + + + NO + + + + 268 + {{339, 16}, {72, 22}} + + YES + + -1804599231 + 71304192 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximum + maximumIntegerDigits + minimum + multiplier + negativeFormat + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + #0.#% + -∞ + + + #0.#% + +∞ + + + + #0.#% + #0.#% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + + YES + + + + NO + + + + 268 + {{144, 12}, {189, 26}} + + YES + + -2080112384 + 0 + + + 200 + 0.0 + 0.0 + 0.0 + 5 + 1 + NO + NO + + NO + + + + 268 + {{305, 38}, {38, 11}} + + YES + + 68157504 + 138675200 + 200% + + LucidaGrande + 9 + 3600 + + + + + + NO + + + + 268 + {{263, 38}, {38, 11}} + + YES + + 68157504 + 138675200 + 150% + + + + + + NO + + + + 268 + {{220, 38}, {38, 11}} + + YES + + 68157504 + 138675200 + 100% + + + + + + NO + + + + 268 + {{178, 38}, {38, 11}} + + YES + + 68157504 + 138675200 + 50% + + + + + + NO + + + + 268 + {{137, 38}, {38, 11}} + + YES + + 68157504 + 138675200 + 0% + + + + + + NO + + + {{1, 1}, {429, 141}} + + + + {{6, 45}, {431, 157}} + + {0, 0} + + 67108864 + 0 + Dual Screen Display Layout + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {443, 355}} + + + Display Views + + + + + 2 + + + 256 + + YES + + + 268 + {{119, 278}, {151, 26}} + + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + None + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + LQ2x + + 2147483647 + + + _popUpItemAction: + 1 + + + + + LQ2xS + + 2147483647 + + + _popUpItemAction: + 2 + + + + + HQ2x + + 2147483647 + + + _popUpItemAction: + 3 + + + + + HQ2xS + + 2147483647 + + + _popUpItemAction: + 4 + + + + + HQ4x + + 2147483647 + + + _popUpItemAction: + 5 + + + + + HQ4xS + + 2147483647 + + + _popUpItemAction: + 18 + + + + + 2xSaI + + 2147483647 + + + _popUpItemAction: + 6 + + + + + Super 2xSaI + + 2147483647 + + + _popUpItemAction: + 7 + + + + + Super Eagle + + 2147483647 + + + _popUpItemAction: + 8 + + + + + Scanline + + 2147483647 + + + _popUpItemAction: + 9 + + + + + Bilinear + + 2147483647 + + + _popUpItemAction: + 10 + + + + + Nearest 2x + + 2147483647 + + + _popUpItemAction: + 11 + + + + + Nearest 1.5x + + 2147483647 + + + _popUpItemAction: + 12 + + + + + Nearest+ 1.5x + + 2147483647 + + + _popUpItemAction: + 13 + + + + + EPX + + 2147483647 + + + _popUpItemAction: + 14 + + + + + EPX+ + + 2147483647 + + + _popUpItemAction: + 15 + + + + + EPX 1.5x + + 2147483647 + + + _popUpItemAction: + 16 + + + + + EPX+ 1.5x + + 2147483647 + + + _popUpItemAction: + 17 + + + + YES + + + 1 + YES + YES + 2 + + NO + + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{118, 9}, {262, 262}} + + YES + + 671088640 + 33554432 + 0 + 3 + 2 + NO + + NO + YES + + + + 268 + {{10, 251}, {106, 17}} + + + YES + + 68157504 + 71304192 + Preview: + + + + + + NO + + + + 268 + {{10, 284}, {106, 17}} + + + YES + + 68157504 + 71304192 + Video Filter: + + + + + + NO + + + + 268 + {{119, 328}, {196, 18}} + + + YES + + -2080374784 + 0 + Use Bilinear Filtered Output + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{119, 308}, {154, 18}} + + + YES + + 67108864 + 0 + Use Vertical Sync + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{10, 33}, {443, 355}} + + + Video Output + + + + + 4 + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 82}, {239, 18}} + + YES + + -2080374784 + 0 + High-Precision Color Interpolation + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 62}, {154, 18}} + + YES + + -2080374784 + 0 + Enable Edge Marking + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 42}, {91, 18}} + + YES + + -2080374784 + 0 + Enable Fog + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{215, 14}, {60, 22}} + + YES + + -1804599231 + 71304192 + + + + YES + + YES + allowsFloats + attributedStringForZero + currencyDecimalSeparator + currencySymbol + decimalSeparator + exponentSymbol + formatterBehavior + generatesDecimalNumbers + groupingSeparator + internationalCurrencySymbol + lenient + locale + maximumFractionDigits + maximumIntegerDigits + minimumFractionDigits + minusSign + negativeFormat + negativeInfinitySymbol + negativePrefix + negativeSuffix + nilSymbol + notANumberSymbol + numberStyle + paddingCharacter + perMillSymbol + percentSymbol + plusSign + positiveFormat + positiveInfinitySymbol + positivePrefix + positiveSuffix + roundingIncrement + roundingMode + usesGroupingSeparator + + + YES + + + 0 + + + . + ÂĪ + . + E + + + , + ÂĪÂĪ + + + + + + - + # + -∞ + - + + + NaN + + * + ‰ + % + + + # + +∞ + + + + + + + + # + # + + + + + + + + NaN + + + + 0 + 0 + YES + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + + 268 + {{15, 16}, {195, 17}} + + YES + + 68157504 + 71304192 + Depth Comparison Threshold: + + + + + + NO + + + + 268 + {{276, 11}, {19, 27}} + + YES + + 67895328 + 0 + + + 100 + 1 + YES + + NO + + + {{1, 1}, {310, 108}} + + + + {{64, 110}, {312, 124}} + + {0, 0} + + 67108864 + 0 + SoftRasterizer Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{207, 318}, {169, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + SoftRasterizer + + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + YES + + + None + + 2147483647 + + + _popUpItemAction: + + + + + + OpenGL + + 2147483647 + + + _popUpItemAction: + 2 + + + + + + 1 + 1 + YES + YES + 2 + + NO + + + + 268 + {{37, 324}, {168, 17}} + + YES + + 68157504 + 71304192 + 3D Rendering Engine: + + + + + + NO + + + + 268 + {{195, 13}, {181, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + Automatic + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Single-Threaded + + 2147483647 + + + _popUpItemAction: + 1 + + + + + 2 Threads + + 2147483647 + + + _popUpItemAction: + 2 + + + + + 4 Threads + + 2147483647 + + + _popUpItemAction: + 4 + + + + + 8 Threads + + 2147483647 + + + _popUpItemAction: + 8 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{37, 19}, {156, 17}} + + YES + + 68157504 + 71304192 + Rendering Threads: + + + + + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 32}, {129, 18}} + + YES + + -2080374784 + 0 + Enable Line Hack + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 12}, {124, 18}} + + YES + + -2080374784 + 0 + Enable Textures + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {310, 58}} + + + + {{64, 238}, {312, 74}} + + {0, 0} + + 67108864 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 12}, {223, 18}} + + YES + + 67108864 + 0 + Enable Multisample Antialiasing + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {310, 38}} + + + + {{64, 52}, {312, 54}} + + {0, 0} + + 67108864 + 0 + OpenGL Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {443, 355}} + + 3D Rendering + + + + + + + 0 + YES + YES + + YES + + + + + {489, 425} + NSView + + + + 268 + + YES + + + 268 + {{163, 329}, {220, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + OS X Core Audio + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 58325 + + + YES + + OtherViews + + YES + + + None + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + + 1 + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 335}, {144, 17}} + + YES + + 68157504 + 272630784 + Audio Output Engine: + + + + + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 12}, {148, 18}} + + YES + + -2080374784 + 0 + Advanced SPU Logic + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {364, 38}} + + + + {{17, 209}, {366, 54}} + + {0, 0} + + 67108864 + 0 + SPU Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 15}, {180, 46}} + + YES + NO + 2 + 1 + + YES + + 67108864 + 0 + Dual SPU Synch/Asynch + + + 1211912448 + 0 + + + + 200 + 25 + + + -2080374784 + 0 + Synchronous + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -5830,39 +6156,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - {180, 18} - {4, 10} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {180, 18} + {4, 10} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -5887,174 +6213,172 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 1 - - - - - - - - 268 - {{145, 10}, {204, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - "P" Method - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - 2 - - - YES - - OtherViews - - YES - - - "N" Method - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - "Z" Method - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - - - 2 - 1 - YES - YES - 2 - - - - {{1, 1}, {364, 71}} - - - - - {{17, 16}, {366, 87}} - - - {0, 0} - - 67239424 - 0 - SPU Sound Synchronization Method - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {328, 58}} - - - YES - 3 - 1 - - YES - - 67239424 - 0 - None - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Linear - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{145, 10}, {204, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + "P" Method + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 2 + + + YES + + OtherViews + + YES + + + "N" Method + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + "Z" Method + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + + + 2 + 1 + YES + YES + 2 + + NO + + + {{1, 1}, {364, 71}} + + + + {{17, 16}, {366, 87}} + + {0, 0} + + 67108864 + 0 + SPU Sound Synchronization Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {328, 58}} + + YES + NO + 3 + 1 + + YES + + 67108864 + 0 + None + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + Linear + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -6131,52 +6455,52 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - -2080244224 - 0 - Cosine - - - 2 - 1211912703 - 0 - - 400 - 75 - - - {328, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + -2080374784 + 0 + Cosine + + + 2 + 1211912448 + 0 + + 400 + 75 + + + {328, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -6201,378 +6525,375 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 2 - - - - - - - {{1, 1}, {364, 82}} - - - - - {{17, 107}, {366, 98}} - - - {0, 0} - - 67239424 - 0 - SPU Interpolation Method - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{44, 13}, {246, 21}} - - - YES - - 67501824 - 0 - - - 100 - 0.0 - 100 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{293, 17}, {56, 17}} - - - YES - - 68288064 - 71308288 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - lenient - locale - maximumFractionDigits - minimumFractionDigits - multiplier - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - - -∞ - - - +∞ - - - - #0.0% - #0.0% - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.1f%% - - - - - - - - 289 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{18, 14}, {20, 20}} - - - YES - - 130560 - 33554432 - - NSImage - Icon_VolumeFull_16x16 - - 0 - 2 - 0 - YES - - YES - - - {{1, 1}, {364, 44}} - - - - - {{17, 267}, {366, 60}} - - - {0, 0} - - 67239424 - 0 - General Settings - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {400, 373} - - - NSView - - - - 268 - - YES - - - 12 - {{13, 10}, {528, 349}} - - - YES - - 1 - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 32}, {197, 18}} - - YES - - -2080244224 - 0 - Advanced Bus-Level Timing - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {217, 18}} - - YES - - 67239424 - 0 - Rigorous 3D Rendering Timing - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {494, 58}} - - - - {{6, 229}, {496, 74}} - - {0, 0} - - 67239424 - 0 - Emulation Timing - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 256 - - YES - - - 268 - {{18, 14}, {165, 38}} - - YES - 2 - 1 - - YES - - -2080244224 - 0 - Interpreter - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Dynamic Recompiler - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 2 + + + + + + + {{1, 1}, {364, 82}} + + + + {{17, 107}, {366, 98}} + + {0, 0} + + 67108864 + 0 + SPU Interpolation Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{44, 13}, {246, 21}} + + YES + + 67371264 + 0 + + + 100 + 0.0 + 100 + 0.0 + 0 + 1 + NO + NO + + NO + + + + 268 + {{293, 17}, {56, 17}} + + YES + + 68157504 + 71308288 + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + formatterBehavior + lenient + locale + maximumFractionDigits + minimumFractionDigits + multiplier + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + + -∞ + + + +∞ + + + + #0.0% + #0.0% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + %1.1f%% + + + + + NO + + + + 289 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{18, 14}, {20, 20}} + + YES + + 134217728 + 33554432 + + NSImage + Icon_VolumeFull_16x16 + + 0 + 2 + 0 + YES + + NO + YES + + + {{1, 1}, {364, 44}} + + + + {{17, 267}, {366, 60}} + + {0, 0} + + 67108864 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {400, 373} + NSView + + + + 268 + + YES + + + 12 + {{13, 10}, {528, 349}} + + + YES + + 1 + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 32}, {197, 18}} + + YES + + -2080374784 + 0 + Advanced Bus-Level Timing + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 12}, {217, 18}} + + YES + + 67108864 + 0 + Rigorous 3D Rendering Timing + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {494, 58}} + + + + {{6, 229}, {496, 74}} + + {0, 0} + + 67108864 + 0 + Emulation Timing + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {165, 38}} + + YES + NO + 2 + 1 + + YES + + -2080374784 + 0 + Interpreter + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + Dynamic Recompiler + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -6649,39 +6970,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - {165, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {165, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -6706,1220 +7027,1252 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 268 - {{243, 15}, {72, 17}} - - YES - - 68288064 - 71304192 - Block Size: - - - - - - - - - 268 - {{320, 13}, {50, 22}} - - YES - - -1804468671 - 71304192 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximum - maximumFractionDigits - minimum - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - -∞ - - - +∞ - - - - #0 - #0 - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - - 268 - {{371, 10}, {19, 27}} - - YES - - 68025888 - 0 - - - 12 - 1 - 100 - 1 - YES - - - - {{1, 1}, {494, 62}} - - - - {{6, 147}, {496, 78}} - - {0, 0} - - 67239424 - 0 - CPU Emulation Engine - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 32}, {145, 18}} - - YES - - 67239424 - 0 - Use Debug Console - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {118, 18}} - - YES - - 67239424 - 0 - Emulate Ensata - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {494, 58}} - - - - {{6, 69}, {496, 74}} - - {0, 0} - - 67239424 - 0 - Debugger Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 12}, {462, 18}} - - YES - - -2080244224 - 0 - Use ADVANsCEne Database when auto-detecting the ROM save type - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {494, 38}} - - - - {{6, 11}, {496, 54}} - - {0, 0} - - 67239424 - 0 - ROM Save Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {{10, 33}, {508, 303}} - - - General Settings - - - - - 2 - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 117}, {182, 18}} - - YES - - 67239424 - 0 - Use External BIOS Images - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{140, 86}, {240, 22}} - - YES - - -2070806976 - 272634880 - - - Set BIOS Image... - - YES - - - - - - - 268 - {{15, 89}, {120, 17}} - - YES - - 68288064 - 272630784 - ARM9 BIOS Image: - - - - - - - - - 268 - {{382, 80}, {100, 32}} - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{140, 59}, {240, 22}} - - YES - - -2070806976 - 272634880 - - - Set BIOS Image... - - YES - - - - - - - 268 - {{15, 62}, {120, 17}} - - YES - - 68288064 - 272630784 - ARM7 BIOS Image: - - - - - - - - - 268 - {{382, 53}, {100, 32}} - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{16, 32}, {230, 18}} - - YES - - -1543373312 - 0 - Emulate BIOS Software Interrupts - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {236, 18}} - - YES - - 604110336 - 0 - Patch DelayLoop SWI (speed hack) - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {494, 143}} - - - - {{6, 144}, {496, 159}} - - {0, 0} - - 67239424 - 0 - BIOS Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 61}, {205, 18}} - - YES - - 604110336 - 0 - Use External Firmware Image - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{140, 33}, {240, 22}} - - YES - - -2070806976 - 272634880 - - - Set Firmware Image... - - YES - - - - - - - 268 - {{15, 37}, {120, 17}} - - YES - - 68288064 - 272630784 - Firmware Image: - - - - - - - - - 268 - {{382, 27}, {100, 32}} - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{16, 12}, {149, 18}} - - YES - - 604110336 - 0 - Boot From Firmware - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{12, 81}, {229, 32}} - - YES - - 67239424 - 134217728 - Configure Internal Firmware... - - - -2038284033 - 129 - - - 200 - 25 - - - - {{1, 1}, {494, 119}} - - - - {{6, 5}, {496, 135}} - - {0, 0} - - 67239424 - 0 - Firmware Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {{10, 33}, {508, 303}} - - BIOS and Firmware - - - - - - - 0 - YES - YES - - YES - - - - - {554, 373} - - NSView - - - PreferencesWindowDelegate - - - 9 - 2 - {{235, 426}, {620, 442}} - 1685586944 - Input Profile - NSWindow - - {1.79769e+308, 1.79769e+308} - {620, 180} - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 256 - {620, 304} - - - YES - - - 256 - {620, 17} - - - - - - - -2147483392 - {{584, 0}, {16, 17}} - - - - - YES - - InputCommandIconColumn - 35 - 16 - 3.4028234663852886e+38 - - 75628096 - 2048 - - - - - - - 67239424 - 33685504 - - 0 - 3 - 0 - NO - - - - - InputCommandTagColumn - 181 - 16 - 1000 - - 75628096 - 2048 - Command - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 67239488 - 272761856 - Text - - - - - - 3 - YES - - - - InputDeviceColumn - 222 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Input Device - - - - - - 69336641 - 137216 - Text Cell - - - - - - 3 - YES - - - - InputSettingsSummaryColumn - 151 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Input Settings Summary - - - - - - 69336641 - 137216 - Text Cell - - - - - - 3 - YES - - - - 3 - 2 - - - 17 - 1386217472 - - - 0 - 15 - 0 - NO - 0 - NO - - - {{1, 17}, {620, 304}} - - - - - - 4 - - - - -2147483392 - {{584, 17}, {15, 102}} - - - - _doScroller: - 0.95844875346260383 - - - - -2147483392 - {{1, 325}, {599, 15}} - - - 1 - - _doScroller: - 0.99667221297836939 - - - - 2304 - - YES - - - {{1, 0}, {620, 17}} - - - - - - 4 - - - - {{-1, 60}, {622, 322}} - - - - 562 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 268 - {{19, 419}, {72, 14}} - - - YES - - 68288064 - 272761856 - Profile Name - - - - - - - - - 289 - {{510, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Close - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 266 - {{20, 396}, {392, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 292 - {{14, 12}, {236, 32}} - - - YES - - 67239424 - 134217728 - Apply to Current Configuration - - - -2038284033 - 129 - - - 200 - 25 - - - - - 265 - {{510, 390}, {96, 32}} - - - YES - - 67239424 - 134217728 - Next - - - -2038284033 - 129 - - - 200 - 25 - - - - - 265 - {{414, 390}, {96, 32}} - - - YES - - 67239424 - 134217728 - Previous - - - -2038284033 - 129 - - - 200 - 25 - - - - - 292 - {{250, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Delete - - - -2038284033 - 129 - - - 200 - 25 - - - - {620, 442} - - - - {{0, 0}, {1920, 1178}} - {620, 202} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 444}, {452, 115}} - 1685586944 - Input Profile Rename - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 266 - {{20, 48}, {412, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{342, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{17, 78}, {215, 17}} - - - YES - - 68288064 - 272630784 - Enter a new name for this profile: - - - - - - - - {452, 115} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 292}, {620, 267}} - 1685586944 - InputSettingsMicrophone - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {190, 126}} - - YES - 4 - 1 - - YES - - -2080244224 - 0 - Internal Noise Samples - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - White Noise - - - 3 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + + 268 + {{243, 15}, {72, 17}} + + YES + + 68157504 + 71304192 + Block Size: + + + + + + NO + + + + 268 + {{320, 13}, {50, 22}} + + YES + + -1804599231 + 71304192 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximum + maximumFractionDigits + minimum + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + -∞ + + + +∞ + + + + #0 + #0 + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + + 268 + {{371, 10}, {19, 27}} + + YES + + 67895328 + 0 + + + 12 + 1 + 100 + 1 + YES + + NO + + + {{1, 1}, {494, 62}} + + + + {{6, 147}, {496, 78}} + + {0, 0} + + 67108864 + 0 + CPU Emulation Engine + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 32}, {145, 18}} + + YES + + 67108864 + 0 + Use Debug Console + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 12}, {118, 18}} + + YES + + 67108864 + 0 + Emulate Ensata + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {494, 58}} + + + + {{6, 69}, {496, 74}} + + {0, 0} + + 67108864 + 0 + Debugger Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 12}, {462, 18}} + + YES + + -2080374784 + 0 + Use ADVANsCEne Database when auto-detecting the ROM save type + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {494, 38}} + + + + {{6, 11}, {496, 54}} + + {0, 0} + + 67108864 + 0 + ROM Save Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {508, 303}} + + + General Settings + + + + + 2 + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 117}, {182, 18}} + + YES + + 67108864 + 0 + Use External BIOS Images + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{140, 86}, {240, 22}} + + YES + + -2070937536 + 272634880 + + + Set BIOS Image... + + YES + + + + NO + + + + 268 + {{15, 89}, {120, 17}} + + YES + + 68157504 + 272630784 + ARM9 BIOS Image: + + + + + + NO + + + + 268 + {{382, 80}, {100, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{140, 59}, {240, 22}} + + YES + + -2070937536 + 272634880 + + + Set BIOS Image... + + YES + + + + NO + + + + 268 + {{15, 62}, {120, 17}} + + YES + + 68157504 + 272630784 + ARM7 BIOS Image: + + + + + + NO + + + + 268 + {{382, 53}, {100, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{16, 32}, {230, 18}} + + YES + + -1543503872 + 0 + Emulate BIOS Software Interrupts + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 12}, {236, 18}} + + YES + + 603979776 + 0 + Patch DelayLoop SWI (speed hack) + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {494, 143}} + + + + {{6, 144}, {496, 159}} + + {0, 0} + + 67108864 + 0 + BIOS Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 61}, {205, 18}} + + YES + + 603979776 + 0 + Use External Firmware Image + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{140, 33}, {240, 22}} + + YES + + -2070937536 + 272634880 + + + Set Firmware Image... + + YES + + + + NO + + + + 268 + {{15, 37}, {120, 17}} + + YES + + 68157504 + 272630784 + Firmware Image: + + + + + + NO + + + + 268 + {{382, 27}, {100, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{16, 12}, {149, 18}} + + YES + + 603979776 + 0 + Boot From Firmware + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{12, 81}, {229, 32}} + + YES + + 67108864 + 134217728 + Configure Internal Firmware... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {{1, 1}, {494, 119}} + + + + {{6, 5}, {496, 135}} + + {0, 0} + + 67108864 + 0 + Firmware Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {508, 303}} + + BIOS and Firmware + + + + + + + 0 + YES + YES + + YES + + + + + {554, 373} + NSView + + + PreferencesWindowDelegate + + + 9 + 2 + {{235, 426}, {620, 442}} + 1685586944 + Input Profile + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {620, 180} + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 256 + {620, 304} + + + YES + NO + YES + + + 256 + {620, 17} + + + + + + + -2147483392 + {{584, 0}, {16, 17}} + + + + + YES + + InputCommandIconColumn + 35 + 16 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + + + + + 135266368 + 33686528 + 0 + 3 + 0 + NO + + + + + InputCommandTagColumn + 181 + 16 + 1000 + + 75497536 + 2048 + Command + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 68157504 + 272761856 + Text + + + + + + 3 + YES + + + + InputDeviceColumn + 222 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Input Device + + + + + + 70254657 + 136192 + Text Cell + + + + + + 3 + YES + + + + InputSettingsSummaryColumn + 151 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Input Settings Summary + + + + + + 70254657 + 136192 + Text Cell + + + + + + 3 + YES + + + + 3 + 2 + + + 17 + 1386217472 + + + 0 + 15 + 0 + NO + 0 + 1 + NO + + + {{1, 17}, {620, 304}} + + + + + 4 + + + + -2147483392 + {{584, 17}, {15, 102}} + + + NO + + _doScroller: + 0.95844875346260383 + + + + -2147483392 + {{1, 325}, {599, 15}} + + + NO + 1 + + _doScroller: + 0.99667221297836939 + + + + 2304 + + YES + + + {{1, 0}, {620, 17}} + + + + + 4 + + + + {{-1, 60}, {622, 322}} + + + 133682 + + + + + QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 + + + + 268 + {{19, 419}, {72, 14}} + + + YES + + 68157504 + 272761856 + Profile Name + + + + + + NO + + + + 289 + {{510, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Close + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 266 + {{20, 396}, {392, 22}} + + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 292 + {{14, 12}, {236, 32}} + + + YES + + 67108864 + 134217728 + Apply to Current Configuration + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 265 + {{510, 390}, {96, 32}} + + + YES + + 67108864 + 134217728 + Next + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 265 + {{414, 390}, {96, 32}} + + + YES + + 67108864 + 134217728 + Previous + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 292 + {{250, 12}, {96, 32}} + + + YES + + 67108864 + 134217728 + Delete + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {620, 442} + + + {{0, 0}, {1920, 1178}} + {620, 202} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 444}, {452, 115}} + 1685586944 + Input Profile Rename + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 266 + {{20, 48}, {412, 22}} + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 268 + {{342, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{17, 78}, {215, 17}} + + YES + + 68157504 + 272630784 + Enter a new name for this profile: + + + + + + NO + + + {452, 115} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 292}, {620, 267}} + 1685586944 + InputSettingsMicrophone + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {190, 126}} + + YES + NO + 4 + 1 + + YES + + -2080374784 + 0 + Internal Noise Samples + + + 1 + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + White Noise + + + 3 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -7996,65 +8349,65 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 67239424 - 0 - Sine Wave - - - 5 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Audio File - - - 2 - 1211912703 - 0 - - 400 - 75 - - - {190, 30} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 67108864 + 0 + Sine Wave + + + 5 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Audio File + + + 2 + 1211912448 + 0 + + 400 + 75 + + + {190, 30} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -8079,1515 +8432,1523 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 268 - {{130, 18}, {224, 21}} - - YES - - 612499008 - 272635904 - - - File Name - - YES - - - - - - - 268 - {{476, 11}, {96, 32}} - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{128, 47}, {348, 26}} - - YES - - -2079981824 - 0 - - - 5000 - 100 - 500 - 0.0 - 11 - 1 - NO - NO - - - - - 268 - {{479, 56}, {90, 17}} - - YES - - 68288064 - 71308288 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - generatesDecimalNumbers - locale - maximumFractionDigits - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - -∞ - - - #0.0 Hz - +∞ - - - - #0.0 Hz - #0.0 Hz - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.1f Hz - - - - - - - - 268 - {{356, 11}, {124, 32}} - - YES - - 67239424 - 134217728 - Choose None - - - -2038284033 - 129 - - - 200 - 25 - - - - {{1, 1}, {584, 150}} - - - - {{17, 56}, {586, 166}} - - {0, 0} - - 67239424 - 0 - Audio Sample Generators - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{510, 12}, {96, 32}} - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{414, 12}, {96, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 230}, {566, 17}} - - YES - - 70385217 - 272634880 - - - Device Info Summary - - - - - - - {620, 267} - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 296}, {350, 263}} - 1685586944 - InputSettingsTouch - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 256 - - YES - - - 268 - {{97, 44}, {17, 17}} - - - YES - - 68288064 - 71304192 - X: - - - - - - - - - 268 - {{119, 42}, {96, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximum - maximumFractionDigits - maximumIntegerDigits - minimum - minimumIntegerDigits - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - - -∞ - - - +∞ - - - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - - 268 - {{97, 16}, {17, 17}} - - - YES - - 68288064 - 71304192 - Y: - - - - - - - - - 268 - {{119, 14}, {96, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximum - maximumFractionDigits - maximumIntegerDigits - minimum - minimumIntegerDigits - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - - -∞ - - - +∞ - - - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - {{1, 1}, {314, 74}} - - - - - {{17, 56}, {316, 90}} - - - {0, 0} - - 67239424 - 0 - User Defined Coordinates - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{240, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{18, 202}, {314, 18}} - - - YES - - 67239424 - 0 - Use user defined coordinates - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{17, 154}, {316, 42}} - - - YES - - 67239424 - 272760832 - If this setting is disabled, then the Touch command will read the coordinates from the input device instead. - - - - - - - - - 268 - {{144, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 226}, {316, 17}} - - - YES - - 70385217 - 272634880 - - - Device Info Summary - - - - - - - {350, 263} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 434}, {350, 125}} - 1685586944 - InputSettingsLoadStateSlot - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{121, 56}, {212, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Slot 1 - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Slot 2 - - 2147483647 - - - _popUpItemAction: - 1 - - - - - Slot 3 - - 2147483647 - - - _popUpItemAction: - 2 - - - - - Slot 4 - - 2147483647 - - - _popUpItemAction: - 3 - - - - - Slot 5 - - 2147483647 - - - _popUpItemAction: - 4 - - - - - Slot 6 - - 2147483647 - - - _popUpItemAction: - 5 - - - - - Slot 7 - - 2147483647 - - - _popUpItemAction: - 6 - - - - - Slot 8 - - 2147483647 - - - _popUpItemAction: - 7 - - - - - Slot 9 - - 2147483647 - - - _popUpItemAction: - 8 - - - - - Slot 10 - - 2147483647 - - - _popUpItemAction: - 9 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{17, 62}, {102, 17}} - - - YES - - 68288064 - 272630784 - Load State Slot: - - - - - - - - - 268 - {{240, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{144, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 88}, {316, 17}} - - - YES - - 70385217 - 272634880 - - - Device Info Summary - - - - - - - {350, 125} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 459}, {350, 125}} - 1685586944 - InputSettingsSaveStateSlot - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{119, 56}, {214, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Slot 1 - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Slot 2 - - 2147483647 - - - _popUpItemAction: - 1 - - - - - Slot 3 - - 2147483647 - - - _popUpItemAction: - 2 - - - - - Slot 4 - - 2147483647 - - - _popUpItemAction: - 3 - - - - - Slot 5 - - 2147483647 - - - _popUpItemAction: - 4 - - - - - Slot 6 - - 2147483647 - - - _popUpItemAction: - 5 - - - - - Slot 7 - - 2147483647 - - - _popUpItemAction: - 6 - - - - - Slot 8 - - 2147483647 - - - _popUpItemAction: - 7 - - - - - Slot 9 - - 2147483647 - - - _popUpItemAction: - 8 - - - - - Slot 10 - - 2147483647 - - - _popUpItemAction: - 9 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{17, 62}, {100, 17}} - - - YES - - 68288064 - 272630784 - Save State Slot: - - - - - - - - - 268 - {{240, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{144, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 88}, {316, 17}} - - - YES - - 70385217 - 272634880 - - - Device Info Summary - - - - - - - {350, 125} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 399}, {467, 160}} - 1685586944 - InputSettingsSpeedLimit - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{17, 123}, {316, 17}} - - - YES - - 70385217 - 272634880 - - - Device Info Summary - - - - - - - - 268 - {{30, 71}, {411, 26}} - - - YES - - -2079981824 - 0 - - - 10 - 0.0 - 1 - 0.0 - 11 - 1 - NO - NO - - - - - 268 - {{20, 98}, {38, 17}} - - - YES - - 68288064 - 138413056 - 0x - - - - - - - - - 268 - {{412, 98}, {38, 17}} - - - YES - - 68288064 - 138413056 - 10x - - - - - - - - - 268 - {{98, 98}, {38, 17}} - - - YES - - 68288064 - 138413056 - 2x - - - - - - - - - 268 - {{177, 98}, {38, 17}} - - - YES - - 68288064 - 138413056 - 4x - - - - - - - - - 268 - {{255, 98}, {38, 17}} - - - YES - - 68288064 - 138413056 - 6x - - - - - - - - - 268 - {{335, 98}, {38, 17}} - - - YES - - 68288064 - 138413056 - 8x - - - - - - - - - 268 - {{14, 12}, {169, 32}} - - - 100 - YES - - 67239424 - 134217728 - Set to Normal Speed - - - -2038021889 - 129 - - - - 400 - 75 - - - - - 268 - {{112, 48}, {156, 17}} - - - YES - - 68288064 - 71304192 - Speed limit set to: - - - - - - - - - 268 - {{270, 48}, {81, 17}} - - - YES - - 68288064 - 4195328 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - lenient - locale - maximumFractionDigits - minimumFractionDigits - negativeFormat - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - #0.00x - -∞ - - - #0.00x - +∞ - - - - #0.00x - #0.00x - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.2fx - - - - - - - - 268 - {{357, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{261, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - {467, 160} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 276}, {516, 283}} - 1685586944 - InputSettingsGPUState - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 256 - - YES - - - 268 - {{18, 14}, {444, 142}} - - - YES - 6 - 2 - - YES - - -2080244224 - 0 - Main GPU (All Layers) - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Sub GPU (All Layers) - - - 6 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Main BG0 - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + + 268 + {{130, 18}, {224, 21}} + + YES + + 612368448 + 272635904 + + + File Name + + YES + + + + NO + + + + 268 + {{476, 11}, {96, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{128, 47}, {348, 26}} + + YES + + -2080112384 + 0 + + + 5000 + 100 + 500 + 0.0 + 11 + 1 + NO + NO + + NO + + + + 268 + {{479, 56}, {90, 17}} + + YES + + 68157504 + 71308288 + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + formatterBehavior + generatesDecimalNumbers + locale + maximumFractionDigits + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + -∞ + + + #0.0 Hz + +∞ + + + + #0.0 Hz + #0.0 Hz + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + %1.1f Hz + + + + + NO + + + + 268 + {{356, 11}, {124, 32}} + + YES + + 67108864 + 134217728 + Choose None + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {{1, 1}, {584, 150}} + + + + {{17, 56}, {586, 166}} + + {0, 0} + + 67108864 + 0 + Audio Sample Generators + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{510, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{414, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 230}, {566, 17}} + + YES + + 70254657 + 272634880 + + + Device Info Summary + + + + + NO + + + {620, 267} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 296}, {350, 263}} + 1685586944 + InputSettingsTouch + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{97, 44}, {17, 17}} + + YES + + 68157504 + 71304192 + X: + + + + + + NO + + + + 268 + {{119, 42}, {96, 22}} + + YES + + -1804599231 + -1874852864 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximum + maximumFractionDigits + maximumIntegerDigits + minimum + minimumIntegerDigits + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + + -∞ + + + +∞ + + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + + 268 + {{97, 16}, {17, 17}} + + YES + + 68157504 + 71304192 + Y: + + + + + + NO + + + + 268 + {{119, 14}, {96, 22}} + + YES + + -1804599231 + -1874852864 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximum + maximumFractionDigits + maximumIntegerDigits + minimum + minimumIntegerDigits + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + + -∞ + + + +∞ + + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + {{1, 1}, {314, 74}} + + + + {{17, 56}, {316, 90}} + + {0, 0} + + 67108864 + 0 + User Defined Coordinates + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{240, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{18, 202}, {314, 18}} + + YES + + 67108864 + 0 + Use user defined coordinates + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{17, 154}, {316, 42}} + + YES + + 67108864 + 272760832 + If this setting is disabled, then the Touch command will read the coordinates from the input device instead. + + + + + + NO + + + + 268 + {{144, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 226}, {316, 17}} + + YES + + 70254657 + 272634880 + + + Device Info Summary + + + + + NO + + + {350, 263} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 434}, {350, 125}} + 1685586944 + InputSettingsLoadStateSlot + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{121, 56}, {212, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + Slot 1 + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Slot 2 + + 2147483647 + + + _popUpItemAction: + 1 + + + + + Slot 3 + + 2147483647 + + + _popUpItemAction: + 2 + + + + + Slot 4 + + 2147483647 + + + _popUpItemAction: + 3 + + + + + Slot 5 + + 2147483647 + + + _popUpItemAction: + 4 + + + + + Slot 6 + + 2147483647 + + + _popUpItemAction: + 5 + + + + + Slot 7 + + 2147483647 + + + _popUpItemAction: + 6 + + + + + Slot 8 + + 2147483647 + + + _popUpItemAction: + 7 + + + + + Slot 9 + + 2147483647 + + + _popUpItemAction: + 8 + + + + + Slot 10 + + 2147483647 + + + _popUpItemAction: + 9 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 62}, {102, 17}} + + YES + + 68157504 + 272630784 + Load State Slot: + + + + + + NO + + + + 268 + {{240, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{144, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 88}, {316, 17}} + + YES + + 70254657 + 272634880 + + + Device Info Summary + + + + + NO + + + {350, 125} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 459}, {350, 125}} + 1685586944 + InputSettingsSaveStateSlot + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{119, 56}, {214, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + Slot 1 + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Slot 2 + + 2147483647 + + + _popUpItemAction: + 1 + + + + + Slot 3 + + 2147483647 + + + _popUpItemAction: + 2 + + + + + Slot 4 + + 2147483647 + + + _popUpItemAction: + 3 + + + + + Slot 5 + + 2147483647 + + + _popUpItemAction: + 4 + + + + + Slot 6 + + 2147483647 + + + _popUpItemAction: + 5 + + + + + Slot 7 + + 2147483647 + + + _popUpItemAction: + 6 + + + + + Slot 8 + + 2147483647 + + + _popUpItemAction: + 7 + + + + + Slot 9 + + 2147483647 + + + _popUpItemAction: + 8 + + + + + Slot 10 + + 2147483647 + + + _popUpItemAction: + 9 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 62}, {100, 17}} + + YES + + 68157504 + 272630784 + Save State Slot: + + + + + + NO + + + + 268 + {{240, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{144, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 88}, {316, 17}} + + YES + + 70254657 + 272634880 + + + Device Info Summary + + + + + NO + + + {350, 125} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 399}, {467, 160}} + 1685586944 + InputSettingsSpeedLimit + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{17, 123}, {316, 17}} + + YES + + 70254657 + 272634880 + + + Device Info Summary + + + + + NO + + + + 268 + {{30, 71}, {411, 26}} + + YES + + -2080112384 + 0 + + + 10 + 0.0 + 1 + 0.0 + 11 + 1 + NO + NO + + NO + + + + 268 + {{20, 98}, {38, 17}} + + YES + + 68157504 + 138413056 + 0x + + + + + + NO + + + + 268 + {{412, 98}, {38, 17}} + + YES + + 68157504 + 138413056 + 10x + + + + + + NO + + + + 268 + {{98, 98}, {38, 17}} + + YES + + 68157504 + 138413056 + 2x + + + + + + NO + + + + 268 + {{177, 98}, {38, 17}} + + YES + + 68157504 + 138413056 + 4x + + + + + + NO + + + + 268 + {{255, 98}, {38, 17}} + + YES + + 68157504 + 138413056 + 6x + + + + + + NO + + + + 268 + {{335, 98}, {38, 17}} + + YES + + 68157504 + 138413056 + 8x + + + + + + NO + + + + 268 + {{14, 12}, {169, 32}} + + 100 + YES + + 67108864 + 134217728 + Set to Normal Speed + + + -2038022144 + 129 + + + + 400 + 75 + + NO + + + + 268 + {{112, 48}, {156, 17}} + + YES + + 68157504 + 71304192 + Speed limit set to: + + + + + + NO + + + + 268 + {{270, 48}, {81, 17}} + + YES + + 68157504 + 4195328 + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + formatterBehavior + lenient + locale + maximumFractionDigits + minimumFractionDigits + negativeFormat + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + #0.00x + -∞ + + + #0.00x + +∞ + + + + #0.00x + #0.00x + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + %1.2fx + + + + + NO + + + + 268 + {{357, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{261, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + {467, 160} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 276}, {516, 283}} + 1685586944 + InputSettingsGPUState + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {444, 142}} + + YES + NO + 6 + 2 + + YES + + -2080374784 + 0 + Main GPU (All Layers) + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + Sub GPU (All Layers) + + + 6 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Main BG0 + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -9664,156 +10025,156 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 67239424 - 0 - Sub BG0 - - - 7 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Main BG1 - - - 2 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Sub BG1 - - - 8 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Main BG2 - - - 3 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Sub BG2 - - - 9 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Main BG3 - - - 4 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Sub BG3 - - - 10 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Main OBJ - - - 5 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - Sub OBJ - - - 11 - 1211912703 - 0 - - 400 - 75 - - - {220, 22} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 67108864 + 0 + Sub BG0 + + + 7 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Main BG1 + + + 2 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Sub BG1 + + + 8 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Main BG2 + + + 3 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Sub BG2 + + + 9 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Main BG3 + + + 4 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Sub BG3 + + + 10 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Main OBJ + + + 5 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Sub OBJ + + + 11 + 1211912448 + 0 + + 400 + 75 + + + {220, 22} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -9838,3378 +10199,3353 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - {{1, 1}, {480, 166}} - - - - - {{17, 56}, {482, 182}} - - - {0, 0} - - 67239424 - 0 - GPU Layers - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{406, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{310, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 246}, {482, 17}} - - - YES - - 70385217 - 272634880 - - - Device Info Summary - - - - - - - {516, 283} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{235, 244}, {305, 315}} - 1685585920 - Internal Firmware Preferences - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{119, 276}, {166, 22}} - - - YES - - -1804468671 - 272630784 - - - Enter a nickname... - - YES - - - - - - - 268 - {{119, 222}, {166, 44}} - - - YES - - -1805517311 - 272629760 - - - Enter a message... - - YES - - - - - - - 268 - {{17, 278}, {97, 17}} - - - YES - - 68288064 - 71304192 - Nickname: - - - - - - - - - 268 - {{17, 246}, {97, 17}} - - - YES - - 68288064 - 71304192 - Message: - - - - - - - - - 268 - {{12, 196}, {102, 17}} - - - YES - - 68288064 - 71304192 - Favorite Color: - - - - - - - - - 268 - {{17, 154}, {97, 17}} - - - YES - - 68288064 - 71304192 - Birthday: - - - - - - - - - 268 - {{17, 126}, {97, 17}} - - - YES - - 68288064 - 71304192 - Language: - - - - - - - - - 268 - {{119, 152}, {169, 27}} - - - YES - - 71433728 - 0 - - 330548400 - - - - 0.0 - 224 - - - - - - - 268 - {{116, 120}, {172, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - English - - 2147483647 - 1 - - - _popUpItemAction: - 1 - - - YES - - OtherViews - - YES - - - Japanese - - 2147483647 - - - _popUpItemAction: - - - - - - French - - 2147483647 - - - _popUpItemAction: - 2 - - - - - German - - 2147483647 - - - _popUpItemAction: - 3 - - - - - Italian - - 2147483647 - - - _popUpItemAction: - 4 - - - - - Spanish - - 2147483647 - - - _popUpItemAction: - 5 - - - - - - 1 - 1 - YES - YES - 2 - - - - - 268 - {{116, 190}, {172, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Gray - - 2147483647 - 1 - - NSImage - ColorSwatch_Gray_16x16 - - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Brown - - 2147483647 - - NSImage - ColorSwatch_Brown_16x16 - - - - _popUpItemAction: - 1 - - - - - Red - - 2147483647 - - NSImage - ColorSwatch_Red_16x16 - - - - _popUpItemAction: - 2 - - - - - Pink - - 2147483647 - - NSImage - ColorSwatch_Pink_16x16 - - - - _popUpItemAction: - 3 - - - - - Orange - - 2147483647 - - NSImage - ColorSwatch_Orange_16x16 - - - - _popUpItemAction: - 4 - - - - - Yellow - - 2147483647 - - NSImage - ColorSwatch_Yellow_16x16 - - - - _popUpItemAction: - 5 - - - - - Lime Green - - 2147483647 - - NSImage - ColorSwatch_LimeGreen_16x16 - - - - _popUpItemAction: - 6 - - - - - Green - - 2147483647 - - NSImage - ColorSwatch_Green_16x16 - - - - _popUpItemAction: - 7 - - - - - Dark Green - - 2147483647 - - NSImage - ColorSwatch_DarkGreen_16x16 - - - - _popUpItemAction: - 8 - - - - - Sea Green - - 2147483647 - - NSImage - ColorSwatch_SeaGreen_16x16 - - - - _popUpItemAction: - 9 - - - - - Turquoise - - 2147483647 - - NSImage - ColorSwatch_Turquoise_16x16 - - - - _popUpItemAction: - 10 - - - - - Blue - - 2147483647 - - NSImage - ColorSwatch_Blue_16x16 - - - - _popUpItemAction: - 11 - - - - - Dark Blue - - 2147483647 - - NSImage - ColorSwatch_DarkBlue_16x16 - - - - _popUpItemAction: - 12 - - - - - Dark Purple - - 2147483647 - - NSImage - ColorSwatch_DarkPurple_16x16 - - - - _popUpItemAction: - 13 - - - - - Violet - - 2147483647 - - NSImage - ColorSwatch_Violet_16x16 - - - - _popUpItemAction: - 14 - - - - - Magenta - - 2147483647 - - NSImage - ColorSwatch_Magenta_16x16 - - - - _popUpItemAction: - 15 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{17, 56}, {271, 56}} - - - YES - - 67239424 - 272760832 - Note: These settings will be overridden if you are using an external firmware image. If you want to use this configuration, ensure that the Use External Firmware Image setting is disabled. - - LucidaGrande - 11 - 16 - - - - - - - - - 268 - {{104, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - {305, 315} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 9 - 2 - {{702, 413}, {700, 399}} - 1685586944 - User File Migration - NSWindow - - {1.79769e+308, 1.79769e+308} - {700, 250} - - - 256 - - YES - - - 268 - {{17, 345}, {666, 34}} - - - YES - - 67239424 - 272629760 - You have files that were created from a previous version of DeSmuME. Would you like to migrate them to work with this version? - - - - - - - - - 289 - {{362, 12}, {162, 32}} - - - 2 - YES - - 67239424 - 134217728 - Migrate By Moving - - - -2038284033 - 129 - - - 200 - 25 - - - - - 289 - {{200, 12}, {162, 32}} - - - YES - - 67239424 - 134217728 - Don't Migrate - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 309}, {666, 28}} - - - YES - - 67239424 - 272633856 - Files from previous versions may not be fully compatible with the current version, especially Save State files. File migration cannot guarantee that all your old files will continue to work. - - - - - - - - - 292 - {{18, 21}, {182, 18}} - - - YES - - 67239424 - 0 - Do not ask on startup - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 289 - {{524, 12}, {162, 32}} - - - 1 - YES - - 67239424 - 134217728 - Migrate By Copying - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 274 - - YES - - - 2304 - - YES - - - 256 - {700, 195} - - - YES - - - 256 - {700, 17} - - - - - - - -2147483392 - {{544, 0}, {16, 17}} - - - - - YES - - 25 - 25 - 3.402823466385289e+38 - - 75628096 - 2048 - - - - - - - 67763712 - 134217728 - - - - 1215582719 - 2 - - - - - 200 - 25 - - YES - - - - 89 - 40 - 1000 - - 75628096 - 2048 - Version - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - - - - 141 - 40 - 1000 - - 75628096 - 2048 - Kind - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - - - - 259 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Name - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - - - - 171 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Date Modified - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - - - - 3 - 2 - - - 17 - 1388314624 - - - 1 - 4 - 15 - 0 - NO - 0 - - - {{1, 17}, {700, 195}} - - - - - - 4 - - - - -2147483392 - {{544, 17}, {15, 180}} - - - - _doScroller: - 0.92307692307692313 - - - - -2147483392 - {{1, 197}, {598, 15}} - - - 1 - - _doScroller: - 0.98918083462132922 - - - - 2304 - - YES - - - {{1, 0}, {700, 17}} - - - - - - 4 - - - - {{-1, 88}, {702, 213}} - - - - 562 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 292 - {{14, 52}, {114, 32}} - - - YES - - 67239424 - 134217728 - Select All - - - -2038284033 - 129 - - - 200 - 25 - - - - - 292 - {{128, 52}, {114, 32}} - - - YES - - 67239424 - 134217728 - Select None - - - -2038284033 - 129 - - - 200 - 25 - - - - {700, 399} - - - - {{0, 0}, {1920, 1178}} - {700, 272} - {1.79769e+308, 1.79769e+308} - - - FileMigrationDelegate - - - 1 - 2 - {{157, 261}, {380, 200}} - 1685586944 - ROM Save File Migration - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{17, 112}, {346, 68}} - - - YES - - 67239424 - 272629760 - This ROM's save file has not been created yet, but there is a save file with this ROM that has the same file name. Would you like to migrate it to work with DeSmuME? - - - - - - - - - 268 - {{270, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - Migrate - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{144, 12}, {126, 32}} - - - YES - - 67239424 - 134217728 - Don't Migrate - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 48}, {346, 56}} - - - YES - - 67239424 - 272633856 - Migrating the ROM save file will move it to DeSmuME's game data folder. If you do not migrate the save file now, a new file will be created instead. This will be like starting the ROM for the first time. - - - - - - - - {380, 200} - - - - {{0, 0}, {1440, 878}} - {1.79769e+308, 1.79769e+308} - - - 1 - 2 - {{157, 298}, {335, 163}} - 1685586944 - Save State - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{17, 109}, {301, 34}} - - - YES - - 67239424 - 272629760 - Would you like to save the emulation state before closing? - - - - - - - - - 268 - {{220, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - Save - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{114, 12}, {106, 32}} - - - 2 - YES - - 67239424 - 134217728 - Don't Save - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{17, 59}, {301, 42}} - - - YES - - 67239424 - 272633856 - If you haven't already saved using this ROM's save, then not saving the emulation state now will cause any unsaved changes to be lost. - - - - - - - - - 268 - {{18, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - {335, 163} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 7 - 2 - {{235, 88}, {640, 480}} - 1685586944 - Cheat Manager - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - - YES - - - 2304 - - YES - - - 256 - {270, 335} - - - YES - - - 256 - {270, 17} - - - - - - - -2147483392 - {{256, 0}, {16, 17}} - - - - - YES - - 20 - 20 - 20 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 67239424 - 0 - - - - 1215582719 - 2 - - - - - 200 - 25 - - YES - - - - 36 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Type - - - - - - 67239424 - 33554432 - - 0 - 0 - 0 - NO - - - - cheatType - YES - compare: - - - - 205 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Description - - - - - - 337772032 - 4325632 - Text Cell - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 42 - 1388314624 - - - 1 - - YES - - - 4 - 15 - 0 - NO - 0 - - - {{1, 17}, {270, 335}} - - - - - - 4 - - - - -2147483392 - {{256, 17}, {15, 306}} - - - - _doScroller: - 0.99689440993788825 - - - - -2147483392 - {{1, 323}, {270, 15}} - - - 1 - - _doScroller: - 0.99630996309963105 - - - - 2304 - - YES - - - {{1, 0}, {270, 17}} - - - - - - 4 - - - - {{20, 49}, {272, 353}} - - - - 562 - - - - - - QSAAAEEgAABCMAAAQjAAAA - - - - 268 - {{113, 12}, {185, 32}} - - - YES - - 67239424 - 134217728 - View Cheat Database... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{47, 19}, {28, 23}} - - - YES - - -2080244224 - 134217728 - - - - -2033434369 - 162 - - NSImage - NSRemoveTemplate - - - - 400 - 75 - - - - - 268 - {{20, 19}, {28, 23}} - - - YES - - -2080244224 - 134217728 - - - - -2033434369 - 162 - - NSImage - NSAddTemplate - - - - 400 - 75 - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{100, 372}, {209, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Internal Cheat - - 1048576 - 2147483647 - 1 - - NSImage - Icon_DeSmuME_32x32 - - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Action Replay - - 1048576 - 2147483647 - - NSImage - Icon_ActionReplay_32x32 - - - - _popUpItemAction: - 1 - - - - - - 1 - YES - YES - 2 - - - - - 301 - {{2, 33}, {320, 290}} - - - NSView - - - - 268 - {{16, 402}, {129, 18}} - - - YES - - 67239424 - 0 - Enable this cheat - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{15, 378}, {83, 17}} - - - YES - - 68288064 - 272630784 - Type: - - - - - - - - - 12 - {{14, 320}, {292, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 268 - {{103, 331}, {203, 39}} - - - YES - - -1805517311 - 272629760 - - - - YES - - - - - - - 268 - {{15, 353}, {83, 17}} - - - YES - - 68288064 - 272630784 - Description: - - - - - - - - - 268 - {{114, 6}, {96, 32}} - - - YES - - 67239424 - 134217728 - Apply - - - -2038284033 - 129 - - - 200 - 25 - - - - {{1, 1}, {324, 428}} - - - - - {{297, 16}, {326, 444}} - - - {0, 0} - - 67239424 - 0 - Cheat Settings - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{76, 408}, {190, 18}} - - - YES - - -2080244224 - 0 - Enable Cheats - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 265 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{20, 410}, {50, 50}} - - - YES - - 130560 - 33554432 - - 0 - 3 - 0 - NO - - YES - - - - 265 - {{75, 432}, {168, 28}} - - - YES - - 69336577 - 272764928 - TmFtZToKU2VyaWFsOg - - - - - - - - - 1292 - - {{29, 419}, {32, 32}} - - - 28682 - 100 - - - {640, 480} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - CheatManagerWindow - - - CheatWindowDelegate - - - - 256 - - YES - - - 292 - {{17, 4}, {294, 14}} - - - YES - - 68288064 - 138548224 - This list only shows the first 100 search results. - - LucidaGrande-Bold - 11 - 16 - - - - - - - - - 1292 - - {{214, 220}, {16, 16}} - - - 28938 - 100 - - - - 268 - {{133, 369}, {136, 22}} - - - YES - - -2076049856 - 133120 - - - 109199615 - 129 - - - 400 - 75 - - - Unsigned - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - YES - Signed (NOT IMPLEMENTED) - - 2147483647 - - - _popUpItemAction: - - - - YES - - - 1 - YES - YES - 2 - - - - - 268 - {{59, 374}, {60, 14}} - - - YES - - 68288064 - 272761856 - Sign Type: - - - - - - - - - 268 - {{59, 398}, {72, 14}} - - - YES - - 68288064 - 272761856 - Search Style: - - - - - - - - - 268 - {{133, 393}, {136, 22}} - - - YES - - -2076049856 - 133120 - - - 109199615 - 129 - - - 400 - 75 - - - Exact Value - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Comparative - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{0, 237}, {328, 134}} - - - NSView - - - - 268 - {{233, 213}, {80, 28}} - - - YES - - 67239424 - 134348800 - Reset - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{59, 222}, {150, 14}} - - - YES - - 68288064 - 272761856 - - - Search not started. - - - - - - - - 268 - {{17, 222}, {45, 14}} - - - YES - - 68288064 - 272761856 - Found: - - - - - - - - - 284 - - YES - - - 2304 - - YES - - - 256 - {286, 176} - - - YES - - - 256 - {286, 17} - - - - - - - -2147483392 - {{224, 0}, {16, 17}} - - - - - YES - - 102 - 40 - 1000 - - 75628096 - 2048 - Address - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 69336641 - 137216 - Text Cell - - Monaco - 11 - 16 - - - - - - 3 - YES - - - - 178 - 40 - 1000 - - 75628096 - 2048 - Value - - - - - - 69336641 - 137216 - Text Cell - - - - - - 3 - YES - - - - 3 - 2 - - - 14 - 1916796928 - - - 3 - 4 - 15 - 0 - NO - 0 - - - {{1, 17}, {286, 176}} - - - - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - _doScroller: - 0.94863013698630139 - - - - -2147483392 - {{1, 294}, {338, 15}} - - - 1 - - _doScroller: - 0.93888888888888888 - - - - 2304 - - YES - - - {{1, 0}, {286, 17}} - - - - - - 4 - - - - {{20, 20}, {288, 194}} - - - - 562 - - - - - - QSAAAEEgAABBgAAAQYAAAA - - - {328, 434} - - - NSView - - - - {328, 397} - {0, 397} - {328, 397} - 2 - 0.0 - 0.0 - - - - - 15 - 2 - {{235, 143}, {500, 416}} - 1685585920 - Cheat Database - NSWindow - - {1.79769e+308, 1.79769e+308} - {500, 272} - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 256 - {500, 287} - - - YES - - - 256 - {500, 17} - - - - - - - -2147483392 - {{224, 0}, {16, 17}} - - - - - YES - - 25 - 25 - 25 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 67239424 - 134217728 - - - - 1215582719 - 2 - - - - - 200 - 25 - - YES - - - - 464 - 40 - 1000 - - 75628096 - 2048 - Description - - - - - - 69336577 - 135168 - Text Cell - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 39 - 1388314624 - - - 1 - 4 - 15 - 0 - NO - 0 - - - {{1, 17}, {500, 287}} - - - - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - _doScroller: - 0.94773519163763065 - - - - -2147483392 - {{1, 249}, {568, 15}} - - - 1 - - _doScroller: - 0.99206349206349209 - - - - 2304 - - YES - - - {{1, 0}, {500, 17}} - - - - - - 4 - - - - {{-1, 57}, {502, 305}} - - - - 562 - - - - - - QSAAAEEgAABCJAAAQiQAAA - - - - 268 - {{17, 370}, {120, 14}} - - - YES - - 68288064 - 272761856 - R4 Cheats Database: - - - - - - - - - 268 - {{17, 392}, {63, 14}} - - - YES - - 68288064 - 272761856 - ROM Title: - - - - - - - - - 292 - {{14, 12}, {114, 32}} - - - YES - - 67239424 - 134217728 - Select All - - - -2038284033 - 129 - - - 200 - 25 - - - - - 292 - {{128, 12}, {114, 32}} - - - YES - - 67239424 - 134217728 - Select None - - - -2038284033 - 129 - - - 200 - 25 - - - - - 289 - {{390, 12}, {96, 32}} - - - 1 - YES - - 67239424 - 134217728 - Add - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 289 - {{294, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 265 - {{378, 370}, {42, 14}} - - - YES - - 68288064 - 272761856 - Found: - - - - - - - - - 268 - {{139, 370}, {237, 14}} - - - YES - - 70385217 - 272765952 - - - Database file - - - - - - - - 265 - {{422, 370}, {61, 14}} - - - YES - - 70385217 - 272765952 - - - Count - - - - - - - - 268 - {{82, 392}, {401, 14}} - - - YES - - 70385217 - 272765952 - - - ROM title - - - - - - - {500, 416} - - - - {{0, 0}, {1920, 1178}} - {500, 294} - {1.79769e+308, 1.79769e+308} - - - - 268 - - YES - - - 268 - {{233, 54}, {80, 28}} - - - YES - - 67239424 - 134348800 - Search - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{20, 59}, {210, 19}} - - - YES - - 343014976 - 268567552 - - Search value - - YES - 1 - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 255 - - - - - 268 - {{17, 86}, {294, 14}} - - - YES - - 67239424 - 272760832 - Enter a search value, and then click Search. - - - - - - - - - 268 - {{17, 100}, {294, 14}} - - - YES - - 67239424 - 272760832 - Search for an exact value. - - - - - - - - {328, 134} - - - NSView - - - - 268 - - YES - - - 268 - {{17, 86}, {294, 14}} - - - YES - - 67239424 - 272760832 - Click Start Search to begin a comparative search. - - - - - - - - - 268 - {{17, 100}, {294, 14}} - - - YES - - 67239424 - 272760832 - Start a comparative search. - - - - - - - - - 268 - {{116, 47}, {96, 28}} - - - YES - - 67239424 - 134348800 - Start Search - - - -2038284033 - 129 - - - 200 - 25 - - - - {328, 134} - - - NSView - - - - 268 - - YES - - - 268 - {{17, 72}, {294, 28}} - - - YES - - 67239424 - 272760832 - Click the appropriate button based on how the target value is changing. - - - - - - - - - 268 - {{17, 100}, {294, 14}} - - - YES - - 67239424 - 272760832 - How is the value changing? - - - - - - - - - 268 - {{163, 13}, {150, 28}} - - - 1 - YES - - 67239424 - 134348800 - Value is now lower - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{163, 40}, {150, 28}} - - - YES - - 67239424 - 134348800 - Value is now higher - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 13}, {150, 28}} - - - 3 - YES - - 67239424 - 134348800 - Value did change - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 40}, {150, 28}} - - - 2 - YES - - 67239424 - 134348800 - Value is unchanged - - - -2038284033 - 129 - - - 200 - 25 - - - - {328, 134} - - - NSView - - - - 301 - - YES - - - 268 - {{197, 191}, {109, 32}} - - - YES - - 67239424 - 134217728 - Write Once - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{17, 20}, {286, 42}} - - - YES - - 67239424 - 272760832 - Note: Enabling this cheat freezes the value in memory. If you only want to change a value without actually freezing it in memory, click Write Once. - - - - - - - - - 268 - {{17, 262}, {128, 17}} - - - YES - - 68288064 - 272630784 - Search for Address: - - - - - - - - - 265 - {{149, 257}, {27, 27}} - - - YES - - -2080244224 - 134217728 - - - - -2033434369 - 160 - - - - 400 - 75 - - - - - 268 - {{79, 230}, {38, 17}} - - - YES - - 68288064 - 71304192 - 0x02 - - Monaco - 13 - 16 - - - - - - - - - 268 - {{67, 198}, {128, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximumFractionDigits - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - -∞ - - - +∞ - - - - #0 - #0 - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - - 268 - {{17, 201}, {45, 17}} - - - YES - - 68288064 - 272630784 - Value: - - - - - - - - - 268 - {{118, 228}, {77, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{17, 231}, {60, 17}} - - - YES - - 68288064 - 272630784 - Address: - - - - - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {190, 78}} - - - YES - 4 - 1 - - YES - - 67239424 - 0 - 1 Byte [0 - 255] - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - 2 Bytes [0 - 65536] - - - 2 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {480, 166}} + + + + {{17, 56}, {482, 182}} + + {0, 0} + + 67108864 + 0 + GPU Layers + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{406, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{310, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 246}, {482, 17}} + + YES + + 70254657 + 272634880 + + + Device Info Summary + + + + + NO + + + {516, 283} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{235, 244}, {305, 315}} + 1685585920 + Internal Firmware Preferences + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{119, 276}, {166, 22}} + + YES + + -1804599231 + 272630784 + + + Enter a nickname... + + YES + + + + NO + + + + 268 + {{119, 222}, {166, 44}} + + YES + + -1805647871 + 272629760 + + + Enter a message... + + YES + + + + NO + + + + 268 + {{17, 278}, {97, 17}} + + YES + + 68157504 + 71304192 + Nickname: + + + + + + NO + + + + 268 + {{17, 246}, {97, 17}} + + YES + + 68157504 + 71304192 + Message: + + + + + + NO + + + + 268 + {{12, 196}, {102, 17}} + + YES + + 68157504 + 71304192 + Favorite Color: + + + + + + NO + + + + 268 + {{17, 154}, {97, 17}} + + YES + + 68157504 + 71304192 + Birthday: + + + + + + NO + + + + 268 + {{17, 126}, {97, 17}} + + YES + + 68157504 + 71304192 + Language: + + + + + + NO + + + + 268 + {{119, 152}, {169, 27}} + + YES + + 71303168 + 0 + + 330548400 + + + + 0.0 + 224 + + + + NO + + + + 268 + {{116, 120}, {172, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + English + + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + YES + + + Japanese + + 2147483647 + + + _popUpItemAction: + + + + + + French + + 2147483647 + + + _popUpItemAction: + 2 + + + + + German + + 2147483647 + + + _popUpItemAction: + 3 + + + + + Italian + + 2147483647 + + + _popUpItemAction: + 4 + + + + + Spanish + + 2147483647 + + + _popUpItemAction: + 5 + + + + + + 1 + 1 + YES + YES + 2 + + NO + + + + 268 + {{116, 190}, {172, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + Gray + + 2147483647 + 1 + + NSImage + ColorSwatch_Gray_16x16 + + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Brown + + 2147483647 + + NSImage + ColorSwatch_Brown_16x16 + + + + _popUpItemAction: + 1 + + + + + Red + + 2147483647 + + NSImage + ColorSwatch_Red_16x16 + + + + _popUpItemAction: + 2 + + + + + Pink + + 2147483647 + + NSImage + ColorSwatch_Pink_16x16 + + + + _popUpItemAction: + 3 + + + + + Orange + + 2147483647 + + NSImage + ColorSwatch_Orange_16x16 + + + + _popUpItemAction: + 4 + + + + + Yellow + + 2147483647 + + NSImage + ColorSwatch_Yellow_16x16 + + + + _popUpItemAction: + 5 + + + + + Lime Green + + 2147483647 + + NSImage + ColorSwatch_LimeGreen_16x16 + + + + _popUpItemAction: + 6 + + + + + Green + + 2147483647 + + NSImage + ColorSwatch_Green_16x16 + + + + _popUpItemAction: + 7 + + + + + Dark Green + + 2147483647 + + NSImage + ColorSwatch_DarkGreen_16x16 + + + + _popUpItemAction: + 8 + + + + + Sea Green + + 2147483647 + + NSImage + ColorSwatch_SeaGreen_16x16 + + + + _popUpItemAction: + 9 + + + + + Turquoise + + 2147483647 + + NSImage + ColorSwatch_Turquoise_16x16 + + + + _popUpItemAction: + 10 + + + + + Blue + + 2147483647 + + NSImage + ColorSwatch_Blue_16x16 + + + + _popUpItemAction: + 11 + + + + + Dark Blue + + 2147483647 + + NSImage + ColorSwatch_DarkBlue_16x16 + + + + _popUpItemAction: + 12 + + + + + Dark Purple + + 2147483647 + + NSImage + ColorSwatch_DarkPurple_16x16 + + + + _popUpItemAction: + 13 + + + + + Violet + + 2147483647 + + NSImage + ColorSwatch_Violet_16x16 + + + + _popUpItemAction: + 14 + + + + + Magenta + + 2147483647 + + NSImage + ColorSwatch_Magenta_16x16 + + + + _popUpItemAction: + 15 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 56}, {271, 56}} + + YES + + 67108864 + 272760832 + Note: These settings will be overridden if you are using an external firmware image. If you want to use this configuration, ensure that the Use External Firmware Image setting is disabled. + + LucidaGrande + 11 + 16 + + + + + + NO + + + + 268 + {{104, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + OK + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + {305, 315} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 9 + 2 + {{702, 413}, {700, 399}} + 1685586944 + User File Migration + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {700, 250} + + + 256 + + YES + + + 268 + {{17, 345}, {666, 34}} + + YES + + 67108864 + 272629760 + You have files that were created from a previous version of DeSmuME. Would you like to migrate them to work with this version? + + + + + + NO + + + + 289 + {{362, 12}, {162, 32}} + + 2 + YES + + 67108864 + 134217728 + Migrate By Moving + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 289 + {{200, 12}, {162, 32}} + + YES + + 67108864 + 134217728 + Don't Migrate + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 309}, {666, 28}} + + YES + + 67108864 + 272633856 + Files from previous versions may not be fully compatible with the current version, especially Save State files. File migration cannot guarantee that all your old files will continue to work. + + + + + + NO + + + + 292 + {{18, 21}, {182, 18}} + + YES + + 67108864 + 0 + Do not ask on startup + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 289 + {{524, 12}, {162, 32}} + + 1 + YES + + 67108864 + 134217728 + Migrate By Copying + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 274 + + YES + + + 2304 + + YES + + + 256 + {700, 195} + + YES + NO + YES + + + 256 + {700, 17} + + + + + + -2147483392 + {{544, 0}, {16, 17}} + + + + YES + + 25 + 25 + 3.402823466385289e+38 + + 75497536 + 2048 + + + + + + + 67633152 + 134217728 + + + + 1215582464 + 2 + + + + + 200 + 25 + + YES + + + + 89 + 40 + 1000 + + 75497536 + 2048 + Version + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + + + + 141 + 40 + 1000 + + 75497536 + 2048 + Kind + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + + + + 259 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Name + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + + + + 171 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Date Modified + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + + + + 3 + 2 + + + 17 + 1925185536 + + + 1 + 4 + 15 + 0 + NO + 0 + 1 + + + {{1, 17}, {700, 195}} + + + + + 4 + + + + -2147483392 + {{544, 17}, {15, 180}} + + NO + + _doScroller: + 0.92307692307692313 + + + + -2147483392 + {{1, 197}, {598, 15}} + + NO + 1 + + _doScroller: + 0.98918083462132922 + + + + 2304 + + YES + + + {{1, 0}, {700, 17}} + + + + + 4 + + + + {{-1, 88}, {702, 213}} + + + 133682 + + + + + QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 + + + + 292 + {{14, 52}, {114, 32}} + + YES + + 67108864 + 134217728 + Select All + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 292 + {{128, 52}, {114, 32}} + + YES + + 67108864 + 134217728 + Select None + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {700, 399} + + {{0, 0}, {1920, 1178}} + {700, 272} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + FileMigrationDelegate + + + 1 + 2 + {{157, 261}, {380, 200}} + 1685586944 + ROM Save File Migration + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{17, 112}, {346, 68}} + + YES + + 67108864 + 272629760 + This ROM's save file has not been created yet, but there is a save file with this ROM that has the same file name. Would you like to migrate it to work with DeSmuME? + + + + + + NO + + + + 268 + {{270, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + Migrate + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{144, 12}, {126, 32}} + + YES + + 67108864 + 134217728 + Don't Migrate + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 48}, {346, 56}} + + YES + + 67108864 + 272633856 + Migrating the ROM save file will move it to DeSmuME's game data folder. If you do not migrate the save file now, a new file will be created instead. This will be like starting the ROM for the first time. + + + + + + NO + + + {380, 200} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 1 + 2 + {{157, 298}, {335, 163}} + 1685586944 + Save State + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{17, 109}, {301, 34}} + + YES + + 67108864 + 272629760 + Would you like to save the emulation state before closing? + + + + + + NO + + + + 268 + {{220, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + Save + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{114, 12}, {106, 32}} + + 2 + YES + + 67108864 + 134217728 + Don't Save + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{17, 59}, {301, 42}} + + YES + + 67108864 + 272633856 + If you haven't already saved using this ROM's save, then not saving the emulation state now will cause any unsaved changes to be lost. + + + + + + NO + + + + 268 + {{18, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + {335, 163} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 7 + 2 + {{235, 88}, {640, 480}} + 1685586944 + Cheat Manager + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + + YES + + + 2304 + + YES + + + 256 + {270, 335} + + YES + NO + YES + + + 256 + {270, 17} + + + + + + -2147483392 + {{256, 0}, {16, 17}} + + + + YES + + 20 + 20 + 20 + + 75497536 + 2048 + + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67108864 + 0 + + + + 1215582464 + 2 + + + + + 200 + 25 + + YES + + + + 36 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Type + + + + + + 134217728 + 33554432 + 0 + 0 + 0 + NO + + + + cheatType + YES + compare: + + + + 205 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + Description + + + + + + 337641472 + 4325632 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 42 + 1925185536 + + + 1 + + YES + + + 4 + 15 + 0 + NO + 0 + 1 + + + {{1, 17}, {270, 335}} + + + + + 4 + + + + -2147483392 + {{256, 17}, {15, 306}} + + NO + + _doScroller: + 0.99689440993788825 + + + + -2147483392 + {{1, 323}, {270, 15}} + + NO + 1 + + _doScroller: + 0.99630996309963105 + + + + 2304 + + YES + + + {{1, 0}, {270, 17}} + + + + + 4 + + + + {{20, 49}, {272, 353}} + + + 133682 + + + + + QSAAAEEgAABCMAAAQjAAAA + 0.25 + 4 + 1 + + + + 268 + {{113, 12}, {185, 32}} + + YES + + 67108864 + 134217728 + View Cheat Database... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{47, 19}, {28, 23}} + + YES + + -2080374784 + 134217728 + + + + -2033434624 + 162 + + NSImage + NSRemoveTemplate + + + + 400 + 75 + + NO + + + + 268 + {{20, 19}, {28, 23}} + + YES + + -2080374784 + 134217728 + + + + -2033434624 + 162 + + NSImage + NSAddTemplate + + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{100, 372}, {209, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + Internal Cheat + + 1048576 + 2147483647 + 1 + + NSImage + Icon_DeSmuME_32x32 + + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Action Replay + + 1048576 + 2147483647 + + NSImage + Icon_ActionReplay_32x32 + + + + _popUpItemAction: + 1 + + + + + + 1 + YES + YES + 2 + + NO + + + + 301 + {{2, 33}, {320, 290}} + + NSView + + + + 268 + {{16, 402}, {129, 18}} + + YES + + 67108864 + 0 + Enable this cheat + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{15, 378}, {83, 17}} + + YES + + 68157504 + 272630784 + Type: + + + + + + NO + + + + 12 + {{14, 320}, {292, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 268 + {{103, 331}, {203, 39}} + + YES + + -1805647871 + 272629760 + + + + YES + + + + NO + + + + 268 + {{15, 353}, {83, 17}} + + YES + + 68157504 + 272630784 + Description: + + + + + + NO + + + + 268 + {{114, 6}, {96, 32}} + + YES + + 67108864 + 134217728 + Apply + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {{1, 1}, {324, 428}} + + + + {{297, 16}, {326, 444}} + + {0, 0} + + 67108864 + 0 + Cheat Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{76, 408}, {190, 18}} + + YES + + -2080374784 + 0 + Enable Cheats + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 265 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{20, 410}, {50, 50}} + + YES + + 134217728 + 33554432 + + 0 + 3 + 0 + NO + + NO + YES + + + + 265 + {{75, 432}, {168, 28}} + + YES + + 69206017 + 272764928 + TmFtZToKU2VyaWFsOg + + + + + + NO + + + + 1292 + {{29, 419}, {32, 32}} + + 28682 + 100 + + + {640, 480} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + CheatManagerWindow + YES + + + CheatWindowDelegate + + + + 256 + + YES + + + 292 + {{17, 4}, {294, 14}} + + YES + + 68157504 + 138548224 + This list only shows the first 100 search results. + + LucidaGrande-Bold + 11 + 16 + + + + + + NO + + + + 1292 + {{214, 220}, {16, 16}} + + 28938 + 100 + + + + 268 + {{133, 369}, {136, 22}} + + YES + + -2076180416 + 133120 + + + 109199360 + 129 + + + 400 + 75 + + + Unsigned + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + YES + Signed (NOT IMPLEMENTED) + + 2147483647 + + + _popUpItemAction: + + + + YES + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{59, 374}, {60, 14}} + + YES + + 68157504 + 272761856 + Sign Type: + + + + + + NO + + + + 268 + {{59, 398}, {72, 14}} + + YES + + 68157504 + 272761856 + Search Style: + + + + + + NO + + + + 268 + {{133, 393}, {136, 22}} + + YES + + -2076180416 + 133120 + + + 109199360 + 129 + + + 400 + 75 + + + Exact Value + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Comparative + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{0, 237}, {328, 134}} + + NSView + + + + 268 + {{233, 213}, {80, 28}} + + YES + + 67108864 + 134348800 + Reset + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{59, 222}, {150, 14}} + + YES + + 68157504 + 272761856 + + + Search not started. + + + + + NO + + + + 268 + {{17, 222}, {45, 14}} + + YES + + 68157504 + 272761856 + Found: + + + + + + NO + + + + 284 + + YES + + + 2304 + + YES + + + 256 + {286, 176} + + YES + NO + YES + + + 256 + {286, 17} + + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + YES + + 102 + 40 + 1000 + + 75497536 + 2048 + Address + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 69206081 + 137216 + Text Cell + + Monaco + 11 + 16 + + + + + + 3 + YES + + + + 178 + 40 + 1000 + + 75497536 + 2048 + Value + + + + + + 69206081 + 137216 + Text Cell + + + + + + 3 + YES + + + + 3 + 2 + + + 14 + 1916796928 + + + 3 + 4 + 15 + 0 + NO + 0 + 1 + + + {{1, 17}, {286, 176}} + + + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + NO + + _doScroller: + 0.94863013698630139 + + + + -2147483392 + {{1, 294}, {338, 15}} + + NO + 1 + + _doScroller: + 0.93888888888888888 + + + + 2304 + + YES + + + {{1, 0}, {286, 17}} + + + + + 4 + + + + {{20, 20}, {288, 194}} + + + 133682 + + + + + QSAAAEEgAABBgAAAQYAAAA + 0.25 + 4 + 1 + + + {328, 434} + NSView + + + + {328, 397} + {0, 397} + {328, 397} + 2 + 0.0 + 0.0 + + + + + 15 + 2 + {{235, 143}, {500, 416}} + 1685585920 + Cheat Database + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {500, 272} + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 256 + {500, 287} + + YES + NO + YES + + + 256 + {500, 17} + + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + YES + + 25 + 25 + 25 + + 75497536 + 2048 + + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67108864 + 134217728 + + + + 1215582464 + 2 + + + + + 200 + 25 + + YES + + + + 464 + 40 + 1000 + + 75497536 + 2048 + Description + + + + + + 69206017 + 135168 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 39 + 1925185536 + + + 1 + 4 + 15 + 0 + NO + 0 + 1 + + + {{1, 17}, {500, 287}} + + + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + NO + + _doScroller: + 0.94773519163763065 + + + + -2147483392 + {{1, 249}, {568, 15}} + + NO + 1 + + _doScroller: + 0.99206349206349209 + + + + 2304 + + YES + + + {{1, 0}, {500, 17}} + + + + + 4 + + + + {{-1, 57}, {502, 305}} + + + 133682 + + + + + QSAAAEEgAABCJAAAQiQAAA + 0.25 + 4 + 1 + + + + 268 + {{17, 370}, {120, 14}} + + YES + + 68157504 + 272761856 + R4 Cheats Database: + + + + + + NO + + + + 268 + {{17, 392}, {63, 14}} + + YES + + 68157504 + 272761856 + ROM Title: + + + + + + NO + + + + 292 + {{14, 12}, {114, 32}} + + YES + + 67108864 + 134217728 + Select All + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 292 + {{128, 12}, {114, 32}} + + YES + + 67108864 + 134217728 + Select None + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 289 + {{390, 12}, {96, 32}} + + 1 + YES + + 67108864 + 134217728 + Add + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 289 + {{294, 12}, {96, 32}} + + YES + + 67108864 + 134217728 + Cancel + + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 265 + {{378, 370}, {42, 14}} + + YES + + 68157504 + 272761856 + Found: + + + + + + NO + + + + 268 + {{139, 370}, {237, 14}} + + YES + + 70254657 + 272765952 + + + Database file + + + + + NO + + + + 265 + {{422, 370}, {61, 14}} + + YES + + 70254657 + 272765952 + + + Count + + + + + NO + + + + 268 + {{82, 392}, {401, 14}} + + YES + + 70254657 + 272765952 + + + ROM title + + + + + NO + + + {500, 416} + + {{0, 0}, {1920, 1178}} + {500, 294} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + 268 + + YES + + + 268 + {{233, 54}, {80, 28}} + + YES + + 67108864 + 134348800 + Search + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{20, 59}, {210, 19}} + + YES + + 342884416 + 268567552 + + Search value + + YES + 1 + + + + 0 + 0 + search + + _searchFieldSearch: + + 138690560 + 0 + + 400 + 75 + + + 0 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + + _searchFieldCancel: + + 138690560 + 0 + + 400 + 75 + + 255 + + NO + + + + 268 + {{17, 86}, {294, 14}} + + YES + + 67108864 + 272760832 + Enter a search value, and then click Search. + + + + + + NO + + + + 268 + {{17, 100}, {294, 14}} + + YES + + 67108864 + 272760832 + Search for an exact value. + + + + + + NO + + + {328, 134} + NSView + + + + 268 + + YES + + + 268 + {{17, 86}, {294, 14}} + + YES + + 67108864 + 272760832 + Click Start Search to begin a comparative search. + + + + + + NO + + + + 268 + {{17, 100}, {294, 14}} + + YES + + 67108864 + 272760832 + Start a comparative search. + + + + + + NO + + + + 268 + {{116, 47}, {96, 28}} + + YES + + 67108864 + 134348800 + Start Search + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {328, 134} + NSView + + + + 268 + + YES + + + 268 + {{17, 72}, {294, 28}} + + YES + + 67108864 + 272760832 + Click the appropriate button based on how the target value is changing. + + + + + + NO + + + + 268 + {{17, 100}, {294, 14}} + + YES + + 67108864 + 272760832 + How is the value changing? + + + + + + NO + + + + 268 + {{163, 13}, {150, 28}} + + 1 + YES + + 67108864 + 134348800 + Value is now lower + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{163, 40}, {150, 28}} + + YES + + 67108864 + 134348800 + Value is now higher + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{15, 13}, {150, 28}} + + 3 + YES + + 67108864 + 134348800 + Value did change + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{15, 40}, {150, 28}} + + 2 + YES + + 67108864 + 134348800 + Value is unchanged + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {328, 134} + NSView + + + + 301 + + YES + + + 268 + {{197, 191}, {109, 32}} + + YES + + 67108864 + 134217728 + Write Once + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{17, 20}, {286, 42}} + + YES + + 67108864 + 272760832 + Note: Enabling this cheat freezes the value in memory. If you only want to change a value without actually freezing it in memory, click Write Once. + + + + + + NO + + + + 268 + {{17, 262}, {128, 17}} + + YES + + 68157504 + 272630784 + Search for Address: + + + + + + NO + + + + 265 + {{149, 257}, {27, 27}} + + YES + + -2080374784 + 134217728 + + + + -2033434624 + 160 + + + + 400 + 75 + + NO + + + + 268 + {{79, 230}, {38, 17}} + + YES + + 68157504 + 71304192 + 0x02 + + Monaco + 13 + 16 + + + + + + NO + + + + 268 + {{67, 198}, {128, 22}} + + YES + + -1804599231 + -1874852864 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximumFractionDigits + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + -∞ + + + +∞ + + + + #0 + #0 + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + + 268 + {{17, 201}, {45, 17}} + + YES + + 68157504 + 272630784 + Value: + + + + + + NO + + + + 268 + {{118, 228}, {77, 22}} + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 268 + {{17, 231}, {60, 17}} + + YES + + 68157504 + 272630784 + Address: + + + + + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {190, 78}} + + YES + NO + 4 + 1 + + YES + + 67108864 + 0 + 1 Byte [0 - 255] + + + 1 + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + 2 Bytes [0 - 65536] + + + 2 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -13286,65 +13622,65 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 67239424 - 0 - 3 Bytes [0 - 16777215] - - - 3 - 1211912703 - 0 - - 400 - 75 - - - -2080244224 - 0 - 4 Bytes [0 - 4294967295] - - - 4 - 1211912703 - 0 - - 400 - 75 - - - {190, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 67108864 + 0 + 3 Bytes [0 - 16777215] + + + 3 + 1211912448 + 0 + + 400 + 75 + + + -2080374784 + 0 + 4 Bytes [0 - 4294967295] + + + 4 + 1211912448 + 0 + + 400 + 75 + + + {190, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -13369,445 +13705,438 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 3 - - - - - - - {{1, 1}, {226, 102}} - - - - - {{46, 72}, {228, 118}} - - - {0, 0} - - 67239424 - 0 - Select Memory Size - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {320, 290} - - - NSView - - - - 301 - - YES - - - 256 - - YES - - - 2304 - - YES - - - 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - - {{0, 125}, {278, 53}} - - - - - - - - - - - - YES - - - 134 - - - - 278 - 1 - - - 11523 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - 4 - - 1 - - - 6 - {463, 1e+07} - {218, 53} - - - YES - NSAllRomanInputSourcesLocaleIdentifier - - - - {{1, 1}, {278, 223}} - - - - - - - 4 - - - - -2147483392 - {{231, 1}, {15, 172}} - - - - _doScroller: - 0.68253968253968256 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 0.97142857142857142 - 0.94565218687057495 - - - {{20, 20}, {280, 225}} - - - - 530 - - - - - - - 268 - {{17, 253}, {138, 17}} - - - YES - - 68288064 - 272630784 - Action Replay Code: - - - - - - - - {320, 290} - - - NSView - - - - 301 - - YES - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{101, 133}, {128, 128}} - - - YES - - 130560 - 33554432 - - NSImage - Icon_CodeBreaker_128x128 - - 0 - 3 - 0 - NO - - YES - - - - 268 - {{17, 35}, {286, 72}} - - - YES - - 67239424 - 138412032 - Code Breaker cheats have not been implemented in this version of DeSmuME. - - LucidaGrande-Bold - 20 - 16 - - - - - - - - {320, 290} - - - NSView - - - 7 - 2 - {{235, 230}, {640, 329}} - 1685586944 - SLOT-1 Manager - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{14, 12}, {168, 32}} - - - YES - - 67239424 - 134217728 - Eject SLOT-1 Device - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{181, 22}, {105, 17}} - - - YES - - 68288064 - 272630784 - SLOT-1 Status: - - - - - - - - - 12 - {{12, 51}, {616, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 268 - {{288, 22}, {330, 17}} - - - YES - - 70385217 - 272634880 - - - slot1StatusText - - - - - - - - 12 - - YES - - - 256 - - YES - - - 268 - {{18, 14}, {180, 102}} - - - YES - 4 - 1 - - YES - - -2080244224 - 0 - None - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Retail - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 3 + + + + + + + {{1, 1}, {226, 102}} + + + + {{46, 72}, {228, 118}} + + {0, 0} + + 67108864 + 0 + Select Memory Size + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {320, 290} + NSView + + + + 301 + + YES + + + 256 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + + {{0, 125}, {278, 223}} + + + + + + + + + + + YES + + + 166 + + + + 278 + 1 + + + 100674819 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + 4 + + 1 + + + 1 + + 6 + {463, 10000000} + + + YES + NSAllRomanInputSourcesLocaleIdentifier + + + + {{1, 1}, {278, 223}} + + + + + + 4 + + + + -2147483392 + {{231, 1}, {15, 172}} + + NO + + _doScroller: + 0.68253968253968256 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 0.97142857142857142 + 0.94565218687057495 + + + {{20, 20}, {280, 225}} + + + 133650 + + + + 0.25 + 4 + 1 + + + + 268 + {{17, 253}, {138, 17}} + + YES + + 68157504 + 272630784 + Action Replay Code: + + + + + + NO + + + {320, 290} + NSView + + + + 301 + + YES + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{101, 133}, {128, 128}} + + YES + + 134217728 + 33554432 + + NSImage + Icon_CodeBreaker_128x128 + + 0 + 3 + 0 + NO + + NO + YES + + + + 268 + {{17, 35}, {286, 72}} + + YES + + 67108864 + 138412032 + Code Breaker cheats have not been implemented in this version of DeSmuME. + + LucidaGrande-Bold + 20 + 16 + + + + + + NO + + + {320, 290} + NSView + + + 7 + 2 + {{235, 204}, {640, 355}} + 1685586944 + SLOT-1 Manager + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{14, 12}, {168, 32}} + + YES + + 67108864 + 134217728 + Eject SLOT-1 Device + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{181, 22}, {105, 17}} + + YES + + 68157504 + 272630784 + SLOT-1 Status: + + + + + + NO + + + + 12 + {{12, 51}, {616, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 268 + {{288, 22}, {330, 17}} + + YES + + 70254657 + 272634880 + + + slot1StatusText + + + + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {260, 128}} + + YES + NO + 5 + 1 + + YES + + -2080374784 + 0 + None + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 0 + Retail (Auto-detect) + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -13884,65 +14213,78 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 67239424 - 0 - Retail with NAND Flash - - - 3 - 1211912703 - 0 - - 400 - 75 - - - 67239424 - 0 - R4 - - - 2 - 1211912703 - 0 - - 400 - 75 - - - {180, 24} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 67108864 + 0 + Retail with NAND Flash + + + 3 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + Standard Retail Memory Card + ROM + + + 4 + 1211912448 + 0 + + 400 + 75 + + + 67108864 + 0 + R4 + + + 2 + 1211912448 + 0 + + 400 + 75 + + + {260, 24} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -13967,836 +14309,822 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 268 - {{85, 15}, {409, 21}} - - - YES - - 78773825 - 272635136 - - - Directory Path - - YES - - - - - - - 268 - {{496, 8}, {96, 32}} - - - YES - - 67239424 - 134217728 - Choose... - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 124}, {482, 28}} - - - YES - - 67239424 - 4325376 - Note: Changes to the SLOT-1 device will only take effect after a ROM is loaded or after the emulator is reset. - - - - - 1 - MCAwIDAAA - - - - - - 268 - {{496, 120}, {96, 32}} - - - YES - - 67239424 - 134217728 - Reset - - - -2034876161 - 129 - - - 200 - 25 - - - - {{1, 1}, {604, 162}} - - - - - {{17, 140}, {606, 178}} - - - {0, 0} - - 67239424 - 0 - SLOT-1 Device Type - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 256 - - YES - - - 265 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{18, 16}, {30, 30}} - - - YES - - 130560 - 33554432 - - 0 - 3 - 0 - NO - - YES - - - - 265 - {{50, 18}, {168, 28}} - - - YES - - 69336577 - 272764928 - TmFtZToKU2VyaWFsOg - - - - - - - - - 1292 - - {{18, 14}, {32, 32}} - - - 28682 - 100 - - - - 268 - {{220, 17}, {201, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - YES - Actions - - 1048576 - 2147483647 - 1 - - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Load ROMâ€Ķ - - 2147483647 - - - _popUpItemAction: - - - - - Load Recent ROM - - 1048576 - 2147483647 - - - submenuAction: - - Load Recent ROM - - YES - - - Clear Menu - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 2147483647 - - - _popUpItemAction: - - - - - Unload ROM - - 2147483647 - - - _popUpItemAction: - - - - - - YES - 1 - YES - YES - 2 - - - - {{1, 1}, {604, 56}} - - - - - {{17, 64}, {606, 72}} - - - {0, 0} - - 67239424 - 0 - Current ROM - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {640, 329} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - Slot1ManagerWindow - - - 279 - 2 - {{230, 19}, {286, 522}} - -461896704 - Emulation Settings - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 32}, {171, 18}} - - - 1 - YES - - -2080244224 - 131072 - Advanced Bus-Level Timing - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {187, 18}} - - - 10 - YES - - 67239424 - 131072 - Rigorous 3D Rendering Timing - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {250, 58}} - - - - - {{17, 428}, {252, 74}} - - - {0, 0} - - 67239424 - 0 - Emulation Timing - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{16, 52}, {158, 18}} - - - 2 - YES - - 67239424 - 131072 - Use External BIOS Images - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{35, 32}, {120, 18}} - - - 3 - YES - - -2080244224 - 131072 - Emulate BIOS SWIs - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{35, 12}, {132, 18}} - - - 4 - YES - - 67239424 - 131072 - Patch DelayLoop SWI - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {250, 78}} - - - - - {{17, 224}, {252, 94}} - - - {0, 0} - - 67239424 - 0 - BIOS Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 32}, {177, 18}} - - - 5 - YES - - 67239424 - 131072 - Use External Firmware Image - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{15, 12}, {130, 18}} - - - 6 - YES - - 67239424 - 131072 - Boot From Firmware - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 265 - {{176, 54}, {27, 27}} - - - YES - - -2080244224 - 134217728 - - - - -2033434369 - 160 - - - - 400 - 75 - - - - - 268 - {{15, 61}, {157, 14}} - - - YES - - 68288064 - 272761856 - Configure Internal Firmware: - - - - - - - - {{1, 1}, {250, 85}} - - - - - {{17, 119}, {252, 101}} - - - {0, 0} - - 67239424 - 0 - Firmware Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{66, 18}, {154, 19}} - - - YES - - -2080244224 - 134217728 - Save Settings as Default - - LucidaGrande - 12 - 16 - - - -2038152961 - 164 - - - 400 - 75 - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 32}, {127, 18}} - - - 9 - YES - - 67239424 - 131072 - Use Debug Console - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{15, 12}, {103, 18}} - - - YES - - 67239424 - 131072 - Emulate Ensata - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {250, 58}} - - - - - {{17, 41}, {252, 74}} - - - {0, 0} - - 67239424 - 0 - Debugger Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 256 - - YES - - - 268 - {{18, 38}, {145, 38}} - - - YES - 2 - 1 - - YES - - -2080244224 - 131072 - Interpreter - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 131072 - Dynamic Recompiler - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + + 268 + {{85, 15}, {409, 21}} + + YES + + 78643265 + 272635136 + + + Directory Path + + YES + + + + NO + + + + 268 + {{496, 8}, {96, 32}} + + YES + + 67108864 + 134217728 + Choose... + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{15, 150}, {482, 28}} + + YES + + 67108864 + 4325376 + Note: Changes to the SLOT-1 device will only take effect after a ROM is loaded or after the emulator is reset. + + + + + 1 + MCAwIDAAA + + + NO + + + + 268 + {{496, 146}, {96, 32}} + + YES + + 67108864 + 134217728 + Reset + + + -2034876416 + 129 + + + 200 + 25 + + NO + + + {{1, 1}, {604, 188}} + + + + {{17, 140}, {606, 204}} + + {0, 0} + + 67108864 + 0 + SLOT-1 Device Type + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 265 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{18, 16}, {30, 30}} + + YES + + 134217728 + 33554432 + + 0 + 3 + 0 + NO + + NO + YES + + + + 265 + {{50, 18}, {168, 28}} + + YES + + 69206017 + 272764928 + TmFtZToKU2VyaWFsOg + + + + + + NO + + + + 1292 + {{18, 14}, {32, 32}} + + 28682 + 100 + + + + 268 + {{220, 17}, {201, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 129 + + + 400 + 75 + + + YES + Actions + + 1048576 + 2147483647 + 1 + + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Load ROMâ€Ķ + + 2147483647 + + + _popUpItemAction: + + + + + Load Recent ROM + + 1048576 + 2147483647 + + + submenuAction: + + Load Recent ROM + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + Unload ROM + + 2147483647 + + + _popUpItemAction: + + + + + + YES + 1 + YES + YES + 2 + + NO + + + {{1, 1}, {604, 56}} + + + + {{17, 64}, {606, 72}} + + {0, 0} + + 67108864 + 0 + Current ROM + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {640, 355} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + Slot1ManagerWindow + YES + + + 279 + 2 + {{230, 19}, {286, 522}} + -461896704 + Emulation Settings + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 32}, {171, 18}} + + 1 + YES + + -2080374784 + 131072 + Advanced Bus-Level Timing + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{16, 12}, {187, 18}} + + 10 + YES + + 67108864 + 131072 + Rigorous 3D Rendering Timing + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {250, 58}} + + + + {{17, 428}, {252, 74}} + + {0, 0} + + 67108864 + 0 + Emulation Timing + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 52}, {158, 18}} + + 2 + YES + + 67108864 + 131072 + Use External BIOS Images + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{35, 32}, {120, 18}} + + 3 + YES + + -2080374784 + 131072 + Emulate BIOS SWIs + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{35, 12}, {132, 18}} + + 4 + YES + + 67108864 + 131072 + Patch DelayLoop SWI + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {250, 78}} + + + + {{17, 224}, {252, 94}} + + {0, 0} + + 67108864 + 0 + BIOS Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 32}, {177, 18}} + + 5 + YES + + 67108864 + 131072 + Use External Firmware Image + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{15, 12}, {130, 18}} + + 6 + YES + + 67108864 + 131072 + Boot From Firmware + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 265 + {{176, 54}, {27, 27}} + + YES + + -2080374784 + 134217728 + + + + -2033434624 + 160 + + + + 400 + 75 + + NO + + + + 268 + {{15, 61}, {157, 14}} + + YES + + 68157504 + 272761856 + Configure Internal Firmware: + + + + + + NO + + + {{1, 1}, {250, 85}} + + + + {{17, 119}, {252, 101}} + + {0, 0} + + 67108864 + 0 + Firmware Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{66, 18}, {154, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + LucidaGrande + 12 + 16 + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 32}, {127, 18}} + + 9 + YES + + 67108864 + 131072 + Use Debug Console + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{15, 12}, {103, 18}} + + YES + + 67108864 + 131072 + Emulate Ensata + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {250, 58}} + + + + {{17, 41}, {252, 74}} + + {0, 0} + + 67108864 + 0 + Debugger Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 38}, {145, 38}} + + YES + NO + 2 + 1 + + YES + + -2080374784 + 131072 + Interpreter + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + Dynamic Recompiler + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -14873,39 +15201,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - {145, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {145, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -14930,1042 +15258,1036 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 268 - {{198, 11}, {19, 27}} - - - YES - - 68025888 - 0 - - - 12 - 1 - 100 - 1 - YES - - - - - 268 - {{157, 16}, {40, 19}} - - - YES - - -1804468671 - 71435264 - - - - - YES - - YES - allowsFloats - formatterBehavior - locale - maximum - maximumFractionDigits - minimum - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - -∞ - - - +∞ - - - - #0 - #0 - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - - 268 - {{74, 18}, {78, 14}} - - - YES - - 68288064 - 71435264 - Block Size: - - - - - - - - {{1, 1}, {250, 86}} - - - - - {{17, 322}, {252, 102}} - - - {0, 0} - - 67239424 - 0 - CPU Emulation Engine - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {286, 522} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - EmulationSettingsPanel - - - - 256 - - YES - - - 268 - {{53, 18}, {154, 19}} - - - YES - - -2080244224 - 134217728 - Apply - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{107, 212}, {136, 22}} - - - YES - - -2076049856 - 133120 - - - 109199615 - 129 - - - 400 - 75 - - - Gray - - 2147483647 - 1 - - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Brown - - 2147483647 - - - - _popUpItemAction: - 1 - - - - - Red - - 2147483647 - - - - _popUpItemAction: - 2 - - - - - Pink - - 2147483647 - - - - _popUpItemAction: - 3 - - - - - Orange - - 2147483647 - - - - _popUpItemAction: - 4 - - - - - Yellow - - 2147483647 - - - - _popUpItemAction: - 5 - - - - - Lime Green - - 2147483647 - - - - _popUpItemAction: - 6 - - - - - Green - - 2147483647 - - - - _popUpItemAction: - 7 - - - - - Dark Green - - 2147483647 - - - - _popUpItemAction: - 8 - - - - - Sea Green - - 2147483647 - - - - _popUpItemAction: - 9 - - - - - Turquoise - - 2147483647 - - - - _popUpItemAction: - 10 - - - - - Blue - - 2147483647 - - - - _popUpItemAction: - 11 - - - - - Dark Blue - - 2147483647 - - - - _popUpItemAction: - 12 - - - - - Dark Purple - - 2147483647 - - - - _popUpItemAction: - 13 - - - - - Violet - - 2147483647 - - - - _popUpItemAction: - 14 - - - - - Magenta - - 2147483647 - - - - _popUpItemAction: - 15 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{107, 157}, {136, 22}} - - - YES - - -2076049856 - 133120 - - - 109199615 - 129 - - - 400 - 75 - - - English - - 2147483647 - 1 - - - _popUpItemAction: - 1 - - - YES - - OtherViews - - YES - - - Japanese - - 2147483647 - - - _popUpItemAction: - - - - - - French - - 2147483647 - - - _popUpItemAction: - 2 - - - - - German - - 2147483647 - - - _popUpItemAction: - 3 - - - - - Italian - - 2147483647 - - - _popUpItemAction: - 4 - - - - - Spanish - - 2147483647 - - - _popUpItemAction: - 5 - - - - - - 1 - 1 - YES - YES - 2 - - - - - 268 - {{17, 45}, {226, 98}} - - - YES - - 67239424 - 272760832 - Note: To use this configuration, click Apply, and then reset the emulator. Also, these settings will be overridden if you are using an external firmware image. If you want to use this configuration, ensure that the Use External Firmware Image setting is disabled. - - - - - - - - - 268 - {{110, 186}, {133, 27}} - - - YES - - 71433728 - 131072 - - 330548400 - - - - 0.0 - 224 - - - - - - - 268 - {{17, 162}, {88, 14}} - - - YES - - 68288064 - 71435264 - Language: - - - - - - - - - 268 - {{17, 190}, {88, 14}} - - - YES - - 68288064 - 71435264 - Birthday: - - - - - - - - - 268 - {{17, 217}, {88, 14}} - - - YES - - 68288064 - 71435264 - Favorite Color: - - - - - - - - - 268 - {{17, 264}, {88, 14}} - - - YES - - 68288064 - 71435264 - Message: - - - - - - - - - 268 - {{17, 291}, {88, 14}} - - - YES - - 68288064 - 71435264 - Nickname: - - - - - - - - - 268 - {{110, 241}, {130, 40}} - - - YES - - -1805517311 - 272760832 - - - Enter a message... - - YES - - - - - - - 268 - {{110, 289}, {130, 19}} - - - YES - - -1804468671 - 272761856 - - - Enter a nickname... - - YES - - - - - - {260, 328} - - - NSView - - - - {260, 328} - {0, 328} - {260, 328} - 2 - 0.0 - 0.0 - - - - - 279 - 2 - {{1572, 795}, {194, 241}} - -461896704 - HUD Settings - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{18, 174}, {158, 18}} - - - YES - - -2080244224 - 131072 - Frame Counter - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{18, 154}, {158, 18}} - - - YES - - -2080244224 - 131072 - Frames Per Second - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{18, 134}, {158, 18}} - - - YES - - -2080244224 - 131072 - Input - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{18, 114}, {158, 18}} - - - YES - - -2080244224 - 131072 - Graphical Input - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{18, 94}, {158, 18}} - - - YES - - -2080244224 - 131072 - Lag Counter - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{18, 74}, {158, 18}} - - - YES - - -2080244224 - 131072 - Microphone - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{18, 54}, {158, 18}} - - - YES - - -2080244224 - 131072 - Real Time Clock - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{20, 18}, {154, 19}} - - - YES - - -2080244224 - 134217728 - Save Settings as Default - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{18, 205}, {158, 18}} - - - YES - - -2080244224 - 131072 - Enable HUD - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 12 - {{21, 196}, {153, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - {194, 241} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - 279 - 2 - {{1651, 276}, {204, 521}} - -461896704 - Display Video Settings - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{20, 18}, {164, 19}} - - - YES - - -2080244224 - 134217728 - Save Settings as Default - - - -2038152961 - 164 - - - 400 - 75 - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {129, 378}} - - - YES - 19 - 1 - - YES - - -2080244224 - 131072 - None - - - 1211912703 - 2 - - NSImage - NSRadioButton - - - - - 200 - 25 - - - 67239424 - 131072 - LQ2x - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + + 268 + {{198, 11}, {19, 27}} + + YES + + 67895328 + 0 + + + 12 + 1 + 100 + 1 + YES + + NO + + + + 268 + {{157, 16}, {40, 19}} + + YES + + -1804599231 + 71435264 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximum + maximumFractionDigits + minimum + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + -∞ + + + +∞ + + + + #0 + #0 + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + + 268 + {{74, 18}, {78, 14}} + + YES + + 68157504 + 71435264 + Block Size: + + + + + + NO + + + {{1, 1}, {250, 86}} + + + + {{17, 322}, {252, 102}} + + {0, 0} + + 67108864 + 0 + CPU Emulation Engine + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {286, 522} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + EmulationSettingsPanel + YES + + + + 256 + + YES + + + 268 + {{53, 18}, {154, 19}} + + YES + + -2080374784 + 134217728 + Apply + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{107, 212}, {136, 22}} + + YES + + -2076180416 + 133120 + + + 109199360 + 129 + + + 400 + 75 + + + Gray + + 2147483647 + 1 + + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Brown + + 2147483647 + + + + _popUpItemAction: + 1 + + + + + Red + + 2147483647 + + + + _popUpItemAction: + 2 + + + + + Pink + + 2147483647 + + + + _popUpItemAction: + 3 + + + + + Orange + + 2147483647 + + + + _popUpItemAction: + 4 + + + + + Yellow + + 2147483647 + + + + _popUpItemAction: + 5 + + + + + Lime Green + + 2147483647 + + + + _popUpItemAction: + 6 + + + + + Green + + 2147483647 + + + + _popUpItemAction: + 7 + + + + + Dark Green + + 2147483647 + + + + _popUpItemAction: + 8 + + + + + Sea Green + + 2147483647 + + + + _popUpItemAction: + 9 + + + + + Turquoise + + 2147483647 + + + + _popUpItemAction: + 10 + + + + + Blue + + 2147483647 + + + + _popUpItemAction: + 11 + + + + + Dark Blue + + 2147483647 + + + + _popUpItemAction: + 12 + + + + + Dark Purple + + 2147483647 + + + + _popUpItemAction: + 13 + + + + + Violet + + 2147483647 + + + + _popUpItemAction: + 14 + + + + + Magenta + + 2147483647 + + + + _popUpItemAction: + 15 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{107, 157}, {136, 22}} + + YES + + -2076180416 + 133120 + + + 109199360 + 129 + + + 400 + 75 + + + English + + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + YES + + + Japanese + + 2147483647 + + + _popUpItemAction: + + + + + + French + + 2147483647 + + + _popUpItemAction: + 2 + + + + + German + + 2147483647 + + + _popUpItemAction: + 3 + + + + + Italian + + 2147483647 + + + _popUpItemAction: + 4 + + + + + Spanish + + 2147483647 + + + _popUpItemAction: + 5 + + + + + + 1 + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 45}, {226, 98}} + + YES + + 67108864 + 272760832 + Note: To use this configuration, click Apply, and then reset the emulator. Also, these settings will be overridden if you are using an external firmware image. If you want to use this configuration, ensure that the Use External Firmware Image setting is disabled. + + + + + + NO + + + + 268 + {{110, 186}, {133, 27}} + + YES + + 71303168 + 131072 + + + + 0.0 + 224 + + + + NO + + + + 268 + {{17, 162}, {88, 14}} + + YES + + 68157504 + 71435264 + Language: + + + + + + NO + + + + 268 + {{17, 190}, {88, 14}} + + YES + + 68157504 + 71435264 + Birthday: + + + + + + NO + + + + 268 + {{17, 217}, {88, 14}} + + YES + + 68157504 + 71435264 + Favorite Color: + + + + + + NO + + + + 268 + {{17, 264}, {88, 14}} + + YES + + 68157504 + 71435264 + Message: + + + + + + NO + + + + 268 + {{17, 291}, {88, 14}} + + YES + + 68157504 + 71435264 + Nickname: + + + + + + NO + + + + 268 + {{110, 241}, {130, 40}} + + YES + + -1805647871 + 272760832 + + + Enter a message... + + YES + + + + NO + + + + 268 + {{110, 289}, {130, 19}} + + YES + + -1804599231 + 272761856 + + + Enter a nickname... + + YES + + + + NO + + + {260, 328} + NSView + + + + {260, 328} + {0, 328} + {260, 328} + 2 + 0.0 + 0.0 + + + + + 279 + 2 + {{1572, 795}, {194, 241}} + -461896704 + HUD Settings + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{18, 174}, {158, 18}} + + YES + + -2080374784 + 131072 + Frame Counter + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{18, 154}, {158, 18}} + + YES + + -2080374784 + 131072 + Frames Per Second + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{18, 134}, {158, 18}} + + YES + + -2080374784 + 131072 + Input + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{18, 114}, {158, 18}} + + YES + + -2080374784 + 131072 + Graphical Input + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{18, 94}, {158, 18}} + + YES + + -2080374784 + 131072 + Lag Counter + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{18, 74}, {158, 18}} + + YES + + -2080374784 + 131072 + Microphone + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{18, 54}, {158, 18}} + + YES + + -2080374784 + 131072 + Real Time Clock + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{20, 18}, {154, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{18, 205}, {158, 18}} + + YES + + -2080374784 + 131072 + Enable HUD + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 12 + {{21, 196}, {153, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + {194, 241} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 279 + 2 + {{1651, 276}, {204, 521}} + -461896704 + Set Video Output + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{20, 18}, {164, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {129, 378}} + + + YES + NO + 19 + 1 + + YES + + -2080374784 + 131072 + None + + + 1211912448 + 2 + + NSImage + NSRadioButton + + + + + 200 + 25 + + + 67108864 + 131072 + LQ2x + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -16042,342 +16364,342 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 1140981248 - 131072 - LQ2xS - - - 2 - 1211912703 - 0 - - 12779520 - - YES - - YES - - - - YES - - YES - size - state - value - widget - - - YES - regular - normal - - radiobutton - - - {18, 18} - 0 - YES - NSCalibratedRGBColorSpace - - - - - - - 400 - 75 - - - 1140981248 - 131072 - HQ2x - - - 3 - 1211912703 - 0 - - - 400 - 75 - - - 1140981248 - 131072 - HQ2xS - - - 4 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - HQ4x - - - 5 - 1211912703 - 0 - - - 400 - 75 - - - 1140981248 - 131072 - HQ4XS - - - 18 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - 2xSaI - - - 6 - 1211912703 - 0 - - - 400 - 75 - - - 1140981248 - 131072 - Super 2xSaI - - - 7 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - Super Eagle - - - 8 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - Scanline - - - 9 - 1211912703 - 0 - - - 400 - 75 - - - 1140981248 - 131072 - Bilinear - - - 10 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - Nearest 2x - - - 11 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - Nearest 1.5x - - - 12 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - Nearest+ 1.5x - - - 13 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - EPX - - - 14 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - EPX+ - - - 15 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - EPX 1.5x - - - 16 - 1211912703 - 0 - - 12779520 - - YES - - YES - - - - YES - - YES - size - state - value - widget - - - YES - regular - normal - - radiobutton - - - {18, 18} - 0 - YES - NSCalibratedRGBColorSpace - - - - - - - 400 - 75 - - - 67239424 - 131072 - EPX+ 1.5x - - - 17 - 1211912703 - 0 - - 400 - 75 - - - {129, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 1140850688 + 131072 + LQ2xS + + + 2 + 1211912448 + 0 + + 12779520 + + YES + + YES + + + + YES + + YES + size + state + value + widget + + + YES + regular + normal + + radiobutton + + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + 1140850688 + 131072 + HQ2x + + + 3 + 1211912448 + 0 + + + 400 + 75 + + + 1140850688 + 131072 + HQ2xS + + + 4 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + HQ4x + + + 5 + 1211912448 + 0 + + + 400 + 75 + + + 1140850688 + 131072 + HQ4XS + + + 18 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + 2xSaI + + + 6 + 1211912448 + 0 + + + 400 + 75 + + + 1140850688 + 131072 + Super 2xSaI + + + 7 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + Super Eagle + + + 8 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + Scanline + + + 9 + 1211912448 + 0 + + + 400 + 75 + + + 1140850688 + 131072 + Bilinear + + + 10 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + Nearest 2x + + + 11 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + Nearest 1.5x + + + 12 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + Nearest+ 1.5x + + + 13 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + EPX + + + 14 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + EPX+ + + + 15 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + EPX 1.5x + + + 16 + 1211912448 + 0 + + 12779520 + + YES + + YES + + + + YES + + YES + size + state + value + widget + + + YES + regular + normal + + radiobutton + + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + 67108864 + 131072 + EPX+ 1.5x + + + 17 + 1211912448 + 0 + + 400 + 75 + + + {129, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -16402,405 +16724,416 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - {{1, 1}, {168, 402}} - - - - - {{17, 41}, {170, 418}} - - - {0, 0} - - 67239424 - 0 - Video Filters - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{17, 485}, {169, 18}} - - - YES - - -2080244224 - 131072 - Use Bilinear Filtered Output - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{17, 465}, {135, 18}} - - - YES - - 67239424 - 131072 - Use Vertical Sync - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {204, 521} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - DisplayVideoSettingsPanel - - - 279 - 2 - {{149, 108}, {301, 560}} - -461896704 - 3D Rendering Settings - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 77}, {206, 18}} - - YES - - -2080244224 - 131072 - High-Precision Color Interpolation - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{15, 57}, {134, 18}} - - YES - - -2080244224 - 131072 - Enable Edge Marking - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{15, 37}, {80, 18}} - - YES - - -2080244224 - 131072 - Enable Fog - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{185, 12}, {45, 19}} - - YES - - -1804468671 - 71435264 - - - - - YES - - YES - allowsFloats - formatterBehavior - groupingSize - locale - maximum - maximumIntegerDigits - minimum - minimumIntegerDigits - negativeFormat - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - - - YES - - - - - - - - - # - -∞ - - - # - +∞ - - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - - - - - 268 - {{15, 14}, {165, 14}} - - YES - - 68288064 - 71435264 - Depth Comparison Threshold: - - - - - - - - - 268 - {{231, 7}, {19, 27}} - - YES - - 68025888 - 0 - - - 100 - 1 - YES - - - - {{1, 1}, {265, 103}} - - - - {{17, 241}, {267, 119}} - - {0, 0} - - 67239424 - 0 - SoftRasterizer Options - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{73, 18}, {154, 19}} - - YES - - -2080244224 - 134217728 - Save Settings as Default - - - -2038152961 - 164 - - - 400 - 75 - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {107, 58}} - - YES - 3 - 1 - - YES - - 67239424 - 131072 - None - - - 1211912703 - 0 - - - - 200 - 25 - - - -2080244224 - 131072 - SoftRasterizer - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {168, 402}} + + + + + {{17, 41}, {170, 418}} + + + {0, 0} + + 67108864 + 0 + Video Filters + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{17, 485}, {169, 18}} + + + YES + + -2080374784 + 131072 + Use Bilinear Filtered Output + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{17, 465}, {135, 18}} + + + YES + + 67108864 + 131072 + Use Vertical Sync + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {204, 521} + + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + DisplayVideoSettingsPanel + YES + + + 279 + 2 + {{149, 108}, {301, 560}} + -461896704 + 3D Rendering Settings + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 77}, {206, 18}} + + YES + + -2080374784 + 131072 + High-Precision Color Interpolation + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{15, 57}, {134, 18}} + + YES + + -2080374784 + 131072 + Enable Edge Marking + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{15, 37}, {80, 18}} + + YES + + -2080374784 + 131072 + Enable Fog + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{185, 12}, {45, 19}} + + YES + + -1804599231 + 71435264 + + + + + YES + + YES + allowsFloats + formatterBehavior + groupingSize + locale + maximum + maximumIntegerDigits + minimum + minimumIntegerDigits + negativeFormat + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + + + YES + + + + + + + + + # + -∞ + + + # + +∞ + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + NO + + + + 268 + {{15, 14}, {165, 14}} + + YES + + 68157504 + 71435264 + Depth Comparison Threshold: + + + + + + NO + + + + 268 + {{231, 7}, {19, 27}} + + YES + + 67895328 + 0 + + + 100 + 1 + YES + + NO + + + {{1, 1}, {265, 103}} + + + + {{17, 241}, {267, 119}} + + {0, 0} + + 67108864 + 0 + SoftRasterizer Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{73, 18}, {154, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {107, 58}} + + YES + NO + 3 + 1 + + YES + + 67108864 + 131072 + None + + + 1211912448 + 0 + + + + 200 + 25 + + + -2080374784 + 131072 + SoftRasterizer + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -16877,52 +17210,52 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 67239424 - 131072 - OpenGL - - - 2 - 1211912703 - 0 - - 400 - 75 - - - {107, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 67108864 + 131072 + OpenGL + + + 2 + 1211912448 + 0 + + 400 + 75 + + + {107, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -16947,101 +17280,102 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 1 - - - - - - - {{1, 1}, {265, 82}} - - - - {{17, 442}, {267, 98}} - - {0, 0} - - 67239424 - 0 - 3D Rendering Engine - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {120, 98}} - - YES - 5 - 1 - - YES - - -2080244224 - 131072 - Automatic - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 131072 - Single-Threaded - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 1 + + + + + + + {{1, 1}, {265, 82}} + + + + {{17, 442}, {267, 98}} + + {0, 0} + + 67108864 + 0 + 3D Rendering Engine + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {120, 98}} + + YES + NO + 5 + 1 + + YES + + -2080374784 + 131072 + Automatic + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + Single-Threaded + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -17118,113 +17452,113 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - 67239424 - 131072 - 2 Threads - - - 2 - 1211912703 - 0 - - 12779520 - - YES - - YES - - - - YES - - YES - size - state - value - widget - - - YES - regular - normal - - radiobutton - - - {18, 18} - 0 - YES - NSCalibratedRGBColorSpace - - - - - - - 400 - 75 - - - 67239424 - 131072 - 4 Threads - - - 4 - 1211912703 - 0 - - - 400 - 75 - - - 67239424 - 131072 - 8 Threads - - - 8 - 1211912703 - 0 - - 400 - 75 - - - {120, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + 67108864 + 131072 + 2 Threads + + + 2 + 1211912448 + 0 + + 12779520 + + YES + + YES + + + + YES + + YES + size + state + value + widget + + + YES + regular + normal + + radiobutton + + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + 67108864 + 131072 + 4 Threads + + + 4 + 1211912448 + 0 + + + 400 + 75 + + + 67108864 + 131072 + 8 Threads + + + 8 + 1211912448 + 0 + + 400 + 75 + + + {120, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -17249,259 +17583,263 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - {{1, 1}, {265, 122}} - - - - {{17, 41}, {267, 138}} - - {0, 0} - - 67239424 - 0 - Rendering Threads - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 32}, {113, 18}} - - YES - - -2080244224 - 131072 - Enable Line Hack - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{15, 12}, {108, 18}} - - YES - - -2080244224 - 131072 - Enable Textures - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {265, 58}} - - - - {{17, 364}, {267, 74}} - - {0, 0} - - 67239424 - 0 - General Settings - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 256 - - YES - - - 268 - {{16, 12}, {192, 18}} - - YES - - 67239424 - 131072 - Enable Multisample Antialiasing - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {265, 38}} - - - - {{17, 183}, {267, 54}} - - {0, 0} - - 67239424 - 0 - OpenGL Options - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {301, 560} - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - 3DRenderingSettingsPanel - - - 279 - 2 - {{230, 30}, {288, 511}} - -461896704 - Sound Settings - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {61, 58}} - - - YES - 3 - 1 - - YES - - 67239424 - 131072 - None - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 131072 - Linear - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {265, 122}} + + + + {{17, 41}, {267, 138}} + + {0, 0} + + 67108864 + 0 + Rendering Threads + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 32}, {113, 18}} + + YES + + -2080374784 + 131072 + Enable Line Hack + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{15, 12}, {108, 18}} + + YES + + -2080374784 + 131072 + Enable Textures + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {265, 58}} + + + + {{17, 364}, {267, 74}} + + {0, 0} + + 67108864 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{16, 12}, {192, 18}} + + YES + + 67108864 + 131072 + Enable Multisample Antialiasing + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {265, 38}} + + + + {{17, 183}, {267, 54}} + + {0, 0} + + 67108864 + 0 + OpenGL Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {301, 560} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + 3DRenderingSettingsPanel + YES + + + 279 + 2 + {{230, 30}, {288, 511}} + -461896704 + Sound Settings + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {61, 58}} + + YES + NO + 3 + 1 + + YES + + 67108864 + 131072 + None + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + Linear + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -17578,52 +17916,52 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - -2080244224 - 131072 - Cosine - - - 2 - 1211912703 - 0 - - 400 - 75 - - - {61, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + -2080374784 + 131072 + Cosine + + + 2 + 1211912448 + 0 + + 400 + 75 + + + {61, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -17648,104 +17986,102 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 2 - - - - - - - {{1, 1}, {253, 82}} - - - - - {{16, 189}, {255, 98}} - - - {0, 0} - - 67239424 - 0 - SPU Interpolation Method - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 80}, {154, 38}} - - - YES - 2 - 1 - - YES - - 67239424 - 131072 - Dual SPU Synch/Asynch - - - 1211912703 - 0 - - - - 200 - 25 - - - -2080244224 - 131072 - Synchronous - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 2 + + + + + + + {{1, 1}, {253, 82}} + + + + {{16, 189}, {255, 98}} + + {0, 0} + + 67108864 + 0 + SPU Interpolation Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 80}, {154, 38}} + + YES + NO + 2 + 1 + + YES + + 67108864 + 131072 + Dual SPU Synch/Asynch + + + 1211912448 + 0 + + + + 200 + 25 + + + -2080374784 + 131072 + Synchronous + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -17822,39 +18158,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - {154, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {154, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -17879,67 +18215,67 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 1 - - - - - - - - 268 - {{53, 14}, {100, 58}} - - - YES - 3 - 1 - - YES - - 67239424 - 131072 - "N" Method - - - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 131072 - "Z" Method - - - 1 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{53, 14}, {100, 58}} + + YES + NO + 3 + 1 + + YES + + 67108864 + 131072 + "N" Method + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + "Z" Method + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -18016,52 +18352,52 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - -2080244224 - 131072 - "P" Method - - - 2 - 1211912703 - 0 - - 400 - 75 - - - {100, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + -2080374784 + 131072 + "P" Method + + + 2 + 1211912448 + 0 + + 400 + 75 + + + {100, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -18086,353 +18422,347 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 2 - - - - - - - {{1, 1}, {253, 128}} - - - - - {{16, 41}, {255, 144}} - - - {0, 0} - - 67239424 - 0 - SPU Sound Synchronization Method - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 12}, {129, 18}} - - - YES - - -2080244224 - 131072 - Advanced SPU Logic - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {253, 38}} - - - - - {{16, 291}, {255, 54}} - - - {0, 0} - - 67239424 - 0 - SPU Configuration - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{47, 13}, {132, 21}} - - - YES - - 67501824 - 0 - - - 100 - 0.0 - 100 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{182, 17}, {56, 17}} - - - YES - - 68288064 - 71308288 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - lenient - locale - maximumFractionDigits - minimumFractionDigits - multiplier - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - - -∞ - - - +∞ - - - - #0.0% - #0.0% - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.1f%% - - - - - - - - 289 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{18, 14}, {20, 20}} - - - YES - - 130560 - 33554432 - - 0 - 2 - 0 - YES - - YES - - - {{1, 1}, {253, 44}} - - - - - {{16, 349}, {255, 60}} - - - {0, 0} - - 67239424 - 0 - General Settings - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{66, 18}, {154, 19}} - - - YES - - -2080244224 - 134217728 - Save Settings as Default - - - -2038152961 - 164 - - - 400 - 75 - - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{18, 14}, {116, 38}} - - - YES - 2 - 1 - - YES - - 67239424 - 131072 - None - - - 1211912703 - 0 - - - - 200 - 25 - - - -2080244224 - 131072 - OS X Core Audio - - - 58325 - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + 2 + + + + + + + {{1, 1}, {253, 128}} + + + + {{16, 41}, {255, 144}} + + {0, 0} + + 67108864 + 0 + SPU Sound Synchronization Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 12}, {129, 18}} + + YES + + -2080374784 + 131072 + Advanced SPU Logic + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {253, 38}} + + + + {{16, 291}, {255, 54}} + + {0, 0} + + 67108864 + 0 + SPU Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{47, 13}, {132, 21}} + + YES + + 67371264 + 0 + + + 100 + 0.0 + 100 + 0.0 + 0 + 1 + NO + NO + + NO + + + + 268 + {{182, 17}, {56, 17}} + + YES + + 68157504 + 71308288 + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + formatterBehavior + lenient + locale + maximumFractionDigits + minimumFractionDigits + multiplier + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + + -∞ + + + +∞ + + + + #0.0% + #0.0% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + %1.1f%% + + + + + NO + + + + 289 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{18, 14}, {20, 20}} + + YES + + 134217728 + 33554432 + + 0 + 2 + 0 + YES + + NO + YES + + + {{1, 1}, {253, 44}} + + + + {{16, 349}, {255, 60}} + + {0, 0} + + 67108864 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{66, 18}, {154, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 14}, {116, 38}} + + YES + NO + 2 + 1 + + YES + + 67108864 + 131072 + None + + + 1211912448 + 0 + + + + 200 + 25 + + + -2080374784 + 131072 + OS X Core Audio + + + 58325 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -18509,39 +18839,39 @@ AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - {116, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 131072 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + + + 400 + 75 + + + {116, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -18566,35083 +18896,33487 @@ AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 1 - - - - - - - {{1, 1}, {253, 62}} - - - - - {{16, 413}, {255, 78}} - - - {0, 0} - - 67239424 - 0 - Audio Output Engine - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {288, 511} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - SoundSettingsPanel - - - 8215 - 2 - {{107, 480}, {580, 588}} - -461897728 - ROM Info - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{20, 440}, {128, 128}} - - YES - - 130560 - 33554432 - - 0 - 3 - 0 - NO - - YES - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 89}, {131, 17}} - - YES - - 68288064 - 272634880 - ROM Name: - - - - - - - - - 268 - {{15, 64}, {131, 17}} - - YES - - 68288064 - 272630784 - ROM Serial: - - - - - - - - - 268 - {{15, 39}, {131, 17}} - - YES - - 68288064 - 272630784 - Maker Code: - - - - - - - - - 268 - {{15, 14}, {131, 17}} - - YES - - 68288064 - 272630784 - Chip Size: - - - - - - - - - 268 - {{148, 89}, {245, 17}} - - YES - - 70385217 - 4199424 - - - ? - - - - 1 - MSAxIDEAA - - - - - - 268 - {{148, 64}, {245, 17}} - - YES - - 70385217 - 4199424 - - - ? - - - - - - - - 268 - {{148, 39}, {245, 17}} - - YES - - 70385217 - 4199424 - - - ? - - - - - - - - 268 - {{148, 14}, {245, 17}} - - YES - - 70385217 - 4199424 - - - ? - - - - - - - {{1, 1}, {408, 116}} - - - - {{153, 436}, {410, 132}} - - {0, 0} - - 67239424 - 0 - General Info - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 376}, {186, 14}} - - YES - - 68288064 - 272897024 - JAPANESE TITLE: - - - - - - - - - 268 - {{15, 312}, {186, 14}} - - YES - - 68288064 - 272897024 - ENGLISH TITLE: - - - - - - - - - 268 - {{15, 248}, {186, 14}} - - YES - - 68288064 - 272897024 - FRENCH TITLE: - - - - - - - - - 268 - {{15, 184}, {186, 14}} - - YES - - 68288064 - 272897024 - GERMAN TITLE: - - - - - - - - - 268 - {{15, 120}, {186, 14}} - - YES - - 68288064 - 272897024 - ITALIAN TITLE: - - - - - - - - - 268 - {{15, 56}, {186, 14}} - - YES - - 68288064 - 272897024 - SPANISH TITLE: - - - - - - - - - 268 - {{15, 334}, {186, 42}} - - YES - - 69336577 - 272896000 - - - ? - - - - - - - - 268 - {{15, 270}, {186, 42}} - - YES - - 69336577 - 272896000 - - - ? - - - - - - - - 268 - {{15, 206}, {186, 42}} - - YES - - 69336577 - 272896000 - - - ? - - - - - - - - 268 - {{15, 142}, {186, 42}} - - YES - - 69336577 - 272896000 - - - ? - - - - - - - - 268 - {{15, 78}, {186, 42}} - - YES - - 69336577 - 272896000 - - - ? - - - - - - - - 268 - {{15, 14}, {186, 42}} - - YES - - 69336577 - 272896000 - - - ? - - - - - - - {{1, 1}, {216, 400}} - - - - {{17, 16}, {218, 416}} - - {0, 0} - - 67239424 - 0 - Titles - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 168}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM9 Binary ROM Offset: - - - - - - - - - 268 - {{15, 146}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM9 Binary Entry Address: - - - - - - - - - 268 - {{15, 124}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM9 Binary Start Address: - - - - - - - - - 268 - {{15, 102}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM9 Binary Size: - - - - - - - - - 268 - {{15, 80}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM7 Binary ROM Offset: - - - - - - - - - 268 - {{15, 58}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM7 Binary Entry Address: - - - - - - - - - 268 - {{15, 36}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM7 Binary Start Address: - - - - - - - - - 268 - {{15, 14}, {186, 14}} - - YES - - 68288064 - 272630784 - ARM7 Binary Size: - - - - - - - - - 268 - {{203, 168}, {106, 14}} - - YES - - 70385217 - 71308288 - - ? - - - - - - - - 268 - {{203, 146}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{203, 124}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{203, 102}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? bytes - - - - - - - - 268 - {{203, 80}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{203, 58}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{203, 36}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{203, 14}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? bytes - - - - - - - {{1, 1}, {324, 192}} - - - - {{237, 224}, {326, 208}} - - {0, 0} - - 67239424 - 0 - ARM9 & ARM7 Binaries - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 80}, {186, 14}} - - YES - - 68288064 - 272630784 - FNT ROM Offset: - - - - - - - - - 268 - {{203, 80}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{15, 58}, {186, 14}} - - YES - - 68288064 - 272630784 - FNT Size: - - - - - - - - - 268 - {{203, 58}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? bytes - - - - - - - - 268 - {{15, 36}, {186, 14}} - - YES - - 68288064 - 272630784 - FAT ROM Offset: - - - - - - - - - 268 - {{203, 36}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{15, 14}, {186, 14}} - - YES - - 68288064 - 272630784 - FAT Size: - - - - - - - - - 268 - {{203, 14}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? bytes - - - - - - - {{1, 1}, {324, 104}} - - - - {{237, 98}, {326, 120}} - - {0, 0} - - 67239424 - 0 - File System - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 274 - - YES - - - 268 - {{15, 36}, {186, 14}} - - YES - - 68288064 - 272630784 - Icon/Title Region ROM Offset: - - - - - - - - - 268 - {{203, 36}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - - 268 - {{15, 14}, {186, 14}} - - YES - - 68288064 - 272630784 - Used ROM Size: - - - - - - - - - 268 - {{203, 14}, {106, 14}} - - YES - - 70385217 - 71308288 - - - ? - - - - - - - {{1, 1}, {324, 60}} - - - - {{237, 16}, {326, 76}} - - {0, 0} - - 67239424 - 0 - Miscellaneous - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {580, 588} - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - ROMInfoPanel - - - 279 - 2 - {{1360, 99}, {467, 128}} - -461897728 - Set Speed Limit - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{30, 43}, {411, 26}} - - - YES - - -2079981824 - 0 - - - 10 - 0.0 - 1 - 0.0 - 11 - 1 - NO - NO - - - - - 268 - {{20, 70}, {38, 17}} - - - YES - - 68288064 - 138413056 - 0x - - - - - - - - - 268 - {{412, 70}, {38, 17}} - - - YES - - 68288064 - 138413056 - 10x - - - - - - - - - 268 - {{98, 70}, {38, 17}} - - - YES - - 68288064 - 138413056 - 2x - - - - - - - - - 268 - {{177, 70}, {38, 17}} - - - YES - - 68288064 - 138413056 - 4x - - - - - - - - - 268 - {{255, 70}, {38, 17}} - - - YES - - 68288064 - 138413056 - 6x - - - - - - - - - 268 - {{335, 70}, {38, 17}} - - - YES - - 68288064 - 138413056 - 8x - - - - - - - - - 268 - {{32, 18}, {133, 19}} - - - 100 - YES - - 67239424 - 134217728 - Set to Normal Speed - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{203, 21}, {156, 17}} - - - YES - - 68288064 - 71304192 - Speed limit set to: - - - - - - - - - 268 - {{361, 21}, {81, 17}} - - - YES - - 68288064 - 4195328 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - lenient - locale - maximumFractionDigits - minimumFractionDigits - negativeFormat - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - #0.00x - -∞ - - - #0.00x - +∞ - - - - #0.00x - #0.00x - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.2fx - - - - - - - - 268 - {{158, 93}, {154, 18}} - - - YES - - -2080244224 - 0 - Enable Speed Limit - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {467, 128} - - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - SetSpeedLimitPanel - - - 279 - 2 - {{162, 281}, {213, 198}} - -461897728 - Set Rotation - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{88, 119}, {32, 34}} - - YES - - 67501824 - 0 - - - 360 - 0.0 - 0.0 - 0.0 - 4 - 1 - NO - NO - 1 - - - - - 268 - {{85, 161}, {38, 17}} - - YES - - 68288064 - 138413056 - 0š - - - - - - - - - 268 - {{85, 94}, {39, 17}} - - YES - - 68288064 - 138413056 - 180š - - - - - - - - - 268 - {{44, 127}, {39, 17}} - - YES - - 68288064 - 138413056 - 270š - - - - - - - - - 268 - {{125, 127}, {38, 17}} - - YES - - 68288064 - 138413056 - 90š - - - - - - - - - 268 - {{127, 69}, {57, 17}} - - YES - - 68288064 - 272630784 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - currencySymbol - formatterBehavior - internationalCurrencySymbol - lenient - locale - maximumFractionDigits - maximumIntegerDigits - minimumFractionDigits - minimumIntegerDigits - negativeFormat - negativeSuffix - numberStyle - positiveFormat - positiveSuffix - - - YES - - - ÂĪ - - ÂĪÂĪ - - - - - - - #0.00š - š - - #0.00š - š - - - #0.00š - #0.00š - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - rotX - - - - - - - - 268 - {{24, 69}, {101, 17}} - - YES - - 68288064 - 272630784 - Rotation set to: - - - - - - - - - 268 - {{27, 42}, {154, 19}} - - YES - - -2080244224 - 134217728 - Set to 0š - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{27, 17}, {154, 19}} - - YES - - -2080244224 - 134217728 - Save Settings as Default - - - -2038152961 - 164 - - - 400 - 75 - - - - {213, 198} - - {{0, 0}, {1440, 878}} - {1.79769e+308, 1.79769e+308} - SetRotationPanel - - - 279 - 2 - {{230, 408}, {441, 133}} - -461896704 - Set Separation - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{30, 73}, {385, 26}} - - YES - - -2079981824 - 0 - - - 2 - 0.0 - 1 - 0.0 - 5 - 1 - NO - NO - - - - - 268 - {{389, 99}, {38, 14}} - - YES - - 68288064 - 138544128 - 200% - - - - - - - - - 268 - {{298, 99}, {38, 14}} - - YES - - 68288064 - 138544128 - 150% - - - - - - - - - 268 - {{205, 99}, {38, 14}} - - YES - - 68288064 - 138544128 - 100% - - - - - - - - - 268 - {{113, 99}, {38, 14}} - - YES - - 68288064 - 138544128 - 50% - - - - - - - - - 268 - {{22, 99}, {38, 14}} - - YES - - 68288064 - 138544128 - 0% - - - - - - - - - 268 - {{249, 51}, {107, 17}} - - YES - - 68288064 - 71304192 - Gap Percentage: - - - - - - - - - 268 - {{358, 51}, {66, 17}} - - YES - - 68288064 - -2143288320 - - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - locale - maximumFractionDigits - maximumIntegerDigits - minimumFractionDigits - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - -∞ - - - +∞ - - - - #0.0% - #0.0% - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - 1.1f% - - - - - - - - 268 - {{20, 48}, {100, 19}} - - YES - - -2080244224 - 134217728 - Set to 0% - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{128, 48}, {100, 19}} - - 100 - YES - - -2080244224 - 134217728 - Set to 100% - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{147, 18}, {154, 19}} - - YES - - -2080244224 - 134217728 - Save Settings as Default - - - -2038152961 - 164 - - - 400 - 75 - - - - {441, 133} - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - SetSeparationPanel - - - 279 - 2 - {{230, 202}, {173, 339}} - -461896704 - GPU Layers - NSPanel - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 12 - - YES - - - 256 - - YES - - - 268 - {{15, 112}, {106, 18}} - - YES - - -2080244224 - 131072 - GPU (All Layers) - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 92}, {44, 18}} - - 1 - YES - - -2080244224 - 131072 - BG0 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 72}, {44, 18}} - - 2 - YES - - -2080244224 - 131072 - BG1 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 52}, {44, 18}} - - 3 - YES - - -2080244224 - 131072 - BG2 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 32}, {44, 18}} - - 4 - YES - - -2080244224 - 131072 - BG3 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 12}, {44, 18}} - - 5 - YES - - -2080244224 - 131072 - OBJ - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {137, 138}} - - - - {{17, 174}, {139, 154}} - - {0, 0} - - 67239424 - 0 - Main - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - YES - - - 256 - - YES - - - 268 - {{15, 112}, {106, 18}} - - 6 - YES - - -2080244224 - 131072 - GPU (All Layers) - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 92}, {44, 18}} - - 7 - YES - - -2080244224 - 131072 - BG0 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 72}, {44, 18}} - - 8 - YES - - -2080244224 - 131072 - BG1 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 52}, {44, 18}} - - 9 - YES - - -2080244224 - 131072 - BG2 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 32}, {44, 18}} - - 10 - YES - - -2080244224 - 131072 - BG3 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{33, 12}, {44, 18}} - - 11 - YES - - -2080244224 - 131072 - OBJ - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {137, 138}} - - - - {{17, 16}, {139, 154}} - - {0, 0} - - 67239424 - 0 - Sub - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {173, 339} - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - GPULayersPanel - - - - 268 - - YES - - - 268 - {{195, 5}, {226, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - 400 - 75 - - - DeSmuME ROM Save (.dsv) - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - No$GBA ROM Save (.sav) - - 2147483647 - - - _popUpItemAction: - 1 - - - - - Raw Save File (.sav) - - 2147483647 - - - _popUpItemAction: - 2 - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{17, 11}, {176, 17}} - - - YES - - 68288064 - 71304192 - Select ROM Save Format: - - - - - - - - {450, 35} - - - NSView - - - 7 - 2 - {{75, 507}, {580, 592}} - 1685586944 - Troubleshooting Form - NSWindow - - {580, 592} - {580, 592} - - - 256 - {580, 592} - - - - {{0, 0}, {1920, 1178}} - {580, 614} - {580, 614} - - - - 268 - - YES - - - 1292 - - {{364, 339}, {32, 32}} - - - 28682 - 100 - - - - 265 - {{396, 343}, {168, 28}} - - - YES - - 69336577 - 272764928 - TmFtZToKU2VyaWFsOg - - - - - - - - - 265 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{364, 341}, {30, 30}} - - - YES - - 130560 - 33554432 - - 0 - 3 - 0 - NO - - YES - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - - {{0, 69}, {523, 133}} - - - - - - - - - - - - YES - - - 6 - - - - 523 - 1 - - - 12163 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {525, 1e+07} - {223, 133} - - - - {{1, 1}, {523, 202}} - - - - - - - 4 - - - - 256 - {{524, 1}, {15, 202}} - - - - _doScroller: - 0.99248120300751874 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{20, 61}, {540, 204}} - - - - 18 - - - - - - - 288 - {{125, 16}, {438, 28}} - - - YES - - 67239424 - 272760832 - And that's it! Click Continue to review your information before submitting it to the DeSmuME team. - - - - - - - - - 34 - {{12, 50}, {556, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 269 - {{17, 273}, {546, 28}} - - - YES - - 67239424 - 272760832 - In the field below, briefly describe your situation and what you need help with. (Please be as specific as possible! It will help us to understand your situation better.) - - - - - - - - - 269 - {{17, 309}, {546, 17}} - - - YES - - 68288064 - 272630784 - Tell us what you need help with. - - - - - - - - - 10 - {{12, 332}, {556, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 269 - {{17, 489}, {546, 42}} - - - YES - - 67239424 - 272760832 - Do you need help with using DeSmuME? If so, it never hurts to ask! Just fill out this form and DeSmuME will prepare all the troubleshooting information for you to send to the DeSmuME team. This information will help us respond to your issue quicker and easier. - - - - - - - - - 269 - {{17, 539}, {546, 17}} - - - YES - - 68288064 - 138413056 - DeSmuME Technical Support Request Form - - - - - - - - - 10 - {{12, 478}, {556, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 269 - {{17, 455}, {546, 17}} - - - YES - - 68288064 - 272630784 - Tell us about the ROM. - - - - - - - - - 269 - {{17, 405}, {546, 42}} - - - YES - - 67239424 - 272760832 - If your issue is related to a specific ROM, enter its name and serial in the fields below. Otherwise, you may leave these fields blank. (It may be easier to load the ROM first, then click Use Currently Loaded ROM to let DeSmuME fill in this information for you.) - - - - - - - - - 268 - {{17, 347}, {77, 17}} - - - YES - - 68288064 - 272630784 - ROM Serial: - - - - - - - - - 268 - {{17, 377}, {78, 17}} - - - YES - - 68288064 - 272630784 - ROM Name: - - - - - - - - - 266 - {{100, 345}, {256, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 266 - {{100, 375}, {256, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 265 - {{358, 370}, {209, 32}} - - - YES - - 67239424 - 134217728 - Use Currently Loaded ROM - - - -2038284033 - 129 - - - 200 - 25 - - - - - 288 - {{14, 12}, {112, 32}} - - - YES - - 67239424 - 134217728 - Continue - - - -2038284033 - 129 - - - 200 - 25 - - - - {580, 567} - - - NSView - - - - 268 - - YES - - - 1292 - - {{363, 339}, {32, 32}} - - - 28682 - 100 - - - - 265 - {{396, 343}, {168, 28}} - - - YES - - 69336577 - 272764928 - TmFtZToKU2VyaWFsOg - - - - - - - - - 265 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{364, 341}, {30, 30}} - - - YES - - 130560 - 33554432 - - 0 - 3 - 0 - NO - - YES - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - - {{0, 18}, {524, 62}} - - - - - - - - - - - - YES - - - 6 - - - - 524 - 1 - - - 12163 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {531, 1e+07} - {223, 62} - - - - {{1, 1}, {524, 80}} - - - - - - - 4 - - - - 256 - {{525, 1}, {15, 80}} - - - - _doScroller: - 0.99248120300751874 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{20, 61}, {541, 82}} - - - - 18 - - - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - - {{0, 6}, {523, 65}} - - - - - - - - - - - - YES - - - 6 - - - - 523 - 1 - - - 12163 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {523, 1e+07} - {223, 65} - - - - {{1, 1}, {523, 80}} - - - - - - - 4 - - - - 256 - {{524, 1}, {15, 80}} - - - - _doScroller: - 0.99248120300751874 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{20, 167}, {540, 82}} - - - - 18 - - - - - - - 288 - {{125, 16}, {438, 28}} - - - YES - - 67239424 - 272760832 - And that's it! Click Continue to review your information before submitting it to the DeSmuME team. - - - - - - - - - 34 - {{12, 50}, {556, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 256 - {{17, 145}, {206, 14}} - - - YES - - 68288064 - 272761856 - Expected Behavior: - - - - - - - - - 256 - {{17, 251}, {206, 14}} - - - YES - - 68288064 - 272761856 - Observed Behavior: - - - - - - - - - 269 - {{17, 273}, {546, 28}} - - - YES - - 67239424 - 272760832 - In the fields below, give us specific details on what you OBSERVED happened, and then what you EXPECTED to happen. - - - - - - - - - 269 - {{17, 309}, {546, 17}} - - - YES - - 68288064 - 272630784 - Tell us what is happening. - - - - - - - - - 10 - {{12, 332}, {556, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 269 - {{17, 489}, {546, 42}} - - - YES - - 67239424 - 272760832 - Think you just spotted a bug with DeSmuME? Be sure to let us know! Just fill out this form and DeSmuME will prepare all the troubleshooting information for you to send to the DeSmuME team. This information will help us respond to your bug report quicker and easier. - - - - - - - - - 269 - {{17, 539}, {546, 17}} - - - YES - - 68288064 - 138413056 - DeSmuME Bug Report Form - - - - - - - - - 10 - {{12, 478}, {556, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 269 - {{17, 455}, {546, 17}} - - - YES - - 68288064 - 272630784 - Tell us about the ROM. - - - - - - - - - 269 - {{17, 405}, {546, 42}} - - - YES - - 67239424 - 272760832 - If your bug is related to a specific ROM, enter its name and serial in the fields below. Otherwise, you may leave these fields blank. (It may be easier to load the ROM first, then click Use Currently Loaded ROM to let DeSmuME fill in this information for you.) - - - - - - - - - 268 - {{17, 347}, {77, 17}} - - - YES - - 68288064 - 272630784 - ROM Serial: - - - - - - - - - 268 - {{17, 377}, {78, 17}} - - - YES - - 68288064 - 272630784 - ROM Name: - - - - - - - - - 266 - {{100, 345}, {255, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 266 - {{100, 375}, {255, 22}} - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 265 - {{358, 370}, {209, 32}} - - - YES - - 67239424 - 134217728 - Use Currently Loaded ROM - - - -2038284033 - 129 - - - 200 - 25 - - - - - 288 - {{14, 12}, {112, 32}} - - - YES - - 67239424 - 134217728 - Continue - - - -2038284033 - 129 - - - 200 - 25 - - - - {580, 567} - - - NSView - - - - 268 - - YES - - - 268 - {{342, 55}, {224, 32}} - - - YES - - 67239424 - 134217728 - Copy Info to Clipboard - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{17, 52}, {326, 42}} - - - YES - - 67239424 - 272760832 - Please copy-paste the above information into our tech support webpage. This will ensure the fastest response time from us. - - - - - - - - - 268 - {{342, 12}, {224, 32}} - - - YES - - 67239424 - 134217728 - Go to Tech Support Webpage - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{14, 12}, {112, 32}} - - - YES - - 67239424 - 134217728 - Back - - - -2038284033 - 129 - - - 200 - 25 - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - {{0, 157}, {523, 14}} - - - - - - - - - - - - YES - - - 6 - - - - 523 - 1 - - - 2305 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 6 - {597, 1e+07} - {223, 0} - - - - {{1, 1}, {523, 443}} - - - - - - - 4 - - - - 256 - {{524, 1}, {15, 443}} - - - - _doScroller: - 1 - 0.85256409645080566 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{20, 102}, {540, 445}} - - - - 18 - - - - - - {580, 567} - - - NSView - - - TroubleshootingWindowDelegate - - - - YES - readMePath - licensePath - authorsPath - changeLogPath - descriptionString - buildInfoString - aboutTextFilesFont - - YES - - - - - YES - isSpeedLimitEnabled - isCheatingEnabled - speedScalar - isFrameSkipEnabled - emuFlagAdvancedBusLevelTiming - emuFlagUseExternalBios - emuFlagEmulateBiosInterrupts - emuFlagPatchDelayLoop - emuFlagUseExternalFirmware - emuFlagFirmwareBoot - emuFlagDebugConsole - emuFlagEmulateEnsata - cpuEmulationEngine - emuFlagRigorousTiming - slot1StatusText - slot1DeviceType - maxJITBlockSize - cdsGPU.layerMainGPU - cdsGPU.layerMainBG0 - cdsGPU.layerMainBG1 - cdsGPU.layerMainBG2 - cdsGPU.layerMainBG3 - cdsGPU.layerMainOBJ - cdsGPU.layerSubGPU - cdsGPU.layerSubBG0 - cdsGPU.layerSubBG1 - cdsGPU.layerSubBG2 - cdsGPU.layerSubBG3 - cdsGPU.layerSubOBJ - - CocoaDSCore - - - - - YES - spuInterpolationMode - spuSyncMode - spuSyncMethod - spuAdvancedLogic - volume - audioOutputEngine - - YES - - - - - YES - isWorking - isRomLoading - statusText - currentVolumeValue - currentVolumeIcon - isShowingSaveStateDialog - isShowingFileMigrationDialog - isUserInterfaceBlockingExecution - currentSaveStateURL - selectedRomSaveTypeID - currentRom - render3DRenderingEngine - render3DHighPrecisionColorInterpolation - render3DEdgeMarking - render3DFog - render3DTextures - render3DDepthComparisonThreshold - render3DThreads - render3DLineHack - render3DMultisample - mainWindow - mainWindow.displayRotation - mainWindow.videoFilterType - mainWindow.useBilinearOutput - mainWindow.useVerticalSync - mainWindow.screenshotFileFormat - selectedExportRomSaveID - mainWindow.displayGap - - EmuControllerDelegate - - - - - YES - hasSelection - hasItems - cheatList - cheatSearchStyle - cheatSearchSignType - cheatSearchSearchValue - cheatSearchAddressCount - isRunningSearch - isSearchStarted - cheatDBTitle - cheatDBItemCount - cheatDBDate - - YES - - - - - YES - Input_Up - Input_Down - Input_Left - Input_Right - Input_A - Input_B - Input_X - Input_Y - Input_L - Input_R - Input_Start - Input_Select - Input_Microphone - Input_Lid - Input_Debug - Input_SpeedHalf - Input_SpeedDouble - Input_HUD - Input_Execute - Input_Pause - Input_Reset - Arm7BiosImageName - Arm9BiosImageName - FirmwareImageName - AutoloadRomName - VideoFilterPreviewImage - volumeIconImage - R4CheatDatabaseName - AdvansceneDatabaseName - - YES - - - - - YES - romName - romSerial - supportRequestText - bugReportObservedText - bugReportExpectedText - finalFormText - goWebpageButtonTitle - copyPasteHelpText - - - - - - YES - nickname - message - favoriteColor - birthday - language - consoleType - - CocoaDSFirmware - - - - - YES - gameTitle - gameCode - makerCode - cardSize - bannerJapanese - bannerEnglish - bannerFrench - bannerGerman - bannerItalian - bannerSpanish - fntOffset - fntTableSize - fatOffset - fatSize - iconOffset - romSize - iconImage - arm9BinaryOffset - arm9BinaryEntryAddress - arm9BinaryStartAddress - arm9BinarySize - arm7BinaryOffset - arm7BinaryEntryAddress - arm7BinaryStartAddress - arm7BinarySize - romInternalName - romSerial - romNameAndSerialInfo - - - - - - YES - enabled - cheatType - description - cheatTypeIcon - isSupportedCheatType - freezeType - codeCount - bytes - memAddress - value - code - memAddressString - memAddressSixDigitString - - CocoaDSCheatItem - YES - - - - - YES - Name - IsDefaultType - Mappings - - YES - - - - - YES - intValue0 - intValue1 - intValue2 - intValue3 - floatValue0 - floatValue1 - floatValue2 - floatValue3 - object0 - object1 - object2 - object3 - useInputForIntCoord - useInputForFloatCoord - useInputForScalar - useInputForSender - deviceInfoSummary - - YES - - - - - YES - version - kind - name - dateModified - willMigrate - - - YES - YES - YES - YES - YES - - - - YES - enabled - cheatTypeIcon - description - cheatType - - CocoaDSCheatItem - YES - - YES - YES - YES - YES - YES - - - - YES - value - addressString - - - YES - - - - YES - willAdd - description - - YES - - YES - - - - YES - Render3D_DepthComparisonThreshold - - YES - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - clearRecentDocuments: - - - - 127 - - - - performZoom: - - - - 240 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - terminate: - - - - 449 - - - - showHelp: - - - - 493 - - - - delegate - - - - 495 - - - - contentView - - - - 718 - - - - makeKeyAndOrderFront: - - - - 782 - - - - makeKeyAndOrderFront: - - - - 860 - - - - launchWebsite: - - - - 1101 - - - - launchForums: - - - - 1102 - - - - bugReport: - - - - 1103 - - - - showGeneralView: - - - - 1683 - - - - showDisplayView: - - - - 1684 - - - - showInputView: - - - - 1685 - - - - window - - - - 1689 - - - - viewDisplay - - - - 1690 - - - - viewGeneral - - - - 1691 - - - - mLoadStateSlot - - - - 1775 - - - - mSaveStateSlot - - - - 1776 - - - - value: selection.speedScalar - - - - - - value: selection.speedScalar - value - selection.speedScalar - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - 2 - - - 1869 - - - - value: selection.speedScalar - - - - - - value: selection.speedScalar - value - selection.speedScalar - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - 2 - - - 1872 - - - - delegate - - - - 2025 - - - - prefGeneralView - - - - 2093 - - - - prefWindow - - - - 2094 - - - - viewSound - - - - 2251 - - - - showSoundView: - - - - 2252 - - - - updateVolumeIcon: - - - - 2268 - - - - selectDisplaySize: - - - - 2306 - - - - selectDisplaySize: - - - - 2307 - - - - selectDisplaySize: - - - - 2308 - - - - selectDisplaySize: - - - - 2309 - - - - selectDisplayRotation: - - - - 2310 - - - - selectDisplayRotation: - - - - 2311 - - - - selectDisplayRotation: - - - - 2312 - - - - selectDisplayRotation: - - - - 2313 - - - - delegate - - - - 2314 - - - - displayRotationField - - - - 2315 - - - - displayRotationMenu - - - - 2316 - - - - displayRotationMenuCustomItem - - - - 2317 - - - - chooseRomForAutoload: - - - - 2322 - - - - selectAutoloadRomOption: - - - - 2323 - - - - selectAutoloadRomOption: - - - - 2324 - - - - viewEmulation - - - - 2380 - - - - showEmulationView: - - - - 2381 - - - - selectSPUSyncMode: - - - - 2451 - - - - selectSPUSyncMode: - - - - 2452 - - - - selectSPUSyncMethod: - - - - 2453 - - - - selectSPUSyncMethod: - - - - 2454 - - - - selectSPUSyncMethod: - - - - 2455 - - - - spuSyncMethodMenu - - - - 2456 - - - - chooseFirmwareImage: - - - - 2575 - - - - chooseARM7BiosImage: - - - - 2587 - - - - chooseARM9BiosImage: - - - - 2588 - - - - makeKeyAndOrderFront: - - - - 2611 - - - - value: arrangedObjects.name - - - - - - value: arrangedObjects.name - value - arrangedObjects.name - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - NSCreatesSortDescriptor - NSRaisesForNotApplicableKeys - - - YES - - - - - - - 2 - - - 2928 - - - - value: arrangedObjects.version - - - - - - value: arrangedObjects.version - value - arrangedObjects.version - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - NSCreatesSortDescriptor - NSRaisesForNotApplicableKeys - - - YES - - - - - - - 2 - - - 2937 - - - - value: arrangedObjects.kind - - - - - - value: arrangedObjects.kind - value - arrangedObjects.kind - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - NSCreatesSortDescriptor - NSRaisesForNotApplicableKeys - - - YES - - - - - - - 2 - - - 2943 - - - - value: arrangedObjects.dateModified - - - - - - value: arrangedObjects.dateModified - value - arrangedObjects.dateModified - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - NSCreatesSortDescriptor - NSRaisesForNotApplicableKeys - - - YES - - - - - - - 2 - - - 2953 - - - - value: arrangedObjects.willMigrate - - - - - - value: arrangedObjects.willMigrate - value - arrangedObjects.willMigrate - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSCreatesSortDescriptor - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - - 2 - - - 3044 - - - - cut: - - - - 3252 - - - - paste: - - - - 3257 - - - - redo: - - - - 3266 - - - - delete: - - - - 3267 - - - - selectAll: - - - - 3270 - - - - undo: - - - - 3272 - - - - selectVideoFilterType: - - - - 3346 - - - - selectVideoFilterType: - - - - 3347 - - - - selectVideoFilterType: - - - - 3348 - - - - selectVideoFilterType: - - - - 3349 - - - - selectVideoFilterType: - - - - 3350 - - - - selectVideoFilterType: - - - - 3351 - - - - selectVideoFilterType: - - - - 3352 - - - - selectVideoFilterType: - - - - 3353 - - - - selectVideoFilterType: - - - - 3354 - - - - selectVideoFilterType: - - - - 3355 - - - - selectVideoFilterType: - - - - 3356 - - - - selectVideoFilterType: - - - - 3357 - - - - selectVideoFilterType: - - - - 3358 - - - - selectVideoFilterType: - - - - 3359 - - - - selectVideoFilterType: - - - - 3360 - - - - selectVideoFilterType: - - - - 3361 - - - - selectVideoFilterType: - - - - 3362 - - - - prefWindowController - - - - 3532 - - - - value: selection.AutoloadRomName - - - - - - value: selection.AutoloadRomName - value - selection.AutoloadRomName - 2 - - - 3558 - - - - value: selection.FirmwareImageName - - - - - - value: selection.FirmwareImageName - value - selection.FirmwareImageName - 2 - - - 3561 - - - - value: selection.VideoFilterPreviewImage - - - - - - value: selection.VideoFilterPreviewImage - value - selection.VideoFilterPreviewImage - 2 - - - 3562 - - - - selectVideoFilterType: - - - - 3647 - - - - makeKeyAndOrderFront: - - - - 3792 - - - - value: values.Render3D_HighPrecisionColorInterpolation - - - - - - value: values.Render3D_HighPrecisionColorInterpolation - value - values.Render3D_HighPrecisionColorInterpolation - 2 - - - 3830 - - - - value: values.Render3D_Fog - - - - - - value: values.Render3D_Fog - value - values.Render3D_Fog - 2 - - - 3832 - - - - value: values.Render3D_Textures - - - - - - value: values.Render3D_Textures - value - values.Render3D_Textures - 2 - - - 3833 - - - - value: values.Render3D_DepthComparisonThreshold - - - - - - value: values.Render3D_DepthComparisonThreshold - value - values.Render3D_DepthComparisonThreshold - 2 - - - 3834 - - - - value: values.Render3D_EdgeMarking - - - - - - value: values.Render3D_EdgeMarking - value - values.Render3D_EdgeMarking - 2 - - - 3836 - - - - selectedTag: values.Render3D_Threads - - - - - - selectedTag: values.Render3D_Threads - selectedTag - values.Render3D_Threads - 2 - - - 3895 - - - - value: values.Render3D_LineHack - - - - - - value: values.Render3D_LineHack - value - values.Render3D_LineHack - 2 - - - 3902 - - - - boxARMBinaries - - - - 3954 - - - - boxFileSystem - - - - 3955 - - - - boxGeneralInfo - - - - 3956 - - - - boxMisc - - - - 3957 - - - - boxTitles - - - - 3958 - - - - makeKeyAndOrderFront: - - - - 3964 - - - - value: selection.Arm9BiosImageName - - - - - - value: selection.Arm9BiosImageName - value - selection.Arm9BiosImageName - 2 - - - 4025 - - - - value: selection.Arm7BiosImageName - - - - - - value: selection.Arm7BiosImageName - value - selection.Arm7BiosImageName - 2 - - - 4026 - - - - contentView - - - - 4057 - - - - parentWindow - - - - 4058 - - - - makeKeyAndOrderFront: - - - - 4063 - - - - toggle: - - - - 4068 - - - - previewImageView - - - - 4127 - - - - setUseBilinear: - - - - 4128 - - - - value: values.SPU_AdvancedLogic - - - - - - value: values.SPU_AdvancedLogic - value - values.SPU_AdvancedLogic - 2 - - - 4137 - - - - selectedTag: values.SPU_InterpolationMode - - - - - - selectedTag: values.SPU_InterpolationMode - selectedTag - values.SPU_InterpolationMode - 2 - - - 4138 - - - - selectedTag: values.SPU_SyncMode - - - - - - selectedTag: values.SPU_SyncMode - selectedTag - values.SPU_SyncMode - 2 - - - 4139 - - - - selectedTag: values.SPU_SyncMethod - - - - - - selectedTag: values.SPU_SyncMethod - selectedTag - values.SPU_SyncMethod - 2 - - - 4140 - - - - value: selection.emuFlagAdvancedBusLevelTiming - - - - - - value: selection.emuFlagAdvancedBusLevelTiming - value - selection.emuFlagAdvancedBusLevelTiming - 2 - - - 4141 - - - - value: selection.emuFlagUseExternalBios - - - - - - value: selection.emuFlagUseExternalBios - value - selection.emuFlagUseExternalBios - 2 - - - 4142 - - - - value: selection.emuFlagEmulateBiosInterrupts - - - - - - value: selection.emuFlagEmulateBiosInterrupts - value - selection.emuFlagEmulateBiosInterrupts - 2 - - - 4143 - - - - value: selection.emuFlagPatchDelayLoop - - - - - - value: selection.emuFlagPatchDelayLoop - value - selection.emuFlagPatchDelayLoop - 2 - - - 4145 - - - - value: selection.emuFlagUseExternalFirmware - - - - - - value: selection.emuFlagUseExternalFirmware - value - selection.emuFlagUseExternalFirmware - 2 - - - 4146 - - - - value: selection.emuFlagFirmwareBoot - - - - - - value: selection.emuFlagFirmwareBoot - value - selection.emuFlagFirmwareBoot - 2 - - - 4147 - - - - value: selection.emuFlagDebugConsole - - - - - - value: selection.emuFlagDebugConsole - value - selection.emuFlagDebugConsole - 2 - - - 4148 - - - - value: selection.emuFlagEmulateEnsata - - - - - - value: selection.emuFlagEmulateEnsata - value - selection.emuFlagEmulateEnsata - 2 - - - 4149 - - - - enabled: selection.emuFlagUseExternalBios - - - - - - enabled: selection.emuFlagUseExternalBios - enabled - selection.emuFlagUseExternalBios - 2 - - - 4150 - - - - enabled: selection.emuFlagUseExternalBios - - - - - - enabled: selection.emuFlagUseExternalBios - enabled - selection.emuFlagUseExternalBios - 2 - - - 4151 - - - - makeKeyAndOrderFront: - - - - 4279 - - - - makeKeyAndOrderFront: - - - - 4280 - - - - firmwareConfigSheet - - - - 4466 - - - - configureInternalFirmware: - - - - 4467 - - - - closeFirmwareConfigSheet: - - - - 4468 - - - - makeKeyAndOrderFront: - - - - 4638 - - - - value: selection.isCheatingEnabled - - - - - - value: selection.isCheatingEnabled - value - selection.isCheatingEnabled - 2 - - - 4648 - - - - window - - - - 4699 - - - - delegate - - - - 4700 - - - - viewConfigureActionReplayCheat - - - - 4702 - - - - viewConfigureInternalCheat - - - - 4703 - - - - cheatConfigBox - - - - 4709 - - - - delegate - - - - 4716 - - - - cheatSelectedItemController - - - - 4717 - - - - selectCheatType: - - - - 4718 - - - - selectCheatType: - - - - 4719 - - - - addToList: - - - - 4721 - - - - applyConfiguration: - - - - 4722 - - - - cheatListTable - - - - 4728 - - - - removeFromList: - - - - 4730 - - - - cheatWindowController - - - - 4735 - - - - viewConfigureNoSelection - - - - 4747 - - - - viewConfigureCodeBreakerCheat - - - - 4748 - - - - cheatListController - - - - 4755 - - - - parentWindow - - - - 4791 - - - - toggle: - - - - 4819 - - - - cheatSearchListController - - - - 4922 - - - - runExactValueSearch: - - - - 4928 - - - - runComparativeSearch: - - - - 4929 - - - - runComparativeSearch: - - - - 4930 - - - - runComparativeSearch: - - - - 4931 - - - - runComparativeSearch: - - - - 4932 - - - - selectCheatSearchStyle: - - - - 4933 - - - - selectCheatSearchStyle: - - - - 4934 - - - - viewSearchComparativeContinue - - - - 4936 - - - - viewSearchComparativeStart - - - - 4937 - - - - viewSearchExactValue - - - - 4938 - - - - viewSearchNoSelection - - - - 4939 - - - - cheatSearchView - - - - 4940 - - - - resetSearch: - - - - 4941 - - - - runComparativeSearch: - - - - 4943 - - - - searchField - - - - 4944 - - - - cheatSearchListTable - - - - 4945 - - - - delegate - - - - 4946 - - - - cdsCoreController - - - - 4955 - - - - setInternalCheatValue: - - - - 5070 - - - - value: selection.R4CheatDatabaseName - - - - - - value: selection.R4CheatDatabaseName - value - selection.R4CheatDatabaseName - 2 - - - 5073 - - - - chooseCheatDatabase: - - - - 5078 - - - - viewDatabase: - - - - 5079 - - - - cheatDatabaseSheet - - - - 5108 - - - - closeCheatDatabaseSheet: - - - - 5109 - - - - closeCheatDatabaseSheet: - - - - 5110 - - - - cheatDatabaseController - - - - 5119 - - - - selectAllCheatsInDatabase: - - - - 5122 - - - - selectNoneCheatsInDatabase: - - - - 5123 - - - - cheatWindowController - - - - 5143 - - - - cheatDatabaseController - - - - 5145 - - - - cheatListWindow - - - - 5146 - - - - cheatWindowController - - - - 5147 - - - - prefWindowController - - - - 5149 - - - - cdsCoreController - - - - 5150 - - - - value: selection.AdvansceneDatabaseName - - - - - - value: selection.AdvansceneDatabaseName - value - selection.AdvansceneDatabaseName - 2 - - - 5182 - - - - chooseAdvansceneDatabase: - - - - 5183 - - - - value: selection.nickname - - - - - - value: selection.nickname - value - selection.nickname - 2 - - - 5478 - - - - value: selection.message - - - - - - value: selection.message - value - selection.message - 2 - - - 5479 - - - - selectedTag: selection.favoriteColor - - - - - - selectedTag: selection.favoriteColor - selectedTag - selection.favoriteColor - 2 - - - 5480 - - - - value: selection.birthday - - - - - - value: selection.birthday - value - selection.birthday - 2 - - - 5481 - - - - selectedTag: selection.language - - - - - - selectedTag: selection.language - selectedTag - selection.language - 2 - - - 5482 - - - - value: selection.value - - - - - - value: selection.value - value - selection.value - 2 - - - 5484 - - - - selectedTag: selection.bytes - - - - - - selectedTag: selection.bytes - selectedTag - selection.bytes - 2 - - - 5485 - - - - value: selection.code - - - - - - value: selection.code - value - selection.code - 2 - - - 5486 - - - - selectedTag: selection.cheatType - - - - - - selectedTag: selection.cheatType - selectedTag - selection.cheatType - 2 - - - 5487 - - - - value: selection.description - - - - - - value: selection.description - value - selection.description - 2 - - - 5488 - - - - value: selection.enabled - - - - - - value: selection.enabled - value - selection.enabled - 2 - - - 5489 - - - - enabled: selection.value - - - - - - enabled: selection.value - enabled - selection.value - - NSValueTransformerName - NSIsNotNil - - 2 - - - 5490 - - - - value: arrangedObjects.enabled - - - - - - value: arrangedObjects.enabled - value - arrangedObjects.enabled - 2 - - - 5493 - - - - value: arrangedObjects.cheatTypeIcon - - - - - - value: arrangedObjects.cheatTypeIcon - value - arrangedObjects.cheatTypeIcon - 2 - - - 5494 - - - - value: arrangedObjects.description - - - - - - value: arrangedObjects.description - value - arrangedObjects.description - 2 - - - 5495 - - - - value: arrangedObjects.willAdd - - - - - - value: arrangedObjects.willAdd - value - arrangedObjects.willAdd - 2 - - - 5497 - - - - value: arrangedObjects.description - - - - - - value: arrangedObjects.description - value - arrangedObjects.description - - NSConditionallySetsEditable - - - 2 - - - 5498 - - - - value: selection.memAddressSixDigitString - - - - - - value: selection.memAddressSixDigitString - value - selection.memAddressSixDigitString - 2 - - - 5499 - - - - value: selection.volumeIconImage - - - - - - value: selection.volumeIconImage - value - selection.volumeIconImage - 2 - - - 5525 - - - - value: arrangedObjects.addressString - - - - - - value: arrangedObjects.addressString - value - arrangedObjects.addressString - 2 - - - 5566 - - - - value: arrangedObjects.value - - - - - - value: arrangedObjects.value - value - arrangedObjects.value - 2 - - - 5567 - - - - value: selection.iconImage - - - - - - value: selection.iconImage - value - selection.iconImage - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - - - YES - - - - - - 2 - - - 5580 - - - - value: selection.makerCode - - - - - - value: selection.makerCode - value - selection.makerCode - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5583 - - - - value: selection.romSize - - - - - - value: selection.romSize - value - selection.romSize - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5584 - - - - value: selection.bannerJapanese - - - - - - value: selection.bannerJapanese - value - selection.bannerJapanese - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5585 - - - - value: selection.bannerEnglish - - - - - - value: selection.bannerEnglish - value - selection.bannerEnglish - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5586 - - - - value: selection.bannerFrench - - - - - - value: selection.bannerFrench - value - selection.bannerFrench - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5587 - - - - value: selection.bannerGerman - - - - - - value: selection.bannerGerman - value - selection.bannerGerman - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5588 - - - - value: selection.bannerItalian - - - - - - value: selection.bannerItalian - value - selection.bannerItalian - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5589 - - - - value: selection.bannerSpanish - - - - - - value: selection.bannerSpanish - value - selection.bannerSpanish - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5590 - - - - value: selection.arm9BinaryOffset - - - - - - value: selection.arm9BinaryOffset - value - selection.arm9BinaryOffset - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5591 - - - - value: selection.arm9BinaryEntryAddress - - - - - - value: selection.arm9BinaryEntryAddress - value - selection.arm9BinaryEntryAddress - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5592 - - - - value: selection.arm9BinaryStartAddress - - - - - - value: selection.arm9BinaryStartAddress - value - selection.arm9BinaryStartAddress - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5593 - - - - value: selection.arm9BinarySize - - - - - - value: selection.arm9BinarySize - value - selection.arm9BinarySize - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5594 - - - - value: selection.arm7BinaryOffset - - - - - - value: selection.arm7BinaryOffset - value - selection.arm7BinaryOffset - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5595 - - - - value: selection.arm7BinaryEntryAddress - - - - - - value: selection.arm7BinaryEntryAddress - value - selection.arm7BinaryEntryAddress - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5596 - - - - value: selection.arm7BinaryStartAddress - - - - - - value: selection.arm7BinaryStartAddress - value - selection.arm7BinaryStartAddress - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5597 - - - - value: selection.arm7BinarySize - - - - - - value: selection.arm7BinarySize - value - selection.arm7BinarySize - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5598 - - - - value: selection.fntOffset - - - - - - value: selection.fntOffset - value - selection.fntOffset - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5599 - - - - value: selection.fntTableSize - - - - - - value: selection.fntTableSize - value - selection.fntTableSize - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5600 - - - - value: selection.fatOffset - - - - - - value: selection.fatOffset - value - selection.fatOffset - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5601 - - - - value: selection.fatSize - - - - - - value: selection.fatSize - value - selection.fatSize - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5602 - - - - value: selection.iconOffset - - - - - - value: selection.iconOffset - value - selection.iconOffset - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5603 - - - - value: selection.romSize - - - - - - value: selection.romSize - value - selection.romSize - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5604 - - - - selectedTag: selection.audioOutputEngine - - - - - - selectedTag: selection.audioOutputEngine - selectedTag - selection.audioOutputEngine - 2 - - - 5608 - - - - value: selection.spuAdvancedLogic - - - - - - value: selection.spuAdvancedLogic - value - selection.spuAdvancedLogic - 2 - - - 5609 - - - - selectedTag: selection.spuInterpolationMode - - - - - - selectedTag: selection.spuInterpolationMode - selectedTag - selection.spuInterpolationMode - 2 - - - 5610 - - - - selectedTag: selection.spuSyncMode - - - - - - selectedTag: selection.spuSyncMode - selectedTag - selection.spuSyncMode - 2 - - - 5611 - - - - selectedTag: selection.spuSyncMethod - - - - - - selectedTag: selection.spuSyncMethod - selectedTag - selection.spuSyncMethod - 2 - - - 5612 - - - - value: selection.cheatDBTitle - - - - - - value: selection.cheatDBTitle - value - selection.cheatDBTitle - 2 - - - 5618 - - - - value: selection.cheatDBDate - - - - - - value: selection.cheatDBDate - value - selection.cheatDBDate - 2 - - - 5619 - - - - value: selection.cheatDBItemCount - - - - - - value: selection.cheatDBItemCount - value - selection.cheatDBItemCount - 2 - - - 5620 - - - - selectedTag: selection.cheatSearchStyle - - - - - - selectedTag: selection.cheatSearchStyle - selectedTag - selection.cheatSearchStyle - 2 - - - 5621 - - - - value: selection.cheatSearchAddressCount - - - - - - value: selection.cheatSearchAddressCount - value - selection.cheatSearchAddressCount - 2 - - - 5622 - - - - value: selection.cheatSearchSearchValue - - - - - - value: selection.cheatSearchSearchValue - value - selection.cheatSearchSearchValue - 2 - - - 5623 - - - - animate: selection.isRunningSearch - - - - - - animate: selection.isRunningSearch - animate - selection.isRunningSearch - 2 - - - 5626 - - - - enabled: selection.isRunningSearch - - - - - - enabled: selection.isRunningSearch - enabled - selection.isRunningSearch - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 5627 - - - - enabled2: selection.isSearchStarted - - - - - - enabled2: selection.isSearchStarted - enabled2 - selection.isSearchStarted - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 5644 - - - - value: values.Advanscene_AutoDetectRomSaveType - - - - - - value: values.Advanscene_AutoDetectRomSaveType - value - values.Advanscene_AutoDetectRomSaveType - 2 - - - 5647 - - - - makeKeyAndOrderFront: - - - - 5720 - - - - aboutWindowController - - - - 5721 - - - - value: selection.romSerial - - - - - - value: selection.romSerial - value - selection.romSerial - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5722 - - - - value: selection.romInternalName - - - - - - value: selection.romInternalName - value - selection.romInternalName - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5723 - - - - value: values.FirmwareConfig_Nickname - - - - - - value: values.FirmwareConfig_Nickname - value - values.FirmwareConfig_Nickname - 2 - - - 5729 - - - - value: values.FirmwareConfig_Message - - - - - - value: values.FirmwareConfig_Message - value - values.FirmwareConfig_Message - 2 - - - 5730 - - - - selectedTag: values.FirmwareConfig_FavoriteColor - - - - - - selectedTag: values.FirmwareConfig_FavoriteColor - selectedTag - values.FirmwareConfig_FavoriteColor - 2 - - - 5731 - - - - value: values.FirmwareConfig_Birthday - - - - - - value: values.FirmwareConfig_Birthday - value - values.FirmwareConfig_Birthday - 2 - - - 5732 - - - - selectedTag: values.FirmwareConfig_Language - - - - - - selectedTag: values.FirmwareConfig_Language - selectedTag - values.FirmwareConfig_Language - 2 - - - 5733 - - - - selectDisplayMode: - - - - 5735 - - - - selectDisplayMode: - - - - 5736 - - - - selectDisplayMode: - - - - 5737 - - - - value: selection.isSpeedLimitEnabled - - - - - - value: selection.isSpeedLimitEnabled - value - selection.isSpeedLimitEnabled - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - 2 - - - 5971 - - - - selectedTag: values.DisplayView_Mode - - - - - - selectedTag: values.DisplayView_Mode - selectedTag - values.DisplayView_Mode - 2 - - - 5972 - - - - selectedTag: values.DisplayView_Size - - - - - - selectedTag: values.DisplayView_Size - selectedTag - values.DisplayView_Size - 2 - - - 5973 - - - - value: values.DisplayView_Rotation - - - - - - value: values.DisplayView_Rotation - value - values.DisplayView_Rotation - 2 - - - 5974 - - - - value: values.DisplayView_UseBilinearOutput - - - - - - value: values.DisplayView_UseBilinearOutput - value - values.DisplayView_UseBilinearOutput - 2 - - - 5975 - - - - selectedTag: values.DisplayView_VideoFilter - - - - - - selectedTag: values.DisplayView_VideoFilter - selectedTag - values.DisplayView_VideoFilter - 2 - - - 5976 - - - - selectedTag: values.Sound_AudioOutputEngine - - - - - - selectedTag: values.Sound_AudioOutputEngine - selectedTag - values.Sound_AudioOutputEngine - 2 - - - 5989 - - - - value: values.Sound_Volume - - - - - - value: values.Sound_Volume - value - values.Sound_Volume - 2 - - - 5990 - - - - value: values.Sound_Volume - - - - - - value: values.Sound_Volume - value - values.Sound_Volume - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - - - YES - - - - - 2 - - - 5991 - - - - enabled: values.Advanscene_DatabasePath - - - - - - enabled: values.Advanscene_DatabasePath - enabled - values.Advanscene_DatabasePath - - NSValueTransformerName - NSIsNotNil - - 2 - - - 5992 - - - - value: values.Emulation_AdvancedBusLevelTiming - - - - - - value: values.Emulation_AdvancedBusLevelTiming - value - values.Emulation_AdvancedBusLevelTiming - 2 - - - 5993 - - - - value: values.Emulation_BIOSEmulateSWI - - - - - - value: values.Emulation_BIOSEmulateSWI - value - values.Emulation_BIOSEmulateSWI - 2 - - - 5994 - - - - value: values.Emulation_BIOSPatchDelayLoopSWI - - - - - - value: values.Emulation_BIOSPatchDelayLoopSWI - value - values.Emulation_BIOSPatchDelayLoopSWI - 2 - - - 5995 - - - - value: values.Emulation_EmulateEnsata - - - - - - value: values.Emulation_EmulateEnsata - value - values.Emulation_EmulateEnsata - 2 - - - 5996 - - - - value: values.Emulation_UseDebugConsole - - - - - - value: values.Emulation_UseDebugConsole - value - values.Emulation_UseDebugConsole - 2 - - - 5998 - - - - value: values.Emulation_FirmwareBoot - - - - - - value: values.Emulation_FirmwareBoot - value - values.Emulation_FirmwareBoot - 2 - - - 5999 - - - - value: values.Emulation_UseExternalBIOSImages - - - - - - value: values.Emulation_UseExternalBIOSImages - value - values.Emulation_UseExternalBIOSImages - 2 - - - 6000 - - - - enabled: values.Emulation_UseExternalBIOSImages - - - - - - enabled: values.Emulation_UseExternalBIOSImages - enabled - values.Emulation_UseExternalBIOSImages - - NSRaisesForNotApplicableKeys - - - 2 - - - 6001 - - - - enabled: values.Emulation_UseExternalBIOSImages - - - - - - enabled: values.Emulation_UseExternalBIOSImages - enabled - values.Emulation_UseExternalBIOSImages - - NSRaisesForNotApplicableKeys - - - 2 - - - 6004 - - - - value: values.Emulation_UseExternalFirmwareImage - - - - - - value: values.Emulation_UseExternalFirmwareImage - value - values.Emulation_UseExternalFirmwareImage - 2 - - - 6011 - - - - enabled: values.Emulation_UseExternalFirmwareImage - - - - - - enabled: values.Emulation_UseExternalFirmwareImage - enabled - values.Emulation_UseExternalFirmwareImage - - NSRaisesForNotApplicableKeys - - - 2 - - - 6012 - - - - enabled: values.Emulation_UseExternalFirmwareImage - - - - - - enabled: values.Emulation_UseExternalFirmwareImage - enabled - values.Emulation_UseExternalFirmwareImage - 2 - - - 6013 - - - - enabled2: values.Emulation_UseExternalBIOSImages - - - - - - enabled2: values.Emulation_UseExternalBIOSImages - enabled2 - values.Emulation_UseExternalBIOSImages - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6014 - - - - enabled: values.BIOS_ARM9ImagePath - - - - - - enabled: values.BIOS_ARM9ImagePath - enabled - values.BIOS_ARM9ImagePath - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6018 - - - - enabled2: values.BIOS_ARM9ImagePath - - - - - - enabled2: values.BIOS_ARM9ImagePath - enabled2 - values.BIOS_ARM9ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6020 - - - - enabled2: values.BIOS_ARM9ImagePath - - - - - - enabled2: values.BIOS_ARM9ImagePath - enabled2 - values.BIOS_ARM9ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6022 - - - - enabled3: values.BIOS_ARM9ImagePath - - - - - - enabled3: values.BIOS_ARM9ImagePath - enabled3 - values.BIOS_ARM9ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6024 - - - - enabled2: values.BIOS_ARM7ImagePath - - - - - - enabled2: values.BIOS_ARM7ImagePath - enabled2 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6027 - - - - enabled3: values.BIOS_ARM7ImagePath - - - - - - enabled3: values.BIOS_ARM7ImagePath - enabled3 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6028 - - - - enabled3: values.BIOS_ARM7ImagePath - - - - - - enabled3: values.BIOS_ARM7ImagePath - enabled3 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6029 - - - - enabled4: values.BIOS_ARM7ImagePath - - - - - - enabled4: values.BIOS_ARM7ImagePath - enabled4 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6030 - - - - enabled: values.Emulation_FirmwareImagePath - - - - - - enabled: values.Emulation_FirmwareImagePath - enabled - values.Emulation_FirmwareImagePath - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6034 - - - - enabled5: values.Emulation_FirmwareImagePath - - - - - - enabled5: values.Emulation_FirmwareImagePath - enabled5 - values.Emulation_FirmwareImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6037 - - - - enabled: selection.emuFlagUseExternalFirmware - - - - - - enabled: selection.emuFlagUseExternalFirmware - enabled - selection.emuFlagUseExternalFirmware - 2 - - - 6041 - - - - enabled2: selection.emuFlagUseExternalBios - - - - - - enabled2: selection.emuFlagUseExternalBios - enabled2 - selection.emuFlagUseExternalBios - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6042 - - - - enabled: values.Emulation_FirmwareImagePath - - - - - - enabled: values.Emulation_FirmwareImagePath - enabled - values.Emulation_FirmwareImagePath - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6048 - - - - enabled3: values.BIOS_ARM9ImagePath - - - - - - enabled3: values.BIOS_ARM9ImagePath - enabled3 - values.BIOS_ARM9ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6058 - - - - enabled4: values.BIOS_ARM7ImagePath - - - - - - enabled4: values.BIOS_ARM7ImagePath - enabled4 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6067 - - - - enabled5: values.Emulation_FirmwareImagePath - - - - - - enabled5: values.Emulation_FirmwareImagePath - enabled5 - values.Emulation_FirmwareImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6069 - - - - enabled2: values.BIOS_ARM9ImagePath - - - - - - enabled2: values.BIOS_ARM9ImagePath - enabled2 - values.BIOS_ARM9ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6076 - - - - enabled3: values.BIOS_ARM7ImagePath - - - - - - enabled3: values.BIOS_ARM7ImagePath - enabled3 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6081 - - - - enabled2: values.BIOS_ARM9ImagePath - - - - - - enabled2: values.BIOS_ARM9ImagePath - enabled2 - values.BIOS_ARM9ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6088 - - - - enabled3: values.BIOS_ARM7ImagePath - - - - - - enabled3: values.BIOS_ARM7ImagePath - enabled3 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6093 - - - - enabled: values.BIOS_ARM9ImagePath - - - - - - enabled: values.BIOS_ARM9ImagePath - enabled - values.BIOS_ARM9ImagePath - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6100 - - - - enabled2: values.BIOS_ARM7ImagePath - - - - - - enabled2: values.BIOS_ARM7ImagePath - enabled2 - values.BIOS_ARM7ImagePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6105 - - - - selectedTag: values.Render3D_RenderingEngine - - - - - - selectedTag: values.Render3D_RenderingEngine - selectedTag - values.Render3D_RenderingEngine - 2 - - - 6109 - - - - value: values.General_ExecuteROMOnLoad - - - - - - value: values.General_ExecuteROMOnLoad - value - values.General_ExecuteROMOnLoad - 2 - - - 6119 - - - - value: values.General_AutoloadROMOnLaunch - - - - - - value: values.General_AutoloadROMOnLaunch - value - values.General_AutoloadROMOnLaunch - 2 - - - 6120 - - - - selectedTag: values.General_AutoloadROMOption - - - - - - selectedTag: values.General_AutoloadROMOption - selectedTag - values.General_AutoloadROMOption - 2 - - - 6121 - - - - enabled: values.General_AutoloadROMOnLaunch - - - - - - enabled: values.General_AutoloadROMOnLaunch - enabled - values.General_AutoloadROMOnLaunch - 2 - - - 6122 - - - - value: values.General_DoNotAskMigrate - - - - - - value: values.General_DoNotAskMigrate - value - values.General_DoNotAskMigrate - 2 - - - 6123 - - - - value: values.General_DoNotAskMigrate - - - - - - value: values.General_DoNotAskMigrate - value - values.General_DoNotAskMigrate - 2 - - - 6124 - - - - enabled: values.General_AutoloadROMSelectedPath - - - - - - enabled: values.General_AutoloadROMSelectedPath - enabled - values.General_AutoloadROMSelectedPath - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6125 - - - - value: values.DisplayView_UseVerticalSync - - - - - - value: values.DisplayView_UseVerticalSync - value - values.DisplayView_UseVerticalSync - 2 - - - 6164 - - - - selectedTag: values.DisplayViewCombo_Orientation - - - - - - selectedTag: values.DisplayViewCombo_Orientation - selectedTag - values.DisplayViewCombo_Orientation - 2 - - - 6226 - - - - selectedTag: values.DisplayViewCombo_Order - - - - - - selectedTag: values.DisplayViewCombo_Order - selectedTag - values.DisplayViewCombo_Order - 2 - - - 6230 - - - - value: selection.buildInfoString - - - - - - value: selection.buildInfoString - value - selection.buildInfoString - 2 - - - 6231 - - - - value: selection.descriptionString - - - - - - value: selection.descriptionString - value - selection.descriptionString - 2 - - - 6232 - - - - selectVideoFilterType: - - - - 6239 - - - - troubleshootingWindowController - - - - 6442 - - - - window - - - - 6443 - - - - viewBugReport - - - - 6444 - - - - viewFinishedForm - - - - 6445 - - - - viewSupportRequest - - - - 6446 - - - - troubleshootingWindow - - - - 6449 - - - - delegate - - - - 6450 - - - - supportRequest: - - - - 6452 - - - - title: selection.goWebpageButtonTitle - - - - - - title: selection.goWebpageButtonTitle - title - selection.goWebpageButtonTitle - 2 - - - 6457 - - - - value: selection.romName - - - - - - value: selection.romName - value - selection.romName - 2 - - - 6459 - - - - value: selection.romSerial - - - - - - value: selection.romSerial - value - selection.romSerial - 2 - - - 6460 - - - - value: selection.romName - - - - - - value: selection.romName - value - selection.romName - 2 - - - 6463 - - - - value: selection.romSerial - - - - - - value: selection.romSerial - value - selection.romSerial - 2 - - - 6464 - - - - romInfoController - - - - 6467 - - - - continueToFinalForm: - - - - 6468 - - - - continueToFinalForm: - - - - 6469 - - - - copyRomInfoToTextFields: - - - - 6470 - - - - copyRomInfoToTextFields: - - - - 6471 - - - - backForm: - - - - 6472 - - - - value: selection.bugReportObservedText - - - - - - value: selection.bugReportObservedText - value - selection.bugReportObservedText - 2 - - - 6490 - - - - value: selection.bugReportExpectedText - - - - - - value: selection.bugReportExpectedText - value - selection.bugReportExpectedText - 2 - - - 6495 - - - - value: selection.supportRequestText - - - - - - value: selection.supportRequestText - value - selection.supportRequestText - 2 - - - 6500 - - - - value: selection.finalFormText - - - - - - value: selection.finalFormText - value - selection.finalFormText - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - NSRaisesForNotApplicableKeys - - - YES - - - - - - 2 - - - 6507 - - - - font: selection.aboutTextFilesFont - - - - - - font: selection.aboutTextFilesFont - font - selection.aboutTextFilesFont - 2 - - - 6589 - - - - font: selection.aboutTextFilesFont - - - - - - font: selection.aboutTextFilesFont - font - selection.aboutTextFilesFont - 2 - - - 6593 - - - - font: selection.aboutTextFilesFont - - - - - - font: selection.aboutTextFilesFont - font - selection.aboutTextFilesFont - 2 - - - 6594 - - - - font: selection.aboutTextFilesFont - - - - - - font: selection.aboutTextFilesFont - font - selection.aboutTextFilesFont - 2 - - - 6595 - - - - valuePath: selection.readMePath - - - - - - valuePath: selection.readMePath - valuePath - selection.readMePath - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - - - YES - - - - - 2 - - - 6598 - - - - valuePath: selection.licensePath - - - - - - valuePath: selection.licensePath - valuePath - selection.licensePath - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - - - YES - - - - - 2 - - - 6601 - - - - valuePath: selection.authorsPath - - - - - - valuePath: selection.authorsPath - valuePath - selection.authorsPath - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - - - YES - - - - - 2 - - - 6604 - - - - valuePath: selection.changeLogPath - - - - - - valuePath: selection.changeLogPath - valuePath - selection.changeLogPath - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEditable - - - YES - - - - - 2 - - - 6610 - - - - copyInfoToPasteboard: - - - - 6613 - - - - goToWebpage: - - - - 6614 - - - - value: selection.copyPasteHelpText - - - - - - value: selection.copyPasteHelpText - value - selection.copyPasteHelpText - - NSAllowsEditingMultipleValuesSelection - - - 2 - - - 6616 - - - - value: values.Render3D_Multisample - - - - - - value: values.Render3D_Multisample - value - values.Render3D_Multisample - 2 - - - 6625 - - - - value: values.Emulation_RigorousTiming - - - - - - value: values.Emulation_RigorousTiming - value - values.Emulation_RigorousTiming - 2 - - - 6629 - - - - value: selection.emuFlagRigorousTiming - - - - - - value: selection.emuFlagRigorousTiming - value - selection.emuFlagRigorousTiming - 2 - - - 6632 - - - - cdsCoreController - - - - 6655 - - - - cdsSoundController - - - - 6656 - - - - cheatDatabaseController - - - - 6657 - - - - cheatListController - - - - 6658 - - - - cheatWindowController - - - - 6659 - - - - cheatWindowDelegate - - - - 6660 - - - - exportRomSavePanelAccessoryView - - - - 6661 - - - - firmwarePanelController - - - - 6662 - - - - romInfoPanelController - - - - 6663 - - - - changeAudioEngine: - - - - 6680 - - - - changeAudioEngine: - - - - 6681 - - - - changeSpuAdvancedLogic: - - - - 6682 - - - - changeSpuInterpolationMode: - - - - 6683 - - - - changeSpuInterpolationMode: - - - - 6684 - - - - changeSpuInterpolationMode: - - - - 6685 - - - - changeSpuSyncMethod: - - - - 6686 - - - - changeSpuSyncMethod: - - - - 6687 - - - - changeSpuSyncMethod: - - - - 6688 - - - - changeSpuSyncMode: - - - - 6689 - - - - changeSpuSyncMode: - - - - 6690 - - - - changeVolume: - - - - 6691 - - - - writeDefaults3DRenderingSettings: - - - - 6692 - - - - writeDefaultsEmulationSettings: - - - - 6693 - - - - writeDefaultsSoundSettings: - - - - 6694 - - - - changeRomSaveType: - - - - 6695 - - - - changeRomSaveType: - - - - 6696 - - - - changeRomSaveType: - - - - 6697 - - - - changeRomSaveType: - - - - 6698 - - - - changeRomSaveType: - - - - 6699 - - - - changeRomSaveType: - - - - 6700 - - - - changeRomSaveType: - - - - 6701 - - - - changeRomSaveType: - - - - 6702 - - - - changeRomSaveType: - - - - 6703 - - - - changeRomSaveType: - - - - 6704 - - - - changeRomSaveType: - - - - 6705 - - - - changeRomSaveType: - - - - 6706 - - - - changeRomSaveType: - - - - 6707 - - - - changeRomSaveType: - - - - 6708 - - - - closeRom: - - - - 6709 - - - - exportRomSave: - - - - 6710 - - - - importRomSave: - - - - 6711 - - - - openRom: - - - - 6712 - - - - revertEmuSaveState: - - - - 6713 - - - - saveEmuSaveState: - - - - 6714 - - - - saveEmuSaveStateAs: - - - - 6715 - - - - toggleAutoFrameSkip: - - - - 6716 - - - - changeCoreEmuFlags: - - - - 6723 - - - - changeCoreEmuFlags: - - - - 6724 - - - - changeCoreEmuFlags: - - - - 6725 - - - - changeCoreEmuFlags: - - - - 6726 - - - - changeCoreEmuFlags: - - - - 6727 - - - - changeCoreEmuFlags: - - - - 6728 - - - - changeCoreEmuFlags: - - - - 6729 - - - - changeCoreEmuFlags: - - - - 6730 - - - - changeCoreEmuFlags: - - - - 6731 - - - - openEmuSaveState: - - - - 6744 - - - - changeFirmwareSettings: - - - - 6745 - - - - changeCoreSpeed: - - - - 6747 - - - - changeCoreSpeed: - - - - 6748 - - - - changeCoreSpeed: - - - - 6749 - - - - changeCoreSpeed: - - - - 6750 - - - - value: selection.currentVolumeValue - - - - - - value: selection.currentVolumeValue - value - selection.currentVolumeValue - 2 - - - 6765 - - - - value: selection.currentVolumeIcon - - - - - - value: selection.currentVolumeIcon - value - selection.currentVolumeIcon - 2 - - - 6767 - - - - value: selection.currentVolumeValue - - - - - - value: selection.currentVolumeValue - value - selection.currentVolumeValue - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - 2 - - - 6769 - - - - closeSheet: - - - - 6799 - - - - closeSheet: - - - - 6800 - - - - closeSheet: - - - - 6801 - - - - closeSheet: - - - - 6802 - - - - closeSheet: - - - - 6803 - - - - saveFileMigrationSheet - - - - 6804 - - - - saveStatePrecloseSheet - - - - 6805 - - - - emuControlController - - - - 6808 - - - - delegate - - - - 6809 - - - - selectedTag: selection.render3DRenderingEngine - - - - - - selectedTag: selection.render3DRenderingEngine - selectedTag - selection.render3DRenderingEngine - 2 - - - 6815 - - - - value: selection.render3DLineHack - - - - - - value: selection.render3DLineHack - value - selection.render3DLineHack - 2 - - - 6816 - - - - value: selection.render3DTextures - - - - - - value: selection.render3DTextures - value - selection.render3DTextures - 2 - - - 6817 - - - - value: selection.render3DHighPrecisionColorInterpolation - - - - - - value: selection.render3DHighPrecisionColorInterpolation - value - selection.render3DHighPrecisionColorInterpolation - 2 - - - 6818 - - - - value: selection.render3DEdgeMarking - - - - - - value: selection.render3DEdgeMarking - value - selection.render3DEdgeMarking - 2 - - - 6819 - - - - value: selection.render3DFog - - - - - - value: selection.render3DFog - value - selection.render3DFog - 2 - - - 6820 - - - - value: selection.render3DDepthComparisonThreshold - - - - - - value: selection.render3DDepthComparisonThreshold - value - selection.render3DDepthComparisonThreshold - 2 - - - 6821 - - - - value: selection.render3DMultisample - - - - - - value: selection.render3DMultisample - value - selection.render3DMultisample - 2 - - - 6822 - - - - selectedTag: selection.render3DThreads - - - - - - selectedTag: selection.render3DThreads - selectedTag - selection.render3DThreads - 2 - - - 6823 - - - - cdsSoundController - - - - 6824 - - - - romInfoPanelController - - - - 6825 - - - - content - - - - 6826 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6864 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6866 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6869 - - - - enabled2: selection.hasSelection - - - - - - enabled2: selection.hasSelection - enabled2 - selection.hasSelection - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6870 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6873 - - - - enabled2: values.R4Cheat_DatabasePath - - - - - - enabled2: values.R4Cheat_DatabasePath - enabled2 - values.R4Cheat_DatabasePath - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6874 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6877 - - - - enabled2: selection.isSupportedCheatType - - - - - - enabled2: selection.isSupportedCheatType - enabled2 - selection.isSupportedCheatType - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6878 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6880 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6882 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6886 - - - - enabled2: selection.hasSelection - - - - - - enabled2: selection.hasSelection - enabled2 - selection.hasSelection - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6887 - - - - enabled3: selection.isSupportedCheatType - - - - - - enabled3: selection.isSupportedCheatType - enabled3 - selection.isSupportedCheatType - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6888 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6890 - - - - enabled3: selection.currentRom - - - - - - enabled3: selection.currentRom - enabled3 - selection.currentRom - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6892 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6894 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6896 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6900 - - - - enabled2: selection.cheatSearchSearchValue - - - - - - enabled2: selection.cheatSearchSearchValue - enabled2 - selection.cheatSearchSearchValue - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSIsNotNil - - - - 2 - - - 6901 - - - - enabled3: selection.isRunningSearch - - - - - - enabled3: selection.isRunningSearch - enabled3 - selection.isRunningSearch - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSNegateBoolean - - - - 2 - - - 6902 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6906 - - - - enabled2: selection.isSearchStarted - - - - - - enabled2: selection.isSearchStarted - enabled2 - selection.isSearchStarted - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6907 - - - - enabled3: selection.isRunningSearch - - - - - - enabled3: selection.isRunningSearch - enabled3 - selection.isRunningSearch - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSNegateBoolean - - - - 2 - - - 6908 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6912 - - - - enabled2: selection.isSearchStarted - - - - - - enabled2: selection.isSearchStarted - enabled2 - selection.isSearchStarted - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6913 - - - - enabled3: selection.isRunningSearch - - - - - - enabled3: selection.isRunningSearch - enabled3 - selection.isRunningSearch - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSNegateBoolean - - - - 2 - - - 6914 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6918 - - - - enabled2: selection.isSearchStarted - - - - - - enabled2: selection.isSearchStarted - enabled2 - selection.isSearchStarted - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6919 - - - - enabled3: selection.isRunningSearch - - - - - - enabled3: selection.isRunningSearch - enabled3 - selection.isRunningSearch - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSNegateBoolean - - - - 2 - - - 6920 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6924 - - - - enabled2: selection.isSearchStarted - - - - - - enabled2: selection.isSearchStarted - enabled2 - selection.isSearchStarted - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 6925 - - - - enabled3: selection.isRunningSearch - - - - - - enabled3: selection.isRunningSearch - enabled3 - selection.isRunningSearch - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSNegateBoolean - - - - 2 - - - 6926 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 6929 - - - - enabled2: selection.isRunningSearch - - - - - - enabled2: selection.isRunningSearch - enabled2 - selection.isRunningSearch - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValueTransformerName - - - YES - - - - - NSNegateBoolean - - - - 2 - - - 6930 - - - - emuController - - - - 6939 - - - - newDisplayWindow: - - - - 6940 - - - - changeScale: - - - - 6941 - - - - changeScale: - - - - 6942 - - - - changeScale: - - - - 6943 - - - - changeScale: - - - - 6944 - - - - changeScale: - - - - 6945 - - - - toggleKeepMinDisplaySizeAtNormal: - - - - 6946 - - - - toggleStatusBar: - - - - 6947 - - - - runToolbarCustomizationPalette: - - - - 6948 - - - - toggleToolbarShown: - - - - 6949 - - - - changeDisplayMode: - - - - 6950 - - - - changeDisplayMode: - - - - 6951 - - - - changeDisplayMode: - - - - 6952 - - - - changeDisplayOrientation: - - - - 6953 - - - - changeDisplayOrientation: - - - - 6954 - - - - changeDisplayOrder: - - - - 6955 - - - - changeDisplayOrder: - - - - 6956 - - - - changeRotationRelative: - - - - 6957 - - - - changeRotationRelative: - - - - 6958 - - - - changeRotation: - - - - 6959 - - - - changeRotation: - - - - 6960 - - - - changeRotation: - - - - 6961 - - - - changeRotation: - - - - 6962 - - - - changeRotation: - - - - 6963 - - - - changeRotation: - - - - 6964 - - - - value: selection.mainWindow.displayRotation - - - - - - value: selection.mainWindow.displayRotation - value - selection.mainWindow.displayRotation - 2 - - - 6966 - - - - value: selection.mainWindow.displayRotation - - - - - - value: selection.mainWindow.displayRotation - value - selection.mainWindow.displayRotation - 2 - - - 6967 - - - - selectedTag: selection.mainWindow.videoFilterType - - - - - - selectedTag: selection.mainWindow.videoFilterType - selectedTag - selection.mainWindow.videoFilterType - 2 - - - 6989 - - - - value: selection.mainWindow.useBilinearOutput - - - - - - value: selection.mainWindow.useBilinearOutput - value - selection.mainWindow.useBilinearOutput - 2 - - - 6990 - - - - value: selection.mainWindow.useVerticalSync - - - - - - value: selection.mainWindow.useVerticalSync - value - selection.mainWindow.useVerticalSync - 2 - - - 6991 - - - - writeDefaultsDisplayRotation: - - - - 6992 - - - - writeDefaultsHUDSettings: - - - - 6993 - - - - writeDefaultsDisplayVideoSettings: - - - - 6994 - - - - saveScreenshotAs: - - - - 6997 - - - - closeWindow: - - - - 7000 - - - - selectedTag: selection.selectedExportRomSaveID - - - - - - selectedTag: selection.selectedExportRomSaveID - selectedTag - selection.selectedExportRomSaveID - 2 - - - 7001 - - - - emuControl - - - - 7003 - - - - inputManager - - - - 7004 - - - - inputManager - - - - 7005 - - - - toggleExecutePause: - - - - 7009 - - - - reset: - - - - 7010 - - - - copy: - - - - 7011 - - - - toggleCheats: - - - - 7012 - - - - toggleSpeedLimiter: - - - - 7013 - - - - viewInput - - - - 7108 - - - - inputPrefsView - - - - 7109 - - - - inputManager - - - - 7110 - - - - prefWindow - - - - 7111 - - - - dataSource - - - - 7164 - - - - delegate - - - - 7165 - - - - removeInput: - - - - 7167 - - - - setInputAdd: - - - - 7170 - - - - inputSettingsGPUState - - - - 7296 - - - - inputSettingsLoadStateSlot - - - - 7297 - - - - inputSettingsMicrophone - - - - 7298 - - - - inputSettingsSaveStateSlot - - - - 7299 - - - - inputSettingsTouch - - - - 7300 - - - - showSettingsSheet: - - - - 7321 - - - - closeSettingsSheet: - - - - 7322 - - - - closeSettingsSheet: - - - - 7323 - - - - closeSettingsSheet: - - - - 7324 - - - - closeSettingsSheet: - - - - 7325 - - - - closeSettingsSheet: - - - - 7326 - - - - inputSettingsController - - - - 7391 - - - - closeSettingsSheet: - - - - 7394 - - - - closeSettingsSheet: - - - - 7397 - - - - closeSettingsSheet: - - - - 7400 - - - - closeSettingsSheet: - - - - 7403 - - - - closeSettingsSheet: - - - - 7406 - - - - selectedTag: selection.intValue0 - - - - - - selectedTag: selection.intValue0 - selectedTag - selection.intValue0 - 2 - - - 7407 - - - - selectedTag: selection.intValue0 - - - - - - selectedTag: selection.intValue0 - selectedTag - selection.intValue0 - 2 - - - 7410 - - - - selectedTag: selection.intValue0 - - - - - - selectedTag: selection.intValue0 - selectedTag - selection.intValue0 - 2 - - - 7411 - - - - enabled: selection.useInputForIntCoord - - - - - - enabled: selection.useInputForIntCoord - enabled - selection.useInputForIntCoord - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7417 - - - - enabled: selection.useInputForIntCoord - - - - - - enabled: selection.useInputForIntCoord - enabled - selection.useInputForIntCoord - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7419 - - - - value: selection.useInputForIntCoord - - - - - - value: selection.useInputForIntCoord - value - selection.useInputForIntCoord - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7421 - - - - value: selection.intValue1 - - - - - - value: selection.intValue1 - value - selection.intValue1 - 2 - - - 7422 - - - - value: selection.intValue2 - - - - - - value: selection.intValue2 - value - selection.intValue2 - 2 - - - 7423 - - - - value: selection.deviceInfoSummary - - - - - - value: selection.deviceInfoSummary - value - selection.deviceInfoSummary - 2 - - - 7435 - - - - value: selection.deviceInfoSummary - - - - - - value: selection.deviceInfoSummary - value - selection.deviceInfoSummary - 2 - - - 7438 - - - - value: selection.deviceInfoSummary - - - - - - value: selection.deviceInfoSummary - value - selection.deviceInfoSummary - 2 - - - 7441 - - - - value: selection.deviceInfoSummary - - - - - - value: selection.deviceInfoSummary - value - selection.deviceInfoSummary - 2 - - - 7444 - - - - value: selection.deviceInfoSummary - - - - - - value: selection.deviceInfoSummary - value - selection.deviceInfoSummary - 2 - - - 7447 - - - - selectedTag: selection.intValue1 - - - - - - selectedTag: selection.intValue1 - selectedTag - selection.intValue1 - - NSConditionallySetsEnabled - - - 2 - - - 7448 - - - - value: selection.deviceInfoSummary - - - - - - value: selection.deviceInfoSummary - value - selection.deviceInfoSummary - 2 - - - 7453 - - - - value: selection.floatValue0 - - - - - - value: selection.floatValue0 - value - selection.floatValue0 - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - 2 - - - 7482 - - - - inputSettingsSetSpeedLimit - - - - 7484 - - - - closeSettingsSheet: - - - - 7490 - - - - closeSettingsSheet: - - - - 7491 - - - - changeSpeed: - - - - 7492 - - - - value: selection.floatValue0 - - - - - - value: selection.floatValue0 - value - selection.floatValue0 - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSContinuouslyUpdatesValue - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - - 2 - - - 7495 - - - - enabled: selection.IsDefaultType - - - - - - enabled: selection.IsDefaultType - enabled - selection.IsDefaultType - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7674 - - - - enabled: selection.IsDefaultType - - - - - - enabled: selection.IsDefaultType - enabled - selection.IsDefaultType - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7676 - - - - enabled: selection.IsDefaultType - - - - - - enabled: selection.IsDefaultType - enabled - selection.IsDefaultType - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7678 - - - - enabled: selection.IsDefaultType - - - - - - enabled: selection.IsDefaultType - enabled - selection.IsDefaultType - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7682 - - - - inputProfileController - - - - 7685 - - - - inputProfileMenu - - - - 7686 - - - - inputProfileSheet - - - - 7687 - - - - profileApply: - - - - 7688 - - - - profileRename: - - - - 7689 - - - - profileSave: - - - - 7690 - - - - profileView: - - - - 7691 - - - - profileDelete: - - - - 7692 - - - - profileNew: - - - - 7693 - - - - closeProfileSheet: - - - - 7696 - - - - profileDelete: - - - - 7697 - - - - profileApply: - - - - 7698 - - - - inputProfileNextButton - - - - 7700 - - - - inputProfilePreviousButton - - - - 7701 - - - - profileSelect: - - - - 7702 - - - - profileSelect: - - - - 7703 - - - - enabled: selection.IsDefaultType - - - - - - enabled: selection.IsDefaultType - enabled - selection.IsDefaultType - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7705 - - - - delegate - - - - 7706 - - - - enabled: selection.IsDefaultType - - - - - - enabled: selection.IsDefaultType - enabled - selection.IsDefaultType - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 7719 - - - - delegate - - - - 7720 - - - - inputProfileRenameSheet - - - - 7731 - - - - closeProfileRenameSheet: - - - - 7732 - - - - inputPrefOutlineView - - - - 7734 - - - - inputManager - - - - 7741 - - - - dataSource - - - - 7742 - - - - delegate - - - - 7743 - - - - profileOutlineView - - - - 7744 - - - - value: selection.Name - - - - - - value: selection.Name - value - selection.Name - - NSContinuouslyUpdatesValue - - - 2 - - - 7749 - - - - value: selection.Name - - - - - - value: selection.Name - value - selection.Name - - NSContinuouslyUpdatesValue - - - 2 - - - 7750 - - - - enabled: selection.Name - - - - - - enabled: selection.Name - enabled - selection.Name - - NSValueTransformerName - NSIsNotNil - - 2 - - - 7752 - - - - enabled: selection.Name - - - - - - enabled: selection.Name - enabled - selection.Name - - NSValueTransformerName - NSIsNotNil - - 2 - - - 7754 - - - - value: selection.object1 - - - - - - value: selection.object1 - value - selection.object1 - 2 - - - 7755 - - - - value: selection.floatValue0 - - - - - - value: selection.floatValue0 - value - selection.floatValue0 - 2 - - - 7763 - - - - value: selection.floatValue0 - - - - - - value: selection.floatValue0 - value - selection.floatValue0 - 2 - - - 7764 - - - - audioFileChoose: - - - - 7769 - - - - audioFileChooseNone: - - - - 7770 - - - - delegate - - - - 7795 - - - - changeDisplayGap: - - - - 7797 - - - - changeDisplayGap: - - - - 7798 - - - - changeDisplayGap: - - - - 7799 - - - - changeDisplayGap: - - - - 7800 - - - - changeDisplayGap: - - - - 7801 - - - - value: values.DisplayViewCombo_Gap - - - - - - value: values.DisplayViewCombo_Gap - value - values.DisplayViewCombo_Gap - 2 - - - 7814 - - - - value: values.DisplayViewCombo_Gap - - - - - - value: values.DisplayViewCombo_Gap - value - values.DisplayViewCombo_Gap - - NSContinuouslyUpdatesValue - - - 2 - - - 7816 - - - - value: selection.mainWindow.displayGap - - - - - - value: selection.mainWindow.displayGap - value - selection.mainWindow.displayGap - - NSContinuouslyUpdatesValue - - - 2 - - - 7842 - - - - makeKeyAndOrderFront: - - - - 7850 - - - - changeDisplayGap: - - - - 7851 - - - - changeDisplayGap: - - - - 7852 - - - - value: selection.mainWindow.displayGap - - - - - - value: selection.mainWindow.displayGap - value - selection.mainWindow.displayGap - 2 - - - 7853 - - - - writeDefaultsDisplayGap: - - - - 7854 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 7885 - - - - makeKeyAndOrderFront: - - - - 7887 - - - - slot1Eject: - - - - 7888 - - - - reset: - - - - 7889 - - - - value: values.EmulationSLOT1_R4StoragePath - - - - - - value: values.EmulationSLOT1_R4StoragePath - value - values.EmulationSLOT1_R4StoragePath - 2 - - - 7891 - - - - value: selection.slot1StatusText - - - - - - value: selection.slot1StatusText - value - selection.slot1StatusText - 2 - - - 7892 - - - - selectedTag: selection.slot1DeviceType - - - - - - selectedTag: selection.slot1DeviceType - selectedTag - selection.slot1DeviceType - 2 - - - 7896 - - - - chooseSlot1R4Directory: - - - - 7897 - - - - slot1ManagerWindow - - - - 7898 - - - - value: selection.romNameAndSerialInfo - - - - - - value: selection.romNameAndSerialInfo - value - selection.romNameAndSerialInfo - 2 - - - 7975 - - - - value: selection.iconImage - - - - - - value: selection.iconImage - value - selection.iconImage - 2 - - - 7976 - - - - toolTip: values.EmulationSLOT1_R4StoragePath - - - - - - toolTip: values.EmulationSLOT1_R4StoragePath - toolTip - values.EmulationSLOT1_R4StoragePath - 2 - - - 7977 - - - - animate: selection.isRomLoading - - - - - - animate: selection.isRomLoading - animate - selection.isRomLoading - 2 - - - 7979 - - - - loadRecentRom: - - - - 7983 - - - - clearRecentDocuments: - - - - 7999 - - - - loadRecentRom: - - - - 8000 - - - - closeRom: - - - - 8001 - - - - openRom: - - - - 8002 - - - - enabled: selection.isRomLoading - - - - - - enabled: selection.isRomLoading - enabled - selection.isRomLoading - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 8011 - - - - value: selection.iconImage - - - - - - value: selection.iconImage - value - selection.iconImage - 2 - - - 8017 - - - - value: selection.romNameAndSerialInfo - - - - - - value: selection.romNameAndSerialInfo - value - selection.romNameAndSerialInfo - 2 - - - 8018 - - - - animate: selection.isRomLoading - - - - - - animate: selection.isRomLoading - animate - selection.isRomLoading - 2 - - - 8019 - - - - enabled: selection.isRomLoading - - - - - - enabled: selection.isRomLoading - enabled - selection.isRomLoading - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 8020 - - - - enabled: selection.isRomLoading - - - - - - enabled: selection.isRomLoading - enabled - selection.isRomLoading - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 8026 - - - - value: selection.romNameAndSerialInfo - - - - - - value: selection.romNameAndSerialInfo - value - selection.romNameAndSerialInfo - 2 - - - 8027 - - - - animate: selection.isRomLoading - - - - - - animate: selection.isRomLoading - animate - selection.isRomLoading - 2 - - - 8028 - - - - value: selection.iconImage - - - - - - value: selection.iconImage - value - selection.iconImage - 2 - - - 8029 - - - - value: selection.iconImage - - - - - - value: selection.iconImage - value - selection.iconImage - 2 - - - 8035 - - - - value: selection.romNameAndSerialInfo - - - - - - value: selection.romNameAndSerialInfo - value - selection.romNameAndSerialInfo - 2 - - - 8036 - - - - animate: selection.isRomLoading - - - - - - animate: selection.isRomLoading - animate - selection.isRomLoading - 2 - - - 8037 - - - - enabled: selection.isRomLoading - - - - - - enabled: selection.isRomLoading - enabled - selection.isRomLoading - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 8038 - - - - enabled: selection.currentRom - - - - - - enabled: selection.currentRom - enabled - selection.currentRom - - NSValueTransformerName - NSIsNotNil - - 2 - - - 8042 - - - - value: selection.maxJITBlockSize - - - - - - value: selection.maxJITBlockSize - value - selection.maxJITBlockSize - 2 - - - 8062 - - - - value: selection.maxJITBlockSize - - - - - - value: selection.maxJITBlockSize - value - selection.maxJITBlockSize - 2 - - - 8063 - - - - value: values.Emulation_MaxJITBlockSize - - - - - - value: values.Emulation_MaxJITBlockSize - value - values.Emulation_MaxJITBlockSize - 2 - - - 8064 - - - - value: values.Emulation_MaxJITBlockSize - - - - - - value: values.Emulation_MaxJITBlockSize - value - values.Emulation_MaxJITBlockSize - 2 - - - 8065 - - - - enabled: isAppRunningOnIntel - - - - - - enabled: isAppRunningOnIntel - enabled - isAppRunningOnIntel - 2 - - - 8067 - - - - enabled: isAppRunningOnIntel - - - - - - enabled: isAppRunningOnIntel - enabled - isAppRunningOnIntel - 2 - - - 8068 - - - - enabled: isAppRunningOnIntel - - - - - - enabled: isAppRunningOnIntel - enabled - isAppRunningOnIntel - 2 - - - 8069 - - - - enabled: isAppRunningOnIntel - - - - - - enabled: isAppRunningOnIntel - enabled - isAppRunningOnIntel - 2 - - - 8070 - - - - enabled: isAppRunningOnIntel - - - - - - enabled: isAppRunningOnIntel - enabled - isAppRunningOnIntel - 2 - - - 8071 - - - - selectedTag: selection.cpuEmulationEngine - - - - - - selectedTag: selection.cpuEmulationEngine - selectedTag - selection.cpuEmulationEngine - - NSConditionallySetsEnabled - - - 2 - - - 8072 - - - - enabled: isAppRunningOnIntel - - - - - - enabled: isAppRunningOnIntel - enabled - isAppRunningOnIntel - 2 - - - 8073 - - - - selectedTag: values.Emulation_CPUEmulationEngine - - - - - - selectedTag: values.Emulation_CPUEmulationEngine - selectedTag - values.Emulation_CPUEmulationEngine - - NSConditionallySetsEnabled - - - 2 - - - 8074 - - - - selectAll: - - - - 8085 - - - - selectNone: - - - - 8086 - - - - handleChoice: - - - - 8087 - - - - handleChoice: - - - - 8088 - - - - handleChoice: - - - - 8089 - - - - window - - - - 8090 - - - - delegate - - - - 8091 - - - - enabled: filesPresent - - - - - - enabled: filesPresent - enabled - filesPresent - 2 - - - 8094 - - - - enabled: filesPresent - - - - - - enabled: filesPresent - enabled - filesPresent - 2 - - - 8095 - - - - fileListController - - - - 8097 - - - - migrationDelegate - - - - 8098 - - - - updateAndShowWindow: - - - - 8133 - - - - makeKeyAndOrderFront: - - - - 8163 - - - - revealGameDataFolderInFinder: - - - - 8167 - - - - revealRomInFinder: - - - - 8168 - - - - value: selection.cdsGPU.layerMainGPU - - - - - - value: selection.cdsGPU.layerMainGPU - value - selection.cdsGPU.layerMainGPU - 2 - - - 8169 - - - - value: selection.cdsGPU.layerMainBG0 - - - - - - value: selection.cdsGPU.layerMainBG0 - value - selection.cdsGPU.layerMainBG0 - 2 - - - 8170 - - - - value: selection.cdsGPU.layerMainBG1 - - - - - - value: selection.cdsGPU.layerMainBG1 - value - selection.cdsGPU.layerMainBG1 - 2 - - - 8171 - - - - value: selection.cdsGPU.layerMainBG2 - - - - - - value: selection.cdsGPU.layerMainBG2 - value - selection.cdsGPU.layerMainBG2 - 2 - - - 8172 - - - - value: selection.cdsGPU.layerMainBG3 - - - - - - value: selection.cdsGPU.layerMainBG3 - value - selection.cdsGPU.layerMainBG3 - 2 - - - 8173 - - - - value: selection.cdsGPU.layerMainOBJ - - - - - - value: selection.cdsGPU.layerMainOBJ - value - selection.cdsGPU.layerMainOBJ - 2 - - - 8174 - - - - value: selection.cdsGPU.layerSubGPU - - - - - - value: selection.cdsGPU.layerSubGPU - value - selection.cdsGPU.layerSubGPU - 2 - - - 8175 - - - - value: selection.cdsGPU.layerSubBG0 - - - - - - value: selection.cdsGPU.layerSubBG0 - value - selection.cdsGPU.layerSubBG0 - 2 - - - 8176 - - - - value: selection.cdsGPU.layerSubBG1 - - - - - - value: selection.cdsGPU.layerSubBG1 - value - selection.cdsGPU.layerSubBG1 - 2 - - - 8177 - - - - value: selection.cdsGPU.layerSubBG2 - - - - - - value: selection.cdsGPU.layerSubBG2 - value - selection.cdsGPU.layerSubBG2 - 2 - - - 8178 - - - - value: selection.cdsGPU.layerSubBG3 - - - - - - value: selection.cdsGPU.layerSubBG3 - value - selection.cdsGPU.layerSubBG3 - 2 - - - 8179 - - - - value: selection.cdsGPU.layerSubOBJ - - - - - - value: selection.cdsGPU.layerSubOBJ - value - selection.cdsGPU.layerSubOBJ - 2 - - - 8180 - - - - selectDisplaySize: - - - - 8187 - - - - value: selection.render3DDepthComparisonThreshold - - - - - - value: selection.render3DDepthComparisonThreshold - value - selection.render3DDepthComparisonThreshold - 2 - - - 8193 - - - - value: values.Render3D_DepthComparisonThreshold - - - - - - value: values.Render3D_DepthComparisonThreshold - value - values.Render3D_DepthComparisonThreshold - 2 - - - 8198 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - - - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - - - 75 - - - - - 80 - - - - - 72 - - - - - 124 - - - YES - - - - - - 79 - - - - - 112 - - - - - 74 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - - - 144 - - - - - 129 - - - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 295 - - - YES - - - - - - 296 - - - YES - - - - - - - - - - - - - - - - - - - - - - 297 - - - - - 298 - - - - - 494 - - - App Delegate - - - 534 - - - - - 535 - - - - - 538 - - - YES - - - - - - 539 - - - YES - - - - - 541 - - - YES - - - - - - 542 - - - YES - - - - - 575 - - - YES - - - - - - 576 - - - YES - - - - - - - - - - - - - - - - - - 578 - - - - - 594 - - - - - 596 - - - - - 607 - - - YES - - - - - - 627 - - - YES - - - - - - - 628 - - - YES - - - - - 629 - - - YES - - - - - - - - - - - - 634 - - - - - 635 - - - - - 714 - - - YES - - - - - - - - - - - - - - Cheat Search Drawer Content View - - - 715 - - - Cheat Search Drawer - - - 783 - - - YES - - - - - - 784 - - - YES - - - - - - - - - - - - - - 785 - - - - - 787 - - - YES - - - - - - 788 - - - YES - - - - - - - - - - 789 - - - - - 794 - - - YES - - - - - - 795 - - - YES - - - - - - - - - - - - - - - 796 - - - YES - - - - - - 797 - - - YES - - - - - - - - - 823 - - - YES - - - - - - 824 - - - - - 825 - - - YES - - - - - - 826 - - - - - 827 - - - YES - - - - - - 828 - - - - - 829 - - - YES - - - - - - 830 - - - - - 831 - - - YES - - - - - - 832 - - - - - 833 - - - YES - - - - - - 834 - - - - - 835 - - - YES - - - - - - 836 - - - - - 843 - - - YES - - - - - - 844 - - - - - 845 - - - YES - - - - - - 846 - - - - - 850 - - - - - 854 - - - - - 855 - - - - - 861 - - - YES - - - - - - 862 - - - YES - - - - - - - - - - - 865 - - - YES - - - - - - 866 - - - - - 872 - - - YES - - - - - - - - - - - - - 875 - - - YES - - - - - - - - - - - - - - - - - 876 - - - YES - - - - - - - - - - - - - - - - - - - - - 877 - - - YES - - - - - - - - - - - - - 878 - - - YES - - - - - - - - - 879 - - - YES - - - - - - 880 - - - - - 883 - - - YES - - - - - - 884 - - - - - 885 - - - YES - - - - - - 886 - - - - - 887 - - - YES - - - - - - 888 - - - - - 889 - - - YES - - - - - - 890 - - - - - 897 - - - YES - - - - - - 898 - - - - - 899 - - - YES - - - - - - 900 - - - - - 901 - - - YES - - - - - - 902 - - - - - 903 - - - YES - - - - - - 904 - - - - - 905 - - - YES - - - - - - 906 - - - - - 907 - - - YES - - - - - - 908 - - - - - 909 - - - YES - - - - - - 910 - - - - - 911 - - - YES - - - - - - 912 - - - - - 913 - - - YES - - - - - - 914 - - - YES - - - - - 924 - - - YES - - - - - - 925 - - - - - 926 - - - YES - - - - - - 927 - - - - - 928 - - - YES - - - - - - 929 - - - - - 930 - - - YES - - - - - - 931 - - - - - 932 - - - YES - - - - - - 933 - - - - - 934 - - - YES - - - - - - 935 - - - - - 936 - - - YES - - - - - - 937 - - - - - 938 - - - YES - - - - - - 939 - - - - - 940 - - - YES - - - - - - 941 - - - - - 942 - - - YES - - - - - - 943 - - - - - 944 - - - YES - - - - - - 945 - - - - - 946 - - - YES - - - - - - 947 - - - - - 948 - - - YES - - - - - - 951 - - - - - 949 - - - YES - - - - - - 950 - - - - - 952 - - - YES - - - - - - 953 - - - YES - - - - - - 954 - - - - - 955 - - - - - 956 - - - YES - - - - - - 957 - - - YES - - - - - - 958 - - - - - 959 - - - - - 960 - - - YES - - - - - - 961 - - - YES - - - - - - 962 - - - - - 963 - - - - - 964 - - - YES - - - - - - 967 - - - - - 965 - - - YES - - - - - - 966 - - - - - 968 - - - YES - - - - - - 969 - - - YES - - - - - - 970 - - - - - 971 - - - - - 983 - - - YES - - - - - - 984 - - - YES - - - - - - - - - - 987 - - - - - 989 - - - - - 990 - - - - - 991 - - - - - 993 - - - - - 998 - - - YES - - - - - - 999 - - - YES - - - - - - - - - - - - - - - - 1000 - - - YES - - - - - - 1001 - - - - - 1002 - - - YES - - - - - - 1003 - - - - - 1004 - - - YES - - - - - - 1005 - - - - - 1006 - - - YES - - - - - - 1007 - - - - - 1008 - - - YES - - - - - - 1009 - - - - - 1010 - - - YES - - - - - - 1011 - - - - - 1012 - - - YES - - - - - - 1013 - - - - - 1016 - - - YES - - - - - - 1017 - - - - - 1020 - - - YES - - - - - - 1021 - - - - - 1024 - - - YES - - - - - - 1025 - - - YES - - - - - - 1034 - - - YES - - - - - - 1035 - - - - - 1036 - - - YES - - - - - - 1037 - - - - - 1038 - - - YES - - - - - - 1039 - - - - - 1040 - - - YES - - - - - - 1041 - - - - - 1113 - - - - - 1114 - - - - - 1115 - - - - - 1118 - - - - - 1119 - - - - - 1120 - - - - - 1298 - - - YES - - - - - - - General Preferences View - - - 1538 - - - YES - - - - - - - - - - - 1299 - - - YES - - - - - - 1300 - - - - - 1539 - - - YES - - - - - - 1540 - - - - - 1541 - - - YES - - - - - - 1542 - - - YES - - - - - - 1543 - - - YES - - - - - - - 1544 - - - - - 1545 - - - - - 1547 - - - YES - - - - - - 1548 - - - - - 1584 - - - YES - - - - Display Preferences View - - - 1615 - - - YES - - - - - - - - 1616 - - - YES - - - - - - 1619 - - - YES - - - - - - - 1620 - - - YES - - - - - - 1621 - - - YES - - - - - - - - - - - 1626 - - - YES - - - - - - 1627 - - - YES - - - - - - 1628 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - 1629 - - - - - 1630 - - - - - 1631 - - - - - 1632 - - - YES - - - - - - 1633 - - - - - 1634 - - - YES - - - - - - 1635 - - - - - 1636 - - - - - 1637 - - - - - 1638 - - - - - 1639 - - - - - 1640 - - - - - 1641 - - - - - 1642 - - - - - 1643 - - - - - 1644 - - - - - 1645 - - - - - 1646 - - - - - 1647 - - - - - 1648 - - - - - 1649 - - - - - 1650 - - - YES - - - - - - 1651 - - - - - 1679 - - - - - 1680 - - - - - 1681 - - - - - 1682 - - - - - 1721 - - - CocoaDS Core Controller - - - 1736 - - - - - 1855 - - - - - 1856 - - - YES - - - - - - 1857 - - - YES - - - - - - - - - - - - - - 1858 - - - YES - - - - - - 1859 - - - - - 1976 - - - YES - - - - - - 1977 - - - - - 1978 - - - YES - - - - - - 1979 - - - - - 1980 - - - YES - - - - - - 1981 - - - - - 1982 - - - YES - - - - - - 1983 - - - - - 1986 - - - - - 1987 - - - YES - - - - - - 1988 - - - YES - - - - - - 1998 - - - YES - - - - - - 1999 - - - - - 2000 - - - - - 2095 - - - - - 2098 - - - - - 2154 - - - YES - - - - - - 2155 - - - - - 2246 - - - - - 2248 - - - YES - - - - - - - - - Sound Preferences View - - - 2250 - - - YES - - - - - - - - 2253 - - - YES - - - - - - 2254 - - - - - 2257 - - - YES - - - - - - 2258 - - - YES - - - - - - 2262 - - - - - 2265 - - - YES - - - - - - 2266 - - - - - 2320 - - - YES - - - - - - 2321 - - - - - 2327 - - - YES - - - - - - 2328 - - - YES - - - - - - - - - 2329 - - - - - 2330 - - - - - 2331 - - - - - 2332 - - - - - 2339 - - - YES - - - - Emulation Preferences View - - - 2340 - - - - - 2382 - - - YES - - - - - - 2383 - - - YES - - - - - - - - - - - - - - - - - - - - 2384 - - - - - 2385 - - - - - 2386 - - - - - 2387 - - - - - 2388 - - - - - 2389 - - - - - 2390 - - - - - 2391 - - - - - 2392 - - - - - 2393 - - - - - 2394 - - - - - 2395 - - - - - 2396 - - - - - 2397 - - - - - 2398 - - - - - 2399 - - - - - 2427 - - - YES - - - - - - - 2428 - - - YES - - - - - - 2429 - - - YES - - - - - - 2430 - - - - - 2431 - - - YES - - - - - - 2432 - - - YES - - - - - - 2433 - - - YES - - - - - - - - 2434 - - - - - 2435 - - - - - 2436 - - - - - 2437 - - - YES - - - - - - - - 2438 - - - - - 2439 - - - - - 2440 - - - - - 2473 - - - - - 2482 - - - - - 2483 - - - - - 2518 - - - YES - - - - - - 2519 - - - - - 608 - - - YES - - - - - - - - 2556 - - - - - 2609 - - - - - 2610 - - - - - 2653 - - - ROM Info Panel Controller - - - 2789 - - - YES - - - - - - 2790 - - - YES - - - - - - - - - - - - - - 2793 - - - YES - - - - - - 2794 - - - - - 2799 - - - YES - - - - - - 2800 - - - - - 2803 - - - YES - - - - - - 2804 - - - - - 2807 - - - YES - - - - - - 2808 - - - - - 2809 - - - YES - - - - - - 2810 - - - - - 2811 - - - YES - - - - - - 2812 - - - - - 2813 - - - YES - - - - - - 2814 - - - - - 2815 - - - YES - - - - - - 2816 - - - YES - - - - - - 2817 - - - YES - - - - - - 2818 - - - - - 2819 - - - - - 2820 - - - - - 2847 - - - YES - - - - - - 2848 - - - YES - - - - - - - - - 2863 - - - YES - - - - - - 2864 - - - - - 2865 - - - YES - - - - - - - - - 2866 - - - - - 2867 - - - - - 2868 - - - YES - - - - - - - - - - 2869 - - - - - 2870 - - - YES - - - - - - 2871 - - - YES - - - - - - 2872 - - - - - 2873 - - - - - 2874 - - - YES - - - - - - 2876 - - - YES - - - - - - 2877 - - - - - 2878 - - - File Migration Array Controller - - - 2894 - - - YES - - - - - - 2895 - - - YES - - - - - - 2896 - - - YES - - - - - - 2897 - - - YES - - - - - - 2900 - - - - - 2901 - - - - - 2902 - - - - - 2903 - - - - - 2954 - - - YES - - - - - - 2955 - - - - - 3015 - - - YES - - - - - - 3042 - - - - - 3063 - - - YES - - - - - - - 3059 - - - YES - - - - - - 3060 - - - - - 3061 - - - YES - - - - - - 3062 - - - - - 2875 - - - - - 3146 - - - - - 3148 - - - Firmware Panel Controller - - - 3204 - - - YES - - - - - - 3205 - - - YES - - - - - - - - - - - - - 3206 - - - - - 3207 - - - - - 3208 - - - - - 3209 - - - - - 3210 - - - - - 3211 - - - - - 3213 - - - - - 3214 - - - - - 3285 - - - YES - - - - - - 3286 - - - - - 3456 - - - YES - - - - - - 3457 - - - YES - - - - - - - - - - 3458 - - - YES - - - - - - 3459 - - - YES - - - - - - 3460 - - - YES - - - - - - 3461 - - - YES - - - - - - 3462 - - - - - 3463 - - - - - 3464 - - - - - 3465 - - - - - 3471 - - - YES - - - - - - 3472 - - - - - 3480 - - - YES - - - - - - 3481 - - - - - 3482 - - - - - 3488 - - - YES - - - - - - 3489 - - - YES - - - - - - - - - - - - - - 3496 - - - YES - - - - - - - - - 3497 - - - - - 3498 - - - - - 3499 - - - YES - - - - - - - - 3501 - - - YES - - - - - - 3507 - - - YES - - - - - - 3508 - - - - - 3509 - - - - - 3516 - - - YES - - - - - - 3517 - - - - - 3520 - - - Preferences Window Controller - - - 3521 - - - - - 3522 - - - - - 3523 - - - - - 3644 - - - - - 3689 - - - YES - - - - - - 3690 - - - - - 3709 - - - - - 3712 - - - YES - - - - - - 3713 - - - YES - - - - - - - - - - - 3716 - - - YES - - - - - - 3717 - - - YES - - - - - - - 3718 - - - YES - - - - - - - - - 3719 - - - - - 3720 - - - - - 3721 - - - - - 3722 - - - YES - - - - - - - - 3723 - - - - - 3724 - - - - - 3725 - - - - - 3732 - - - - - 3733 - - - YES - - - - - - 3714 - - - YES - - - - - - 3715 - - - - - 3747 - - - YES - - - - - - - - 3736 - - - YES - - - - - - 3742 - - - - - 3737 - - - YES - - - - - - 3740 - - - YES - - - - - - 3741 - - - - - 3738 - - - YES - - - - - - 3739 - - - - - 3748 - - - YES - - - - - - 3749 - - - - - 3751 - - - - - 3752 - - - - - 3784 - - - YES - - - - - - 3787 - - - YES - - - - - - 3788 - - - YES - - - - - - - - - - - - 3692 - - - YES - - - - - - 3693 - - - - - 3648 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - 3667 - - - - - 3666 - - - - - 3665 - - - - - 3664 - - - - - 3663 - - - - - 3662 - - - - - 3661 - - - - - 3660 - - - - - 3659 - - - - - 3658 - - - - - 3657 - - - - - 3656 - - - - - 3655 - - - - - 3654 - - - - - 3653 - - - - - 3652 - - - - - 3651 - - - - - 3650 - - - - - 3649 - - - - - 3789 - - - - - 3790 - - - YES - - - - - - 3791 - - - YES - - - - - - - - - - - 3786 - - - YES - - - - - - - - - - - 3775 - - - YES - - - - - - 3773 - - - YES - - - - - - 3771 - - - YES - - - - - - 3779 - - - YES - - - - Depth Comparison Threshold Text Field - - - 3782 - - - YES - - - - - - 3783 - - - - - 3780 - - - YES - - - - - - 3781 - - - - - 3772 - - - - - 3774 - - - - - 3776 - - - - - 3793 - - - YES - - - - - - 3794 - - - - - 3798 - - - YES - - - - - - - - - - - 3803 - - - YES - - - - - - 3802 - - - YES - - - - - - 3801 - - - YES - - - - - - 3800 - - - YES - - - - - - 3799 - - - YES - - - - - - 3811 - - - - - 3809 - - - YES - - - - - - 3810 - - - - - 3808 - - - - - 3807 - - - - - 3806 - - - - - 3837 - - - YES - - - - - - 3838 - - - YES - - - - - - - - - 3839 - - - - - 3840 - - - - - 3841 - - - - - 3843 - - - YES - - - - - - 3844 - - - YES - - - - - - 3845 - - - YES - - - - - - - - 3846 - - - - - 3847 - - - - - 3849 - - - YES - - - - - - 3850 - - - - - 3878 - - - YES - - - - - - 3879 - - - YES - - - - - - - - - - - 3880 - - - - - 3881 - - - - - 3882 - - - - - 3883 - - - - - 3884 - - - - - 3885 - - - YES - - - - - - - 3886 - - - YES - - - - - - 3887 - - - - - 3888 - - - YES - - - - - - 3889 - - - YES - - - - - - 3890 - - - YES - - - - - - - - - - 3894 - - - - - 3893 - - - - - 3892 - - - - - 3891 - - - - - 3896 - - - YES - - - - - - 3897 - - - - - 3899 - - - YES - - - - - - - 3900 - - - YES - - - - - - 3901 - - - - - 3935 - - - YES - - - - - - 3936 - - - YES - - - - - - - - 3937 - - - - - 3938 - - - - - 3939 - - - - - 3959 - - - CocoaDS Sound Controller - - - 3965 - - - YES - - - - - - - - - 3966 - - - - - 3967 - - - - - 3968 - - - - - 3969 - - - - - 4024 - - - YES - - - - - - 4001 - - - YES - - - - - - - - 4004 - - - - - 4003 - - - - - 4002 - - - - - 4027 - - - YES - - - - - - 4028 - - - YES - - - - - - - - - - - 4029 - - - YES - - - - - - - 4030 - - - YES - - - - - - 4031 - - - - - 4032 - - - YES - - - - - - - - 4033 - - - YES - - - - - - 4034 - - - - - 4035 - - - YES - - - - - - 4036 - - - - - 4037 - - - YES - - - - - - 4038 - - - - - 4039 - - - YES - - - - - - - - - 4040 - - - YES - - - - - - 4041 - - - - - 4043 - - - YES - - - - - - 4044 - - - - - 4045 - - - YES - - - - - - 4046 - - - - - 4047 - - - YES - - - - - - - 4048 - - - YES - - - - - - 4049 - - - - - 4050 - - - YES - - - - - - 4051 - - - - - 4053 - - - YES - - - - - - - - - - - - - - - Internal Firmware Drawer Content View - - - 4054 - - - Internal Firmware Drawer - - - 4062 - - - - - 4059 - - - YES - - - - - - 4060 - - - - - 4066 - - - YES - - - - - - 4067 - - - - - 4069 - - - YES - - - - - - 4070 - - - YES - - - - - - 4071 - - - YES - - - - - - 4072 - - - YES - - - - - - 4073 - - - YES - - - - - - 4074 - - - YES - - - - - - 4075 - - - YES - - - - - - 4076 - - - YES - - - - - - 4078 - - - YES - - - - - - 4079 - - - YES - - - - - - 4080 - - - YES - - - - - - 4081 - - - YES - - - - - - 4082 - - - YES - - - - - - - - - - - - - - - - - - - - - 4083 - - - - - 4084 - - - - - 4085 - - - - - 4086 - - - - - 4087 - - - - - 4088 - - - - - 4089 - - - - - 4090 - - - - - 4091 - - - - - 4092 - - - - - 4093 - - - - - 4094 - - - - - 4095 - - - - - 4096 - - - - - 4097 - - - - - 4098 - - - - - 4099 - - - YES - - - - - - 4100 - - - YES - - - - - - - - - - - 4101 - - - - - 4102 - - - - - 4103 - - - - - 4104 - - - - - 4105 - - - - - 4106 - - - - - 4107 - - - - - 4109 - - - - - 4110 - - - - - 4111 - - - - - 4112 - - - - - 4113 - - - - - 4114 - - - - - 4115 - - - - - 4116 - - - - - 4179 - - - YES - - - - - - 4180 - - - - - 4181 - - - YES - - - - - - 4182 - - - YES - - - - - - - - - - - - - - - - - 4191 - - - YES - - - - - - 4192 - - - YES - - - - - - 4193 - - - YES - - - - - - 4194 - - - YES - - - - - - 4195 - - - YES - - - - - - 4196 - - - YES - - - - - - 4197 - - - YES - - - - - - 4198 - - - YES - - - - - - 4199 - - - YES - - - - - - 4200 - - - YES - - - - - - 4201 - - - YES - - - - - - 4202 - - - YES - - - - - - - - - - - - - - - - - - - - - 4203 - - - - - 4204 - - - - - 4205 - - - - - 4206 - - - - - 4207 - - - - - 4208 - - - - - 4209 - - - - - 4210 - - - - - 4211 - - - - - 4212 - - - - - 4213 - - - - - 4214 - - - - - 4215 - - - - - 4216 - - - - - 4217 - - - - - 4218 - - - - - 4219 - - - YES - - - - - - 4220 - - - YES - - - - - - - - - - - 4221 - - - - - 4222 - - - - - 4223 - - - - - 4224 - - - - - 4225 - - - - - 4226 - - - - - 4227 - - - - - 4228 - - - - - 4229 - - - - - 4230 - - - - - 4231 - - - - - 4232 - - - - - 4233 - - - - - 4234 - - - - - 4240 - - - YES - - - - - - 4241 - - - - - 4277 - - - YES - - - - - - 4278 - - - - - 4559 - - - YES - - - - - - 4560 - - - - - 4561 - - - YES - - - - - - 4562 - - - - - 4565 - - - YES - - - - - - - - - - - - - 4574 - - - YES - - - - - - 4575 - - - YES - - - - - - 4576 - - - YES - - - - - - - 4577 - - - - - 4578 - - - - - 4580 - - - - - 4581 - - - YES - - - - - - 4582 - - - - - 4583 - - - YES - - - - - - 4584 - - - - - 4585 - - - YES - - - - - - - - - - - - - Internal Cheat View - - - 4586 - - - YES - - - - - - 4587 - - - YES - - - - - - 4588 - - - YES - - - - - - 4589 - - - YES - - - - - - 4590 - - - YES - - - - - - 4593 - - - YES - - - - - - 4594 - - - - - 4597 - - - YES - - - - - - 4598 - - - - - 4599 - - - - - 4600 - - - - - 4601 - - - YES - - - - - - - - - - 4602 - - - - - 4603 - - - - - 4604 - - - - - 4605 - - - - - 4606 - - - - - 4610 - - - YES - - - - - Action Replay Cheat View - - - 4632 - - - YES - - - - - - 4633 - - - YES - - - - - - - - 4634 - - - - - 4635 - - - - - 4636 - - - - - 4637 - - - - - 4639 - - - YES - - - - - - 4640 - - - - - 4647 - - - - - 4656 - - - Cheats List Array Controller - - - 4660 - - - YES - - - - - - 4661 - - - YES - - - - - - 4662 - - - - - 4663 - - - - - 4664 - - - YES - - - - - - 4665 - - - - - 4673 - - - YES - - - - - Code Breaker Cheat View - - - 4693 - - - YES - - - - - - 4694 - - - - - 4697 - - - - - 4711 - - - Cheat Selected Item Controller - - - 4715 - - - - - 4731 - - - Cheat Window Controller - - - 4745 - - - YES - - - - - - 4746 - - - - - 4607 - - - YES - - - - - - 4778 - - - - - 4792 - - - YES - - - - - - - - - 4795 - - - - - 4796 - - - - - 4797 - - - YES - - - - - - - 4798 - - - - - 4799 - - - YES - - - - - - 4800 - - - YES - - - - - - 4801 - - - - - 4802 - - - - - 4809 - - - YES - - - - - - 4810 - - - - - 4811 - - - YES - - - - - - 4812 - - - - - 4814 - - - YES - - - - - - 4815 - - - - - 4817 - - - YES - - - - - - 4818 - - - - - 4822 - - - YES - - - - - - 4823 - - - - - 4850 - - - YES - - - - - - - Exact Value Search View - - - 4851 - - - YES - - - - - - - - - Comparative Search Continue View - - - 4858 - - - YES - - - - - - 4859 - - - YES - - - - - - 4860 - - - YES - - - - - - 4861 - - - YES - - - - - - 4862 - - - YES - - - - - - 4863 - - - YES - - - - - - 4864 - - - - - 4865 - - - - - 4866 - - - - - 4867 - - - - - 4868 - - - - - 4869 - - - - - 4871 - - - YES - - - - - - 4872 - - - YES - - - - - - 4873 - - - - - 4874 - - - - - 4876 - - - YES - - - - - - 4877 - - - YES - - - - - - 4878 - - - - - 4879 - - - YES - - - - - 4880 - - - YES - - - - - - Comparative Search Start View - - - 4887 - - - YES - - - - - - 4888 - - - YES - - - - - - 4889 - - - YES - - - - - - 4890 - - - - - 4891 - - - - - 4892 - - - - - 4899 - - - - - 4900 - - - YES - - - - - - 4901 - - - YES - - - - - - 4902 - - - YES - - - - - - - 4903 - - - - - 4904 - - - - - 4906 - - - YES - - - - - - 4907 - - - - - 4908 - - - YES - - - - - - 4909 - - - - - 4910 - - - YES - - - - - - 4911 - - - YES - - - - - - 4912 - - - YES - - - - - - - 4913 - - - - - 4914 - - - - - 4916 - - - Cheat Search List Array Controller - - - 4947 - - - - - 5003 - - - YES - - - - - - - - 5004 - - - YES - - - - - - 5005 - - - YES - - - - - - 5006 - - - YES - - - - - - 5007 - - - - - 5008 - - - - - 5009 - - - - - 5066 - - - YES - - - - - - 5067 - - - - - 5068 - - - YES - - - - - - 5069 - - - - - 5080 - - - YES - - - - - - 5081 - - - YES - - - - - - - - - - - - - - - - 5082 - - - YES - - - - - - - - - 5083 - - - - - 5084 - - - - - 5085 - - - YES - - - - - - - 5086 - - - - - 5087 - - - YES - - - - - - 5088 - - - YES - - - - - - 5089 - - - - - 5097 - - - - - 5098 - - - YES - - - - - - 5099 - - - - - 5100 - - - YES - - - - - - 5101 - - - - - 5102 - - - YES - - - - - - 5103 - - - - - 5104 - - - YES - - - - - - 5105 - - - - - 5106 - - - YES - - - - - - 5107 - - - - - 5111 - - - YES - - - - - - 5112 - - - - - 5115 - - - Cheat Database Array Controller - - - 5127 - - - YES - - - - - - 5128 - - - - - 5133 - - - YES - - - - - - 5134 - - - - - 5135 - - - YES - - - - - - 5136 - - - - - 5140 - - - YES - - - - - - 5141 - - - - - 5168 - - - YES - - - - - - 5169 - - - - - 5171 - - - YES - - - - - - - - - 5172 - - - YES - - - - - - 5173 - - - YES - - - - - - 5174 - - - YES - - - - - - 5175 - - - YES - - - - - - 5176 - - - - - 5177 - - - - - 5178 - - - - - 5179 - - - - - 5193 - - - - - 24 - - - YES - - - - - - - - - 23 - - - - - 239 - - - - - 5 - - - - - 92 - - - - - 5329 - - - - - 490 - - - YES - - - - - - 491 - - - YES - - - - - - - - - - - 980 - - - - - 979 - - - - - 978 - - - - - 977 - - - - - 492 - - - - - 5419 - - - - - 5420 - - - - - 5421 - - - - - 5450 - - - YES - - - - - - - - - - - - 2287 - - - YES - - - - - - 2288 - - - - - 2289 - - - YES - - - - - - 2290 - - - - - 1507 - - - YES - - - - - - 1508 - - - YES - - - - - - 1509 - - - YES - - - - - - - - - - 1532 - - - - - 1512 - - - - - 1511 - - - - - 1510 - - - - - 1577 - - - YES - - - - - - 1578 - - - YES - - - - - - 1579 - - - - - 2291 - - - YES - - - - - - 2299 - - - - - 2292 - - - YES - - - - - - 2293 - - - YES - - - - - - 2294 - - - YES - - - - - - - - 5427 - - - - - 2298 - - - - - 2297 - - - - - 3994 - - - YES - - - - - - 3995 - - - YES - - - - - - 3996 - - - YES - - - - - - - 3997 - - - - - 3998 - - - - - 3992 - - - YES - - - - - - 3993 - - - - - 1525 - - - YES - - - - - - 1526 - - - YES - - - - - - 1527 - - - YES - - - - - - - - - - - 1531 - - - - - 1530 - - - - - 1529 - - - - - 1528 - - - - - 1580 - - - - - 1581 - - - - - 5648 - - - - - 5649 - - - - - 5651 - - - YES - - - - - - 5652 - - - YES - - - - - - - - - 5653 - - - YES - - - - - - 5654 - - - YES - - - - - - - - - 5658 - - - YES - - - - - - 5659 - - - YES - - - - - - 5660 - - - - - 5661 - - - - - 5665 - - - YES - - - - - - 5666 - - - YES - - - - - - 5667 - - - YES - - - - - - 5668 - - - YES - - - - - - 5669 - - - YES - - - - - - 5670 - - - YES - - - - - - - - 5671 - - - - - 5672 - - - - - 5673 - - - - - 5674 - - - YES - - - - - - 5675 - - - YES - - - - - - - - 5676 - - - - - 5677 - - - - - 5678 - - - - - 5679 - - - YES - - - - - - 5680 - - - YES - - - - - - - - 5681 - - - - - 5682 - - - - - 5683 - - - - - 5684 - - - YES - - - - - - 5685 - - - YES - - - - - - - - 5686 - - - - - 5687 - - - - - 5688 - - - - - 5689 - - - - - 5702 - - - - - 2529 - - - YES - - - - - - 2530 - - - YES - - - - - - - - - 2548 - - - - - 2549 - - - - - 2551 - - - - - 2558 - - - YES - - - - - - 2559 - - - YES - - - - - - 2560 - - - - - 2553 - - - - - 5713 - - - About Window Controller - - - 5933 - - - YES - - - - - Export ROM Save Panel Accessory - - - 5934 - - - YES - - - - - - 5935 - - - YES - - - - - - 5936 - - - - - 5937 - - - YES - - - - - - 5938 - - - YES - - - - - - - - 5939 - - - - - 5942 - - - - - 5963 - - - - - 5965 - - - YES - - - - - - 5966 - - - - - 6131 - - - YES - - - - - - - - - 6132 - - - YES - - - - - - - - 6133 - - - - - 6134 - - - - - 6135 - - - - - 6159 - - - YES - - - - - - 6160 - - - - - 6161 - - - YES - - - - - - 6162 - - - - - 6168 - - - YES - - - - - - 6169 - - - YES - - - - - - - 6170 - - - - - 6171 - - - YES - - - - - - 6172 - - - YES - - - - - - - 6173 - - - - - 6174 - - - - - 6177 - - - - - 6180 - - - YES - - - - - - - - - - - - - - - 6182 - - - YES - - - - - - 6183 - - - YES - - - - - - 6184 - - - YES - - - - - - - - 6185 - - - - - 6186 - - - - - 6187 - - - - - 6188 - - - YES - - - - - - - - 6189 - - - - - 6190 - - - - - 6191 - - - - - 6233 - - - - - 6234 - - - - - 3777 - - - YES - - - - - - 3778 - - - - - 3804 - - - YES - - - - - - 3805 - - - - - 6236 - - - - - 6238 - - - - - 6295 - - - YES - - - - - - 6296 - - - YES - - - - - 6352 - - - YES - - - - - - - - - - - - - - - - - - - - - - - Support Request Form View - - - 6353 - - - YES - - - - - - 6354 - - - YES - - - - - - 6355 - - - YES - - - - - - 6356 - - - YES - - - - - - 6357 - - - YES - - - - - - 6358 - - - YES - - - - - - 6359 - - - YES - - - - - - 6360 - - - YES - - - - - - 6361 - - - - - 6362 - - - YES - - - - - - 6363 - - - YES - - - - - - 6364 - - - - - 6365 - - - YES - - - - - - 6366 - - - YES - - - - - - 6368 - - - - - 6369 - - - YES - - - - - - 6374 - - - - - 6376 - - - - - 6377 - - - - - 6378 - - - - - 6379 - - - - - 6380 - - - - - 6381 - - - - - 6382 - - - - - 6383 - - - - - 6384 - - - - - 6385 - - - - - 6386 - - - - - 6387 - - - - - 6388 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - - Bug Report Form View - - - 6389 - - - YES - - - - - - 6390 - - - YES - - - - - - 6391 - - - YES - - - - - - 6392 - - - YES - - - - - - 6393 - - - YES - - - - - - 6394 - - - YES - - - - - - 6395 - - - YES - - - - - - 6396 - - - YES - - - - - - 6397 - - - - - 6398 - - - YES - - - - - - 6399 - - - YES - - - - - - 6400 - - - - - 6401 - - - YES - - - - - - 6402 - - - YES - - - - - - 6405 - - - YES - - - - - - 6406 - - - YES - - - - - - 6407 - - - - - 6408 - - - YES - - - - - - 6413 - - - - - 6414 - - - - - 6415 - - - - - 6418 - - - - - 6419 - - - - - 6420 - - - - - 6421 - - - - - 6422 - - - - - 6423 - - - - - 6424 - - - - - 6425 - - - - - 6426 - - - - - 6427 - - - - - 6428 - - - - - 6429 - - - - - 6430 - - - YES - - - - - - - - Troubleshooting Info View - - - 6431 - - - YES - - - - - - - - 6432 - - - YES - - - - - - 6433 - - - YES - - - - - - 6434 - - - - - 6435 - - - - - 6436 - - - - - 6437 - - - - - 6438 - - - - - 6440 - - - - - 6441 - - - Troubleshooting Window Controller - - - 6451 - - - - - 6484 - - - YES - - - - - - 6485 - - - - - 6486 - - - YES - - - - - - - - 6487 - - - - - 6488 - - - - - 6489 - - - - - 6491 - - - YES - - - - - - - - 6492 - - - - - 6493 - - - - - 6494 - - - - - 6496 - - - YES - - - - - - - - 6497 - - - - - 6498 - - - - - 6499 - - - - - 6611 - - - YES - - - - - - 6612 - - - - - 6617 - - - YES - - - - - - 6618 - - - YES - - - - - - 6619 - - - - - 6622 - - - YES - - - - - - 6623 - - - YES - - - - - - 6624 - - - - - 6630 - - - YES - - - - - - 6631 - - - - - 6634 - - - - - 6635 - - - - - 6651 - - - - - 6652 - - - Emulation Control Controller - - - 6931 - - - - - 6998 - - - - - 6999 - - - - - 7002 - - - - - 7014 - - - YES - - - - - - - - Input Preferences View - - - 7168 - - - YES - - - - - - 7169 - - - - - 7171 - - - YES - - - - - - 7172 - - - YES - - - - - - - - - - - 7173 - - - YES - - - - - - 7174 - - - YES - - - - - - - - - - 7175 - - - YES - - - - - - 7176 - - - YES - - - - - - - - - 7179 - - - YES - - - - - - 7180 - - - YES - - - - - - - - - 7182 - - - YES - - - - - - - - - - - 7183 - - - YES - - - - - - 7184 - - - YES - - - - - - 7185 - - - YES - - - - - - - - - - 7186 - - - - - 7187 - - - - - 7188 - - - - - 7189 - - - - - 7191 - - - - - 7192 - - - - - 7210 - - - YES - - - - - - 7211 - - - YES - - - - - - 7212 - - - YES - - - - - - - - - - - - - - - 7213 - - - - - 7214 - - - - - 7215 - - - - - 7216 - - - YES - - - - - - 7217 - - - - - 7218 - - - - - 7219 - - - - - 7220 - - - - - 7221 - - - - - 7222 - - - - - 7223 - - - - - 7224 - - - - - 7225 - - - YES - - - - - - 7226 - - - YES - - - - - - - - - - 7227 - - - YES - - - - - - 7228 - - - YES - - - - - - 7229 - - - YES - - - - - - 7230 - - - YES - - - - - - - - - - - - - - - 7231 - - - - - 7232 - - - - - 7233 - - - - - 7234 - - - - - 7235 - - - - - 7236 - - - - - 7237 - - - - - 7238 - - - - - 7239 - - - - - 7240 - - - - - 7241 - - - - - 7266 - - - YES - - - - - - 7267 - - - YES - - - - - - - - - - - - - - - - - - 7268 - - - - - 7269 - - - - - 7270 - - - - - 7271 - - - - - 7272 - - - - - 7273 - - - - - 7274 - - - - - 7275 - - - - - 7276 - - - - - 7277 - - - - - 7278 - - - - - 7279 - - - - - 7280 - - - - - 7293 - - - YES - - - - - - - - - 7285 - - - YES - - - - - - 7286 - - - - - 7287 - - - YES - - - - - - 7288 - - - YES - - - - - - 7289 - - - YES - - - - - - 7292 - - - - - 7290 - - - YES - - - - - - 7291 - - - YES - - - - - - 7294 - - - - - 7295 - - - - - 7301 - - - YES - - - - - - 7302 - - - - - 7305 - - - YES - - - - - - 7308 - - - - - 7309 - - - YES - - - - - - 7312 - - - - - 7313 - - - YES - - - - - - 7316 - - - - - 7317 - - - YES - - - - - - 7320 - - - - - 7353 - - - Input Settings Controller - - - 7354 - - - YES - - - - - - 7355 - - - - - 7358 - - - YES - - - - - - 7359 - - - - - 7392 - - - YES - - - - - - 7393 - - - - - 7395 - - - YES - - - - - - 7396 - - - - - 7398 - - - YES - - - - - - 7399 - - - - - 7401 - - - YES - - - - - - 7402 - - - - - 7404 - - - YES - - - - - - 7405 - - - - - 7433 - - - YES - - - - - - 7434 - - - - - 7436 - - - YES - - - - - - 7437 - - - - - 7439 - - - YES - - - - - - 7440 - - - - - 7442 - - - YES - - - - - - 7443 - - - - - 7445 - - - YES - - - - - - 7446 - - - - - 7449 - - - YES - - - - - - 7450 - - - YES - - - - - - - - - - - - - - - - - - 7451 - - - YES - - - - - - 7452 - - - - - 7454 - - - YES - - - - - - 7455 - - - YES - - - - - - 7456 - - - YES - - - - - - 7457 - - - YES - - - - - - 7458 - - - YES - - - - - - 7459 - - - YES - - - - - - 7460 - - - YES - - - - - - 7462 - - - YES - - - - - - 7463 - - - YES - - - - - - 7464 - - - YES - - - - - - 7465 - - - - - 7466 - - - - - 7468 - - - - - 7469 - - - - - 7470 - - - - - 7471 - - - - - 7472 - - - - - 7473 - - - - - 7474 - - - - - 7486 - - - YES - - - - - - 7487 - - - YES - - - - - - 7488 - - - - - 7489 - - - - - 7461 - - - YES - - - - - - 7467 - - - - - 7515 - - - YES - - - - - - 7516 - - - YES - - - - - - - - - - - - - 7517 - - - YES - - - - - - - - - 7521 - - - - - 7520 - - - - - 7519 - - - YES - - - - - - - - - 7518 - - - - - 7526 - - - YES - - - - - - 7525 - - - YES - - - - - - 7522 - - - YES - - - - - - 7531 - - - - - 7528 - - - - - 7537 - - - YES - - - - - - 7540 - - - - - 7541 - - - YES - - - - - - 7542 - - - - - 7543 - - - YES - - - - - - 7544 - - - - - 7545 - - - YES - - - - - - 7546 - - - - - 7551 - - - YES - - - - - - 7552 - - - - - 7553 - - - YES - - - - - - 7554 - - - - - 7555 - - - YES - - - - - - 7556 - - - - - 7583 - - - YES - - - - - - 7584 - - - - - 7128 - - - YES - - - - - - - - - 7132 - - - - - 7131 - - - - - 7130 - - - YES - - - - - - - - - - 7129 - - - - - 7137 - - - YES - - - - - - 7136 - - - YES - - - - - - 7135 - - - YES - - - - - - 7134 - - - YES - - - - - - 7133 - - - YES - - - - - - 7142 - - - - - 7141 - - - - - 7140 - - - - - 7139 - - - - - 7138 - - - - - 7594 - - - YES - - - - - - 7595 - - - YES - - - - - - 7596 - - - YES - - - - - - - - - - - - - 7597 - - - - - 7598 - - - - - 7599 - - - - - 7601 - - - - - 7602 - - - - - 7603 - - - - - 7600 - - - - - 7604 - - - - - 7605 - - - YES - - - - - - 7606 - - - YES - - - - - - 7607 - - - YES - - - - - - - 7610 - - - - - 7612 - - - - - 7624 - - - YES - - - - - - 7625 - - - - - 7666 - - - Input Profile Controller - - - 7707 - - - YES - - - - - - 7708 - - - YES - - - - - - - - 7715 - - - YES - - - - - - 7716 - - - - - 7725 - - - YES - - - - - - 7726 - - - - - 7729 - - - YES - - - - - - 7730 - - - - - 7740 - - - - - 7190 - - - - - 7759 - - - YES - - - - - - 7760 - - - - - 7761 - - - YES - - - - - - 7762 - - - YES - - - - - - 7765 - - - - - 7766 - - - YES - - - - - - 7767 - - - - - 7771 - - - YES - - - - - - 7772 - - - YES - - - - - - - - - - - - 7773 - - - - - 7774 - - - - - 7775 - - - - - 7776 - - - - - 7777 - - - - - 7778 - - - - - 7779 - - - - - 7780 - - - YES - - - - - - 7781 - - - - - 7792 - - - YES - - - - - - 7793 - - - YES - - - - - - 7794 - - - - - 7802 - - - YES - - - - - - 7803 - - - - - 7804 - - - YES - - - - - - 7805 - - - - - 7806 - - - YES - - - - - - 7807 - - - - - 7808 - - - YES - - - - - - 7809 - - - - - 7810 - - - YES - - - - - - 7811 - - - - - 7812 - - - YES - - - - - - 7813 - - - - - 7817 - - - YES - - - - - - 7818 - - - YES - - - - - - - - - - - - - - - - 7820 - - - YES - - - - - - 7821 - - - YES - - - - - - 7822 - - - YES - - - - - - 7823 - - - YES - - - - - - 7824 - - - YES - - - - - - 7825 - - - YES - - - - - - 7826 - - - - - 7827 - - - - - 7828 - - - - - 7829 - - - - - 7830 - - - - - 7831 - - - - - 7836 - - - YES - - - - - - 7837 - - - - - 7838 - - - YES - - - - - - 7839 - - - YES - - - - - - 7840 - - - - - 7843 - - - YES - - - - - - 7844 - - - - - 7845 - - - YES - - - - - - 7846 - - - - - 7847 - - - YES - - - - - - 7848 - - - - - 7855 - - - YES - - - - - - 7856 - - - YES - - - - - - - - - - - 7871 - - - YES - - - - - - 7872 - - - - - 7877 - - - YES - - - - - - 7878 - - - - - 7880 - - - YES - - - - - - 7881 - - - - - 7886 - - - - - 7899 - - - YES - - - - - - - - - - 7857 - - - YES - - - - - - - - - - 7862 - - - - - 7861 - - - - - 7860 - - - - - 7859 - - - - - 7858 - - - - - 7863 - - - YES - - - - - - 7864 - - - - - 7866 - - - YES - - - - - - 7867 - - - - - 7875 - - - YES - - - - - - 7876 - - - - - 125 - - - YES - - - - - - 126 - - - - - 7873 - - - YES - - - - - - 7874 - - - - - 8009 - - - YES - - - - - - - - - 7971 - - - YES - - - - - - 7974 - - - - - 7972 - - - YES - - - - - - 7973 - - - - - 7978 - - - - - 7987 - - - YES - - - - - - 7988 - - - YES - - - - - - 7989 - - - YES - - - - - - - - - - 8003 - - - - - 7996 - - - - - 7995 - - - YES - - - - - - 7994 - - - - - 7993 - - - - - 7997 - - - YES - - - - - - 7998 - - - - - 7879 - - - - - 8012 - - - YES - - - - - - 8013 - - - YES - - - - - - 8014 - - - - - 8015 - - - - - 8016 - - - - - 8021 - - - YES - - - - - - 8022 - - - YES - - - - - - 8023 - - - - - 8024 - - - - - 8025 - - - - - 8030 - - - YES - - - - - - 8031 - - - YES - - - - - - 8032 - - - - - 8033 - - - - - 8034 - - - - - 8043 - - - YES - - - - - - 8044 - - - - - 8045 - - - YES - - - - - - 8046 - - - YES - - - - - - 8047 - - - - - 8048 - - - YES - - - - - - 8049 - - - - - 8075 - - - YES - - - - - - 8076 - - - YES - - - - - - 8077 - - - - - 8078 - - - - - 8084 - - - - - 2604 - - - - - 8134 - - - YES - - - - - - 8135 - - - YES - - - - - - - 8160 - - - YES - - - - - - - - - - - 8136 - - - YES - - - - - - 8137 - - - - - 8138 - - - YES - - - - - - 8139 - - - - - 8140 - - - YES - - - - - - 8141 - - - - - 8142 - - - YES - - - - - - 8143 - - - - - 8144 - - - YES - - - - - - 8145 - - - - - 8146 - - - YES - - - - - - 8147 - - - - - 8161 - - - YES - - - - - - - - - - - 8148 - - - YES - - - - - - 8149 - - - - - 8150 - - - YES - - - - - - 8151 - - - - - 8152 - - - YES - - - - - - 8153 - - - - - 8154 - - - YES - - - - - - 8155 - - - - - 8156 - - - YES - - - - - - 8157 - - - - - 8158 - - - YES - - - - - - 8159 - - - - - 8162 - - - - - 8164 - - - - - 8181 - - - YES - - - - - - - 8182 - - - YES - - - - - - 8183 - - - YES - - - - - - 8184 - - - YES - - - - - - - 8185 - - - YES - - - - - - - - - 2342 - - - YES - - - - - - - - - - - - - - 2359 - - - YES - - - - - - 2355 - - - YES - - - - - - 2365 - - - YES - - - - - - 2363 - - - YES - - - - - - 2358 - - - YES - - - - - - 2357 - - - YES - - - - - - 2349 - - - YES - - - - - - 2353 - - - YES - - - - - - 2347 - - - YES - - - - - - 2348 - - - - - 2354 - - - - - 2350 - - - - - 2362 - - - - - 2361 - - - - - 2364 - - - - - 2366 - - - - - 2356 - - - - - 2360 - - - - - 2343 - - - YES - - - - - - - - - - - 2374 - - - YES - - - - - - 4275 - - - YES - - - - - - 2565 - - - YES - - - - - - 2373 - - - YES - - - - - - 2372 - - - YES - - - - - - 2371 - - - YES - - - - - - 2378 - - - - - 2377 - - - - - 2376 - - - - - 2566 - - - - - 4276 - - - - - 2375 - - - - - 2341 - - - YES - - - - - - - 6627 - - - YES - - - - - - 2345 - - - YES - - - - - - 2346 - - - - - 6628 - - - - - 6126 - - - YES - - - - - - - - - 6127 - - - YES - - - - - - - - 8060 - - - YES - - - - - - 8058 - - - YES - - - - - - 8056 - - - YES - - - - - - 8057 - - - - - 8059 - - - YES - - - - - - 8066 - - - - - 8061 - - - - - 6130 - - - - - 6129 - - - - - 6128 - - - - - 2344 - - - YES - - - - - - - 2369 - - - YES - - - - - - 2367 - - - YES - - - - - - 2368 - - - - - 2370 - - - - - 5186 - - - YES - - - - - - 5188 - - - YES - - - - - - 5189 - - - - - 8186 - - - - - 8188 - - - YES - - - - - - 8189 - - - - - 8194 - - - YES - - - - - - 8195 - - - - - - - YES - - YES - -3.IBPluginDependency - 1000.IBPluginDependency - 1000.IBViewBoundsToFrameTransform - 1001.IBPluginDependency - 1002.IBPluginDependency - 1002.IBViewBoundsToFrameTransform - 1003.IBPluginDependency - 1004.IBPluginDependency - 1004.IBViewBoundsToFrameTransform - 1005.IBPluginDependency - 1006.IBPluginDependency - 1006.IBViewBoundsToFrameTransform - 1007.IBPluginDependency - 1008.IBPluginDependency - 1008.IBViewBoundsToFrameTransform - 1009.IBPluginDependency - 1010.IBPluginDependency - 1010.IBViewBoundsToFrameTransform - 1011.IBPluginDependency - 1012.IBPluginDependency - 1012.IBViewBoundsToFrameTransform - 1013.IBPluginDependency - 1016.IBPluginDependency - 1016.IBViewBoundsToFrameTransform - 1017.IBPluginDependency - 1020.IBPluginDependency - 1020.IBViewBoundsToFrameTransform - 1021.IBPluginDependency - 1024.IBPluginDependency - 1024.IBViewBoundsToFrameTransform - 1025.IBPluginDependency - 1034.IBPluginDependency - 1034.IBViewBoundsToFrameTransform - 1035.IBPluginDependency - 1036.IBPluginDependency - 1036.IBViewBoundsToFrameTransform - 1037.IBPluginDependency - 1038.IBPluginDependency - 1038.IBViewBoundsToFrameTransform - 1039.IBPluginDependency - 1040.IBPluginDependency - 1040.IBViewBoundsToFrameTransform - 1041.IBPluginDependency - 1113.IBPluginDependency - 1114.IBPluginDependency - 1115.IBPluginDependency - 1118.IBPluginDependency - 1119.IBPluginDependency - 112.IBPluginDependency - 112.ImportedFromIB2 - 1120.IBPluginDependency - 124.IBPluginDependency - 124.ImportedFromIB2 - 125.IBEditorWindowLastContentRect - 125.IBPluginDependency - 125.ImportedFromIB2 - 125.editorWindowContentRectSynchronizationRect - 126.IBPluginDependency - 126.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 1298.IBEditorWindowLastContentRect - 1298.IBPluginDependency - 1299.IBAttributePlaceholdersKey - 1299.IBPluginDependency - 1299.IBViewBoundsToFrameTransform - 130.IBEditorWindowLastContentRect - 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect - 1300.IBPluginDependency - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 1507.IBAttributePlaceholdersKey - 1507.IBPluginDependency - 1507.IBViewBoundsToFrameTransform - 1508.IBPluginDependency - 1509.IBEditorWindowLastContentRect - 1509.IBPluginDependency - 1510.IBPluginDependency - 1511.IBPluginDependency - 1512.IBPluginDependency - 1525.IBAttributePlaceholdersKey - 1525.IBPluginDependency - 1525.IBViewBoundsToFrameTransform - 1526.IBPluginDependency - 1527.IBEditorWindowLastContentRect - 1527.IBPluginDependency - 1528.IBPluginDependency - 1529.IBPluginDependency - 1530.IBPluginDependency - 1531.IBPluginDependency - 1532.IBPluginDependency - 1538.IBPluginDependency - 1538.IBViewBoundsToFrameTransform - 1539.IBPluginDependency - 1539.IBViewBoundsToFrameTransform - 1540.IBPluginDependency - 1541.IBPluginDependency - 1541.IBViewBoundsToFrameTransform - 1542.IBPluginDependency - 1543.IBEditorWindowLastContentRect - 1543.IBPluginDependency - 1544.IBPluginDependency - 1545.IBPluginDependency - 1547.IBPluginDependency - 1547.IBViewBoundsToFrameTransform - 1548.IBPluginDependency - 1577.IBAttributePlaceholdersKey - 1577.IBPluginDependency - 1577.IBViewBoundsToFrameTransform - 1578.IBPluginDependency - 1579.IBNumberFormatterBehaviorMetadataKey - 1579.IBNumberFormatterLocalizesFormatMetadataKey - 1579.IBNumberFormatterSampleNumberKey - 1579.IBPluginDependency - 1580.IBPluginDependency - 1581.IBPluginDependency - 1584.IBEditorWindowLastContentRect - 1584.IBPluginDependency - 1615.IBAttributePlaceholdersKey - 1615.IBPluginDependency - 1615.IBViewBoundsToFrameTransform - 1616.IBPluginDependency - 1619.IBPluginDependency - 1626.IBAttributePlaceholdersKey - 1626.IBPluginDependency - 1626.IBViewBoundsToFrameTransform - 1627.IBPluginDependency - 1628.IBEditorWindowLastContentRect - 1628.IBPluginDependency - 1629.IBPluginDependency - 1630.IBPluginDependency - 1631.IBPluginDependency - 1632.IBPluginDependency - 1632.IBViewBoundsToFrameTransform - 1633.IBPluginDependency - 1634.IBPluginDependency - 1634.IBViewBoundsToFrameTransform - 1635.IBPluginDependency - 1636.IBPluginDependency - 1637.IBPluginDependency - 1638.IBPluginDependency - 1639.IBPluginDependency - 1640.IBPluginDependency - 1641.IBPluginDependency - 1642.IBPluginDependency - 1643.IBPluginDependency - 1644.IBPluginDependency - 1645.IBPluginDependency - 1646.IBPluginDependency - 1647.IBPluginDependency - 1648.IBPluginDependency - 1649.IBPluginDependency - 1650.IBPluginDependency - 1650.IBViewBoundsToFrameTransform - 1651.IBPluginDependency - 1679.IBPluginDependency - 1679.toolbarItem.selectable - 1680.IBPluginDependency - 1680.toolbarItem.selectable - 1681.IBPluginDependency - 1681.toolbarItem.selectable - 1682.IBPluginDependency - 1721.IBPluginDependency - 1736.IBNumberFormatterBehaviorMetadataKey - 1736.IBNumberFormatterLocalizesFormatMetadataKey - 1736.IBPluginDependency - 1855.IBPluginDependency - 1856.IBEditorWindowLastContentRect - 1856.IBPluginDependency - 1856.IBWindowTemplateEditedContentRect - 1856.NSWindowTemplate.visibleAtLaunch - 1857.IBPluginDependency - 1858.IBPluginDependency - 1858.IBViewBoundsToFrameTransform - 1859.IBPluginDependency - 19.IBPluginDependency - 19.ImportedFromIB2 - 1976.IBPluginDependency - 1976.IBViewBoundsToFrameTransform - 1977.IBPluginDependency - 1978.IBPluginDependency - 1978.IBViewBoundsToFrameTransform - 1979.IBPluginDependency - 1980.IBPluginDependency - 1980.IBViewBoundsToFrameTransform - 1981.IBPluginDependency - 1982.IBPluginDependency - 1982.IBViewBoundsToFrameTransform - 1983.IBPluginDependency - 1986.IBPluginDependency - 1987.IBPluginDependency - 1987.IBViewBoundsToFrameTransform - 1988.IBPluginDependency - 1998.IBPluginDependency - 1998.IBViewBoundsToFrameTransform - 1999.IBPluginDependency - 2000.IBNumberFormatterBehaviorMetadataKey - 2000.IBNumberFormatterLocalizesFormatMetadataKey - 2000.IBPluginDependency - 2095.IBPluginDependency - 2154.IBPluginDependency - 2154.IBViewBoundsToFrameTransform - 2155.IBPluginDependency - 2246.IBPluginDependency - 2246.toolbarItem.selectable - 2248.IBEditorWindowLastContentRect - 2248.IBPluginDependency - 2250.IBPluginDependency - 2250.IBViewBoundsToFrameTransform - 2253.IBAttributePlaceholdersKey - 2253.IBPluginDependency - 2253.IBViewBoundsToFrameTransform - 2254.IBPluginDependency - 2257.IBPluginDependency - 2257.IBViewBoundsToFrameTransform - 2258.IBPluginDependency - 2262.IBNumberFormatterBehaviorMetadataKey - 2262.IBNumberFormatterLocalizesFormatMetadataKey - 2262.IBPluginDependency - 2265.IBViewBoundsToFrameTransform - 2287.IBPluginDependency - 2287.IBViewBoundsToFrameTransform - 2288.IBPluginDependency - 2289.IBPluginDependency - 2289.IBViewBoundsToFrameTransform - 2290.IBPluginDependency - 2291.IBPluginDependency - 2291.IBViewBoundsToFrameTransform - 2292.IBPluginDependency - 2292.IBViewBoundsToFrameTransform - 2293.IBPluginDependency - 2294.IBEditorWindowLastContentRect - 2294.IBPluginDependency - 2297.IBAttributePlaceholdersKey - 2297.IBPluginDependency - 2298.IBAttributePlaceholdersKey - 2298.IBPluginDependency - 2299.IBPluginDependency - 23.IBPluginDependency - 23.ImportedFromIB2 - 2320.IBPluginDependency - 2320.IBViewBoundsToFrameTransform - 2321.IBPluginDependency - 2327.IBPluginDependency - 2327.IBViewBoundsToFrameTransform - 2328.IBPluginDependency - 2328.IBViewBoundsToFrameTransform - 2329.IBAttributePlaceholdersKey - 2329.IBPluginDependency - 2330.IBAttributePlaceholdersKey - 2330.IBPluginDependency - 2331.IBPluginDependency - 2332.IBAttributePlaceholdersKey - 2339.IBEditorWindowLastContentRect - 2339.IBPluginDependency - 2340.IBPluginDependency - 2340.toolbarItem.selectable - 2341.IBPluginDependency - 2341.IBViewBoundsToFrameTransform - 2342.IBPluginDependency - 2342.IBViewBoundsToFrameTransform - 2343.IBPluginDependency - 2343.IBViewBoundsToFrameTransform - 2344.IBPluginDependency - 2344.IBViewBoundsToFrameTransform - 2345.IBAttributePlaceholdersKey - 2345.IBPluginDependency - 2346.IBPluginDependency - 2347.IBAttributePlaceholdersKey - 2347.IBPluginDependency - 2347.IBViewBoundsToFrameTransform - 2348.IBPluginDependency - 2349.IBPluginDependency - 2349.IBViewBoundsToFrameTransform - 2350.IBPluginDependency - 2353.IBPluginDependency - 2353.IBViewBoundsToFrameTransform - 2354.IBPluginDependency - 2355.IBPluginDependency - 2355.IBViewBoundsToFrameTransform - 2356.IBPluginDependency - 2357.IBPluginDependency - 2357.IBViewBoundsToFrameTransform - 2358.IBPluginDependency - 2358.IBViewBoundsToFrameTransform - 2359.IBPluginDependency - 2359.IBViewBoundsToFrameTransform - 236.IBPluginDependency - 236.ImportedFromIB2 - 2360.IBPluginDependency - 2361.IBPluginDependency - 2362.IBPluginDependency - 2363.IBAttributePlaceholdersKey - 2363.IBPluginDependency - 2364.IBPluginDependency - 2365.IBAttributePlaceholdersKey - 2365.IBPluginDependency - 2366.IBPluginDependency - 2367.IBAttributePlaceholdersKey - 2367.IBPluginDependency - 2368.IBPluginDependency - 2369.IBAttributePlaceholdersKey - 2369.IBPluginDependency - 2370.IBPluginDependency - 2371.IBAttributePlaceholdersKey - 2371.IBPluginDependency - 2371.IBViewBoundsToFrameTransform - 2372.IBPluginDependency - 2372.IBViewBoundsToFrameTransform - 2373.IBPluginDependency - 2373.IBViewBoundsToFrameTransform - 2374.IBPluginDependency - 2374.IBViewBoundsToFrameTransform - 2375.IBPluginDependency - 2376.IBPluginDependency - 2377.IBPluginDependency - 2378.IBPluginDependency - 2382.IBPluginDependency - 2383.IBEditorWindowLastContentRect - 2383.IBPluginDependency - 2384.IBPluginDependency - 2385.IBPluginDependency - 2386.IBPluginDependency - 2387.IBPluginDependency - 2388.IBPluginDependency - 2389.IBPluginDependency - 239.IBPluginDependency - 239.ImportedFromIB2 - 2390.IBPluginDependency - 2391.IBPluginDependency - 2392.IBPluginDependency - 2393.IBPluginDependency - 2394.IBPluginDependency - 2395.IBPluginDependency - 2396.IBPluginDependency - 2397.IBPluginDependency - 2398.IBPluginDependency - 2399.IBPluginDependency - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 2427.IBAttributePlaceholdersKey - 2427.IBPluginDependency - 2427.IBViewBoundsToFrameTransform - 2428.IBPluginDependency - 2428.IBViewBoundsToFrameTransform - 2429.IBAttributePlaceholdersKey - 2429.IBPluginDependency - 2430.IBPluginDependency - 2431.IBPluginDependency - 2431.IBViewBoundsToFrameTransform - 2432.IBPluginDependency - 2433.IBEditorWindowLastContentRect - 2433.IBPluginDependency - 2434.IBAttributePlaceholdersKey - 2434.IBPluginDependency - 2435.IBAttributePlaceholdersKey - 2435.IBPluginDependency - 2436.IBAttributePlaceholdersKey - 2436.IBPluginDependency - 2437.IBPluginDependency - 2437.IBViewBoundsToFrameTransform - 2438.IBAttributePlaceholdersKey - 2438.IBPluginDependency - 2439.IBAttributePlaceholdersKey - 2439.IBPluginDependency - 2440.IBPluginDependency - 2473.IBPluginDependency - 2482.IBPluginDependency - 2483.IBPluginDependency - 2518.IBPluginDependency - 2518.IBViewBoundsToFrameTransform - 2519.IBPluginDependency - 2529.IBPluginDependency - 2530.IBEditorWindowLastContentRect - 2530.IBPluginDependency - 2548.IBPluginDependency - 2549.IBPluginDependency - 2551.IBPluginDependency - 2553.IBPluginDependency - 2556.IBPluginDependency - 2558.IBPluginDependency - 2559.IBEditorWindowLastContentRect - 2559.IBPluginDependency - 2560.IBPluginDependency - 2565.IBAttributePlaceholdersKey - 2565.IBPluginDependency - 2565.IBViewBoundsToFrameTransform - 2566.IBPluginDependency - 2604.IBPluginDependency - 2609.IBPluginDependency - 2610.IBPluginDependency - 2653.IBPluginDependency - 2789.IBEditorWindowLastContentRect - 2789.IBPluginDependency - 2789.IBWindowTemplateEditedContentRect - 2789.NSWindowTemplate.visibleAtLaunch - 2789.windowTemplate.hasMaxSize - 2789.windowTemplate.hasMinSize - 2789.windowTemplate.maxSize - 2789.windowTemplate.minSize - 2790.IBPluginDependency - 2793.IBPluginDependency - 2793.IBViewBoundsToFrameTransform - 2794.IBPluginDependency - 2799.IBPluginDependency - 2799.IBViewBoundsToFrameTransform - 2800.IBPluginDependency - 2803.IBPluginDependency - 2803.IBViewBoundsToFrameTransform - 2804.IBPluginDependency - 2807.IBPluginDependency - 2807.IBViewBoundsToFrameTransform - 2808.IBPluginDependency - 2809.IBPluginDependency - 2809.IBViewBoundsToFrameTransform - 2810.IBPluginDependency - 2811.IBPluginDependency - 2811.IBViewBoundsToFrameTransform - 2812.IBPluginDependency - 2813.IBPluginDependency - 2813.IBViewBoundsToFrameTransform - 2814.IBPluginDependency - 2815.IBPluginDependency - 2815.IBViewBoundsToFrameTransform - 2816.IBPluginDependency - 2816.IBViewBoundsToFrameTransform - 2817.IBPluginDependency - 2817.IBViewBoundsToFrameTransform - 2818.IBPluginDependency - 2819.IBPluginDependency - 2820.IBPluginDependency - 2847.IBEditorWindowLastContentRect - 2847.IBPluginDependency - 2847.IBWindowTemplateEditedContentRect - 2847.NSWindowTemplate.visibleAtLaunch - 2848.IBPluginDependency - 2863.IBPluginDependency - 2863.IBViewBoundsToFrameTransform - 2864.IBPluginDependency - 2865.IBPluginDependency - 2865.IBViewBoundsToFrameTransform - 2866.IBPluginDependency - 2867.IBPluginDependency - 2868.IBPluginDependency - 2869.IBPluginDependency - 2870.IBPluginDependency - 2871.IBPluginDependency - 2872.IBPluginDependency - 2873.IBPluginDependency - 2878.IBPluginDependency - 2894.IBPluginDependency - 2894.IBViewBoundsToFrameTransform - 2895.IBPluginDependency - 2895.IBViewBoundsToFrameTransform - 2896.IBPluginDependency - 2896.IBViewBoundsToFrameTransform - 2897.IBPluginDependency - 2897.IBViewBoundsToFrameTransform - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect - 2900.IBPluginDependency - 2901.IBPluginDependency - 2902.IBPluginDependency - 2903.IBPluginDependency - 295.IBPluginDependency - 2954.IBPluginDependency - 2954.IBViewBoundsToFrameTransform - 2955.IBPluginDependency - 296.IBEditorWindowLastContentRect - 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect - 297.IBPluginDependency - 298.IBPluginDependency - 3042.IBPluginDependency - 3059.IBPluginDependency - 3059.IBViewBoundsToFrameTransform - 3060.IBPluginDependency - 3061.IBPluginDependency - 3061.IBViewBoundsToFrameTransform - 3062.IBPluginDependency - 3063.IBPluginDependency - 3063.IBViewBoundsToFrameTransform - 3146.IBPluginDependency - 3148.IBPluginDependency - 3204.IBPluginDependency - 3205.IBEditorWindowLastContentRect - 3205.IBPluginDependency - 3206.IBPluginDependency - 3207.IBPluginDependency - 3208.IBPluginDependency - 3209.IBPluginDependency - 3210.IBPluginDependency - 3211.IBPluginDependency - 3213.IBPluginDependency - 3214.IBPluginDependency - 3285.IBPluginDependency - 3285.IBViewBoundsToFrameTransform - 3286.IBPluginDependency - 3456.IBEditorWindowLastContentRect - 3456.IBPluginDependency - 3456.IBWindowTemplateEditedContentRect - 3456.NSWindowTemplate.visibleAtLaunch - 3457.IBPluginDependency - 3458.IBPluginDependency - 3458.IBViewBoundsToFrameTransform - 3459.IBPluginDependency - 3459.IBViewBoundsToFrameTransform - 3460.IBPluginDependency - 3460.IBViewBoundsToFrameTransform - 3461.IBPluginDependency - 3461.IBViewBoundsToFrameTransform - 3462.IBPluginDependency - 3463.IBPluginDependency - 3464.IBPluginDependency - 3465.IBPluginDependency - 3471.IBPluginDependency - 3471.IBViewBoundsToFrameTransform - 3472.IBPluginDependency - 3480.IBPluginDependency - 3480.IBViewBoundsToFrameTransform - 3481.IBPluginDependency - 3482.IBPluginDependency - 3482.IBViewBoundsToFrameTransform - 3488.IBEditorWindowLastContentRect - 3488.IBPluginDependency - 3488.IBWindowTemplateEditedContentRect - 3488.NSWindowTemplate.visibleAtLaunch - 3489.IBPluginDependency - 3496.IBPluginDependency - 3496.IBViewBoundsToFrameTransform - 3497.IBPluginDependency - 3498.IBPluginDependency - 3499.IBPluginDependency - 3501.IBPluginDependency - 3509.IBPluginDependency - 3516.IBPluginDependency - 3516.IBViewBoundsToFrameTransform - 3517.IBPluginDependency - 3520.IBPluginDependency - 3521.IBPluginDependency - 3522.IBPluginDependency - 3523.IBPluginDependency - 3644.IBPluginDependency - 3648.IBPluginDependency - 3648.IBViewBoundsToFrameTransform - 3665.IBPluginDependency - 3666.IBPluginDependency - 3667.IBPluginDependency - 3689.IBAttributePlaceholdersKey - 3689.IBPluginDependency - 3689.IBViewBoundsToFrameTransform - 3690.IBPluginDependency - 3692.IBAttributePlaceholdersKey - 3692.IBPluginDependency - 3692.IBViewBoundsToFrameTransform - 3693.IBPluginDependency - 3709.IBPluginDependency - 3712.IBEditorWindowLastContentRect - 3712.IBPluginDependency - 3712.IBWindowTemplateEditedContentRect - 3712.NSWindowTemplate.visibleAtLaunch - 3713.IBPluginDependency - 3714.IBAttributePlaceholdersKey - 3714.IBPluginDependency - 3714.IBViewBoundsToFrameTransform - 3715.IBPluginDependency - 3716.IBPluginDependency - 3716.IBViewBoundsToFrameTransform - 3717.IBPluginDependency - 3717.IBViewBoundsToFrameTransform - 3718.IBPluginDependency - 3718.IBViewBoundsToFrameTransform - 3719.IBAttributePlaceholdersKey - 3719.IBPluginDependency - 3720.IBAttributePlaceholdersKey - 3720.IBPluginDependency - 3721.IBPluginDependency - 3722.IBPluginDependency - 3723.IBAttributePlaceholdersKey - 3723.IBPluginDependency - 3724.IBAttributePlaceholdersKey - 3724.IBPluginDependency - 3725.IBPluginDependency - 3732.IBAttributePlaceholdersKey - 3733.IBPluginDependency - 3733.IBViewBoundsToFrameTransform - 3736.IBAttributePlaceholdersKey - 3736.IBPluginDependency - 3736.IBViewBoundsToFrameTransform - 3737.IBPluginDependency - 3737.IBViewBoundsToFrameTransform - 3738.IBViewBoundsToFrameTransform - 3740.IBPluginDependency - 3741.IBNumberFormatterBehaviorMetadataKey - 3741.IBNumberFormatterLocalizesFormatMetadataKey - 3741.IBPluginDependency - 3742.IBPluginDependency - 3747.IBPluginDependency - 3747.IBViewBoundsToFrameTransform - 3748.IBPluginDependency - 3748.IBViewBoundsToFrameTransform - 3749.IBPluginDependency - 3751.IBPluginDependency - 3752.IBPluginDependency - 3771.IBAttributePlaceholdersKey - 3771.IBPluginDependency - 3771.IBViewBoundsToFrameTransform - 3772.IBPluginDependency - 3773.IBAttributePlaceholdersKey - 3773.IBPluginDependency - 3773.IBViewBoundsToFrameTransform - 3774.IBPluginDependency - 3775.IBAttributePlaceholdersKey - 3775.IBPluginDependency - 3775.IBViewBoundsToFrameTransform - 3776.IBPluginDependency - 3777.IBAttributePlaceholdersKey - 3777.IBPluginDependency - 3777.IBViewBoundsToFrameTransform - 3778.IBPluginDependency - 3779.IBAttributePlaceholdersKey - 3779.IBPluginDependency - 3779.IBViewBoundsToFrameTransform - 3780.IBPluginDependency - 3781.IBNumberFormatterBehaviorMetadataKey - 3781.IBNumberFormatterLocalizesFormatMetadataKey - 3781.IBPluginDependency - 3782.IBPluginDependency - 3782.IBViewBoundsToFrameTransform - 3783.IBPluginDependency - 3784.IBPluginDependency - 3784.IBViewBoundsToFrameTransform - 3786.IBPluginDependency - 3786.IBViewBoundsToFrameTransform - 3789.IBPluginDependency - 3790.IBEditorWindowLastContentRect - 3790.IBPluginDependency - 3790.IBWindowTemplateEditedContentRect - 3790.NSWindowTemplate.visibleAtLaunch - 3791.IBPluginDependency - 3793.IBPluginDependency - 3793.IBViewBoundsToFrameTransform - 3794.IBPluginDependency - 3798.IBPluginDependency - 3798.IBViewBoundsToFrameTransform - 3799.IBPluginDependency - 3799.IBViewBoundsToFrameTransform - 3800.IBAttributePlaceholdersKey - 3800.IBPluginDependency - 3800.IBViewBoundsToFrameTransform - 3801.IBAttributePlaceholdersKey - 3801.IBPluginDependency - 3801.IBViewBoundsToFrameTransform - 3802.IBAttributePlaceholdersKey - 3802.IBPluginDependency - 3802.IBViewBoundsToFrameTransform - 3803.IBAttributePlaceholdersKey - 3803.IBPluginDependency - 3803.IBViewBoundsToFrameTransform - 3804.IBAttributePlaceholdersKey - 3804.IBPluginDependency - 3804.IBViewBoundsToFrameTransform - 3805.IBPluginDependency - 3806.IBPluginDependency - 3807.IBPluginDependency - 3808.IBPluginDependency - 3809.IBPluginDependency - 3810.IBNumberFormatterBehaviorMetadataKey - 3810.IBNumberFormatterLocalizesFormatMetadataKey - 3810.IBPluginDependency - 3811.IBPluginDependency - 3837.IBPluginDependency - 3837.IBViewBoundsToFrameTransform - 3838.IBPluginDependency - 3838.IBViewBoundsToFrameTransform - 3839.IBAttributePlaceholdersKey - 3839.IBPluginDependency - 3840.IBAttributePlaceholdersKey - 3840.IBPluginDependency - 3841.IBPluginDependency - 3843.IBAttributePlaceholdersKey - 3843.IBPluginDependency - 3843.IBViewBoundsToFrameTransform - 3844.IBPluginDependency - 3845.IBEditorWindowLastContentRect - 3845.IBPluginDependency - 3846.IBAttributePlaceholdersKey - 3846.IBPluginDependency - 3847.IBAttributePlaceholdersKey - 3847.IBPluginDependency - 3849.IBPluginDependency - 3849.IBViewBoundsToFrameTransform - 3850.IBPluginDependency - 3878.IBPluginDependency - 3878.IBViewBoundsToFrameTransform - 3879.IBPluginDependency - 3879.IBViewBoundsToFrameTransform - 3880.IBAttributePlaceholdersKey - 3880.IBPluginDependency - 3881.IBAttributePlaceholdersKey - 3881.IBPluginDependency - 3882.IBPluginDependency - 3883.IBAttributePlaceholdersKey - 3884.IBAttributePlaceholdersKey - 3885.IBPluginDependency - 3885.IBViewBoundsToFrameTransform - 3886.IBAttributePlaceholdersKey - 3886.IBPluginDependency - 3886.IBViewBoundsToFrameTransform - 3887.IBPluginDependency - 3888.IBAttributePlaceholdersKey - 3888.IBPluginDependency - 3888.IBViewBoundsToFrameTransform - 3889.IBPluginDependency - 3890.IBEditorWindowLastContentRect - 3890.IBPluginDependency - 3891.IBAttributePlaceholdersKey - 3891.IBPluginDependency - 3892.IBAttributePlaceholdersKey - 3892.IBPluginDependency - 3893.IBAttributePlaceholdersKey - 3893.IBPluginDependency - 3894.IBAttributePlaceholdersKey - 3894.IBPluginDependency - 3896.IBPluginDependency - 3896.IBViewBoundsToFrameTransform - 3897.IBPluginDependency - 3899.IBPluginDependency - 3899.IBViewBoundsToFrameTransform - 3900.IBAttributePlaceholdersKey - 3900.IBPluginDependency - 3900.IBViewBoundsToFrameTransform - 3901.IBPluginDependency - 3935.IBPluginDependency - 3936.IBEditorWindowLastContentRect - 3936.IBPluginDependency - 3937.IBPluginDependency - 3938.IBPluginDependency - 3939.IBPluginDependency - 3959.IBPluginDependency - 3965.IBPluginDependency - 3965.IBViewBoundsToFrameTransform - 3966.IBAttributePlaceholdersKey - 3966.IBPluginDependency - 3967.IBAttributePlaceholdersKey - 3967.IBPluginDependency - 3968.IBPluginDependency - 3969.IBAttributePlaceholdersKey - 3992.IBPluginDependency - 3992.IBViewBoundsToFrameTransform - 3993.IBPluginDependency - 3994.IBAttributePlaceholdersKey - 3994.IBPluginDependency - 3994.IBViewBoundsToFrameTransform - 3995.IBPluginDependency - 3996.IBEditorWindowLastContentRect - 3996.IBPluginDependency - 3997.IBAttributePlaceholdersKey - 3997.IBPluginDependency - 3998.IBAttributePlaceholdersKey - 3998.IBPluginDependency - 4001.IBPluginDependency - 4001.IBViewBoundsToFrameTransform - 4002.IBAttributePlaceholdersKey - 4002.IBPluginDependency - 4003.IBAttributePlaceholdersKey - 4003.IBPluginDependency - 4004.IBPluginDependency - 4024.IBPluginDependency - 4024.IBViewBoundsToFrameTransform - 4027.IBEditorWindowLastContentRect - 4027.IBPluginDependency - 4027.IBWindowTemplateEditedContentRect - 4027.NSWindowTemplate.visibleAtLaunch - 4028.IBPluginDependency - 4029.IBPluginDependency - 4029.IBViewBoundsToFrameTransform - 4030.IBAttributePlaceholdersKey - 4030.IBPluginDependency - 4031.IBPluginDependency - 4032.IBPluginDependency - 4032.IBViewBoundsToFrameTransform - 4033.IBAttributePlaceholdersKey - 4033.IBPluginDependency - 4034.IBPluginDependency - 4035.IBAttributePlaceholdersKey - 4035.IBPluginDependency - 4035.IBViewBoundsToFrameTransform - 4036.IBPluginDependency - 4037.IBAttributePlaceholdersKey - 4037.IBPluginDependency - 4037.IBViewBoundsToFrameTransform - 4038.IBPluginDependency - 4039.IBPluginDependency - 4039.IBViewBoundsToFrameTransform - 4040.IBPluginDependency - 4040.IBViewBoundsToFrameTransform - 4041.IBPluginDependency - 4043.IBAttributePlaceholdersKey - 4043.IBPluginDependency - 4043.IBViewBoundsToFrameTransform - 4044.IBPluginDependency - 4045.IBAttributePlaceholdersKey - 4045.IBPluginDependency - 4045.IBViewBoundsToFrameTransform - 4046.IBPluginDependency - 4047.IBPluginDependency - 4047.IBViewBoundsToFrameTransform - 4048.IBAttributePlaceholdersKey - 4048.IBPluginDependency - 4048.IBViewBoundsToFrameTransform - 4049.IBPluginDependency - 4050.IBAttributePlaceholdersKey - 4050.IBPluginDependency - 4050.IBViewBoundsToFrameTransform - 4051.IBPluginDependency - 4053.IBEditorWindowLastContentRect - 4053.IBPluginDependency - 4053.IBViewBoundsToFrameTransform - 4054.IBPluginDependency - 4059.IBPluginDependency - 4059.IBViewBoundsToFrameTransform - 4060.IBPluginDependency - 4062.IBPluginDependency - 4066.IBPluginDependency - 4066.IBViewBoundsToFrameTransform - 4067.IBPluginDependency - 4069.IBAttributePlaceholdersKey - 4069.IBPluginDependency - 4069.IBViewBoundsToFrameTransform - 4070.IBAttributePlaceholdersKey - 4070.IBPluginDependency - 4070.IBViewBoundsToFrameTransform - 4071.IBPluginDependency - 4071.IBViewBoundsToFrameTransform - 4072.IBPluginDependency - 4072.IBViewBoundsToFrameTransform - 4073.IBPluginDependency - 4073.IBViewBoundsToFrameTransform - 4074.IBPluginDependency - 4074.IBViewBoundsToFrameTransform - 4075.IBPluginDependency - 4075.IBViewBoundsToFrameTransform - 4076.IBPluginDependency - 4076.IBViewBoundsToFrameTransform - 4078.IBPluginDependency - 4078.IBViewBoundsToFrameTransform - 4079.IBPluginDependency - 4079.IBViewBoundsToFrameTransform - 4080.IBPluginDependency - 4080.IBViewBoundsToFrameTransform - 4081.IBPluginDependency - 4082.IBEditorWindowLastContentRect - 4082.IBPluginDependency - 4083.IBPluginDependency - 4084.IBPluginDependency - 4085.IBPluginDependency - 4086.IBPluginDependency - 4087.IBPluginDependency - 4088.IBPluginDependency - 4089.IBPluginDependency - 4090.IBPluginDependency - 4091.IBPluginDependency - 4092.IBPluginDependency - 4093.IBPluginDependency - 4094.IBPluginDependency - 4095.IBPluginDependency - 4096.IBPluginDependency - 4097.IBPluginDependency - 4098.IBPluginDependency - 4099.IBPluginDependency - 4100.IBEditorWindowLastContentRect - 4100.IBPluginDependency - 4101.IBPluginDependency - 4102.IBPluginDependency - 4103.IBPluginDependency - 4104.IBPluginDependency - 4105.IBPluginDependency - 4106.IBPluginDependency - 4107.IBPluginDependency - 4109.IBPluginDependency - 4110.IBPluginDependency - 4111.IBPluginDependency - 4112.IBPluginDependency - 4113.IBPluginDependency - 4114.IBPluginDependency - 4115.IBPluginDependency - 4116.IBPluginDependency - 4179.IBPluginDependency - 4179.IBViewBoundsToFrameTransform - 4180.IBPluginDependency - 4181.IBEditorWindowLastContentRect - 4181.IBPluginDependency - 4181.IBWindowTemplateEditedContentRect - 4181.NSWindowTemplate.visibleAtLaunch - 4182.IBPluginDependency - 4191.IBAttributePlaceholdersKey - 4191.IBPluginDependency - 4191.IBViewBoundsToFrameTransform - 4192.IBAttributePlaceholdersKey - 4192.IBPluginDependency - 4192.IBViewBoundsToFrameTransform - 4193.IBPluginDependency - 4193.IBViewBoundsToFrameTransform - 4194.IBPluginDependency - 4194.IBViewBoundsToFrameTransform - 4195.IBPluginDependency - 4195.IBViewBoundsToFrameTransform - 4196.IBPluginDependency - 4196.IBViewBoundsToFrameTransform - 4197.IBPluginDependency - 4197.IBViewBoundsToFrameTransform - 4198.IBPluginDependency - 4198.IBViewBoundsToFrameTransform - 4199.IBPluginDependency - 4199.IBViewBoundsToFrameTransform - 4200.IBPluginDependency - 4200.IBViewBoundsToFrameTransform - 4201.IBPluginDependency - 4202.IBEditorWindowLastContentRect - 4202.IBPluginDependency - 4203.IBPluginDependency - 4204.IBPluginDependency - 4205.IBPluginDependency - 4206.IBPluginDependency - 4207.IBPluginDependency - 4208.IBPluginDependency - 4209.IBPluginDependency - 4210.IBPluginDependency - 4211.IBPluginDependency - 4212.IBPluginDependency - 4213.IBPluginDependency - 4214.IBPluginDependency - 4215.IBPluginDependency - 4216.IBPluginDependency - 4217.IBPluginDependency - 4218.IBPluginDependency - 4219.IBPluginDependency - 4220.IBEditorWindowLastContentRect - 4220.IBPluginDependency - 4221.IBPluginDependency - 4222.IBPluginDependency - 4223.IBPluginDependency - 4224.IBPluginDependency - 4225.IBPluginDependency - 4226.IBPluginDependency - 4227.IBPluginDependency - 4228.IBPluginDependency - 4229.IBPluginDependency - 4230.IBPluginDependency - 4231.IBPluginDependency - 4232.IBPluginDependency - 4233.IBPluginDependency - 4234.IBPluginDependency - 4240.IBPluginDependency - 4240.IBViewBoundsToFrameTransform - 4241.IBPluginDependency - 4275.IBPluginDependency - 4275.IBViewBoundsToFrameTransform - 4276.IBPluginDependency - 4277.IBPluginDependency - 4277.IBViewBoundsToFrameTransform - 4278.IBPluginDependency - 4559.IBPluginDependency - 4559.IBViewBoundsToFrameTransform - 4560.IBPluginDependency - 4561.IBPluginDependency - 4561.IBViewBoundsToFrameTransform - 4562.IBPluginDependency - 4565.IBPluginDependency - 4565.IBViewBoundsToFrameTransform - 4574.IBPluginDependency - 4574.IBViewBoundsToFrameTransform - 4575.IBPluginDependency - 4576.IBEditorWindowLastContentRect - 4576.IBPluginDependency - 4577.IBPluginDependency - 4578.IBPluginDependency - 4580.IBPluginDependency - 4581.IBPluginDependency - 4581.IBViewBoundsToFrameTransform - 4582.IBPluginDependency - 4583.IBPluginDependency - 4583.IBViewBoundsToFrameTransform - 4584.IBPluginDependency - 4585.IBEditorWindowLastContentRect - 4585.IBPluginDependency - 4585.IBViewBoundsToFrameTransform - 4586.IBPluginDependency - 4586.IBViewBoundsToFrameTransform - 4587.IBPluginDependency - 4587.IBViewBoundsToFrameTransform - 4588.IBAttributePlaceholdersKey - 4588.IBPluginDependency - 4588.IBViewBoundsToFrameTransform - 4589.IBPluginDependency - 4589.IBViewBoundsToFrameTransform - 4590.IBAttributePlaceholdersKey - 4590.IBPluginDependency - 4590.IBViewBoundsToFrameTransform - 4593.IBPluginDependency - 4593.IBViewBoundsToFrameTransform - 4594.IBPluginDependency - 4597.IBPluginDependency - 4598.IBPluginDependency - 4599.IBPluginDependency - 4600.IBPluginDependency - 4601.IBAttributePlaceholdersKey - 4601.IBPluginDependency - 4601.IBViewBoundsToFrameTransform - 4604.IBPluginDependency - 4605.IBPluginDependency - 4606.IBPluginDependency - 4610.IBEditorWindowLastContentRect - 4610.IBPluginDependency - 4610.IBViewBoundsToFrameTransform - 4632.IBPluginDependency - 4632.IBViewBoundsToFrameTransform - 4633.IBPluginDependency - 4633.IBViewBoundsToFrameTransform - 4634.IBPluginDependency - 4635.IBPluginDependency - 4636.IBPluginDependency - 4637.IBPluginDependency - 4639.IBPluginDependency - 4639.IBViewBoundsToFrameTransform - 4640.IBPluginDependency - 4647.IBPluginDependency - 4656.IBPluginDependency - 4660.IBPluginDependency - 4660.IBViewBoundsToFrameTransform - 4661.IBPluginDependency - 4661.IBViewBoundsToFrameTransform - 4662.IBPluginDependency - 4663.IBPluginDependency - 4664.IBPluginDependency - 4665.IBPluginDependency - 4673.IBEditorWindowLastContentRect - 4673.IBPluginDependency - 4673.IBViewBoundsToFrameTransform - 4693.IBPluginDependency - 4693.IBViewBoundsToFrameTransform - 4694.IBPluginDependency - 4697.IBPluginDependency - 4711.IBPluginDependency - 4731.IBPluginDependency - 4745.IBPluginDependency - 4745.IBViewBoundsToFrameTransform - 4746.IBPluginDependency - 4778.IBPluginDependency - 4792.IBPluginDependency - 4792.IBViewBoundsToFrameTransform - 4795.IBPluginDependency - 4796.IBPluginDependency - 4797.IBPluginDependency - 4798.IBPluginDependency - 4799.IBPluginDependency - 4800.IBPluginDependency - 4801.IBPluginDependency - 4802.IBPluginDependency - 4809.IBPluginDependency - 4809.IBViewBoundsToFrameTransform - 4810.IBPluginDependency - 4811.IBPluginDependency - 4811.IBViewBoundsToFrameTransform - 4812.IBPluginDependency - 4814.IBAttributePlaceholdersKey - 4814.IBPluginDependency - 4814.IBViewBoundsToFrameTransform - 4815.IBPluginDependency - 4817.IBPluginDependency - 4818.IBPluginDependency - 4822.IBAttributePlaceholdersKey - 4822.IBPluginDependency - 4822.IBViewBoundsToFrameTransform - 4823.IBPluginDependency - 4850.IBEditorWindowLastContentRect - 4850.IBPluginDependency - 4851.IBEditorWindowLastContentRect - 4851.IBPluginDependency - 4851.IBViewBoundsToFrameTransform - 4858.IBPluginDependency - 4858.IBViewBoundsToFrameTransform - 4859.IBPluginDependency - 4859.IBViewBoundsToFrameTransform - 4860.IBPluginDependency - 4860.IBViewBoundsToFrameTransform - 4861.IBPluginDependency - 4861.IBViewBoundsToFrameTransform - 4862.IBPluginDependency - 4862.IBViewBoundsToFrameTransform - 4863.IBPluginDependency - 4863.IBViewBoundsToFrameTransform - 4864.IBPluginDependency - 4865.IBPluginDependency - 4866.IBPluginDependency - 4867.IBPluginDependency - 4868.IBPluginDependency - 4869.IBPluginDependency - 4871.IBPluginDependency - 4871.IBViewBoundsToFrameTransform - 4872.IBPluginDependency - 4872.IBViewBoundsToFrameTransform - 4873.IBPluginDependency - 4874.IBPluginDependency - 4876.IBPluginDependency - 4876.IBViewBoundsToFrameTransform - 4877.IBPluginDependency - 4877.IBViewBoundsToFrameTransform - 4878.IBPluginDependency - 4879.IBPluginDependency - 4880.IBEditorWindowLastContentRect - 4880.IBPluginDependency - 4880.IBViewBoundsToFrameTransform - 4887.IBPluginDependency - 4887.IBViewBoundsToFrameTransform - 4888.IBPluginDependency - 4888.IBViewBoundsToFrameTransform - 4889.IBPluginDependency - 4889.IBViewBoundsToFrameTransform - 4890.IBPluginDependency - 4891.IBPluginDependency - 4892.IBPluginDependency - 4899.IBPluginDependency - 4899.IBViewBoundsToFrameTransform - 490.IBPluginDependency - 4900.IBPluginDependency - 4900.IBViewBoundsToFrameTransform - 4901.IBPluginDependency - 4902.IBEditorWindowLastContentRect - 4902.IBPluginDependency - 4903.IBAttributePlaceholdersKey - 4903.IBPluginDependency - 4904.IBAttributePlaceholdersKey - 4904.IBPluginDependency - 4906.IBPluginDependency - 4906.IBViewBoundsToFrameTransform - 4907.IBPluginDependency - 4908.IBPluginDependency - 4908.IBViewBoundsToFrameTransform - 4909.IBPluginDependency - 491.IBEditorWindowLastContentRect - 491.IBPluginDependency - 4910.IBAttributePlaceholdersKey - 4910.IBPluginDependency - 4910.IBViewBoundsToFrameTransform - 4911.IBPluginDependency - 4912.IBEditorWindowLastContentRect - 4912.IBPluginDependency - 4913.IBPluginDependency - 4914.IBPluginDependency - 4916.IBPluginDependency - 492.IBPluginDependency - 4947.IBPluginDependency - 4947.IBViewBoundsToFrameTransform - 5.IBPluginDependency - 5.ImportedFromIB2 - 5003.IBPluginDependency - 5003.IBViewBoundsToFrameTransform - 5004.IBPluginDependency - 5004.IBViewBoundsToFrameTransform - 5005.IBPluginDependency - 5005.IBViewBoundsToFrameTransform - 5006.IBPluginDependency - 5006.IBViewBoundsToFrameTransform - 5007.IBPluginDependency - 5008.IBPluginDependency - 5009.IBPluginDependency - 5066.IBPluginDependency - 5066.IBViewBoundsToFrameTransform - 5067.IBPluginDependency - 5068.IBAttributePlaceholdersKey - 5068.IBPluginDependency - 5068.IBViewBoundsToFrameTransform - 5069.IBPluginDependency - 5080.IBEditorWindowLastContentRect - 5080.IBPluginDependency - 5080.IBWindowTemplateEditedContentRect - 5080.NSWindowTemplate.visibleAtLaunch - 5080.windowTemplate.hasMinSize - 5080.windowTemplate.minSize - 5081.IBPluginDependency - 5082.IBPluginDependency - 5082.IBViewBoundsToFrameTransform - 5083.IBPluginDependency - 5084.IBPluginDependency - 5085.IBPluginDependency - 5086.IBPluginDependency - 5087.IBPluginDependency - 5088.IBPluginDependency - 5089.IBPluginDependency - 5097.IBPluginDependency - 5098.IBPluginDependency - 5098.IBViewBoundsToFrameTransform - 5099.IBPluginDependency - 5100.IBPluginDependency - 5100.IBViewBoundsToFrameTransform - 5101.IBPluginDependency - 5102.IBPluginDependency - 5102.IBViewBoundsToFrameTransform - 5103.IBPluginDependency - 5104.IBPluginDependency - 5104.IBViewBoundsToFrameTransform - 5105.IBPluginDependency - 5106.IBPluginDependency - 5106.IBViewBoundsToFrameTransform - 5107.IBPluginDependency - 5111.IBPluginDependency - 5111.IBViewBoundsToFrameTransform - 5112.IBPluginDependency - 5115.IBPluginDependency - 5127.IBPluginDependency - 5127.IBViewBoundsToFrameTransform - 5128.IBPluginDependency - 5133.IBPluginDependency - 5133.IBViewBoundsToFrameTransform - 5134.IBPluginDependency - 5135.IBPluginDependency - 5135.IBViewBoundsToFrameTransform - 5136.IBPluginDependency - 5140.IBPluginDependency - 5140.IBViewBoundsToFrameTransform - 5141.IBPluginDependency - 5168.IBPluginDependency - 5168.IBViewBoundsToFrameTransform - 5169.IBPluginDependency - 5171.IBPluginDependency - 5171.IBViewBoundsToFrameTransform - 5172.IBPluginDependency - 5172.IBViewBoundsToFrameTransform - 5173.IBPluginDependency - 5173.IBViewBoundsToFrameTransform - 5174.IBPluginDependency - 5174.IBViewBoundsToFrameTransform - 5175.IBPluginDependency - 5175.IBViewBoundsToFrameTransform - 5176.IBPluginDependency - 5177.IBPluginDependency - 5178.IBPluginDependency - 5179.IBPluginDependency - 5186.IBPluginDependency - 5186.IBViewBoundsToFrameTransform - 5188.IBAttributePlaceholdersKey - 5188.IBPluginDependency - 5188.IBViewBoundsToFrameTransform - 5189.IBPluginDependency - 5193.IBNumberFormatterBehaviorMetadataKey - 5193.IBNumberFormatterLocalizesFormatMetadataKey - 5193.IBPluginDependency - 5329.IBPluginDependency - 534.IBPluginDependency - 535.IBPluginDependency - 538.IBPluginDependency - 539.IBEditorWindowLastContentRect - 539.IBPluginDependency - 541.IBPluginDependency - 5419.IBPluginDependency - 542.IBEditorWindowLastContentRect - 542.IBPluginDependency - 5420.IBPluginDependency - 5421.IBPluginDependency - 5427.IBAttributePlaceholdersKey - 5427.IBPluginDependency - 5450.IBPluginDependency - 5450.IBViewBoundsToFrameTransform - 56.IBPluginDependency - 56.ImportedFromIB2 - 5648.IBPluginDependency - 5649.IBPluginDependency - 5651.IBEditorWindowLastContentRect - 5651.IBPluginDependency - 5651.IBWindowTemplateEditedContentRect - 5651.NSWindowTemplate.visibleAtLaunch - 5652.IBPluginDependency - 5653.IBPluginDependency - 5653.IBViewBoundsToFrameTransform - 5654.IBAttributePlaceholdersKey - 5654.IBPluginDependency - 5654.IBViewBoundsToFrameTransform - 5658.IBPluginDependency - 5658.IBViewBoundsToFrameTransform - 5659.IBPluginDependency - 5659.IBViewBoundsToFrameTransform - 5660.IBPluginDependency - 5661.IBPluginDependency - 5667.IBPluginDependency - 5668.IBPluginDependency - 5669.IBPluginDependency - 5670.IBPluginDependency - 5670.IBViewBoundsToFrameTransform - 5671.IBPluginDependency - 5672.IBPluginDependency - 5673.IBPluginDependency - 5674.IBPluginDependency - 5675.IBPluginDependency - 5675.IBViewBoundsToFrameTransform - 5676.IBPluginDependency - 5677.IBPluginDependency - 5678.IBPluginDependency - 5680.IBPluginDependency - 5680.IBViewBoundsToFrameTransform - 5681.IBPluginDependency - 5682.IBPluginDependency - 5683.IBPluginDependency - 5685.IBPluginDependency - 5685.IBViewBoundsToFrameTransform - 5686.IBPluginDependency - 5687.IBPluginDependency - 5688.IBPluginDependency - 5689.IBPluginDependency - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 5702.IBPluginDependency - 5713.IBPluginDependency - 575.IBPluginDependency - 576.IBEditorWindowLastContentRect - 576.IBPluginDependency - 578.IBPluginDependency - 58.IBPluginDependency - 58.ImportedFromIB2 - 5933.IBEditorWindowLastContentRect - 5933.IBPluginDependency - 5933.IBViewBoundsToFrameTransform - 5934.IBPluginDependency - 5934.IBViewBoundsToFrameTransform - 5935.IBPluginDependency - 5935.IBViewBoundsToFrameTransform - 5936.IBPluginDependency - 5937.IBPluginDependency - 5938.IBEditorWindowLastContentRect - 5938.IBPluginDependency - 5939.IBPluginDependency - 594.IBPluginDependency - 5942.IBPluginDependency - 596.IBPluginDependency - 5963.IBPluginDependency - 5965.IBPluginDependency - 5965.IBViewBoundsToFrameTransform - 5966.IBPluginDependency - 607.IBPluginDependency - 608.IBEditorWindowLastContentRect - 608.IBPluginDependency - 6126.IBPluginDependency - 6126.IBViewBoundsToFrameTransform - 6127.IBPluginDependency - 6127.IBViewBoundsToFrameTransform - 6128.IBAttributePlaceholdersKey - 6128.IBPluginDependency - 6129.IBAttributePlaceholdersKey - 6129.IBPluginDependency - 6130.IBPluginDependency - 6131.IBPluginDependency - 6131.IBViewBoundsToFrameTransform - 6132.IBPluginDependency - 6132.IBViewBoundsToFrameTransform - 6133.IBAttributePlaceholdersKey - 6133.IBPluginDependency - 6134.IBAttributePlaceholdersKey - 6134.IBPluginDependency - 6135.IBPluginDependency - 6159.IBAttributePlaceholdersKey - 6159.IBPluginDependency - 6159.IBViewBoundsToFrameTransform - 6160.IBPluginDependency - 6161.IBAttributePlaceholdersKey - 6161.IBPluginDependency - 6162.IBPluginDependency - 6168.IBPluginDependency - 6169.IBEditorWindowLastContentRect - 6169.IBPluginDependency - 6170.IBPluginDependency - 6171.IBPluginDependency - 6172.IBEditorWindowLastContentRect - 6172.IBPluginDependency - 6173.IBPluginDependency - 6174.IBPluginDependency - 6177.IBPluginDependency - 6180.IBEditorWindowLastContentRect - 6180.IBPluginDependency - 6180.IBViewBoundsToFrameTransform - 6182.IBPluginDependency - 6182.IBViewBoundsToFrameTransform - 6183.IBPluginDependency - 6183.IBViewBoundsToFrameTransform - 6184.IBPluginDependency - 6184.IBViewBoundsToFrameTransform - 6185.IBAttributePlaceholdersKey - 6185.IBPluginDependency - 6186.IBAttributePlaceholdersKey - 6186.IBPluginDependency - 6187.IBPluginDependency - 6188.IBPluginDependency - 6188.IBViewBoundsToFrameTransform - 6189.IBPluginDependency - 6190.IBAttributePlaceholdersKey - 6190.IBPluginDependency - 6191.IBAttributePlaceholdersKey - 6191.IBPluginDependency - 6233.IBAttributePlaceholdersKey - 6233.IBPluginDependency - 6234.IBAttributePlaceholdersKey - 6238.IBPluginDependency - 627.IBEditorWindowLastContentRect - 627.IBPluginDependency - 627.IBWindowTemplateEditedContentRect - 627.NSWindowTemplate.visibleAtLaunch - 628.IBPluginDependency - 629.IBEditorWindowLastContentRect - 629.IBPluginDependency - 6295.IBEditorWindowLastContentRect - 6295.IBPluginDependency - 6295.IBWindowTemplateEditedContentRect - 6295.NSWindowTemplate.visibleAtLaunch - 6295.windowTemplate.hasMaxSize - 6295.windowTemplate.hasMinSize - 6295.windowTemplate.maxSize - 6295.windowTemplate.minSize - 6296.IBPluginDependency - 634.IBPluginDependency - 635.IBPluginDependency - 6352.IBEditorWindowLastContentRect - 6352.IBPluginDependency - 6353.IBPluginDependency - 6353.IBViewBoundsToFrameTransform - 6354.IBPluginDependency - 6354.IBViewBoundsToFrameTransform - 6355.IBPluginDependency - 6355.IBViewBoundsToFrameTransform - 6356.IBPluginDependency - 6356.IBViewBoundsToFrameTransform - 6357.IBPluginDependency - 6357.IBViewBoundsToFrameTransform - 6358.IBPluginDependency - 6358.IBViewBoundsToFrameTransform - 6359.IBPluginDependency - 6359.IBViewBoundsToFrameTransform - 6360.IBPluginDependency - 6360.IBViewBoundsToFrameTransform - 6361.IBPluginDependency - 6361.IBViewBoundsToFrameTransform - 6362.IBPluginDependency - 6362.IBViewBoundsToFrameTransform - 6363.IBPluginDependency - 6363.IBViewBoundsToFrameTransform - 6364.IBPluginDependency - 6364.IBViewBoundsToFrameTransform - 6365.IBPluginDependency - 6365.IBViewBoundsToFrameTransform - 6366.IBPluginDependency - 6366.IBViewBoundsToFrameTransform - 6368.IBPluginDependency - 6368.IBViewBoundsToFrameTransform - 6369.IBPluginDependency - 6369.IBViewBoundsToFrameTransform - 6374.IBPluginDependency - 6376.IBPluginDependency - 6377.IBPluginDependency - 6378.IBPluginDependency - 6379.IBPluginDependency - 6380.IBPluginDependency - 6381.IBPluginDependency - 6382.IBPluginDependency - 6383.IBPluginDependency - 6384.IBPluginDependency - 6385.IBPluginDependency - 6386.IBPluginDependency - 6387.IBPluginDependency - 6388.IBEditorWindowLastContentRect - 6388.IBPluginDependency - 6388.IBViewBoundsToFrameTransform - 6389.IBPluginDependency - 6389.IBViewBoundsToFrameTransform - 6390.IBPluginDependency - 6390.IBViewBoundsToFrameTransform - 6391.IBPluginDependency - 6391.IBViewBoundsToFrameTransform - 6392.IBPluginDependency - 6392.IBViewBoundsToFrameTransform - 6393.IBPluginDependency - 6393.IBViewBoundsToFrameTransform - 6394.IBPluginDependency - 6394.IBViewBoundsToFrameTransform - 6395.IBPluginDependency - 6395.IBViewBoundsToFrameTransform - 6396.IBPluginDependency - 6396.IBViewBoundsToFrameTransform - 6397.IBPluginDependency - 6397.IBViewBoundsToFrameTransform - 6398.IBPluginDependency - 6398.IBViewBoundsToFrameTransform - 6399.IBPluginDependency - 6399.IBViewBoundsToFrameTransform - 6400.IBPluginDependency - 6400.IBViewBoundsToFrameTransform - 6401.IBPluginDependency - 6401.IBViewBoundsToFrameTransform - 6402.IBPluginDependency - 6402.IBViewBoundsToFrameTransform - 6405.IBPluginDependency - 6405.IBViewBoundsToFrameTransform - 6406.IBPluginDependency - 6406.IBViewBoundsToFrameTransform - 6407.IBPluginDependency - 6407.IBViewBoundsToFrameTransform - 6408.IBPluginDependency - 6408.IBViewBoundsToFrameTransform - 6413.IBPluginDependency - 6414.IBPluginDependency - 6415.IBPluginDependency - 6418.IBPluginDependency - 6419.IBPluginDependency - 6420.IBPluginDependency - 6421.IBPluginDependency - 6422.IBPluginDependency - 6423.IBPluginDependency - 6424.IBPluginDependency - 6425.IBPluginDependency - 6426.IBPluginDependency - 6427.IBPluginDependency - 6428.IBPluginDependency - 6429.IBPluginDependency - 6430.IBEditorWindowLastContentRect - 6430.IBPluginDependency - 6430.IBViewBoundsToFrameTransform - 6431.IBPluginDependency - 6431.IBViewBoundsToFrameTransform - 6432.IBPluginDependency - 6432.IBViewBoundsToFrameTransform - 6433.IBPluginDependency - 6433.IBViewBoundsToFrameTransform - 6434.IBPluginDependency - 6435.IBPluginDependency - 6436.IBPluginDependency - 6437.IBPluginDependency - 6438.IBPluginDependency - 6440.IBPluginDependency - 6441.IBPluginDependency - 6451.IBPluginDependency - 6484.IBPluginDependency - 6484.IBViewBoundsToFrameTransform - 6485.IBPluginDependency - 6486.IBPluginDependency - 6487.IBPluginDependency - 6488.IBPluginDependency - 6489.IBPluginDependency - 6491.IBPluginDependency - 6491.IBViewBoundsToFrameTransform - 6492.IBPluginDependency - 6493.IBPluginDependency - 6494.IBPluginDependency - 6496.IBPluginDependency - 6497.IBPluginDependency - 6498.IBPluginDependency - 6499.IBPluginDependency - 6611.IBPluginDependency - 6611.IBViewBoundsToFrameTransform - 6612.IBPluginDependency - 6617.IBPluginDependency - 6618.IBAttributePlaceholdersKey - 6618.IBPluginDependency - 6618.IBViewBoundsToFrameTransform - 6619.IBPluginDependency - 6622.IBPluginDependency - 6622.IBViewBoundsToFrameTransform - 6623.IBAttributePlaceholdersKey - 6623.IBPluginDependency - 6624.IBPluginDependency - 6627.IBAttributePlaceholdersKey - 6627.IBPluginDependency - 6627.IBViewBoundsToFrameTransform - 6628.IBPluginDependency - 6630.IBAttributePlaceholdersKey - 6630.IBPluginDependency - 6630.IBViewBoundsToFrameTransform - 6631.IBPluginDependency - 6634.IBAttributePlaceholdersKey - 6634.IBPluginDependency - 6635.IBAttributePlaceholdersKey - 6651.IBPluginDependency - 6652.IBPluginDependency - 6931.IBPluginDependency - 6998.IBPluginDependency - 6999.IBPluginDependency - 7002.IBPluginDependency - 7014.IBEditorWindowLastContentRect - 7014.IBPluginDependency - 7014.IBViewBoundsToFrameTransform - 7128.IBPluginDependency - 7128.IBViewBoundsToFrameTransform - 7129.IBPluginDependency - 7130.IBPluginDependency - 7131.IBPluginDependency - 7132.IBPluginDependency - 7137.IBPluginDependency - 7138.IBPluginDependency - 714.IBEditorWindowLastContentRect - 714.IBPluginDependency - 714.IBViewBoundsToFrameTransform - 7140.IBPluginDependency - 7141.IBPluginDependency - 715.IBPluginDependency - 7168.IBPluginDependency - 7168.IBViewBoundsToFrameTransform - 7169.IBPluginDependency - 7171.IBEditorWindowLastContentRect - 7171.IBPluginDependency - 7171.IBWindowTemplateEditedContentRect - 7171.NSWindowTemplate.visibleAtLaunch - 7172.IBPluginDependency - 7173.IBEditorWindowLastContentRect - 7173.IBPluginDependency - 7173.IBWindowTemplateEditedContentRect - 7173.NSWindowTemplate.visibleAtLaunch - 7174.IBPluginDependency - 7175.IBEditorWindowLastContentRect - 7175.IBPluginDependency - 7175.IBWindowTemplateEditedContentRect - 7175.NSWindowTemplate.visibleAtLaunch - 7176.IBPluginDependency - 7179.IBEditorWindowLastContentRect - 7179.IBPluginDependency - 7179.IBWindowTemplateEditedContentRect - 7179.NSWindowTemplate.visibleAtLaunch - 7180.IBPluginDependency - 7182.IBPluginDependency - 7182.IBViewBoundsToFrameTransform - 7183.IBPluginDependency - 7183.IBViewBoundsToFrameTransform - 7184.IBPluginDependency - 7184.IBViewBoundsToFrameTransform - 7185.IBPluginDependency - 7185.IBViewBoundsToFrameTransform - 7186.IBAttributePlaceholdersKey - 7186.IBPluginDependency - 7187.IBPluginDependency - 7188.IBAttributePlaceholdersKey - 7188.IBPluginDependency - 7189.IBAttributePlaceholdersKey - 7190.IBAttributePlaceholdersKey - 7191.IBPluginDependency - 7192.IBPluginDependency - 72.IBPluginDependency - 72.ImportedFromIB2 - 7210.IBPluginDependency - 7210.IBViewBoundsToFrameTransform - 7211.IBPluginDependency - 7212.IBEditorWindowLastContentRect - 7212.IBPluginDependency - 7213.IBPluginDependency - 7214.IBPluginDependency - 7215.IBPluginDependency - 7216.IBPluginDependency - 7216.IBViewBoundsToFrameTransform - 7217.IBPluginDependency - 7218.IBPluginDependency - 7219.IBPluginDependency - 7220.IBPluginDependency - 7221.IBPluginDependency - 7222.IBPluginDependency - 7223.IBPluginDependency - 7224.IBPluginDependency - 7225.IBEditorWindowLastContentRect - 7225.IBPluginDependency - 7225.IBWindowTemplateEditedContentRect - 7225.NSWindowTemplate.visibleAtLaunch - 7226.IBPluginDependency - 7227.IBPluginDependency - 7227.IBViewBoundsToFrameTransform - 7228.IBPluginDependency - 7228.IBViewBoundsToFrameTransform - 7229.IBPluginDependency - 7230.IBEditorWindowLastContentRect - 7230.IBPluginDependency - 7231.IBPluginDependency - 7232.IBPluginDependency - 7233.IBPluginDependency - 7234.IBPluginDependency - 7235.IBPluginDependency - 7236.IBPluginDependency - 7237.IBPluginDependency - 7238.IBPluginDependency - 7239.IBPluginDependency - 7240.IBPluginDependency - 7241.IBPluginDependency - 7266.IBPluginDependency - 7266.IBViewBoundsToFrameTransform - 7267.IBPluginDependency - 7267.IBViewBoundsToFrameTransform - 7268.IBPluginDependency - 7269.IBPluginDependency - 7270.IBPluginDependency - 7285.IBPluginDependency - 7285.IBViewBoundsToFrameTransform - 7286.IBPluginDependency - 7287.IBPluginDependency - 7287.IBViewBoundsToFrameTransform - 7288.IBPluginDependency - 7289.IBPluginDependency - 7289.IBViewBoundsToFrameTransform - 7290.IBPluginDependency - 7290.IBViewBoundsToFrameTransform - 7291.IBPluginDependency - 7292.IBPluginDependency - 7293.IBPluginDependency - 7293.IBViewBoundsToFrameTransform - 7294.IBNumberFormatterBehaviorMetadataKey - 7294.IBNumberFormatterLocalizesFormatMetadataKey - 7294.IBPluginDependency - 7295.IBNumberFormatterBehaviorMetadataKey - 7295.IBNumberFormatterLocalizesFormatMetadataKey - 7295.IBPluginDependency - 7301.IBPluginDependency - 7301.IBViewBoundsToFrameTransform - 7302.IBPluginDependency - 7305.IBPluginDependency - 7305.IBViewBoundsToFrameTransform - 7308.IBPluginDependency - 7309.IBPluginDependency - 7309.IBViewBoundsToFrameTransform - 7312.IBPluginDependency - 7313.IBPluginDependency - 7313.IBViewBoundsToFrameTransform - 7316.IBPluginDependency - 7317.IBPluginDependency - 7317.IBViewBoundsToFrameTransform - 7320.IBPluginDependency - 7353.IBPluginDependency - 7354.IBPluginDependency - 7354.IBViewBoundsToFrameTransform - 7355.IBPluginDependency - 7358.IBPluginDependency - 7358.IBViewBoundsToFrameTransform - 7359.IBPluginDependency - 7392.IBPluginDependency - 7392.IBViewBoundsToFrameTransform - 7393.IBPluginDependency - 7395.IBPluginDependency - 7395.IBViewBoundsToFrameTransform - 7396.IBPluginDependency - 7398.IBPluginDependency - 7398.IBViewBoundsToFrameTransform - 7399.IBPluginDependency - 74.IBPluginDependency - 74.ImportedFromIB2 - 7401.IBPluginDependency - 7401.IBViewBoundsToFrameTransform - 7402.IBPluginDependency - 7404.IBPluginDependency - 7404.IBViewBoundsToFrameTransform - 7405.IBPluginDependency - 7433.IBPluginDependency - 7433.IBViewBoundsToFrameTransform - 7434.IBPluginDependency - 7436.IBPluginDependency - 7436.IBViewBoundsToFrameTransform - 7437.IBPluginDependency - 7439.IBPluginDependency - 7439.IBViewBoundsToFrameTransform - 7440.IBPluginDependency - 7442.IBPluginDependency - 7442.IBViewBoundsToFrameTransform - 7443.IBPluginDependency - 7445.IBPluginDependency - 7445.IBViewBoundsToFrameTransform - 7446.IBPluginDependency - 7449.IBEditorWindowLastContentRect - 7449.IBPluginDependency - 7449.IBWindowTemplateEditedContentRect - 7449.NSWindowTemplate.visibleAtLaunch - 7450.IBPluginDependency - 7451.IBPluginDependency - 7451.IBViewBoundsToFrameTransform - 7452.IBPluginDependency - 7454.IBPluginDependency - 7454.IBViewBoundsToFrameTransform - 7455.IBPluginDependency - 7455.IBViewBoundsToFrameTransform - 7456.IBPluginDependency - 7456.IBViewBoundsToFrameTransform - 7457.IBPluginDependency - 7457.IBViewBoundsToFrameTransform - 7458.IBPluginDependency - 7458.IBViewBoundsToFrameTransform - 7459.IBPluginDependency - 7459.IBViewBoundsToFrameTransform - 7460.IBPluginDependency - 7460.IBViewBoundsToFrameTransform - 7461.IBPluginDependency - 7461.IBViewBoundsToFrameTransform - 7462.IBPluginDependency - 7462.IBViewBoundsToFrameTransform - 7463.IBPluginDependency - 7463.IBViewBoundsToFrameTransform - 7464.IBPluginDependency - 7465.IBNumberFormatterBehaviorMetadataKey - 7465.IBNumberFormatterLocalizesFormatMetadataKey - 7465.IBPluginDependency - 7466.IBPluginDependency - 7467.IBPluginDependency - 7468.IBPluginDependency - 7469.IBPluginDependency - 7470.IBPluginDependency - 7471.IBPluginDependency - 7472.IBPluginDependency - 7473.IBPluginDependency - 7474.IBPluginDependency - 7486.IBPluginDependency - 7486.IBViewBoundsToFrameTransform - 7487.IBPluginDependency - 7487.IBViewBoundsToFrameTransform - 7488.IBPluginDependency - 7489.IBPluginDependency - 75.IBPluginDependency - 75.ImportedFromIB2 - 7515.IBEditorWindowLastContentRect - 7515.IBPluginDependency - 7515.IBWindowTemplateEditedContentRect - 7515.NSWindowTemplate.visibleAtLaunch - 7515.windowTemplate.hasMinSize - 7515.windowTemplate.minSize - 7516.IBPluginDependency - 7517.IBPluginDependency - 7517.IBViewBoundsToFrameTransform - 7518.IBPluginDependency - 7519.IBPluginDependency - 7520.IBPluginDependency - 7521.IBPluginDependency - 7526.IBPluginDependency - 7540.IBPluginDependency - 7541.IBPluginDependency - 7541.IBViewBoundsToFrameTransform - 7542.IBPluginDependency - 7543.IBPluginDependency - 7543.IBViewBoundsToFrameTransform - 7544.IBPluginDependency - 7545.IBPluginDependency - 7545.IBViewBoundsToFrameTransform - 7546.IBPluginDependency - 7551.IBPluginDependency - 7551.IBViewBoundsToFrameTransform - 7552.IBPluginDependency - 7553.IBPluginDependency - 7553.IBViewBoundsToFrameTransform - 7554.IBPluginDependency - 7555.IBPluginDependency - 7556.IBPluginDependency - 7583.IBPluginDependency - 7584.IBPluginDependency - 7594.IBPluginDependency - 7594.IBViewBoundsToFrameTransform - 7595.IBPluginDependency - 7596.IBEditorWindowLastContentRect - 7596.IBPluginDependency - 7597.IBPluginDependency - 7598.IBAttributePlaceholdersKey - 7598.IBPluginDependency - 7599.IBAttributePlaceholdersKey - 7599.IBPluginDependency - 7600.IBAttributePlaceholdersKey - 7600.IBPluginDependency - 7601.IBAttributePlaceholdersKey - 7601.IBPluginDependency - 7602.IBPluginDependency - 7603.IBPluginDependency - 7604.IBAttributePlaceholdersKey - 7604.IBPluginDependency - 7605.IBPluginDependency - 7605.IBViewBoundsToFrameTransform - 7606.IBPluginDependency - 7607.IBEditorWindowLastContentRect - 7607.IBPluginDependency - 7610.IBAttributePlaceholdersKey - 7610.IBPluginDependency - 7612.IBPluginDependency - 7624.IBPluginDependency - 7624.IBViewBoundsToFrameTransform - 7625.IBPluginDependency - 7666.CustomClassName - 7666.IBPluginDependency - 7707.IBEditorWindowLastContentRect - 7707.IBPluginDependency - 7707.IBWindowTemplateEditedContentRect - 7707.NSWindowTemplate.visibleAtLaunch - 7708.IBPluginDependency - 7715.IBPluginDependency - 7715.IBViewBoundsToFrameTransform - 7716.IBPluginDependency - 7725.IBPluginDependency - 7725.IBViewBoundsToFrameTransform - 7726.IBPluginDependency - 7729.IBPluginDependency - 7729.IBViewBoundsToFrameTransform - 7730.IBPluginDependency - 7740.IBPluginDependency - 7759.IBPluginDependency - 7759.IBViewBoundsToFrameTransform - 7760.IBPluginDependency - 7761.IBPluginDependency - 7762.IBPluginDependency - 7765.IBNumberFormatterBehaviorMetadataKey - 7765.IBNumberFormatterLocalizesFormatMetadataKey - 7765.IBPluginDependency - 7766.IBPluginDependency - 7766.IBViewBoundsToFrameTransform - 7767.IBPluginDependency - 7771.IBPluginDependency - 7772.IBEditorWindowLastContentRect - 7772.IBPluginDependency - 7773.IBPluginDependency - 7774.IBPluginDependency - 7775.IBPluginDependency - 7776.IBPluginDependency - 7777.IBPluginDependency - 7778.IBPluginDependency - 7779.IBPluginDependency - 7780.IBPluginDependency - 7780.IBViewBoundsToFrameTransform - 7781.IBPluginDependency - 7792.IBAttributePlaceholdersKey - 7792.IBPluginDependency - 7792.IBViewBoundsToFrameTransform - 7793.IBPluginDependency - 7794.IBNumberFormatterBehaviorMetadataKey - 7794.IBNumberFormatterLocalizesFormatMetadataKey - 7794.IBNumberFormatterSampleNumberKey - 7794.IBPluginDependency - 7802.IBAttributePlaceholdersKey - 7802.IBPluginDependency - 7802.IBViewBoundsToFrameTransform - 7803.IBPluginDependency - 7804.IBPluginDependency - 7804.IBViewBoundsToFrameTransform - 7805.IBPluginDependency - 7806.IBPluginDependency - 7806.IBViewBoundsToFrameTransform - 7807.IBPluginDependency - 7808.IBPluginDependency - 7808.IBViewBoundsToFrameTransform - 7809.IBPluginDependency - 7810.IBPluginDependency - 7810.IBViewBoundsToFrameTransform - 7811.IBPluginDependency - 7812.IBPluginDependency - 7812.IBViewBoundsToFrameTransform - 7813.IBPluginDependency - 7817.IBEditorWindowLastContentRect - 7817.IBPluginDependency - 7817.IBWindowTemplateEditedContentRect - 7817.NSWindowTemplate.visibleAtLaunch - 7818.IBPluginDependency - 7820.IBPluginDependency - 7820.IBViewBoundsToFrameTransform - 7821.IBPluginDependency - 7821.IBViewBoundsToFrameTransform - 7822.IBPluginDependency - 7822.IBViewBoundsToFrameTransform - 7823.IBPluginDependency - 7823.IBViewBoundsToFrameTransform - 7824.IBPluginDependency - 7824.IBViewBoundsToFrameTransform - 7825.IBPluginDependency - 7825.IBViewBoundsToFrameTransform - 7826.IBPluginDependency - 7827.IBPluginDependency - 7828.IBPluginDependency - 7829.IBPluginDependency - 783.IBPluginDependency - 7830.IBPluginDependency - 7831.IBPluginDependency - 7836.IBPluginDependency - 7836.IBViewBoundsToFrameTransform - 7837.IBPluginDependency - 7838.IBPluginDependency - 7838.IBViewBoundsToFrameTransform - 7839.IBPluginDependency - 784.IBEditorWindowLastContentRect - 784.IBPluginDependency - 7840.IBNumberFormatterBehaviorMetadataKey - 7840.IBNumberFormatterLocalizesFormatMetadataKey - 7840.IBPluginDependency - 7843.IBAttributePlaceholdersKey - 7843.IBPluginDependency - 7843.IBViewBoundsToFrameTransform - 7844.IBPluginDependency - 7845.IBAttributePlaceholdersKey - 7845.IBPluginDependency - 7845.IBViewBoundsToFrameTransform - 7846.IBPluginDependency - 7847.IBPluginDependency - 7847.IBViewBoundsToFrameTransform - 7848.IBPluginDependency - 785.IBPluginDependency - 7855.IBEditorWindowLastContentRect - 7855.IBPluginDependency - 7855.IBWindowTemplateEditedContentRect - 7855.NSWindowTemplate.visibleAtLaunch - 7856.IBPluginDependency - 7857.IBPluginDependency - 7857.IBViewBoundsToFrameTransform - 7858.IBPluginDependency - 7859.IBPluginDependency - 7860.IBPluginDependency - 7863.IBPluginDependency - 7863.IBViewBoundsToFrameTransform - 7864.IBPluginDependency - 7866.IBAttributePlaceholdersKey - 7866.IBPluginDependency - 7866.IBViewBoundsToFrameTransform - 7867.IBPluginDependency - 787.IBPluginDependency - 7871.IBAttributePlaceholdersKey - 7871.IBPluginDependency - 7871.IBViewBoundsToFrameTransform - 7872.IBPluginDependency - 7873.IBAttributePlaceholdersKey - 7873.IBPluginDependency - 7873.IBViewBoundsToFrameTransform - 7874.IBPluginDependency - 7875.IBPluginDependency - 7875.IBViewBoundsToFrameTransform - 7876.IBPluginDependency - 7877.IBPluginDependency - 7877.IBViewBoundsToFrameTransform - 7878.IBPluginDependency - 7879.IBPluginDependency - 7879.IBViewBoundsToFrameTransform - 788.IBEditorWindowLastContentRect - 788.IBPluginDependency - 7880.IBPluginDependency - 7880.IBViewBoundsToFrameTransform - 7881.IBPluginDependency - 7886.IBPluginDependency - 789.IBPluginDependency - 7899.IBPluginDependency - 7899.IBViewBoundsToFrameTransform - 79.IBPluginDependency - 79.ImportedFromIB2 - 794.IBEditorWindowLastContentRect - 794.IBPluginDependency - 794.IBWindowTemplateEditedContentRect - 794.NSWindowTemplate.visibleAtLaunch - 795.IBAttributePlaceholdersKey - 795.IBPluginDependency - 796.IBEditorWindowLastContentRect - 796.IBPluginDependency - 796.IBWindowTemplateEditedContentRect - 796.NSWindowTemplate.visibleAtLaunch - 797.IBPluginDependency - 7971.IBPluginDependency - 7971.IBViewBoundsToFrameTransform - 7972.IBPluginDependency - 7972.IBViewBoundsToFrameTransform - 7973.IBPluginDependency - 7974.IBPluginDependency - 7978.IBPluginDependency - 7978.IBViewBoundsToFrameTransform - 7987.IBPluginDependency - 7987.IBViewBoundsToFrameTransform - 7988.IBPluginDependency - 7989.IBEditorWindowLastContentRect - 7989.IBPluginDependency - 7993.IBPluginDependency - 7994.IBPluginDependency - 7994.ImportedFromIB2 - 7995.IBPluginDependency - 7995.ImportedFromIB2 - 7996.IBPluginDependency - 7997.IBEditorWindowLastContentRect - 7997.IBPluginDependency - 7997.ImportedFromIB2 - 7997.editorWindowContentRectSynchronizationRect - 7998.IBPluginDependency - 7998.ImportedFromIB2 - 80.IBPluginDependency - 80.ImportedFromIB2 - 8003.IBPluginDependency - 8009.IBPluginDependency - 8009.IBViewBoundsToFrameTransform - 8012.IBPluginDependency - 8012.IBViewBoundsToFrameTransform - 8013.IBPluginDependency - 8013.IBViewBoundsToFrameTransform - 8014.IBPluginDependency - 8014.IBViewBoundsToFrameTransform - 8015.IBPluginDependency - 8016.IBPluginDependency - 8021.IBPluginDependency - 8021.IBViewBoundsToFrameTransform - 8022.IBPluginDependency - 8022.IBViewBoundsToFrameTransform - 8023.IBPluginDependency - 8023.IBViewBoundsToFrameTransform - 8024.IBPluginDependency - 8025.IBPluginDependency - 8030.IBPluginDependency - 8030.IBViewBoundsToFrameTransform - 8031.IBPluginDependency - 8031.IBViewBoundsToFrameTransform - 8032.IBPluginDependency - 8032.IBViewBoundsToFrameTransform - 8033.IBPluginDependency - 8034.IBPluginDependency - 8043.IBPluginDependency - 8043.IBViewBoundsToFrameTransform - 8044.IBPluginDependency - 8045.IBAttributePlaceholdersKey - 8045.IBPluginDependency - 8045.IBViewBoundsToFrameTransform - 8046.IBPluginDependency - 8047.IBNumberFormatterBehaviorMetadataKey - 8047.IBNumberFormatterLocalizesFormatMetadataKey - 8047.IBPluginDependency - 8048.IBPluginDependency - 8048.IBViewBoundsToFrameTransform - 8049.IBPluginDependency - 8056.IBPluginDependency - 8057.IBPluginDependency - 8058.IBAttributePlaceholdersKey - 8058.IBPluginDependency - 8059.IBPluginDependency - 8060.IBPluginDependency - 8060.IBViewBoundsToFrameTransform - 8061.IBPluginDependency - 8066.IBNumberFormatterBehaviorMetadataKey - 8066.IBNumberFormatterLocalizesFormatMetadataKey - 8066.IBPluginDependency - 8075.IBPluginDependency - 8075.IBViewBoundsToFrameTransform - 8076.IBPluginDependency - 8076.IBViewBoundsToFrameTransform - 8077.IBPluginDependency - 8078.IBPluginDependency - 8084.IBPluginDependency - 81.IBEditorWindowLastContentRect - 81.IBPluginDependency - 81.ImportedFromIB2 - 81.editorWindowContentRectSynchronizationRect - 8134.IBEditorWindowLastContentRect - 8134.IBPluginDependency - 8134.IBWindowTemplateEditedContentRect - 8134.NSWindowTemplate.visibleAtLaunch - 8135.IBPluginDependency - 8136.IBPluginDependency - 8136.IBViewBoundsToFrameTransform - 8137.IBPluginDependency - 8138.IBPluginDependency - 8138.IBViewBoundsToFrameTransform - 8139.IBPluginDependency - 8140.IBPluginDependency - 8140.IBViewBoundsToFrameTransform - 8141.IBPluginDependency - 8142.IBPluginDependency - 8142.IBViewBoundsToFrameTransform - 8143.IBPluginDependency - 8144.IBPluginDependency - 8144.IBViewBoundsToFrameTransform - 8145.IBPluginDependency - 8146.IBPluginDependency - 8146.IBViewBoundsToFrameTransform - 8147.IBPluginDependency - 8148.IBPluginDependency - 8148.IBViewBoundsToFrameTransform - 8149.IBPluginDependency - 8150.IBPluginDependency - 8150.IBViewBoundsToFrameTransform - 8151.IBPluginDependency - 8152.IBPluginDependency - 8152.IBViewBoundsToFrameTransform - 8153.IBPluginDependency - 8154.IBPluginDependency - 8154.IBViewBoundsToFrameTransform - 8155.IBPluginDependency - 8156.IBPluginDependency - 8156.IBViewBoundsToFrameTransform - 8157.IBPluginDependency - 8158.IBPluginDependency - 8158.IBViewBoundsToFrameTransform - 8159.IBPluginDependency - 8160.IBPluginDependency - 8160.IBViewBoundsToFrameTransform - 8161.IBPluginDependency - 8161.IBViewBoundsToFrameTransform - 8162.IBPluginDependency - 8164.IBPluginDependency - 8181.IBPluginDependency - 8181.IBViewBoundsToFrameTransform - 8182.IBPluginDependency - 8183.IBPluginDependency - 8184.IBPluginDependency - 8185.IBPluginDependency - 8186.IBPluginDependency - 8188.IBPluginDependency - 8188.IBViewBoundsToFrameTransform - 8189.IBPluginDependency - 8194.IBPluginDependency - 8194.IBViewBoundsToFrameTransform - 8195.IBPluginDependency - 823.IBPluginDependency - 823.IBViewBoundsToFrameTransform - 824.IBPluginDependency - 825.IBPluginDependency - 825.IBViewBoundsToFrameTransform - 826.IBPluginDependency - 827.IBPluginDependency - 827.IBViewBoundsToFrameTransform - 828.IBPluginDependency - 829.IBPluginDependency - 829.IBViewBoundsToFrameTransform - 83.IBPluginDependency - 83.ImportedFromIB2 - 830.IBPluginDependency - 831.IBPluginDependency - 831.IBViewBoundsToFrameTransform - 832.IBPluginDependency - 833.IBPluginDependency - 833.IBViewBoundsToFrameTransform - 834.IBPluginDependency - 835.IBPluginDependency - 835.IBViewBoundsToFrameTransform - 836.IBPluginDependency - 843.IBPluginDependency - 843.IBViewBoundsToFrameTransform - 844.IBPluginDependency - 845.IBPluginDependency - 845.IBViewBoundsToFrameTransform - 846.IBPluginDependency - 850.IBPluginDependency - 854.IBPluginDependency - 855.IBPluginDependency - 861.IBEditorWindowLastContentRect - 861.IBPluginDependency - 861.IBWindowTemplateEditedContentRect - 861.NSWindowTemplate.visibleAtLaunch - 862.IBPluginDependency - 865.IBViewBoundsToFrameTransform - 872.IBPluginDependency - 872.IBViewBoundsToFrameTransform - 875.IBPluginDependency - 875.IBViewBoundsToFrameTransform - 876.IBPluginDependency - 876.IBViewBoundsToFrameTransform - 877.IBPluginDependency - 877.IBViewBoundsToFrameTransform - 878.IBPluginDependency - 878.IBViewBoundsToFrameTransform - 879.IBPluginDependency - 879.IBViewBoundsToFrameTransform - 880.IBPluginDependency - 883.IBPluginDependency - 883.IBViewBoundsToFrameTransform - 884.IBPluginDependency - 885.IBPluginDependency - 885.IBViewBoundsToFrameTransform - 886.IBPluginDependency - 887.IBPluginDependency - 887.IBViewBoundsToFrameTransform - 888.IBPluginDependency - 889.IBPluginDependency - 889.IBViewBoundsToFrameTransform - 890.IBPluginDependency - 897.IBPluginDependency - 897.IBViewBoundsToFrameTransform - 898.IBPluginDependency - 899.IBPluginDependency - 899.IBViewBoundsToFrameTransform - 900.IBPluginDependency - 901.IBPluginDependency - 901.IBViewBoundsToFrameTransform - 902.IBPluginDependency - 903.IBPluginDependency - 903.IBViewBoundsToFrameTransform - 904.IBPluginDependency - 905.IBPluginDependency - 905.IBViewBoundsToFrameTransform - 906.IBPluginDependency - 907.IBPluginDependency - 907.IBViewBoundsToFrameTransform - 908.IBPluginDependency - 909.IBPluginDependency - 909.IBViewBoundsToFrameTransform - 910.IBPluginDependency - 911.IBPluginDependency - 911.IBViewBoundsToFrameTransform - 912.IBPluginDependency - 913.IBPluginDependency - 913.IBViewBoundsToFrameTransform - 914.IBPluginDependency - 92.IBPluginDependency - 92.ImportedFromIB2 - 924.IBPluginDependency - 924.IBViewBoundsToFrameTransform - 925.IBPluginDependency - 926.IBPluginDependency - 926.IBViewBoundsToFrameTransform - 927.IBPluginDependency - 928.IBPluginDependency - 928.IBViewBoundsToFrameTransform - 929.IBPluginDependency - 930.IBPluginDependency - 930.IBViewBoundsToFrameTransform - 931.IBPluginDependency - 932.IBPluginDependency - 932.IBViewBoundsToFrameTransform - 933.IBPluginDependency - 934.IBPluginDependency - 934.IBViewBoundsToFrameTransform - 935.IBPluginDependency - 936.IBPluginDependency - 936.IBViewBoundsToFrameTransform - 937.IBPluginDependency - 938.IBPluginDependency - 938.IBViewBoundsToFrameTransform - 939.IBPluginDependency - 940.IBPluginDependency - 940.IBViewBoundsToFrameTransform - 941.IBPluginDependency - 942.IBPluginDependency - 942.IBViewBoundsToFrameTransform - 943.IBPluginDependency - 944.IBPluginDependency - 944.IBViewBoundsToFrameTransform - 945.IBPluginDependency - 946.IBPluginDependency - 946.IBViewBoundsToFrameTransform - 947.IBPluginDependency - 948.IBPluginDependency - 948.IBViewBoundsToFrameTransform - 949.IBPluginDependency - 949.IBViewBoundsToFrameTransform - 950.IBPluginDependency - 951.IBPluginDependency - 952.IBPluginDependency - 952.IBViewBoundsToFrameTransform - 953.IBPluginDependency - 953.IBViewBoundsToFrameTransform - 954.IBPluginDependency - 955.IBPluginDependency - 956.IBPluginDependency - 956.IBViewBoundsToFrameTransform - 957.IBPluginDependency - 957.IBViewBoundsToFrameTransform - 958.IBPluginDependency - 959.IBPluginDependency - 960.IBPluginDependency - 960.IBViewBoundsToFrameTransform - 961.IBPluginDependency - 961.IBViewBoundsToFrameTransform - 962.IBPluginDependency - 963.IBPluginDependency - 964.IBPluginDependency - 964.IBViewBoundsToFrameTransform - 965.IBPluginDependency - 965.IBViewBoundsToFrameTransform - 966.IBPluginDependency - 967.IBPluginDependency - 968.IBPluginDependency - 968.IBViewBoundsToFrameTransform - 969.IBPluginDependency - 969.IBViewBoundsToFrameTransform - 970.IBPluginDependency - 971.IBPluginDependency - 977.IBPluginDependency - 978.IBPluginDependency - 979.IBPluginDependency - 980.IBPluginDependency - 983.IBPluginDependency - 984.IBEditorWindowLastContentRect - 984.IBPluginDependency - 987.IBPluginDependency - 989.IBPluginDependency - 990.IBPluginDependency - 991.IBPluginDependency - 993.IBPluginDependency - 998.IBEditorWindowLastContentRect - 998.IBPluginDependency - 998.IBWindowTemplateEditedContentRect - 998.NSWindowTemplate.visibleAtLaunch - 999.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB8AAAwoYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDzgAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCwgAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMAAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDfgAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDp4AAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCAAAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDVQAAwhAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDuYAAwhAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFAAAwtAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFAAAwp4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFAAAwlgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDGQAAwkQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{1244, 1073}, {143, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{522, 812}, {146, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{1090, 201}, {520, 450}} - com.apple.InterfaceBuilder.CocoaPlugin - - YES - - - YES - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAweAAAA - - {{520, 1070}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - ToolTip - - ToolTip - - Sets the default size for new DS display views. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDHgAAwngAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1217, 377}, {126, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the default rotation for new DS display views. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDDwAAwpQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1177, 782}, {126, 113}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwxgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCCAAAwoIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1069, 916}, {227, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC5AAAwgQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The default rotation for new DS display views. A custom rotation angle may be entered here. (The angle must be between 0š and 360š.) - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDkIAAwggAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1104, 548}, {489, 425}} - com.apple.InterfaceBuilder.CocoaPlugin - - InitialTabViewItem - - InitialTabViewItem - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBUAAAw8yAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the default video filter for new DS display views, producing a variety of visual effects. The incurred CPU usage is dependent on which filter is used. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC6AAAw5QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1170, 567}, {151, 383}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AULoAABAQAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBAAAAw4IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBAAAAw5KAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1388, 659}, {213, 198}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1388, 659}, {213, 198}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCdAAAwwgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCaAAAwyEAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCxAAAwv4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCaAAAwrwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwv4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC8AAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwqgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB2AAAwmwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{989, 730}, {400, 373}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDhYAAA - - - ToolTip - - ToolTip - - Sets the default sound volume. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCMAAAwmQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDjYAAwmQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGQAABCHAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCngAAwwcAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCTAAAwtYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCjAAAwyMAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDJQAAwyYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{796, 565}, {126, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - New display views will show both DS screens by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - New display views will show only the DS touch screen by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqAAAwhQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABC1gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwowAAA - - - ToolTip - - ToolTip - - Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. - - - {{706, 581}, {554, 373}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABEOUAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABEDwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABD2IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDi4AAA - - - ToolTip - - ToolTip - - Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may dramatically improve performance, but may also cause some ROMs to stop working and cause other ROMs to show erratic behavior. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Makes more features available to the emulated hardware, but may affect ROM compatibility. May incur CPU usage, depending on which BIOS options are used. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwwUAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDDAAAwtQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwtAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDtQAAwtwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDEQAAwmAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwlgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDtQAAwqYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enables the BIOS to use the ARM processor SWI routines. This is required for some ROMs to work properly. May CPU usage, depending on if the ROM uses the ARM SWIs. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Prevents the Delay SWI from running. This may reduce the SWI-related CPU usage for some ROMs, but may also affect ROM compatibility. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - For developer usage only. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - For developer usage only. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Uses an external firmware image, overriding the internally emulated firmware. To change your firmware settings, you must do so through the emulated environment. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwoAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDDAAAwiAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwhwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDtQAAwmQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1225, 643}, {156, 293}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1197, 1063}, {194, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - - ToolTip - - ToolTip - - Performs no sound interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDUQAAA - - - ToolTip - - ToolTip - - Enables the advanced SPU emulation engine, which improves the accuracy of the emulated sound. This option provides a richer audio experience. Medium CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDEQAAwggAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1139, 721}, {204, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Lowest latency and lowest CPU usage sound synchronization method that is compatible with the advanced SPU emulation engine. However, this method causes sound distortion as emulation speed decreases below normal, and causes sound detail loss as emulation speed increases above normal. Very low latency. Very low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Pitch bends the sound depending on the emulation speed. Provides the smoothest sound, regardless of emulation speed. High latency. Low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sounds like "Dual SPU Synch/Asynch," but is a little smoother and has some added latency. Medium latency. Low CPU usage. Recommended setting. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwxIAAA - - - ToolTip - - ToolTip - - Has the lowest latency of all the sound synchronization methods, but is not compatible with the advanced SPU emulation engine. Neglible latency. Negligible CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enables the use of more complex sound synchronization methods. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB2AAAwggAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1089, 1023}, {198, 113}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1478, 1073}, {129, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Upon emulator execution, starts the firmware instead of the ROM. This will allow you access to some of the emulated hardware features. To boot from firmware, an external firmware image and both BIOS images must be loaded. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwXAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{888, 368}, {700, 399}} - com.apple.InterfaceBuilder.CocoaPlugin - {{888, 368}, {700, 399}} - - - - {600, 9999} - {700, 250} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBUAAAw70AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDtQAAw1MAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDSAAAw1MAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAw04AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw7sAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw5sAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw3YAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwzYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwuwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwlgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1156, 396}, {380, 200}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1156, 396}, {380, 200}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABEAwAAw1MAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAAC/gAAAw+oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwzIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDhwAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDEAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwswAAA - - {{817, 1136}, {512, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{6, 978}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw6WAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1091, 823}, {315, 313}} - com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCuAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC6AAAwnwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABBsAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{961, 983}, {151, 153}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1241, 208}, {335, 163}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1241, 208}, {335, 163}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC5AAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDXAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwswAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADBgAAAww8AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAw10AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGoAABDXwAAA - - {{502, 517}, {640, 480}} - com.apple.InterfaceBuilder.CocoaPlugin - {{502, 517}, {640, 480}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAw8EAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC4gAAwiQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAw9UAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enable to use bilinear interpolation on the final video output by default. This creates a smoothed, but slightly blurry, image effect. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC7gAAw72AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enable to use bilinear interpolation on the final video output. This creates a smoothed, but slightly blurry, image effect. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAxAbAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1328, 256}, {288, 511}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1328, 256}, {288, 511}} - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enables the advanced SPU emulation engine, which improves the accuracy of the emulated sound. This option provides a richer audio experience. Medium CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw1oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDjQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDBgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwqwAAA - - - ToolTip - - ToolTip - - Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Has the lowest latency of all the sound synchronization methods, but is not compatible with the advanced SPU emulation engine. Neglible latency. Negligible CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enables the use of more complex sound synchronization methods. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. - - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDwAAAA - - - ToolTip - - ToolTip - - Sets the current sound volume. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCRAAAw9IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDLAAAwgAAAA - - - AUGgAABDyQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABD/wAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABChgAAwwAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - When set, SoftRasterizer will produce smoother color transitions than a standard DS. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwuIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - When set, SoftRasterizer will emulate the DS toon edge marking. Very low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwpIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - When set, SoftRasterizer will render fog effects. This may affect the atmospheric look of 3D scenes. Very low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwlQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - When set, the 3D renderer will render textures onto 3D surfaces. When not set, all 3D surfaces will be solid colored (usually white). May slightly reduce CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDOQAAwegAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwxYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABCJAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDcQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1315, 254}, {301, 560}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1315, 254}, {301, 560}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCggAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUKUAABC3AAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCCAAAwfgAAA - - - ToolTip - - ToolTip - - When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDVwAAwqIAAA - - - ToolTip - - ToolTip - - When set, SoftRasterizer will produce smoother color transitions than a standard DS. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwuYAAA - - - ToolTip - - ToolTip - - When set, SoftRasterizer will emulate the DS toon edge marking. Very low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwr4AAA - - - ToolTip - - ToolTip - - When set, SoftRasterizer will render fog effects. This may affect the atmospheric look of 3D scenes. Very low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwpYAAA - - - ToolTip - - ToolTip - - When set, the 3D renderer will render textures onto 3D surfaces. When not set, all 3D surfaces will be solid colored (usually white). May slightly reduce CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABD3QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwowAAA - - - ToolTip - - ToolTip - - Disables 3D rendering. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - DeSmuME's internal software 3D rendering engine. Has the best 3D emulation accuracy. Very high CPU usage. Recommended setting. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the default 3D rendering engine for new DS display views. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDXAAAw5qAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1229, 938}, {152, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Disables 3D rendering. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - DeSmuME's internal software 3D rendering engine. Has the best 3D emulation accuracy. Very high CPU usage. Recommended setting. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCmgAAw5kAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABCJAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwxgAAA - - - ToolTip - - ToolTip - - DeSmuME automatically chooses the best number of rendering threads based on your hardware. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on the same thread as the core emulation thread. Best performance option for single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on two separate threads. May improve 3D performance on multiprocessor machines, but slightly reduces performance on single processor machines. - - - - ToolTip - - ToolTip - - Renders 3D on four separate threads. May improve 3D performance on multiprocessor machines, but significantly reduces performance on single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDmQAAA - - - ToolTip - - ToolTip - - Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the default number of processing threads that DeSmuME will use for 3D rendering. This is an option for advanced users. For most cases, it's best to keep this set to Automatic. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDegAAwmgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1217, 593}, {166, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - DeSmuME automatically chooses the best number of rendering threads based on your hardware. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on the same thread as the core emulation thread by default. Best performance option for single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on two separate threads by default. May improve 3D performance on multiprocessor machines, but slightly reduces performance on single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on four separate threads by default. May improve 3D performance on multiprocessor machines, but significantly reduces performance on single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCeAAAwlwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUKUAABDUQAAA - - - ToolTip - - ToolTip - - Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwjQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1406, 1073}, {101, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCaAAAwowAAA - - - ToolTip - - ToolTip - - Lowest latency and lowest CPU usage sound synchronization method that is compatible with the advanced SPU emulation engine. However, this method causes sound distortion as emulation speed decreases below normal, and causes sound detail loss as emulation speed increases above normal. Very low latency. Very low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Pitch bends the sound depending on the emulation speed. Provides the smoothest sound, regardless of emulation speed. High latency. Low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sounds like "Dual SPU Synch/Asynch," but is a little smoother and has some added latency. Medium latency. Low CPU usage. Recommended setting. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw68AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the default audio output engine. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDIwAAw7CAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1047, 994}, {220, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Disables audio output. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Native audio output engine for Mac OS X. Low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCRAAAwkgAAA - - - ToolTip - - ToolTip - - Disables audio output. No CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Native audio output engine for Mac OS X. Low CPU usage. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABEEwAAA - - {{1332, 177}, {286, 522}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1332, 177}, {286, 522}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABD8AAAA - - - ToolTip - - ToolTip - - Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may dramatically improve performance, but may also cause some ROMs to stop working and cause other ROMs to show erratic behavior. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDh4AAA - - - ToolTip - - ToolTip - - Makes more features available to the emulated hardware, but may affect ROM compatibility. May incur CPU usage, depending on which BIOS options are used. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enables the BIOS to use the ARM processor SWI routines. This is required for some ROMs to work properly. May incur CPU usage, depending on if the ROM uses the ARM SWIs. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Prevents the Delay SWI from running. This may reduce the SWI-related CPU usage for some ROMs, but may also affect ROM compatibility. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDJgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCfAAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Uses an external firmware image, overriding the internally emulated firmware. To change your firmware settings, you must do so through the emulated environment. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Upon emulator execution, starts the firmware instead of the ROM. This will allow you access to some of the emulated hardware features. To boot from firmware, an external firmware image and both BIOS images must be loaded. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABCsAAAA - - - ToolTip - - ToolTip - - For developer usage only. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB8AAAwrAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - For developer usage only. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCHAAAwjQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1325, 266}, {260, 328}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMAAAwp4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwpIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Nicknames should be a maximum of 10 characters. Any additional characters will be truncated. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC3AAAw5kAAA - - - ToolTip - - ToolTip - - Messages should be a maximum of 26 characters. Any additional characters will be truncated. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC3AAAw4uAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw5eAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw4oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw2UAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw0oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwy4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AULcAABDOgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAww0AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC1gAAwzEAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC1gAAw2gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1453, 369}, {136, 291}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1336, 489}, {164, 105}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCVAAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{999, 689}, {305, 315}} - com.apple.InterfaceBuilder.CocoaPlugin - {{999, 689}, {305, 315}} - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Nicknames should be a maximum of 10 characters. Any additional characters will be truncated. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCugAAw3sAAA - - - ToolTip - - ToolTip - - Messages should be a maximum of 26 characters. Any additional characters will be truncated. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCugAAw1sAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw5KAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwtoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwwMAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwrIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwnQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AULuAABCkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC6AAAwoAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC6AAAwwYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1388, 295}, {172, 323}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1340, 591}, {172, 123}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwwoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABAwAAAwuAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC0AAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCPAAAwiAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwiAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUOxAABCKAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC3gAAw9EAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1354, 474}, {209, 71}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAw9EAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAw5KAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1014, 313}, {320, 290}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - AUI8AABCHAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw1UAAA - - - ToolTip - - ToolTip - - All addresses start with 0x02. Enter the last 6 digits of the address here in hexadecimal format. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFwAAw28AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCAAAAwzcAAA - - - ToolTip - - ToolTip - - Enter the numeric value to write to the target address. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCpAAAwzkAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCngAAw1QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Select the memory size of the target address in bytes. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwrQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{936, 459}, {320, 290}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw7YAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAw6mAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw8SAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDHAAAw7gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw7gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{782, 197}, {320, 290}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBsAAAwvIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AULKAABDDgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAw0QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw1oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC9AAAw2oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Shows/hides the address search drawer. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDNgAAw4aAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Resets the memory address search. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDaQAAw18AAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1017, 396}, {328, 134}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1183, 775}, {328, 134}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwoQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwhwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDIwAAwoQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDIwAAwhwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwuAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwsQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwvAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwtQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwhQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDaQAAwqAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1208, 384}, {328, 134}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC6AAAwqAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwsQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwuAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AQAAAABDbQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC7AAAxALAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1393, 502}, {136, 37}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Searches the DS memory for all addresses that currently carry the search value. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Searches the DS memory for any addresses which match the comparative search criteria. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCMAAAxAIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCMAAAw/gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1268, 1023}, {261, 113}} - com.apple.InterfaceBuilder.CocoaPlugin - - YES - - - YES - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDBQAAw8KAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1393, 478}, {198, 37}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDXAAAw2sAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDVwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC+gAAwjAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqAAAwpIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwlQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Immediately writes the value once to the target address. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDRQAAw10AAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1063, 215}, {500, 416}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1063, 215}, {500, 416}} - - - {500, 272} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAAC/gAAAw+cAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDgYAAw+gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDAAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDwwAAwswAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDkwAAwswAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDvIAAw/SAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw+iAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDCwAAw86AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDywAAw8MAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCpAAAw9CAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwYgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwiAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAwiwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqAAAwpIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC+gAAwjAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDXQAAA - - - ToolTip - - ToolTip - - Whenever DeSmuME needs to determine a ROM's save type, use the ADVANsCEne database to determine the save type before using the internal autodetect algorithm. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{855, 920}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1009, 900}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - New display views will show only the main DS screen by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUDAAABDbwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{548, 341}, {550, 450}} - com.apple.InterfaceBuilder.CocoaPlugin - {{548, 341}, {550, 450}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDGQAAw7gAAA - - - InitialTabViewItem - - InitialTabViewItem - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBUAAAw5UAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDGQAAw+8AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGgAABDvgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADAQAAAw28AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADAQAAAw56AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADCHAAAw56AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADAQAAAw28AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{829, 953}, {203, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1005, 913}, {220, 223}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{1058, 810}, {450, 35}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMAAAwiQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCGAAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1242, 778}, {232, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDHgAAwugAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1141, 1083}, {196, 53}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABEJMAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwkgAAA - - - ToolTip - - ToolTip - - Sets the classic interpreter engine to emulate the ARM7 and ARM9 CPUs by default. It features very high compatibility with most configurations, as well as high accuracy with most ROMs. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the dynarec engine to emulate the ARM7 and ARM9 CPUs by default. It features far superior performance to the interpreter engine, but is not compatible with all configurations. Also, some ROMs may not work or may show erratic behavior when using this engine. (This feature is not available on a PowerPC-based Mac.) - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDoQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwkgAAA - - - ToolTip - - ToolTip - - Uses the classic interpreter engine to emulate the ARM7 and ARM9 CPUs. It features very high compatibility with most configurations, as well as high accuracy with most ROMs. [Changes to the CPU emulation engine will only take effect after a ROM is loaded or after the emulator is reset.] - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Uses the dynarec engine to emulate the ARM7 and ARM9 CPUs. It features far superior performance to the interpreter engine, but is not compatible with all configurations. Also, some ROMs may not work or may show erratic behavior when using this engine. (This feature is not available on a PowerPC-based Mac.) [Changes to the CPU emulation engine will only take effect after a ROM is loaded or after the emulator is reset.] - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enable to use vertical sync on the video output. This setting eliminates screen tearing, but may also reduce the video frame rate. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw+aAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Enable to use vertical sync on the video output by default. This setting eliminates screen tearing, but may also reduce the video frame rate. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1406, 1033}, {123, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1406, 1013}, {178, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1069, 398}, {431, 174}} - com.apple.InterfaceBuilder.CocoaPlugin - - AUDAAABC8gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUFwAABCUAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUNQAABCxAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDdgAAwzcAAA - - - ToolTip - - ToolTip - - If the display orientation is vertical, the main screen will be arranged above the touch screen by default. If the display layout is horizontal, the main screen will be arranged left of the touch screen by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - If the display orientation is vertical, the touch screen will be arranged above the main screen by default. If the display layout is horizontal, the touch screen will be arranged left of the main screen by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwkgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Arranges the DS screens where one screen is to the left of the other screen by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Arranges the DS screens where one screen is above the other screen by default. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but 3D emulation is less accurate overall. Low CPU usage. However, it requires the usage of your GPU. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but 3D emulation is less accurate overall. Low CPU usage. However, it requires the usage of your GPU. - - - com.apple.InterfaceBuilder.CocoaPlugin - {{975, 868}, {400, 100}} - com.apple.InterfaceBuilder.CocoaPlugin - {{975, 868}, {400, 100}} - - com.apple.InterfaceBuilder.CocoaPlugin - {{832, 932}, {616, 0}} - com.apple.InterfaceBuilder.CocoaPlugin - {{962, 321}, {580, 592}} - com.apple.InterfaceBuilder.CocoaPlugin - {{962, 321}, {580, 592}} - - - - {580, 592} - {580, 592} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{999, 589}, {580, 567}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDtwAAw7oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC2gAAw7eAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC2gAAw6iAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAw7YAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAw6cAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAw9CAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw/eAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGoAABD4QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAxAOAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAw/qAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGgAABDmAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAw5QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAw4eAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGgAABChAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB0AAAwmgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{423, 222}, {580, 567}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFQAAwywAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADC2AAAwycAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADC2AAAwwkAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAwyQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAwwYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAw1kAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAw3IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AcNEAABDegAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAw6MAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAw5aAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AcNFAABC0AAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAwsAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAwo4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADDPwAAQo4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AcNFAADDMgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDQgAAwjgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{28, 498}, {580, 567}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAxA6AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAADAAAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDrYAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwugAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCWAAAwzAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqwAAwpQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Smooths the edges of 3D objects using multisample antialiasing (MSAA). No CPU usage. However, it requires additional VRAM from your GPU. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAwrAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUKUAABCUAAAA - - - ToolTip - - ToolTip - - Smooths the edges of 3D objects using multisample antialiasing (MSAA) by default. No CPU usage. However, it requires additional VRAM from your GPU. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Makes emulation timing more accurate, but may reduce ROM compatibility. Enabling this setting may improve 3D rendering performance. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Makes emulation timing more accurate, but may reduce ROM compatibility. Enabling this setting may improve 3D rendering performance. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBgAAAweAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on eight separate threads by default. May improve 3D performance on multiprocessor machines, but greatly reduces performance on single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renders 3D on eight separate threads by default. May improve 3D performance on multiprocessor machines, but greatly reduces performance on single processor machines. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{982, 94}, {640, 495}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAAC/gAAAw9+AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1271, 124}, {328, 434}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDogAAwhAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1237, 579}, {350, 263}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1237, 579}, {350, 263}} - - com.apple.InterfaceBuilder.CocoaPlugin - {{1202, 1031}, {350, 125}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1202, 1031}, {350, 125}} - - com.apple.InterfaceBuilder.CocoaPlugin - {{976, 297}, {620, 267}} - com.apple.InterfaceBuilder.CocoaPlugin - {{976, 297}, {620, 267}} - - com.apple.InterfaceBuilder.CocoaPlugin - {{1085, 723}, {516, 283}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1085, 723}, {516, 283}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDVQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD7gAAwiQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDAgAAwhQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwxEAAA - - - ToolTip - - ToolTip - - Predefined noise samples that simulate sounds like speaking into the microphone. (Some games, such as "The Legend of Zelda: Spirit Tracks," work especially well with this.) - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Randomly generated white noise that simulates sounds like blowing into the microphone. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Generated pure sine wave tone. Can be adjusted for frequency. - - - - ToolTip - - ToolTip - - Predefined samples loaded from an audio file. (Whenever the Microphone command is deactivated, sample reading will be reset to the beginning of the file.) - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCrAAAwqAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1051, 870}, {156, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC2AAAwpoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1202, 877}, {350, 125}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1202, 877}, {350, 125}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwswAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCrAAAwqAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1409, 597}, {156, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAw5uAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCkAAAwrYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCvAAAwrwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCkAAAwnwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCvAAAwoQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABCYAAAA - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD9QAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDcAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFQAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDFQAAwoYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD9IAAwkQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAw1oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw0IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDxQAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDEAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCVAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCVAAAwoYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDzYAAwhQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw3EAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAws4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAws4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw7EAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCkAAAwjQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1127, 996}, {467, 160}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1127, 996}, {467, 160}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCbAAAwt4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC3gAAwvIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCxAAAwxIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD9oAAwxIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMgAAwxIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDgIAAwxIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDp4AAwxIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD0AAAwxIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDEQAAwnwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD6QAAwrQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDjQAAwlwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDOgAAwlwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{996, 161}, {620, 442}} - com.apple.InterfaceBuilder.CocoaPlugin - {{996, 161}, {620, 442}} - - - {620, 180} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAAC/gAAAw9iAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBmAAAw/IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD/wAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAw+qAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAwigAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABEBIAAw+uAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD5wAAw/CAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1433, 434}, {136, 143}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Saves the current configuration to the selected profile. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Deletes the selected profile. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Replaces the current configuration with the selected profile. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Renames the selected profile. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Shows the selected profile. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDQwAAw/CAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1166, 544}, {265, 33}} - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Creates a new profile using the current configuration. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCQAAAw/EAAA - - com.apple.InterfaceBuilder.CocoaPlugin - InputProfileController - com.apple.InterfaceBuilder.CocoaPlugin - {{853, 403}, {452, 115}} - com.apple.InterfaceBuilder.CocoaPlugin - {{853, 403}, {452, 115}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABByAAAwoYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqwAAwoAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwwwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDAAAAwnwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDrwAAwiQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1406, 903}, {118, 133}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwgQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The default separation for new DS display views. A custom gap percentage may be entered here. (The gap percentage must be between 0% and 200%.) - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqYAAwhAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the default screen separation for new DS display views. (A value of 100% will create a gap between the screens that has the same relative distance as a hardware DS.) - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDEAAAwhAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDmIAAwjwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDg4AAwjwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDXAAAwjwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMgAAwjwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDCQAAwjwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1120, 724}, {441, 133}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1120, 724}, {441, 133}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCIAAAwzwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDvYAAw0oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDDwAAw0oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCyAAAw0oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCaAAAw0oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMgAAwy0AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZQAAwxwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDqQAAwxwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1406, 933}, {136, 163}} - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the screen separation to 0%, which removes any gap between the screens. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sets the screen separation to 100%, which creates a gap between the screens that has the same relative distance as a hardware DS. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABByAAAwfAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDHgAAwpYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{966, 232}, {640, 329}} - com.apple.InterfaceBuilder.CocoaPlugin - {{966, 232}, {640, 329}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwzkAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCZAAAwggAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Choose a directory where the R4 device stores its data. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD9QAAwhgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Sends a SLOT-1 eject IRQ. The emulator will then detect that no device is inserted into SLOT-1. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAwyQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Resets the emulation. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD+AAAwxYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC3gAAwxYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDNQAAwx8AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGgAABDEgAAA - - {{1406, 1013}, {70, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDkAAAwx8AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABCfAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - {{1299, 599}, {194, 241}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1299, 599}, {194, 241}} - - - YES - - - YES - - - com.apple.InterfaceBuilder.CocoaPlugin - {{1413, 517}, {204, 521}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1413, 517}, {204, 521}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGQAABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCSAAAwjAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwjAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDrYAAw2wAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1196, 402}, {201, 93}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{1163, 392}, {143, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{522, 812}, {146, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUQCQABDZgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUO2AABDqoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDxgAAw7iAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDtgAAw7iAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUO5AABDp4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDyQAAw7WAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDuQAAw7WAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUHIAABD1IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCZAAAw+KAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDggAAw+8AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUNGAABBMAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Changes the maximum instruction block size for the dynamic recompiler. Larger values improve performance, but may reduce emulation accuracy. (The block size must be between 1 and 100.) - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC/AAAwjAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCcAAAwiQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - Changes the default maximum instruction block size for the dynamic recompiler. Larger values improve performance, but may reduce emulation accuracy. (The block size must be between 1 and 100.) - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUO6AABBIAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBYAAAw3sAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDAAAAw3sAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{919, 743}, {325, 393}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 474}, {199, 203}} - {{1444, 249}, {173, 339}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1444, 249}, {173, 339}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw4uAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw4GAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCBAAAwrAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwsYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw0cAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwzMAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwwYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCBAAAwtgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwwAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwpQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwlgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwggAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDsgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABDJQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBUAAAxEzAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUNnAABA4AAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUPqgABCvgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwz4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwyoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwxYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwwIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwtwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwrQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBkAAAwowAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwmQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{668, 434}, {580, 588}} - com.apple.InterfaceBuilder.CocoaPlugin - {{668, 434}, {580, 588}} - - com.apple.InterfaceBuilder.CocoaPlugin - - AUFgAABEAIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUMaAABDgwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUGIAABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUOSgABDYAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUOSgABCxAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUOSgABBgAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwuQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwrIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwoAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwegAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw+gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw0wAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwzYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwyAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwwoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwugAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwrwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwpAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwkgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwzQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw6IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw4IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwx4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwwgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwuQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwowAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDZwAAwdAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAw0QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwwQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwogAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwvAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDWwAAwrgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwp4AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDWwAAwowAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwlgAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDWwAAwkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwegAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDWwAAwdAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwpoAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDWwAAwkAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBcAAAwdAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDWwAAwdAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1225, 1043}, {118, 93}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{1117, 350}, {467, 128}} - com.apple.InterfaceBuilder.CocoaPlugin - {{1117, 350}, {467, 128}} - - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - - YES - - - - - YES - - - YES - - - - 8198 - - - - YES - - AppDelegate - NSObject - - YES - - YES - bugReport: - launchForums: - launchWebsite: - supportRequest: - - - YES - id - id - id - id - - - - YES - - YES - bugReport: - launchForums: - launchWebsite: - supportRequest: - - - YES - - bugReport: - id - - - launchForums: - id - - - launchWebsite: - id - - - supportRequest: - id - - - - - YES - - YES - aboutWindowController - boxARMBinaries - boxFileSystem - boxGeneralInfo - boxMisc - boxTitles - cdsCoreController - cdsSoundController - cheatListWindow - cheatWindowController - emuControlController - inputManager - inputPrefsView - mLoadStateSlot - mSaveStateSlot - migrationDelegate - prefGeneralView - prefWindow - prefWindowController - romInfoPanelController - troubleshootingWindow - - - YES - NSObjectController - NSBox - NSBox - NSBox - NSBox - NSBox - NSObjectController - NSObjectController - NSWindow - NSObjectController - NSObjectController - InputManager - InputPrefsView - NSMenu - NSMenu - FileMigrationDelegate - NSView - NSWindow - NSObjectController - NSObjectController - NSWindow - - - - YES - - YES - aboutWindowController - boxARMBinaries - boxFileSystem - boxGeneralInfo - boxMisc - boxTitles - cdsCoreController - cdsSoundController - cheatListWindow - cheatWindowController - emuControlController - inputManager - inputPrefsView - mLoadStateSlot - mSaveStateSlot - migrationDelegate - prefGeneralView - prefWindow - prefWindowController - romInfoPanelController - troubleshootingWindow - - - YES - - aboutWindowController - NSObjectController - - - boxARMBinaries - NSBox - - - boxFileSystem - NSBox - - - boxGeneralInfo - NSBox - - - boxMisc - NSBox - - - boxTitles - NSBox - - - cdsCoreController - NSObjectController - - - cdsSoundController - NSObjectController - - - cheatListWindow - NSWindow - - - cheatWindowController - NSObjectController - - - emuControlController - NSObjectController - - - inputManager - InputManager - - - inputPrefsView - InputPrefsView - - - mLoadStateSlot - NSMenu - - - mSaveStateSlot - NSMenu - - - migrationDelegate - FileMigrationDelegate - - - prefGeneralView - NSView - - - prefWindow - NSWindow - - - prefWindowController - NSObjectController - - - romInfoPanelController - NSObjectController - - - troubleshootingWindow - NSWindow - - - - - IBProjectSource - userinterface/appDelegate.h - - - - CheatWindowDelegate - NSObject - - YES - - YES - addToList: - applyConfiguration: - closeCheatDatabaseSheet: - removeFromList: - resetSearch: - runComparativeSearch: - runExactValueSearch: - selectAllCheatsInDatabase: - selectCheatSearchStyle: - selectCheatType: - selectNoneCheatsInDatabase: - setInternalCheatValue: - viewDatabase: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - addToList: - applyConfiguration: - closeCheatDatabaseSheet: - removeFromList: - resetSearch: - runComparativeSearch: - runExactValueSearch: - selectAllCheatsInDatabase: - selectCheatSearchStyle: - selectCheatType: - selectNoneCheatsInDatabase: - setInternalCheatValue: - viewDatabase: - - - YES - - addToList: - id - - - applyConfiguration: - id - - - closeCheatDatabaseSheet: - id - - - removeFromList: - id - - - resetSearch: - id - - - runComparativeSearch: - id - - - runExactValueSearch: - id - - - selectAllCheatsInDatabase: - id - - - selectCheatSearchStyle: - id - - - selectCheatType: - id - - - selectNoneCheatsInDatabase: - id - - - setInternalCheatValue: - id - - - viewDatabase: - id - - - - - YES - - YES - cheatConfigBox - cheatDatabaseController - cheatDatabaseSheet - cheatListController - cheatListTable - cheatSearchListController - cheatSearchListTable - cheatSearchView - cheatSelectedItemController - cheatWindowController - searchField - viewConfigureActionReplayCheat - viewConfigureCodeBreakerCheat - viewConfigureInternalCheat - viewConfigureNoSelection - viewSearchComparativeContinue - viewSearchComparativeStart - viewSearchExactValue - viewSearchNoSelection - window - - - YES - NSBox - NSArrayController - NSWindow - NSArrayController - NSTableView - NSArrayController - NSTableView - NSView - NSObjectController - NSObjectController - NSSearchField - NSView - NSView - NSView - NSView - NSView - NSView - NSView - NSView - NSWindow - - - - YES - - YES - cheatConfigBox - cheatDatabaseController - cheatDatabaseSheet - cheatListController - cheatListTable - cheatSearchListController - cheatSearchListTable - cheatSearchView - cheatSelectedItemController - cheatWindowController - searchField - viewConfigureActionReplayCheat - viewConfigureCodeBreakerCheat - viewConfigureInternalCheat - viewConfigureNoSelection - viewSearchComparativeContinue - viewSearchComparativeStart - viewSearchExactValue - viewSearchNoSelection - window - - - YES - - cheatConfigBox - NSBox - - - cheatDatabaseController - NSArrayController - - - cheatDatabaseSheet - NSWindow - - - cheatListController - NSArrayController - - - cheatListTable - NSTableView - - - cheatSearchListController - NSArrayController - - - cheatSearchListTable - NSTableView - - - cheatSearchView - NSView - - - cheatSelectedItemController - NSObjectController - - - cheatWindowController - NSObjectController - - - searchField - NSSearchField - - - viewConfigureActionReplayCheat - NSView - - - viewConfigureCodeBreakerCheat - NSView - - - viewConfigureInternalCheat - NSView - - - viewConfigureNoSelection - NSView - - - viewSearchComparativeContinue - NSView - - - viewSearchComparativeStart - NSView - - - viewSearchExactValue - NSView - - - viewSearchNoSelection - NSView - - - window - NSWindow - - - - - IBProjectSource - userinterface/cheatWindowDelegate.h - - - - DisplayView - NSView - - IBProjectSource - userinterface/DisplayWindowController.h - - - - DisplayWindowController - NSWindowController - - YES - - YES - changeCoreSpeed: - changeRotationRelative: - changeVolume: - copy: - openRom: - reset: - saveScreenshotAs: - toggleExecutePause: - toggleKeepMinDisplaySizeAtNormal: - toggleStatusBar: - - - YES - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - changeCoreSpeed: - changeRotationRelative: - changeVolume: - copy: - openRom: - reset: - saveScreenshotAs: - toggleExecutePause: - toggleKeepMinDisplaySizeAtNormal: - toggleStatusBar: - - - YES - - changeCoreSpeed: - id - - - changeRotationRelative: - id - - - changeVolume: - id - - - copy: - id - - - openRom: - id - - - reset: - id - - - saveScreenshotAs: - id - - - toggleExecutePause: - id - - - toggleKeepMinDisplaySizeAtNormal: - id - - - toggleStatusBar: - id - - - - - YES - - YES - saveScreenshotPanelAccessoryView - view - - - YES - NSView - DisplayView - - - - YES - - YES - saveScreenshotPanelAccessoryView - view - - - YES - - saveScreenshotPanelAccessoryView - NSView - - - view - DisplayView - - - - - - - EmuControllerDelegate - NSObject - - YES - - YES - changeAudioEngine: - changeCoreEmuFlags: - changeCoreSpeed: - changeDisplayGap: - changeDisplayMode: - changeDisplayOrder: - changeDisplayOrientation: - changeFirmwareSettings: - changeRomSaveType: - changeRotation: - changeRotationRelative: - changeScale: - changeSpuAdvancedLogic: - changeSpuInterpolationMode: - changeSpuSyncMethod: - changeSpuSyncMode: - changeVolume: - chooseSlot1R4Directory: - closeRom: - closeSheet: - closeWindow: - exportRomSave: - importRomSave: - loadEmuSaveStateSlot: - loadRecentRom: - newDisplayWindow: - openEmuSaveState: - openRom: - reset: - revealGameDataFolderInFinder: - revealRomInFinder: - revertEmuSaveState: - runToolbarCustomizationPalette: - saveEmuSaveState: - saveEmuSaveStateAs: - saveEmuSaveStateSlot: - saveScreenshotAs: - slot1Eject: - toggleAutoFrameSkip: - toggleCheats: - toggleExecutePause: - toggleGPUState: - toggleKeepMinDisplaySizeAtNormal: - toggleSpeedLimiter: - toggleStatusBar: - toggleToolbarShown: - writeDefaults3DRenderingSettings: - writeDefaultsDisplayGap: - writeDefaultsDisplayRotation: - writeDefaultsDisplayVideoSettings: - writeDefaultsEmulationSettings: - writeDefaultsHUDSettings: - writeDefaultsSlot1Settings: - writeDefaultsSoundSettings: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - changeAudioEngine: - changeCoreEmuFlags: - changeCoreSpeed: - changeDisplayGap: - changeDisplayMode: - changeDisplayOrder: - changeDisplayOrientation: - changeFirmwareSettings: - changeRomSaveType: - changeRotation: - changeRotationRelative: - changeScale: - changeSpuAdvancedLogic: - changeSpuInterpolationMode: - changeSpuSyncMethod: - changeSpuSyncMode: - changeVolume: - chooseSlot1R4Directory: - closeRom: - closeSheet: - closeWindow: - exportRomSave: - importRomSave: - loadEmuSaveStateSlot: - loadRecentRom: - newDisplayWindow: - openEmuSaveState: - openRom: - reset: - revealGameDataFolderInFinder: - revealRomInFinder: - revertEmuSaveState: - runToolbarCustomizationPalette: - saveEmuSaveState: - saveEmuSaveStateAs: - saveEmuSaveStateSlot: - saveScreenshotAs: - slot1Eject: - toggleAutoFrameSkip: - toggleCheats: - toggleExecutePause: - toggleGPUState: - toggleKeepMinDisplaySizeAtNormal: - toggleSpeedLimiter: - toggleStatusBar: - toggleToolbarShown: - writeDefaults3DRenderingSettings: - writeDefaultsDisplayGap: - writeDefaultsDisplayRotation: - writeDefaultsDisplayVideoSettings: - writeDefaultsEmulationSettings: - writeDefaultsHUDSettings: - writeDefaultsSlot1Settings: - writeDefaultsSoundSettings: - - - YES - - changeAudioEngine: - id - - - changeCoreEmuFlags: - id - - - changeCoreSpeed: - id - - - changeDisplayGap: - id - - - changeDisplayMode: - id - - - changeDisplayOrder: - id - - - changeDisplayOrientation: - id - - - changeFirmwareSettings: - id - - - changeRomSaveType: - id - - - changeRotation: - id - - - changeRotationRelative: - id - - - changeScale: - id - - - changeSpuAdvancedLogic: - id - - - changeSpuInterpolationMode: - id - - - changeSpuSyncMethod: - id - - - changeSpuSyncMode: - id - - - changeVolume: - id - - - chooseSlot1R4Directory: - id - - - closeRom: - id - - - closeSheet: - id - - - closeWindow: - id - - - exportRomSave: - id - - - importRomSave: - id - - - loadEmuSaveStateSlot: - id - - - loadRecentRom: - id - - - newDisplayWindow: - id - - - openEmuSaveState: - id - - - openRom: - id - - - reset: - id - - - revealGameDataFolderInFinder: - id - - - revealRomInFinder: - id - - - revertEmuSaveState: - id - - - runToolbarCustomizationPalette: - id - - - saveEmuSaveState: - id - - - saveEmuSaveStateAs: - id - - - saveEmuSaveStateSlot: - id - - - saveScreenshotAs: - id - - - slot1Eject: - id - - - toggleAutoFrameSkip: - id - - - toggleCheats: - id - - - toggleExecutePause: - id - - - toggleGPUState: - id - - - toggleKeepMinDisplaySizeAtNormal: - id - - - toggleSpeedLimiter: - id - - - toggleStatusBar: - id - - - toggleToolbarShown: - id - - - writeDefaults3DRenderingSettings: - id - - - writeDefaultsDisplayGap: - id - - - writeDefaultsDisplayRotation: - id - - - writeDefaultsDisplayVideoSettings: - id - - - writeDefaultsEmulationSettings: - id - - - writeDefaultsHUDSettings: - id - - - writeDefaultsSlot1Settings: - id - - - writeDefaultsSoundSettings: - id - - - - - YES - - YES - cdsCoreController - cdsSoundController - cheatDatabaseController - cheatListController - cheatWindowController - cheatWindowDelegate - exportRomSavePanelAccessoryView - firmwarePanelController - inputManager - romInfoPanelController - saveFileMigrationSheet - saveStatePrecloseSheet - slot1ManagerWindow - - - YES - NSObjectController - NSObjectController - NSArrayController - NSArrayController - NSObjectController - CheatWindowDelegate - NSView - NSObjectController - InputManager - NSObjectController - NSWindow - NSWindow - NSWindow - - - - YES - - YES - cdsCoreController - cdsSoundController - cheatDatabaseController - cheatListController - cheatWindowController - cheatWindowDelegate - exportRomSavePanelAccessoryView - firmwarePanelController - inputManager - romInfoPanelController - saveFileMigrationSheet - saveStatePrecloseSheet - slot1ManagerWindow - - - YES - - cdsCoreController - NSObjectController - - - cdsSoundController - NSObjectController - - - cheatDatabaseController - NSArrayController - - - cheatListController - NSArrayController - - - cheatWindowController - NSObjectController - - - cheatWindowDelegate - CheatWindowDelegate - - - exportRomSavePanelAccessoryView - NSView - - - firmwarePanelController - NSObjectController - - - inputManager - InputManager - - - romInfoPanelController - NSObjectController - - - saveFileMigrationSheet - NSWindow - - - saveStatePrecloseSheet - NSWindow - - - slot1ManagerWindow - NSWindow - - - - - IBProjectSource - userinterface/EmuControllerDelegate.h - - - - FileMigrationDelegate - NSObject - - YES - - YES - handleChoice: - selectAll: - selectNone: - updateAndShowWindow: - - - YES - id - id - id - id - - - - YES - - YES - handleChoice: - selectAll: - selectNone: - updateAndShowWindow: - - - YES - - handleChoice: - id - - - selectAll: - id - - - selectNone: - id - - - updateAndShowWindow: - id - - - - - YES - - YES - fileListController - window - - - YES - NSArrayController - NSWindow - - - - YES - - YES - fileListController - window - - - YES - - fileListController - NSArrayController - - - window - NSWindow - - - - - IBProjectSource - userinterface/FileMigrationDelegate.h - - - - InputManager - NSObject - - YES - - YES - emuControl - hidInputTarget - - - YES - EmuControllerDelegate - id - - - - YES - - YES - emuControl - hidInputTarget - - - YES - - emuControl - EmuControllerDelegate - - - hidInputTarget - id - - - - - IBProjectSource - userinterface/InputManager.h - - - - InputPrefsView - NSView - - YES - - YES - audioFileChoose: - audioFileChooseNone: - changeSpeed: - closeProfileRenameSheet: - closeProfileSheet: - closeSettingsSheet: - profileApply: - profileDelete: - profileNew: - profileRename: - profileSave: - profileSelect: - profileView: - removeInput: - setInputAdd: - showSettingsSheet: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - audioFileChoose: - audioFileChooseNone: - changeSpeed: - closeProfileRenameSheet: - closeProfileSheet: - closeSettingsSheet: - profileApply: - profileDelete: - profileNew: - profileRename: - profileSave: - profileSelect: - profileView: - removeInput: - setInputAdd: - showSettingsSheet: - - - YES - - audioFileChoose: - id - - - audioFileChooseNone: - id - - - changeSpeed: - id - - - closeProfileRenameSheet: - id - - - closeProfileSheet: - id - - - closeSettingsSheet: - id - - - profileApply: - id - - - profileDelete: - id - - - profileNew: - id - - - profileRename: - id - - - profileSave: - id - - - profileSelect: - id - - - profileView: - id - - - removeInput: - id - - - setInputAdd: - id - - - showSettingsSheet: - id - - - - - YES - - YES - inputManager - inputPrefOutlineView - inputProfileController - inputProfileMenu - inputProfileNextButton - inputProfilePreviousButton - inputProfileRenameSheet - inputProfileSheet - inputSettingsController - inputSettingsGPUState - inputSettingsLoadStateSlot - inputSettingsMicrophone - inputSettingsSaveStateSlot - inputSettingsSetSpeedLimit - inputSettingsTouch - prefWindow - - - YES - InputManager - NSOutlineView - InputProfileController - NSPopUpButton - NSButton - NSButton - NSWindow - NSWindow - NSObjectController - NSWindow - NSWindow - NSWindow - NSWindow - NSWindow - NSWindow - NSWindow - - - - YES - - YES - inputManager - inputPrefOutlineView - inputProfileController - inputProfileMenu - inputProfileNextButton - inputProfilePreviousButton - inputProfileRenameSheet - inputProfileSheet - inputSettingsController - inputSettingsGPUState - inputSettingsLoadStateSlot - inputSettingsMicrophone - inputSettingsSaveStateSlot - inputSettingsSetSpeedLimit - inputSettingsTouch - prefWindow - - - YES - - inputManager - InputManager - - - inputPrefOutlineView - NSOutlineView - - - inputProfileController - InputProfileController - - - inputProfileMenu - NSPopUpButton - - - inputProfileNextButton - NSButton - - - inputProfilePreviousButton - NSButton - - - inputProfileRenameSheet - NSWindow - - - inputProfileSheet - NSWindow - - - inputSettingsController - NSObjectController - - - inputSettingsGPUState - NSWindow - - - inputSettingsLoadStateSlot - NSWindow - - - inputSettingsMicrophone - NSWindow - - - inputSettingsSaveStateSlot - NSWindow - - - inputSettingsSetSpeedLimit - NSWindow - - - inputSettingsTouch - NSWindow - - - prefWindow - NSWindow - - - - - IBProjectSource - userinterface/inputPrefsView.h - - - - InputProfileController - NSObjectController - - YES - - YES - inputManager - profileOutlineView - - - YES - InputManager - NSOutlineView - - - - YES - - YES - inputManager - profileOutlineView - - - YES - - inputManager - InputManager - - - profileOutlineView - NSOutlineView - - - - - IBProjectSource - userinterface/InputProfileController.h - - - - PreferencesWindowDelegate - NSObject - - YES - - YES - chooseARM7BiosImage: - chooseARM9BiosImage: - chooseAdvansceneDatabase: - chooseCheatDatabase: - chooseFirmwareImage: - chooseRomForAutoload: - closeFirmwareConfigSheet: - configureInternalFirmware: - selectAutoloadRomOption: - selectDisplayMode: - selectDisplayRotation: - selectDisplaySize: - selectSPUSyncMethod: - selectSPUSyncMode: - selectVideoFilterType: - setUseBilinear: - showDisplayView: - showEmulationView: - showGeneralView: - showInputView: - showSoundView: - updateVolumeIcon: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - chooseARM7BiosImage: - chooseARM9BiosImage: - chooseAdvansceneDatabase: - chooseCheatDatabase: - chooseFirmwareImage: - chooseRomForAutoload: - closeFirmwareConfigSheet: - configureInternalFirmware: - selectAutoloadRomOption: - selectDisplayMode: - selectDisplayRotation: - selectDisplaySize: - selectSPUSyncMethod: - selectSPUSyncMode: - selectVideoFilterType: - setUseBilinear: - showDisplayView: - showEmulationView: - showGeneralView: - showInputView: - showSoundView: - updateVolumeIcon: - - - YES - - chooseARM7BiosImage: - id - - - chooseARM9BiosImage: - id - - - chooseAdvansceneDatabase: - id - - - chooseCheatDatabase: - id - - - chooseFirmwareImage: - id - - - chooseRomForAutoload: - id - - - closeFirmwareConfigSheet: - id - - - configureInternalFirmware: - id - - - selectAutoloadRomOption: - id - - - selectDisplayMode: - id - - - selectDisplayRotation: - id - - - selectDisplaySize: - id - - - selectSPUSyncMethod: - id - - - selectSPUSyncMode: - id - - - selectVideoFilterType: - id - - - setUseBilinear: - id - - - showDisplayView: - id - - - showEmulationView: - id - - - showGeneralView: - id - - - showInputView: - id - - - showSoundView: - id - - - updateVolumeIcon: - id - - - - - YES - - YES - cdsCoreController - cheatDatabaseController - cheatWindowController - displayRotationField - displayRotationMenu - displayRotationMenuCustomItem - emuController - firmwareConfigSheet - prefWindowController - previewImageView - spuSyncMethodMenu - viewDisplay - viewEmulation - viewGeneral - viewInput - viewSound - window - - - YES - NSObjectController - NSArrayController - NSObjectController - NSTextField - NSPopUpButton - NSMenuItem - NSObjectController - NSWindow - NSObjectController - NSImageView - NSPopUpButton - NSView - NSView - NSView - InputPrefsView - NSView - NSWindow - - - - YES - - YES - cdsCoreController - cheatDatabaseController - cheatWindowController - displayRotationField - displayRotationMenu - displayRotationMenuCustomItem - emuController - firmwareConfigSheet - prefWindowController - previewImageView - spuSyncMethodMenu - viewDisplay - viewEmulation - viewGeneral - viewInput - viewSound - window - - - YES - - cdsCoreController - NSObjectController - - - cheatDatabaseController - NSArrayController - - - cheatWindowController - NSObjectController - - - displayRotationField - NSTextField - - - displayRotationMenu - NSPopUpButton - - - displayRotationMenuCustomItem - NSMenuItem - - - emuController - NSObjectController - - - firmwareConfigSheet - NSWindow - - - prefWindowController - NSObjectController - - - previewImageView - NSImageView - - - spuSyncMethodMenu - NSPopUpButton - - - viewDisplay - NSView - - - viewEmulation - NSView - - - viewGeneral - NSView - - - viewInput - InputPrefsView - - - viewSound - NSView - - - window - NSWindow - - - - - IBProjectSource - userinterface/preferencesWindowDelegate.h - - - - TroubleshootingWindowDelegate - NSObject - - YES - - YES - backForm: - continueToFinalForm: - copyInfoToPasteboard: - copyRomInfoToTextFields: - goToWebpage: - - - YES - id - id - id - id - id - - - - YES - - YES - backForm: - continueToFinalForm: - copyInfoToPasteboard: - copyRomInfoToTextFields: - goToWebpage: - - - YES - - backForm: - id - - - continueToFinalForm: - id - - - copyInfoToPasteboard: - id - - - copyRomInfoToTextFields: - id - - - goToWebpage: - id - - - - - YES - - YES - romInfoController - troubleshootingWindowController - viewBugReport - viewFinishedForm - viewSupportRequest - window - - - YES - NSObjectController - NSObjectController - NSView - NSView - NSView - NSWindow - - - - YES - - YES - romInfoController - troubleshootingWindowController - viewBugReport - viewFinishedForm - viewSupportRequest - window - - - YES - - romInfoController - NSObjectController - - - troubleshootingWindowController - NSObjectController - - - viewBugReport - NSView - - - viewFinishedForm - NSView - - - viewSupportRequest - NSView - - - window - NSWindow - - - - - IBProjectSource - userinterface/troubleshootingWindowDelegate.h - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSArrayController - NSObjectController - - IBFrameworkSource - AppKit.framework/Headers/NSArrayController.h - - - - NSBox - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSBox.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSController - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSController.h - - - - NSDatePicker - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSDatePicker.h - - - - NSDatePickerCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSDatePickerCell.h - - - - NSDocumentController - NSObject - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - id - id - id - id - - - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - - clearRecentDocuments: - id - - - newDocument: - id - - - openDocument: - id - - - saveAllDocuments: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentController.h - - - - NSDrawer - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSImageCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSImageCell.h - - - - NSImageView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSImageView.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSNumberFormatter - NSFormatter - - IBFrameworkSource - Foundation.framework/Headers/NSNumberFormatter.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSObjectController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSObjectController.h - - - - NSOutlineView - NSTableView - - - - NSPanel - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSPanel.h - - - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - - - NSProgressIndicator - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSProgressIndicator.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSScrollView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSScrollView.h - - - - NSScroller - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSScroller.h - - - - NSSearchField - NSTextField - - IBFrameworkSource - AppKit.framework/Headers/NSSearchField.h - - - - NSSearchFieldCell - NSTextFieldCell - - IBFrameworkSource - AppKit.framework/Headers/NSSearchFieldCell.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSStepper - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSStepper.h - - - - NSStepperCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSStepperCell.h - - - - NSTabView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSTabView.h - - - - NSTabViewItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTabViewItem.h - - - - NSTableColumn - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableColumn.h - - - - NSTableHeaderView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSTableHeaderView.h - - - - NSTableView - NSControl - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSTextView - NSText - - IBFrameworkSource - AppKit.framework/Headers/NSTextView.h - - - - NSToolbar - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbar.h - - - - NSToolbarItem - NSObject - - - - NSUserDefaultsController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSUserDefaultsController.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - showWindow: - - showWindow: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../../DeSmuME (XCode 3).xcodeproj - 3 - - YES - - YES - ColorSwatch_Blue_16x16 - ColorSwatch_Brown_16x16 - ColorSwatch_DarkBlue_16x16 - ColorSwatch_DarkGreen_16x16 - ColorSwatch_DarkPurple_16x16 - ColorSwatch_Gray_16x16 - ColorSwatch_Green_16x16 - ColorSwatch_LimeGreen_16x16 - ColorSwatch_Magenta_16x16 - ColorSwatch_Orange_16x16 - ColorSwatch_Pink_16x16 - ColorSwatch_Red_16x16 - ColorSwatch_SeaGreen_16x16 - ColorSwatch_Turquoise_16x16 - ColorSwatch_Violet_16x16 - ColorSwatch_Yellow_16x16 - Icon_ActionReplay_32x32 - Icon_CodeBreaker_128x128 - Icon_DeSmuME_32x32 - Icon_Emulation_420x420 - Icon_Input_420x420 - Icon_ShowHUD_420x420 - Icon_Speaker_420x420 - Icon_VolumeFull_16x16 - NSActionTemplate - NSAddTemplate - NSApplicationIcon - NSMenuCheckmark - NSMenuMixedState - NSPreferencesGeneral - NSRadioButton - NSRemoveTemplate - NSSwitch - - - YES - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {32, 32} - {128, 128} - {32, 32} - {420, 420} - {420, 420} - {420, 420} - {420, 420} - {20, 20} - {15, 15} - {8, 8} - {512, 512} - {9, 8} - {7, 2} - {32, 32} - {16, 15} - {8, 8} - {15, 15} - - - + + + + + + + + 400 + 75 + + 1 + + + + + + + {{1, 1}, {253, 62}} + + + + {{16, 413}, {255, 78}} + + {0, 0} + + 67108864 + 0 + Audio Output Engine + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {288, 511} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + SoundSettingsPanel + YES + + + 8215 + 2 + {{107, 480}, {580, 588}} + -461897728 + ROM Info + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{20, 440}, {128, 128}} + + + YES + + 134217728 + 33554432 + + 0 + 3 + 0 + NO + + NO + YES + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 89}, {131, 17}} + + + YES + + 68157504 + 272634880 + ROM Name: + + + + + + NO + + + + 268 + {{15, 64}, {131, 17}} + + + YES + + 68157504 + 272630784 + ROM Serial: + + + + + + NO + + + + 268 + {{15, 39}, {131, 17}} + + + YES + + 68157504 + 272630784 + ROM Developer: + + + + + + NO + + + + 268 + {{15, 14}, {131, 17}} + + + YES + + 68157504 + 272630784 + Chip Size: + + + + + + NO + + + + 268 + {{148, 89}, {245, 17}} + + + YES + + 70254657 + 4199424 + + + ? + + + + 1 + MSAxIDEAA + + + NO + + + + 268 + {{148, 64}, {245, 17}} + + + YES + + 70254657 + 4199424 + + + ? + + + + + NO + + + + 268 + {{148, 39}, {245, 17}} + + + YES + + 70254657 + 4199424 + + + ? + + + + + NO + + + + 268 + {{148, 14}, {245, 17}} + + + YES + + 70254657 + 4199424 + + + ? + + + + + NO + + + {{1, 1}, {408, 116}} + + + + + {{153, 436}, {410, 132}} + + + {0, 0} + + 67108864 + 0 + General Info + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 376}, {186, 14}} + + + YES + + 68157504 + 272897024 + JAPANESE TITLE: + + + + + + NO + + + + 268 + {{15, 312}, {186, 14}} + + + YES + + 68157504 + 272897024 + ENGLISH TITLE: + + + + + + NO + + + + 268 + {{15, 248}, {186, 14}} + + + YES + + 68157504 + 272897024 + FRENCH TITLE: + + + + + + NO + + + + 268 + {{15, 184}, {186, 14}} + + + YES + + 68157504 + 272897024 + GERMAN TITLE: + + + + + + NO + + + + 268 + {{15, 120}, {186, 14}} + + + YES + + 68157504 + 272897024 + ITALIAN TITLE: + + + + + + NO + + + + 268 + {{15, 56}, {186, 14}} + + + YES + + 68157504 + 272897024 + SPANISH TITLE: + + + + + + NO + + + + 268 + {{15, 334}, {186, 42}} + + + YES + + 69206017 + 272896000 + + + ? + + + + + NO + + + + 268 + {{15, 270}, {186, 42}} + + + YES + + 69206017 + 272896000 + + + ? + + + + + NO + + + + 268 + {{15, 206}, {186, 42}} + + + YES + + 69206017 + 272896000 + + + ? + + + + + NO + + + + 268 + {{15, 142}, {186, 42}} + + + YES + + 69206017 + 272896000 + + + ? + + + + + NO + + + + 268 + {{15, 78}, {186, 42}} + + + YES + + 69206017 + 272896000 + + + ? + + + + + NO + + + + 268 + {{15, 14}, {186, 42}} + + + YES + + 69206017 + 272896000 + + + ? + + + + + NO + + + {{1, 1}, {216, 400}} + + + + + {{17, 16}, {218, 416}} + + + {0, 0} + + 67108864 + 0 + Titles + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 168}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM9 Binary ROM Offset: + + + + + + NO + + + + 268 + {{15, 146}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM9 Binary Entry Address: + + + + + + NO + + + + 268 + {{15, 124}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM9 Binary Start Address: + + + + + + NO + + + + 268 + {{15, 102}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM9 Binary Size: + + + + + + NO + + + + 268 + {{15, 80}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM7 Binary ROM Offset: + + + + + + NO + + + + 268 + {{15, 58}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM7 Binary Entry Address: + + + + + + NO + + + + 268 + {{15, 36}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM7 Binary Start Address: + + + + + + NO + + + + 268 + {{15, 14}, {186, 14}} + + + YES + + 68157504 + 272630784 + ARM7 Binary Size: + + + + + + NO + + + + 268 + {{203, 168}, {106, 14}} + + + YES + + 70254657 + 71308288 + + ? + + + + + NO + + + + 268 + {{203, 146}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{203, 124}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{203, 102}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? bytes + + + + + NO + + + + 268 + {{203, 80}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{203, 58}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{203, 36}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{203, 14}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? bytes + + + + + NO + + + {{1, 1}, {324, 192}} + + + + + {{237, 224}, {326, 208}} + + + {0, 0} + + 67108864 + 0 + ARM9 & ARM7 Binaries + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 80}, {186, 14}} + + + YES + + 68157504 + 272630784 + FNT ROM Offset: + + + + + + NO + + + + 268 + {{203, 80}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{15, 58}, {186, 14}} + + + YES + + 68157504 + 272630784 + FNT Size: + + + + + + NO + + + + 268 + {{203, 58}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? bytes + + + + + NO + + + + 268 + {{15, 36}, {186, 14}} + + + YES + + 68157504 + 272630784 + FAT ROM Offset: + + + + + + NO + + + + 268 + {{203, 36}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{15, 14}, {186, 14}} + + + YES + + 68157504 + 272630784 + FAT Size: + + + + + + NO + + + + 268 + {{203, 14}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? bytes + + + + + NO + + + {{1, 1}, {324, 104}} + + + + + {{237, 98}, {326, 120}} + + + {0, 0} + + 67108864 + 0 + File System + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 36}, {186, 14}} + + + YES + + 68157504 + 272630784 + Icon/Title Region ROM Offset: + + + + + + NO + + + + 268 + {{203, 36}, {106, 14}} + + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + + 268 + {{15, 14}, {186, 14}} + + + YES + + 68157504 + 272630784 + Used ROM Size: + + + + + + NO + + + + 268 + {{203, 14}, {106, 14}} + + YES + + 70254657 + 71308288 + + + ? + + + + + NO + + + {{1, 1}, {324, 60}} + + + + + {{237, 16}, {326, 76}} + + + {0, 0} + + 67108864 + 0 + Miscellaneous + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {580, 588} + + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + ROMInfoPanel + YES + + + 279 + 2 + {{1360, 99}, {467, 128}} + -461897728 + Set Speed Limit + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{30, 43}, {411, 26}} + + + YES + + -2080112384 + 0 + + + 10 + 0.0 + 1 + 0.0 + 11 + 1 + NO + NO + + NO + + + + 268 + {{20, 70}, {38, 17}} + + + YES + + 68157504 + 138413056 + 0x + + + + + + NO + + + + 268 + {{412, 70}, {38, 17}} + + + YES + + 68157504 + 138413056 + 10x + + + + + + NO + + + + 268 + {{98, 70}, {38, 17}} + + + YES + + 68157504 + 138413056 + 2x + + + + + + NO + + + + 268 + {{177, 70}, {38, 17}} + + + YES + + 68157504 + 138413056 + 4x + + + + + + NO + + + + 268 + {{255, 70}, {38, 17}} + + + YES + + 68157504 + 138413056 + 6x + + + + + + NO + + + + 268 + {{335, 70}, {38, 17}} + + + YES + + 68157504 + 138413056 + 8x + + + + + + NO + + + + 268 + {{32, 18}, {133, 19}} + + + 100 + YES + + 67108864 + 134217728 + Set to Normal Speed + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{203, 21}, {156, 17}} + + + YES + + 68157504 + 71304192 + Speed limit set to: + + + + + + NO + + + + 268 + {{361, 21}, {81, 17}} + + YES + + 68157504 + 4195328 + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + formatterBehavior + lenient + locale + maximumFractionDigits + minimumFractionDigits + negativeFormat + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + #0.00x + -∞ + + + #0.00x + +∞ + + + + #0.00x + #0.00x + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + %1.2fx + + + + + NO + + + + 268 + {{158, 93}, {154, 18}} + + + YES + + -2080374784 + 0 + Enable Speed Limit + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {467, 128} + + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + SetSpeedLimitPanel + YES + + + 279 + 2 + {{162, 281}, {213, 198}} + -461896704 + Set Rotation + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{88, 119}, {32, 34}} + + YES + + 67371264 + 0 + + + 360 + 0.0 + 0.0 + 0.0 + 4 + 1 + NO + NO + 1 + + NO + + + + 268 + {{85, 161}, {38, 17}} + + YES + + 68157504 + 138413056 + 0š + + + + + + NO + + + + 268 + {{85, 94}, {39, 17}} + + YES + + 68157504 + 138413056 + 180š + + + + + + NO + + + + 268 + {{44, 127}, {39, 17}} + + YES + + 68157504 + 138413056 + 270š + + + + + + NO + + + + 268 + {{125, 127}, {38, 17}} + + YES + + 68157504 + 138413056 + 90š + + + + + + NO + + + + 268 + {{127, 69}, {57, 17}} + + YES + + 68157504 + 272630784 + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + currencySymbol + formatterBehavior + internationalCurrencySymbol + lenient + locale + maximumFractionDigits + maximumIntegerDigits + minimumFractionDigits + minimumIntegerDigits + negativeFormat + negativeSuffix + numberStyle + positiveFormat + positiveSuffix + + + YES + + + ÂĪ + + ÂĪÂĪ + + + + + + + #0.00š + š + + #0.00š + š + + + #0.00š + #0.00š + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + rotX + + + + + NO + + + + 268 + {{24, 69}, {101, 17}} + + YES + + 68157504 + 272630784 + Rotation set to: + + + + + + NO + + + + 268 + {{27, 42}, {154, 19}} + + YES + + -2080374784 + 134217728 + Set to 0š + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{27, 17}, {154, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + {213, 198} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + SetRotationPanel + YES + + + 279 + 2 + {{230, 408}, {441, 133}} + -461896704 + Set Separation + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{30, 73}, {385, 26}} + + YES + + -2080112384 + 0 + + + 2 + 0.0 + 1 + 0.0 + 5 + 1 + NO + NO + + NO + + + + 268 + {{389, 99}, {38, 14}} + + YES + + 68157504 + 138544128 + 200% + + + + + + NO + + + + 268 + {{298, 99}, {38, 14}} + + YES + + 68157504 + 138544128 + 150% + + + + + + NO + + + + 268 + {{205, 99}, {38, 14}} + + YES + + 68157504 + 138544128 + 100% + + + + + + NO + + + + 268 + {{113, 99}, {38, 14}} + + YES + + 68157504 + 138544128 + 50% + + + + + + NO + + + + 268 + {{22, 99}, {38, 14}} + + YES + + 68157504 + 138544128 + 0% + + + + + + NO + + + + 268 + {{249, 51}, {107, 17}} + + YES + + 68157504 + 71304192 + Gap Percentage: + + + + + + NO + + + + 268 + {{358, 51}, {66, 17}} + + YES + + 68157504 + -2143288320 + + + + + YES + + YES + allowsFloats + alwaysShowsDecimalSeparator + formatterBehavior + locale + maximumFractionDigits + maximumIntegerDigits + minimumFractionDigits + negativeInfinitySymbol + nilSymbol + numberStyle + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + + + + -∞ + + + +∞ + + + + #0.0% + #0.0% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + 1.1f% + + + + + NO + + + + 268 + {{20, 48}, {100, 19}} + + YES + + -2080374784 + 134217728 + Set to 0% + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{128, 48}, {100, 19}} + + 100 + YES + + -2080374784 + 134217728 + Set to 100% + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{147, 18}, {154, 19}} + + YES + + -2080374784 + 134217728 + Save Settings as Default + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + {441, 133} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + SetSeparationPanel + YES + + + 279 + 2 + {{230, 202}, {173, 339}} + -461896704 + GPU Layers + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 112}, {106, 18}} + + YES + + -2080374784 + 131072 + GPU (All Layers) + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 92}, {44, 18}} + + 1 + YES + + -2080374784 + 131072 + BG0 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 72}, {44, 18}} + + 2 + YES + + -2080374784 + 131072 + BG1 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 52}, {44, 18}} + + 3 + YES + + -2080374784 + 131072 + BG2 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 32}, {44, 18}} + + 4 + YES + + -2080374784 + 131072 + BG3 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 12}, {44, 18}} + + 5 + YES + + -2080374784 + 131072 + OBJ + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {137, 138}} + + + + {{17, 174}, {139, 154}} + + {0, 0} + + 67108864 + 0 + Main + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{15, 112}, {106, 18}} + + 6 + YES + + -2080374784 + 131072 + GPU (All Layers) + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 92}, {44, 18}} + + 7 + YES + + -2080374784 + 131072 + BG0 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 72}, {44, 18}} + + 8 + YES + + -2080374784 + 131072 + BG1 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 52}, {44, 18}} + + 9 + YES + + -2080374784 + 131072 + BG2 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 32}, {44, 18}} + + 10 + YES + + -2080374784 + 131072 + BG3 + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{33, 12}, {44, 18}} + + 11 + YES + + -2080374784 + 131072 + OBJ + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {137, 138}} + + + + {{17, 16}, {139, 154}} + + {0, 0} + + 67108864 + 0 + Sub + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {173, 339} + + {{0, 0}, {1920, 1178}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + GPULayersPanel + YES + + + + 268 + + YES + + + 268 + {{195, 5}, {226, 26}} + + YES + + -2076180416 + 2048 + + + 109199360 + 1 + + + 400 + 75 + + + DeSmuME ROM Save (.dsv) + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + No$GBA ROM Save (.sav) + + 2147483647 + + + _popUpItemAction: + 1 + + + + + Raw Save File (.sav) + + 2147483647 + + + _popUpItemAction: + 2 + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 11}, {176, 17}} + + YES + + 68157504 + 71304192 + Select ROM Save Format: + + + + + + NO + + + {450, 35} + NSView + + + 7 + 2 + {{75, 507}, {580, 592}} + 1685586944 + Troubleshooting Form + NSWindow + + + {580, 592} + {580, 592} + + + 256 + {580, 592} + + {{0, 0}, {1920, 1178}} + {580, 614} + {580, 614} + YES + + + + 268 + + YES + + + 1292 + {{364, 339}, {32, 32}} + + 28682 + 100 + + + + 265 + {{396, 343}, {168, 28}} + + YES + + 69206017 + 272764928 + TmFtZToKU2VyaWFsOg + + + + + + NO + + + + 265 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{364, 341}, {30, 30}} + + YES + + 134217728 + 33554432 + + 0 + 3 + 0 + NO + + NO + YES + + + + 256 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + + {{0, 69}, {523, 202}} + + + + + + + + + + + YES + + + 38 + + + + 523 + 1 + + + 100675459 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {525, 10000000} + + + + {{1, 1}, {523, 202}} + + + + + + 4 + + + + 256 + {{524, 1}, {15, 202}} + + NO + + _doScroller: + 0.99248120300751874 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{20, 61}, {540, 204}} + + + 133138 + + + + 0.25 + 4 + 1 + + + + 288 + {{125, 16}, {438, 28}} + + YES + + 67108864 + 272760832 + And that's it! Click Continue to review your information before submitting it to the DeSmuME team. + + + + + + NO + + + + 34 + {{12, 50}, {556, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 269 + {{17, 273}, {546, 28}} + + YES + + 67108864 + 272760832 + In the field below, briefly describe your situation and what you need help with. (Please be as specific as possible! It will help us to understand your situation better.) + + + + + + NO + + + + 269 + {{17, 309}, {546, 17}} + + YES + + 68157504 + 272630784 + Tell us what you need help with. + + + + + + NO + + + + 10 + {{12, 332}, {556, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 269 + {{17, 489}, {546, 42}} + + YES + + 67108864 + 272760832 + Do you need help with using DeSmuME? If so, it never hurts to ask! Just fill out this form and DeSmuME will prepare all the troubleshooting information for you to send to the DeSmuME team. This information will help us respond to your issue quicker and easier. + + + + + + NO + + + + 269 + {{17, 539}, {546, 17}} + + YES + + 68157504 + 138413056 + DeSmuME Technical Support Request Form + + + + + + NO + + + + 10 + {{12, 478}, {556, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 269 + {{17, 455}, {546, 17}} + + YES + + 68157504 + 272630784 + Tell us about the ROM. + + + + + + NO + + + + 269 + {{17, 405}, {546, 42}} + + YES + + 67108864 + 272760832 + If your issue is related to a specific ROM, enter its name and serial in the fields below. Otherwise, you may leave these fields blank. (It may be easier to load the ROM first, then click Use Currently Loaded ROM to let DeSmuME fill in this information for you.) + + + + + + NO + + + + 268 + {{17, 347}, {77, 17}} + + YES + + 68157504 + 272630784 + ROM Serial: + + + + + + NO + + + + 268 + {{17, 377}, {78, 17}} + + YES + + 68157504 + 272630784 + ROM Name: + + + + + + NO + + + + 266 + {{100, 345}, {256, 22}} + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 266 + {{100, 375}, {256, 22}} + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 265 + {{358, 370}, {209, 32}} + + YES + + 67108864 + 134217728 + Use Currently Loaded ROM + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 288 + {{14, 12}, {112, 32}} + + YES + + 67108864 + 134217728 + Continue + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {580, 567} + NSView + + + + 268 + + YES + + + 1292 + {{363, 339}, {32, 32}} + + 28682 + 100 + + + + 265 + {{396, 343}, {168, 28}} + + YES + + 69206017 + 272764928 + TmFtZToKU2VyaWFsOg + + + + + + NO + + + + 265 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{364, 341}, {30, 30}} + + YES + + 134217728 + 33554432 + + 0 + 3 + 0 + NO + + NO + YES + + + + 256 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + + {{0, 18}, {524, 80}} + + + + + + + + + + + YES + + + 38 + + + + 524 + 1 + + + 100675459 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {531, 10000000} + + + + {{1, 1}, {524, 80}} + + + + + + 4 + + + + 256 + {{525, 1}, {15, 80}} + + NO + + _doScroller: + 0.99248120300751874 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{20, 61}, {541, 82}} + + + 133138 + + + + 0.25 + 4 + 1 + + + + 256 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + + {{0, 6}, {523, 80}} + + + + + + + + + + + YES + + + 38 + + + + 523 + 1 + + + 100675459 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {523, 10000000} + + + + {{1, 1}, {523, 80}} + + + + + + 4 + + + + 256 + {{524, 1}, {15, 80}} + + NO + + _doScroller: + 0.99248120300751874 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{20, 167}, {540, 82}} + + + 133138 + + + + 0.25 + 4 + 1 + + + + 288 + {{125, 16}, {438, 28}} + + YES + + 67108864 + 272760832 + And that's it! Click Continue to review your information before submitting it to the DeSmuME team. + + + + + + NO + + + + 34 + {{12, 50}, {556, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 256 + {{17, 145}, {206, 14}} + + YES + + 68157504 + 272761856 + Expected Behavior: + + + + + + NO + + + + 256 + {{17, 251}, {206, 14}} + + YES + + 68157504 + 272761856 + Observed Behavior: + + + + + + NO + + + + 269 + {{17, 273}, {546, 28}} + + YES + + 67108864 + 272760832 + In the fields below, give us specific details on what you OBSERVED happened, and then what you EXPECTED to happen. + + + + + + NO + + + + 269 + {{17, 309}, {546, 17}} + + YES + + 68157504 + 272630784 + Tell us what is happening. + + + + + + NO + + + + 10 + {{12, 332}, {556, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 269 + {{17, 489}, {546, 42}} + + YES + + 67108864 + 272760832 + Think you just spotted a bug with DeSmuME? Be sure to let us know! Just fill out this form and DeSmuME will prepare all the troubleshooting information for you to send to the DeSmuME team. This information will help us respond to your bug report quicker and easier. + + + + + + NO + + + + 269 + {{17, 539}, {546, 17}} + + YES + + 68157504 + 138413056 + DeSmuME Bug Report Form + + + + + + NO + + + + 10 + {{12, 478}, {556, 5}} + + {0, 0} + + 67108864 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 269 + {{17, 455}, {546, 17}} + + YES + + 68157504 + 272630784 + Tell us about the ROM. + + + + + + NO + + + + 269 + {{17, 405}, {546, 42}} + + YES + + 67108864 + 272760832 + If your bug is related to a specific ROM, enter its name and serial in the fields below. Otherwise, you may leave these fields blank. (It may be easier to load the ROM first, then click Use Currently Loaded ROM to let DeSmuME fill in this information for you.) + + + + + + NO + + + + 268 + {{17, 347}, {77, 17}} + + YES + + 68157504 + 272630784 + ROM Serial: + + + + + + NO + + + + 268 + {{17, 377}, {78, 17}} + + YES + + 68157504 + 272630784 + ROM Name: + + + + + + NO + + + + 266 + {{100, 345}, {255, 22}} + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 266 + {{100, 375}, {255, 22}} + + YES + + -1804599231 + 272630784 + + + + YES + + + + NO + + + + 265 + {{358, 370}, {209, 32}} + + YES + + 67108864 + 134217728 + Use Currently Loaded ROM + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 288 + {{14, 12}, {112, 32}} + + YES + + 67108864 + 134217728 + Continue + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {580, 567} + NSView + + + + 268 + + YES + + + 268 + {{342, 55}, {224, 32}} + + YES + + 67108864 + 134217728 + Copy Info to Clipboard + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{17, 52}, {326, 42}} + + YES + + 67108864 + 272760832 + Please copy-paste the above information into our tech support webpage. This will ensure the fastest response time from us. + + + + + + NO + + + + 268 + {{342, 12}, {224, 32}} + + YES + + 67108864 + 134217728 + Go to Tech Support Webpage + + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{14, 12}, {112, 32}} + + YES + + 67108864 + 134217728 + Back + + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 256 + + YES + + + 2304 + + YES + + + 2322 + {{0, 157}, {523, 443}} + + + + + + + + + + + YES + + + 38 + + + + 523 + 1 + + + 100665601 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 0 + + 6 + {597, 10000000} + + + + {{1, 1}, {523, 443}} + + + + + + 4 + + + + 256 + {{524, 1}, {15, 443}} + + NO + + _doScroller: + 1 + 0.85256409645080566 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{20, 102}, {540, 445}} + + + 133138 + + + + 0.25 + 4 + 1 + + + {580, 567} + NSView + + + TroubleshootingWindowDelegate + + + + YES + readMePath + licensePath + authorsPath + changeLogPath + descriptionString + buildInfoString + aboutTextFilesFont + + YES + + + + + YES + isSpeedLimitEnabled + isCheatingEnabled + speedScalar + isFrameSkipEnabled + emuFlagAdvancedBusLevelTiming + emuFlagUseExternalBios + emuFlagEmulateBiosInterrupts + emuFlagPatchDelayLoop + emuFlagUseExternalFirmware + emuFlagFirmwareBoot + emuFlagDebugConsole + emuFlagEmulateEnsata + cpuEmulationEngine + emuFlagRigorousTiming + slot1StatusText + slot1DeviceType + maxJITBlockSize + cdsGPU.layerMainGPU + cdsGPU.layerMainBG0 + cdsGPU.layerMainBG1 + cdsGPU.layerMainBG2 + cdsGPU.layerMainBG3 + cdsGPU.layerMainOBJ + cdsGPU.layerSubGPU + cdsGPU.layerSubBG0 + cdsGPU.layerSubBG1 + cdsGPU.layerSubBG2 + cdsGPU.layerSubBG3 + cdsGPU.layerSubOBJ + + CocoaDSCore + + + + + YES + spuInterpolationMode + spuSyncMode + spuSyncMethod + spuAdvancedLogic + volume + audioOutputEngine + + YES + + + + + YES + isWorking + isRomLoading + statusText + currentVolumeValue + currentVolumeIcon + isShowingSaveStateDialog + isShowingFileMigrationDialog + isUserInterfaceBlockingExecution + currentSaveStateURL + selectedRomSaveTypeID + currentRom + render3DRenderingEngine + render3DHighPrecisionColorInterpolation + render3DEdgeMarking + render3DFog + render3DTextures + render3DDepthComparisonThreshold + render3DThreads + render3DLineHack + render3DMultisample + mainWindow + mainWindow.displayRotation + mainWindow.videoFilterType + mainWindow.useBilinearOutput + mainWindow.useVerticalSync + mainWindow.screenshotFileFormat + selectedExportRomSaveID + mainWindow.displayGap + + EmuControllerDelegate + + + + + YES + hasSelection + hasItems + cheatList + cheatSearchStyle + cheatSearchSignType + cheatSearchSearchValue + cheatSearchAddressCount + isRunningSearch + isSearchStarted + cheatDBTitle + cheatDBItemCount + cheatDBDate + + YES + + + + + YES + Input_Up + Input_Down + Input_Left + Input_Right + Input_A + Input_B + Input_X + Input_Y + Input_L + Input_R + Input_Start + Input_Select + Input_Microphone + Input_Lid + Input_Debug + Input_SpeedHalf + Input_SpeedDouble + Input_HUD + Input_Execute + Input_Pause + Input_Reset + Arm7BiosImageName + Arm9BiosImageName + FirmwareImageName + AutoloadRomName + VideoFilterPreviewImage + volumeIconImage + R4CheatDatabaseName + AdvansceneDatabaseName + + YES + + + + + YES + romName + romSerial + supportRequestText + bugReportObservedText + bugReportExpectedText + finalFormText + goWebpageButtonTitle + copyPasteHelpText + + + + + + YES + nickname + message + favoriteColor + birthday + language + consoleType + + CocoaDSFirmware + + + + + YES + gameTitle + gameCode + makerCode + cardSize + bannerJapanese + bannerEnglish + bannerFrench + bannerGerman + bannerItalian + bannerSpanish + fntOffset + fntTableSize + fatOffset + fatSize + iconOffset + romSize + iconImage + arm9BinaryOffset + arm9BinaryEntryAddress + arm9BinaryStartAddress + arm9BinarySize + arm7BinaryOffset + arm7BinaryEntryAddress + arm7BinaryStartAddress + arm7BinarySize + romInternalName + romSerial + romNameAndSerialInfo + gameDeveloper + gameDeveloperWithCode + + + + + + YES + enabled + cheatType + description + cheatTypeIcon + isSupportedCheatType + freezeType + codeCount + bytes + memAddress + value + code + memAddressString + memAddressSixDigitString + + CocoaDSCheatItem + YES + + + + + YES + Name + IsDefaultType + Mappings + + YES + + + + + YES + intValue0 + intValue1 + intValue2 + intValue3 + floatValue0 + floatValue1 + floatValue2 + floatValue3 + object0 + object1 + object2 + object3 + useInputForIntCoord + useInputForFloatCoord + useInputForScalar + useInputForSender + deviceInfoSummary + + YES + + + + + YES + version + kind + name + dateModified + willMigrate + + + YES + YES + YES + YES + YES + + + + YES + enabled + cheatTypeIcon + description + cheatType + + CocoaDSCheatItem + YES + + YES + YES + YES + YES + YES + + + + YES + value + addressString + + + YES + + + + YES + willAdd + description + + YES + + YES + + + YES + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + clearRecentDocuments: + + + + 127 + + + + performZoom: + + + + 240 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + terminate: + + + + 449 + + + + showHelp: + + + + 493 + + + + delegate + + + + 495 + + + + contentView + + + + 718 + + + + makeKeyAndOrderFront: + + + + 782 + + + + launchWebsite: + + + + 1101 + + + + launchForums: + + + + 1102 + + + + bugReport: + + + + 1103 + + + + showGeneralView: + + + + 1683 + + + + showDisplayView: + + + + 1684 + + + + showInputView: + + + + 1685 + + + + window + + + + 1689 + + + + viewDisplay + + + + 1690 + + + + viewGeneral + + + + 1691 + + + + mLoadStateSlot + + + + 1775 + + + + mSaveStateSlot + + + + 1776 + + + + value: selection.speedScalar + + + + + + value: selection.speedScalar + value + selection.speedScalar + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + 2 + + + 1869 + + + + value: selection.speedScalar + + + + + + value: selection.speedScalar + value + selection.speedScalar + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + 2 + + + 1872 + + + + delegate + + + + 2025 + + + + prefGeneralView + + + + 2093 + + + + prefWindow + + + + 2094 + + + + viewSound + + + + 2251 + + + + showSoundView: + + + + 2252 + + + + updateVolumeIcon: + + + + 2268 + + + + selectDisplayRotation: + + + + 2310 + + + + selectDisplayRotation: + + + + 2311 + + + + selectDisplayRotation: + + + + 2312 + + + + selectDisplayRotation: + + + + 2313 + + + + delegate + + + + 2314 + + + + displayRotationField + + + + 2315 + + + + displayRotationMenu + + + + 2316 + + + + displayRotationMenuCustomItem + + + + 2317 + + + + viewEmulation + + + + 2380 + + + + showEmulationView: + + + + 2381 + + + + selectSPUSyncMode: + + + + 2451 + + + + selectSPUSyncMode: + + + + 2452 + + + + selectSPUSyncMethod: + + + + 2453 + + + + selectSPUSyncMethod: + + + + 2454 + + + + selectSPUSyncMethod: + + + + 2455 + + + + spuSyncMethodMenu + + + + 2456 + + + + chooseFirmwareImage: + + + + 2575 + + + + chooseARM7BiosImage: + + + + 2587 + + + + chooseARM9BiosImage: + + + + 2588 + + + + makeKeyAndOrderFront: + + + + 2611 + + + + value: arrangedObjects.name + + + + + + value: arrangedObjects.name + value + arrangedObjects.name + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + NSCreatesSortDescriptor + NSRaisesForNotApplicableKeys + + + YES + + + + + + + 2 + + + 2928 + + + + value: arrangedObjects.version + + + + + + value: arrangedObjects.version + value + arrangedObjects.version + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + NSCreatesSortDescriptor + NSRaisesForNotApplicableKeys + + + YES + + + + + + + 2 + + + 2937 + + + + value: arrangedObjects.kind + + + + + + value: arrangedObjects.kind + value + arrangedObjects.kind + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + NSCreatesSortDescriptor + NSRaisesForNotApplicableKeys + + + YES + + + + + + + 2 + + + 2943 + + + + value: arrangedObjects.dateModified + + + + + + value: arrangedObjects.dateModified + value + arrangedObjects.dateModified + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + NSCreatesSortDescriptor + NSRaisesForNotApplicableKeys + + + YES + + + + + + + 2 + + + 2953 + + + + value: arrangedObjects.willMigrate + + + + + + value: arrangedObjects.willMigrate + value + arrangedObjects.willMigrate + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSCreatesSortDescriptor + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + + 2 + + + 3044 + + + + cut: + + + + 3252 + + + + paste: + + + + 3257 + + + + redo: + + + + 3266 + + + + delete: + + + + 3267 + + + + selectAll: + + + + 3270 + + + + undo: + + + + 3272 + + + + selectVideoFilterType: + + + + 3346 + + + + selectVideoFilterType: + + + + 3347 + + + + selectVideoFilterType: + + + + 3348 + + + + selectVideoFilterType: + + + + 3349 + + + + selectVideoFilterType: + + + + 3350 + + + + selectVideoFilterType: + + + + 3351 + + + + selectVideoFilterType: + + + + 3352 + + + + selectVideoFilterType: + + + + 3353 + + + + selectVideoFilterType: + + + + 3354 + + + + selectVideoFilterType: + + + + 3355 + + + + selectVideoFilterType: + + + + 3356 + + + + selectVideoFilterType: + + + + 3357 + + + + selectVideoFilterType: + + + + 3358 + + + + selectVideoFilterType: + + + + 3359 + + + + selectVideoFilterType: + + + + 3360 + + + + selectVideoFilterType: + + + + 3361 + + + + selectVideoFilterType: + + + + 3362 + + + + prefWindowController + + + + 3532 + + + + value: selection.FirmwareImageName + + + + + + value: selection.FirmwareImageName + value + selection.FirmwareImageName + 2 + + + 3561 + + + + value: selection.VideoFilterPreviewImage + + + + + + value: selection.VideoFilterPreviewImage + value + selection.VideoFilterPreviewImage + 2 + + + 3562 + + + + selectVideoFilterType: + + + + 3647 + + + + makeKeyAndOrderFront: + + + + 3792 + + + + value: values.Render3D_HighPrecisionColorInterpolation + + + + + + value: values.Render3D_HighPrecisionColorInterpolation + value + values.Render3D_HighPrecisionColorInterpolation + 2 + + + 3830 + + + + value: values.Render3D_Fog + + + + + + value: values.Render3D_Fog + value + values.Render3D_Fog + 2 + + + 3832 + + + + value: values.Render3D_Textures + + + + + + value: values.Render3D_Textures + value + values.Render3D_Textures + 2 + + + 3833 + + + + value: values.Render3D_DepthComparisonThreshold + + + + + + value: values.Render3D_DepthComparisonThreshold + value + values.Render3D_DepthComparisonThreshold + 2 + + + 3834 + + + + value: values.Render3D_EdgeMarking + + + + + + value: values.Render3D_EdgeMarking + value + values.Render3D_EdgeMarking + 2 + + + 3836 + + + + selectedTag: values.Render3D_Threads + + + + + + selectedTag: values.Render3D_Threads + selectedTag + values.Render3D_Threads + 2 + + + 3895 + + + + value: values.Render3D_LineHack + + + + + + value: values.Render3D_LineHack + value + values.Render3D_LineHack + 2 + + + 3902 + + + + boxARMBinaries + + + + 3954 + + + + boxFileSystem + + + + 3955 + + + + boxGeneralInfo + + + + 3956 + + + + boxMisc + + + + 3957 + + + + boxTitles + + + + 3958 + + + + makeKeyAndOrderFront: + + + + 3964 + + + + value: selection.Arm9BiosImageName + + + + + + value: selection.Arm9BiosImageName + value + selection.Arm9BiosImageName + 2 + + + 4025 + + + + value: selection.Arm7BiosImageName + + + + + + value: selection.Arm7BiosImageName + value + selection.Arm7BiosImageName + 2 + + + 4026 + + + + contentView + + + + 4057 + + + + parentWindow + + + + 4058 + + + + makeKeyAndOrderFront: + + + + 4063 + + + + toggle: + + + + 4068 + + + + previewImageView + + + + 4127 + + + + setUseBilinear: + + + + 4128 + + + + value: values.SPU_AdvancedLogic + + + + + + value: values.SPU_AdvancedLogic + value + values.SPU_AdvancedLogic + 2 + + + 4137 + + + + selectedTag: values.SPU_InterpolationMode + + + + + + selectedTag: values.SPU_InterpolationMode + selectedTag + values.SPU_InterpolationMode + 2 + + + 4138 + + + + selectedTag: values.SPU_SyncMode + + + + + + selectedTag: values.SPU_SyncMode + selectedTag + values.SPU_SyncMode + 2 + + + 4139 + + + + selectedTag: values.SPU_SyncMethod + + + + + + selectedTag: values.SPU_SyncMethod + selectedTag + values.SPU_SyncMethod + 2 + + + 4140 + + + + value: selection.emuFlagAdvancedBusLevelTiming + + + + + + value: selection.emuFlagAdvancedBusLevelTiming + value + selection.emuFlagAdvancedBusLevelTiming + 2 + + + 4141 + + + + value: selection.emuFlagUseExternalBios + + + + + + value: selection.emuFlagUseExternalBios + value + selection.emuFlagUseExternalBios + 2 + + + 4142 + + + + value: selection.emuFlagEmulateBiosInterrupts + + + + + + value: selection.emuFlagEmulateBiosInterrupts + value + selection.emuFlagEmulateBiosInterrupts + 2 + + + 4143 + + + + value: selection.emuFlagPatchDelayLoop + + + + + + value: selection.emuFlagPatchDelayLoop + value + selection.emuFlagPatchDelayLoop + 2 + + + 4145 + + + + value: selection.emuFlagUseExternalFirmware + + + + + + value: selection.emuFlagUseExternalFirmware + value + selection.emuFlagUseExternalFirmware + 2 + + + 4146 + + + + value: selection.emuFlagFirmwareBoot + + + + + + value: selection.emuFlagFirmwareBoot + value + selection.emuFlagFirmwareBoot + 2 + + + 4147 + + + + value: selection.emuFlagDebugConsole + + + + + + value: selection.emuFlagDebugConsole + value + selection.emuFlagDebugConsole + 2 + + + 4148 + + + + value: selection.emuFlagEmulateEnsata + + + + + + value: selection.emuFlagEmulateEnsata + value + selection.emuFlagEmulateEnsata + 2 + + + 4149 + + + + enabled: selection.emuFlagUseExternalBios + + + + + + enabled: selection.emuFlagUseExternalBios + enabled + selection.emuFlagUseExternalBios + 2 + + + 4150 + + + + enabled: selection.emuFlagUseExternalBios + + + + + + enabled: selection.emuFlagUseExternalBios + enabled + selection.emuFlagUseExternalBios + 2 + + + 4151 + + + + makeKeyAndOrderFront: + + + + 4279 + + + + makeKeyAndOrderFront: + + + + 4280 + + + + firmwareConfigSheet + + + + 4466 + + + + configureInternalFirmware: + + + + 4467 + + + + closeFirmwareConfigSheet: + + + + 4468 + + + + makeKeyAndOrderFront: + + + + 4638 + + + + value: selection.isCheatingEnabled + + + + + + value: selection.isCheatingEnabled + value + selection.isCheatingEnabled + 2 + + + 4648 + + + + window + + + + 4699 + + + + delegate + + + + 4700 + + + + viewConfigureActionReplayCheat + + + + 4702 + + + + viewConfigureInternalCheat + + + + 4703 + + + + cheatConfigBox + + + + 4709 + + + + delegate + + + + 4716 + + + + cheatSelectedItemController + + + + 4717 + + + + selectCheatType: + + + + 4718 + + + + selectCheatType: + + + + 4719 + + + + addToList: + + + + 4721 + + + + applyConfiguration: + + + + 4722 + + + + cheatListTable + + + + 4728 + + + + removeFromList: + + + + 4730 + + + + cheatWindowController + + + + 4735 + + + + viewConfigureNoSelection + + + + 4747 + + + + viewConfigureCodeBreakerCheat + + + + 4748 + + + + cheatListController + + + + 4755 + + + + parentWindow + + + + 4791 + + + + toggle: + + + + 4819 + + + + cheatSearchListController + + + + 4922 + + + + runExactValueSearch: + + + + 4928 + + + + runComparativeSearch: + + + + 4929 + + + + runComparativeSearch: + + + + 4930 + + + + runComparativeSearch: + + + + 4931 + + + + runComparativeSearch: + + + + 4932 + + + + selectCheatSearchStyle: + + + + 4933 + + + + selectCheatSearchStyle: + + + + 4934 + + + + viewSearchComparativeContinue + + + + 4936 + + + + viewSearchComparativeStart + + + + 4937 + + + + viewSearchExactValue + + + + 4938 + + + + viewSearchNoSelection + + + + 4939 + + + + cheatSearchView + + + + 4940 + + + + resetSearch: + + + + 4941 + + + + runComparativeSearch: + + + + 4943 + + + + searchField + + + + 4944 + + + + cheatSearchListTable + + + + 4945 + + + + delegate + + + + 4946 + + + + cdsCoreController + + + + 4955 + + + + setInternalCheatValue: + + + + 5070 + + + + value: selection.R4CheatDatabaseName + + + + + + value: selection.R4CheatDatabaseName + value + selection.R4CheatDatabaseName + 2 + + + 5073 + + + + chooseCheatDatabase: + + + + 5078 + + + + viewDatabase: + + + + 5079 + + + + cheatDatabaseSheet + + + + 5108 + + + + closeCheatDatabaseSheet: + + + + 5109 + + + + closeCheatDatabaseSheet: + + + + 5110 + + + + cheatDatabaseController + + + + 5119 + + + + selectAllCheatsInDatabase: + + + + 5122 + + + + selectNoneCheatsInDatabase: + + + + 5123 + + + + cheatWindowController + + + + 5143 + + + + cheatDatabaseController + + + + 5145 + + + + cheatListWindow + + + + 5146 + + + + cheatWindowController + + + + 5147 + + + + prefWindowController + + + + 5149 + + + + cdsCoreController + + + + 5150 + + + + value: selection.AdvansceneDatabaseName + + + + + + value: selection.AdvansceneDatabaseName + value + selection.AdvansceneDatabaseName + 2 + + + 5182 + + + + chooseAdvansceneDatabase: + + + + 5183 + + + + value: selection.nickname + + + + + + value: selection.nickname + value + selection.nickname + 2 + + + 5478 + + + + value: selection.message + + + + + + value: selection.message + value + selection.message + 2 + + + 5479 + + + + selectedTag: selection.favoriteColor + + + + + + selectedTag: selection.favoriteColor + selectedTag + selection.favoriteColor + 2 + + + 5480 + + + + value: selection.birthday + + + + + + value: selection.birthday + value + selection.birthday + 2 + + + 5481 + + + + selectedTag: selection.language + + + + + + selectedTag: selection.language + selectedTag + selection.language + 2 + + + 5482 + + + + value: selection.value + + + + + + value: selection.value + value + selection.value + 2 + + + 5484 + + + + selectedTag: selection.bytes + + + + + + selectedTag: selection.bytes + selectedTag + selection.bytes + 2 + + + 5485 + + + + value: selection.code + + + + + + value: selection.code + value + selection.code + 2 + + + 5486 + + + + selectedTag: selection.cheatType + + + + + + selectedTag: selection.cheatType + selectedTag + selection.cheatType + 2 + + + 5487 + + + + value: selection.description + + + + + + value: selection.description + value + selection.description + 2 + + + 5488 + + + + value: selection.enabled + + + + + + value: selection.enabled + value + selection.enabled + 2 + + + 5489 + + + + enabled: selection.value + + + + + + enabled: selection.value + enabled + selection.value + + NSValueTransformerName + NSIsNotNil + + 2 + + + 5490 + + + + value: arrangedObjects.enabled + + + + + + value: arrangedObjects.enabled + value + arrangedObjects.enabled + 2 + + + 5493 + + + + value: arrangedObjects.cheatTypeIcon + + + + + + value: arrangedObjects.cheatTypeIcon + value + arrangedObjects.cheatTypeIcon + 2 + + + 5494 + + + + value: arrangedObjects.description + + + + + + value: arrangedObjects.description + value + arrangedObjects.description + 2 + + + 5495 + + + + value: arrangedObjects.willAdd + + + + + + value: arrangedObjects.willAdd + value + arrangedObjects.willAdd + 2 + + + 5497 + + + + value: arrangedObjects.description + + + + + + value: arrangedObjects.description + value + arrangedObjects.description + + NSConditionallySetsEditable + + + 2 + + + 5498 + + + + value: selection.memAddressSixDigitString + + + + + + value: selection.memAddressSixDigitString + value + selection.memAddressSixDigitString + 2 + + + 5499 + + + + value: selection.volumeIconImage + + + + + + value: selection.volumeIconImage + value + selection.volumeIconImage + 2 + + + 5525 + + + + value: arrangedObjects.addressString + + + + + + value: arrangedObjects.addressString + value + arrangedObjects.addressString + 2 + + + 5566 + + + + value: arrangedObjects.value + + + + + + value: arrangedObjects.value + value + arrangedObjects.value + 2 + + + 5567 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + + + YES + + + + + + 2 + + + 5580 + + + + value: selection.romSize + + + + + + value: selection.romSize + value + selection.romSize + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5584 + + + + value: selection.bannerJapanese + + + + + + value: selection.bannerJapanese + value + selection.bannerJapanese + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5585 + + + + value: selection.bannerEnglish + + + + + + value: selection.bannerEnglish + value + selection.bannerEnglish + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5586 + + + + value: selection.bannerFrench + + + + + + value: selection.bannerFrench + value + selection.bannerFrench + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5587 + + + + value: selection.bannerGerman + + + + + + value: selection.bannerGerman + value + selection.bannerGerman + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5588 + + + + value: selection.bannerItalian + + + + + + value: selection.bannerItalian + value + selection.bannerItalian + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5589 + + + + value: selection.bannerSpanish + + + + + + value: selection.bannerSpanish + value + selection.bannerSpanish + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5590 + + + + value: selection.arm9BinaryOffset + + + + + + value: selection.arm9BinaryOffset + value + selection.arm9BinaryOffset + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5591 + + + + value: selection.arm9BinaryEntryAddress + + + + + + value: selection.arm9BinaryEntryAddress + value + selection.arm9BinaryEntryAddress + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5592 + + + + value: selection.arm9BinaryStartAddress + + + + + + value: selection.arm9BinaryStartAddress + value + selection.arm9BinaryStartAddress + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5593 + + + + value: selection.arm9BinarySize + + + + + + value: selection.arm9BinarySize + value + selection.arm9BinarySize + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5594 + + + + value: selection.arm7BinaryOffset + + + + + + value: selection.arm7BinaryOffset + value + selection.arm7BinaryOffset + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5595 + + + + value: selection.arm7BinaryEntryAddress + + + + + + value: selection.arm7BinaryEntryAddress + value + selection.arm7BinaryEntryAddress + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5596 + + + + value: selection.arm7BinaryStartAddress + + + + + + value: selection.arm7BinaryStartAddress + value + selection.arm7BinaryStartAddress + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5597 + + + + value: selection.arm7BinarySize + + + + + + value: selection.arm7BinarySize + value + selection.arm7BinarySize + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5598 + + + + value: selection.fntOffset + + + + + + value: selection.fntOffset + value + selection.fntOffset + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5599 + + + + value: selection.fntTableSize + + + + + + value: selection.fntTableSize + value + selection.fntTableSize + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5600 + + + + value: selection.fatOffset + + + + + + value: selection.fatOffset + value + selection.fatOffset + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5601 + + + + value: selection.fatSize + + + + + + value: selection.fatSize + value + selection.fatSize + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5602 + + + + value: selection.iconOffset + + + + + + value: selection.iconOffset + value + selection.iconOffset + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5603 + + + + value: selection.romSize + + + + + + value: selection.romSize + value + selection.romSize + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5604 + + + + selectedTag: selection.audioOutputEngine + + + + + + selectedTag: selection.audioOutputEngine + selectedTag + selection.audioOutputEngine + 2 + + + 5608 + + + + value: selection.spuAdvancedLogic + + + + + + value: selection.spuAdvancedLogic + value + selection.spuAdvancedLogic + 2 + + + 5609 + + + + selectedTag: selection.spuInterpolationMode + + + + + + selectedTag: selection.spuInterpolationMode + selectedTag + selection.spuInterpolationMode + 2 + + + 5610 + + + + selectedTag: selection.spuSyncMode + + + + + + selectedTag: selection.spuSyncMode + selectedTag + selection.spuSyncMode + 2 + + + 5611 + + + + selectedTag: selection.spuSyncMethod + + + + + + selectedTag: selection.spuSyncMethod + selectedTag + selection.spuSyncMethod + 2 + + + 5612 + + + + value: selection.cheatDBTitle + + + + + + value: selection.cheatDBTitle + value + selection.cheatDBTitle + 2 + + + 5618 + + + + value: selection.cheatDBDate + + + + + + value: selection.cheatDBDate + value + selection.cheatDBDate + 2 + + + 5619 + + + + value: selection.cheatDBItemCount + + + + + + value: selection.cheatDBItemCount + value + selection.cheatDBItemCount + 2 + + + 5620 + + + + selectedTag: selection.cheatSearchStyle + + + + + + selectedTag: selection.cheatSearchStyle + selectedTag + selection.cheatSearchStyle + 2 + + + 5621 + + + + value: selection.cheatSearchAddressCount + + + + + + value: selection.cheatSearchAddressCount + value + selection.cheatSearchAddressCount + 2 + + + 5622 + + + + value: selection.cheatSearchSearchValue + + + + + + value: selection.cheatSearchSearchValue + value + selection.cheatSearchSearchValue + 2 + + + 5623 + + + + animate: selection.isRunningSearch + + + + + + animate: selection.isRunningSearch + animate + selection.isRunningSearch + 2 + + + 5626 + + + + enabled: selection.isRunningSearch + + + + + + enabled: selection.isRunningSearch + enabled + selection.isRunningSearch + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 5627 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 5644 + + + + value: values.Advanscene_AutoDetectRomSaveType + + + + + + value: values.Advanscene_AutoDetectRomSaveType + value + values.Advanscene_AutoDetectRomSaveType + 2 + + + 5647 + + + + makeKeyAndOrderFront: + + + + 5720 + + + + aboutWindowController + + + + 5721 + + + + value: selection.romSerial + + + + + + value: selection.romSerial + value + selection.romSerial + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5722 + + + + value: selection.romInternalName + + + + + + value: selection.romInternalName + value + selection.romInternalName + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5723 + + + + value: values.FirmwareConfig_Nickname + + + + + + value: values.FirmwareConfig_Nickname + value + values.FirmwareConfig_Nickname + 2 + + + 5729 + + + + value: values.FirmwareConfig_Message + + + + + + value: values.FirmwareConfig_Message + value + values.FirmwareConfig_Message + 2 + + + 5730 + + + + selectedTag: values.FirmwareConfig_FavoriteColor + + + + + + selectedTag: values.FirmwareConfig_FavoriteColor + selectedTag + values.FirmwareConfig_FavoriteColor + 2 + + + 5731 + + + + value: values.FirmwareConfig_Birthday + + + + + + value: values.FirmwareConfig_Birthday + value + values.FirmwareConfig_Birthday + 2 + + + 5732 + + + + selectedTag: values.FirmwareConfig_Language + + + + + + selectedTag: values.FirmwareConfig_Language + selectedTag + values.FirmwareConfig_Language + 2 + + + 5733 + + + + value: selection.isSpeedLimitEnabled + + + + + + value: selection.isSpeedLimitEnabled + value + selection.isSpeedLimitEnabled + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + 2 + + + 5971 + + + + value: values.DisplayView_Rotation + + + + + + value: values.DisplayView_Rotation + value + values.DisplayView_Rotation + 2 + + + 5974 + + + + value: values.DisplayView_UseBilinearOutput + + + + + + value: values.DisplayView_UseBilinearOutput + value + values.DisplayView_UseBilinearOutput + 2 + + + 5975 + + + + selectedTag: values.DisplayView_VideoFilter + + + + + + selectedTag: values.DisplayView_VideoFilter + selectedTag + values.DisplayView_VideoFilter + 2 + + + 5976 + + + + selectedTag: values.Sound_AudioOutputEngine + + + + + + selectedTag: values.Sound_AudioOutputEngine + selectedTag + values.Sound_AudioOutputEngine + 2 + + + 5989 + + + + value: values.Sound_Volume + + + + + + value: values.Sound_Volume + value + values.Sound_Volume + 2 + + + 5990 + + + + value: values.Sound_Volume + + + + + + value: values.Sound_Volume + value + values.Sound_Volume + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 5991 + + + + enabled: values.Advanscene_DatabasePath + + + + + + enabled: values.Advanscene_DatabasePath + enabled + values.Advanscene_DatabasePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 5992 + + + + value: values.Emulation_AdvancedBusLevelTiming + + + + + + value: values.Emulation_AdvancedBusLevelTiming + value + values.Emulation_AdvancedBusLevelTiming + 2 + + + 5993 + + + + value: values.Emulation_BIOSEmulateSWI + + + + + + value: values.Emulation_BIOSEmulateSWI + value + values.Emulation_BIOSEmulateSWI + 2 + + + 5994 + + + + value: values.Emulation_BIOSPatchDelayLoopSWI + + + + + + value: values.Emulation_BIOSPatchDelayLoopSWI + value + values.Emulation_BIOSPatchDelayLoopSWI + 2 + + + 5995 + + + + value: values.Emulation_EmulateEnsata + + + + + + value: values.Emulation_EmulateEnsata + value + values.Emulation_EmulateEnsata + 2 + + + 5996 + + + + value: values.Emulation_UseDebugConsole + + + + + + value: values.Emulation_UseDebugConsole + value + values.Emulation_UseDebugConsole + 2 + + + 5998 + + + + value: values.Emulation_FirmwareBoot + + + + + + value: values.Emulation_FirmwareBoot + value + values.Emulation_FirmwareBoot + 2 + + + 5999 + + + + value: values.Emulation_UseExternalBIOSImages + + + + + + value: values.Emulation_UseExternalBIOSImages + value + values.Emulation_UseExternalBIOSImages + 2 + + + 6000 + + + + enabled: values.Emulation_UseExternalBIOSImages + + + + + + enabled: values.Emulation_UseExternalBIOSImages + enabled + values.Emulation_UseExternalBIOSImages + + NSRaisesForNotApplicableKeys + + + 2 + + + 6001 + + + + enabled: values.Emulation_UseExternalBIOSImages + + + + + + enabled: values.Emulation_UseExternalBIOSImages + enabled + values.Emulation_UseExternalBIOSImages + + NSRaisesForNotApplicableKeys + + + 2 + + + 6004 + + + + value: values.Emulation_UseExternalFirmwareImage + + + + + + value: values.Emulation_UseExternalFirmwareImage + value + values.Emulation_UseExternalFirmwareImage + 2 + + + 6011 + + + + enabled: values.Emulation_UseExternalFirmwareImage + + + + + + enabled: values.Emulation_UseExternalFirmwareImage + enabled + values.Emulation_UseExternalFirmwareImage + + NSRaisesForNotApplicableKeys + + + 2 + + + 6012 + + + + enabled: values.Emulation_UseExternalFirmwareImage + + + + + + enabled: values.Emulation_UseExternalFirmwareImage + enabled + values.Emulation_UseExternalFirmwareImage + 2 + + + 6013 + + + + enabled2: values.Emulation_UseExternalBIOSImages + + + + + + enabled2: values.Emulation_UseExternalBIOSImages + enabled2 + values.Emulation_UseExternalBIOSImages + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6014 + + + + enabled: values.BIOS_ARM9ImagePath + + + + + + enabled: values.BIOS_ARM9ImagePath + enabled + values.BIOS_ARM9ImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6018 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6020 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6022 + + + + enabled3: values.BIOS_ARM9ImagePath + + + + + + enabled3: values.BIOS_ARM9ImagePath + enabled3 + values.BIOS_ARM9ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6024 + + + + enabled2: values.BIOS_ARM7ImagePath + + + + + + enabled2: values.BIOS_ARM7ImagePath + enabled2 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6027 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6028 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6029 + + + + enabled4: values.BIOS_ARM7ImagePath + + + + + + enabled4: values.BIOS_ARM7ImagePath + enabled4 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6030 + + + + enabled: values.Emulation_FirmwareImagePath + + + + + + enabled: values.Emulation_FirmwareImagePath + enabled + values.Emulation_FirmwareImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6034 + + + + enabled5: values.Emulation_FirmwareImagePath + + + + + + enabled5: values.Emulation_FirmwareImagePath + enabled5 + values.Emulation_FirmwareImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6037 + + + + enabled: selection.emuFlagUseExternalFirmware + + + + + + enabled: selection.emuFlagUseExternalFirmware + enabled + selection.emuFlagUseExternalFirmware + 2 + + + 6041 + + + + enabled2: selection.emuFlagUseExternalBios + + + + + + enabled2: selection.emuFlagUseExternalBios + enabled2 + selection.emuFlagUseExternalBios + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6042 + + + + enabled: values.Emulation_FirmwareImagePath + + + + + + enabled: values.Emulation_FirmwareImagePath + enabled + values.Emulation_FirmwareImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6048 + + + + enabled3: values.BIOS_ARM9ImagePath + + + + + + enabled3: values.BIOS_ARM9ImagePath + enabled3 + values.BIOS_ARM9ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6058 + + + + enabled4: values.BIOS_ARM7ImagePath + + + + + + enabled4: values.BIOS_ARM7ImagePath + enabled4 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6067 + + + + enabled5: values.Emulation_FirmwareImagePath + + + + + + enabled5: values.Emulation_FirmwareImagePath + enabled5 + values.Emulation_FirmwareImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6069 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6076 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6081 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6088 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6093 + + + + enabled: values.BIOS_ARM9ImagePath + + + + + + enabled: values.BIOS_ARM9ImagePath + enabled + values.BIOS_ARM9ImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6100 + + + + enabled2: values.BIOS_ARM7ImagePath + + + + + + enabled2: values.BIOS_ARM7ImagePath + enabled2 + values.BIOS_ARM7ImagePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6105 + + + + selectedTag: values.Render3D_RenderingEngine + + + + + + selectedTag: values.Render3D_RenderingEngine + selectedTag + values.Render3D_RenderingEngine + 2 + + + 6109 + + + + value: values.General_ExecuteROMOnLoad + + + + + + value: values.General_ExecuteROMOnLoad + value + values.General_ExecuteROMOnLoad + 2 + + + 6119 + + + + value: values.General_DoNotAskMigrate + + + + + + value: values.General_DoNotAskMigrate + value + values.General_DoNotAskMigrate + 2 + + + 6123 + + + + value: values.General_DoNotAskMigrate + + + + + + value: values.General_DoNotAskMigrate + value + values.General_DoNotAskMigrate + 2 + + + 6124 + + + + value: values.DisplayView_UseVerticalSync + + + + + + value: values.DisplayView_UseVerticalSync + value + values.DisplayView_UseVerticalSync + 2 + + + 6164 + + + + selectedTag: values.DisplayViewCombo_Orientation + + + + + + selectedTag: values.DisplayViewCombo_Orientation + selectedTag + values.DisplayViewCombo_Orientation + 2 + + + 6226 + + + + selectedTag: values.DisplayViewCombo_Order + + + + + + selectedTag: values.DisplayViewCombo_Order + selectedTag + values.DisplayViewCombo_Order + 2 + + + 6230 + + + + value: selection.buildInfoString + + + + + + value: selection.buildInfoString + value + selection.buildInfoString + 2 + + + 6231 + + + + value: selection.descriptionString + + + + + + value: selection.descriptionString + value + selection.descriptionString + 2 + + + 6232 + + + + selectVideoFilterType: + + + + 6239 + + + + troubleshootingWindowController + + + + 6442 + + + + window + + + + 6443 + + + + viewBugReport + + + + 6444 + + + + viewFinishedForm + + + + 6445 + + + + viewSupportRequest + + + + 6446 + + + + troubleshootingWindow + + + + 6449 + + + + delegate + + + + 6450 + + + + supportRequest: + + + + 6452 + + + + title: selection.goWebpageButtonTitle + + + + + + title: selection.goWebpageButtonTitle + title + selection.goWebpageButtonTitle + 2 + + + 6457 + + + + value: selection.romName + + + + + + value: selection.romName + value + selection.romName + 2 + + + 6459 + + + + value: selection.romSerial + + + + + + value: selection.romSerial + value + selection.romSerial + 2 + + + 6460 + + + + value: selection.romName + + + + + + value: selection.romName + value + selection.romName + 2 + + + 6463 + + + + value: selection.romSerial + + + + + + value: selection.romSerial + value + selection.romSerial + 2 + + + 6464 + + + + romInfoController + + + + 6467 + + + + continueToFinalForm: + + + + 6468 + + + + continueToFinalForm: + + + + 6469 + + + + copyRomInfoToTextFields: + + + + 6470 + + + + copyRomInfoToTextFields: + + + + 6471 + + + + backForm: + + + + 6472 + + + + value: selection.bugReportObservedText + + + + + + value: selection.bugReportObservedText + value + selection.bugReportObservedText + 2 + + + 6490 + + + + value: selection.bugReportExpectedText + + + + + + value: selection.bugReportExpectedText + value + selection.bugReportExpectedText + 2 + + + 6495 + + + + value: selection.supportRequestText + + + + + + value: selection.supportRequestText + value + selection.supportRequestText + 2 + + + 6500 + + + + value: selection.finalFormText + + + + + + value: selection.finalFormText + value + selection.finalFormText + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + NSRaisesForNotApplicableKeys + + + YES + + + + + + 2 + + + 6507 + + + + font: selection.aboutTextFilesFont + + + + + + font: selection.aboutTextFilesFont + font + selection.aboutTextFilesFont + 2 + + + 6589 + + + + font: selection.aboutTextFilesFont + + + + + + font: selection.aboutTextFilesFont + font + selection.aboutTextFilesFont + 2 + + + 6593 + + + + font: selection.aboutTextFilesFont + + + + + + font: selection.aboutTextFilesFont + font + selection.aboutTextFilesFont + 2 + + + 6594 + + + + font: selection.aboutTextFilesFont + + + + + + font: selection.aboutTextFilesFont + font + selection.aboutTextFilesFont + 2 + + + 6595 + + + + valuePath: selection.readMePath + + + + + + valuePath: selection.readMePath + valuePath + selection.readMePath + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + + + YES + + + + + 2 + + + 6598 + + + + valuePath: selection.licensePath + + + + + + valuePath: selection.licensePath + valuePath + selection.licensePath + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + + + YES + + + + + 2 + + + 6601 + + + + valuePath: selection.authorsPath + + + + + + valuePath: selection.authorsPath + valuePath + selection.authorsPath + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + + + YES + + + + + 2 + + + 6604 + + + + valuePath: selection.changeLogPath + + + + + + valuePath: selection.changeLogPath + valuePath + selection.changeLogPath + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEditable + + + YES + + + + + 2 + + + 6610 + + + + copyInfoToPasteboard: + + + + 6613 + + + + goToWebpage: + + + + 6614 + + + + value: selection.copyPasteHelpText + + + + + + value: selection.copyPasteHelpText + value + selection.copyPasteHelpText + + NSAllowsEditingMultipleValuesSelection + + + 2 + + + 6616 + + + + value: values.Render3D_Multisample + + + + + + value: values.Render3D_Multisample + value + values.Render3D_Multisample + 2 + + + 6625 + + + + value: values.Emulation_RigorousTiming + + + + + + value: values.Emulation_RigorousTiming + value + values.Emulation_RigorousTiming + 2 + + + 6629 + + + + value: selection.emuFlagRigorousTiming + + + + + + value: selection.emuFlagRigorousTiming + value + selection.emuFlagRigorousTiming + 2 + + + 6632 + + + + cdsCoreController + + + + 6655 + + + + cdsSoundController + + + + 6656 + + + + cheatDatabaseController + + + + 6657 + + + + cheatListController + + + + 6658 + + + + cheatWindowController + + + + 6659 + + + + cheatWindowDelegate + + + + 6660 + + + + exportRomSavePanelAccessoryView + + + + 6661 + + + + firmwarePanelController + + + + 6662 + + + + romInfoPanelController + + + + 6663 + + + + changeAudioEngine: + + + + 6680 + + + + changeAudioEngine: + + + + 6681 + + + + changeSpuAdvancedLogic: + + + + 6682 + + + + changeSpuInterpolationMode: + + + + 6683 + + + + changeSpuInterpolationMode: + + + + 6684 + + + + changeSpuInterpolationMode: + + + + 6685 + + + + changeSpuSyncMethod: + + + + 6686 + + + + changeSpuSyncMethod: + + + + 6687 + + + + changeSpuSyncMethod: + + + + 6688 + + + + changeSpuSyncMode: + + + + 6689 + + + + changeSpuSyncMode: + + + + 6690 + + + + changeVolume: + + + + 6691 + + + + writeDefaults3DRenderingSettings: + + + + 6692 + + + + writeDefaultsEmulationSettings: + + + + 6693 + + + + writeDefaultsSoundSettings: + + + + 6694 + + + + changeRomSaveType: + + + + 6695 + + + + changeRomSaveType: + + + + 6696 + + + + changeRomSaveType: + + + + 6697 + + + + changeRomSaveType: + + + + 6698 + + + + changeRomSaveType: + + + + 6699 + + + + changeRomSaveType: + + + + 6700 + + + + changeRomSaveType: + + + + 6701 + + + + changeRomSaveType: + + + + 6702 + + + + changeRomSaveType: + + + + 6703 + + + + changeRomSaveType: + + + + 6704 + + + + changeRomSaveType: + + + + 6705 + + + + changeRomSaveType: + + + + 6706 + + + + changeRomSaveType: + + + + 6707 + + + + changeRomSaveType: + + + + 6708 + + + + closeRom: + + + + 6709 + + + + exportRomSave: + + + + 6710 + + + + importRomSave: + + + + 6711 + + + + openRom: + + + + 6712 + + + + revertEmuSaveState: + + + + 6713 + + + + saveEmuSaveState: + + + + 6714 + + + + saveEmuSaveStateAs: + + + + 6715 + + + + toggleAutoFrameSkip: + + + + 6716 + + + + changeCoreEmuFlags: + + + + 6723 + + + + changeCoreEmuFlags: + + + + 6724 + + + + changeCoreEmuFlags: + + + + 6725 + + + + changeCoreEmuFlags: + + + + 6726 + + + + changeCoreEmuFlags: + + + + 6727 + + + + changeCoreEmuFlags: + + + + 6728 + + + + changeCoreEmuFlags: + + + + 6729 + + + + changeCoreEmuFlags: + + + + 6730 + + + + changeCoreEmuFlags: + + + + 6731 + + + + openEmuSaveState: + + + + 6744 + + + + changeFirmwareSettings: + + + + 6745 + + + + changeCoreSpeed: + + + + 6747 + + + + changeCoreSpeed: + + + + 6748 + + + + changeCoreSpeed: + + + + 6749 + + + + changeCoreSpeed: + + + + 6750 + + + + value: selection.currentVolumeValue + + + + + + value: selection.currentVolumeValue + value + selection.currentVolumeValue + 2 + + + 6765 + + + + value: selection.currentVolumeIcon + + + + + + value: selection.currentVolumeIcon + value + selection.currentVolumeIcon + 2 + + + 6767 + + + + value: selection.currentVolumeValue + + + + + + value: selection.currentVolumeValue + value + selection.currentVolumeValue + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + 2 + + + 6769 + + + + closeSheet: + + + + 6799 + + + + closeSheet: + + + + 6800 + + + + closeSheet: + + + + 6801 + + + + closeSheet: + + + + 6802 + + + + closeSheet: + + + + 6803 + + + + saveFileMigrationSheet + + + + 6804 + + + + saveStatePrecloseSheet + + + + 6805 + + + + emuControlController + + + + 6808 + + + + delegate + + + + 6809 + + + + selectedTag: selection.render3DRenderingEngine + + + + + + selectedTag: selection.render3DRenderingEngine + selectedTag + selection.render3DRenderingEngine + 2 + + + 6815 + + + + value: selection.render3DLineHack + + + + + + value: selection.render3DLineHack + value + selection.render3DLineHack + 2 + + + 6816 + + + + value: selection.render3DTextures + + + + + + value: selection.render3DTextures + value + selection.render3DTextures + 2 + + + 6817 + + + + value: selection.render3DHighPrecisionColorInterpolation + + + + + + value: selection.render3DHighPrecisionColorInterpolation + value + selection.render3DHighPrecisionColorInterpolation + 2 + + + 6818 + + + + value: selection.render3DEdgeMarking + + + + + + value: selection.render3DEdgeMarking + value + selection.render3DEdgeMarking + 2 + + + 6819 + + + + value: selection.render3DFog + + + + + + value: selection.render3DFog + value + selection.render3DFog + 2 + + + 6820 + + + + value: selection.render3DDepthComparisonThreshold + + + + + + value: selection.render3DDepthComparisonThreshold + value + selection.render3DDepthComparisonThreshold + 2 + + + 6821 + + + + value: selection.render3DMultisample + + + + + + value: selection.render3DMultisample + value + selection.render3DMultisample + 2 + + + 6822 + + + + selectedTag: selection.render3DThreads + + + + + + selectedTag: selection.render3DThreads + selectedTag + selection.render3DThreads + 2 + + + 6823 + + + + cdsSoundController + + + + 6824 + + + + romInfoPanelController + + + + 6825 + + + + content + + + + 6826 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6864 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6866 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6869 + + + + enabled2: selection.hasSelection + + + + + + enabled2: selection.hasSelection + enabled2 + selection.hasSelection + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6870 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6873 + + + + enabled2: values.R4Cheat_DatabasePath + + + + + + enabled2: values.R4Cheat_DatabasePath + enabled2 + values.R4Cheat_DatabasePath + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6874 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6877 + + + + enabled2: selection.isSupportedCheatType + + + + + + enabled2: selection.isSupportedCheatType + enabled2 + selection.isSupportedCheatType + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6878 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6880 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6882 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6886 + + + + enabled2: selection.hasSelection + + + + + + enabled2: selection.hasSelection + enabled2 + selection.hasSelection + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6887 + + + + enabled3: selection.isSupportedCheatType + + + + + + enabled3: selection.isSupportedCheatType + enabled3 + selection.isSupportedCheatType + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6888 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6890 + + + + enabled3: selection.currentRom + + + + + + enabled3: selection.currentRom + enabled3 + selection.currentRom + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6892 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6894 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6896 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6900 + + + + enabled2: selection.cheatSearchSearchValue + + + + + + enabled2: selection.cheatSearchSearchValue + enabled2 + selection.cheatSearchSearchValue + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSIsNotNil + + + + 2 + + + 6901 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 6902 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6906 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6907 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 6908 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6912 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6913 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 6914 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6918 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6919 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 6920 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6924 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 6925 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 6926 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6929 + + + + enabled2: selection.isRunningSearch + + + + + + enabled2: selection.isRunningSearch + enabled2 + selection.isRunningSearch + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 6930 + + + + emuController + + + + 6939 + + + + newDisplayWindow: + + + + 6940 + + + + value: selection.mainWindow.displayRotation + + + + + + value: selection.mainWindow.displayRotation + value + selection.mainWindow.displayRotation + 2 + + + 6966 + + + + value: selection.mainWindow.displayRotation + + + + + + value: selection.mainWindow.displayRotation + value + selection.mainWindow.displayRotation + 2 + + + 6967 + + + + selectedTag: selection.mainWindow.videoFilterType + + + + + + selectedTag: selection.mainWindow.videoFilterType + selectedTag + selection.mainWindow.videoFilterType + 2 + + + 6989 + + + + value: selection.mainWindow.useBilinearOutput + + + + + + value: selection.mainWindow.useBilinearOutput + value + selection.mainWindow.useBilinearOutput + 2 + + + 6990 + + + + value: selection.mainWindow.useVerticalSync + + + + + + value: selection.mainWindow.useVerticalSync + value + selection.mainWindow.useVerticalSync + 2 + + + 6991 + + + + selectedTag: selection.selectedExportRomSaveID + + + + + + selectedTag: selection.selectedExportRomSaveID + selectedTag + selection.selectedExportRomSaveID + 2 + + + 7001 + + + + emuControl + + + + 7003 + + + + inputManager + + + + 7004 + + + + inputManager + + + + 7005 + + + + toggleExecutePause: + + + + 7009 + + + + reset: + + + + 7010 + + + + copy: + + + + 7011 + + + + toggleCheats: + + + + 7012 + + + + toggleSpeedLimiter: + + + + 7013 + + + + viewInput + + + + 7108 + + + + inputPrefsView + + + + 7109 + + + + inputManager + + + + 7110 + + + + prefWindow + + + + 7111 + + + + dataSource + + + + 7164 + + + + delegate + + + + 7165 + + + + removeInput: + + + + 7167 + + + + setInputAdd: + + + + 7170 + + + + inputSettingsGPUState + + + + 7296 + + + + inputSettingsLoadStateSlot + + + + 7297 + + + + inputSettingsMicrophone + + + + 7298 + + + + inputSettingsSaveStateSlot + + + + 7299 + + + + inputSettingsTouch + + + + 7300 + + + + showSettingsSheet: + + + + 7321 + + + + closeSettingsSheet: + + + + 7322 + + + + closeSettingsSheet: + + + + 7323 + + + + closeSettingsSheet: + + + + 7324 + + + + closeSettingsSheet: + + + + 7325 + + + + closeSettingsSheet: + + + + 7326 + + + + inputSettingsController + + + + 7391 + + + + closeSettingsSheet: + + + + 7394 + + + + closeSettingsSheet: + + + + 7397 + + + + closeSettingsSheet: + + + + 7400 + + + + closeSettingsSheet: + + + + 7403 + + + + closeSettingsSheet: + + + + 7406 + + + + selectedTag: selection.intValue0 + + + + + + selectedTag: selection.intValue0 + selectedTag + selection.intValue0 + 2 + + + 7407 + + + + selectedTag: selection.intValue0 + + + + + + selectedTag: selection.intValue0 + selectedTag + selection.intValue0 + 2 + + + 7410 + + + + selectedTag: selection.intValue0 + + + + + + selectedTag: selection.intValue0 + selectedTag + selection.intValue0 + 2 + + + 7411 + + + + enabled: selection.useInputForIntCoord + + + + + + enabled: selection.useInputForIntCoord + enabled + selection.useInputForIntCoord + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7417 + + + + enabled: selection.useInputForIntCoord + + + + + + enabled: selection.useInputForIntCoord + enabled + selection.useInputForIntCoord + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7419 + + + + value: selection.useInputForIntCoord + + + + + + value: selection.useInputForIntCoord + value + selection.useInputForIntCoord + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7421 + + + + value: selection.intValue1 + + + + + + value: selection.intValue1 + value + selection.intValue1 + 2 + + + 7422 + + + + value: selection.intValue2 + + + + + + value: selection.intValue2 + value + selection.intValue2 + 2 + + + 7423 + + + + value: selection.deviceInfoSummary + + + + + + value: selection.deviceInfoSummary + value + selection.deviceInfoSummary + 2 + + + 7435 + + + + value: selection.deviceInfoSummary + + + + + + value: selection.deviceInfoSummary + value + selection.deviceInfoSummary + 2 + + + 7438 + + + + value: selection.deviceInfoSummary + + + + + + value: selection.deviceInfoSummary + value + selection.deviceInfoSummary + 2 + + + 7441 + + + + value: selection.deviceInfoSummary + + + + + + value: selection.deviceInfoSummary + value + selection.deviceInfoSummary + 2 + + + 7444 + + + + value: selection.deviceInfoSummary + + + + + + value: selection.deviceInfoSummary + value + selection.deviceInfoSummary + 2 + + + 7447 + + + + selectedTag: selection.intValue1 + + + + + + selectedTag: selection.intValue1 + selectedTag + selection.intValue1 + + NSConditionallySetsEnabled + + + 2 + + + 7448 + + + + value: selection.deviceInfoSummary + + + + + + value: selection.deviceInfoSummary + value + selection.deviceInfoSummary + 2 + + + 7453 + + + + value: selection.floatValue0 + + + + + + value: selection.floatValue0 + value + selection.floatValue0 + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + 2 + + + 7482 + + + + inputSettingsSetSpeedLimit + + + + 7484 + + + + closeSettingsSheet: + + + + 7490 + + + + closeSettingsSheet: + + + + 7491 + + + + changeSpeed: + + + + 7492 + + + + value: selection.floatValue0 + + + + + + value: selection.floatValue0 + value + selection.floatValue0 + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSContinuouslyUpdatesValue + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + + 2 + + + 7495 + + + + enabled: selection.IsDefaultType + + + + + + enabled: selection.IsDefaultType + enabled + selection.IsDefaultType + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7674 + + + + enabled: selection.IsDefaultType + + + + + + enabled: selection.IsDefaultType + enabled + selection.IsDefaultType + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7676 + + + + enabled: selection.IsDefaultType + + + + + + enabled: selection.IsDefaultType + enabled + selection.IsDefaultType + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7678 + + + + enabled: selection.IsDefaultType + + + + + + enabled: selection.IsDefaultType + enabled + selection.IsDefaultType + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7682 + + + + inputProfileController + + + + 7685 + + + + inputProfileMenu + + + + 7686 + + + + inputProfileSheet + + + + 7687 + + + + profileApply: + + + + 7688 + + + + profileRename: + + + + 7689 + + + + profileSave: + + + + 7690 + + + + profileView: + + + + 7691 + + + + profileDelete: + + + + 7692 + + + + profileNew: + + + + 7693 + + + + closeProfileSheet: + + + + 7696 + + + + profileDelete: + + + + 7697 + + + + profileApply: + + + + 7698 + + + + inputProfileNextButton + + + + 7700 + + + + inputProfilePreviousButton + + + + 7701 + + + + profileSelect: + + + + 7702 + + + + profileSelect: + + + + 7703 + + + + enabled: selection.IsDefaultType + + + + + + enabled: selection.IsDefaultType + enabled + selection.IsDefaultType + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7705 + + + + delegate + + + + 7706 + + + + enabled: selection.IsDefaultType + + + + + + enabled: selection.IsDefaultType + enabled + selection.IsDefaultType + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 7719 + + + + delegate + + + + 7720 + + + + inputProfileRenameSheet + + + + 7731 + + + + closeProfileRenameSheet: + + + + 7732 + + + + inputPrefOutlineView + + + + 7734 + + + + inputManager + + + + 7741 + + + + dataSource + + + + 7742 + + + + delegate + + + + 7743 + + + + profileOutlineView + + + + 7744 + + + + value: selection.Name + + + + + + value: selection.Name + value + selection.Name + + NSContinuouslyUpdatesValue + + + 2 + + + 7749 + + + + value: selection.Name + + + + + + value: selection.Name + value + selection.Name + + NSContinuouslyUpdatesValue + + + 2 + + + 7750 + + + + enabled: selection.Name + + + + + + enabled: selection.Name + enabled + selection.Name + + NSValueTransformerName + NSIsNotNil + + 2 + + + 7752 + + + + enabled: selection.Name + + + + + + enabled: selection.Name + enabled + selection.Name + + NSValueTransformerName + NSIsNotNil + + 2 + + + 7754 + + + + value: selection.object1 + + + + + + value: selection.object1 + value + selection.object1 + 2 + + + 7755 + + + + value: selection.floatValue0 + + + + + + value: selection.floatValue0 + value + selection.floatValue0 + 2 + + + 7763 + + + + value: selection.floatValue0 + + + + + + value: selection.floatValue0 + value + selection.floatValue0 + 2 + + + 7764 + + + + audioFileChoose: + + + + 7769 + + + + audioFileChooseNone: + + + + 7770 + + + + delegate + + + + 7795 + + + + value: values.DisplayViewCombo_Gap + + + + + + value: values.DisplayViewCombo_Gap + value + values.DisplayViewCombo_Gap + 2 + + + 7814 + + + + value: values.DisplayViewCombo_Gap + + + + + + value: values.DisplayViewCombo_Gap + value + values.DisplayViewCombo_Gap + + NSContinuouslyUpdatesValue + + + 2 + + + 7816 + + + + value: selection.mainWindow.displayGap + + + + + + value: selection.mainWindow.displayGap + value + selection.mainWindow.displayGap + + NSContinuouslyUpdatesValue + + + 2 + + + 7842 + + + + makeKeyAndOrderFront: + + + + 7850 + + + + value: selection.mainWindow.displayGap + + + + + + value: selection.mainWindow.displayGap + value + selection.mainWindow.displayGap + 2 + + + 7853 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 7885 + + + + makeKeyAndOrderFront: + + + + 7887 + + + + slot1Eject: + + + + 7888 + + + + reset: + + + + 7889 + + + + value: selection.slot1StatusText + + + + + + value: selection.slot1StatusText + value + selection.slot1StatusText + 2 + + + 7892 + + + + selectedTag: selection.slot1DeviceType + + + + + + selectedTag: selection.slot1DeviceType + selectedTag + selection.slot1DeviceType + 2 + + + 7896 + + + + chooseSlot1R4Directory: + + + + 7897 + + + + slot1ManagerWindow + + + + 7898 + + + + value: selection.romNameAndSerialInfo + + + + + + value: selection.romNameAndSerialInfo + value + selection.romNameAndSerialInfo + 2 + + + 7975 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + 2 + + + 7976 + + + + animate: selection.isRomLoading + + + + + + animate: selection.isRomLoading + animate + selection.isRomLoading + 2 + + + 7979 + + + + loadRecentRom: + + + + 7983 + + + + clearRecentDocuments: + + + + 7999 + + + + loadRecentRom: + + + + 8000 + + + + closeRom: + + + + 8001 + + + + openRom: + + + + 8002 + + + + enabled: selection.isRomLoading + + + + + + enabled: selection.isRomLoading + enabled + selection.isRomLoading + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 8011 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + 2 + + + 8017 + + + + value: selection.romNameAndSerialInfo + + + + + + value: selection.romNameAndSerialInfo + value + selection.romNameAndSerialInfo + 2 + + + 8018 + + + + animate: selection.isRomLoading + + + + + + animate: selection.isRomLoading + animate + selection.isRomLoading + 2 + + + 8019 + + + + enabled: selection.isRomLoading + + + + + + enabled: selection.isRomLoading + enabled + selection.isRomLoading + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 8020 + + + + enabled: selection.isRomLoading + + + + + + enabled: selection.isRomLoading + enabled + selection.isRomLoading + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 8026 + + + + value: selection.romNameAndSerialInfo + + + + + + value: selection.romNameAndSerialInfo + value + selection.romNameAndSerialInfo + 2 + + + 8027 + + + + animate: selection.isRomLoading + + + + + + animate: selection.isRomLoading + animate + selection.isRomLoading + 2 + + + 8028 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + 2 + + + 8029 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + 2 + + + 8035 + + + + value: selection.romNameAndSerialInfo + + + + + + value: selection.romNameAndSerialInfo + value + selection.romNameAndSerialInfo + 2 + + + 8036 + + + + animate: selection.isRomLoading + + + + + + animate: selection.isRomLoading + animate + selection.isRomLoading + 2 + + + 8037 + + + + enabled: selection.isRomLoading + + + + + + enabled: selection.isRomLoading + enabled + selection.isRomLoading + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 8038 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 8042 + + + + value: selection.maxJITBlockSize + + + + + + value: selection.maxJITBlockSize + value + selection.maxJITBlockSize + 2 + + + 8062 + + + + value: selection.maxJITBlockSize + + + + + + value: selection.maxJITBlockSize + value + selection.maxJITBlockSize + 2 + + + 8063 + + + + value: values.Emulation_MaxJITBlockSize + + + + + + value: values.Emulation_MaxJITBlockSize + value + values.Emulation_MaxJITBlockSize + 2 + + + 8064 + + + + value: values.Emulation_MaxJITBlockSize + + + + + + value: values.Emulation_MaxJITBlockSize + value + values.Emulation_MaxJITBlockSize + 2 + + + 8065 + + + + enabled: isAppRunningOnIntel + + + + + + enabled: isAppRunningOnIntel + enabled + isAppRunningOnIntel + 2 + + + 8067 + + + + enabled: isAppRunningOnIntel + + + + + + enabled: isAppRunningOnIntel + enabled + isAppRunningOnIntel + 2 + + + 8068 + + + + enabled: isAppRunningOnIntel + + + + + + enabled: isAppRunningOnIntel + enabled + isAppRunningOnIntel + 2 + + + 8069 + + + + enabled: isAppRunningOnIntel + + + + + + enabled: isAppRunningOnIntel + enabled + isAppRunningOnIntel + 2 + + + 8070 + + + + enabled: isAppRunningOnIntel + + + + + + enabled: isAppRunningOnIntel + enabled + isAppRunningOnIntel + 2 + + + 8071 + + + + selectedTag: selection.cpuEmulationEngine + + + + + + selectedTag: selection.cpuEmulationEngine + selectedTag + selection.cpuEmulationEngine + + NSConditionallySetsEnabled + + + 2 + + + 8072 + + + + enabled: isAppRunningOnIntel + + + + + + enabled: isAppRunningOnIntel + enabled + isAppRunningOnIntel + 2 + + + 8073 + + + + selectedTag: values.Emulation_CPUEmulationEngine + + + + + + selectedTag: values.Emulation_CPUEmulationEngine + selectedTag + values.Emulation_CPUEmulationEngine + + NSConditionallySetsEnabled + + + 2 + + + 8074 + + + + selectAll: + + + + 8085 + + + + selectNone: + + + + 8086 + + + + handleChoice: + + + + 8087 + + + + handleChoice: + + + + 8088 + + + + handleChoice: + + + + 8089 + + + + window + + + + 8090 + + + + delegate + + + + 8091 + + + + enabled: filesPresent + + + + + + enabled: filesPresent + enabled + filesPresent + 2 + + + 8094 + + + + enabled: filesPresent + + + + + + enabled: filesPresent + enabled + filesPresent + 2 + + + 8095 + + + + fileListController + + + + 8097 + + + + migrationDelegate + + + + 8098 + + + + updateAndShowWindow: + + + + 8133 + + + + makeKeyAndOrderFront: + + + + 8163 + + + + revealGameDataFolderInFinder: + + + + 8167 + + + + revealRomInFinder: + + + + 8168 + + + + value: selection.cdsGPU.layerMainGPU + + + + + + value: selection.cdsGPU.layerMainGPU + value + selection.cdsGPU.layerMainGPU + 2 + + + 8169 + + + + value: selection.cdsGPU.layerMainBG0 + + + + + + value: selection.cdsGPU.layerMainBG0 + value + selection.cdsGPU.layerMainBG0 + 2 + + + 8170 + + + + value: selection.cdsGPU.layerMainBG1 + + + + + + value: selection.cdsGPU.layerMainBG1 + value + selection.cdsGPU.layerMainBG1 + 2 + + + 8171 + + + + value: selection.cdsGPU.layerMainBG2 + + + + + + value: selection.cdsGPU.layerMainBG2 + value + selection.cdsGPU.layerMainBG2 + 2 + + + 8172 + + + + value: selection.cdsGPU.layerMainBG3 + + + + + + value: selection.cdsGPU.layerMainBG3 + value + selection.cdsGPU.layerMainBG3 + 2 + + + 8173 + + + + value: selection.cdsGPU.layerMainOBJ + + + + + + value: selection.cdsGPU.layerMainOBJ + value + selection.cdsGPU.layerMainOBJ + 2 + + + 8174 + + + + value: selection.cdsGPU.layerSubGPU + + + + + + value: selection.cdsGPU.layerSubGPU + value + selection.cdsGPU.layerSubGPU + 2 + + + 8175 + + + + value: selection.cdsGPU.layerSubBG0 + + + + + + value: selection.cdsGPU.layerSubBG0 + value + selection.cdsGPU.layerSubBG0 + 2 + + + 8176 + + + + value: selection.cdsGPU.layerSubBG1 + + + + + + value: selection.cdsGPU.layerSubBG1 + value + selection.cdsGPU.layerSubBG1 + 2 + + + 8177 + + + + value: selection.cdsGPU.layerSubBG2 + + + + + + value: selection.cdsGPU.layerSubBG2 + value + selection.cdsGPU.layerSubBG2 + 2 + + + 8178 + + + + value: selection.cdsGPU.layerSubBG3 + + + + + + value: selection.cdsGPU.layerSubBG3 + value + selection.cdsGPU.layerSubBG3 + 2 + + + 8179 + + + + value: selection.cdsGPU.layerSubOBJ + + + + + + value: selection.cdsGPU.layerSubOBJ + value + selection.cdsGPU.layerSubOBJ + 2 + + + 8180 + + + + value: selection.render3DDepthComparisonThreshold + + + + + + value: selection.render3DDepthComparisonThreshold + value + selection.render3DDepthComparisonThreshold + 2 + + + 8193 + + + + value: values.Render3D_DepthComparisonThreshold + + + + + + value: values.Render3D_DepthComparisonThreshold + value + values.Render3D_DepthComparisonThreshold + 2 + + + 8198 + + + + value: values.EmulationSlot1_R4StoragePath + + + + + + value: values.EmulationSlot1_R4StoragePath + value + values.EmulationSlot1_R4StoragePath + 2 + + + 8199 + + + + toolTip: values.EmulationSlot1_R4StoragePath + + + + + + toolTip: values.EmulationSlot1_R4StoragePath + toolTip + values.EmulationSlot1_R4StoragePath + 2 + + + 8200 + + + + changeDisplayMode: + + + + 8204 + + + + changeDisplayMode: + + + + 8205 + + + + changeDisplayMode: + + + + 8206 + + + + runToolbarCustomizationPalette: + + + + 8208 + + + + toggleToolbarShown: + + + + 8209 + + + + changeDisplayGap: + + + + 8210 + + + + changeDisplayGap: + + + + 8211 + + + + changeDisplayGap: + + + + 8212 + + + + changeDisplayGap: + + + + 8213 + + + + changeDisplayGap: + + + + 8214 + + + + changeDisplayGap: + + + + 8215 + + + + changeDisplayGap: + + + + 8216 + + + + changeDisplayOrder: + + + + 8217 + + + + changeDisplayOrder: + + + + 8218 + + + + changeDisplayOrientation: + + + + 8219 + + + + changeDisplayOrientation: + + + + 8220 + + + + changeScale: + + + + 8221 + + + + changeScale: + + + + 8222 + + + + changeScale: + + + + 8223 + + + + changeScale: + + + + 8224 + + + + changeScale: + + + + 8225 + + + + changeRotation: + + + + 8226 + + + + changeRotation: + + + + 8227 + + + + changeRotation: + + + + 8228 + + + + changeRotation: + + + + 8229 + + + + changeRotationRelative: + + + + 8230 + + + + changeRotationRelative: + + + + 8231 + + + + changeRotation: + + + + 8232 + + + + changeRotation: + + + + 8233 + + + + toggleStatusBar: + + + + 8234 + + + + toggleKeepMinDisplaySizeAtNormal: + + + + 8235 + + + + writeDefaultsDisplayGap: + + + + 8236 + + + + writeDefaultsDisplayRotation: + + + + 8237 + + + + writeDefaultsDisplayVideoSettings: + + + + 8238 + + + + writeDefaultsHUDSettings: + + + + 8239 + + + + performClose: + + + + 8240 + + + + saveScreenshotAs: + + + + 8241 + + + + changeCoreSpeed: + + + + 8242 + + + + makeKeyAndOrderFront: + + + + 8250 + + + + toggleVerticalSync: + + + + 8274 + + + + toggleBilinearFilteredOutput: + + + + 8275 + + + + changeVideoFilter: + + + + 8276 + + + + changeVideoFilter: + + + + 8277 + + + + changeVideoFilter: + + + + 8278 + + + + changeVideoFilter: + + + + 8279 + + + + changeVideoFilter: + + + + 8280 + + + + changeVideoFilter: + + + + 8281 + + + + changeVideoFilter: + + + + 8282 + + + + changeVideoFilter: + + + + 8283 + + + + changeVideoFilter: + + + + 8284 + + + + changeVideoFilter: + + + + 8285 + + + + changeVideoFilter: + + + + 8286 + + + + changeVideoFilter: + + + + 8287 + + + + changeVideoFilter: + + + + 8288 + + + + changeVideoFilter: + + + + 8289 + + + + changeVideoFilter: + + + + 8290 + + + + changeVideoFilter: + + + + 8291 + + + + changeVideoFilter: + + + + 8292 + + + + changeVideoFilter: + + + + 8293 + + + + changeVideoFilter: + + + + 8294 + + + + toggleFullScreenDisplay: + + + + 8297 + + + + value: selection.gameDeveloperWithCode + + + + + + value: selection.gameDeveloperWithCode + value + selection.gameDeveloperWithCode + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + + + YES + + + + + 2 + + + 8299 + + + + value: values.General_WillRestoreDisplayWindows + + + + + + value: values.General_WillRestoreDisplayWindows + value + values.General_WillRestoreDisplayWindows + 2 + + + 8306 + + + + enabled: values.General_AutoloadROMSelectedPath + + + + + + enabled: values.General_AutoloadROMSelectedPath + enabled + values.General_AutoloadROMSelectedPath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 8313 + + + + title: selection.AutoloadRomName + + + + + + title: selection.AutoloadRomName + title + selection.AutoloadRomName + 2 + + + 8315 + + + + chooseRomForAutoload: + + + + 8317 + + + + selectedTag: values.General_AutoloadROMOption + + + + + + selectedTag: values.General_AutoloadROMOption + selectedTag + values.General_AutoloadROMOption + + NSValidatesImmediately + + + 2 + + + 8318 + + + + selectedTag: values.DisplayView_Size + + + + + + selectedTag: values.DisplayView_Size + selectedTag + values.DisplayView_Size + + NSValidatesImmediately + + + 2 + + + 8319 + + + + selectedTag: values.DisplayView_Mode + + + + + + selectedTag: values.DisplayView_Mode + selectedTag + values.DisplayView_Mode + + NSValidatesImmediately + + + 2 + + + 8320 + + + + value: values.General_StreamLoadRomData + + + + + + value: values.General_StreamLoadRomData + value + values.General_StreamLoadRomData + 2 + + + 8328 + + + + cdsCoreController + + + + 8329 + + + + emuControlController + + + + 8330 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 72 + + + + + 124 + + + YES + + + + + + 79 + + + + + 112 + + + + + 74 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + + + + + + + + + + + + + + + + + 297 + + + + + 298 + + + + + 494 + + + App Delegate + + + 534 + + + + + 535 + + + + + 538 + + + YES + + + + + + 539 + + + YES + + + + + 541 + + + YES + + + + + + 542 + + + YES + + + + + 575 + + + YES + + + + + + 576 + + + YES + + + + + + + + + + + + + + + + + + 578 + + + + + 594 + + + + + 596 + + + + + 607 + + + YES + + + + + + 627 + + + YES + + + + + + + 628 + + + YES + + + + + 629 + + + YES + + + + + + + + + + + + 634 + + + + + 635 + + + + + 714 + + + YES + + + + + + + + + + + + + + Cheat Search Drawer Content View + + + 715 + + + Cheat Search Drawer + + + 783 + + + YES + + + + + + 784 + + + YES + + + + + + + + + + + + + + 785 + + + + + 787 + + + YES + + + + + + 788 + + + YES + + + + + + + + + + 789 + + + + + 794 + + + YES + + + + + + 795 + + + YES + + + + + + + + + + + + + + + 796 + + + YES + + + + + + 797 + + + YES + + + + + + + + + 823 + + + YES + + + + + + 824 + + + + + 825 + + + YES + + + + + + 826 + + + + + 827 + + + YES + + + + + + 828 + + + + + 829 + + + YES + + + + + + 830 + + + + + 831 + + + YES + + + + + + 832 + + + + + 833 + + + YES + + + + + + 834 + + + + + 835 + + + YES + + + + + + 836 + + + + + 843 + + + YES + + + + + + 844 + + + + + 845 + + + YES + + + + + + 846 + + + + + 850 + + + + + 855 + + + + + 861 + + + YES + + + + + + 862 + + + YES + + + + + + + + + + + 865 + + + YES + + + + + + 866 + + + + + 872 + + + YES + + + + + + + + + + + + + 875 + + + YES + + + + + + + + + + + + + + + + + 876 + + + YES + + + + + + + + + + + + + + + + + + + + + 877 + + + YES + + + + + + + + + + + + + 878 + + + YES + + + + + + + + + 879 + + + YES + + + + + + 880 + + + + + 883 + + + YES + + + + + + 884 + + + + + 885 + + + YES + + + + + + 886 + + + + + 887 + + + YES + + + + + + 888 + + + + + 889 + + + YES + + + + + + 890 + + + + + 897 + + + YES + + + + + + 898 + + + + + 899 + + + YES + + + + + + 900 + + + + + 901 + + + YES + + + + + + 902 + + + + + 903 + + + YES + + + + + + 904 + + + + + 905 + + + YES + + + + + + 906 + + + + + 907 + + + YES + + + + + + 908 + + + + + 909 + + + YES + + + + + + 910 + + + + + 911 + + + YES + + + + + + 912 + + + + + 913 + + + YES + + + + + + 914 + + + YES + + + + + 924 + + + YES + + + + + + 925 + + + + + 926 + + + YES + + + + + + 927 + + + + + 928 + + + YES + + + + + + 929 + + + + + 930 + + + YES + + + + + + 931 + + + + + 932 + + + YES + + + + + + 933 + + + + + 934 + + + YES + + + + + + 935 + + + + + 936 + + + YES + + + + + + 937 + + + + + 938 + + + YES + + + + + + 939 + + + + + 940 + + + YES + + + + + + 941 + + + + + 942 + + + YES + + + + + + 943 + + + + + 944 + + + YES + + + + + + 945 + + + + + 946 + + + YES + + + + + + 947 + + + + + 948 + + + YES + + + + + + 951 + + + + + 949 + + + YES + + + + + + 950 + + + + + 952 + + + YES + + + + + + 953 + + + YES + + + + + + 954 + + + + + 955 + + + + + 956 + + + YES + + + + + + 957 + + + YES + + + + + + 958 + + + + + 959 + + + + + 960 + + + YES + + + + + + 961 + + + YES + + + + + + 962 + + + + + 963 + + + + + 964 + + + YES + + + + + + 967 + + + + + 965 + + + YES + + + + + + 966 + + + + + 968 + + + YES + + + + + + 969 + + + YES + + + + + + 970 + + + + + 971 + + + + + 983 + + + YES + + + + + + 984 + + + YES + + + + + + + + + + 987 + + + + + 989 + + + + + 990 + + + + + 991 + + + + + 993 + + + + + 998 + + + YES + + + + + + 999 + + + YES + + + + + + + + + + + + + + + + 1000 + + + YES + + + + + + 1001 + + + + + 1002 + + + YES + + + + + + 1003 + + + + + 1004 + + + YES + + + + + + 1005 + + + + + 1006 + + + YES + + + + + + 1007 + + + + + 1008 + + + YES + + + + + + 1009 + + + + + 1010 + + + YES + + + + + + 1011 + + + + + 1012 + + + YES + + + + + + 1013 + + + + + 1016 + + + YES + + + + + + 1017 + + + + + 1020 + + + YES + + + + + + 1021 + + + + + 1024 + + + YES + + + + + + 1025 + + + YES + + + + + + 1034 + + + YES + + + + + + 1035 + + + + + 1036 + + + YES + + + + + + 1037 + + + + + 1038 + + + YES + + + + + + 1039 + + + + + 1040 + + + YES + + + + + + 1041 + + + + + 1113 + + + + + 1114 + + + + + 1115 + + + + + 1118 + + + + + 1119 + + + + + 1120 + + + + + 1298 + + + YES + + + + + + + General Preferences View + + + 1538 + + + YES + + + + + + + + + + 1299 + + + YES + + + + + + 1300 + + + + + 1541 + + + YES + + + + + + 1542 + + + YES + + + + + + 1543 + + + YES + + + + + + + + + + 1544 + + + + + 1545 + + + + + 1584 + + + YES + + + + Display Preferences View + + + 1615 + + + YES + + + + + + + + 1616 + + + YES + + + + + + 1619 + + + YES + + + + + + + 1620 + + + YES + + + + + + 1621 + + + YES + + + + + + + + + + + 1626 + + + YES + + + + + + 1627 + + + YES + + + + + + 1628 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + 1629 + + + + + 1630 + + + + + 1631 + + + + + 1632 + + + YES + + + + + + 1633 + + + + + 1634 + + + YES + + + + + + 1635 + + + + + 1636 + + + + + 1637 + + + + + 1638 + + + + + 1639 + + + + + 1640 + + + + + 1641 + + + + + 1642 + + + + + 1643 + + + + + 1644 + + + + + 1645 + + + + + 1646 + + + + + 1647 + + + + + 1648 + + + + + 1649 + + + + + 1650 + + + YES + + + + + + 1651 + + + + + 1679 + + + + + 1680 + + + + + 1681 + + + + + 1682 + + + + + 1721 + + + CocoaDS Core Controller + + + 1736 + + + + + 1855 + + + + + 1856 + + + YES + + + + + + 1857 + + + YES + + + + + + + + + + + + + + 1858 + + + YES + + + + + + 1859 + + + + + 1976 + + + YES + + + + + + 1977 + + + + + 1978 + + + YES + + + + + + 1979 + + + + + 1980 + + + YES + + + + + + 1981 + + + + + 1982 + + + YES + + + + + + 1983 + + + + + 1986 + + + + + 1987 + + + YES + + + + + + 1988 + + + YES + + + + + + 1998 + + + YES + + + + + + 1999 + + + + + 2000 + + + + + 2095 + + + + + 2098 + + + + + 2154 + + + YES + + + + + + 2155 + + + + + 2246 + + + + + 2248 + + + YES + + + + + + + + + Sound Preferences View + + + 2250 + + + YES + + + + + + + + 2253 + + + YES + + + + + + 2254 + + + + + 2257 + + + YES + + + + + + 2258 + + + YES + + + + + + 2262 + + + + + 2265 + + + YES + + + + + + 2266 + + + + + 2327 + + + YES + + + + + + 2328 + + + YES + + + + + + + + + 2329 + + + + + 2330 + + + + + 2331 + + + + + 2332 + + + + + 2339 + + + YES + + + + Emulation Preferences View + + + 2340 + + + + + 2382 + + + YES + + + + + + 2383 + + + YES + + + + + + + + + + + + + + + + + + + + 2384 + + + + + 2385 + + + + + 2386 + + + + + 2387 + + + + + 2388 + + + + + 2389 + + + + + 2390 + + + + + 2391 + + + + + 2392 + + + + + 2393 + + + + + 2394 + + + + + 2395 + + + + + 2396 + + + + + 2397 + + + + + 2398 + + + + + 2399 + + + + + 2427 + + + YES + + + + + + + 2428 + + + YES + + + + + + 2429 + + + YES + + + + + + 2430 + + + + + 2431 + + + YES + + + + + + 2432 + + + YES + + + + + + 2433 + + + YES + + + + + + + + 2434 + + + + + 2435 + + + + + 2436 + + + + + 2437 + + + YES + + + + + + + + 2438 + + + + + 2439 + + + + + 2440 + + + + + 2473 + + + + + 2482 + + + + + 2483 + + + + + 2518 + + + YES + + + + + + 2519 + + + + + 608 + + + YES + + + + + + + + 2556 + + + + + 2609 + + + + + 2610 + + + + + 2653 + + + ROM Info Panel Controller + + + 2789 + + + YES + + + + + + 2790 + + + YES + + + + + + + + + + + + + + 2793 + + + YES + + + + + + 2794 + + + + + 2799 + + + YES + + + + + + 2800 + + + + + 2803 + + + YES + + + + + + 2804 + + + + + 2807 + + + YES + + + + + + 2808 + + + + + 2809 + + + YES + + + + + + 2810 + + + + + 2811 + + + YES + + + + + + 2812 + + + + + 2813 + + + YES + + + + + + 2814 + + + + + 2815 + + + YES + + + + + + 2816 + + + YES + + + + + + 2817 + + + YES + + + + + + 2818 + + + + + 2819 + + + + + 2820 + + + + + 2847 + + + YES + + + + + + 2848 + + + YES + + + + + + + + + 2863 + + + YES + + + + + + 2864 + + + + + 2865 + + + YES + + + + + + + + + 2866 + + + + + 2867 + + + + + 2868 + + + YES + + + + + + + + + + 2869 + + + + + 2870 + + + YES + + + + + + 2871 + + + YES + + + + + + 2872 + + + + + 2873 + + + + + 2874 + + + YES + + + + + + 2876 + + + YES + + + + + + 2877 + + + + + 2878 + + + File Migration Array Controller + + + 2894 + + + YES + + + + + + 2895 + + + YES + + + + + + 2896 + + + YES + + + + + + 2897 + + + YES + + + + + + 2900 + + + + + 2901 + + + + + 2902 + + + + + 2903 + + + + + 2954 + + + YES + + + + + + 2955 + + + + + 3015 + + + YES + + + + + + 3042 + + + + + 3063 + + + YES + + + + + + + 3059 + + + YES + + + + + + 3060 + + + + + 3061 + + + YES + + + + + + 3062 + + + + + 2875 + + + + + 3146 + + + + + 3148 + + + Firmware Panel Controller + + + 3204 + + + YES + + + + + + 3205 + + + YES + + + + + + + + + + + + + 3206 + + + + + 3207 + + + + + 3208 + + + + + 3209 + + + + + 3210 + + + + + 3211 + + + + + 3213 + + + + + 3214 + + + + + 3456 + + + YES + + + + + + 3457 + + + YES + + + + + + + + + + 3458 + + + YES + + + + + + 3459 + + + YES + + + + + + 3460 + + + YES + + + + + + 3461 + + + YES + + + + + + 3462 + + + + + 3463 + + + + + 3464 + + + + + 3465 + + + + + 3471 + + + YES + + + + + + 3472 + + + + + 3480 + + + YES + + + + + + 3481 + + + + + 3482 + + + + + 3488 + + + YES + + + + + + 3489 + + + YES + + + + + + + + + + + + + + 3496 + + + YES + + + + + + + + + 3497 + + + + + 3498 + + + + + 3499 + + + YES + + + + + + + + 3501 + + + YES + + + + + + 3507 + + + YES + + + + + + 3508 + + + + + 3509 + + + + + 3516 + + + YES + + + + + + 3517 + + + + + 3520 + + + Preferences Window Controller + + + 3521 + + + + + 3522 + + + + + 3523 + + + + + 3644 + + + + + 3689 + + + YES + + + + + + 3690 + + + + + 3709 + + + + + 3712 + + + YES + + + + + + 3713 + + + YES + + + + + + + + + + + 3716 + + + YES + + + + + + 3717 + + + YES + + + + + + + 3718 + + + YES + + + + + + + + + 3719 + + + + + 3720 + + + + + 3721 + + + + + 3722 + + + YES + + + + + + + + 3723 + + + + + 3724 + + + + + 3725 + + + + + 3732 + + + + + 3733 + + + YES + + + + + + 3714 + + + YES + + + + + + 3715 + + + + + 3747 + + + YES + + + + + + + + 3736 + + + YES + + + + + + 3742 + + + + + 3737 + + + YES + + + + + + 3740 + + + YES + + + + + + 3741 + + + + + 3738 + + + YES + + + + + + 3739 + + + + + 3748 + + + YES + + + + + + 3749 + + + + + 3751 + + + + + 3752 + + + + + 3784 + + + YES + + + + + + 3787 + + + YES + + + + + + 3788 + + + YES + + + + + + + + + + + + 3692 + + + YES + + + + + + 3693 + + + + + 3648 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + 3667 + + + + + 3666 + + + + + 3665 + + + + + 3664 + + + + + 3663 + + + + + 3662 + + + + + 3661 + + + + + 3660 + + + + + 3659 + + + + + 3658 + + + + + 3657 + + + + + 3656 + + + + + 3655 + + + + + 3654 + + + + + 3653 + + + + + 3652 + + + + + 3651 + + + + + 3650 + + + + + 3649 + + + + + 3789 + + + + + 3790 + + + YES + + + + + + 3791 + + + YES + + + + + + + + + + + 3786 + + + YES + + + + + + + + + + + 3775 + + + YES + + + + + + 3773 + + + YES + + + + + + 3771 + + + YES + + + + + + 3779 + + + YES + + + + Depth Comparison Threshold Text Field + + + 3782 + + + YES + + + + + + 3783 + + + + + 3780 + + + YES + + + + + + 3781 + + + + + 3772 + + + + + 3774 + + + + + 3776 + + + + + 3793 + + + YES + + + + + + 3794 + + + + + 3798 + + + YES + + + + + + + + + + + 3803 + + + YES + + + + + + 3802 + + + YES + + + + + + 3801 + + + YES + + + + + + 3800 + + + YES + + + + + + 3799 + + + YES + + + + + + 3811 + + + + + 3809 + + + YES + + + + + + 3810 + + + + + 3808 + + + + + 3807 + + + + + 3806 + + + + + 3837 + + + YES + + + + + + 3838 + + + YES + + + + + + + + + 3839 + + + + + 3840 + + + + + 3841 + + + + + 3843 + + + YES + + + + + + 3844 + + + YES + + + + + + 3845 + + + YES + + + + + + + + 3846 + + + + + 3847 + + + + + 3849 + + + YES + + + + + + 3850 + + + + + 3878 + + + YES + + + + + + 3879 + + + YES + + + + + + + + + + + 3880 + + + + + 3881 + + + + + 3882 + + + + + 3883 + + + + + 3884 + + + + + 3885 + + + YES + + + + + + + 3886 + + + YES + + + + + + 3887 + + + + + 3888 + + + YES + + + + + + 3889 + + + YES + + + + + + 3890 + + + YES + + + + + + + + + + 3894 + + + + + 3893 + + + + + 3892 + + + + + 3891 + + + + + 3896 + + + YES + + + + + + 3897 + + + + + 3899 + + + YES + + + + + + + 3900 + + + YES + + + + + + 3901 + + + + + 3935 + + + YES + + + + + + 3936 + + + YES + + + + + + + + 3937 + + + + + 3938 + + + + + 3939 + + + + + 3959 + + + CocoaDS Sound Controller + + + 3965 + + + YES + + + + + + + + + 3966 + + + + + 3967 + + + + + 3968 + + + + + 3969 + + + + + 4024 + + + YES + + + + + + 4001 + + + YES + + + + + + + + 4004 + + + + + 4003 + + + + + 4002 + + + + + 4027 + + + YES + + + + + + 4028 + + + YES + + + + + + + + + + + 4029 + + + YES + + + + + + + 4030 + + + YES + + + + + + 4031 + + + + + 4032 + + + YES + + + + + + + + 4033 + + + YES + + + + + + 4034 + + + + + 4035 + + + YES + + + + + + 4036 + + + + + 4037 + + + YES + + + + + + 4038 + + + + + 4039 + + + YES + + + + + + + + + 4040 + + + YES + + + + + + 4041 + + + + + 4043 + + + YES + + + + + + 4044 + + + + + 4045 + + + YES + + + + + + 4046 + + + + + 4047 + + + YES + + + + + + + 4048 + + + YES + + + + + + 4049 + + + + + 4050 + + + YES + + + + + + 4051 + + + + + 4053 + + + YES + + + + + + + + + + + + + + + Internal Firmware Drawer Content View + + + 4054 + + + Internal Firmware Drawer + + + 4062 + + + + + 4059 + + + YES + + + + + + 4060 + + + + + 4066 + + + YES + + + + + + 4067 + + + + + 4069 + + + YES + + + + + + 4070 + + + YES + + + + + + 4071 + + + YES + + + + + + 4072 + + + YES + + + + + + 4073 + + + YES + + + + + + 4074 + + + YES + + + + + + 4075 + + + YES + + + + + + 4076 + + + YES + + + + + + 4078 + + + YES + + + + + + 4079 + + + YES + + + + + + 4080 + + + YES + + + + + + 4081 + + + YES + + + + + + 4082 + + + YES + + + + + + + + + + + + + + + + + + + + + 4083 + + + + + 4084 + + + + + 4085 + + + + + 4086 + + + + + 4087 + + + + + 4088 + + + + + 4089 + + + + + 4090 + + + + + 4091 + + + + + 4092 + + + + + 4093 + + + + + 4094 + + + + + 4095 + + + + + 4096 + + + + + 4097 + + + + + 4098 + + + + + 4099 + + + YES + + + + + + 4100 + + + YES + + + + + + + + + + + 4101 + + + + + 4102 + + + + + 4103 + + + + + 4104 + + + + + 4105 + + + + + 4106 + + + + + 4107 + + + + + 4109 + + + + + 4110 + + + + + 4111 + + + + + 4112 + + + + + 4113 + + + + + 4114 + + + + + 4115 + + + + + 4116 + + + + + 4179 + + + YES + + + + + + 4180 + + + + + 4181 + + + YES + + + + + + 4182 + + + YES + + + + + + + + + + + + + + + + + 4191 + + + YES + + + + + + 4192 + + + YES + + + + + + 4193 + + + YES + + + + + + 4194 + + + YES + + + + + + 4195 + + + YES + + + + + + 4196 + + + YES + + + + + + 4197 + + + YES + + + + + + 4198 + + + YES + + + + + + 4199 + + + YES + + + + + + 4200 + + + YES + + + + + + 4201 + + + YES + + + + + + 4202 + + + YES + + + + + + + + + + + + + + + + + + + + + 4203 + + + + + 4204 + + + + + 4205 + + + + + 4206 + + + + + 4207 + + + + + 4208 + + + + + 4209 + + + + + 4210 + + + + + 4211 + + + + + 4212 + + + + + 4213 + + + + + 4214 + + + + + 4215 + + + + + 4216 + + + + + 4217 + + + + + 4218 + + + + + 4219 + + + YES + + + + + + 4220 + + + YES + + + + + + + + + + + 4221 + + + + + 4222 + + + + + 4223 + + + + + 4224 + + + + + 4225 + + + + + 4226 + + + + + 4227 + + + + + 4228 + + + + + 4229 + + + + + 4230 + + + + + 4231 + + + + + 4232 + + + + + 4233 + + + + + 4234 + + + + + 4240 + + + YES + + + + + + 4241 + + + + + 4277 + + + YES + + + + + + 4278 + + + + + 4559 + + + YES + + + + + + 4560 + + + + + 4561 + + + YES + + + + + + 4562 + + + + + 4565 + + + YES + + + + + + + + + + + + + 4574 + + + YES + + + + + + 4575 + + + YES + + + + + + 4576 + + + YES + + + + + + + 4577 + + + + + 4578 + + + + + 4580 + + + + + 4581 + + + YES + + + + + + 4582 + + + + + 4583 + + + YES + + + + + + 4584 + + + + + 4585 + + + YES + + + + + + + + + + + + + Internal Cheat View + + + 4586 + + + YES + + + + + + 4587 + + + YES + + + + + + 4588 + + + YES + + + + + + 4589 + + + YES + + + + + + 4590 + + + YES + + + + + + 4593 + + + YES + + + + + + 4594 + + + + + 4597 + + + YES + + + + + + 4598 + + + + + 4599 + + + + + 4600 + + + + + 4601 + + + YES + + + + + + + + + + 4602 + + + + + 4603 + + + + + 4604 + + + + + 4605 + + + + + 4606 + + + + + 4610 + + + YES + + + + + Action Replay Cheat View + + + 4632 + + + YES + + + + + + 4633 + + + YES + + + + + + + + 4634 + + + + + 4635 + + + + + 4636 + + + + + 4637 + + + + + 4639 + + + YES + + + + + + 4640 + + + + + 4647 + + + + + 4656 + + + Cheats List Array Controller + + + 4660 + + + YES + + + + + + 4661 + + + YES + + + + + + 4662 + + + + + 4663 + + + + + 4664 + + + YES + + + + + + 4665 + + + + + 4673 + + + YES + + + + + Code Breaker Cheat View + + + 4693 + + + YES + + + + + + 4694 + + + + + 4697 + + + + + 4711 + + + Cheat Selected Item Controller + + + 4715 + + + + + 4731 + + + Cheat Window Controller + + + 4745 + + + YES + + + + + + 4746 + + + + + 4607 + + + YES + + + + + + 4778 + + + + + 4792 + + + YES + + + + + + + + + 4795 + + + + + 4796 + + + + + 4797 + + + YES + + + + + + + 4798 + + + + + 4799 + + + YES + + + + + + 4800 + + + YES + + + + + + 4801 + + + + + 4802 + + + + + 4809 + + + YES + + + + + + 4810 + + + + + 4811 + + + YES + + + + + + 4812 + + + + + 4814 + + + YES + + + + + + 4815 + + + + + 4817 + + + YES + + + + + + 4818 + + + + + 4822 + + + YES + + + + + + 4823 + + + + + 4850 + + + YES + + + + + + + Exact Value Search View + + + 4851 + + + YES + + + + + + + + + Comparative Search Continue View + + + 4858 + + + YES + + + + + + 4859 + + + YES + + + + + + 4860 + + + YES + + + + + + 4861 + + + YES + + + + + + 4862 + + + YES + + + + + + 4863 + + + YES + + + + + + 4864 + + + + + 4865 + + + + + 4866 + + + + + 4867 + + + + + 4868 + + + + + 4869 + + + + + 4871 + + + YES + + + + + + 4872 + + + YES + + + + + + 4873 + + + + + 4874 + + + + + 4876 + + + YES + + + + + + 4877 + + + YES + + + + + + 4878 + + + + + 4879 + + + YES + + + + + 4880 + + + YES + + + + + + Comparative Search Start View + + + 4887 + + + YES + + + + + + 4888 + + + YES + + + + + + 4889 + + + YES + + + + + + 4890 + + + + + 4891 + + + + + 4892 + + + + + 4899 + + + + + 4900 + + + YES + + + + + + 4901 + + + YES + + + + + + 4902 + + + YES + + + + + + + 4903 + + + + + 4904 + + + + + 4906 + + + YES + + + + + + 4907 + + + + + 4908 + + + YES + + + + + + 4909 + + + + + 4910 + + + YES + + + + + + 4911 + + + YES + + + + + + 4912 + + + YES + + + + + + + 4913 + + + + + 4914 + + + + + 4916 + + + Cheat Search List Array Controller + + + 4947 + + + + + 5003 + + + YES + + + + + + + + 5004 + + + YES + + + + + + 5005 + + + YES + + + + + + 5006 + + + YES + + + + + + 5007 + + + + + 5008 + + + + + 5009 + + + + + 5066 + + + YES + + + + + + 5067 + + + + + 5068 + + + YES + + + + + + 5069 + + + + + 5080 + + + YES + + + + + + 5081 + + + YES + + + + + + + + + + + + + + + + 5082 + + + YES + + + + + + + + + 5083 + + + + + 5084 + + + + + 5085 + + + YES + + + + + + + 5086 + + + + + 5087 + + + YES + + + + + + 5088 + + + YES + + + + + + 5089 + + + + + 5097 + + + + + 5098 + + + YES + + + + + + 5099 + + + + + 5100 + + + YES + + + + + + 5101 + + + + + 5102 + + + YES + + + + + + 5103 + + + + + 5104 + + + YES + + + + + + 5105 + + + + + 5106 + + + YES + + + + + + 5107 + + + + + 5111 + + + YES + + + + + + 5112 + + + + + 5115 + + + Cheat Database Array Controller + + + 5127 + + + YES + + + + + + 5128 + + + + + 5133 + + + YES + + + + + + 5134 + + + + + 5135 + + + YES + + + + + + 5136 + + + + + 5140 + + + YES + + + + + + 5141 + + + + + 5168 + + + YES + + + + + + 5169 + + + + + 5171 + + + YES + + + + + + + + + 5172 + + + YES + + + + + + 5173 + + + YES + + + + + + 5174 + + + YES + + + + + + 5175 + + + YES + + + + + + 5176 + + + + + 5177 + + + + + 5178 + + + + + 5179 + + + + + 5193 + + + + + 24 + + + YES + + + + + + + + + 23 + + + + + 239 + + + + + 5 + + + + + 92 + + + + + 5329 + + + + + 490 + + + YES + + + + + + 491 + + + YES + + + + + + + + + + + 980 + + + + + 979 + + + + + 978 + + + + + 977 + + + + + 492 + + + + + 5419 + + + + + 5420 + + + + + 5421 + + + + + 5450 + + + YES + + + + + + + + + + + + 2287 + + + YES + + + + + + 2288 + + + + + 2289 + + + YES + + + + + + 2290 + + + + + 1507 + + + YES + + + + + + 1508 + + + YES + + + + + + 1509 + + + YES + + + + + + + + + + 1532 + + + + + 1512 + + + + + 1511 + + + + + 1510 + + + + + 1577 + + + YES + + + + + + 1578 + + + YES + + + + + + 1579 + + + + + 2291 + + + YES + + + + + + 2299 + + + + + 2292 + + + YES + + + + + + 2293 + + + YES + + + + + + 2294 + + + YES + + + + + + + + 5427 + + + + + 2298 + + + + + 2297 + + + + + 3994 + + + YES + + + + + + 3995 + + + YES + + + + + + 3996 + + + YES + + + + + + + 3997 + + + + + 3998 + + + + + 3992 + + + YES + + + + + + 3993 + + + + + 1525 + + + YES + + + + + + 1526 + + + YES + + + + + + 1527 + + + YES + + + + + + + + + + + 1531 + + + + + 1530 + + + + + 1529 + + + + + 1528 + + + + + 1580 + + + + + 1581 + + + + + 5648 + + + + + 5649 + + + + + 5651 + + + YES + + + + + + 5652 + + + YES + + + + + + + + + 5653 + + + YES + + + + + + 5654 + + + YES + + + + + + + + + 5658 + + + YES + + + + + + 5659 + + + YES + + + + + + 5660 + + + + + 5661 + + + + + 5665 + + + YES + + + + + + 5666 + + + YES + + + + + + 5667 + + + YES + + + + + + 5668 + + + YES + + + + + + 5669 + + + YES + + + + + + 5670 + + + YES + + + + + + + + 5671 + + + + + 5672 + + + + + 5673 + + + + + 5674 + + + YES + + + + + + 5675 + + + YES + + + + + + + + 5676 + + + + + 5677 + + + + + 5678 + + + + + 5679 + + + YES + + + + + + 5680 + + + YES + + + + + + + + 5681 + + + + + 5682 + + + + + 5683 + + + + + 5684 + + + YES + + + + + + 5685 + + + YES + + + + + + + + 5686 + + + + + 5687 + + + + + 5688 + + + + + 5689 + + + + + 5702 + + + + + 2529 + + + YES + + + + + + 2530 + + + YES + + + + + + + + + 2548 + + + + + 2549 + + + + + 2551 + + + + + 2558 + + + YES + + + + + + 2559 + + + YES + + + + + + 2560 + + + + + 2553 + + + + + 5713 + + + About Window Controller + + + 5933 + + + YES + + + + + Export ROM Save Panel Accessory + + + 5934 + + + YES + + + + + + 5935 + + + YES + + + + + + 5936 + + + + + 5937 + + + YES + + + + + + 5938 + + + YES + + + + + + + + 5939 + + + + + 5942 + + + + + 5963 + + + + + 5965 + + + YES + + + + + + 5966 + + + + + 6131 + + + YES + + + + + + + + + 6132 + + + YES + + + + + + + + 6133 + + + + + 6134 + + + + + 6135 + + + + + 6159 + + + YES + + + + + + 6160 + + + + + 6161 + + + YES + + + + + + 6162 + + + + + 6168 + + + YES + + + + + + 6169 + + + YES + + + + + + + 6170 + + + + + 6171 + + + YES + + + + + + 6172 + + + YES + + + + + + + 6173 + + + + + 6174 + + + + + 6177 + + + + + 6180 + + + YES + + + + + + + + + + + + + + + 6182 + + + YES + + + + + + 6183 + + + YES + + + + + + 6184 + + + YES + + + + + + + + 6185 + + + + + 6186 + + + + + 6187 + + + + + 6188 + + + YES + + + + + + + + 6189 + + + + + 6190 + + + + + 6191 + + + + + 6233 + + + + + 6234 + + + + + 3777 + + + YES + + + + + + 3778 + + + + + 3804 + + + YES + + + + + + 3805 + + + + + 6236 + + + + + 6238 + + + + + 6295 + + + YES + + + + + + 6296 + + + YES + + + + + 6352 + + + YES + + + + + + + + + + + + + + + + + + + + + + + Support Request Form View + + + 6353 + + + YES + + + + + + 6354 + + + YES + + + + + + 6355 + + + YES + + + + + + 6356 + + + YES + + + + + + 6357 + + + YES + + + + + + 6358 + + + YES + + + + + + 6359 + + + YES + + + + + + 6360 + + + YES + + + + + + 6361 + + + + + 6362 + + + YES + + + + + + 6363 + + + YES + + + + + + 6364 + + + + + 6365 + + + YES + + + + + + 6366 + + + YES + + + + + + 6368 + + + + + 6369 + + + YES + + + + + + 6374 + + + + + 6376 + + + + + 6377 + + + + + 6378 + + + + + 6379 + + + + + 6380 + + + + + 6381 + + + + + 6382 + + + + + 6383 + + + + + 6384 + + + + + 6385 + + + + + 6386 + + + + + 6387 + + + + + 6388 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + Bug Report Form View + + + 6389 + + + YES + + + + + + 6390 + + + YES + + + + + + 6391 + + + YES + + + + + + 6392 + + + YES + + + + + + 6393 + + + YES + + + + + + 6394 + + + YES + + + + + + 6395 + + + YES + + + + + + 6396 + + + YES + + + + + + 6397 + + + + + 6398 + + + YES + + + + + + 6399 + + + YES + + + + + + 6400 + + + + + 6401 + + + YES + + + + + + 6402 + + + YES + + + + + + 6405 + + + YES + + + + + + 6406 + + + YES + + + + + + 6407 + + + + + 6408 + + + YES + + + + + + 6413 + + + + + 6414 + + + + + 6415 + + + + + 6418 + + + + + 6419 + + + + + 6420 + + + + + 6421 + + + + + 6422 + + + + + 6423 + + + + + 6424 + + + + + 6425 + + + + + 6426 + + + + + 6427 + + + + + 6428 + + + + + 6429 + + + + + 6430 + + + YES + + + + + + + + Troubleshooting Info View + + + 6431 + + + YES + + + + + + + + 6432 + + + YES + + + + + + 6433 + + + YES + + + + + + 6434 + + + + + 6435 + + + + + 6436 + + + + + 6437 + + + + + 6438 + + + + + 6440 + + + + + 6441 + + + Troubleshooting Window Controller + + + 6451 + + + + + 6484 + + + YES + + + + + + 6485 + + + + + 6486 + + + YES + + + + + + + + 6487 + + + + + 6488 + + + + + 6489 + + + + + 6491 + + + YES + + + + + + + + 6492 + + + + + 6493 + + + + + 6494 + + + + + 6496 + + + YES + + + + + + + + 6497 + + + + + 6498 + + + + + 6499 + + + + + 6611 + + + YES + + + + + + 6612 + + + + + 6617 + + + YES + + + + + + 6618 + + + YES + + + + + + 6619 + + + + + 6622 + + + YES + + + + + + 6623 + + + YES + + + + + + 6624 + + + + + 6630 + + + YES + + + + + + 6631 + + + + + 6634 + + + + + 6635 + + + + + 6651 + + + + + 6652 + + + Emulation Control Controller + + + 6931 + + + + + 6998 + + + + + 6999 + + + + + 7002 + + + + + 7014 + + + YES + + + + + + + + Input Preferences View + + + 7168 + + + YES + + + + + + 7169 + + + + + 7171 + + + YES + + + + + + 7172 + + + YES + + + + + + + + + + + 7173 + + + YES + + + + + + 7174 + + + YES + + + + + + + + + + 7175 + + + YES + + + + + + 7176 + + + YES + + + + + + + + + 7179 + + + YES + + + + + + 7180 + + + YES + + + + + + + + + 7182 + + + YES + + + + + + + + + + + 7183 + + + YES + + + + + + 7184 + + + YES + + + + + + 7185 + + + YES + + + + + + + + + + 7186 + + + + + 7187 + + + + + 7188 + + + + + 7189 + + + + + 7191 + + + + + 7192 + + + + + 7210 + + + YES + + + + + + 7211 + + + YES + + + + + + 7212 + + + YES + + + + + + + + + + + + + + + 7213 + + + + + 7214 + + + + + 7215 + + + + + 7216 + + + YES + + + + + + 7217 + + + + + 7218 + + + + + 7219 + + + + + 7220 + + + + + 7221 + + + + + 7222 + + + + + 7223 + + + + + 7224 + + + + + 7225 + + + YES + + + + + + 7226 + + + YES + + + + + + + + + + 7227 + + + YES + + + + + + 7228 + + + YES + + + + + + 7229 + + + YES + + + + + + 7230 + + + YES + + + + + + + + + + + + + + + 7231 + + + + + 7232 + + + + + 7233 + + + + + 7234 + + + + + 7235 + + + + + 7236 + + + + + 7237 + + + + + 7238 + + + + + 7239 + + + + + 7240 + + + + + 7241 + + + + + 7266 + + + YES + + + + + + 7267 + + + YES + + + + + + + + + + + + + + + + + + 7268 + + + + + 7269 + + + + + 7270 + + + + + 7271 + + + + + 7272 + + + + + 7273 + + + + + 7274 + + + + + 7275 + + + + + 7276 + + + + + 7277 + + + + + 7278 + + + + + 7279 + + + + + 7280 + + + + + 7293 + + + YES + + + + + + + + + 7285 + + + YES + + + + + + 7286 + + + + + 7287 + + + YES + + + + + + 7288 + + + YES + + + + + + 7289 + + + YES + + + + + + 7292 + + + + + 7290 + + + YES + + + + + + 7291 + + + YES + + + + + + 7294 + + + + + 7295 + + + + + 7301 + + + YES + + + + + + 7302 + + + + + 7305 + + + YES + + + + + + 7308 + + + + + 7309 + + + YES + + + + + + 7312 + + + + + 7313 + + + YES + + + + + + 7316 + + + + + 7317 + + + YES + + + + + + 7320 + + + + + 7353 + + + Input Settings Controller + + + 7354 + + + YES + + + + + + 7355 + + + + + 7358 + + + YES + + + + + + 7359 + + + + + 7392 + + + YES + + + + + + 7393 + + + + + 7395 + + + YES + + + + + + 7396 + + + + + 7398 + + + YES + + + + + + 7399 + + + + + 7401 + + + YES + + + + + + 7402 + + + + + 7404 + + + YES + + + + + + 7405 + + + + + 7433 + + + YES + + + + + + 7434 + + + + + 7436 + + + YES + + + + + + 7437 + + + + + 7439 + + + YES + + + + + + 7440 + + + + + 7442 + + + YES + + + + + + 7443 + + + + + 7445 + + + YES + + + + + + 7446 + + + + + 7449 + + + YES + + + + + + 7450 + + + YES + + + + + + + + + + + + + + + + + + 7451 + + + YES + + + + + + 7452 + + + + + 7454 + + + YES + + + + + + 7455 + + + YES + + + + + + 7456 + + + YES + + + + + + 7457 + + + YES + + + + + + 7458 + + + YES + + + + + + 7459 + + + YES + + + + + + 7460 + + + YES + + + + + + 7462 + + + YES + + + + + + 7463 + + + YES + + + + + + 7464 + + + YES + + + + + + 7465 + + + + + 7466 + + + + + 7468 + + + + + 7469 + + + + + 7470 + + + + + 7471 + + + + + 7472 + + + + + 7473 + + + + + 7474 + + + + + 7486 + + + YES + + + + + + 7487 + + + YES + + + + + + 7488 + + + + + 7489 + + + + + 7461 + + + YES + + + + + + 7467 + + + + + 7515 + + + YES + + + + + + 7516 + + + YES + + + + + + + + + + + + + 7517 + + + YES + + + + + + + + + 7521 + + + + + 7520 + + + + + 7519 + + + YES + + + + + + + + + 7518 + + + + + 7526 + + + YES + + + + + + 7525 + + + YES + + + + + + 7522 + + + YES + + + + + + 7531 + + + + + 7528 + + + + + 7537 + + + YES + + + + + + 7540 + + + + + 7541 + + + YES + + + + + + 7542 + + + + + 7543 + + + YES + + + + + + 7544 + + + + + 7545 + + + YES + + + + + + 7546 + + + + + 7551 + + + YES + + + + + + 7552 + + + + + 7553 + + + YES + + + + + + 7554 + + + + + 7555 + + + YES + + + + + + 7556 + + + + + 7583 + + + YES + + + + + + 7584 + + + + + 7128 + + + YES + + + + + + + + + 7132 + + + + + 7131 + + + + + 7130 + + + YES + + + + + + + + + + 7129 + + + + + 7137 + + + YES + + + + + + 7136 + + + YES + + + + + + 7135 + + + YES + + + + + + 7134 + + + YES + + + + + + 7133 + + + YES + + + + + + 7142 + + + + + 7141 + + + + + 7140 + + + + + 7139 + + + + + 7138 + + + + + 7594 + + + YES + + + + + + 7595 + + + YES + + + + + + 7596 + + + YES + + + + + + + + + + + + + 7597 + + + + + 7598 + + + + + 7599 + + + + + 7601 + + + + + 7602 + + + + + 7603 + + + + + 7600 + + + + + 7604 + + + + + 7605 + + + YES + + + + + + 7606 + + + YES + + + + + + 7607 + + + YES + + + + + + + 7610 + + + + + 7612 + + + + + 7624 + + + YES + + + + + + 7625 + + + + + 7666 + + + Input Profile Controller + + + 7707 + + + YES + + + + + + 7708 + + + YES + + + + + + + + 7715 + + + YES + + + + + + 7716 + + + + + 7725 + + + YES + + + + + + 7726 + + + + + 7729 + + + YES + + + + + + 7730 + + + + + 7740 + + + + + 7190 + + + + + 7759 + + + YES + + + + + + 7760 + + + + + 7761 + + + YES + + + + + + 7762 + + + YES + + + + + + 7765 + + + + + 7766 + + + YES + + + + + + 7767 + + + + + 7771 + + + YES + + + + + + 7772 + + + YES + + + + + + + + + + + + 7773 + + + + + 7774 + + + + + 7775 + + + + + 7776 + + + + + 7777 + + + + + 7778 + + + + + 7779 + + + + + 7780 + + + YES + + + + + + 7781 + + + + + 7792 + + + YES + + + + + + 7793 + + + YES + + + + + + 7794 + + + + + 7802 + + + YES + + + + + + 7803 + + + + + 7804 + + + YES + + + + + + 7805 + + + + + 7806 + + + YES + + + + + + 7807 + + + + + 7808 + + + YES + + + + + + 7809 + + + + + 7810 + + + YES + + + + + + 7811 + + + + + 7812 + + + YES + + + + + + 7813 + + + + + 7817 + + + YES + + + + + + 7818 + + + YES + + + + + + + + + + + + + + + + 7820 + + + YES + + + + + + 7821 + + + YES + + + + + + 7822 + + + YES + + + + + + 7823 + + + YES + + + + + + 7824 + + + YES + + + + + + 7825 + + + YES + + + + + + 7826 + + + + + 7827 + + + + + 7828 + + + + + 7829 + + + + + 7830 + + + + + 7831 + + + + + 7836 + + + YES + + + + + + 7837 + + + + + 7838 + + + YES + + + + + + 7839 + + + YES + + + + + + 7840 + + + + + 7843 + + + YES + + + + + + 7844 + + + + + 7845 + + + YES + + + + + + 7846 + + + + + 7847 + + + YES + + + + + + 7848 + + + + + 7855 + + + YES + + + + + + 7856 + + + YES + + + + + + + + + + + 7871 + + + YES + + + + + + 7872 + + + + + 7877 + + + YES + + + + + + 7878 + + + + + 7880 + + + YES + + + + + + 7881 + + + + + 7886 + + + + + 7899 + + + YES + + + + + + + + + + 7857 + + + YES + + + + + + + + + + + 7862 + + + + + 7861 + + + + + 7860 + + + + + 7859 + + + + + 7858 + + + + + 7863 + + + YES + + + + + + 7864 + + + + + 7866 + + + YES + + + + + + 7867 + + + + + 7875 + + + YES + + + + + + 7876 + + + + + 125 + + + YES + + + + + + 126 + + + + + 7873 + + + YES + + + + + + 7874 + + + + + 8009 + + + YES + + + + + + + + + 7971 + + + YES + + + + + + 7974 + + + + + 7972 + + + YES + + + + + + 7973 + + + + + 7978 + + + + + 7987 + + + YES + + + + + + 7988 + + + YES + + + + + + 7989 + + + YES + + + + + + + + + + 8003 + + + + + 7996 + + + + + 7995 + + + YES + + + + + + 7994 + + + + + 7993 + + + + + 7997 + + + YES + + + + + + 7998 + + + + + 7879 + + + + + 8012 + + + YES + + + + + + 8013 + + + YES + + + + + + 8014 + + + + + 8015 + + + + + 8016 + + + + + 8021 + + + YES + + + + + + 8022 + + + YES + + + + + + 8023 + + + + + 8024 + + + + + 8025 + + + + + 8030 + + + YES + + + + + + 8031 + + + YES + + + + + + 8032 + + + + + 8033 + + + + + 8034 + + + + + 8043 + + + YES + + + + + + 8044 + + + + + 8045 + + + YES + + + + + + 8046 + + + YES + + + + + + 8047 + + + + + 8048 + + + YES + + + + + + 8049 + + + + + 8075 + + + YES + + + + + + 8076 + + + YES + + + + + + 8077 + + + + + 8078 + + + + + 8084 + + + + + 2604 + + + + + 8134 + + + YES + + + + + + 8135 + + + YES + + + + + + + 8160 + + + YES + + + + + + + + + + + 8136 + + + YES + + + + + + 8137 + + + + + 8138 + + + YES + + + + + + 8139 + + + + + 8140 + + + YES + + + + + + 8141 + + + + + 8142 + + + YES + + + + + + 8143 + + + + + 8144 + + + YES + + + + + + 8145 + + + + + 8146 + + + YES + + + + + + 8147 + + + + + 8161 + + + YES + + + + + + + + + + + 8148 + + + YES + + + + + + 8149 + + + + + 8150 + + + YES + + + + + + 8151 + + + + + 8152 + + + YES + + + + + + 8153 + + + + + 8154 + + + YES + + + + + + 8155 + + + + + 8156 + + + YES + + + + + + 8157 + + + + + 8158 + + + YES + + + + + + 8159 + + + + + 8162 + + + + + 8164 + + + + + 8181 + + + YES + + + + + + + 8182 + + + YES + + + + + + 8183 + + + YES + + + + + + 8184 + + + YES + + + + + + + 8185 + + + YES + + + + + + + + + 2342 + + + YES + + + + + + + + + + + + + + 2359 + + + YES + + + + + + 2355 + + + YES + + + + + + 2365 + + + YES + + + + + + 2363 + + + YES + + + + + + 2358 + + + YES + + + + + + 2357 + + + YES + + + + + + 2349 + + + YES + + + + + + 2353 + + + YES + + + + + + 2347 + + + YES + + + + + + 2348 + + + + + 2354 + + + + + 2350 + + + + + 2362 + + + + + 2361 + + + + + 2364 + + + + + 2366 + + + + + 2356 + + + + + 2360 + + + + + 2343 + + + YES + + + + + + + + + + + 2374 + + + YES + + + + + + 4275 + + + YES + + + + + + 2565 + + + YES + + + + + + 2373 + + + YES + + + + + + 2372 + + + YES + + + + + + 2371 + + + YES + + + + + + 2378 + + + + + 2377 + + + + + 2376 + + + + + 2566 + + + + + 4276 + + + + + 2375 + + + + + 2341 + + + YES + + + + + + + 6627 + + + YES + + + + + + 2345 + + + YES + + + + + + 2346 + + + + + 6628 + + + + + 6126 + + + YES + + + + + + + + + 6127 + + + YES + + + + + + + + 8060 + + + YES + + + + + + 8058 + + + YES + + + + + + 8056 + + + YES + + + + + + 8057 + + + + + 8059 + + + YES + + + + + + 8066 + + + + + 8061 + + + + + 6130 + + + + + 6129 + + + + + 6128 + + + + + 2344 + + + YES + + + + + + + 2369 + + + YES + + + + + + 2367 + + + YES + + + + + + 2368 + + + + + 2370 + + + + + 5186 + + + YES + + + + + + 5188 + + + YES + + + + + + 5189 + + + + + 8186 + + + + + 8188 + + + YES + + + + + + 8189 + + + + + 8194 + + + YES + + + + + + 8195 + + + + + 8245 + + + YES + + + + + + 8246 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8247 + + + + + 8248 + + + + + 8249 + + + + + 8251 + + + + + 8252 + + + + + 8253 + + + + + 8254 + + + + + 8255 + + + + + 8256 + + + + + 8257 + + + + + 8258 + + + + + 8259 + + + + + 8260 + + + + + 8261 + + + + + 8262 + + + + + 8263 + + + + + 8264 + + + + + 8265 + + + + + 8266 + + + + + 8267 + + + + + 8268 + + + + + 8269 + + + + + 8270 + + + + + 8271 + + + + + 8295 + + + + + 8301 + + + + + 8302 + + + YES + + + + + + 8303 + + + + + 8307 + + + + + 8308 + + + YES + + + + + + 8309 + + + + + 8310 + + + + + 8316 + + + + + 8322 + + + YES + + + + + + 8323 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1000.IBPluginDependency + 1001.IBPluginDependency + 1002.IBPluginDependency + 1003.IBPluginDependency + 1004.IBPluginDependency + 1005.IBPluginDependency + 1006.IBPluginDependency + 1007.IBPluginDependency + 1008.IBPluginDependency + 1009.IBPluginDependency + 1010.IBPluginDependency + 1011.IBPluginDependency + 1012.IBPluginDependency + 1013.IBPluginDependency + 1016.IBPluginDependency + 1017.IBPluginDependency + 1020.IBPluginDependency + 1021.IBPluginDependency + 1024.IBPluginDependency + 1025.IBPluginDependency + 1034.IBPluginDependency + 1035.IBPluginDependency + 1036.IBPluginDependency + 1037.IBPluginDependency + 1038.IBPluginDependency + 1039.IBPluginDependency + 1040.IBPluginDependency + 1041.IBPluginDependency + 1113.IBPluginDependency + 1114.IBPluginDependency + 1115.IBPluginDependency + 1118.IBPluginDependency + 1119.IBPluginDependency + 112.IBPluginDependency + 1120.IBPluginDependency + 124.IBPluginDependency + 125.IBPluginDependency + 126.IBPluginDependency + 129.IBPluginDependency + 1298.IBEditorWindowLastContentRect + 1298.IBPluginDependency + 1299.IBAttributePlaceholdersKey + 1299.IBPluginDependency + 1299.IBViewBoundsToFrameTransform + 130.IBPluginDependency + 1300.IBPluginDependency + 131.IBPluginDependency + 134.IBPluginDependency + 136.IBPluginDependency + 143.IBPluginDependency + 144.IBPluginDependency + 145.IBPluginDependency + 149.IBPluginDependency + 150.IBPluginDependency + 1507.IBAttributePlaceholdersKey + 1507.IBPluginDependency + 1508.IBPluginDependency + 1509.IBEditorWindowLastContentRect + 1509.IBPluginDependency + 1510.IBPluginDependency + 1511.IBPluginDependency + 1512.IBPluginDependency + 1525.IBAttributePlaceholdersKey + 1525.IBPluginDependency + 1526.IBPluginDependency + 1527.IBEditorWindowLastContentRect + 1527.IBPluginDependency + 1528.IBPluginDependency + 1529.IBPluginDependency + 1530.IBPluginDependency + 1531.IBPluginDependency + 1532.IBPluginDependency + 1538.IBPluginDependency + 1538.IBViewBoundsToFrameTransform + 1541.IBPluginDependency + 1541.IBViewBoundsToFrameTransform + 1542.IBPluginDependency + 1543.IBEditorWindowLastContentRect + 1543.IBPluginDependency + 1544.IBPluginDependency + 1545.IBPluginDependency + 1577.IBAttributePlaceholdersKey + 1577.IBPluginDependency + 1578.IBPluginDependency + 1579.IBNumberFormatterBehaviorMetadataKey + 1579.IBNumberFormatterLocalizesFormatMetadataKey + 1579.IBNumberFormatterSampleNumberKey + 1579.IBPluginDependency + 1580.IBPluginDependency + 1581.IBPluginDependency + 1584.IBEditorWindowLastContentRect + 1584.IBPluginDependency + 1615.IBAttributePlaceholdersKey + 1615.IBPluginDependency + 1616.IBPluginDependency + 1619.IBPluginDependency + 1620.IBPluginDependency + 1621.IBPluginDependency + 1626.IBAttributePlaceholdersKey + 1626.IBPluginDependency + 1627.IBPluginDependency + 1628.IBPluginDependency + 1629.IBPluginDependency + 1630.IBPluginDependency + 1631.IBPluginDependency + 1632.IBPluginDependency + 1633.IBPluginDependency + 1634.IBPluginDependency + 1635.IBPluginDependency + 1636.IBPluginDependency + 1637.IBPluginDependency + 1638.IBPluginDependency + 1639.IBPluginDependency + 1640.IBPluginDependency + 1641.IBPluginDependency + 1642.IBPluginDependency + 1643.IBPluginDependency + 1644.IBPluginDependency + 1645.IBPluginDependency + 1646.IBPluginDependency + 1647.IBPluginDependency + 1648.IBPluginDependency + 1649.IBPluginDependency + 1650.IBPluginDependency + 1651.IBPluginDependency + 1679.IBPluginDependency + 1679.toolbarItem.selectable + 1680.IBPluginDependency + 1680.toolbarItem.selectable + 1681.IBPluginDependency + 1681.toolbarItem.selectable + 1682.IBPluginDependency + 1721.IBPluginDependency + 1736.IBNumberFormatterBehaviorMetadataKey + 1736.IBNumberFormatterLocalizesFormatMetadataKey + 1736.IBPluginDependency + 1855.IBPluginDependency + 1856.IBPluginDependency + 1856.IBWindowTemplateEditedContentRect + 1856.NSWindowTemplate.visibleAtLaunch + 1857.IBPluginDependency + 1858.IBPluginDependency + 1859.IBPluginDependency + 19.IBPluginDependency + 1976.IBPluginDependency + 1977.IBPluginDependency + 1978.IBPluginDependency + 1979.IBPluginDependency + 1980.IBPluginDependency + 1981.IBPluginDependency + 1982.IBPluginDependency + 1983.IBPluginDependency + 1986.IBPluginDependency + 1987.IBPluginDependency + 1988.IBPluginDependency + 1998.IBPluginDependency + 1999.IBPluginDependency + 2000.IBNumberFormatterBehaviorMetadataKey + 2000.IBNumberFormatterLocalizesFormatMetadataKey + 2000.IBPluginDependency + 2095.IBPluginDependency + 2098.IBPluginDependency + 2154.IBPluginDependency + 2155.IBPluginDependency + 2246.IBPluginDependency + 2246.toolbarItem.selectable + 2248.IBEditorWindowLastContentRect + 2248.IBPluginDependency + 2250.IBPluginDependency + 2253.IBAttributePlaceholdersKey + 2253.IBPluginDependency + 2254.IBPluginDependency + 2257.IBPluginDependency + 2258.IBPluginDependency + 2262.IBNumberFormatterBehaviorMetadataKey + 2262.IBNumberFormatterLocalizesFormatMetadataKey + 2262.IBPluginDependency + 2265.IBPluginDependency + 2266.IBPluginDependency + 2287.IBPluginDependency + 2288.IBPluginDependency + 2289.IBPluginDependency + 2290.IBPluginDependency + 2291.IBPluginDependency + 2292.IBPluginDependency + 2293.IBPluginDependency + 2294.IBEditorWindowLastContentRect + 2294.IBPluginDependency + 2297.IBAttributePlaceholdersKey + 2297.IBPluginDependency + 2298.IBAttributePlaceholdersKey + 2298.IBPluginDependency + 2299.IBPluginDependency + 23.IBPluginDependency + 2327.IBPluginDependency + 2328.IBPluginDependency + 2329.IBAttributePlaceholdersKey + 2329.IBPluginDependency + 2330.IBAttributePlaceholdersKey + 2330.IBPluginDependency + 2331.IBPluginDependency + 2332.IBAttributePlaceholdersKey + 2332.IBPluginDependency + 2339.IBEditorWindowLastContentRect + 2339.IBPluginDependency + 2340.IBPluginDependency + 2340.toolbarItem.selectable + 2341.IBPluginDependency + 2342.IBPluginDependency + 2343.IBPluginDependency + 2344.IBPluginDependency + 2345.IBAttributePlaceholdersKey + 2345.IBPluginDependency + 2346.IBPluginDependency + 2347.IBAttributePlaceholdersKey + 2347.IBPluginDependency + 2348.IBPluginDependency + 2349.IBPluginDependency + 2350.IBPluginDependency + 2353.IBPluginDependency + 2354.IBPluginDependency + 2355.IBPluginDependency + 2356.IBPluginDependency + 2357.IBPluginDependency + 2358.IBPluginDependency + 2359.IBPluginDependency + 236.IBPluginDependency + 2360.IBPluginDependency + 2361.IBPluginDependency + 2362.IBPluginDependency + 2363.IBAttributePlaceholdersKey + 2363.IBPluginDependency + 2364.IBPluginDependency + 2365.IBAttributePlaceholdersKey + 2365.IBPluginDependency + 2366.IBPluginDependency + 2367.IBAttributePlaceholdersKey + 2367.IBPluginDependency + 2368.IBPluginDependency + 2369.IBAttributePlaceholdersKey + 2369.IBPluginDependency + 2370.IBPluginDependency + 2371.IBAttributePlaceholdersKey + 2371.IBPluginDependency + 2372.IBPluginDependency + 2373.IBPluginDependency + 2374.IBPluginDependency + 2375.IBPluginDependency + 2376.IBPluginDependency + 2377.IBPluginDependency + 2378.IBPluginDependency + 2382.IBPluginDependency + 2383.IBPluginDependency + 2384.IBPluginDependency + 2385.IBPluginDependency + 2386.IBPluginDependency + 2387.IBPluginDependency + 2388.IBPluginDependency + 2389.IBPluginDependency + 239.IBPluginDependency + 2390.IBPluginDependency + 2391.IBPluginDependency + 2392.IBPluginDependency + 2393.IBPluginDependency + 2394.IBPluginDependency + 2395.IBPluginDependency + 2396.IBPluginDependency + 2397.IBPluginDependency + 2398.IBPluginDependency + 2399.IBPluginDependency + 24.IBPluginDependency + 2427.IBAttributePlaceholdersKey + 2427.IBPluginDependency + 2428.IBPluginDependency + 2429.IBAttributePlaceholdersKey + 2429.IBPluginDependency + 2430.IBPluginDependency + 2431.IBPluginDependency + 2432.IBPluginDependency + 2433.IBPluginDependency + 2434.IBAttributePlaceholdersKey + 2434.IBPluginDependency + 2435.IBAttributePlaceholdersKey + 2435.IBPluginDependency + 2436.IBAttributePlaceholdersKey + 2436.IBPluginDependency + 2437.IBPluginDependency + 2438.IBAttributePlaceholdersKey + 2438.IBPluginDependency + 2439.IBAttributePlaceholdersKey + 2439.IBPluginDependency + 2440.IBPluginDependency + 2473.IBPluginDependency + 2482.IBPluginDependency + 2483.IBPluginDependency + 2518.IBPluginDependency + 2519.IBPluginDependency + 2529.IBPluginDependency + 2530.IBPluginDependency + 2548.IBPluginDependency + 2549.IBPluginDependency + 2551.IBPluginDependency + 2553.IBPluginDependency + 2556.IBPluginDependency + 2558.IBPluginDependency + 2559.IBPluginDependency + 2560.IBPluginDependency + 2565.IBAttributePlaceholdersKey + 2565.IBPluginDependency + 2566.IBPluginDependency + 2604.IBPluginDependency + 2609.IBPluginDependency + 2610.IBPluginDependency + 2653.IBPluginDependency + 2789.IBPluginDependency + 2789.IBWindowTemplateEditedContentRect + 2789.NSWindowTemplate.visibleAtLaunch + 2789.windowTemplate.hasMinSize + 2789.windowTemplate.minSize + 2790.IBPluginDependency + 2793.IBPluginDependency + 2794.IBPluginDependency + 2799.IBPluginDependency + 2800.IBPluginDependency + 2803.IBPluginDependency + 2804.IBPluginDependency + 2807.IBPluginDependency + 2808.IBPluginDependency + 2809.IBPluginDependency + 2810.IBPluginDependency + 2811.IBPluginDependency + 2812.IBPluginDependency + 2813.IBPluginDependency + 2814.IBPluginDependency + 2815.IBPluginDependency + 2816.IBPluginDependency + 2817.IBPluginDependency + 2818.IBPluginDependency + 2819.IBPluginDependency + 2820.IBPluginDependency + 2847.IBPluginDependency + 2847.IBWindowTemplateEditedContentRect + 2847.NSWindowTemplate.visibleAtLaunch + 2848.IBPluginDependency + 2863.IBPluginDependency + 2864.IBPluginDependency + 2865.IBPluginDependency + 2866.IBPluginDependency + 2867.IBPluginDependency + 2868.IBPluginDependency + 2869.IBPluginDependency + 2870.IBPluginDependency + 2871.IBPluginDependency + 2872.IBPluginDependency + 2873.IBPluginDependency + 2874.IBPluginDependency + 2875.IBPluginDependency + 2876.IBPluginDependency + 2877.IBPluginDependency + 2878.IBPluginDependency + 2894.IBPluginDependency + 2895.IBPluginDependency + 2896.IBPluginDependency + 2897.IBPluginDependency + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 2900.IBPluginDependency + 2901.IBPluginDependency + 2902.IBPluginDependency + 2903.IBPluginDependency + 295.IBPluginDependency + 2954.IBPluginDependency + 2955.IBPluginDependency + 296.IBEditorWindowLastContentRect + 296.IBPluginDependency + 297.IBPluginDependency + 298.IBPluginDependency + 3015.IBPluginDependency + 3042.IBPluginDependency + 3059.IBPluginDependency + 3060.IBPluginDependency + 3061.IBPluginDependency + 3062.IBPluginDependency + 3063.IBPluginDependency + 3063.IBViewBoundsToFrameTransform + 3146.IBPluginDependency + 3148.IBPluginDependency + 3204.IBPluginDependency + 3205.IBPluginDependency + 3206.IBPluginDependency + 3207.IBPluginDependency + 3208.IBPluginDependency + 3209.IBPluginDependency + 3210.IBPluginDependency + 3211.IBPluginDependency + 3213.IBPluginDependency + 3214.IBPluginDependency + 3456.IBPluginDependency + 3456.IBWindowTemplateEditedContentRect + 3456.NSWindowTemplate.visibleAtLaunch + 3457.IBPluginDependency + 3458.IBPluginDependency + 3459.IBPluginDependency + 3460.IBPluginDependency + 3461.IBPluginDependency + 3462.IBPluginDependency + 3463.IBPluginDependency + 3464.IBPluginDependency + 3465.IBPluginDependency + 3471.IBPluginDependency + 3472.IBPluginDependency + 3480.IBPluginDependency + 3481.IBPluginDependency + 3482.IBPluginDependency + 3488.IBPluginDependency + 3488.IBWindowTemplateEditedContentRect + 3488.NSWindowTemplate.visibleAtLaunch + 3489.IBPluginDependency + 3496.IBPluginDependency + 3497.IBPluginDependency + 3498.IBPluginDependency + 3499.IBPluginDependency + 3501.IBPluginDependency + 3507.IBPluginDependency + 3508.IBPluginDependency + 3509.IBPluginDependency + 3516.IBPluginDependency + 3517.IBPluginDependency + 3520.IBPluginDependency + 3521.IBPluginDependency + 3522.IBPluginDependency + 3523.IBPluginDependency + 3644.IBPluginDependency + 3648.IBPluginDependency + 3649.IBPluginDependency + 3650.IBPluginDependency + 3651.IBPluginDependency + 3652.IBPluginDependency + 3653.IBPluginDependency + 3654.IBPluginDependency + 3655.IBPluginDependency + 3656.IBPluginDependency + 3657.IBPluginDependency + 3658.IBPluginDependency + 3659.IBPluginDependency + 3660.IBPluginDependency + 3661.IBPluginDependency + 3662.IBPluginDependency + 3663.IBPluginDependency + 3664.IBPluginDependency + 3665.IBPluginDependency + 3666.IBPluginDependency + 3667.IBPluginDependency + 3689.IBAttributePlaceholdersKey + 3689.IBPluginDependency + 3690.IBPluginDependency + 3692.IBAttributePlaceholdersKey + 3692.IBPluginDependency + 3693.IBPluginDependency + 3709.IBPluginDependency + 3712.IBPluginDependency + 3712.IBWindowTemplateEditedContentRect + 3712.NSWindowTemplate.visibleAtLaunch + 3713.IBPluginDependency + 3714.IBAttributePlaceholdersKey + 3714.IBPluginDependency + 3715.IBPluginDependency + 3716.IBPluginDependency + 3717.IBPluginDependency + 3718.IBPluginDependency + 3719.IBAttributePlaceholdersKey + 3719.IBPluginDependency + 3720.IBAttributePlaceholdersKey + 3720.IBPluginDependency + 3721.IBPluginDependency + 3722.IBPluginDependency + 3723.IBAttributePlaceholdersKey + 3723.IBPluginDependency + 3724.IBAttributePlaceholdersKey + 3724.IBPluginDependency + 3725.IBPluginDependency + 3732.IBAttributePlaceholdersKey + 3732.IBPluginDependency + 3733.IBPluginDependency + 3736.IBAttributePlaceholdersKey + 3736.IBPluginDependency + 3737.IBPluginDependency + 3738.IBPluginDependency + 3739.IBPluginDependency + 3740.IBPluginDependency + 3741.IBNumberFormatterBehaviorMetadataKey + 3741.IBNumberFormatterLocalizesFormatMetadataKey + 3741.IBPluginDependency + 3742.IBPluginDependency + 3747.IBPluginDependency + 3748.IBPluginDependency + 3749.IBPluginDependency + 3751.IBPluginDependency + 3752.IBPluginDependency + 3771.IBAttributePlaceholdersKey + 3771.IBPluginDependency + 3772.IBPluginDependency + 3773.IBAttributePlaceholdersKey + 3773.IBPluginDependency + 3774.IBPluginDependency + 3775.IBAttributePlaceholdersKey + 3775.IBPluginDependency + 3776.IBPluginDependency + 3777.IBAttributePlaceholdersKey + 3777.IBPluginDependency + 3778.IBPluginDependency + 3779.IBAttributePlaceholdersKey + 3779.IBPluginDependency + 3780.IBPluginDependency + 3781.IBNumberFormatterBehaviorMetadataKey + 3781.IBNumberFormatterLocalizesFormatMetadataKey + 3781.IBPluginDependency + 3782.IBPluginDependency + 3783.IBPluginDependency + 3784.IBPluginDependency + 3786.IBPluginDependency + 3787.IBPluginDependency + 3788.IBPluginDependency + 3789.IBPluginDependency + 3790.IBPluginDependency + 3790.IBWindowTemplateEditedContentRect + 3790.NSWindowTemplate.visibleAtLaunch + 3791.IBPluginDependency + 3793.IBPluginDependency + 3794.IBPluginDependency + 3798.IBPluginDependency + 3799.IBPluginDependency + 3800.IBAttributePlaceholdersKey + 3800.IBPluginDependency + 3801.IBAttributePlaceholdersKey + 3801.IBPluginDependency + 3802.IBAttributePlaceholdersKey + 3802.IBPluginDependency + 3803.IBAttributePlaceholdersKey + 3803.IBPluginDependency + 3804.IBAttributePlaceholdersKey + 3804.IBPluginDependency + 3805.IBPluginDependency + 3806.IBPluginDependency + 3807.IBPluginDependency + 3808.IBPluginDependency + 3809.IBPluginDependency + 3810.IBNumberFormatterBehaviorMetadataKey + 3810.IBNumberFormatterLocalizesFormatMetadataKey + 3810.IBPluginDependency + 3811.IBPluginDependency + 3837.IBPluginDependency + 3838.IBPluginDependency + 3839.IBAttributePlaceholdersKey + 3839.IBPluginDependency + 3840.IBAttributePlaceholdersKey + 3840.IBPluginDependency + 3841.IBPluginDependency + 3843.IBAttributePlaceholdersKey + 3843.IBPluginDependency + 3844.IBPluginDependency + 3845.IBPluginDependency + 3846.IBAttributePlaceholdersKey + 3846.IBPluginDependency + 3847.IBAttributePlaceholdersKey + 3847.IBPluginDependency + 3849.IBPluginDependency + 3850.IBPluginDependency + 3878.IBPluginDependency + 3879.IBPluginDependency + 3880.IBAttributePlaceholdersKey + 3880.IBPluginDependency + 3881.IBAttributePlaceholdersKey + 3881.IBPluginDependency + 3882.IBPluginDependency + 3883.IBAttributePlaceholdersKey + 3883.IBPluginDependency + 3884.IBAttributePlaceholdersKey + 3884.IBPluginDependency + 3885.IBPluginDependency + 3886.IBAttributePlaceholdersKey + 3886.IBPluginDependency + 3887.IBPluginDependency + 3888.IBAttributePlaceholdersKey + 3888.IBPluginDependency + 3889.IBPluginDependency + 3890.IBPluginDependency + 3891.IBAttributePlaceholdersKey + 3891.IBPluginDependency + 3892.IBAttributePlaceholdersKey + 3892.IBPluginDependency + 3893.IBAttributePlaceholdersKey + 3893.IBPluginDependency + 3894.IBAttributePlaceholdersKey + 3894.IBPluginDependency + 3896.IBPluginDependency + 3897.IBPluginDependency + 3899.IBPluginDependency + 3900.IBAttributePlaceholdersKey + 3900.IBPluginDependency + 3901.IBPluginDependency + 3935.IBPluginDependency + 3936.IBEditorWindowLastContentRect + 3936.IBPluginDependency + 3937.IBPluginDependency + 3938.IBPluginDependency + 3939.IBPluginDependency + 3959.IBPluginDependency + 3965.IBPluginDependency + 3966.IBAttributePlaceholdersKey + 3966.IBPluginDependency + 3967.IBAttributePlaceholdersKey + 3967.IBPluginDependency + 3968.IBPluginDependency + 3969.IBAttributePlaceholdersKey + 3969.IBPluginDependency + 3992.IBPluginDependency + 3993.IBPluginDependency + 3994.IBAttributePlaceholdersKey + 3994.IBPluginDependency + 3995.IBPluginDependency + 3996.IBEditorWindowLastContentRect + 3996.IBPluginDependency + 3997.IBAttributePlaceholdersKey + 3997.IBPluginDependency + 3998.IBAttributePlaceholdersKey + 3998.IBPluginDependency + 4001.IBPluginDependency + 4002.IBAttributePlaceholdersKey + 4002.IBPluginDependency + 4003.IBAttributePlaceholdersKey + 4003.IBPluginDependency + 4004.IBPluginDependency + 4024.IBPluginDependency + 4027.IBPluginDependency + 4027.IBWindowTemplateEditedContentRect + 4027.NSWindowTemplate.visibleAtLaunch + 4028.IBPluginDependency + 4029.IBPluginDependency + 4030.IBAttributePlaceholdersKey + 4030.IBPluginDependency + 4031.IBPluginDependency + 4032.IBPluginDependency + 4033.IBAttributePlaceholdersKey + 4033.IBPluginDependency + 4034.IBPluginDependency + 4035.IBAttributePlaceholdersKey + 4035.IBPluginDependency + 4036.IBPluginDependency + 4037.IBAttributePlaceholdersKey + 4037.IBPluginDependency + 4038.IBPluginDependency + 4039.IBPluginDependency + 4040.IBPluginDependency + 4041.IBPluginDependency + 4043.IBAttributePlaceholdersKey + 4043.IBPluginDependency + 4044.IBPluginDependency + 4045.IBAttributePlaceholdersKey + 4045.IBPluginDependency + 4046.IBPluginDependency + 4047.IBPluginDependency + 4048.IBAttributePlaceholdersKey + 4048.IBPluginDependency + 4049.IBPluginDependency + 4050.IBAttributePlaceholdersKey + 4050.IBPluginDependency + 4051.IBPluginDependency + 4053.IBPluginDependency + 4054.IBPluginDependency + 4059.IBPluginDependency + 4060.IBPluginDependency + 4062.IBPluginDependency + 4066.IBPluginDependency + 4067.IBPluginDependency + 4069.IBAttributePlaceholdersKey + 4069.IBPluginDependency + 4070.IBAttributePlaceholdersKey + 4070.IBPluginDependency + 4071.IBPluginDependency + 4072.IBPluginDependency + 4073.IBPluginDependency + 4074.IBPluginDependency + 4075.IBPluginDependency + 4076.IBPluginDependency + 4078.IBPluginDependency + 4079.IBPluginDependency + 4080.IBPluginDependency + 4081.IBPluginDependency + 4082.IBPluginDependency + 4083.IBPluginDependency + 4084.IBPluginDependency + 4085.IBPluginDependency + 4086.IBPluginDependency + 4087.IBPluginDependency + 4088.IBPluginDependency + 4089.IBPluginDependency + 4090.IBPluginDependency + 4091.IBPluginDependency + 4092.IBPluginDependency + 4093.IBPluginDependency + 4094.IBPluginDependency + 4095.IBPluginDependency + 4096.IBPluginDependency + 4097.IBPluginDependency + 4098.IBPluginDependency + 4099.IBPluginDependency + 4100.IBPluginDependency + 4101.IBPluginDependency + 4102.IBPluginDependency + 4103.IBPluginDependency + 4104.IBPluginDependency + 4105.IBPluginDependency + 4106.IBPluginDependency + 4107.IBPluginDependency + 4109.IBPluginDependency + 4110.IBPluginDependency + 4111.IBPluginDependency + 4112.IBPluginDependency + 4113.IBPluginDependency + 4114.IBPluginDependency + 4115.IBPluginDependency + 4116.IBPluginDependency + 4179.IBPluginDependency + 4180.IBPluginDependency + 4181.IBPluginDependency + 4181.IBWindowTemplateEditedContentRect + 4181.NSWindowTemplate.visibleAtLaunch + 4182.IBPluginDependency + 4191.IBAttributePlaceholdersKey + 4191.IBPluginDependency + 4192.IBAttributePlaceholdersKey + 4192.IBPluginDependency + 4193.IBPluginDependency + 4194.IBPluginDependency + 4195.IBPluginDependency + 4196.IBPluginDependency + 4197.IBPluginDependency + 4198.IBPluginDependency + 4199.IBPluginDependency + 4200.IBPluginDependency + 4201.IBPluginDependency + 4202.IBPluginDependency + 4203.IBPluginDependency + 4204.IBPluginDependency + 4205.IBPluginDependency + 4206.IBPluginDependency + 4207.IBPluginDependency + 4208.IBPluginDependency + 4209.IBPluginDependency + 4210.IBPluginDependency + 4211.IBPluginDependency + 4212.IBPluginDependency + 4213.IBPluginDependency + 4214.IBPluginDependency + 4215.IBPluginDependency + 4216.IBPluginDependency + 4217.IBPluginDependency + 4218.IBPluginDependency + 4219.IBPluginDependency + 4220.IBPluginDependency + 4221.IBPluginDependency + 4222.IBPluginDependency + 4223.IBPluginDependency + 4224.IBPluginDependency + 4225.IBPluginDependency + 4226.IBPluginDependency + 4227.IBPluginDependency + 4228.IBPluginDependency + 4229.IBPluginDependency + 4230.IBPluginDependency + 4231.IBPluginDependency + 4232.IBPluginDependency + 4233.IBPluginDependency + 4234.IBPluginDependency + 4240.IBPluginDependency + 4241.IBPluginDependency + 4275.IBPluginDependency + 4276.IBPluginDependency + 4277.IBPluginDependency + 4278.IBPluginDependency + 4559.IBPluginDependency + 4560.IBPluginDependency + 4561.IBPluginDependency + 4562.IBPluginDependency + 4565.IBPluginDependency + 4574.IBPluginDependency + 4575.IBPluginDependency + 4576.IBPluginDependency + 4577.IBPluginDependency + 4578.IBPluginDependency + 4580.IBPluginDependency + 4581.IBPluginDependency + 4582.IBPluginDependency + 4583.IBPluginDependency + 4584.IBPluginDependency + 4585.IBPluginDependency + 4586.IBPluginDependency + 4587.IBPluginDependency + 4588.IBAttributePlaceholdersKey + 4588.IBPluginDependency + 4589.IBPluginDependency + 4590.IBAttributePlaceholdersKey + 4590.IBPluginDependency + 4593.IBPluginDependency + 4594.IBPluginDependency + 4597.IBPluginDependency + 4598.IBPluginDependency + 4599.IBPluginDependency + 4600.IBPluginDependency + 4601.IBAttributePlaceholdersKey + 4601.IBPluginDependency + 4602.IBPluginDependency + 4603.IBPluginDependency + 4604.IBPluginDependency + 4605.IBPluginDependency + 4606.IBPluginDependency + 4607.IBPluginDependency + 4610.IBPluginDependency + 4632.IBPluginDependency + 4633.IBPluginDependency + 4634.IBPluginDependency + 4635.IBPluginDependency + 4636.IBPluginDependency + 4637.IBPluginDependency + 4639.IBPluginDependency + 4640.IBPluginDependency + 4647.IBPluginDependency + 4656.IBPluginDependency + 4660.IBPluginDependency + 4661.IBPluginDependency + 4662.IBPluginDependency + 4663.IBPluginDependency + 4664.IBPluginDependency + 4665.IBPluginDependency + 4673.IBPluginDependency + 4693.IBPluginDependency + 4694.IBPluginDependency + 4697.IBPluginDependency + 4711.IBPluginDependency + 4715.IBPluginDependency + 4731.IBPluginDependency + 4745.IBPluginDependency + 4746.IBPluginDependency + 4778.IBPluginDependency + 4792.IBPluginDependency + 4795.IBPluginDependency + 4796.IBPluginDependency + 4797.IBPluginDependency + 4798.IBPluginDependency + 4799.IBPluginDependency + 4800.IBPluginDependency + 4801.IBPluginDependency + 4802.IBPluginDependency + 4809.IBPluginDependency + 4810.IBPluginDependency + 4811.IBPluginDependency + 4812.IBPluginDependency + 4814.IBAttributePlaceholdersKey + 4814.IBPluginDependency + 4815.IBPluginDependency + 4817.IBPluginDependency + 4818.IBPluginDependency + 4822.IBAttributePlaceholdersKey + 4822.IBPluginDependency + 4823.IBPluginDependency + 4850.IBPluginDependency + 4851.IBPluginDependency + 4858.IBPluginDependency + 4859.IBPluginDependency + 4860.IBPluginDependency + 4861.IBPluginDependency + 4862.IBPluginDependency + 4863.IBPluginDependency + 4864.IBPluginDependency + 4865.IBPluginDependency + 4866.IBPluginDependency + 4867.IBPluginDependency + 4868.IBPluginDependency + 4869.IBPluginDependency + 4871.IBPluginDependency + 4872.IBPluginDependency + 4873.IBPluginDependency + 4874.IBPluginDependency + 4876.IBPluginDependency + 4877.IBPluginDependency + 4878.IBPluginDependency + 4879.IBPluginDependency + 4880.IBPluginDependency + 4887.IBPluginDependency + 4888.IBPluginDependency + 4889.IBPluginDependency + 4890.IBPluginDependency + 4891.IBPluginDependency + 4892.IBPluginDependency + 4899.IBPluginDependency + 490.IBPluginDependency + 4900.IBPluginDependency + 4901.IBPluginDependency + 4902.IBPluginDependency + 4903.IBAttributePlaceholdersKey + 4903.IBPluginDependency + 4904.IBAttributePlaceholdersKey + 4904.IBPluginDependency + 4906.IBPluginDependency + 4907.IBPluginDependency + 4908.IBPluginDependency + 4909.IBPluginDependency + 491.IBPluginDependency + 4910.IBAttributePlaceholdersKey + 4910.IBPluginDependency + 4911.IBPluginDependency + 4912.IBPluginDependency + 4913.IBPluginDependency + 4914.IBPluginDependency + 4916.IBPluginDependency + 492.IBPluginDependency + 494.IBPluginDependency + 4947.IBPluginDependency + 5.IBPluginDependency + 5003.IBPluginDependency + 5003.IBViewBoundsToFrameTransform + 5004.IBPluginDependency + 5005.IBPluginDependency + 5006.IBPluginDependency + 5007.IBPluginDependency + 5008.IBPluginDependency + 5009.IBPluginDependency + 5066.IBPluginDependency + 5067.IBPluginDependency + 5068.IBAttributePlaceholdersKey + 5068.IBPluginDependency + 5069.IBPluginDependency + 5080.IBPluginDependency + 5080.IBWindowTemplateEditedContentRect + 5080.NSWindowTemplate.visibleAtLaunch + 5080.windowTemplate.hasMinSize + 5080.windowTemplate.minSize + 5081.IBPluginDependency + 5082.IBPluginDependency + 5083.IBPluginDependency + 5084.IBPluginDependency + 5085.IBPluginDependency + 5086.IBPluginDependency + 5087.IBPluginDependency + 5088.IBPluginDependency + 5089.IBPluginDependency + 5097.IBPluginDependency + 5098.IBPluginDependency + 5099.IBPluginDependency + 5100.IBPluginDependency + 5101.IBPluginDependency + 5102.IBPluginDependency + 5103.IBPluginDependency + 5104.IBPluginDependency + 5105.IBPluginDependency + 5106.IBPluginDependency + 5107.IBPluginDependency + 5111.IBPluginDependency + 5112.IBPluginDependency + 5115.IBPluginDependency + 5127.IBPluginDependency + 5128.IBPluginDependency + 5133.IBPluginDependency + 5134.IBPluginDependency + 5135.IBPluginDependency + 5136.IBPluginDependency + 5140.IBPluginDependency + 5141.IBPluginDependency + 5168.IBPluginDependency + 5169.IBPluginDependency + 5171.IBPluginDependency + 5171.IBViewBoundsToFrameTransform + 5172.IBPluginDependency + 5173.IBPluginDependency + 5174.IBPluginDependency + 5175.IBPluginDependency + 5176.IBPluginDependency + 5177.IBPluginDependency + 5178.IBPluginDependency + 5179.IBPluginDependency + 5186.IBPluginDependency + 5188.IBAttributePlaceholdersKey + 5188.IBPluginDependency + 5189.IBPluginDependency + 5193.IBNumberFormatterBehaviorMetadataKey + 5193.IBNumberFormatterLocalizesFormatMetadataKey + 5193.IBPluginDependency + 5329.IBPluginDependency + 534.IBPluginDependency + 535.IBPluginDependency + 538.IBPluginDependency + 539.IBPluginDependency + 541.IBPluginDependency + 5419.IBPluginDependency + 542.IBPluginDependency + 5420.IBPluginDependency + 5421.IBPluginDependency + 5427.IBAttributePlaceholdersKey + 5427.IBPluginDependency + 5450.IBPluginDependency + 56.IBPluginDependency + 5648.IBPluginDependency + 5649.IBPluginDependency + 5651.IBPluginDependency + 5651.IBWindowTemplateEditedContentRect + 5651.NSWindowTemplate.visibleAtLaunch + 5652.IBPluginDependency + 5653.IBPluginDependency + 5654.IBAttributePlaceholdersKey + 5654.IBPluginDependency + 5658.IBPluginDependency + 5659.IBPluginDependency + 5660.IBPluginDependency + 5661.IBPluginDependency + 5665.IBPluginDependency + 5666.IBPluginDependency + 5667.IBPluginDependency + 5668.IBPluginDependency + 5669.IBPluginDependency + 5670.IBPluginDependency + 5671.IBPluginDependency + 5672.IBPluginDependency + 5673.IBPluginDependency + 5674.IBPluginDependency + 5675.IBPluginDependency + 5676.IBPluginDependency + 5677.IBPluginDependency + 5678.IBPluginDependency + 5679.IBPluginDependency + 5680.IBPluginDependency + 5681.IBPluginDependency + 5682.IBPluginDependency + 5683.IBPluginDependency + 5684.IBPluginDependency + 5685.IBPluginDependency + 5686.IBPluginDependency + 5687.IBPluginDependency + 5688.IBPluginDependency + 5689.IBPluginDependency + 57.IBPluginDependency + 5702.IBPluginDependency + 5713.IBPluginDependency + 575.IBPluginDependency + 576.IBPluginDependency + 578.IBPluginDependency + 58.IBPluginDependency + 5933.IBPluginDependency + 5934.IBPluginDependency + 5935.IBPluginDependency + 5936.IBPluginDependency + 5937.IBPluginDependency + 5938.IBPluginDependency + 5939.IBPluginDependency + 594.IBPluginDependency + 5942.IBPluginDependency + 596.IBPluginDependency + 5963.IBPluginDependency + 5965.IBPluginDependency + 5966.IBPluginDependency + 607.IBPluginDependency + 608.IBEditorWindowLastContentRect + 608.IBPluginDependency + 6126.IBPluginDependency + 6127.IBPluginDependency + 6128.IBAttributePlaceholdersKey + 6128.IBPluginDependency + 6129.IBAttributePlaceholdersKey + 6129.IBPluginDependency + 6130.IBPluginDependency + 6131.IBPluginDependency + 6132.IBPluginDependency + 6133.IBAttributePlaceholdersKey + 6133.IBPluginDependency + 6134.IBAttributePlaceholdersKey + 6134.IBPluginDependency + 6135.IBPluginDependency + 6159.IBAttributePlaceholdersKey + 6159.IBPluginDependency + 6160.IBPluginDependency + 6161.IBAttributePlaceholdersKey + 6161.IBPluginDependency + 6162.IBPluginDependency + 6168.IBPluginDependency + 6169.IBPluginDependency + 6170.IBPluginDependency + 6171.IBPluginDependency + 6172.IBPluginDependency + 6173.IBPluginDependency + 6174.IBPluginDependency + 6177.IBPluginDependency + 6180.IBPluginDependency + 6182.IBPluginDependency + 6183.IBPluginDependency + 6184.IBPluginDependency + 6185.IBAttributePlaceholdersKey + 6185.IBPluginDependency + 6186.IBAttributePlaceholdersKey + 6186.IBPluginDependency + 6187.IBPluginDependency + 6188.IBPluginDependency + 6189.IBPluginDependency + 6190.IBAttributePlaceholdersKey + 6190.IBPluginDependency + 6191.IBAttributePlaceholdersKey + 6191.IBPluginDependency + 6233.IBAttributePlaceholdersKey + 6233.IBPluginDependency + 6234.IBAttributePlaceholdersKey + 6234.IBPluginDependency + 6236.IBPluginDependency + 6238.IBPluginDependency + 627.IBEditorWindowLastContentRect + 627.IBPluginDependency + 627.IBWindowTemplateEditedContentRect + 627.NSWindowTemplate.visibleAtLaunch + 628.IBPluginDependency + 629.IBPluginDependency + 6295.IBPluginDependency + 6295.IBWindowTemplateEditedContentRect + 6295.NSWindowTemplate.visibleAtLaunch + 6295.windowTemplate.hasMaxSize + 6295.windowTemplate.hasMinSize + 6295.windowTemplate.maxSize + 6295.windowTemplate.minSize + 6296.IBPluginDependency + 634.IBPluginDependency + 635.IBPluginDependency + 6352.IBPluginDependency + 6353.IBPluginDependency + 6354.IBPluginDependency + 6355.IBPluginDependency + 6356.IBPluginDependency + 6357.IBPluginDependency + 6358.IBPluginDependency + 6359.IBPluginDependency + 6360.IBPluginDependency + 6361.IBPluginDependency + 6362.IBPluginDependency + 6363.IBPluginDependency + 6364.IBPluginDependency + 6365.IBPluginDependency + 6366.IBPluginDependency + 6368.IBPluginDependency + 6369.IBPluginDependency + 6374.IBPluginDependency + 6376.IBPluginDependency + 6377.IBPluginDependency + 6378.IBPluginDependency + 6379.IBPluginDependency + 6380.IBPluginDependency + 6381.IBPluginDependency + 6382.IBPluginDependency + 6383.IBPluginDependency + 6384.IBPluginDependency + 6385.IBPluginDependency + 6386.IBPluginDependency + 6387.IBPluginDependency + 6388.IBPluginDependency + 6389.IBPluginDependency + 6390.IBPluginDependency + 6391.IBPluginDependency + 6392.IBPluginDependency + 6393.IBPluginDependency + 6394.IBPluginDependency + 6395.IBPluginDependency + 6396.IBPluginDependency + 6397.IBPluginDependency + 6398.IBPluginDependency + 6399.IBPluginDependency + 6400.IBPluginDependency + 6401.IBPluginDependency + 6402.IBPluginDependency + 6405.IBPluginDependency + 6406.IBPluginDependency + 6407.IBPluginDependency + 6408.IBPluginDependency + 6413.IBPluginDependency + 6414.IBPluginDependency + 6415.IBPluginDependency + 6418.IBPluginDependency + 6419.IBPluginDependency + 6420.IBPluginDependency + 6421.IBPluginDependency + 6422.IBPluginDependency + 6423.IBPluginDependency + 6424.IBPluginDependency + 6425.IBPluginDependency + 6426.IBPluginDependency + 6427.IBPluginDependency + 6428.IBPluginDependency + 6429.IBPluginDependency + 6430.IBPluginDependency + 6431.IBPluginDependency + 6432.IBPluginDependency + 6433.IBPluginDependency + 6434.IBPluginDependency + 6435.IBPluginDependency + 6436.IBPluginDependency + 6437.IBPluginDependency + 6438.IBPluginDependency + 6440.IBPluginDependency + 6441.IBPluginDependency + 6451.IBPluginDependency + 6484.IBPluginDependency + 6485.IBPluginDependency + 6486.IBPluginDependency + 6487.IBPluginDependency + 6488.IBPluginDependency + 6489.IBPluginDependency + 6491.IBPluginDependency + 6492.IBPluginDependency + 6493.IBPluginDependency + 6494.IBPluginDependency + 6496.IBPluginDependency + 6497.IBPluginDependency + 6498.IBPluginDependency + 6499.IBPluginDependency + 6611.IBPluginDependency + 6612.IBPluginDependency + 6617.IBPluginDependency + 6618.IBAttributePlaceholdersKey + 6618.IBPluginDependency + 6619.IBPluginDependency + 6622.IBPluginDependency + 6623.IBAttributePlaceholdersKey + 6623.IBPluginDependency + 6624.IBPluginDependency + 6627.IBAttributePlaceholdersKey + 6627.IBPluginDependency + 6628.IBPluginDependency + 6630.IBAttributePlaceholdersKey + 6630.IBPluginDependency + 6631.IBPluginDependency + 6634.IBAttributePlaceholdersKey + 6634.IBPluginDependency + 6635.IBAttributePlaceholdersKey + 6635.IBPluginDependency + 6651.IBPluginDependency + 6652.IBPluginDependency + 6931.IBPluginDependency + 6998.IBPluginDependency + 6999.IBPluginDependency + 7002.IBPluginDependency + 7014.IBEditorWindowLastContentRect + 7014.IBPluginDependency + 7128.IBPluginDependency + 7129.IBPluginDependency + 7130.IBPluginDependency + 7131.IBPluginDependency + 7132.IBPluginDependency + 7133.IBPluginDependency + 7134.IBPluginDependency + 7135.IBPluginDependency + 7136.IBPluginDependency + 7137.IBPluginDependency + 7138.IBPluginDependency + 7139.IBPluginDependency + 714.IBPluginDependency + 7140.IBPluginDependency + 7141.IBPluginDependency + 7142.IBPluginDependency + 715.IBPluginDependency + 7168.IBPluginDependency + 7169.IBPluginDependency + 7171.IBPluginDependency + 7171.IBWindowTemplateEditedContentRect + 7171.NSWindowTemplate.visibleAtLaunch + 7172.IBPluginDependency + 7173.IBPluginDependency + 7173.IBWindowTemplateEditedContentRect + 7173.NSWindowTemplate.visibleAtLaunch + 7174.IBPluginDependency + 7175.IBPluginDependency + 7175.IBWindowTemplateEditedContentRect + 7175.NSWindowTemplate.visibleAtLaunch + 7176.IBPluginDependency + 7179.IBPluginDependency + 7179.IBWindowTemplateEditedContentRect + 7179.NSWindowTemplate.visibleAtLaunch + 7180.IBPluginDependency + 7182.IBPluginDependency + 7183.IBPluginDependency + 7184.IBPluginDependency + 7185.IBPluginDependency + 7186.IBAttributePlaceholdersKey + 7186.IBPluginDependency + 7187.IBPluginDependency + 7188.IBAttributePlaceholdersKey + 7188.IBPluginDependency + 7189.IBAttributePlaceholdersKey + 7189.IBPluginDependency + 7190.IBAttributePlaceholdersKey + 7190.IBPluginDependency + 7191.IBPluginDependency + 7192.IBPluginDependency + 72.IBPluginDependency + 7210.IBPluginDependency + 7211.IBPluginDependency + 7212.IBPluginDependency + 7213.IBPluginDependency + 7214.IBPluginDependency + 7215.IBPluginDependency + 7216.IBPluginDependency + 7217.IBPluginDependency + 7218.IBPluginDependency + 7219.IBPluginDependency + 7220.IBPluginDependency + 7221.IBPluginDependency + 7222.IBPluginDependency + 7223.IBPluginDependency + 7224.IBPluginDependency + 7225.IBPluginDependency + 7225.IBWindowTemplateEditedContentRect + 7225.NSWindowTemplate.visibleAtLaunch + 7226.IBPluginDependency + 7227.IBPluginDependency + 7228.IBPluginDependency + 7229.IBPluginDependency + 7230.IBPluginDependency + 7231.IBPluginDependency + 7232.IBPluginDependency + 7233.IBPluginDependency + 7234.IBPluginDependency + 7235.IBPluginDependency + 7236.IBPluginDependency + 7237.IBPluginDependency + 7238.IBPluginDependency + 7239.IBPluginDependency + 7240.IBPluginDependency + 7241.IBPluginDependency + 7266.IBPluginDependency + 7267.IBPluginDependency + 7268.IBPluginDependency + 7269.IBPluginDependency + 7270.IBPluginDependency + 7271.IBPluginDependency + 7272.IBPluginDependency + 7273.IBPluginDependency + 7274.IBPluginDependency + 7275.IBPluginDependency + 7276.IBPluginDependency + 7277.IBPluginDependency + 7278.IBPluginDependency + 7279.IBPluginDependency + 7280.IBPluginDependency + 7285.IBPluginDependency + 7286.IBPluginDependency + 7287.IBPluginDependency + 7288.IBPluginDependency + 7289.IBPluginDependency + 7290.IBPluginDependency + 7291.IBPluginDependency + 7292.IBPluginDependency + 7293.IBPluginDependency + 7294.IBNumberFormatterBehaviorMetadataKey + 7294.IBNumberFormatterLocalizesFormatMetadataKey + 7294.IBPluginDependency + 7295.IBNumberFormatterBehaviorMetadataKey + 7295.IBNumberFormatterLocalizesFormatMetadataKey + 7295.IBPluginDependency + 7301.IBPluginDependency + 7302.IBPluginDependency + 7305.IBPluginDependency + 7308.IBPluginDependency + 7309.IBPluginDependency + 7312.IBPluginDependency + 7313.IBPluginDependency + 7316.IBPluginDependency + 7317.IBPluginDependency + 7320.IBPluginDependency + 7353.IBPluginDependency + 7354.IBPluginDependency + 7355.IBPluginDependency + 7358.IBPluginDependency + 7359.IBPluginDependency + 7392.IBPluginDependency + 7393.IBPluginDependency + 7395.IBPluginDependency + 7396.IBPluginDependency + 7398.IBPluginDependency + 7399.IBPluginDependency + 74.IBPluginDependency + 7401.IBPluginDependency + 7402.IBPluginDependency + 7404.IBPluginDependency + 7405.IBPluginDependency + 7433.IBPluginDependency + 7434.IBPluginDependency + 7436.IBPluginDependency + 7437.IBPluginDependency + 7439.IBPluginDependency + 7440.IBPluginDependency + 7442.IBPluginDependency + 7443.IBPluginDependency + 7445.IBPluginDependency + 7446.IBPluginDependency + 7449.IBPluginDependency + 7449.IBWindowTemplateEditedContentRect + 7449.NSWindowTemplate.visibleAtLaunch + 7450.IBPluginDependency + 7451.IBPluginDependency + 7452.IBPluginDependency + 7454.IBPluginDependency + 7455.IBPluginDependency + 7456.IBPluginDependency + 7457.IBPluginDependency + 7458.IBPluginDependency + 7459.IBPluginDependency + 7460.IBPluginDependency + 7461.IBPluginDependency + 7462.IBPluginDependency + 7463.IBPluginDependency + 7464.IBPluginDependency + 7465.IBNumberFormatterBehaviorMetadataKey + 7465.IBNumberFormatterLocalizesFormatMetadataKey + 7465.IBPluginDependency + 7466.IBPluginDependency + 7467.IBPluginDependency + 7468.IBPluginDependency + 7469.IBPluginDependency + 7470.IBPluginDependency + 7471.IBPluginDependency + 7472.IBPluginDependency + 7473.IBPluginDependency + 7474.IBPluginDependency + 7486.IBPluginDependency + 7487.IBPluginDependency + 7488.IBPluginDependency + 7489.IBPluginDependency + 75.IBPluginDependency + 7515.IBPluginDependency + 7515.IBWindowTemplateEditedContentRect + 7515.NSWindowTemplate.visibleAtLaunch + 7515.windowTemplate.hasMinSize + 7515.windowTemplate.minSize + 7516.IBPluginDependency + 7517.IBPluginDependency + 7518.IBPluginDependency + 7519.IBPluginDependency + 7520.IBPluginDependency + 7521.IBPluginDependency + 7522.IBPluginDependency + 7525.IBPluginDependency + 7526.IBPluginDependency + 7528.IBPluginDependency + 7531.IBPluginDependency + 7537.IBPluginDependency + 7540.IBPluginDependency + 7541.IBPluginDependency + 7542.IBPluginDependency + 7543.IBPluginDependency + 7544.IBPluginDependency + 7545.IBPluginDependency + 7546.IBPluginDependency + 7551.IBPluginDependency + 7552.IBPluginDependency + 7553.IBPluginDependency + 7554.IBPluginDependency + 7555.IBPluginDependency + 7556.IBPluginDependency + 7583.IBPluginDependency + 7584.IBPluginDependency + 7594.IBPluginDependency + 7595.IBPluginDependency + 7596.IBPluginDependency + 7597.IBPluginDependency + 7598.IBAttributePlaceholdersKey + 7598.IBPluginDependency + 7599.IBAttributePlaceholdersKey + 7599.IBPluginDependency + 7600.IBAttributePlaceholdersKey + 7600.IBPluginDependency + 7601.IBAttributePlaceholdersKey + 7601.IBPluginDependency + 7602.IBPluginDependency + 7603.IBPluginDependency + 7604.IBAttributePlaceholdersKey + 7604.IBPluginDependency + 7605.IBPluginDependency + 7606.IBPluginDependency + 7607.IBEditorWindowLastContentRect + 7607.IBPluginDependency + 7610.IBAttributePlaceholdersKey + 7610.IBPluginDependency + 7612.IBPluginDependency + 7624.IBPluginDependency + 7625.IBPluginDependency + 7666.CustomClassName + 7666.IBPluginDependency + 7707.IBPluginDependency + 7707.IBWindowTemplateEditedContentRect + 7707.NSWindowTemplate.visibleAtLaunch + 7708.IBPluginDependency + 7715.IBPluginDependency + 7716.IBPluginDependency + 7725.IBPluginDependency + 7726.IBPluginDependency + 7729.IBPluginDependency + 7730.IBPluginDependency + 7740.IBPluginDependency + 7759.IBPluginDependency + 7760.IBPluginDependency + 7761.IBPluginDependency + 7762.IBPluginDependency + 7765.IBNumberFormatterBehaviorMetadataKey + 7765.IBNumberFormatterLocalizesFormatMetadataKey + 7765.IBPluginDependency + 7766.IBPluginDependency + 7767.IBPluginDependency + 7771.IBPluginDependency + 7772.IBPluginDependency + 7773.IBPluginDependency + 7774.IBPluginDependency + 7775.IBPluginDependency + 7776.IBPluginDependency + 7777.IBPluginDependency + 7778.IBPluginDependency + 7779.IBPluginDependency + 7780.IBPluginDependency + 7781.IBPluginDependency + 7792.IBAttributePlaceholdersKey + 7792.IBPluginDependency + 7793.IBPluginDependency + 7794.IBNumberFormatterBehaviorMetadataKey + 7794.IBNumberFormatterLocalizesFormatMetadataKey + 7794.IBNumberFormatterSampleNumberKey + 7794.IBPluginDependency + 7802.IBAttributePlaceholdersKey + 7802.IBPluginDependency + 7803.IBPluginDependency + 7804.IBPluginDependency + 7805.IBPluginDependency + 7806.IBPluginDependency + 7807.IBPluginDependency + 7808.IBPluginDependency + 7809.IBPluginDependency + 7810.IBPluginDependency + 7811.IBPluginDependency + 7812.IBPluginDependency + 7813.IBPluginDependency + 7817.IBPluginDependency + 7817.IBWindowTemplateEditedContentRect + 7817.NSWindowTemplate.visibleAtLaunch + 7818.IBPluginDependency + 7820.IBPluginDependency + 7821.IBPluginDependency + 7822.IBPluginDependency + 7823.IBPluginDependency + 7824.IBPluginDependency + 7825.IBPluginDependency + 7826.IBPluginDependency + 7827.IBPluginDependency + 7828.IBPluginDependency + 7829.IBPluginDependency + 783.IBPluginDependency + 7830.IBPluginDependency + 7831.IBPluginDependency + 7836.IBPluginDependency + 7837.IBPluginDependency + 7838.IBPluginDependency + 7839.IBPluginDependency + 784.IBPluginDependency + 7840.IBNumberFormatterBehaviorMetadataKey + 7840.IBNumberFormatterLocalizesFormatMetadataKey + 7840.IBPluginDependency + 7843.IBAttributePlaceholdersKey + 7843.IBPluginDependency + 7844.IBPluginDependency + 7845.IBAttributePlaceholdersKey + 7845.IBPluginDependency + 7846.IBPluginDependency + 7847.IBPluginDependency + 7848.IBPluginDependency + 785.IBPluginDependency + 7855.IBEditorWindowLastContentRect + 7855.IBPluginDependency + 7855.IBWindowTemplateEditedContentRect + 7855.NSWindowTemplate.visibleAtLaunch + 7856.IBPluginDependency + 7857.IBPluginDependency + 7857.IBViewBoundsToFrameTransform + 7858.IBPluginDependency + 7859.IBPluginDependency + 7860.IBPluginDependency + 7861.IBPluginDependency + 7862.IBPluginDependency + 7863.IBPluginDependency + 7864.IBPluginDependency + 7866.IBAttributePlaceholdersKey + 7866.IBPluginDependency + 7867.IBPluginDependency + 787.IBPluginDependency + 7871.IBAttributePlaceholdersKey + 7871.IBPluginDependency + 7872.IBPluginDependency + 7873.IBAttributePlaceholdersKey + 7873.IBPluginDependency + 7874.IBPluginDependency + 7875.IBPluginDependency + 7876.IBPluginDependency + 7877.IBPluginDependency + 7878.IBPluginDependency + 7879.IBPluginDependency + 788.IBPluginDependency + 7880.IBPluginDependency + 7881.IBPluginDependency + 7886.IBPluginDependency + 789.IBPluginDependency + 7899.IBPluginDependency + 79.IBPluginDependency + 794.IBPluginDependency + 794.IBWindowTemplateEditedContentRect + 794.NSWindowTemplate.visibleAtLaunch + 795.IBAttributePlaceholdersKey + 795.IBPluginDependency + 796.IBPluginDependency + 796.IBWindowTemplateEditedContentRect + 796.NSWindowTemplate.visibleAtLaunch + 797.IBPluginDependency + 7971.IBPluginDependency + 7972.IBPluginDependency + 7973.IBPluginDependency + 7974.IBPluginDependency + 7978.IBPluginDependency + 7987.IBPluginDependency + 7988.IBPluginDependency + 7989.IBPluginDependency + 7993.IBPluginDependency + 7994.IBPluginDependency + 7995.IBPluginDependency + 7996.IBPluginDependency + 7997.IBPluginDependency + 7998.IBPluginDependency + 80.IBPluginDependency + 8003.IBPluginDependency + 8009.IBPluginDependency + 8012.IBPluginDependency + 8013.IBPluginDependency + 8014.IBPluginDependency + 8015.IBPluginDependency + 8016.IBPluginDependency + 8021.IBPluginDependency + 8022.IBPluginDependency + 8023.IBPluginDependency + 8024.IBPluginDependency + 8025.IBPluginDependency + 8030.IBPluginDependency + 8031.IBPluginDependency + 8032.IBPluginDependency + 8033.IBPluginDependency + 8034.IBPluginDependency + 8043.IBPluginDependency + 8044.IBPluginDependency + 8045.IBAttributePlaceholdersKey + 8045.IBPluginDependency + 8046.IBPluginDependency + 8047.IBNumberFormatterBehaviorMetadataKey + 8047.IBNumberFormatterLocalizesFormatMetadataKey + 8047.IBPluginDependency + 8048.IBPluginDependency + 8049.IBPluginDependency + 8056.IBPluginDependency + 8057.IBPluginDependency + 8058.IBAttributePlaceholdersKey + 8058.IBPluginDependency + 8059.IBPluginDependency + 8060.IBPluginDependency + 8061.IBPluginDependency + 8066.IBNumberFormatterBehaviorMetadataKey + 8066.IBNumberFormatterLocalizesFormatMetadataKey + 8066.IBPluginDependency + 8075.IBPluginDependency + 8076.IBPluginDependency + 8077.IBPluginDependency + 8078.IBPluginDependency + 8084.IBPluginDependency + 81.IBPluginDependency + 8134.IBPluginDependency + 8134.IBWindowTemplateEditedContentRect + 8134.NSWindowTemplate.visibleAtLaunch + 8135.IBPluginDependency + 8136.IBPluginDependency + 8137.IBPluginDependency + 8138.IBPluginDependency + 8139.IBPluginDependency + 8140.IBPluginDependency + 8141.IBPluginDependency + 8142.IBPluginDependency + 8143.IBPluginDependency + 8144.IBPluginDependency + 8145.IBPluginDependency + 8146.IBPluginDependency + 8147.IBPluginDependency + 8148.IBPluginDependency + 8149.IBPluginDependency + 8150.IBPluginDependency + 8151.IBPluginDependency + 8152.IBPluginDependency + 8153.IBPluginDependency + 8154.IBPluginDependency + 8155.IBPluginDependency + 8156.IBPluginDependency + 8157.IBPluginDependency + 8158.IBPluginDependency + 8159.IBPluginDependency + 8160.IBPluginDependency + 8161.IBPluginDependency + 8162.IBPluginDependency + 8164.IBPluginDependency + 8181.IBPluginDependency + 8182.IBPluginDependency + 8183.IBPluginDependency + 8184.IBPluginDependency + 8185.IBPluginDependency + 8186.IBPluginDependency + 8188.IBPluginDependency + 8189.IBPluginDependency + 8194.IBPluginDependency + 8195.IBPluginDependency + 823.IBPluginDependency + 824.IBPluginDependency + 8245.IBPluginDependency + 8246.IBPluginDependency + 8247.IBPluginDependency + 8248.IBPluginDependency + 8249.IBPluginDependency + 825.IBPluginDependency + 8251.IBPluginDependency + 8252.IBPluginDependency + 8253.IBPluginDependency + 8254.IBPluginDependency + 8255.IBPluginDependency + 8256.IBPluginDependency + 8257.IBPluginDependency + 8258.IBPluginDependency + 8259.IBPluginDependency + 826.IBPluginDependency + 8260.IBPluginDependency + 8261.IBPluginDependency + 8262.IBPluginDependency + 8263.IBPluginDependency + 8264.IBPluginDependency + 8265.IBPluginDependency + 8266.IBPluginDependency + 8267.IBPluginDependency + 8268.IBPluginDependency + 8269.IBPluginDependency + 827.IBPluginDependency + 8270.IBPluginDependency + 8271.IBPluginDependency + 828.IBPluginDependency + 829.IBPluginDependency + 8295.IBPluginDependency + 83.IBPluginDependency + 830.IBPluginDependency + 8302.IBAttributePlaceholdersKey + 8302.IBPluginDependency + 8302.IBViewBoundsToFrameTransform + 8303.IBPluginDependency + 8307.IBPluginDependency + 8308.IBPluginDependency + 8308.IBViewBoundsToFrameTransform + 8309.IBPluginDependency + 831.IBPluginDependency + 8310.IBPluginDependency + 8316.IBPluginDependency + 832.IBPluginDependency + 8322.IBAttributePlaceholdersKey + 8322.IBPluginDependency + 8322.IBViewBoundsToFrameTransform + 8323.IBPluginDependency + 833.IBPluginDependency + 834.IBPluginDependency + 835.IBPluginDependency + 836.IBPluginDependency + 843.IBPluginDependency + 844.IBPluginDependency + 845.IBPluginDependency + 846.IBPluginDependency + 850.IBPluginDependency + 855.IBPluginDependency + 861.IBPluginDependency + 861.IBWindowTemplateEditedContentRect + 861.NSWindowTemplate.visibleAtLaunch + 862.IBPluginDependency + 865.IBPluginDependency + 866.IBPluginDependency + 872.IBPluginDependency + 875.IBPluginDependency + 876.IBPluginDependency + 877.IBPluginDependency + 878.IBPluginDependency + 879.IBPluginDependency + 880.IBPluginDependency + 883.IBPluginDependency + 884.IBPluginDependency + 885.IBPluginDependency + 886.IBPluginDependency + 887.IBPluginDependency + 888.IBPluginDependency + 889.IBPluginDependency + 890.IBPluginDependency + 897.IBPluginDependency + 898.IBPluginDependency + 899.IBPluginDependency + 900.IBPluginDependency + 901.IBPluginDependency + 902.IBPluginDependency + 903.IBPluginDependency + 904.IBPluginDependency + 905.IBPluginDependency + 906.IBPluginDependency + 907.IBPluginDependency + 908.IBPluginDependency + 909.IBPluginDependency + 910.IBPluginDependency + 911.IBPluginDependency + 912.IBPluginDependency + 913.IBPluginDependency + 914.IBPluginDependency + 92.IBPluginDependency + 924.IBPluginDependency + 925.IBPluginDependency + 926.IBPluginDependency + 927.IBPluginDependency + 928.IBPluginDependency + 929.IBPluginDependency + 930.IBPluginDependency + 931.IBPluginDependency + 932.IBPluginDependency + 933.IBPluginDependency + 934.IBPluginDependency + 935.IBPluginDependency + 936.IBPluginDependency + 937.IBPluginDependency + 938.IBPluginDependency + 939.IBPluginDependency + 940.IBPluginDependency + 941.IBPluginDependency + 942.IBPluginDependency + 943.IBPluginDependency + 944.IBPluginDependency + 945.IBPluginDependency + 946.IBPluginDependency + 947.IBPluginDependency + 948.IBPluginDependency + 949.IBPluginDependency + 950.IBPluginDependency + 951.IBPluginDependency + 952.IBPluginDependency + 953.IBPluginDependency + 954.IBPluginDependency + 955.IBPluginDependency + 956.IBPluginDependency + 957.IBPluginDependency + 958.IBPluginDependency + 959.IBPluginDependency + 960.IBPluginDependency + 961.IBPluginDependency + 962.IBPluginDependency + 963.IBPluginDependency + 964.IBPluginDependency + 965.IBPluginDependency + 966.IBPluginDependency + 967.IBPluginDependency + 968.IBPluginDependency + 969.IBPluginDependency + 970.IBPluginDependency + 971.IBPluginDependency + 977.IBPluginDependency + 978.IBPluginDependency + 979.IBPluginDependency + 980.IBPluginDependency + 983.IBPluginDependency + 984.IBPluginDependency + 987.IBPluginDependency + 989.IBPluginDependency + 990.IBPluginDependency + 991.IBPluginDependency + 993.IBPluginDependency + 998.IBPluginDependency + 998.IBWindowTemplateEditedContentRect + 998.NSWindowTemplate.visibleAtLaunch + 999.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{629, 734}, {520, 422}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwmgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default size for new DS display views. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1014, 761}, {126, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default rotation for new DS display views. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{989, 796}, {126, 113}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDioAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDiIAAwhAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1061, 976}, {196, 93}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + The default rotation for new DS display views. A custom rotation angle may be entered here. (The angle must be between 0š and 360š.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{812, 642}, {489, 425}} + com.apple.InterfaceBuilder.CocoaPlugin + + InitialTabViewItem + + InitialTabViewItem + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default video filter for new DS display views, producing a variety of visual effects. The incurred CPU usage is dependent on which filter is used. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1388, 659}, {213, 198}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{903, 745}, {400, 373}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default sound volume. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1022, 901}, {132, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + New display views will show both DS screens by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + New display views will show only the DS touch screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + {{343, 426}, {554, 373}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may dramatically improve performance, but may also cause some ROMs to stop working and cause other ROMs to show erratic behavior. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Makes more features available to the emulated hardware, but may affect ROM compatibility. May incur CPU usage, depending on which BIOS options are used. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the BIOS to use the ARM processor SWI routines. This is required for some ROMs to work properly. May CPU usage, depending on if the ROM uses the ARM SWIs. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Prevents the Delay SWI from running. This may reduce the SWI-related CPU usage for some ROMs, but may also affect ROM compatibility. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Uses an external firmware image, overriding the internally emulated firmware. To change your firmware settings, you must do so through the emulated environment. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Performs no sound interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the advanced SPU emulation engine, which improves the accuracy of the emulated sound. This option provides a richer audio experience. Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Lowest latency and lowest CPU usage sound synchronization method that is compatible with the advanced SPU emulation engine. However, this method causes sound distortion as emulation speed decreases below normal, and causes sound detail loss as emulation speed increases above normal. Very low latency. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Pitch bends the sound depending on the emulation speed. Provides the smoothest sound, regardless of emulation speed. High latency. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sounds like "Dual SPU Synch/Asynch," but is a little smoother and has some added latency. Medium latency. Low CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Has the lowest latency of all the sound synchronization methods, but is not compatible with the advanced SPU emulation engine. Neglible latency. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the use of more complex sound synchronization methods. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Upon emulator execution, starts the firmware instead of the ROM. This will allow you access to some of the emulated hardware features. To boot from firmware, an external firmware image and both BIOS images must be loaded. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{888, 368}, {700, 399}} + + + {700, 250} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1156, 396}, {380, 200}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{189, 918}, {512, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{463, 585}, {315, 333}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDNgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1241, 208}, {335, 163}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{502, 517}, {640, 480}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enable to use bilinear interpolation on the final video output by default. This creates a smoothed, but slightly blurry, image effect. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enable to use bilinear interpolation on the final video output. This creates a smoothed, but slightly blurry, image effect. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1328, 256}, {288, 511}} + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the advanced SPU emulation engine, which improves the accuracy of the emulated sound. This option provides a richer audio experience. Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Has the lowest latency of all the sound synchronization methods, but is not compatible with the advanced SPU emulation engine. Neglible latency. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the use of more complex sound synchronization methods. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the current sound volume. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will produce smoother color transitions than a standard DS. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will emulate the DS toon edge marking. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will render fog effects. This may affect the atmospheric look of 3D scenes. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, the 3D renderer will render textures onto 3D surfaces. When not set, all 3D surfaces will be solid colored (usually white). May slightly reduce CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1000, 254}, {301, 560}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will produce smoother color transitions than a standard DS. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will emulate the DS toon edge marking. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will render fog effects. This may affect the atmospheric look of 3D scenes. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, the 3D renderer will render textures onto 3D surfaces. When not set, all 3D surfaces will be solid colored (usually white). May slightly reduce CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Disables 3D rendering. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME's internal software 3D rendering engine. Has the best 3D emulation accuracy. Very high CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default 3D rendering engine for new DS display views. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Disables 3D rendering. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME's internal software 3D rendering engine. Has the best 3D emulation accuracy. Very high CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME automatically chooses the best number of rendering threads based on your hardware. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on the same thread as the core emulation thread. Best performance option for single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on two separate threads. May improve 3D performance on multiprocessor machines, but slightly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on four separate threads. May improve 3D performance on multiprocessor machines, but significantly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default number of processing threads that DeSmuME will use for 3D rendering. This is an option for advanced users. For most cases, it's best to keep this set to Automatic. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME automatically chooses the best number of rendering threads based on your hardware. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on the same thread as the core emulation thread by default. Best performance option for single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on two separate threads by default. May improve 3D performance on multiprocessor machines, but slightly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on four separate threads by default. May improve 3D performance on multiprocessor machines, but significantly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{778, 855}, {132, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Lowest latency and lowest CPU usage sound synchronization method that is compatible with the advanced SPU emulation engine. However, this method causes sound distortion as emulation speed decreases below normal, and causes sound detail loss as emulation speed increases above normal. Very low latency. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Pitch bends the sound depending on the emulation speed. Provides the smoothest sound, regardless of emulation speed. High latency. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sounds like "Dual SPU Synch/Asynch," but is a little smoother and has some added latency. Medium latency. Low CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default audio output engine. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1055, 1057}, {220, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Disables audio output. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Native audio output engine for Mac OS X. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Disables audio output. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Native audio output engine for Mac OS X. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1332, 177}, {286, 522}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may dramatically improve performance, but may also cause some ROMs to stop working and cause other ROMs to show erratic behavior. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Makes more features available to the emulated hardware, but may affect ROM compatibility. May incur CPU usage, depending on which BIOS options are used. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the BIOS to use the ARM processor SWI routines. This is required for some ROMs to work properly. May incur CPU usage, depending on if the ROM uses the ARM SWIs. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Prevents the Delay SWI from running. This may reduce the SWI-related CPU usage for some ROMs, but may also affect ROM compatibility. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Uses an external firmware image, overriding the internally emulated firmware. To change your firmware settings, you must do so through the emulated environment. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Upon emulator execution, starts the firmware instead of the ROM. This will allow you access to some of the emulated hardware features. To boot from firmware, an external firmware image and both BIOS images must be loaded. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Nicknames should be a maximum of 10 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Messages should be a maximum of 26 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{999, 689}, {305, 315}} + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Nicknames should be a maximum of 10 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Messages should be a maximum of 26 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + All addresses start with 0x02. Enter the last 6 digits of the address here in hexadecimal format. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enter the numeric value to write to the target address. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Select the memory size of the target address in bytes. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Shows/hides the address search drawer. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Resets the memory address search. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Searches the DS memory for all addresses that currently carry the search value. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Searches the DS memory for any addresses which match the comparative search criteria. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABC6gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Immediately writes the value once to the target address. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1063, 215}, {500, 416}} + + + {500, 272} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABBgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Whenever DeSmuME needs to determine a ROM's save type, use the ADVANsCEne database to determine the save type before using the internal autodetect algorithm. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + New display views will show only the main DS screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{548, 341}, {550, 450}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + InitialTabViewItem + + InitialTabViewItem + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{513, 865}, {196, 53}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the classic interpreter engine to emulate the ARM7 and ARM9 CPUs by default. It features very high compatibility with most configurations, as well as high accuracy with most ROMs. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the dynarec engine to emulate the ARM7 and ARM9 CPUs by default. It features far superior performance to the interpreter engine, but is not compatible with all configurations. Also, some ROMs may not work or may show erratic behavior when using this engine. (This feature is not available on a PowerPC-based Mac.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Uses the classic interpreter engine to emulate the ARM7 and ARM9 CPUs. It features very high compatibility with most configurations, as well as high accuracy with most ROMs. [Changes to the CPU emulation engine will only take effect after a ROM is loaded or after the emulator is reset.] + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Uses the dynarec engine to emulate the ARM7 and ARM9 CPUs. It features far superior performance to the interpreter engine, but is not compatible with all configurations. Also, some ROMs may not work or may show erratic behavior when using this engine. (This feature is not available on a PowerPC-based Mac.) [Changes to the CPU emulation engine will only take effect after a ROM is loaded or after the emulator is reset.] + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enable to use vertical sync on the video output. This setting eliminates screen tearing, but may also reduce the video frame rate. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enable to use vertical sync on the video output by default. This setting eliminates screen tearing, but may also reduce the video frame rate. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + If the display orientation is vertical, the main screen will be arranged above the touch screen by default. If the display layout is horizontal, the main screen will be arranged left of the touch screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + If the display orientation is vertical, the touch screen will be arranged above the main screen by default. If the display layout is horizontal, the touch screen will be arranged left of the main screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Arranges the DS screens where one screen is to the left of the other screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Arranges the DS screens where one screen is above the other screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but 3D emulation is less accurate overall. Low CPU usage. However, it requires the usage of your GPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but 3D emulation is less accurate overall. Low CPU usage. However, it requires the usage of your GPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{42, 932}, {400, 100}} + com.apple.InterfaceBuilder.CocoaPlugin + {{42, 932}, {400, 100}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{962, 321}, {580, 592}} + + + + {580, 592} + {580, 592} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the edges of 3D objects using multisample antialiasing (MSAA). No CPU usage. However, it requires additional VRAM from your GPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the edges of 3D objects using multisample antialiasing (MSAA) by default. No CPU usage. However, it requires additional VRAM from your GPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Makes emulation timing more accurate, but may reduce ROM compatibility. Enabling this setting may improve 3D rendering performance. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Makes emulation timing more accurate, but may reduce ROM compatibility. Enabling this setting may improve 3D rendering performance. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on eight separate threads by default. May improve 3D performance on multiprocessor machines, but greatly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on eight separate threads by default. May improve 3D performance on multiprocessor machines, but greatly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{661, 587}, {640, 495}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1237, 579}, {350, 263}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1202, 1031}, {350, 125}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{976, 297}, {620, 267}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1085, 723}, {516, 283}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Predefined noise samples that simulate sounds like speaking into the microphone. (Some games, such as "The Legend of Zelda: Spirit Tracks," work especially well with this.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Randomly generated white noise that simulates sounds like blowing into the microphone. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Generated pure sine wave tone. Can be adjusted for frequency. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Predefined samples loaded from an audio file. (Whenever the Microphone command is deactivated, sample reading will be reset to the beginning of the file.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1202, 877}, {350, 125}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1127, 996}, {467, 160}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{996, 161}, {620, 442}} + + + {620, 180} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Saves the current configuration to the selected profile. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Deletes the selected profile. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Replaces the current configuration with the selected profile. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renames the selected profile. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Shows the selected profile. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{925, 1037}, {265, 33}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Creates a new profile using the current configuration. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + InputProfileController + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{853, 403}, {452, 115}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + The default separation for new DS display views. A custom gap percentage may be entered here. (The gap percentage must be between 0% and 200%.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default screen separation for new DS display views. (A value of 100% will create a gap between the screens that has the same relative distance as a hardware DS.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1120, 724}, {441, 133}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the screen separation to 0%, which removes any gap between the screens. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the screen separation to 100%, which creates a gap between the screens that has the same relative distance as a hardware DS. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{342, 490}, {640, 355}} + com.apple.InterfaceBuilder.CocoaPlugin + {{342, 490}, {640, 355}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwwwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Choose a directory where the R4 device stores its data. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sends a SLOT-1 eject IRQ. The emulator will then detect that no device is inserted into SLOT-1. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Resets the emulation. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1299, 599}, {194, 241}} + + + YES + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1413, 517}, {204, 521}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Changes the maximum instruction block size for the dynamic recompiler. Larger values improve performance, but may reduce emulation accuracy. (The block size must be between 1 and 100.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Changes the default maximum instruction block size for the dynamic recompiler. Larger values improve performance, but may reduce emulation accuracy. (The block size must be between 1 and 100.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1444, 249}, {173, 339}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBqAAAwygAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwgQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When checked, the ROM data is only loaded as needed. When unchecked, all of the ROM data is completely preloaded into RAM before use. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwpwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{668, 434}, {580, 588}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1117, 350}, {467, 128}} + + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 8330 + + + + YES + + AppDelegate + NSObject + + YES + + YES + bugReport: + launchForums: + launchWebsite: + supportRequest: + + + YES + id + id + id + id + + + + YES + + YES + bugReport: + launchForums: + launchWebsite: + supportRequest: + + + YES + + bugReport: + id + + + launchForums: + id + + + launchWebsite: + id + + + supportRequest: + id + + + + + YES + + YES + aboutWindowController + boxARMBinaries + boxFileSystem + boxGeneralInfo + boxMisc + boxTitles + cdsCoreController + cdsSoundController + cheatListWindow + cheatWindowController + emuControlController + inputManager + inputPrefsView + mLoadStateSlot + mSaveStateSlot + migrationDelegate + prefGeneralView + prefWindow + prefWindowController + romInfoPanelController + troubleshootingWindow + + + YES + NSObjectController + NSBox + NSBox + NSBox + NSBox + NSBox + NSObjectController + NSObjectController + NSWindow + NSObjectController + NSObjectController + InputManager + InputPrefsView + NSMenu + NSMenu + FileMigrationDelegate + NSView + NSWindow + NSObjectController + NSObjectController + NSWindow + + + + YES + + YES + aboutWindowController + boxARMBinaries + boxFileSystem + boxGeneralInfo + boxMisc + boxTitles + cdsCoreController + cdsSoundController + cheatListWindow + cheatWindowController + emuControlController + inputManager + inputPrefsView + mLoadStateSlot + mSaveStateSlot + migrationDelegate + prefGeneralView + prefWindow + prefWindowController + romInfoPanelController + troubleshootingWindow + + + YES + + aboutWindowController + NSObjectController + + + boxARMBinaries + NSBox + + + boxFileSystem + NSBox + + + boxGeneralInfo + NSBox + + + boxMisc + NSBox + + + boxTitles + NSBox + + + cdsCoreController + NSObjectController + + + cdsSoundController + NSObjectController + + + cheatListWindow + NSWindow + + + cheatWindowController + NSObjectController + + + emuControlController + NSObjectController + + + inputManager + InputManager + + + inputPrefsView + InputPrefsView + + + mLoadStateSlot + NSMenu + + + mSaveStateSlot + NSMenu + + + migrationDelegate + FileMigrationDelegate + + + prefGeneralView + NSView + + + prefWindow + NSWindow + + + prefWindowController + NSObjectController + + + romInfoPanelController + NSObjectController + + + troubleshootingWindow + NSWindow + + + + + IBProjectSource + userinterface/appDelegate.h + + + + CheatWindowDelegate + NSObject + + YES + + YES + addToList: + applyConfiguration: + closeCheatDatabaseSheet: + removeFromList: + resetSearch: + runComparativeSearch: + runExactValueSearch: + selectAllCheatsInDatabase: + selectCheatSearchStyle: + selectCheatType: + selectNoneCheatsInDatabase: + setInternalCheatValue: + viewDatabase: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + addToList: + applyConfiguration: + closeCheatDatabaseSheet: + removeFromList: + resetSearch: + runComparativeSearch: + runExactValueSearch: + selectAllCheatsInDatabase: + selectCheatSearchStyle: + selectCheatType: + selectNoneCheatsInDatabase: + setInternalCheatValue: + viewDatabase: + + + YES + + addToList: + id + + + applyConfiguration: + id + + + closeCheatDatabaseSheet: + id + + + removeFromList: + id + + + resetSearch: + id + + + runComparativeSearch: + id + + + runExactValueSearch: + id + + + selectAllCheatsInDatabase: + id + + + selectCheatSearchStyle: + id + + + selectCheatType: + id + + + selectNoneCheatsInDatabase: + id + + + setInternalCheatValue: + id + + + viewDatabase: + id + + + + + YES + + YES + cheatConfigBox + cheatDatabaseController + cheatDatabaseSheet + cheatListController + cheatListTable + cheatSearchListController + cheatSearchListTable + cheatSearchView + cheatSelectedItemController + cheatWindowController + searchField + viewConfigureActionReplayCheat + viewConfigureCodeBreakerCheat + viewConfigureInternalCheat + viewConfigureNoSelection + viewSearchComparativeContinue + viewSearchComparativeStart + viewSearchExactValue + viewSearchNoSelection + window + + + YES + NSBox + NSArrayController + NSWindow + NSArrayController + NSTableView + NSArrayController + NSTableView + NSView + NSObjectController + NSObjectController + NSSearchField + NSView + NSView + NSView + NSView + NSView + NSView + NSView + NSView + NSWindow + + + + YES + + YES + cheatConfigBox + cheatDatabaseController + cheatDatabaseSheet + cheatListController + cheatListTable + cheatSearchListController + cheatSearchListTable + cheatSearchView + cheatSelectedItemController + cheatWindowController + searchField + viewConfigureActionReplayCheat + viewConfigureCodeBreakerCheat + viewConfigureInternalCheat + viewConfigureNoSelection + viewSearchComparativeContinue + viewSearchComparativeStart + viewSearchExactValue + viewSearchNoSelection + window + + + YES + + cheatConfigBox + NSBox + + + cheatDatabaseController + NSArrayController + + + cheatDatabaseSheet + NSWindow + + + cheatListController + NSArrayController + + + cheatListTable + NSTableView + + + cheatSearchListController + NSArrayController + + + cheatSearchListTable + NSTableView + + + cheatSearchView + NSView + + + cheatSelectedItemController + NSObjectController + + + cheatWindowController + NSObjectController + + + searchField + NSSearchField + + + viewConfigureActionReplayCheat + NSView + + + viewConfigureCodeBreakerCheat + NSView + + + viewConfigureInternalCheat + NSView + + + viewConfigureNoSelection + NSView + + + viewSearchComparativeContinue + NSView + + + viewSearchComparativeStart + NSView + + + viewSearchExactValue + NSView + + + viewSearchNoSelection + NSView + + + window + NSWindow + + + + + IBProjectSource + userinterface/cheatWindowDelegate.h + + + + DisplayWindowController + NSWindowController + + YES + + YES + changeCoreSpeed: + changeDisplayGap: + changeDisplayMode: + changeDisplayOrder: + changeDisplayOrientation: + changeRotation: + changeRotationRelative: + changeScale: + changeVideoFilter: + changeVolume: + copy: + openRom: + reset: + saveScreenshotAs: + toggleBilinearFilteredOutput: + toggleExecutePause: + toggleFullScreenDisplay: + toggleKeepMinDisplaySizeAtNormal: + toggleStatusBar: + toggleVerticalSync: + writeDefaultsDisplayGap: + writeDefaultsDisplayRotation: + writeDefaultsDisplayVideoSettings: + writeDefaultsHUDSettings: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + changeCoreSpeed: + changeDisplayGap: + changeDisplayMode: + changeDisplayOrder: + changeDisplayOrientation: + changeRotation: + changeRotationRelative: + changeScale: + changeVideoFilter: + changeVolume: + copy: + openRom: + reset: + saveScreenshotAs: + toggleBilinearFilteredOutput: + toggleExecutePause: + toggleFullScreenDisplay: + toggleKeepMinDisplaySizeAtNormal: + toggleStatusBar: + toggleVerticalSync: + writeDefaultsDisplayGap: + writeDefaultsDisplayRotation: + writeDefaultsDisplayVideoSettings: + writeDefaultsHUDSettings: + + + YES + + changeCoreSpeed: + id + + + changeDisplayGap: + id + + + changeDisplayMode: + id + + + changeDisplayOrder: + id + + + changeDisplayOrientation: + id + + + changeRotation: + id + + + changeRotationRelative: + id + + + changeScale: + id + + + changeVideoFilter: + id + + + changeVolume: + id + + + copy: + id + + + openRom: + id + + + reset: + id + + + saveScreenshotAs: + id + + + toggleBilinearFilteredOutput: + id + + + toggleExecutePause: + id + + + toggleFullScreenDisplay: + id + + + toggleKeepMinDisplaySizeAtNormal: + id + + + toggleStatusBar: + id + + + toggleVerticalSync: + id + + + writeDefaultsDisplayGap: + id + + + writeDefaultsDisplayRotation: + id + + + writeDefaultsDisplayVideoSettings: + id + + + writeDefaultsHUDSettings: + id + + + + + saveScreenshotPanelAccessoryView + NSView + + + saveScreenshotPanelAccessoryView + + saveScreenshotPanelAccessoryView + NSView + + + + IBProjectSource + userinterface/DisplayWindowController.h + + + + EmuControllerDelegate + NSObject + + YES + + YES + changeAudioEngine: + changeCoreEmuFlags: + changeCoreSpeed: + changeFirmwareSettings: + changeRomSaveType: + changeSpuAdvancedLogic: + changeSpuInterpolationMode: + changeSpuSyncMethod: + changeSpuSyncMode: + changeVolume: + chooseSlot1R4Directory: + closeRom: + closeSheet: + exportRomSave: + importRomSave: + loadEmuSaveStateSlot: + loadRecentRom: + newDisplayWindow: + openEmuSaveState: + openRom: + reset: + revealGameDataFolderInFinder: + revealRomInFinder: + revertEmuSaveState: + saveEmuSaveState: + saveEmuSaveStateAs: + saveEmuSaveStateSlot: + slot1Eject: + toggleAutoFrameSkip: + toggleCheats: + toggleExecutePause: + toggleGPUState: + toggleSpeedLimiter: + writeDefaults3DRenderingSettings: + writeDefaultsEmulationSettings: + writeDefaultsSlot1Settings: + writeDefaultsSoundSettings: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + changeAudioEngine: + changeCoreEmuFlags: + changeCoreSpeed: + changeFirmwareSettings: + changeRomSaveType: + changeSpuAdvancedLogic: + changeSpuInterpolationMode: + changeSpuSyncMethod: + changeSpuSyncMode: + changeVolume: + chooseSlot1R4Directory: + closeRom: + closeSheet: + exportRomSave: + importRomSave: + loadEmuSaveStateSlot: + loadRecentRom: + newDisplayWindow: + openEmuSaveState: + openRom: + reset: + revealGameDataFolderInFinder: + revealRomInFinder: + revertEmuSaveState: + saveEmuSaveState: + saveEmuSaveStateAs: + saveEmuSaveStateSlot: + slot1Eject: + toggleAutoFrameSkip: + toggleCheats: + toggleExecutePause: + toggleGPUState: + toggleSpeedLimiter: + writeDefaults3DRenderingSettings: + writeDefaultsEmulationSettings: + writeDefaultsSlot1Settings: + writeDefaultsSoundSettings: + + + YES + + changeAudioEngine: + id + + + changeCoreEmuFlags: + id + + + changeCoreSpeed: + id + + + changeFirmwareSettings: + id + + + changeRomSaveType: + id + + + changeSpuAdvancedLogic: + id + + + changeSpuInterpolationMode: + id + + + changeSpuSyncMethod: + id + + + changeSpuSyncMode: + id + + + changeVolume: + id + + + chooseSlot1R4Directory: + id + + + closeRom: + id + + + closeSheet: + id + + + exportRomSave: + id + + + importRomSave: + id + + + loadEmuSaveStateSlot: + id + + + loadRecentRom: + id + + + newDisplayWindow: + id + + + openEmuSaveState: + id + + + openRom: + id + + + reset: + id + + + revealGameDataFolderInFinder: + id + + + revealRomInFinder: + id + + + revertEmuSaveState: + id + + + saveEmuSaveState: + id + + + saveEmuSaveStateAs: + id + + + saveEmuSaveStateSlot: + id + + + slot1Eject: + id + + + toggleAutoFrameSkip: + id + + + toggleCheats: + id + + + toggleExecutePause: + id + + + toggleGPUState: + id + + + toggleSpeedLimiter: + id + + + writeDefaults3DRenderingSettings: + id + + + writeDefaultsEmulationSettings: + id + + + writeDefaultsSlot1Settings: + id + + + writeDefaultsSoundSettings: + id + + + + + YES + + YES + cdsCoreController + cdsSoundController + cheatDatabaseController + cheatListController + cheatWindowController + cheatWindowDelegate + exportRomSavePanelAccessoryView + firmwarePanelController + inputManager + romInfoPanelController + saveFileMigrationSheet + saveStatePrecloseSheet + slot1ManagerWindow + + + YES + NSObjectController + NSObjectController + NSArrayController + NSArrayController + NSObjectController + CheatWindowDelegate + NSView + NSObjectController + InputManager + NSObjectController + NSWindow + NSWindow + NSWindow + + + + YES + + YES + cdsCoreController + cdsSoundController + cheatDatabaseController + cheatListController + cheatWindowController + cheatWindowDelegate + exportRomSavePanelAccessoryView + firmwarePanelController + inputManager + romInfoPanelController + saveFileMigrationSheet + saveStatePrecloseSheet + slot1ManagerWindow + + + YES + + cdsCoreController + NSObjectController + + + cdsSoundController + NSObjectController + + + cheatDatabaseController + NSArrayController + + + cheatListController + NSArrayController + + + cheatWindowController + NSObjectController + + + cheatWindowDelegate + CheatWindowDelegate + + + exportRomSavePanelAccessoryView + NSView + + + firmwarePanelController + NSObjectController + + + inputManager + InputManager + + + romInfoPanelController + NSObjectController + + + saveFileMigrationSheet + NSWindow + + + saveStatePrecloseSheet + NSWindow + + + slot1ManagerWindow + NSWindow + + + + + IBProjectSource + userinterface/EmuControllerDelegate.h + + + + FileMigrationDelegate + NSObject + + YES + + YES + handleChoice: + selectAll: + selectNone: + updateAndShowWindow: + + + YES + id + id + id + id + + + + YES + + YES + handleChoice: + selectAll: + selectNone: + updateAndShowWindow: + + + YES + + handleChoice: + id + + + selectAll: + id + + + selectNone: + id + + + updateAndShowWindow: + id + + + + + YES + + YES + fileListController + window + + + YES + NSArrayController + NSWindow + + + + YES + + YES + fileListController + window + + + YES + + fileListController + NSArrayController + + + window + NSWindow + + + + + IBProjectSource + userinterface/FileMigrationDelegate.h + + + + InputManager + NSObject + + YES + + YES + emuControl + hidInputTarget + + + YES + EmuControllerDelegate + id + + + + YES + + YES + emuControl + hidInputTarget + + + YES + + emuControl + EmuControllerDelegate + + + hidInputTarget + id + + + + + IBProjectSource + userinterface/InputManager.h + + + + InputPrefsView + NSView + + YES + + YES + audioFileChoose: + audioFileChooseNone: + changeSpeed: + closeProfileRenameSheet: + closeProfileSheet: + closeSettingsSheet: + profileApply: + profileDelete: + profileNew: + profileRename: + profileSave: + profileSelect: + profileView: + removeInput: + setInputAdd: + showSettingsSheet: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + audioFileChoose: + audioFileChooseNone: + changeSpeed: + closeProfileRenameSheet: + closeProfileSheet: + closeSettingsSheet: + profileApply: + profileDelete: + profileNew: + profileRename: + profileSave: + profileSelect: + profileView: + removeInput: + setInputAdd: + showSettingsSheet: + + + YES + + audioFileChoose: + id + + + audioFileChooseNone: + id + + + changeSpeed: + id + + + closeProfileRenameSheet: + id + + + closeProfileSheet: + id + + + closeSettingsSheet: + id + + + profileApply: + id + + + profileDelete: + id + + + profileNew: + id + + + profileRename: + id + + + profileSave: + id + + + profileSelect: + id + + + profileView: + id + + + removeInput: + id + + + setInputAdd: + id + + + showSettingsSheet: + id + + + + + YES + + YES + inputManager + inputPrefOutlineView + inputProfileController + inputProfileMenu + inputProfileNextButton + inputProfilePreviousButton + inputProfileRenameSheet + inputProfileSheet + inputSettingsController + inputSettingsGPUState + inputSettingsLoadStateSlot + inputSettingsMicrophone + inputSettingsSaveStateSlot + inputSettingsSetSpeedLimit + inputSettingsTouch + prefWindow + + + YES + InputManager + NSOutlineView + InputProfileController + NSPopUpButton + NSButton + NSButton + NSWindow + NSWindow + NSObjectController + NSWindow + NSWindow + NSWindow + NSWindow + NSWindow + NSWindow + NSWindow + + + + YES + + YES + inputManager + inputPrefOutlineView + inputProfileController + inputProfileMenu + inputProfileNextButton + inputProfilePreviousButton + inputProfileRenameSheet + inputProfileSheet + inputSettingsController + inputSettingsGPUState + inputSettingsLoadStateSlot + inputSettingsMicrophone + inputSettingsSaveStateSlot + inputSettingsSetSpeedLimit + inputSettingsTouch + prefWindow + + + YES + + inputManager + InputManager + + + inputPrefOutlineView + NSOutlineView + + + inputProfileController + InputProfileController + + + inputProfileMenu + NSPopUpButton + + + inputProfileNextButton + NSButton + + + inputProfilePreviousButton + NSButton + + + inputProfileRenameSheet + NSWindow + + + inputProfileSheet + NSWindow + + + inputSettingsController + NSObjectController + + + inputSettingsGPUState + NSWindow + + + inputSettingsLoadStateSlot + NSWindow + + + inputSettingsMicrophone + NSWindow + + + inputSettingsSaveStateSlot + NSWindow + + + inputSettingsSetSpeedLimit + NSWindow + + + inputSettingsTouch + NSWindow + + + prefWindow + NSWindow + + + + + IBProjectSource + userinterface/inputPrefsView.h + + + + InputProfileController + NSObjectController + + YES + + YES + inputManager + profileOutlineView + + + YES + InputManager + NSOutlineView + + + + YES + + YES + inputManager + profileOutlineView + + + YES + + inputManager + InputManager + + + profileOutlineView + NSOutlineView + + + + + IBProjectSource + userinterface/InputProfileController.h + + + + PreferencesWindowDelegate + NSObject + + YES + + YES + chooseARM7BiosImage: + chooseARM9BiosImage: + chooseAdvansceneDatabase: + chooseCheatDatabase: + chooseFirmwareImage: + chooseRomForAutoload: + closeFirmwareConfigSheet: + configureInternalFirmware: + selectDisplayRotation: + selectSPUSyncMethod: + selectSPUSyncMode: + selectVideoFilterType: + setUseBilinear: + showDisplayView: + showEmulationView: + showGeneralView: + showInputView: + showSoundView: + updateVolumeIcon: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + chooseARM7BiosImage: + chooseARM9BiosImage: + chooseAdvansceneDatabase: + chooseCheatDatabase: + chooseFirmwareImage: + chooseRomForAutoload: + closeFirmwareConfigSheet: + configureInternalFirmware: + selectDisplayRotation: + selectSPUSyncMethod: + selectSPUSyncMode: + selectVideoFilterType: + setUseBilinear: + showDisplayView: + showEmulationView: + showGeneralView: + showInputView: + showSoundView: + updateVolumeIcon: + + + YES + + chooseARM7BiosImage: + id + + + chooseARM9BiosImage: + id + + + chooseAdvansceneDatabase: + id + + + chooseCheatDatabase: + id + + + chooseFirmwareImage: + id + + + chooseRomForAutoload: + id + + + closeFirmwareConfigSheet: + id + + + configureInternalFirmware: + id + + + selectDisplayRotation: + id + + + selectSPUSyncMethod: + id + + + selectSPUSyncMode: + id + + + selectVideoFilterType: + id + + + setUseBilinear: + id + + + showDisplayView: + id + + + showEmulationView: + id + + + showGeneralView: + id + + + showInputView: + id + + + showSoundView: + id + + + updateVolumeIcon: + id + + + + + YES + + YES + cdsCoreController + cheatDatabaseController + cheatWindowController + displayRotationField + displayRotationMenu + displayRotationMenuCustomItem + emuController + firmwareConfigSheet + prefWindowController + previewImageView + spuSyncMethodMenu + viewDisplay + viewEmulation + viewGeneral + viewInput + viewSound + window + + + YES + NSObjectController + NSArrayController + NSObjectController + NSTextField + NSPopUpButton + NSMenuItem + NSObjectController + NSWindow + NSObjectController + NSImageView + NSPopUpButton + NSView + NSView + NSView + InputPrefsView + NSView + NSWindow + + + + YES + + YES + cdsCoreController + cheatDatabaseController + cheatWindowController + displayRotationField + displayRotationMenu + displayRotationMenuCustomItem + emuController + firmwareConfigSheet + prefWindowController + previewImageView + spuSyncMethodMenu + viewDisplay + viewEmulation + viewGeneral + viewInput + viewSound + window + + + YES + + cdsCoreController + NSObjectController + + + cheatDatabaseController + NSArrayController + + + cheatWindowController + NSObjectController + + + displayRotationField + NSTextField + + + displayRotationMenu + NSPopUpButton + + + displayRotationMenuCustomItem + NSMenuItem + + + emuController + NSObjectController + + + firmwareConfigSheet + NSWindow + + + prefWindowController + NSObjectController + + + previewImageView + NSImageView + + + spuSyncMethodMenu + NSPopUpButton + + + viewDisplay + NSView + + + viewEmulation + NSView + + + viewGeneral + NSView + + + viewInput + InputPrefsView + + + viewSound + NSView + + + window + NSWindow + + + + + IBProjectSource + userinterface/preferencesWindowDelegate.h + + + + TroubleshootingWindowDelegate + NSObject + + YES + + YES + backForm: + continueToFinalForm: + copyInfoToPasteboard: + copyRomInfoToTextFields: + goToWebpage: + + + YES + id + id + id + id + id + + + + YES + + YES + backForm: + continueToFinalForm: + copyInfoToPasteboard: + copyRomInfoToTextFields: + goToWebpage: + + + YES + + backForm: + id + + + continueToFinalForm: + id + + + copyInfoToPasteboard: + id + + + copyRomInfoToTextFields: + id + + + goToWebpage: + id + + + + + YES + + YES + cdsCoreController + emuControlController + romInfoController + troubleshootingWindowController + viewBugReport + viewFinishedForm + viewSupportRequest + window + + + YES + NSObjectController + NSObjectController + NSObjectController + NSObjectController + NSView + NSView + NSView + NSWindow + + + + YES + + YES + cdsCoreController + emuControlController + romInfoController + troubleshootingWindowController + viewBugReport + viewFinishedForm + viewSupportRequest + window + + + YES + + cdsCoreController + NSObjectController + + + emuControlController + NSObjectController + + + romInfoController + NSObjectController + + + troubleshootingWindowController + NSObjectController + + + viewBugReport + NSView + + + viewFinishedForm + NSView + + + viewSupportRequest + NSView + + + window + NSWindow + + + + + IBProjectSource + userinterface/troubleshootingWindowDelegate.h + + + + + YES + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSArrayController + NSObjectController + + IBFrameworkSource + AppKit.framework/Headers/NSArrayController.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSBrowser + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSBrowser.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSDatePicker + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSDatePicker.h + + + + NSDatePickerCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSDatePickerCell.h + + + + NSDocumentController + NSObject + + YES + + YES + clearRecentDocuments: + newDocument: + openDocument: + saveAllDocuments: + + + YES + id + id + id + id + + + + YES + + YES + clearRecentDocuments: + newDocument: + openDocument: + saveAllDocuments: + + + YES + + clearRecentDocuments: + id + + + newDocument: + id + + + openDocument: + id + + + saveAllDocuments: + id + + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentController.h + + + + NSDrawer + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSImageCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSImageCell.h + + + + NSImageView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSImageView.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSMovieView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMovieView.h + + + + NSNumberFormatter + NSFormatter + + IBFrameworkSource + Foundation.framework/Headers/NSNumberFormatter.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObjectController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSObjectController.h + + + + NSOutlineView + NSTableView + + + + NSPanel + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSPanel.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSearchField + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSSearchField.h + + + + NSSearchFieldCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSSearchFieldCell.h + + + + NSSlider + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSlider.h + + + + NSSliderCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSliderCell.h + + + + NSStepper + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSStepper.h + + + + NSStepperCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSStepperCell.h + + + + NSTabView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTabView.h + + + + NSTabViewItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTabViewItem.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableHeaderView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTableHeaderView.h + + + + NSTableView + NSControl + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSToolbar + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbar.h + + + + NSToolbarItem + NSObject + + + + NSUserDefaultsController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSUserDefaultsController.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + NSWindowController + NSResponder + + showWindow: + id + + + showWindow: + + showWindow: + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSWindowController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../DeSmuME (XCode 3).xcodeproj + 3 + + YES + + YES + ColorSwatch_Blue_16x16 + ColorSwatch_Brown_16x16 + ColorSwatch_DarkBlue_16x16 + ColorSwatch_DarkGreen_16x16 + ColorSwatch_DarkPurple_16x16 + ColorSwatch_Gray_16x16 + ColorSwatch_Green_16x16 + ColorSwatch_LimeGreen_16x16 + ColorSwatch_Magenta_16x16 + ColorSwatch_Orange_16x16 + ColorSwatch_Pink_16x16 + ColorSwatch_Red_16x16 + ColorSwatch_SeaGreen_16x16 + ColorSwatch_Turquoise_16x16 + ColorSwatch_Violet_16x16 + ColorSwatch_Yellow_16x16 + Icon_ActionReplay_32x32 + Icon_CodeBreaker_128x128 + Icon_DeSmuME_32x32 + Icon_Emulation_420x420 + Icon_Input_420x420 + Icon_ShowHUD_420x420 + Icon_Speaker_420x420 + Icon_VolumeFull_16x16 + NSActionTemplate + NSAddTemplate + NSApplicationIcon + NSMenuCheckmark + NSMenuMixedState + NSPreferencesGeneral + NSRadioButton + NSRemoveTemplate + NSSwitch + + + YES + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {32, 32} + {128, 128} + {32, 32} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {20, 20} + {15, 15} + {8, 8} + {512, 512} + {11, 11} + {10, 3} + {32, 32} + {16, 15} + {8, 8} + {15, 15} + + + diff -Nru desmume-0.9.9/src/cocoa/userinterface/appDelegate.h desmume-0.9.10/src/cocoa/userinterface/appDelegate.h --- desmume-0.9.9/src/cocoa/userinterface/appDelegate.h 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/appDelegate.h 2013-11-28 00:37:19.709035730 +0000 @@ -95,5 +95,7 @@ - (NSMenuItem *) addSlotMenuItem:(NSMenu *)menu slotNumber:(NSUInteger)slotNumber; - (void) setupUserDefaults; - (void) setRomInfoPanelBoxTitleColors; +- (void) restoreDisplayWindowStates; +- (void) saveDisplayWindowStates; @end diff -Nru desmume-0.9.9/src/cocoa/userinterface/appDelegate.mm desmume-0.9.10/src/cocoa/userinterface/appDelegate.mm --- desmume-0.9.9/src/cocoa/userinterface/appDelegate.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/appDelegate.mm 2013-11-28 00:37:19.705035665 +0000 @@ -81,6 +81,7 @@ return self; } +#pragma mark NSApplicationDelegate Protocol - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename { BOOL result = NO; @@ -96,7 +97,7 @@ NSString *fileKind = [CocoaDSFile fileKindByURL:fileURL]; if ([fileKind isEqualToString:@"ROM"]) { - result = [emuControl handleLoadRom:fileURL]; + result = [emuControl handleLoadRomByURL:fileURL]; if ([emuControl isShowingSaveStateDialog] || [emuControl isShowingFileMigrationDialog]) { // Just reply YES if a sheet is showing, even if the ROM hasn't actually been loaded yet. @@ -237,36 +238,60 @@ appFirstTimeRunDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:isFirstTimeRunNumber, bundleVersionString, nil]; } + //Bring the application to the front + [NSApp activateIgnoringOtherApps:TRUE]; + [self restoreDisplayWindowStates]; + // Load a new ROM on launch per user preferences. - const BOOL loadROMOnLaunch = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_AutoloadROMOnLaunch"]; - if (loadROMOnLaunch && [emuControl currentRom] == nil) + if ([[NSUserDefaults standardUserDefaults] objectForKey:@"General_AutoloadROMOnLaunch"] != nil) + { + // Older versions of DeSmuME used General_AutoloadROMOnLaunch to determine whether to + // load a ROM on launch or not. This has been superseded by the autoload ROM option + // ROMAUTOLOADOPTION_LOAD_NONE. So if this object key exists in the user defaults, we + // need to update the user defaults key/values as needed, and then remove the + // General_AutoloadROMOnLaunch object key. + const BOOL loadROMOnLaunch = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_AutoloadROMOnLaunch"]; + if (!loadROMOnLaunch) + { + [[NSUserDefaults standardUserDefaults] setInteger:ROMAUTOLOADOPTION_LOAD_NONE forKey:@"General_AutoloadROMOption"]; + } + + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"General_AutoloadROMOnLaunch"]; + } + + if ([emuControl currentRom] == nil) { const NSInteger autoloadRomOption = [[NSUserDefaults standardUserDefaults] integerForKey:@"General_AutoloadROMOption"]; NSURL *autoloadRomURL = nil; - if (autoloadRomOption == ROMAUTOLOADOPTION_LOAD_LAST) - { - autoloadRomURL = [CocoaDSFile lastLoadedRomURL]; - } - else if(autoloadRomOption == ROMAUTOLOADOPTION_LOAD_SELECTED) + switch (autoloadRomOption) { - NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; - if (autoloadRomPath != nil && [autoloadRomPath length] > 0) + case ROMAUTOLOADOPTION_LOAD_NONE: + autoloadRomURL = nil; + break; + + case ROMAUTOLOADOPTION_LOAD_LAST: + autoloadRomURL = [CocoaDSFile lastLoadedRomURL]; + break; + + case ROMAUTOLOADOPTION_LOAD_SELECTED: { - autoloadRomURL = [NSURL fileURLWithPath:autoloadRomPath]; + NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; + if (autoloadRomPath != nil && [autoloadRomPath length] > 0) + { + autoloadRomURL = [NSURL fileURLWithPath:autoloadRomPath]; + } + + break; } + + default: + break; } - if (autoloadRomURL != nil) - { - [emuControl handleLoadRom:autoloadRomURL]; - } + [emuControl handleLoadRomByURL:autoloadRomURL]; } - //Bring the application to the front - [NSApp activateIgnoringOtherApps:TRUE]; - [emuControl newDisplayWindow:nil]; - // Present the file migration window to the user (if they haven't disabled it). if (![[NSUserDefaults standardUserDefaults] boolForKey:@"General_DoNotAskMigrate"] || !isFirstTimeRun) { @@ -307,9 +332,12 @@ - (void)applicationWillTerminate:(NSNotification *)notification { + EmuControllerDelegate *emuControl = (EmuControllerDelegate *)[emuControlController content]; CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; // Save some settings to user defaults before app termination + [self saveDisplayWindowStates]; + [[NSUserDefaults standardUserDefaults] setDouble:[emuControl lastSetSpeedScalar] forKey:@"CoreControl_SpeedScalar"]; [[NSUserDefaults standardUserDefaults] setBool:[cdsCore isSpeedLimitEnabled] forKey:@"CoreControl_EnableSpeedLimit"]; [[NSUserDefaults standardUserDefaults] setBool:[cdsCore isFrameSkipEnabled] forKey:@"CoreControl_EnableAutoFrameSkip"]; [[NSUserDefaults standardUserDefaults] setBool:[cdsCore isCheatingEnabled] forKey:@"CoreControl_EnableCheats"]; @@ -317,6 +345,7 @@ [cdsCoreController setContent:nil]; } +#pragma mark IBActions - (IBAction) launchWebsite:(id)sender { [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_WEBSITE]]; @@ -345,6 +374,7 @@ [troubleshootingWindow makeKeyAndOrderFront:sender]; } +#pragma mark Class Methods - (void) setupSlotMenuItems { NSMenuItem *loadItem = nil; @@ -456,6 +486,7 @@ [cdsCore setSlot1R4URL:(slot1R4Path != nil) ? [NSURL fileURLWithPath:slot1R4Path] : nil]; // Set the miscellaneous emulations settings per user preferences. + [emuControl changeCoreSpeedWithDouble:[[NSUserDefaults standardUserDefaults] doubleForKey:@"CoreControl_SpeedScalar"]]; [cdsCore setIsSpeedLimitEnabled:[[NSUserDefaults standardUserDefaults] boolForKey:@"CoreControl_EnableSpeedLimit"]]; [cdsCore setIsFrameSkipEnabled:[[NSUserDefaults standardUserDefaults] boolForKey:@"CoreControl_EnableAutoFrameSkip"]]; [cdsCore setIsCheatingEnabled:[[NSUserDefaults standardUserDefaults] boolForKey:@"CoreControl_EnableCheats"]]; @@ -532,7 +563,7 @@ [[prefWindowDelegate spuSyncMethodMenu] setEnabled:YES]; } - // Set the text field for the autoloaded ROM. + // Set the name of the autoloaded ROM. NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; if (autoloadRomPath != nil) { @@ -540,7 +571,7 @@ } else { - [prefBindings setValue:nil forKey:@"AutoloadRomName"]; + [prefBindings setValue:NSSTRING_STATUS_AUTOLOAD_ROM_NAME_NONE forKey:@"AutoloadRomName"]; } // Set the menu for the display rotation. @@ -582,4 +613,151 @@ [boxMisc setNeedsDisplay:YES]; } +- (void) restoreDisplayWindowStates +{ + EmuControllerDelegate *emuControl = (EmuControllerDelegate *)[emuControlController content]; + NSArray *windowPropertiesList = [[NSUserDefaults standardUserDefaults] arrayForKey:@"General_DisplayWindowRestorableStates"]; + const BOOL willRestoreWindows = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_WillRestoreDisplayWindows"]; + + if (!willRestoreWindows || windowPropertiesList == nil || [windowPropertiesList count] < 1) + { + // If no windows were saved for restoring (the user probably closed all windows before + // app termination), then simply create a new display window per user defaults. + [emuControl newDisplayWindow:self]; + } + else + { + for (NSDictionary *windowProperties in windowPropertiesList) + { + DisplayWindowController *windowController = [[DisplayWindowController alloc] initWithWindowNibName:@"DisplayWindow" emuControlDelegate:emuControl]; + + if (windowController == nil) + { + continue; + } + + const NSInteger displayMode = [(NSNumber *)[windowProperties valueForKey:@"displayMode"] integerValue]; + const double displayScale = [(NSNumber *)[windowProperties valueForKey:@"displayScale"] doubleValue]; + const double displayRotation = [(NSNumber *)[windowProperties valueForKey:@"displayRotation"] doubleValue]; + const NSInteger displayOrientation = [(NSNumber *)[windowProperties valueForKey:@"displayOrientation"] integerValue]; + const NSInteger displayOrder = [(NSNumber *)[windowProperties valueForKey:@"displayOrder"] integerValue]; + const double displayGap = [(NSNumber *)[windowProperties valueForKey:@"displayGap"] doubleValue]; + const NSInteger videoFilterType = [(NSNumber *)[windowProperties valueForKey:@"videoFilterType"] integerValue]; + const NSInteger screenshotFileFormat = [(NSNumber *)[windowProperties valueForKey:@"screenshotFileFormat"] integerValue]; + const BOOL useBilinearOutput = [(NSNumber *)[windowProperties valueForKey:@"useBilinearOutput"] boolValue]; + const BOOL useVerticalSync = [(NSNumber *)[windowProperties valueForKey:@"useVerticalSync"] boolValue]; + const BOOL isMinSizeNormal = [(NSNumber *)[windowProperties valueForKey:@"isMinSizeNormal"] boolValue]; + const BOOL isShowingStatusBar = [(NSNumber *)[windowProperties valueForKey:@"isShowingStatusBar"] boolValue]; + const BOOL isInFullScreenMode = [(NSNumber *)[windowProperties valueForKey:@"isInFullScreenMode"] boolValue]; + const NSUInteger screenIndex = [(NSNumber *)[windowProperties valueForKey:@"screenIndex"] unsignedIntegerValue]; + NSString *windowFrameStr = (NSString *)[windowProperties valueForKey:@"windowFrame"]; + + int frameX = 0; + int frameY = 0; + int frameWidth = GPU_DISPLAY_WIDTH; + int frameHeight = GPU_DISPLAY_HEIGHT; + const char *frameCStr = [windowFrameStr cStringUsingEncoding:NSUTF8StringEncoding]; + sscanf(frameCStr, "%i %i %i %i", &frameX, &frameY, &frameWidth, &frameHeight); + + [windowController setIsMinSizeNormal:isMinSizeNormal]; + [windowController setIsShowingStatusBar:isShowingStatusBar]; + [windowController setVideoFilterType:videoFilterType]; + [windowController setDisplayMode:displayMode]; + [windowController setDisplayRotation:displayRotation]; + [windowController setDisplayOrientation:displayOrientation]; + [windowController setDisplayOrder:displayOrder]; + [windowController setDisplayGap:displayGap]; + [windowController setScreenshotFileFormat:screenshotFileFormat]; + [windowController setUseBilinearOutput:useBilinearOutput]; + [windowController setUseVerticalSync:useVerticalSync]; + [windowController setDisplayScale:displayScale]; + + [[windowController masterWindow] setFrameOrigin:NSMakePoint(frameX, frameY)]; + + // If this is the last window in the list, make this window key and main. + // Otherwise, just order the window to the front so that the windows will + // stack in a deterministic order. + if (windowProperties == [windowPropertiesList lastObject]) + { + [[windowController window] makeKeyAndOrderFront:self]; + [[windowController window] makeMainWindow]; + } + else + { + [[windowController window] orderFront:self]; + } + + // Draw the display view now so that we guarantee that its drawn at least once. + if ([emuControl currentRom] == nil) + { + [[windowController view] clearToBlack]; + } + else + { + [[windowController view] setNeedsDisplay:YES]; + } + + // If this window is set to full screen mode, its associated screen index must + // exist. If not, this window will not enter full screen mode. This is necessary, + // since the user's screen configuration could change in between app launches, + // and since we don't want a window to go full screen on the wrong screen. + if (isInFullScreenMode && + ([[NSScreen screens] indexOfObject:[[windowController window] screen]] == screenIndex)) + { + [windowController enterFullScreen]; + [[windowController window] makeKeyAndOrderFront:self]; + [[windowController window] makeMainWindow]; + } + } + } +} + +- (void) saveDisplayWindowStates +{ + EmuControllerDelegate *emuControl = (EmuControllerDelegate *)[emuControlController content]; + NSArray *windowList = [emuControl windowList]; + const BOOL willRestoreWindows = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_WillRestoreDisplayWindows"]; + + if (willRestoreWindows && [windowList count] > 0) + { + NSMutableArray *windowPropertiesList = [NSMutableArray arrayWithCapacity:[windowList count]]; + + for (DisplayWindowController *windowController in windowList) + { + const BOOL isInFullScreenMode = ([windowController assignedScreen] != nil); + const NSUInteger screenIndex = [[NSScreen screens] indexOfObject:[[windowController masterWindow] screen]]; + + const NSRect windowFrame = [[windowController masterWindow] frame]; + NSString *windowFrameStr = [NSString stringWithFormat:@"%i %i %i %i", + (int)windowFrame.origin.x, (int)windowFrame.origin.y, (int)windowFrame.size.width, (int)windowFrame.size.height]; + + NSDictionary *windowProperties = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInteger:[windowController displayMode]], @"displayMode", + [NSNumber numberWithDouble:[windowController displayScale]], @"displayScale", + [NSNumber numberWithDouble:[windowController displayRotation]], @"displayRotation", + [NSNumber numberWithInteger:[windowController displayOrientation]], @"displayOrientation", + [NSNumber numberWithInteger:[windowController displayOrder]], @"displayOrder", + [NSNumber numberWithDouble:[windowController displayGap]], @"displayGap", + [NSNumber numberWithInteger:[windowController videoFilterType]], @"videoFilterType", + [NSNumber numberWithInteger:[windowController screenshotFileFormat]], @"screenshotFileFormat", + [NSNumber numberWithBool:[windowController useBilinearOutput]], @"useBilinearOutput", + [NSNumber numberWithBool:[windowController useVerticalSync]], @"useVerticalSync", + [NSNumber numberWithBool:[windowController isMinSizeNormal]], @"isMinSizeNormal", + [NSNumber numberWithBool:[windowController isShowingStatusBar]], @"isShowingStatusBar", + [NSNumber numberWithBool:isInFullScreenMode], @"isInFullScreenMode", + [NSNumber numberWithUnsignedInteger:screenIndex], @"screenIndex", + windowFrameStr, @"windowFrame", + nil]; + + [windowPropertiesList addObject:windowProperties]; + } + + [[NSUserDefaults standardUserDefaults] setObject:windowPropertiesList forKey:@"General_DisplayWindowRestorableStates"]; + } + else + { + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"General_DisplayWindowRestorableStates"]; + } +} + @end diff -Nru desmume-0.9.9/src/cocoa/userinterface/DisplayWindowController.h desmume-0.9.10/src/cocoa/userinterface/DisplayWindowController.h --- desmume-0.9.9/src/cocoa/userinterface/DisplayWindowController.h 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/DisplayWindowController.h 2013-11-28 00:37:19.705035665 +0000 @@ -26,6 +26,11 @@ @class EmuControllerDelegate; +// Subclass NSWindow for full screen windows so that we can override some methods. +@interface DisplayFullScreenWindow : NSWindow +{ } +@end + @interface DisplayView : NSView { InputManager *inputManager; @@ -38,9 +43,11 @@ NSOpenGLContext *context; CGLContextObj cglDisplayContext; - NSInteger lastDisplayMode; - NSInteger currentDisplayOrientation; - GLfloat currentGapScalar; + NSSize _currentNormalSize; + NSInteger _currentDisplayMode; + NSInteger _currentDisplayOrientation; + GLfloat _currentGapScalar; + GLfloat _currentRotation; GLenum glTexPixelFormat; GLvoid *glTexBack; NSSize glTexBackSize; @@ -63,7 +70,7 @@ GLubyte vtxIndexBuffer[12]; BOOL isShaderSupported; - unsigned int vtxBufferOffset; + size_t vtxBufferOffset; } @property (retain) InputManager *inputManager; @@ -90,13 +97,19 @@ @end +#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5 +@interface DisplayWindowController : NSWindowController +#else @interface DisplayWindowController : NSWindowController +#endif { DisplayView *view; NSView *saveScreenshotPanelAccessoryView; EmuControllerDelegate *emuControl; CocoaDSDisplayVideo *cdsVideoOutput; + NSScreen *assignedScreen; + NSWindow *masterWindow; NSSize _normalSize; double _displayScale; @@ -113,6 +126,7 @@ NSSize _minDisplayViewSize; BOOL _isMinSizeNormal; NSUInteger _statusBarHeight; + BOOL _isWindowResizing; OSSpinLock spinlockNormalSize; OSSpinLock spinlockScale; @@ -131,6 +145,8 @@ @property (retain) EmuControllerDelegate *emuControl; @property (assign) CocoaDSDisplayVideo *cdsVideoOutput; +@property (assign) NSScreen *assignedScreen; +@property (retain) NSWindow *masterWindow; @property (readonly) NSSize normalSize; @property (assign) double displayScale; @@ -151,17 +167,36 @@ - (void) setupUserDefaults; - (double) resizeWithTransform:(NSSize)normalBounds scalar:(double)scalar rotation:(double)angleDegrees; - (double) maxScalarForContentBoundsWidth:(double)contentBoundsWidth height:(double)contentBoundsHeight; +- (void) enterFullScreen; +- (void) exitFullScreen; - (IBAction) copy:(id)sender; - (IBAction) changeVolume:(id)sender; - (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender; - (IBAction) toggleStatusBar:(id)sender; +- (IBAction) toggleFullScreenDisplay:(id)sender; - (IBAction) toggleExecutePause:(id)sender; - (IBAction) reset:(id)sender; - (IBAction) changeCoreSpeed:(id)sender; - (IBAction) openRom:(id)sender; -- (IBAction) changeRotationRelative:(id)sender; - (IBAction) saveScreenshotAs:(id)sender; +// View Menu +- (IBAction) changeScale:(id)sender; +- (IBAction) changeRotation:(id)sender; +- (IBAction) changeRotationRelative:(id)sender; +- (IBAction) changeDisplayMode:(id)sender; +- (IBAction) changeDisplayOrientation:(id)sender; +- (IBAction) changeDisplayOrder:(id)sender; +- (IBAction) changeDisplayGap:(id)sender; +- (IBAction) toggleBilinearFilteredOutput:(id)sender; +- (IBAction) toggleVerticalSync:(id)sender; +- (IBAction) changeVideoFilter:(id)sender; + +- (IBAction) writeDefaultsDisplayRotation:(id)sender; +- (IBAction) writeDefaultsDisplayGap:(id)sender; +- (IBAction) writeDefaultsHUDSettings:(id)sender; +- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender; + @end diff -Nru desmume-0.9.9/src/cocoa/userinterface/DisplayWindowController.mm desmume-0.9.10/src/cocoa/userinterface/DisplayWindowController.mm --- desmume-0.9.9/src/cocoa/userinterface/DisplayWindowController.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/DisplayWindowController.mm 2013-11-28 00:37:19.713035793 +0000 @@ -25,10 +25,17 @@ #import "cocoa_videofilter.h" #import "cocoa_util.h" +#include #include #include #include +#if defined(__ppc__) || defined(__ppc64__) +#include +#else +#include +#endif + // VERTEX SHADER FOR DISPLAY OUTPUT static const char *vertexProgram_100 = {"\ attribute vec2 inPosition; \n\ @@ -80,6 +87,8 @@ @synthesize emuControl; @synthesize cdsVideoOutput; +@synthesize assignedScreen; +@synthesize masterWindow; @synthesize view; @synthesize saveScreenshotPanelAccessoryView; @@ -97,6 +106,11 @@ @dynamic isMinSizeNormal; @dynamic isShowingStatusBar; +#if defined(__ppc__) || defined(__ppc64__) +static std::map _screenMap; // Key = NSScreen object pointer, Value = DisplayWindowController object pointer +#else +static std::tr1::unordered_map _screenMap; // Key = NSScreen object pointer, Value = DisplayWindowController object pointer +#endif - (id)initWithWindowNibName:(NSString *)windowNibName emuControlDelegate:(EmuControllerDelegate *)theEmuController { @@ -108,6 +122,8 @@ emuControl = [theEmuController retain]; cdsVideoOutput = nil; + assignedScreen = nil; + masterWindow = nil; spinlockNormalSize = OS_SPINLOCK_INIT; spinlockScale = OS_SPINLOCK_INIT; @@ -124,23 +140,24 @@ // These need to be initialized first since there are dependencies on these. _displayGap = 0.0; - _displayMode = DS_DISPLAY_TYPE_COMBO; + _displayMode = DS_DISPLAY_TYPE_DUAL; _displayOrientation = DS_DISPLAY_ORIENTATION_VERTICAL; _minDisplayViewSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT*2.0 + (DS_DISPLAY_GAP*_displayGap)); _isMinSizeNormal = YES; _statusBarHeight = WINDOW_STATUS_BAR_HEIGHT; - - // Setup default values per user preferences. - [self setupUserDefaults]; - - [[self window] setTitle:(NSString *)[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]]; + _isWindowResizing = NO; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveScreenshotAsFinish:) name:@"org.desmume.DeSmuME.requestScreenshotDidFinish" object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(respondToScreenChange:) + name:@"NSApplicationDidChangeScreenParametersNotification" + object:NSApp]; + return self; } @@ -148,6 +165,8 @@ { [[NSNotificationCenter defaultCenter] removeObserver:self]; [self setEmuControl:nil]; + [self setAssignedScreen:nil]; + [self setMasterWindow:nil]; [super dealloc]; } @@ -165,23 +184,21 @@ - (void) setDisplayScale:(double)s { - // Resize the window when displayScale changes. - // No need to set the view's scale here since window resizing will implicitly change it. - const double constrainedScale = [self resizeWithTransform:[self normalSize] scalar:s rotation:[self displayRotation]]; - - OSSpinLockLock(&spinlockScale); - _displayScale = constrainedScale; - OSSpinLockUnlock(&spinlockScale); - - DisplayOutputTransformData transformData = { constrainedScale, - [self displayRotation], - 0.0, - 0.0, - 0.0 }; - - [CocoaDSUtil messageSendOneWayWithData:[[self cdsVideoOutput] receivePort] - msgID:MESSAGE_TRANSFORM_VIEW - data:[NSData dataWithBytes:&transformData length:sizeof(DisplayOutputTransformData)]]; + if (_isWindowResizing) + { + // Resize the window when displayScale changes. + // No need to set the view's scale here since window resizing will implicitly change it. + OSSpinLockLock(&spinlockScale); + _displayScale = s; + OSSpinLockUnlock(&spinlockScale); + } + else + { + const double constrainedScale = [self resizeWithTransform:[self normalSize] scalar:s rotation:[self displayRotation]]; + OSSpinLockLock(&spinlockScale); + _displayScale = constrainedScale; + OSSpinLockUnlock(&spinlockScale); + } } - (double) displayScale @@ -305,10 +322,10 @@ modeString = NSSTRING_DISPLAYMODE_TOUCH; break; - case DS_DISPLAY_TYPE_COMBO: + case DS_DISPLAY_TYPE_DUAL: { const double gapScalar = [self displayGap]; - modeString = NSSTRING_DISPLAYMODE_COMBO; + modeString = NSSTRING_DISPLAYMODE_DUAL; if ([self displayOrientation] == DS_DISPLAY_ORIENTATION_VERTICAL) { @@ -327,7 +344,6 @@ } OSSpinLockLock(&spinlockDisplayMode); - const NSInteger oldMode = _displayMode; _displayMode = displayModeID; OSSpinLockUnlock(&spinlockDisplayMode); @@ -339,14 +355,6 @@ [self resizeWithTransform:[self normalSize] scalar:[self displayScale] rotation:[self displayRotation]]; [CocoaDSUtil messageSendOneWayWithInteger:[[self cdsVideoOutput] receivePort] msgID:MESSAGE_CHANGE_DISPLAY_TYPE integerValue:displayModeID]; - - // If the display mode swaps between Main Only and Touch Only, the view will not resize to implicitly - // redraw the view. So when swapping between these two display modes, explicitly tell the view to redraw. - if ( (oldMode == DS_DISPLAY_TYPE_MAIN && displayModeID == DS_DISPLAY_TYPE_TOUCH) || - (oldMode == DS_DISPLAY_TYPE_TOUCH && displayModeID == DS_DISPLAY_TYPE_MAIN) ) - { - [CocoaDSUtil messageSendOneWay:[[self cdsVideoOutput] receivePort] msgID:MESSAGE_REDRAW_VIEW]; - } } - (NSInteger) displayMode @@ -364,7 +372,7 @@ _displayOrientation = theOrientation; OSSpinLockUnlock(&spinlockDisplayOrientation); - if ([self displayMode] == DS_DISPLAY_TYPE_COMBO) + if ([self displayMode] == DS_DISPLAY_TYPE_DUAL) { const double gapScalar = [self displayGap]; NSSize newDisplaySize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT); @@ -422,7 +430,7 @@ _displayGap = gapScalar; OSSpinLockUnlock(&spinlockDisplayGap); - if ([self displayMode] == DS_DISPLAY_TYPE_COMBO) + if ([self displayMode] == DS_DISPLAY_TYPE_DUAL) { NSSize newDisplaySize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT); @@ -481,7 +489,7 @@ _isMinSizeNormal = theState; - if ([self displayMode] == DS_DISPLAY_TYPE_COMBO) + if ([self displayMode] == DS_DISPLAY_TYPE_DUAL) { if ([self displayOrientation] == DS_DISPLAY_ORIENTATION_HORIZONTAL) { @@ -519,17 +527,17 @@ - (void) setIsShowingStatusBar:(BOOL)showStatusBar { - NSRect frameRect = [[self window] frame]; + NSRect frameRect = [masterWindow frame]; if (showStatusBar) { _statusBarHeight = WINDOW_STATUS_BAR_HEIGHT; frameRect.size.height += WINDOW_STATUS_BAR_HEIGHT; - NSRect screenFrame = [[NSScreen mainScreen] visibleFrame]; + NSRect screenFrame = [[masterWindow screen] visibleFrame]; if (frameRect.size.height > screenFrame.size.height) { - NSRect windowContentRect = [[[self window] contentView] bounds]; + NSRect windowContentRect = [[masterWindow contentView] bounds]; double widthToHeightRatio = windowContentRect.size.width / windowContentRect.size.height; windowContentRect.size.height -= frameRect.size.height - screenFrame.size.height; windowContentRect.size.width = windowContentRect.size.height * widthToHeightRatio; @@ -550,7 +558,7 @@ } [[NSUserDefaults standardUserDefaults] setBool:showStatusBar forKey:@"DisplayView_ShowStatusBar"]; - [[self window] setFrame:frameRect display:YES animate:NO]; + [masterWindow setFrame:frameRect display:YES animate:NO]; } - (BOOL) isShowingStatusBar @@ -579,8 +587,11 @@ - (double) resizeWithTransform:(NSSize)normalBounds scalar:(double)scalar rotation:(double)angleDegrees { - NSWindow *theWindow = [self window]; - + if ([self assignedScreen] != nil) + { + return scalar; + } + // Convert angle to clockwise-direction degrees. angleDegrees = CLOCKWISE_DEGREES(angleDegrees); @@ -596,14 +607,14 @@ const CGSize transformedBounds = GetTransformedBounds(normalBounds.width, normalBounds.height, scalar, angleDegrees); // Get the center of the content view in screen coordinates. - const NSRect windowContentRect = [[theWindow contentView] bounds]; + const NSRect windowContentRect = [[masterWindow contentView] bounds]; const double translationX = (windowContentRect.size.width - transformedBounds.width) / 2.0; const double translationY = ((windowContentRect.size.height - _statusBarHeight) - transformedBounds.height) / 2.0; // Resize the window. - const NSRect windowFrame = [theWindow frame]; - const NSRect newFrame = [theWindow frameRectForContentRect:NSMakeRect(windowFrame.origin.x + translationX, windowFrame.origin.y + translationY, transformedBounds.width, transformedBounds.height + _statusBarHeight)]; - [theWindow setFrame:newFrame display:YES animate:NO]; + const NSRect windowFrame = [masterWindow frame]; + const NSRect newFrame = [masterWindow frameRectForContentRect:NSMakeRect(windowFrame.origin.x + translationX, windowFrame.origin.y + translationY, transformedBounds.width, transformedBounds.height + _statusBarHeight)]; + [masterWindow setFrame:newFrame display:YES animate:NO]; // Return the actual scale used for the view (may be constrained). return scalar; @@ -635,6 +646,108 @@ [emuControl restoreCoreState]; } +- (void) enterFullScreen +{ + NSScreen *targetScreen = [masterWindow screen]; + + // If there is a window that is already assigned to the target screen, then force the + // current window to exit full screen first. + if (_screenMap.find(targetScreen) != _screenMap.end()) + { + DisplayWindowController *currentFullScreenWindow = _screenMap[targetScreen]; + [currentFullScreenWindow exitFullScreen]; + } + + [[self window] orderOut:nil]; + + // Since we'll be using the screen rect to position the window, we need to set the origin + // to (0,0) since creating the new full screen window requires the screen rect to be in + // screen coordinates. + NSRect screenRect = [targetScreen frame]; + screenRect.origin.x = 0.0; + screenRect.origin.y = 0.0; + + DisplayFullScreenWindow *newFullScreenWindow = [[[DisplayFullScreenWindow alloc] initWithContentRect:screenRect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO + screen:targetScreen] autorelease]; + [newFullScreenWindow setHasShadow:NO]; + [newFullScreenWindow setInitialFirstResponder:view]; + [view setFrame:screenRect]; + [[newFullScreenWindow contentView] addSubview:view]; + [newFullScreenWindow setDelegate:self]; + + // If the target screen is the main screen (index 0), then autohide the menu bar and dock. + if (targetScreen == [[NSScreen screens] objectAtIndex:0]) + { + SetSystemUIMode(kUIModeAllHidden, kUIOptionAutoShowMenuBar); + } + + // Show the full screen window. + [self setWindow:newFullScreenWindow]; + [newFullScreenWindow makeKeyAndOrderFront:self]; + [newFullScreenWindow display]; + + [self setAssignedScreen:targetScreen]; + _screenMap[targetScreen] = self; +} + +- (void) exitFullScreen +{ + _screenMap.erase([self assignedScreen]); + [self setAssignedScreen:nil]; + [[self window] orderOut:nil]; + + // If the window is using the main screen (index 0), then restore the menu bar and dock. + if ([masterWindow screen] == [[NSScreen screens] objectAtIndex:0]) + { + SetSystemUIMode(kUIModeNormal, 0); + } + + [self setWindow:masterWindow]; + [self resizeWithTransform:[self normalSize] scalar:[self displayScale] rotation:[self displayRotation]]; + + NSRect viewFrame = [[masterWindow contentView] frame]; + viewFrame.size.height -= _statusBarHeight; + viewFrame.origin.y = _statusBarHeight; + [view setFrame:viewFrame]; + [[masterWindow contentView] addSubview:view]; + [masterWindow makeKeyAndOrderFront:self]; + [masterWindow display]; +} + +- (void) respondToScreenChange:(NSNotification *)aNotification +{ + // This method only applies for displays in full screen mode. For displays in + // windowed mode, we don't need to do anything. + if ([self assignedScreen] == nil) + { + return; + } + + NSArray *screenList = [NSScreen screens]; + + // If the assigned screen was disconnected, exit full screen mode. Hopefully, the + // window will automatically move onto an available screen. + if (![screenList containsObject:[self assignedScreen]]) + { + [self exitFullScreen]; + } + else + { + // There are many other reasons that a screen change would occur, but the only + // other one we care about is a resolution change. Let's just assume that a + // resolution change occurred and resize the full screen window. + NSRect screenRect = [assignedScreen frame]; + [[self window] setFrame:screenRect display:NO]; + + screenRect.origin.x = 0.0; + screenRect.origin.y = 0.0; + [view setFrame:screenRect]; + } +} + #pragma mark IBActions - (IBAction) copy:(id)sender @@ -648,9 +761,7 @@ } - (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender -{ - NSWindow *theWindow = [self window]; - +{ if ([self isMinSizeNormal]) { [self setIsMinSizeNormal:NO]; @@ -664,20 +775,20 @@ transformedMinSize.height += _statusBarHeight; // Resize the window if it's smaller than the minimum content size. - NSRect windowContentRect = [theWindow contentRectForFrameRect:[theWindow frame]]; + NSRect windowContentRect = [masterWindow contentRectForFrameRect:[masterWindow frame]]; if (windowContentRect.size.width < transformedMinSize.width || windowContentRect.size.height < transformedMinSize.height) { // Prepare to resize. - NSRect oldFrameRect = [theWindow frame]; + NSRect oldFrameRect = [masterWindow frame]; windowContentRect.size = NSMakeSize(transformedMinSize.width, transformedMinSize.height); - NSRect newFrameRect = [theWindow frameRectForContentRect:windowContentRect]; + NSRect newFrameRect = [masterWindow frameRectForContentRect:windowContentRect]; // Keep the window centered when expanding the size. newFrameRect.origin.x = oldFrameRect.origin.x - ((newFrameRect.size.width - oldFrameRect.size.width) / 2); newFrameRect.origin.y = oldFrameRect.origin.y - ((newFrameRect.size.height - oldFrameRect.size.height) / 2); // Set the window size. - [theWindow setFrame:newFrameRect display:YES animate:NO]; + [masterWindow setFrame:newFrameRect display:YES animate:NO]; } } } @@ -687,6 +798,18 @@ [self setIsShowingStatusBar:([self isShowingStatusBar]) ? NO : YES]; } +- (IBAction) toggleFullScreenDisplay:(id)sender +{ + if ([self assignedScreen] == nil) + { + [self enterFullScreen]; + } + else + { + [self exitFullScreen]; + } +} + - (IBAction) toggleExecutePause:(id)sender { [emuControl toggleExecutePause:sender]; @@ -707,12 +830,6 @@ [emuControl openRom:sender]; } -- (IBAction) changeRotationRelative:(id)sender -{ - const double angleDegrees = [self displayRotation] + (double)[CocoaDSUtil getIBActionSenderTag:sender]; - [self setDisplayRotation:angleDegrees]; -} - - (IBAction) saveScreenshotAs:(id)sender { [emuControl pauseCore]; @@ -733,10 +850,277 @@ } } +- (IBAction) changeScale:(id)sender +{ + [self setDisplayScale:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; +} + +- (IBAction) changeRotation:(id)sender +{ + // Get the rotation value from the sender. + if ([sender isMemberOfClass:[NSSlider class]]) + { + [self setDisplayRotation:[(NSSlider *)sender doubleValue]]; + } + else + { + [self setDisplayRotation:(double)[CocoaDSUtil getIBActionSenderTag:sender]]; + } +} + +- (IBAction) changeRotationRelative:(id)sender +{ + const double angleDegrees = [self displayRotation] + (double)[CocoaDSUtil getIBActionSenderTag:sender]; + [self setDisplayRotation:angleDegrees]; +} + +- (IBAction) changeDisplayMode:(id)sender +{ + const NSInteger newDisplayModeID = [CocoaDSUtil getIBActionSenderTag:sender]; + + if (newDisplayModeID == [self displayMode]) + { + return; + } + + [self setDisplayMode:newDisplayModeID]; +} + +- (IBAction) changeDisplayOrientation:(id)sender +{ + const NSInteger newDisplayOrientation = [CocoaDSUtil getIBActionSenderTag:sender]; + + if (newDisplayOrientation == [self displayOrientation]) + { + return; + } + + [self setDisplayOrientation:newDisplayOrientation]; +} + +- (IBAction) changeDisplayOrder:(id)sender +{ + [self setDisplayOrder:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) changeDisplayGap:(id)sender +{ + [self setDisplayGap:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; +} + +- (IBAction) toggleBilinearFilteredOutput:(id)sender +{ + [self setUseBilinearOutput:([self useBilinearOutput]) ? NO : YES]; +} + +- (IBAction) toggleVerticalSync:(id)sender +{ + [self setUseVerticalSync:([self useVerticalSync]) ? NO : YES]; +} + +- (IBAction) changeVideoFilter:(id)sender +{ + [self setVideoFilterType:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) writeDefaultsDisplayRotation:(id)sender +{ + [[NSUserDefaults standardUserDefaults] setDouble:[self displayRotation] forKey:@"DisplayView_Rotation"]; +} + +- (IBAction) writeDefaultsDisplayGap:(id)sender +{ + [[NSUserDefaults standardUserDefaults] setDouble:([self displayGap] * 100.0) forKey:@"DisplayViewCombo_Gap"]; +} + +- (IBAction) writeDefaultsHUDSettings:(id)sender +{ + // TODO: Not implemented. +} + +- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender +{ + [[NSUserDefaults standardUserDefaults] setInteger:[self videoFilterType] forKey:@"DisplayView_VideoFilter"]; + [[NSUserDefaults standardUserDefaults] setBool:[self useBilinearOutput] forKey:@"DisplayView_UseBilinearOutput"]; + [[NSUserDefaults standardUserDefaults] setBool:[self useVerticalSync] forKey:@"DisplayView_UseVerticalSync"]; +} + +#pragma mark NSUserInterfaceValidations Protocol + +- (BOOL)validateUserInterfaceItem:(id )theItem +{ + BOOL enable = YES; + const SEL theAction = [theItem action]; + + if (theAction == @selector(changeScale:)) + { + const NSInteger viewScale = (NSInteger)([self displayScale] * 100.0); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:(viewScale == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeRotation:)) + { + const NSInteger viewRotation = (NSInteger)[self displayRotation]; + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([theItem tag] == -1) + { + if (viewRotation == 0 || + viewRotation == 90 || + viewRotation == 180 || + viewRotation == 270) + { + [(NSMenuItem *)theItem setState:NSOffState]; + } + else + { + [(NSMenuItem *)theItem setState:NSOnState]; + } + } + else + { + [(NSMenuItem *)theItem setState:(viewRotation == [theItem tag]) ? NSOnState : NSOffState]; + } + } + } + else if (theAction == @selector(changeDisplayMode:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self displayMode] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeDisplayOrientation:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self displayOrientation] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeDisplayOrder:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self displayOrder] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeDisplayGap:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + const NSInteger gapScalar = (NSInteger)([self displayGap] * 100.0); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([theItem tag] == -1) + { + if (gapScalar == 0 || + gapScalar == 50 || + gapScalar == 100 || + gapScalar == 150 || + gapScalar == 200) + { + [(NSMenuItem *)theItem setState:NSOffState]; + } + else + { + [(NSMenuItem *)theItem setState:NSOnState]; + } + } + else + { + [(NSMenuItem *)theItem setState:(gapScalar == [theItem tag]) ? NSOnState : NSOffState]; + } + } + } + } + else if (theAction == @selector(toggleBilinearFilteredOutput:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self useBilinearOutput]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(toggleVerticalSync:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self useVerticalSync]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeVideoFilter:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self videoFilterType] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(hudDisable:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setTitle:([[self view] isHudEnabled]) ? NSSTRING_TITLE_DISABLE_HUD : NSSTRING_TITLE_ENABLE_HUD]; + } + } + else if (theAction == @selector(toggleStatusBar:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setTitle:([self isShowingStatusBar]) ? NSSTRING_TITLE_HIDE_STATUS_BAR : NSSTRING_TITLE_SHOW_STATUS_BAR]; + } + + if ([self assignedScreen] != nil) + { + enable = NO; + } + } + else if (theAction == @selector(toggleFullScreenDisplay:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setTitle:([self assignedScreen] != nil) ? NSSTRING_TITLE_EXIT_FULL_SCREEN : NSSTRING_TITLE_ENTER_FULL_SCREEN]; + } + } + else if (theAction == @selector(toggleKeepMinDisplaySizeAtNormal:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([self isMinSizeNormal]) ? NSOnState : NSOffState]; + } + + if ([self assignedScreen] != nil) + { + enable = NO; + } + } + else if (theAction == @selector(toggleToolbarShown:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setTitle:([[[self window] toolbar] isVisible]) ? NSSTRING_TITLE_HIDE_TOOLBAR : NSSTRING_TITLE_SHOW_TOOLBAR]; + } + } + + return enable; +} + #pragma mark NSWindowDelegate Protocol - (void)windowDidLoad { + // Set up the master window that is associated with this window controller. + [self setMasterWindow:[self window]]; + [masterWindow setTitle:(NSString *)[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]]; + [masterWindow setInitialFirstResponder:view]; + [view setInputManager:[emuControl inputManager]]; + [[emuControl windowList] addObject:self]; + [emuControl updateAllWindowTitles]; + + // Set up the video output thread. cdsVideoOutput = [[CocoaDSDisplayVideo alloc] init]; [cdsVideoOutput setDelegate:view]; @@ -746,6 +1130,16 @@ [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]; } + // Setup default values per user preferences. + [self setupUserDefaults]; + + // Set the video filter source size now since the proper size is needed on initialization. + // If we don't do this, new windows could draw incorrectly. + const NSSize vfSrcSize = NSMakeSize(GPU_DISPLAY_WIDTH, ([self displayMode] == DS_DISPLAY_TYPE_DUAL) ? GPU_DISPLAY_HEIGHT * 2 : GPU_DISPLAY_HEIGHT); + [[cdsVideoOutput vf] setSourceSize:vfSrcSize]; + [CocoaDSUtil messageSendOneWayWithInteger:[cdsVideoOutput receivePort] msgID:MESSAGE_CHANGE_VIDEO_FILTER integerValue:[self videoFilterType]]; + + // Add the video thread to the output list. [emuControl addOutputToCore:cdsVideoOutput]; } @@ -758,6 +1152,13 @@ - (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize { + if ([self assignedScreen] != nil) + { + return frameSize; + } + + _isWindowResizing = YES; + // Get a content Rect so that we can make our comparison. // This will be based on the proposed frameSize. const NSRect frameRect = NSMakeRect(0.0f, 0.0f, frameSize.width, frameSize.height); @@ -780,6 +1181,13 @@ - (void)windowDidResize:(NSNotification *)notification { + if ([self assignedScreen] != nil) + { + return; + } + + _isWindowResizing = YES; + // Get the max scalar within the window's current content bounds. const NSSize normalBounds = [self normalSize]; const CGSize checkSize = GetTransformedBounds(normalBounds.width, normalBounds.height, 1.0, [self displayRotation]); @@ -795,6 +1203,8 @@ newContentFrame.origin.y = _statusBarHeight; newContentFrame.size.height -= _statusBarHeight; [view setFrame:newContentFrame]; + + _isWindowResizing = NO; } - (BOOL)windowShouldClose:(id)sender @@ -810,10 +1220,6 @@ [emuControl closeRom:nil]; shouldClose = NO; } - else // If no ROM is loaded, close the window and terminate the application. - { - [NSApp terminate:sender]; - } return shouldClose; } @@ -826,6 +1232,18 @@ [self setCdsVideoOutput:nil]; [[emuControl windowList] removeObject:self]; + + if ([[emuControl windowList] count] < 1) + { + if ([emuControl currentRom] != nil) + { + [emuControl closeRom:nil]; + } + + [NSApp terminate:[notification object]]; + return; + } + [emuControl updateAllWindowTitles]; } @@ -906,6 +1324,8 @@ return self; } + inputManager = nil; + // Initialize the OpenGL context NSOpenGLPixelFormatAttribute attributes[] = { NSOpenGLPFAColorSize, (NSOpenGLPixelFormatAttribute)24, @@ -920,23 +1340,32 @@ [format release]; cglDisplayContext = (CGLContextObj)[context CGLContextObj]; - CGLContextObj prevContext = CGLGetCurrentContext(); - CGLSetCurrentContext(cglDisplayContext); - [self startupOpenGL]; - CGLSetCurrentContext(prevContext); - - lastDisplayMode = DS_DISPLAY_TYPE_COMBO; - currentDisplayOrientation = DS_DISPLAY_ORIENTATION_VERTICAL; - currentGapScalar = 0.0f; + _currentDisplayMode = DS_DISPLAY_TYPE_DUAL; + _currentDisplayOrientation = DS_DISPLAY_ORIENTATION_VERTICAL; + _currentGapScalar = 0.0f; + _currentNormalSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT*2.0 + (DS_DISPLAY_GAP*_currentGapScalar)); glTexPixelFormat = GL_UNSIGNED_SHORT_1_5_5_5_REV; - UInt32 w = GetNearestPositivePOT((UInt32)GPU_DISPLAY_WIDTH); - UInt32 h = GetNearestPositivePOT((UInt32)(GPU_DISPLAY_HEIGHT*2.0 + (DS_DISPLAY_GAP*currentGapScalar))); + const UInt32 w = GetNearestPositivePOT((UInt32)_currentNormalSize.width); + const UInt32 h = GetNearestPositivePOT((UInt32)_currentNormalSize.height); glTexBack = (GLvoid *)calloc(w * h, sizeof(UInt16)); glTexBackSize = NSMakeSize(w, h); vtxBufferOffset = 0; - inputManager = nil; + [self updateDisplayVerticesUsingDisplayMode:_currentDisplayMode orientation:_currentDisplayOrientation gap:_currentGapScalar]; + [self updateTexCoordS:1.0f T:2.0f]; + + // Set up initial vertex elements + vtxIndexBuffer[0] = 0; vtxIndexBuffer[1] = 1; vtxIndexBuffer[2] = 2; + vtxIndexBuffer[3] = 2; vtxIndexBuffer[4] = 3; vtxIndexBuffer[5] = 0; + + vtxIndexBuffer[6] = 4; vtxIndexBuffer[7] = 5; vtxIndexBuffer[8] = 6; + vtxIndexBuffer[9] = 6; vtxIndexBuffer[10] = 7; vtxIndexBuffer[11] = 4; + + CGLContextObj prevContext = CGLGetCurrentContext(); + CGLSetCurrentContext(cglDisplayContext); + [self startupOpenGL]; + CGLSetCurrentContext(prevContext); return self; } @@ -962,16 +1391,6 @@ - (void) startupOpenGL { - [self updateDisplayVerticesUsingDisplayMode:lastDisplayMode orientation:currentDisplayOrientation gap:currentGapScalar]; - [self updateTexCoordS:1.0f T:2.0f]; - - // Set up initial vertex elements - vtxIndexBuffer[0] = 0; vtxIndexBuffer[1] = 1; vtxIndexBuffer[2] = 2; - vtxIndexBuffer[3] = 2; vtxIndexBuffer[4] = 3; vtxIndexBuffer[5] = 0; - - vtxIndexBuffer[6] = 4; vtxIndexBuffer[7] = 5; vtxIndexBuffer[8] = 6; - vtxIndexBuffer[9] = 6; vtxIndexBuffer[10] = 7; vtxIndexBuffer[11] = 4; - // Check the OpenGL capabilities for this renderer const GLubyte *glExtString = glGetString(GL_EXTENSIONS); @@ -1006,7 +1425,7 @@ glUniform1f(uniformAngleDegrees, 0.0f); glUniform1f(uniformScalar, 1.0f); - glUniform2f(uniformViewSize, GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT*2.0 + (DS_DISPLAY_GAP*currentGapScalar)); + glUniform2f(uniformViewSize, GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT*2.0 + (DS_DISPLAY_GAP*_currentGapScalar)); } else { @@ -1217,14 +1636,14 @@ glBindVertexArrayAPPLE(vaoMainStatesID); // Perform the render - if (lastDisplayMode != displayModeID) + if (_currentDisplayMode != displayModeID) { - lastDisplayMode = displayModeID; - [self updateDisplayVerticesUsingDisplayMode:displayModeID orientation:currentDisplayOrientation gap:currentGapScalar]; + _currentDisplayMode = displayModeID; + [self updateDisplayVerticesUsingDisplayMode:displayModeID orientation:_currentDisplayOrientation gap:_currentGapScalar]; [self uploadVertices]; } - const GLsizei vtxElementCount = (displayModeID == DS_DISPLAY_TYPE_COMBO) ? 12 : 6; + const GLsizei vtxElementCount = (displayModeID == DS_DISPLAY_TYPE_DUAL) ? 12 : 6; const GLubyte *elementPointer = !(displayModeID == DS_DISPLAY_TYPE_TOUCH) ? 0 : (GLubyte *)(vtxElementCount * sizeof(GLubyte)); glClear(GL_COLOR_BUFFER_BIT); @@ -1242,7 +1661,7 @@ const GLfloat h = GPU_DISPLAY_HEIGHT; const GLfloat gap = DS_DISPLAY_GAP * gapScalar / 2.0; - if (displayModeID == DS_DISPLAY_TYPE_COMBO) + if (displayModeID == DS_DISPLAY_TYPE_DUAL) { // displayOrder == DS_DISPLAY_ORDER_MAIN_FIRST if (displayOrientationID == DS_DISPLAY_ORIENTATION_VERTICAL) @@ -1321,15 +1740,18 @@ } const NSSize normalBounds = [windowController normalSize]; - const NSSize transformBounds = [self bounds].size; + const NSSize viewSize = [self bounds].size; + const CGSize transformBounds = GetTransformedBounds(normalBounds.width, normalBounds.height, 1.0, _currentRotation); + const double s = GetMaxScalarInBounds(transformBounds.width, transformBounds.height, viewSize.width, viewSize.height); + CGPoint touchLoc = GetNormalPointFromTransformedPoint(clickLoc.x, clickLoc.y, normalBounds.width, normalBounds.height, - transformBounds.width, transformBounds.height, - [windowController displayScale], + viewSize.width, viewSize.height, + s, viewAngle); // Normalize the touch location to the DS. - if ([windowController displayMode] == DS_DISPLAY_TYPE_COMBO) + if ([windowController displayMode] == DS_DISPLAY_TYPE_DUAL) { const NSInteger theOrientation = [windowController displayOrientation]; const NSInteger theOrder = [windowController displayOrder]; @@ -1381,7 +1803,7 @@ const size_t inputCount = inputList.size(); - for (unsigned int i = 0; i < inputCount; i++) + for (size_t i = 0; i < inputCount; i++) { const InputAttributes &inputAttr = inputList[i]; @@ -1442,7 +1864,7 @@ // and finally to DS touchscreen coordinates. NSPoint touchLoc = NSMakePoint(-2.0, -2.0); - if (displayModeID == DS_DISPLAY_TYPE_TOUCH || displayModeID == DS_DISPLAY_TYPE_COMBO) + if (displayModeID == DS_DISPLAY_TYPE_TOUCH || displayModeID == DS_DISPLAY_TYPE_DUAL) { touchLoc = [self dsPointFromEvent:theEvent]; } @@ -1529,7 +1951,6 @@ [context update]; DisplayWindowController *windowController = (DisplayWindowController *)[[self window] delegate]; [CocoaDSUtil messageSendOneWayWithRect:[[windowController cdsVideoOutput] receivePort] msgID:MESSAGE_RESIZE_VIEW rect:rect]; - [self setNeedsDisplay:YES]; } } @@ -1658,6 +2079,10 @@ - (void)doResizeView:(NSRect)rect { + const NSSize viewSize = [self frame].size; + const CGSize checkSize = GetTransformedBounds(_currentNormalSize.width, _currentNormalSize.height, 1.0, _currentRotation); + const double s = GetMaxScalarInBounds(checkSize.width, checkSize.height, viewSize.width, viewSize.height); + CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); @@ -1666,38 +2091,50 @@ if (isShaderSupported) { glUniform2f(uniformViewSize, rect.size.width, rect.size.height); + glUniform1f(uniformScalar, s); } else { glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-rect.size.width/2, -rect.size.width/2 + rect.size.width, -rect.size.height/2, -rect.size.height/2 + rect.size.height, -1.0, 1.0); + glRotatef(CLOCKWISE_DEGREES(_currentRotation), 0.0f, 0.0f, 1.0f); + glScalef(s, s, 1.0f); } + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; + [self drawVideoFrame]; + CGLUnlockContext(cglDisplayContext); } - (void)doTransformView:(const DisplayOutputTransformData *)transformData { - const GLfloat angleDegrees = (GLfloat)transformData->rotation; - const GLfloat s = (GLfloat)transformData->scale; + _currentRotation = (GLfloat)transformData->rotation; + + const NSSize viewSize = [self bounds].size; + const CGSize checkSize = GetTransformedBounds(_currentNormalSize.width, _currentNormalSize.height, 1.0, _currentRotation); + const double s = GetMaxScalarInBounds(checkSize.width, checkSize.height, viewSize.width, viewSize.height); CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); if (isShaderSupported) { - glUniform1f(uniformAngleDegrees, angleDegrees); + glUniform1f(uniformAngleDegrees, _currentRotation); glUniform1f(uniformScalar, s); } else { glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - glRotatef(CLOCKWISE_DEGREES(angleDegrees), 0.0f, 0.0f, 1.0f); + glRotatef(CLOCKWISE_DEGREES(_currentRotation), 0.0f, 0.0f, 1.0f); glScalef(s, s, 1.0f); } + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; + [self drawVideoFrame]; + CGLUnlockContext(cglDisplayContext); } @@ -1706,7 +2143,7 @@ CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); - [self renderDisplayUsingDisplayMode:lastDisplayMode]; + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; [self drawVideoFrame]; CGLUnlockContext(cglDisplayContext); @@ -1714,20 +2151,41 @@ - (void)doDisplayModeChanged:(NSInteger)displayModeID { - lastDisplayMode = displayModeID; - [self updateDisplayVerticesUsingDisplayMode:displayModeID orientation:currentDisplayOrientation gap:currentGapScalar]; + DisplayWindowController *windowController = (DisplayWindowController *)[[self window] delegate]; + _currentNormalSize = [windowController normalSize]; + + const NSSize viewSize = [self bounds].size; + const CGSize checkSize = GetTransformedBounds(_currentNormalSize.width, _currentNormalSize.height, 1.0, _currentRotation); + const double s = GetMaxScalarInBounds(checkSize.width, checkSize.height, viewSize.width, viewSize.height); + + _currentDisplayMode = displayModeID; + [self updateDisplayVerticesUsingDisplayMode:displayModeID orientation:_currentDisplayOrientation gap:_currentGapScalar]; CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); + if (isShaderSupported) + { + glUniform1f(uniformScalar, s); + } + else + { + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glRotatef(CLOCKWISE_DEGREES(_currentRotation), 0.0f, 0.0f, 1.0f); + glScalef(s, s, 1.0f); + } + [self uploadVertices]; + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; + [self drawVideoFrame]; CGLUnlockContext(cglDisplayContext); } - (void)doBilinearOutputChanged:(BOOL)useBilinear { - const GLint textureFilter = useBilinear ? GL_LINEAR : GL_NEAREST; + const GLint textureFilter = (useBilinear) ? GL_LINEAR : GL_NEAREST; CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); @@ -1740,20 +2198,45 @@ CGLUnlockContext(cglDisplayContext); } -- (void) doDisplayOrientationChanged:(NSInteger)displayOrientationID +- (void)doDisplayOrientationChanged:(NSInteger)displayOrientationID { - currentDisplayOrientation = displayOrientationID; - [self updateDisplayVerticesUsingDisplayMode:lastDisplayMode orientation:displayOrientationID gap:currentGapScalar]; + DisplayWindowController *windowController = (DisplayWindowController *)[[self window] delegate]; + _currentNormalSize = [windowController normalSize]; + + _currentDisplayOrientation = displayOrientationID; + [self updateDisplayVerticesUsingDisplayMode:_currentDisplayMode orientation:displayOrientationID gap:_currentGapScalar]; CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); [self uploadVertices]; + if (_currentDisplayMode == DS_DISPLAY_TYPE_DUAL) + { + const NSSize viewSize = [self bounds].size; + const CGSize checkSize = GetTransformedBounds(_currentNormalSize.width, _currentNormalSize.height, 1.0, _currentRotation); + const double s = GetMaxScalarInBounds(checkSize.width, checkSize.height, viewSize.width, viewSize.height); + + if (isShaderSupported) + { + glUniform1f(uniformScalar, s); + } + else + { + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glRotatef(CLOCKWISE_DEGREES(_currentRotation), 0.0f, 0.0f, 1.0f); + glScalef(s, s, 1.0f); + } + + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; + [self drawVideoFrame]; + } + CGLUnlockContext(cglDisplayContext); } -- (void) doDisplayOrderChanged:(NSInteger)displayOrderID +- (void)doDisplayOrderChanged:(NSInteger)displayOrderID { if (displayOrderID == DS_DISPLAY_ORDER_MAIN_FIRST) { @@ -1769,25 +2252,50 @@ [self uploadVertices]; - if (lastDisplayMode == DS_DISPLAY_TYPE_COMBO) + if (_currentDisplayMode == DS_DISPLAY_TYPE_DUAL) { - [self renderDisplayUsingDisplayMode:lastDisplayMode]; + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; [self drawVideoFrame]; } CGLUnlockContext(cglDisplayContext); } -- (void) doDisplayGapChanged:(float)displayGapScalar +- (void)doDisplayGapChanged:(float)displayGapScalar { - currentGapScalar = (GLfloat)displayGapScalar; - [self updateDisplayVerticesUsingDisplayMode:lastDisplayMode orientation:currentDisplayOrientation gap:(GLfloat)displayGapScalar]; + DisplayWindowController *windowController = (DisplayWindowController *)[[self window] delegate]; + _currentNormalSize = [windowController normalSize]; + + _currentGapScalar = (GLfloat)displayGapScalar; + [self updateDisplayVerticesUsingDisplayMode:_currentDisplayMode orientation:_currentDisplayOrientation gap:(GLfloat)displayGapScalar]; CGLLockContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext); [self uploadVertices]; + if (_currentDisplayMode == DS_DISPLAY_TYPE_DUAL) + { + const NSSize viewSize = [self bounds].size; + const CGSize checkSize = GetTransformedBounds(_currentNormalSize.width, _currentNormalSize.height, 1.0, _currentRotation); + const double s = GetMaxScalarInBounds(checkSize.width, checkSize.height, viewSize.width, viewSize.height); + + if (isShaderSupported) + { + glUniform1f(uniformScalar, s); + } + else + { + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glRotatef(CLOCKWISE_DEGREES(_currentRotation), 0.0f, 0.0f, 1.0f); + glScalef(s, s, 1.0f); + } + + [self renderDisplayUsingDisplayMode:_currentDisplayMode]; + [self drawVideoFrame]; + } + CGLUnlockContext(cglDisplayContext); } @@ -1808,7 +2316,7 @@ glTexPixelFormat = GL_UNSIGNED_SHORT_1_5_5_5_REV; } - if ([(DisplayWindowController *)[[self window] delegate] displayMode] != DS_DISPLAY_TYPE_COMBO) + if (_currentDisplayMode != DS_DISPLAY_TYPE_DUAL) { videoFilterDestSize.height = (uint32_t)videoFilterDestSize.height * 2; } @@ -1849,3 +2357,18 @@ @end +#pragma mark - +@implementation DisplayFullScreenWindow + +#pragma mark NSWindow Methods +- (BOOL)canBecomeKeyWindow +{ + return YES; +} + +- (BOOL)canBecomeMainWindow +{ + return YES; +} + +@end diff -Nru desmume-0.9.9/src/cocoa/userinterface/EmuControllerDelegate.h desmume-0.9.10/src/cocoa/userinterface/EmuControllerDelegate.h --- desmume-0.9.9/src/cocoa/userinterface/EmuControllerDelegate.h 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/EmuControllerDelegate.h 2013-11-28 00:37:19.713035793 +0000 @@ -114,6 +114,7 @@ @property (readonly) BOOL masterExecuteFlag; @property (readonly) NSInteger executionState; +@property (readonly) CGFloat lastSetSpeedScalar; @property (readonly) CGFloat speedScalar; @property (assign) BOOL isWorking; @@ -145,7 +146,6 @@ - (IBAction) newDisplayWindow:(id)sender; - (IBAction) openRom:(id)sender; - (IBAction) loadRecentRom:(id)sender; -- (IBAction) closeWindow:(id)sender; - (IBAction) closeRom:(id)sender; - (IBAction) revealRomInFinder:(id)sender; - (IBAction) revealGameDataFolderInFinder:(id)sender; @@ -166,22 +166,8 @@ - (IBAction) reset:(id)sender; - (IBAction) changeRomSaveType:(id)sender; -// View Menu -- (IBAction) changeScale:(id)sender; -- (IBAction) changeRotation:(id)sender; -- (IBAction) changeRotationRelative:(id)sender; -- (IBAction) changeDisplayMode:(id)sender; -- (IBAction) changeDisplayOrientation:(id)sender; -- (IBAction) changeDisplayOrder:(id)sender; -- (IBAction) changeDisplayGap:(id)sender; -- (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender; -- (IBAction) toggleStatusBar:(id)sender; -- (IBAction) toggleToolbarShown:(id)sender; -- (IBAction) runToolbarCustomizationPalette:(id)sender; - // Tools Menu - (IBAction) toggleGPUState:(id)sender; -- (IBAction) saveScreenshotAs:(id)sender; - (IBAction) changeCoreSpeed:(id)sender; - (IBAction) changeCoreEmuFlags:(id)sender; @@ -197,10 +183,6 @@ - (IBAction) chooseSlot1R4Directory:(id)sender; - (IBAction) slot1Eject:(id)sender; -- (IBAction) writeDefaultsDisplayRotation:(id)sender; -- (IBAction) writeDefaultsDisplayGap:(id)sender; -- (IBAction) writeDefaultsHUDSettings:(id)sender; -- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender; - (IBAction) writeDefaults3DRenderingSettings:(id)sender; - (IBAction) writeDefaultsEmulationSettings:(id)sender; - (IBAction) writeDefaultsSlot1Settings:(id)sender; @@ -224,14 +206,15 @@ - (void) cmdReset:(NSValue *)cmdAttrValue; - (void) cmdToggleGPUState:(NSValue *)cmdAttrValue; -- (BOOL) handleLoadRom:(NSURL *)fileURL; +- (BOOL) handleLoadRomByURL:(NSURL *)fileURL; - (BOOL) handleUnloadRom:(NSInteger)reasonID romToLoad:(NSURL *)romURL; -- (BOOL) loadRom:(NSURL *)romURL; +- (BOOL) loadRomByURL:(NSURL *)romURL asynchronous:(BOOL)willLoadAsync; - (void) loadRomDidFinish:(NSNotification *)aNotification; - (BOOL) unloadRom; - (void) addOutputToCore:(CocoaDSOutput *)theOutput; - (void) removeOutputFromCore:(CocoaDSOutput *)theOutput; +- (void) changeCoreSpeedWithDouble:(double)newSpeedScalar; - (void) executeCore; - (void) pauseCore; - (void) restoreCoreState; diff -Nru desmume-0.9.9/src/cocoa/userinterface/EmuControllerDelegate.mm desmume-0.9.10/src/cocoa/userinterface/EmuControllerDelegate.mm --- desmume-0.9.9/src/cocoa/userinterface/EmuControllerDelegate.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/EmuControllerDelegate.mm 2013-11-28 00:37:19.709035730 +0000 @@ -61,6 +61,7 @@ @dynamic masterExecuteFlag; @dynamic executionState; +@synthesize lastSetSpeedScalar; @dynamic speedScalar; @synthesize isWorking; @@ -430,13 +431,6 @@ - (IBAction) newDisplayWindow:(id)sender { DisplayWindowController *newWindowController = [[DisplayWindowController alloc] initWithWindowNibName:@"DisplayWindow" emuControlDelegate:self]; - [windowList addObject:newWindowController]; - [[newWindowController view] setInputManager:[self inputManager]]; - - [self updateAllWindowTitles]; - [newWindowController showWindow:self]; - [[newWindowController window] makeKeyAndOrderFront:self]; - [[newWindowController window] makeMainWindow]; if ([self currentRom] == nil) { @@ -446,6 +440,9 @@ { [[newWindowController view] setNeedsDisplay:YES]; } + + [[newWindowController window] makeKeyAndOrderFront:self]; + [[newWindowController window] makeMainWindow]; } - (IBAction) openRom:(id)sender @@ -482,7 +479,7 @@ return; } - [self handleLoadRom:selectedFile]; + [self handleLoadRomByURL:selectedFile]; } } @@ -491,11 +488,6 @@ // Dummy selector, used for UI validation only. } -- (IBAction) closeWindow:(id)sender -{ - [[mainWindow window] performClose:sender]; -} - - (IBAction) closeRom:(id)sender { [self handleUnloadRom:REASONFORCLOSE_NORMAL romToLoad:nil]; @@ -756,31 +748,6 @@ [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; } -- (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender -{ - [mainWindow toggleKeepMinDisplaySizeAtNormal:sender]; -} - -- (IBAction) toggleStatusBar:(id)sender -{ - [mainWindow toggleStatusBar:sender]; -} - -- (IBAction) toggleToolbarShown:(id)sender -{ - [[mainWindow window] toggleToolbarShown:sender]; -} - -- (IBAction) runToolbarCustomizationPalette:(id)sender -{ - [[mainWindow window] runToolbarCustomizationPalette:sender]; -} - -- (IBAction) saveScreenshotAs:(id)sender -{ - [mainWindow saveScreenshotAs:sender]; -} - - (IBAction) toggleGPUState:(id)sender { [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; @@ -802,10 +769,15 @@ - (IBAction) changeCoreSpeed:(id)sender { - CGFloat newSpeedScalar = (CGFloat)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0f; - CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; - [cdsCore setSpeedScalar:newSpeedScalar]; - lastSetSpeedScalar = newSpeedScalar; + if ([sender isKindOfClass:[NSSlider class]]) + { + lastSetSpeedScalar = [(NSSlider *)sender floatValue]; + } + else + { + const CGFloat newSpeedScalar = (CGFloat)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0f; + [self changeCoreSpeedWithDouble:newSpeedScalar]; + } } - (IBAction) changeCoreEmuFlags:(id)sender @@ -874,63 +846,6 @@ [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_SYNC_METHOD integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; } -- (IBAction) changeScale:(id)sender -{ - [mainWindow setDisplayScale:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; -} - -- (IBAction) changeRotation:(id)sender -{ - // Get the rotation value from the sender. - if ([sender isMemberOfClass:[NSSlider class]]) - { - [mainWindow setDisplayRotation:[(NSSlider *)sender doubleValue]]; - } - else - { - [mainWindow setDisplayRotation:(double)[CocoaDSUtil getIBActionSenderTag:sender]]; - } -} - -- (IBAction) changeRotationRelative:(id)sender -{ - [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; -} - -- (IBAction) changeDisplayMode:(id)sender -{ - const NSInteger newDisplayModeID = [CocoaDSUtil getIBActionSenderTag:sender]; - - if (newDisplayModeID == [mainWindow displayMode]) - { - return; - } - - [mainWindow setDisplayMode:newDisplayModeID]; -} - -- (IBAction) changeDisplayOrientation:(id)sender -{ - const NSInteger newDisplayOrientation = [CocoaDSUtil getIBActionSenderTag:sender]; - - if (newDisplayOrientation == [mainWindow displayOrientation]) - { - return; - } - - [mainWindow setDisplayOrientation:newDisplayOrientation]; -} - -- (IBAction) changeDisplayOrder:(id)sender -{ - [mainWindow setDisplayOrder:[CocoaDSUtil getIBActionSenderTag:sender]]; -} - -- (IBAction) changeDisplayGap:(id)sender -{ - [mainWindow setDisplayGap:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; -} - - (IBAction) chooseSlot1R4Directory:(id)sender { NSOpenPanel *panel = [NSOpenPanel openPanel]; @@ -939,12 +854,10 @@ [panel setResolvesAliases:YES]; [panel setAllowsMultipleSelection:NO]; [panel setTitle:@"Select R4 Directory"]; - NSArray *fileTypes = [NSArray arrayWithObjects:nil]; // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo // is deprecated in Mac OS X v10.6. #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 - [panel setAllowedFileTypes:fileTypes]; [panel beginSheetModalForWindow:slot1ManagerWindow completionHandler:^(NSInteger result) { [self didEndChooseSlot1R4Directory:panel returnCode:result contextInfo:nil]; @@ -952,7 +865,7 @@ #else [panel beginSheetForDirectory:nil file:nil - types:fileTypes + types:nil modalForWindow:slot1ManagerWindow modalDelegate:self didEndSelector:@selector(didEndChooseSlot1R4Directory:returnCode:contextInfo:) @@ -966,28 +879,6 @@ [cdsCore slot1Eject]; } -- (IBAction) writeDefaultsDisplayRotation:(id)sender -{ - [[NSUserDefaults standardUserDefaults] setDouble:[mainWindow displayRotation] forKey:@"DisplayView_Rotation"]; -} - -- (IBAction) writeDefaultsDisplayGap:(id)sender -{ - [[NSUserDefaults standardUserDefaults] setDouble:([mainWindow displayGap] * 100.0) forKey:@"DisplayViewCombo_Gap"]; -} - -- (IBAction) writeDefaultsHUDSettings:(id)sender -{ - // TODO: Not implemented. -} - -- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender -{ - [[NSUserDefaults standardUserDefaults] setInteger:[mainWindow videoFilterType] forKey:@"DisplayView_VideoFilter"]; - [[NSUserDefaults standardUserDefaults] setBool:[mainWindow useBilinearOutput] forKey:@"DisplayView_UseBilinearOutput"]; - [[NSUserDefaults standardUserDefaults] setBool:[mainWindow useVerticalSync] forKey:@"DisplayView_UseVerticalSync"]; -} - - (IBAction) writeDefaults3DRenderingSettings:(id)sender { CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; @@ -1394,11 +1285,11 @@ [cdsCore.cdsGPU setGpuStateFlags:flagBit]; } -- (BOOL) handleLoadRom:(NSURL *)fileURL +- (BOOL) handleLoadRomByURL:(NSURL *)fileURL { BOOL result = NO; - if ([self isRomLoading]) + if (fileURL == nil || [self isRomLoading]) { return result; } @@ -1432,7 +1323,7 @@ } else { - result = [self loadRom:fileURL]; + result = [self loadRomByURL:fileURL asynchronous:YES]; } return result; @@ -1485,7 +1376,7 @@ return result; } -- (BOOL) loadRom:(NSURL *)romURL +- (BOOL) loadRomByURL:(NSURL *)romURL asynchronous:(BOOL)willLoadAsync { BOOL result = NO; @@ -1516,7 +1407,17 @@ [self setIsRomLoading:YES]; [romURL retain]; [newRom setSaveType:selectedRomSaveTypeID]; - [NSThread detachNewThreadSelector:@selector(loadDataOnThread:) toTarget:newRom withObject:romURL]; + [newRom setWillStreamLoadData:[[NSUserDefaults standardUserDefaults] boolForKey:@"General_StreamLoadRomData"]]; + + if (willLoadAsync) + { + [NSThread detachNewThreadSelector:@selector(loadDataOnThread:) toTarget:newRom withObject:romURL]; + } + else + { + [newRom loadData:romURL]; + } + [romURL release]; } @@ -1531,7 +1432,7 @@ NSDictionary *userInfo = [aNotification userInfo]; const BOOL didLoad = [(NSNumber *)[userInfo valueForKey:@"DidLoad"] boolValue]; - if (theRom == nil || ![theRom isDataLoaded] || !didLoad) + if ( theRom == nil || !didLoad || (![theRom willStreamLoadData] && ![theRom isDataLoaded]) ) { // If ROM loading fails, restore the core state, but only if a ROM is already loaded. if([self currentRom] != nil) @@ -1733,6 +1634,13 @@ [cdsCore removeOutput:theOutput]; } +- (void) changeCoreSpeedWithDouble:(double)newSpeedScalar +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [cdsCore setSpeedScalar:newSpeedScalar]; + lastSetSpeedScalar = newSpeedScalar; +} + - (void) executeCore { CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; @@ -1782,7 +1690,7 @@ [self setIsUserInterfaceBlockingExecution:NO]; [self setIsShowingFileMigrationDialog:NO]; - [self loadRom:romURL]; + [self loadRomByURL:romURL asynchronous:YES]; // We retained this when we initially put up the sheet, so we need to release it now. [romURL release]; @@ -1830,7 +1738,7 @@ [self didEndSaveStateSheet:sheet returnCode:returnCode contextInfo:contextInfo]; NSURL *romURL = (NSURL *)contextInfo; - [self handleLoadRom:romURL]; + [self handleLoadRomByURL:romURL]; [romURL release]; } @@ -1900,14 +1808,14 @@ { NSString *newWindowTitle = [romName stringByAppendingFormat:@":%ld", (unsigned long)([windowList indexOfObject:windowController] + 1)]; - [[windowController window] setTitle:newWindowTitle]; - [[windowController window] setRepresentedURL:repURL]; - [[[windowController window] standardWindowButton:NSWindowDocumentIconButton] setImage:titleIcon]; + [[windowController masterWindow] setTitle:newWindowTitle]; + [[windowController masterWindow] setRepresentedURL:repURL]; + [[[windowController masterWindow] standardWindowButton:NSWindowDocumentIconButton] setImage:titleIcon]; } } else { - NSWindow *theWindow = [[windowList objectAtIndex:0] window]; + NSWindow *theWindow = [[windowList objectAtIndex:0] masterWindow]; [theWindow setTitle:romName]; [theWindow setRepresentedURL:repURL]; [[theWindow standardWindowButton:NSWindowDocumentIconButton] setImage:titleIcon]; @@ -2151,120 +2059,6 @@ [(NSMenuItem*)theItem setState:([cdsCore.cdsGPU gpuStateByBit:[theItem tag]]) ? NSOnState : NSOffState]; } } - else if (theAction == @selector(changeScale:)) - { - const NSInteger viewScale = (NSInteger)([mainWindow displayScale] * 100.0); - - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:(viewScale == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeRotation:)) - { - const NSInteger viewRotation = (NSInteger)[mainWindow displayRotation]; - - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - if ([theItem tag] == -1) - { - if (viewRotation == 0 || - viewRotation == 90 || - viewRotation == 180 || - viewRotation == 270) - { - [(NSMenuItem*)theItem setState:NSOffState]; - } - else - { - [(NSMenuItem*)theItem setState:NSOnState]; - } - } - else - { - [(NSMenuItem*)theItem setState:(viewRotation == [theItem tag]) ? NSOnState : NSOffState]; - } - } - } - else if (theAction == @selector(changeDisplayMode:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow displayMode] == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeDisplayOrientation:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow displayOrientation] == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeDisplayOrder:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow displayOrder] == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeDisplayGap:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - const NSInteger gapScalar = (NSInteger)([mainWindow displayGap] * 100.0); - - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - if ([theItem tag] == -1) - { - if (gapScalar == 0 || - gapScalar == 50 || - gapScalar == 100 || - gapScalar == 150 || - gapScalar == 200) - { - [(NSMenuItem*)theItem setState:NSOffState]; - } - else - { - [(NSMenuItem*)theItem setState:NSOnState]; - } - } - else - { - [(NSMenuItem*)theItem setState:(gapScalar == [theItem tag]) ? NSOnState : NSOffState]; - } - } - } - } - else if (theAction == @selector(hudDisable:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setTitle:([[mainWindow view] isHudEnabled]) ? NSSTRING_TITLE_DISABLE_HUD : NSSTRING_TITLE_ENABLE_HUD]; - } - } - else if (theAction == @selector(toggleStatusBar:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setTitle:([mainWindow isShowingStatusBar]) ? NSSTRING_TITLE_HIDE_STATUS_BAR : NSSTRING_TITLE_SHOW_STATUS_BAR]; - } - } - else if (theAction == @selector(toggleKeepMinDisplaySizeAtNormal:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow isMinSizeNormal]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(toggleToolbarShown:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setTitle:([[[mainWindow window] toolbar] isVisible]) ? NSSTRING_TITLE_HIDE_TOOLBAR : NSSTRING_TITLE_SHOW_TOOLBAR]; - } - } return enable; } diff -Nru desmume-0.9.9/src/cocoa/userinterface/InputManager.h desmume-0.9.10/src/cocoa/userinterface/InputManager.h --- desmume-0.9.9/src/cocoa/userinterface/InputManager.h 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/InputManager.h 2013-11-28 00:37:19.705035665 +0000 @@ -123,11 +123,11 @@ @end BOOL GetOnStateFromHIDValueRef(IOHIDValueRef hidValueRef); -InputAttributes InputAttributesOfHIDValue(IOHIDValueRef hidValueRef, const char *altElementCode, const char *altElementName, NSNumber *altOnState); +InputAttributes InputAttributesOfHIDValue(IOHIDValueRef hidValueRef, const char *altElementCode, const char *altElementName, bool *altOnState); InputAttributesList InputListFromHIDValue(IOHIDValueRef hidValueRef); InputAttributesList InputListFromHatSwitchValue(IOHIDValueRef hidValueRef, bool useEightDirection); -unsigned int ClearHIDQueue(const IOHIDQueueRef hidQueue); +size_t ClearHIDQueue(const IOHIDQueueRef hidQueue); void HandleQueueValueAvailableCallback(void *inContext, IOReturn inResult, void *inSender); #pragma mark - diff -Nru desmume-0.9.9/src/cocoa/userinterface/InputManager.mm desmume-0.9.10/src/cocoa/userinterface/InputManager.mm --- desmume-0.9.9/src/cocoa/userinterface/InputManager.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/InputManager.mm 2013-11-28 00:37:19.709035730 +0000 @@ -201,9 +201,9 @@ Takes: hidValueRef - The IOHIDValueRef to parse. - altElementCode - An NSString that overrides the default element code. - altElementName - An NSString that overrides the default element name. - altOnState - An NSNumber that overrides the default on state. + altElementCode - A char buffer that overrides the default element code. + altElementName - A char buffer that overrides the default element name. + altOnState - A pointer to a bool value that overrides the default on state. Returns: An InputAttributes struct with the parsed input attributes. @@ -211,7 +211,7 @@ Details: None. ********************************************************************************************/ -InputAttributes InputAttributesOfHIDValue(IOHIDValueRef hidValueRef, const char *altElementCode, const char *altElementName, NSNumber *altOnState) +InputAttributes InputAttributesOfHIDValue(IOHIDValueRef hidValueRef, const char *altElementCode, const char *altElementName, bool *altOnState) { InputAttributes inputAttr; @@ -303,7 +303,7 @@ CFStringGetCString(cfDeviceName, inputAttr.deviceName, INPUT_HANDLER_STRING_LENGTH, kCFStringEncodingUTF8); } - BOOL onState = (altOnState == nil) ? GetOnStateFromHIDValueRef(hidValueRef) : [altOnState boolValue]; + bool onState = (altOnState == NULL) ? GetOnStateFromHIDValueRef(hidValueRef) : *altOnState; CFIndex logicalValue = IOHIDValueGetIntegerValue(hidValueRef); NSInteger logicalMin = IOHIDElementGetLogicalMin(hidElementRef); NSInteger logicalMax = IOHIDElementGetLogicalMax(hidElementRef); @@ -348,14 +348,14 @@ if (logicalMin == 0 && logicalMax == 1) { - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, NULL, NULL, nil)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, NULL, NULL, NULL)); } else { NSInteger lowerThreshold = ((logicalMax - logicalMin) / 3) + logicalMin; NSInteger upperThreshold = (((logicalMax - logicalMin) * 2) / 3) + logicalMin; - NSNumber *onState = [NSNumber numberWithBool:YES]; - NSNumber *offState = [NSNumber numberWithBool:NO]; + bool onState = true; + bool offState = false; char elementCodeLowerThresholdBuf[256] = {0}; char elementCodeUpperThresholdBuf[256] = {0}; @@ -364,18 +364,18 @@ if (logicalValue <= lowerThreshold) { - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeLowerThresholdBuf, NULL, onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeUpperThresholdBuf, NULL, offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeLowerThresholdBuf, NULL, &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeUpperThresholdBuf, NULL, &offState)); } else if (logicalValue >= upperThreshold) { - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeLowerThresholdBuf, NULL, offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeUpperThresholdBuf, NULL, onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeLowerThresholdBuf, NULL, &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeUpperThresholdBuf, NULL, &onState)); } else { - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeLowerThresholdBuf, NULL, offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeUpperThresholdBuf, NULL, onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeLowerThresholdBuf, NULL, &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeUpperThresholdBuf, NULL, &offState)); } } @@ -403,14 +403,13 @@ inputList.resize(8); NSInteger logicalMax = IOHIDElementGetLogicalMax(hidElementRef); NSInteger logicalValue = IOHIDValueGetIntegerValue(hidValueRef); - - NSNumber *onState = [NSNumber numberWithBool:YES]; - NSNumber *offState = [NSNumber numberWithBool:NO]; + bool onState = true; + bool offState = false; char elementCodeFourWay[4][256]; - for (unsigned int i = 0; i < 4; i++) + for (size_t i = 0; i < 4; i++) { - snprintf(elementCodeFourWay[i], 256, "0x%04lX/0x%04lX/%d-FourDirection", (long)elementUsagePage, (long)elementUsage, i); + snprintf(elementCodeFourWay[i], 256, "0x%04lX/0x%04lX/%d-FourDirection", (long)elementUsagePage, (long)elementUsage, (unsigned int)i); } const char *elementNameFourWay[4] = { @@ -420,9 +419,9 @@ "Hatswitch - Left" }; char elementCodeEightWay[8][256]; - for (unsigned int i = 0; i < 8; i++) + for (size_t i = 0; i < 8; i++) { - snprintf(elementCodeEightWay[i], 256, "0x%04lX/0x%04lX/%d-EightDirection", (long)elementUsagePage, (long)elementUsage, i); + snprintf(elementCodeEightWay[i], 256, "0x%04lX/0x%04lX/%d-EightDirection", (long)elementUsagePage, (long)elementUsage, (unsigned int)i); } const char *elementNameEightWay[8] = { @@ -437,18 +436,18 @@ if (logicalMax == 3) { - for (unsigned int i = 0; i <= (unsigned int)logicalMax; i++) + for (size_t i = 0; i <= (size_t)logicalMax; i++) { - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeFourWay[i], elementNameFourWay[i], (i == (unsigned int)logicalValue) ? onState : offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeFourWay[i], elementNameFourWay[i], (i == (size_t)logicalValue) ? &onState : &offState)); } } else if (logicalMax == 7) { if (useEightDirection) { - for (unsigned int i = 0; i <= (unsigned int)logicalMax; i++) + for (size_t i = 0; i <= (size_t)logicalMax; i++) { - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[i], elementNameEightWay[i], (i == (unsigned int)logicalValue) ? onState : offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[i], elementNameEightWay[i], (i == (size_t)logicalValue) ? &onState : &offState)); } } else @@ -456,66 +455,66 @@ switch (logicalValue) { case 0: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &offState)); break; case 1: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &offState)); break; case 2: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &offState)); break; case 3: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &offState)); break; case 4: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &offState)); break; case 5: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &onState)); break; case 6: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &onState)); break; case 7: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], onState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &onState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &onState)); break; default: - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], offState)); - inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[0], elementNameEightWay[0], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[2], elementNameEightWay[2], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[4], elementNameEightWay[4], &offState)); + inputList.push_back(InputAttributesOfHIDValue(hidValueRef, elementCodeEightWay[6], elementNameEightWay[6], &offState)); break; } } @@ -597,9 +596,9 @@ return onState; } -unsigned int ClearHIDQueue(const IOHIDQueueRef hidQueue) +size_t ClearHIDQueue(const IOHIDQueueRef hidQueue) { - unsigned int hidInputClearCount = 0; + size_t hidInputClearCount = 0; if (hidQueue == nil) { @@ -1106,7 +1105,7 @@ const size_t inputCount = inputList->size(); - for (unsigned int i = 0; i < inputCount; i++) + for (size_t i = 0; i < inputCount; i++) { const InputAttributes &inputAttr = (*inputList)[i]; if (inputAttr.state != INPUT_ATTRIBUTE_STATE_ON) @@ -1202,9 +1201,9 @@ - (CommandAttributesList) generateCommandListUsingInputList:(const InputAttributesList *)inputList { CommandAttributesList cmdList; - size_t inputCount = inputList->size(); + const size_t inputCount = inputList->size(); - for (unsigned int i = 0; i < inputCount; i++) + for (size_t i = 0; i < inputCount; i++) { const InputAttributes &inputAttr = (*inputList)[i]; @@ -1520,8 +1519,17 @@ return error; } + AudioStreamBasicDescription inputFormat; + UInt32 propertySize = sizeof(inputFormat); + + error = ExtAudioFileGetProperty(audioFile, kExtAudioFileProperty_FileDataFormat, &propertySize, &inputFormat); + if (error != noErr) + { + return error; + } + SInt64 fileLengthFrames = 0; - UInt32 propertySize = sizeof(fileLengthFrames); + propertySize = sizeof(fileLengthFrames); error = ExtAudioFileGetProperty(audioFile, kExtAudioFileProperty_FileLengthFrames, &propertySize, &fileLengthFrames); if (error != noErr) @@ -1532,17 +1540,18 @@ // Create a new audio file generator. audioFileGenerators[filePathStr] = AudioSampleBlockGenerator(); AudioSampleBlockGenerator &theGenerator = audioFileGenerators[filePathStr]; - u8 *buffer = theGenerator.allocate(fileLengthFrames); + const size_t readSize = 32 * 1024; + const size_t bufferSize = (size_t)((double)(outputFormat.mSampleRate / inputFormat.mSampleRate) * (double)fileLengthFrames) + readSize; + u8 *buffer = theGenerator.allocate(bufferSize); // Read the audio file and fill the generator's buffer. - const size_t convertBufferSize = 32 * 1024; AudioBufferList convertedData; convertedData.mNumberBuffers = 1; convertedData.mBuffers[0].mNumberChannels = outputFormat.mChannelsPerFrame; - convertedData.mBuffers[0].mDataByteSize = convertBufferSize; + convertedData.mBuffers[0].mDataByteSize = readSize; convertedData.mBuffers[0].mData = buffer; - UInt32 readFrames = convertBufferSize; + UInt32 readFrames = readSize; while (readFrames > 0) { ExtAudioFileRead(audioFile, &readFrames, &convertedData); @@ -1555,7 +1564,7 @@ // Convert the audio buffer to 7-bit unsigned PCM. buffer = theGenerator.getBuffer(); - for (SInt64 i = 0; i < fileLengthFrames; i++) + for (SInt64 i = 0; i < bufferSize; i++) { *(buffer+i) >>= 1; } @@ -1781,8 +1790,8 @@ hidInputList = InputListFromHIDValue(hidValueRef); } - size_t hidInputCount = hidInputList.size(); - for (unsigned int i = 0; i < hidInputCount; i++) + const size_t hidInputCount = hidInputList.size(); + for (size_t i = 0; i < hidInputCount; i++) { if (hidInputList[i].deviceCode[0] == '\0' || hidInputList[i].elementCode[0] == '\0') { diff -Nru desmume-0.9.9/src/cocoa/userinterface/inputPrefsView.mm desmume-0.9.10/src/cocoa/userinterface/inputPrefsView.mm --- desmume-0.9.9/src/cocoa/userinterface/inputPrefsView.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/inputPrefsView.mm 2013-11-28 00:37:19.709035730 +0000 @@ -427,7 +427,7 @@ InputAttributesList inputList = InputManagerEncodeHIDQueue(hidQueue); const size_t inputCount = inputList.size(); - for (unsigned int i = 0; i < inputCount; i++) + for (size_t i = 0; i < inputCount; i++) { const InputAttributes &inputAttr = inputList[i]; char inputKey[INPUT_HANDLER_STRING_LENGTH*2]; diff -Nru desmume-0.9.9/src/cocoa/userinterface/preferencesWindowDelegate.h desmume-0.9.10/src/cocoa/userinterface/preferencesWindowDelegate.h --- desmume-0.9.9/src/cocoa/userinterface/preferencesWindowDelegate.h 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/preferencesWindowDelegate.h 2013-11-28 00:37:19.713035793 +0000 @@ -89,7 +89,6 @@ - (IBAction) showSoundView:(id)sender; - (IBAction) showEmulationView:(id)sender; -- (IBAction) selectAutoloadRomOption:(id)sender; - (IBAction) chooseAdvansceneDatabase:(id)sender; - (void) chooseAdvansceneDatabaseDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; - (IBAction) chooseRomForAutoload:(id)sender; @@ -97,8 +96,6 @@ - (IBAction) chooseCheatDatabase:(id)sender; - (void) chooseCheatDatabaseDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; -- (IBAction) selectDisplayMode:(id)sender; -- (IBAction) selectDisplaySize:(id)sender; - (IBAction) selectDisplayRotation:(id)sender; - (void) updateDisplayRotationMenu:(double)displayRotation; diff -Nru desmume-0.9.9/src/cocoa/userinterface/preferencesWindowDelegate.mm desmume-0.9.10/src/cocoa/userinterface/preferencesWindowDelegate.mm --- desmume-0.9.9/src/cocoa/userinterface/preferencesWindowDelegate.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/preferencesWindowDelegate.mm 2013-11-28 00:37:19.709035730 +0000 @@ -154,22 +154,6 @@ [self switchContentView:viewEmulation]; } -- (IBAction) selectAutoloadRomOption:(id)sender -{ - const NSInteger option = [(NSMenuItem *)sender tag]; - - [[NSUserDefaults standardUserDefaults] setInteger:option forKey:@"General_AutoloadROMOption"]; - - if (option == 1) - { - NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; - if ([autoloadRomPath length] == 0) - { - [self chooseRomForAutoload:sender]; - } - } -} - - (IBAction) chooseRomForAutoload:(id)sender { NSOpenPanel *panel = [NSOpenPanel openPanel]; @@ -203,19 +187,27 @@ { [sheet orderOut:self]; + // Temporarily set the autoload ROM option in user defaults to some neutral value first and synchronize. + // When the user defaults are actually set later, this will force the proper state transitions to occur. + [[NSUserDefaults standardUserDefaults] setInteger:ROMAUTOLOADOPTION_CHOOSE_ROM forKey:@"General_AutoloadROMOption"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + if (returnCode == NSCancelButton) { + [[NSUserDefaults standardUserDefaults] setInteger:ROMAUTOLOADOPTION_LOAD_NONE forKey:@"General_AutoloadROMOption"]; return; } NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object if(selectedFileURL == nil) { + [[NSUserDefaults standardUserDefaults] setInteger:ROMAUTOLOADOPTION_LOAD_NONE forKey:@"General_AutoloadROMOption"]; return; } NSString *selectedFile = [selectedFileURL path]; + [[NSUserDefaults standardUserDefaults] setInteger:ROMAUTOLOADOPTION_LOAD_SELECTED forKey:@"General_AutoloadROMOption"]; [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"General_AutoloadROMSelectedPath"]; [bindings setValue:[selectedFile lastPathComponent] forKey:@"AutoloadRomName"]; } @@ -376,18 +368,6 @@ } } -- (IBAction) selectDisplayMode:(id)sender -{ - const NSInteger displayMode = [(NSMenuItem *)sender tag]; - [[NSUserDefaults standardUserDefaults] setInteger:displayMode forKey:@"DisplayView_Mode"]; -} - -- (IBAction) selectDisplaySize:(id)sender -{ - const NSInteger displaySize = [(NSMenuItem *)sender tag]; - [[NSUserDefaults standardUserDefaults] setInteger:displaySize forKey:@"DisplayView_Size"]; -} - - (IBAction) selectDisplayRotation:(id)sender { const NSInteger displayRotation = [(NSMenuItem *)sender tag]; diff -Nru desmume-0.9.9/src/cocoa/userinterface/troubleshootingWindowDelegate.h desmume-0.9.10/src/cocoa/userinterface/troubleshootingWindowDelegate.h --- desmume-0.9.9/src/cocoa/userinterface/troubleshootingWindowDelegate.h 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/troubleshootingWindowDelegate.h 2013-11-28 00:37:19.709035730 +0000 @@ -34,6 +34,8 @@ NSWindow *window; NSObjectController *troubleshootingWindowController; NSObjectController *romInfoController; + NSObjectController *emuControlController; + NSObjectController *cdsCoreController; NSView *viewSupportRequest; NSView *viewBugReport; @@ -48,6 +50,8 @@ @property (readonly) IBOutlet NSWindow *window; @property (readonly) IBOutlet NSObjectController *troubleshootingWindowController; @property (readonly) IBOutlet NSObjectController *romInfoController; +@property (readonly) IBOutlet NSObjectController *emuControlController; +@property (readonly) IBOutlet NSObjectController *cdsCoreController; @property (readonly) IBOutlet NSView *viewSupportRequest; @property (readonly) IBOutlet NSView *viewBugReport; @property (readonly) IBOutlet NSView *viewFinishedForm; diff -Nru desmume-0.9.9/src/cocoa/userinterface/troubleshootingWindowDelegate.mm desmume-0.9.10/src/cocoa/userinterface/troubleshootingWindowDelegate.mm --- desmume-0.9.9/src/cocoa/userinterface/troubleshootingWindowDelegate.mm 2013-05-01 18:47:40.000000000 +0000 +++ desmume-0.9.10/src/cocoa/userinterface/troubleshootingWindowDelegate.mm 2013-11-28 00:37:19.705035665 +0000 @@ -16,9 +16,14 @@ */ #import "troubleshootingWindowDelegate.h" +#import "EmuControllerDelegate.h" #import "cocoa_util.h" #import "cocoa_globals.h" +#import "cocoa_cheat.h" +#import "cocoa_core.h" +#import "cocoa_GPU.h" +#import "cocoa_output.h" @implementation TroubleshootingWindowDelegate @@ -26,6 +31,8 @@ @synthesize window; @synthesize troubleshootingWindowController; @synthesize romInfoController; +@synthesize emuControlController; +@synthesize cdsCoreController; @synthesize viewSupportRequest; @synthesize viewBugReport; @synthesize viewFinishedForm; @@ -68,6 +75,8 @@ - (IBAction) continueToFinalForm:(id)sender { static NSString *unspecifiedStr = @"Unspecified"; // Do not expose localized version for this NSString -- we want this to be in English + EmuControllerDelegate *emuControl = (EmuControllerDelegate *)[emuControlController content]; + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; // Force end of editing of any text fields. [window makeFirstResponder:nil]; @@ -97,6 +106,53 @@ finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nModel Identifier: "] stringByAppendingString:[CocoaDSUtil modelIdentifierString]]; finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nROM Name: "] stringByAppendingString:romNameStr]; finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nROM Serial: "] stringByAppendingString:romSerialStr]; + finalFormTextStr = [finalFormTextStr stringByAppendingString:@"\n-----------------------------------"]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nEmulation Speed: "] stringByAppendingString:([cdsCore isSpeedLimitEnabled] ? [NSString stringWithFormat:@"%1.2fx", [emuControl lastSetSpeedScalar]] : @"Unlimited")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAuto Frame Skip: "] stringByAppendingString:([cdsCore isFrameSkipEnabled] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nSLOT-1 Device Type: "] stringByAppendingString:[cdsCore slot1DeviceTypeString]]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nSLOT-2 Device Type: "] stringByAppendingString:[cdsCore slot2DeviceTypeString]]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAdvanced Bus-Level Timing: "] stringByAppendingString:([cdsCore emuFlagAdvancedBusLevelTiming] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nRigorous 3D Rendering Timing: "] stringByAppendingString:([cdsCore emuFlagRigorousTiming] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nCPU Emulation Engine: "] stringByAppendingString:([cdsCore cpuEmulationEngine] == CPU_EMULATION_ENGINE_DYNAMIC_RECOMPILER ? [NSString stringWithFormat:@"%@ (BlockSize=%li)", [cdsCore cpuEmulationEngineString], (long)[cdsCore maxJITBlockSize]] : [cdsCore cpuEmulationEngineString])]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nExternal BIOS: "] stringByAppendingString:([cdsCore emuFlagUseExternalBios] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nExternal Firmware: "] stringByAppendingString:([cdsCore emuFlagUseExternalFirmware] ? @"YES" : @"NO")]; + + NSString *render3DEngineDetails = [[cdsCore cdsGPU] render3DRenderingEngineString]; + switch ([[cdsCore cdsGPU] render3DRenderingEngine]) + { + case CORE3DLIST_NULL: + break; + + case CORE3DLIST_SWRASTERIZE: + render3DEngineDetails = [NSString stringWithFormat:@"%@ (HighResColor=%@, EdgeMark=%@, Fog=%@, DepthCompare=%ld)", + [[cdsCore cdsGPU] render3DRenderingEngineString], + ([[cdsCore cdsGPU] render3DHighPrecisionColorInterpolation] ? @"YES" : @"NO"), + ([[cdsCore cdsGPU] render3DEdgeMarking] ? @"YES" : @"NO"), + ([[cdsCore cdsGPU] render3DFog] ? @"YES" : @"NO"), + (unsigned long)[[cdsCore cdsGPU] render3DDepthComparisonThreshold]]; + break; + + case CORE3DLIST_OPENGL: + render3DEngineDetails = [NSString stringWithFormat:@"%@ (MSAA=%@)", + [[cdsCore cdsGPU] render3DRenderingEngineString], + ([[cdsCore cdsGPU] render3DMultisample] ? @"YES" : @"NO")]; + break; + + default: + break; + } + + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n3D Renderer - Engine: "] stringByAppendingString:render3DEngineDetails]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n3D Renderer - Line Hack: "] stringByAppendingString:([[cdsCore cdsGPU] render3DLineHack] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n3D Renderer - Textures: "] stringByAppendingString:([[cdsCore cdsGPU] render3DTextures] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n3D Renderer - Thread Count: "] stringByAppendingString:([[cdsCore cdsGPU] render3DThreads] == 0 ? @"Automatic" : [NSString stringWithFormat:@"%ld", (unsigned long)[[cdsCore cdsGPU] render3DThreads]])]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAudio - Output Engine: "] stringByAppendingString:[[emuControl cdsSpeaker] audioOutputEngineString]]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAudio - Advanced SPU Logic: "] stringByAppendingString:([[emuControl cdsSpeaker] spuAdvancedLogic] ? @"YES" : @"NO")]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAudio - Sound Interpolation Method: "] stringByAppendingString:[[emuControl cdsSpeaker] spuInterpolationModeString]]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAudio - Sound Synchronization Method: "] stringByAppendingString:[[emuControl cdsSpeaker] spuSyncMethodString]]; + finalFormTextStr = [finalFormTextStr stringByAppendingString:@"\n-----------------------------------"]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nCheats: "] stringByAppendingString:([cdsCore isCheatingEnabled] ? [NSString stringWithFormat:@"YES (ActiveCheatCount=%ld)", (unsigned long)[[emuControl cdsCheats] activeCount]] : @"NO")]; + finalFormTextStr = [finalFormTextStr stringByAppendingString:@"\n-----------------------------------"]; if ([window contentView] == viewSupportRequest) { @@ -106,7 +162,7 @@ supportRequestTextStr = unspecifiedStr; } - finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n\nSupport Request: "] stringByAppendingString:supportRequestTextStr]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nSupport Request: "] stringByAppendingString:supportRequestTextStr]; [bindings setValue:NSSTRING_HELP_COPY_PASTE_TECH_SUPPORT forKey:@"copyPasteHelpText"]; [bindings setValue:NSSTRING_TITLE_GO_TECH_SUPPORT_WEBPAGE_TITLE forKey:@"goWebpageButtonTitle"]; } @@ -124,7 +180,7 @@ bugReportExpectedTextStr = unspecifiedStr; } - finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n\nObserved Behavior: "] stringByAppendingString:bugReportObservedTextStr]; + finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nObserved Behavior: "] stringByAppendingString:bugReportObservedTextStr]; finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\n\nExpected Behavior: "] stringByAppendingString:bugReportExpectedTextStr]; [bindings setValue:NSSTRING_HELP_COPY_PASTE_BUG_REPORT forKey:@"copyPasteHelpText"]; [bindings setValue:NSSTRING_TITLE_GO_BUG_REPORT_WEBPAGE_TITLE forKey:@"goWebpageButtonTitle"]; diff -Nru desmume-0.9.9/src/cocoa/utilities.c desmume-0.9.10/src/cocoa/utilities.c --- desmume-0.9.9/src/cocoa/utilities.c 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/utilities.c 2013-11-28 00:37:19.705035665 +0000 @@ -171,7 +171,7 @@ destBuffer - Pointer to the destination 32-bit RGBA8888 pixel buffer. - numberPixels - The number of pixels to copy. + pixelCount - The number of pixels to copy. Returns: Nothing. @@ -181,9 +181,9 @@ Also, it is the caller's responsibility to ensure that the source and destination buffers are large enough to accomodate the requested number of pixels. ********************************************************************************************/ -void RGB555ToRGBA8888Buffer(const uint16_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, unsigned int numberPixels) +void RGB555ToRGBA8888Buffer(const uint16_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, size_t pixelCount) { - const uint32_t *__restrict__ destBufferEnd = destBuffer + numberPixels; + const uint32_t *__restrict__ destBufferEnd = destBuffer + pixelCount; while (destBuffer < destBufferEnd) { @@ -202,7 +202,7 @@ destBuffer - Pointer to the destination 32-bit RGBA8888 pixel buffer. - numberPixels - The number of pixels to copy. + pixelCount - The number of pixels to copy. Returns: Nothing. @@ -212,9 +212,9 @@ Also, it is the caller's responsibility to ensure that the source and destination buffers are large enough to accomodate the requested number of pixels. ********************************************************************************************/ -void RGBA8888ForceOpaqueBuffer(const uint32_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, unsigned int numberPixels) +void RGBA8888ForceOpaqueBuffer(const uint32_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, size_t pixelCount) { - const uint32_t *__restrict__ destBufferEnd = destBuffer + numberPixels; + const uint32_t *__restrict__ destBufferEnd = destBuffer + pixelCount; while (destBuffer < destBufferEnd) { diff -Nru desmume-0.9.9/src/cocoa/utilities.h desmume-0.9.10/src/cocoa/utilities.h --- desmume-0.9.9/src/cocoa/utilities.h 2013-05-01 18:48:35.000000000 +0000 +++ desmume-0.9.10/src/cocoa/utilities.h 2013-11-28 00:37:24.261109236 +0000 @@ -31,8 +31,8 @@ uint32_t RGB555ToRGBA8888(const uint16_t color16); uint32_t RGBA8888ForceOpaque(const uint32_t color32); -void RGB555ToRGBA8888Buffer(const uint16_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, unsigned int numberPixels); -void RGBA8888ForceOpaqueBuffer(const uint32_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, unsigned int numberPixels); +void RGB555ToRGBA8888Buffer(const uint16_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, size_t pixelCount); +void RGBA8888ForceOpaqueBuffer(const uint32_t *__restrict__ srcBuffer, uint32_t *__restrict__ destBuffer, size_t pixelCount); CGSize GetTransformedBounds(const double normalBoundsWidth, const double normalBoundsHeight, const double scalar, diff -Nru desmume-0.9.9/src/commandline.cpp desmume-0.9.10/src/commandline.cpp --- desmume-0.9.9/src/commandline.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/commandline.cpp 2013-11-28 00:37:28.269173954 +0000 @@ -23,8 +23,8 @@ #include "commandline.h" #include "types.h" #include "movie.h" -#include "addons.h" #include "slot1.h" +#include "slot2.h" #include "NDSSystem.h" #include "utils/xstring.h" @@ -33,6 +33,7 @@ CommandLine::CommandLine() : is_cflash_configured(false) +, _load_to_memory(-1) , error(NULL) , ctx(g_option_context_new ("")) , _play_movie_file(0) @@ -43,12 +44,15 @@ , _bios_arm9(NULL) , _bios_arm7(NULL) , _bios_swi(0) +, _spu_sync_mode(-1) +, _spu_sync_method(-1) , _spu_advanced(0) , _num_cores(-1) , _rigorous_timing(0) , _advanced_timing(-1) , _slot1(NULL) , _slot1_fat_dir(NULL) +, _slot1_fat_dir_type(false) #ifdef HAVE_JIT , _cpu_mode(-1) , _jit_size(-1) @@ -61,7 +65,7 @@ , start_paused(FALSE) , autodetect_method(-1) { -#ifndef _MSC_VER +#ifndef HOST_WINDOWS disable_sound = 0; disable_limiter = 0; #endif @@ -80,7 +84,8 @@ //but also see the gtk port for an example of how to combine this with other options //(you may need to use ifdefs to cause options to be entered in the desired order) static const GOptionEntry options[] = { - { "load-slot", 0, 0, G_OPTION_ARG_INT, &load_slot, "Loads savegame from slot NUM", "NUM"}, + { "load-type", 0, 0, G_OPTION_ARG_INT, &_load_to_memory, "ROM loading method, 0 - stream from disk (like an iso), 1 - load entirely to RAM (default 0)", "LOAD_TYPE"}, + { "load-slot", 0, 0, G_OPTION_ARG_INT, &load_slot, "Loads savestate from slot NUM", "NUM"}, { "play-movie", 0, 0, G_OPTION_ARG_FILENAME, &_play_movie_file, "Specifies a dsm format movie to play", "PATH_TO_PLAY_MOVIE"}, { "record-movie", 0, 0, G_OPTION_ARG_FILENAME, &_record_movie_file, "Specifies a path to a new dsm format movie", "PATH_TO_RECORD_MOVIE"}, { "start-paused", 0, 0, G_OPTION_ARG_NONE, &start_paused, "Indicates that emulation should start paused", "START_PAUSED"}, @@ -90,6 +95,8 @@ { "bios-arm9", 0, 0, G_OPTION_ARG_FILENAME, &_bios_arm9, "Uses the arm9 bios provided at the specified path", "BIOS_ARM9_PATH"}, { "bios-arm7", 0, 0, G_OPTION_ARG_FILENAME, &_bios_arm7, "Uses the arm7 bios provided at the specified path", "BIOS_ARM7_PATH"}, { "bios-swi", 0, 0, G_OPTION_ARG_INT, &_bios_swi, "Uses SWI from the provided bios files", "BIOS_SWI"}, + { "spu-mode", 0, 0, G_OPTION_ARG_INT, &_spu_sync_mode, "Select SPU Synchronization Mode. 0 - Dual SPU Synch/Asynch (traditional), 1 - Synchronous (sometimes needed for streams) (default 0)", "SPU_MODE"}, + { "spu-method", 0, 0, G_OPTION_ARG_INT, &_spu_sync_method, "Select SPU Synchronizer Method. 0 - N, 1 - Z, 2 - P (default 0)", "SPU_SYNC_METHOD"}, { "spu-advanced", 0, 0, G_OPTION_ARG_INT, &_spu_advanced, "Uses advanced SPU capture functions", "SPU_ADVANCED"}, { "num-cores", 0, 0, G_OPTION_ARG_INT, &_num_cores, "Override numcores detection and use this many", "NUM_CORES"}, { "scanline-filter-a", 0, 0, G_OPTION_ARG_INT, &_scanline_filter_a, "Intensity of fadeout for scanlines filter (topleft) (default 0)", "SCANLINE_FILTER_A"}, @@ -98,7 +105,7 @@ { "scanline-filter-d", 0, 0, G_OPTION_ARG_INT, &_scanline_filter_d, "Intensity of fadeout for scanlines filter (bottomright) (default 4)", "SCANLINE_FILTER_D"}, { "rigorous-timing", 0, 0, G_OPTION_ARG_INT, &_rigorous_timing, "Use some rigorous timings instead of unrealistically generous (default 0)", "RIGOROUS_TIMING"}, { "advanced-timing", 0, 0, G_OPTION_ARG_INT, &_advanced_timing, "Use advanced BUS-level timing (default 1)", "ADVANCED_TIMING"}, - { "slot1", 0, 0, G_OPTION_ARG_STRING, &_slot1, "Device to load in slot 1 (default retail)", "SLOT1"}, + { "slot1", 0, 0, G_OPTION_ARG_STRING, &_slot1, "Device to mount in slot 1 (default retail)", "SLOT1"}, { "slot1-fat-dir", 0, 0, G_OPTION_ARG_STRING, &_slot1_fat_dir, "Directory to scan for slot 1", "SLOT1_DIR"}, { "depth-threshold", 0, 0, G_OPTION_ARG_INT, &depth_threshold, "Depth comparison threshold (default 0)", "DEPTHTHRESHOLD"}, { "console-type", 0, 0, G_OPTION_ARG_STRING, &_console_type, "Select console type: {fat,lite,ique,debug,dsi}", "CONSOLETYPE" }, @@ -106,7 +113,7 @@ { "cpu-mode", 0, 0, G_OPTION_ARG_INT, &_cpu_mode, "ARM CPU emulation mode: 0 - interpreter, 1 - dynarec (default 1)", NULL}, { "jit-size", 0, 0, G_OPTION_ARG_INT, &_jit_size, "ARM JIT block size: 1..100 (1 - accuracy, 100 - faster) (default 100)", NULL}, #endif -#ifndef _MSC_VER +#ifndef HOST_WINDOWS { "disable-sound", 0, 0, G_OPTION_ARG_NONE, &disable_sound, "Disables the sound emulation", NULL}, { "disable-limiter", 0, 0, G_OPTION_ARG_NONE, &disable_limiter, "Disables the 60fps limiter", NULL}, { "nojoy", 0, 0, G_OPTION_ARG_INT, &_commandline_linux_nojoy, "Disables joystick support", "NOJOY"}, @@ -143,6 +150,7 @@ if(_slot1_fat_dir) slot1_fat_dir = _slot1_fat_dir; if(_slot1) slot1 = _slot1; slot1 = strtoupper(slot1); if(_console_type) console_type = _console_type; + if(_load_to_memory != -1) CommonSettings.loadToMemory = (_load_to_memory == 1)?true:false; if(_play_movie_file) play_movie_file = _play_movie_file; if(_record_movie_file) record_movie_file = _record_movie_file; if(_cflash_image) cflash_image = _cflash_image; @@ -188,6 +196,8 @@ if(_bios_arm9) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM9BIOS,_bios_arm9); } if(_bios_arm7) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM7BIOS,_bios_arm7); } if(_bios_swi) CommonSettings.SWIFromBIOS = true; + if(_spu_sync_mode != -1) CommonSettings.SPU_sync_mode = _spu_sync_mode; + if(_spu_sync_method != -1) CommonSettings.SPU_sync_method = _spu_sync_method; if(_spu_advanced) CommonSettings.spu_advanced = true; if (argc == 2) @@ -210,6 +220,21 @@ } } + if (_load_to_memory < -1 || _load_to_memory > 1) { + g_printerr("Invalid parameter (0 - stream from disk, 1 - from RAM)\n"); + return false; + } + + if (_spu_sync_mode < -1 || _spu_sync_mode > 1) { + g_printerr("Invalid parameter\n"); + return false; + } + + if (_spu_sync_method < -1 || _spu_sync_method > 2) { + g_printerr("Invalid parameter\n"); + return false; + } + if (load_slot < -1 || load_slot > 10) { g_printerr("I only know how to load from slots 0-10; -1 means 'do not load savegame' and is default\n"); return false; @@ -294,13 +319,19 @@ } if(slot1_fat_dir != "") - slot1SetFatDir(slot1_fat_dir); + slot1_SetFatDir(slot1_fat_dir); if(slot1 == "RETAIL") - slot1Change(NDS_SLOT1_RETAIL); + slot1_Change(NDS_SLOT1_RETAIL_AUTO); + else if(slot1 == "RETAILAUTO") + slot1_Change(NDS_SLOT1_RETAIL_AUTO); else if(slot1 == "R4") - slot1Change(NDS_SLOT1_R4); + slot1_Change(NDS_SLOT1_R4); else if(slot1 == "RETAILNAND") - slot1Change(NDS_SLOT1_RETAIL_NAND); + slot1_Change(NDS_SLOT1_RETAIL_NAND); + else if(slot1 == "RETAILMCROM") + slot1_Change(NDS_SLOT1_RETAIL_MCROM); + else if(slot1 == "RETAILDEBUG") + slot1_Change(NDS_SLOT1_RETAIL_DEBUG); } diff -Nru desmume-0.9.9/src/commandline.h desmume-0.9.10/src/commandline.h --- desmume-0.9.9/src/commandline.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/commandline.h 2013-11-28 00:37:18.797021001 +0000 @@ -50,7 +50,8 @@ std::string slot1; std::string console_type; std::string slot1_fat_dir; -#ifndef _MSC_VER + bool _slot1_fat_dir_type; +#ifndef HOST_WINDOWS int disable_sound; int disable_limiter; #endif @@ -78,6 +79,8 @@ GError *error; GOptionContext *ctx; + int _spu_sync_mode; + int _spu_sync_method; private: char* _play_movie_file; char* _record_movie_file; @@ -85,6 +88,7 @@ char* _cflash_path; char* _gbaslot_rom; char* _bios_arm9, *_bios_arm7; + int _load_to_memory; int _bios_swi; int _spu_advanced; int _num_cores; diff -Nru desmume-0.9.9/src/common.cpp desmume-0.9.10/src/common.cpp --- desmume-0.9.9/src/common.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/common.cpp 2013-11-28 00:37:26.721148959 +0000 @@ -19,7 +19,10 @@ #include #include +#include #include "common.h" +#include +#include char *trim(char *s, int len) { @@ -52,3 +55,624 @@ *buf = 0; return s; } + +static MAKER makerCodes[] = { + { 0x3130, "Nintendo" }, + { 0x3230, "Rocket Games, Ajinomoto" }, + { 0x3330, "Imagineer-Zoom" }, + { 0x3430, "Gray Matter?" }, + { 0x3530, "Zamuse" }, + { 0x3630, "Falcom" }, + { 0x3730, "Enix?" }, + { 0x3830, "Capcom" }, + { 0x3930, "Hot B Co." }, + { 0x4130, "Jaleco" }, + { 0x4230, "Coconuts Japan" }, + { 0x4330, "Coconuts Japan/G.X.Media" }, + { 0x4430, "Micronet?" }, + { 0x4530, "Technos" }, + { 0x4630, "Mebio Software" }, + { 0x4730, "Shouei System" }, + { 0x4830, "Starfish" }, + { 0x4A30, "Mitsui Fudosan/Dentsu" }, + { 0x4C30, "Warashi Inc." }, + { 0x4E30, "Nowpro" }, + { 0x5030, "Game Village" }, + { 0x3031, "?????????????" }, + { 0x3231, "Infocom" }, + { 0x3331, "Electronic Arts Japan" }, + { 0x3531, "Cobra Team" }, + { 0x3631, "Human/Field" }, + { 0x3731, "KOEI" }, + { 0x3831, "Hudson Soft" }, + { 0x3931, "S.C.P." }, + { 0x4131, "Yanoman" }, + { 0x4331, "Tecmo Products" }, + { 0x4431, "Japan Glary Business" }, + { 0x4531, "Forum/OpenSystem" }, + { 0x4631, "Virgin Games" }, + { 0x4731, "SMDE" }, + { 0x4A31, "Daikokudenki" }, + { 0x5031, "Creatures Inc." }, + { 0x5131, "TDK Deep Impresion" }, + { 0x3032, "Destination Software, KSS" }, + { 0x3132, "Sunsoft/Tokai Engineering??" }, + { 0x3232, "POW, VR 1 Japan??" }, + { 0x3332, "Micro World" }, + { 0x3532, "San-X" }, + { 0x3632, "Enix" }, + { 0x3732, "Loriciel/Electro Brain" }, + { 0x3832, "Kemco Japan" }, + { 0x3932, "Seta" }, + { 0x4132, "Culture Brain" }, + { 0x4332, "Palsoft" }, + { 0x4432, "Visit Co.,Ltd." }, + { 0x4532, "Intec" }, + { 0x4632, "System Sacom" }, + { 0x4732, "Poppo" }, + { 0x4832, "Ubisoft Japan" }, + { 0x4A32, "Media Works" }, + { 0x4B32, "NEC InterChannel" }, + { 0x4C32, "Tam" }, + { 0x4D32, "Jordan" }, + { 0x4E32, "Smilesoft ???, Rocket ???" }, + { 0x5132, "Mediakite" }, + { 0x3033, "Viacom" }, + { 0x3133, "Carrozzeria" }, + { 0x3233, "Dynamic" }, + { 0x3433, "Magifact" }, + { 0x3533, "Hect" }, + { 0x3633, "Codemasters" }, + { 0x3733, "Taito/GAGA Communications" }, + { 0x3833, "Laguna" }, + { 0x3933, "Telstar Fun & Games, Event/Taito" }, + { 0x4233, "Arcade Zone Ltd" }, + { 0x4333, "Entertainment International/Empire Software?" }, + { 0x4433, "Loriciel" }, + { 0x4533, "Gremlin Graphics" }, + { 0x4633, "K.Amusement Leasing Co." }, + { 0x3034, "Seika Corp." }, + { 0x3134, "Ubi Soft Entertainment" }, + { 0x3234, "Sunsoft US?" }, + { 0x3434, "Life Fitness" }, + { 0x3634, "System 3" }, + { 0x3734, "Spectrum Holobyte" }, + { 0x3934, "IREM" }, + { 0x4234, "Raya Systems" }, + { 0x4334, "Renovation Products" }, + { 0x4434, "Malibu Games" }, + { 0x4634, "Eidos (was U.S. Gold <=1995)" }, + { 0x4734, "Playmates Interactive?" }, + { 0x4A34, "Fox Interactive" }, + { 0x4B34, "Time Warner Interactive" }, + { 0x5134, "Disney Interactive" }, + { 0x5334, "Black Pearl" }, + { 0x5534, "Advanced Productions" }, + { 0x5834, "GT Interactive" }, + { 0x5934, "RARE?" }, + { 0x5A34, "Crave Entertainment" }, + { 0x3035, "Absolute Entertainment" }, + { 0x3135, "Acclaim" }, + { 0x3235, "Activision" }, + { 0x3335, "American Sammy" }, + { 0x3435, "Take 2 Interactive (before it was GameTek)" }, + { 0x3535, "Hi Tech" }, + { 0x3635, "LJN LTD." }, + { 0x3835, "Mattel" }, + { 0x4135, "Mindscape, Red Orb Entertainment?" }, + { 0x4235, "Romstar" }, + { 0x4335, "Taxan" }, + { 0x4435, "Midway (before it was Tradewest)" }, + { 0x4635, "American Softworks" }, + { 0x4735, "Majesco Sales Inc" }, + { 0x4835, "3DO" }, + { 0x4B35, "Hasbro" }, + { 0x4C35, "NewKidCo" }, + { 0x4D35, "Telegames" }, + { 0x4E35, "Metro3D" }, + { 0x5035, "Vatical Entertainment" }, + { 0x5135, "LEGO Media" }, + { 0x5335, "Xicat Interactive" }, + { 0x5435, "Cryo Interactive" }, + { 0x5735, "Red Storm Entertainment" }, + { 0x5835, "Microids" }, + { 0x5A35, "Conspiracy/Swing" }, + { 0x3036, "Titus" }, + { 0x3136, "Virgin Interactive" }, + { 0x3236, "Maxis" }, + { 0x3436, "LucasArts Entertainment" }, + { 0x3736, "Ocean" }, + { 0x3936, "Electronic Arts" }, + { 0x4236, "Laser Beam" }, + { 0x4536, "Elite Systems" }, + { 0x4636, "Electro Brain" }, + { 0x4736, "The Learning Company" }, + { 0x4836, "BBC" }, + { 0x4A36, "Software 2000" }, + { 0x4C36, "BAM! Entertainment" }, + { 0x4D36, "Studio 3" }, + { 0x5136, "Classified Games" }, + { 0x5336, "TDK Mediactive" }, + { 0x5536, "DreamCatcher" }, + { 0x5636, "JoWood Produtions" }, + { 0x5736, "SEGA" }, + { 0x5836, "Wannado Edition" }, + { 0x5936, "LSP" }, + { 0x5A36, "ITE Media" }, + { 0x3037, "Infogrames" }, + { 0x3137, "Interplay" }, + { 0x3237, "JVC" }, + { 0x3337, "Parker Brothers" }, + { 0x3537, "Sales Curve" }, + { 0x3837, "THQ" }, + { 0x3937, "Accolade" }, + { 0x4137, "Triffix Entertainment" }, + { 0x4337, "Microprose Software" }, + { 0x4437, "Universal Interactive, Sierra, Simon & Schuster?" }, + { 0x4637, "Kemco" }, + { 0x4737, "Rage Software" }, + { 0x4837, "Encore" }, + { 0x4A37, "Zoo" }, + { 0x4B37, "BVM" }, + { 0x4C37, "Simon & Schuster Interactive" }, + { 0x4D37, "Asmik Ace Entertainment Inc./AIA" }, + { 0x4E37, "Empire Interactive?" }, + { 0x5137, "Jester Interactive" }, + { 0x5437, "Scholastic" }, + { 0x5537, "Ignition Entertainment" }, + { 0x5737, "Stadlbauer" }, + { 0x3038, "Misawa" }, + { 0x3138, "Teichiku" }, + { 0x3238, "Namco Ltd." }, + { 0x3338, "LOZC" }, + { 0x3438, "KOEI" }, + { 0x3638, "Tokuma Shoten Intermedia" }, + { 0x3738, "Tsukuda Original" }, + { 0x3838, "DATAM-Polystar" }, + { 0x4238, "Bulletproof Software" }, + { 0x4338, "Vic Tokai Inc." }, + { 0x4538, "Character Soft" }, + { 0x4638, "I'Max" }, + { 0x4738, "Saurus" }, + { 0x4A38, "General Entertainment" }, + { 0x4E38, "Success" }, + { 0x5038, "SEGA Japan" }, + { 0x3039, "Takara Amusement" }, + { 0x3139, "Chun Soft" }, + { 0x3239, "Video System, McO'River???" }, + { 0x3339, "BEC" }, + { 0x3539, "Varie" }, + { 0x3639, "Yonezawa/S'pal" }, + { 0x3739, "Kaneko" }, + { 0x3939, "Victor Interactive Software, Pack in Video" }, + { 0x4139, "Nichibutsu/Nihon Bussan" }, + { 0x4239, "Tecmo" }, + { 0x4339, "Imagineer" }, + { 0x4639, "Nova" }, + { 0x4739, "Den'Z" }, + { 0x4839, "Bottom Up" }, + { 0x4A39, "TGL" }, + { 0x4C39, "Hasbro Japan?" }, + { 0x4E39, "Marvelous Entertainment" }, + { 0x5039, "Keynet Inc." }, + { 0x5139, "Hands-On Entertainment" }, + { 0x3041, "Telenet" }, + { 0x3141, "Hori" }, + { 0x3441, "Konami" }, + { 0x3541, "K.Amusement Leasing Co." }, + { 0x3641, "Kawada" }, + { 0x3741, "Takara" }, + { 0x3941, "Technos Japan Corp." }, + { 0x4141, "JVC, Victor Musical Indutries" }, + { 0x4341, "Toei Animation" }, + { 0x4441, "Toho" }, + { 0x4641, "Namco" }, + { 0x4741, "Media Rings Corporation" }, + { 0x4841, "J-Wing" }, + { 0x4A41, "Pioneer LDC" }, + { 0x4B41, "KID" }, + { 0x4C41, "Mediafactory" }, + { 0x5041, "Infogrames Hudson" }, + { 0x5141, "Kiratto. Ludic Inc" }, + { 0x3042, "Acclaim Japan" }, + { 0x3142, "ASCII (was Nexoft?)" }, + { 0x3242, "Bandai" }, + { 0x3442, "Enix" }, + { 0x3642, "HAL Laboratory" }, + { 0x3742, "SNK" }, + { 0x3942, "Pony Canyon" }, + { 0x4142, "Culture Brain" }, + { 0x4242, "Sunsoft" }, + { 0x4342, "Toshiba EMI" }, + { 0x4442, "Sony Imagesoft" }, + { 0x4642, "Sammy" }, + { 0x4742, "Magical" }, + { 0x4842, "Visco" }, + { 0x4A42, "Compile " }, + { 0x4C42, "MTO Inc." }, + { 0x4E42, "Sunrise Interactive" }, + { 0x5042, "Global A Entertainment" }, + { 0x5142, "Fuuki" }, + { 0x3043, "Taito" }, + { 0x3243, "Kemco" }, + { 0x3343, "Square" }, + { 0x3443, "Tokuma Shoten" }, + { 0x3543, "Data East" }, + { 0x3643, "Tonkin House (was Tokyo Shoseki)" }, + { 0x3843, "Koei" }, + { 0x4143, "Konami/Ultra/Palcom" }, + { 0x4243, "NTVIC/VAP" }, + { 0x4343, "Use Co.,Ltd." }, + { 0x4443, "Meldac" }, + { 0x4543, "Pony Canyon" }, + { 0x4643, "Angel, Sotsu Agency/Sunrise" }, + { 0x4A43, "Boss" }, + { 0x4743, "Yumedia/Aroma Co., Ltd" }, + { 0x4B43, "Axela/Crea-Tech?" }, + { 0x4C43, "Sekaibunka-Sha, Sumire kobo?, Marigul Management Inc.?" }, + { 0x4D43, "Konami Computer Entertainment Osaka" }, + { 0x5043, "Enterbrain" }, + { 0x3044, "Taito/Disco" }, + { 0x3144, "Sofel" }, + { 0x3244, "Quest, Bothtec" }, + { 0x3344, "Sigma, ?????" }, + { 0x3444, "Ask Kodansha" }, + { 0x3644, "Naxat" }, + { 0x3744, "Copya System" }, + { 0x3844, "Capcom Co., Ltd." }, + { 0x3944, "Banpresto" }, + { 0x4144, "TOMY" }, + { 0x4244, "LJN Japan" }, + { 0x4444, "NCS" }, + { 0x4544, "Human Entertainment" }, + { 0x4644, "Altron" }, + { 0x4744, "Jaleco???" }, + { 0x4844, "Gaps Inc." }, + { 0x4C44, "????" }, + { 0x4E44, "Elf" }, + { 0x3045, "Jaleco" }, + { 0x3145, "????" }, + { 0x3245, "Yutaka" }, + { 0x3345, "Varie" }, + { 0x3445, "T&ESoft" }, + { 0x3545, "Epoch" }, + { 0x3745, "Athena" }, + { 0x3845, "Asmik" }, + { 0x3945, "Natsume" }, + { 0x4145, "King Records" }, + { 0x4245, "Atlus" }, + { 0x4345, "Epic/Sony Records" }, + { 0x4545, "IGS" }, + { 0x4745, "Chatnoir" }, + { 0x4845, "Right Stuff" }, + { 0x4C45, "Spike" }, + { 0x4D45, "Konami Computer Entertainment Tokyo" }, + { 0x4E45, "Alphadream Corporation" }, + { 0x3046, "A Wave" }, + { 0x3146, "Motown Software" }, + { 0x3246, "Left Field Entertainment" }, + { 0x3346, "Extreme Ent. Grp." }, + { 0x3446, "TecMagik" }, + { 0x3946, "Cybersoft" }, + { 0x4246, "Psygnosis" }, + { 0x4546, "Davidson/Western Tech." }, + { 0x3147, "PCCW Japan" }, + { 0x3447, "KiKi Co Ltd" }, + { 0x3547, "Open Sesame Inc???" }, + { 0x3647, "Sims" }, + { 0x3747, "Broccoli" }, + { 0x3847, "Avex" }, + { 0x3947, "D3 Publisher" }, + { 0x4247, "Konami Computer Entertainment Japan" }, + { 0x4447, "Square-Enix" }, + { 0x4849, "Yojigen" }, +}; + +#define makerNum sizeof(makerCodes) / sizeof(makerCodes[0]) + +std::string getDeveloperNameByID(u16 id) +{ + for (u32 i = 0; i < makerNum; i++) + { + if (makerCodes[i].code == id) + { + return makerCodes[i].name; + } + } + return "Unknown"; +} + +// =============================================================================== +// PNG/BMP +// =============================================================================== +static int WritePNGChunk(FILE *fp, uint32 size, const char *type, const uint8 *data) +{ + uint32 crc; + + uint8 tempo[4]; + + tempo[0]=size>>24; + tempo[1]=size>>16; + tempo[2]=size>>8; + tempo[3]=size; + + if(fwrite(tempo,4,1,fp)!=1) + return 0; + if(fwrite(type,4,1,fp)!=1) + return 0; + + if(size) + if(fwrite(data,1,size,fp)!=size) + return 0; + + crc = crc32(0,(uint8 *)type,4); + if(size) + crc = crc32(crc,data,size); + + tempo[0]=crc>>24; + tempo[1]=crc>>16; + tempo[2]=crc>>8; + tempo[3]=crc; + + if(fwrite(tempo,4,1,fp)!=1) + return 0; + return 1; +} + +int NDS_WritePNG(const char *fname, u8 *data) +{ + int x, y; + int width=256; + int height=192*2; + u16 * bmp = (u16 *)data; + FILE *pp=NULL; + uint8 *compmem = NULL; + uLongf compmemsize = (uLongf)( (height * (width + 1) * 3 * 1.001 + 1) + 12 ); + + if(!(compmem=(uint8 *)malloc(compmemsize))) + return 0; + + if(!(pp=fopen(fname, "wb"))) + { + goto PNGerr; + } + { + const uint8 header[8]={137,80,78,71,13,10,26,10}; + if(fwrite(header,8,1,pp)!=1) + goto PNGerr; + } + + { + uint8 chunko[13]; + + chunko[0] = width >> 24; // Width + chunko[1] = width >> 16; + chunko[2] = width >> 8; + chunko[3] = width; + + chunko[4] = height >> 24; // Height + chunko[5] = height >> 16; + chunko[6] = height >> 8; + chunko[7] = height; + + chunko[8]=8; // 8 bits per sample(24 bits per pixel) + chunko[9]=2; // Color type; RGB triplet + chunko[10]=0; // compression: deflate + chunko[11]=0; // Basic adapative filter set(though none are used). + chunko[12]=0; // No interlace. + + if(!WritePNGChunk(pp,13,"IHDR",chunko)) + goto PNGerr; + } + + { + uint8 *tmp_buffer; + uint8 *tmp_inc; + tmp_inc = tmp_buffer = (uint8 *)malloc((width * 3 + 1) * height); + + for(y=0;y>10; + pixel-=r<<10; + g = pixel>>5; + pixel-=g<<5; + b = pixel; + r*=255/31; + g*=255/31; + b*=255/31; + tmp_inc[0] = b; + tmp_inc[1] = g; + tmp_inc[2] = r; + tmp_inc += 3; + } + } + + if(compress(compmem, &compmemsize, tmp_buffer, height * (width * 3 + 1))!=Z_OK) + { + if(tmp_buffer) free(tmp_buffer); + goto PNGerr; + } + if(tmp_buffer) free(tmp_buffer); + if(!WritePNGChunk(pp,compmemsize,"IDAT",compmem)) + goto PNGerr; + } + if(!WritePNGChunk(pp,0,"IEND",0)) + goto PNGerr; + + free(compmem); + fclose(pp); + + return 1; + +PNGerr: + if(compmem) + free(compmem); + if(pp) + fclose(pp); + return(0); +} + +typedef struct +{ + u32 size; + s32 width; + s32 height; + u16 planes; + u16 bpp; + u32 cmptype; + u32 imgsize; + s32 hppm; + s32 vppm; + u32 numcol; + u32 numimpcol; +} bmpimgheader_struct; + +#include "PACKED.h" +typedef struct +{ + u16 id __PACKED; + u32 size __PACKED; + u16 reserved1 __PACKED; + u16 reserved2 __PACKED; + u32 imgoffset __PACKED; +} bmpfileheader_struct; +#include "PACKED_END.h" + +int NDS_WriteBMP(const char *filename, u8 *data) +{ + bmpfileheader_struct fileheader; + bmpimgheader_struct imageheader; + FILE *file; + int i,j; + u16 * bmp = (u16 *)data; + size_t elems_written = 0; + + memset(&fileheader, 0, sizeof(fileheader)); + fileheader.size = sizeof(fileheader); + fileheader.id = 'B' | ('M' << 8); + fileheader.imgoffset = sizeof(fileheader)+sizeof(imageheader); + + memset(&imageheader, 0, sizeof(imageheader)); + imageheader.size = sizeof(imageheader); + imageheader.width = 256; + imageheader.height = 192*2; + imageheader.planes = 1; + imageheader.bpp = 24; + imageheader.cmptype = 0; // None + imageheader.imgsize = imageheader.width * imageheader.height * 3; + + if ((file = fopen(filename,"wb")) == NULL) + return 0; + + elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file); + elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file); + + for(j=0;j<192*2;j++) + { + for(i=0;i<256;i++) + { + u8 r,g,b; + u16 pixel = bmp[(192*2-j-1)*256+i]; + r = pixel>>10; + pixel-=r<<10; + g = pixel>>5; + pixel-=g<<5; + b = (u8)pixel; + r*=255/31; + g*=255/31; + b*=255/31; + elems_written += fwrite(&r, 1, sizeof(u8), file); + elems_written += fwrite(&g, 1, sizeof(u8), file); + elems_written += fwrite(&b, 1, sizeof(u8), file); + } + } + fclose(file); + + return 1; +} + +int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char *filename) +{ + bmpfileheader_struct fileheader; + bmpimgheader_struct imageheader; + FILE *file; + size_t elems_written = 0; + memset(&fileheader, 0, sizeof(fileheader)); + fileheader.size = sizeof(fileheader); + fileheader.id = 'B' | ('M' << 8); + fileheader.imgoffset = sizeof(fileheader)+sizeof(imageheader); + + memset(&imageheader, 0, sizeof(imageheader)); + imageheader.size = sizeof(imageheader); + imageheader.width = width; + imageheader.height = height; + imageheader.planes = 1; + imageheader.bpp = 32; + imageheader.cmptype = 0; // None + imageheader.imgsize = imageheader.width * imageheader.height * 4; + + if ((file = fopen(filename,"wb")) == NULL) + return 0; + + elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file); + elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file); + + for(int i=0;i -extern const u8 logo_data[156]; - #if defined(WIN32) #include #include - - #define CLASSNAME "DeSmuME" extern HINSTANCE hAppInst; @@ -82,5 +78,35 @@ extern char *trim(char *s, int len=-1); extern char *removeSpecialChars(char *s); -#endif +// =============================================================================== +// Message dialogs +// =============================================================================== +#define CALL_CONVENTION +typedef struct +{ + void (CALL_CONVENTION* info) (const char *fmt, ...); + bool (CALL_CONVENTION* confirm)(const char *fmt, ...); + void (CALL_CONVENTION* error) (const char *fmt, ...); + void (CALL_CONVENTION* warn) (const char *fmt, ...); +} msgBoxInterface; + +extern msgBoxInterface *msgbox; + +// =============================================================================== +// Maker codes +// =============================================================================== +struct MAKER +{ + u16 code; + const char* name; +}; + +std::string getDeveloperNameByID(u16 id); + + +extern int NDS_WritePNG(const char *fname, u8 *data); +extern int NDS_WriteBMP(const char *filename, u8 *data); +extern int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char *filename); + +#endif diff -Nru desmume-0.9.9/src/cp15.cpp desmume-0.9.10/src/cp15.cpp --- desmume-0.9.9/src/cp15.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/cp15.cpp 2013-11-28 00:37:26.785149992 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2006 yopyop - Copyright (C) 2006-2011 DeSmuME team + Copyright (C) 2006-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,67 +24,11 @@ armcp15_t cp15; -bool armcp15_t::reset(armcpu_t * c) -{ - //printf("CP15 Reset\n"); - cpu = c; - IDCode = 0x41059461; - cacheType = 0x0F0D2112; - TCMSize = 0x00140180; - ctrl = 0x00012078; - DCConfig = 0x0; - ICConfig = 0x0; - writeBuffCtrl = 0x0; - und = 0x0; - DaccessPerm = 0x22222222; - IaccessPerm = 0x22222222; - protectBaseSize0 = 0x0; - protectBaseSize1 = 0x0; - protectBaseSize2 = 0x0; - protectBaseSize3 = 0x0; - protectBaseSize4 = 0x0; - protectBaseSize5 = 0x0; - protectBaseSize6 = 0x0; - protectBaseSize7 = 0x0; - cacheOp = 0x0; - DcacheLock = 0x0; - IcacheLock = 0x0; - ITCMRegion = 0x0C; - DTCMRegion = 0x0080000A; - processID = 0; - - MMU.ARM9_RW_MODE = BIT7(ctrl); - cpu->intVector = 0xFFFF0000 * (BIT13(ctrl)); - cpu->LDTBit = !BIT15(ctrl); //TBit - - /* preset calculated regionmasks */ - for (u8 i=0;i<8;i++) { - regionWriteMask_USR[i] = 0 ; - regionWriteMask_SYS[i] = 0 ; - regionReadMask_USR[i] = 0 ; - regionReadMask_SYS[i] = 0 ; - regionExecuteMask_USR[i] = 0 ; - regionExecuteMask_SYS[i] = 0 ; - regionWriteSet_USR[i] = 0 ; - regionWriteSet_SYS[i] = 0 ; - regionReadSet_USR[i] = 0 ; - regionReadSet_SYS[i] = 0 ; - regionExecuteSet_USR[i] = 0 ; - regionExecuteSet_SYS[i] = 0 ; - } ; - - return true; -} - -#define ACCESSTYPE(val,n) (((val) >> (4*n)) & 0x0F) -#define SIZEIDENTIFIER(val) ((((val) >> 1) & 0x1F)) -#define SIZEBINARY(val) (1 << (SIZEIDENTIFIER(val)+1)) -#define MASKFROMREG(val) (~((SIZEBINARY(val)-1) | 0x3F)) -#define SETFROMREG(val) ((val) & MASKFROMREG(val)) +#define CP15_ACCESSTYPE(val, n) (((val) >> (4*n)) & 0x0F) /* sets the precalculated regions to mask,set for the affected accesstypes */ -void armcp15_t::setSingleRegionAccess(u32 dAccess,u32 iAccess,unsigned char num, u32 mask,u32 set) { +void armcp15_t::setSingleRegionAccess(u8 num, u32 mask, u32 set) { - switch (ACCESSTYPE(dAccess,num)) { + switch (CP15_ACCESSTYPE(DaccessPerm, num)) { case 4: /* UNP */ case 7: /* UNP */ case 8: /* UNP */ @@ -156,7 +100,7 @@ regionReadSet_SYS[num] = set ; break ; } - switch (ACCESSTYPE(iAccess,num)) { + switch (CP15_ACCESSTYPE(IaccessPerm, num)) { case 4: /* UNP */ case 7: /* UNP */ case 8: /* UNP */ @@ -195,16 +139,16 @@ { #define precalc(num) { \ u32 mask = 0, set = 0xFFFFFFFF ; /* (x & 0) == 0xFF..FF is allways false (disabled) */ \ - if (BIT_N(protectBaseSize##num,0)) /* if region is enabled */ \ + if (BIT_N(protectBaseSize[num],0)) /* if region is enabled */ \ { /* reason for this define: naming includes var */ \ - mask = MASKFROMREG(protectBaseSize##num) ; \ - set = SETFROMREG(protectBaseSize##num) ; \ - if (SIZEIDENTIFIER(protectBaseSize##num)==0x1F) \ + mask = CP15_MASKFROMREG(protectBaseSize[num]) ; \ + set = CP15_SETFROMREG(protectBaseSize[num]) ; \ + if (CP15_SIZEIDENTIFIER(protectBaseSize[num])==0x1F) \ { /* for the 4GB region, u32 suffers wraparound */ \ mask = 0 ; set = 0 ; /* (x & 0) == 0 is allways true (enabled) */ \ } \ } \ - setSingleRegionAccess(DaccessPerm,IaccessPerm,num,mask,set) ; \ + setSingleRegionAccess(num, mask, set) ; \ } precalc(0) ; precalc(1) ; @@ -267,12 +211,7 @@ BOOL armcp15_t::moveCP2ARM(u32 * R, u8 CRn, u8 CRm, u8 opcode1, u8 opcode2) { - if (!cpu) - { - printf("ERROR: cp15 don\'t allocated\n"); - return FALSE; - } - if(cpu->CPSR.bits.mode == USR) return FALSE; + if(NDS_ARM9.CPSR.bits.mode == USR) return FALSE; switch(CRn) { @@ -345,34 +284,10 @@ case 6: if((opcode1==0) && (opcode2==0)) { - switch(CRm) + if (CRm < 8) { - case 0: - *R = protectBaseSize0; - return TRUE; - case 1: - *R = protectBaseSize1; - return TRUE; - case 2: - *R = protectBaseSize2; - return TRUE; - case 3: - *R = protectBaseSize3; - return TRUE; - case 4: - *R = protectBaseSize4; - return TRUE; - case 5: - *R = protectBaseSize5; + *R = protectBaseSize[CRm]; return TRUE; - case 6: - *R = protectBaseSize6; - return TRUE; - case 7: - *R = protectBaseSize7; - return TRUE; - default: - return FALSE; } } return FALSE; @@ -416,12 +331,7 @@ BOOL armcp15_t::moveARM2CP(u32 val, u8 CRn, u8 CRm, u8 opcode1, u8 opcode2) { - if (!cpu) - { - printf("ERROR: cp15 don\'t allocated\n"); - return FALSE; - } - if(cpu->CPSR.bits.mode == USR) return FALSE; + if(NDS_ARM9.CPSR.bits.mode == USR) return FALSE; switch(CRn) { @@ -433,8 +343,8 @@ ctrl = (val & 0x000FF085) | 0x00000078; MMU.ARM9_RW_MODE = BIT7(val); //zero 31-jan-2010: change from 0x0FFF0000 to 0xFFFF0000 per gbatek - cpu->intVector = 0xFFFF0000 * (BIT13(val)); - cpu->LDTBit = !BIT15(val); //TBit + NDS_ARM9.intVector = 0xFFFF0000 * (BIT13(val)); + NDS_ARM9.LDTBit = !BIT15(val); //TBit //LOG("CP15: ARMtoCP ctrl %08X (val %08X)\n", ctrl, val); return TRUE; } @@ -484,42 +394,11 @@ case 6: if((opcode1==0) && (opcode2==0)) { - switch(CRm) + if (CRm < 8) { - case 0: - protectBaseSize0 = val; - maskPrecalc(); - return TRUE; - case 1: - protectBaseSize1 = val; - maskPrecalc(); - return TRUE; - case 2: - protectBaseSize2 = val; - maskPrecalc(); - return TRUE; - case 3: - protectBaseSize3 = val; + protectBaseSize[CRm] = val; maskPrecalc(); return TRUE; - case 4: - protectBaseSize4 = val; - maskPrecalc(); - return TRUE; - case 5: - protectBaseSize5 = val; - maskPrecalc(); - return TRUE; - case 6: - protectBaseSize6 = val; - maskPrecalc(); - return TRUE; - case 7: - protectBaseSize7 = val; - maskPrecalc(); - return TRUE; - default: - return FALSE; } } return FALSE; @@ -527,8 +406,8 @@ if((CRm==0)&&(opcode1==0)&&((opcode2==4))) { //CP15wait4IRQ; - cpu->waitIRQ = TRUE; - cpu->halt_IE_and_IF = TRUE; + NDS_ARM9.waitIRQ = TRUE; + NDS_ARM9.halt_IE_and_IF = TRUE; //IME set deliberately omitted: only SWI sets IME to 1 return TRUE; } @@ -585,14 +464,7 @@ write32le(und,os); write32le(DaccessPerm,os); write32le(IaccessPerm,os); - write32le(protectBaseSize0,os); - write32le(protectBaseSize1,os); - write32le(protectBaseSize2,os); - write32le(protectBaseSize3,os); - write32le(protectBaseSize4,os); - write32le(protectBaseSize5,os); - write32le(protectBaseSize6,os); - write32le(protectBaseSize7,os); + for(int i=0;i<8;i++) write32le(protectBaseSize[i],os); write32le(cacheOp,os); write32le(DcacheLock,os); write32le(IcacheLock,os); @@ -628,14 +500,7 @@ if(!read32le(&und,is)) return false; if(!read32le(&DaccessPerm,is)) return false; if(!read32le(&IaccessPerm,is)) return false; - if(!read32le(&protectBaseSize0,is)) return false; - if(!read32le(&protectBaseSize1,is)) return false; - if(!read32le(&protectBaseSize2,is)) return false; - if(!read32le(&protectBaseSize3,is)) return false; - if(!read32le(&protectBaseSize4,is)) return false; - if(!read32le(&protectBaseSize5,is)) return false; - if(!read32le(&protectBaseSize6,is)) return false; - if(!read32le(&protectBaseSize7,is)) return false; + for(int i=0;i<8;i++) if(!read32le(&protectBaseSize[i],is)) return false; if(!read32le(&cacheOp,is)) return false; if(!read32le(&DcacheLock,is)) return false; if(!read32le(&IcacheLock,is)) return false; @@ -660,31 +525,3 @@ return true; } - -/* precalculate region masks/sets from cp15 register ----- JIT */ -void maskPrecalc() -{ -#define precalc(num) { \ - u32 mask = 0, set = 0xFFFFFFFF ; /* (x & 0) == 0xFF..FF is allways false (disabled) */ \ - if (BIT_N(cp15.protectBaseSize##num,0)) /* if region is enabled */ \ - { /* reason for this define: naming includes var */ \ - mask = MASKFROMREG(cp15.protectBaseSize##num) ; \ - set = SETFROMREG(cp15.protectBaseSize##num) ; \ - if (SIZEIDENTIFIER(cp15.protectBaseSize##num)==0x1F) \ - { /* for the 4GB region, u32 suffers wraparound */ \ - mask = 0 ; set = 0 ; /* (x & 0) == 0 is allways true (enabled) */ \ -} \ -} \ - cp15.setSingleRegionAccess(cp15.DaccessPerm,cp15.IaccessPerm,num,mask,set) ; \ -} - precalc(0) ; - precalc(1) ; - precalc(2) ; - precalc(3) ; - precalc(4) ; - precalc(5) ; - precalc(6) ; - precalc(7) ; -#undef precalc -} - diff -Nru desmume-0.9.9/src/cp15.h desmume-0.9.10/src/cp15.h --- desmume-0.9.9/src/cp15.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/cp15.h 2013-11-28 00:37:17.573001235 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2006 yopyop - Copyright (C) 2006-2010 DeSmuME team + Copyright (C) 2006-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,6 +32,11 @@ #define CP15_ACCESS_EXECUSR CP15_ACCESS_EXECUTE #define CP15_ACCESS_EXECSYS 5 +#define CP15_SIZEBINARY(val) (1 << (CP15_SIZEIDENTIFIER(val)+1)) +#define CP15_SIZEIDENTIFIER(val) ((((val) >> 1) & 0x1F)) +#define CP15_MASKFROMREG(val) (~((CP15_SIZEBINARY(val)-1) | 0x3F)) +#define CP15_SETFROMREG(val) ((val) & CP15_MASKFROMREG(val)) + struct armcp15_t { public: @@ -45,14 +50,7 @@ u32 und; u32 DaccessPerm; u32 IaccessPerm; - u32 protectBaseSize0; - u32 protectBaseSize1; - u32 protectBaseSize2; - u32 protectBaseSize3; - u32 protectBaseSize4; - u32 protectBaseSize5; - u32 protectBaseSize6; - u32 protectBaseSize7; + u32 protectBaseSize[8]; u32 cacheOp; u32 DcacheLock; u32 IcacheLock; @@ -77,41 +75,32 @@ u32 regionExecuteSet_USR[8] ; u32 regionExecuteSet_SYS[8] ; - armcpu_t *cpu; - - void setSingleRegionAccess(u32 dAccess,u32 iAccess,unsigned char num, u32 mask,u32 set); + void setSingleRegionAccess(u8 num, u32 mask, u32 set); void maskPrecalc(); public: - armcp15_t() : IDCode(0), - cacheType(0), - TCMSize(0), - ctrl(0), + armcp15_t() : IDCode(0x41059461), + cacheType(0x0F0D2112), + TCMSize(0x00140180), + ctrl(0x00012078), DCConfig(0), ICConfig(0), writeBuffCtrl(0), und(0), - DaccessPerm(0), - IaccessPerm(0), - protectBaseSize0(0), - protectBaseSize1(0), - protectBaseSize2(0), - protectBaseSize3(0), - protectBaseSize4(0), - protectBaseSize5(0), - protectBaseSize6(0), - protectBaseSize7(0), + DaccessPerm(0x22222222), + IaccessPerm(0x22222222), cacheOp(0), DcacheLock(0), IcacheLock(0), - ITCMRegion(0), - DTCMRegion(0), + ITCMRegion(0x0C), + DTCMRegion(0x0080000A), processID(0), RAM_TAG(0), testState(0), - cacheDbg(0), - cpu(NULL) + cacheDbg(0) { + //printf("CP15 Reset\n"); + memset(&protectBaseSize[0], 0, sizeof(protectBaseSize)); memset(®ionWriteMask_USR[0], 0, sizeof(regionWriteMask_USR)); memset(®ionWriteMask_SYS[0], 0, sizeof(regionWriteMask_SYS)); memset(®ionReadMask_USR[0], 0, sizeof(regionReadMask_USR)); @@ -125,7 +114,6 @@ memset(®ionExecuteSet_USR[0], 0, sizeof(regionExecuteSet_USR)); memset(®ionExecuteSet_SYS[0], 0, sizeof(regionExecuteSet_SYS)); } - bool reset(armcpu_t * c); BOOL dataProcess(u8 CRd, u8 CRn, u8 CRm, u8 opcode1, u8 opcode2); BOOL load(u8 CRd, u8 adr); BOOL store(u8 CRd, u8 adr); @@ -138,5 +126,4 @@ }; extern armcp15_t cp15; -void maskPrecalc(); #endif /* __CP15_H__*/ diff -Nru desmume-0.9.9/src/ctrlssdl.cpp desmume-0.9.10/src/ctrlssdl.cpp --- desmume-0.9.9/src/ctrlssdl.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/ctrlssdl.cpp 2013-11-28 00:37:18.797021001 +0000 @@ -402,7 +402,7 @@ process_joystick_events( u16 *keypad) { SDL_Event event; - /* IMPORTANT: Reenable joystick events iif needed. */ + /* IMPORTANT: Reenable joystick events if needed. */ if(SDL_JoystickEventState(SDL_QUERY) == SDL_IGNORE) SDL_JoystickEventState(SDL_ENABLE); diff -Nru desmume-0.9.9/src/driver.cpp desmume-0.9.10/src/driver.cpp --- desmume-0.9.9/src/driver.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/driver.cpp 2013-11-28 00:37:28.421176409 +0000 @@ -22,193 +22,6 @@ #include "texcache.h" -#ifdef HAVE_WX -#include "wx/wxprec.h" -#include "wx/wx.h" -#include "wxdlg/wxdlg3dViewer.h" - -const int kViewportWidth = 256; -const int kViewportHeight = 192; - -static SoftRasterizerEngine engine; -static Fragment _screen[kViewportWidth*kViewportHeight]; -static FragmentColor _screenColor[kViewportWidth*kViewportHeight]; - -extern void _HACK_Viewer_ExecUnit(SoftRasterizerEngine* engine); - -class Mywxdlg3dViewer : public wxdlg3dViewer -{ -public: - Mywxdlg3dViewer() - : wxdlg3dViewer(NULL) - {} - - virtual void RepaintPanel() - { - Refresh(false); - Update(); - } - - void NewFrame() - { - listPolys->SetItemCount(viewer3d_state->polylist.count); - labelFrameCounter->SetLabel(wxString::Format(wxT("Frame: %d"),viewer3d_state->frameNumber)); - labelUserPolycount->SetLabel(wxString::Format(wxT("User Polys: %d"),viewer3d_state->polylist.count)); - labelFinalPolycount->SetLabel(wxString::Format(wxT("Final Polys: %d"),viewer3d_state->polylist.count)); - //tree->DeleteAllItems(); - //tree->Freeze(); - //wxTreeItemId root = tree->AddRoot(""); - //for(int i=0;ipolylist.count;i++) - //{ - // tree->AppendItem(root,"hai kirin"); - //} - //tree->Thaw(); - } - - virtual wxString OnGetItemText(const wxListCtrl* list, long item, long column) const - { - return wxT("hi"); - } - - virtual void OnListPolysSelected( wxListEvent& event ) - { - panelTexture->Refresh(false); - engine._debug_drawClippedUserPoly = GetSelectedListviewItem(listPolys); - } - - void RedrawPanel(wxClientDC* dc) - { - //------------ - //do the 3d work.. - engine.polylist = &viewer3d_state->polylist; - engine.vertlist = &viewer3d_state->vertlist; - engine.indexlist = &viewer3d_state->indexlist; - engine.screen = _screen; - engine.screenColor = _screenColor; - engine.width = kViewportWidth; - engine.height = kViewportHeight; - - engine.updateFogTable(); - - engine.initFramebuffer(kViewportWidth,kViewportHeight,gfx3d.state.enableClearImage?true:false); - engine.updateToonTable(); - engine.updateFloatColors(); - engine.performClipping(checkMaterialInterpolate->IsChecked()); - engine.performViewportTransforms(kViewportWidth,kViewportHeight); - engine.performBackfaceTests(); - engine.performCoordAdjustment(false); - engine.setupTextures(false); - - _HACK_Viewer_ExecUnit(&engine); - //------------ - - //dc.SetBackground(*wxGREEN_BRUSH); dc.Clear(); - u8 framebuffer[kViewportWidth*kViewportHeight*3]; - for(int y=0,i=0;yDrawBitmap(bitmap,0,0); - } - - virtual void _OnPaintPanel( wxPaintEvent& event ) - { - wxClientDC dc(wxDynamicCast(event.GetEventObject(), wxWindow)); - RedrawPanel(&dc); - } - - int GetSelectedListviewItem(wxListCtrl* list) - { - return list->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); - } - - virtual void OnPaintPanelTexture( wxPaintEvent& event ) - { - wxPaintDC dc(wxDynamicCast(event.GetEventObject(), wxWindow)); - dc.SetBackground(*wxBLACK_BRUSH); dc.Clear(); - - int selection = GetSelectedListviewItem(listPolys); - if(selection < 0) return; - if(selection>=viewer3d_state->polylist.count) return; - - POLY& poly = viewer3d_state->polylist.list[selection]; - - TexCacheItem* texkey = TexCache_SetTexture(TexFormat_32bpp,poly.texParam,poly.texPalette); - const u32 w = texkey->sizeX; - const u32 h = texkey->sizeY; - u8* const bmpdata = new u8[w*h*4]; - for(u32 i=0;idecoded[i*4]; - bmpdata[i*3+1] = texkey->decoded[i*4+1]; - bmpdata[i*3+2] = texkey->decoded[i*4+2]; - } - for(u32 i=0;idecoded[i*4+3]; - - - wxImage image(w,h,false); - image.InitAlpha(); - image.SetData(bmpdata,true); - image.SetAlpha(bmpdata+w*h*3,true); - wxBitmap bitmap(image); - double xscale = (double)panelTexture->GetSize().x / w; - double yscale = (double)panelTexture->GetSize().y / h; - - dc.SetUserScale(xscale,yscale); - dc.DrawBitmap(bitmap,0,0); - delete[] bmpdata; - } -}; - -class VIEW3D_Driver_WX : public VIEW3D_Driver -{ -public: - VIEW3D_Driver_WX() - : viewer(NULL) - {} - ~VIEW3D_Driver_WX() - { - delete viewer; - } - - virtual bool IsRunning() { return viewer != NULL; } - - virtual void Launch() - { - if(viewer) return; - delete viewer; - viewer = new Mywxdlg3dViewer(); - viewer->Show(true); - } - - void Close() - { - delete viewer; - viewer = NULL; - } - - virtual void NewFrame() - { - if(!viewer) return; - if(!viewer->IsShown()) { - Close(); - return; - } - - viewer->NewFrame(); - viewer->RepaintPanel(); - } - -private: - Mywxdlg3dViewer *viewer; -}; - -#endif - static VIEW3D_Driver nullView3d; BaseDriver::BaseDriver() : view3d(NULL) @@ -225,9 +38,6 @@ void BaseDriver::VIEW3D_Init() { VIEW3D_Shutdown(); -#ifdef HAVE_WX - view3d = new VIEW3D_Driver_WX(); -#endif } BaseDriver::~BaseDriver() diff -Nru desmume-0.9.9/src/driver.h desmume-0.9.10/src/driver.h --- desmume-0.9.9/src/driver.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/driver.h 2013-11-28 00:37:26.725149024 +0000 @@ -92,7 +92,7 @@ }; extern BaseDriver* driver; -#ifndef _WINDOWS +#ifndef HOST_WINDOWS class UnixDriver : public BaseDriver { #ifdef EXPERIMENTAL_WIFI_COMM diff -Nru desmume-0.9.9/src/emufile.cpp desmume-0.9.10/src/emufile.cpp --- desmume-0.9.9/src/emufile.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/emufile.cpp 2013-11-28 00:37:18.805021131 +0000 @@ -64,7 +64,7 @@ void EMUFILE_FILE::truncate(s32 length) { ::fflush(fp); - #ifdef _MSC_VER + #ifdef HOST_WINDOWS _chsize(_fileno(fp),length); #else ftruncate(fileno(fp),length); @@ -258,3 +258,25 @@ *val = u64_to_double(temp); return ret; } + +void EMUFILE::writeMemoryStream(EMUFILE_MEMORY* ms) +{ + s32 size = (s32)ms->size(); + write32le(size); + if(size>0) + { + std::vector* vec = ms->get_vec(); + fwrite(&vec->at(0),size); + } +} + +void EMUFILE::readMemoryStream(EMUFILE_MEMORY* ms) +{ + s32 size = read32le(); + if(size != 0) + { + std::vector temp(size); + fread(&temp[0],size); + ms->fwrite(&temp[0],size); + } +} diff -Nru desmume-0.9.9/src/emufile.h desmume-0.9.10/src/emufile.h --- desmume-0.9.9/src/emufile.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/emufile.h 2013-11-28 00:37:26.721148959 +0000 @@ -37,12 +37,14 @@ #include "emufile_types.h" -#ifdef _MSC_VER +#ifdef HOST_WINDOWS #include #else #include #endif +class EMUFILE_MEMORY; + class EMUFILE { protected: bool failbit; @@ -120,6 +122,10 @@ virtual void fflush() = 0; virtual void truncate(s32 length) = 0; + + void writeMemoryStream(EMUFILE_MEMORY* ms); + void readMemoryStream(EMUFILE_MEMORY* ms); + }; //todo - handle read-only specially? @@ -182,10 +188,10 @@ va_start(argptr, format); vsprintf(tempbuf,format,argptr); - fwrite(tempbuf,amt); + fwrite(tempbuf,amt); delete[] tempbuf; - - va_end(argptr); + + va_end(argptr); return amt; }; diff -Nru desmume-0.9.9/src/encrypt.cpp desmume-0.9.10/src/encrypt.cpp --- desmume-0.9.9/src/encrypt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/encrypt.cpp 2013-11-28 00:37:28.265173889 +0000 @@ -0,0 +1,132 @@ +/* + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "armcpu.h" +#include "MMU.h" +#include "encrypt.h" + +//TODO - a lot of redundant code (maybe?) with utils/decrypt.cpp +//we should try unifying all that. + +//TODO - endian unsafeness in here... dont like the way these take u32. maybe it makes sense and the user is genuinely supposed to present data in units of u32 + +//================================================================================== KEY1 +#define DWNUM(i) ((i) >> 2) + +void _KEY1::init(u32 idcode, u8 level, u8 modulo) +{ + memcpy(keyBuf, keyBufPtr, 0x1048); + keyCode[0] = idcode; + keyCode[1] = idcode >> 1; + keyCode[2] = idcode << 1; + if (level >= 1) // first apply (always) + applyKeycode(modulo); + if (level >= 2) // second apply (optional) + applyKeycode(modulo); + keyCode[1] <<= 1; + keyCode[2] >>= 1; + if (level >= 3) // third apply (optional) + applyKeycode(modulo); +} + +void _KEY1::applyKeycode(u8 modulo) +{ + encrypt(&keyCode[1]); + encrypt(&keyCode[0]); + + u32 scratch[2] = {0}; + + for (u32 i = 0; i <= 0x44; i += 4) // xor with reversed byte-order (bswap) + keyBuf[DWNUM(i)] ^= bswap32(keyCode[DWNUM(i % modulo)]); + + for (u32 i = 0; i <= 0x1040; i += 8) + { + encrypt(scratch); // encrypt S (64bit) by keybuf + keyBuf[DWNUM(i)] = scratch[1]; // write S to keybuf (first upper 32bit) + keyBuf[DWNUM(i+4)] = scratch[0]; // write S to keybuf (then lower 32bit) + } +} + +void _KEY1::decrypt(u32 *ptr) +{ + u32 y = ptr[0]; + u32 x = ptr[1]; + + for (u32 i = 0x11; i >= 0x02; i--) + { + u32 z = keyBuf[i] ^ x; + x = keyBuf[DWNUM(0x048 + (((z >> 24) & 0xFF) << 2))]; + x = keyBuf[DWNUM(0x448 + (((z >> 16) & 0xFF) << 2))] + x; + x = keyBuf[DWNUM(0x848 + (((z >> 8) & 0xFF) << 2))] ^ x; + x = keyBuf[DWNUM(0xC48 + (((z >> 0) & 0xFF) << 2))] + x; + x = y ^ x; + y = z; + } + ptr[0] = x ^ keyBuf[DWNUM(0x04)]; + ptr[1] = y ^ keyBuf[DWNUM(0x00)]; +} + +void _KEY1::encrypt(u32 *ptr) +{ + u32 y = ptr[0]; + u32 x = ptr[1]; + + for (u32 i = 0x00; i <= 0x0F; i++) + { + u32 z = keyBuf[i] ^ x; + x = keyBuf[DWNUM(0x048 + (((z >> 24) & 0xFF) << 2))]; + x = keyBuf[DWNUM(0x448 + (((z >> 16) & 0xFF) << 2))] + x; + x = keyBuf[DWNUM(0x848 + (((z >> 8) & 0xFF) << 2))] ^ x; + x = keyBuf[DWNUM(0xC48 + (((z >> 0) & 0xFF) << 2))] + x; + x = y ^ x; + y = z; + } + + ptr[0] = x ^ keyBuf[DWNUM(0x40)]; + ptr[1] = y ^ keyBuf[DWNUM(0x44)]; +} +#undef DWNUM + +//================================================================================== KEY2 +u64 _KEY2::bitsReverse39(u64 key) +{ + u64 tmp = 0; + for (u32 i = 0; i < 39; i++) + tmp |= ((key >> i) & 1) << (38 - i); + + return tmp; +} + +void _KEY2::applySeed(u8 PROCNUM) +{ + u64 tmp = (MMU_read8(PROCNUM, REG_ENCSEED0H) & 0xFF); + seed0 = MMU_read32(PROCNUM, REG_ENCSEED0L) | (tmp << 32); + tmp = (MMU_read8(PROCNUM, REG_ENCSEED1H) & 0xFF); + seed1 = MMU_read32(PROCNUM, REG_ENCSEED1L) | (tmp << 32); + x = bitsReverse39(seed0); + y = bitsReverse39(seed1); + + //printf("ARM%c: set KEY2 seed0 to %010llX (reverse %010llX)\n", PROCNUM?'7':'9', seed0, x); + //printf("ARM%c: set KEY2 seed1 to %010llX (reverse %010llX)\n", PROCNUM?'7':'9', seed1, y); +} + +u8 _KEY2::apply(u8 data) +{ + x = (((x >> 5) ^ (x >> 17) ^ (x >> 18) ^ (x >> 31)) & 0xFF) + (x << 8); + y = (((y >> 5) ^ (y >> 23) ^ (y >> 18) ^ (y >> 31)) & 0xFF) + (y << 8); + return ((data ^ x ^ y) & 0xFF); +} diff -Nru desmume-0.9.9/src/encrypt.h desmume-0.9.10/src/encrypt.h --- desmume-0.9.9/src/encrypt.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/encrypt.h 2013-11-28 00:37:18.797021001 +0000 @@ -0,0 +1,72 @@ +/* + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#ifndef _ENCRYPT_H_ +#define _ENCRYPT_H_ +#include "types.h" +#include + +struct _KEY1 +{ + _KEY1(const u8 *inKeyBufPtr) + { + if (keyBuf) delete keyBuf; + keyBuf = new u32 [0x412]; + memset(keyBuf, 0x00, 0x412 * sizeof(u32)); + memset(&keyCode[0], 0, sizeof(keyCode)); + this->keyBufPtr = inKeyBufPtr; + } + + ~_KEY1() + { + if (keyBuf) + { + delete keyBuf; + keyBuf = NULL; + } + } + + u32 *keyBuf; + u32 keyCode[3]; + const u8 *keyBufPtr; + + void init(u32 idcode, u8 level, u8 modulo); + void applyKeycode(u8 modulo); + void decrypt(u32 *ptr); + void encrypt(u32 *ptr); +}; + +struct _KEY2 +{ +private: + u64 seed0; + u64 seed1; + u64 x; + u64 y; + + u64 bitsReverse39(u64 key); + +public: + _KEY2() : seed0(0x58C56DE0E8ULL), + seed1(0x5C879B9B05ULL) + {} + + void applySeed(u8 PROCNUM); + u8 apply(u8 data); +}; + +#endif \ No newline at end of file diff -Nru desmume-0.9.9/src/filter/videofilter.cpp desmume-0.9.10/src/filter/videofilter.cpp --- desmume-0.9.9/src/filter/videofilter.cpp 2013-05-01 18:48:50.000000000 +0000 +++ desmume-0.9.10/src/filter/videofilter.cpp 2013-11-28 00:37:26.729149087 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2011 Roger Manuel + Copyright (C) 2011-2012 Roger Manuel Copyright (C) 2013 DeSmuME team This file is free software: you can redistribute it and/or modify @@ -25,7 +25,7 @@ int scanline_filter_c = 2; int scanline_filter_d = 4; -// +// Parameters passed to the RunVideoFilterTask() thread task function typedef struct { void *index; @@ -42,29 +42,41 @@ /******************************************************************************************** CLASS CONSTRUCTORS ********************************************************************************************/ -VideoFilter::VideoFilter(unsigned int srcWidth = 1, - unsigned int srcHeight = 1, +VideoFilter::VideoFilter(size_t srcWidth, + size_t srcHeight, VideoFilterTypeID typeID = VideoFilterTypeID_None, - unsigned int numberThreads = 0) + size_t threadCount = 0) { - SSurface newSurface = {NULL, srcWidth*2, srcWidth, srcHeight}; + SSurface newSurface; + newSurface.Surface = NULL; + newSurface.Pitch = srcWidth*2; + newSurface.Width = srcWidth; + newSurface.Height = srcHeight; + _vfSrcSurface = newSurface; _vfDstSurface = newSurface; _isFilterRunning = false; _vfSrcSurfacePixBuffer = NULL; - _vfTypeID = typeID; - pthread_mutex_init(&_mutexSrc, NULL); - pthread_mutex_init(&_mutexDst, NULL); - pthread_mutex_init(&_mutexTypeID, NULL); - pthread_mutex_init(&_mutexTypeString, NULL); - pthread_cond_init(&_condRunning, NULL); + if (typeID < VideoFilterTypeIDCount) + { + _vfAttributes = VideoFilterAttributesList[typeID]; + } + else + { + _vfAttributes = VideoFilterAttributesList[VideoFilterTypeID_None]; + } + + ThreadLockInit(&_lockSrc); + ThreadLockInit(&_lockDst); + ThreadLockInit(&_lockAttributes); + ThreadCondInit(&_condRunning); // Create all threads - _vfThread.resize(numberThreads); + _vfThread.resize(threadCount); - for (unsigned int i = 0; i < numberThreads; i++) + for (size_t i = 0; i < threadCount; i++) { _vfThread[i].param.srcSurface = _vfSrcSurface; _vfThread[i].param.dstSurface = _vfDstSurface; @@ -83,7 +95,7 @@ VideoFilter::~VideoFilter() { // Destroy all threads first - for (unsigned int i = 0; i < _vfThread.size(); i++) + for (size_t i = 0; i < _vfThread.size(); i++) { _vfThread[i].task->finish(); _vfThread[i].task->shutdown(); @@ -94,30 +106,29 @@ _vfThread.clear(); // Destroy everything else - pthread_mutex_lock(&_mutexSrc); - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&_lockSrc); + ThreadLockLock(&_lockDst); - while (this->_isFilterRunning) + while (_isFilterRunning) { - pthread_cond_wait(&this->_condRunning, &this->_mutexDst); + ThreadCondWait(&_condRunning, &_lockDst); } free(_vfDstSurface.Surface); _vfDstSurface.Surface = NULL; - pthread_mutex_unlock(&_mutexDst); + ThreadLockUnlock(&_lockDst); free(_vfSrcSurfacePixBuffer); _vfSrcSurfacePixBuffer = NULL; _vfSrcSurface.Surface = NULL; - pthread_mutex_unlock(&_mutexSrc); + ThreadLockUnlock(&_lockSrc); - pthread_mutex_destroy(&_mutexSrc); - pthread_mutex_destroy(&_mutexDst); - pthread_mutex_destroy(&_mutexTypeID); - pthread_mutex_destroy(&_mutexTypeString); - pthread_cond_destroy(&_condRunning); + ThreadLockDestroy(&_lockSrc); + ThreadLockDestroy(&_lockDst); + ThreadLockDestroy(&_lockAttributes); + ThreadCondDestroy(&_condRunning); } /******************************************************************************************** @@ -135,11 +146,11 @@ A bool that reports if the resizing was successful. A value of true means success, while a value of false means failure. ********************************************************************************************/ -bool VideoFilter::SetSourceSize(const unsigned int width, const unsigned int height) +bool VideoFilter::SetSourceSize(const size_t width, const size_t height) { bool result = false; - pthread_mutex_lock(&this->_mutexSrc); + ThreadLockLock(&this->_lockSrc); // Overallocate the source buffer by 8 rows of pixels to account for out-of-bounds // memory reads done by some filters. @@ -162,7 +173,7 @@ // Update the surfaces on threads. size_t threadCount = this->_vfThread.size(); - for (unsigned int i = 0; i < threadCount; i++) + for (size_t i = 0; i < threadCount; i++) { SSurface &threadSrcSurface = this->_vfThread[i].param.srcSurface; threadSrcSurface = this->_vfSrcSurface; @@ -175,9 +186,10 @@ } } - pthread_mutex_unlock(&this->_mutexSrc); + ThreadLockUnlock(&this->_lockSrc); - result = this->ChangeFilterByID(this->GetTypeID()); + const VideoFilterAttributes vfAttr = this->GetAttributes(); + result = this->ChangeFilterByAttributes(&vfAttr); return result; } @@ -204,7 +216,9 @@ return result; } - return this->ChangeFilterByAttributes(&VideoFilterAttributesList[typeID]); + result = this->ChangeFilterByAttributes(&VideoFilterAttributesList[typeID]); + + return result; } /******************************************************************************************** @@ -228,18 +242,24 @@ return result; } - pthread_mutex_lock(&this->_mutexSrc); - const unsigned int srcWidth = this->_vfSrcSurface.Width; - const unsigned int srcHeight = this->_vfSrcSurface.Height; - pthread_mutex_unlock(&this->_mutexSrc); - - const VideoFilterTypeID typeID = vfAttr->typeID; - const unsigned int dstWidth = srcWidth * vfAttr->scaleMultiply / vfAttr->scaleDivide; - const unsigned int dstHeight = srcHeight * vfAttr->scaleMultiply / vfAttr->scaleDivide; - const char *typeString = vfAttr->typeString; - const VideoFilterFunc filterFunction = vfAttr->filterFunction; + if (vfAttr->scaleMultiply == 0 || vfAttr->scaleDivide < 1) + { + return result; + } + + this->SetAttributes(*vfAttr); + VideoFilterAttributes &workingAttributes = this->_vfAttributes; - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockSrc); + const size_t srcWidth = this->_vfSrcSurface.Width; + const size_t srcHeight = this->_vfSrcSurface.Height; + ThreadLockUnlock(&this->_lockSrc); + + const size_t dstWidth = srcWidth * workingAttributes.scaleMultiply / workingAttributes.scaleDivide; + const size_t dstHeight = srcHeight * workingAttributes.scaleMultiply / workingAttributes.scaleDivide; + const VideoFilterFunc filterFunction = workingAttributes.filterFunction; + + ThreadLockLock(&this->_lockDst); uint32_t *newSurfaceBuffer = (uint32_t *)calloc(dstWidth * dstHeight, sizeof(uint32_t)); if (newSurfaceBuffer == NULL) @@ -256,9 +276,9 @@ this->_vfDstSurface.Surface = (unsigned char *)newSurfaceBuffer; // Update the surfaces on threads. - size_t threadCount = this->_vfThread.size(); + const size_t threadCount = this->_vfThread.size(); - for (unsigned int i = 0; i < threadCount; i++) + for (size_t i = 0; i < threadCount; i++) { SSurface &threadDstSurface = this->_vfThread[i].param.dstSurface; threadDstSurface = this->_vfDstSurface; @@ -273,10 +293,7 @@ this->_vfThread[i].param.filterFunction = this->_vfFunc; } - pthread_mutex_unlock(&this->_mutexDst); - - this->SetTypeID(typeID); - this->SetTypeString(typeString); + ThreadLockUnlock(&this->_lockDst); result = true; @@ -297,11 +314,10 @@ ********************************************************************************************/ uint32_t* VideoFilter::RunFilter() { - pthread_mutex_lock(&this->_mutexSrc); - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockSrc); + ThreadLockLock(&this->_lockDst); this->_isFilterRunning = true; - uint32_t *destBufPtr = (uint32_t *)this->_vfDstSurface.Surface; if (this->_vfFunc == NULL) { @@ -309,16 +325,15 @@ } else { - size_t threadCount = this->_vfThread.size(); - + const size_t threadCount = this->_vfThread.size(); if (threadCount > 0) { - for (unsigned int i = 0; i < threadCount; i++) + for (size_t i = 0; i < threadCount; i++) { this->_vfThread[i].task->execute(&RunVideoFilterTask, &this->_vfThread[i].param); } - for (unsigned int i = 0; i < threadCount; i++) + for (size_t i = 0; i < threadCount; i++) { this->_vfThread[i].task->finish(); } @@ -330,16 +345,16 @@ } this->_isFilterRunning = false; - pthread_cond_signal(&this->_condRunning); + ThreadCondSignal(&this->_condRunning); - pthread_mutex_unlock(&this->_mutexDst); - pthread_mutex_unlock(&this->_mutexSrc); + ThreadLockUnlock(&this->_lockDst); + ThreadLockUnlock(&this->_lockSrc); - return destBufPtr; + return (uint32_t *)this->_vfDstSurface.Surface; } /******************************************************************************************** - RunFilterCustom() - STATIC + RunFilterCustomByID() - STATIC Runs the pixels from srcBuffer through the video filter, and then stores the resulting pixels into dstBuffer. This function is useful for when your source or @@ -366,29 +381,78 @@ Returns: Nothing. ********************************************************************************************/ -void VideoFilter::RunFilterCustom(const uint32_t *__restrict__ srcBuffer, uint32_t *__restrict__ dstBuffer, - const unsigned int srcWidth, const unsigned int srcHeight, - const VideoFilterTypeID typeID) +void VideoFilter::RunFilterCustomByID(const uint32_t *__restrict srcBuffer, uint32_t *__restrict dstBuffer, + const size_t srcWidth, const size_t srcHeight, + const VideoFilterTypeID typeID) +{ + if (typeID >= VideoFilterTypeIDCount) + { + return; + } + + VideoFilter::RunFilterCustomByAttributes(srcBuffer, dstBuffer, srcWidth, srcHeight, &VideoFilterAttributesList[typeID]); +} + +/******************************************************************************************** + RunFilterCustomByAttributes() - STATIC + + Runs the pixels from srcBuffer through the video filter, and then stores the + resulting pixels into dstBuffer. This function is useful for when your source or + destination buffers are already established, or when you want to run a filter once + without having to instantiate a new filter object. + + Takes: + srcBuffer - A pointer to the source pixel buffer. The caller is responsible + for ensuring that this buffer is valid. Also note that certain video filters + may do out-of-bounds reads, so the caller is responsible for overallocating + this buffer in order to avoid crashing on certain platforms. + + dstBuffer - A pointer to the destination pixel buffer. The caller is responsible + for ensuring that this buffer is valid and large enough to store all of the + destination pixels. + + srcWidth - The source surface width in pixels. + + srcHeight - The source surface height in pixels. + + vfAttr - The video filter's attributes. + + Returns: + Nothing. + ********************************************************************************************/ +void VideoFilter::RunFilterCustomByAttributes(const uint32_t *__restrict srcBuffer, uint32_t *__restrict dstBuffer, + const size_t srcWidth, const size_t srcHeight, + const VideoFilterAttributes *vfAttr) { // Parameter check if (srcBuffer == NULL || dstBuffer == NULL || - srcWidth == 0 || - srcHeight == 0 || - typeID >= VideoFilterTypeIDCount) + srcWidth < 1 || + srcHeight < 1 || + vfAttr == NULL || + vfAttr->scaleMultiply == 0 || + vfAttr->scaleDivide < 1) { return; } // Get the filter attributes - const VideoFilterAttributes *vfAttr = &VideoFilterAttributesList[typeID]; - const unsigned int dstWidth = srcWidth * vfAttr->scaleMultiply / vfAttr->scaleDivide; - const unsigned int dstHeight = srcHeight * vfAttr->scaleMultiply / vfAttr->scaleDivide; + const size_t dstWidth = srcWidth * vfAttr->scaleMultiply / vfAttr->scaleDivide; + const size_t dstHeight = srcHeight * vfAttr->scaleMultiply / vfAttr->scaleDivide; const VideoFilterFunc filterFunction = vfAttr->filterFunction; // Assign the surfaces and run the filter - SSurface srcSurface = {(unsigned char *)srcBuffer, srcWidth*2, srcWidth, srcHeight}; - SSurface dstSurface = {(unsigned char *)dstBuffer, dstWidth*2, dstWidth, dstHeight}; + SSurface srcSurface; + srcSurface.Surface = (unsigned char *)srcBuffer; + srcSurface.Pitch = srcWidth*2; + srcSurface.Width = srcWidth; + srcSurface.Height = srcHeight; + + SSurface dstSurface; + dstSurface.Surface = (unsigned char *)dstBuffer; + dstSurface.Pitch = dstWidth*2; + dstSurface.Width = dstWidth; + dstSurface.Height = dstHeight; if (filterFunction == NULL) { @@ -426,93 +490,90 @@ /******************************************************************************************** ACCESSORS ********************************************************************************************/ -VideoFilterTypeID VideoFilter::GetTypeID() +VideoFilterAttributes VideoFilter::GetAttributes() { - pthread_mutex_lock(&this->_mutexTypeID); - VideoFilterTypeID typeID = this->_vfTypeID; - pthread_mutex_unlock(&this->_mutexTypeID); + ThreadLockLock(&this->_lockAttributes); + VideoFilterAttributes vfAttr = this->_vfAttributes; + ThreadLockUnlock(&this->_lockAttributes); - return typeID; + return vfAttr; } -void VideoFilter::SetTypeID(const VideoFilterTypeID typeID) +void VideoFilter::SetAttributes(const VideoFilterAttributes vfAttr) { - pthread_mutex_lock(&this->_mutexTypeID); - this->_vfTypeID = typeID; - pthread_mutex_unlock(&this->_mutexTypeID); + ThreadLockLock(&this->_lockAttributes); + this->_vfAttributes = vfAttr; + ThreadLockUnlock(&this->_lockAttributes); } -const char* VideoFilter::GetTypeString() +VideoFilterTypeID VideoFilter::GetTypeID() { - pthread_mutex_lock(&this->_mutexTypeString); - const char *typeString = this->_vfTypeString.c_str(); - pthread_mutex_unlock(&this->_mutexTypeString); + ThreadLockLock(&this->_lockAttributes); + VideoFilterTypeID typeID = this->_vfAttributes.typeID; + ThreadLockUnlock(&this->_lockAttributes); - return typeString; -} - -void VideoFilter::SetTypeString(const char *typeString) -{ - this->SetTypeString(std::string(typeString)); + return typeID; } -void VideoFilter::SetTypeString(std::string typeString) +const char* VideoFilter::GetTypeString() { - pthread_mutex_lock(&this->_mutexTypeString); - this->_vfTypeString = typeString; - pthread_mutex_unlock(&this->_mutexTypeString); + ThreadLockLock(&this->_lockAttributes); + const char *typeString = this->_vfAttributes.typeString; + ThreadLockUnlock(&this->_lockAttributes); + + return typeString; } uint32_t* VideoFilter::GetSrcBufferPtr() { - pthread_mutex_lock(&this->_mutexSrc); + ThreadLockLock(&this->_lockSrc); uint32_t *ptr = (uint32_t *)this->_vfSrcSurface.Surface; - pthread_mutex_unlock(&this->_mutexSrc); + ThreadLockUnlock(&this->_lockSrc); return ptr; } uint32_t* VideoFilter::GetDstBufferPtr() { - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); uint32_t *ptr = (uint32_t *)this->_vfDstSurface.Surface; - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); return ptr; } -unsigned int VideoFilter::GetSrcWidth() +size_t VideoFilter::GetSrcWidth() { - pthread_mutex_lock(&this->_mutexSrc); - unsigned int width = this->_vfSrcSurface.Width; - pthread_mutex_unlock(&this->_mutexSrc); + ThreadLockLock(&this->_lockSrc); + size_t width = this->_vfSrcSurface.Width; + ThreadLockUnlock(&this->_lockSrc); return width; } -unsigned int VideoFilter::GetSrcHeight() +size_t VideoFilter::GetSrcHeight() { - pthread_mutex_lock(&this->_mutexSrc); - unsigned int height = this->_vfSrcSurface.Height; - pthread_mutex_unlock(&this->_mutexSrc); + ThreadLockLock(&this->_lockSrc); + size_t height = this->_vfSrcSurface.Height; + ThreadLockUnlock(&this->_lockSrc); return height; } -unsigned int VideoFilter::GetDstWidth() +size_t VideoFilter::GetDstWidth() { - pthread_mutex_lock(&this->_mutexDst); - unsigned int width = this->_vfDstSurface.Width; - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); + size_t width = this->_vfDstSurface.Width; + ThreadLockUnlock(&this->_lockDst); return width; } -unsigned int VideoFilter::GetDstHeight() +size_t VideoFilter::GetDstHeight() { - pthread_mutex_lock(&this->_mutexDst); - unsigned int height = this->_vfDstSurface.Height; - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); + size_t height = this->_vfDstSurface.Height; + ThreadLockUnlock(&this->_lockDst); return height; } @@ -526,7 +587,7 @@ { int value = 0; - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); switch (_VideoFilterParamAttributesList[paramID].type) { @@ -546,7 +607,7 @@ break; } - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); return value; } @@ -555,7 +616,7 @@ { unsigned int value = 0; - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); switch (_VideoFilterParamAttributesList[paramID].type) { @@ -575,7 +636,7 @@ break; } - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); return value; } @@ -584,7 +645,7 @@ { float value = 0.0f; - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); switch (_VideoFilterParamAttributesList[paramID].type) { @@ -604,7 +665,7 @@ break; } - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); return value; } @@ -616,7 +677,7 @@ return; } - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); switch (_VideoFilterParamAttributesList[paramID].type) { @@ -636,7 +697,7 @@ break; } - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); } void VideoFilter::SetFilterParameterui(VideoFilterParamID paramID, unsigned int value) @@ -646,7 +707,7 @@ return; } - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); switch (_VideoFilterParamAttributesList[paramID].type) { @@ -666,7 +727,7 @@ break; } - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); } void VideoFilter::SetFilterParameterf(VideoFilterParamID paramID, float value) @@ -676,7 +737,7 @@ return; } - pthread_mutex_lock(&this->_mutexDst); + ThreadLockLock(&this->_lockDst); switch (_VideoFilterParamAttributesList[paramID].type) { @@ -696,7 +757,7 @@ break; } - pthread_mutex_unlock(&this->_mutexDst); + ThreadLockUnlock(&this->_lockDst); } // Task function for multithreaded filtering @@ -708,3 +769,86 @@ return NULL; } + +#ifdef HOST_WINDOWS +void ThreadLockInit(ThreadLock *theLock) +{ + InitializeCriticalSection(theLock); +} + +void ThreadLockDestroy(ThreadLock *theLock) +{ + DeleteCriticalSection(theLock); +} + +void ThreadLockLock(ThreadLock *theLock) +{ + EnterCriticalSection(theLock); +} + +void ThreadLockUnlock(ThreadLock *theLock) +{ + LeaveCriticalSection(theLock); +} + +void ThreadCondInit(ThreadCond *theCondition) +{ + *theCondition = CreateEvent(NULL, FALSE, FALSE, NULL); +} + +void ThreadCondDestroy(ThreadCond *theCondition) +{ + CloseHandle(*theCondition); +} + +void ThreadCondWait(ThreadCond *theCondition, ThreadLock *conditionLock) +{ + WaitForSingleObject(*theCondition, INFINITE); +} + +void ThreadCondSignal(ThreadCond *theCondition) +{ + SetEvent(*theCondition); +} + +#else +void ThreadLockInit(ThreadLock *theLock) +{ + pthread_mutex_init(theLock, NULL); +} + +void ThreadLockDestroy(ThreadLock *theLock) +{ + pthread_mutex_destroy(theLock); +} + +void ThreadLockLock(ThreadLock *theLock) +{ + pthread_mutex_lock(theLock); +} + +void ThreadLockUnlock(ThreadLock *theLock) +{ + pthread_mutex_unlock(theLock); +} + +void ThreadCondInit(ThreadCond *theCondition) +{ + pthread_cond_init(theCondition, NULL); +} + +void ThreadCondDestroy(ThreadCond *theCondition) +{ + pthread_cond_destroy(theCondition); +} + +void ThreadCondWait(ThreadCond *theCondition, ThreadLock *conditionLock) +{ + pthread_cond_wait(theCondition, conditionLock); +} + +void ThreadCondSignal(ThreadCond *theCondition) +{ + pthread_cond_signal(theCondition); +} +#endif diff -Nru desmume-0.9.9/src/filter/videofilter.h desmume-0.9.10/src/filter/videofilter.h --- desmume-0.9.9/src/filter/videofilter.h 2013-05-01 18:48:50.000000000 +0000 +++ desmume-0.9.10/src/filter/videofilter.h 2013-11-28 00:37:26.725149024 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2011 Roger Manuel + Copyright (C) 2011-2012 Roger Manuel Copyright (C) 2013 DeSmuME team This file is free software: you can redistribute it and/or modify @@ -19,11 +19,21 @@ #ifndef _VIDEOFILTER_ #define _VIDEOFILTER_ -#include +#ifdef HOST_WINDOWS + typedef unsigned __int32 uint32_t; + #include + typedef CRITICAL_SECTION ThreadLock; + typedef HANDLE ThreadCond; +#else + #include + #include + typedef pthread_mutex_t ThreadLock; + typedef pthread_cond_t ThreadCond; +#endif + #include #include #include -#include #include "filter.h" #include "../utils/task.h" @@ -63,8 +73,8 @@ VideoFilterTypeID typeID; const char *typeString; VideoFilterFunc filterFunction; - unsigned int scaleMultiply; - unsigned int scaleDivide; + size_t scaleMultiply; + size_t scaleDivide; } VideoFilterAttributes; // Attributes list of known video filters, indexed using VideoFilterTypeID. @@ -148,8 +158,7 @@ class VideoFilter { private: - VideoFilterTypeID _vfTypeID; - std::string _vfTypeString; + VideoFilterAttributes _vfAttributes; SSurface _vfSrcSurface; SSurface _vfDstSurface; @@ -158,36 +167,35 @@ std::vector _vfThread; bool _isFilterRunning; - pthread_mutex_t _mutexSrc; - pthread_mutex_t _mutexDst; - pthread_mutex_t _mutexTypeID; - pthread_mutex_t _mutexTypeString; - pthread_cond_t _condRunning; - - void SetTypeID(VideoFilterTypeID typeID); - void SetTypeString(const char *typeString); - void SetTypeString(std::string typeString); + ThreadLock _lockSrc; + ThreadLock _lockDst; + ThreadLock _lockAttributes; + ThreadCond _condRunning; + + void SetAttributes(const VideoFilterAttributes vfAttr); public: - VideoFilter(unsigned int srcWidth, unsigned int srcHeight, VideoFilterTypeID typeID, unsigned int numberThreads); + VideoFilter(size_t srcWidth, size_t srcHeight, VideoFilterTypeID typeID, size_t threadCount); ~VideoFilter(); - bool SetSourceSize(const unsigned int width, const unsigned int height); + bool SetSourceSize(const size_t width, const size_t height); bool ChangeFilterByID(const VideoFilterTypeID typeID); bool ChangeFilterByAttributes(const VideoFilterAttributes *vfAttr); uint32_t* RunFilter(); - static void RunFilterCustom(const uint32_t *__restrict__ srcBuffer, uint32_t *__restrict__ dstBuffer, const unsigned int srcWidth, const unsigned int srcHeight, const VideoFilterTypeID typeID); + static void RunFilterCustomByID(const uint32_t *__restrict srcBuffer, uint32_t *__restrict dstBuffer, const size_t srcWidth, const size_t srcHeight, const VideoFilterTypeID typeID); + static void RunFilterCustomByAttributes(const uint32_t *__restrict srcBuffer, uint32_t *__restrict dstBuffer, const size_t srcWidth, const size_t srcHeight, const VideoFilterAttributes *vfAttr); static const char* GetTypeStringByID(const VideoFilterTypeID typeID); + VideoFilterAttributes GetAttributes(); VideoFilterTypeID GetTypeID(); const char* GetTypeString(); uint32_t* GetSrcBufferPtr(); uint32_t* GetDstBufferPtr(); - unsigned int GetSrcWidth(); - unsigned int GetSrcHeight(); - unsigned int GetDstWidth(); - unsigned int GetDstHeight(); + size_t GetSrcWidth(); + size_t GetSrcHeight(); + size_t GetDstWidth(); + size_t GetDstHeight(); VideoFilterParamType GetFilterParameterType(VideoFilterParamID paramID); int GetFilterParameteri(VideoFilterParamID paramID); unsigned int GetFilterParameterui(VideoFilterParamID paramID); @@ -199,4 +207,14 @@ static void* RunVideoFilterTask(void *arg); +void ThreadLockInit(ThreadLock *theLock); +void ThreadLockDestroy(ThreadLock *theLock); +void ThreadLockLock(ThreadLock *theLock); +void ThreadLockUnlock(ThreadLock *theLock); + +void ThreadCondInit(ThreadCond *theCondition); +void ThreadCondDestroy(ThreadCond *theCondition); +void ThreadCondWait(ThreadCond *theCondition, ThreadLock *conditionLock); +void ThreadCondSignal(ThreadCond *theCondition); + #endif diff -Nru desmume-0.9.9/src/firmware.cpp desmume-0.9.10/src/firmware.cpp --- desmume-0.9.9/src/firmware.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/firmware.cpp 2013-11-28 00:37:18.801021066 +0000 @@ -17,102 +17,21 @@ #include "firmware.h" #include "NDSSystem.h" +#include "MMU.h" #include "path.h" +#include "encrypt.h" -#define DWNUM(i) ((i) >> 2) +#define DFC_ID_CODE "DeSmuME Firmware User Settings" +#define DFC_ID_SIZE sizeof(DFC_ID_CODE) +#define USER_SETTINGS_SIZE 0x100 +#define WIFI_SETTINGS_SIZE 0x1D5 +#define WIFI_AP_SETTINGS_SIZE 0x300 +#define SETTINGS_SIZE (USER_SETTINGS_SIZE + WIFI_SETTINGS_SIZE + WIFI_AP_SETTINGS_SIZE) +#define DFC_FILE_SIZE (SETTINGS_SIZE + DFC_ID_SIZE) +#define WIFI_SETTINGS_OFF 0x0000002A +#define WIFI_AP_SETTINGS_OFF 0x0003FA00 -bool CFIRMWARE::getKeyBuf() -{ - FILE *file = fopen(CommonSettings.ARM7BIOS, "rb"); - if (!file) return false; - - fseek(file, 0x30, SEEK_SET); - size_t res = fread(keyBuf, 4, 0x412, file); - fclose(file); - return (res == 0x412); -} - -void CFIRMWARE::crypt64BitUp(u32 *ptr) -{ - u32 Y = ptr[0]; - u32 X = ptr[1]; - - for(u32 i = 0x00; i <= 0x0F; i++) - { - u32 Z = (keyBuf[i] ^ X); - X = keyBuf[DWNUM(0x048 + (((Z >> 24) & 0xFF) << 2))]; - X = (keyBuf[DWNUM(0x448 + (((Z >> 16) & 0xFF) << 2))] + X); - X = (keyBuf[DWNUM(0x848 + (((Z >> 8) & 0xFF) << 2))] ^ X); - X = (keyBuf[DWNUM(0xC48 + ((Z & 0xFF) << 2))] + X); - X = (Y ^ X); - Y = Z; - } - - ptr[0] = (X ^ keyBuf[DWNUM(0x40)]); - ptr[1] = (Y ^ keyBuf[DWNUM(0x44)]); -} - -void CFIRMWARE::crypt64BitDown(u32 *ptr) -{ - u32 Y = ptr[0]; - u32 X = ptr[1]; - - for(u32 i = 0x11; i >= 0x02; i--) - { - u32 Z = (keyBuf[i] ^ X); - X = keyBuf[DWNUM(0x048 + (((Z >> 24) & 0xFF) << 2))]; - X = (keyBuf[DWNUM(0x448 + (((Z >> 16) & 0xFF) << 2))] + X); - X = (keyBuf[DWNUM(0x848 + (((Z >> 8) & 0xFF) << 2))] ^ X); - X = (keyBuf[DWNUM(0xC48 + ((Z & 0xFF) << 2))] + X); - X = (Y ^ X); - Y = Z; - } - - ptr[0] = (X ^ keyBuf[DWNUM(0x04)]); - ptr[1] = (Y ^ keyBuf[DWNUM(0x00)]); -} - -#define bswap32(val) (((val & 0x000000FF) << 24) | ((val & 0x0000FF00) << 8) | ((val & 0x00FF0000) >> 8) | ((val & 0xFF000000) >> 24)) -void CFIRMWARE::applyKeycode(u32 modulo) -{ - crypt64BitUp(&keyCode[1]); - crypt64BitUp(&keyCode[0]); - - u32 scratch[2] = {0x00000000, 0x00000000}; - - for(u32 i = 0; i <= 0x44; i += 4) - { - keyBuf[DWNUM(i)] = (keyBuf[DWNUM(i)] ^ bswap32(keyCode[DWNUM(i % modulo)])); - } - - for(u32 i = 0; i <= 0x1040; i += 8) - { - crypt64BitUp(scratch); - keyBuf[DWNUM(i)] = scratch[1]; - keyBuf[DWNUM(i+4)] = scratch[0]; - } -} -#undef bswap32 - -bool CFIRMWARE::initKeycode(u32 idCode, int level, u32 modulo) -{ - if(getKeyBuf() == FALSE) - return FALSE; - - keyCode[0] = idCode; - keyCode[1] = (idCode >> 1); - keyCode[2] = (idCode << 1); - - if(level >= 1) applyKeycode(modulo); - if(level >= 2) applyKeycode(modulo); - - keyCode[1] <<= 1; - keyCode[2] >>= 1; - - if(level >= 3) applyKeycode(modulo); - - return TRUE; -} +static _KEY1 enc(&MMU.ARM7_BIOS[0x0030]); u16 CFIRMWARE::getBootCodeCRC16() { @@ -164,7 +83,7 @@ u16 data = 0; memcpy(curBlock, in, 8); - crypt64BitDown(curBlock); + enc.decrypt(curBlock); blockSize = (curBlock[0] >> 8); if (blockSize == 0) return (0); @@ -181,7 +100,7 @@ if((xIn % 8) == 0) { memcpy(curBlock, in + xIn, 8); - crypt64BitDown(curBlock); + enc.decrypt(curBlock); } for(i = 0; i < 8; i++) @@ -193,14 +112,14 @@ if((xIn % 8) == 0) { memcpy(curBlock, in + xIn, 8); - crypt64BitDown(curBlock); + enc.decrypt(curBlock); } data |= T1ReadByte((u8*)curBlock, (xIn % 8)); xIn++; if((xIn % 8) == 0) { memcpy(curBlock, in + xIn, 8); - crypt64BitDown(curBlock); + enc.decrypt(curBlock); } len = (data >> 12) + 3; @@ -225,7 +144,7 @@ if((xIn % 8) == 0) { memcpy(curBlock, in + xIn, 8); - crypt64BitDown(curBlock); + enc.decrypt(curBlock); } xLen--; @@ -328,11 +247,6 @@ { u32 size = 0; u8 *data = NULL; - u16 shift1 = 0, shift2 = 0, shift3 = 0, shift4 = 0; - u32 part1addr = 0, part2addr = 0, part3addr = 0, part4addr = 0, part5addr = 0; - u32 part1ram = 0, part2ram = 0; - - u32 src = 0; if (CommonSettings.UseExtFirmware == false) return false; @@ -345,20 +259,11 @@ fseek(fp, 0, SEEK_END); size = ftell(fp); fseek(fp, 0, SEEK_SET); - if( (size != 256*1024) && (size != 512*1024) ) - { - fclose(fp); - return false; - } - -#if 1 - if (size == 512*1024) + if( (size != NDS_FW_SIZE_V1) && (size != NDS_FW_SIZE_V2) ) { - INFO("ERROR: 32Mbit (512Kb) firmware not supported\n"); fclose(fp); return false; } -#endif data = new u8 [size]; if (!data) @@ -370,19 +275,67 @@ if (fread(data, 1, size, fp) != size) { delete [] data; + data = NULL; fclose(fp); return false; } memcpy(&header, data, sizeof(header)); - if ((header.fw_identifier[0] != 'M') || - (header.fw_identifier[1] != 'A') || - (header.fw_identifier[2] != 'C')) - { - delete [] data; - fclose(fp); - return false; - } + if ((header.fw_identifier & 0x00FFFFFF) != 0x0043414D) + { + delete [] data; + data = NULL; + fclose(fp); + return false; + } + fclose(fp); + + if (MMU.fw.size != size) // reallocate + mc_alloc(&MMU.fw, size); + + userDataAddr = T1ReadWord(data, 0x20) * 8; + + // fix bad dump of firmware? (wrong DS type) + // fix mario kart touch screen calibration + if ((T1ReadWord(data, 0x1E) != 0xFFFF) && data[0x1D] == 0x63) + { + data[0x1D] = NDS_CONSOLE_TYPE_FAT; + data[0x1E] = 0xFF; + data[0x1F] = 0xFF; + } + + memcpy(MMU.fw.data, data, size); + + delete [] data; + data = NULL; + + // Generate the path for the external firmware config file. + std::string extFilePath = CFIRMWARE::GetExternalFilePath(); + strncpy(MMU.fw.userfile, extFilePath.c_str(), MAX_PATH); + + successLoad = true; + return true; +} + +bool CFIRMWARE::unpack() +{ + u32 src = 0; + u16 shift1 = 0, shift2 = 0, shift3 = 0, shift4 = 0; + u32 part1addr = 0, part2addr = 0, part3addr = 0, part4addr = 0, part5addr = 0; + u32 part1ram = 0, part2ram = 0; + u32 size = MMU.fw.size; + + if (size == 512*1024) + { + INFO("ERROR: 32Mbit (512Kb) firmware not supported\n"); + return false; + } + + u8 *data = new u8 [size]; + if (!data) + return false; + + memcpy(data, MMU.fw.data, size); shift1 = ((header.shift_amounts >> 0) & 0x07); shift2 = ((header.shift_amounts >> 3) & 0x07); @@ -401,15 +354,10 @@ ARM9bootAddr = part1ram; ARM7bootAddr = part2ram; - if(initKeycode(T1ReadLong(data, 0x08), 1, 0xC) == FALSE) - { - delete [] data; - fclose(fp); - return false; - } + enc.init(header.fw_identifier, 1, 0xC); #if 0 - crypt64BitDown((u32*)&data[0x18]); + enc.applyKeycode((u32*)&data[0x18]); #else // fix touch coords data[0x18] = 0x00; @@ -423,18 +371,12 @@ data[0x1F] = 0x00; #endif - if(initKeycode(T1ReadLong(data, 0x08), 2, 0xC) == FALSE) - { - delete [] data; - fclose(fp); - return false; - } + enc.init(header.fw_identifier, 2, 0xC); size9 = decrypt(data + part1addr, tmp_data9); if (!tmp_data9) { - delete [] data; - fclose(fp); + delete [] data; data = NULL; return false; } @@ -442,8 +384,7 @@ if (!tmp_data7) { delete [] tmp_data9; - delete [] data; - fclose(fp); + delete [] data; data = NULL; return false; } @@ -454,8 +395,7 @@ INFO("Firmware: ERROR: the boot code CRC16 (0x%04X) doesn't match the value in the firmware header (0x%04X)", crc16_mine, header.part12_boot_crc16); delete [] tmp_data9; delete [] tmp_data7; - delete [] data; - fclose(fp); + delete [] data; data = NULL; return false; } @@ -524,7 +464,6 @@ if (!tmp_data9) { delete [] data; - fclose(fp); return false; } @@ -533,7 +472,6 @@ { delete [] tmp_data9; delete [] data; - fclose(fp); return false; }; // Copy firmware boot codes to their respective locations @@ -564,52 +502,98 @@ INFO(" * ARM7 unpacked size: 0x%08X (%i) bytes\n", size7, size7); } - // Generate the path for the external firmware config file. - std::string extFilePath = CFIRMWARE::GetExternalFilePath(); - strncpy(MMU.fw.userfile, extFilePath.c_str(), MAX_PATH); + memcpy(MMU.fw.data, data, size); + MMU.fw.fp = NULL; - fclose(fp); - fp = fopen(MMU.fw.userfile, "rb"); + delete [] data; data = NULL; + return true; +} + +bool CFIRMWARE::loadSettings() +{ + if (!CommonSettings.UseExtFirmware) return false; + if (!CommonSettings.UseExtFirmwareSettings) return false; + + FILE *fp = fopen(MMU.fw.userfile, "rb"); if (fp) { fseek(fp, 0, SEEK_END); - if (ftell(fp) == (0x100 + 0x1D6 + 0x300)) + if (ftell(fp) == DFC_FILE_SIZE) { fseek(fp, 0, SEEK_SET); - char buf[0x301]; - memset(buf, 0, sizeof(buf)); - if (fread(buf, 1, 0x100, fp) == 0x100) + u8 *usr = new u8[SETTINGS_SIZE]; + if (usr) { - printf("- loaded firmware config from %s:\n", MMU.fw.userfile); - memcpy(&data[0x3FE00], &buf[0], 0x100); - memcpy(&data[0x3FF00], &buf[0], 0x100); - printf(" * User settings\n"); - memset(buf, 0, sizeof(buf)); - if (fread(buf, 1, 0x1D6, fp) == 0x1D6) + if (fread(usr, 1, DFC_ID_SIZE, fp) == DFC_ID_SIZE) { - memcpy(&data[0x002A], &buf[0], 0x1D6); - printf(" * WiFi settings\n"); - - memset(buf, 0, sizeof(buf)); - if (fread(buf, 1, 0x300, fp) == 0x300) + if (memcmp(usr, DFC_ID_CODE, DFC_ID_SIZE) == 0) { - memcpy(&data[0x3FA00], &buf[0], 0x300); - printf(" * WiFi AP settings\n"); + if (fread(usr, 1, SETTINGS_SIZE, fp) == SETTINGS_SIZE) + { + memcpy(&MMU.fw.data[userDataAddr], usr, USER_SETTINGS_SIZE); + memcpy(&MMU.fw.data[userDataAddr + 0x100], usr, USER_SETTINGS_SIZE); + memcpy(&MMU.fw.data[WIFI_SETTINGS_OFF], usr + USER_SETTINGS_SIZE, WIFI_SETTINGS_SIZE); + memcpy(&MMU.fw.data[WIFI_AP_SETTINGS_OFF], usr + USER_SETTINGS_SIZE + WIFI_SETTINGS_SIZE, WIFI_AP_SETTINGS_SIZE); + printf("Loaded user settings from %s\n", MMU.fw.userfile); + } } } + delete [] usr; + usr = NULL; } } else - printf("- failed loading firmware config from %s (wrong file size)\n", MMU.fw.userfile); + printf("Failed loading firmware config from %s (wrong file size)\n", MMU.fw.userfile); + fclose(fp); } - printf("\n"); - // TODO: add 512Kb support - memcpy(MMU.fw.data, data, 256*1024); - MMU.fw.fp = NULL; + return false; +} + +bool CFIRMWARE::saveSettings() +{ + if (!CommonSettings.UseExtFirmware) return false; + if (!CommonSettings.UseExtFirmwareSettings) return false; + + u8 *data = &MMU.fw.data[userDataAddr]; + u8 counter0 = data[0x070]; + u8 counter1 = data[0x170]; + + if (counter1 == ((counter0 + 1) & 0x7F)) + { + // copy User Settings 1 to User Settings 0 area + memcpy(data, data + 0x100, 0x100); + } + else + { + // copy User Settings 0 to User Settings 1 area + memcpy(data + 0x100, data, 0x100); + } + + printf("Firmware: saving config"); + FILE *fp = fopen(MMU.fw.userfile, "wb"); + if (fp) + { + u8 *usr = new u8[DFC_FILE_SIZE]; + if (usr) + { + memcpy(usr, DFC_ID_CODE, DFC_ID_SIZE); + memcpy(usr + DFC_ID_SIZE, data, USER_SETTINGS_SIZE); + memcpy(usr + DFC_ID_SIZE + USER_SETTINGS_SIZE, &MMU.fw.data[WIFI_SETTINGS_OFF], WIFI_SETTINGS_SIZE); + memcpy(usr + DFC_ID_SIZE + USER_SETTINGS_SIZE + WIFI_SETTINGS_SIZE, &MMU.fw.data[WIFI_AP_SETTINGS_OFF], WIFI_AP_SETTINGS_SIZE); + if (fwrite(usr, 1, DFC_FILE_SIZE, fp) == DFC_FILE_SIZE) + printf(" - done\n"); + else + printf(" - failed\n"); + + delete [] usr; + } + fclose(fp); + } + else + printf(" - failed\n"); - delete [] data; data = NULL; return true; } @@ -617,12 +601,50 @@ { std::string fwPath = CommonSettings.Firmware; std::string fwFileName = Path::GetFileNameFromPathWithoutExt(fwPath); - std::string configPath = path.pathToBattery; - std::string finalPath = configPath + DIRECTORY_DELIMITER_CHAR + fwFileName + FILE_EXT_DELIMITER_CHAR + FW_CONFIG_FILE_EXT; + char configPath[MAX_PATH] = {0}; + path.getpath(path.BATTERY, configPath); + if (configPath[strlen(configPath)-1] == DIRECTORY_DELIMITER_CHAR) + configPath[strlen(configPath)-1] = 0; + std::string finalPath = std::string(configPath) + DIRECTORY_DELIMITER_CHAR + fwFileName + FILE_EXT_DELIMITER_CHAR + FW_CONFIG_FILE_EXT; return finalPath; } +void *CFIRMWARE::getTouchCalibrate() +{ + static TSCalInfo cal = {0}; + + if (!successLoad || !CommonSettings.UseExtFirmware || !successLoad) + { + cal.adc.x1 = _MMU_read16(0x027FFC80 + 0x58) & 0x1FFF; + cal.adc.y1 = _MMU_read16(0x027FFC80 + 0x5A) & 0x1FFF; + cal.scr.x1 = _MMU_read08(0x027FFC80 + 0x5C); + cal.scr.y1 = _MMU_read08(0x027FFC80 + 0x5D); + cal.adc.x2 = _MMU_read16(0x027FFC80 + 0x5E) & 0x1FFF; + cal.adc.y2 = _MMU_read16(0x027FFC80 + 0x60) & 0x1FFF; + cal.scr.x2 = _MMU_read08(0x027FFC80 + 0x62); + cal.scr.y2 = _MMU_read08(0x027FFC80 + 0x63); + } + else + { + cal.adc.x1 = T1ReadWord(MMU.fw.data, userDataAddr + 0x58) & 0x1FFF; + cal.adc.y1 = T1ReadWord(MMU.fw.data, userDataAddr + 0x5A) & 0x1FFF; + cal.scr.x1 = T1ReadByte(MMU.fw.data, userDataAddr + 0x5C); + cal.scr.y1 = T1ReadByte(MMU.fw.data, userDataAddr + 0x5D); + cal.adc.x2 = T1ReadWord(MMU.fw.data, userDataAddr + 0x5E) & 0x1FFF; + cal.adc.y2 = T1ReadWord(MMU.fw.data, userDataAddr + 0x60) & 0x1FFF; + cal.scr.x2 = T1ReadByte(MMU.fw.data, userDataAddr + 0x62); + cal.scr.y2 = T1ReadByte(MMU.fw.data, userDataAddr + 0x63); + } + + cal.adc.width = (cal.adc.x2 - cal.adc.x1); + cal.adc.height = (cal.adc.y2 - cal.adc.y1); + cal.scr.width = (cal.scr.x2 - cal.scr.x1); + cal.scr.height = (cal.scr.y2 - cal.scr.y1); + + return (void*)&cal; +} + //===================================================================================================== static u32 calc_CRC16( u32 start, const u8 *data, int count) { @@ -802,10 +824,10 @@ MMU.fw.data[0x8 + 3] = 'P'; // DS type - if ( user_settings->ds_type == NDS_CONSOLE_TYPE_LITE) - MMU.fw.data[0x1d] = 0x20; + if ( user_settings->ds_type == NDS_CONSOLE_TYPE_DSI) + MMU.fw.data[0x1d] = 0xFF; else - MMU.fw.data[0x1d] = 0xff; + MMU.fw.data[0x1d] = user_settings->ds_type; //User Settings offset 0x3fe00 / 8 MMU.fw.data[0x20] = 0xc0; @@ -872,8 +894,8 @@ //Wifi settings CRC16 (*(u16*)(MMU.fw.data + 0x2A)) = calc_CRC16(0, (MMU.fw.data + 0x2C), 0x138); - if (&CommonSettings.InternalFirmConf != user_settings) - memcpy(&CommonSettings.InternalFirmConf, user_settings, sizeof(struct NDS_fw_config_data)); + if (&CommonSettings.fw_config != user_settings) + memcpy(&CommonSettings.fw_config, user_settings, sizeof(struct NDS_fw_config_data)); return TRUE ; } @@ -937,3 +959,190 @@ memcpy((MMU.fw.data + 0x36), FW_Mac, sizeof(FW_Mac)); (*(u16*)(MMU.fw.data + 0x2A)) = calc_CRC16(0, (MMU.fw.data + 0x2C), 0x138); } + +//========================= +//- firmware SPI chip interface - +//the original intention was for this code to have similarity to the AUXSPI backup memory devices. +//however, that got overgrown, and this stuff stayed pretty simple. +//perhaps it can be re-defined in terms of a simpler AUXSPI device after the AUXSPI devices are re-designed. + +#define FW_CMD_READ 0x03 +#define FW_CMD_WRITEDISABLE 0x04 +#define FW_CMD_READSTATUS 0x05 +#define FW_CMD_WRITEENABLE 0x06 +#define FW_CMD_PAGEWRITE 0x0A +#define FW_CMD_READ_ID 0x9F + +void fw_reset_com(fw_memory_chip *mc) +{ + if(mc->com == FW_CMD_PAGEWRITE) + { + if (mc->fp) + { + fseek(mc->fp, 0, SEEK_SET); + fwrite(mc->data, mc->size, 1, mc->fp); + } + + if (mc->isFirmware && CommonSettings.UseExtFirmware && CommonSettings.UseExtFirmwareSettings && firmware) + { + firmware->saveSettings(); + } + mc->write_enable = FALSE; + } + + mc->com = 0; +} + +u8 fw_transfer(fw_memory_chip *mc, u8 data) +{ + if(mc->com == FW_CMD_READ || mc->com == FW_CMD_PAGEWRITE) /* check if we are in a command that needs 3 bytes address */ + { + if(mc->addr_shift > 0) /* if we got a complete address */ + { + mc->addr_shift--; + mc->addr |= data << (mc->addr_shift * 8); /* argument is a byte of address */ + } + else /* if we have received 3 bytes of address, proceed command */ + { + switch(mc->com) + { + case FW_CMD_READ: + if(mc->addr < mc->size) /* check if we can read */ + { + data = mc->data[mc->addr]; /* return byte */ + mc->addr++; /* then increment address */ + } + break; + + case FW_CMD_PAGEWRITE: + if(mc->addr < mc->size) + { + mc->data[mc->addr] = data; /* write byte */ + mc->addr++; + } + break; + } + + } + } + else if(mc->com == FW_CMD_READ_ID) + { + switch(mc->addr) + { + //here is an ID string measured from an old ds fat: 62 16 00 (0x62=sanyo) + //but we chose to use an ST from martin's ds fat string so programs might have a clue as to the firmware size: + //20 40 12 + case 0: + data = 0x20; + mc->addr=1; + break; + case 1: + data = 0x40; //according to gbatek this is the device ID for the flash on someone's ds fat + mc->addr=2; + break; + case 2: + data = 0x12; + mc->addr = 0; + break; + } + } + else if(mc->com == FW_CMD_READSTATUS) + { + return (mc->write_enable ? 0x02 : 0x00); + } + else //finally, check if it's a new command + { + switch(data) + { + case 0: break; //nothing + + case FW_CMD_READ_ID: + mc->addr = 0; + mc->com = FW_CMD_READ_ID; + break; + + case FW_CMD_READ: //read command + mc->addr = 0; + mc->addr_shift = 3; + mc->com = FW_CMD_READ; + break; + + case FW_CMD_WRITEENABLE: //enable writing + if(mc->writeable_buffer) { mc->write_enable = TRUE; } + break; + + case FW_CMD_WRITEDISABLE: //disable writing + mc->write_enable = FALSE; + break; + + case FW_CMD_PAGEWRITE: //write command + if(mc->write_enable) + { + mc->addr = 0; + mc->addr_shift = 3; + mc->com = FW_CMD_PAGEWRITE; + } + else { data = 0; } + break; + + case FW_CMD_READSTATUS: //status register command + mc->com = FW_CMD_READSTATUS; + break; + + default: + printf("Unhandled FW command: %02X\n", data); + break; + } + } + + return data; +} + + +void mc_init(fw_memory_chip *mc, int type) +{ + mc->com = 0; + mc->addr = 0; + mc->addr_shift = 0; + mc->data = NULL; + mc->size = 0; + mc->write_enable = FALSE; + mc->writeable_buffer = FALSE; + mc->type = type; + + switch(mc->type) + { + case MC_TYPE_EEPROM1: + mc->addr_size = 1; + break; + case MC_TYPE_EEPROM2: + case MC_TYPE_FRAM: + mc->addr_size = 2; + break; + case MC_TYPE_FLASH: + mc->addr_size = 3; + break; + default: break; + } +} + +u8 *mc_alloc(fw_memory_chip *mc, u32 size) +{ + u8 *buffer = NULL; + buffer = new u8[size]; + if(!buffer) { return NULL; } + memset(buffer,0,size); + + if (mc->data) delete [] mc->data; + mc->data = buffer; + mc->size = size; + mc->writeable_buffer = TRUE; + + return buffer; +} + +void mc_free(fw_memory_chip *mc) +{ + if(mc->data) delete[] mc->data; + mc_init(mc, 0); +} diff -Nru desmume-0.9.9/src/firmware.h desmume-0.9.10/src/firmware.h --- desmume-0.9.9/src/firmware.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/firmware.h 2013-11-28 00:37:26.721148959 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2009-2011 DeSmuME Team + Copyright (C) 2009-2013 DeSmuME Team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,9 +19,13 @@ #define _FIRMWARE_H_ #include "common.h" -// the count of bytes copied from the firmware into memory +#define NDS_FW_SIZE_V1 (256 * 1024) /* size of fw memory on nds v1 */ +#define NDS_FW_SIZE_V2 (512 * 1024) /* size of fw memory on nds v2 */ + +// the count of bytes (user settings) copied from the firmware into memory (for easy access) during the firmware boot process #define NDS_FW_USER_SETTINGS_MEM_BYTE_COUNT 0x70 +//extension of the firmware user settings file #define FW_CONFIG_FILE_EXT "dfc" class CFIRMWARE @@ -30,33 +34,35 @@ u8 *tmp_data9; u8 *tmp_data7; u32 size9, size7; + u32 userDataAddr; - u32 keyBuf[0x412]; - u32 keyCode[3]; - - bool getKeyBuf(); - void crypt64BitUp(u32 *ptr); - void crypt64BitDown(u32 *ptr); - void applyKeycode(u32 modulo); - bool initKeycode(u32 idCode, int level, u32 modulo); u16 getBootCodeCRC16(); u32 decrypt(const u8 *in, u8* &out); u32 decompress(const u8 *in, u8* &out); + bool successLoad; + public: - CFIRMWARE(): size9(0), size7(0), ARM9bootAddr(0), ARM7bootAddr(0), patched(0) {}; + CFIRMWARE(): size9(0), size7(0), ARM9bootAddr(0), ARM7bootAddr(0), patched(0), userDataAddr(0x3FE00), successLoad(false) {}; bool load(); + bool unpack(); + bool loadSettings(); + bool saveSettings(); static std::string GetExternalFilePath(); + u32 getID() { return header.fw_identifier; } + bool loaded() { return successLoad; } + void *getTouchCalibrate(); + struct HEADER { u16 part3_rom_gui9_addr; // 000h u16 part4_rom_wifi7_addr; // 002h u16 part34_gui_wifi_crc16; // 004h u16 part12_boot_crc16; // 006h - u8 fw_identifier[4]; // 008h + u32 fw_identifier; // 008h u16 part1_rom_boot9_addr; // 00Ch u16 part1_ram_boot9_addr; // 00Eh u16 part2_rom_boot7_addr; // 010h @@ -84,5 +90,35 @@ void NDS_FillDefaultFirmwareConfigData( struct NDS_fw_config_data *fw_config); void NDS_PatchFirmwareMAC(); +struct fw_memory_chip +{ + u8 com; //persistent command actually handled + u32 addr; //current address for reading/writing + u8 addr_shift; //shift for address (since addresses are transfered by 3 bytes units) + u8 addr_size; //size of addr when writing/reading + + BOOL write_enable; //is write enabled ? + + u8 *data; //memory data + u32 size; //memory size + BOOL writeable_buffer; //is "data" writeable ? + int type; //type of Memory + char *filename; + FILE *fp; + + // needs only for firmware + bool isFirmware; + char userfile[MAX_PATH]; +}; + + +void fw_reset_com(fw_memory_chip *mc); +u8 fw_transfer(fw_memory_chip *mc, u8 data); +void mc_init(fw_memory_chip *mc, int type); /* reset and init values for memory struct */ +u8 *mc_alloc(fw_memory_chip *mc, u32 size); /* alloc mc memory */ +void mc_realloc(fw_memory_chip *mc, int type, u32 size); /* realloc mc memory */ +void mc_load_file(fw_memory_chip *mc, const char* filename); /* load save file and setup fp */ +void mc_free(fw_memory_chip *mc); /* delete mc memory */ + #endif diff -Nru desmume-0.9.9/src/gdbstub/Makefile.in desmume-0.9.10/src/gdbstub/Makefile.in --- desmume-0.9.9/src/gdbstub/Makefile.in 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/src/gdbstub/Makefile.in 2013-11-28 00:43:26.330901119 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,12 +78,11 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/src/desmume.mk +DIST_COMMON = $(top_srcdir)/src/desmume.mk $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp subdir = src/gdbstub ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -65,23 +91,55 @@ LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = libgdbstub_a_AR = $(AR) $(ARFLAGS) libgdbstub_a_LIBADD = am_libgdbstub_a_OBJECTS = gdbstub.$(OBJEXT) libgdbstub_a_OBJECTS = $(am_libgdbstub_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgdbstub_a_SOURCES) DIST_SOURCES = $(libgdbstub_a_SOURCES) am__can_run_installinfo = \ @@ -89,6 +147,23 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -125,6 +200,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -198,16 +274,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -311,10 +377,11 @@ clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + libgdbstub.a: $(libgdbstub_a_OBJECTS) $(libgdbstub_a_DEPENDENCIES) $(EXTRA_libgdbstub_a_DEPENDENCIES) - -rm -f libgdbstub.a - $(libgdbstub_a_AR) libgdbstub.a $(libgdbstub_a_OBJECTS) $(libgdbstub_a_LIBADD) - $(RANLIB) libgdbstub.a + $(AM_V_at)-rm -f libgdbstub.a + $(AM_V_AR)$(libgdbstub_a_AR) libgdbstub.a $(libgdbstub_a_OBJECTS) $(libgdbstub_a_LIBADD) + $(AM_V_at)$(RANLIB) libgdbstub.a mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -325,39 +392,30 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdbstub.Po@am__quote@ .cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -369,15 +427,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -386,6 +440,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -525,17 +594,17 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am diff -Nru desmume-0.9.9/src/gfx3d.cpp desmume-0.9.10/src/gfx3d.cpp --- desmume-0.9.9/src/gfx3d.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/gfx3d.cpp 2013-11-28 00:37:27.369159422 +0000 @@ -1480,7 +1480,7 @@ float zd = float16table[(uz+ud)&0xFFFF]; //eight corners of cube - VERT verts[8]; + CACHE_ALIGN VERT verts[8]; verts[0].set_coord(x,y,z,1); verts[1].set_coord(xw,y,z,1); verts[2].set_coord(xw,yh,z,1); @@ -1529,11 +1529,17 @@ ////--------------------- //transform all coords - for(int i=0;i<8;i++) { + for(int i=0;i<8;i++) + { + //this cant work. its left as a reminder that we could (and probably should) do the boxtest in all fixed point values //MatrixMultVec4x4_M2(mtxCurrent[0], verts[i].coord); + //but change it all to floating point and do it that way instead CACHE_ALIGN float temp1[16] = {mtxCurrent[1][0]/4096.0f,mtxCurrent[1][1]/4096.0f,mtxCurrent[1][2]/4096.0f,mtxCurrent[1][3]/4096.0f,mtxCurrent[1][4]/4096.0f,mtxCurrent[1][5]/4096.0f,mtxCurrent[1][6]/4096.0f,mtxCurrent[1][7]/4096.0f,mtxCurrent[1][8]/4096.0f,mtxCurrent[1][9]/4096.0f,mtxCurrent[1][10]/4096.0f,mtxCurrent[1][11]/4096.0f,mtxCurrent[1][12]/4096.0f,mtxCurrent[1][13]/4096.0f,mtxCurrent[1][14]/4096.0f,mtxCurrent[1][15]/4096.0f}; CACHE_ALIGN float temp0[16] = {mtxCurrent[0][0]/4096.0f,mtxCurrent[0][1]/4096.0f,mtxCurrent[0][2]/4096.0f,mtxCurrent[0][3]/4096.0f,mtxCurrent[0][4]/4096.0f,mtxCurrent[0][5]/4096.0f,mtxCurrent[0][6]/4096.0f,mtxCurrent[0][7]/4096.0f,mtxCurrent[0][8]/4096.0f,mtxCurrent[0][9]/4096.0f,mtxCurrent[0][10]/4096.0f,mtxCurrent[0][11]/4096.0f,mtxCurrent[0][12]/4096.0f,mtxCurrent[0][13]/4096.0f,mtxCurrent[0][14]/4096.0f,mtxCurrent[0][15]/4096.0f}; + + DS_ALIGN(16) VERT_POS4f vert = { verts[i].x, verts[i].y, verts[i].z, verts[i].w }; + _NOSSE_MatrixMultVec4x4(temp1,verts[i].coord); _NOSSE_MatrixMultVec4x4(temp0,verts[i].coord); } diff -Nru desmume-0.9.9/src/gfx3d.h desmume-0.9.10/src/gfx3d.h --- desmume-0.9.9/src/gfx3d.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/gfx3d.h 2013-11-28 00:37:26.717148894 +0000 @@ -520,19 +520,43 @@ int count; }; -struct VERT { +//just a vert with a 4 float position +struct VERT_POS4f +{ union { float coord[4]; struct { float x,y,z,w; }; + struct { + float x,y,z,w; + } position; }; + void set_coord(float x, float y, float z, float w) + { + this->x = x; + this->y = y; + this->z = z; + this->w = w; + } +}; + +//dont use SSE optimized matrix instructions in here, things might not be aligned +//we havent padded this because the sheer bulk of data leaves things running faster without the extra bloat +struct VERT { + // Align to 16 for SSE instructions to work + union { + float coord[4]; + struct { + float x,y,z,w; + }; + } CACHE_ALIGN; union { float texcoord[2]; struct { float u,v; }; - }; + } CACHE_ALIGN; void set_coord(float x, float y, float z, float w) { this->x = x; this->y = y; @@ -545,8 +569,10 @@ z = coords[2]; w = coords[3]; } - u8 color[3]; float fcolor[3]; + u8 color[3]; + + void color_to_float() { fcolor[0] = color[0]; fcolor[1] = color[1]; diff -Nru desmume-0.9.9/src/GPU.cpp desmume-0.9.10/src/GPU.cpp --- desmume-0.9.9/src/GPU.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/GPU.cpp 2013-11-28 00:37:18.797021001 +0000 @@ -2,7 +2,7 @@ Copyright (C) 2006 yopyop Copyright (C) 2006-2007 Theo Berkau Copyright (C) 2007 shash - Copyright (C) 2008-2012 DeSmuME team + Copyright (C) 2008-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -660,47 +660,65 @@ template static FORCEINLINE void _master_setFinalOBJColor(GPU *gpu, u8 *dst, u16 color, u8 alpha, u8 type, u16 x) { - bool windowDraw = true, windowEffect = true; + const bool isObjTranslucentType = type == GPU_OBJ_MODE_Transparent || type == GPU_OBJ_MODE_Bitmap; + + bool windowDraw = true; + bool windowEffectSatisfied = true; if(WINDOW) { - gpu->renderline_checkWindows(x, windowDraw, windowEffect); + gpu->renderline_checkWindows(x, windowDraw, windowEffectSatisfied); if(!windowDraw) return; } - const bool sourceEffectSelected = gpu->blend1; + //if the window effect is satisfied, then we can do color effects to modify the color + if(windowEffectSatisfied) + { + const bool firstTargetSatisfied = gpu->blend1; + const int bg_under = gpu->bgPixels[x]; + const bool secondTargetSatisfied = (bg_under != 4) && gpu->blend2[bg_under]; + BlendFunc selectedFunc = NoBlend; - //note that the fadein and fadeout is done here before blending, - //so that a fade and blending can be applied at the same time (actually, I don't think that is legal..) - bool forceBlendingForNormal = false; - if(windowEffect && sourceEffectSelected) - switch(FUNC) - { - //zero 13-jun-2010 : if(allowBlend) was removed from these; - //it should be possible to increase/decrease and also blend - //(the effect would be increase, but the obj properties permit blending and the target layers are configured correctly) - case Increase: color = gpu->currentFadeInColors[color&0x7FFF]; break; - case Decrease: color = gpu->currentFadeOutColors[color&0x7FFF]; break; + int eva = gpu->BLDALPHA_EVA, evb = gpu->BLDALPHA_EVB; - //only when blend color effect is selected, ordinarily opaque sprites are blended with the color effect params - case Blend: forceBlendingForNormal = true; break; - case NoBlend: break; + //if normal BLDCNT layer target conditions are met, then we can use the BLDCNT-specified color effect + if(FUNC == Blend) + { + //blending requires first and second target screens to be satisfied + if(firstTargetSatisfied && secondTargetSatisfied) selectedFunc = FUNC; + } + else + { + //brightness up and down requires only the first target screen to be satisfied + if(firstTargetSatisfied) selectedFunc = FUNC; + } + + //translucent-capable OBJ are forcing the function to blend when the second target is satisfied + if(isObjTranslucentType && secondTargetSatisfied) + { + selectedFunc = Blend; + + //obj without fine-grained alpha are using EVA/EVB for blending. this is signified by receiving 255 in the alpha + //it's tested by the spriteblend demo and the glory of heracles title screen + if(alpha != 255) + { + eva = alpha; + evb = 16 - alpha; + } } - //this inspects the layer beneath the sprite to see if the current blend flags make it a candidate for blending - const int bg_under = gpu->bgPixels[x]; - const bool allowBlend = (bg_under != 4) && gpu->blend2[bg_under]; - - if(allowBlend) - { - u16 backColor = HostReadWord(dst,x<<1); - //this hasn't been tested: this blending occurs without regard to the color effect, - //but rather purely from the sprite's alpha - if(type == GPU_OBJ_MODE_Bitmap) - color = _blend(color,backColor,&gpuBlendTable555[alpha+1][15-alpha]); - else if(type == GPU_OBJ_MODE_Transparent || forceBlendingForNormal) - color = gpu->blend(color,backColor); + + switch(selectedFunc) + { + case NoBlend: break; + case Increase: color = gpu->currentFadeInColors[color&0x7FFF]; break; + case Decrease: color = gpu->currentFadeOutColors[color&0x7FFF]; break; + case Blend: + u16 backColor = HostReadWord(dst,x<<1); + color = _blend(color,backColor,&gpuBlendTable555[eva][evb]); + break; + } } HostWriteWord(dst, x<<1, (color | 0x8000)); @@ -1332,11 +1350,11 @@ u16* src = (u16*)MMU_gpu_map(srcadr+(x<<1)); color = LE_TO_LOCAL_16(*src); - // alpha bit = invisible + //a cleared alpha bit suppresses the pixel from processing entirely; it doesnt exist if ((color&0x8000)&&(priosprNum[sprX] = spriteNum; @@ -1355,13 +1373,13 @@ u32 adr = srcadr + (x&0x7) + ((x&0xFFF8)<<3); u8* src = (u8 *)MMU_gpu_map(adr); palette_entry = *src; - color = LE_TO_LOCAL_16(pal[palette_entry]); - // palette entry = 0 means backdrop + //a zero value suppresses the pixel from processing entirely; it doesnt exist if ((palette_entry>0)&&(priosprNum[sprX] = spriteNum; @@ -1385,13 +1403,13 @@ if (x & 1) palette_entry = palette >> 4; else palette_entry = palette & 0xF; - color = LE_TO_LOCAL_16(pal[palette_entry]); - // palette entry = 0 means backdrop + //a zero value suppresses the pixel from processing entirely; it doesnt exist if ((palette_entry>0)&&(prioMode; prioTab[sprX] = prio; } @@ -1749,7 +1767,7 @@ else { HostWriteWord(dst, (sprX<<1), LE_TO_LOCAL_16(HostReadWord(pal, colour << 1))); - dst_alpha[sprX] = 16; + dst_alpha[sprX] = -1; typeTab[sprX] = spriteInfo->Mode; prioTab[sprX] = prio; } @@ -1869,6 +1887,8 @@ { GPU_Reset(MainScreen.gpu, 0); GPU_Reset(SubScreen.gpu, 1); + MainScreen.offset = 0; + SubScreen.offset = 192; memset(GPU_screen, 0, sizeof(GPU_screen)); for(int i = 0; i < (256*192*2); i++) diff -Nru desmume-0.9.9/src/GPU_osd.cpp desmume-0.9.10/src/GPU_osd.cpp --- desmume-0.9.9/src/GPU_osd.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/GPU_osd.cpp 2013-11-28 00:36:53.008604446 +0000 @@ -552,7 +552,7 @@ drawPad(Hud.GraphicalInputDisplay.x, Hud.GraphicalInputDisplay.y, 2.5); } - #if defined(WIN32) && !defined(WXPORT) + #if defined(WIN32) if (CommonSettings.hud.ShowMicrophone) { osd->addFixed(Hud.Microphone.x, Hud.Microphone.y, "%03d [%07d]",MicDisplay, Hud.cpuloopIterationCount); diff -Nru desmume-0.9.9/src/gtk/desmume.cpp desmume-0.9.10/src/gtk/desmume.cpp --- desmume-0.9.9/src/gtk/desmume.cpp 2013-05-01 18:40:27.000000000 +0000 +++ desmume-0.9.10/src/gtk/desmume.cpp 2013-11-28 00:36:53.008604446 +0000 @@ -75,16 +75,6 @@ void desmume_cycle( void) { - u16 keypad; - - /* Joystick events */ - /* Retrieve old value: can use joysticks w/ another device (from our side) */ - keypad = get_keypad(); - /* Look for queued events */ - process_joystick_events( &keypad); - /* Update keypad value */ - update_keypad(keypad); - FCEUMOV_AddInputState(); NDS_exec(); SPU_Emulate_user(); diff -Nru desmume-0.9.9/src/gtk/doc/Makefile.in desmume-0.9.10/src/gtk/doc/Makefile.in --- desmume-0.9.9/src/gtk/doc/Makefile.in 2013-05-01 21:30:08.000000000 +0000 +++ desmume-0.9.10/src/gtk/doc/Makefile.in 2013-11-28 00:43:26.566904847 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,16 +78,27 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/gtk/doc -DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -99,6 +137,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(dist_man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -133,6 +172,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -206,16 +246,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -353,27 +383,14 @@ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -510,16 +527,17 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man1 install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ - uninstall-am uninstall-man uninstall-man1 +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-man \ + uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/src/gtk/glx_3Demu.cpp desmume-0.9.10/src/gtk/glx_3Demu.cpp --- desmume-0.9.9/src/gtk/glx_3Demu.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/gtk/glx_3Demu.cpp 2013-11-28 00:36:53.712615822 +0000 @@ -0,0 +1,133 @@ +/* + Copyright (C) 2013 The Lemon Man + + This file is part of DeSmuME + + DeSmuME is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DeSmuME is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DeSmuME; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifdef HAVE_GL_GLX +#include +#include +#include +#include "../OGLRender.h" + +static bool glx_beginOpenGL(void) { return 1; } +static void glx_endOpenGL(void) { } +static bool glx_init(void) { return true; } + +static GLXContext ctx; +static GLXPbuffer pbuf; + +void deinit_glx_3Demu(void) +{ + Display *dpy = glXGetCurrentDisplay(); + + if (dpy) + { + glXDestroyPbuffer(dpy, pbuf); + glXDestroyContext(dpy, ctx); + + XCloseDisplay(dpy); + + return true; + } + + return false; +} + +int init_glx_3Demu(void) +{ + Display *dpy = XOpenDisplay(NULL); + XVisualInfo *vis; + GLXFBConfig *cfg; + int maj, min; + + if (!dpy) + return false; + + // Check if GLX is present + if (!glXQueryVersion(dpy, &maj, &min)) + return false; + + // We need GLX 1.3 at least + if (maj < 1 || (maj == 1 && min < 3)) + return false; + + const int vis_attr[] = { + GLX_RGBA, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + GLX_ALPHA_SIZE, 8, + GLX_DEPTH_SIZE, 24, + GLX_STENCIL_SIZE, 8, + GLX_DOUBLEBUFFER, + None + }; + vis = glXChooseVisual(dpy, DefaultScreen(dpy), (int *)&vis_attr); + + if (!vis) + return false; + + const int fb_attr[] = { + GLX_RENDER_TYPE, GLX_RGBA_BIT, + GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT, + GLX_X_VISUAL_TYPE, GLX_TRUE_COLOR, + GLX_DOUBLEBUFFER, true, + GLX_X_RENDERABLE, true, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + GLX_ALPHA_SIZE, 8, + GLX_DEPTH_SIZE, 24, + GLX_STENCIL_SIZE, 8, + None + }; + int configs; + cfg = glXChooseFBConfig(dpy, DefaultScreen(dpy), (int *)&fb_attr, &configs); + + if (!cfg) + return false; + + const int pbuf_attr[] = { + GLX_PBUFFER_WIDTH, 256, + //GLX_PBUFFER_HEIGHT, 192, // Use a square size to prevent possible incompatibilities + GLX_PBUFFER_HEIGHT, 256, + None + }; + // The first should match exactly, otherwise is the least wrong one + pbuf = glXCreatePbuffer(dpy, cfg[0], (int *)&pbuf_attr); + + XFree(cfg); + + ctx = glXCreateContext(dpy, vis, NULL, true); + + if (!ctx) + return false; + + if (!glXMakeContextCurrent(dpy, pbuf, pbuf, ctx)) + return false; + + printf("OGL/GLX Renderer has finished the initialization.\n"); + + oglrender_init = glx_init; + oglrender_beginOpenGL = glx_beginOpenGL; + oglrender_endOpenGL = glx_endOpenGL; + + return true; +} + +#endif // HAVE_GLX diff -Nru desmume-0.9.9/src/gtk/glx_3Demu.h desmume-0.9.10/src/gtk/glx_3Demu.h --- desmume-0.9.9/src/gtk/glx_3Demu.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/gtk/glx_3Demu.h 2013-11-28 00:36:53.716615886 +0000 @@ -0,0 +1,24 @@ +/* + Copyright (C) 2013 The Lemon Man + + This file is part of DeSmuME + + DeSmuME is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DeSmuME is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DeSmuME; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifdef HAVE_GL_GLX +int init_glx_3Demu(void); +void deinit_glx_3Demu(void); +#endif diff -Nru desmume-0.9.9/src/gtk/main.cpp desmume-0.9.10/src/gtk/main.cpp --- desmume-0.9.9/src/gtk/main.cpp 2013-05-01 18:40:27.000000000 +0000 +++ desmume-0.9.10/src/gtk/main.cpp 2013-11-28 00:36:53.392610652 +0000 @@ -51,7 +51,7 @@ #include "commandline.h" -#include "addons.h" +#include "slot2.h" #include "filter/videofilter.h" @@ -59,11 +59,12 @@ #include "gdbstub.h" #endif -#ifdef HAVE_LIBOSMESA +#if defined(HAVE_LIBOSMESA) || defined(HAVE_GL_GLX) #include #include #include "OGLRender.h" #include "osmesa_3Demu.h" +#include "glx_3Demu.h" #endif #include "DeSmuME.xpm" @@ -461,7 +462,7 @@ GPU3DInterface *core3DList[] = { &gpu3DNull, &gpu3DRasterize -#if defined(HAVE_LIBOSMESA) +#if defined(HAVE_LIBOSMESA) || defined(HAVE_GL_GLX) , &gpu3Dgl #endif @@ -492,7 +493,7 @@ u8 key_id; }; -static u16 Cur_Keypad = 0; +static u16 keys_latch = 0; static u16 gdk_shift_pressed = 0; u16 Keypad_Temp[NB_KEYS]; @@ -528,8 +529,8 @@ { "3d-engine", 0, 0, G_OPTION_ARG_INT, &config->engine_3d, "Select 3d rendering engine. Available engines:\n" "\t\t\t\t 0 = 3d disabled\n" "\t\t\t\t 1 = internal rasterizer (default)\n" -#ifdef HAVE_LIBOSMESA - "\t\t\t\t 2 = osmesa opengl\n" +#if defined(HAVE_LIBOSMESA) || defined(HAVE_GL_GLX) + "\t\t\t\t 2 = opengl\n" #endif ,"ENGINE"}, { "save-type", 0, 0, G_OPTION_ARG_INT, &config->savetype, "Select savetype from the following:\n" @@ -572,12 +573,12 @@ } if (config->engine_3d != 0 && config->engine_3d != 1 -#if defined(HAVE_LIBOSMESA) +#if defined(HAVE_LIBOSMESA) || defined(HAVE_GL_GLX) && config->engine_3d != 2 #endif ) { g_printerr("Currently available ENGINES: 0, 1" -#if defined(HAVE_LIBOSMESA) +#if defined(HAVE_LIBOSMESA) || defined(HAVE_GL_GLX) ", 2" #endif "\n"); @@ -1475,8 +1476,7 @@ if( (e->state & mask) == 0){ u16 Key = lookup_key(e->keyval); if(Key){ - ADD_KEY( Cur_Keypad, Key ); - if(desmume_running()) update_keypad(Cur_Keypad); + ADD_KEY( keys_latch, Key ); return 1; } } @@ -1501,8 +1501,7 @@ return 1; } u16 Key = lookup_key(e->keyval); - RM_KEY( Cur_Keypad, Key ); - if(desmume_running()) update_keypad(Cur_Keypad); + RM_KEY( keys_latch, Key ); return 1; } @@ -1973,6 +1972,11 @@ skipped_frames = 0; } + /* Merge the joystick keys with the keyboard ones */ + process_joystick_events(&keys_latch); + /* Update! */ + update_keypad(keys_latch); + desmume_cycle(); /* Emule ! */ for (i = 0; i < Frameskip; i++) { NDS_SkipNextFrame(); @@ -2158,28 +2162,54 @@ fw_config.language = my_config->firmware_language; } + //------------------addons---------- my_config->process_addonCommands(); - addon_type = NDS_ADDON_NONE; + + int slot2_device_type = NDS_SLOT2_AUTO; + if (my_config->is_cflash_configured) - addon_type = NDS_ADDON_CFLASH; + slot2_device_type = NDS_SLOT2_CFLASH; if(my_config->gbaslot_rom != "") { - addon_type = NDS_ADDON_GBAGAME; strncpy(GBAgameName, my_config->gbaslot_rom.c_str(), MAX_PATH); + // Check if the file exists and can be opened + FILE * test = fopen(GBAgameName, "rb"); + if (test) { + slot2_device_type = NDS_SLOT2_GBACART; + fclose(test); + } } - switch (addon_type) { - case NDS_ADDON_CFLASH: - case NDS_ADDON_RUMBLEPAK: - case NDS_ADDON_NONE: - case NDS_ADDON_GBAGAME: - break; - default: - addon_type = NDS_ADDON_NONE; - break; - } - addonsChangePak (addon_type); + switch (slot2_device_type) + { + case NDS_SLOT2_NONE: + break; + case NDS_SLOT2_AUTO: + break; + case NDS_SLOT2_CFLASH: + break; + case NDS_SLOT2_RUMBLEPAK: + break; + case NDS_SLOT2_GBACART: + break; + case NDS_SLOT2_GUITARGRIP: + break; + case NDS_SLOT2_EXPMEMORY: + break; + case NDS_SLOT2_EASYPIANO: + break; + case NDS_SLOT2_PADDLE: + break; + case NDS_SLOT2_PASSME: + break; + default: + slot2_device_type = NDS_SLOT2_NONE; + break; + } + + slot2_Init(); + slot2_Change((NDS_SLOT2_TYPE)slot2_device_type); #ifdef GDB_STUB if ( my_config->arm9_gdb_port != 0) { @@ -2376,9 +2406,15 @@ //Set the 3D emulation to use unsigned core = my_config->engine_3d; // setup the gdk 3D emulation; +#if defined(HAVE_LIBOSMESA) || defined(HAVE_GL_GLX) + if(my_config->engine_3d == 2) + { #if defined(HAVE_LIBOSMESA) - if(my_config->engine_3d == 2){ - core = init_osmesa_3Demu() ? 2 : GPU3D_NULL; + core = init_osmesa_3Demu() +#elif defined(HAVE_GL_GLX) + core = init_glx_3Demu() +#endif + ? 2 : GPU3D_NULL; } #endif NDS_3D_ChangeCore(core); @@ -2428,6 +2464,12 @@ desmume_free(); +#if defined(HAVE_LIBOSMESA) + deinit_osmesa_3Demu(); +#elif defined(HAVE_GL_GLX) + deinit_glx_3Demu(); +#endif + if ( !gtk_fps_limiter_disabled) { /* tidy up the FPS limiter timer and semaphore */ SDL_RemoveTimer( limiter_timer); diff -Nru desmume-0.9.9/src/gtk/Makefile.am desmume-0.9.10/src/gtk/Makefile.am --- desmume-0.9.9/src/gtk/Makefile.am 2013-05-01 18:40:27.000000000 +0000 +++ desmume-0.9.10/src/gtk/Makefile.am 2013-11-28 00:36:53.712615822 +0000 @@ -17,6 +17,7 @@ ../ctrlssdl.h ../ctrlssdl.cpp \ ../driver.h ../driver.cpp \ osmesa_3Demu.cpp osmesa_3Demu.h \ + glx_3Demu.cpp glx_3Demu.h \ cheatsGTK.h cheatsGTK.cpp \ ../filter/hq2x.cpp ../filter/hq2x.h \ ../filter/hq4x.cpp ../filter/hq4x.h \ @@ -32,6 +33,10 @@ endif if HAVE_LIBOSMESA desmume_LDADD += $(OSMESA_LIBS) +else +if HAVE_GL_GLX +desmume_LDADD += $(GLX_LIBS) +endif endif UPDATE_DESKTOP = \ diff -Nru desmume-0.9.9/src/gtk/Makefile.in desmume-0.9.10/src/gtk/Makefile.in --- desmume-0.9.9/src/gtk/Makefile.in 2013-05-01 21:30:08.000000000 +0000 +++ desmume-0.9.10/src/gtk/Makefile.in 2013-11-28 00:43:26.522904152 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,15 +79,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/src/desmume.mk +DIST_COMMON = $(top_srcdir)/src/desmume.mk $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp bin_PROGRAMS = desmume$(EXEEXT) @HAVE_GDB_STUB_TRUE@am__append_1 = ../gdbstub/libgdbstub.a @HAVE_LIBOSMESA_TRUE@am__append_2 = $(OSMESA_LIBS) +@HAVE_GL_GLX_TRUE@@HAVE_LIBOSMESA_FALSE@am__append_3 = $(GLX_LIBS) subdir = src/gtk ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -69,41 +96,77 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(Applicationsdir)" \ "$(DESTDIR)$(pixmapdir)" PROGRAMS = $(bin_PROGRAMS) +am__dirstamp = $(am__leading_dot)dirstamp am_desmume_OBJECTS = desmume.$(OBJEXT) dToolsList.$(OBJEXT) \ - ioregsView.$(OBJEXT) sndsdl.$(OBJEXT) ctrlssdl.$(OBJEXT) \ - driver.$(OBJEXT) osmesa_3Demu.$(OBJEXT) cheatsGTK.$(OBJEXT) \ - hq2x.$(OBJEXT) hq4x.$(OBJEXT) 2xsai.$(OBJEXT) \ - bilinear.$(OBJEXT) epx.$(OBJEXT) lq2x.$(OBJEXT) \ - scanline.$(OBJEXT) videofilter.$(OBJEXT) main.$(OBJEXT) + tools/ioregsView.$(OBJEXT) ../sndsdl.$(OBJEXT) \ + ../ctrlssdl.$(OBJEXT) ../driver.$(OBJEXT) \ + osmesa_3Demu.$(OBJEXT) glx_3Demu.$(OBJEXT) cheatsGTK.$(OBJEXT) \ + ../filter/hq2x.$(OBJEXT) ../filter/hq4x.$(OBJEXT) \ + ../filter/2xsai.$(OBJEXT) ../filter/bilinear.$(OBJEXT) \ + ../filter/epx.$(OBJEXT) ../filter/lq2x.$(OBJEXT) \ + ../filter/scanline.$(OBJEXT) ../filter/videofilter.$(OBJEXT) \ + main.$(OBJEXT) desmume_OBJECTS = $(am_desmume_OBJECTS) am__DEPENDENCIES_1 = @HAVE_LIBOSMESA_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) +@HAVE_GL_GLX_TRUE@@HAVE_LIBOSMESA_FALSE@am__DEPENDENCIES_3 = \ +@HAVE_GL_GLX_TRUE@@HAVE_LIBOSMESA_FALSE@ $(am__DEPENDENCIES_1) desmume_DEPENDENCIES = ../libdesmume.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__append_1) $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_1) $(am__append_1) $(am__DEPENDENCIES_2) \ + $(am__DEPENDENCIES_3) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(desmume_SOURCES) DIST_SOURCES = $(desmume_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -139,9 +202,29 @@ DATA = $(Applications_DATA) $(pixmap_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -204,6 +287,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -277,16 +361,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -366,6 +440,7 @@ ../ctrlssdl.h ../ctrlssdl.cpp \ ../driver.h ../driver.cpp \ osmesa_3Demu.cpp osmesa_3Demu.h \ + glx_3Demu.cpp glx_3Demu.h \ cheatsGTK.h cheatsGTK.cpp \ ../filter/hq2x.cpp ../filter/hq2x.h \ ../filter/hq4x.cpp ../filter/hq4x.h \ @@ -377,7 +452,8 @@ desmume_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTK_LIBS) \ $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) \ - $(LIBSOUNDTOUCH_LIBS) $(am__append_1) $(am__append_2) + $(LIBSOUNDTOUCH_LIBS) $(am__append_1) $(am__append_2) \ + $(am__append_3) UPDATE_DESKTOP = \ appsdir=$(DESTDIR)$(datadir)/applications ; \ if [ -f $$appsdir/mimeinfo.cache ] ; then \ @@ -430,10 +506,11 @@ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -454,222 +531,101 @@ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +tools/$(am__dirstamp): + @$(MKDIR_P) tools + @: > tools/$(am__dirstamp) +tools/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) tools/$(DEPDIR) + @: > tools/$(DEPDIR)/$(am__dirstamp) +tools/ioregsView.$(OBJEXT): tools/$(am__dirstamp) \ + tools/$(DEPDIR)/$(am__dirstamp) +../$(am__dirstamp): + @$(MKDIR_P) .. + @: > ../$(am__dirstamp) +../$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../$(DEPDIR) + @: > ../$(DEPDIR)/$(am__dirstamp) +../sndsdl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../ctrlssdl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../driver.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../filter/$(am__dirstamp): + @$(MKDIR_P) ../filter + @: > ../filter/$(am__dirstamp) +../filter/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../filter/$(DEPDIR) + @: > ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/hq2x.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/hq4x.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/2xsai.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/bilinear.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/epx.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/lq2x.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/scanline.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) +../filter/videofilter.$(OBJEXT): ../filter/$(am__dirstamp) \ + ../filter/$(DEPDIR)/$(am__dirstamp) + desmume$(EXEEXT): $(desmume_OBJECTS) $(desmume_DEPENDENCIES) $(EXTRA_desmume_DEPENDENCIES) @rm -f desmume$(EXEEXT) - $(CXXLINK) $(desmume_OBJECTS) $(desmume_LDADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(desmume_OBJECTS) $(desmume_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f ../*.$(OBJEXT) + -rm -f ../filter/*.$(OBJEXT) + -rm -f tools/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/2xsai.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bilinear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/ctrlssdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/driver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/sndsdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/2xsai.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/bilinear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/epx.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/hq2x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/hq4x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/lq2x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/scanline.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../filter/$(DEPDIR)/videofilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cheatsGTK.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlssdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dToolsList.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desmume.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hq2x.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hq4x.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioregsView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lq2x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glx_3Demu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osmesa_3Demu.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndsdl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/videofilter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/ioregsView.Po@am__quote@ .cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ioregsView.o: tools/ioregsView.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ioregsView.o -MD -MP -MF $(DEPDIR)/ioregsView.Tpo -c -o ioregsView.o `test -f 'tools/ioregsView.cpp' || echo '$(srcdir)/'`tools/ioregsView.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ioregsView.Tpo $(DEPDIR)/ioregsView.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools/ioregsView.cpp' object='ioregsView.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ioregsView.o `test -f 'tools/ioregsView.cpp' || echo '$(srcdir)/'`tools/ioregsView.cpp - -ioregsView.obj: tools/ioregsView.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ioregsView.obj -MD -MP -MF $(DEPDIR)/ioregsView.Tpo -c -o ioregsView.obj `if test -f 'tools/ioregsView.cpp'; then $(CYGPATH_W) 'tools/ioregsView.cpp'; else $(CYGPATH_W) '$(srcdir)/tools/ioregsView.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ioregsView.Tpo $(DEPDIR)/ioregsView.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools/ioregsView.cpp' object='ioregsView.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ioregsView.obj `if test -f 'tools/ioregsView.cpp'; then $(CYGPATH_W) 'tools/ioregsView.cpp'; else $(CYGPATH_W) '$(srcdir)/tools/ioregsView.cpp'; fi` - -sndsdl.o: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.o -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp - -sndsdl.obj: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.obj -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` - -ctrlssdl.o: ../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ctrlssdl.o -MD -MP -MF $(DEPDIR)/ctrlssdl.Tpo -c -o ctrlssdl.o `test -f '../ctrlssdl.cpp' || echo '$(srcdir)/'`../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ctrlssdl.Tpo $(DEPDIR)/ctrlssdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../ctrlssdl.cpp' object='ctrlssdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ctrlssdl.o `test -f '../ctrlssdl.cpp' || echo '$(srcdir)/'`../ctrlssdl.cpp - -ctrlssdl.obj: ../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ctrlssdl.obj -MD -MP -MF $(DEPDIR)/ctrlssdl.Tpo -c -o ctrlssdl.obj `if test -f '../ctrlssdl.cpp'; then $(CYGPATH_W) '../ctrlssdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../ctrlssdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ctrlssdl.Tpo $(DEPDIR)/ctrlssdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../ctrlssdl.cpp' object='ctrlssdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ctrlssdl.obj `if test -f '../ctrlssdl.cpp'; then $(CYGPATH_W) '../ctrlssdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../ctrlssdl.cpp'; fi` - -driver.o: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.o -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp - -driver.obj: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.obj -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` - -hq2x.o: ../filter/hq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq2x.o -MD -MP -MF $(DEPDIR)/hq2x.Tpo -c -o hq2x.o `test -f '../filter/hq2x.cpp' || echo '$(srcdir)/'`../filter/hq2x.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq2x.Tpo $(DEPDIR)/hq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/hq2x.cpp' object='hq2x.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq2x.o `test -f '../filter/hq2x.cpp' || echo '$(srcdir)/'`../filter/hq2x.cpp - -hq2x.obj: ../filter/hq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq2x.obj -MD -MP -MF $(DEPDIR)/hq2x.Tpo -c -o hq2x.obj `if test -f '../filter/hq2x.cpp'; then $(CYGPATH_W) '../filter/hq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/hq2x.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq2x.Tpo $(DEPDIR)/hq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/hq2x.cpp' object='hq2x.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq2x.obj `if test -f '../filter/hq2x.cpp'; then $(CYGPATH_W) '../filter/hq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/hq2x.cpp'; fi` - -hq4x.o: ../filter/hq4x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq4x.o -MD -MP -MF $(DEPDIR)/hq4x.Tpo -c -o hq4x.o `test -f '../filter/hq4x.cpp' || echo '$(srcdir)/'`../filter/hq4x.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq4x.Tpo $(DEPDIR)/hq4x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/hq4x.cpp' object='hq4x.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq4x.o `test -f '../filter/hq4x.cpp' || echo '$(srcdir)/'`../filter/hq4x.cpp - -hq4x.obj: ../filter/hq4x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq4x.obj -MD -MP -MF $(DEPDIR)/hq4x.Tpo -c -o hq4x.obj `if test -f '../filter/hq4x.cpp'; then $(CYGPATH_W) '../filter/hq4x.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/hq4x.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq4x.Tpo $(DEPDIR)/hq4x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/hq4x.cpp' object='hq4x.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq4x.obj `if test -f '../filter/hq4x.cpp'; then $(CYGPATH_W) '../filter/hq4x.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/hq4x.cpp'; fi` - -2xsai.o: ../filter/2xsai.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT 2xsai.o -MD -MP -MF $(DEPDIR)/2xsai.Tpo -c -o 2xsai.o `test -f '../filter/2xsai.cpp' || echo '$(srcdir)/'`../filter/2xsai.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/2xsai.Tpo $(DEPDIR)/2xsai.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/2xsai.cpp' object='2xsai.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o 2xsai.o `test -f '../filter/2xsai.cpp' || echo '$(srcdir)/'`../filter/2xsai.cpp - -2xsai.obj: ../filter/2xsai.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT 2xsai.obj -MD -MP -MF $(DEPDIR)/2xsai.Tpo -c -o 2xsai.obj `if test -f '../filter/2xsai.cpp'; then $(CYGPATH_W) '../filter/2xsai.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/2xsai.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/2xsai.Tpo $(DEPDIR)/2xsai.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/2xsai.cpp' object='2xsai.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o 2xsai.obj `if test -f '../filter/2xsai.cpp'; then $(CYGPATH_W) '../filter/2xsai.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/2xsai.cpp'; fi` - -bilinear.o: ../filter/bilinear.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bilinear.o -MD -MP -MF $(DEPDIR)/bilinear.Tpo -c -o bilinear.o `test -f '../filter/bilinear.cpp' || echo '$(srcdir)/'`../filter/bilinear.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bilinear.Tpo $(DEPDIR)/bilinear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/bilinear.cpp' object='bilinear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bilinear.o `test -f '../filter/bilinear.cpp' || echo '$(srcdir)/'`../filter/bilinear.cpp - -bilinear.obj: ../filter/bilinear.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bilinear.obj -MD -MP -MF $(DEPDIR)/bilinear.Tpo -c -o bilinear.obj `if test -f '../filter/bilinear.cpp'; then $(CYGPATH_W) '../filter/bilinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/bilinear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bilinear.Tpo $(DEPDIR)/bilinear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/bilinear.cpp' object='bilinear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bilinear.obj `if test -f '../filter/bilinear.cpp'; then $(CYGPATH_W) '../filter/bilinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/bilinear.cpp'; fi` - -epx.o: ../filter/epx.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT epx.o -MD -MP -MF $(DEPDIR)/epx.Tpo -c -o epx.o `test -f '../filter/epx.cpp' || echo '$(srcdir)/'`../filter/epx.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/epx.Tpo $(DEPDIR)/epx.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/epx.cpp' object='epx.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o epx.o `test -f '../filter/epx.cpp' || echo '$(srcdir)/'`../filter/epx.cpp - -epx.obj: ../filter/epx.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT epx.obj -MD -MP -MF $(DEPDIR)/epx.Tpo -c -o epx.obj `if test -f '../filter/epx.cpp'; then $(CYGPATH_W) '../filter/epx.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/epx.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/epx.Tpo $(DEPDIR)/epx.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/epx.cpp' object='epx.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o epx.obj `if test -f '../filter/epx.cpp'; then $(CYGPATH_W) '../filter/epx.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/epx.cpp'; fi` - -lq2x.o: ../filter/lq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lq2x.o -MD -MP -MF $(DEPDIR)/lq2x.Tpo -c -o lq2x.o `test -f '../filter/lq2x.cpp' || echo '$(srcdir)/'`../filter/lq2x.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lq2x.Tpo $(DEPDIR)/lq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/lq2x.cpp' object='lq2x.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lq2x.o `test -f '../filter/lq2x.cpp' || echo '$(srcdir)/'`../filter/lq2x.cpp - -lq2x.obj: ../filter/lq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lq2x.obj -MD -MP -MF $(DEPDIR)/lq2x.Tpo -c -o lq2x.obj `if test -f '../filter/lq2x.cpp'; then $(CYGPATH_W) '../filter/lq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/lq2x.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lq2x.Tpo $(DEPDIR)/lq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/lq2x.cpp' object='lq2x.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lq2x.obj `if test -f '../filter/lq2x.cpp'; then $(CYGPATH_W) '../filter/lq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/lq2x.cpp'; fi` - -scanline.o: ../filter/scanline.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scanline.o -MD -MP -MF $(DEPDIR)/scanline.Tpo -c -o scanline.o `test -f '../filter/scanline.cpp' || echo '$(srcdir)/'`../filter/scanline.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scanline.Tpo $(DEPDIR)/scanline.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/scanline.cpp' object='scanline.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scanline.o `test -f '../filter/scanline.cpp' || echo '$(srcdir)/'`../filter/scanline.cpp - -scanline.obj: ../filter/scanline.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scanline.obj -MD -MP -MF $(DEPDIR)/scanline.Tpo -c -o scanline.obj `if test -f '../filter/scanline.cpp'; then $(CYGPATH_W) '../filter/scanline.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/scanline.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scanline.Tpo $(DEPDIR)/scanline.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/scanline.cpp' object='scanline.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scanline.obj `if test -f '../filter/scanline.cpp'; then $(CYGPATH_W) '../filter/scanline.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/scanline.cpp'; fi` - -videofilter.o: ../filter/videofilter.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT videofilter.o -MD -MP -MF $(DEPDIR)/videofilter.Tpo -c -o videofilter.o `test -f '../filter/videofilter.cpp' || echo '$(srcdir)/'`../filter/videofilter.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/videofilter.Tpo $(DEPDIR)/videofilter.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/videofilter.cpp' object='videofilter.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o videofilter.o `test -f '../filter/videofilter.cpp' || echo '$(srcdir)/'`../filter/videofilter.cpp - -videofilter.obj: ../filter/videofilter.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT videofilter.obj -MD -MP -MF $(DEPDIR)/videofilter.Tpo -c -o videofilter.obj `if test -f '../filter/videofilter.cpp'; then $(CYGPATH_W) '../filter/videofilter.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/videofilter.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/videofilter.Tpo $(DEPDIR)/videofilter.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../filter/videofilter.cpp' object='videofilter.obj' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o videofilter.obj `if test -f '../filter/videofilter.cpp'; then $(CYGPATH_W) '../filter/videofilter.cpp'; else $(CYGPATH_W) '$(srcdir)/../filter/videofilter.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` install-ApplicationsDATA: $(Applications_DATA) @$(NORMAL_INSTALL) @list='$(Applications_DATA)'; test -n "$(Applicationsdir)" || list=; \ @@ -714,22 +670,25 @@ dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -744,57 +703,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -810,12 +724,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -827,15 +736,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -844,6 +749,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -937,6 +857,12 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../$(DEPDIR)/$(am__dirstamp) + -rm -f ../$(am__dirstamp) + -rm -f ../filter/$(DEPDIR)/$(am__dirstamp) + -rm -f ../filter/$(am__dirstamp) + -rm -f tools/$(DEPDIR)/$(am__dirstamp) + -rm -f tools/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -946,7 +872,7 @@ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ../$(DEPDIR) ../filter/$(DEPDIR) ./$(DEPDIR) tools/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -993,7 +919,7 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ../$(DEPDIR) ../filter/$(DEPDIR) ./$(DEPDIR) tools/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1013,25 +939,23 @@ uninstall-pixmapDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-data-am install-strip tags-recursive \ - uninstall-am - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-binPROGRAMS \ - clean-generic ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install \ - install-ApplicationsDATA install-am install-binPROGRAMS \ - install-data install-data-am install-data-hook install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pixmapDATA install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-ApplicationsDATA uninstall-am \ +.MAKE: $(am__recursive_targets) install-am install-data-am \ + install-strip uninstall-am + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-binPROGRAMS clean-generic cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-ApplicationsDATA install-am \ + install-binPROGRAMS install-data install-data-am \ + install-data-hook install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pixmapDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-ApplicationsDATA uninstall-am \ uninstall-binPROGRAMS uninstall-hook uninstall-pixmapDATA diff -Nru desmume-0.9.9/src/gtk/osmesa_3Demu.cpp desmume-0.9.10/src/gtk/osmesa_3Demu.cpp --- desmume-0.9.9/src/gtk/osmesa_3Demu.cpp 2013-05-01 18:40:27.000000000 +0000 +++ desmume-0.9.10/src/gtk/osmesa_3Demu.cpp 2013-11-28 00:36:53.392610652 +0000 @@ -24,30 +24,45 @@ #include "../OGLRender.h" #include "osmesa_3Demu.h" -static bool osmesa_beginOpenGL(void) { - return 1; +static bool osmesa_beginOpenGL(void) { return 1; } +static void osmesa_endOpenGL(void) { } +static bool osmesa_init(void) { return true; } + +static void * buffer = NULL; +static OSMesaContext ctx; + +void deinit_osmesa_3Demu (void) +{ + free(buffer); + OSMesaDestroyContext(ctx); } -static void osmesa_endOpenGL(void) { -} - -static bool osmesa_init(void) { - - return true; -} - -int init_osmesa_3Demu(void) { - void * buffer; - OSMesaContext ctx; - - ctx = OSMesaCreateContext(OSMESA_RGBA, NULL); - buffer = malloc(256 * 192 * 4); - OSMesaMakeCurrent(ctx, buffer, GL_UNSIGNED_BYTE, 256, 192); - - oglrender_init = osmesa_init; - oglrender_beginOpenGL = osmesa_beginOpenGL; - oglrender_endOpenGL = osmesa_endOpenGL; +int init_osmesa_3Demu(void) +{ + if (!ctx) + { + printf("OSMesaCreateContext failed!\n"); + return false; + } + + buffer = malloc(256 * 192 * 4); + if (!buffer) + { + printf("Could not allocate enough memory!\n"); + return false; + } + + if (!OSMesaMakeCurrent(ctx, buffer, GL_UNSIGNED_BYTE, 256, 192)) + { + printf("OSMesaMakeCurrent failed!\n"); + free(buffer); + return false; + } + + oglrender_init = osmesa_init; + oglrender_beginOpenGL = osmesa_beginOpenGL; + oglrender_endOpenGL = osmesa_endOpenGL; - return 1; + return true; } #endif diff -Nru desmume-0.9.9/src/gtk/osmesa_3Demu.h desmume-0.9.10/src/gtk/osmesa_3Demu.h --- desmume-0.9.9/src/gtk/osmesa_3Demu.h 2013-05-01 18:40:27.000000000 +0000 +++ desmume-0.9.10/src/gtk/osmesa_3Demu.h 2013-11-28 00:36:53.716615886 +0000 @@ -19,5 +19,6 @@ */ #ifdef HAVE_LIBOSMESA -int init_osmesa_3Demu( void); +int init_osmesa_3Demu(void); +void deinit_osmesa_3Demu(void); #endif diff -Nru desmume-0.9.9/src/gtk-glade/doc/Makefile.in desmume-0.9.10/src/gtk-glade/doc/Makefile.in --- desmume-0.9.9/src/gtk-glade/doc/Makefile.in 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/src/gtk-glade/doc/Makefile.in 2013-11-28 00:43:26.454903078 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,16 +78,27 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/gtk-glade/doc -DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -99,6 +137,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(dist_man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -133,6 +172,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -206,16 +246,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -353,27 +383,14 @@ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -510,16 +527,17 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man1 install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ - uninstall-am uninstall-man uninstall-man1 +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-man \ + uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/src/gtk-glade/Makefile.in desmume-0.9.10/src/gtk-glade/Makefile.in --- desmume-0.9.9/src/gtk-glade/Makefile.in 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/src/gtk-glade/Makefile.in 2013-11-28 00:43:26.414902446 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,14 +79,13 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/src/desmume.mk +DIST_COMMON = $(top_srcdir)/src/desmume.mk $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp bin_PROGRAMS = desmume-glade$(EXEEXT) @HAVE_GDB_STUB_TRUE@am__append_1 = ../gdbstub/libgdbstub.a subdir = src/gtk-glade ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -68,41 +94,72 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(Applicationsdir)" \ "$(DESTDIR)$(gladedir)" "$(DESTDIR)$(pixmapdir)" PROGRAMS = $(bin_PROGRAMS) +am__dirstamp = $(am__leading_dot)dirstamp am_desmume_glade_OBJECTS = glade-xml.$(OBJEXT) callbacks.$(OBJEXT) \ callbacks_IO.$(OBJEXT) desmume.$(OBJEXT) \ keyval_names.$(OBJEXT) main.$(OBJEXT) gdk_gl.$(OBJEXT) \ - callbacks_1_ioregs.$(OBJEXT) callbacks_2_memview.$(OBJEXT) \ - callbacks_3_palview.$(OBJEXT) callbacks_4_tileview.$(OBJEXT) \ - gdk_3Demu.$(OBJEXT) sndsdl.$(OBJEXT) ctrlssdl.$(OBJEXT) \ - driver.$(OBJEXT) + dTools/callbacks_1_ioregs.$(OBJEXT) \ + dTools/callbacks_2_memview.$(OBJEXT) \ + dTools/callbacks_3_palview.$(OBJEXT) \ + dTools/callbacks_4_tileview.$(OBJEXT) gdk_3Demu.$(OBJEXT) \ + ../sndsdl.$(OBJEXT) ../ctrlssdl.$(OBJEXT) ../driver.$(OBJEXT) desmume_glade_OBJECTS = $(am_desmume_glade_OBJECTS) am__DEPENDENCIES_1 = desmume_glade_DEPENDENCIES = ../libdesmume.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(desmume_glade_SOURCES) DIST_SOURCES = $(desmume_glade_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -138,9 +195,29 @@ DATA = $(Applications_DATA) $(glade_DATA) $(pixmap_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -203,6 +280,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -276,16 +354,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -420,10 +488,11 @@ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -444,150 +513,81 @@ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +dTools/$(am__dirstamp): + @$(MKDIR_P) dTools + @: > dTools/$(am__dirstamp) +dTools/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) dTools/$(DEPDIR) + @: > dTools/$(DEPDIR)/$(am__dirstamp) +dTools/callbacks_1_ioregs.$(OBJEXT): dTools/$(am__dirstamp) \ + dTools/$(DEPDIR)/$(am__dirstamp) +dTools/callbacks_2_memview.$(OBJEXT): dTools/$(am__dirstamp) \ + dTools/$(DEPDIR)/$(am__dirstamp) +dTools/callbacks_3_palview.$(OBJEXT): dTools/$(am__dirstamp) \ + dTools/$(DEPDIR)/$(am__dirstamp) +dTools/callbacks_4_tileview.$(OBJEXT): dTools/$(am__dirstamp) \ + dTools/$(DEPDIR)/$(am__dirstamp) +../$(am__dirstamp): + @$(MKDIR_P) .. + @: > ../$(am__dirstamp) +../$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../$(DEPDIR) + @: > ../$(DEPDIR)/$(am__dirstamp) +../sndsdl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../ctrlssdl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) +../driver.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) + desmume-glade$(EXEEXT): $(desmume_glade_OBJECTS) $(desmume_glade_DEPENDENCIES) $(EXTRA_desmume_glade_DEPENDENCIES) @rm -f desmume-glade$(EXEEXT) - $(CXXLINK) $(desmume_glade_OBJECTS) $(desmume_glade_LDADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(desmume_glade_OBJECTS) $(desmume_glade_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f ../*.$(OBJEXT) + -rm -f dTools/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/ctrlssdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/driver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/sndsdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks_1_ioregs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks_2_memview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks_3_palview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks_4_tileview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks_IO.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlssdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desmume.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdk_3Demu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdk_gl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glade-xml.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyval_names.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndsdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@dTools/$(DEPDIR)/callbacks_1_ioregs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@dTools/$(DEPDIR)/callbacks_2_memview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@dTools/$(DEPDIR)/callbacks_3_palview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@dTools/$(DEPDIR)/callbacks_4_tileview.Po@am__quote@ .cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -callbacks_1_ioregs.o: dTools/callbacks_1_ioregs.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_1_ioregs.o -MD -MP -MF $(DEPDIR)/callbacks_1_ioregs.Tpo -c -o callbacks_1_ioregs.o `test -f 'dTools/callbacks_1_ioregs.cpp' || echo '$(srcdir)/'`dTools/callbacks_1_ioregs.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_1_ioregs.Tpo $(DEPDIR)/callbacks_1_ioregs.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_1_ioregs.cpp' object='callbacks_1_ioregs.o' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_1_ioregs.o `test -f 'dTools/callbacks_1_ioregs.cpp' || echo '$(srcdir)/'`dTools/callbacks_1_ioregs.cpp - -callbacks_1_ioregs.obj: dTools/callbacks_1_ioregs.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_1_ioregs.obj -MD -MP -MF $(DEPDIR)/callbacks_1_ioregs.Tpo -c -o callbacks_1_ioregs.obj `if test -f 'dTools/callbacks_1_ioregs.cpp'; then $(CYGPATH_W) 'dTools/callbacks_1_ioregs.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_1_ioregs.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_1_ioregs.Tpo $(DEPDIR)/callbacks_1_ioregs.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_1_ioregs.cpp' object='callbacks_1_ioregs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_1_ioregs.obj `if test -f 'dTools/callbacks_1_ioregs.cpp'; then $(CYGPATH_W) 'dTools/callbacks_1_ioregs.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_1_ioregs.cpp'; fi` - -callbacks_2_memview.o: dTools/callbacks_2_memview.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_2_memview.o -MD -MP -MF $(DEPDIR)/callbacks_2_memview.Tpo -c -o callbacks_2_memview.o `test -f 'dTools/callbacks_2_memview.cpp' || echo '$(srcdir)/'`dTools/callbacks_2_memview.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_2_memview.Tpo $(DEPDIR)/callbacks_2_memview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_2_memview.cpp' object='callbacks_2_memview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_2_memview.o `test -f 'dTools/callbacks_2_memview.cpp' || echo '$(srcdir)/'`dTools/callbacks_2_memview.cpp - -callbacks_2_memview.obj: dTools/callbacks_2_memview.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_2_memview.obj -MD -MP -MF $(DEPDIR)/callbacks_2_memview.Tpo -c -o callbacks_2_memview.obj `if test -f 'dTools/callbacks_2_memview.cpp'; then $(CYGPATH_W) 'dTools/callbacks_2_memview.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_2_memview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_2_memview.Tpo $(DEPDIR)/callbacks_2_memview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_2_memview.cpp' object='callbacks_2_memview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_2_memview.obj `if test -f 'dTools/callbacks_2_memview.cpp'; then $(CYGPATH_W) 'dTools/callbacks_2_memview.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_2_memview.cpp'; fi` - -callbacks_3_palview.o: dTools/callbacks_3_palview.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_3_palview.o -MD -MP -MF $(DEPDIR)/callbacks_3_palview.Tpo -c -o callbacks_3_palview.o `test -f 'dTools/callbacks_3_palview.cpp' || echo '$(srcdir)/'`dTools/callbacks_3_palview.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_3_palview.Tpo $(DEPDIR)/callbacks_3_palview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_3_palview.cpp' object='callbacks_3_palview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_3_palview.o `test -f 'dTools/callbacks_3_palview.cpp' || echo '$(srcdir)/'`dTools/callbacks_3_palview.cpp - -callbacks_3_palview.obj: dTools/callbacks_3_palview.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_3_palview.obj -MD -MP -MF $(DEPDIR)/callbacks_3_palview.Tpo -c -o callbacks_3_palview.obj `if test -f 'dTools/callbacks_3_palview.cpp'; then $(CYGPATH_W) 'dTools/callbacks_3_palview.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_3_palview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_3_palview.Tpo $(DEPDIR)/callbacks_3_palview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_3_palview.cpp' object='callbacks_3_palview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_3_palview.obj `if test -f 'dTools/callbacks_3_palview.cpp'; then $(CYGPATH_W) 'dTools/callbacks_3_palview.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_3_palview.cpp'; fi` - -callbacks_4_tileview.o: dTools/callbacks_4_tileview.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_4_tileview.o -MD -MP -MF $(DEPDIR)/callbacks_4_tileview.Tpo -c -o callbacks_4_tileview.o `test -f 'dTools/callbacks_4_tileview.cpp' || echo '$(srcdir)/'`dTools/callbacks_4_tileview.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_4_tileview.Tpo $(DEPDIR)/callbacks_4_tileview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_4_tileview.cpp' object='callbacks_4_tileview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_4_tileview.o `test -f 'dTools/callbacks_4_tileview.cpp' || echo '$(srcdir)/'`dTools/callbacks_4_tileview.cpp - -callbacks_4_tileview.obj: dTools/callbacks_4_tileview.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT callbacks_4_tileview.obj -MD -MP -MF $(DEPDIR)/callbacks_4_tileview.Tpo -c -o callbacks_4_tileview.obj `if test -f 'dTools/callbacks_4_tileview.cpp'; then $(CYGPATH_W) 'dTools/callbacks_4_tileview.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_4_tileview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/callbacks_4_tileview.Tpo $(DEPDIR)/callbacks_4_tileview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dTools/callbacks_4_tileview.cpp' object='callbacks_4_tileview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o callbacks_4_tileview.obj `if test -f 'dTools/callbacks_4_tileview.cpp'; then $(CYGPATH_W) 'dTools/callbacks_4_tileview.cpp'; else $(CYGPATH_W) '$(srcdir)/dTools/callbacks_4_tileview.cpp'; fi` - -sndsdl.o: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.o -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp - -sndsdl.obj: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.obj -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` - -ctrlssdl.o: ../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ctrlssdl.o -MD -MP -MF $(DEPDIR)/ctrlssdl.Tpo -c -o ctrlssdl.o `test -f '../ctrlssdl.cpp' || echo '$(srcdir)/'`../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ctrlssdl.Tpo $(DEPDIR)/ctrlssdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../ctrlssdl.cpp' object='ctrlssdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ctrlssdl.o `test -f '../ctrlssdl.cpp' || echo '$(srcdir)/'`../ctrlssdl.cpp - -ctrlssdl.obj: ../ctrlssdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ctrlssdl.obj -MD -MP -MF $(DEPDIR)/ctrlssdl.Tpo -c -o ctrlssdl.obj `if test -f '../ctrlssdl.cpp'; then $(CYGPATH_W) '../ctrlssdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../ctrlssdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ctrlssdl.Tpo $(DEPDIR)/ctrlssdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../ctrlssdl.cpp' object='ctrlssdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ctrlssdl.obj `if test -f '../ctrlssdl.cpp'; then $(CYGPATH_W) '../ctrlssdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../ctrlssdl.cpp'; fi` - -driver.o: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.o -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp - -driver.obj: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.obj -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` install-ApplicationsDATA: $(Applications_DATA) @$(NORMAL_INSTALL) @list='$(Applications_DATA)'; test -n "$(Applicationsdir)" || list=; \ @@ -653,22 +653,25 @@ dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -683,57 +686,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -749,12 +707,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -766,15 +719,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -783,6 +732,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -876,6 +840,10 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../$(DEPDIR)/$(am__dirstamp) + -rm -f ../$(am__dirstamp) + -rm -f dTools/$(DEPDIR)/$(am__dirstamp) + -rm -f dTools/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -885,7 +853,7 @@ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ../$(DEPDIR) ./$(DEPDIR) dTools/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -932,7 +900,7 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ../$(DEPDIR) ./$(DEPDIR) dTools/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -951,25 +919,23 @@ uninstall-am: uninstall-ApplicationsDATA uninstall-binPROGRAMS \ uninstall-gladeDATA uninstall-pixmapDATA -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-binPROGRAMS \ - clean-generic ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install \ - install-ApplicationsDATA install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-gladeDATA install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pixmapDATA install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-binPROGRAMS clean-generic cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-ApplicationsDATA install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-gladeDATA \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-pixmapDATA \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-ApplicationsDATA uninstall-am \ - uninstall-binPROGRAMS uninstall-gladeDATA uninstall-pixmapDATA + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-ApplicationsDATA uninstall-am uninstall-binPROGRAMS \ + uninstall-gladeDATA uninstall-pixmapDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/src/instruction_attributes.h desmume-0.9.10/src/instruction_attributes.h --- desmume-0.9.9/src/instruction_attributes.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/instruction_attributes.h 2013-11-28 00:37:18.809021196 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2006 yopyop Copyright (C) 2011 Loren Merritt - Copyright (C) 2012 DeSmuME team + Copyright (C) 2012-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -41,6 +41,8 @@ #define BRANCH_LDM 0x00004000 #define BRANCH_SWI 0x00008000 // branch if use external SWI - if (cpu->swi_tab == NULL) +#define MERGE_NEXT 0x04000000 + #define JIT_BYPASS 0x80000000 // JIT makes no assumptions about what this instruction does static const u32 instruction_attributes[4096] = { @@ -5103,38 +5105,38 @@ INSTR_CYCLES(3) | BRANCH_ALWAYS, //OP_BLX INSTR_CYCLES(3) | BRANCH_ALWAYS, //OP_BLX INSTR_CYCLES(3) | BRANCH_ALWAYS, //OP_BLX -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 -INSTR_CYCLES(1) | BRANCH_NEVER , //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 +INSTR_CYCLES(1) | BRANCH_NEVER | MERGE_NEXT, //OP_BL_10 INSTR_CYCLES(4) | BRANCH_ALWAYS, //OP_BL_11 INSTR_CYCLES(4) | BRANCH_ALWAYS, //OP_BL_11 INSTR_CYCLES(4) | BRANCH_ALWAYS, //OP_BL_11 diff -Nru desmume-0.9.9/src/lua-engine.cpp desmume-0.9.10/src/lua-engine.cpp --- desmume-0.9.9/src/lua-engine.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/lua-engine.cpp 2013-11-28 00:37:18.805021131 +0000 @@ -29,7 +29,7 @@ #include "GPU_osd.h" #include "saves.h" #include "emufile.h" -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) #include #include "main.h" #include "video.h" @@ -482,7 +482,7 @@ static const char * const titles [] = {"Notice", "Question", "Warning", "Error"}; const char* answer = "ok"; -#if defined(_WIN32) && !defined(WXPORT) +#if defined(_WIN32) static const int etypes [] = {MB_OK, MB_YESNO, MB_YESNOCANCEL, MB_OKCANCEL, MB_ABORTRETRYIGNORE}; static const int eicons [] = {MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONWARNING, MB_ICONERROR}; // DialogsOpen++; @@ -1345,7 +1345,7 @@ if (b != (UBits)1437217655L || BAD_SAR) { /* Perform a simple self-test. */ const char *msg = "compiled with incompatible luaconf.h"; #ifdef LUA_NUMBER_DOUBLE -#if defined(_WIN32) && !defined(WXPORT) +#if defined(_WIN32) if (b == (UBits)1610612736L) msg = "use D3DCREATE_FPU_PRESERVE with DirectX"; #endif @@ -1417,7 +1417,7 @@ lua_pop(L, 1); } */ -#if defined(_WIN32) && !defined(WXPORT) +#if defined(_WIN32) int uid = luaStateToUIDMap[L->l_G->mainthread]; HWND hDlg = (HWND)uid; char str [1024]; @@ -1471,7 +1471,7 @@ if(!info.panic) { SPU_ClearOutputBuffer(); -#if defined(ASK_USER_ON_FREEZE) && defined(_WIN32) && !defined(WXPORT) +#if defined(ASK_USER_ON_FREEZE) && defined(_WIN32) DialogsOpen++; int answer = MessageBox(HWnd, "A Lua script has been running for quite a while. Maybe it is in an infinite loop.\n\nWould you like to stop the script?\n\n(Yes to stop it now,\n No to keep running and not ask again,\n Cancel to keep running but ask again later)", "Lua Alert", MB_YESNOCANCEL | MB_DEFBUTTON3 | MB_ICONASTERISK); DialogsOpen--; @@ -2594,7 +2594,7 @@ } else { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) extern VideoInfo video; curGuiData.data = video.buffer; curGuiData.stridePix = 256; @@ -3442,7 +3442,7 @@ DEFINE_LUA_FUNCTION(emu_openscript, "filename") { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) char curScriptDir[1024]; GetCurrentScriptDir(curScriptDir, 1024); // make sure we can always find scripts that are in the same directory as the current script const char* filename = lua_isstring(L,1) ? lua_tostring(L,1) : NULL; extern const char* OpenLuaScript(const char* filename, const char* extraDirToCheck, bool makeSubservient); @@ -3464,7 +3464,7 @@ static bool IsLuaMenuItem(PlatformMenuItem menuItem) { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) return (menuItem >= IDC_LUAMENU_RESERVE_START && menuItem <= IDC_LUAMENU_RESERVE_END); #else return false; @@ -3473,7 +3473,7 @@ static bool SearchFreeMenuItem(PlatformMenu menu, PlatformMenuItem& menuItem) { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) for (UINT menuItemId = IDC_LUAMENU_RESERVE_START; menuItemId <= IDC_LUAMENU_RESERVE_END; menuItemId++) { MENUITEMINFO mii; @@ -3495,7 +3495,7 @@ static PlatformMenu AddSubMenu(PlatformMenu topMenu, PlatformMenu menu, const char* menuName) { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) LuaContextInfo& info = GetCurrentInfo(); MENUITEMINFO mii; @@ -3553,7 +3553,7 @@ bool AddMenuEntries(PlatformMenu topMenu, PlatformMenu menu) { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) LuaContextInfo& info = GetCurrentInfo(); lua_State* L = info.L; luaL_checktype(L, -1, LUA_TTABLE); @@ -3657,7 +3657,7 @@ DEFINE_LUA_FUNCTION(emu_addmenu, "menuName, menuEntries") { -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) int nargs = lua_gettop(L); if (nargs > 1 && !lua_isnil(L, 1)) { @@ -3693,7 +3693,7 @@ { luaL_checktype(L, 1, LUA_TFUNCTION); luaL_checktype(L, 2, LUA_TTABLE); -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) LuaContextInfo& info = GetCurrentInfo(); map::iterator it = info.menuData.menuItemMap.begin(); while(it != info.menuData.menuItemMap.end()) @@ -3948,7 +3948,7 @@ return 0; } -#if defined(_WIN32) && !defined(WXPORT) +#if defined(_WIN32) const char* s_keyToName[256] = { NULL, @@ -4062,7 +4062,7 @@ { lua_newtable(L); -#if defined(_WIN32) && !defined(WXPORT) +#if defined(_WIN32) // keyboard and mouse button status { extern bool allowBackgroundInput; @@ -5338,7 +5338,7 @@ for(int i = 0; i < LUAMEMHOOK_COUNT; i++) CalculateMemHookRegions((LuaMemHookType)i); -#if defined(WIN32) && !defined(WXPORT) +#if defined(WIN32) // remove items map::iterator it = info.menuData.menuItemMap.begin(); while(it != info.menuData.menuItemMap.end()) diff -Nru desmume-0.9.9/src/Makefile.am desmume-0.9.10/src/Makefile.am --- desmume-0.9.9/src/Makefile.am 2013-05-01 21:24:58.000000000 +0000 +++ desmume-0.9.10/src/Makefile.am 2013-11-28 00:37:28.421176409 +0000 @@ -8,7 +8,7 @@ else SUBDIRS = . $(UI_DIR) endif -DIST_SUBDIRS = . gdbstub cli gtk gtk-glade wx +DIST_SUBDIRS = . gdbstub cli gtk gtk-glade noinst_LIBRARIES = libdesmume.a libdesmume_a_SOURCES = \ armcpu.cpp armcpu.h \ @@ -19,7 +19,7 @@ common.cpp common.h \ debug.cpp debug.h \ Disassembler.cpp Disassembler.h \ - emufile.h emufile.cpp emufile_types.h FIFO.cpp FIFO.h \ + emufile.h emufile.cpp emufile_types.h encrypt.h encrypt.cpp FIFO.cpp FIFO.h \ firmware.cpp firmware.h GPU.cpp GPU.h \ fs.h \ GPU_osd.h \ @@ -36,6 +36,7 @@ rtc.cpp rtc.h \ saves.cpp saves.h \ slot1.cpp slot1.h \ + slot2.cpp slot2.h \ SPU.cpp SPU.h \ matrix.cpp matrix.h \ gfx3d.cpp gfx3d.h \ @@ -43,9 +44,11 @@ shaders.h \ movie.cpp movie.h \ PACKED.h PACKED_END.h \ + utils/advanscene.cpp utils/advanscene.h \ utils/datetime.cpp utils/datetime.h \ utils/ConvertUTF.c utils/ConvertUTF.h utils/guid.cpp utils/guid.h \ utils/emufat.cpp utils/emufat.h utils/emufat_types.h \ + utils/fsnitro.cpp utils/fsnitro.h \ utils/md5.cpp utils/md5.h utils/valuearray.h utils/xstring.cpp utils/xstring.h \ utils/decrypt/crc.cpp utils/decrypt/crc.h utils/decrypt/decrypt.cpp \ utils/decrypt/decrypt.h utils/decrypt/header.cpp utils/decrypt/header.h \ @@ -85,8 +88,7 @@ utils/tinyxml/tinyxml.h \ utils/tinyxml/tinyxmlerror.cpp \ utils/tinyxml/tinyxmlparser.cpp \ - addons.cpp addons.h \ - addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail.cpp addons/slot1_retail_nand.cpp \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot2_passme.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp addons/slot1_retail_mcrom.cpp addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp addons/slot1comp_mc.h addons/slot1comp_rom.h addons/slot1comp_rom.cpp addons/slot1comp_protocol.h addons/slot1comp_protocol.cpp \ cheatSystem.cpp cheatSystem.h \ texcache.cpp texcache.h rasterize.cpp rasterize.h \ metaspu/metaspu.cpp metaspu/metaspu.h \ diff -Nru desmume-0.9.9/src/Makefile.in desmume-0.9.10/src/Makefile.in --- desmume-0.9.9/src/Makefile.in 2013-05-01 21:30:07.000000000 +0000 +++ desmume-0.9.10/src/Makefile.in 2013-11-28 00:43:26.158898402 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,8 +78,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/src/desmume.mk +DIST_COMMON = $(top_srcdir)/src/desmume.mk $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp @HAVE_JIT_TRUE@am__append_1 = \ @HAVE_JIT_TRUE@ arm_jit.cpp arm_jit.h instruction_attributes.h \ @HAVE_JIT_TRUE@ utils/AsmJit/AsmJit.h \ @@ -136,8 +163,7 @@ @HAVE_GDB_STUB_TRUE@am__append_11 = gdbstub.h subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -146,26 +172,32 @@ LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = libdesmume_a_AR = $(AR) $(ARFLAGS) libdesmume_a_DEPENDENCIES = fs-$(desmume_arch).$(OBJEXT) am__libdesmume_a_SOURCES_DIST = armcpu.cpp armcpu.h \ arm_instructions.cpp agg2d.h agg2d.inl bios.cpp bios.h bits.h \ cp15.cpp cp15.h commandline.h commandline.cpp common.cpp \ common.h debug.cpp debug.h Disassembler.cpp Disassembler.h \ - emufile.h emufile.cpp emufile_types.h FIFO.cpp FIFO.h \ - firmware.cpp firmware.h GPU.cpp GPU.h fs.h GPU_osd.h \ - instructions.h mem.h mc.cpp mc.h path.cpp path.h readwrite.cpp \ - readwrite.h wifi.cpp wifi.h mic.h MMU.cpp MMU.h MMU_timing.h \ - NDSSystem.cpp NDSSystem.h registers.h OGLRender.h \ + emufile.h emufile.cpp emufile_types.h encrypt.h encrypt.cpp \ + FIFO.cpp FIFO.h firmware.cpp firmware.h GPU.cpp GPU.h fs.h \ + GPU_osd.h instructions.h mem.h mc.cpp mc.h path.cpp path.h \ + readwrite.cpp readwrite.h wifi.cpp wifi.h mic.h MMU.cpp MMU.h \ + MMU_timing.h NDSSystem.cpp NDSSystem.h registers.h OGLRender.h \ ROMReader.cpp ROMReader.h render3D.cpp render3D.h rtc.cpp \ - rtc.h saves.cpp saves.h slot1.cpp slot1.h SPU.cpp SPU.h \ - matrix.cpp matrix.h gfx3d.cpp gfx3d.h thumb_instructions.cpp \ - types.h shaders.h movie.cpp movie.h PACKED.h PACKED_END.h \ + rtc.h saves.cpp saves.h slot1.cpp slot1.h slot2.cpp slot2.h \ + SPU.cpp SPU.h matrix.cpp matrix.h gfx3d.cpp gfx3d.h \ + thumb_instructions.cpp types.h shaders.h movie.cpp movie.h \ + PACKED.h PACKED_END.h utils/advanscene.cpp utils/advanscene.h \ utils/datetime.cpp utils/datetime.h utils/ConvertUTF.c \ utils/ConvertUTF.h utils/guid.cpp utils/guid.h \ utils/emufat.cpp utils/emufat.h utils/emufat_types.h \ - utils/md5.cpp utils/md5.h utils/valuearray.h utils/xstring.cpp \ - utils/xstring.h utils/decrypt/crc.cpp utils/decrypt/crc.h \ + utils/fsnitro.cpp utils/fsnitro.h utils/md5.cpp utils/md5.h \ + utils/valuearray.h utils/xstring.cpp utils/xstring.h \ + utils/decrypt/crc.cpp utils/decrypt/crc.h \ utils/decrypt/decrypt.cpp utils/decrypt/decrypt.h \ utils/decrypt/header.cpp utils/decrypt/header.h utils/task.cpp \ utils/task.h utils/vfat.h utils/vfat.cpp utils/dlditool.cpp \ @@ -186,13 +218,18 @@ utils/tinyxml/tinystr.cpp utils/tinyxml/tinystr.h \ utils/tinyxml/tinyxml.cpp utils/tinyxml/tinyxml.h \ utils/tinyxml/tinyxmlerror.cpp utils/tinyxml/tinyxmlparser.cpp \ - addons.cpp addons.h addons/slot2_mpcf.cpp \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp \ addons/slot2_paddle.cpp addons/slot2_gbagame.cpp \ addons/slot2_none.cpp addons/slot2_rumblepak.cpp \ addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp \ - addons/slot2_piano.cpp addons/slot1_none.cpp \ - addons/slot1_r4.cpp addons/slot1_retail.cpp \ - addons/slot1_retail_nand.cpp cheatSystem.cpp cheatSystem.h \ + addons/slot2_piano.cpp addons/slot2_passme.cpp \ + addons/slot1_none.cpp addons/slot1_r4.cpp \ + addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp \ + addons/slot1_retail_mcrom.cpp \ + addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp \ + addons/slot1comp_mc.h addons/slot1comp_rom.h \ + addons/slot1comp_rom.cpp addons/slot1comp_protocol.h \ + addons/slot1comp_protocol.cpp cheatSystem.cpp cheatSystem.h \ texcache.cpp texcache.h rasterize.cpp rasterize.h \ metaspu/metaspu.cpp metaspu/metaspu.h filter/2xsai.cpp \ filter/bilinear.cpp filter/epx.cpp filter/filter.h \ @@ -252,28 +289,43 @@ metaspu/SndOut.cpp metaspu/SndOut.h metaspu/Timestretcher.cpp \ aggdraw.cpp aggdraw.h GPU_osd.cpp GPU_osd_stub.cpp \ lua-engine.cpp gdbstub.h -@HAVE_JIT_TRUE@am__objects_1 = arm_jit.$(OBJEXT) assembler.$(OBJEXT) \ -@HAVE_JIT_TRUE@ assert.$(OBJEXT) buffer.$(OBJEXT) \ -@HAVE_JIT_TRUE@ compiler.$(OBJEXT) compilercontext.$(OBJEXT) \ -@HAVE_JIT_TRUE@ compilerfunc.$(OBJEXT) compileritem.$(OBJEXT) \ -@HAVE_JIT_TRUE@ context.$(OBJEXT) cpuinfo.$(OBJEXT) \ -@HAVE_JIT_TRUE@ defs.$(OBJEXT) func.$(OBJEXT) logger.$(OBJEXT) \ -@HAVE_JIT_TRUE@ memorymanager.$(OBJEXT) memorymarker.$(OBJEXT) \ -@HAVE_JIT_TRUE@ operand.$(OBJEXT) stringbuilder.$(OBJEXT) \ -@HAVE_JIT_TRUE@ stringutil.$(OBJEXT) virtualmemory.$(OBJEXT) \ -@HAVE_JIT_TRUE@ zonememory.$(OBJEXT) x86assembler.$(OBJEXT) \ -@HAVE_JIT_TRUE@ x86compiler.$(OBJEXT) \ -@HAVE_JIT_TRUE@ x86compilercontext.$(OBJEXT) \ -@HAVE_JIT_TRUE@ x86compilerfunc.$(OBJEXT) \ -@HAVE_JIT_TRUE@ x86compileritem.$(OBJEXT) x86cpuinfo.$(OBJEXT) \ -@HAVE_JIT_TRUE@ x86defs.$(OBJEXT) x86func.$(OBJEXT) \ -@HAVE_JIT_TRUE@ x86operand.$(OBJEXT) x86util.$(OBJEXT) +am__dirstamp = $(am__leading_dot)dirstamp +@HAVE_JIT_TRUE@am__objects_1 = arm_jit.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/assembler.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/assert.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/buffer.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/compiler.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/compilercontext.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/compilerfunc.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/compileritem.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/context.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/cpuinfo.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/defs.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/func.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/logger.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/memorymanager.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/memorymarker.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/operand.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/stringbuilder.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/stringutil.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/virtualmemory.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/core/zonememory.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86assembler.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86compiler.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86compilercontext.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86compilerfunc.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86compileritem.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86cpuinfo.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86defs.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86func.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86operand.$(OBJEXT) \ +@HAVE_JIT_TRUE@ utils/AsmJit/x86/x86util.$(OBJEXT) @HAVE_GL_TRUE@am__objects_2 = OGLRender.$(OBJEXT) @HAVE_OPENAL_TRUE@am__objects_3 = mic_openal.$(OBJEXT) @HAVE_ALSA_TRUE@@HAVE_OPENAL_FALSE@am__objects_4 = mic_alsa.$(OBJEXT) @HAVE_ALSA_FALSE@@HAVE_OPENAL_FALSE@am__objects_5 = mic.$(OBJEXT) -@HAVE_LIBSOUNDTOUCH_TRUE@am__objects_6 = SndOut.$(OBJEXT) \ -@HAVE_LIBSOUNDTOUCH_TRUE@ Timestretcher.$(OBJEXT) +@HAVE_LIBSOUNDTOUCH_TRUE@am__objects_6 = metaspu/SndOut.$(OBJEXT) \ +@HAVE_LIBSOUNDTOUCH_TRUE@ metaspu/Timestretcher.$(OBJEXT) @HAVE_LIBAGG_TRUE@am__objects_7 = aggdraw.$(OBJEXT) GPU_osd.$(OBJEXT) @HAVE_LIBAGG_FALSE@am__objects_8 = GPU_osd_stub.$(OBJEXT) @HAVE_LUA_TRUE@am__objects_9 = lua-engine.$(OBJEXT) @@ -281,58 +333,105 @@ am_libdesmume_a_OBJECTS = armcpu.$(OBJEXT) arm_instructions.$(OBJEXT) \ bios.$(OBJEXT) cp15.$(OBJEXT) commandline.$(OBJEXT) \ common.$(OBJEXT) debug.$(OBJEXT) Disassembler.$(OBJEXT) \ - emufile.$(OBJEXT) FIFO.$(OBJEXT) firmware.$(OBJEXT) \ - GPU.$(OBJEXT) mc.$(OBJEXT) path.$(OBJEXT) readwrite.$(OBJEXT) \ - wifi.$(OBJEXT) MMU.$(OBJEXT) NDSSystem.$(OBJEXT) \ - ROMReader.$(OBJEXT) render3D.$(OBJEXT) rtc.$(OBJEXT) \ - saves.$(OBJEXT) slot1.$(OBJEXT) SPU.$(OBJEXT) matrix.$(OBJEXT) \ - gfx3d.$(OBJEXT) thumb_instructions.$(OBJEXT) movie.$(OBJEXT) \ - datetime.$(OBJEXT) ConvertUTF.$(OBJEXT) guid.$(OBJEXT) \ - emufat.$(OBJEXT) md5.$(OBJEXT) xstring.$(OBJEXT) crc.$(OBJEXT) \ - decrypt.$(OBJEXT) header.$(OBJEXT) task.$(OBJEXT) \ - vfat.$(OBJEXT) dlditool.$(OBJEXT) cache.$(OBJEXT) \ - directory.$(OBJEXT) disc.$(OBJEXT) fatdir.$(OBJEXT) \ - fatfile.$(OBJEXT) filetime.$(OBJEXT) \ - file_allocation_table.$(OBJEXT) libfat.$(OBJEXT) \ - libfat_public_api.$(OBJEXT) lock.$(OBJEXT) partition.$(OBJEXT) \ - tinystr.$(OBJEXT) tinyxml.$(OBJEXT) tinyxmlerror.$(OBJEXT) \ - tinyxmlparser.$(OBJEXT) addons.$(OBJEXT) slot2_mpcf.$(OBJEXT) \ - slot2_paddle.$(OBJEXT) slot2_gbagame.$(OBJEXT) \ - slot2_none.$(OBJEXT) slot2_rumblepak.$(OBJEXT) \ - slot2_guitarGrip.$(OBJEXT) slot2_expMemory.$(OBJEXT) \ - slot2_piano.$(OBJEXT) slot1_none.$(OBJEXT) slot1_r4.$(OBJEXT) \ - slot1_retail.$(OBJEXT) slot1_retail_nand.$(OBJEXT) \ - cheatSystem.$(OBJEXT) texcache.$(OBJEXT) rasterize.$(OBJEXT) \ - metaspu.$(OBJEXT) 2xsai.$(OBJEXT) bilinear.$(OBJEXT) \ - epx.$(OBJEXT) hq2x.$(OBJEXT) hq4x.$(OBJEXT) lq2x.$(OBJEXT) \ - scanline.$(OBJEXT) videofilter.$(OBJEXT) version.$(OBJEXT) \ + emufile.$(OBJEXT) encrypt.$(OBJEXT) FIFO.$(OBJEXT) \ + firmware.$(OBJEXT) GPU.$(OBJEXT) mc.$(OBJEXT) path.$(OBJEXT) \ + readwrite.$(OBJEXT) wifi.$(OBJEXT) MMU.$(OBJEXT) \ + NDSSystem.$(OBJEXT) ROMReader.$(OBJEXT) render3D.$(OBJEXT) \ + rtc.$(OBJEXT) saves.$(OBJEXT) slot1.$(OBJEXT) slot2.$(OBJEXT) \ + SPU.$(OBJEXT) matrix.$(OBJEXT) gfx3d.$(OBJEXT) \ + thumb_instructions.$(OBJEXT) movie.$(OBJEXT) \ + utils/advanscene.$(OBJEXT) utils/datetime.$(OBJEXT) \ + utils/ConvertUTF.$(OBJEXT) utils/guid.$(OBJEXT) \ + utils/emufat.$(OBJEXT) utils/fsnitro.$(OBJEXT) \ + utils/md5.$(OBJEXT) utils/xstring.$(OBJEXT) \ + utils/decrypt/crc.$(OBJEXT) utils/decrypt/decrypt.$(OBJEXT) \ + utils/decrypt/header.$(OBJEXT) utils/task.$(OBJEXT) \ + utils/vfat.$(OBJEXT) utils/dlditool.$(OBJEXT) \ + utils/libfat/cache.$(OBJEXT) utils/libfat/directory.$(OBJEXT) \ + utils/libfat/disc.$(OBJEXT) utils/libfat/fatdir.$(OBJEXT) \ + utils/libfat/fatfile.$(OBJEXT) utils/libfat/filetime.$(OBJEXT) \ + utils/libfat/file_allocation_table.$(OBJEXT) \ + utils/libfat/libfat.$(OBJEXT) \ + utils/libfat/libfat_public_api.$(OBJEXT) \ + utils/libfat/lock.$(OBJEXT) utils/libfat/partition.$(OBJEXT) \ + utils/tinyxml/tinystr.$(OBJEXT) \ + utils/tinyxml/tinyxml.$(OBJEXT) \ + utils/tinyxml/tinyxmlerror.$(OBJEXT) \ + utils/tinyxml/tinyxmlparser.$(OBJEXT) \ + addons/slot2_auto.$(OBJEXT) addons/slot2_mpcf.$(OBJEXT) \ + addons/slot2_paddle.$(OBJEXT) addons/slot2_gbagame.$(OBJEXT) \ + addons/slot2_none.$(OBJEXT) addons/slot2_rumblepak.$(OBJEXT) \ + addons/slot2_guitarGrip.$(OBJEXT) \ + addons/slot2_expMemory.$(OBJEXT) addons/slot2_piano.$(OBJEXT) \ + addons/slot2_passme.$(OBJEXT) addons/slot1_none.$(OBJEXT) \ + addons/slot1_r4.$(OBJEXT) addons/slot1_retail_nand.$(OBJEXT) \ + addons/slot1_retail_auto.$(OBJEXT) \ + addons/slot1_retail_mcrom.$(OBJEXT) \ + addons/slot1_retail_mcrom_debug.$(OBJEXT) \ + addons/slot1comp_mc.$(OBJEXT) addons/slot1comp_rom.$(OBJEXT) \ + addons/slot1comp_protocol.$(OBJEXT) cheatSystem.$(OBJEXT) \ + texcache.$(OBJEXT) rasterize.$(OBJEXT) \ + metaspu/metaspu.$(OBJEXT) filter/2xsai.$(OBJEXT) \ + filter/bilinear.$(OBJEXT) filter/epx.$(OBJEXT) \ + filter/hq2x.$(OBJEXT) filter/hq4x.$(OBJEXT) \ + filter/lq2x.$(OBJEXT) filter/scanline.$(OBJEXT) \ + filter/videofilter.$(OBJEXT) version.$(OBJEXT) \ desmume_config.$(OBJEXT) $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) $(am__objects_5) \ $(am__objects_6) $(am__objects_7) $(am__objects_8) \ $(am__objects_9) $(am__objects_10) libdesmume_a_OBJECTS = $(am_libdesmume_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libdesmume_a_SOURCES) DIST_SOURCES = $(am__libdesmume_a_SOURCES_DIST) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -340,9 +439,29 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -404,6 +523,7 @@ GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GLX_LIBS = @GLX_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -477,16 +597,6 @@ USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ @@ -555,24 +665,26 @@ EXTRA_DIST = build.bat instruction_tabdef.inc thumb_tabdef.inc fs-linux.cpp fs-windows.cpp cocoa @HAVE_GDB_STUB_FALSE@SUBDIRS = . $(UI_DIR) @HAVE_GDB_STUB_TRUE@SUBDIRS = . gdbstub $(UI_DIR) -DIST_SUBDIRS = . gdbstub cli gtk gtk-glade wx +DIST_SUBDIRS = . gdbstub cli gtk gtk-glade noinst_LIBRARIES = libdesmume.a libdesmume_a_SOURCES = armcpu.cpp armcpu.h arm_instructions.cpp \ agg2d.h agg2d.inl bios.cpp bios.h bits.h cp15.cpp cp15.h \ commandline.h commandline.cpp common.cpp common.h debug.cpp \ debug.h Disassembler.cpp Disassembler.h emufile.h emufile.cpp \ - emufile_types.h FIFO.cpp FIFO.h firmware.cpp firmware.h \ - GPU.cpp GPU.h fs.h GPU_osd.h instructions.h mem.h mc.cpp mc.h \ - path.cpp path.h readwrite.cpp readwrite.h wifi.cpp wifi.h \ - mic.h MMU.cpp MMU.h MMU_timing.h NDSSystem.cpp NDSSystem.h \ - registers.h OGLRender.h ROMReader.cpp ROMReader.h render3D.cpp \ - render3D.h rtc.cpp rtc.h saves.cpp saves.h slot1.cpp slot1.h \ + emufile_types.h encrypt.h encrypt.cpp FIFO.cpp FIFO.h \ + firmware.cpp firmware.h GPU.cpp GPU.h fs.h GPU_osd.h \ + instructions.h mem.h mc.cpp mc.h path.cpp path.h readwrite.cpp \ + readwrite.h wifi.cpp wifi.h mic.h MMU.cpp MMU.h MMU_timing.h \ + NDSSystem.cpp NDSSystem.h registers.h OGLRender.h \ + ROMReader.cpp ROMReader.h render3D.cpp render3D.h rtc.cpp \ + rtc.h saves.cpp saves.h slot1.cpp slot1.h slot2.cpp slot2.h \ SPU.cpp SPU.h matrix.cpp matrix.h gfx3d.cpp gfx3d.h \ thumb_instructions.cpp types.h shaders.h movie.cpp movie.h \ - PACKED.h PACKED_END.h utils/datetime.cpp utils/datetime.h \ - utils/ConvertUTF.c utils/ConvertUTF.h utils/guid.cpp \ - utils/guid.h utils/emufat.cpp utils/emufat.h \ - utils/emufat_types.h utils/md5.cpp utils/md5.h \ + PACKED.h PACKED_END.h utils/advanscene.cpp utils/advanscene.h \ + utils/datetime.cpp utils/datetime.h utils/ConvertUTF.c \ + utils/ConvertUTF.h utils/guid.cpp utils/guid.h \ + utils/emufat.cpp utils/emufat.h utils/emufat_types.h \ + utils/fsnitro.cpp utils/fsnitro.h utils/md5.cpp utils/md5.h \ utils/valuearray.h utils/xstring.cpp utils/xstring.h \ utils/decrypt/crc.cpp utils/decrypt/crc.h \ utils/decrypt/decrypt.cpp utils/decrypt/decrypt.h \ @@ -595,13 +707,18 @@ utils/tinyxml/tinystr.cpp utils/tinyxml/tinystr.h \ utils/tinyxml/tinyxml.cpp utils/tinyxml/tinyxml.h \ utils/tinyxml/tinyxmlerror.cpp utils/tinyxml/tinyxmlparser.cpp \ - addons.cpp addons.h addons/slot2_mpcf.cpp \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp \ addons/slot2_paddle.cpp addons/slot2_gbagame.cpp \ addons/slot2_none.cpp addons/slot2_rumblepak.cpp \ addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp \ - addons/slot2_piano.cpp addons/slot1_none.cpp \ - addons/slot1_r4.cpp addons/slot1_retail.cpp \ - addons/slot1_retail_nand.cpp cheatSystem.cpp cheatSystem.h \ + addons/slot2_piano.cpp addons/slot2_passme.cpp \ + addons/slot1_none.cpp addons/slot1_r4.cpp \ + addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp \ + addons/slot1_retail_mcrom.cpp \ + addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp \ + addons/slot1comp_mc.h addons/slot1comp_rom.h \ + addons/slot1comp_rom.cpp addons/slot1comp_protocol.h \ + addons/slot1comp_protocol.cpp cheatSystem.cpp cheatSystem.h \ texcache.cpp texcache.h rasterize.cpp rasterize.h \ metaspu/metaspu.cpp metaspu/metaspu.h filter/2xsai.cpp \ filter/bilinear.cpp filter/epx.cpp filter/filter.h \ @@ -652,19 +769,280 @@ clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +utils/$(am__dirstamp): + @$(MKDIR_P) utils + @: > utils/$(am__dirstamp) +utils/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) utils/$(DEPDIR) + @: > utils/$(DEPDIR)/$(am__dirstamp) +utils/advanscene.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/datetime.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/ConvertUTF.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/guid.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/emufat.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/fsnitro.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/md5.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/xstring.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/decrypt/$(am__dirstamp): + @$(MKDIR_P) utils/decrypt + @: > utils/decrypt/$(am__dirstamp) +utils/decrypt/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) utils/decrypt/$(DEPDIR) + @: > utils/decrypt/$(DEPDIR)/$(am__dirstamp) +utils/decrypt/crc.$(OBJEXT): utils/decrypt/$(am__dirstamp) \ + utils/decrypt/$(DEPDIR)/$(am__dirstamp) +utils/decrypt/decrypt.$(OBJEXT): utils/decrypt/$(am__dirstamp) \ + utils/decrypt/$(DEPDIR)/$(am__dirstamp) +utils/decrypt/header.$(OBJEXT): utils/decrypt/$(am__dirstamp) \ + utils/decrypt/$(DEPDIR)/$(am__dirstamp) +utils/task.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/vfat.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/dlditool.$(OBJEXT): utils/$(am__dirstamp) \ + utils/$(DEPDIR)/$(am__dirstamp) +utils/libfat/$(am__dirstamp): + @$(MKDIR_P) utils/libfat + @: > utils/libfat/$(am__dirstamp) +utils/libfat/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) utils/libfat/$(DEPDIR) + @: > utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/cache.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/directory.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/disc.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/fatdir.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/fatfile.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/filetime.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/file_allocation_table.$(OBJEXT): \ + utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/libfat.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/libfat_public_api.$(OBJEXT): \ + utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/lock.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/libfat/partition.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +utils/tinyxml/$(am__dirstamp): + @$(MKDIR_P) utils/tinyxml + @: > utils/tinyxml/$(am__dirstamp) +utils/tinyxml/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) utils/tinyxml/$(DEPDIR) + @: > utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +utils/tinyxml/tinystr.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ + utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +utils/tinyxml/tinyxml.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ + utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +utils/tinyxml/tinyxmlerror.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ + utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +utils/tinyxml/tinyxmlparser.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ + utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +addons/$(am__dirstamp): + @$(MKDIR_P) addons + @: > addons/$(am__dirstamp) +addons/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) addons/$(DEPDIR) + @: > addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_auto.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_mpcf.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_paddle.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_gbagame.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_none.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_rumblepak.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_guitarGrip.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_expMemory.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_piano.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot2_passme.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1_none.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1_r4.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1_retail_nand.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1_retail_auto.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1_retail_mcrom.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1_retail_mcrom_debug.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1comp_mc.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1comp_rom.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +addons/slot1comp_protocol.$(OBJEXT): addons/$(am__dirstamp) \ + addons/$(DEPDIR)/$(am__dirstamp) +metaspu/$(am__dirstamp): + @$(MKDIR_P) metaspu + @: > metaspu/$(am__dirstamp) +metaspu/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) metaspu/$(DEPDIR) + @: > metaspu/$(DEPDIR)/$(am__dirstamp) +metaspu/metaspu.$(OBJEXT): metaspu/$(am__dirstamp) \ + metaspu/$(DEPDIR)/$(am__dirstamp) +filter/$(am__dirstamp): + @$(MKDIR_P) filter + @: > filter/$(am__dirstamp) +filter/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) filter/$(DEPDIR) + @: > filter/$(DEPDIR)/$(am__dirstamp) +filter/2xsai.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/bilinear.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/epx.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/hq2x.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/hq4x.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/lq2x.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/scanline.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +filter/videofilter.$(OBJEXT): filter/$(am__dirstamp) \ + filter/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/$(am__dirstamp): + @$(MKDIR_P) utils/AsmJit/core + @: > utils/AsmJit/core/$(am__dirstamp) +utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) utils/AsmJit/core/$(DEPDIR) + @: > utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/assembler.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/assert.$(OBJEXT): utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/buffer.$(OBJEXT): utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/compiler.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/compilercontext.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/compilerfunc.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/compileritem.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/context.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/cpuinfo.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/defs.$(OBJEXT): utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/func.$(OBJEXT): utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/logger.$(OBJEXT): utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/memorymanager.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/memorymarker.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/operand.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/stringbuilder.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/stringutil.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/virtualmemory.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/core/zonememory.$(OBJEXT): \ + utils/AsmJit/core/$(am__dirstamp) \ + utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/$(am__dirstamp): + @$(MKDIR_P) utils/AsmJit/x86 + @: > utils/AsmJit/x86/$(am__dirstamp) +utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) utils/AsmJit/x86/$(DEPDIR) + @: > utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86assembler.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86compiler.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86compilercontext.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86compilerfunc.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86compileritem.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86cpuinfo.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86defs.$(OBJEXT): utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86func.$(OBJEXT): utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86operand.$(OBJEXT): \ + utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +utils/AsmJit/x86/x86util.$(OBJEXT): utils/AsmJit/x86/$(am__dirstamp) \ + utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) +metaspu/SndOut.$(OBJEXT): metaspu/$(am__dirstamp) \ + metaspu/$(DEPDIR)/$(am__dirstamp) +metaspu/Timestretcher.$(OBJEXT): metaspu/$(am__dirstamp) \ + metaspu/$(DEPDIR)/$(am__dirstamp) + libdesmume.a: $(libdesmume_a_OBJECTS) $(libdesmume_a_DEPENDENCIES) $(EXTRA_libdesmume_a_DEPENDENCIES) - -rm -f libdesmume.a - $(libdesmume_a_AR) libdesmume.a $(libdesmume_a_OBJECTS) $(libdesmume_a_LIBADD) - $(RANLIB) libdesmume.a + $(AM_V_at)-rm -f libdesmume.a + $(AM_V_AR)$(libdesmume_a_AR) libdesmume.a $(libdesmume_a_OBJECTS) $(libdesmume_a_LIBADD) + $(AM_V_at)$(RANLIB) libdesmume.a mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f addons/*.$(OBJEXT) + -rm -f filter/*.$(OBJEXT) + -rm -f metaspu/*.$(OBJEXT) + -rm -f utils/*.$(OBJEXT) + -rm -f utils/AsmJit/core/*.$(OBJEXT) + -rm -f utils/AsmJit/x86/*.$(OBJEXT) + -rm -f utils/decrypt/*.$(OBJEXT) + -rm -f utils/libfat/*.$(OBJEXT) + -rm -f utils/tinyxml/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/2xsai.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvertUTF.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Disassembler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FIFO.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GPU.Po@am__quote@ @@ -675,1268 +1053,181 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OGLRender.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ROMReader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SPU.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SndOut.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Timestretcher.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aggdraw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_instructions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_jit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/armcpu.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assembler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assert.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bilinear.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bios.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cheatSystem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compiler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compilercontext.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compilerfunc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compileritem.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cp15.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpuinfo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datetime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decrypt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desmume_config.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/directory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlditool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emufat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emufile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fatdir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fatfile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_allocation_table.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filetime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encrypt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/firmware.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gfx3d.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guid.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/header.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hq2x.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hq4x.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfat_public_api.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lq2x.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lua-engine.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memorymanager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memorymarker.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metaspu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mic_alsa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mic_openal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/movie.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/partition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readwrite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/render3D.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/saves.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot1_none.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot1_r4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot1_retail.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot1_retail_nand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_expMemory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_gbagame.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_guitarGrip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_mpcf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_none.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_paddle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_piano.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2_rumblepak.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringbuilder.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texcache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thumb_instructions.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinystr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxml.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlerror.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlparser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/videofilter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualmemory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wifi.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86assembler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86compiler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86compilercontext.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86compilerfunc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86compileritem.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86cpuinfo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86defs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86func.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86operand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstring.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zonememory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1_none.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1_r4.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1_retail_auto.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1_retail_mcrom.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1_retail_mcrom_debug.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1_retail_nand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1comp_mc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1comp_protocol.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot1comp_rom.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_auto.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_expMemory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_gbagame.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_guitarGrip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_mpcf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_none.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_paddle.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_passme.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_piano.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@addons/$(DEPDIR)/slot2_rumblepak.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/2xsai.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/bilinear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/epx.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/hq2x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/hq4x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/lq2x.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/scanline.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@filter/$(DEPDIR)/videofilter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@metaspu/$(DEPDIR)/SndOut.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@metaspu/$(DEPDIR)/Timestretcher.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@metaspu/$(DEPDIR)/metaspu.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/ConvertUTF.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/advanscene.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/datetime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/dlditool.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/emufat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/fsnitro.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/guid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/md5.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/task.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/vfat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/xstring.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/assembler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/assert.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/buffer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/compiler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/compilercontext.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/compilerfunc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/compileritem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/context.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/cpuinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/defs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/func.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/logger.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/memorymanager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/memorymarker.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/operand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/stringbuilder.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/stringutil.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/virtualmemory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/core/$(DEPDIR)/zonememory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86assembler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86compiler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86compilercontext.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86compilerfunc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86compileritem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86cpuinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86defs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86func.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86operand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/AsmJit/x86/$(DEPDIR)/x86util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/decrypt/$(DEPDIR)/crc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/decrypt/$(DEPDIR)/decrypt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/decrypt/$(DEPDIR)/header.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/cache.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/directory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/disc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/fatdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/fatfile.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/file_allocation_table.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/filetime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/libfat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/libfat_public_api.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/lock.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/partition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinystr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxmlerror.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxmlparser.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -ConvertUTF.o: utils/ConvertUTF.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ConvertUTF.o -MD -MP -MF $(DEPDIR)/ConvertUTF.Tpo -c -o ConvertUTF.o `test -f 'utils/ConvertUTF.c' || echo '$(srcdir)/'`utils/ConvertUTF.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/ConvertUTF.Tpo $(DEPDIR)/ConvertUTF.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils/ConvertUTF.c' object='ConvertUTF.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ConvertUTF.o `test -f 'utils/ConvertUTF.c' || echo '$(srcdir)/'`utils/ConvertUTF.c - -ConvertUTF.obj: utils/ConvertUTF.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ConvertUTF.obj -MD -MP -MF $(DEPDIR)/ConvertUTF.Tpo -c -o ConvertUTF.obj `if test -f 'utils/ConvertUTF.c'; then $(CYGPATH_W) 'utils/ConvertUTF.c'; else $(CYGPATH_W) '$(srcdir)/utils/ConvertUTF.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/ConvertUTF.Tpo $(DEPDIR)/ConvertUTF.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils/ConvertUTF.c' object='ConvertUTF.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ConvertUTF.obj `if test -f 'utils/ConvertUTF.c'; then $(CYGPATH_W) 'utils/ConvertUTF.c'; else $(CYGPATH_W) '$(srcdir)/utils/ConvertUTF.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -datetime.o: utils/datetime.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT datetime.o -MD -MP -MF $(DEPDIR)/datetime.Tpo -c -o datetime.o `test -f 'utils/datetime.cpp' || echo '$(srcdir)/'`utils/datetime.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/datetime.Tpo $(DEPDIR)/datetime.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/datetime.cpp' object='datetime.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o datetime.o `test -f 'utils/datetime.cpp' || echo '$(srcdir)/'`utils/datetime.cpp - -datetime.obj: utils/datetime.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT datetime.obj -MD -MP -MF $(DEPDIR)/datetime.Tpo -c -o datetime.obj `if test -f 'utils/datetime.cpp'; then $(CYGPATH_W) 'utils/datetime.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/datetime.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/datetime.Tpo $(DEPDIR)/datetime.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/datetime.cpp' object='datetime.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o datetime.obj `if test -f 'utils/datetime.cpp'; then $(CYGPATH_W) 'utils/datetime.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/datetime.cpp'; fi` - -guid.o: utils/guid.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT guid.o -MD -MP -MF $(DEPDIR)/guid.Tpo -c -o guid.o `test -f 'utils/guid.cpp' || echo '$(srcdir)/'`utils/guid.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/guid.Tpo $(DEPDIR)/guid.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/guid.cpp' object='guid.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o guid.o `test -f 'utils/guid.cpp' || echo '$(srcdir)/'`utils/guid.cpp - -guid.obj: utils/guid.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT guid.obj -MD -MP -MF $(DEPDIR)/guid.Tpo -c -o guid.obj `if test -f 'utils/guid.cpp'; then $(CYGPATH_W) 'utils/guid.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/guid.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/guid.Tpo $(DEPDIR)/guid.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/guid.cpp' object='guid.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o guid.obj `if test -f 'utils/guid.cpp'; then $(CYGPATH_W) 'utils/guid.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/guid.cpp'; fi` - -emufat.o: utils/emufat.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT emufat.o -MD -MP -MF $(DEPDIR)/emufat.Tpo -c -o emufat.o `test -f 'utils/emufat.cpp' || echo '$(srcdir)/'`utils/emufat.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/emufat.Tpo $(DEPDIR)/emufat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/emufat.cpp' object='emufat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o emufat.o `test -f 'utils/emufat.cpp' || echo '$(srcdir)/'`utils/emufat.cpp - -emufat.obj: utils/emufat.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT emufat.obj -MD -MP -MF $(DEPDIR)/emufat.Tpo -c -o emufat.obj `if test -f 'utils/emufat.cpp'; then $(CYGPATH_W) 'utils/emufat.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/emufat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/emufat.Tpo $(DEPDIR)/emufat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/emufat.cpp' object='emufat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o emufat.obj `if test -f 'utils/emufat.cpp'; then $(CYGPATH_W) 'utils/emufat.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/emufat.cpp'; fi` - -md5.o: utils/md5.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT md5.o -MD -MP -MF $(DEPDIR)/md5.Tpo -c -o md5.o `test -f 'utils/md5.cpp' || echo '$(srcdir)/'`utils/md5.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/md5.Tpo $(DEPDIR)/md5.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/md5.cpp' object='md5.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o md5.o `test -f 'utils/md5.cpp' || echo '$(srcdir)/'`utils/md5.cpp - -md5.obj: utils/md5.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT md5.obj -MD -MP -MF $(DEPDIR)/md5.Tpo -c -o md5.obj `if test -f 'utils/md5.cpp'; then $(CYGPATH_W) 'utils/md5.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/md5.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/md5.Tpo $(DEPDIR)/md5.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/md5.cpp' object='md5.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o md5.obj `if test -f 'utils/md5.cpp'; then $(CYGPATH_W) 'utils/md5.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/md5.cpp'; fi` - -xstring.o: utils/xstring.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xstring.o -MD -MP -MF $(DEPDIR)/xstring.Tpo -c -o xstring.o `test -f 'utils/xstring.cpp' || echo '$(srcdir)/'`utils/xstring.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xstring.Tpo $(DEPDIR)/xstring.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/xstring.cpp' object='xstring.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xstring.o `test -f 'utils/xstring.cpp' || echo '$(srcdir)/'`utils/xstring.cpp - -xstring.obj: utils/xstring.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xstring.obj -MD -MP -MF $(DEPDIR)/xstring.Tpo -c -o xstring.obj `if test -f 'utils/xstring.cpp'; then $(CYGPATH_W) 'utils/xstring.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/xstring.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xstring.Tpo $(DEPDIR)/xstring.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/xstring.cpp' object='xstring.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xstring.obj `if test -f 'utils/xstring.cpp'; then $(CYGPATH_W) 'utils/xstring.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/xstring.cpp'; fi` - -crc.o: utils/decrypt/crc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT crc.o -MD -MP -MF $(DEPDIR)/crc.Tpo -c -o crc.o `test -f 'utils/decrypt/crc.cpp' || echo '$(srcdir)/'`utils/decrypt/crc.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/crc.Tpo $(DEPDIR)/crc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/decrypt/crc.cpp' object='crc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o crc.o `test -f 'utils/decrypt/crc.cpp' || echo '$(srcdir)/'`utils/decrypt/crc.cpp - -crc.obj: utils/decrypt/crc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT crc.obj -MD -MP -MF $(DEPDIR)/crc.Tpo -c -o crc.obj `if test -f 'utils/decrypt/crc.cpp'; then $(CYGPATH_W) 'utils/decrypt/crc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/decrypt/crc.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/crc.Tpo $(DEPDIR)/crc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/decrypt/crc.cpp' object='crc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o crc.obj `if test -f 'utils/decrypt/crc.cpp'; then $(CYGPATH_W) 'utils/decrypt/crc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/decrypt/crc.cpp'; fi` - -decrypt.o: utils/decrypt/decrypt.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT decrypt.o -MD -MP -MF $(DEPDIR)/decrypt.Tpo -c -o decrypt.o `test -f 'utils/decrypt/decrypt.cpp' || echo '$(srcdir)/'`utils/decrypt/decrypt.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/decrypt.Tpo $(DEPDIR)/decrypt.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/decrypt/decrypt.cpp' object='decrypt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o decrypt.o `test -f 'utils/decrypt/decrypt.cpp' || echo '$(srcdir)/'`utils/decrypt/decrypt.cpp - -decrypt.obj: utils/decrypt/decrypt.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT decrypt.obj -MD -MP -MF $(DEPDIR)/decrypt.Tpo -c -o decrypt.obj `if test -f 'utils/decrypt/decrypt.cpp'; then $(CYGPATH_W) 'utils/decrypt/decrypt.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/decrypt/decrypt.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/decrypt.Tpo $(DEPDIR)/decrypt.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/decrypt/decrypt.cpp' object='decrypt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o decrypt.obj `if test -f 'utils/decrypt/decrypt.cpp'; then $(CYGPATH_W) 'utils/decrypt/decrypt.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/decrypt/decrypt.cpp'; fi` - -header.o: utils/decrypt/header.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT header.o -MD -MP -MF $(DEPDIR)/header.Tpo -c -o header.o `test -f 'utils/decrypt/header.cpp' || echo '$(srcdir)/'`utils/decrypt/header.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/header.Tpo $(DEPDIR)/header.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/decrypt/header.cpp' object='header.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o header.o `test -f 'utils/decrypt/header.cpp' || echo '$(srcdir)/'`utils/decrypt/header.cpp - -header.obj: utils/decrypt/header.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT header.obj -MD -MP -MF $(DEPDIR)/header.Tpo -c -o header.obj `if test -f 'utils/decrypt/header.cpp'; then $(CYGPATH_W) 'utils/decrypt/header.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/decrypt/header.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/header.Tpo $(DEPDIR)/header.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/decrypt/header.cpp' object='header.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o header.obj `if test -f 'utils/decrypt/header.cpp'; then $(CYGPATH_W) 'utils/decrypt/header.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/decrypt/header.cpp'; fi` - -task.o: utils/task.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT task.o -MD -MP -MF $(DEPDIR)/task.Tpo -c -o task.o `test -f 'utils/task.cpp' || echo '$(srcdir)/'`utils/task.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/task.Tpo $(DEPDIR)/task.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/task.cpp' object='task.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o task.o `test -f 'utils/task.cpp' || echo '$(srcdir)/'`utils/task.cpp - -task.obj: utils/task.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT task.obj -MD -MP -MF $(DEPDIR)/task.Tpo -c -o task.obj `if test -f 'utils/task.cpp'; then $(CYGPATH_W) 'utils/task.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/task.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/task.Tpo $(DEPDIR)/task.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/task.cpp' object='task.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o task.obj `if test -f 'utils/task.cpp'; then $(CYGPATH_W) 'utils/task.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/task.cpp'; fi` - -vfat.o: utils/vfat.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vfat.o -MD -MP -MF $(DEPDIR)/vfat.Tpo -c -o vfat.o `test -f 'utils/vfat.cpp' || echo '$(srcdir)/'`utils/vfat.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/vfat.Tpo $(DEPDIR)/vfat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/vfat.cpp' object='vfat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vfat.o `test -f 'utils/vfat.cpp' || echo '$(srcdir)/'`utils/vfat.cpp - -vfat.obj: utils/vfat.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vfat.obj -MD -MP -MF $(DEPDIR)/vfat.Tpo -c -o vfat.obj `if test -f 'utils/vfat.cpp'; then $(CYGPATH_W) 'utils/vfat.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/vfat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/vfat.Tpo $(DEPDIR)/vfat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/vfat.cpp' object='vfat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vfat.obj `if test -f 'utils/vfat.cpp'; then $(CYGPATH_W) 'utils/vfat.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/vfat.cpp'; fi` - -dlditool.o: utils/dlditool.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dlditool.o -MD -MP -MF $(DEPDIR)/dlditool.Tpo -c -o dlditool.o `test -f 'utils/dlditool.cpp' || echo '$(srcdir)/'`utils/dlditool.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dlditool.Tpo $(DEPDIR)/dlditool.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/dlditool.cpp' object='dlditool.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dlditool.o `test -f 'utils/dlditool.cpp' || echo '$(srcdir)/'`utils/dlditool.cpp - -dlditool.obj: utils/dlditool.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dlditool.obj -MD -MP -MF $(DEPDIR)/dlditool.Tpo -c -o dlditool.obj `if test -f 'utils/dlditool.cpp'; then $(CYGPATH_W) 'utils/dlditool.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/dlditool.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dlditool.Tpo $(DEPDIR)/dlditool.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/dlditool.cpp' object='dlditool.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dlditool.obj `if test -f 'utils/dlditool.cpp'; then $(CYGPATH_W) 'utils/dlditool.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/dlditool.cpp'; fi` - -cache.o: utils/libfat/cache.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cache.o -MD -MP -MF $(DEPDIR)/cache.Tpo -c -o cache.o `test -f 'utils/libfat/cache.cpp' || echo '$(srcdir)/'`utils/libfat/cache.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/cache.Tpo $(DEPDIR)/cache.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/cache.cpp' object='cache.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cache.o `test -f 'utils/libfat/cache.cpp' || echo '$(srcdir)/'`utils/libfat/cache.cpp - -cache.obj: utils/libfat/cache.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cache.obj -MD -MP -MF $(DEPDIR)/cache.Tpo -c -o cache.obj `if test -f 'utils/libfat/cache.cpp'; then $(CYGPATH_W) 'utils/libfat/cache.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/cache.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/cache.Tpo $(DEPDIR)/cache.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/cache.cpp' object='cache.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cache.obj `if test -f 'utils/libfat/cache.cpp'; then $(CYGPATH_W) 'utils/libfat/cache.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/cache.cpp'; fi` - -directory.o: utils/libfat/directory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT directory.o -MD -MP -MF $(DEPDIR)/directory.Tpo -c -o directory.o `test -f 'utils/libfat/directory.cpp' || echo '$(srcdir)/'`utils/libfat/directory.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/directory.Tpo $(DEPDIR)/directory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/directory.cpp' object='directory.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o directory.o `test -f 'utils/libfat/directory.cpp' || echo '$(srcdir)/'`utils/libfat/directory.cpp - -directory.obj: utils/libfat/directory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT directory.obj -MD -MP -MF $(DEPDIR)/directory.Tpo -c -o directory.obj `if test -f 'utils/libfat/directory.cpp'; then $(CYGPATH_W) 'utils/libfat/directory.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/directory.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/directory.Tpo $(DEPDIR)/directory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/directory.cpp' object='directory.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o directory.obj `if test -f 'utils/libfat/directory.cpp'; then $(CYGPATH_W) 'utils/libfat/directory.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/directory.cpp'; fi` - -disc.o: utils/libfat/disc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT disc.o -MD -MP -MF $(DEPDIR)/disc.Tpo -c -o disc.o `test -f 'utils/libfat/disc.cpp' || echo '$(srcdir)/'`utils/libfat/disc.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/disc.Tpo $(DEPDIR)/disc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/disc.cpp' object='disc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o disc.o `test -f 'utils/libfat/disc.cpp' || echo '$(srcdir)/'`utils/libfat/disc.cpp - -disc.obj: utils/libfat/disc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT disc.obj -MD -MP -MF $(DEPDIR)/disc.Tpo -c -o disc.obj `if test -f 'utils/libfat/disc.cpp'; then $(CYGPATH_W) 'utils/libfat/disc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/disc.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/disc.Tpo $(DEPDIR)/disc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/disc.cpp' object='disc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o disc.obj `if test -f 'utils/libfat/disc.cpp'; then $(CYGPATH_W) 'utils/libfat/disc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/disc.cpp'; fi` - -fatdir.o: utils/libfat/fatdir.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fatdir.o -MD -MP -MF $(DEPDIR)/fatdir.Tpo -c -o fatdir.o `test -f 'utils/libfat/fatdir.cpp' || echo '$(srcdir)/'`utils/libfat/fatdir.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fatdir.Tpo $(DEPDIR)/fatdir.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/fatdir.cpp' object='fatdir.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fatdir.o `test -f 'utils/libfat/fatdir.cpp' || echo '$(srcdir)/'`utils/libfat/fatdir.cpp - -fatdir.obj: utils/libfat/fatdir.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fatdir.obj -MD -MP -MF $(DEPDIR)/fatdir.Tpo -c -o fatdir.obj `if test -f 'utils/libfat/fatdir.cpp'; then $(CYGPATH_W) 'utils/libfat/fatdir.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/fatdir.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fatdir.Tpo $(DEPDIR)/fatdir.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/fatdir.cpp' object='fatdir.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fatdir.obj `if test -f 'utils/libfat/fatdir.cpp'; then $(CYGPATH_W) 'utils/libfat/fatdir.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/fatdir.cpp'; fi` - -fatfile.o: utils/libfat/fatfile.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fatfile.o -MD -MP -MF $(DEPDIR)/fatfile.Tpo -c -o fatfile.o `test -f 'utils/libfat/fatfile.cpp' || echo '$(srcdir)/'`utils/libfat/fatfile.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fatfile.Tpo $(DEPDIR)/fatfile.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/fatfile.cpp' object='fatfile.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fatfile.o `test -f 'utils/libfat/fatfile.cpp' || echo '$(srcdir)/'`utils/libfat/fatfile.cpp - -fatfile.obj: utils/libfat/fatfile.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fatfile.obj -MD -MP -MF $(DEPDIR)/fatfile.Tpo -c -o fatfile.obj `if test -f 'utils/libfat/fatfile.cpp'; then $(CYGPATH_W) 'utils/libfat/fatfile.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/fatfile.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fatfile.Tpo $(DEPDIR)/fatfile.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/fatfile.cpp' object='fatfile.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fatfile.obj `if test -f 'utils/libfat/fatfile.cpp'; then $(CYGPATH_W) 'utils/libfat/fatfile.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/fatfile.cpp'; fi` - -filetime.o: utils/libfat/filetime.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filetime.o -MD -MP -MF $(DEPDIR)/filetime.Tpo -c -o filetime.o `test -f 'utils/libfat/filetime.cpp' || echo '$(srcdir)/'`utils/libfat/filetime.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/filetime.Tpo $(DEPDIR)/filetime.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/filetime.cpp' object='filetime.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filetime.o `test -f 'utils/libfat/filetime.cpp' || echo '$(srcdir)/'`utils/libfat/filetime.cpp - -filetime.obj: utils/libfat/filetime.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filetime.obj -MD -MP -MF $(DEPDIR)/filetime.Tpo -c -o filetime.obj `if test -f 'utils/libfat/filetime.cpp'; then $(CYGPATH_W) 'utils/libfat/filetime.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/filetime.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/filetime.Tpo $(DEPDIR)/filetime.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/filetime.cpp' object='filetime.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filetime.obj `if test -f 'utils/libfat/filetime.cpp'; then $(CYGPATH_W) 'utils/libfat/filetime.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/filetime.cpp'; fi` - -file_allocation_table.o: utils/libfat/file_allocation_table.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT file_allocation_table.o -MD -MP -MF $(DEPDIR)/file_allocation_table.Tpo -c -o file_allocation_table.o `test -f 'utils/libfat/file_allocation_table.cpp' || echo '$(srcdir)/'`utils/libfat/file_allocation_table.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/file_allocation_table.Tpo $(DEPDIR)/file_allocation_table.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/file_allocation_table.cpp' object='file_allocation_table.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o file_allocation_table.o `test -f 'utils/libfat/file_allocation_table.cpp' || echo '$(srcdir)/'`utils/libfat/file_allocation_table.cpp - -file_allocation_table.obj: utils/libfat/file_allocation_table.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT file_allocation_table.obj -MD -MP -MF $(DEPDIR)/file_allocation_table.Tpo -c -o file_allocation_table.obj `if test -f 'utils/libfat/file_allocation_table.cpp'; then $(CYGPATH_W) 'utils/libfat/file_allocation_table.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/file_allocation_table.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/file_allocation_table.Tpo $(DEPDIR)/file_allocation_table.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/file_allocation_table.cpp' object='file_allocation_table.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o file_allocation_table.obj `if test -f 'utils/libfat/file_allocation_table.cpp'; then $(CYGPATH_W) 'utils/libfat/file_allocation_table.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/file_allocation_table.cpp'; fi` - -libfat.o: utils/libfat/libfat.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfat.o -MD -MP -MF $(DEPDIR)/libfat.Tpo -c -o libfat.o `test -f 'utils/libfat/libfat.cpp' || echo '$(srcdir)/'`utils/libfat/libfat.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfat.Tpo $(DEPDIR)/libfat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/libfat.cpp' object='libfat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfat.o `test -f 'utils/libfat/libfat.cpp' || echo '$(srcdir)/'`utils/libfat/libfat.cpp - -libfat.obj: utils/libfat/libfat.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfat.obj -MD -MP -MF $(DEPDIR)/libfat.Tpo -c -o libfat.obj `if test -f 'utils/libfat/libfat.cpp'; then $(CYGPATH_W) 'utils/libfat/libfat.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/libfat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfat.Tpo $(DEPDIR)/libfat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/libfat.cpp' object='libfat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfat.obj `if test -f 'utils/libfat/libfat.cpp'; then $(CYGPATH_W) 'utils/libfat/libfat.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/libfat.cpp'; fi` - -libfat_public_api.o: utils/libfat/libfat_public_api.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfat_public_api.o -MD -MP -MF $(DEPDIR)/libfat_public_api.Tpo -c -o libfat_public_api.o `test -f 'utils/libfat/libfat_public_api.cpp' || echo '$(srcdir)/'`utils/libfat/libfat_public_api.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfat_public_api.Tpo $(DEPDIR)/libfat_public_api.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/libfat_public_api.cpp' object='libfat_public_api.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfat_public_api.o `test -f 'utils/libfat/libfat_public_api.cpp' || echo '$(srcdir)/'`utils/libfat/libfat_public_api.cpp - -libfat_public_api.obj: utils/libfat/libfat_public_api.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfat_public_api.obj -MD -MP -MF $(DEPDIR)/libfat_public_api.Tpo -c -o libfat_public_api.obj `if test -f 'utils/libfat/libfat_public_api.cpp'; then $(CYGPATH_W) 'utils/libfat/libfat_public_api.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/libfat_public_api.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfat_public_api.Tpo $(DEPDIR)/libfat_public_api.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/libfat_public_api.cpp' object='libfat_public_api.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfat_public_api.obj `if test -f 'utils/libfat/libfat_public_api.cpp'; then $(CYGPATH_W) 'utils/libfat/libfat_public_api.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/libfat_public_api.cpp'; fi` - -lock.o: utils/libfat/lock.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lock.o -MD -MP -MF $(DEPDIR)/lock.Tpo -c -o lock.o `test -f 'utils/libfat/lock.cpp' || echo '$(srcdir)/'`utils/libfat/lock.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lock.Tpo $(DEPDIR)/lock.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/lock.cpp' object='lock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lock.o `test -f 'utils/libfat/lock.cpp' || echo '$(srcdir)/'`utils/libfat/lock.cpp - -lock.obj: utils/libfat/lock.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lock.obj -MD -MP -MF $(DEPDIR)/lock.Tpo -c -o lock.obj `if test -f 'utils/libfat/lock.cpp'; then $(CYGPATH_W) 'utils/libfat/lock.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/lock.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lock.Tpo $(DEPDIR)/lock.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/lock.cpp' object='lock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lock.obj `if test -f 'utils/libfat/lock.cpp'; then $(CYGPATH_W) 'utils/libfat/lock.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/lock.cpp'; fi` - -partition.o: utils/libfat/partition.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT partition.o -MD -MP -MF $(DEPDIR)/partition.Tpo -c -o partition.o `test -f 'utils/libfat/partition.cpp' || echo '$(srcdir)/'`utils/libfat/partition.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/partition.Tpo $(DEPDIR)/partition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/partition.cpp' object='partition.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o partition.o `test -f 'utils/libfat/partition.cpp' || echo '$(srcdir)/'`utils/libfat/partition.cpp - -partition.obj: utils/libfat/partition.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT partition.obj -MD -MP -MF $(DEPDIR)/partition.Tpo -c -o partition.obj `if test -f 'utils/libfat/partition.cpp'; then $(CYGPATH_W) 'utils/libfat/partition.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/partition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/partition.Tpo $(DEPDIR)/partition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/libfat/partition.cpp' object='partition.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o partition.obj `if test -f 'utils/libfat/partition.cpp'; then $(CYGPATH_W) 'utils/libfat/partition.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/libfat/partition.cpp'; fi` - -tinystr.o: utils/tinyxml/tinystr.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinystr.o -MD -MP -MF $(DEPDIR)/tinystr.Tpo -c -o tinystr.o `test -f 'utils/tinyxml/tinystr.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinystr.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinystr.Tpo $(DEPDIR)/tinystr.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinystr.cpp' object='tinystr.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinystr.o `test -f 'utils/tinyxml/tinystr.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinystr.cpp - -tinystr.obj: utils/tinyxml/tinystr.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinystr.obj -MD -MP -MF $(DEPDIR)/tinystr.Tpo -c -o tinystr.obj `if test -f 'utils/tinyxml/tinystr.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinystr.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinystr.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinystr.Tpo $(DEPDIR)/tinystr.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinystr.cpp' object='tinystr.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinystr.obj `if test -f 'utils/tinyxml/tinystr.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinystr.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinystr.cpp'; fi` - -tinyxml.o: utils/tinyxml/tinyxml.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxml.o -MD -MP -MF $(DEPDIR)/tinyxml.Tpo -c -o tinyxml.o `test -f 'utils/tinyxml/tinyxml.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxml.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxml.Tpo $(DEPDIR)/tinyxml.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxml.cpp' object='tinyxml.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxml.o `test -f 'utils/tinyxml/tinyxml.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxml.cpp - -tinyxml.obj: utils/tinyxml/tinyxml.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxml.obj -MD -MP -MF $(DEPDIR)/tinyxml.Tpo -c -o tinyxml.obj `if test -f 'utils/tinyxml/tinyxml.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxml.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxml.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxml.Tpo $(DEPDIR)/tinyxml.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxml.cpp' object='tinyxml.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxml.obj `if test -f 'utils/tinyxml/tinyxml.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxml.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxml.cpp'; fi` - -tinyxmlerror.o: utils/tinyxml/tinyxmlerror.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlerror.o -MD -MP -MF $(DEPDIR)/tinyxmlerror.Tpo -c -o tinyxmlerror.o `test -f 'utils/tinyxml/tinyxmlerror.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlerror.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlerror.Tpo $(DEPDIR)/tinyxmlerror.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlerror.cpp' object='tinyxmlerror.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlerror.o `test -f 'utils/tinyxml/tinyxmlerror.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlerror.cpp - -tinyxmlerror.obj: utils/tinyxml/tinyxmlerror.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlerror.obj -MD -MP -MF $(DEPDIR)/tinyxmlerror.Tpo -c -o tinyxmlerror.obj `if test -f 'utils/tinyxml/tinyxmlerror.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlerror.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlerror.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlerror.Tpo $(DEPDIR)/tinyxmlerror.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlerror.cpp' object='tinyxmlerror.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlerror.obj `if test -f 'utils/tinyxml/tinyxmlerror.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlerror.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlerror.cpp'; fi` - -tinyxmlparser.o: utils/tinyxml/tinyxmlparser.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlparser.o -MD -MP -MF $(DEPDIR)/tinyxmlparser.Tpo -c -o tinyxmlparser.o `test -f 'utils/tinyxml/tinyxmlparser.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlparser.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlparser.Tpo $(DEPDIR)/tinyxmlparser.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlparser.cpp' object='tinyxmlparser.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlparser.o `test -f 'utils/tinyxml/tinyxmlparser.cpp' || echo '$(srcdir)/'`utils/tinyxml/tinyxmlparser.cpp - -tinyxmlparser.obj: utils/tinyxml/tinyxmlparser.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlparser.obj -MD -MP -MF $(DEPDIR)/tinyxmlparser.Tpo -c -o tinyxmlparser.obj `if test -f 'utils/tinyxml/tinyxmlparser.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlparser.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlparser.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/tinyxmlparser.Tpo $(DEPDIR)/tinyxmlparser.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/tinyxml/tinyxmlparser.cpp' object='tinyxmlparser.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlparser.obj `if test -f 'utils/tinyxml/tinyxmlparser.cpp'; then $(CYGPATH_W) 'utils/tinyxml/tinyxmlparser.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/tinyxml/tinyxmlparser.cpp'; fi` - -slot2_mpcf.o: addons/slot2_mpcf.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_mpcf.o -MD -MP -MF $(DEPDIR)/slot2_mpcf.Tpo -c -o slot2_mpcf.o `test -f 'addons/slot2_mpcf.cpp' || echo '$(srcdir)/'`addons/slot2_mpcf.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_mpcf.Tpo $(DEPDIR)/slot2_mpcf.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_mpcf.cpp' object='slot2_mpcf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_mpcf.o `test -f 'addons/slot2_mpcf.cpp' || echo '$(srcdir)/'`addons/slot2_mpcf.cpp - -slot2_mpcf.obj: addons/slot2_mpcf.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_mpcf.obj -MD -MP -MF $(DEPDIR)/slot2_mpcf.Tpo -c -o slot2_mpcf.obj `if test -f 'addons/slot2_mpcf.cpp'; then $(CYGPATH_W) 'addons/slot2_mpcf.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_mpcf.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_mpcf.Tpo $(DEPDIR)/slot2_mpcf.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_mpcf.cpp' object='slot2_mpcf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_mpcf.obj `if test -f 'addons/slot2_mpcf.cpp'; then $(CYGPATH_W) 'addons/slot2_mpcf.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_mpcf.cpp'; fi` - -slot2_paddle.o: addons/slot2_paddle.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_paddle.o -MD -MP -MF $(DEPDIR)/slot2_paddle.Tpo -c -o slot2_paddle.o `test -f 'addons/slot2_paddle.cpp' || echo '$(srcdir)/'`addons/slot2_paddle.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_paddle.Tpo $(DEPDIR)/slot2_paddle.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_paddle.cpp' object='slot2_paddle.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_paddle.o `test -f 'addons/slot2_paddle.cpp' || echo '$(srcdir)/'`addons/slot2_paddle.cpp - -slot2_paddle.obj: addons/slot2_paddle.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_paddle.obj -MD -MP -MF $(DEPDIR)/slot2_paddle.Tpo -c -o slot2_paddle.obj `if test -f 'addons/slot2_paddle.cpp'; then $(CYGPATH_W) 'addons/slot2_paddle.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_paddle.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_paddle.Tpo $(DEPDIR)/slot2_paddle.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_paddle.cpp' object='slot2_paddle.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_paddle.obj `if test -f 'addons/slot2_paddle.cpp'; then $(CYGPATH_W) 'addons/slot2_paddle.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_paddle.cpp'; fi` - -slot2_gbagame.o: addons/slot2_gbagame.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_gbagame.o -MD -MP -MF $(DEPDIR)/slot2_gbagame.Tpo -c -o slot2_gbagame.o `test -f 'addons/slot2_gbagame.cpp' || echo '$(srcdir)/'`addons/slot2_gbagame.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_gbagame.Tpo $(DEPDIR)/slot2_gbagame.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_gbagame.cpp' object='slot2_gbagame.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_gbagame.o `test -f 'addons/slot2_gbagame.cpp' || echo '$(srcdir)/'`addons/slot2_gbagame.cpp - -slot2_gbagame.obj: addons/slot2_gbagame.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_gbagame.obj -MD -MP -MF $(DEPDIR)/slot2_gbagame.Tpo -c -o slot2_gbagame.obj `if test -f 'addons/slot2_gbagame.cpp'; then $(CYGPATH_W) 'addons/slot2_gbagame.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_gbagame.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_gbagame.Tpo $(DEPDIR)/slot2_gbagame.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_gbagame.cpp' object='slot2_gbagame.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_gbagame.obj `if test -f 'addons/slot2_gbagame.cpp'; then $(CYGPATH_W) 'addons/slot2_gbagame.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_gbagame.cpp'; fi` - -slot2_none.o: addons/slot2_none.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_none.o -MD -MP -MF $(DEPDIR)/slot2_none.Tpo -c -o slot2_none.o `test -f 'addons/slot2_none.cpp' || echo '$(srcdir)/'`addons/slot2_none.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_none.Tpo $(DEPDIR)/slot2_none.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_none.cpp' object='slot2_none.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_none.o `test -f 'addons/slot2_none.cpp' || echo '$(srcdir)/'`addons/slot2_none.cpp - -slot2_none.obj: addons/slot2_none.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_none.obj -MD -MP -MF $(DEPDIR)/slot2_none.Tpo -c -o slot2_none.obj `if test -f 'addons/slot2_none.cpp'; then $(CYGPATH_W) 'addons/slot2_none.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_none.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_none.Tpo $(DEPDIR)/slot2_none.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_none.cpp' object='slot2_none.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_none.obj `if test -f 'addons/slot2_none.cpp'; then $(CYGPATH_W) 'addons/slot2_none.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_none.cpp'; fi` - -slot2_rumblepak.o: addons/slot2_rumblepak.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_rumblepak.o -MD -MP -MF $(DEPDIR)/slot2_rumblepak.Tpo -c -o slot2_rumblepak.o `test -f 'addons/slot2_rumblepak.cpp' || echo '$(srcdir)/'`addons/slot2_rumblepak.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_rumblepak.Tpo $(DEPDIR)/slot2_rumblepak.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_rumblepak.cpp' object='slot2_rumblepak.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_rumblepak.o `test -f 'addons/slot2_rumblepak.cpp' || echo '$(srcdir)/'`addons/slot2_rumblepak.cpp - -slot2_rumblepak.obj: addons/slot2_rumblepak.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_rumblepak.obj -MD -MP -MF $(DEPDIR)/slot2_rumblepak.Tpo -c -o slot2_rumblepak.obj `if test -f 'addons/slot2_rumblepak.cpp'; then $(CYGPATH_W) 'addons/slot2_rumblepak.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_rumblepak.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_rumblepak.Tpo $(DEPDIR)/slot2_rumblepak.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_rumblepak.cpp' object='slot2_rumblepak.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_rumblepak.obj `if test -f 'addons/slot2_rumblepak.cpp'; then $(CYGPATH_W) 'addons/slot2_rumblepak.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_rumblepak.cpp'; fi` - -slot2_guitarGrip.o: addons/slot2_guitarGrip.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_guitarGrip.o -MD -MP -MF $(DEPDIR)/slot2_guitarGrip.Tpo -c -o slot2_guitarGrip.o `test -f 'addons/slot2_guitarGrip.cpp' || echo '$(srcdir)/'`addons/slot2_guitarGrip.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_guitarGrip.Tpo $(DEPDIR)/slot2_guitarGrip.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_guitarGrip.cpp' object='slot2_guitarGrip.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_guitarGrip.o `test -f 'addons/slot2_guitarGrip.cpp' || echo '$(srcdir)/'`addons/slot2_guitarGrip.cpp - -slot2_guitarGrip.obj: addons/slot2_guitarGrip.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_guitarGrip.obj -MD -MP -MF $(DEPDIR)/slot2_guitarGrip.Tpo -c -o slot2_guitarGrip.obj `if test -f 'addons/slot2_guitarGrip.cpp'; then $(CYGPATH_W) 'addons/slot2_guitarGrip.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_guitarGrip.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_guitarGrip.Tpo $(DEPDIR)/slot2_guitarGrip.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_guitarGrip.cpp' object='slot2_guitarGrip.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_guitarGrip.obj `if test -f 'addons/slot2_guitarGrip.cpp'; then $(CYGPATH_W) 'addons/slot2_guitarGrip.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_guitarGrip.cpp'; fi` - -slot2_expMemory.o: addons/slot2_expMemory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_expMemory.o -MD -MP -MF $(DEPDIR)/slot2_expMemory.Tpo -c -o slot2_expMemory.o `test -f 'addons/slot2_expMemory.cpp' || echo '$(srcdir)/'`addons/slot2_expMemory.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_expMemory.Tpo $(DEPDIR)/slot2_expMemory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_expMemory.cpp' object='slot2_expMemory.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_expMemory.o `test -f 'addons/slot2_expMemory.cpp' || echo '$(srcdir)/'`addons/slot2_expMemory.cpp - -slot2_expMemory.obj: addons/slot2_expMemory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_expMemory.obj -MD -MP -MF $(DEPDIR)/slot2_expMemory.Tpo -c -o slot2_expMemory.obj `if test -f 'addons/slot2_expMemory.cpp'; then $(CYGPATH_W) 'addons/slot2_expMemory.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_expMemory.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_expMemory.Tpo $(DEPDIR)/slot2_expMemory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_expMemory.cpp' object='slot2_expMemory.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_expMemory.obj `if test -f 'addons/slot2_expMemory.cpp'; then $(CYGPATH_W) 'addons/slot2_expMemory.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_expMemory.cpp'; fi` - -slot2_piano.o: addons/slot2_piano.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_piano.o -MD -MP -MF $(DEPDIR)/slot2_piano.Tpo -c -o slot2_piano.o `test -f 'addons/slot2_piano.cpp' || echo '$(srcdir)/'`addons/slot2_piano.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_piano.Tpo $(DEPDIR)/slot2_piano.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_piano.cpp' object='slot2_piano.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_piano.o `test -f 'addons/slot2_piano.cpp' || echo '$(srcdir)/'`addons/slot2_piano.cpp - -slot2_piano.obj: addons/slot2_piano.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot2_piano.obj -MD -MP -MF $(DEPDIR)/slot2_piano.Tpo -c -o slot2_piano.obj `if test -f 'addons/slot2_piano.cpp'; then $(CYGPATH_W) 'addons/slot2_piano.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_piano.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot2_piano.Tpo $(DEPDIR)/slot2_piano.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot2_piano.cpp' object='slot2_piano.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot2_piano.obj `if test -f 'addons/slot2_piano.cpp'; then $(CYGPATH_W) 'addons/slot2_piano.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot2_piano.cpp'; fi` - -slot1_none.o: addons/slot1_none.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_none.o -MD -MP -MF $(DEPDIR)/slot1_none.Tpo -c -o slot1_none.o `test -f 'addons/slot1_none.cpp' || echo '$(srcdir)/'`addons/slot1_none.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_none.Tpo $(DEPDIR)/slot1_none.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_none.cpp' object='slot1_none.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_none.o `test -f 'addons/slot1_none.cpp' || echo '$(srcdir)/'`addons/slot1_none.cpp - -slot1_none.obj: addons/slot1_none.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_none.obj -MD -MP -MF $(DEPDIR)/slot1_none.Tpo -c -o slot1_none.obj `if test -f 'addons/slot1_none.cpp'; then $(CYGPATH_W) 'addons/slot1_none.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_none.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_none.Tpo $(DEPDIR)/slot1_none.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_none.cpp' object='slot1_none.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_none.obj `if test -f 'addons/slot1_none.cpp'; then $(CYGPATH_W) 'addons/slot1_none.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_none.cpp'; fi` - -slot1_r4.o: addons/slot1_r4.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_r4.o -MD -MP -MF $(DEPDIR)/slot1_r4.Tpo -c -o slot1_r4.o `test -f 'addons/slot1_r4.cpp' || echo '$(srcdir)/'`addons/slot1_r4.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_r4.Tpo $(DEPDIR)/slot1_r4.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_r4.cpp' object='slot1_r4.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_r4.o `test -f 'addons/slot1_r4.cpp' || echo '$(srcdir)/'`addons/slot1_r4.cpp - -slot1_r4.obj: addons/slot1_r4.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_r4.obj -MD -MP -MF $(DEPDIR)/slot1_r4.Tpo -c -o slot1_r4.obj `if test -f 'addons/slot1_r4.cpp'; then $(CYGPATH_W) 'addons/slot1_r4.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_r4.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_r4.Tpo $(DEPDIR)/slot1_r4.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_r4.cpp' object='slot1_r4.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_r4.obj `if test -f 'addons/slot1_r4.cpp'; then $(CYGPATH_W) 'addons/slot1_r4.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_r4.cpp'; fi` - -slot1_retail.o: addons/slot1_retail.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_retail.o -MD -MP -MF $(DEPDIR)/slot1_retail.Tpo -c -o slot1_retail.o `test -f 'addons/slot1_retail.cpp' || echo '$(srcdir)/'`addons/slot1_retail.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_retail.Tpo $(DEPDIR)/slot1_retail.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_retail.cpp' object='slot1_retail.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_retail.o `test -f 'addons/slot1_retail.cpp' || echo '$(srcdir)/'`addons/slot1_retail.cpp - -slot1_retail.obj: addons/slot1_retail.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_retail.obj -MD -MP -MF $(DEPDIR)/slot1_retail.Tpo -c -o slot1_retail.obj `if test -f 'addons/slot1_retail.cpp'; then $(CYGPATH_W) 'addons/slot1_retail.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_retail.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_retail.Tpo $(DEPDIR)/slot1_retail.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_retail.cpp' object='slot1_retail.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_retail.obj `if test -f 'addons/slot1_retail.cpp'; then $(CYGPATH_W) 'addons/slot1_retail.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_retail.cpp'; fi` - -slot1_retail_nand.o: addons/slot1_retail_nand.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_retail_nand.o -MD -MP -MF $(DEPDIR)/slot1_retail_nand.Tpo -c -o slot1_retail_nand.o `test -f 'addons/slot1_retail_nand.cpp' || echo '$(srcdir)/'`addons/slot1_retail_nand.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_retail_nand.Tpo $(DEPDIR)/slot1_retail_nand.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_retail_nand.cpp' object='slot1_retail_nand.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_retail_nand.o `test -f 'addons/slot1_retail_nand.cpp' || echo '$(srcdir)/'`addons/slot1_retail_nand.cpp - -slot1_retail_nand.obj: addons/slot1_retail_nand.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT slot1_retail_nand.obj -MD -MP -MF $(DEPDIR)/slot1_retail_nand.Tpo -c -o slot1_retail_nand.obj `if test -f 'addons/slot1_retail_nand.cpp'; then $(CYGPATH_W) 'addons/slot1_retail_nand.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_retail_nand.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/slot1_retail_nand.Tpo $(DEPDIR)/slot1_retail_nand.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='addons/slot1_retail_nand.cpp' object='slot1_retail_nand.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o slot1_retail_nand.obj `if test -f 'addons/slot1_retail_nand.cpp'; then $(CYGPATH_W) 'addons/slot1_retail_nand.cpp'; else $(CYGPATH_W) '$(srcdir)/addons/slot1_retail_nand.cpp'; fi` - -metaspu.o: metaspu/metaspu.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT metaspu.o -MD -MP -MF $(DEPDIR)/metaspu.Tpo -c -o metaspu.o `test -f 'metaspu/metaspu.cpp' || echo '$(srcdir)/'`metaspu/metaspu.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/metaspu.Tpo $(DEPDIR)/metaspu.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metaspu/metaspu.cpp' object='metaspu.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o metaspu.o `test -f 'metaspu/metaspu.cpp' || echo '$(srcdir)/'`metaspu/metaspu.cpp - -metaspu.obj: metaspu/metaspu.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT metaspu.obj -MD -MP -MF $(DEPDIR)/metaspu.Tpo -c -o metaspu.obj `if test -f 'metaspu/metaspu.cpp'; then $(CYGPATH_W) 'metaspu/metaspu.cpp'; else $(CYGPATH_W) '$(srcdir)/metaspu/metaspu.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/metaspu.Tpo $(DEPDIR)/metaspu.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metaspu/metaspu.cpp' object='metaspu.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o metaspu.obj `if test -f 'metaspu/metaspu.cpp'; then $(CYGPATH_W) 'metaspu/metaspu.cpp'; else $(CYGPATH_W) '$(srcdir)/metaspu/metaspu.cpp'; fi` - -2xsai.o: filter/2xsai.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT 2xsai.o -MD -MP -MF $(DEPDIR)/2xsai.Tpo -c -o 2xsai.o `test -f 'filter/2xsai.cpp' || echo '$(srcdir)/'`filter/2xsai.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/2xsai.Tpo $(DEPDIR)/2xsai.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/2xsai.cpp' object='2xsai.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o 2xsai.o `test -f 'filter/2xsai.cpp' || echo '$(srcdir)/'`filter/2xsai.cpp - -2xsai.obj: filter/2xsai.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT 2xsai.obj -MD -MP -MF $(DEPDIR)/2xsai.Tpo -c -o 2xsai.obj `if test -f 'filter/2xsai.cpp'; then $(CYGPATH_W) 'filter/2xsai.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/2xsai.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/2xsai.Tpo $(DEPDIR)/2xsai.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/2xsai.cpp' object='2xsai.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o 2xsai.obj `if test -f 'filter/2xsai.cpp'; then $(CYGPATH_W) 'filter/2xsai.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/2xsai.cpp'; fi` - -bilinear.o: filter/bilinear.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bilinear.o -MD -MP -MF $(DEPDIR)/bilinear.Tpo -c -o bilinear.o `test -f 'filter/bilinear.cpp' || echo '$(srcdir)/'`filter/bilinear.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bilinear.Tpo $(DEPDIR)/bilinear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/bilinear.cpp' object='bilinear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bilinear.o `test -f 'filter/bilinear.cpp' || echo '$(srcdir)/'`filter/bilinear.cpp - -bilinear.obj: filter/bilinear.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bilinear.obj -MD -MP -MF $(DEPDIR)/bilinear.Tpo -c -o bilinear.obj `if test -f 'filter/bilinear.cpp'; then $(CYGPATH_W) 'filter/bilinear.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/bilinear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bilinear.Tpo $(DEPDIR)/bilinear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/bilinear.cpp' object='bilinear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bilinear.obj `if test -f 'filter/bilinear.cpp'; then $(CYGPATH_W) 'filter/bilinear.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/bilinear.cpp'; fi` - -epx.o: filter/epx.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT epx.o -MD -MP -MF $(DEPDIR)/epx.Tpo -c -o epx.o `test -f 'filter/epx.cpp' || echo '$(srcdir)/'`filter/epx.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/epx.Tpo $(DEPDIR)/epx.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/epx.cpp' object='epx.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o epx.o `test -f 'filter/epx.cpp' || echo '$(srcdir)/'`filter/epx.cpp - -epx.obj: filter/epx.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT epx.obj -MD -MP -MF $(DEPDIR)/epx.Tpo -c -o epx.obj `if test -f 'filter/epx.cpp'; then $(CYGPATH_W) 'filter/epx.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/epx.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/epx.Tpo $(DEPDIR)/epx.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/epx.cpp' object='epx.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o epx.obj `if test -f 'filter/epx.cpp'; then $(CYGPATH_W) 'filter/epx.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/epx.cpp'; fi` - -hq2x.o: filter/hq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq2x.o -MD -MP -MF $(DEPDIR)/hq2x.Tpo -c -o hq2x.o `test -f 'filter/hq2x.cpp' || echo '$(srcdir)/'`filter/hq2x.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq2x.Tpo $(DEPDIR)/hq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/hq2x.cpp' object='hq2x.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq2x.o `test -f 'filter/hq2x.cpp' || echo '$(srcdir)/'`filter/hq2x.cpp - -hq2x.obj: filter/hq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq2x.obj -MD -MP -MF $(DEPDIR)/hq2x.Tpo -c -o hq2x.obj `if test -f 'filter/hq2x.cpp'; then $(CYGPATH_W) 'filter/hq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/hq2x.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq2x.Tpo $(DEPDIR)/hq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/hq2x.cpp' object='hq2x.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq2x.obj `if test -f 'filter/hq2x.cpp'; then $(CYGPATH_W) 'filter/hq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/hq2x.cpp'; fi` - -hq4x.o: filter/hq4x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq4x.o -MD -MP -MF $(DEPDIR)/hq4x.Tpo -c -o hq4x.o `test -f 'filter/hq4x.cpp' || echo '$(srcdir)/'`filter/hq4x.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq4x.Tpo $(DEPDIR)/hq4x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/hq4x.cpp' object='hq4x.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq4x.o `test -f 'filter/hq4x.cpp' || echo '$(srcdir)/'`filter/hq4x.cpp - -hq4x.obj: filter/hq4x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT hq4x.obj -MD -MP -MF $(DEPDIR)/hq4x.Tpo -c -o hq4x.obj `if test -f 'filter/hq4x.cpp'; then $(CYGPATH_W) 'filter/hq4x.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/hq4x.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/hq4x.Tpo $(DEPDIR)/hq4x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/hq4x.cpp' object='hq4x.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o hq4x.obj `if test -f 'filter/hq4x.cpp'; then $(CYGPATH_W) 'filter/hq4x.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/hq4x.cpp'; fi` - -lq2x.o: filter/lq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lq2x.o -MD -MP -MF $(DEPDIR)/lq2x.Tpo -c -o lq2x.o `test -f 'filter/lq2x.cpp' || echo '$(srcdir)/'`filter/lq2x.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lq2x.Tpo $(DEPDIR)/lq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/lq2x.cpp' object='lq2x.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lq2x.o `test -f 'filter/lq2x.cpp' || echo '$(srcdir)/'`filter/lq2x.cpp - -lq2x.obj: filter/lq2x.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lq2x.obj -MD -MP -MF $(DEPDIR)/lq2x.Tpo -c -o lq2x.obj `if test -f 'filter/lq2x.cpp'; then $(CYGPATH_W) 'filter/lq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/lq2x.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lq2x.Tpo $(DEPDIR)/lq2x.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/lq2x.cpp' object='lq2x.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lq2x.obj `if test -f 'filter/lq2x.cpp'; then $(CYGPATH_W) 'filter/lq2x.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/lq2x.cpp'; fi` - -scanline.o: filter/scanline.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scanline.o -MD -MP -MF $(DEPDIR)/scanline.Tpo -c -o scanline.o `test -f 'filter/scanline.cpp' || echo '$(srcdir)/'`filter/scanline.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scanline.Tpo $(DEPDIR)/scanline.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/scanline.cpp' object='scanline.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scanline.o `test -f 'filter/scanline.cpp' || echo '$(srcdir)/'`filter/scanline.cpp - -scanline.obj: filter/scanline.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scanline.obj -MD -MP -MF $(DEPDIR)/scanline.Tpo -c -o scanline.obj `if test -f 'filter/scanline.cpp'; then $(CYGPATH_W) 'filter/scanline.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/scanline.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scanline.Tpo $(DEPDIR)/scanline.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/scanline.cpp' object='scanline.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scanline.obj `if test -f 'filter/scanline.cpp'; then $(CYGPATH_W) 'filter/scanline.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/scanline.cpp'; fi` - -videofilter.o: filter/videofilter.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT videofilter.o -MD -MP -MF $(DEPDIR)/videofilter.Tpo -c -o videofilter.o `test -f 'filter/videofilter.cpp' || echo '$(srcdir)/'`filter/videofilter.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/videofilter.Tpo $(DEPDIR)/videofilter.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/videofilter.cpp' object='videofilter.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o videofilter.o `test -f 'filter/videofilter.cpp' || echo '$(srcdir)/'`filter/videofilter.cpp - -videofilter.obj: filter/videofilter.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT videofilter.obj -MD -MP -MF $(DEPDIR)/videofilter.Tpo -c -o videofilter.obj `if test -f 'filter/videofilter.cpp'; then $(CYGPATH_W) 'filter/videofilter.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/videofilter.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/videofilter.Tpo $(DEPDIR)/videofilter.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filter/videofilter.cpp' object='videofilter.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o videofilter.obj `if test -f 'filter/videofilter.cpp'; then $(CYGPATH_W) 'filter/videofilter.cpp'; else $(CYGPATH_W) '$(srcdir)/filter/videofilter.cpp'; fi` - -assembler.o: utils/AsmJit/core/assembler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT assembler.o -MD -MP -MF $(DEPDIR)/assembler.Tpo -c -o assembler.o `test -f 'utils/AsmJit/core/assembler.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/assembler.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/assembler.Tpo $(DEPDIR)/assembler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/assembler.cpp' object='assembler.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o assembler.o `test -f 'utils/AsmJit/core/assembler.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/assembler.cpp - -assembler.obj: utils/AsmJit/core/assembler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT assembler.obj -MD -MP -MF $(DEPDIR)/assembler.Tpo -c -o assembler.obj `if test -f 'utils/AsmJit/core/assembler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/assembler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/assembler.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/assembler.Tpo $(DEPDIR)/assembler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/assembler.cpp' object='assembler.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o assembler.obj `if test -f 'utils/AsmJit/core/assembler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/assembler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/assembler.cpp'; fi` - -assert.o: utils/AsmJit/core/assert.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT assert.o -MD -MP -MF $(DEPDIR)/assert.Tpo -c -o assert.o `test -f 'utils/AsmJit/core/assert.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/assert.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/assert.Tpo $(DEPDIR)/assert.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/assert.cpp' object='assert.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o assert.o `test -f 'utils/AsmJit/core/assert.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/assert.cpp - -assert.obj: utils/AsmJit/core/assert.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT assert.obj -MD -MP -MF $(DEPDIR)/assert.Tpo -c -o assert.obj `if test -f 'utils/AsmJit/core/assert.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/assert.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/assert.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/assert.Tpo $(DEPDIR)/assert.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/assert.cpp' object='assert.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o assert.obj `if test -f 'utils/AsmJit/core/assert.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/assert.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/assert.cpp'; fi` - -buffer.o: utils/AsmJit/core/buffer.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT buffer.o -MD -MP -MF $(DEPDIR)/buffer.Tpo -c -o buffer.o `test -f 'utils/AsmJit/core/buffer.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/buffer.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/buffer.Tpo $(DEPDIR)/buffer.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/buffer.cpp' object='buffer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o buffer.o `test -f 'utils/AsmJit/core/buffer.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/buffer.cpp - -buffer.obj: utils/AsmJit/core/buffer.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT buffer.obj -MD -MP -MF $(DEPDIR)/buffer.Tpo -c -o buffer.obj `if test -f 'utils/AsmJit/core/buffer.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/buffer.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/buffer.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/buffer.Tpo $(DEPDIR)/buffer.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/buffer.cpp' object='buffer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o buffer.obj `if test -f 'utils/AsmJit/core/buffer.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/buffer.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/buffer.cpp'; fi` - -compiler.o: utils/AsmJit/core/compiler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compiler.o -MD -MP -MF $(DEPDIR)/compiler.Tpo -c -o compiler.o `test -f 'utils/AsmJit/core/compiler.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compiler.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compiler.Tpo $(DEPDIR)/compiler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compiler.cpp' object='compiler.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compiler.o `test -f 'utils/AsmJit/core/compiler.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compiler.cpp - -compiler.obj: utils/AsmJit/core/compiler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compiler.obj -MD -MP -MF $(DEPDIR)/compiler.Tpo -c -o compiler.obj `if test -f 'utils/AsmJit/core/compiler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compiler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compiler.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compiler.Tpo $(DEPDIR)/compiler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compiler.cpp' object='compiler.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compiler.obj `if test -f 'utils/AsmJit/core/compiler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compiler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compiler.cpp'; fi` - -compilercontext.o: utils/AsmJit/core/compilercontext.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compilercontext.o -MD -MP -MF $(DEPDIR)/compilercontext.Tpo -c -o compilercontext.o `test -f 'utils/AsmJit/core/compilercontext.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compilercontext.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compilercontext.Tpo $(DEPDIR)/compilercontext.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compilercontext.cpp' object='compilercontext.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compilercontext.o `test -f 'utils/AsmJit/core/compilercontext.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compilercontext.cpp - -compilercontext.obj: utils/AsmJit/core/compilercontext.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compilercontext.obj -MD -MP -MF $(DEPDIR)/compilercontext.Tpo -c -o compilercontext.obj `if test -f 'utils/AsmJit/core/compilercontext.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compilercontext.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compilercontext.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compilercontext.Tpo $(DEPDIR)/compilercontext.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compilercontext.cpp' object='compilercontext.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compilercontext.obj `if test -f 'utils/AsmJit/core/compilercontext.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compilercontext.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compilercontext.cpp'; fi` - -compilerfunc.o: utils/AsmJit/core/compilerfunc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compilerfunc.o -MD -MP -MF $(DEPDIR)/compilerfunc.Tpo -c -o compilerfunc.o `test -f 'utils/AsmJit/core/compilerfunc.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compilerfunc.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compilerfunc.Tpo $(DEPDIR)/compilerfunc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compilerfunc.cpp' object='compilerfunc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compilerfunc.o `test -f 'utils/AsmJit/core/compilerfunc.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compilerfunc.cpp - -compilerfunc.obj: utils/AsmJit/core/compilerfunc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compilerfunc.obj -MD -MP -MF $(DEPDIR)/compilerfunc.Tpo -c -o compilerfunc.obj `if test -f 'utils/AsmJit/core/compilerfunc.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compilerfunc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compilerfunc.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compilerfunc.Tpo $(DEPDIR)/compilerfunc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compilerfunc.cpp' object='compilerfunc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compilerfunc.obj `if test -f 'utils/AsmJit/core/compilerfunc.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compilerfunc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compilerfunc.cpp'; fi` - -compileritem.o: utils/AsmJit/core/compileritem.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compileritem.o -MD -MP -MF $(DEPDIR)/compileritem.Tpo -c -o compileritem.o `test -f 'utils/AsmJit/core/compileritem.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compileritem.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compileritem.Tpo $(DEPDIR)/compileritem.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compileritem.cpp' object='compileritem.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compileritem.o `test -f 'utils/AsmJit/core/compileritem.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/compileritem.cpp - -compileritem.obj: utils/AsmJit/core/compileritem.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compileritem.obj -MD -MP -MF $(DEPDIR)/compileritem.Tpo -c -o compileritem.obj `if test -f 'utils/AsmJit/core/compileritem.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compileritem.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compileritem.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compileritem.Tpo $(DEPDIR)/compileritem.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/compileritem.cpp' object='compileritem.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compileritem.obj `if test -f 'utils/AsmJit/core/compileritem.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/compileritem.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/compileritem.cpp'; fi` - -context.o: utils/AsmJit/core/context.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT context.o -MD -MP -MF $(DEPDIR)/context.Tpo -c -o context.o `test -f 'utils/AsmJit/core/context.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/context.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/context.Tpo $(DEPDIR)/context.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/context.cpp' object='context.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o context.o `test -f 'utils/AsmJit/core/context.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/context.cpp - -context.obj: utils/AsmJit/core/context.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT context.obj -MD -MP -MF $(DEPDIR)/context.Tpo -c -o context.obj `if test -f 'utils/AsmJit/core/context.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/context.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/context.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/context.Tpo $(DEPDIR)/context.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/context.cpp' object='context.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o context.obj `if test -f 'utils/AsmJit/core/context.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/context.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/context.cpp'; fi` - -cpuinfo.o: utils/AsmJit/core/cpuinfo.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cpuinfo.o -MD -MP -MF $(DEPDIR)/cpuinfo.Tpo -c -o cpuinfo.o `test -f 'utils/AsmJit/core/cpuinfo.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/cpuinfo.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/cpuinfo.Tpo $(DEPDIR)/cpuinfo.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/cpuinfo.cpp' object='cpuinfo.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cpuinfo.o `test -f 'utils/AsmJit/core/cpuinfo.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/cpuinfo.cpp - -cpuinfo.obj: utils/AsmJit/core/cpuinfo.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cpuinfo.obj -MD -MP -MF $(DEPDIR)/cpuinfo.Tpo -c -o cpuinfo.obj `if test -f 'utils/AsmJit/core/cpuinfo.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/cpuinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/cpuinfo.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/cpuinfo.Tpo $(DEPDIR)/cpuinfo.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/cpuinfo.cpp' object='cpuinfo.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cpuinfo.obj `if test -f 'utils/AsmJit/core/cpuinfo.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/cpuinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/cpuinfo.cpp'; fi` - -defs.o: utils/AsmJit/core/defs.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT defs.o -MD -MP -MF $(DEPDIR)/defs.Tpo -c -o defs.o `test -f 'utils/AsmJit/core/defs.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/defs.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/defs.Tpo $(DEPDIR)/defs.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/defs.cpp' object='defs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o defs.o `test -f 'utils/AsmJit/core/defs.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/defs.cpp - -defs.obj: utils/AsmJit/core/defs.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT defs.obj -MD -MP -MF $(DEPDIR)/defs.Tpo -c -o defs.obj `if test -f 'utils/AsmJit/core/defs.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/defs.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/defs.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/defs.Tpo $(DEPDIR)/defs.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/defs.cpp' object='defs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o defs.obj `if test -f 'utils/AsmJit/core/defs.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/defs.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/defs.cpp'; fi` - -func.o: utils/AsmJit/core/func.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT func.o -MD -MP -MF $(DEPDIR)/func.Tpo -c -o func.o `test -f 'utils/AsmJit/core/func.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/func.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/func.Tpo $(DEPDIR)/func.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/func.cpp' object='func.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o func.o `test -f 'utils/AsmJit/core/func.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/func.cpp - -func.obj: utils/AsmJit/core/func.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT func.obj -MD -MP -MF $(DEPDIR)/func.Tpo -c -o func.obj `if test -f 'utils/AsmJit/core/func.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/func.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/func.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/func.Tpo $(DEPDIR)/func.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/func.cpp' object='func.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o func.obj `if test -f 'utils/AsmJit/core/func.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/func.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/func.cpp'; fi` - -logger.o: utils/AsmJit/core/logger.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT logger.o -MD -MP -MF $(DEPDIR)/logger.Tpo -c -o logger.o `test -f 'utils/AsmJit/core/logger.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/logger.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/logger.Tpo $(DEPDIR)/logger.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/logger.cpp' object='logger.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o logger.o `test -f 'utils/AsmJit/core/logger.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/logger.cpp - -logger.obj: utils/AsmJit/core/logger.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT logger.obj -MD -MP -MF $(DEPDIR)/logger.Tpo -c -o logger.obj `if test -f 'utils/AsmJit/core/logger.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/logger.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/logger.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/logger.Tpo $(DEPDIR)/logger.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/logger.cpp' object='logger.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o logger.obj `if test -f 'utils/AsmJit/core/logger.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/logger.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/logger.cpp'; fi` - -memorymanager.o: utils/AsmJit/core/memorymanager.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT memorymanager.o -MD -MP -MF $(DEPDIR)/memorymanager.Tpo -c -o memorymanager.o `test -f 'utils/AsmJit/core/memorymanager.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/memorymanager.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/memorymanager.Tpo $(DEPDIR)/memorymanager.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/memorymanager.cpp' object='memorymanager.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o memorymanager.o `test -f 'utils/AsmJit/core/memorymanager.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/memorymanager.cpp - -memorymanager.obj: utils/AsmJit/core/memorymanager.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT memorymanager.obj -MD -MP -MF $(DEPDIR)/memorymanager.Tpo -c -o memorymanager.obj `if test -f 'utils/AsmJit/core/memorymanager.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/memorymanager.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/memorymanager.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/memorymanager.Tpo $(DEPDIR)/memorymanager.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/memorymanager.cpp' object='memorymanager.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o memorymanager.obj `if test -f 'utils/AsmJit/core/memorymanager.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/memorymanager.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/memorymanager.cpp'; fi` - -memorymarker.o: utils/AsmJit/core/memorymarker.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT memorymarker.o -MD -MP -MF $(DEPDIR)/memorymarker.Tpo -c -o memorymarker.o `test -f 'utils/AsmJit/core/memorymarker.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/memorymarker.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/memorymarker.Tpo $(DEPDIR)/memorymarker.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/memorymarker.cpp' object='memorymarker.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o memorymarker.o `test -f 'utils/AsmJit/core/memorymarker.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/memorymarker.cpp - -memorymarker.obj: utils/AsmJit/core/memorymarker.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT memorymarker.obj -MD -MP -MF $(DEPDIR)/memorymarker.Tpo -c -o memorymarker.obj `if test -f 'utils/AsmJit/core/memorymarker.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/memorymarker.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/memorymarker.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/memorymarker.Tpo $(DEPDIR)/memorymarker.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/memorymarker.cpp' object='memorymarker.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o memorymarker.obj `if test -f 'utils/AsmJit/core/memorymarker.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/memorymarker.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/memorymarker.cpp'; fi` - -operand.o: utils/AsmJit/core/operand.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT operand.o -MD -MP -MF $(DEPDIR)/operand.Tpo -c -o operand.o `test -f 'utils/AsmJit/core/operand.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/operand.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/operand.Tpo $(DEPDIR)/operand.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/operand.cpp' object='operand.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o operand.o `test -f 'utils/AsmJit/core/operand.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/operand.cpp - -operand.obj: utils/AsmJit/core/operand.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT operand.obj -MD -MP -MF $(DEPDIR)/operand.Tpo -c -o operand.obj `if test -f 'utils/AsmJit/core/operand.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/operand.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/operand.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/operand.Tpo $(DEPDIR)/operand.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/operand.cpp' object='operand.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o operand.obj `if test -f 'utils/AsmJit/core/operand.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/operand.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/operand.cpp'; fi` - -stringbuilder.o: utils/AsmJit/core/stringbuilder.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringbuilder.o -MD -MP -MF $(DEPDIR)/stringbuilder.Tpo -c -o stringbuilder.o `test -f 'utils/AsmJit/core/stringbuilder.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/stringbuilder.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stringbuilder.Tpo $(DEPDIR)/stringbuilder.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/stringbuilder.cpp' object='stringbuilder.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringbuilder.o `test -f 'utils/AsmJit/core/stringbuilder.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/stringbuilder.cpp - -stringbuilder.obj: utils/AsmJit/core/stringbuilder.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringbuilder.obj -MD -MP -MF $(DEPDIR)/stringbuilder.Tpo -c -o stringbuilder.obj `if test -f 'utils/AsmJit/core/stringbuilder.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/stringbuilder.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/stringbuilder.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stringbuilder.Tpo $(DEPDIR)/stringbuilder.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/stringbuilder.cpp' object='stringbuilder.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringbuilder.obj `if test -f 'utils/AsmJit/core/stringbuilder.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/stringbuilder.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/stringbuilder.cpp'; fi` - -stringutil.o: utils/AsmJit/core/stringutil.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringutil.o -MD -MP -MF $(DEPDIR)/stringutil.Tpo -c -o stringutil.o `test -f 'utils/AsmJit/core/stringutil.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/stringutil.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stringutil.Tpo $(DEPDIR)/stringutil.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/stringutil.cpp' object='stringutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringutil.o `test -f 'utils/AsmJit/core/stringutil.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/stringutil.cpp - -stringutil.obj: utils/AsmJit/core/stringutil.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringutil.obj -MD -MP -MF $(DEPDIR)/stringutil.Tpo -c -o stringutil.obj `if test -f 'utils/AsmJit/core/stringutil.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/stringutil.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/stringutil.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stringutil.Tpo $(DEPDIR)/stringutil.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/stringutil.cpp' object='stringutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringutil.obj `if test -f 'utils/AsmJit/core/stringutil.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/stringutil.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/stringutil.cpp'; fi` - -virtualmemory.o: utils/AsmJit/core/virtualmemory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT virtualmemory.o -MD -MP -MF $(DEPDIR)/virtualmemory.Tpo -c -o virtualmemory.o `test -f 'utils/AsmJit/core/virtualmemory.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/virtualmemory.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/virtualmemory.Tpo $(DEPDIR)/virtualmemory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/virtualmemory.cpp' object='virtualmemory.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o virtualmemory.o `test -f 'utils/AsmJit/core/virtualmemory.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/virtualmemory.cpp - -virtualmemory.obj: utils/AsmJit/core/virtualmemory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT virtualmemory.obj -MD -MP -MF $(DEPDIR)/virtualmemory.Tpo -c -o virtualmemory.obj `if test -f 'utils/AsmJit/core/virtualmemory.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/virtualmemory.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/virtualmemory.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/virtualmemory.Tpo $(DEPDIR)/virtualmemory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/virtualmemory.cpp' object='virtualmemory.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o virtualmemory.obj `if test -f 'utils/AsmJit/core/virtualmemory.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/virtualmemory.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/virtualmemory.cpp'; fi` - -zonememory.o: utils/AsmJit/core/zonememory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT zonememory.o -MD -MP -MF $(DEPDIR)/zonememory.Tpo -c -o zonememory.o `test -f 'utils/AsmJit/core/zonememory.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/zonememory.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/zonememory.Tpo $(DEPDIR)/zonememory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/zonememory.cpp' object='zonememory.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o zonememory.o `test -f 'utils/AsmJit/core/zonememory.cpp' || echo '$(srcdir)/'`utils/AsmJit/core/zonememory.cpp - -zonememory.obj: utils/AsmJit/core/zonememory.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT zonememory.obj -MD -MP -MF $(DEPDIR)/zonememory.Tpo -c -o zonememory.obj `if test -f 'utils/AsmJit/core/zonememory.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/zonememory.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/zonememory.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/zonememory.Tpo $(DEPDIR)/zonememory.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/core/zonememory.cpp' object='zonememory.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o zonememory.obj `if test -f 'utils/AsmJit/core/zonememory.cpp'; then $(CYGPATH_W) 'utils/AsmJit/core/zonememory.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/core/zonememory.cpp'; fi` - -x86assembler.o: utils/AsmJit/x86/x86assembler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86assembler.o -MD -MP -MF $(DEPDIR)/x86assembler.Tpo -c -o x86assembler.o `test -f 'utils/AsmJit/x86/x86assembler.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86assembler.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86assembler.Tpo $(DEPDIR)/x86assembler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86assembler.cpp' object='x86assembler.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86assembler.o `test -f 'utils/AsmJit/x86/x86assembler.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86assembler.cpp - -x86assembler.obj: utils/AsmJit/x86/x86assembler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86assembler.obj -MD -MP -MF $(DEPDIR)/x86assembler.Tpo -c -o x86assembler.obj `if test -f 'utils/AsmJit/x86/x86assembler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86assembler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86assembler.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86assembler.Tpo $(DEPDIR)/x86assembler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86assembler.cpp' object='x86assembler.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86assembler.obj `if test -f 'utils/AsmJit/x86/x86assembler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86assembler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86assembler.cpp'; fi` - -x86compiler.o: utils/AsmJit/x86/x86compiler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compiler.o -MD -MP -MF $(DEPDIR)/x86compiler.Tpo -c -o x86compiler.o `test -f 'utils/AsmJit/x86/x86compiler.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compiler.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compiler.Tpo $(DEPDIR)/x86compiler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compiler.cpp' object='x86compiler.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compiler.o `test -f 'utils/AsmJit/x86/x86compiler.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compiler.cpp - -x86compiler.obj: utils/AsmJit/x86/x86compiler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compiler.obj -MD -MP -MF $(DEPDIR)/x86compiler.Tpo -c -o x86compiler.obj `if test -f 'utils/AsmJit/x86/x86compiler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compiler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compiler.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compiler.Tpo $(DEPDIR)/x86compiler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compiler.cpp' object='x86compiler.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compiler.obj `if test -f 'utils/AsmJit/x86/x86compiler.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compiler.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compiler.cpp'; fi` - -x86compilercontext.o: utils/AsmJit/x86/x86compilercontext.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compilercontext.o -MD -MP -MF $(DEPDIR)/x86compilercontext.Tpo -c -o x86compilercontext.o `test -f 'utils/AsmJit/x86/x86compilercontext.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compilercontext.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compilercontext.Tpo $(DEPDIR)/x86compilercontext.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compilercontext.cpp' object='x86compilercontext.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compilercontext.o `test -f 'utils/AsmJit/x86/x86compilercontext.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compilercontext.cpp - -x86compilercontext.obj: utils/AsmJit/x86/x86compilercontext.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compilercontext.obj -MD -MP -MF $(DEPDIR)/x86compilercontext.Tpo -c -o x86compilercontext.obj `if test -f 'utils/AsmJit/x86/x86compilercontext.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compilercontext.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compilercontext.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compilercontext.Tpo $(DEPDIR)/x86compilercontext.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compilercontext.cpp' object='x86compilercontext.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compilercontext.obj `if test -f 'utils/AsmJit/x86/x86compilercontext.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compilercontext.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compilercontext.cpp'; fi` - -x86compilerfunc.o: utils/AsmJit/x86/x86compilerfunc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compilerfunc.o -MD -MP -MF $(DEPDIR)/x86compilerfunc.Tpo -c -o x86compilerfunc.o `test -f 'utils/AsmJit/x86/x86compilerfunc.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compilerfunc.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compilerfunc.Tpo $(DEPDIR)/x86compilerfunc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compilerfunc.cpp' object='x86compilerfunc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compilerfunc.o `test -f 'utils/AsmJit/x86/x86compilerfunc.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compilerfunc.cpp - -x86compilerfunc.obj: utils/AsmJit/x86/x86compilerfunc.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compilerfunc.obj -MD -MP -MF $(DEPDIR)/x86compilerfunc.Tpo -c -o x86compilerfunc.obj `if test -f 'utils/AsmJit/x86/x86compilerfunc.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compilerfunc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compilerfunc.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compilerfunc.Tpo $(DEPDIR)/x86compilerfunc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compilerfunc.cpp' object='x86compilerfunc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compilerfunc.obj `if test -f 'utils/AsmJit/x86/x86compilerfunc.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compilerfunc.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compilerfunc.cpp'; fi` - -x86compileritem.o: utils/AsmJit/x86/x86compileritem.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compileritem.o -MD -MP -MF $(DEPDIR)/x86compileritem.Tpo -c -o x86compileritem.o `test -f 'utils/AsmJit/x86/x86compileritem.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compileritem.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compileritem.Tpo $(DEPDIR)/x86compileritem.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compileritem.cpp' object='x86compileritem.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compileritem.o `test -f 'utils/AsmJit/x86/x86compileritem.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86compileritem.cpp - -x86compileritem.obj: utils/AsmJit/x86/x86compileritem.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86compileritem.obj -MD -MP -MF $(DEPDIR)/x86compileritem.Tpo -c -o x86compileritem.obj `if test -f 'utils/AsmJit/x86/x86compileritem.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compileritem.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compileritem.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86compileritem.Tpo $(DEPDIR)/x86compileritem.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86compileritem.cpp' object='x86compileritem.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86compileritem.obj `if test -f 'utils/AsmJit/x86/x86compileritem.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86compileritem.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86compileritem.cpp'; fi` - -x86cpuinfo.o: utils/AsmJit/x86/x86cpuinfo.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86cpuinfo.o -MD -MP -MF $(DEPDIR)/x86cpuinfo.Tpo -c -o x86cpuinfo.o `test -f 'utils/AsmJit/x86/x86cpuinfo.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86cpuinfo.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86cpuinfo.Tpo $(DEPDIR)/x86cpuinfo.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86cpuinfo.cpp' object='x86cpuinfo.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86cpuinfo.o `test -f 'utils/AsmJit/x86/x86cpuinfo.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86cpuinfo.cpp - -x86cpuinfo.obj: utils/AsmJit/x86/x86cpuinfo.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86cpuinfo.obj -MD -MP -MF $(DEPDIR)/x86cpuinfo.Tpo -c -o x86cpuinfo.obj `if test -f 'utils/AsmJit/x86/x86cpuinfo.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86cpuinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86cpuinfo.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86cpuinfo.Tpo $(DEPDIR)/x86cpuinfo.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86cpuinfo.cpp' object='x86cpuinfo.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86cpuinfo.obj `if test -f 'utils/AsmJit/x86/x86cpuinfo.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86cpuinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86cpuinfo.cpp'; fi` - -x86defs.o: utils/AsmJit/x86/x86defs.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86defs.o -MD -MP -MF $(DEPDIR)/x86defs.Tpo -c -o x86defs.o `test -f 'utils/AsmJit/x86/x86defs.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86defs.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86defs.Tpo $(DEPDIR)/x86defs.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86defs.cpp' object='x86defs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86defs.o `test -f 'utils/AsmJit/x86/x86defs.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86defs.cpp - -x86defs.obj: utils/AsmJit/x86/x86defs.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86defs.obj -MD -MP -MF $(DEPDIR)/x86defs.Tpo -c -o x86defs.obj `if test -f 'utils/AsmJit/x86/x86defs.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86defs.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86defs.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86defs.Tpo $(DEPDIR)/x86defs.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86defs.cpp' object='x86defs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86defs.obj `if test -f 'utils/AsmJit/x86/x86defs.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86defs.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86defs.cpp'; fi` - -x86func.o: utils/AsmJit/x86/x86func.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86func.o -MD -MP -MF $(DEPDIR)/x86func.Tpo -c -o x86func.o `test -f 'utils/AsmJit/x86/x86func.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86func.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86func.Tpo $(DEPDIR)/x86func.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86func.cpp' object='x86func.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86func.o `test -f 'utils/AsmJit/x86/x86func.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86func.cpp - -x86func.obj: utils/AsmJit/x86/x86func.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86func.obj -MD -MP -MF $(DEPDIR)/x86func.Tpo -c -o x86func.obj `if test -f 'utils/AsmJit/x86/x86func.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86func.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86func.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86func.Tpo $(DEPDIR)/x86func.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86func.cpp' object='x86func.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86func.obj `if test -f 'utils/AsmJit/x86/x86func.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86func.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86func.cpp'; fi` - -x86operand.o: utils/AsmJit/x86/x86operand.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86operand.o -MD -MP -MF $(DEPDIR)/x86operand.Tpo -c -o x86operand.o `test -f 'utils/AsmJit/x86/x86operand.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86operand.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86operand.Tpo $(DEPDIR)/x86operand.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86operand.cpp' object='x86operand.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86operand.o `test -f 'utils/AsmJit/x86/x86operand.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86operand.cpp - -x86operand.obj: utils/AsmJit/x86/x86operand.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86operand.obj -MD -MP -MF $(DEPDIR)/x86operand.Tpo -c -o x86operand.obj `if test -f 'utils/AsmJit/x86/x86operand.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86operand.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86operand.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86operand.Tpo $(DEPDIR)/x86operand.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86operand.cpp' object='x86operand.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86operand.obj `if test -f 'utils/AsmJit/x86/x86operand.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86operand.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86operand.cpp'; fi` - -x86util.o: utils/AsmJit/x86/x86util.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86util.o -MD -MP -MF $(DEPDIR)/x86util.Tpo -c -o x86util.o `test -f 'utils/AsmJit/x86/x86util.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86util.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86util.Tpo $(DEPDIR)/x86util.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86util.cpp' object='x86util.o' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86util.o `test -f 'utils/AsmJit/x86/x86util.cpp' || echo '$(srcdir)/'`utils/AsmJit/x86/x86util.cpp - -x86util.obj: utils/AsmJit/x86/x86util.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT x86util.obj -MD -MP -MF $(DEPDIR)/x86util.Tpo -c -o x86util.obj `if test -f 'utils/AsmJit/x86/x86util.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86util.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86util.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x86util.Tpo $(DEPDIR)/x86util.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/AsmJit/x86/x86util.cpp' object='x86util.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o x86util.obj `if test -f 'utils/AsmJit/x86/x86util.cpp'; then $(CYGPATH_W) 'utils/AsmJit/x86/x86util.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/AsmJit/x86/x86util.cpp'; fi` - -SndOut.o: metaspu/SndOut.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SndOut.o -MD -MP -MF $(DEPDIR)/SndOut.Tpo -c -o SndOut.o `test -f 'metaspu/SndOut.cpp' || echo '$(srcdir)/'`metaspu/SndOut.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SndOut.Tpo $(DEPDIR)/SndOut.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metaspu/SndOut.cpp' object='SndOut.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SndOut.o `test -f 'metaspu/SndOut.cpp' || echo '$(srcdir)/'`metaspu/SndOut.cpp - -SndOut.obj: metaspu/SndOut.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SndOut.obj -MD -MP -MF $(DEPDIR)/SndOut.Tpo -c -o SndOut.obj `if test -f 'metaspu/SndOut.cpp'; then $(CYGPATH_W) 'metaspu/SndOut.cpp'; else $(CYGPATH_W) '$(srcdir)/metaspu/SndOut.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SndOut.Tpo $(DEPDIR)/SndOut.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metaspu/SndOut.cpp' object='SndOut.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SndOut.obj `if test -f 'metaspu/SndOut.cpp'; then $(CYGPATH_W) 'metaspu/SndOut.cpp'; else $(CYGPATH_W) '$(srcdir)/metaspu/SndOut.cpp'; fi` - -Timestretcher.o: metaspu/Timestretcher.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Timestretcher.o -MD -MP -MF $(DEPDIR)/Timestretcher.Tpo -c -o Timestretcher.o `test -f 'metaspu/Timestretcher.cpp' || echo '$(srcdir)/'`metaspu/Timestretcher.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Timestretcher.Tpo $(DEPDIR)/Timestretcher.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metaspu/Timestretcher.cpp' object='Timestretcher.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Timestretcher.o `test -f 'metaspu/Timestretcher.cpp' || echo '$(srcdir)/'`metaspu/Timestretcher.cpp - -Timestretcher.obj: metaspu/Timestretcher.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Timestretcher.obj -MD -MP -MF $(DEPDIR)/Timestretcher.Tpo -c -o Timestretcher.obj `if test -f 'metaspu/Timestretcher.cpp'; then $(CYGPATH_W) 'metaspu/Timestretcher.cpp'; else $(CYGPATH_W) '$(srcdir)/metaspu/Timestretcher.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Timestretcher.Tpo $(DEPDIR)/Timestretcher.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metaspu/Timestretcher.cpp' object='Timestretcher.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Timestretcher.obj `if test -f 'metaspu/Timestretcher.cpp'; then $(CYGPATH_W) 'metaspu/Timestretcher.cpp'; else $(CYGPATH_W) '$(srcdir)/metaspu/Timestretcher.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -1951,57 +1242,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -2017,12 +1263,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -2034,15 +1275,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -2051,6 +1288,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -2141,6 +1393,24 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f addons/$(DEPDIR)/$(am__dirstamp) + -rm -f addons/$(am__dirstamp) + -rm -f filter/$(DEPDIR)/$(am__dirstamp) + -rm -f filter/$(am__dirstamp) + -rm -f metaspu/$(DEPDIR)/$(am__dirstamp) + -rm -f metaspu/$(am__dirstamp) + -rm -f utils/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/$(am__dirstamp) + -rm -f utils/AsmJit/core/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/AsmJit/core/$(am__dirstamp) + -rm -f utils/AsmJit/x86/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/AsmJit/x86/$(am__dirstamp) + -rm -f utils/decrypt/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/decrypt/$(am__dirstamp) + -rm -f utils/libfat/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/libfat/$(am__dirstamp) + -rm -f utils/tinyxml/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/tinyxml/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -2150,7 +1420,7 @@ clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) utils/tinyxml/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -2196,7 +1466,7 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) utils/tinyxml/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -2214,22 +1484,21 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-noinstLIBRARIES \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru desmume-0.9.9/src/mc.cpp desmume-0.9.10/src/mc.cpp --- desmume-0.9.9/src/mc.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/mc.cpp 2013-11-28 00:37:26.725149024 +0000 @@ -19,55 +19,59 @@ #include #include -#include "debug.h" + #include "types.h" +#include "debug.h" #include "mc.h" #include "movie.h" #include "readwrite.h" #include "NDSSystem.h" -#define TIXML_USE_STL -#include "utils/tinyxml/tinyxml.h" +#include "path.h" +#include "utils/advanscene.h" -//temporary hack until we have better error reporting facilities -#ifdef _WINDOWS -#include -#elif defined(_XBOX) -#include // it`s really need? -#endif +//#define _DONT_SAVE_BACKUP +//#define _MCLOG + +// TODO: motion device was broken +//#define _ENABLE_MOTION -#define FW_CMD_READ 0x03 -#define FW_CMD_WRITEDISABLE 0x04 -#define FW_CMD_READSTATUS 0x05 -#define FW_CMD_WRITEENABLE 0x06 -#define FW_CMD_PAGEWRITE 0x0A -#define FW_CMD_READ_ID 0x9F - -#define BM_CMD_AUTODETECT 0xFF -#define BM_CMD_WRITESTATUS 0x01 -#define BM_CMD_WRITELOW 0x02 -#define BM_CMD_READLOW 0x03 -#define BM_CMD_WRITEDISABLE 0x04 -#define BM_CMD_READSTATUS 0x05 -#define BM_CMD_WRITEENABLE 0x06 -#define BM_CMD_WRITEHIGH 0x0A -#define BM_CMD_READHIGH 0x0B - -/* FLASH*/ -#define COMM_PAGE_WRITE 0x0A -#define COMM_PAGE_ERASE 0xDB -#define COMM_SECTOR_ERASE 0xD8 -#define COMM_CHIP_ERASE 0xC7 +#define BM_CMD_NOP 0x00 +#define BM_CMD_AUTODETECT 0xFF +#define BM_CMD_WRITESTATUS 0x01 +#define BM_CMD_WRITELOW 0x02 +#define BM_CMD_READLOW 0x03 +#define BM_CMD_WRITEDISABLE 0x04 +#define BM_CMD_READSTATUS 0x05 +#define BM_CMD_WRITEENABLE 0x06 +#define BM_CMD_WRITEHIGH 0x0A +#define BM_CMD_READHIGH 0x0B + +// Pokemons IrDA +#define BM_CMD_IRDA 0x08 + +//FLASH +#define COMM_PAGE_WRITE 0x0A +#define COMM_PAGE_ERASE 0xDB +#define COMM_SECTOR_ERASE 0xD8 +#define COMM_CHIP_ERASE 0xC7 #define CARDFLASH_READ_BYTES_FAST 0x0B /* Not used*/ #define CARDFLASH_DEEP_POWDOWN 0xB9 /* Not used*/ #define CARDFLASH_WAKEUP 0xAB /* Not used*/ +#ifdef _MCLOG +#define MCLOG(...) printf(__VA_ARGS__) +#else +#define MCLOG(...) +#endif + //since r2203 this was 0x00. //but baby pals proves finally that it should be 0xFF: //the game reads its initial sound volumes from uninitialized data, and if it is 0, the game will be silent //if it is 0xFF then the game starts with its sound and music at max, as presumably it is supposed to. -//so in r3303 I finally changed it (no$ appears definitely to initialized to 0xFF) -static const u8 kUninitializedSaveDataValue = 0xFF; +//so in r3303 I finally changed it (no$ appears definitely to initialize to 0xFF) +static u8 kUninitializedSaveDataValue = 0xFF; +static const char* DESMUME_BACKUP_FOOTER_TXT = "|<--Snip above here to create a raw sav by excluding this DeSmuME savedata footer:"; static const char* kDesmumeSaveCookie = "|-DESMUME SAVE-|"; static const u32 saveSizes[] = {512, // 4k @@ -88,20 +92,20 @@ //the lookup table from user save types to save parameters const SAVE_TYPE save_types[] = { - {"Autodetect", MC_TYPE_AUTODETECT,1}, - {"EEPROM 4kbit",MC_TYPE_EEPROM1,MC_SIZE_4KBITS}, - {"EEPROM 64kbit",MC_TYPE_EEPROM2,MC_SIZE_64KBITS}, - {"EEPROM 512kbit",MC_TYPE_EEPROM2,MC_SIZE_512KBITS}, - {"FRAM 256kbit",MC_TYPE_FRAM,MC_SIZE_256KBITS}, - {"FLASH 2Mbit",MC_TYPE_FLASH,MC_SIZE_2MBITS}, - {"FLASH 4Mbit",MC_TYPE_FLASH,MC_SIZE_4MBITS}, - {"FLASH 8Mbit",MC_TYPE_FLASH,MC_SIZE_8MBITS}, - {"FLASH 16Mbit",MC_TYPE_FLASH,MC_SIZE_16MBITS}, - {"FLASH 32Mbit",MC_TYPE_FLASH,MC_SIZE_32MBITS}, - {"FLASH 64Mbit",MC_TYPE_FLASH,MC_SIZE_64MBITS}, - {"FLASH 128Mbit",MC_TYPE_FLASH,MC_SIZE_128MBITS}, - {"FLASH 256Mbit",MC_TYPE_FLASH,MC_SIZE_256MBITS}, - {"FLASH 512Mbit",MC_TYPE_FLASH,MC_SIZE_512MBITS} + {"Autodetect", MC_TYPE_AUTODETECT, 1, 0}, + {"EEPROM 4kbit", MC_TYPE_EEPROM1, MC_SIZE_4KBITS , 1}, + {"EEPROM 64kbit", MC_TYPE_EEPROM2, MC_SIZE_64KBITS , 2}, + {"EEPROM 512kbit", MC_TYPE_EEPROM2, MC_SIZE_512KBITS , 2}, + {"FRAM 256kbit", MC_TYPE_FRAM, MC_SIZE_256KBITS , 2}, + {"FLASH 2Mbit", MC_TYPE_FLASH, MC_SIZE_2MBITS , 3}, + {"FLASH 4Mbit", MC_TYPE_FLASH, MC_SIZE_4MBITS , 3}, + {"FLASH 8Mbit", MC_TYPE_FLASH, MC_SIZE_8MBITS , 3}, + {"FLASH 16Mbit", MC_TYPE_FLASH, MC_SIZE_16MBITS , 3}, + {"FLASH 32Mbit", MC_TYPE_FLASH, MC_SIZE_32MBITS , 3}, + {"FLASH 64Mbit", MC_TYPE_FLASH, MC_SIZE_64MBITS , 3}, + {"FLASH 128Mbit", MC_TYPE_FLASH, MC_SIZE_128MBITS , 3}, + {"FLASH 256Mbit", MC_TYPE_FLASH, MC_SIZE_256MBITS , 3}, + {"FLASH 512Mbit", MC_TYPE_FLASH, MC_SIZE_512MBITS , 3} }; @@ -117,204 +121,14 @@ CommonSettings.manualBackupType = type; } -void mc_init(memory_chip_t *mc, int type) -{ - mc->com = 0; - mc->addr = 0; - mc->addr_shift = 0; - mc->data = NULL; - mc->size = 0; - mc->write_enable = FALSE; - mc->writeable_buffer = FALSE; - mc->type = type; - mc->autodetectsize = 0; - - switch(mc->type) - { - case MC_TYPE_EEPROM1: - mc->addr_size = 1; - break; - case MC_TYPE_EEPROM2: - case MC_TYPE_FRAM: - mc->addr_size = 2; - break; - case MC_TYPE_FLASH: - mc->addr_size = 3; - break; - default: break; - } -} - -u8 *mc_alloc(memory_chip_t *mc, u32 size) -{ - u8 *buffer; - buffer = new u8[size]; - memset(buffer,0,size); - - if (mc->data) delete [] mc->data; - mc->data = buffer; - if(!buffer) { return NULL; } - mc->size = size; - mc->writeable_buffer = TRUE; - - return buffer; -} - -void mc_free(memory_chip_t *mc) -{ - if(mc->data) delete[] mc->data; - mc_init(mc, 0); -} - -void fw_reset_com(memory_chip_t *mc) -{ - if(mc->com == FW_CMD_PAGEWRITE) - { - if (mc->fp) - { - fseek(mc->fp, 0, SEEK_SET); - fwrite(mc->data, mc->size, 1, mc->fp); - } - - if (mc->isFirmware&&CommonSettings.UseExtFirmware) - { - // copy User Settings 1 to User Settings 0 area - memcpy(&mc->data[0x3FE00], &mc->data[0x3FF00], 0x100); - - printf("Firmware: save config"); - FILE *fp = fopen(mc->userfile, "wb"); - if (fp) - { - if (fwrite(&mc->data[0x3FF00], 1, 0x100, fp) == 0x100) // User Settings - { - if (fwrite(&mc->data[0x0002A], 1, 0x1D6, fp) == 0x1D6) // WiFi Settings - { - if (fwrite(&mc->data[0x3FA00], 1, 0x300, fp) == 0x300) // WiFi AP Settings - printf(" - done\n"); - else - printf(" - failed\n"); - } - } - fclose(fp); - } - else - printf(" - failed\n"); - } - - mc->write_enable = FALSE; - } - - mc->com = 0; -} - -u8 fw_transfer(memory_chip_t *mc, u8 data) -{ - if(mc->com == FW_CMD_READ || mc->com == FW_CMD_PAGEWRITE) /* check if we are in a command that needs 3 bytes address */ - { - if(mc->addr_shift > 0) /* if we got a complete address */ - { - mc->addr_shift--; - mc->addr |= data << (mc->addr_shift * 8); /* argument is a byte of address */ - } - else /* if we have received 3 bytes of address, proceed command */ - { - switch(mc->com) - { - case FW_CMD_READ: - if(mc->addr < mc->size) /* check if we can read */ - { - data = mc->data[mc->addr]; /* return byte */ - mc->addr++; /* then increment address */ - } - break; - - case FW_CMD_PAGEWRITE: - if(mc->addr < mc->size) - { - mc->data[mc->addr] = data; /* write byte */ - mc->addr++; - } - break; - } - - } - } - else if(mc->com == FW_CMD_READ_ID) - { - switch(mc->addr) - { - //here is an ID string measured from an old ds fat: 62 16 00 (0x62=sanyo) - //but we chose to use an ST from martin's ds fat string so programs might have a clue as to the firmware size: - //20 40 12 - case 0: - data = 0x20; - mc->addr=1; - break; - case 1: - data = 0x40; //according to gbatek this is the device ID for the flash on someone's ds fat - mc->addr=2; - break; - case 2: - data = 0x12; - mc->addr = 0; - break; - } - } - else if(mc->com == FW_CMD_READSTATUS) - { - return (mc->write_enable ? 0x02 : 0x00); - } - else //finally, check if it's a new command - { - switch(data) - { - case 0: break; //nothing - - case FW_CMD_READ_ID: - mc->addr = 0; - mc->com = FW_CMD_READ_ID; - break; - - case FW_CMD_READ: //read command - mc->addr = 0; - mc->addr_shift = 3; - mc->com = FW_CMD_READ; - break; - - case FW_CMD_WRITEENABLE: //enable writing - if(mc->writeable_buffer) { mc->write_enable = TRUE; } - break; - - case FW_CMD_WRITEDISABLE: //disable writing - mc->write_enable = FALSE; - break; - - case FW_CMD_PAGEWRITE: //write command - if(mc->write_enable) - { - mc->addr = 0; - mc->addr_shift = 3; - mc->com = FW_CMD_PAGEWRITE; - } - else { data = 0; } - break; - - case FW_CMD_READSTATUS: //status register command - mc->com = FW_CMD_READSTATUS; - break; - - default: - printf("Unhandled FW command: %02X\n", data); - break; - } - } - - return data; -} - bool BackupDevice::save_state(EMUFILE* os) { - u32 version = 2; + u32 savePos = fpMC->ftell(); + std::vector data(fsize); + fpMC->fseek(0, SEEK_SET); + fread((char*)&data[0], 1, fsize, fpMC->get_fp()); + + u32 version = 5; //v0 write32le(version,os); write32le(write_enable,os); @@ -329,12 +143,26 @@ //v2 write8le(motionInitState,os); write8le(motionFlag,os); + //v3 + writebool(reset_command_state,os); + //v4 + write8le(write_protect,os); + //v5 + write32le(savePos,os); + + fpMC->fseek(savePos, SEEK_SET); + + data.clear(); + return true; } bool BackupDevice::load_state(EMUFILE* is) { u32 version; + u32 temp; + std::vector data; + if(read32le(&version,is)!=1) return false; if(version>=0) { @@ -342,7 +170,6 @@ read32le(&com,is); read32le(&addr_size,is); read32le(&addr_counter,is); - u32 temp; read32le(&temp,is); state = (STATE)temp; readbuffer(data,is); @@ -350,30 +177,364 @@ } if(version>=1) read32le(&addr,is); + if(version>=2) { read8le(&motionInitState,is); read8le(&motionFlag,is); } + if(version>=3) + { + readbool(&reset_command_state,is); + } + + if(version>=4) + { + read8le(&write_protect,is); + } + + fsize = data.size(); +#ifndef _DONT_SAVE_BACKUP + fpMC->fseek(0, SEEK_SET); + fwrite((char*)&data[0], 1, fsize, fpMC->get_fp()); + ensure(data.size(), fpMC); +#endif + + if(version>=5) + { + read32le(&temp,is); + fpMC->fseek(temp, SEEK_SET); + } + else + fpMC->fseek(addr, SEEK_SET); + return true; } BackupDevice::BackupDevice() { + fpMC = NULL; + fsize = 0; + addr_size = 0; isMovieMode = false; + + if (gameInfo.romsize == 0) return; + + char buf[MAX_PATH] = {0}; + memset(buf, 0, MAX_PATH); + path.getpathnoext(path.BATTERY, buf); + filename = std::string(buf) + ".dsv"; // DeSmuME memory card + + MCLOG("MC: %s\n", filename.c_str()); + + bool fexists = (access(filename.c_str(), 0) == 0)?true:false; + + if (fexists && CommonSettings.backupSave) + { + std::string tmp_fsav = std::string(buf) + ".dsv.bak"; + EMUFILE_FILE *in = new EMUFILE_FILE(filename, "rb"); + if (!in->fail()) + { + u32 sz = in->size(); + if (sz > 0) + { + EMUFILE_FILE *out = new EMUFILE_FILE(tmp_fsav, "wb"); + if (!out->fail()) + { + u8 *data = new u8[sz]; + fread(data, 1, sz, in->get_fp()); + fwrite(data, 1, sz, out->get_fp()); + delete [] data; + } + delete out; + } + } + delete in; + } + + if (!fexists) + { + printf("DeSmuME .dsv save file not found. Trying to load an old raw .sav file.\n"); + std::string tmp_fsav = std::string(buf) + ".sav"; + + EMUFILE_FILE *fpTmp = new EMUFILE_FILE(tmp_fsav, "rb"); + if (!fpTmp->fail()) + { + u32 sz = fpTmp->size(); + + if (sz > 0) + { + EMUFILE_FILE *fpOut = new EMUFILE_FILE(filename, "wb"); + if (!fpOut->fail()) + { + u8 *buf = new u8[sz + 1]; + if ((buf) && (fread(buf, 1, sz, fpTmp->get_fp()) == sz)) + { + if (no_gba_unpack(buf, sz)) + printf("Converted from no$gba save.\n"); + else + sz = trim(buf, sz); + + if (fwrite(buf, 1, sz, fpOut->get_fp()) == sz) + { + u8 res = searchFileSaveType(sz); + if (res != 0xFF) + { + info.type = (res + 1); + addr_size = info.addr_size = save_types[info.type].addr_size; + info.size = fsize = sz; + ensure(sz, fpOut); + fsize = 0; + } + else + info.type = 0; + fexists = true; + } + } + delete [] buf; + } + delete fpOut; + } + } + delete fpTmp; + } + + fpMC = new EMUFILE_FILE(filename, fexists?"rb+":"wb+"); + if (!fpMC->fail()) + { + fsize = fpMC->size(); + if (fsize < saveSizes[0]) + fpMC->truncate(0); + + if (readFooter() == 0) + fsize -= (strlen(kDesmumeSaveCookie) + strlen(DESMUME_BACKUP_FOOTER_TXT) + 24); + else + { + memset(&info, 0, sizeof(info)); + fsize = 0; + } + + fpMC->fseek(0, SEEK_SET); + + u32 left = 0; + if (CommonSettings.autodetectBackupMethod == 1) + { + if (advsc.isLoaded()) + { + info.type = advsc.getSaveType(); + if (info.type != 0xFF && info.type != 0xFE) + { + info.type++; + u32 adv_size = save_types[info.type].size; + if (info.size > adv_size) + { + info.size = adv_size; + fpMC->truncate(adv_size); + ensure(adv_size, fpMC); + } + else + if (info.size < adv_size) + { + left = adv_size - info.size; + info.size = adv_size; + ensure(adv_size); + } + + fsize = adv_size; + } + } + } + + addr_size = info.addr_size; + info.padSize = fsize; + //none of the other fields are used right now + + if (CommonSettings.autodetectBackupMethod != 1 && info.type == 0) + { + info.type = searchFileSaveType(info.size); + if (info.type == 0xFF) info.type = 0; + } + + u32 ss = (info.padSize * 8) / 1024; + bool _Mbit = false; + + if (ss >= 1024) + { + ss /= 1024; + _Mbit = true; + } + + if (ss > 0) + printf("Backup size: %u %cbit\n", ss, _Mbit?'M':'K'); + } + + state = (fsize > 0)?RUNNING:DETECTING; reset(); } -//due to unfortunate shortcomings in the emulator architecture, -//at reset-time, we won't have a filename to the .dsv file. -//so the only difference between load_rom (init) and reset is that -//one of them saves the filename -void BackupDevice::load_rom(const char* filename) +BackupDevice::~BackupDevice() { - isMovieMode = false; - this->filename = filename; - reset(); + delete fpMC; + fpMC = NULL; +} + +int BackupDevice::readFooter() +{ + //scan for desmume save footer + const s32 cookieLen = (s32)strlen(kDesmumeSaveCookie); + char *sigbuf = new char[cookieLen]; + + fpMC->fseek(-cookieLen, SEEK_END); + fpMC->fread(sigbuf, cookieLen); + int cmp = memcmp(sigbuf,kDesmumeSaveCookie,cookieLen); + delete[] sigbuf; + + if (cmp) + return -1; + + //desmume format + fpMC->fseek(-cookieLen, SEEK_END); + fpMC->fseek(-4, SEEK_CUR); + + u32 version = 0xFFFFFFFF; + fpMC->read32le(&version); + if (version != 0) + return -2; + + fpMC->fseek(-24, SEEK_CUR); + fpMC->read32le(&info.size); + fpMC->read32le(&info.padSize); + fpMC->read32le(&info.type); + fpMC->read32le(&info.addr_size); + fpMC->read32le(&info.mem_size); + + MCLOG("DeSmuME backup footer:\n"); + MCLOG("\t* size:\t\t%u\n", info.size); + MCLOG("\t* padSize:\t%u\n", info.padSize); + MCLOG("\t* type (%u):\t%s\n", info.type, save_types[info.type].descr); + MCLOG("\t* addr_size:\t%u\n", info.addr_size); + MCLOG("\t* mem_size:\t%u\n", info.mem_size); + + return 0; +} + +u8 BackupDevice::read() +{ + u8 val = 0xFF; + fpMC->read8le(&val); + + return val; +} + +u8 BackupDevice::readByte(u32 addr, const u8 init) +{ + u8 val = init; + + fpMC->fseek(addr, SEEK_SET); + fpMC->read8le(&val); + + return val; +} +u16 BackupDevice::readWord(u32 addr, const u16 init) +{ + u16 val = init; + + fpMC->fseek(addr, SEEK_SET); + fpMC->read16le(&val); + + return val; +} +u32 BackupDevice::readLong(u32 addr, const u32 init) +{ + u32 val = init; + + fpMC->fseek(addr, SEEK_SET); + fpMC->read32le(&val); + + return val; +} + +u8 BackupDevice::readByte(const u8 init) +{ + u8 val = init; + fpMC->read8le(&val); + + return val; +} +u16 BackupDevice::readWord(const u16 init) +{ + u16 val = init; + fpMC->read16le(&val); + + return val; +} +u32 BackupDevice::readLong(const u32 init) +{ + u32 val = init; + fpMC->read32le(&val); + + return val; +} + +bool BackupDevice::write(u8 val) +{ +#ifdef _DONT_SAVE_BACKUP + return true; +#endif + //never use save files if we are in movie mode + if (isMovieMode) return true; + + return fwrite(&val, 1, 1, fpMC->get_fp())?true:false; +} + +void BackupDevice::writeByte(u32 addr, u8 val) +{ + if (isMovieMode) return; + fpMC->fseek(addr, SEEK_SET); + fpMC->write8le(val); +} +void BackupDevice::writeWord(u32 addr, u16 val) +{ + if (isMovieMode) return; + fpMC->fseek(addr, SEEK_SET); + fpMC->write16le(val); +} +void BackupDevice::writeLong(u32 addr, u32 val) +{ + if (isMovieMode) return; + fpMC->fseek(addr, SEEK_SET); + fpMC->write32le(val); +} + +void BackupDevice::writeByte(u8 val) +{ + if (isMovieMode) return; + fpMC->write8le(val); +} +void BackupDevice::writeWord(u16 val) +{ + if (isMovieMode) return; + fpMC->write16le(val); +} +void BackupDevice::writeLong(u32 val) +{ + if (isMovieMode) return; + fpMC->write32le(val); +} + +bool BackupDevice::saveBuffer(u8 *data, u32 size, bool _rewind, bool _truncate) +{ + if (_rewind) + { + fpMC->fseek(0, SEEK_SET); + if (_truncate) + fpMC->truncate(0); + } + fsize = size; + fwrite(data, 1, size, fpMC->get_fp()); + ensure(size, fpMC); + return true; } void BackupDevice::movie_mode() @@ -384,24 +545,24 @@ void BackupDevice::reset_hardware() { - write_enable = FALSE; com = 0; + reset_command_state = false; + write_enable = FALSE; + write_protect = 0; addr = addr_counter = 0; + motionInitState = MOTION_INIT_STATE_IDLE; motionFlag = MOTION_FLAG_NONE; - state = DETECTING; - flushPending = false; - lazyFlushPending = false; + + kUninitializedSaveDataValue = 0xFF; + + if(!memcmp(gameInfo.header.gameCode,"AXBJ", 4)) kUninitializedSaveDataValue = 0x00; // Daigassou! Band Brothers DX (JP) } void BackupDevice::reset() { - memset(&info, 0, sizeof(info)); reset_hardware(); - resize(0); data_autodetect.resize(0); - addr_size = 0; - loadfile(); //if the user has requested a manual choice for backup type, and we havent imported a raw save file, then apply it now if(state == DETECTING && CommonSettings.manualBackupType != MC_TYPE_AUTODETECT) @@ -410,15 +571,15 @@ int savetype = save_types[CommonSettings.manualBackupType].media_type; int savesize = save_types[CommonSettings.manualBackupType].size; ensure((u32)savesize); //expand properly if necessary - resize(savesize); //truncate if necessary addr_size = addr_size_for_old_save_type(savetype); - flush(); } } void BackupDevice::close_rom() { - flush(); + fpMC->fflush(); + delete fpMC; + fpMC = NULL; } u8 BackupDevice::searchFileSaveType(u32 size) @@ -426,22 +587,14 @@ for (u8 i = 1; i < MAX_SAVE_TYPES; i++) { if (size == save_types[i].size) - return (i-1); + return (i - 1); } return 0xFF; } -void BackupDevice::reset_command() +void BackupDevice::detect() { - //printf("MC RESET\n"); - //for a performance hack, save files are only flushed after each reset command - //(hopefully, after each page) - if(flushPending) - { - flush(); - flushPending = false; - lazyFlushPending = false; - } + if (!reset_command_state) return; if(state == DETECTING && data_autodetect.size()>0) { @@ -450,21 +603,13 @@ printf("Autodetecting with autodetect_size=%d\n",autodetect_size); - const u8 sm64_sig[] = {0x01,0x80,0x00,0x00}; - if(autodetect_size == 4 && !memcmp(&data_autodetect[0],sm64_sig,4)) + //detect based on rules + switch(autodetect_size) { - addr_size = 2; - } - else //detect based on rules - switch(autodetect_size) - { case 0: case 1: - printf("Catastrophic error while autodetecting save type.\nIt will need to be specified manually\n"); - #ifdef _WINDOWS - MessageBox(0,"Catastrophic Error Code: Camel;\nyour save type has not been autodetected correctly;\nplease report to developers",0,0); - #endif addr_size = 1; //choose 1 just to keep the busted savefile from growing too big + msgbox->error("Catastrophic error while autodetecting save type.\nIt will need to be specified manually\n"); break; case 2: //the modern typical case for small eeproms @@ -472,34 +617,57 @@ break; case 3: //another modern typical case.. - //but unfortunately we select this case for spider-man 3, when what it meant to do was - //present the archaic 1+2 case - //it seems that over the hedge does this also. + //but unfortunately we select this case on accident sometimes when what it meant to do was present the archaic 1+2 case + //(the archaic 1+2 case is: specifying one address byte, and then reading the first two bytes, instead of the first one byte, as most other games would do.) + //so, we're gonna hack in checks for the games that are doing this addr_size = 2; + + // TODO: will study a deep, why this happens (wrong detect size) + if(!memcmp(gameInfo.header.gameCode,"AL3", 3)) addr_size = 1; //spongebob atlantis squarepantis. + if(!memcmp(gameInfo.header.gameCode,"AH5", 3)) addr_size = 1; //over the hedge + if(!memcmp(gameInfo.header.gameCode,"AVH", 3)) addr_size = 1; //over the hedge - Hammy Goes Nuts! + if(!memcmp(gameInfo.header.gameCode,"AQ3", 3)) addr_size = 1; //spider-man 3 + break; case 4: //a modern typical case addr_size = 3; + if(!memcmp(gameInfo.header.gameCode,"ASM", 3)) addr_size = 2; //super mario 64 ds break; default: //the archaic case: write the address and then some modulo-4 number of bytes //why modulo 4? who knows. //SM64 (KOR) makes it here with autodetect_size=11 and nothing interesting in the buffer addr_size = autodetect_size & 3; + + if(!memcmp(gameInfo.header.gameCode,"BDE", 3)) addr_size = 2; // Dementium II break; - } + } state = RUNNING; data_autodetect.resize(0); - flush(); } +} - com = 0; +void BackupDevice::checkReset() +{ + if (reset_command_state) + { + //printf("MC : reset command\n"); + + if(com == BM_CMD_WRITELOW || com == BM_CMD_WRITEHIGH) + fpMC->fflush(); + + com = 0; + reset_command_state = false; + } } -u8 BackupDevice::data_command(u8 val, int cpu) + +u8 BackupDevice::data_command(u8 val, u8 PROCNUM) { - //printf("MC CMD: %02X\n",val); + //printf("MC%c : cmd %02X, val %02X\n", PROCNUM?'7':'9', com, val); +#ifdef _ENABLE_MOTION //motion: some guessing here... hope it doesn't break anything if(com == BM_CMD_READLOW && motionInitState == MOTION_INIT_STATE_RECEIVED_4_B && val == 0) { @@ -514,178 +682,237 @@ { return 0; } +#endif - if(com == BM_CMD_READLOW || com == BM_CMD_WRITELOW) + switch (com) { - //handle data or address - if(state == DETECTING) - { - if(com == BM_CMD_WRITELOW) + case BM_CMD_WRITESTATUS: + //printf("MC%c: write status %02X\n", PROCNUM?'7':'9', val); + write_protect = (val & 0xFC); + break; + + case BM_CMD_WRITELOW: + case BM_CMD_READLOW: + //handle data or address + if(state == DETECTING) { - printf("Unexpected backup device initialization sequence using writes!\n"); + if(com == BM_CMD_WRITELOW) + printf("MC%c: Unexpected backup device initialization sequence using writes!\n", PROCNUM?'7':'9'); + + //just buffer the data until we're no longer detecting + data_autodetect.push_back(val); + detect(); + val = 0xFF; } + else + { + if(addr_counter= addr_size) + { + //why does tomb raider underworld access 0x180 and go clear through to 0x280? + //should this wrap around at 0 or at 0x100? + if(addr_size == 1) addr &= 0x1FF; + + fpMC->fseek(addr, SEEK_SET); + } + } + else + { + ensure(addr); + if(com == BM_CMD_READLOW) + { + val = read(); + //MCLOG("BACKUP: Read at 0x%08X, value 0x%02X\n", addr, val); + } + else + if(write_enable) + { + write(val); + //MCLOG("BACKUP: Write to %08X, value %02Xh\n", addr, val); + } + addr++; + } + } + break; + + case BM_CMD_READSTATUS: + //handle request to read status + //LOG("Backup Memory Read Status: %02X\n", write_enable << 1); + val = (write_enable << 1) | write_protect; + break; + + case BM_CMD_IRDA: + printf("MC%c: Unverified Backup Memory command: %02X FROM %08X\n", PROCNUM?'7':'9', com, PROCNUM?NDS_ARM7.instruct_adr:NDS_ARM9.instruct_adr); + val = 0xAA; + break; + + default: + if (com != 0) { - //continue building address - addr <<= 8; - addr |= val; - addr_counter++; - //if(addr_counter==addr_size) printf("ADR: %08X\n",addr); + printf("MC%c: Unhandled Backup Memory command %02X, value %02X (PC:%08X)\n", PROCNUM?'7':'9', com, val, PROCNUM?NDS_ARM7.instruct_adr:NDS_ARM9.instruct_adr); + break; } - else + + com = val; + val = 0xFF; + + //there is no current command. receive one + switch (com) { - //why does tomb raider underworld access 0x180 and go clear through to 0x280? - //should this wrap around at 0 or at 0x100? - if(addr_size == 1) addr &= 0x1FF; - - //address is complete - ensure(addr+1); - if(com == BM_CMD_READLOW) - { - //printf("READ ADR: %08X\n",addr); - val = data[addr]; - //flushPending = true; //is this a good idea? it may slow stuff down, but it is helpful for debugging - lazyFlushPending = true; //lets do this instead - //printf("read: %08X\n",addr); - } - else - { - if(write_enable) + case BM_CMD_NOP: break; + + case BM_CMD_WRITESTATUS: break; + +#ifdef _ENABLE_MOTION + case 0xFE: + if(motionInitState == MOTION_INIT_STATE_IDLE) { motionInitState = MOTION_INIT_STATE_FE; return 0; } + break; + case 0xFD: + if(motionInitState == MOTION_INIT_STATE_FE) { motionInitState = MOTION_INIT_STATE_FD; return 0; } + break; + case 0xFB: + if(motionInitState == MOTION_INIT_STATE_FD) { motionInitState = MOTION_INIT_STATE_FB; return 0; } + break; + case 0xF8: + //enable sensor mode + if(motionInitState == MOTION_INIT_STATE_FD) { - //printf("WRITE ADR: %08X\n",addr); - data[addr] = val; - flushPending = true; - //printf("writ: %08X\n",addr); + motionInitState = MOTION_INIT_STATE_IDLE; + motionFlag |= MOTION_FLAG_SENSORMODE; + return 0; } - } - addr++; + break; + case 0xF9: + //disable sensor mode + if(motionInitState == MOTION_INIT_STATE_FD) + { + motionInitState = MOTION_INIT_STATE_IDLE; + motionFlag &= ~MOTION_FLAG_SENSORMODE; + return 0; + } + break; +#endif - } - } - } - else if(com == BM_CMD_READSTATUS) - { - //handle request to read status - LOG("Backup Memory Read Status: %02X\n", write_enable << 1); - return (write_enable << 1) | (3<<2); - } - else - { - //there is no current command. receive one - switch(val) - { - case 0: break; //?? + case BM_CMD_IRDA: + printf("MC%c: Unverified Backup Memory command: %02X FROM %08X\n", PROCNUM?'7':'9', com, PROCNUM?NDS_ARM7.instruct_adr:NDS_ARM9.instruct_adr); + + val = 0xAA; + break; - case 0xFE: - if(motionInitState == MOTION_INIT_STATE_IDLE) { motionInitState = MOTION_INIT_STATE_FE; return 0; } - break; - case 0xFD: - if(motionInitState == MOTION_INIT_STATE_FE) { motionInitState = MOTION_INIT_STATE_FD; return 0; } - break; - case 0xFB: - if(motionInitState == MOTION_INIT_STATE_FD) { motionInitState = MOTION_INIT_STATE_FB; return 0; } - break; - case 0xF8: - //enable sensor mode - if(motionInitState == MOTION_INIT_STATE_FD) - { - motionInitState = MOTION_INIT_STATE_IDLE; - motionFlag |= MOTION_FLAG_SENSORMODE; - return 0; - } - break; - case 0xF9: - //disable sensor mode - if(motionInitState == MOTION_INIT_STATE_FD) - { - motionInitState = MOTION_INIT_STATE_IDLE; - motionFlag &= ~MOTION_FLAG_SENSORMODE; - return 0; - } - break; + case BM_CMD_WRITEDISABLE: + //printf("MC%c: write disable\n", PROCNUM?'7':'9'); +#ifdef _ENABLE_MOTION + switch (motionInitState) + { + case MOTION_INIT_STATE_IDLE: motionInitState = MOTION_INIT_STATE_RECEIVED_4; break; + case MOTION_INIT_STATE_RECEIVED_4: motionInitState = MOTION_INIT_STATE_RECEIVED_4_B; break; + } +#endif + write_enable = FALSE; + break; + + case BM_CMD_READSTATUS: break; - case 8: - printf("COMMAND%c: Unverified Backup Memory command: %02X FROM %08X\n",(cpu==ARMCPU_ARM9)?'9':'7',val, (cpu==ARMCPU_ARM9)?NDS_ARM9.instruct_adr:NDS_ARM7.instruct_adr); - val = 0xAA; - break; + case BM_CMD_WRITEENABLE: + //printf("MC%c: write enable\n", PROCNUM?'7':'9'); + write_enable = TRUE; + break; - case BM_CMD_WRITEDISABLE: - switch(motionInitState) - { - case MOTION_INIT_STATE_IDLE: motionInitState = MOTION_INIT_STATE_RECEIVED_4; break; - case MOTION_INIT_STATE_RECEIVED_4: motionInitState = MOTION_INIT_STATE_RECEIVED_4_B; break; - } - write_enable = FALSE; - break; - - case BM_CMD_READSTATUS: - com = BM_CMD_READSTATUS; - val = (write_enable << 1) | (3<<2); - break; + case BM_CMD_WRITELOW: + case BM_CMD_READLOW: + //printf("XLO: %08X\n",addr); + addr_counter = 0; + addr = 0; + break; - case BM_CMD_WRITEENABLE: - write_enable = TRUE; - break; + case BM_CMD_WRITEHIGH: + case BM_CMD_READHIGH: + //printf("XHI: %08X\n",addr); + if(com == BM_CMD_WRITEHIGH) com = BM_CMD_WRITELOW; + if(com == BM_CMD_READHIGH) com = BM_CMD_READLOW; + addr_counter = 0; + addr = 0; + if(addr_size==1) + { + //"write command that's only available on ST M95040-W that I know of" + //this makes sense, since this device would only have a 256 bytes address space with writelow + //and writehigh would allow access to the upper 256 bytes + //but it was detected in pokemon diamond also during the main save process + addr = 0x1; + } + break; - case BM_CMD_WRITELOW: - case BM_CMD_READLOW: - //printf("XLO: %08X\n",addr); - com = val; - addr_counter = 0; - addr = 0; - break; + default: + printf("MC%c: Unhandled Backup Memory command: %02X FROM %08X\n", PROCNUM?'7':'9', com, PROCNUM?NDS_ARM7.instruct_adr:NDS_ARM9.instruct_adr); + break; + } //switch(val) + break; + } //switch (com) - case BM_CMD_WRITEHIGH: - case BM_CMD_READHIGH: - //printf("XHI: %08X\n",addr); - if(val == BM_CMD_WRITEHIGH) val = BM_CMD_WRITELOW; - if(val == BM_CMD_READHIGH) val = BM_CMD_READLOW; - com = val; - addr_counter = 0; - addr = 0; - if(addr_size==1) { - //"write command that's only available on ST M95040-W that I know of" - //this makes sense, since this device would only have a 256 bytes address space with writelow - //and writehigh would allow access to the upper 256 bytes - //but it was detected in pokemon diamond also during the main save process - addr = 0x1; - } - break; +#ifdef _ENABLE_MOTION + //motion control state machine broke, return to ground + motionInitState = MOTION_INIT_STATE_IDLE; +#endif - default: - printf("COMMAND%c: Unhandled Backup Memory command: %02X FROM %08X\n",(cpu==ARMCPU_ARM9)?'9':'7',val, (cpu==ARMCPU_ARM9)?NDS_ARM9.instruct_adr:NDS_ARM7.instruct_adr); - break; - } //switch(val) + checkReset(); - //motion control state machine broke, return to ground - motionInitState = MOTION_INIT_STATE_IDLE; - } return val; } //guarantees that the data buffer has room enough for the specified number of bytes -void BackupDevice::ensure(u32 addr) +void BackupDevice::ensure(u32 addr, EMUFILE_FILE *fpOut) { - u32 size = data.size(); - if(sizefseek(fsize, SEEK_SET); +#endif + + u32 padSize = pad_up_size(addr); + u32 size = padSize - fsize; + info.padSize = info.size = fsize = padSize; + int type = searchFileSaveType(fsize); + if (type != 0xFF) info.type = (type + 1); + +#ifndef _DONT_SAVE_BACKUP + if (size > 0) + { + u8 *tmp = new u8[size]; + memset(tmp, val, size); + fwrite(tmp, 1, size, fp->get_fp()); + delete [] tmp; + } + + //this is just for humans to read + fp->fprintf(DESMUME_BACKUP_FOOTER_TXT); + + //and now the actual footer + fp->write32le(addr); //the size of data that has actually been written + fp->write32le(padSize); //the size we padded it to + fp->write32le(info.type); //save memory type + fp->write32le(addr_size); + fp->write32le(info.size); //save memory size + fp->write32le((u32)0); //version number + fp->fprintf("%s", kDesmumeSaveCookie); //this is what we'll use to recognize the desmume format save + + fp->fflush(); + + fp->fseek(addr, SEEK_SET); +#endif } u32 BackupDevice::addr_size_for_old_save_size(int bupmem_size) @@ -717,7 +944,7 @@ return 1; case MC_TYPE_EEPROM2: case MC_TYPE_FRAM: - return 2; + return 2; case MC_TYPE_FLASH: return 3; default: @@ -725,16 +952,79 @@ } } - +// TODO: this is required yet? void BackupDevice::load_old_state(u32 addr_size, u8* data, u32 datasize) { - state = RUNNING; - this->addr_size = addr_size; - resize(datasize); - memcpy(&this->data[0],data,datasize); + //state = RUNNING; + //this->addr_size = addr_size; + //resize(datasize); + //memcpy(&this->data[0],data,datasize); //dump back out as a dsv, just to keep things sane - flush(); + //flush(); +} + +//======================================================================= Tools +//======================================================================= +//======================================================================= +u32 BackupDevice::importDataSize(const char *filename) +{ + u32 res = 0; + if (strlen(filename) < 4) return 0; + + if (memcmp(filename + strlen(filename) - 4, ".duc", 4) == 0) + { + res = get_save_duc_size(filename); + if (res == 0xFFFFFFFF) return 0; + return res; + } + + res = get_save_nogba_size(filename); + if (res != 0xFFFFFFFF) return res; + + res = get_save_raw_size(filename); + if (res != 0xFFFFFFFF) return res; + + return 0; +} + +bool BackupDevice::importData(const char *filename, u32 force_size) +{ + bool res = false; + if (strlen(filename) < 4) return res; + + if (memcmp(filename + strlen(filename) - 4, ".duc", 4) == 0) + res = import_duc(filename, force_size); + else + if (import_no_gba(filename, force_size)) + res = true; + else + res = import_raw(filename, force_size); + + if (res) + NDS_Reset(); + + return res; +} + +bool BackupDevice::exportData(const char *filename) +{ + if (strlen(filename) < 4) + return false; + + if (memcmp(filename + strlen(filename) - 5, ".sav*", 5) == 0) + { + char tmp[MAX_PATH]; + memset(tmp, 0, MAX_PATH); + strcpy(tmp, filename); + tmp[strlen(tmp)-1] = 0; + return export_no_gba(tmp); + } + + if (memcmp(filename + strlen(filename) - 4, ".sav", 4) == 0) + return export_raw(filename); + + return false; } //======================================================================= no$GBA @@ -774,6 +1064,23 @@ return 0xFFFFFFFF; } +u32 BackupDevice::get_save_nogba_size(u8 *data) +{ + for (u8 i = 0; i < 0x1F; i++) + if (data[i] != no_GBA_HEADER_ID[i]) return 0xFFFFFFFF; + if (data[0x1F] != 0x1A) return 0xFFFFFFFF; + for (int i = 0; i < 0x4; i++) + if (data[i+0x40] != no_GBA_HEADER_SRAM_ID[i]) return 0xFFFFFFFF; + + u32 compressMethod = *((u32*)(data+0x44)); + if (compressMethod == 0) + return *((u32*)(data+0x48)); + if (compressMethod == 1) + return *((u32*)(data+0x4C)); + + return 0xFFFFFFFF; +} + static int no_gba_unpackSAV(void *in_buf, u32 fsize, void *out_buf, u32 &size) { u8 *src = (u8 *)in_buf; @@ -794,7 +1101,7 @@ if (src[0x1F] != 0x1A) return (2); for (int i = 0; i < 0x4; i++) { - if (src[i+0x40] != no_GBA_HEADER_SRAM_ID[i]) return (2); + if (src[i+0x40] != no_GBA_HEADER_SRAM_ID[i]) return (3); } compressMethod = *((u32*)(src+0x44)); @@ -854,7 +1161,7 @@ return (200); } -static u32 no_gba_savTrim(void *buf, u32 size) +u32 BackupDevice::trim(void *buf, u32 size) { u32 rows = size / 16; u32 pos = (size - 16); @@ -877,7 +1184,7 @@ return (size); } -static u32 no_gba_fillLeft(u32 size) +u32 BackupDevice::fillLeft(u32 size) { for (u32 i = 1; i < ARRAY_SIZE(save_types); i++) { @@ -887,7 +1194,7 @@ return size; } -bool BackupDevice::load_no_gba(const char *fname, u32 force_size) +bool BackupDevice::import_no_gba(const char *fname, u32 force_size) { FILE *fsrc = fopen(fname, "rb"); u8 *in_buf = NULL; @@ -914,18 +1221,12 @@ if (force_size > 0) size = force_size; //printf("New size %i byte(s)\n", size); - size = no_gba_savTrim(out_buf, size); + size = trim(out_buf, size); //printf("--- new size after trim %i byte(s)\n", size); - size = no_gba_fillLeft(size); + size = fillLeft(size); //printf("--- new size after fill %i byte(s)\n", size); raw_applyUserSettings(size, (force_size > 0)); - resize(size); - for (u32 tt = 0; tt < size; tt++) - data[tt] = out_buf[tt]; - - //dump back out as a dsv, just to keep things sane - flush(); - printf("---- Loaded no$GBA save\n"); + saveBuffer(out_buf, size, true, true); if (in_buf) delete [] in_buf; if (out_buf) delete [] out_buf; @@ -937,12 +1238,41 @@ if (in_buf) delete [] in_buf; fclose(fsrc); } + return false; +} + +bool BackupDevice::no_gba_unpack(u8 *&buf, u32 &size) +{ + if (!buf) return false; + u32 out_size = get_save_nogba_size(buf); + if (out_size == 0xFFFFFFFF) return false; + u8 *out_buf = new u8 [out_size]; + if (out_buf) + { + if (no_gba_unpackSAV(buf, size, out_buf, out_size) == 0) + { + out_size = trim(out_buf, out_size); + out_size = fillLeft(out_size); + delete [] buf; + buf = out_buf; + size = out_size; + return true; + } + } + + delete out_buf; return false; } -bool BackupDevice::save_no_gba(const char* fname) +bool BackupDevice::export_no_gba(const char* fname) { + std::vector data(fsize); + u32 pos = fpMC->ftell(); + fpMC->fseek(0, SEEK_SET); + fread((char*)&data[0], 1, fsize, fpMC->get_fp()); + fpMC->fseek(pos, SEEK_SET); + FILE* outf = fopen(fname,"wb"); if(!outf) return false; u32 size = data.size(); @@ -958,128 +1288,20 @@ fputc(0xFF,outf); } fclose(outf); + return true; } //======================================================================= end //======================================================================= //======================================================================= no$GBA - - -void BackupDevice::loadfile() +bool BackupDevice::export_raw(const char* filename) { - //never use save files if we are in movie mode - if(isMovieMode) return; - if(filename.length() ==0) return; //No sense crashing if no filename supplied - - EMUFILE_FILE* inf = new EMUFILE_FILE(filename.c_str(),"rb"); - if(inf->fail()) - { - delete inf; - //no dsv found; we need to try auto-importing a file with .sav extension - printf("DeSmuME .dsv save file not found. Trying to load an old raw .sav file.\n"); - - //change extension to sav - char tmp[MAX_PATH]; - strcpy(tmp,filename.c_str()); - tmp[strlen(tmp)-3] = 0; - strcat(tmp,"sav"); + std::vector data(fsize); + u32 pos = fpMC->ftell(); + fpMC->fseek(0, SEEK_SET); + fread((char*)&data[0], 1, fsize, fpMC->get_fp()); + fpMC->fseek(pos, SEEK_SET); - inf = new EMUFILE_FILE(tmp,"rb"); - if(inf->fail()) - { - delete inf; - printf("Missing save file %s\n",filename.c_str()); - return; - } - delete inf; - - if (!load_no_gba(tmp)) - load_raw(tmp); - } - else - { - //scan for desmume save footer - const s32 cookieLen = (s32)strlen(kDesmumeSaveCookie); - char *sigbuf = new char[cookieLen]; - inf->fseek(-cookieLen, SEEK_END); - inf->fread(sigbuf,cookieLen); - int cmp = memcmp(sigbuf,kDesmumeSaveCookie,cookieLen); - delete[] sigbuf; - if(cmp) - { - //maybe it is a misnamed raw save file. try loading it that way - printf("Not a DeSmuME .dsv save file. Trying to load as raw.\n"); - delete inf; - if (!load_no_gba(filename.c_str())) - load_raw(filename.c_str()); - return; - } - //desmume format - inf->fseek(-cookieLen, SEEK_END); - inf->fseek(-4, SEEK_CUR); - u32 version = 0xFFFFFFFF; - read32le(&version,inf); - if(version!=0) { - printf("Unknown save file format\n"); - return; - } - inf->fseek(-24, SEEK_CUR); - read32le(&info.size,inf); - read32le(&info.padSize,inf); - read32le(&info.type,inf); - read32le(&info.addr_size,inf); - read32le(&info.mem_size,inf); - - u32 left = 0; - if (CommonSettings.autodetectBackupMethod == 1) - { - if (advsc.isLoaded()) - { - info.type = advsc.getSaveType(); - if (info.type != 0xFF && info.type != 0xFE) - { - u32 adv_size = save_types[info.type+1].size; - if (info.size > adv_size) - info.size = adv_size; - else - if (info.size < adv_size) - { - left = adv_size - info.size; - info.size = adv_size; - } - } - } - } - //establish the save data - resize(info.size); - inf->fseek(0, SEEK_SET); - if(info.size>0) - inf->fread(&data[0],info.size - left); //read all the raw data we have - state = RUNNING; - addr_size = info.addr_size; - //none of the other fields are used right now - - - if (CommonSettings.autodetectBackupMethod != 1 && info.type == 0) - { - info.type = searchFileSaveType(info.size); - if (info.type == 0xFF) info.type = 0; - } - u32 ss = info.size * 8 / 1024; - if (ss >= 1024) - { - ss /= 1024; - printf("Backup size: %i Mbit\n", ss); - } - else - printf("Backup size: %i Kbit\n", ss); - - delete inf; - } -} - -bool BackupDevice::save_raw(const char* filename) -{ FILE* outf = fopen(filename,"wb"); if(!outf) return false; u32 size = data.size(); @@ -1089,6 +1311,7 @@ for(u32 i=size;i saveSizes[ctr]) ctr++; + + while ((ctr < saveSizes_count) && (size > saveSizes[ctr])) ctr++; + u32 padSize = saveSizes[ctr]; if(padSize == 0xFFFFFFFF) { printf("PANIC! Couldn't pad up save size. Refusing to pad.\n"); padSize = startSize; } - return padSize; -} - -void BackupDevice::lazy_flush() -{ - if(flushPending || lazyFlushPending) - { - lazyFlushPending = flushPending = false; - flush(); - } -} - -void BackupDevice::flush() -{ - //never use save files if we are in movie mode - if(isMovieMode) return; - - if (filename.length() == 0) return; - - EMUFILE* outf = new EMUFILE_FILE(filename.c_str(),"wb"); - if(!outf->fail()) - { - if(data.size()>0) - outf->fwrite(&data[0],data.size()); - - //write the footer. we use a footer so that we can maximize the chance of the - //save file being recognized as a raw save file by other emulators etc. - - //first, pad up to the next largest known save size. - u32 size = data.size(); - u32 padSize = pad_up_size(size); - - for(u32 i=size;ifputc(kUninitializedSaveDataValue); - - //this is just for humans to read - outf->fprintf("|<--Snip above here to create a raw sav by excluding this DeSmuME savedata footer:"); - - //and now the actual footer - write32le(size,outf); //the size of data that has actually been written - write32le(padSize,outf); //the size we padded it to - write32le(info.type,outf); //save memory type - write32le(addr_size,outf); - write32le(info.size,outf); //save memory size - write32le(0,outf); //version number - outf->fprintf("%s", kDesmumeSaveCookie); //this is what we'll use to recognize the desmume format save - - delete outf; - } - else - { - delete outf; - printf("Unable to open savefile %s\n", filename.c_str()); - } + + return padSize; } void BackupDevice::raw_applyUserSettings(u32& size, bool manual) @@ -1165,7 +1338,7 @@ if(CommonSettings.manualBackupType == MC_TYPE_AUTODETECT && !manual) { addr_size = addr_size_for_old_save_size(size); - resize(size); + ensure(size); } else { @@ -1179,9 +1352,7 @@ int savesize = save_types[type].size; addr_size = addr_size_for_old_save_type(savetype); if((u32)savesize 0)); - fread(&data[0],1,size-left,inf); + u8 *data = new u8[size]; + u32 sz = (size-left); + + bool res = (fread(data, 1, sz, inf) == sz); fclose(inf); - //dump back out as a dsv, just to keep things sane - flush(); + if (res) + saveBuffer(data, sz, true, true); + delete [] data; + return true; } @@ -1243,29 +1419,29 @@ return (size - 500); } -bool BackupDevice::load_duc(const char* filename, u32 force_size) +bool BackupDevice::import_duc(const char* filename, u32 force_size) { - u32 size; - char id[16]; - FILE* file = fopen(filename, "rb"); - - if(!file) return false; - - fseek(file, 0, SEEK_END); - size = (u32)ftell(file) - 500; - fseek(file, 0, SEEK_SET); + u32 size; + char id[16]; + FILE* file = fopen(filename, "rb"); - // Make sure we really have the right file - fread((void *)id, sizeof(char), 16, file); + if(!file) return false; - if (memcmp(id, "ARDS000000000001", 16) != 0) - { + fseek(file, 0, SEEK_END); + size = (u32)ftell(file) - 500; + fseek(file, 0, SEEK_SET); + + // Make sure we really have the right file + fread((void *)id, sizeof(char), 16, file); + + if (memcmp(id, "ARDS000000000001", 16) != 0) + { printf("Not recognized as a valid DUC file\n"); fclose(file); return false; - } - // Skip the rest of the header since we don't need it - fseek(file, 500, SEEK_SET); + } + // Skip the rest of the header since we don't need it + fseek(file, 500, SEEK_SET); u32 left = 0; if (force_size > 0) @@ -1280,18 +1456,19 @@ } } - raw_applyUserSettings(size, (force_size > 0)); - - ensure((u32)size); + raw_applyUserSettings(size, (force_size > 0)); - fread(&data[0],1,size-left,file); - fclose(file); + u8 *data = new u8[size]; + u32 sz = (size-left); - //choose + bool res = (fread(data, 1, sz, file) == sz); + fclose(file); - flush(); + if (res) + saveBuffer(data, sz, true, true); + delete [] data; - return true; + return res; } @@ -1320,11 +1497,8 @@ is->fread((char*)&info.addr_size,4); is->fread((char*)&info.mem_size,4); - //establish the save data - resize(info.size); is->fseek(0, SEEK_SET); - if(info.size>0) - is->fread((char*)&data[0],info.size); + fpMC = (EMUFILE_FILE*)&is; state = RUNNING; addr_size = info.addr_size; @@ -1338,192 +1512,3 @@ addr_size = addr_size_for_old_save_size(save_types[CommonSettings.manualBackupType].size); state = RUNNING; } - -// ============================================= ADVANsCEne -u8 ADVANsCEne::checkDB(const char *serial) -{ - loaded = false; - FILE *fp = fopen(database_path, "rb"); - if (fp) - { - char buf[64]; - memset(buf, 0, sizeof(buf)); - if (fread(buf, 1, strlen(_ADVANsCEne_BASE_ID), fp) == strlen(_ADVANsCEne_BASE_ID)) - { - //printf("ID: %s\n", buf); - if (strcmp(buf, _ADVANsCEne_BASE_ID) == 0) - { - if (fread(&versionBase[0], 1, 2, fp) == 2) - { - //printf("Version base: %i.%i\n", versionBase[0], versionBase[1]); - if (fread(&version[0], 1, 4, fp) == 4) - { - //printf("Version: %c%c%c%c\n", version[3], version[2], version[1], version[0]); - if (fread(&createTime, 1, sizeof(time_t), fp) == sizeof(time_t)) - { - memset(buf, 0,sizeof(buf)); - // serial(8) + crc32(4) + save_type(1) = 13 + reserved(8) = 21 - while (true) - { - if (fread(buf, 1, 21, fp) != 21) break; - if (memcmp(&buf[4], serial, 4) == 0) - { - memcpy(&crc32, &buf[8], 4); - //printf("%s founded: crc32=%04X, save type %02X\n", serial, crc32, buf[12]); - saveType = buf[12]; - fclose(fp); - loaded = true; - return true; - } - } - } - } - } - } - } - fclose(fp); - } - return false; -} - -bool ADVANsCEne::getXMLConfig(const char *in_filaname) -{ - TiXmlDocument *xml = NULL; - TiXmlElement *el = NULL; - TiXmlElement *el_configuration = NULL; - TiXmlElement *el_newDat = NULL; - - xml = new TiXmlDocument(); - if (!xml) return false; - if (!xml->LoadFile(in_filaname)) return false; - el = xml->FirstChildElement("dat"); - if (!el) return false; - el_configuration = el->FirstChildElement("configuration"); - if (!el_configuration) return false; - el = el_configuration->FirstChildElement("datName"); if (el) { datName = el->GetText(); } - el = el_configuration->FirstChildElement("datVersion"); if (el) { datVersion = el->GetText(); } - - el_newDat = el_configuration->FirstChildElement("newDat"); - if (!el_newDat) return false; - el = el_newDat->FirstChildElement("datVersionURL"); if (el) { urlVersion = el->GetText(); } - el = el_newDat->FirstChildElement("datURL"); if (el) { urlDat = el->GetText(); } - - delete xml; - return true; -} - -u32 ADVANsCEne::convertDB(const char *in_filaname) -{ - const char *saveTypeNames[] = { "Eeprom - 4 kbit", // EEPROM 4kbit - "Eeprom - 64 kbit", // EEPROM 64kbit - "Eeprom - 512 kbit", // EEPROM 512kbit - "Fram - 256 kbit", // FRAM 256kbit ! - "Flash - 2 mbit", // FLASH 2Mbit - "Flash - 4 mbit", // FLASH 4Mbit - "Flash - 8 mbit", // FLASH 8Mbit - "Flash - 16 mbit", // FLASH 16Mbit ! - "Flash - 32 mbit", // FLASH 32Mbit ! - "Flash - 64 mbit", // FLASH 64Mbit - "Flash - 128 mbit", // FLASH 128Mbit ! - "Flash - 256 mbit", // FLASH 256Mbit ! - "Flash - 512 mbit" // FLASH 512Mbit ! - }; - - TiXmlDocument *xml = NULL; - TiXmlElement *el = NULL; - TiXmlElement *el_serial = NULL; - TiXmlElement *el_games = NULL; - TiXmlElement *el_crc32 = NULL; - TiXmlElement *el_saveType = NULL; - FILE *fp; - u32 crc32 = 0; - u32 reserved = 0; - - printf("Converting DB...\n"); - if (getXMLConfig(in_filaname)) - { - if (!datName) return 0; - if (strcmp(datName, _ADVANsCEne_BASE_NAME) != 0) return 0; - } - - fp = fopen(database_path, "wb"); - if (!fp) return 0; - - // Header - fwrite(_ADVANsCEne_BASE_ID, 1, strlen(_ADVANsCEne_BASE_ID), fp); - fputc(_ADVANsCEne_BASE_VERSION_MAJOR, fp); - fputc(_ADVANsCEne_BASE_VERSION_MINOR, fp); - if (datVersion) - fwrite(datVersion, 1, strlen(datVersion), fp); - else - fputc(0, fp); - time_t __time = time(NULL); - fwrite(&__time, 1, sizeof(time_t), fp); - - xml = new TiXmlDocument(); - if (!xml) { fclose(fp); return 0; } - if (!xml->LoadFile(in_filaname)) { fclose(fp); return 0; } - el = xml->FirstChildElement("dat"); - if (!el) { fclose(fp); return 0; } - el_games = el->FirstChildElement("games"); - if (!el_games) { fclose(fp); return 0; } - el = el_games->FirstChildElement("game"); - if (!el) { fclose(fp); return 0; } - u32 count = 0; - while (el) - { - el_serial = el->FirstChildElement("serial"); - if (fwrite(el_serial->GetText(), 1, 8, fp) != 8) - { - fclose(fp); return 0; - } - // CRC32 - el_crc32 = el->FirstChildElement("files"); - sscanf_s(el_crc32->FirstChildElement("romCRC")->GetText(), "%x", &crc32); - if (fwrite(&crc32, 1, sizeof(u32), fp) != sizeof(u32)) - { - fclose(fp); return 0; - } - // Save type - el_saveType = el->FirstChildElement("saveType"); - if (el_saveType) - { - const char *tmp = el_saveType->GetText(); - if (tmp) - { - if (strcmp(tmp, "None") == 0) - fputc(0xFE, fp); - else - { - bool bUnknown = true; - for (u8 i = 0; i < MAX_SAVE_TYPES; i++) - { - if (strcmp(saveTypeNames[i], "") == 0) continue; - if (strcasecmp(tmp, saveTypeNames[i]) == 0) - { - fputc(i, fp); - bUnknown = false; - break; - } - } - if (bUnknown) - fputc(0xFF, fp); // Unknown - } - } - else - fputc(0xFF, fp); // Unknown - } - fwrite(&reserved, 1, sizeof(u32), fp); - fwrite(&reserved, 1, sizeof(u32), fp); - count++; - el = el->NextSiblingElement("game"); - } - delete xml; - fclose(fp); - if (count > 0) - printf("done\n"); - else - printf("error\n"); - printf("ADVANsCEne converter: %i found\n", count); - return count; -} diff -Nru desmume-0.9.9/src/mc.h desmume-0.9.10/src/mc.h --- desmume-0.9.9/src/mc.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/mc.h 2013-11-28 00:37:26.713148829 +0000 @@ -17,8 +17,8 @@ along with the this software. If not, see . */ -#ifndef __FW_H__ -#define __FW_H__ +#ifndef __MC_H__ +#define __MC_H__ #include #include @@ -50,94 +50,52 @@ #define MC_SIZE_256MBITS 0x2000000 #define MC_SIZE_512MBITS 0x4000000 -// ============================================= ADVANsCEne -#define _ADVANsCEne_BASE_ID "DeSmuME database (ADVANsCEne)\0x1A" -#define _ADVANsCEne_BASE_VERSION_MAJOR 1 -#define _ADVANsCEne_BASE_VERSION_MINOR 0 -#define _ADVANsCEne_BASE_NAME "ADVANsCEne Nintendo DS Collection" -class ADVANsCEne -{ -private: - char database_path[MAX_PATH]; // DeSmuME save types - u8 versionBase[2]; - char version[4]; - time_t createTime; - u8 saveType; - u32 crc32; - bool loaded; - - // XML - const char *datName; - const char *datVersion; - const char *urlVersion; - const char *urlDat; - bool getXMLConfig(const char *in_filaname); -public: - ADVANsCEne() : saveType(0xFF), - crc32(0), - loaded(false) - { - memset(database_path, 0, sizeof(database_path)); - memset(versionBase, 0, sizeof(versionBase)); - memset(version, 0, sizeof(version)); - } - void setDatabase(const char *path) { loaded = false; strcpy(database_path, path); } - u32 convertDB(const char *in_filaname); - u8 checkDB(const char *serial); - u32 getSaveType() { return saveType; } - u32 getCRC32() { return crc32; } - bool isLoaded() { return loaded; } -}; - - -struct memory_chip_t -{ - u8 com; //persistent command actually handled - u32 addr; //current address for reading/writing - u8 addr_shift; //shift for address (since addresses are transfered by 3 bytes units) - u8 addr_size; //size of addr when writing/reading - - BOOL write_enable; //is write enabled ? - - u8 *data; //memory data - u32 size; //memory size - BOOL writeable_buffer; //is "data" writeable ? - int type; //type of Memory - char *filename; - FILE *fp; - u8 autodetectbuf[32768]; - int autodetectsize; - - // needs only for firmware - bool isFirmware; - char userfile[MAX_PATH]; -}; - -//the new backup system by zeromus +//This "backup device" represents a typical retail NDS save memory accessible via AUXSPI. +//It is managed as a core emulator service for historical reasons which are bad, +//and possible infrastructural simplification reasons which are good. +//Slot-1 devices will map their AUXSPI accesses through to the core-managed BackupDevice to access it for the running software. class BackupDevice { public: BackupDevice(); + ~BackupDevice(); - //signals the save system that we are in our regular mode, loading up a rom. initializes for that case. - void load_rom(const char* filename); //signals the save system that we are in MOVIE mode. doesnt load up a rom, and never saves it. initializes for that case. void movie_mode(); - void reset(); void close_rom(); void forceManualBackupType(); void reset_hardware(); std::string getFilename() { return filename; } + + u8 readByte(u32 addr, const u8 init); + u16 readWord(u32 addr, const u16 init); + u32 readLong(u32 addr, const u32 init); + + u8 readByte(const u8 init); + u16 readWord(const u16 init); + u32 readLong(const u32 init); + + void writeByte(u32 addr, u8 val); + void writeWord(u32 addr, u16 val); + void writeLong(u32 addr, u32 val); + + void writeByte(u8 val); + void writeWord(u16 val); + void writeLong(u32 val); + + void seek(u32 pos) { fpMC->fseek(pos, SEEK_SET); } + + void flushBackup() { fpMC->fflush(); } + u8 searchFileSaveType(u32 size); bool save_state(EMUFILE* os); bool load_state(EMUFILE* is); //commands from mmu - void reset_command(); - u8 data_command(u8,int); - std::vector data; + void reset_command() { reset_command_state = true; }; + u8 data_command(u8, u8); //this info was saved before the last reset (used for savestate compatibility) struct SavedInfo @@ -145,6 +103,9 @@ u32 addr_size; } savedInfo; + void ensure(u32 addr, EMUFILE_FILE *fpOut = NULL); + void ensure(u32 addr, u8 val, EMUFILE_FILE *fpOut = NULL); + //and these are used by old savestates void load_old_state(u32 addr_size, u8* data, u32 datasize); static u32 addr_size_for_old_save_size(int bupmem_size); @@ -153,36 +114,48 @@ static u32 pad_up_size(u32 startSize); void raw_applyUserSettings(u32& size, bool manual = false); - bool load_duc(const char* filename, u32 force_size = 0); - bool load_no_gba(const char *fname, u32 force_size = 0); - bool save_no_gba(const char* fname); - bool load_raw(const char* filename, u32 force_size = 0); - bool save_raw(const char* filename); - bool load_movie(EMUFILE* is); + u32 trim(void *buf, u32 size); + u32 fillLeft(u32 size); + u32 get_save_duc_size(const char* filename); u32 get_save_nogba_size(const char* filename); + u32 get_save_nogba_size(u8 *data); u32 get_save_raw_size(const char* filename); - - //call me once a second or so to lazy flush the save data - //here's the reason for this system: we want to dump save files when theyre READ - //so that we have a better idea earlier on how large they are. but it slows things down - //way too much if we flush whenever we read. - void lazy_flush(); - void flush(); + bool import_duc(const char* filename, u32 force_size = 0); + bool import_no_gba(const char *fname, u32 force_size = 0); + bool import_raw(const char* filename, u32 force_size = 0); + bool export_no_gba(const char* fname); + bool export_raw(const char* filename); + bool no_gba_unpack(u8 *&buf, u32 &size); + + bool load_movie(EMUFILE* is); struct { u32 size,padSize,type,addr_size,mem_size; } info; bool isMovieMode; + + u32 importDataSize(const char *filename); + bool importData(const char *filename, u32 force_size = 0); + bool exportData(const char *filename); + private: + EMUFILE_FILE *fpMC; std::string filename; + u32 fsize; + int readFooter(); + bool write(u8 val); + u8 read(); + bool saveBuffer(u8 *data, u32 size, bool _rewind, bool _truncate = false); - bool write_enable; //is write enabled? + bool write_enable; + bool reset_command_state; u32 com; //persistent command actually handled u32 addr_size, addr_counter; u32 addr; - + u8 write_protect; + std::vector data_autodetect; enum STATE { DETECTING = 0, RUNNING = 1 @@ -201,26 +174,12 @@ }; u8 motionInitState, motionFlag; - void loadfile(); - bool _loadfile(const char *fname); - void ensure(u32 addr); - - bool flushPending, lazyFlushPending; - -private: - void resize(u32 size); + void checkReset(); + void detect(); }; -#define NDS_FW_SIZE_V1 (256 * 1024) /* size of fw memory on nds v1 */ -#define NDS_FW_SIZE_V2 (512 * 1024) /* size of fw memory on nds v2 */ -void mc_init(memory_chip_t *mc, int type); /* reset and init values for memory struct */ -u8 *mc_alloc(memory_chip_t *mc, u32 size); /* alloc mc memory */ -void mc_realloc(memory_chip_t *mc, int type, u32 size); /* realloc mc memory */ -void mc_load_file(memory_chip_t *mc, const char* filename); /* load save file and setup fp */ -void mc_free(memory_chip_t *mc); /* delete mc memory */ -void fw_reset_com(memory_chip_t *mc); /* reset communication with mc */ -u8 fw_transfer(memory_chip_t *mc, u8 data); + void backup_setManualBackupType(int type); void backup_forceManualBackupType(); @@ -230,6 +189,7 @@ const char* descr; int media_type; int size; + int addr_size; }; extern const SAVE_TYPE save_types[]; diff -Nru desmume-0.9.9/src/mem.h desmume-0.9.10/src/mem.h --- desmume-0.9.9/src/mem.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/mem.h 2013-11-28 00:37:18.801021066 +0000 @@ -175,6 +175,12 @@ *((u16 *) (mem + addr)) = val; } + +static INLINE void HostWriteLong(u8* const mem, const u32 addr, const u32 val) +{ + *((u32 *) (mem + addr)) = val; +} + static INLINE void HostWriteTwoWords(u8* const mem, const u32 addr, const u32 val) { #ifdef WORDS_BIGENDIAN diff -Nru desmume-0.9.9/src/MMU.cpp desmume-0.9.10/src/MMU.cpp --- desmume-0.9.9/src/MMU.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/MMU.cpp 2013-11-28 00:37:18.809021196 +0000 @@ -1,7 +1,7 @@ /* Copyright (C) 2006 yopyop Copyright (C) 2007 shash - Copyright (C) 2007-2012 DeSmuME team + Copyright (C) 2007-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,12 +33,14 @@ #include "gfx3d.h" #include "rtc.h" #include "mc.h" -#include "addons.h" #include "slot1.h" +#include "slot2.h" #include "mic.h" #include "movie.h" #include "readwrite.h" #include "MMU_timing.h" +#include "firmware.h" +#include "encrypt.h" #ifdef DO_ASSERT_UNALIGNED #define ASSERT_UNALIGNED(x) assert(x) @@ -46,6 +48,9 @@ #define ASSERT_UNALIGNED(x) #endif +//TODO - do we need these here? +_KEY2 key2; + //http://home.utah.edu/~nahaj/factoring/isqrt.c.html static u64 isqrt (u64 x) { u64 squaredbit, remainder, root; @@ -897,13 +902,12 @@ -void MMU_Init(void) { +void MMU_Init(void) +{ LOG("MMU init\n"); memset(&MMU, 0, sizeof(MMU_struct)); - MMU.CART_ROM = MMU.UNUSED_RAM; - //MMU.DTCMRegion = 0x027C0000; //even though apps may change dtcm immediately upon startup, this is the correct hardware starting value: MMU.DTCMRegion = 0x08000000; @@ -914,20 +918,17 @@ GFX_PIPEclear(); GFX_FIFOclear(); DISP_FIFOinit(); - new(&MMU_new) MMU_struct_new; mc_init(&MMU.fw, MC_TYPE_FLASH); /* init fw device */ mc_alloc(&MMU.fw, NDS_FW_SIZE_V1); MMU.fw.fp = NULL; MMU.fw.isFirmware = true; - // Init Backup Memory device, this should really be done when the rom is loaded - //mc_init(&MMU.bupmem, MC_TYPE_AUTODETECT); - //mc_alloc(&MMU.bupmem, 1); - //MMU.bupmem.fp = NULL; rtcInit(); - addonsInit(); - slot1Init(); + + slot1_Init(); + slot2_Init(); + if(Mic_Init() == FALSE) INFO("Microphone init failed.\n"); else @@ -939,11 +940,9 @@ if (MMU.fw.fp) fclose(MMU.fw.fp); mc_free(&MMU.fw); - //if (MMU.bupmem.fp) - // fclose(MMU.bupmem.fp); - //mc_free(&MMU.bupmem); - addonsClose(); - slot1Close(); + + slot1_Shutdown(); + slot2_Shutdown(); Mic_DeInit(); } @@ -986,7 +985,7 @@ memset(MMU.reg_IF_bits, 0, sizeof(u32) * 2); memset(MMU.reg_IF_pending, 0, sizeof(u32) * 2); - memset(MMU.dscard, 0, sizeof(nds_dscard) * 2); + memset(&MMU.dscard, 0, sizeof(MMU.dscard)); MMU.divRunning = 0; MMU.divResult = 0; @@ -1000,6 +999,8 @@ MMU.SPI_CNT = 0; MMU.AUX_SPI_CNT = 0; + reconstruct(&key2); + MMU.WRAMCNT = 0; // Enable the sound speakers @@ -1019,33 +1020,17 @@ rtcInit(); partie = 1; - addonsReset(); - slot1Reset(); + slot1_Reset(); + slot2_Reset(); Mic_Reset(); MMU.gfx3dCycles = 0; - memset(MMU.dscard[ARMCPU_ARM9].command, 0, 8); - MMU.dscard[ARMCPU_ARM9].address = 0; - MMU.dscard[ARMCPU_ARM9].transfer_count = 0; - MMU.dscard[ARMCPU_ARM9].mode = CardMode_Normal; - - memset(MMU.dscard[ARMCPU_ARM7].command, 0, 8); - MMU.dscard[ARMCPU_ARM7].address = 0; - MMU.dscard[ARMCPU_ARM7].transfer_count = 0; - MMU.dscard[ARMCPU_ARM7].mode = CardMode_Normal; - - //HACK!!! - //until we improve all our session tracking stuff, we need to save the backup memory filename - std::string bleh = MMU_new.backupDevice.getFilename(); - BackupDevice tempBackupDevice; - bool bleh2 = MMU_new.backupDevice.isMovieMode; - if(bleh2) tempBackupDevice = MMU_new.backupDevice; + MMU.dscard[0].transfer_count = 0; + MMU.dscard[0].mode = eCardMode_RAW; + MMU.dscard[1].transfer_count = 0; + MMU.dscard[1].mode = eCardMode_RAW; + reconstruct(&MMU_new); - if(bleh2) { - MMU_new.backupDevice = tempBackupDevice; - MMU_new.backupDevice.reset_hardware(); - } - else MMU_new.backupDevice.load_rom(bleh.c_str()); MMU_timing.arm7codeFetch.Reset(); MMU_timing.arm7dataFetch.Reset(); @@ -1063,16 +1048,6 @@ _MMU_MAIN_MEM_MASK32 = _MMU_MAIN_MEM_MASK & ~3; } -void MMU_setRom(u8 * rom, u32 mask) -{ - MMU.CART_ROM = rom; -} - -void MMU_unsetRom() -{ - MMU.CART_ROM=MMU.UNUSED_RAM; -} - static void execsqrt() { u32 ret; u8 mode = MMU_new.sqrt.mode; @@ -1274,142 +1249,405 @@ return true; } -// TODO: -// NAND flash support (used in Made in Ore/WarioWare D.I.Y.) -template -void FASTCALL MMU_writeToGCControl(u32 val) +void MMU_GC_endTransfer(u32 PROCNUM) { - const int TEST_PROCNUM = PROCNUM; - nds_dscard& card = MMU.dscard[TEST_PROCNUM]; + u32 val = T1ReadLong(MMU.MMU_MEM[PROCNUM][0x40], 0x1A4) & 0x7F7FFFFF; + T1WriteLong(MMU.MMU_MEM[PROCNUM][0x40], 0x1A4, val); - memcpy(&card.command[0], &MMU.MMU_MEM[TEST_PROCNUM][0x40][0x1A8], 8); + // if needed, throw irq for the end of transfer + if(MMU.AUX_SPI_CNT & 0x4000) + NDS_makeIrq(PROCNUM, IRQ_BIT_GC_TRANSFER_COMPLETE); +} - card.blocklen = 0; - slot1_device.write32(PROCNUM,0xFFFFFFFF,val); //Special case for some flashcarts - if(card.blocklen==0x01020304) return; - if(!(val & 0x80000000)) - { - card.address = 0; - card.transfer_count = 0; +template +void FASTCALL MMU_writeToGCControl(u32 val) +{ - val &= 0x7F7FFFFF; - T1WriteLong(MMU.MMU_MEM[TEST_PROCNUM][0x40], 0x1A4, val); - return; - } + int dbsize = (val>>24)&7; + static int gcctr=0; + GCLOG("[GC] [%07d] GCControl: %08X (dbsize:%d)\n",gcctr,val,dbsize); + gcctr++; - u32 shift = (val>>24&7); - if(shift == 7) - card.transfer_count = 1; - else if(shift == 0) - card.transfer_count = 0; - else - card.transfer_count = (0x100<>13)&1; + u8 bit15 = (val>>14)&1; + u8 key2_applyseed = (val>>15)&1; //write only strobe + //key1length high gcromctrl[21:16] ?? + u8 key2_encryptcommand = (val>>22)&1; + //bit 23 read only status + int blocksize_field = (val>>24)&7; + u8 clockrate = (val>>27)&1; + u8 secureareamode = (val>>28)&1; + //RESB bit 29? + u8 wr = (val>>30)&1; + u8 start = (val>>31)&1; //doubles as busy on read + static const int blocksize_table[] = {0,0x200,0x400,0x800,0x1000,0x2000,0x4000,4}; + int blocksize = blocksize_table[blocksize_field]; + + //store written value, without bit 31 and bit 23 set (those will be patched in as operations proceed) + //T1WriteLong(MMU.MMU_MEM[PROCNUM][0x40], 0x1A4, val & 0x7F7FFFFF); + + //if this operation has been triggered by strobing that bit, run it + if (key2_applyseed) + { + key2.applySeed(PROCNUM); + } + + //pluck out the command registers into a more convenient format + GC_Command rawcmd = *(GC_Command*)&MMU.MMU_MEM[PROCNUM][0x40][0x1A8]; + + //when writing a 1 to the start bit, a command runs. + //the command is transferred to the GC during the next 8 clocks + if(start) + { + GCLOG("[GC] command:"); rawcmd.print(); + slot1_device->write_command(PROCNUM, rawcmd); + + /*INFO("WRITE: %02X%02X%02X%02X%02X%02X%02X%02X ", + rawcmd.bytes[0], rawcmd.bytes[1], rawcmd.bytes[2], rawcmd.bytes[3], + rawcmd.bytes[4], rawcmd.bytes[5], rawcmd.bytes[6], rawcmd.bytes[7]); + INFO("FROM: %08X ", (PROCNUM ? NDS_ARM7:NDS_ARM9).instruct_adr); + INFO("1A4: %08X ", val); + INFO("SIZE: %08X\n", blocksize);*/ } - - switch(card.command[0]) + else { - case 0x9F: //Dummy - card.address = 0; - card.transfer_count = 0x800; - break; - - //case 0x90: //Get ROM chip ID - // break; - - case 0x3C: //Switch to KEY1 mode - card.mode = CardMode_KEY1; - break; - - default: - //fall through to the special slot1 handler - slot1_device.write32(TEST_PROCNUM, REG_GCROMCTRL,val); - break; + T1WriteLong(MMU.MMU_MEM[PROCNUM][0x40], 0x1A4, val & 0x7F7FFFFF); + GCLOG("SCUTTLE????\n"); + return; } + //the transfer size is determined by the specification here in GCROMCTRL, not any logic private to the card. + card.transfer_count = blocksize; + + //if there was nothing to be done here, go ahead and flag it as done if(card.transfer_count == 0) { - val &= 0x7F7FFFFF; - T1WriteLong(MMU.MMU_MEM[TEST_PROCNUM][0x40], 0x1A4, val); + MMU_GC_endTransfer(PROCNUM); return; } - - val |= 0x00800000; - T1WriteLong(MMU.MMU_MEM[TEST_PROCNUM][0x40], 0x1A4, val); - + + val |= 0x00800000; + T1WriteLong(MMU.MMU_MEM[PROCNUM][0x40], 0x1A4, val); + // Launch DMA if start flag was set to "DS Cart" - //printf("triggering card dma\n"); triggerDma(EDMAMode_Card); } - +/*template +u32 FASTCALL MMU_readFromGCControl() +{ + return T1ReadLong(MMU.MMU_MEM[0][0x40], 0x1A4); +}*/ template u32 MMU_readFromGC() { - const int TEST_PROCNUM = PROCNUM; - - nds_dscard& card = MMU.dscard[TEST_PROCNUM]; - u32 val = 0; + GCBUS_Controller& card = MMU.dscard[PROCNUM]; + //???? return the latched / last read value instead perhaps? if(card.transfer_count == 0) return 0; - switch(card.command[0]) + u32 val = slot1_device->read_GCDATAIN(PROCNUM); + + //update transfer counter and complete the transfer if necessary + card.transfer_count -= 4; + if(card.transfer_count <= 0) { - case 0x9F: //Dummy - val = 0xFFFFFFFF; - break; - - case 0x3C: //Switch to KEY1 mode - val = 0xFFFFFFFF; - break; + MMU_GC_endTransfer(PROCNUM); + } - default: - val = slot1_device.read32(TEST_PROCNUM, REG_GCDATAIN); - break; + return val; +} + +template +void MMU_writeToGC(u32 val) +{ + GCBUS_Controller& card = MMU.dscard[PROCNUM]; + + slot1_device->write_GCDATAIN(PROCNUM,val); + + //update transfer counter and complete the transfer if necessary + card.transfer_count -= 4; + if(card.transfer_count <= 0) + { + MMU_GC_endTransfer(PROCNUM); } +} - card.address += 4; // increment address +// ====================================================================== REG_SPIxxx +static void CalculateTouchPressure(int pressurePercent, u16 &z1, u16& z2) +{ + bool touch = nds.isTouch!=0; + if(!touch) + { + z1 = z2 = 0; + return; + } + int y = nds.scr_touchY; + int x = nds.scr_touchX; + float u = (x/256.0f); + float v = (y/192.0f); - card.transfer_count--; // update transfer counter - if(card.transfer_count) // if transfer is not ended - return val; // return data - - // transfer is done - T1WriteLong(MMU.MMU_MEM[TEST_PROCNUM][0x40], 0x1A4, - T1ReadLong(MMU.MMU_MEM[TEST_PROCNUM][0x40], 0x1A4) & 0x7F7FFFFF); + //these coefficients - // if needed, throw irq for the end of transfer - if(MMU.AUX_SPI_CNT & 0x4000) - NDS_makeIrq(TEST_PROCNUM, IRQ_BIT_GC_TRANSFER_COMPLETE); + float fPressurePercent = pressurePercent/100.0f; + //z1 goes up as pressure goes up + { + float b0 = (96-80)*fPressurePercent + 80; + float b1 = (970-864)*fPressurePercent + 864; + float b2 = (192-136)*fPressurePercent + 136; + float b3 = (1560-1100)*fPressurePercent + 1100; + z1 = (u16)(int)(b0 + (b1-b0)*u + (b2-b0)*v + (b3-b2-b1+b0)*u*v); + } + + //z2 goes down as pressure goes up + { + float b0=(1976-2300)*fPressurePercent + 2300; + float b1=(2360-2600)*fPressurePercent + 2600; + float b2=(3840-3900)*fPressurePercent + 3900; + float b3=(3912-3950)*fPressurePercent + 3950; + z2 = (u16)(int)(b0 + (b1-b0)*u + (b2-b0)*v + (b3-b2-b1+b0)*u*v); + } - return val; } +void FASTCALL MMU_writeToSPIData(u16 val) +{ + + enum PM_Bits //from libnds + { + PM_SOUND_AMP = BIT(0) , /*!< \brief Power the sound hardware (needed to hear stuff in GBA mode too) */ + PM_SOUND_MUTE = BIT(1), /*!< \brief Mute the main speakers, headphone output will still work. */ + PM_BACKLIGHT_BOTTOM = BIT(2), /*!< \brief Enable the top backlight if set */ + PM_BACKLIGHT_TOP = BIT(3) , /*!< \brief Enable the bottom backlight if set */ + PM_SYSTEM_PWR = BIT(6) , /*!< \brief Turn the power *off* if set */ + }; + + if (val !=0) + MMU.SPI_CMD = val; + + u16 spicnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_SPICNT >> 20) & 0xff], REG_SPICNT & 0xfff); + + int device = (spicnt >> 8) & 0x3; + int baudrate = spicnt & 0x3; + switch(device) + { + case SPI_DEVICE_POWERMAN: + if (!MMU.powerMan_CntRegWritten) + { + MMU.powerMan_CntReg = (val & 0xFF); + MMU.powerMan_CntRegWritten = TRUE; + } + else + { + u16 reg = MMU.powerMan_CntReg & 0x7F; + reg &= 0x7; + if(reg==5 || reg==6 || reg==7) reg = 4; + + //(let's start with emulating a DS lite, since it is the more complex case) + if(MMU.powerMan_CntReg & 0x80) + { + //read + val = MMU.powerMan_Reg[reg]; + } + else + { + //write + MMU.powerMan_Reg[reg] = (u8)val; + + //our totally pathetic register handling, only the one thing we've wanted so far + if(MMU.powerMan_Reg[0]&PM_SYSTEM_PWR) + { + printf("SYSTEM POWERED OFF VIA ARM7 SPI POWER DEVICE\n"); + printf("Did your main() return?\n"); + emu_halt(); + } + } + + MMU.powerMan_CntRegWritten = FALSE; + } + break; + + case SPI_DEVICE_FIRMWARE: + if(baudrate != SPI_BAUDRATE_4MHZ) // check SPI baudrate (must be 4mhz) + { + printf("Wrong SPI baud rate for firmware access\n"); + val = 0; + } + else + val = fw_transfer(&MMU.fw, (u8)val); + break; + + case SPI_DEVICE_TOUCHSCREEN: + { + if(nds.Is_DSI()) + { + //pass data to TSC + val = MMU_new.dsi_tsc.write16(val); + + //apply reset command if appropriate + if(!BIT11(MMU.SPI_CNT)) + MMU_new.dsi_tsc.reset_command(); + break; + } + + int channel = (MMU.SPI_CMD&0x70)>>4; + + switch(channel) + { + case TSC_MEASURE_TEMP1: + if(spicnt & 0x800) + { + if(partie) + { + val = ((716<<3)&0x7FF); + partie = 0; + break; + } + val = (716>>5); + partie = 1; + break; + } + val = ((716<<3)&0x7FF); + partie = 1; + break; + + case TSC_MEASURE_TEMP2: + if(spicnt & 0x800) + { + if(partie) + { + val = ((865<<3)&0x7FF); + partie = 0; + break; + } + val = (865>>5); + partie = 1; + break; + } + val = ((865<<3)&0x7FF); + partie = 1; + break; + + case TSC_MEASURE_Y: + //counter the number of adc touch coord reads and jitter it after a while to simulate a shaky human hand or multiple reads + //this is actually important for some games.. seemingly due to bugs. + nds.adc_jitterctr++; + if(nds.adc_jitterctr == 25) + { + nds.adc_jitterctr = 0; + if (nds.stylusJitter) + { + nds.adc_touchY ^= 16; + nds.adc_touchX ^= 16; + } + } + if(MMU.SPI_CNT&(1<<11)) + { + if(partie) + { + val = (nds.adc_touchY<<3) & 0xFF; + partie = 0; + break; + } + + val = (nds.adc_touchY>>5) & 0xFF; + partie = 1; + break; + } + val = (nds.adc_touchY<<3)&0xFF; + partie = 1; + break; + + case TSC_MEASURE_Z1: //Z1 + { + //used for pressure calculation - must be nonzero or else some softwares will think the stylus is up. + //something is wrong in here and some of these LSB dont make it back to libnds... whatever. + u16 scratch; + CalculateTouchPressure(CommonSettings.StylusPressure,val,scratch); + + if(spicnt & 0x800) + { + if(partie) + { + val = ((val<<3)&0x7FF); + partie = 0; + break; + } + val = (val>>5); + partie = 1; + break; + } + val = ((val<<3)&0x7FF); + partie = 1; + break; + } + + case TSC_MEASURE_Z2: //Z2 + { + //used for pressure calculation - must be nonzero or else some softwares will think the stylus is up. + //something is wrong in here and some of these LSB dont make it back to libnds... whatever. + u16 scratch; + CalculateTouchPressure(CommonSettings.StylusPressure,scratch,val); + + if(spicnt & 0x800) + { + if(partie) + { + val = ((val<<3)&0x7FF); + partie = 0; + break; + } + val = (val>>5); + partie = 1; + break; + } + val = ((val<<3)&0x7FF); + partie = 1; + break; + } + + case TSC_MEASURE_X: + if(spicnt & 0x800) + { + if(partie) + { + val = (nds.adc_touchX << 3) & 0xFF; + partie = 0; + break; + } + val = (nds.adc_touchX>>5) & 0xFF; + partie = 1; + break; + } + val = (nds.adc_touchX<<3) & 0xFF; + partie = 1; + break; + + case TSC_MEASURE_AUX: + if(!(val & 0x80)) + val = (Mic_ReadSample() & 0xFF); + else + val = 0; + break; + } + break; + } + + case 3 : + // NOTICE: Device 3 of SPI is reserved (unused and unusable) + break; + } + T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_SPIDATA >> 20) & 0xff], REG_SPIDATA & 0xfff, val & 0x00FF); +} +// ====================================================================== REG_SPIxxx END //does some validation on the game's choice of IF value, correcting it if necessary static void validateIF_arm9() @@ -1879,7 +2117,7 @@ //desp triggers this a lot. figure out whats going on //printf("thats weird..user edited dma control while it was running\n"); } - //printf("dma %d,%d WRITE %08X\n",procnum,chan,val); + wordcount = val&0x1FFFFF; u8 wasRepeatMode = repeatMode; u8 wasEnable = enable; @@ -1893,6 +2131,8 @@ irq = BIT14(valhi); enable = BIT15(valhi); + //printf("ARM%c DMA%d WRITE %08X count %08X, %08X -> %08X\n", procnum?'7':'9', chan, val, wordcount, saddr_user, daddr_user); + //if(irq) printf("!!!!!!!!!!!!IRQ!!!!!!!!!!!!!\n"); //make sure we don't get any old triggers @@ -1939,6 +2179,7 @@ { //this function runs when the DMA ends. the dma start actually queues this event after some kind of guess as to how long the DMA should take + //printf("ARM%c DMA%d execute, count %08X, mode %d%s\n", procnum?'7':'9', chan, wordcount, startmode, running?" - RUNNING":""); //we'll need to unfreeze the arm9 bus now if(procnum==ARMCPU_ARM9) nds.freezeBus &= ~(1<<(chan+1)); @@ -2008,6 +2249,9 @@ { //generate a copy count depending on various copy mode's behavior u32 todo = wordcount; + u32 sz = (bitWidth==EDMABitWidth_16)?2:4; + u32 dstinc = 0, srcinc = 0; + if(PROCNUM == ARMCPU_ARM9) if(todo == 0) todo = 0x200000; //according to gbatek.. we've verified this behaviour on the arm7 if(startmode == EDMAMode_MemDisplay) { @@ -2016,13 +2260,12 @@ //apparently this dma turns off after it finishes a frame if(nds.VCount==191) enable = 0; } - if(startmode == EDMAMode_Card) todo *= 0x80; + + if(startmode == EDMAMode_Card) todo = MMU.dscard[PROCNUM].transfer_count / sz; if(startmode == EDMAMode_GXFifo) todo = std::min(todo,(u32)112); //determine how we're going to copy bool bogarted = false; - u32 sz = (bitWidth==EDMABitWidth_16)?2:4; - u32 dstinc,srcinc; switch(dar) { case EDMADestinationUpdate_Increment : dstinc = sz; break; case EDMADestinationUpdate_Decrement : dstinc = (u32)-(s32)sz; break; @@ -2049,7 +2292,6 @@ u32 src = saddr; u32 dst = daddr; - //if these do not use MMU_AT_DMA and the corresponding code in the read/write routines, //then danny phantom title screen will be filled with a garbage char which is made by //dmaing from 0x00000000 to 0x06000000 @@ -2095,12 +2337,13 @@ if(dar != EDMADestinationUpdate_IncrementReload) //but dont write back dst if we were supposed to reload daddr = dst; - //do wordcount accounting - if(startmode == EDMAMode_Card) - todo /= 0x80; //divide this funky one back down before subtracting it - if(!repeatMode) - wordcount -= todo; + { + if(startmode == EDMAMode_Card) + wordcount = 0; + else + wordcount -= todo; + } } void triggerDma(EDMAMode mode) @@ -2167,78 +2410,822 @@ return ret; } -static INLINE void write_auxspicnt(const int proc, const int size, const int adr, const int val) +static INLINE void write_auxspicnt(const int PROCNUM, const int size, const int adr, const int val) { - //why val==0 to reset? is it a particular bit? its not bit 6... - switch(size) { + u16 oldCnt = MMU.AUX_SPI_CNT; + + switch(size) + { case 16: MMU.AUX_SPI_CNT = val; - if (val == 0) MMU_new.backupDevice.reset_command(); break; case 8: - switch(adr) { - case 0: - T1WriteByte((u8*)&MMU.AUX_SPI_CNT,0,val); - if (val == 0) MMU_new.backupDevice.reset_command(); - break; - case 1: - T1WriteByte((u8*)&MMU.AUX_SPI_CNT,1,val); - break; - } + T1WriteByte((u8*)&MMU.AUX_SPI_CNT, adr, val); + break; } -} - - -//================================================================================================== ARM9 * -//========================================================================================================= -//========================================================================================================= -//================================================= MMU write 08 -void FASTCALL _MMU_ARM9_write08(u32 adr, u8 val) -{ - adr &= 0x0FFFFFFF; - mmu_log_debug_ARM9(adr, "(write08) 0x%02X", val); - - if(adr < 0x02000000) - { -#ifdef HAVE_JIT - JIT_COMPILED_FUNC_KNOWNBANK(adr, ARM9_ITCM, 0x7FFF, 0) = 0; -#endif - T1WriteByte(MMU.ARM9_ITCM, adr & 0x7FFF, val); - return; - } + bool csOld = (oldCnt & (1 << 6))?true:false; + bool cs = (MMU.AUX_SPI_CNT & (1 << 6))?true:false; + bool spi = (MMU.AUX_SPI_CNT & (1 << 13))?true:false; - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) + if ((!cs && csOld) || (spi && (oldCnt == 0) && !cs)) { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x204); - if(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7) - {} //prohibited - else addon.write08(ARMCPU_ARM9, adr, val); - return; + //printf("MMU%c: CS changed from HIGH to LOW *****\n", PROCNUM?'7':'9'); + slot1_device->auxspi_reset(PROCNUM); } - //block 8bit writes to OAM and palette memory - if((adr&0x0F000000)==0x07000000) return; - if((adr&0x0F000000)==0x05000000) return; + //printf("MMU%c: cnt %04X, old %04X\n", PROCNUM?'7':'9', MMU.AUX_SPI_CNT, oldCnt); +} - if (adr >> 24 == 4) +template +bool validateIORegsWrite(u32 addr, u8 size, u32 val) +{ + if (PROCNUM == ARMCPU_ARM9) { - - // TODO: add pal reg - if (nds.power1.gpuMain == 0) - if ((adr >= 0x04000008) && (adr<=0x0400005F)) return; - if (nds.power1.gpuSub == 0) - if ((adr >= 0x04001008) && (adr<=0x0400105F)) return; - if (nds.power1.gfx3d_geometry == 0) - if ((adr >= 0x04000400) && (adr<=0x040006FF)) return; - if (nds.power1.gfx3d_render == 0) - if ((adr >= 0x04000320) && (adr<=0x040003FF)) return; + switch (addr & 0x0FFFFFFC) + { + // Display Engine A + case REG_DISPA_DISPCNT: + case REG_DISPA_DISPSTAT: + case REG_DISPA_VCOUNT: + // same as GBA... + case REG_DISPA_BG0CNT: + case REG_DISPA_BG1CNT: + case REG_DISPA_BG2CNT: + case REG_DISPA_BG3CNT: + case REG_DISPA_BG0HOFS: + case REG_DISPA_BG0VOFS: + case REG_DISPA_BG1HOFS: + case REG_DISPA_BG1VOFS: + case REG_DISPA_BG2HOFS: + case REG_DISPA_BG2VOFS: + case REG_DISPA_BG3HOFS: + case REG_DISPA_BG3VOFS: + case REG_DISPA_BG2PA: + case REG_DISPA_BG2PB: + case REG_DISPA_BG2PC: + case REG_DISPA_BG2PD: + case REG_DISPA_BG2XL: + case REG_DISPA_BG2XH: + case REG_DISPA_BG2YL: + case REG_DISPA_BG2YH: + case REG_DISPA_BG3PA: + case REG_DISPA_BG3PB: + case REG_DISPA_BG3PC: + case REG_DISPA_BG3PD: + case REG_DISPA_BG3XL: + case REG_DISPA_BG3XH: + case REG_DISPA_BG3YL: + case REG_DISPA_BG3YH: + case REG_DISPA_WIN0H: + case REG_DISPA_WIN1H: + case REG_DISPA_WIN0V: + case REG_DISPA_WIN1V: + case REG_DISPA_WININ: + case REG_DISPA_WINOUT: + case REG_DISPA_MOSAIC: + case REG_DISPA_BLDCNT: + case REG_DISPA_BLDALPHA: + case REG_DISPA_BLDY: + // ...GBA + case REG_DISPA_DISP3DCNT: + case REG_DISPA_DISPCAPCNT: + case REG_DISPA_DISPMMEMFIFO: + + case REG_DISPA_MASTERBRIGHT: + + // DMA + case REG_DMA0SAD: + case REG_DMA0DAD: + case REG_DMA0CNTL: + case REG_DMA0CNTH: + case REG_DMA1SAD: + case REG_DMA1DAD: + case REG_DMA1CNTL: + case REG_DMA2SAD: + case REG_DMA2DAD: + case REG_DMA2CNTL: + case REG_DMA2CNTH: + case REG_DMA3SAD: + case REG_DMA3DAD: + case REG_DMA3CNTL: + case REG_DMA3CNTH: + case REG_DMA0FILL: + case REG_DMA1FILL: + case REG_DMA2FILL: + case REG_DMA3FILL: + + // Timers + case REG_TM0CNTL: + case REG_TM0CNTH: + case REG_TM1CNTL: + case REG_TM1CNTH: + case REG_TM2CNTL: + case REG_TM2CNTH: + case REG_TM3CNTL: + case REG_TM3CNTH: + + // Keypad Input + case REG_KEYINPUT: + case REG_KEYCNT: + + // IPC + case REG_IPCSYNC: + case REG_IPCFIFOCNT: + case REG_IPCFIFOSEND: + + // ROM + case REG_AUXSPICNT: + case REG_AUXSPIDATA: + case REG_GCROMCTRL: + case REG_GCCMDOUT + 0x00: case REG_GCCMDOUT + 0x04: + case REG_ENCSEED0L: + case REG_ENCSEED1L: + case REG_ENCSEED0H: + case REG_ENCSEED1H: + + // Memory/IRQ + case REG_EXMEMCNT: + case REG_IME: + case REG_IE: + case REG_IF: + case REG_VRAMCNTA: + case REG_VRAMCNTB: + case REG_VRAMCNTC: + case REG_VRAMCNTD: + case REG_VRAMCNTE: + case REG_VRAMCNTF: + case REG_VRAMCNTG: + case REG_WRAMCNT: + case REG_VRAMCNTH: + case REG_VRAMCNTI: + + // Math + case REG_DIVCNT: + case REG_DIVNUMER + 0x00: case REG_DIVNUMER + 0x04: + case REG_DIVDENOM + 0x00: case REG_DIVDENOM + 0x04: + case REG_DIVRESULT + 0x00: case REG_DIVRESULT + 0x04: + case REG_DIVREMRESULT + 0x00: case REG_DIVREMRESULT + 0x04: + case REG_SQRTCNT: + case REG_SQRTRESULT: + case REG_SQRTPARAM + 0x00: case REG_SQRTPARAM + 0x04: + + // Other + case REG_POSTFLG: + case REG_HALTCNT: + case REG_POWCNT1: + + //R case eng_3D_RDLINES_COUNT: + + // 3D =============================================================== + case eng_3D_EDGE_COLOR + 0x00: case eng_3D_EDGE_COLOR + 0x04: case eng_3D_EDGE_COLOR + 0x08: case eng_3D_EDGE_COLOR + 0x0C: + case eng_3D_ALPHA_TEST_REF: + case eng_3D_CLEAR_COLOR: + case eng_3D_CLEAR_DEPTH: + case eng_3D_CLRIMAGE_OFFSET: + case eng_3D_FOG_COLOR: + case eng_3D_FOG_OFFSET: + case eng_3D_FOG_TABLE + 0x00: case eng_3D_FOG_TABLE + 0x04: case eng_3D_FOG_TABLE + 0x08: case eng_3D_FOG_TABLE + 0x0C: + case eng_3D_FOG_TABLE + 0x10: case eng_3D_FOG_TABLE + 0x14: case eng_3D_FOG_TABLE + 0x18: case eng_3D_FOG_TABLE + 0x1C: + case eng_3D_TOON_TABLE + 0x00: case eng_3D_TOON_TABLE + 0x04: case eng_3D_TOON_TABLE + 0x08: case eng_3D_TOON_TABLE + 0x0C: + case eng_3D_TOON_TABLE + 0x10: case eng_3D_TOON_TABLE + 0x14: case eng_3D_TOON_TABLE + 0x18: case eng_3D_TOON_TABLE + 0x1C: + case eng_3D_TOON_TABLE + 0x20: case eng_3D_TOON_TABLE + 0x24: case eng_3D_TOON_TABLE + 0x28: case eng_3D_TOON_TABLE + 0x2C: + case eng_3D_TOON_TABLE + 0x30: case eng_3D_TOON_TABLE + 0x34: case eng_3D_TOON_TABLE + 0x38: case eng_3D_TOON_TABLE + 0x3C: + case eng_3D_GXFIFO + 0x00: case eng_3D_GXFIFO + 0x04: case eng_3D_GXFIFO + 0x08: case eng_3D_GXFIFO + 0x0C: + case eng_3D_GXFIFO + 0x10: case eng_3D_GXFIFO + 0x14: case eng_3D_GXFIFO + 0x18: case eng_3D_GXFIFO + 0x1C: + case eng_3D_GXFIFO + 0x20: case eng_3D_GXFIFO + 0x24: case eng_3D_GXFIFO + 0x28: case eng_3D_GXFIFO + 0x2C: + case eng_3D_GXFIFO + 0x30: case eng_3D_GXFIFO + 0x34: case eng_3D_GXFIFO + 0x38: case eng_3D_GXFIFO + 0x3C: + + // 3d commands + case cmd_3D_MTX_MODE: + case cmd_3D_MTX_PUSH: + case cmd_3D_MTX_POP: + case cmd_3D_MTX_STORE: + case cmd_3D_MTX_RESTORE: + case cmd_3D_MTX_IDENTITY: + case cmd_3D_MTX_LOAD_4x4: + case cmd_3D_MTX_LOAD_4x3: + case cmd_3D_MTX_MULT_4x4: + case cmd_3D_MTX_MULT_4x3: + case cmd_3D_MTX_MULT_3x3: + case cmd_3D_MTX_SCALE: + case cmd_3D_MTX_TRANS: + case cmd_3D_COLOR: + case cmd_3D_NORMA: + case cmd_3D_TEXCOORD: + case cmd_3D_VTX_16: + case cmd_3D_VTX_10: + case cmd_3D_VTX_XY: + case cmd_3D_VTX_XZ: + case cmd_3D_VTX_YZ: + case cmd_3D_VTX_DIFF: + case cmd_3D_POLYGON_ATTR: + case cmd_3D_TEXIMAGE_PARAM: + case cmd_3D_PLTT_BASE: + case cmd_3D_DIF_AMB: + case cmd_3D_SPE_EMI: + case cmd_3D_LIGHT_VECTOR: + case cmd_3D_LIGHT_COLOR: + case cmd_3D_SHININESS: + case cmd_3D_BEGIN_VTXS: + case cmd_3D_END_VTXS: + case cmd_3D_SWAP_BUFFERS: + case cmd_3D_VIEWPORT: + case cmd_3D_BOX_TEST: + case cmd_3D_POS_TEST: + case cmd_3D_VEC_TEST: + + case eng_3D_GXSTAT: + //R case eng_3D_RAM_COUNT: + case eng_3D_DISP_1DOT_DEPTH: + //R case eng_3D_POS_RESULT + 0x00: case eng_3D_POS_RESULT + 0x04: case eng_3D_POS_RESULT + 0x08: case eng_3D_POS_RESULT + 0x0C: + //R case eng_3D_VEC_RESULT + 0x00: case eng_3D_VEC_RESULT + 0x04: + //R case eng_3D_CLIPMTX_RESULT + 0x00: case eng_3D_CLIPMTX_RESULT + 0x04: case eng_3D_CLIPMTX_RESULT + 0x08: case eng_3D_CLIPMTX_RESULT + 0x0C: + //R case eng_3D_CLIPMTX_RESULT + 0x10: case eng_3D_CLIPMTX_RESULT + 0x14: case eng_3D_CLIPMTX_RESULT + 0x18: case eng_3D_CLIPMTX_RESULT + 0x1C: + //R case eng_3D_CLIPMTX_RESULT + 0x20: case eng_3D_CLIPMTX_RESULT + 0x24: case eng_3D_CLIPMTX_RESULT + 0x28: case eng_3D_CLIPMTX_RESULT + 0x2C: + //R case eng_3D_CLIPMTX_RESULT + 0x30: case eng_3D_CLIPMTX_RESULT + 0x34: case eng_3D_CLIPMTX_RESULT + 0x38: case eng_3D_CLIPMTX_RESULT + 0x3C: + //R case eng_3D_VECMTX_RESULT + 0x00: case eng_3D_VECMTX_RESULT + 0x04: case eng_3D_VECMTX_RESULT + 0x08: case eng_3D_VECMTX_RESULT + 0x0C: + //R case eng_3D_VECMTX_RESULT + 0x20: + + // 0x04001xxx + case REG_DISPB_DISPCNT: + // same as GBA... + case REG_DISPB_BG0CNT: + case REG_DISPB_BG1CNT: + case REG_DISPB_BG2CNT: + case REG_DISPB_BG3CNT: + case REG_DISPB_BG0HOFS: + case REG_DISPB_BG0VOFS: + case REG_DISPB_BG1HOFS: + case REG_DISPB_BG1VOFS: + case REG_DISPB_BG2HOFS: + case REG_DISPB_BG2VOFS: + case REG_DISPB_BG3HOFS: + case REG_DISPB_BG3VOFS: + case REG_DISPB_BG2PA: + case REG_DISPB_BG2PB: + case REG_DISPB_BG2PC: + case REG_DISPB_BG2PD: + case REG_DISPB_BG2XL: + case REG_DISPB_BG2XH: + case REG_DISPB_BG2YL: + case REG_DISPB_BG2YH: + case REG_DISPB_BG3PA: + case REG_DISPB_BG3PB: + case REG_DISPB_BG3PC: + case REG_DISPB_BG3PD: + case REG_DISPB_BG3XL: + case REG_DISPB_BG3XH: + case REG_DISPB_BG3YL: + case REG_DISPB_BG3YH: + case REG_DISPB_WIN0H: + case REG_DISPB_WIN1H: + case REG_DISPB_WIN0V: + case REG_DISPB_WIN1V: + case REG_DISPB_WININ: + case REG_DISPB_WINOUT: + case REG_DISPB_MOSAIC: + case REG_DISPB_BLDCNT: + case REG_DISPB_BLDALPHA: + case REG_DISPB_BLDY: + // ...GBA + case REG_DISPB_MASTERBRIGHT: + + // 0x04100000 + case REG_IPCFIFORECV: + case REG_GCDATAIN: + //printf("MMU9 write%02d to register %08Xh = %08Xh (PC:%08X)\n", size, addr, val, ARMPROC.instruct_adr); + return true; + + default: +#ifdef DEVELOPER + printf("MMU9 write%02d to undefined register %08Xh = %08Xh (PC:%08X)\n", size, addr, val, ARMPROC.instruct_adr); +#endif + return false; + } + } + + // ARM7 + if (PROCNUM == ARMCPU_ARM7) + { + switch (addr & 0x0FFFFFFC) + { + case REG_DISPA_DISPSTAT: + case REG_DISPA_VCOUNT: + + // DMA + case REG_DMA0SAD: + case REG_DMA0DAD: + case REG_DMA0CNTL: + case REG_DMA0CNTH: + case REG_DMA1SAD: + case REG_DMA1DAD: + case REG_DMA1CNTL: + case REG_DMA2SAD: + case REG_DMA2DAD: + case REG_DMA2CNTL: + case REG_DMA2CNTH: + case REG_DMA3SAD: + case REG_DMA3DAD: + case REG_DMA3CNTL: + case REG_DMA3CNTH: + case REG_DMA0FILL: + case REG_DMA1FILL: + case REG_DMA2FILL: + case REG_DMA3FILL: + + // Timers + case REG_TM0CNTL: + case REG_TM0CNTH: + case REG_TM1CNTL: + case REG_TM1CNTH: + case REG_TM2CNTL: + case REG_TM2CNTH: + case REG_TM3CNTL: + case REG_TM3CNTH: + + // SIO/Keypad Input/RTC + case REG_SIODATA32: + case REG_SIOCNT: + case REG_KEYINPUT: + case REG_KEYCNT: + case REG_RCNT: + case REG_EXTKEYIN: + case REG_RTC: + + // IPC + case REG_IPCSYNC: + case REG_IPCFIFOCNT: + case REG_IPCFIFOSEND: + + // ROM + case REG_AUXSPICNT: + case REG_AUXSPIDATA: + case REG_GCROMCTRL: + case REG_GCCMDOUT: + case REG_GCCMDOUT + 4: + case REG_ENCSEED0L: + case REG_ENCSEED1L: + case REG_ENCSEED0H: + case REG_ENCSEED1H: + case REG_SPICNT: + case REG_SPIDATA: + + // Memory/IRQ + case REG_EXMEMCNT: + case REG_IME: + case REG_IE: + case REG_IF: + case REG_VRAMSTAT: + case REG_WRAMSTAT: + + // Other + case REG_POSTFLG: + case REG_HALTCNT: + case REG_POWCNT2: + case REG_BIOSPROT: + + // Sound + + // 0x04100000 - IPC + case REG_IPCFIFORECV: + case REG_GCDATAIN: + //printf("MMU7 write%02d to register %08Xh = %08Xh (PC:%08X)\n", size, addr, val, ARMPROC.instruct_adr); + return true; + + default: +#ifdef DEVELOPER + printf("MMU7 write%02d to undefined register %08Xh = %08Xh (PC:%08X)\n", size, addr, val, ARMPROC.instruct_adr); +#endif + return false; + } + } + + return false; +} + +#if 0 +template +bool validateIORegsRead(u32 addr, u8 size) +{ + if (PROCNUM == ARMCPU_ARM9) + { + switch (addr & 0x0FFFFFFC) + { + // Display Engine A + case REG_DISPA_DISPCNT: + case REG_DISPA_DISPSTAT: + case REG_DISPA_VCOUNT: + // same as GBA... + case REG_DISPA_BG0CNT: + case REG_DISPA_BG1CNT: + case REG_DISPA_BG2CNT: + case REG_DISPA_BG3CNT: + case REG_DISPA_BG0HOFS: + case REG_DISPA_BG0VOFS: + case REG_DISPA_BG1HOFS: + case REG_DISPA_BG1VOFS: + case REG_DISPA_BG2HOFS: + case REG_DISPA_BG2VOFS: + case REG_DISPA_BG3HOFS: + case REG_DISPA_BG3VOFS: + case REG_DISPA_BG2PA: + case REG_DISPA_BG2PB: + case REG_DISPA_BG2PC: + case REG_DISPA_BG2PD: + case REG_DISPA_BG2XL: + case REG_DISPA_BG2XH: + case REG_DISPA_BG2YL: + case REG_DISPA_BG2YH: + case REG_DISPA_BG3PA: + case REG_DISPA_BG3PB: + case REG_DISPA_BG3PC: + case REG_DISPA_BG3PD: + case REG_DISPA_BG3XL: + case REG_DISPA_BG3XH: + case REG_DISPA_BG3YL: + case REG_DISPA_BG3YH: + case REG_DISPA_WIN0H: + case REG_DISPA_WIN1H: + case REG_DISPA_WIN0V: + case REG_DISPA_WIN1V: + case REG_DISPA_WININ: + case REG_DISPA_WINOUT: + case REG_DISPA_MOSAIC: + case REG_DISPA_BLDCNT: + case REG_DISPA_BLDALPHA: + case REG_DISPA_BLDY: + // ...GBA + case REG_DISPA_DISP3DCNT: + case REG_DISPA_DISPCAPCNT: + case REG_DISPA_DISPMMEMFIFO: + + case REG_DISPA_MASTERBRIGHT: + + // DMA + case REG_DMA0SAD: + case REG_DMA0DAD: + case REG_DMA0CNTL: + case REG_DMA0CNTH: + case REG_DMA1SAD: + case REG_DMA1DAD: + case REG_DMA1CNTL: + case REG_DMA2SAD: + case REG_DMA2DAD: + case REG_DMA2CNTL: + case REG_DMA2CNTH: + case REG_DMA3SAD: + case REG_DMA3DAD: + case REG_DMA3CNTL: + case REG_DMA3CNTH: + case REG_DMA0FILL: + case REG_DMA1FILL: + case REG_DMA2FILL: + case REG_DMA3FILL: + + // Timers + case REG_TM0CNTL: + case REG_TM0CNTH: + case REG_TM1CNTL: + case REG_TM1CNTH: + case REG_TM2CNTL: + case REG_TM2CNTH: + case REG_TM3CNTL: + case REG_TM3CNTH: + + // Keypad Input + case REG_KEYINPUT: + case REG_KEYCNT: + + // IPC + case REG_IPCSYNC: + case REG_IPCFIFOCNT: + case REG_IPCFIFOSEND: + + // ROM + case REG_AUXSPICNT: + case REG_AUXSPIDATA: + case REG_GCROMCTRL: + case REG_GCCMDOUT + 0x00: case REG_GCCMDOUT + 0x04: + case REG_ENCSEED0L: + case REG_ENCSEED1L: + case REG_ENCSEED0H: + case REG_ENCSEED1H: + + // Memory/IRQ + case REG_EXMEMCNT: + case REG_IME: + case REG_IE: + case REG_IF: + case REG_VRAMCNTA: + case REG_VRAMCNTB: + case REG_VRAMCNTC: + case REG_VRAMCNTD: + case REG_VRAMCNTE: + case REG_VRAMCNTF: + case REG_VRAMCNTG: + case REG_WRAMCNT: + case REG_VRAMCNTH: + case REG_VRAMCNTI: + + // Math + case REG_DIVCNT: + case REG_DIVNUMER + 0x00: case REG_DIVNUMER + 0x04: + case REG_DIVDENOM + 0x00: case REG_DIVDENOM + 0x04: + case REG_DIVRESULT + 0x00: case REG_DIVRESULT + 0x04: + case REG_DIVREMRESULT + 0x00: case REG_DIVREMRESULT + 0x04: + case REG_SQRTCNT: + case REG_SQRTRESULT: + case REG_SQRTPARAM + 0x00: case REG_SQRTPARAM + 0x04: + + // Other + case REG_POSTFLG: + case REG_HALTCNT: + case REG_POWCNT1: + + case eng_3D_RDLINES_COUNT: + + // 3D =============================================================== + //W case eng_3D_EDGE_COLOR + 0x00: + //W case eng_3D_EDGE_COLOR + 0x04: + //W case eng_3D_EDGE_COLOR + 0x08: + //W case eng_3D_EDGE_COLOR + 0x0C: + //W case eng_3D_ALPHA_TEST_REF: + //W case eng_3D_CLEAR_COLOR: + //W case eng_3D_CLEAR_DEPTH: + //W case eng_3D_CLRIMAGE_OFFSET: + //W case eng_3D_FOG_COLOR: + //W case eng_3D_FOG_OFFSET: + //W case eng_3D_FOG_TABLE + 0x00: case eng_3D_FOG_TABLE + 0x04: case eng_3D_FOG_TABLE + 0x08: case eng_3D_FOG_TABLE + 0x0C: + //W case eng_3D_FOG_TABLE + 0x10: case eng_3D_FOG_TABLE + 0x14: case eng_3D_FOG_TABLE + 0x18: case eng_3D_FOG_TABLE + 0x1C: + //W case eng_3D_TOON_TABLE + 0x00: case eng_3D_TOON_TABLE + 0x04: case eng_3D_TOON_TABLE + 0x08: case eng_3D_TOON_TABLE + 0x0C: + //W case eng_3D_TOON_TABLE + 0x10: case eng_3D_TOON_TABLE + 0x14: case eng_3D_TOON_TABLE + 0x18: case eng_3D_TOON_TABLE + 0x1C: + //W case eng_3D_TOON_TABLE + 0x20: case eng_3D_TOON_TABLE + 0x24: case eng_3D_TOON_TABLE + 0x28: case eng_3D_TOON_TABLE + 0x2C: + //W case eng_3D_TOON_TABLE + 0x30: case eng_3D_TOON_TABLE + 0x34: case eng_3D_TOON_TABLE + 0x38: case eng_3D_TOON_TABLE + 0x3C: + //W case eng_3D_GXFIFO + 0x00: case eng_3D_GXFIFO + 0x04: case eng_3D_GXFIFO + 0x08: case eng_3D_GXFIFO + 0x0C: + //W case eng_3D_GXFIFO + 0x10: case eng_3D_GXFIFO + 0x14: case eng_3D_GXFIFO + 0x18: case eng_3D_GXFIFO + 0x1C: + //W case eng_3D_GXFIFO + 0x20: case eng_3D_GXFIFO + 0x24: case eng_3D_GXFIFO + 0x28: case eng_3D_GXFIFO + 0x2C: + //W case eng_3D_GXFIFO + 0x30: case eng_3D_GXFIFO + 0x34: case eng_3D_GXFIFO + 0x38: case eng_3D_GXFIFO + 0x3C: + + // 3d commands + //W case cmd_3D_MTX_MODE: + //W case cmd_3D_MTX_PUSH: + //W case cmd_3D_MTX_POP: + //W case cmd_3D_MTX_STORE: + //W case cmd_3D_MTX_RESTORE: + //W case cmd_3D_MTX_IDENTITY: + //W case cmd_3D_MTX_LOAD_4x4: + //W case cmd_3D_MTX_LOAD_4x3: + //W case cmd_3D_MTX_MULT_4x4: + //W case cmd_3D_MTX_MULT_4x3: + //W case cmd_3D_MTX_MULT_3x3: + //W case cmd_3D_MTX_SCALE: + //W case cmd_3D_MTX_TRANS: + //W case cmd_3D_COLOR: + //W case cmd_3D_NORMA: + //W case cmd_3D_TEXCOORD: + //W case cmd_3D_VTX_16: + //W case cmd_3D_VTX_10: + //W case cmd_3D_VTX_XY: + //W case cmd_3D_VTX_XZ: + //W case cmd_3D_VTX_YZ: + //W case cmd_3D_VTX_DIFF: + //W case cmd_3D_POLYGON_ATTR: + //W case cmd_3D_TEXIMAGE_PARAM: + //W case cmd_3D_PLTT_BASE: + //W case cmd_3D_DIF_AMB: + //W case cmd_3D_SPE_EMI: + //W case cmd_3D_LIGHT_VECTOR: + //W case cmd_3D_LIGHT_COLOR: + //W case cmd_3D_SHININESS: + //W case cmd_3D_BEGIN_VTXS: + //W case cmd_3D_END_VTXS: + //W case cmd_3D_SWAP_BUFFERS: + //W case cmd_3D_VIEWPORT: + //W case cmd_3D_BOX_TEST: + //W case cmd_3D_POS_TEST: + //W case cmd_3D_VEC_TEST: + + case eng_3D_GXSTAT: + case eng_3D_RAM_COUNT: + //W case eng_3D_DISP_1DOT_DEPTH: + case eng_3D_POS_RESULT + 0x00: case eng_3D_POS_RESULT + 0x04: case eng_3D_POS_RESULT + 0x08: case eng_3D_POS_RESULT + 0x0C: + case eng_3D_VEC_RESULT + 0x00: case eng_3D_VEC_RESULT + 0x04: + case eng_3D_CLIPMTX_RESULT + 0x00: case eng_3D_CLIPMTX_RESULT + 0x04: case eng_3D_CLIPMTX_RESULT + 0x08: case eng_3D_CLIPMTX_RESULT + 0x0C: + case eng_3D_CLIPMTX_RESULT + 0x10: case eng_3D_CLIPMTX_RESULT + 0x14: case eng_3D_CLIPMTX_RESULT + 0x18: case eng_3D_CLIPMTX_RESULT + 0x1C: + case eng_3D_CLIPMTX_RESULT + 0x20: case eng_3D_CLIPMTX_RESULT + 0x24: case eng_3D_CLIPMTX_RESULT + 0x28: case eng_3D_CLIPMTX_RESULT + 0x2C: + case eng_3D_CLIPMTX_RESULT + 0x30: case eng_3D_CLIPMTX_RESULT + 0x34: case eng_3D_CLIPMTX_RESULT + 0x38: case eng_3D_CLIPMTX_RESULT + 0x3C: + case eng_3D_VECMTX_RESULT + 0x00: case eng_3D_VECMTX_RESULT + 0x04: case eng_3D_VECMTX_RESULT + 0x08: case eng_3D_VECMTX_RESULT + 0x0C: + case eng_3D_VECMTX_RESULT + 0x20: + + // 0x04001xxx + case REG_DISPB_DISPCNT: + // same as GBA... + case REG_DISPB_BG0CNT: + case REG_DISPB_BG1CNT: + case REG_DISPB_BG2CNT: + case REG_DISPB_BG3CNT: + case REG_DISPB_BG0HOFS: + case REG_DISPB_BG0VOFS: + case REG_DISPB_BG1HOFS: + case REG_DISPB_BG1VOFS: + case REG_DISPB_BG2HOFS: + case REG_DISPB_BG2VOFS: + case REG_DISPB_BG3HOFS: + case REG_DISPB_BG3VOFS: + case REG_DISPB_BG2PA: + case REG_DISPB_BG2PB: + case REG_DISPB_BG2PC: + case REG_DISPB_BG2PD: + case REG_DISPB_BG2XL: + case REG_DISPB_BG2XH: + case REG_DISPB_BG2YL: + case REG_DISPB_BG2YH: + case REG_DISPB_BG3PA: + case REG_DISPB_BG3PB: + case REG_DISPB_BG3PC: + case REG_DISPB_BG3PD: + case REG_DISPB_BG3XL: + case REG_DISPB_BG3XH: + case REG_DISPB_BG3YL: + case REG_DISPB_BG3YH: + case REG_DISPB_WIN0H: + case REG_DISPB_WIN1H: + case REG_DISPB_WIN0V: + case REG_DISPB_WIN1V: + case REG_DISPB_WININ: + case REG_DISPB_WINOUT: + case REG_DISPB_MOSAIC: + case REG_DISPB_BLDCNT: + case REG_DISPB_BLDALPHA: + case REG_DISPB_BLDY: + // ...GBA + case REG_DISPB_MASTERBRIGHT: + + // 0x04100000 + case REG_IPCFIFORECV: + case REG_GCDATAIN: + //printf("MMU9 read%02d from register %08Xh = %08Xh (PC:%08X)\n", size, addr, T1ReadLong(MMU.ARM9_REG, addr & 0x00FFFFFF), ARMPROC.instruct_adr); + return true; + + default: +#ifdef DEVELOPER + printf("MMU9 read%02d from undefined register %08Xh = %08Xh (PC:%08X)\n", size, addr, T1ReadLong(MMU.ARM9_REG, addr & 0x00FFFFFF), ARMPROC.instruct_adr); +#endif + return false; + } + } + + // ARM7 + if (PROCNUM == ARMCPU_ARM7) + { + switch (addr & 0x0FFFFFFC) + { + case REG_DISPA_DISPSTAT: + case REG_DISPA_VCOUNT: + + // DMA + case REG_DMA0SAD: + case REG_DMA0DAD: + case REG_DMA0CNTL: + case REG_DMA0CNTH: + case REG_DMA1SAD: + case REG_DMA1DAD: + case REG_DMA1CNTL: + case REG_DMA2SAD: + case REG_DMA2DAD: + case REG_DMA2CNTL: + case REG_DMA2CNTH: + case REG_DMA3SAD: + case REG_DMA3DAD: + case REG_DMA3CNTL: + case REG_DMA3CNTH: + case REG_DMA0FILL: + case REG_DMA1FILL: + case REG_DMA2FILL: + case REG_DMA3FILL: + + // Timers + case REG_TM0CNTL: + case REG_TM0CNTH: + case REG_TM1CNTL: + case REG_TM1CNTH: + case REG_TM2CNTL: + case REG_TM2CNTH: + case REG_TM3CNTL: + case REG_TM3CNTH: + + // SIO/Keypad Input/RTC + case REG_SIODATA32: + case REG_SIOCNT: + case REG_KEYINPUT: + case REG_KEYCNT: + case REG_RCNT: + case REG_EXTKEYIN: + case REG_RTC: + + // IPC + case REG_IPCSYNC: + case REG_IPCFIFOCNT: + case REG_IPCFIFOSEND: + + // ROM + case REG_AUXSPICNT: + case REG_AUXSPIDATA: + case REG_GCROMCTRL: + case REG_GCCMDOUT: + case REG_GCCMDOUT + 4: + case REG_ENCSEED0L: + case REG_ENCSEED1L: + case REG_ENCSEED0H: + case REG_ENCSEED1H: + case REG_SPICNT: + case REG_SPIDATA: + + // Memory/IRQ + case REG_EXMEMCNT: + case REG_IME: + case REG_IE: + case REG_IF: + case REG_VRAMSTAT: + case REG_WRAMSTAT: + + // Other + case REG_POSTFLG: + case REG_HALTCNT: + case REG_POWCNT2: + case REG_BIOSPROT: + + // Sound + + // 0x04100000 - IPC + case REG_IPCFIFORECV: + case REG_GCDATAIN: + //printf("MMU7 read%02d from register %08Xh = %08Xh (PC:%08X)\n", size, addr, T1ReadLong(MMU.ARM9_REG, addr & 0x00FFFFFF), ARMPROC.instruct_adr); + return true; + + default: +#ifdef DEVELOPER + printf("MMU7 read%02d from undefined register %08Xh = %08Xh (PC:%08X)\n", size, addr, T1ReadLong(MMU.ARM7_REG, addr & 0x00FFFFFF), ARMPROC.instruct_adr); +#endif + return false; + } + } + + return false; +} + +#define VALIDATE_IO_REGS_READ(PROC, SIZE) if (!validateIORegsRead(adr, SIZE)) return 0; +#else +#define VALIDATE_IO_REGS_READ(PROC, SIZE) ; +#endif + +//================================================================================================== ARM9 * +//========================================================================================================= +//========================================================================================================= +//================================================= MMU write 08 +void FASTCALL _MMU_ARM9_write08(u32 adr, u8 val) +{ + adr &= 0x0FFFFFFF; + + mmu_log_debug_ARM9(adr, "(write08) 0x%02X", val); + + if(adr < 0x02000000) + { +#ifdef HAVE_JIT + JIT_COMPILED_FUNC_KNOWNBANK(adr, ARM9_ITCM, 0x7FFF, 0) = 0; +#endif + T1WriteByte(MMU.ARM9_ITCM, adr & 0x7FFF, val); + return; + } + + if (slot2_write(adr, val)) + return; + + //block 8bit writes to OAM and palette memory + if ((adr & 0x0F000000) == 0x07000000) return; + if ((adr & 0x0F000000) == 0x05000000) return; + + // Address is an IO register + if ((adr >> 24) == 4) + { + if (!validateIORegsWrite(adr, 8, val)) return; + + // TODO: add pal reg + if (nds.power1.gpuMain == 0) + if ((adr >= 0x04000008) && (adr <= 0x0400005F)) return; + if (nds.power1.gpuSub == 0) + if ((adr >= 0x04001008) && (adr <= 0x0400105F)) return; + if (nds.power1.gfx3d_geometry == 0) + if ((adr >= 0x04000400) && (adr <= 0x040006FF)) return; + if (nds.power1.gfx3d_render == 0) + if ((adr >= 0x04000320) && (adr <= 0x040003FF)) return; if(MMU_new.is_dma(adr)) { MMU_new.write_dma(ARMCPU_ARM9,8,adr,val); return; } - + switch(adr) { case REG_SQRTCNT: printf("ERROR 8bit SQRTCNT WRITE\n"); return; @@ -2392,17 +3379,18 @@ break; case REG_AUXSPICNT: - write_auxspicnt(9,8,0,val); - return; case REG_AUXSPICNT+1: - write_auxspicnt(9,8,1,val); + write_auxspicnt(ARMCPU_ARM9, 8, adr & 1, val); return; case REG_AUXSPIDATA: - if(val!=0) MMU.AUX_SPI_CMD = val & 0xFF; - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM9][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, MMU_new.backupDevice.data_command((u8)val,ARMCPU_ARM9)); + { + //if(val!=0) MMU.AUX_SPI_CMD = val & 0xFF; //zero 20-aug-2013 - this seems pointless + u8 spidata = slot1_device->auxspi_transaction(ARMCPU_ARM9,(u8)val); + T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM9][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, spidata); MMU.AUX_SPI_CNT &= ~0x80; //remove busy flag return; + } case REG_POWCNT1: writereg_POWCNT1(8,adr,val); break; @@ -2451,7 +3439,6 @@ case 0x040001AF : LOG("%08X : %02X\r\n", adr, val); #endif - } MMU.MMU_MEM[ARMCPU_ARM9][adr>>20][adr&MMU.MMU_MASK[ARMCPU_ARM9][adr>>20]]=val; @@ -2488,26 +3475,23 @@ return; } - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x204); - if(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7) - {} //prohibited - else addon.write16(ARMCPU_ARM9, adr, val); + if (slot2_write(adr, val)) return; - } - if((adr >> 24) == 4) + // Address is an IO register + if ((adr >> 24) == 4) { + if (!validateIORegsWrite(adr, 16, val)) return; + // TODO: add pal reg if (nds.power1.gpuMain == 0) - if ((adr >= 0x04000008) && (adr<=0x0400005F)) return; + if ((adr >= 0x04000008) && (adr <= 0x0400005F)) return; if (nds.power1.gpuSub == 0) - if ((adr >= 0x04001008) && (adr<=0x0400105F)) return; + if ((adr >= 0x04001008) && (adr <= 0x0400105F)) return; if (nds.power1.gfx3d_geometry == 0) - if ((adr >= 0x04000400) && (adr<=0x040006FF)) return; + if ((adr >= 0x04000400) && (adr <= 0x040006FF)) return; if (nds.power1.gfx3d_render == 0) - if ((adr >= 0x04000320) && (adr<=0x040003FF)) return; + if ((adr >= 0x04000320) && (adr <= 0x040003FF)) return; if(MMU_new.is_dma(adr)) { MMU_new.write_dma(ARMCPU_ARM9,16,adr,val); @@ -2750,17 +3734,17 @@ } case REG_AUXSPICNT: - write_auxspicnt(9,16,0,val); + write_auxspicnt(ARMCPU_ARM9, 16, 0, val); return; case REG_AUXSPIDATA: - if(val!=0) - MMU.AUX_SPI_CMD = val & 0xFF; - - //T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, bm_transfer(&MMU.bupmem, val)); - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM9][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, MMU_new.backupDevice.data_command((u8)val,ARMCPU_ARM9)); + { + //if(val!=0) MMU.AUX_SPI_CMD = val & 0xFF; //zero 20-aug-2013 - this seems pointless + u8 spidata = slot1_device->auxspi_transaction(ARMCPU_ARM9,(u8)val); + T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM9][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, spidata); MMU.AUX_SPI_CNT &= ~0x80; //remove busy flag return; + } case REG_DISPA_BG0CNT : //GPULOG("MAIN BG0 SETPROP 16B %08X\r\n", val); @@ -2903,10 +3887,10 @@ } case REG_GCROMCTRL : - MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x1A4) & 0xFFFF0000) | val); + MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[0][0x40], 0x1A4) & 0xFFFF0000) | val); return; case REG_GCROMCTRL+2 : - MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x1A4) & 0xFFFF) | ((u32) val << 16)); + MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[0][0x40], 0x1A4) & 0xFFFF) | ((u32) val << 16)); return; } @@ -2945,14 +3929,8 @@ return ; } - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x204); - if(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7) - {} //prohibited - else addon.write32(ARMCPU_ARM9, adr, val); + if (slot2_write(adr, val)) return; - } #if 0 if ((adr & 0xFF800000) == 0x04800000) { @@ -2962,17 +3940,20 @@ } #endif - if((adr>>24)==4) + // Address is an IO register + if ((adr >> 24) == 4) { + if (!validateIORegsWrite(adr, 32, val)) return; + // TODO: add pal reg if (nds.power1.gpuMain == 0) - if ((adr >= 0x04000008) && (adr<=0x0400005F)) return; + if ((adr >= 0x04000008) && (adr <= 0x0400005F)) return; if (nds.power1.gpuSub == 0) - if ((adr >= 0x04001008) && (adr<=0x0400105F)) return; + if ((adr >= 0x04001008) && (adr <= 0x0400105F)) return; if (nds.power1.gfx3d_geometry == 0) - if ((adr >= 0x04000400) && (adr<=0x040006FF)) return; + if ((adr >= 0x04000400) && (adr <= 0x040006FF)) return; if (nds.power1.gfx3d_render == 0) - if ((adr >= 0x04000320) && (adr<=0x040003FF)) return; + if ((adr >= 0x04000320) && (adr <= 0x040003FF)) return; // MightyMax: no need to do several ifs, when only one can happen // switch/case instead @@ -3341,7 +4322,7 @@ case REG_DISPA_DISP3DCNT: writereg_DISP3DCNT(32,adr,val); return; case REG_GCDATAIN: - slot1_device.write32(ARMCPU_ARM9, REG_GCDATAIN,val); + MMU_writeToGC(val); return; } @@ -3375,16 +4356,15 @@ if(adr<0x02000000) return T1ReadByte(MMU.ARM9_ITCM, adr&0x7FFF); - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x204); - if(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7) - return 0; //prohibited - else return addon.read08(ARMCPU_ARM9, adr); - } + u8 slot2_val; + if (slot2_read(adr, slot2_val)) + return slot2_val; - if (adr >> 24 == 4) - { //Address is an IO register + // Address is an IO register + if ((adr >> 24) == 4) + { + VALIDATE_IO_REGS_READ(ARMCPU_ARM9, 8); + if(MMU_new.is_dma(adr)) return MMU_new.read_dma(ARMCPU_ARM9,8,adr); switch(adr) @@ -3467,19 +4447,17 @@ if(adr<0x02000000) return T1ReadWord_guaranteedAligned(MMU.ARM9_ITCM, adr & 0x7FFE); - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x204); - if(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7) - return 0; //prohibited - else return addon.read16(ARMCPU_ARM9, adr); - } + u16 slot2_val; + if (slot2_read(adr, slot2_val)) + return slot2_val; - if (adr >> 24 == 4) + // Address is an IO register + if ((adr >> 24) == 4) { + VALIDATE_IO_REGS_READ(ARMCPU_ARM9, 16); + if(MMU_new.is_dma(adr)) return MMU_new.read_dma(ARMCPU_ARM9,16,adr); - // Address is an IO register switch(adr) { case REG_DISPA_DISPSTAT: @@ -3517,10 +4495,7 @@ case REG_IME : return (u16)MMU.reg_IME[ARMCPU_ARM9]; - //WRAMCNT is readable but VRAMCNT is not, so just return WRAM's value - case REG_VRAMCNTG: - return MMU.WRAMCNT << 8; - + case REG_IE : return (u16)MMU.reg_IE[ARMCPU_ARM9]; case REG_IE + 2 : @@ -3578,17 +4553,15 @@ if(adr<0x02000000) return T1ReadLong_guaranteedAligned(MMU.ARM9_ITCM, adr&0x7FFC); - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM9][0x40], 0x204); - if(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7) - return 0; //prohibited - else return addon.read32(ARMCPU_ARM9, adr); - } + u32 slot2_val; + if (slot2_read(adr, slot2_val)) + return slot2_val; // Address is an IO register - if((adr >> 24) == 4) + if ((adr >> 24) == 4) { + VALIDATE_IO_REGS_READ(ARMCPU_ARM9, 32); + if(MMU_new.is_dma(adr)) return MMU_new.read_dma(ARMCPU_ARM9,32,adr); switch(adr) @@ -3606,10 +4579,6 @@ case REG_DISPx_VCOUNT: return nds.VCount; - //WRAMCNT is readable but VRAMCNT is not, so just return WRAM's value - case REG_VRAMCNTE: - return MMU.WRAMCNT << 24; - //despite these being 16bit regs, //Dolphin Island Underwater Adventures uses this amidst seemingly reasonable divs so we're going to emulate it. //well, it's pretty reasonable to read them as 32bits though, isnt it? @@ -3691,8 +4660,10 @@ return MMU.timer[ARMCPU_ARM9][(adr&0xF)>>2] | (val<<16); } - case REG_GCDATAIN: return MMU_readFromGC(); - case REG_POWCNT1: return readreg_POWCNT1(32,adr); + case REG_GCDATAIN: + return MMU_readFromGC(); + + case REG_POWCNT1: return readreg_POWCNT1(32,adr); case REG_DISPA_DISP3DCNT: return readreg_DISP3DCNT(32,adr); case REG_KEYINPUT: @@ -3721,20 +4692,14 @@ if (adr < 0x02000000) return; //can't write to bios or entire area below main memory - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x204); - if(!(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7)) - {} //prohibited - else addon.write08(ARMCPU_ARM7,adr, val); + if (slot2_write(adr, val)) return; - } - if ((adr>=0x04000400)&&(adr<0x04000520)) + if ((adr >= 0x04000400) && (adr < 0x04000520)) { SPU_WriteByte(adr, val); return; - } + } if ((adr & 0xFFFF0000) == 0x04800000) { @@ -3744,8 +4709,11 @@ return; } - if (adr >> 24 == 4) + // Address is an IO register + if ((adr >> 24) == 4) { + if (!validateIORegsWrite(adr, 8, val)) return; + if(MMU_new.is_dma(adr)) { MMU_new.write_dma(ARMCPU_ARM7,8,adr,val); return; } switch(adr) @@ -3756,44 +4724,53 @@ case REG_IF+3: REG_IF_WriteByte(3,val); break; case REG_POSTFLG: + //printf("ARM7: write POSTFLG %02X PC:0x%08X\n", val, NDS_ARM7.instruct_adr); + //The NDS7 register can be written to only from code executed in BIOS. if (NDS_ARM7.instruct_adr > 0x3FFF) return; - - // hack for patched firmwares - if (val == 1) - { - if (_MMU_ARM7_read08(REG_POSTFLG) != 0) - break; - _MMU_write32(0x27FFE24, gameInfo.header.ARM9exe); - _MMU_write32(0x27FFE34, gameInfo.header.ARM7exe); - } +#ifdef HAVE_JIT + // hack for firmware boot in JIT mode + if (CommonSettings.UseExtFirmware && CommonSettings.BootFromFirmware && firmware->loaded() && val == 1) + CommonSettings.jit_max_block_size = saveBlockSizeJIT; +#endif break; case REG_HALTCNT: - //printf("halt 0x%02X\n", val); - switch(val) { - case 0xC0: NDS_Sleep(); break; - case 0x80: armcpu_Wait4IRQ(&NDS_ARM7); break; - default: break; + //printf("ARM7: Halt 0x%02X IME %02X, IE 0x%08X, IF 0x%08X PC 0x%08X\n", val, MMU.reg_IME[1], MMU.reg_IE[1], MMU.reg_IF_bits[1], NDS_ARM7.instruct_adr); + switch(val) + { + //case 0x10: printf("GBA mode unsupported\n"); break; + case 0xC0: NDS_Sleep(); break; + case 0x80: armcpu_Wait4IRQ(&NDS_ARM7); break; + default: break; + } + break; } - break; case REG_RTC: rtcWrite(val); return; case REG_AUXSPICNT: - write_auxspicnt(9,8,0,val); - return; case REG_AUXSPICNT+1: - write_auxspicnt(9,8,1,val); + write_auxspicnt(ARMCPU_ARM7, 8, adr & 1, val); return; + case REG_AUXSPIDATA: - if(val!=0) MMU.AUX_SPI_CMD = val & 0xFF; - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, MMU_new.backupDevice.data_command((u8)val,ARMCPU_ARM7)); + { + //if(val!=0) MMU.AUX_SPI_CMD = val & 0xFF; //zero 20-aug-2013 - this seems pointless + u8 spidata = slot1_device->auxspi_transaction(ARMCPU_ARM7,(u8)val); + T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, spidata); MMU.AUX_SPI_CNT &= ~0x80; //remove busy flag return; + } + + case REG_SPIDATA: + // CrazyMax: 27 May 2013: BIOS write 8bit commands to flash controller when load firmware header + // into RAM at 0x027FF830 + MMU_writeToSPIData(val); + return; } MMU.MMU_MEM[ARMCPU_ARM7][adr>>20][adr&MMU.MMU_MASK[ARMCPU_ARM7][adr>>20]]=val; return; @@ -3812,42 +4789,6 @@ MMU.MMU_MEM[ARMCPU_ARM7][adr>>20][adr&MMU.MMU_MASK[ARMCPU_ARM7][adr>>20]]=val; } -static void CalculateTouchPressure(int pressurePercent, u16 &z1, u16& z2) -{ - bool touch = nds.isTouch!=0; - if(!touch) - { - z1 = z2 = 0; - return; - } - int y = nds.scr_touchY; - int x = nds.scr_touchX; - float u = (x/256.0f); - float v = (y/192.0f); - - //these coefficients - - float fPressurePercent = pressurePercent/100.0f; - //z1 goes up as pressure goes up - { - float b0 = (96-80)*fPressurePercent + 80; - float b1 = (970-864)*fPressurePercent + 864; - float b2 = (192-136)*fPressurePercent + 136; - float b3 = (1560-1100)*fPressurePercent + 1100; - z1 = (u16)(int)(b0 + (b1-b0)*u + (b2-b0)*v + (b3-b2-b1+b0)*u*v); - } - - //z2 goes down as pressure goes up - { - float b0=(1976-2300)*fPressurePercent + 2300; - float b1=(2360-2600)*fPressurePercent + 2600; - float b2=(3840-3900)*fPressurePercent + 3900; - float b3=(3912-3950)*fPressurePercent + 3950; - z2 = (u16)(int)(b0 + (b1-b0)*u + (b2-b0)*v + (b3-b2-b1+b0)*u*v); - } - -} - //================================================= MMU ARM7 write 16 void FASTCALL _MMU_ARM7_write16(u32 adr, u16 val) { @@ -3856,13 +4797,13 @@ mmu_log_debug_ARM7(adr, "(write16) 0x%04X", val); if (adr < 0x02000000) return; //can't write to bios or entire area below main memory - - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) + + if (slot2_write(adr, val)) + return; + + if ((adr >= 0x04000400) && (adr < 0x04000520)) { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x204); - if(!(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7)) - {} //prohibited - else addon.write16(ARMCPU_ARM7,adr, val); + SPU_WriteWord(adr, val); return; } @@ -3874,14 +4815,11 @@ return; } - if ((adr>=0x04000400)&&(adr<0x04000520)) + // Address is an IO register + if ((adr >> 24) == 4) { - SPU_WriteWord(adr, val); - return; - } + if (!validateIORegsWrite(adr, 16, val)) return; - if((adr >> 24) == 4) - { if(MMU_new.is_dma(adr)) { MMU_new.write_dma(ARMCPU_ARM7,16,adr,val); return; } //Address is an IO register @@ -3915,23 +4853,23 @@ case REG_POWCNT2: { nds.power2.speakers = BIT0(val); - nds.power2.wifi = BIT0(val); + nds.power2.wifi = BIT1(val); } return; case REG_AUXSPICNT: - write_auxspicnt(7,16,0,val); + write_auxspicnt(ARMCPU_ARM7, 16, 0, val); return; case REG_AUXSPIDATA: - if(val!=0) - MMU.AUX_SPI_CMD = val & 0xFF; - - //T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, bm_transfer(&MMU.bupmem, val)); - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, MMU_new.backupDevice.data_command((u8)val,ARMCPU_ARM7)); + { + //if(val!=0) MMU.AUX_SPI_CMD = val & 0xFF; //zero 20-aug-2013 - this seems pointless + u8 spidata = slot1_device->auxspi_transaction(ARMCPU_ARM7,(u8)val); + T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_AUXSPIDATA >> 20) & 0xff], REG_AUXSPIDATA & 0xfff, spidata); MMU.AUX_SPI_CNT &= ~0x80; //remove busy flag - return; + return; + } case REG_SPICNT : { @@ -3962,229 +4900,7 @@ return; case REG_SPIDATA : - { - u16 spicnt; - - if(val!=0) - MMU.SPI_CMD = val; - - spicnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_SPICNT >> 20) & 0xff], REG_SPICNT & 0xfff); - - switch((spicnt >> 8) & 0x3) - { - case 0 : - { - if(!MMU.powerMan_CntRegWritten) - { - MMU.powerMan_CntReg = (val & 0xFF); - MMU.powerMan_CntRegWritten = TRUE; - } - else - { - u16 reg = MMU.powerMan_CntReg&0x7F; - reg &= 0x7; - if(reg==5 || reg==6 || reg==7) reg = 4; - - //(let's start with emulating a DS lite, since it is the more complex case) - if(MMU.powerMan_CntReg & 0x80) - { - //read - val = MMU.powerMan_Reg[reg]; - } - else - { - //write - MMU.powerMan_Reg[reg] = (u8)val; - - enum PM_Bits //from libnds - { - PM_SOUND_AMP = BIT(0) , /*!< \brief Power the sound hardware (needed to hear stuff in GBA mode too) */ - PM_SOUND_MUTE = BIT(1), /*!< \brief Mute the main speakers, headphone output will still work. */ - PM_BACKLIGHT_BOTTOM = BIT(2), /*!< \brief Enable the top backlight if set */ - PM_BACKLIGHT_TOP = BIT(3) , /*!< \brief Enable the bottom backlight if set */ - PM_SYSTEM_PWR = BIT(6) , /*!< \brief Turn the power *off* if set */ - }; - - //our totally pathetic register handling, only the one thing we've wanted so far - if(MMU.powerMan_Reg[0]&PM_SYSTEM_PWR) { - printf("SYSTEM POWERED OFF VIA ARM7 SPI POWER DEVICE\n"); - printf("Did your main() return?\n"); - emu_halt(); - } - } - - MMU.powerMan_CntRegWritten = FALSE; - } - } - break; - - case 1 : /* firmware memory device */ - if((spicnt & 0x3) != 0) /* check SPI baudrate (must be 4mhz) */ - { - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_SPIDATA >> 20) & 0xff], REG_SPIDATA & 0xfff, 0); - break; - } - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_SPIDATA >> 20) & 0xff], REG_SPIDATA & 0xfff, fw_transfer(&MMU.fw, (u8)val)); - return; - - case 2: - { - if(nds.Is_DSI()) - { - //pass data to TSC - val = MMU_new.dsi_tsc.write16(val); - - //apply reset command if appropriate - if(!BIT11(MMU.SPI_CNT)) - MMU_new.dsi_tsc.reset_command(); - - break; - } - - int channel = (MMU.SPI_CMD&0x70)>>4; - //printf("%08X\n",channel); - switch(channel) - { - case TSC_MEASURE_TEMP1: - if(spicnt & 0x800) - { - if(partie) - { - val = ((716<<3)&0x7FF); - partie = 0; - break; - } - val = (716>>5); - partie = 1; - break; - } - val = ((716<<3)&0x7FF); - partie = 1; - break; - case TSC_MEASURE_TEMP2: - if(spicnt & 0x800) - { - if(partie) - { - val = ((865<<3)&0x7FF); - partie = 0; - break; - } - val = (865>>5); - partie = 1; - break; - } - val = ((865<<3)&0x7FF); - partie = 1; - break; - - case TSC_MEASURE_Y: - { - //counter the number of adc touch coord reads and jitter it after a while to simulate a shaky human hand or multiple reads - nds.adc_jitterctr++; - if(nds.adc_jitterctr == 25) - { - nds.adc_jitterctr = 0; - if (nds.stylusJitter) - { - nds.adc_touchY ^= 16; - nds.adc_touchX ^= 16; - } - } - if(MMU.SPI_CNT&(1<<11)) - { - if(partie) - { - val = (nds.adc_touchY<<3) & 0xFF; - partie = 0; - break; - } - - val = (nds.adc_touchY>>5) & 0xFF; - partie = 1; - break; - } - val = (nds.adc_touchY<<3)&0xFF; - partie = 1; - break; - } - case TSC_MEASURE_Z1: //Z1 - //used for pressure calculation - must be nonzero or else some softwares will think the stylus is up. - //something is wrong in here and some of these LSB dont make it back to libnds... whatever. - { - u16 scratch; - CalculateTouchPressure(CommonSettings.StylusPressure,val,scratch); - } - if(spicnt & 0x800) - { - if(partie) - { - val = ((val<<3)&0x7FF); - partie = 0; - break; - } - val = (val>>5); - partie = 1; - break; - } - val = ((val<<3)&0x7FF); - partie = 1; - break; - case TSC_MEASURE_Z2: //Z2 - //used for pressure calculation - must be nonzero or else some softwares will think the stylus is up. - //something is wrong in here and some of these LSB dont make it back to libnds... whatever. - { - u16 scratch; - CalculateTouchPressure(CommonSettings.StylusPressure,scratch,val); - } - if(spicnt & 0x800) - { - if(partie) - { - val = ((val<<3)&0x7FF); - partie = 0; - break; - } - val = (val>>5); - partie = 1; - break; - } - val = ((val<<3)&0x7FF); - partie = 1; - break; - case TSC_MEASURE_X: - if(spicnt & 0x800) - { - if(partie) - { - val = (nds.adc_touchX << 3) & 0xFF; - partie = 0; - break; - } - val = (nds.adc_touchX>>5) & 0xFF; - partie = 1; - break; - } - val = (nds.adc_touchX<<3) & 0xFF; - partie = 1; - break; - case TSC_MEASURE_AUX: - if(!(val & 0x80)) - val = (Mic_ReadSample() & 0xFF); - else - val = 0; - break; - } - break; - } - - case 3 : - /* NOTICE: Device 3 of SPI is reserved (unused and unusable) */ - break; - } - } - - T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][(REG_SPIDATA >> 20) & 0xff], REG_SPIDATA & 0xfff, val); + MMU_writeToSPIData(val); return; /* NOTICE: Perhaps we have to use gbatek-like reg names instead of libnds-like ones ...*/ @@ -4231,10 +4947,10 @@ } case REG_GCROMCTRL : - MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x1A4) & 0xFFFF0000) | val); + MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[1][0x40], 0x1A4) & 0xFFFF0000) | val); return; case REG_GCROMCTRL+2 : - MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x1A4) & 0xFFFF) | ((u32) val << 16)); + MMU_writeToGCControl( (T1ReadLong(MMU.MMU_MEM[1][0x40], 0x1A4) & 0xFFFF) | ((u32) val << 16)); return; } @@ -4253,7 +4969,7 @@ // Removed the &0xFF as they are implicit with the adr&0x0FFFFFFF [shash] T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][adr>>20], adr&MMU.MMU_MASK[ARMCPU_ARM7][adr>>20], val); -} +} //================================================= MMU ARM7 write 32 void FASTCALL _MMU_ARM7_write32(u32 adr, u32 val) { @@ -4263,12 +4979,12 @@ if (adr < 0x02000000) return; //can't write to bios or entire area below main memory - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) + if (slot2_write(adr, val)) + return; + + if ((adr >= 0x04000400) && (adr < 0x04000520)) { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x204); - if(!(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7)) - {} //prohibited - else addon.write32(ARMCPU_ARM7,adr, val); + SPU_WriteLong(adr, val); return; } @@ -4280,14 +4996,11 @@ return; } - if ((adr>=0x04000400)&&(adr<0x04000520)) + // Address is an IO register + if ((adr >> 24) == 4) { - SPU_WriteLong(adr, val); - return; - } + if (!validateIORegsWrite(adr, 32, val)) return; - if((adr>>24)==4) - { if(MMU_new.is_dma(adr)) { MMU_new.write_dma(ARMCPU_ARM7,32,adr,val); return; } switch(adr) @@ -4337,7 +5050,7 @@ return; case REG_GCDATAIN: - slot1_device.write32(ARMCPU_ARM7, REG_GCDATAIN,val); + MMU_writeToGC(val); return; } T1WriteLong(MMU.MMU_MEM[ARMCPU_ARM7][adr>>20], adr & MMU.MMU_MASK[ARMCPU_ARM7][adr>>20], val); @@ -4369,10 +5082,9 @@ if (adr < 0x4000) { - //u32 prot = T1ReadLong_guaranteedAligned(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x04000308 & MMU.MMU_MASK[ARMCPU_ARM7][0x40]); - //if (prot) INFO("MMU7 read 08 at 0x%08X (PC 0x%08X) BIOSPROT address 0x%08X\n", adr, NDS_ARM7.R[15], prot); - - //How accurate is this? our R[15] may not be exactly what the hardware uses (may use something less by up to 0x08) + //the ARM7 bios can't be read by instructions outside of itself. + //TODO - use REG_BIOSPROT + //How accurate is this? our instruct_adr may not be exactly what the hardware uses (may use something +/- 0x08 or so) //This may be inaccurate at the very edge cases. if (NDS_ARM7.instruct_adr > 0x3FFF) return 0xFF; @@ -4387,29 +5099,25 @@ return WIFI_read16(adr) & 0xFF; } - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x204); - if(!(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7)) - return 0; //prohibited - else return addon.read08(ARMCPU_ARM7,adr); - } + u8 slot2_val; + if (slot2_read(adr, slot2_val)) + return slot2_val; if ((adr>=0x04000400)&&(adr<0x04000520)) { return SPU_ReadByte(adr); } - if (adr == REG_RTC) return (u8)rtcRead(); - - if (adr >> 24 == 4) + // Address is an IO register + if ((adr >> 24) == 4) { + VALIDATE_IO_REGS_READ(ARMCPU_ARM7, 8); + if(MMU_new.is_dma(adr)) return MMU_new.read_dma(ARMCPU_ARM7,8,adr); - // Address is an IO register - switch(adr) { + case REG_RTC: return (u8)rtcRead(); case REG_IF: return MMU.gen_IF(); case REG_IF+1: return (MMU.gen_IF()>>8); case REG_IF+2: return (MMU.gen_IF()>>16); @@ -4439,8 +5147,6 @@ if (adr < 0x4000) { - //u32 prot = T1ReadLong_guaranteedAligned(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x04000308 & MMU.MMU_MASK[ARMCPU_ARM7][0x40]); - //if (prot) INFO("MMU7 read 16 at 0x%08X (PC 0x%08X) BIOSPROT address 0x%08X\n", adr, NDS_ARM7.R[15], prot); if (NDS_ARM7.instruct_adr > 0x3FFF) return 0xFFFF; } @@ -4449,21 +5155,19 @@ if ((adr & 0xFFFF0000) == 0x04800000) return WIFI_read16(adr) ; - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x204); - if(!(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7)) - return 0; //prohibited - else return addon.read16(ARMCPU_ARM7,adr); - } + u16 slot2_val; + if (slot2_read(adr, slot2_val)) + return slot2_val; if ((adr>=0x04000400)&&(adr<0x04000520)) { return SPU_ReadWord(adr); } - if(adr>>24==4) - { //Address is an IO register + // Address is an IO register + if ((adr >> 24) == 4) + { + VALIDATE_IO_REGS_READ(ARMCPU_ARM7, 16); if(MMU_new.is_dma(adr)) return MMU_new.read_dma(ARMCPU_ARM7,16,adr); @@ -4539,8 +5243,10 @@ if (adr < 0x4000) { - //u32 prot = T1ReadLong_guaranteedAligned(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x04000308 & MMU.MMU_MASK[ARMCPU_ARM7][0x40]); - //if (prot) INFO("MMU7 read 32 at 0x%08X (PC 0x%08X) BIOSPROT address 0x%08X\n", adr, NDS_ARM7.R[15], prot); + //the ARM7 bios can't be read by instructions outside of itself. + //TODO - use REG_BIOSPROT + //How accurate is this? our instruct_adr may not be exactly what the hardware uses (may use something +/- 0x08 or so) + //This may be inaccurate at the very edge cases. if (NDS_ARM7.instruct_adr > 0x3FFF) return 0xFFFFFFFF; } @@ -4549,21 +5255,19 @@ if ((adr & 0xFFFF0000) == 0x04800000) return (WIFI_read16(adr) | (WIFI_read16(adr+2) << 16)); - if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) - { - u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], 0x204); - if(!(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7)) - return 0; //prohibited - else return addon.read32(ARMCPU_ARM7,adr); - } + u32 slot2_val; + if (slot2_read(adr, slot2_val)) + return slot2_val; if ((adr>=0x04000400)&&(adr<0x04000520)) { return SPU_ReadLong(adr); } - if((adr >> 24) == 4) - { //Address is an IO register + // Address is an IO register + if ((adr >> 24) == 4) + { + VALIDATE_IO_REGS_READ(ARMCPU_ARM7, 32); if(MMU_new.is_dma(adr)) return MMU_new.read_dma(ARMCPU_ARM7,32,adr); @@ -4587,11 +5291,9 @@ u32 val = T1ReadWord(MMU.MMU_MEM[ARMCPU_ARM7][0x40], (adr + 2) & 0xFFF); return MMU.timer[ARMCPU_ARM7][(adr&0xF)>>2] | (val<<16); } - case REG_GCROMCTRL: - { - //INFO("arm7 romctrl read\n"); - break; - } + //case REG_GCROMCTRL: + // return MMU_readFromGCControl(); + case REG_GCDATAIN: return MMU_readFromGC(); diff -Nru desmume-0.9.9/src/MMU.h desmume-0.9.10/src/MMU.h --- desmume-0.9.9/src/MMU.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/MMU.h 2013-11-28 00:37:26.725149024 +0000 @@ -27,6 +27,7 @@ #include "bits.h" #include "readwrite.h" #include "debug.h" +#include "firmware.h" #ifdef HAVE_LUA #include "lua-engine.h" @@ -295,27 +296,63 @@ }; -enum ECardMode +enum eCardMode { - CardMode_Normal = 0, - CardMode_KEY1, - CardMode_KEY2, + //when the GC system is first booted up, the protocol is in raw mode + eCardMode_RAW = 0, + + //an intermediate stage during the protocol bootup process. commands are KEY1 encrypted. + eCardMode_KEY1, + + //an intermediate stage during the protocol bootup process. commands are KEY1 encrypted, while replies are KEY2 encrypted + eCardMode_KEY2, + + //the final stage of the protocol bootup process. "main data load" mode. commands are KEY2 encrypted, and replies are KEY2 encrypted. + //optionally, according to some flag we havent designed yet but should probably go in GCBUS_Controller, the whole KEY2 part can be bypassed + //(this is typical when skipping the firmware boot process) + eCardMode_NORMAL, + + //help fix to 32bit + eCardMode_Pad = 0xFFFFFFFF }; -typedef struct -{ - - u8 command[8]; +//#define GCLOG(...) printf(__VA_ARGS__); +#define GCLOG(...) - u32 address; - u32 transfer_count; +void MMU_GC_endTransfer(u32 PROCNUM); - ECardMode mode; +struct GC_Command +{ + u8 bytes[8]; + void print() + { + GCLOG("%02X%02X%02X%02X%02X%02X%02X%02X\n",bytes[0],bytes[1],bytes[2],bytes[3],bytes[4],bytes[5],bytes[6],bytes[7]); + } + void toCryptoBuffer(u32 buf[2]) + { + u8 temp[8] = { bytes[7], bytes[6], bytes[5], bytes[4], bytes[3], bytes[2], bytes[1], bytes[0] }; + buf[0] = T1ReadLong(temp,0); + buf[1] = T1ReadLong(temp,4); + } + void fromCryptoBuffer(u32 buf[2]) + { + bytes[7] = (buf[0]>>0)&0xFF; + bytes[6] = (buf[0]>>8)&0xFF; + bytes[5] = (buf[0]>>16)&0xFF; + bytes[4] = (buf[0]>>24)&0xFF; + bytes[3] = (buf[1]>>0)&0xFF; + bytes[2] = (buf[1]>>8)&0xFF; + bytes[1] = (buf[1]>>16)&0xFF; + bytes[0] = (buf[1]>>24)&0xFF; + } +}; - // NJSD stuff - int blocklen; - -} nds_dscard; +//should rather be known as GCBUS controller, or somesuch +struct GCBUS_Controller +{ + int transfer_count; + eCardMode mode; //probably only one of these +}; #define DUP2(x) x, x #define DUP4(x) x, x, x, x @@ -369,9 +406,6 @@ //32KB of shared WRAM - can be switched between ARM7 & ARM9 in two blocks u8 SWIRAM[0x8000]; - //Card rom & ram - u8 * CART_ROM; - //Unused ram u8 UNUSED_RAM[4]; @@ -418,7 +452,7 @@ u16 SPI_CNT; u16 SPI_CMD; u16 AUX_SPI_CNT; - u16 AUX_SPI_CMD; + //u16 AUX_SPI_CMD; //zero 20-aug-2013 - this seems pointless u8 WRAMCNT; @@ -428,9 +462,9 @@ BOOL powerMan_CntRegWritten; u8 powerMan_Reg[5]; - memory_chip_t fw; + fw_memory_chip fw; - nds_dscard dscard[2]; + GCBUS_Controller dscard[2]; }; @@ -509,9 +543,6 @@ void MMU_Reset( void); -void MMU_setRom(u8 * rom, u32 mask); -void MMU_unsetRom( void); - void print_memory_profiling( void); // Memory reading/writing (old) @@ -654,6 +685,12 @@ { CheckMemoryDebugEvent(DEBUG_EVENT_READ,AT,PROCNUM,addr,8,0); + //special handling to un-protect the ARM7 bios during debug reading + if(PROCNUM == ARMCPU_ARM7 && AT == MMU_AT_DEBUG && addr<0x00004000) + { + return T1ReadByte(MMU.ARM7_BIOS, addr); + } + //special handling for DMA: read 0 from TCM if(PROCNUM==ARMCPU_ARM9 && AT == MMU_AT_DMA) { @@ -683,6 +720,12 @@ { CheckMemoryDebugEvent(DEBUG_EVENT_READ,AT,PROCNUM,addr,16,0); + //special handling to un-protect the ARM7 bios during debug reading + if(PROCNUM == ARMCPU_ARM7 && AT == MMU_AT_DEBUG && addr<0x00004000) + { + return T1ReadWord_guaranteedAligned(MMU.ARM7_BIOS, addr); + } + //special handling for DMA: read 0 from TCM if(PROCNUM==ARMCPU_ARM9 && AT == MMU_AT_DMA) { @@ -725,6 +768,12 @@ { CheckMemoryDebugEvent(DEBUG_EVENT_READ,AT,PROCNUM,addr,32,0); + //special handling to un-protect the ARM7 bios during debug reading + if(PROCNUM == ARMCPU_ARM7 && AT == MMU_AT_DEBUG && addr<0x00004000) + { + return T1ReadLong_guaranteedAligned(MMU.ARM7_BIOS, addr); + } + //special handling for DMA: read 0 from TCM if(PROCNUM==ARMCPU_ARM9 && AT == MMU_AT_DMA) { diff -Nru desmume-0.9.9/src/movie.cpp desmume-0.9.10/src/movie.cpp --- desmume-0.9.9/src/movie.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/movie.cpp 2013-11-28 00:37:26.717148894 +0000 @@ -321,20 +321,20 @@ * This would cause strange behaviour if the user could set UTF-16 but * they cannot yet. */ - for (i = 0; i < CommonSettings.InternalFirmConf.nickname_len; i++) { - temp_str[i] = CommonSettings.InternalFirmConf.nickname[i]; + for (i = 0; i < CommonSettings.fw_config.nickname_len; i++) { + temp_str[i] = CommonSettings.fw_config.nickname[i]; } temp_str[i] = '\0'; fp->fprintf("firmNickname %s\n", temp_str); - for (i = 0; i < CommonSettings.InternalFirmConf.message_len; i++) { - temp_str[i] = CommonSettings.InternalFirmConf.message[i]; + for (i = 0; i < CommonSettings.fw_config.message_len; i++) { + temp_str[i] = CommonSettings.fw_config.message[i]; } temp_str[i] = '\0'; fp->fprintf("firmMessage %s\n", temp_str); - fp->fprintf("firmFavColour %d\n", CommonSettings.InternalFirmConf.fav_colour); - fp->fprintf("firmBirthMonth %d\n", CommonSettings.InternalFirmConf.birth_month); - fp->fprintf("firmBirthDay %d\n", CommonSettings.InternalFirmConf.birth_day); - fp->fprintf("firmLanguage %d\n", CommonSettings.InternalFirmConf.language); + fp->fprintf("firmFavColour %d\n", CommonSettings.fw_config.fav_colour); + fp->fprintf("firmBirthMonth %d\n", CommonSettings.fw_config.birth_month); + fp->fprintf("firmBirthDay %d\n", CommonSettings.fw_config.birth_day); + fp->fprintf("firmLanguage %d\n", CommonSettings.fw_config.language); } fp->fprintf("rtcStartNew %s\n", rtcStart.ToString().c_str()); @@ -577,7 +577,7 @@ // reset firmware (some games can write to it) if (CommonSettings.UseExtFirmware == false) { - NDS_CreateDummyFirmware(&CommonSettings.InternalFirmConf); + NDS_CreateDummyFirmware(&CommonSettings.fw_config); } NDS_Reset(); @@ -692,7 +692,7 @@ // reset firmware (some games can write to it) if (CommonSettings.UseExtFirmware == false) { - NDS_CreateDummyFirmware(&CommonSettings.InternalFirmConf); + NDS_CreateDummyFirmware(&CommonSettings.fw_config); } NDS_Reset(); @@ -1020,7 +1020,7 @@ if(tempMovieData.guid != currMovieData.guid) { //mbg 8/18/08 - this code can be used to turn the error message into an OK/CANCEL - #if defined(WIN32) && !defined(WXPORT) + #if defined(WIN32) std::string msg = "There is a mismatch between savestate's movie and current movie.\ncurrent: " + currMovieData.guid.toString() + "\nsavestate: " + tempMovieData.guid.toString() + "\n\nThis means that you have loaded a savestate belonging to a different movie than the one you are playing now.\n\nContinue loading this savestate anyway?"; int result = MessageBox(MainWindow->getHWnd(),msg.c_str(),"Error loading savestate",MB_OKCANCEL); if(result == IDCANCEL) diff -Nru desmume-0.9.9/src/NDSSystem.cpp desmume-0.9.10/src/NDSSystem.cpp --- desmume-0.9.9/src/NDSSystem.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/NDSSystem.cpp 2013-11-28 00:37:18.805021131 +0000 @@ -30,6 +30,7 @@ #include "gfx3d.h" #include "utils/decrypt/decrypt.h" #include "utils/decrypt/crc.h" +#include "utils/advanscene.h" #include "cp15.h" #include "bios.h" #include "debug.h" @@ -40,15 +41,15 @@ #include "debug.h" #include "firmware.h" #include "version.h" -#include "slot1.h" - #include "path.h" +#include "slot1.h" +#include "slot2.h" //int xxctr=0; //#define LOG_ARM9 //#define LOG_ARM7 -//#define dolog (currFrameCounter>15) -//bool dolog=true; +//#define dolog (currFrameCounter>30) +bool dolog = false; //#define LOG_TO_FILE //#define LOG_TO_FILE_REGS @@ -69,7 +70,6 @@ GameInfo gameInfo; NDSSystem nds; CFIRMWARE *firmware = NULL; -ADVANsCEne advsc; using std::min; using std::max; @@ -85,7 +85,7 @@ namespace DLDI { - bool tryPatch(void* data, size_t size); + bool tryPatch(void* data, size_t size, unsigned int device); } void Desmume_InitOnce() @@ -112,7 +112,6 @@ nds.idleFrameCounter = 0; memset(nds.runCycleCollector,0,sizeof(nds.runCycleCollector)); MMU_Init(); - nds.VCount = 0; //got to print this somewhere.. printf("%s\n", EMU_DESMUME_NAME_AND_VERSION()); @@ -135,30 +134,15 @@ WIFI_Init() ; - // Init calibration info - TSCal.adc.x1 = 0x0200; - TSCal.adc.y1 = 0x0200; - TSCal.scr.x1 = 0x20 + 1; // calibration screen coords are 1-based, - TSCal.scr.y1 = 0x20 + 1; // either that or NDS_getADCTouchPosX/Y are wrong. - TSCal.adc.x2 = 0x0E00; - TSCal.adc.y2 = 0x0800; - TSCal.scr.x2 = 0xE0 + 1; - TSCal.scr.y2 = 0x80 + 1; - TSCal.adc.width = (TSCal.adc.x2 - TSCal.adc.x1); - TSCal.adc.height = (TSCal.adc.y2 - TSCal.adc.y1); - TSCal.scr.width = (TSCal.scr.x2 - TSCal.scr.x1); - TSCal.scr.height = (TSCal.scr.y2 - TSCal.scr.y1); - cheats = new CHEATS(); cheatSearch = new CHEATSEARCH(); return 0; } -void NDS_DeInit(void) { - if(MMU.CART_ROM != MMU.UNUSED_RAM) - NDS_FreeROM(); - +void NDS_DeInit(void) +{ + gameInfo.closeROM(); SPU_DeInit(); Screen_DeInit(); MMU_DeInit(); @@ -193,58 +177,61 @@ #endif } -BOOL NDS_SetROM(u8 * rom, u32 mask) -{ - MMU_setRom(rom, mask); - - return TRUE; -} - NDS_header * NDS_getROMHeader(void) { - if(MMU.CART_ROM == MMU.UNUSED_RAM) return NULL; NDS_header * header = new NDS_header; - memcpy(header->gameTile, MMU.CART_ROM, 12); - memcpy(header->gameCode, MMU.CART_ROM + 12, 4); - header->makerCode = T1ReadWord(MMU.CART_ROM, 16); - header->unitCode = MMU.CART_ROM[18]; - header->deviceCode = MMU.CART_ROM[19]; - header->cardSize = MMU.CART_ROM[20]; - memcpy(header->cardInfo, MMU.CART_ROM + 21, 8); - header->flags = MMU.CART_ROM[29]; - header->romversion = MMU.CART_ROM[30]; - header->ARM9src = T1ReadLong(MMU.CART_ROM, 32); - header->ARM9exe = T1ReadLong(MMU.CART_ROM, 36); - header->ARM9cpy = T1ReadLong(MMU.CART_ROM, 40); - header->ARM9binSize = T1ReadLong(MMU.CART_ROM, 44); - header->ARM7src = T1ReadLong(MMU.CART_ROM, 48); - header->ARM7exe = T1ReadLong(MMU.CART_ROM, 52); - header->ARM7cpy = T1ReadLong(MMU.CART_ROM, 56); - header->ARM7binSize = T1ReadLong(MMU.CART_ROM, 60); - header->FNameTblOff = T1ReadLong(MMU.CART_ROM, 64); - header->FNameTblSize = T1ReadLong(MMU.CART_ROM, 68); - header->FATOff = T1ReadLong(MMU.CART_ROM, 72); - header->FATSize = T1ReadLong(MMU.CART_ROM, 76); - header->ARM9OverlayOff = T1ReadLong(MMU.CART_ROM, 80); - header->ARM9OverlaySize = T1ReadLong(MMU.CART_ROM, 84); - header->ARM7OverlayOff = T1ReadLong(MMU.CART_ROM, 88); - header->ARM7OverlaySize = T1ReadLong(MMU.CART_ROM, 92); - header->unknown2a = T1ReadLong(MMU.CART_ROM, 96); - header->unknown2b = T1ReadLong(MMU.CART_ROM, 100); - header->IconOff = T1ReadLong(MMU.CART_ROM, 104); - header->CRC16 = T1ReadWord(MMU.CART_ROM, 108); - header->ROMtimeout = T1ReadWord(MMU.CART_ROM, 110); - header->ARM9unk = T1ReadLong(MMU.CART_ROM, 112); - header->ARM7unk = T1ReadLong(MMU.CART_ROM, 116); - memcpy(header->unknown3c, MMU.CART_ROM + 120, 8); - header->ROMSize = T1ReadLong(MMU.CART_ROM, 128); - header->HeaderSize = T1ReadLong(MMU.CART_ROM, 132); - memcpy(header->unknown5, MMU.CART_ROM + 136, 56); - memcpy(header->logo, MMU.CART_ROM + 192, 156); - header->logoCRC16 = T1ReadWord(MMU.CART_ROM, 348); - header->headerCRC16 = T1ReadWord(MMU.CART_ROM, 350); - memcpy(header->reserved, MMU.CART_ROM + 352, min(160, (int)gameInfo.romsize - 352)); + memcpy(header, &gameInfo.header, sizeof(gameInfo.header)); + + //endian swap necessary fields. It would be better if we made accessors for these. I wonder if you could make a macro for a field accessor that would take the bitsize and do the swap on the fly + struct FieldSwap { + size_t offset; + int bytes; + }; + + static const FieldSwap fieldSwaps[] = { + { offsetof(NDS_header,makerCode), 2}, + + { offsetof(NDS_header,ARM9src), 4}, + { offsetof(NDS_header,ARM9exe), 4}, + { offsetof(NDS_header,ARM9cpy), 4}, + { offsetof(NDS_header,ARM7src), 4}, + { offsetof(NDS_header,ARM7exe), 4}, + { offsetof(NDS_header,ARM7cpy), 4}, + { offsetof(NDS_header,ARM7binSize), 4}, + { offsetof(NDS_header,FNameTblOff), 4}, + { offsetof(NDS_header,FNameTblSize), 4}, + { offsetof(NDS_header,FATOff), 4}, + { offsetof(NDS_header,FATSize), 4}, + { offsetof(NDS_header,ARM9OverlayOff), 4}, + { offsetof(NDS_header,ARM9OverlaySize), 4}, + { offsetof(NDS_header,ARM7OverlayOff), 4}, + { offsetof(NDS_header,ARM7OverlaySize), 4}, + { offsetof(NDS_header,normalCmd), 4}, + { offsetof(NDS_header,Key1Cmd), 4}, + { offsetof(NDS_header,IconOff), 4}, + + { offsetof(NDS_header,CRC16), 2}, + { offsetof(NDS_header,ROMtimeout), 2}, + + { offsetof(NDS_header,ARM9autoload), 4}, + { offsetof(NDS_header,ARM7autoload), 4}, + { offsetof(NDS_header,endROMoffset), 4}, + { offsetof(NDS_header,HeaderSize), 4}, + + { offsetof(NDS_header, ARM9module), 4}, + { offsetof(NDS_header, ARM7module), 4}, + + { offsetof(NDS_header,logoCRC16), 2}, + { offsetof(NDS_header,headerCRC16), 2}, + }; + + for(int i=0;i>28)) emu_halt(); } -#define DSGBA_LOADER_SIZE 512 -enum -{ - ROM_NDS = 0, - ROM_DSGBA -}; - #if 0 /* not used */ //http://www.aggregate.org/MAGIC/#Population%20Count%20(Ones%20Count) static u32 ones32(u32 x) @@ -329,30 +309,27 @@ const RomBanner& GameInfo::getRomBanner() { - //we may not have a valid banner. return a default one - if(!hasRomBanner()) - { - static RomBanner defaultBanner(true); - return defaultBanner; - } - - return *(RomBanner*)(romdata+header.IconOff); + return banner; } void GameInfo::populate() { - const char *regions[] = { "JPFSEDIRKHX", - "JPN", - "EUR", - "FRA", - "ESP", - "USA", - "NOE", - "ITA", - "RUS", - "KOR", - "HOL", - "EUU", + const char *regions[] = { "JPFSEODIRKHXWVU", + "JPN", // J + "EUR", // P + "FRA", // F + "ESP", // S + "USA", // E + "INT", // O + "NOE", // D + "ITA", // I + "RUS", // R + "KOR", // K + "HOL", // H + "EUU", // X + "EUU", // V + "EUU", // W + "AUS", // U }; @@ -363,41 +340,23 @@ memset(ROMserial, 0, sizeof(ROMserial)); memset(ROMname, 0, sizeof(ROMname)); - //homebrew detection heuristics - //Option Old. - look for this instruction in the game title - //(did this ever work?) - //(header->gameTile[0] == 0x2E) && (header->gameTile[1] == 0x00) && header->gameTile[2] == 0x00) && header->gameTile[3] == 0xEA) - //Option New. - look for gamecode #### (default for ndstool) - //or an invalid gamecode - //this first part may look like a poor heuristic for detecting homebrew, but it is actually pretty good. - //setting your own game code is stupid, so homebrew should just leave it. - //however, non-devkitARM-default makefiles may not have set this. - bool gamecodeHash = !memcmp(header.gameCode,"####",4); - bool gamecodeInvalid = header.gameCode[0] == 0x00; - - - if((gamecodeHash || gamecodeInvalid) - //TBD - is this check a good idea? - && header.makerCode == 0x0 - ) - { - isHomebrew = true; - } - else - isHomebrew = false; - - if(isHomebrew) + if(isHomebrew()) { //we can't really make a serial for a homebrew game that hasnt set a game code strcpy(ROMserial, "Homebrew"); } else { - strcpy(ROMserial,"NTR- -"); + if (isDSiEnhanced()) + strcpy(ROMserial,"TWL- -"); + else + strcpy(ROMserial,"NTR- -"); memcpy(ROMserial+4, header.gameCode, 4); + u32 regions_num = ARRAY_SIZE(regions); u32 region = (u32)(std::max(strchr(regions[0],header.gameCode[3]) - regions[0] + 1, 0)); - if (region > 0 && region < 12) + + if (region < regions_num) strcat(ROMserial, regions[region]); else strcat(ROMserial, "Unknown"); @@ -421,40 +380,116 @@ } -#ifdef _WINDOWS +bool GameInfo::loadROM(std::string fname, u32 type) +{ + //printf("ROM %s\n", CommonSettings.loadToMemory?"loaded to RAM":"stream from disk"); + + closeROM(); -static std::vector buffer; -static std::vector v; + fROM = fopen(fname.c_str(), "rb"); + if (!fROM) return false; -static void loadrom(std::string fname) { + headerOffset = (type == ROM_DSGBA)?DSGBA_LOADER_SIZE:0; + fseek(fROM, 0, SEEK_END); + romsize = ftell(fROM) - headerOffset; + fseek(fROM, headerOffset, SEEK_SET); - FILE* inf = fopen(fname.c_str(),"rb"); - if(!inf) return; + bool res = (fread(&header, 1, sizeof(header), fROM) == sizeof(header)); - fseek(inf,0,SEEK_END); - int size = ftell(inf); - fseek(inf,0,SEEK_SET); + if (res) + { + cardSize = (128 * 1024) << header.cardSize; + mask = (cardSize - 1); + mask |= (mask >>1); + mask |= (mask >>2); + mask |= (mask >>4); + mask |= (mask >>8); + mask |= (mask >>16); - gameInfo.resize(size); - fread(gameInfo.romdata,1,size,inf); - gameInfo.fillGap(); - - fclose(inf); + if (type == ROM_NDS) + { + fseek(fROM, 0x4000 + headerOffset, SEEK_SET); + fread(&secureArea[0], 1, 0x4000, fROM); + } + + if (CommonSettings.loadToMemory) + { + fseek(fROM, headerOffset, SEEK_SET); + + romdata = new u8[romsize + 4]; + if (fread(romdata, 1, romsize, fROM) != romsize) + { + delete [] romdata; romdata = NULL; + romsize = 0; + + return false; + } + + if(hasRomBanner()) + memcpy(&banner, romdata + header.IconOff, sizeof(RomBanner)); + + _isDSiEnhanced = ((*(u32*)(romdata + 0x180) == 0x8D898581U) && (*(u32*)(romdata + 0x184) == 0x8C888480U)); + fclose(fROM); fROM = NULL; + return true; + } + _isDSiEnhanced = ((readROM(0x180) == 0x8D898581U) && (readROM(0x184) == 0x8C888480U)); + if (hasRomBanner()) + { + fseek(fROM, header.IconOff + headerOffset, SEEK_SET); + fread(&banner, 1, sizeof(RomBanner), fROM); + } + fseek(fROM, headerOffset, SEEK_SET); + lastReadPos = 0; + return true; + } + + romsize = 0; + fclose(fROM); fROM = NULL; + return false; +} + +void GameInfo::closeROM() +{ + if (fROM) + fclose(fROM); + + if (romdata) + delete [] romdata; + + fROM = NULL; + romdata = NULL; + romsize = 0; + lastReadPos = 0xFFFFFFFF; +} + +u32 GameInfo::readROM(u32 pos) +{ + if (!romdata) + { + u32 data; + if (lastReadPos != pos) + fseek(fROM, pos + headerOffset, SEEK_SET); + u32 num = fread(&data, 1, 4, fROM); + lastReadPos = (pos + num); + return data; + } + else + return *(u32*)(romdata + pos); } static int rom_init_path(const char *filename, const char *physicalName, const char *logicalFilename) { - int type = ROM_NDS; + u32 type = ROM_NDS; - path.init(logicalFilename); + path.init(logicalFilename? logicalFilename : filename); if ( path.isdsgba(path.path)) { type = ROM_DSGBA; - loadrom(path.path); + gameInfo.loadROM(path.path, type); } else if ( !strcasecmp(path.extension().c_str(), "nds")) { type = ROM_NDS; - loadrom(physicalName ? physicalName : path.path); //n.b. this does nothing if the file can't be found (i.e. if it was an extracted tempfile)... + gameInfo.loadROM(physicalName ? physicalName : path.path, type); //n.b. this does nothing if the file can't be found (i.e. if it was an extracted tempfile)... //...but since the data was extracted to gameInfo then it is ok } //ds.gba in archives, it's already been loaded into memory at this point @@ -463,13 +498,7 @@ } else { //well, try to load it as an nds rom anyway type = ROM_NDS; - loadrom(physicalName ? physicalName : path.path); - } - - if(type == ROM_DSGBA) - { - std::vector v(gameInfo.romdata + DSGBA_LOADER_SIZE, gameInfo.romdata + gameInfo.romsize); - gameInfo.loadData(&v[0],gameInfo.romsize - DSGBA_LOADER_SIZE); + gameInfo.loadROM(physicalName ? physicalName : path.path, type); } //check that size is at least the size of the header @@ -477,70 +506,10 @@ return -1; } - return 1; -} -#else -static int rom_init_path(const char *filename, const char *physicalName, const char *logicalFilename) -{ - int ret; - int type; - ROMReader_struct *reader; - void *file; - u32 size; - char *noext; - - noext = strdup(filename); - reader = ROMReaderInit(&noext); - free(noext); - - if (logicalFilename) - path.init(logicalFilename); - else - path.init(filename); + gameInfo.romType = type; - if (!strcasecmp(path.extension().c_str(), "zip")) - type = ROM_NDS; - else if (!strcasecmp(path.extension().c_str(), "nds")) - type = ROM_NDS; - else if (path.isdsgba(path.path)) - type = ROM_DSGBA; - else - type = ROM_NDS; - - file = reader->Init(filename); - if (!file) - { - reader->DeInit(file); - return -1; - } - - size = reader->Size(file); - - if(type == ROM_DSGBA) - { - reader->Seek(file, DSGBA_LOADER_SIZE, SEEK_SET); - size -= DSGBA_LOADER_SIZE; - } - - //check that size is at least the size of the header - if (size < 352) { - reader->DeInit(file); - return -1; - } - - // Make sure old ROM is freed first(at least this way we won't be eating - // up a ton of ram before the old ROM is freed) - if(MMU.CART_ROM != MMU.UNUSED_RAM) - NDS_FreeROM(); - - gameInfo.resize(size); - ret = reader->Read(file, gameInfo.romdata, size); - gameInfo.fillGap(); - reader->DeInit(file); - - return ret; + return 1; } -#endif int NDS_LoadROM(const char *filename, const char *physicalName, const char *logicalFilename) { @@ -554,31 +523,59 @@ if (ret < 1) return ret; - //decrypt if necessary.. - //but this is untested and suspected to fail on big endian, so lets not support this on big endian -#ifndef WORDS_BIGENDIAN - bool okRom = DecryptSecureArea((u8*)gameInfo.romdata,gameInfo.romsize); + if (cheatSearch) + cheatSearch->close(); + FCEUI_StopMovie(); - if(!okRom) { + + //check whether this rom is any kind of valid + if(!CheckValidRom((u8*)&gameInfo.header, gameInfo.secureArea)) + { printf("Specified file is not a valid rom\n"); return -1; } -#endif - if (cheatSearch) - cheatSearch->close(); - FCEUI_StopMovie(); + gameInfo.populate(); - MMU_unsetRom(); - NDS_SetROM((u8*)gameInfo.romdata, gameInfo.mask); - gameInfo.populate(); - gameInfo.crc = crc32(0,(u8*)gameInfo.romdata,gameInfo.romsize); + if (CommonSettings.loadToMemory) + gameInfo.crc = crc32(0, (u8*)gameInfo.romdata, gameInfo.romsize); + else + gameInfo.crc = 0; + + gameInfo.chipID = 0xC2; // The Manufacturer ID is defined by JEDEC (C2h = Macronix) + if (!gameInfo.isHomebrew()) + { + gameInfo.chipID |= ((((128 << gameInfo.header.cardSize) / 1024) - 1) << 8); // Chip size in megabytes minus 1 + // (07h = 8MB, 0Fh = 16MB, 1Fh = 32MB, 3Fh = 64MB, 7Fh = 128MB) + + // flags + // 0: Unknown + // 1: Unknown + // 2: Unknown + // 3: Unknown + // 4: Unknown + // 5: DSi? (if set to 1 then DSi Enhanced games send command D6h to Slot1) + // 6: Unknown + // 7: ROM speed (Secure Area Block transfer mode (trasfer 8x200h or 1000h bytes) + // TODO: + //if (gameInfo.isDSiEnhanced()) + // gameInfo.chipID |= (0x40 << 24); + gameInfo.chipID |= (0x00 << 24); + } + INFO("\nROM game code: %c%c%c%c\n", gameInfo.header.gameCode[0], gameInfo.header.gameCode[1], gameInfo.header.gameCode[2], gameInfo.header.gameCode[3]); - INFO("ROM crc: %08X\n", gameInfo.crc); - INFO("ROM serial: %s\n", gameInfo.ROMserial); - INFO("ROM internal name: %s\n", gameInfo.ROMname); - + if (gameInfo.crc) + INFO("ROM crc: %08X\n", gameInfo.crc); + if (!gameInfo.isHomebrew()) + { + INFO("ROM serial: %s\n", gameInfo.ROMserial); + INFO("ROM chipID: %08X\n", gameInfo.chipID); + INFO("ROM internal name: %s\n", gameInfo.ROMname); + if (gameInfo.isDSiEnhanced()) INFO("ROM DSi Enhanced\n"); + } + INFO("ROM developer: %s\n", ((gameInfo.header.makerCode == 0) && gameInfo.isHomebrew())?"Homebrew":getDeveloperNameByID(gameInfo.header.makerCode).c_str()); + memset(buf, 0, MAX_PATH); strcpy(buf, path.pathToModule); strcat(buf, "desmume.ddb"); // DeSmuME database :) @@ -588,11 +585,12 @@ buf[2] = gameInfo.header.gameCode[2]; buf[3] = gameInfo.header.gameCode[3]; buf[4] = 0; - if (advsc.checkDB(buf)) + if (advsc.checkDB(buf, gameInfo.crc)) { u8 sv = advsc.getSaveType(); - printf("ADVANsCEne database:\n"); - printf("\t* ROM save type: "); + printf("Found in game database by %s:\n", advsc.getIdMethod()); + printf("\t* ROM serial:\t\t%s\n", advsc.getSerial()); + printf("\t* ROM save type:\t"); if (sv == 0xFF) printf("Unknown"); else @@ -600,22 +598,24 @@ printf("None"); else { - printf("%s", save_types[sv].descr); + printf("%s", save_types[sv + 1].descr); if (CommonSettings.autodetectBackupMethod == 1) - backup_setManualBackupType(sv+1); + backup_setManualBackupType(sv + 1); } - printf("\n\t* ROM crc: %08X\n", advsc.getCRC32()); + printf("\n\t* ROM crc:\t\t%08X\n", advsc.getCRC32()); } printf("\n"); //for homebrew, try auto-patching DLDI. should be benign if there is no DLDI or if it fails - if(gameInfo.isHomebrew) - DLDI::tryPatch((void*)gameInfo.romdata, gameInfo.romsize); + if(gameInfo.isHomebrew() && CommonSettings.loadToMemory) + { + if (slot1_GetCurrentType() == NDS_SLOT1_R4) + DLDI::tryPatch((void*)gameInfo.romdata, gameInfo.romsize, 1); + else + if (slot2_GetCurrentType() == NDS_SLOT2_CFLASH) + DLDI::tryPatch((void*)gameInfo.romdata, gameInfo.romsize, 0); - memset(buf, 0, MAX_PATH); - path.getpathnoext(path.BATTERY, buf); - strcat(buf, ".dsv"); // DeSmuME memory card :) - MMU_new.backupDevice.load_rom(buf); + } if (cheats != NULL) { @@ -633,319 +633,7 @@ void NDS_FreeROM(void) { FCEUI_StopMovie(); - if ((u8*)MMU.CART_ROM == (u8*)gameInfo.romdata) - gameInfo.romdata = NULL; - if (MMU.CART_ROM != MMU.UNUSED_RAM) - delete [] MMU.CART_ROM; - MMU_unsetRom(); -} - -u32 NDS_ImportSaveSize(const char *filename) -{ - u32 res = 0; - if (strlen(filename) < 4) return 0; - - if (memcmp(filename+strlen(filename)-4, ".duc", 4) == 0) - { - res = MMU_new.backupDevice.get_save_duc_size(filename); - if (res == 0xFFFFFFFF) return 0; - return res; - } - - res = MMU_new.backupDevice.get_save_nogba_size(filename); - if (res != 0xFFFFFFFF) return res; - - res = MMU_new.backupDevice.get_save_raw_size(filename); - if (res != 0xFFFFFFFF) return res; - - return 0; -} - -int NDS_ImportSave(const char *filename, u32 force_size) -{ - if (strlen(filename) < 4) return 0; - - if (memcmp(filename+strlen(filename)-4, ".duc", 4) == 0) - return MMU_new.backupDevice.load_duc(filename, force_size); - else - if (MMU_new.backupDevice.load_no_gba(filename, force_size)) - return 1; - else - return MMU_new.backupDevice.load_raw(filename, force_size); - - return 0; -} - -bool NDS_ExportSave(const char *filename) -{ - if (strlen(filename) < 4) - return false; - - if (memcmp(filename+strlen(filename)-5, ".sav*", 5) == 0) - { - char tmp[MAX_PATH]; - memset(tmp, 0, MAX_PATH); - strcpy(tmp, filename); - tmp[strlen(tmp)-1] = 0; - return MMU_new.backupDevice.save_no_gba(tmp); - } - - if (memcmp(filename+strlen(filename)-4, ".sav", 4) == 0) - return MMU_new.backupDevice.save_raw(filename); - - return false; -} - -static int WritePNGChunk(FILE *fp, uint32 size, const char *type, const uint8 *data) -{ - uint32 crc; - - uint8 tempo[4]; - - tempo[0]=size>>24; - tempo[1]=size>>16; - tempo[2]=size>>8; - tempo[3]=size; - - if(fwrite(tempo,4,1,fp)!=1) - return 0; - if(fwrite(type,4,1,fp)!=1) - return 0; - - if(size) - if(fwrite(data,1,size,fp)!=size) - return 0; - - crc = crc32(0,(uint8 *)type,4); - if(size) - crc = crc32(crc,data,size); - - tempo[0]=crc>>24; - tempo[1]=crc>>16; - tempo[2]=crc>>8; - tempo[3]=crc; - - if(fwrite(tempo,4,1,fp)!=1) - return 0; - return 1; -} -int NDS_WritePNG(const char *fname) -{ - int x, y; - int width=256; - int height=192*2; - u16 * bmp = (u16 *)GPU_screen; - FILE *pp=NULL; - uint8 *compmem = NULL; - uLongf compmemsize = (uLongf)( (height * (width + 1) * 3 * 1.001 + 1) + 12 ); - - if(!(compmem=(uint8 *)malloc(compmemsize))) - return 0; - - if(!(pp=fopen(fname, "wb"))) - { - goto PNGerr; - } - { - const uint8 header[8]={137,80,78,71,13,10,26,10}; - if(fwrite(header,8,1,pp)!=1) - goto PNGerr; - } - - { - uint8 chunko[13]; - - chunko[0] = width >> 24; // Width - chunko[1] = width >> 16; - chunko[2] = width >> 8; - chunko[3] = width; - - chunko[4] = height >> 24; // Height - chunko[5] = height >> 16; - chunko[6] = height >> 8; - chunko[7] = height; - - chunko[8]=8; // 8 bits per sample(24 bits per pixel) - chunko[9]=2; // Color type; RGB triplet - chunko[10]=0; // compression: deflate - chunko[11]=0; // Basic adapative filter set(though none are used). - chunko[12]=0; // No interlace. - - if(!WritePNGChunk(pp,13,"IHDR",chunko)) - goto PNGerr; - } - - { - uint8 *tmp_buffer; - uint8 *tmp_inc; - tmp_inc = tmp_buffer = (uint8 *)malloc((width * 3 + 1) * height); - - for(y=0;y>10; - pixel-=r<<10; - g = pixel>>5; - pixel-=g<<5; - b = pixel; - r*=255/31; - g*=255/31; - b*=255/31; - tmp_inc[0] = b; - tmp_inc[1] = g; - tmp_inc[2] = r; - tmp_inc += 3; - } - } - - if(compress(compmem, &compmemsize, tmp_buffer, height * (width * 3 + 1))!=Z_OK) - { - if(tmp_buffer) free(tmp_buffer); - goto PNGerr; - } - if(tmp_buffer) free(tmp_buffer); - if(!WritePNGChunk(pp,compmemsize,"IDAT",compmem)) - goto PNGerr; - } - if(!WritePNGChunk(pp,0,"IEND",0)) - goto PNGerr; - - free(compmem); - fclose(pp); - - return 1; - -PNGerr: - if(compmem) - free(compmem); - if(pp) - fclose(pp); - return(0); -} - -typedef struct -{ - u32 size; - s32 width; - s32 height; - u16 planes; - u16 bpp; - u32 cmptype; - u32 imgsize; - s32 hppm; - s32 vppm; - u32 numcol; - u32 numimpcol; -} bmpimgheader_struct; - -#include "PACKED.h" -typedef struct -{ - u16 id __PACKED; - u32 size __PACKED; - u16 reserved1 __PACKED; - u16 reserved2 __PACKED; - u32 imgoffset __PACKED; -} bmpfileheader_struct; -#include "PACKED_END.h" - -int NDS_WriteBMP(const char *filename) -{ - bmpfileheader_struct fileheader; - bmpimgheader_struct imageheader; - FILE *file; - int i,j; - u16 * bmp = (u16 *)GPU_screen; - size_t elems_written = 0; - - memset(&fileheader, 0, sizeof(fileheader)); - fileheader.size = sizeof(fileheader); - fileheader.id = 'B' | ('M' << 8); - fileheader.imgoffset = sizeof(fileheader)+sizeof(imageheader); - - memset(&imageheader, 0, sizeof(imageheader)); - imageheader.size = sizeof(imageheader); - imageheader.width = 256; - imageheader.height = 192*2; - imageheader.planes = 1; - imageheader.bpp = 24; - imageheader.cmptype = 0; // None - imageheader.imgsize = imageheader.width * imageheader.height * 3; - - if ((file = fopen(filename,"wb")) == NULL) - return 0; - - elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file); - elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file); - - for(j=0;j<192*2;j++) - { - for(i=0;i<256;i++) - { - u8 r,g,b; - u16 pixel = bmp[(192*2-j-1)*256+i]; - r = pixel>>10; - pixel-=r<<10; - g = pixel>>5; - pixel-=g<<5; - b = (u8)pixel; - r*=255/31; - g*=255/31; - b*=255/31; - elems_written += fwrite(&r, 1, sizeof(u8), file); - elems_written += fwrite(&g, 1, sizeof(u8), file); - elems_written += fwrite(&b, 1, sizeof(u8), file); - } - } - fclose(file); - - return 1; -} - -int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char *filename) -{ - bmpfileheader_struct fileheader; - bmpimgheader_struct imageheader; - FILE *file; - size_t elems_written = 0; - memset(&fileheader, 0, sizeof(fileheader)); - fileheader.size = sizeof(fileheader); - fileheader.id = 'B' | ('M' << 8); - fileheader.imgoffset = sizeof(fileheader)+sizeof(imageheader); - - memset(&imageheader, 0, sizeof(imageheader)); - imageheader.size = sizeof(imageheader); - imageheader.width = width; - imageheader.height = height; - imageheader.planes = 1; - imageheader.bpp = 32; - imageheader.cmptype = 0; // None - imageheader.imgsize = imageheader.width * imageheader.height * 4; - - if ((file = fopen(filename,"wb")) == NULL) - return 0; - - elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file); - elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file); - - for(int i=0;i(0x00002F08, 0x4770); + { + //[3801] SUB R0, #1 -> [4770] BX LR + T1WriteWord(MMU.ARM7_BIOS,0x2F08, 0x4770); + } } else NDS_ARM7.swi_tab = ARM_swi_tab[ARMCPU_ARM7]; @@ -2230,39 +1927,39 @@ { //fake bios content, critical to normal operations, since we dont have a real bios. -#if 0 - //someone please document what is in progress here - // TODO - T1WriteLong(MMU.ARM7_BIOS, 0x0000, 0xEAFFFFFE); // loop for Reset !!! - T1WriteLong(MMU.ARM7_BIOS, 0x0004, 0xEAFFFFFE); // loop for Undef instr expection - T1WriteLong(MMU.ARM7_BIOS, 0x0008, 0xEA00009C); // SWI - T1WriteLong(MMU.ARM7_BIOS, 0x000C, 0xEAFFFFFE); // loop for Prefetch Abort - T1WriteLong(MMU.ARM7_BIOS, 0x0010, 0xEAFFFFFE); // loop for Data Abort - T1WriteLong(MMU.ARM7_BIOS, 0x0014, 0x00000000); // Reserved - T1WriteLong(MMU.ARM7_BIOS, 0x001C, 0x00000000); // Fast IRQ -#endif - T1WriteLong(MMU.ARM7_BIOS, 0x0000, 0xE25EF002); - T1WriteLong(MMU.ARM7_BIOS, 0x0018, 0xEA000000); - T1WriteLong(MMU.ARM7_BIOS, 0x0020, 0xE92D500F); - T1WriteLong(MMU.ARM7_BIOS, 0x0024, 0xE3A00301); - T1WriteLong(MMU.ARM7_BIOS, 0x0028, 0xE28FE000); - T1WriteLong(MMU.ARM7_BIOS, 0x002C, 0xE510F004); - T1WriteLong(MMU.ARM7_BIOS, 0x0030, 0xE8BD500F); - T1WriteLong(MMU.ARM7_BIOS, 0x0034, 0xE25EF004); + T1WriteLong(MMU.ARM7_BIOS, 0x0000, 0xEAFFFFFE); //B 00000000 (reset: infinite loop) (originally: 0xE25EF002 - SUBS PC, LR, #2 + T1WriteLong(MMU.ARM7_BIOS, 0x0004, 0xEAFFFFFE); //B 00000004 (undefined instruction: infinite loop) + T1WriteLong(MMU.ARM7_BIOS, 0x0008, 0xEAFFFFFE); //B 00000280 (SWI: infinite loop [since we will be HLEing the SWI routines]) + T1WriteLong(MMU.ARM7_BIOS, 0x000C, 0xEAFFFFFE); //B 0000000C (prefetch abort: infinite loop) + T1WriteLong(MMU.ARM7_BIOS, 0x0010, 0xEAFFFFFE); //B 00000010 (data abort: infinite loop) + T1WriteLong(MMU.ARM7_BIOS, 0x0018, 0xEA000000); //B 00000020 (IRQ: branch to handler) + T1WriteLong(MMU.ARM7_BIOS, 0x001C, 0xEAFFFFFE); //B 0000001C (FIQ vector: infinite loop) + //IRQ handler + T1WriteLong(MMU.ARM7_BIOS, 0x0020, 0xE92D500F); //STMDB SP!, {R0-R3,R12,LR} + T1WriteLong(MMU.ARM7_BIOS, 0x0024, 0xE3A00301); //MOV R0, #4000000 + T1WriteLong(MMU.ARM7_BIOS, 0x0028, 0xE28FE000); //ADD LR, PC, #0 + T1WriteLong(MMU.ARM7_BIOS, 0x002C, 0xE510F004); //LDR PC, [R0, -#4] + T1WriteLong(MMU.ARM7_BIOS, 0x0030, 0xE8BD500F); //LDMIA SP!, {R0-R3,R12,LR} + T1WriteLong(MMU.ARM7_BIOS, 0x0034, 0xE25EF004); //SUBS PC, LR, #4 } } static void PrepareBiosARM9() { + //begin with the bios unloaded memset(MMU.ARM9_BIOS, 0, sizeof(MMU.ARM9_BIOS)); NDS_ARM9.BIOS_loaded = false; + if(CommonSettings.UseExtBIOS == true) { //read arm9 bios from inputfile and flag it if it succeeds FILE* arm9inf = fopen(CommonSettings.ARM9BIOS,"rb"); - if (fread(MMU.ARM9_BIOS,1,4096,arm9inf) == 4096) - NDS_ARM9.BIOS_loaded = true; - fclose(arm9inf); + if (arm9inf) + { + if (fread(MMU.ARM9_BIOS,1,4096,arm9inf) == 4096) + NDS_ARM9.BIOS_loaded = true; + fclose(arm9inf); + } } //choose to use SWI emulation or routines from bios @@ -2271,8 +1968,9 @@ NDS_ARM9.swi_tab = 0; //if we used routines from bios, apply patches + //[3801] SUB R0, #1 -> [4770] BX LR if (CommonSettings.PatchSWI3) - _MMU_write16(0xFFFF07CC, 0x4770); + T1WriteWord(MMU.ARM9_BIOS, 0x07CC, 0x4770); } else NDS_ARM9.swi_tab = ARM_swi_tab[ARMCPU_ARM9]; @@ -2299,26 +1997,16 @@ T1WriteLong(MMU.ARM9_BIOS, 0x0018, 0xEA000095); // Normal IRQ -> 0x0274 T1WriteLong(MMU.ARM9_BIOS, 0x001C, 0xEA00009D); // Fast IRQ -> 0x0298 - static const u8 logo_data[156] = { - 0x24,0xFF,0xAE,0x51,0x69,0x9A,0xA2,0x21,0x3D,0x84,0x82,0x0A,0x84,0xE4,0x09,0xAD, - 0x11,0x24,0x8B,0x98,0xC0,0x81,0x7F,0x21,0xA3,0x52,0xBE,0x19,0x93,0x09,0xCE,0x20, - 0x10,0x46,0x4A,0x4A,0xF8,0x27,0x31,0xEC,0x58,0xC7,0xE8,0x33,0x82,0xE3,0xCE,0xBF, - 0x85,0xF4,0xDF,0x94,0xCE,0x4B,0x09,0xC1,0x94,0x56,0x8A,0xC0,0x13,0x72,0xA7,0xFC, - 0x9F,0x84,0x4D,0x73,0xA3,0xCA,0x9A,0x61,0x58,0x97,0xA3,0x27,0xFC,0x03,0x98,0x76, - 0x23,0x1D,0xC7,0x61,0x03,0x04,0xAE,0x56,0xBF,0x38,0x84,0x00,0x40,0xA7,0x0E,0xFD, - 0xFF,0x52,0xFE,0x03,0x6F,0x95,0x30,0xF1,0x97,0xFB,0xC0,0x85,0x60,0xD6,0x80,0x25, - 0xA9,0x63,0xBE,0x03,0x01,0x4E,0x38,0xE2,0xF9,0xA2,0x34,0xFF,0xBB,0x3E,0x03,0x44, - 0x78,0x00,0x90,0xCB,0x88,0x11,0x3A,0x94,0x65,0xC0,0x7C,0x63,0x87,0xF0,0x3C,0xAF, - 0xD6,0x25,0xE4,0x8B,0x38,0x0A,0xAC,0x72,0x21,0xD4,0xF8,0x07 - }; - - // logo (do some games fail to boot without this? example?) - for (int t = 0; t < 0x9C; t++) - MMU.ARM9_BIOS[t + 0x20] = logo_data[t]; - - //...0xBC: + //copy the logo content into the bios - Pokemon Platinum uses this in Pal Park trade + //it compares the logo from the arm9 bios to the logo in the GBA header. + //NOTE: in the unlikely event that the valid header is missing from the gameInfo, we'd be doing wrong here. + // however, its nice not to have the logo embedded here. + // TODO - take a CRC of the logo, check vs logoCRC16, and a hardcoded value, to make sure all is in order--report error if not + memcpy(&MMU.ARM9_BIOS[0x20], &gameInfo.header.logo[0], 0x9C); + T1WriteWord(MMU.ARM9_BIOS, 0x20 + 0x9C, gameInfo.header.logoCRC16); + //... and with that we are at 0xBC: - //(now what goes in this gap??) + //(now what goes in this gap?? nothing we need, i guess) //IRQ handler: get dtcm address and jump to a vector in it T1WriteLong(MMU.ARM9_BIOS, 0x0274, 0xE92D500F); //STMDB SP!, {R0-R3,R12,LR} @@ -2416,118 +2104,81 @@ #endif } -bool _HACK_DONT_STOPMOVIE = false; -void NDS_Reset() +bool NDS_LegitBoot() { - singleStep = false; - nds_debug_continuing[0] = nds_debug_continuing[1] = false; - bool fw_success = false; - FILE* inf = NULL; - NDS_header * header = NDS_getROMHeader(); + #ifdef HAVE_JIT + //hack for firmware boot in JIT mode. + //we know that it takes certain jit parameters to successfully boot the firmware. + //CRAZYMAX: is it safe to accept anything smaller than 12? + CommonSettings.jit_max_block_size = std::min(CommonSettings.jit_max_block_size,12U); + #endif - DEBUG_reset(); + //partially clobber the loaded firmware with the user settings from DFC + firmware->loadSettings(); - if (!header) return ; + //since firmware only boots encrypted roms, we have to make sure it's encrypted first + //this has not been validated on big endian systems. it almost positively doesn't work. + if (gameInfo.header.CRC16 != 0) + EncryptSecureArea((u8*)&gameInfo.header, (u8*)gameInfo.secureArea); + + //boot processors from their bios entrypoints + armcpu_init(&NDS_ARM7, 0x00000000); + armcpu_init(&NDS_ARM9, 0xFFFF0000); - nds.sleeping = FALSE; - nds.cardEjected = FALSE; - nds.freezeBus = 0; - nds.power1.lcd = nds.power1.gpuMain = nds.power1.gfx3d_render = nds.power1.gfx3d_geometry = nds.power1.gpuSub = nds.power1.dispswap = 1; - nds.power2.speakers = 1; - nds.power2.wifi = 0; - - nds_timer = 0; - nds_arm9_timer = 0; - nds_arm7_timer = 0; - - if(movieMode != MOVIEMODE_INACTIVE && !_HACK_DONT_STOPMOVIE) - movie_reset_command = true; + return true; +} - if(movieMode == MOVIEMODE_INACTIVE) { - currFrameCounter = 0; - lagframecounter = 0; - LagFrameFlag = 0; - lastLag = 0; - TotalLagFrames = 0; - } +//the fake firmware boot-up process +bool NDS_FakeBoot() +{ + NDS_header * header = NDS_getROMHeader(); - SPU_DeInit(); + //DEBUG_reset(); - MMU_Reset(); + if (!header) return false; -#ifdef HAVE_JIT - arm_jit_reset(CommonSettings.use_jit); -#endif + nds.isFakeBooted = true; - JumbleMemory(); - PrepareBiosARM7(); - PrepareBiosARM9(); + //since we're bypassing the code to decrypt the secure area, we need to make sure its decrypted first + //this has not been validated on big endian systems. it almost positively doesn't work. + if (gameInfo.header.CRC16 != 0) + { + bool okRom = DecryptSecureArea((u8*)&gameInfo.header, (u8*)gameInfo.secureArea); - PrepareLogfiles(); + if(!okRom) { + printf("Specified file is not a valid rom\n"); + return false; + } + } - //according to smea, this is initialized to 3 by the time we get into a user game program. who does this? - //well, the firmware load process is about to write a boot program into SIWRAM for the arm7. so we need it setup by now. - //but, this is a bit weird.. I would be expecting the bioses to do that. maybe we have some more detail to emulate. - //* is this setting the default, or does the bios do it before loading the firmware programs? - //at any, it's important that this be done long before the user code ever runs + //bios (or firmware) sets this default, which is generally not important for retail games but some homebrews are depending on _MMU_write08(REG_WRAMCNT,3); - if (firmware) - { - delete firmware; - firmware = NULL; + //EDIT - whats this firmware and how is it relating to the dummy firmware below + //how do these even get used? what is the purpose of unpack and why is it not used by the firmware boot process? + if (CommonSettings.UseExtFirmware && firmware->loaded()) + { + firmware->unpack(); + firmware->loadSettings(); } - firmware = new CFIRMWARE(); - fw_success = firmware->load(); - if (NDS_ARM7.BIOS_loaded && NDS_ARM9.BIOS_loaded && CommonSettings.BootFromFirmware && fw_success) - { - //Copy secure area to memory if needed. - //could we get a comment about what's going on here? - //how does this stuff get copied before anything ever even runs? - //does it get mapped straight to the rom somehow? - //This code could be made more clear too. - if ((header->ARM9src >= 0x4000) && (header->ARM9src < 0x8000)) - { - u32 src = header->ARM9src; - u32 dst = header->ARM9cpy; - - u32 size = (0x8000 - src) >> 2; + // Create the dummy firmware + //EDIT - whats dummy firmware and how is relating to the above? + //it seems to be emplacing basic firmware data into MMU.fw.data + NDS_CreateDummyFirmware(&CommonSettings.fw_config); - for (u32 i = 0; i < size; i++) - { - _MMU_write32(dst, T1ReadLong(MMU.CART_ROM, src)); - src += 4; dst += 4; - } - } - - //TODO someone describe why here - if (firmware->patched) - { - armcpu_init(&NDS_ARM7, 0x00000008); - armcpu_init(&NDS_ARM9, 0xFFFF0008); - } - else - { - //set the cpus to an initial state with their respective firmware program entrypoints - armcpu_init(&NDS_ARM7, firmware->ARM7bootAddr); - armcpu_init(&NDS_ARM9, firmware->ARM9bootAddr); - } - - //set REG_POSTFLG to the value indicating pre-firmware status - MMU.ARM9_REG[0x300] = 0; - MMU.ARM7_REG[0x300] = 0; - } - else + //firmware loads the game card arm9 and arm7 programs as specified in rom header { - //fake firmware boot-up process - + bool hasSecureArea = ((gameInfo.romType == ROM_NDS) && (gameInfo.header.CRC16 != 0)); //copy the arm9 program to the address specified by rom header u32 src = header->ARM9src; u32 dst = header->ARM9cpy; - for(u32 i = 0; i < (header->ARM9binSize>>2); ++i) + for(u32 i = 0; i < header->ARM9binSize; i+=4) { - _MMU_write32(dst, T1ReadLong(MMU.CART_ROM, src)); + u32 tmp = (hasSecureArea && ((src >= 0x4000) && (src < 0x8000)))?*(u32*)(gameInfo.secureArea + (src - 0x4000)):gameInfo.readROM(src); + + _MMU_write32(dst, tmp); + dst += 4; src += 4; } @@ -2535,25 +2186,62 @@ //copy the arm7 program to the address specified by rom header src = header->ARM7src; dst = header->ARM7cpy; - for(u32 i = 0; i < (header->ARM7binSize>>2); ++i) + for(u32 i = 0; i < header->ARM7binSize; i+=4) { - _MMU_write32(dst, T1ReadLong(MMU.CART_ROM, src)); + _MMU_write32(dst, gameInfo.readROM(src)); + dst += 4; src += 4; } + } + + //bios does this (thats weird, though. shouldnt it get changed when the card is swapped in the firmware menu? + //right now our firmware menu isnt detecting any change to the card. + //are some games depending on it being written here? please document. + //_MMU_write16(0x027FF808, T1ReadWord(MMU.CART_ROM, 0x15E)); + + //firmware sets up a copy of the firmware user settings in memory. + //TBD - this code is really clunky + //it seems to be copying the MMU.fw.data data into RAM in the user memory stash locations + u8 temp_buffer[NDS_FW_USER_SETTINGS_MEM_BYTE_COUNT]; + if ( copy_firmware_user_data( temp_buffer, MMU.fw.data)) { + for ( int fw_index = 0; fw_index < NDS_FW_USER_SETTINGS_MEM_BYTE_COUNT; fw_index++) + _MMU_write08(0x027FFC80 + fw_index, temp_buffer[fw_index]); + } - //set the cpus to an initial state with their respective programs entrypoints - armcpu_init(&NDS_ARM7, header->ARM7exe); - armcpu_init(&NDS_ARM9, header->ARM9exe); - - //set REG_POSTFLG to the value indicating post-firmware status - MMU.ARM9_REG[0x300] = 1; - MMU.ARM7_REG[0x300] = 1; + //something copies the whole header to Main RAM 0x27FFE00 on startup. (http://nocash.emubase.de/gbatek.htm#dscartridgeheader) + //once upon a time this copied 0x90 more. this was thought to be wrong, and changed. + if(nds.Is_DSI()) + { + //dsi needs this copied later in memory. there are probably a number of things that get copied to a later location in memory.. thats where the NDS consoles tend to stash stuff. + for (int i = 0; i < (0x170); i+=4) + _MMU_write32(0x027FFE00 + i, LE_TO_LOCAL_32(gameInfo.readROM(i))); + } + else + { + for (int i = 0; i < (0x170); i+=4) + _MMU_write32(0x027FFE00 + i, LE_TO_LOCAL_32(gameInfo.readROM(i))); } - // only ARM9 have co-processor - reconstruct(&cp15); - cp15.reset(&NDS_ARM9); + //the firmware will be booting to these entrypoint addresses via BX (well, the arm9 at least; is unverified for the arm7) + armcpu_init(&NDS_ARM7, header->ARM7exe); + armcpu_init(&NDS_ARM9, header->ARM9exe); + + //firmware sets REG_POSTFLG to the value indicating post-firmware status + MMU.ARM9_REG[0x300] = 1; + MMU.ARM7_REG[0x300] = 1; + + //firmware makes system think it's booted from card -- EXTREMELY IMPORTANT!!! This is actually checked by some things. (which things?) Thanks to cReDiAr + _MMU_write08(0x02FFFC40,0x1); // removed redundant write to ARM9, this is going to shared main memory. But one has to wonder why r3478 was made which corrected a typo resulting in only ARMCPU_ARM7 getting used. + + //the chipId is read several times + //for some reason, each of those reads get stored here. + _MMU_write32(0x027FF800, gameInfo.chipID); //1st chipId + _MMU_write32(0x027FF804, gameInfo.chipID); //2nd (secure) chipId + _MMU_write32(0x027FFC00, gameInfo.chipID); //3rd (secure) chipId + + // Write the header checksum to memory + _MMU_write16(0x027FF808, gameInfo.header.headerCRC16); //bitbox 4k demo is so stripped down it relies on default stack values //otherwise the arm7 will crash before making a sound @@ -2573,59 +2261,6 @@ //n.b.: im not sure about all these, I dont know enough about arm9 svc/irq/etc modes //and how theyre named in desmume to match them up correctly. i just guessed. - nds.wifiCycle = 0; - memset(nds.timerCycle, 0, sizeof(u64) * 2 * 4); - nds.old = 0; - nds.scr_touchX = nds.scr_touchY = nds.adc_touchX = nds.adc_touchY = 0; - nds.isTouch = 0; - nds.paddle = 0; - nds.ConsoleType = CommonSettings.ConsoleType; - nds._DebugConsole = CommonSettings.DebugConsole; - nds.ensataEmulation = CommonSettings.EnsataEmulation; - nds.stylusJitter = CommonSettings.StylusJitter; - nds.ensataHandshake = ENSATA_HANDSHAKE_none; - nds.ensataIpcSyncCounter = 0; - SetupMMU(nds.Is_DebugConsole(),nds.Is_DSI()); - - _MMU_write16(REG_KEYINPUT, 0x3FF); - _MMU_write16(REG_KEYINPUT, 0x3FF); - _MMU_write08(REG_EXTKEYIN, 0x43); - - LidClosed = FALSE; - countLid = 0; - - resetUserInput(); - - //Setup a copy of the firmware user settings in memory. - //(this is what the DS firmware would do). - { - u8 temp_buffer[NDS_FW_USER_SETTINGS_MEM_BYTE_COUNT]; - int fw_index; - - if ( copy_firmware_user_data( temp_buffer, MMU.fw.data)) { - for ( fw_index = 0; fw_index < NDS_FW_USER_SETTINGS_MEM_BYTE_COUNT; fw_index++) - _MMU_write08(0x027FFC80 + fw_index, temp_buffer[fw_index]); - } - } - - // Copy the whole header to Main RAM 0x27FFE00 on startup. (http://nocash.emubase.de/gbatek.htm#dscartridgeheader) - //once upon a time this copied 0x90 more. this was thought to be wrong, and changed. - if(nds.Is_DSI()) - { - //dsi needs this copied later in memory. there are probably a number of things that get copied to a later location in memory.. thats where the NDS consoles tend to stash stuff. - for (int i = 0; i < ((0x170)/4); i++) - _MMU_write32(0x02FFFE00+i*4, LE_TO_LOCAL_32(((u32*)MMU.CART_ROM)[i])); - } - else - { - for (int i = 0; i < ((0x170)/4); i++) - _MMU_write32(0x027FFE00+i*4, LE_TO_LOCAL_32(((u32*)MMU.CART_ROM)[i])); - } - - - // Write the header checksum to memory (the firmware needs it to see the cart) - _MMU_write16(0x027FF808, T1ReadWord(MMU.CART_ROM, 0x15E)); - //-------------------------------- //setup the homebrew argv //this is useful for nitrofs apps which are emulating themselves via cflash @@ -2640,7 +2275,10 @@ const u32 kCommandline = 0x027E0000; //const u32 kCommandline = 0x027FFF84; - // + //homebrew-related stuff. + //its safe to put things in this position.. apparently nothing important is here. + //however, some games could be checking them as an anti-desmume measure, so we might have to control it with slot-1 settings to suggest booting a homebrew app + //perhaps we could automatically boot homebrew to an R4-like device. _MMU_write32(0x02FFFE70, 0x5f617267); _MMU_write32(0x02FFFE74, kCommandline); //(commandline starts here) _MMU_write32(0x02FFFE78, rompath.size()+1); @@ -2650,53 +2288,116 @@ _MMU_write08(kCommandline+i, rompath[i]); _MMU_write08(kCommandline+rompath.size(), 0); //-------------------------------- + + //Call the card post_fakeboot hook to perform additional initialization + slot1_device->post_fakeboot(ARMCPU_ARM9); + slot1_device->post_fakeboot(ARMCPU_ARM7); - if ((firmware->patched) && (CommonSettings.UseExtBIOS == true) && (CommonSettings.BootFromFirmware == true) && (fw_success == TRUE)) + delete header; + return true; +} + +bool _HACK_DONT_STOPMOVIE = false; +void NDS_Reset() +{ + PrepareLogfiles(); + + if(movieMode != MOVIEMODE_INACTIVE && !_HACK_DONT_STOPMOVIE) + movie_reset_command = true; + + if(movieMode == MOVIEMODE_INACTIVE) { + currFrameCounter = 0; + lagframecounter = 0; + LagFrameFlag = 0; + lastLag = 0; + TotalLagFrames = 0; + } + + resetUserInput(); + + + singleStep = false; + nds_debug_continuing[0] = nds_debug_continuing[1] = false; + nds.sleeping = FALSE; + nds.cardEjected = FALSE; + nds.freezeBus = 0; + nds.power1.lcd = nds.power1.gpuMain = nds.power1.gfx3d_render = nds.power1.gfx3d_geometry = nds.power1.gpuSub = nds.power1.dispswap = 1; + nds.power2.speakers = 1; + nds.power2.wifi = 0; + nds.wifiCycle = 0; + memset(nds.timerCycle, 0, sizeof(u64) * 2 * 4); + nds.old = 0; + nds.scr_touchX = nds.scr_touchY = nds.adc_touchX = nds.adc_touchY = 0; + nds.isTouch = 0; + nds.isFakeBooted = false; + nds.paddle = 0; + nds.ConsoleType = CommonSettings.ConsoleType; + nds._DebugConsole = CommonSettings.DebugConsole; + nds.ensataEmulation = CommonSettings.EnsataEmulation; + nds.stylusJitter = CommonSettings.StylusJitter; + nds.ensataHandshake = ENSATA_HANDSHAKE_none; + nds.ensataIpcSyncCounter = 0; + nds_timer = 0; + nds_arm9_timer = 0; + nds_arm7_timer = 0; + LidClosed = FALSE; + countLid = 0; + + MMU_Reset(); + SetupMMU(nds.Is_DebugConsole(),nds.Is_DSI()); + JumbleMemory(); + + #ifdef HAVE_JIT + arm_jit_reset(CommonSettings.use_jit); + #endif + + + //initialize CP15 specially for this platform + //TODO - how much of this is necessary for firmware boot? + //(only ARM9 has CP15) + reconstruct(&cp15); + MMU.ARM9_RW_MODE = BIT7(cp15.ctrl); + NDS_ARM9.intVector = 0xFFFF0000 * (BIT13(cp15.ctrl)); + NDS_ARM9.LDTBit = !BIT15(cp15.ctrl); //TBit + + PrepareBiosARM7(); + PrepareBiosARM9(); + + if (firmware) { - // HACK! for flashme - _MMU_write32(0x27FFE24, firmware->ARM9bootAddr); - _MMU_write32(0x27FFE34, firmware->ARM7bootAddr); - } - - // make system think it's booted from card -- EXTREMELY IMPORTANT!!! Thanks to cReDiAr - _MMU_write08(0x02FFFC40,0x1); - _MMU_write08(0x02FFFC40,0x1); - - // Save touchscreen calibration info in a structure - // so we can easily access it at any time - TSCal.adc.x1 = _MMU_read16(0x027FFC80 + 0x58); - TSCal.adc.y1 = _MMU_read16(0x027FFC80 + 0x5A); - TSCal.scr.x1 = _MMU_read08(0x027FFC80 + 0x5C); - TSCal.scr.y1 = _MMU_read08(0x027FFC80 + 0x5D); - TSCal.adc.x2 = _MMU_read16(0x027FFC80 + 0x5E); - TSCal.adc.y2 = _MMU_read16(0x027FFC80 + 0x60); - TSCal.scr.x2 = _MMU_read08(0x027FFC80 + 0x62); - TSCal.scr.y2 = _MMU_read08(0x027FFC80 + 0x63); - - TSCal.adc.width = (TSCal.adc.x2 - TSCal.adc.x1); - TSCal.adc.height = (TSCal.adc.y2 - TSCal.adc.y1); - TSCal.scr.width = (TSCal.scr.x2 - TSCal.scr.x1); - TSCal.scr.height = (TSCal.scr.y2 - TSCal.scr.y1); + delete firmware; + firmware = NULL; + } - MainScreen.offset = 0; - SubScreen.offset = 192; + firmware = new CFIRMWARE(); + firmware->load(); - //_MMU_write32[ARMCPU_ARM9](0x02007FFC, 0xE92D4030); + //we will allow a proper firmware boot, if: + //1. we have the ARM7 and ARM9 bioses (its doubtful that our HLE bios implement the necessary functions) + //2. firmware is available + //3. user has requested booting from firmware + bool canBootFromFirmware = (NDS_ARM7.BIOS_loaded && NDS_ARM9.BIOS_loaded && CommonSettings.BootFromFirmware && firmware->loaded()); + bool bootResult = false; + if(canBootFromFirmware) + bootResult = NDS_LegitBoot(); + else + bootResult = NDS_FakeBoot(); - delete header; + // Init calibration info + memcpy(&TSCal, firmware->getTouchCalibrate(), sizeof(TSCalInfo)); Screen_Reset(); gfx3d_reset(); gpu3D->NDS_3D_Reset(); - slot1Reset(); WIFI_Reset(); - memcpy(FW_Mac, (MMU.fw.data + 0x36), 6); - initSchedule(); - + SPU_DeInit(); SPU_ReInit(); + + //this needs to happen last, pretty much, since it establishes the correct scheduling state based on all of the above initialization + initSchedule(); } static std::string MakeInputDisplayString(u16 pad, const std::string* Buttons, int count) { @@ -3028,14 +2729,6 @@ ((input.buttons.X ? 1 : 0) << 3)| ((input.buttons.W ? 1 : 0) << 2)| ((input.buttons.E ? 1 : 0) << 1); - - //these values are arbitrarily chosen to make arkanoid paddle control act similarly to its dpad controls - if(input.buttons.R) - nds.paddle += 5; - else if(input.buttons.L) - nds.paddle -= 5; - - // TODO: low power IRQ } diff -Nru desmume-0.9.9/src/NDSSystem.h desmume-0.9.10/src/NDSSystem.h --- desmume-0.9.9/src/NDSSystem.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/NDSSystem.h 2013-11-28 00:37:18.797021001 +0000 @@ -30,10 +30,11 @@ #include "emufile.h" #include "firmware.h" #include "types.h" +#include "utils/task.h" #include -#if defined(_WINDOWS) && !defined(WXPORT) +#if defined(HOST_WINDOWS) #include "pathsettings.h" #endif @@ -65,9 +66,6 @@ extern buttonstruct Turbo; extern buttonstruct TurboTime; extern buttonstruct AutoHold; - -int NDS_WritePNG(const char *fname); - extern volatile bool execute; extern BOOL click; @@ -83,61 +81,74 @@ #define NDS_FW_LANG_CHI 6 #define NDS_FW_LANG_RES 7 +extern CFIRMWARE *firmware; + +#define DSGBA_LOADER_SIZE 512 +enum +{ + ROM_NDS = 0, + ROM_DSGBA +}; //#define LOG_ARM9 //#define LOG_ARM7 +#include "PACKED.h" struct NDS_header { - char gameTile[12]; - char gameCode[4]; - u16 makerCode; - u8 unitCode; - u8 deviceCode; - u8 cardSize; - u8 cardInfo[8]; - u8 flags; - u8 romversion; - - u32 ARM9src; - u32 ARM9exe; - u32 ARM9cpy; - u32 ARM9binSize; - - u32 ARM7src; - u32 ARM7exe; - u32 ARM7cpy; - u32 ARM7binSize; - - u32 FNameTblOff; - u32 FNameTblSize; - - u32 FATOff; - u32 FATSize; - - u32 ARM9OverlayOff; - u32 ARM9OverlaySize; - u32 ARM7OverlayOff; - u32 ARM7OverlaySize; - - u32 unknown2a; - u32 unknown2b; - - u32 IconOff; - u16 CRC16; - u16 ROMtimeout; - u32 ARM9unk; - u32 ARM7unk; - - u8 unknown3c[8]; - u32 ROMSize; - u32 HeaderSize; - u8 unknown5[56]; - u8 logo[156]; - u16 logoCRC16; - u16 headerCRC16; - u8 reserved[160]; + char gameTile[12]; // 000 - Game Title (uppercase ASCII, padded with 00h) + char gameCode[4]; // 00C - Gamecode (uppercase ASCII, NTR-, 0=homebrew) + u16 makerCode; // 010 - Makercode (uppercase ASCII, 0=homebrew) + u8 unitCode; // 012 - Unitcode (00h=Nintendo DS) + u8 deviceCode; // 013 - Encryption Seed Select (00..07h, usually 00h) + u8 cardSize; // 014 - Devicecapacity (Chipsize = 128KB SHL nn) (eg. 7 = 16MB) + u8 reserved1[8]; // 015 - Must be set to 0x00 + u8 region; // 01D - Specific region: 0x80 - China, 0x40 - Korea, 0x00 - Other + u8 romversion; // 01E - ROM Version (usually 00h) + u8 autostart; // 01F - Autostart (Bit2: Skip "Press Button" after Health and Safety) + // (Also skips bootmenu, even in Manual mode & even Start pressed) + u32 ARM9src; // 020 - ARM9 rom_offset (4000h and up, align 1000h) + u32 ARM9exe; // 024 - ARM9 entry_address (2000000h..23BFE00h) + u32 ARM9cpy; // 028 - ARM9 ram_address (2000000h..23BFE00h) + u32 ARM9binSize; // 02C - ARM9 size (max 3BFE00h) (3839.5KB) + + u32 ARM7src; // 030 - ARM7 rom_offset (8000h and up) + u32 ARM7exe; // 034 - ARM7 entry_address (2000000h..23BFE00h, or 37F8000h..3807E00h) + u32 ARM7cpy; // 038 - ARM7 ram_address (2000000h..23BFE00h, or 37F8000h..3807E00h) + u32 ARM7binSize; // 03C - ARM7 size (max 3BFE00h, or FE00h) (3839.5KB, 63.5KB) + + u32 FNameTblOff; // 040 - File Name Table (FNT) offset + u32 FNameTblSize; // 044 - File Name Table (FNT) size + + u32 FATOff; // 048 - File Allocation Table (FAT) offset + u32 FATSize; // 04C - File Allocation Table (FAT) size + + u32 ARM9OverlayOff; // 050 - File ARM9 overlay_offset + u32 ARM9OverlaySize; // 054 - File ARM9 overlay_size + u32 ARM7OverlayOff; // 058 - File ARM7 overlay_offset + u32 ARM7OverlaySize; // 05C - File ARM7 overlay_size + + u32 normalCmd; // 060 - Port 40001A4h setting for normal commands (usually 00586000h) + u32 Key1Cmd; // 064 - Port 40001A4h setting for KEY1 commands (usually 001808F8h) + + u32 IconOff; // 068 - Icon_title_offset (0=None) (8000h and up) + u16 CRC16; // 06C - Secure Area Checksum, CRC-16 of [ [20h]..7FFFh] - Calculations with this algorithm use 0xffff as the initial value + u16 ROMtimeout; // 06E - Secure Area Loading Timeout (usually 051Eh) + u32 ARM9autoload; // 070 - ARM9 Auto Load List RAM Address + u32 ARM7autoload; // 074 - ARM7 Auto Load List RAM Address + + u8 infoResevedRegion[8]; // 078 - ROM Information Reserved Region (must be set to 0x00) + u32 endROMoffset; // 080 - Total Used ROM size (remaining/unused bytes usually FFh-padded) + u32 HeaderSize; // 084 - ROM Header Size (4000h) + u32 ARM9module; // 088 - ARM9 Module Parameter Address (auto-load parameters) + u32 ARM7module; // 08C - ARM7 Module Parameter Address (auto-load parameters) + u8 reserved2[48]; // 090 - Must be set to 0x00 - "PASS" is contained within here? + u8 logo[156]; // 0C0 - Nintendo Logo (compressed bitmap, same as in GBA Headers) + u16 logoCRC16; // 15C - Nintendo Logo Checksum, CRC-16 of [0C0h-15Bh], fixed CF56h + u16 headerCRC16; // 15E - Header Checksum, CRC-16 of [000h-15Dh] + u8 reserved[160]; // Must be set to 0x00 }; +#include "PACKED_END.h" extern void debug(); void emu_halt(); @@ -159,10 +170,11 @@ enum NDS_CONSOLE_TYPE { - NDS_CONSOLE_TYPE_FAT, - NDS_CONSOLE_TYPE_LITE, - NDS_CONSOLE_TYPE_IQUE, - NDS_CONSOLE_TYPE_DSI + NDS_CONSOLE_TYPE_FAT = 0xFF, + NDS_CONSOLE_TYPE_LITE = 0x20, + NDS_CONSOLE_TYPE_IQUE = 0x43, + NDS_CONSOLE_TYPE_IQUE_LIE = 0x63, + NDS_CONSOLE_TYPE_DSI = 0xFE }; struct NDSSystem @@ -183,6 +195,9 @@ u16 scr_touchX; u16 scr_touchY; + //whether the console is using our faked-bootup process + BOOL isFakeBooted; + BOOL isTouch; u16 pad; @@ -288,7 +303,7 @@ struct RomBanner { - RomBanner(bool defaultInit); + RomBanner(bool defaultInit = true); u16 version; //Version (0001h) u16 crc16; //CRC16 across entries 020h..83Fh u8 reserved[0x1C]; //Reserved (zero-filled) @@ -313,54 +328,52 @@ struct GameInfo { - GameInfo() - : romdata(NULL) - {} - - void loadData(char* buf, int size) - { - resize(size); - memcpy(romdata,buf,size); - romsize = (u32)size; - fillGap(); - } + FILE *fROM; + u8 *romdata; + u32 romsize; + u32 cardSize; + u32 mask; + u32 crc; + u32 chipID; + u32 lastReadPos; + u32 romType; + u32 headerOffset; + char ROMserial[20]; + char ROMname[20]; + bool _isDSiEnhanced; + NDS_header header; + //a copy of the pristine secure area from the rom + u8 secureArea[0x4000]; + RomBanner banner; + const RomBanner& getRomBanner(); - void fillGap() + GameInfo() : fROM(NULL), + romdata(NULL), + crc(0), + chipID(0x00000FC2), + romsize(0), + cardSize(0), + mask(0), + lastReadPos(0xFFFFFFFF), + romType(ROM_NDS), + headerOffset(0), + _isDSiEnhanced(false) { - memset(romdata+romsize,0xFF,allocatedSize-romsize); + memset(&header, 0, sizeof(header)); + memset(&ROMserial[0], 0, sizeof(ROMserial)); + memset(&ROMname[0], 0, sizeof(ROMname)); } - void resize(int size) { - if(romdata != NULL) delete[] romdata; + ~GameInfo() { closeROM(); } - //calculate the necessary mask for the requested size - mask = size-1; - mask |= (mask >>1); - mask |= (mask >>2); - mask |= (mask >>4); - mask |= (mask >>8); - mask |= (mask >>16); - - //now, we actually need to over-allocate, because bytes from anywhere protected by that mask - //could be read from the rom - allocatedSize = mask+4; - - romdata = new char[allocatedSize]; - romsize = size; - } - u32 crc; - NDS_header header; - char ROMserial[20]; - char ROMname[20]; - //char ROMfullName[7][0x100]; + bool loadROM(std::string fname, u32 type = ROM_NDS); + void closeROM(); + u32 readROM(u32 pos); void populate(); - char* romdata; - u32 romsize; - u32 allocatedSize; - u32 mask; - const RomBanner& getRomBanner(); + bool isDSiEnhanced() { return _isDSiEnhanced; }; + bool isHomebrew() { return ((header.ARM9src < 0x4000) && (T1ReadLong(header.logo, 0) != 0x51AEFF24) && (T1ReadLong(header.logo, 4) != 0x699AA221)); } bool hasRomBanner(); - bool isHomebrew; + }; typedef struct TSCalInfo @@ -446,15 +459,13 @@ int NDS_LoadROM(const char *filename, const char* physicalFilename=0, const char* logicalFilename=0); void NDS_FreeROM(void); void NDS_Reset(); -int NDS_ImportSave(const char *filename, u32 force_size = 0); -u32 NDS_ImportSaveSize(const char *filename); -bool NDS_ExportSave(const char *filename); + +bool NDS_LegitBoot(); +bool NDS_FakeBoot(); void nds_savestate(EMUFILE* os); bool nds_loadstate(EMUFILE* is, int size); -int NDS_WriteBMP(const char *filename); - void NDS_Sleep(); void NDS_TriggerCardEjectIRQ(); @@ -479,8 +490,6 @@ SubScreen.offset = tmp; } -int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char *filename); - extern struct TCommonSettings { TCommonSettings() : GFX3D_HighResolutionInterpolateColor(true) @@ -491,15 +500,16 @@ , GFX3D_Zelda_Shadow_Depth_Hack(0) , GFX3D_Renderer_Multisample(false) , jit_max_block_size(100) + , loadToMemory(false) , UseExtBIOS(false) , SWIFromBIOS(false) , PatchSWI3(false) , UseExtFirmware(false) + , UseExtFirmwareSettings(false) , BootFromFirmware(false) , DebugConsole(false) , EnsataEmulation(false) , cheatsDisable(false) - , num_cores(1) , rigorous_timing(false) , advanced_timing(true) , micMode(InternalNoise) @@ -511,11 +521,14 @@ , StylusPressure(50) , ConsoleType(NDS_CONSOLE_TYPE_FAT) , StylusJitter(false) + , backupSave(false) + , SPU_sync_mode(0) + , SPU_sync_method(0) { strcpy(ARM9BIOS, "biosnds9.bin"); strcpy(ARM7BIOS, "biosnds7.bin"); strcpy(Firmware, "firmware.bin"); - NDS_FillDefaultFirmwareConfigData(&InternalFirmConf); + NDS_FillDefaultFirmwareConfigData(&fw_config); /* WIFI mode: adhoc = 0, infrastructure = 1 */ wifi.mode = 1; @@ -534,6 +547,8 @@ #else use_jit = false; #endif + + num_cores = getOnlineCores(); } bool GFX3D_HighResolutionInterpolateColor; bool GFX3D_EdgeMark; @@ -543,6 +558,8 @@ int GFX3D_Zelda_Shadow_Depth_Hack; bool GFX3D_Renderer_Multisample; + bool loadToMemory; + bool UseExtBIOS; char ARM9BIOS[256]; char ARM7BIOS[256]; @@ -550,9 +567,10 @@ bool PatchSWI3; bool UseExtFirmware; + bool UseExtFirmwareSettings; char Firmware[256]; bool BootFromFirmware; - struct NDS_fw_config_data InternalFirmConf; + NDS_fw_config_data fw_config; NDS_CONSOLE_TYPE ConsoleType; bool DebugConsole; @@ -596,6 +614,10 @@ int autodetectBackupMethod; //this is the user's choice of manual backup type, for cases when the autodetection can't be trusted int manualBackupType; + bool backupSave; + + int SPU_sync_mode; + int SPU_sync_method; bool spu_muteChannels[16]; bool spu_captureMuted; @@ -635,7 +657,8 @@ bool ValidateSlot2Access(u32 procnum, u32 demandSRAMSpeed, u32 demand1stROMSpeed, u32 demand2ndROMSpeed, int clockbits); -extern ADVANsCEne advsc; +//MUSTANG +//extern ADVANsCEne advsc; #endif diff -Nru desmume-0.9.9/src/OGLRender.h desmume-0.9.10/src/OGLRender.h --- desmume-0.9.9/src/OGLRender.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/OGLRender.h 2013-11-28 00:37:26.721148959 +0000 @@ -28,7 +28,7 @@ #ifndef OGLRENDER_3_2_H -#if defined(_WIN32) && !defined(WXPORT) +#if defined(_WIN32) #define WIN32_LEAN_AND_MEAN #include #include diff -Nru desmume-0.9.9/src/path.cpp desmume-0.9.10/src/path.cpp --- desmume-0.9.9/src/path.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/path.cpp 2013-11-28 00:37:26.721148959 +0000 @@ -28,6 +28,10 @@ '\x08', '\x09', '\x0A', '\x0B', '\x0C', '\x0D', '\x0E', '\x0F', '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1A', '\x1B', '\x1C', '\x1D', '\x1E', '\x1F' + //but I added this + #ifdef HOST_WINDOWS + ,'\x2F' + #endif }; //but it is sort of windows-specific. Does it work in linux? Maybe we'll have to make it smarter @@ -58,7 +62,7 @@ return ""; } - size_t i = filePath.find_last_of(DIRECTORY_DELIMITER_CHAR); + size_t i = filePath.find_last_of(ALL_DIRECTORY_DELIMITER_STRING); if (i == std::string::npos) { return filePath; } @@ -72,7 +76,7 @@ return ""; } - size_t i = filePath.find_last_of(DIRECTORY_DELIMITER_CHAR); + size_t i = filePath.find_last_of(ALL_DIRECTORY_DELIMITER_STRING); if (i == std::string::npos) { return filePath; } @@ -94,6 +98,27 @@ return fileName.substr(0, i); } +std::string Path::ScrubInvalid(std::string str) +{ + for (std::string::iterator it(str.begin()); it != str.end(); ++it) + { + bool ok = true; + for(int i=0;i -#ifdef _MSC_VER +#ifdef HOST_WINDOWS #define mkdir _mkdir #endif -#if defined(_WINDOWS) +#if defined(HOST_WINDOWS) #include #include #include #include "winutil.h" #include "common.h" -#if !defined(WXPORT) #include "resource.h" -#else -#include -#endif /* !WXPORT */ #elif !defined(DESMUME_COCOA) #include -#endif /* _WINDOWS */ +#endif /* HOST_WINDOWS */ #include "time.h" #include "utils/xstring.h" -#ifdef _WINDOWS +#ifdef HOST_WINDOWS #define FILE_EXT_DELIMITER_CHAR '.' #define DIRECTORY_DELIMITER_CHAR '\\' +#define ALL_DIRECTORY_DELIMITER_STRING "/\\" #else #define FILE_EXT_DELIMITER_CHAR '.' #define DIRECTORY_DELIMITER_CHAR '/' +#define ALL_DIRECTORY_DELIMITER_STRING "/" #endif -#ifdef _WINDOWS +#ifdef HOST_WINDOWS void FCEUD_MakePathDirs(const char *fname); #endif @@ -57,6 +55,7 @@ static bool IsPathRooted (const std::string &path); static std::string GetFileDirectoryPath(std::string filePath); static std::string GetFileNameFromPath(std::string filePath); + static std::string ScrubInvalid(std::string str); static std::string GetFileNameWithoutExt(std::string fileName); static std::string GetFileNameFromPathWithoutExt(std::string filePath); static std::string GetFileExt(std::string fileName); @@ -87,6 +86,7 @@ #define NEEDSSAVINGKEY "needsSaving" #define LASTVISITKEY "lastVisit" #define LUAKEY "Lua" + #define SLOT1DKEY "Slot1D" char screenshotFormat[MAX_FORMAT]; bool savelastromvisit; @@ -102,6 +102,7 @@ SOUNDS, FIRMWARE, MODULE, + SLOT1D, MAXKNOWNPATH = MODULE }; @@ -115,9 +116,10 @@ char pathToFirmware[MAX_PATH]; char pathToModule[MAX_PATH]; char pathToLua[MAX_PATH]; + char pathToSlot1D[MAX_PATH]; - void init(const char *filename) { - + void init(const char *filename) + { path = std::string(filename); //extract the internal part of the logical rom name @@ -132,7 +134,7 @@ void LoadModulePath() { -#if defined(_WINDOWS) +#if defined(HOST_WINDOWS) char *p; ZeroMemory(pathToModule, sizeof(pathToModule)); @@ -141,6 +143,12 @@ p = pathToModule + lstrlen(pathToModule); while (p >= pathToModule && *p != DIRECTORY_DELIMITER_CHAR) p--; if (++p >= pathToModule) *p = 0; + + extern char* _hack_alternateModulePath; + if(_hack_alternateModulePath) + { + strcpy(pathToModule,_hack_alternateModulePath); + } #elif defined(DESMUME_COCOA) std::string pathStr = Path::GetFileDirectoryPath(path); @@ -161,7 +169,7 @@ void GetDefaultPath(char *pathToDefault, const char *key, int maxCount) { -#ifdef _WINDOWS +#ifdef HOST_WINDOWS std::string temp = (std::string)"." + DIRECTORY_DELIMITER_CHAR + pathToDefault; strncpy(pathToDefault, temp.c_str(), maxCount); #else @@ -171,7 +179,7 @@ void ReadKey(char *pathToRead, const char *key) { -#ifdef _WINDOWS +#ifdef HOST_WINDOWS GetPrivateProfileString(SECTION, key, key, pathToRead, MAX_PATH, IniName); if(strcmp(pathToRead, key) == 0) { //since the variables are all intialized in this file they all use MAX_PATH @@ -197,11 +205,17 @@ ReadKey(pathToSounds, SOUNDKEY); ReadKey(pathToFirmware, FIRMWAREKEY); ReadKey(pathToLua, LUAKEY); -#ifdef _WINDOWS + ReadKey(pathToSlot1D, SLOT1DKEY); +#ifdef HOST_WINDOWS GetPrivateProfileString(SECTION, FORMATKEY, "%f_%s_%r", screenshotFormat, MAX_FORMAT, IniName); savelastromvisit = GetPrivateProfileBool(SECTION, LASTVISITKEY, true, IniName); currentimageformat = (ImageFormat)GetPrivateProfileInt(SECTION, DEFAULTFORMATKEY, PNG, IniName); r4Format = (R4Format)GetPrivateProfileInt(SECTION, R4FORMATKEY, R4_CHEAT_DAT, IniName); + if ((r4Format != R4_CHEAT_DAT) && (r4Format != R4_USRCHEAT_DAT)) + { + r4Format = R4_USRCHEAT_DAT; + WritePrivateProfileInt(SECTION, R4FORMATKEY, r4Format, IniName); + } #endif /* needsSaving = GetPrivateProfileInt(SECTION, NEEDSSAVINGKEY, TRUE, IniName); @@ -244,6 +258,9 @@ case MODULE: pathToCopy = pathToModule; break; + case SLOT1D: + pathToCopy = pathToSlot1D; + break; } if(action == GET) @@ -265,7 +282,7 @@ } strncpy(buffer, thePath.c_str(), MAX_PATH); - #ifdef _WINDOWS + #ifdef HOST_WINDOWS FCEUD_MakePathDirs(buffer); #endif } @@ -380,25 +397,15 @@ enum R4Format { -#if defined(_WINDOWS) && !defined(WXPORT) - R4_CHEAT_DAT = IDC_R4TYPE1, - R4_USRCHEAT_DAT = IDC_R4TYPE2 -#else - R4_CHEAT_DAT, - R4_USRCHEAT_DAT -#endif + R4_CHEAT_DAT = 0, + R4_USRCHEAT_DAT = 1 }; R4Format r4Format; enum ImageFormat { -#if defined(_WINDOWS) && !defined(WXPORT) - PNG = IDC_PNG, - BMP = IDC_BMP -#else - PNG, - BMP -#endif + PNG = 0, + BMP = 1 }; ImageFormat currentimageformat; @@ -412,6 +419,7 @@ std::string romPath = filename; RomName = Path::GetFileNameFromPath(romPath); + RomName = Path::ScrubInvalid(RomName); RomDirectory = Path::GetFileDirectoryPath(romPath); } @@ -422,6 +430,8 @@ std::string GetRomNameWithoutExtension() { + if (RomName.c_str() == NULL) + return ""; return Path::GetFileNameWithoutExt(RomName); } diff -Nru desmume-0.9.9/src/rasterize.cpp desmume-0.9.10/src/rasterize.cpp --- desmume-0.9.9/src/rasterize.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/rasterize.cpp 2013-11-28 00:37:18.801021066 +0000 @@ -33,7 +33,7 @@ #include #include -#ifndef _MSC_VER +#ifndef _MSC_VER #include #endif @@ -1099,9 +1099,11 @@ _HACK_viewer_rasterizerUnit.SLI_VALUE = 0; rasterizerCores = CommonSettings.num_cores; + if (rasterizerCores > _MAX_CORES) rasterizerCores = _MAX_CORES; - if(CommonSettings.num_cores <= 1) + + if(CommonSettings.num_cores == 1) { rasterizerCores = 1; rasterizerUnit[0].SLI_MASK = 0; @@ -1368,8 +1370,10 @@ edgeMarkColors[i].g = GFX3D_5TO6(edgeMarkColors[i].g); edgeMarkColors[i].b = GFX3D_5TO6(edgeMarkColors[i].b); - // this seems to be the only thing that selectively disables edge marking - edgeMarkDisabled[i] = (col == 0x7FFF); + //zero 20-jun-2013 - this doesnt make any sense. at least, it should be related to the 0x8000 bit. if this is undocumented behaviour, lets write about which scenario proves it here, or which scenario is requiring this code. + //// this seems to be the only thing that selectively disables edge marking + //edgeMarkDisabled[i] = (col == 0x7FFF); + edgeMarkDisabled[i] = 0; } for(int i=0,y=0;y<192;y++) diff -Nru desmume-0.9.9/src/readwrite.cpp desmume-0.9.10/src/readwrite.cpp --- desmume-0.9.9/src/readwrite.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/readwrite.cpp 2013-11-28 00:37:26.721148959 +0000 @@ -76,7 +76,7 @@ int read32le(u32 *Bufo, EMUFILE *fp) { - u32 buf; + u32 buf = 0; if(fp->_fread(&buf,4)<4) return 0; #ifdef LOCAL_LE diff -Nru desmume-0.9.9/src/registers.h desmume-0.9.10/src/registers.h --- desmume-0.9.9/src/registers.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/registers.h 2013-11-28 00:37:27.369159422 +0000 @@ -146,7 +146,7 @@ #define REG_ENCSEED0L 0x040001B0 #define REG_ENCSEED1L 0x040001B4 #define REG_ENCSEED0H 0x040001B8 -#define REG_ENCSEED1H 0x040001BC +#define REG_ENCSEED1H 0x040001BA #define REG_SPICNT 0x040001C0 #define REG_SPIDATA 0x040001C2 @@ -428,4 +428,13 @@ #define EXMEMCNT_MASK_SLOT2_ROM_2ND_TIME (1<<4) #define EXMEMCNT_MASK_SLOT2_CLOCKRATE (3<<5) +#define SPI_DEVICE_POWERMAN 0 +#define SPI_DEVICE_FIRMWARE 1 +#define SPI_DEVICE_TOUCHSCREEN 2 + +#define SPI_BAUDRATE_4MHZ 0 +#define SPI_BAUDRATE_2MHZ 1 +#define SPI_BAUDRATE_1MHZ 2 +#define SPI_BAUDRATE_512KHZ 3 + #endif diff -Nru desmume-0.9.9/src/saves.cpp desmume-0.9.10/src/saves.cpp --- desmume-0.9.9/src/saves.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/saves.cpp 2013-11-28 00:37:17.905006596 +0000 @@ -18,8 +18,6 @@ along with the this software. If not, see . */ -//MUST SAVE ADDONS! OMG HOW DID WE FORGET THAT - #ifdef HAVE_LIBZ #include #endif @@ -43,10 +41,12 @@ #include "movie.h" #include "mic.h" #include "MMU_timing.h" +#include "slot1.h" +#include "slot2.h" #include "path.h" -#ifdef _WINDOWS +#ifdef HOST_WINDOWS #include "windows/main.h" #endif @@ -56,6 +56,12 @@ //since this isnt supported right now, it is declared in here to make things compile #define SS_INDIRECT 0x80000000 +u32 _DESMUME_version = EMU_DESMUME_VERSION_NUMERIC(); +u32 svn_rev = EMU_DESMUME_SUBVERSION_NUMERIC(); +s64 save_time = 0; +NDS_SLOT1_TYPE slot1Type = NDS_SLOT1_RETAIL_AUTO; +NDS_SLOT2_TYPE slot2Type = NDS_SLOT2_AUTO; + savestates_t savestates[NB_STATES]; #define SAVESTATE_VERSION 12 @@ -64,6 +70,17 @@ //a savestate chunk loader can set this if it wants to permit a silent failure (for compatibility) static bool SAV_silent_fail_flag; +SFORMAT SF_NDS_INFO[]={ + { "GINF", 1, sizeof(gameInfo.header), &gameInfo.header}, + { "GRSZ", 1, 4, &gameInfo.romsize}, + { "DVMJ", 1, 1, (void*)&DESMUME_VERSION_MAJOR}, + { "DVMI", 1, 1, (void*)&DESMUME_VERSION_MINOR}, + { "DSBD", 1, 1, (void*)&DESMUME_VERSION_BUILD}, + { "GREV", 1, 4, &svn_rev}, + { "GTIM", 1, 8, &save_time}, + { 0 } +}; + SFORMAT SF_ARM7[]={ { "7INS", 4, 1, &NDS_ARM7.instruction }, { "7INA", 4, 1, &NDS_ARM7.instruct_adr }, @@ -170,6 +187,7 @@ { "_STX", 2, 1, &nds.scr_touchX}, { "_STY", 2, 1, &nds.scr_touchY}, { "_TPB", 4, 1, &nds.isTouch}, + { "_IFB", 4, 1, &nds.isFakeBooted}, { "_DBG", 4, 1, &nds._DebugConsole}, { "_ENS", 4, 1, &nds.ensataEmulation}, { "_TYP", 4, 1, &nds.ConsoleType}, @@ -214,7 +232,7 @@ { "M_SX", 1, 2, &MMU.SPI_CNT}, { "M_SC", 1, 2, &MMU.SPI_CMD}, { "MASX", 1, 2, &MMU.AUX_SPI_CNT}, - { "MASC", 1, 2, &MMU.AUX_SPI_CMD}, + //{ "MASC", 1, 2, &MMU.AUX_SPI_CMD}, //zero 20-aug-2013 - this seems pointless { "MWRA", 1, 2, &MMU.WRAMCNT}, @@ -236,10 +254,11 @@ { "BUWR", 4, 1, &MMU.fw.writeable_buffer}, //end memory chips - { "MC0A", 4, 1, &MMU.dscard[0].address}, - { "MC0T", 4, 1, &MMU.dscard[0].transfer_count}, - { "MC1A", 4, 1, &MMU.dscard[1].address}, - { "MC1T", 4, 1, &MMU.dscard[1].transfer_count}, + //TODO:slot-1 plugins + { "GC0T", 4, 1, &MMU.dscard[0].transfer_count}, + { "GC0M", 4, 1, &MMU.dscard[0].mode}, + { "GC1T", 4, 1, &MMU.dscard[1].transfer_count}, + { "GC1M", 4, 1, &MMU.dscard[1].mode}, //{ "MCHT", 4, 1, &MMU.CheckTimers}, //{ "MCHD", 4, 1, &MMU.CheckDMAs}, @@ -272,39 +291,6 @@ { 0 } }; -static void mmu_savestate(EMUFILE* os) -{ - u32 version = 8; - write32le(version,os); - - //version 2: - MMU_new.backupDevice.save_state(os); - - //version 3: - MMU_new.gxstat.savestate(os); - for(int i=0;i<2;i++) - for(int j=0;j<4;j++) - MMU_new.dma[i][j].savestate(os); - - MMU_timing.arm9codeFetch.savestate(os, version); - MMU_timing.arm9dataFetch.savestate(os, version); - MMU_timing.arm7codeFetch.savestate(os, version); - MMU_timing.arm7dataFetch.savestate(os, version); - MMU_timing.arm9codeCache.savestate(os, version); - MMU_timing.arm9dataCache.savestate(os, version); - - //version 4: - MMU_new.sqrt.savestate(os); - MMU_new.div.savestate(os); - - //version 6: - MMU_new.dsi_tsc.save_state(os); - - //version 8: - os->write32le(MMU.fw.size); - os->fwrite(MMU.fw.data,MMU.fw.size); -} - // TODO: integrate the new wifi state variables once everything is settled SFORMAT SF_WIFI[]={ { "W000", 4, 1, &wifiMac.powerOn}, @@ -382,6 +368,119 @@ { 0 } }; +extern SFORMAT SF_RTC[]; + +static u8 reserveVal = 0; +SFORMAT reserveChunks[] = { + { "RESV", 1, 1, &reserveVal}, + { 0 } +}; + +static bool s_slot1_loadstate(EMUFILE* is, int size) +{ + u32 version = is->read32le(); + + //version 0: + if(version >= 0) + { + u8 slotID = is->read32le(); + slot1Type = NDS_SLOT1_RETAIL_AUTO; + if (version >= 1) + slot1_getTypeByID(slotID, slot1Type); + + slot1_Change(slot1Type); + + EMUFILE_MEMORY temp; + is->readMemoryStream(&temp); + temp.fseek(0,SEEK_SET); + slot1_Loadstate(&temp); + } + + return true; +} + +static void s_slot1_savestate(EMUFILE* os) +{ + u32 version = 1; + os->write32le(version); + + u8 slotID = (u8)slot1_List[slot1_GetSelectedType()]->info()->id(); + os->write32le(slotID); + + EMUFILE_MEMORY temp; + slot1_Savestate(&temp); + os->writeMemoryStream(&temp); +} + +static bool s_slot2_loadstate(EMUFILE* is, int size) +{ + u32 version = is->read32le(); + + //version 0: + if(version >= 0) + { + slot2Type = NDS_SLOT2_AUTO; + u8 slotID = is->read32le(); + if (version == 0) + slot2_getTypeByID(slotID, slot2Type); + slot2_Change(slot2Type); + + EMUFILE_MEMORY temp; + is->readMemoryStream(&temp); + temp.fseek(0,SEEK_SET); + slot2_Loadstate(&temp); + } + + return true; +} + +static void s_slot2_savestate(EMUFILE* os) +{ + u32 version = 0; + os->write32le(version); + + //version 0: + u8 slotID = (u8)slot2_List[slot2_GetSelectedType()]->info()->id(); + os->write32le(slotID); + + EMUFILE_MEMORY temp; + slot2_Savestate(&temp); + os->writeMemoryStream(&temp); +} + +static void mmu_savestate(EMUFILE* os) +{ + u32 version = 8; + write32le(version,os); + + //version 2: + MMU_new.backupDevice.save_state(os); + + //version 3: + MMU_new.gxstat.savestate(os); + for(int i=0;i<2;i++) + for(int j=0;j<4;j++) + MMU_new.dma[i][j].savestate(os); + + MMU_timing.arm9codeFetch.savestate(os, version); + MMU_timing.arm9dataFetch.savestate(os, version); + MMU_timing.arm7codeFetch.savestate(os, version); + MMU_timing.arm7dataFetch.savestate(os, version); + MMU_timing.arm9codeCache.savestate(os, version); + MMU_timing.arm9dataCache.savestate(os, version); + + //version 4: + MMU_new.sqrt.savestate(os); + MMU_new.div.savestate(os); + + //version 6: + MMU_new.dsi_tsc.save_state(os); + + //version 8: + os->write32le(MMU.fw.size); + os->fwrite(MMU.fw.data,MMU.fw.size); +} + static bool mmu_loadstate(EMUFILE* is, int size) { //read version @@ -918,9 +1017,13 @@ } else return false; } -extern SFORMAT SF_RTC[]; - static void writechunks(EMUFILE* os) { + + DateTime tm = DateTime::get_Now(); + svn_rev = EMU_DESMUME_SUBVERSION_NUMERIC(); + + save_time = tm.get_Ticks(); + savestate_WriteChunk(os,1,SF_ARM9); savestate_WriteChunk(os,2,SF_ARM7); savestate_WriteChunk(os,3,cp15_savestate); @@ -938,18 +1041,47 @@ savestate_WriteChunk(os,101,mov_savestate); savestate_WriteChunk(os,110,SF_WIFI); savestate_WriteChunk(os,120,SF_RTC); + savestate_WriteChunk(os,130,SF_NDS_INFO); + savestate_WriteChunk(os,140,s_slot1_savestate); + savestate_WriteChunk(os,150,s_slot2_savestate); + // reserved for future versions + savestate_WriteChunk(os,160,reserveChunks); + savestate_WriteChunk(os,170,reserveChunks); + savestate_WriteChunk(os,180,reserveChunks); + // ============================ savestate_WriteChunk(os,0xFFFFFFFF,(SFORMAT*)0); } static bool ReadStateChunks(EMUFILE* is, s32 totalsize) { bool ret = true; + bool haveInfo = false; + + s64 save_time = 0; + u32 romsize = 0; + u8 version_major = 0; + u8 version_minor = 0; + u8 version_build = 0; + + NDS_header header; + SFORMAT SF_INFO[]={ + { "GINF", 1, sizeof(header), &header}, + { "GRSZ", 1, 4, &romsize}, + { "DVMJ", 1, 1, &version_major}, + { "DVMI", 1, 1, &version_minor}, + { "DSBD", 1, 1, &version_build}, + { "GREV", 1, 4, &svn_rev}, + { "GTIM", 1, 8, &save_time}, + { 0 } + }; + memset(&header, 0, sizeof(header)); + while(totalsize > 0) { - uint32 size; - u32 t; + u32 size = 0; + u32 t = 0; if(!read32le(&t,is)) { ret=false; break; } - if(t == 0xFFFFFFFF) goto done; + if(t == 0xFFFFFFFF) break; if(!read32le(&size,is)) { ret=false; break; } switch(t) { @@ -970,14 +1102,56 @@ case 101: if(!mov_loadstate(is, size)) ret=false; break; case 110: if(!ReadStateChunk(is,SF_WIFI,size)) ret=false; break; case 120: if(!ReadStateChunk(is,SF_RTC,size)) ret=false; break; + case 130: if(!ReadStateChunk(is,SF_INFO,size)) ret=false; else haveInfo=true; break; + case 140: if(!s_slot1_loadstate(is, size)) ret=false; break; + case 150: if(!s_slot2_loadstate(is, size)) ret=false; break; + // reserved for future versions + case 160: + case 170: + case 180: + if(!ReadStateChunk(is,reserveChunks,size)) ret=false; + break; + // ============================ + default: - ret=false; - break; + return false; } if(!ret) return false; } -done: + + if (haveInfo) + { + char buf[14] = {0}; + memset(&buf[0], 0, sizeof(buf)); + memcpy(buf, header.gameTile, sizeof(header.gameTile)); + printf("Savestate info:\n"); + if (version_major | version_minor | version_build) + { + char buf[32] = {0}; + if (svn_rev != 0xFFFFFFFF) + sprintf(buf, " svn %u", svn_rev); + printf("\tDeSmuME version: %u.%u.%u%s\n", version_major, version_minor, version_build, buf); + } + + if (save_time) + { + static const char *wday[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; + DateTime tm = save_time; + printf("\tSave created: %04d-%03s-%02d %s %02d:%02d:%02d\n", tm.get_Year(), DateTime::GetNameOfMonth(tm.get_Month()), tm.get_Day(), wday[tm.get_DayOfWeek()%7], tm.get_Hour(), tm.get_Minute(), tm.get_Second()); + } + printf("\tGame title: %s\n", buf); + printf("\tGame code: %c%c%c%c\n", header.gameCode[3], header.gameCode[2], header.gameCode[1], header.gameCode[0]); + printf("\tMaker code: %c%c (0x%04X) - %s\n", header.makerCode & 0xFF, header.makerCode >> 8, header.makerCode, getDeveloperNameByID(header.makerCode).c_str()); + printf("\tDevice capacity: %dMb (real size %dMb)\n", ((128 * 1024) << header.cardSize) / (1024 * 1024), romsize / (1024 * 1024)); + printf("\tCRC16: %04Xh\n", header.CRC16); + printf("\tHeader CRC16: %04Xh\n", header.headerCRC16); + printf("\tSlot1: %s\n", slot1_List[slot1Type]->info()->name()); + printf("\tSlot2: %s\n", slot2_List[slot2Type]->info()->name()); + + if (gameInfo.romsize != romsize || memcmp(&gameInfo.header, &header, sizeof(header)) != 0) + msgbox->warn("The savestate you are loading does not match the ROM you are running.\nYou should find the correct ROM"); + } return ret; } @@ -1020,9 +1194,9 @@ if(is->fail() || memcmp(header,magic,16)) return false; - u32 ssversion,dversion,len,comprlen; + u32 ssversion,len,comprlen; if(!read32le(&ssversion,is)) return false; - if(!read32le(&dversion,is)) return false; + if(!read32le(&_DESMUME_version,is)) return false; if(!read32le(&len,is)) return false; if(!read32le(&comprlen,is)) return false; @@ -1075,11 +1249,7 @@ if(!x && !SAV_silent_fail_flag) { - printf("Error loading savestate. It failed halfway through;\nSince there is no savestate backup system, your current game session is wrecked"); -#ifdef _WINDOWS - //HACK! we really need a better way to handle this kind of feedback - MessageBox(0,"Error loading savestate. It failed halfway through;\nSince there is no savestate backup system, your current game session is wrecked",0,0); -#endif + msgbox->error("Error loading savestate. It failed halfway through;\nSince there is no savestate backup system, your current game session is wrecked"); return false; } diff -Nru desmume-0.9.9/src/slot1.cpp desmume-0.9.10/src/slot1.cpp --- desmume-0.9.9/src/slot1.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/slot1.cpp 2013-11-28 00:37:18.797021001 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2010-2012 DeSmuME team + Copyright (C) 2010-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,6 +15,17 @@ along with the this software. If not, see . */ +/* +Notes for future development: +Despite gbatek's specifications contrariwise, GCDATAIN is writeable. R4 uses this for writes to the card. +Despite gbatek's specifications contrariwise, GCROMCTRL[30] can take a value of 1 to indicate that the GC bus transaction should be writes. +It is unclear what kicks GC bus transactions. It's possibly bit 31 of GCROMCTRL, but normmatt thinks he might have had to hack around that to make something work, and that it might just be any write to GCROMCTRL. +Since GCROMCTRL[26:24] can't represent 'data block size' of 1 or 2, it is assumed that transactions always happen in 4 byte pieces. +...so, any 8/16bit accesses to GCDATAIN would transfer a whole 32bit unit and then just return the requested portion +*/ + +//TODO - create a Slot1_TurboRom which we can select when booting from fakebios/nonfirmware and which would provide a useful service to people porting to tighter platforms by bypassing largely useless cruft + #include #include "types.h" @@ -23,25 +34,15 @@ #include "NDSSystem.h" #include "emufile.h" #include "utils/vfat.h" +#include "path.h" -extern SLOT1INTERFACE slot1None; -extern SLOT1INTERFACE slot1Retail; -extern SLOT1INTERFACE slot1R4; -extern SLOT1INTERFACE slot1Retail_NAND; +bool slot1_R4_path_type = false; +//------- +//fat-related common elements static EMUFILE* fatImage = NULL; static std::string fatDir; -SLOT1INTERFACE slot1List[NDS_SLOT1_COUNT] = { - slot1None, - slot1Retail, - slot1R4, - slot1Retail_NAND -}; - -SLOT1INTERFACE slot1_device = slot1Retail; //default for frontends that dont even configure this -NDS_SLOT1_TYPE slot1_device_type = NDS_SLOT1_RETAIL; - static void scanDir() { if(fatDir == "") return; @@ -53,22 +54,81 @@ } VFAT vfat; - if(vfat.build(fatDir.c_str(),16)) + if(vfat.build(slot1_R4_path_type?path.RomDirectory.c_str():fatDir.c_str(), 16)) { fatImage = vfat.detach(); } } -BOOL slot1Init() + +void slot1_SetFatDir(const std::string& dir, bool sameAsRom) +{ + //printf("FAT path %s\n", dir.c_str()); + slot1_R4_path_type = sameAsRom; + if (!slot1_R4_path_type) + fatDir = dir; +} + +std::string slot1_GetFatDir() { - if (slot1_device_type == NDS_SLOT1_R4) - scanDir(); - return slot1_device.init(); + return fatDir; +} + +EMUFILE* slot1_GetFatImage() +{ + return fatImage; +} + +//------------ + +ISlot1Interface* slot1_List[NDS_SLOT1_COUNT] = {0}; + +ISlot1Interface* slot1_device = NULL; +NDS_SLOT1_TYPE slot1_device_type = NDS_SLOT1_RETAIL_AUTO; //default for frontends that dont even configure this +NDS_SLOT1_TYPE slot1_selected_type = NDS_SLOT1_NONE; + + +void slot1_Init() +{ + //due to sloppy initialization code in various untestable desmume ports, we might try this more than once + static bool initialized = false; + if(initialized) return; + initialized = true; + + //construct all devices + extern TISlot1InterfaceConstructor construct_Slot1_None; + extern TISlot1InterfaceConstructor construct_Slot1_Retail_Auto; + extern TISlot1InterfaceConstructor construct_Slot1_R4; + extern TISlot1InterfaceConstructor construct_Slot1_Retail_NAND; + extern TISlot1InterfaceConstructor construct_Slot1_Retail_MCROM; + extern TISlot1InterfaceConstructor construct_Slot1_Retail_DEBUG; + slot1_List[NDS_SLOT1_NONE] = construct_Slot1_None(); + slot1_List[NDS_SLOT1_RETAIL_AUTO] = construct_Slot1_Retail_Auto(); + slot1_List[NDS_SLOT1_R4] = construct_Slot1_R4(); + slot1_List[NDS_SLOT1_RETAIL_NAND] = construct_Slot1_Retail_NAND(); + slot1_List[NDS_SLOT1_RETAIL_MCROM] = construct_Slot1_Retail_MCROM(); + slot1_List[NDS_SLOT1_RETAIL_DEBUG] = construct_Slot1_Retail_DEBUG(); +} + +void slot1_Shutdown() +{ + for(int i=0;ishutdown(); + delete slot1_List[i]; + } } -void slot1Close() +bool slot1_Connect() { - slot1_device.close(); + slot1_device->connect(); + return true; +} + +void slot1_Disconnect() +{ + slot1_device->disconnect(); //be careful to do this second, maybe the device will write something more if (fatImage) @@ -78,43 +138,185 @@ } } -void slot1Reset() +void slot1_Reset() { - slot1_device.reset(); + //disconnect existing device + if(slot1_device != NULL) slot1_device->disconnect(); + + //connect new device + slot1_device = slot1_List[slot1_device_type]; + if (slot1_device_type == NDS_SLOT1_R4) + scanDir(); + slot1_device->connect(); } -BOOL slot1Change(NDS_SLOT1_TYPE changeToType) +bool slot1_Change(NDS_SLOT1_TYPE changeToType) { - if(changeToType == slot1_device_type) return FALSE; //nothing to do + if((changeToType == slot1_device_type) || (changeToType == slot1_GetSelectedType())) + return FALSE; //nothing to do if (changeToType > NDS_SLOT1_COUNT || changeToType < 0) return FALSE; - slot1_device.close(); + if(slot1_device != NULL) + slot1_device->disconnect(); slot1_device_type = changeToType; - slot1_device = slot1List[slot1_device_type]; - if (changeToType == NDS_SLOT1_R4) - scanDir(); - printf("Slot 1: %s\n", slot1_device.name); + slot1_device = slot1_List[slot1_device_type]; + printf("Slot 1: %s\n", slot1_device->info()->name()); printf("sending eject signal to SLOT-1\n"); NDS_TriggerCardEjectIRQ(); - return slot1_device.init(); + slot1_device->connect(); + return true; } -void slot1SetFatDir(const std::string& dir) +bool slot1_getTypeByID(u8 ID, NDS_SLOT1_TYPE &type) { - //printf("FAT path %s\n", dir.c_str()); - fatDir = dir; + for (u8 i = 0; i < NDS_SLOT1_COUNT; i++) + { + if (slot1_List[i]->info()->id() == ID) + { + type = (NDS_SLOT1_TYPE)i; + return true; + } + } + return false; } -std::string slot1GetFatDir() +bool slot1_ChangeByID(u8 ID) { - return fatDir; + NDS_SLOT1_TYPE type = NDS_SLOT1_RETAIL_AUTO; + slot1_getTypeByID(ID, type); + return slot1_Change(type); } -EMUFILE* slot1GetFatImage() +NDS_SLOT1_TYPE slot1_GetCurrentType() { - return fatImage; + return slot1_device_type; } -NDS_SLOT1_TYPE slot1GetCurrentType() +NDS_SLOT1_TYPE slot1_GetSelectedType() { + if (slot1_device_type == NDS_SLOT1_RETAIL_AUTO) + return slot1_selected_type; return slot1_device_type; -} \ No newline at end of file +} + +void slot1_Savestate(EMUFILE* os) +{ + slot1_device->savestate(os); +} +void slot1_Loadstate(EMUFILE* is) +{ + slot1_device->loadstate(is); +} + + //// --- Ninja SD commands notes ------------------------------------- + // ///writetoGCControl: + + // // NJSD init/reset + // case 0x20: + // { + // card.address = 0; + // card.transfer_count = 0; + // } + // break; + + // // NJSD_sendCLK() + // case 0xE0: + // { + // card.address = 0; + // card.transfer_count = 0; + // NDS_makeInt(PROCNUM, 20); + // } + // break; + + // // NJSD_sendCMDN() / NJSD_sendCMDR() + // case 0xF0: + // case 0xF1: + // switch (card.command[2]) + // { + // // GO_IDLE_STATE + // case 0x40: + // card.address = 0; + // card.transfer_count = 0; + // NDS_makeInt(PROCNUM, 20); + // break; + + // case 0x42: // ALL_SEND_CID + // case 0x43: // SEND_RELATIVE_ADDR + // case 0x47: // SELECT_CARD + // case 0x49: // SEND_CSD + // case 0x4D: + // case 0x77: // APP_CMD + // case 0x69: // SD_APP_OP_COND + // card.address = 0; + // card.transfer_count = 6; + // NDS_makeInt(PROCNUM, 20); + // break; + + // // SET_BLOCKLEN + // case 0x50: + // card.address = 0; + // card.transfer_count = 6; + // card.blocklen = card.command[6] | (card.command[5] << 8) | (card.command[4] << 16) | (card.command[3] << 24); + // NDS_makeInt(PROCNUM, 20); + // break; + + // // READ_SINGLE_BLOCK + // case 0x51: + // card.address = card.command[6] | (card.command[5] << 8) | (card.command[4] << 16) | (card.command[3] << 24); + // card.transfer_count = (card.blocklen + 3) >> 2; + // NDS_makeInt(PROCNUM, 20); + // break; + // } + // break; + + // // --- Ninja SD commands end --------------------------------- + + + + // //GCDATAIN: + // // --- Ninja SD commands ------------------------------------- + + // // NJSD_sendCMDN() / NJSD_sendCMDR() + // case 0xF0: + // case 0xF1: + // switch (card.command[2]) + // { + // // ALL_SEND_CID + // case 0x42: + // if (card.transfer_count == 2) val = 0x44534A4E; + // else val = 0x00000000; + + // // SEND_RELATIVE_ADDR + // case 0x43: + // case 0x47: + // case 0x49: + // case 0x50: + // val = 0x00000000; + // break; + + // case 0x4D: + // if (card.transfer_count == 2) val = 0x09000000; + // else val = 0x00000000; + // break; + + // // APP_CMD + // case 0x77: + // if (card.transfer_count == 2) val = 0x00000037; + // else val = 0x00000000; + // break; + + // // SD_APP_OP_COND + // case 0x69: + // if (card.transfer_count == 2) val = 0x00008000; + // else val = 0x00000000; + // break; + + // // READ_SINGLE_BLOCK + // case 0x51: + // val = 0x00000000; + // break; + // } + // break; + + // // --- Ninja SD commands end --------------------------------- + + diff -Nru desmume-0.9.9/src/slot1.h desmume-0.9.10/src/slot1.h --- desmume-0.9.9/src/slot1.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/slot1.h 2013-11-28 00:37:26.713148829 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2010-2011 DeSmuME team + Copyright (C) 2010-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,58 +22,120 @@ #include "common.h" #include "types.h" #include "debug.h" +#include "MMU.h" class EMUFILE; -struct SLOT1INTERFACE +class Slot1Info { - // The name of the plugin, this name will appear in the plugins list - const char * name; +public: + virtual const char* name() const = 0; + virtual const char* descr()const = 0; + virtual const u8 id() const = 0; +}; - //called once when the plugin starts up - BOOL (*init)(void); - - //called when the emulator resets - void (*reset)(void); - - //called when the plugin shuts down - void (*close)(void); +class Slot1InfoSimple : public Slot1Info +{ +public: + Slot1InfoSimple(const char* _name, const char* _descr, const u8 _id) + : mName(_name) + , mDescr(_descr) + , mID(_id) + { + } + virtual const char* name() const { return mName; } + virtual const char* descr() const { return mDescr; } + virtual const u8 id() const { return mID; } +private: + const char* mName, *mDescr; + const u8 mID; +}; + +class ISlot1Interface +{ +public: + //called to get info about device (description) + virtual Slot1Info const* info() = 0; + + //called once when the emulator starts up, or when the device springs into existence + virtual bool init() { return true; } - //called when the user configurating plugin - void (*config)(void); + //called when the emulator connects the device + virtual void connect() { } - //called when the emulator write to addon - void (*write08)(u8 PROCNUM, u32 adr, u8 val); - void (*write16)(u8 PROCNUM, u32 adr, u16 val); - void (*write32)(u8 PROCNUM, u32 adr, u32 val); - - //called when the emulator read from addon - u8 (*read08)(u8 PROCNUM, u32 adr); - u16 (*read16)(u8 PROCNUM, u32 adr); - u32 (*read32)(u8 PROCNUM, u32 adr); + //called when the emulator disconnects the device + virtual void disconnect() { } - //called when the user get info about addon pak (description) - void (*info)(char *info); + //called when the emulator shuts down, or when the device disappears from existence + virtual void shutdown() { } + + //called then the cpu begins a new command/block on the GC bus + virtual void write_command(u8 PROCNUM, GC_Command command) { } + + //called when the cpu writes to the GC bus + virtual void write_GCDATAIN(u8 PROCNUM, u32 val) { } + + //called when the cpu reads from the GC bus + virtual u32 read_GCDATAIN(u8 PROCNUM) { return 0xFFFFFFFF; } + + //transfers a byte to the slot-1 device via auxspi, and returns the incoming byte + //cpu is provided for diagnostic purposes only.. the slot-1 device wouldn't know which CPU it is. + virtual u8 auxspi_transaction(int PROCNUM, u8 value) { return 0x00; } + + //called when the auxspi burst is ended (SPI chipselect in is going low) + virtual void auxspi_reset(int PROCNUM) {} + + //called when NDS_FakeBoot terminates, emulate in here the BIOS behaviour + virtual void post_fakeboot(int PROCNUM) {} + + virtual void savestate(EMUFILE* os) {} + + virtual void loadstate(EMUFILE* is) {} }; +typedef ISlot1Interface* TISlot1InterfaceConstructor(); + enum NDS_SLOT1_TYPE { - NDS_SLOT1_NONE, - NDS_SLOT1_RETAIL, - NDS_SLOT1_R4, - NDS_SLOT1_RETAIL_NAND, // used in Made in Ore/WarioWare D.I.Y. - NDS_SLOT1_COUNT // use for counter addons - MUST TO BE LAST!!! + NDS_SLOT1_NONE, // 0xFF - None + NDS_SLOT1_RETAIL_AUTO, // 0xFE - autodetect which kind of retail card to use + NDS_SLOT1_R4, // 0x03 - R4 flash card + NDS_SLOT1_RETAIL_NAND, // 0x02 - Made in Ore/WarioWare D.I.Y. + NDS_SLOT1_RETAIL_MCROM, // 0x01 - a standard MC (eeprom, flash, fram) -bearing retail card. Also supports motion, for now, because that's the way we originally coded it + NDS_SLOT1_RETAIL_DEBUG, // 0x04 - for romhacking and fan-made translations + NDS_SLOT1_COUNT //use to count addons - MUST BE LAST!!! }; -extern SLOT1INTERFACE slot1_device; // current slot1 device -extern SLOT1INTERFACE slot1List[NDS_SLOT1_COUNT]; +extern ISlot1Interface* slot1_device; //the current slot1 device instance +extern ISlot1Interface* slot1_List[NDS_SLOT1_COUNT]; +extern NDS_SLOT1_TYPE slot1_selected_type; + +void slot1_Init(); +bool slot1_Connect(); +void slot1_Disconnect(); +void slot1_Shutdown(); +void slot1_Savestate(EMUFILE* os); +void slot1_Loadstate(EMUFILE* is); + +//just disconnects and reconnects the device. ideally, the disconnection and connection would be called with sensible timing +void slot1_Reset(); + +bool slot1_getTypeByID(u8 ID, NDS_SLOT1_TYPE &type); + +//change the current device +bool slot1_Change(NDS_SLOT1_TYPE type); + +//change the current device by ID +bool slot1_ChangeByID(u8 ID); + +//check on the current device +NDS_SLOT1_TYPE slot1_GetCurrentType(); +NDS_SLOT1_TYPE slot1_GetSelectedType(); + +extern bool slot1_R4_path_type; +void slot1_SetFatDir(const std::string& dir, bool sameAsRom = false); +std::string slot1_GetFatDir(); +EMUFILE* slot1_GetFatImage(); + -BOOL slot1Init(); -void slot1Close(); -void slot1Reset(); -BOOL slot1Change(NDS_SLOT1_TYPE type); // change current adddon -void slot1SetFatDir(const std::string& dir); -std::string slot1GetFatDir(); -NDS_SLOT1_TYPE slot1GetCurrentType(); -EMUFILE* slot1GetFatImage(); #endif //__SLOT1_H__ diff -Nru desmume-0.9.9/src/slot2.cpp desmume-0.9.10/src/slot2.cpp --- desmume-0.9.9/src/slot2.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/slot2.cpp 2013-11-28 00:37:18.801021066 +0000 @@ -0,0 +1,223 @@ +/* + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ +#include "slot2.h" +#include "types.h" +#include "mem.h" +#include "MMU.h" + +//this is the currently-configured cflash mode +ADDON_CFLASH_MODE CFlash_Mode = ADDON_CFLASH_MODE_RomPath; + +//this is the currently-configured path (directory or filename) for cflash. +//it should be viewed as a parameter for the above. +std::string CFlash_Path; + +char GBAgameName[MAX_PATH] = {0}; + + +ISlot2Interface* slot2_List[NDS_SLOT2_COUNT] = {0}; + +ISlot2Interface* slot2_device = NULL; +NDS_SLOT2_TYPE slot2_device_type = NDS_SLOT2_AUTO; +NDS_SLOT2_TYPE slot2_selected_type = NDS_SLOT2_NONE; + + +void slot2_Init() +{ + //due to sloppy initialization code in various untestable desmume ports, we might try this more than once + static bool initialized = false; + if(initialized) return; + initialized = true; + + //construct all devices + extern TISlot2InterfaceConstructor construct_Slot2_None; + extern TISlot2InterfaceConstructor construct_Slot2_Auto; + extern TISlot2InterfaceConstructor construct_Slot2_CFlash; + extern TISlot2InterfaceConstructor construct_Slot2_RumblePak; + extern TISlot2InterfaceConstructor construct_Slot2_GbaCart; + extern TISlot2InterfaceConstructor construct_Slot2_GuitarGrip; + extern TISlot2InterfaceConstructor construct_Slot2_ExpansionPak; + extern TISlot2InterfaceConstructor construct_Slot2_EasyPiano; + extern TISlot2InterfaceConstructor construct_Slot2_Paddle; + extern TISlot2InterfaceConstructor construct_Slot2_PassME; + + slot2_List[NDS_SLOT2_NONE] = construct_Slot2_None(); + slot2_List[NDS_SLOT2_AUTO] = construct_Slot2_Auto(); + slot2_List[NDS_SLOT2_CFLASH] = construct_Slot2_CFlash(); + slot2_List[NDS_SLOT2_RUMBLEPAK] = construct_Slot2_RumblePak(); + slot2_List[NDS_SLOT2_GBACART] = construct_Slot2_GbaCart(); + slot2_List[NDS_SLOT2_GUITARGRIP] = construct_Slot2_GuitarGrip(); + slot2_List[NDS_SLOT2_EXPMEMORY] = construct_Slot2_ExpansionPak(); + slot2_List[NDS_SLOT2_EASYPIANO] = construct_Slot2_EasyPiano(); + slot2_List[NDS_SLOT2_PADDLE] = construct_Slot2_Paddle(); + slot2_List[NDS_SLOT2_PASSME] = construct_Slot2_PassME(); + +} + +void slot2_Shutdown() +{ + for(int i=0; ishutdown(); + delete slot2_List[i]; + slot2_List[i] = NULL; + } +} + +bool slot2_Connect() +{ + slot2_device->connect(); + return true; +} + +void slot2_Disconnect() +{ + slot2_device->disconnect(); +} + +void slot2_Reset() +{ + //disconnect existing device + if(slot2_device != NULL) slot2_device->disconnect(); + + //connect new device + slot2_device = slot2_List[slot2_device_type]; + slot2_device->connect(); +} + +bool slot2_Change(NDS_SLOT2_TYPE changeToType) +{ + if((changeToType == slot2_device_type) || (changeToType == slot2_GetSelectedType())) + return FALSE; //nothing to do + if (changeToType > NDS_SLOT2_COUNT || changeToType < 0) + return FALSE; + if(slot2_device != NULL) + slot2_device->disconnect(); + + slot2_device_type = changeToType; + slot2_device = slot2_List[slot2_device_type]; + printf("Slot 2: %s\n", slot2_device->info()->name()); + slot2_device->connect(); + return true; +} + +bool slot2_getTypeByID(u8 ID, NDS_SLOT2_TYPE &type) +{ + for (u8 i = 0; i < NDS_SLOT2_COUNT; i++) + { + if (slot2_List[i]->info()->id() == ID) + { + type = (NDS_SLOT2_TYPE)i; + return true; + } + } + return false; +} + +bool slot2_ChangeByID(u8 ID) +{ + NDS_SLOT2_TYPE type = NDS_SLOT2_AUTO; + slot2_getTypeByID(ID, type); + return slot2_Change(type); +} + +NDS_SLOT2_TYPE slot2_GetCurrentType() +{ + return slot2_device_type; +} + +NDS_SLOT2_TYPE slot2_GetSelectedType() +{ + if (slot2_device_type == NDS_SLOT2_AUTO) + return slot2_selected_type; + + return slot2_device_type; +} + +void slot2_Savestate(EMUFILE* os) +{ + slot2_device->savestate(os); +} + +void slot2_Loadstate(EMUFILE* is) +{ + slot2_device->loadstate(is); +} + +static bool isSlot2(u32 addr) +{ + if (addr < 0x08000000) return false; + if (addr >= 0x0A010000) return false; + + return true; +} + +template +static bool skipSlot2Data() +{ + u16 exmemcnt = T1ReadWord(MMU.MMU_MEM[PROCNUM][0x40], 0x204); + return (PROCNUM == ARMCPU_ARM9)? (exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7): + !(exmemcnt & EXMEMCNT_MASK_SLOT2_ARM7); +} + +template +bool slot2_write(u32 addr, T val) +{ + if (!isSlot2(addr)) return false; + if (skipSlot2Data()) return true; + + switch (sizeof(T)) + { + case sizeof(u8) : slot2_device->writeByte(PROCNUM, addr, val); break; + case sizeof(u16): slot2_device->writeWord(PROCNUM, addr, val); break; + case sizeof(u32): slot2_device->writeLong(PROCNUM, addr, val); break; + } + return true; +} + +template +bool slot2_read(u32 addr, T &val) +{ + if (!isSlot2(addr)) return false; + if (skipSlot2Data()) { val = 0; return true; } + + switch (sizeof(T)) + { + case sizeof(u8) : val = slot2_device->readByte(PROCNUM, addr); break; + case sizeof(u16): val = slot2_device->readWord(PROCNUM, addr); break; + case sizeof(u32): val = slot2_device->readLong(PROCNUM, addr); break; + default: val = 0; break; + } + + return true; +} + +template bool slot2_write<0, u8> (u32 addr, u8 val); +template bool slot2_write<0, u16>(u32 addr, u16 val); +template bool slot2_write<0, u32>(u32 addr, u32 val); +template bool slot2_write<1, u8> (u32 addr, u8 val); +template bool slot2_write<1, u16>(u32 addr, u16 val); +template bool slot2_write<1, u32>(u32 addr, u32 val); + +template bool slot2_read<0, u8> (u32 addr, u8 &val); +template bool slot2_read<0, u16>(u32 addr, u16 &val); +template bool slot2_read<0, u32>(u32 addr, u32 &val); +template bool slot2_read<1, u8> (u32 addr, u8 &val); +template bool slot2_read<1, u16>(u32 addr, u16 &val); +template bool slot2_read<1, u32>(u32 addr, u32 &val); + diff -Nru desmume-0.9.9/src/slot2.h desmume-0.9.10/src/slot2.h --- desmume-0.9.9/src/slot2.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/slot2.h 2013-11-28 00:37:00.504725550 +0000 @@ -0,0 +1,146 @@ +/* + Copyright (C) 2009-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#ifndef __SLOT2_H__ +#define __SLOT_H__ + +#include "common.h" +#include "types.h" +#include "debug.h" + +class Slot2Info +{ +public: + virtual const char* name() const = 0; + virtual const char* descr() const = 0; + virtual const u8 id() const = 0; +}; + +class Slot2InfoSimple : public Slot2Info +{ +public: + Slot2InfoSimple(const char* _name, const char* _descr, const u8 _id) + : mName(_name) + , mDescr(_descr) + , mID(_id) + { + } + virtual const char* name() const { return mName; } + virtual const char* descr() const { return mDescr; } + virtual const u8 id() const { return mID; } +private: + const char* mName, *mDescr; + const u8 mID; +}; + +class ISlot2Interface +{ +public: + //called to get info about device (description) + virtual Slot2Info const* info() = 0; + + //called once when the emulator starts up, or when the device springs into existence + virtual bool init() { return true; } + + //called when the emulator connects the device + virtual void connect() { } + + //called when the emulator disconnects the device + virtual void disconnect() { } + + //called when the emulator shuts down, or when the device disappears from existence + virtual void shutdown() { } + + virtual void writeByte(u8 PROCNUM, u32 addr, u8 val) {}; + virtual void writeWord(u8 PROCNUM, u32 addr, u16 val) {}; + virtual void writeLong(u8 PROCNUM, u32 addr, u32 val) {}; + + virtual u8 readByte(u8 PROCNUM, u32 addr) { return 0xFF; }; + virtual u16 readWord(u8 PROCNUM, u32 addr) { return 0xFFFF; }; + virtual u32 readLong(u8 PROCNUM, u32 addr) { return 0xFFFFFFFF; }; + + virtual void savestate(EMUFILE* os) {} + + virtual void loadstate(EMUFILE* is) {} +}; + +typedef ISlot2Interface* TISlot2InterfaceConstructor(); + +enum NDS_SLOT2_TYPE +{ + NDS_SLOT2_NONE, // 0xFF + NDS_SLOT2_AUTO, // 0xFE - Auto-select + NDS_SLOT2_CFLASH, // 0x01 - Compact flash + NDS_SLOT2_RUMBLEPAK, // 0x02 - RumblePak + NDS_SLOT2_GBACART, // 0x03 - GBA cartrindge in slot + NDS_SLOT2_GUITARGRIP, // 0x04 - Guitar Grip + NDS_SLOT2_EXPMEMORY, // 0x05 - Memory Expansion Pak + NDS_SLOT2_EASYPIANO, // 0x06 - Easy Piano + NDS_SLOT2_PADDLE, // 0x07 - Arkanoids DS paddle + NDS_SLOT2_PASSME, // 0x08 - PassME/Homebrew + NDS_SLOT2_COUNT // use for counter addons - MUST TO BE LAST!!! +}; + +extern ISlot2Interface* slot2_device; //the current slot2 device instance +extern ISlot2Interface* slot2_List[NDS_SLOT2_COUNT]; +extern NDS_SLOT2_TYPE slot2_selected_type; + +void slot2_Init(); +bool slot2_Connect(); +void slot2_Disconnect(); +void slot2_Shutdown(); +void slot2_Savestate(EMUFILE* os); +void slot2_Loadstate(EMUFILE* is); + +//just disconnects and reconnects the device. ideally, the disconnection and connection would be called with sensible timing +void slot2_Reset(); + +//change the current device +bool slot2_Change(NDS_SLOT2_TYPE type); + +bool slot2_getTypeByID(u8 ID, NDS_SLOT2_TYPE &type); + +//change the current device by ID +bool slot2_ChangeByID(u8 ID); + +//check on the current device +NDS_SLOT2_TYPE slot2_GetCurrentType(); +NDS_SLOT2_TYPE slot2_GetSelectedType(); + +template +bool slot2_write(u32 addr, T val); + +template +bool slot2_read(u32 addr, T &val); + + +// ================================================================================= +extern char GBAgameName[MAX_PATH]; // file name for GBA game (rom) +extern void (*FeedbackON)(BOOL enable); // feedback on/off + +enum ADDON_CFLASH_MODE +{ + ADDON_CFLASH_MODE_Path, ADDON_CFLASH_MODE_File, ADDON_CFLASH_MODE_RomPath +}; + +extern ADDON_CFLASH_MODE CFlash_Mode; +extern std::string CFlash_Path; +inline bool CFlash_IsUsingPath() { return CFlash_Mode==ADDON_CFLASH_MODE_Path || CFlash_Mode==ADDON_CFLASH_MODE_RomPath; } + +extern void guitarGrip_setKey(bool green, bool red, bool yellow, bool blue); // Guitar grip keys +extern void piano_setKey(bool c, bool cs, bool d, bool ds, bool e, bool f, bool fs, bool g, bool gs, bool a, bool as, bool b, bool hic); //piano keys +#endif //__SLOT_H__ diff -Nru desmume-0.9.9/src/SPU.cpp desmume-0.9.10/src/SPU.cpp --- desmume-0.9.9/src/SPU.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/SPU.cpp 2013-11-28 00:37:18.801021066 +0000 @@ -217,6 +217,8 @@ } } + SPU_SetSynchMode(CommonSettings.SPU_sync_mode, CommonSettings.SPU_sync_method); + return SPU_ChangeSoundCore(coreid, buffersize); } diff -Nru desmume-0.9.9/src/texcache.cpp desmume-0.9.10/src/texcache.cpp --- desmume-0.9.9/src/texcache.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/texcache.cpp 2013-11-28 00:37:17.909006661 +0000 @@ -156,7 +156,7 @@ } //creates a MemSpan in texture palette memory -static MemSpan MemSpan_TexPalette(u32 ofs, u32 len) +static MemSpan MemSpan_TexPalette(u32 ofs, u32 len, bool silent) { MemSpan ret; ret.size = len; @@ -165,7 +165,7 @@ MemSpan::Item &curr = ret.items[ret.numItems++]; curr.start = ofs&0x3FFF; u32 slot = (ofs>>14)&7; //this masks to 8 slots, but there are really only 6 - if(slot>5) { + if(slot>5 && !silent) { PROGINFO("Texture palette overruns texture memory. Wrapping at palette slot 0.\n"); slot -= 5; } @@ -179,7 +179,7 @@ u8* ptr = MMU.texInfo.texPalSlot[slot]; //TODO - dont alert if the masterbrightnesses are max or min - if(ptr == MMU.blank_memory) { + if(ptr == MMU.blank_memory && !silent) { PROGINFO("Tried to reference unmapped texture palette memory: 16k slot #%d\n",slot); } curr.ptr = ptr + curr.start; @@ -205,7 +205,9 @@ public: TexCache() : cache_size(0) - {} + { + memset(paletteDump,0,sizeof(paletteDump)); + } TTexCacheItemMultimap index; @@ -271,7 +273,7 @@ int palSize = palSizes[textureMode]; int texSize = (imageSize*texSizes[textureMode])>>2; //shifted because the texSizes multiplier is fixed point MemSpan ms = MemSpan_TexMem((format&0xFFFF)<<3,texSize); - MemSpan mspal = MemSpan_TexPalette(paletteAddress,palSize*2); + MemSpan mspal = MemSpan_TexPalette(paletteAddress,palSize*2,false); //determine the location for 4x4 index data u32 indexBase; @@ -318,8 +320,11 @@ //TODO - this could be done at the entire cache level instead of checking repeatedly if(curr->cacheFormat != TEXFORMAT) goto REJECT; + //if the texture is assumed invalid, reject it + if(curr->assumedInvalid) goto REJECT; + //the texture matches params, but isnt suspected invalid. accept it. - if (!curr->suspectedInvalid) return curr; + if(!curr->suspectedInvalid) return curr; //we suspect the texture may be invalid. we need to do a byte-for-byte comparison to re-establish that it is valid: @@ -654,10 +659,33 @@ return newitem; } //scan() + static const int PALETTE_DUMP_SIZE = (64+16+16)*1024; + u8 paletteDump[PALETTE_DUMP_SIZE]; + void invalidate() { + //check whether the palette memory changed + //TODO - we should handle this instead by setting dirty flags in the vram memory mapping and noting whether palette memory was dirty. + //but this will work for now + MemSpan mspal = MemSpan_TexPalette(0,PALETTE_DUMP_SIZE,true); + bool paletteDirty = mspal.memcmp(paletteDump); + if(paletteDirty) + { + mspal.dump(paletteDump); + } + for(TTexCacheItemMultimap::iterator it(index.begin()); it != index.end(); ++it) + { it->second->suspectedInvalid = true; + + //when the palette changes, we assume all 4x4 textures are dirty. + //this is because each 4x4 item doesnt carry along with it a copy of the entire palette, for verification + //instead, we just use the one paletteDump for verifying of all 4x4 textures; and if paletteDirty is set, verification has failed + if(it->second->getTextureMode() == TEXMODE_4X4 && paletteDirty) + { + it->second->assumedInvalid = true; + } + } } void evict(u32 target = kMaxCacheSize) diff -Nru desmume-0.9.9/src/texcache.h desmume-0.9.10/src/texcache.h --- desmume-0.9.9/src/texcache.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/texcache.h 2013-11-28 00:37:18.805021131 +0000 @@ -41,6 +41,7 @@ : decode_len(0) , decoded(NULL) , suspectedInvalid(false) + , assumedInvalid(false) , deleteCallback(NULL) , cacheFormat(TexFormat_None) {} @@ -52,8 +53,11 @@ u32 mode; u8* decoded; //decoded texture data bool suspectedInvalid; + bool assumedInvalid; TTexCacheItemMultimap::iterator iterator; + int getTextureMode() const { return (int)((texformat>>26)&0x07); } + u32 texformat, texpal; u32 sizeX, sizeY; float invSizeX, invSizeY; diff -Nru desmume-0.9.9/src/thumb_instructions.cpp desmume-0.9.10/src/thumb_instructions.cpp --- desmume-0.9.9/src/thumb_instructions.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/thumb_instructions.cpp 2013-11-28 00:36:53.008604446 +0000 @@ -1023,13 +1023,14 @@ (cpu->intVector == 0x00000000 && PROCNUM==0) || (cpu->intVector == 0xFFFF0000 && PROCNUM==1); + //printf("THUMB%c SWI %02X\t; %s\n", PROCNUM?'7':'9', (swinum & 0x1F), ARM_swi_names[PROCNUM][(swinum & 0x1F)]); + if(cpu->swi_tab && !bypassBuiltinSWI) { //zero 25-dec-2008 - in arm, we were masking to 0x1F. //this is probably safer since an invalid opcode could crash the emu //zero 30-jun-2009 - but they say that the ideas 0xFF should crash the device... //u32 swinum = cpu->instruction & 0xFF; swinum &= 0x1F; - //printf("%d ARM SWI %d\n",PROCNUM,swinum); return cpu->swi_tab[swinum]() + 3; } else { diff -Nru desmume-0.9.9/src/types.h desmume-0.9.10/src/types.h --- desmume-0.9.9/src/types.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/types.h 2013-11-28 00:37:26.713148829 +0000 @@ -21,9 +21,20 @@ //analyze microsoft compilers #ifdef _MSC_VER -#define _WINDOWS -//todo - everyone will want to support this eventually, i suppose -#include "config.h" + #define HOST_WINDOWS + + //todo - everyone will want to support this eventually, i suppose + #include "config.h" + +#endif //_MSC_VER + +// Determine CPU architecture for platforms that don't use the autoconf script +#if defined(HOST_WINDOWS) || defined(DESMUME_COCOA) + #if defined(__x86_64__) || defined(__LP64) || defined(__IA64__) || defined(_M_X64) || defined(_WIN64) + #define HOST_64 + #else + #define HOST_32 + #endif #endif //enforce a constraint: gdb stub requires developer @@ -37,8 +48,7 @@ #define IF_DEVELOPER(X) #endif -#ifdef _WINDOWS - //#define HAVE_WX //not useful yet.... +#ifdef HOST_WINDOWS #define HAVE_LIBAGG #define ENABLE_SSE #define ENABLE_SSE2 @@ -83,6 +93,9 @@ #endif +//------------alignment macros------------- +//dont apply these to types without further testing. it only works portably here on declarations of variables +//cant we find a pattern other people use more successfully? #if defined(_MSC_VER) || defined(__INTEL_COMPILER) #define DS_ALIGN(X) __declspec(align(X)) #elif defined(__GNUC__) @@ -90,11 +103,10 @@ #else #define DS_ALIGN(X) #endif - #define CACHE_ALIGN DS_ALIGN(32) - //use this for example when you want a byte value to be better-aligned #define FAST_ALIGN DS_ALIGN(4) +//--------------------------------------------- #ifdef __MINGW32__ #define FASTCALL __attribute__((fastcall)) diff -Nru desmume-0.9.9/src/utils/advanscene.cpp desmume-0.9.10/src/utils/advanscene.cpp --- desmume-0.9.9/src/utils/advanscene.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/utils/advanscene.cpp 2013-11-28 00:37:27.861167366 +0000 @@ -0,0 +1,254 @@ +/* + Copyright (C) 2011-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include +#include + +#define TIXML_USE_STL +#include "tinyxml/tinyxml.h" + +#include "advanscene.h" +#include "mc.h" + +ADVANsCEne advsc; + +#define _ADVANsCEne_BASE_ID "DeSmuME database (ADVANsCEne)\0x1A" +#define _ADVANsCEne_BASE_VERSION_MAJOR 1 +#define _ADVANsCEne_BASE_VERSION_MINOR 0 +#define _ADVANsCEne_BASE_NAME "ADVANsCEne Nintendo DS Collection" + +u8 ADVANsCEne::checkDB(const char *ROMserial, u32 crc) +{ + loaded = false; + FILE *fp = fopen(database_path.c_str(), "rb"); + if (fp) + { + char buf[64]; + memset(buf, 0, sizeof(buf)); + if (fread(buf, 1, strlen(_ADVANsCEne_BASE_ID), fp) == strlen(_ADVANsCEne_BASE_ID)) + { + //printf("ID: %s\n", buf); + if (strcmp(buf, _ADVANsCEne_BASE_ID) == 0) + { + if (fread(&versionBase[0], 1, 2, fp) == 2) + { + //printf("Version base: %i.%i\n", versionBase[0], versionBase[1]); + if (fread(&version[0], 1, 4, fp) == 4) + { + //printf("Version: %c%c%c%c\n", version[3], version[2], version[1], version[0]); + if (fread(&createTime, 1, sizeof(time_t), fp) == sizeof(time_t)) + { + memset(buf, 0,sizeof(buf)); + // serial(8) + crc32(4) + save_type(1) = 13 + reserved(8) = 21 + while (true) + { + if (fread(buf, 1, 21, fp) != 21) break; + + bool serialFound = (memcmp(&buf[4], ROMserial, 4) == 0); + u32 dbcrc = LE_TO_LOCAL_32(*(u32*)(buf+8)); + bool crcFound = (crc == dbcrc); + + if(serialFound || crcFound) + { + foundAsCrc = crcFound; + foundAsSerial = serialFound; + memcpy(&crc32, &buf[8], 4); + memcpy(&serial[0], &buf[4], 4); + //printf("%s founded: crc32=%04X, save type %02X\n", ROMserial, crc32, buf[12]); + saveType = buf[12]; + fclose(fp); + loaded = true; + return true; + } + } + } + } + } + } + } + fclose(fp); + } + return false; +} + + + +bool ADVANsCEne::getXMLConfig(const char *in_filaname) +{ + TiXmlDocument *xml = NULL; + TiXmlElement *el = NULL; + TiXmlElement *el_configuration = NULL; + TiXmlElement *el_newDat = NULL; + + xml = new TiXmlDocument(); + if (!xml) return false; + if (!xml->LoadFile(in_filaname)) return false; + el = xml->FirstChildElement("dat"); + if (!el) return false; + el_configuration = el->FirstChildElement("configuration"); + if (!el_configuration) return false; + el = el_configuration->FirstChildElement("datName"); if (el) { datName = el->GetText() ? el->GetText() : ""; } + el = el_configuration->FirstChildElement("datVersion"); if (el) { datVersion = el->GetText() ? el->GetText() : ""; } + + el_newDat = el_configuration->FirstChildElement("newDat"); + if (!el_newDat) return false; + el = el_newDat->FirstChildElement("datVersionURL"); if (el) { urlVersion = el->GetText() ? el->GetText() : ""; } + el = el_newDat->FirstChildElement("datURL"); if (el) { urlDat = el->GetText() ? el->GetText() : ""; } + + delete xml; + return true; +} + +u32 ADVANsCEne::convertDB(const char *in_filaname) +{ + //these strings are contained in the xml file, verbatim, so they function as enum values + //we leave the strings here rather than pooled elsewhere to remind us that theyre part of the advanscene format. + const char *saveTypeNames[] = { + "Eeprom - 4 kbit", // EEPROM 4kbit + "Eeprom - 64 kbit", // EEPROM 64kbit + "Eeprom - 512 kbit", // EEPROM 512kbit + "Fram - 256 kbit", // FRAM 256kbit ! + "Flash - 2 mbit", // FLASH 2Mbit + "Flash - 4 mbit", // FLASH 4Mbit + "Flash - 8 mbit", // FLASH 8Mbit + "Flash - 16 mbit", // FLASH 16Mbit ! + "Flash - 32 mbit", // FLASH 32Mbit ! + "Flash - 64 mbit", // FLASH 64Mbit + "Flash - 128 mbit", // FLASH 128Mbit ! + "Flash - 256 mbit", // FLASH 256Mbit ! + "Flash - 512 mbit" // FLASH 512Mbit ! + }; + + TiXmlDocument *xml = NULL; + TiXmlElement *el = NULL; + TiXmlElement *el_serial = NULL; + TiXmlElement *el_games = NULL; + TiXmlElement *el_crc32 = NULL; + TiXmlElement *el_saveType = NULL; + FILE *fp; + u32 crc32 = 0; + u32 reserved = 0; + + lastImportErrorMessage = ""; + + printf("Converting DB...\n"); + if (getXMLConfig(in_filaname)) + { + if (datName.size()==0) return 0; + if (datName != _ADVANsCEne_BASE_NAME) return 0; + } + + fp = fopen(database_path.c_str(), "wb"); + if (!fp) return 0; + + // Header + fwrite(_ADVANsCEne_BASE_ID, 1, strlen(_ADVANsCEne_BASE_ID), fp); + fputc(_ADVANsCEne_BASE_VERSION_MAJOR, fp); + fputc(_ADVANsCEne_BASE_VERSION_MINOR, fp); + if (datVersion.size()) + fwrite(&datVersion[0], 1, datVersion.size(), fp); + else + fputc(0, fp); + time_t __time = time(NULL); + fwrite(&__time, 1, sizeof(time_t), fp); + + xml = new TiXmlDocument(); + if (!xml) { fclose(fp); return 0; } + if (!xml->LoadFile(in_filaname)) { fclose(fp); return 0; } + el = xml->FirstChildElement("dat"); + if (!el) { fclose(fp); return 0; } + el_games = el->FirstChildElement("games"); + if (!el_games) { fclose(fp); return 0; } + el = el_games->FirstChildElement("game"); + if (!el) { fclose(fp); return 0; } + u32 count = 0; + while (el) + { + TiXmlElement* title = el->FirstChildElement("title"); + if(title) + { + //just a little diagnostic + //printf("Importing %s\n",title->GetText()); + } + else { fclose(fp); return 0; } + + el_serial = el->FirstChildElement("serial"); + + if(!el_serial) + { + lastImportErrorMessage = "Missing element. Did you use the right xml file? We need the RtoolDS one."; + fclose(fp); + return 0; + } + if (fwrite(el_serial->GetText(), 1, 8, fp) != 8) + { + lastImportErrorMessage = "Error writing output file"; + fclose(fp); return 0; + } + + + // CRC32 + el_crc32 = el->FirstChildElement("files"); + sscanf_s(el_crc32->FirstChildElement("romCRC")->GetText(), "%x", &crc32); + if (fwrite(&crc32, 1, sizeof(u32), fp) != sizeof(u32)) + { + fclose(fp); return 0; + } + // Save type + el_saveType = el->FirstChildElement("saveType"); + if (el_saveType) + { + const char *tmp = el_saveType->GetText(); + if (tmp) + { + if (strcmp(tmp, "None") == 0) + fputc(0xFE, fp); + else + { + bool bUnknown = true; + for (u8 i = 0; i < MAX_SAVE_TYPES; i++) + { + if (strcmp(saveTypeNames[i], "") == 0) continue; + if (strcasecmp(tmp, saveTypeNames[i]) == 0) + { + fputc(i, fp); + bUnknown = false; + break; + } + } + if (bUnknown) + fputc(0xFF, fp); // Unknown + } + } + else + fputc(0xFF, fp); // Unknown + } + fwrite(&reserved, 1, sizeof(u32), fp); + fwrite(&reserved, 1, sizeof(u32), fp); + count++; + el = el->NextSiblingElement("game"); + } + printf("\n"); + delete xml; + fclose(fp); + if (count > 0) + printf("done\n"); + else + printf("error\n"); + printf("ADVANsCEne converter: %i found\n", count); + return count; +} diff -Nru desmume-0.9.9/src/utils/advanscene.h desmume-0.9.10/src/utils/advanscene.h --- desmume-0.9.9/src/utils/advanscene.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/utils/advanscene.h 2013-11-28 00:37:27.861167366 +0000 @@ -0,0 +1,68 @@ +/* + Copyright (C) 2011-2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include +#include "types.h" + +class ADVANsCEne +{ +private: + std::string database_path; // DeSmuME save types + time_t createTime; + u32 crc32; + char serial[6]; + char version[4]; + u8 versionBase[2]; + u8 saveType; + + bool loaded; + bool foundAsCrc, foundAsSerial; + + // XML + std::string datName; + std::string datVersion; + std::string urlVersion; + std::string urlDat; + bool getXMLConfig(const char *in_filaname); + +public: + ADVANsCEne() + : saveType(0xFF), + crc32(0), + loaded(false) + { + memset(versionBase, 0, sizeof(versionBase)); + memset(version, 0, sizeof(version)); + memset(serial, 0, sizeof(serial)); + } + void setDatabase(const char *path) { loaded = false; database_path = path; } + u32 convertDB(const char *in_filaname); + u8 checkDB(const char *ROMserial, u32 crc); + u32 getSaveType() { return saveType; } + u32 getCRC32() { return crc32; } + char *getSerial() { return serial; } + bool isLoaded() { return loaded; } + const char* getIdMethod() { + if(foundAsSerial && foundAsCrc) return "Serial/CRC"; + if(foundAsSerial) return "Serial"; + if(foundAsCrc) return "CRC"; + return ""; + } + std::string lastImportErrorMessage; +}; + +extern ADVANsCEne advsc; diff -Nru desmume-0.9.9/src/utils/decrypt/decrypt.cpp desmume-0.9.10/src/utils/decrypt/decrypt.cpp --- desmume-0.9.9/src/utils/decrypt/decrypt.cpp 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/decrypt/decrypt.cpp 2013-11-28 00:37:28.177172468 +0000 @@ -1,4 +1,4 @@ -//taken from ndstool +//taken from ndstool and modified trivially //http://devkitpro.svn.sourceforge.net/viewvc/devkitpro/trunk/tools/nds/ndstool/source/encryption.cpp?revision=1565 /* decrypt.cpp - this file is part of DeSmuME @@ -30,7 +30,8 @@ #include "header.h" #include "decrypt.h" -const unsigned char encr_data[] = +//encr_data +const unsigned char arm7_key[] = { 0x99,0xD5,0x20,0x5F,0x57,0x44,0xF5,0xB9,0x6E,0x19,0xA4,0xD9,0x9E,0x6A,0x5A,0x94, 0xD8,0xAE,0xF1,0xEB,0x41,0x75,0xE2,0x3A,0x93,0x82,0xD0,0x32,0x33,0xEE,0x31,0xD5, @@ -396,7 +397,7 @@ static void init1(u32 cardheader_gamecode) { - memcpy(card_hash, &encr_data, 4*(1024 + 18)); + memcpy(card_hash, &arm7_key, 4*(1024 + 18)); arg2[0] = *(u32 *)&cardheader_gamecode; arg2[1] = (*(u32 *)&cardheader_gamecode) >> 1; arg2[2] = (*(u32 *)&cardheader_gamecode) << 1; @@ -420,7 +421,7 @@ /* * decrypt_arm9 */ -static void decrypt_arm9(u32 cardheader_gamecode, unsigned char *data) +static bool decrypt_arm9(u32 cardheader_gamecode, unsigned char *data) { u32 *p = (u32*)data; @@ -434,7 +435,7 @@ if (p[0] != MAGIC30 || p[1] != MAGIC34) { fprintf(stderr, "Decryption failed!\n"); - exit(1); + return false; } *p++ = 0xE7FFDEFF; @@ -446,24 +447,54 @@ p += 2; size -= 8; } + + return true; +} + +static void encrypt_arm9(u32 cardheader_gamecode, unsigned char *data) +{ + u32 *p = (u32*)data; + if (p[0] != 0xE7FFDEFF || p[1] != 0xE7FFDEFF) + { + fprintf(stderr, "Encryption failed!\n"); + return; + } + p += 2; + + init1(cardheader_gamecode); + + arg2[1] <<= 1; + arg2[2] >>= 1; + + init2(card_hash, arg2); + + u32 size = 0x800 - 8; + while (size > 0) + { + encrypt(card_hash, p+1, p); + p += 2; + size -= 8; + } + + p = (u32*)data; + p[0] = MAGIC30; + p[1] = MAGIC34; + encrypt(card_hash, p+1, p); + init1(cardheader_gamecode); + encrypt(card_hash, p+1, p); } +//the NDS contains +//0x0000 - 0x01FF : header +//0x0200 - 0x3FFF : typically, nothing is stored here. on retail cards, you can't read from that area anyway, but im not sure if that's done in the game card or the GC bus controller on the system +//0x4000 - 0x7FFF : secure area (details in gbatek) -bool DecryptSecureArea(u8 *romdata, long romlen) +bool DecryptSecureArea(u8 *romheader, u8 *secure) { //this looks like it will only work on little endian hosts - Header* header = (Header*)romdata; - - int romType = DetectRomType(*header,(char*)romdata); + Header* header = (Header*)romheader; - /*bool do_decrypt = (endecrypt_option == 'd'); - bool do_encrypt = (endecrypt_option == 'e') || (endecrypt_option == 'E'); - unsigned int rounds_offsets = (endecrypt_option == 'E') ? 0x2000 : 0x1600; - unsigned int sbox_offsets = (endecrypt_option == 'E') ? 0x2400 : 0x2800;*/ -#if 0 - unsigned int rounds_offsets = 0x1600; - unsigned int sbox_offsets = 0x2800; -#endif + int romType = DetectRomType(*header, (char*)secure); if(romType == ROMTYPE_INVALID) return false; @@ -475,25 +506,16 @@ } else if (romType >= ROMTYPE_ENCRSECURE) // includes ROMTYPE_MASKROM { - unsigned char data[0x4000]; - memcpy(data,romdata+0x4000,0x4000); - - decrypt_arm9(*(u32 *)header->gamecode, data); + //unsigned char data[0x4000]; + //memcpy(data,romdata+0x4000,0x4000); + //decrypt_arm9(*(u32 *)header->gamecode, data); + //// clear data after header + //memset(romdata+0x200,0,(0x4000-0x200)); + //// write secure 0x800 + //memcpy(romdata+0x4000,data,0x800); - // clear data after header - //fseek(fNDS, 0x200, SEEK_SET); - //for (unsigned int i=0x200; i<0x4000; i++) fputc(0, fNDS); - memset(romdata+0x200,0,(0x4000-0x200)); - - // write secure 0x800 - //fseek(fNDS, 0x4000, SEEK_SET); - //fwrite(data, 1, 0x800, fNDS); - memcpy(romdata+0x4000,data,0x800); - - // write header - //(already poked directly) - //fseek(fNDS, 0, SEEK_SET); - //fwrite(&header, 512, 1, fNDS); + if (!decrypt_arm9(*(u32 *)header->gamecode, secure)) + return false; printf("Decrypted.\n"); } @@ -504,3 +526,40 @@ return true; } + +bool EncryptSecureArea(u8 *romheader, u8 *secure) +{ + //this looks like it will only work on little endian hosts + Header* header = (Header*)romheader; + + int romType = DetectRomType(*header, (char*)secure); + + if(romType == ROMTYPE_INVALID) + return false; + + if (romType == ROMTYPE_NDSDUMPED) + { + //unsigned char data[0x4000]; + //memcpy(data,romdata+0x4000,0x4000); + //encrypt_arm9(*(u32 *)header->gamecode, data); + //// clear data after header + //memset(romdata+0x200,0,(0x4000-0x200)); + //// write secure 0x800 + //memcpy(romdata+0x4000,data,0x800); + + encrypt_arm9(*(u32 *)header->gamecode, secure); + + printf("Encrypted.\n"); + } + + return true; +} + +bool CheckValidRom(u8 *header, u8 *secure) +{ + Header* hdr = (Header*)header; + + int romType = DetectRomType(*hdr, (char*)secure); + + return (romType != ROMTYPE_INVALID); +} \ No newline at end of file diff -Nru desmume-0.9.9/src/utils/decrypt/decrypt.h desmume-0.9.10/src/utils/decrypt/decrypt.h --- desmume-0.9.9/src/utils/decrypt/decrypt.h 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/decrypt/decrypt.h 2013-11-28 00:37:28.173172403 +0000 @@ -21,6 +21,15 @@ #ifndef _DECRYPT_H_ #define _DECRYPT_H_ -bool DecryptSecureArea(u8 *romdata, long romlen); +extern const unsigned char arm7_key[]; + +//decrypts the secure area of a rom (or does nothing if it is already decrypted) +bool DecryptSecureArea(u8 *romheader, u8 *secure); + +//encrypts the secure area of a rom (or does nothing if it is already encrypted) +bool EncryptSecureArea(u8 *romheader, u8 *secure); + +//since we have rom-type detection heuristics here, this module is responsible for checking whether a rom is valid +bool CheckValidRom(u8 *header, u8 *secure); #endif diff -Nru desmume-0.9.9/src/utils/decrypt/header.cpp desmume-0.9.10/src/utils/decrypt/header.cpp --- desmume-0.9.9/src/utils/decrypt/header.cpp 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/decrypt/header.cpp 2013-11-28 00:37:28.177172468 +0000 @@ -66,9 +66,9 @@ /* * DetectRomType */ -int DetectRomType(const Header& header, char* romdata) +int DetectRomType(const Header& header, char* secure) { - unsigned int * data = (unsigned int*)(romdata + 0x4000); + unsigned int * data = (unsigned int*)(secure); //this is attempting to check for an utterly invalid nds header if(header.unitcode < 0 && header.unitcode > 3) return ROMTYPE_INVALID; @@ -76,8 +76,9 @@ if (header.arm9_rom_offset < 0x4000) return ROMTYPE_HOMEBREW; if (data[0] == 0x00000000 && data[1] == 0x00000000) return ROMTYPE_MULTIBOOT; if (data[0] == 0xE7FFDEFF && data[1] == 0xE7FFDEFF) return ROMTYPE_NDSDUMPED; - for (int i=0x200; i<0x4000; i++) - if (romdata[i]) return ROMTYPE_MASKROM; // found something odd ;) + //TODO + //for (int i=0x200; i<0x4000; i++) + // if (romdata[i]) return ROMTYPE_MASKROM; // found something odd ;) return ROMTYPE_ENCRSECURE; } diff -Nru desmume-0.9.9/src/utils/decrypt/header.h desmume-0.9.10/src/utils/decrypt/header.h --- desmume-0.9.9/src/utils/decrypt/header.h 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/decrypt/header.h 2013-11-28 00:37:28.177172468 +0000 @@ -121,7 +121,7 @@ void FixHeaderCRC(char *ndsfilename); void ShowInfo(char *ndsfilename); int HashAndCompareWithList(char *filename, unsigned char sha1[]); -int DetectRomType(const Header& header, char* romdata); +int DetectRomType(const Header& header, char* secure); unsigned short CalcSecureAreaCRC(bool encrypt); #define ROMTYPE_HOMEBREW 0 diff -Nru desmume-0.9.9/src/utils/dlditool.cpp desmume-0.9.10/src/utils/dlditool.cpp --- desmume-0.9.9/src/utils/dlditool.cpp 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/dlditool.cpp 2013-11-28 00:37:27.861167366 +0000 @@ -506,133 +506,280 @@ // return EXIT_SUCCESS; //} -// Source File: mpcf.dldi -// Time: 6/14/2010 9:38 PM -// Orig. Offset: 0 / 0x00000000 -// Length: 1876 / 0x00000754 (bytes) -data_t mpcf_dldi[1876] = -{ - 0xED, 0xA5, 0x8D, 0xBF, 0x20, 0x43, 0x68, 0x69, 0x73, 0x68, 0x6D, 0x00, 0x01, 0x0B, 0x0C, 0x00, - 0x47, 0x42, 0x41, 0x20, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x20, 0x50, 0x6C, 0x61, 0x79, 0x65, 0x72, - 0x20, 0x28, 0x43, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0x20, 0x46, 0x6C, 0x61, 0x73, 0x68, 0x29, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xBF, 0x54, 0x07, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, - 0x50, 0x07, 0x80, 0xBF, 0x50, 0x07, 0x80, 0xBF, 0x54, 0x07, 0x80, 0xBF, 0x70, 0x07, 0x80, 0xBF, - 0x4D, 0x50, 0x43, 0x46, 0x13, 0x00, 0x00, 0x00, 0x3C, 0x01, 0x80, 0xBF, 0x98, 0x01, 0x80, 0xBF, - 0x78, 0x02, 0x80, 0xBF, 0xC8, 0x04, 0x80, 0xBF, 0xC8, 0x01, 0x80, 0xBF, 0x10, 0x07, 0x80, 0xBF, - 0x0D, 0xC0, 0xA0, 0xE1, 0xF8, 0xDF, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x28, 0xD0, 0x4B, 0xE2, - 0xF0, 0x6F, 0x9D, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x2C, 0x40, 0x9F, 0xE5, - 0x00, 0x30, 0xD4, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x24, 0x20, 0x9F, 0xE5, 0x05, 0x00, 0x00, 0x1A, - 0x00, 0x00, 0x52, 0xE3, 0x1C, 0x00, 0x9F, 0xE5, 0x0F, 0xE0, 0xA0, 0x11, 0x12, 0xFF, 0x2F, 0x11, - 0x01, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0xC4, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, - 0x54, 0x07, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x48, 0x07, 0x80, 0xBF, 0x04, 0xE0, 0x2D, 0xE5, - 0x40, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x04, 0xD0, 0x4D, 0xE2, 0x38, 0x00, 0x9F, 0xE5, - 0x38, 0x10, 0x9F, 0xE5, 0x0F, 0xE0, 0xA0, 0x11, 0x13, 0xFF, 0x2F, 0x11, 0x30, 0x00, 0x9F, 0xE5, - 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x28, 0x30, 0x9F, 0xE5, 0x02, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x53, 0xE3, 0x0F, 0xE0, 0xA0, 0x11, 0x13, 0xFF, 0x2F, 0x11, 0x04, 0xD0, 0x8D, 0xE2, - 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x48, 0x07, 0x80, 0xBF, - 0x58, 0x07, 0x80, 0xBF, 0x4C, 0x07, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x09, 0x14, 0xA0, 0xE3, - 0x06, 0x18, 0x81, 0xE2, 0xB0, 0x30, 0xD1, 0xE1, 0x03, 0x30, 0xE0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, - 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xB0, 0x30, 0xC1, 0xE1, 0xB0, 0x20, 0xD1, 0xE1, - 0x04, 0xE0, 0x2D, 0xE5, 0xAA, 0xCC, 0xA0, 0xE3, 0x55, 0xEC, 0xE0, 0xE3, 0x03, 0x00, 0x52, 0xE1, - 0xAA, 0xE0, 0x4E, 0xE2, 0x55, 0xC0, 0x8C, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0x1A, - 0xB0, 0xE0, 0xC1, 0xE1, 0xB0, 0x30, 0xD1, 0xE1, 0x0C, 0x00, 0x53, 0xE0, 0x01, 0x00, 0xA0, 0x13, - 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x26, 0x35, 0xA0, 0xE3, 0x03, 0x37, 0x83, 0xE2, - 0x50, 0x20, 0xA0, 0xE3, 0xB0, 0x20, 0xC3, 0xE1, 0xB0, 0x00, 0xD3, 0xE1, 0x00, 0x08, 0xA0, 0xE1, - 0x20, 0x08, 0xA0, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x50, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, - 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1, 0x09, 0x34, 0xA0, 0xE3, 0x0E, 0x38, 0x83, 0xE2, - 0xB0, 0x20, 0xD3, 0xE1, 0x80, 0x00, 0x12, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, - 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x09, 0x34, 0xA0, 0xE3, - 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0x20, 0xD3, 0xE1, 0x26, 0x17, 0xA0, 0xE3, 0x96, 0x1C, 0x81, 0xE2, - 0x80, 0x00, 0x12, 0xE3, 0x01, 0x00, 0x80, 0xE2, 0x80, 0x10, 0x81, 0xE2, 0xF4, 0xFF, 0xFF, 0x1A, - 0x26, 0x15, 0xA0, 0xE3, 0x03, 0x17, 0x81, 0xE2, 0xB0, 0x30, 0xD1, 0xE1, 0x50, 0x30, 0x13, 0xE2, - 0x01, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0x11, 0x26, 0x27, 0xA0, 0xE3, 0x96, 0x2C, 0x82, 0xE2, - 0x03, 0x00, 0xA0, 0xE1, 0x80, 0x20, 0x82, 0xE2, 0x01, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE1, - 0x0A, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD1, 0xE1, 0x50, 0x30, 0x13, 0xE2, 0x01, 0x00, 0x80, 0xE2, - 0xF9, 0xFF, 0xFF, 0x0A, 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, - 0x03, 0x00, 0x50, 0xE1, 0x00, 0x00, 0xA0, 0xC3, 0x01, 0x00, 0xA0, 0xD3, 0x1E, 0xFF, 0x2F, 0xE1, - 0x03, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4B, 0x2D, 0xE9, 0x09, 0x34, 0xA0, 0xE3, - 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0xC0, 0xD3, 0xE1, 0x80, 0x00, 0x1C, 0xE3, 0x10, 0xD0, 0x4D, 0xE2, - 0x01, 0x90, 0xA0, 0xE1, 0x02, 0xE0, 0xA0, 0xE1, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0xC0, 0xA0, 0xE3, - 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5C, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x09, 0x34, 0xA0, 0xE3, - 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0x20, 0xD3, 0xE1, 0x26, 0x17, 0xA0, 0xE3, 0x96, 0x1C, 0x81, 0xE2, - 0x80, 0x00, 0x12, 0xE3, 0x01, 0xC0, 0x8C, 0xE2, 0x80, 0x10, 0x81, 0xE2, 0xF4, 0xFF, 0xFF, 0x1A, - 0x26, 0xC5, 0xA0, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x30, 0x13, 0xE2, - 0x26, 0x17, 0xA0, 0x03, 0x96, 0x1C, 0x81, 0x02, 0x03, 0x20, 0xA0, 0x01, 0x80, 0x10, 0x81, 0x02, - 0x02, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, 0x67, 0x00, 0x00, 0x0A, - 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x00, 0x13, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF9, 0xFF, 0xFF, 0x0A, - 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, - 0x5E, 0x00, 0x00, 0xCA, 0xFF, 0x00, 0x59, 0xE3, 0x00, 0x30, 0xA0, 0x83, 0x0C, 0x30, 0x8D, 0x85, - 0x5E, 0x00, 0x00, 0x9A, 0x00, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, - 0x09, 0x54, 0xA0, 0xE3, 0x04, 0x30, 0x8D, 0xE5, 0x0C, 0x30, 0x9D, 0xE5, 0x20, 0x4C, 0xA0, 0xE1, - 0x0E, 0xB0, 0xA0, 0xE1, 0x05, 0x60, 0xA0, 0xE1, 0x20, 0x74, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, - 0x20, 0x18, 0xA0, 0xE1, 0x05, 0xC0, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x05, 0xE0, 0xA0, 0xE1, - 0x01, 0x57, 0x85, 0xE2, 0xB0, 0x30, 0xC5, 0xE1, 0x04, 0x30, 0x9D, 0xE5, 0x0F, 0x40, 0x04, 0xE2, - 0x06, 0x68, 0x86, 0xE2, 0xB0, 0x30, 0xC6, 0xE1, 0xFF, 0x70, 0x07, 0xE2, 0x02, 0x27, 0x82, 0xE2, - 0xFF, 0x10, 0x01, 0xE2, 0x0A, 0x08, 0x80, 0xE2, 0xE0, 0x40, 0x84, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, - 0x0E, 0xE8, 0x8E, 0xE2, 0x20, 0x30, 0xA0, 0xE3, 0xB0, 0x70, 0xC2, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, - 0xB0, 0x40, 0xCC, 0xE1, 0xB0, 0x30, 0xCE, 0xE1, 0x0B, 0x80, 0xA0, 0xE1, 0x01, 0x90, 0x59, 0xE2, - 0x3E, 0x00, 0x00, 0x3A, 0x26, 0x25, 0xA0, 0xE3, 0x03, 0x27, 0x82, 0xE2, 0xB0, 0x30, 0xD2, 0xE1, - 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, - 0x26, 0x17, 0xA0, 0x13, 0x96, 0x1C, 0x81, 0x12, 0x02, 0x00, 0xA0, 0x11, 0x80, 0x10, 0x81, 0x12, - 0x00, 0x20, 0xA0, 0x13, 0x02, 0x00, 0x00, 0x1A, 0x0D, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, - 0x26, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, - 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF6, 0xFF, 0xFF, 0x1A, - 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, - 0x1A, 0x00, 0x00, 0xCA, 0x01, 0x00, 0x18, 0xE3, 0x0B, 0x10, 0xA0, 0x01, 0xFF, 0x20, 0xA0, 0x03, - 0x09, 0x04, 0xA0, 0x03, 0x0E, 0x00, 0x00, 0x0A, 0x08, 0x10, 0xA0, 0xE1, 0xFF, 0x00, 0xA0, 0xE3, - 0x09, 0xC4, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, - 0x01, 0x00, 0x40, 0xE2, 0x43, 0x24, 0xA0, 0xE1, 0x01, 0x00, 0x70, 0xE3, 0x01, 0x20, 0xC1, 0xE5, - 0x00, 0x30, 0xC1, 0xE5, 0x02, 0x10, 0x81, 0xE2, 0xF5, 0xFF, 0xFF, 0x1A, 0x02, 0x8C, 0x88, 0xE2, - 0xCD, 0xFF, 0xFF, 0xEA, 0x01, 0x20, 0x42, 0xE2, 0xB0, 0x30, 0xD0, 0xE1, 0x01, 0x00, 0x72, 0xE3, - 0xB2, 0x30, 0xC1, 0xE0, 0xFA, 0xFF, 0xFF, 0x1A, 0x02, 0xBC, 0x8B, 0xE2, 0xC6, 0xFF, 0xFF, 0xEA, - 0x00, 0x00, 0xA0, 0xE3, 0x10, 0xD0, 0x8D, 0xE2, 0xF0, 0x4B, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, - 0x09, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0x0C, 0x30, 0x8D, 0xE5, 0x9C, 0xFF, 0xFF, 0xEA, - 0x01, 0x00, 0xA0, 0xE3, 0xF6, 0xFF, 0xFF, 0xEA, 0xF0, 0x4B, 0x2D, 0xE9, 0x09, 0x34, 0xA0, 0xE3, - 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0xC0, 0xD3, 0xE1, 0x80, 0x00, 0x1C, 0xE3, 0x10, 0xD0, 0x4D, 0xE2, - 0x01, 0x90, 0xA0, 0xE1, 0x02, 0xE0, 0xA0, 0xE1, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0xC0, 0xA0, 0xE3, - 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5C, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x09, 0x34, 0xA0, 0xE3, - 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0x20, 0xD3, 0xE1, 0x26, 0x17, 0xA0, 0xE3, 0x96, 0x1C, 0x81, 0xE2, - 0x80, 0x00, 0x12, 0xE3, 0x01, 0xC0, 0x8C, 0xE2, 0x80, 0x10, 0x81, 0xE2, 0xF4, 0xFF, 0xFF, 0x1A, - 0x26, 0xC5, 0xA0, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x30, 0x13, 0xE2, - 0x26, 0x17, 0xA0, 0x03, 0x96, 0x1C, 0x81, 0x02, 0x03, 0x20, 0xA0, 0x01, 0x80, 0x10, 0x81, 0x02, - 0x02, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, 0x65, 0x00, 0x00, 0x0A, - 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x00, 0x13, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF9, 0xFF, 0xFF, 0x0A, - 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, - 0x5C, 0x00, 0x00, 0xCA, 0xFF, 0x00, 0x59, 0xE3, 0x00, 0x30, 0xA0, 0x83, 0x0C, 0x30, 0x8D, 0x85, - 0x5C, 0x00, 0x00, 0x9A, 0x00, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, - 0x09, 0x54, 0xA0, 0xE3, 0x04, 0x30, 0x8D, 0xE5, 0x0C, 0x30, 0x9D, 0xE5, 0x20, 0x4C, 0xA0, 0xE1, - 0x0E, 0xB0, 0xA0, 0xE1, 0x05, 0x60, 0xA0, 0xE1, 0x20, 0x74, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, - 0x20, 0x18, 0xA0, 0xE1, 0x05, 0xC0, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x05, 0xE0, 0xA0, 0xE1, - 0x01, 0x57, 0x85, 0xE2, 0xB0, 0x30, 0xC5, 0xE1, 0x04, 0x30, 0x9D, 0xE5, 0x0F, 0x40, 0x04, 0xE2, - 0x06, 0x68, 0x86, 0xE2, 0xB0, 0x30, 0xC6, 0xE1, 0xFF, 0x70, 0x07, 0xE2, 0x02, 0x27, 0x82, 0xE2, - 0xFF, 0x10, 0x01, 0xE2, 0x0A, 0x08, 0x80, 0xE2, 0xE0, 0x40, 0x84, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, - 0x0E, 0xE8, 0x8E, 0xE2, 0x30, 0x30, 0xA0, 0xE3, 0xB0, 0x70, 0xC2, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, - 0xB0, 0x40, 0xCC, 0xE1, 0xB0, 0x30, 0xCE, 0xE1, 0x0B, 0x80, 0xA0, 0xE1, 0x01, 0x90, 0x59, 0xE2, - 0x3C, 0x00, 0x00, 0x3A, 0x26, 0x25, 0xA0, 0xE3, 0x03, 0x27, 0x82, 0xE2, 0xB0, 0x30, 0xD2, 0xE1, - 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, - 0x26, 0x17, 0xA0, 0x13, 0x96, 0x1C, 0x81, 0x12, 0x02, 0x00, 0xA0, 0x11, 0x80, 0x10, 0x81, 0x12, - 0x00, 0x20, 0xA0, 0x13, 0x02, 0x00, 0x00, 0x1A, 0x0D, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, - 0x24, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, - 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF6, 0xFF, 0xFF, 0x1A, - 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, - 0x18, 0x00, 0x00, 0xCA, 0x01, 0x00, 0x18, 0xE3, 0x0B, 0x10, 0xA0, 0x01, 0xFF, 0x20, 0xA0, 0x03, - 0x09, 0x04, 0xA0, 0x03, 0x0C, 0x00, 0x00, 0x0A, 0x08, 0x10, 0xA0, 0xE1, 0xFF, 0x00, 0xA0, 0xE3, - 0x09, 0xC4, 0xA0, 0xE3, 0x00, 0x30, 0xD1, 0xE5, 0x01, 0x20, 0xD1, 0xE5, 0x01, 0x00, 0x40, 0xE2, - 0x02, 0x34, 0x83, 0xE1, 0x01, 0x00, 0x70, 0xE3, 0xB0, 0x30, 0xCC, 0xE1, 0x02, 0x10, 0x81, 0xE2, - 0xF7, 0xFF, 0xFF, 0x1A, 0x02, 0x8C, 0x88, 0xE2, 0xCF, 0xFF, 0xFF, 0xEA, 0x01, 0x20, 0x42, 0xE2, - 0xB2, 0x30, 0xD1, 0xE0, 0x01, 0x00, 0x72, 0xE3, 0xB0, 0x30, 0xC0, 0xE1, 0xFA, 0xFF, 0xFF, 0x1A, - 0x02, 0xBC, 0x8B, 0xE2, 0xC8, 0xFF, 0xFF, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0xD0, 0x8D, 0xE2, - 0xF0, 0x4B, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x09, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, - 0x0C, 0x30, 0x8D, 0xE5, 0x9E, 0xFF, 0xFF, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0xF6, 0xFF, 0xFF, 0xEA, - 0x04, 0xE0, 0x2D, 0xE5, 0x04, 0xD0, 0x4D, 0xE2, 0xAA, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, - 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x0D, 0xC0, 0xA0, 0xE1, 0xF8, 0xDF, 0x2D, 0xE9, - 0x04, 0xB0, 0x4C, 0xE2, 0x28, 0xD0, 0x4B, 0xE2, 0xF0, 0x6F, 0x9D, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, - 0xDC, 0x00, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; //unsigned char mpcf_dldi[1876] +// Source File: mpcf.dldi +// Time: 6/14/2010 9:38 PM +// Orig. Offset: 0 / 0x00000000 +// Length: 1876 / 0x00000754 (bytes) +data_t mpcf_dldi[1876] = +{ + 0xED, 0xA5, 0x8D, 0xBF, 0x20, 0x43, 0x68, 0x69, 0x73, 0x68, 0x6D, 0x00, 0x01, 0x0B, 0x0C, 0x00, + 0x47, 0x42, 0x41, 0x20, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x20, 0x50, 0x6C, 0x61, 0x79, 0x65, 0x72, + 0x20, 0x28, 0x43, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0x20, 0x46, 0x6C, 0x61, 0x73, 0x68, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xBF, 0x54, 0x07, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, + 0x50, 0x07, 0x80, 0xBF, 0x50, 0x07, 0x80, 0xBF, 0x54, 0x07, 0x80, 0xBF, 0x70, 0x07, 0x80, 0xBF, + 0x4D, 0x50, 0x43, 0x46, 0x13, 0x00, 0x00, 0x00, 0x3C, 0x01, 0x80, 0xBF, 0x98, 0x01, 0x80, 0xBF, + 0x78, 0x02, 0x80, 0xBF, 0xC8, 0x04, 0x80, 0xBF, 0xC8, 0x01, 0x80, 0xBF, 0x10, 0x07, 0x80, 0xBF, + 0x0D, 0xC0, 0xA0, 0xE1, 0xF8, 0xDF, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x28, 0xD0, 0x4B, 0xE2, + 0xF0, 0x6F, 0x9D, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x2C, 0x40, 0x9F, 0xE5, + 0x00, 0x30, 0xD4, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x24, 0x20, 0x9F, 0xE5, 0x05, 0x00, 0x00, 0x1A, + 0x00, 0x00, 0x52, 0xE3, 0x1C, 0x00, 0x9F, 0xE5, 0x0F, 0xE0, 0xA0, 0x11, 0x12, 0xFF, 0x2F, 0x11, + 0x01, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0xC4, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, + 0x54, 0x07, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x48, 0x07, 0x80, 0xBF, 0x04, 0xE0, 0x2D, 0xE5, + 0x40, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x04, 0xD0, 0x4D, 0xE2, 0x38, 0x00, 0x9F, 0xE5, + 0x38, 0x10, 0x9F, 0xE5, 0x0F, 0xE0, 0xA0, 0x11, 0x13, 0xFF, 0x2F, 0x11, 0x30, 0x00, 0x9F, 0xE5, + 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x28, 0x30, 0x9F, 0xE5, 0x02, 0x00, 0x00, 0x0A, + 0x00, 0x00, 0x53, 0xE3, 0x0F, 0xE0, 0xA0, 0x11, 0x13, 0xFF, 0x2F, 0x11, 0x04, 0xD0, 0x8D, 0xE2, + 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x48, 0x07, 0x80, 0xBF, + 0x58, 0x07, 0x80, 0xBF, 0x4C, 0x07, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x09, 0x14, 0xA0, 0xE3, + 0x06, 0x18, 0x81, 0xE2, 0xB0, 0x30, 0xD1, 0xE1, 0x03, 0x30, 0xE0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, + 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xB0, 0x30, 0xC1, 0xE1, 0xB0, 0x20, 0xD1, 0xE1, + 0x04, 0xE0, 0x2D, 0xE5, 0xAA, 0xCC, 0xA0, 0xE3, 0x55, 0xEC, 0xE0, 0xE3, 0x03, 0x00, 0x52, 0xE1, + 0xAA, 0xE0, 0x4E, 0xE2, 0x55, 0xC0, 0x8C, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0x1A, + 0xB0, 0xE0, 0xC1, 0xE1, 0xB0, 0x30, 0xD1, 0xE1, 0x0C, 0x00, 0x53, 0xE0, 0x01, 0x00, 0xA0, 0x13, + 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x26, 0x35, 0xA0, 0xE3, 0x03, 0x37, 0x83, 0xE2, + 0x50, 0x20, 0xA0, 0xE3, 0xB0, 0x20, 0xC3, 0xE1, 0xB0, 0x00, 0xD3, 0xE1, 0x00, 0x08, 0xA0, 0xE1, + 0x20, 0x08, 0xA0, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x50, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, + 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1, 0x09, 0x34, 0xA0, 0xE3, 0x0E, 0x38, 0x83, 0xE2, + 0xB0, 0x20, 0xD3, 0xE1, 0x80, 0x00, 0x12, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, + 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x09, 0x34, 0xA0, 0xE3, + 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0x20, 0xD3, 0xE1, 0x26, 0x17, 0xA0, 0xE3, 0x96, 0x1C, 0x81, 0xE2, + 0x80, 0x00, 0x12, 0xE3, 0x01, 0x00, 0x80, 0xE2, 0x80, 0x10, 0x81, 0xE2, 0xF4, 0xFF, 0xFF, 0x1A, + 0x26, 0x15, 0xA0, 0xE3, 0x03, 0x17, 0x81, 0xE2, 0xB0, 0x30, 0xD1, 0xE1, 0x50, 0x30, 0x13, 0xE2, + 0x01, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0x11, 0x26, 0x27, 0xA0, 0xE3, 0x96, 0x2C, 0x82, 0xE2, + 0x03, 0x00, 0xA0, 0xE1, 0x80, 0x20, 0x82, 0xE2, 0x01, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE1, + 0x0A, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD1, 0xE1, 0x50, 0x30, 0x13, 0xE2, 0x01, 0x00, 0x80, 0xE2, + 0xF9, 0xFF, 0xFF, 0x0A, 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, + 0x03, 0x00, 0x50, 0xE1, 0x00, 0x00, 0xA0, 0xC3, 0x01, 0x00, 0xA0, 0xD3, 0x1E, 0xFF, 0x2F, 0xE1, + 0x03, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4B, 0x2D, 0xE9, 0x09, 0x34, 0xA0, 0xE3, + 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0xC0, 0xD3, 0xE1, 0x80, 0x00, 0x1C, 0xE3, 0x10, 0xD0, 0x4D, 0xE2, + 0x01, 0x90, 0xA0, 0xE1, 0x02, 0xE0, 0xA0, 0xE1, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0xC0, 0xA0, 0xE3, + 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5C, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x09, 0x34, 0xA0, 0xE3, + 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0x20, 0xD3, 0xE1, 0x26, 0x17, 0xA0, 0xE3, 0x96, 0x1C, 0x81, 0xE2, + 0x80, 0x00, 0x12, 0xE3, 0x01, 0xC0, 0x8C, 0xE2, 0x80, 0x10, 0x81, 0xE2, 0xF4, 0xFF, 0xFF, 0x1A, + 0x26, 0xC5, 0xA0, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x30, 0x13, 0xE2, + 0x26, 0x17, 0xA0, 0x03, 0x96, 0x1C, 0x81, 0x02, 0x03, 0x20, 0xA0, 0x01, 0x80, 0x10, 0x81, 0x02, + 0x02, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, 0x67, 0x00, 0x00, 0x0A, + 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x00, 0x13, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF9, 0xFF, 0xFF, 0x0A, + 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, + 0x5E, 0x00, 0x00, 0xCA, 0xFF, 0x00, 0x59, 0xE3, 0x00, 0x30, 0xA0, 0x83, 0x0C, 0x30, 0x8D, 0x85, + 0x5E, 0x00, 0x00, 0x9A, 0x00, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, + 0x09, 0x54, 0xA0, 0xE3, 0x04, 0x30, 0x8D, 0xE5, 0x0C, 0x30, 0x9D, 0xE5, 0x20, 0x4C, 0xA0, 0xE1, + 0x0E, 0xB0, 0xA0, 0xE1, 0x05, 0x60, 0xA0, 0xE1, 0x20, 0x74, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, + 0x20, 0x18, 0xA0, 0xE1, 0x05, 0xC0, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x05, 0xE0, 0xA0, 0xE1, + 0x01, 0x57, 0x85, 0xE2, 0xB0, 0x30, 0xC5, 0xE1, 0x04, 0x30, 0x9D, 0xE5, 0x0F, 0x40, 0x04, 0xE2, + 0x06, 0x68, 0x86, 0xE2, 0xB0, 0x30, 0xC6, 0xE1, 0xFF, 0x70, 0x07, 0xE2, 0x02, 0x27, 0x82, 0xE2, + 0xFF, 0x10, 0x01, 0xE2, 0x0A, 0x08, 0x80, 0xE2, 0xE0, 0x40, 0x84, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, + 0x0E, 0xE8, 0x8E, 0xE2, 0x20, 0x30, 0xA0, 0xE3, 0xB0, 0x70, 0xC2, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, + 0xB0, 0x40, 0xCC, 0xE1, 0xB0, 0x30, 0xCE, 0xE1, 0x0B, 0x80, 0xA0, 0xE1, 0x01, 0x90, 0x59, 0xE2, + 0x3E, 0x00, 0x00, 0x3A, 0x26, 0x25, 0xA0, 0xE3, 0x03, 0x27, 0x82, 0xE2, 0xB0, 0x30, 0xD2, 0xE1, + 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, + 0x26, 0x17, 0xA0, 0x13, 0x96, 0x1C, 0x81, 0x12, 0x02, 0x00, 0xA0, 0x11, 0x80, 0x10, 0x81, 0x12, + 0x00, 0x20, 0xA0, 0x13, 0x02, 0x00, 0x00, 0x1A, 0x0D, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, + 0x26, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, + 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF6, 0xFF, 0xFF, 0x1A, + 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, + 0x1A, 0x00, 0x00, 0xCA, 0x01, 0x00, 0x18, 0xE3, 0x0B, 0x10, 0xA0, 0x01, 0xFF, 0x20, 0xA0, 0x03, + 0x09, 0x04, 0xA0, 0x03, 0x0E, 0x00, 0x00, 0x0A, 0x08, 0x10, 0xA0, 0xE1, 0xFF, 0x00, 0xA0, 0xE3, + 0x09, 0xC4, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, + 0x01, 0x00, 0x40, 0xE2, 0x43, 0x24, 0xA0, 0xE1, 0x01, 0x00, 0x70, 0xE3, 0x01, 0x20, 0xC1, 0xE5, + 0x00, 0x30, 0xC1, 0xE5, 0x02, 0x10, 0x81, 0xE2, 0xF5, 0xFF, 0xFF, 0x1A, 0x02, 0x8C, 0x88, 0xE2, + 0xCD, 0xFF, 0xFF, 0xEA, 0x01, 0x20, 0x42, 0xE2, 0xB0, 0x30, 0xD0, 0xE1, 0x01, 0x00, 0x72, 0xE3, + 0xB2, 0x30, 0xC1, 0xE0, 0xFA, 0xFF, 0xFF, 0x1A, 0x02, 0xBC, 0x8B, 0xE2, 0xC6, 0xFF, 0xFF, 0xEA, + 0x00, 0x00, 0xA0, 0xE3, 0x10, 0xD0, 0x8D, 0xE2, 0xF0, 0x4B, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, + 0x09, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0x0C, 0x30, 0x8D, 0xE5, 0x9C, 0xFF, 0xFF, 0xEA, + 0x01, 0x00, 0xA0, 0xE3, 0xF6, 0xFF, 0xFF, 0xEA, 0xF0, 0x4B, 0x2D, 0xE9, 0x09, 0x34, 0xA0, 0xE3, + 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0xC0, 0xD3, 0xE1, 0x80, 0x00, 0x1C, 0xE3, 0x10, 0xD0, 0x4D, 0xE2, + 0x01, 0x90, 0xA0, 0xE1, 0x02, 0xE0, 0xA0, 0xE1, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0xC0, 0xA0, 0xE3, + 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5C, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x09, 0x34, 0xA0, 0xE3, + 0x0E, 0x38, 0x83, 0xE2, 0xB0, 0x20, 0xD3, 0xE1, 0x26, 0x17, 0xA0, 0xE3, 0x96, 0x1C, 0x81, 0xE2, + 0x80, 0x00, 0x12, 0xE3, 0x01, 0xC0, 0x8C, 0xE2, 0x80, 0x10, 0x81, 0xE2, 0xF4, 0xFF, 0xFF, 0x1A, + 0x26, 0xC5, 0xA0, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x30, 0x13, 0xE2, + 0x26, 0x17, 0xA0, 0x03, 0x96, 0x1C, 0x81, 0x02, 0x03, 0x20, 0xA0, 0x01, 0x80, 0x10, 0x81, 0x02, + 0x02, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, 0x65, 0x00, 0x00, 0x0A, + 0xB0, 0x30, 0xDC, 0xE1, 0x50, 0x00, 0x13, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF9, 0xFF, 0xFF, 0x0A, + 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, + 0x5C, 0x00, 0x00, 0xCA, 0xFF, 0x00, 0x59, 0xE3, 0x00, 0x30, 0xA0, 0x83, 0x0C, 0x30, 0x8D, 0x85, + 0x5C, 0x00, 0x00, 0x9A, 0x00, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, + 0x09, 0x54, 0xA0, 0xE3, 0x04, 0x30, 0x8D, 0xE5, 0x0C, 0x30, 0x9D, 0xE5, 0x20, 0x4C, 0xA0, 0xE1, + 0x0E, 0xB0, 0xA0, 0xE1, 0x05, 0x60, 0xA0, 0xE1, 0x20, 0x74, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, + 0x20, 0x18, 0xA0, 0xE1, 0x05, 0xC0, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x05, 0xE0, 0xA0, 0xE1, + 0x01, 0x57, 0x85, 0xE2, 0xB0, 0x30, 0xC5, 0xE1, 0x04, 0x30, 0x9D, 0xE5, 0x0F, 0x40, 0x04, 0xE2, + 0x06, 0x68, 0x86, 0xE2, 0xB0, 0x30, 0xC6, 0xE1, 0xFF, 0x70, 0x07, 0xE2, 0x02, 0x27, 0x82, 0xE2, + 0xFF, 0x10, 0x01, 0xE2, 0x0A, 0x08, 0x80, 0xE2, 0xE0, 0x40, 0x84, 0xE3, 0x03, 0xC7, 0x8C, 0xE2, + 0x0E, 0xE8, 0x8E, 0xE2, 0x30, 0x30, 0xA0, 0xE3, 0xB0, 0x70, 0xC2, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, + 0xB0, 0x40, 0xCC, 0xE1, 0xB0, 0x30, 0xCE, 0xE1, 0x0B, 0x80, 0xA0, 0xE1, 0x01, 0x90, 0x59, 0xE2, + 0x3C, 0x00, 0x00, 0x3A, 0x26, 0x25, 0xA0, 0xE3, 0x03, 0x27, 0x82, 0xE2, 0xB0, 0x30, 0xD2, 0xE1, + 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, + 0x26, 0x17, 0xA0, 0x13, 0x96, 0x1C, 0x81, 0x12, 0x02, 0x00, 0xA0, 0x11, 0x80, 0x10, 0x81, 0x12, + 0x00, 0x20, 0xA0, 0x13, 0x02, 0x00, 0x00, 0x1A, 0x0D, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x52, 0xE1, + 0x24, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, + 0xFF, 0x30, 0x03, 0xE2, 0x58, 0x00, 0x53, 0xE3, 0x01, 0x20, 0x82, 0xE2, 0xF6, 0xFF, 0xFF, 0x1A, + 0x26, 0x37, 0xA0, 0xE3, 0x96, 0x3C, 0x83, 0xE2, 0x7F, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x52, 0xE1, + 0x18, 0x00, 0x00, 0xCA, 0x01, 0x00, 0x18, 0xE3, 0x0B, 0x10, 0xA0, 0x01, 0xFF, 0x20, 0xA0, 0x03, + 0x09, 0x04, 0xA0, 0x03, 0x0C, 0x00, 0x00, 0x0A, 0x08, 0x10, 0xA0, 0xE1, 0xFF, 0x00, 0xA0, 0xE3, + 0x09, 0xC4, 0xA0, 0xE3, 0x00, 0x30, 0xD1, 0xE5, 0x01, 0x20, 0xD1, 0xE5, 0x01, 0x00, 0x40, 0xE2, + 0x02, 0x34, 0x83, 0xE1, 0x01, 0x00, 0x70, 0xE3, 0xB0, 0x30, 0xCC, 0xE1, 0x02, 0x10, 0x81, 0xE2, + 0xF7, 0xFF, 0xFF, 0x1A, 0x02, 0x8C, 0x88, 0xE2, 0xCF, 0xFF, 0xFF, 0xEA, 0x01, 0x20, 0x42, 0xE2, + 0xB2, 0x30, 0xD1, 0xE0, 0x01, 0x00, 0x72, 0xE3, 0xB0, 0x30, 0xC0, 0xE1, 0xFA, 0xFF, 0xFF, 0x1A, + 0x02, 0xBC, 0x8B, 0xE2, 0xC8, 0xFF, 0xFF, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0xD0, 0x8D, 0xE2, + 0xF0, 0x4B, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x09, 0x38, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, + 0x0C, 0x30, 0x8D, 0xE5, 0x9E, 0xFF, 0xFF, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0xF6, 0xFF, 0xFF, 0xEA, + 0x04, 0xE0, 0x2D, 0xE5, 0x04, 0xD0, 0x4D, 0xE2, 0xAA, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, + 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x0D, 0xC0, 0xA0, 0xE1, 0xF8, 0xDF, 0x2D, 0xE9, + 0x04, 0xB0, 0x4C, 0xE2, 0x28, 0xD0, 0x4B, 0xE2, 0xF0, 0x6F, 0x9D, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, + 0xDC, 0x00, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, +}; //unsigned char mpcf_dldi[1876] + +data_t r4_dldi[2276] = +{ + 0xED, 0xA5, 0x8D, 0xBF, 0x20, 0x43, 0x68, 0x69, 0x73, 0x68, 0x6D, 0x00, 0x01, 0x0D, 0x0E, 0x00, + 0x52, 0x34, 0x28, 0x44, 0x53, 0x29, 0x20, 0x2D, 0x20, 0x52, 0x65, 0x76, 0x6F, 0x6C, 0x75, 0x74, + 0x69, 0x6F, 0x6E, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x44, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xBF, 0xE4, 0x08, 0x80, 0xBF, 0x98, 0x00, 0x80, 0xBF, 0xB8, 0x00, 0x80, 0xBF, + 0xE0, 0x08, 0x80, 0xBF, 0xE0, 0x08, 0x80, 0xBF, 0xE4, 0x08, 0x80, 0xBF, 0x00, 0x09, 0x80, 0xBF, + 0x52, 0x34, 0x54, 0x46, 0x23, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x80, 0xBF, 0xD0, 0x03, 0x80, 0xBF, + 0xD8, 0x04, 0x80, 0xBF, 0x24, 0x03, 0x80, 0xBF, 0x5C, 0x01, 0x80, 0xBF, 0x64, 0x01, 0x80, 0xBF, + 0x0D, 0xC0, 0xA0, 0xE1, 0xF8, 0xDF, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x28, 0xD0, 0x4B, 0xE2, + 0xF0, 0x6F, 0x9D, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, + 0x29, 0x05, 0x80, 0xBF, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x4D, 0x05, 0x80, 0xBF, + 0x78, 0x47, 0xC0, 0x46, 0xD6, 0x01, 0x00, 0xEA, 0x10, 0x40, 0x2D, 0xE9, 0x2C, 0x40, 0x9F, 0xE5, + 0x00, 0x30, 0xD4, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x24, 0x20, 0x9F, 0xE5, 0x05, 0x00, 0x00, 0x1A, + 0x00, 0x00, 0x52, 0xE3, 0x1C, 0x00, 0x9F, 0xE5, 0x0F, 0xE0, 0xA0, 0x11, 0x12, 0xFF, 0x2F, 0x11, + 0x01, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0xC4, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, + 0xE4, 0x08, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x08, 0x80, 0xBF, 0x04, 0xE0, 0x2D, 0xE5, + 0x40, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x04, 0xD0, 0x4D, 0xE2, 0x38, 0x00, 0x9F, 0xE5, + 0x38, 0x10, 0x9F, 0xE5, 0x0F, 0xE0, 0xA0, 0x11, 0x13, 0xFF, 0x2F, 0x11, 0x30, 0x00, 0x9F, 0xE5, + 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x28, 0x30, 0x9F, 0xE5, 0x02, 0x00, 0x00, 0x0A, + 0x00, 0x00, 0x53, 0xE3, 0x0F, 0xE0, 0xA0, 0x11, 0x13, 0xFF, 0x2F, 0x11, 0x04, 0xD0, 0x8D, 0xE2, + 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x08, 0x80, 0xBF, + 0xE8, 0x08, 0x80, 0xBF, 0xDC, 0x08, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xA0, 0xE3, + 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, + 0x00, 0x50, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, + 0xC4, 0xFF, 0xFF, 0xEB, 0x01, 0x33, 0xA0, 0xE3, 0xA4, 0x51, 0x83, 0xE5, 0x04, 0xE1, 0x86, 0xE0, + 0x03, 0xC0, 0xA0, 0xE1, 0x41, 0x46, 0xA0, 0xE3, 0xA4, 0x31, 0x9C, 0xE5, 0x02, 0x05, 0x13, 0xE3, + 0x09, 0x00, 0x00, 0x0A, 0x10, 0x30, 0x94, 0xE5, 0x0E, 0x00, 0x56, 0xE1, 0x23, 0x0C, 0xA0, 0xE1, + 0x23, 0x24, 0xA0, 0xE1, 0x23, 0x18, 0xA0, 0xE1, 0x01, 0x20, 0xC6, 0x35, 0x02, 0x10, 0xC6, 0x35, + 0x03, 0x00, 0xC6, 0x35, 0x00, 0x30, 0xC6, 0x35, 0x04, 0x60, 0x86, 0xE2, 0xA4, 0x31, 0x9C, 0xE5, + 0x00, 0x00, 0x53, 0xE3, 0xEF, 0xFF, 0xFF, 0xBA, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, + 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, + 0x01, 0x43, 0xA0, 0xE3, 0x41, 0x66, 0xA0, 0xE3, 0x07, 0x00, 0xA0, 0xE1, 0xA5, 0xFF, 0xFF, 0xEB, + 0xA4, 0x81, 0x84, 0xE5, 0xA4, 0x31, 0x94, 0xE5, 0x02, 0x05, 0x13, 0xE3, 0x02, 0x00, 0x00, 0x0A, + 0x10, 0x30, 0x96, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x01, 0x50, 0xA0, 0x03, 0xA4, 0x31, 0x94, 0xE5, + 0x00, 0x00, 0x53, 0xE3, 0xF6, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0x55, 0xE3, 0xF1, 0xFF, 0xFF, 0x0A, + 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x0C, 0xD0, 0x4D, 0xE2, + 0x00, 0xC0, 0xA0, 0xE1, 0x20, 0xEC, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3, 0x20, 0x58, 0xA0, 0xE1, + 0x20, 0x64, 0xA0, 0xE1, 0x44, 0x30, 0xE0, 0xE3, 0x0D, 0x00, 0xA0, 0xE1, 0x07, 0x30, 0xCD, 0xE5, + 0x06, 0xE0, 0xCD, 0xE5, 0x05, 0x50, 0xCD, 0xE5, 0x04, 0x60, 0xCD, 0xE5, 0x02, 0x50, 0xA0, 0xE1, + 0x03, 0xC0, 0xCD, 0xE5, 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x40, 0xCD, 0xE5, 0x01, 0x40, 0xCD, 0xE5, + 0x00, 0x40, 0xCD, 0xE5, 0x83, 0xFF, 0xFF, 0xEB, 0xE1, 0x34, 0xA0, 0xE3, 0x16, 0x37, 0x83, 0xE2, + 0x01, 0x23, 0xA0, 0xE3, 0x06, 0x3A, 0x83, 0xE2, 0xA4, 0x31, 0x82, 0xE5, 0x05, 0xE1, 0x86, 0xE0, + 0x0D, 0x70, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x41, 0x56, 0xA0, 0xE3, 0xA4, 0x31, 0x9C, 0xE5, + 0x02, 0x05, 0x13, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0x0E, 0x00, 0x56, 0xE1, 0x09, 0x00, 0x00, 0x2A, + 0x03, 0x00, 0x16, 0xE3, 0x03, 0x30, 0xD6, 0x15, 0x00, 0x20, 0xD6, 0x15, 0x01, 0x10, 0xD6, 0x15, + 0x02, 0x00, 0xD6, 0x15, 0x03, 0x3C, 0xA0, 0x11, 0x01, 0x24, 0x82, 0x11, 0x00, 0x38, 0x83, 0x11, + 0x00, 0x40, 0x96, 0x05, 0x03, 0x40, 0x82, 0x11, 0x10, 0x40, 0x85, 0xE5, 0x04, 0x60, 0x86, 0xE2, + 0xA4, 0x31, 0x9C, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0xEB, 0xFF, 0xFF, 0xBA, 0xA7, 0x04, 0xA0, 0xE3, + 0x16, 0x07, 0x80, 0xE2, 0x43, 0x30, 0xE0, 0xE3, 0x06, 0x0A, 0x80, 0xE2, 0x0D, 0x10, 0xA0, 0xE1, + 0x07, 0x30, 0xCD, 0xE5, 0xB1, 0xFF, 0xFF, 0xEB, 0x0C, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, + 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0x51, 0xE2, 0x04, 0xD0, 0x4D, 0xE2, + 0x00, 0x50, 0xA0, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x02, 0x40, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE3, + 0x85, 0x04, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x01, 0x60, 0x86, 0xE2, 0x80, 0x20, 0xA0, 0xE3, + 0xB8, 0xFF, 0xFF, 0xEB, 0x06, 0x00, 0x57, 0xE1, 0x01, 0x50, 0x85, 0xE2, 0x02, 0x4C, 0x84, 0xE2, + 0xF6, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, + 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xE0, 0x2D, 0xE5, 0xA7, 0x04, 0xA0, 0xE3, 0x14, 0xD0, 0x4D, 0xE2, + 0x16, 0x07, 0x80, 0xE2, 0x00, 0xC0, 0xA0, 0xE3, 0x4F, 0xE0, 0xE0, 0xE3, 0x06, 0x0A, 0x80, 0xE2, + 0x0C, 0x10, 0x8D, 0xE2, 0x01, 0x20, 0xA0, 0xE3, 0x04, 0x30, 0x8D, 0xE2, 0x0B, 0xE0, 0xCD, 0xE5, + 0x04, 0xC0, 0xCD, 0xE5, 0x0A, 0xC0, 0xCD, 0xE5, 0x09, 0xC0, 0xCD, 0xE5, 0x08, 0xC0, 0xCD, 0xE5, + 0x07, 0xC0, 0xCD, 0xE5, 0x06, 0xC0, 0xCD, 0xE5, 0x05, 0xC0, 0xCD, 0xE5, 0x38, 0xFF, 0xFF, 0xEB, + 0x0C, 0x00, 0x9D, 0xE5, 0x14, 0xD0, 0x8D, 0xE2, 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, + 0x04, 0xE0, 0x2D, 0xE5, 0x04, 0xD0, 0x4D, 0xE2, 0xE5, 0xFF, 0xFF, 0xEB, 0x07, 0x00, 0x00, 0xE2, + 0x04, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x01, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2, + 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xE0, 0x2D, 0xE5, 0x04, 0xD0, 0x4D, 0xE2, + 0xDB, 0xFF, 0xFF, 0xEB, 0x07, 0x00, 0x00, 0xE2, 0x04, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, + 0x01, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2, 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, + 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0xC0, 0xA0, 0xE1, 0xA7, 0x04, 0xA0, 0xE3, 0x08, 0xD0, 0x4D, 0xE2, + 0x16, 0x07, 0x80, 0xE2, 0x2C, 0x58, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3, + 0x2C, 0xEC, 0xA0, 0xE1, 0x2C, 0x64, 0xA0, 0xE1, 0x46, 0x30, 0xE0, 0xE3, 0x06, 0x0A, 0x80, 0xE2, + 0x0D, 0x10, 0xA0, 0xE1, 0x07, 0x30, 0xCD, 0xE5, 0x05, 0x50, 0xCD, 0xE5, 0x03, 0xC0, 0xCD, 0xE5, + 0x02, 0x50, 0xA0, 0xE1, 0x06, 0xE0, 0xCD, 0xE5, 0x04, 0x60, 0xCD, 0xE5, 0x00, 0x40, 0xCD, 0xE5, + 0x02, 0x40, 0xCD, 0xE5, 0x01, 0x40, 0xCD, 0xE5, 0x58, 0xFF, 0xFF, 0xEB, 0xA1, 0x04, 0xA0, 0xE3, + 0x16, 0x07, 0x80, 0xE2, 0x45, 0xC0, 0xE0, 0xE3, 0x03, 0x00, 0x17, 0xE3, 0x0D, 0x80, 0xA0, 0xE1, + 0x06, 0x0A, 0x80, 0xE2, 0x07, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x0D, 0x30, 0xA0, 0xE1, + 0x07, 0xC0, 0xCD, 0xE5, 0x03, 0x00, 0x00, 0x0A, 0x2F, 0xFF, 0xFF, 0xEB, 0x08, 0xD0, 0x8D, 0xE2, + 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xA1, 0x04, 0xA0, 0xE3, 0x16, 0x07, 0x80, 0xE2, + 0x06, 0x0A, 0x80, 0xE2, 0x07, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x0D, 0x30, 0xA0, 0xE1, + 0xF3, 0xFE, 0xFF, 0xEB, 0xF4, 0xFF, 0xFF, 0xEA, 0xF0, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0x51, 0xE2, + 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x02, 0x40, 0xA0, 0xE1, + 0x00, 0x60, 0xA0, 0xE3, 0x85, 0x04, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x01, 0x60, 0x86, 0xE2, + 0x80, 0x20, 0xA0, 0xE3, 0xC5, 0xFF, 0xFF, 0xEB, 0x06, 0x00, 0x57, 0xE1, 0x01, 0x50, 0x85, 0xE2, + 0x02, 0x4C, 0x84, 0xE2, 0xF6, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, + 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0xB5, 0x40, 0x23, 0x05, 0x4A, 0x5B, 0x42, + 0x05, 0x4C, 0x13, 0x70, 0x00, 0x21, 0x43, 0x5C, 0x62, 0x1A, 0x01, 0x31, 0x13, 0x70, 0x08, 0x29, + 0xF9, 0xD1, 0x10, 0xBD, 0xA1, 0x01, 0x00, 0x04, 0xAF, 0x01, 0x00, 0x04, 0x70, 0xB5, 0x05, 0x1C, + 0x18, 0x1C, 0x0E, 0x1C, 0x14, 0x1C, 0xFF, 0xF7, 0xE7, 0xFF, 0x0A, 0x4B, 0xA4, 0x00, 0x80, 0x22, + 0x09, 0x48, 0x1D, 0x60, 0xA4, 0x19, 0x19, 0x1C, 0x12, 0x04, 0x0B, 0x68, 0x13, 0x42, 0x04, 0xD0, + 0x03, 0x68, 0xA6, 0x42, 0x00, 0xD2, 0x33, 0x60, 0x04, 0x36, 0x0B, 0x68, 0x00, 0x2B, 0xF4, 0xDB, + 0x70, 0xBD, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x04, 0x10, 0x00, 0x10, 0x04, 0x70, 0xB5, 0x0D, 0x1C, + 0x14, 0x1C, 0x1E, 0x1C, 0xFF, 0xF7, 0xC8, 0xFF, 0x63, 0x00, 0x1B, 0x19, 0x07, 0x4A, 0x9B, 0x00, + 0x99, 0x18, 0x07, 0x4A, 0x0A, 0x60, 0x07, 0x49, 0x5A, 0x18, 0x15, 0x60, 0x06, 0x4A, 0x9B, 0x18, + 0x06, 0x4A, 0x1A, 0x60, 0x06, 0x4B, 0x1E, 0x60, 0x70, 0xBD, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x04, + 0x10, 0x00, 0x10, 0x04, 0xB4, 0x00, 0x00, 0x04, 0xB8, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xAF, + 0xA4, 0x01, 0x00, 0x04, 0x10, 0xB5, 0x0C, 0x1C, 0xFF, 0xF7, 0xA6, 0xFF, 0x06, 0x4B, 0x80, 0x22, + 0x1C, 0x43, 0x06, 0x4B, 0x12, 0x04, 0x1C, 0x60, 0x19, 0x1C, 0x0B, 0x68, 0x13, 0x42, 0xFC, 0xD0, + 0x03, 0x4B, 0x18, 0x68, 0x10, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xA4, 0x01, 0x00, 0x04, + 0x10, 0x00, 0x10, 0x04, 0x70, 0xB5, 0x82, 0xB0, 0x1E, 0x1C, 0x04, 0x0E, 0x6B, 0x46, 0x9C, 0x71, + 0x04, 0x0C, 0x00, 0x25, 0x5C, 0x71, 0x04, 0x0A, 0xDD, 0x71, 0xD8, 0x70, 0x9D, 0x70, 0x5D, 0x70, + 0x1D, 0x70, 0x30, 0x1C, 0x1C, 0x71, 0xFF, 0xF7, 0x91, 0xFF, 0x02, 0xB0, 0x70, 0xBD, 0x00, 0x00, + 0x00, 0xB5, 0x80, 0x22, 0x81, 0xB0, 0x01, 0x1C, 0x92, 0x00, 0x00, 0x20, 0x02, 0x4B, 0xFF, 0xF7, + 0xE1, 0xFF, 0x01, 0xB0, 0x00, 0xBD, 0x00, 0x00, 0xFF, 0x1F, 0x3F, 0xA9, 0x30, 0xB5, 0x83, 0xB0, + 0x05, 0x1C, 0x08, 0x22, 0x04, 0x49, 0x68, 0x46, 0xFF, 0xF7, 0x2A, 0xFD, 0x29, 0x1C, 0x68, 0x46, + 0xFF, 0xF7, 0xB8, 0xFF, 0x03, 0xB0, 0x30, 0xBD, 0xC8, 0x08, 0x80, 0xBF, 0xF0, 0xB5, 0x5F, 0x46, + 0x56, 0x46, 0x4D, 0x46, 0x44, 0x46, 0xF0, 0xB4, 0x12, 0x18, 0x83, 0xB0, 0x94, 0x46, 0x04, 0x1C, + 0x0F, 0x1C, 0x01, 0x93, 0x60, 0x45, 0x63, 0xD2, 0x38, 0x4A, 0x39, 0x4B, 0x90, 0x46, 0x9B, 0x46, + 0x02, 0x32, 0x80, 0x23, 0x92, 0x46, 0x99, 0x46, 0x5B, 0x46, 0x42, 0x46, 0x13, 0x80, 0x06, 0x23, + 0x52, 0x46, 0x13, 0x70, 0x42, 0x46, 0x13, 0x88, 0x4A, 0x46, 0x13, 0x42, 0xFA, 0xD1, 0x43, 0x46, + 0x40, 0x22, 0x1A, 0x80, 0x5A, 0x46, 0x1A, 0x80, 0x01, 0x9B, 0x01, 0x2B, 0x4F, 0xD0, 0x02, 0x23, + 0x52, 0x46, 0x2A, 0x49, 0x13, 0x70, 0x80, 0x22, 0x0B, 0x88, 0x13, 0x42, 0xFC, 0xD1, 0x01, 0x9B, + 0x01, 0x2B, 0x08, 0xD9, 0x23, 0x04, 0x52, 0x46, 0x1B, 0x0E, 0x24, 0x49, 0x13, 0x70, 0x80, 0x22, + 0x0B, 0x88, 0x13, 0x42, 0xFC, 0xD1, 0x23, 0x06, 0x52, 0x46, 0x1B, 0x0E, 0x1F, 0x49, 0x13, 0x70, + 0x80, 0x22, 0x0B, 0x88, 0x13, 0x42, 0xFC, 0xD1, 0x1E, 0x4D, 0x1C, 0x4A, 0x00, 0x20, 0x80, 0x21, + 0x3B, 0x78, 0x01, 0x37, 0x2B, 0x70, 0x13, 0x88, 0x0B, 0x42, 0xFC, 0xD1, 0x01, 0x34, 0xA4, 0x45, + 0x02, 0xD9, 0x01, 0x30, 0x20, 0x28, 0xF3, 0xD1, 0x40, 0x23, 0x13, 0x80, 0x5B, 0x46, 0x13, 0x80, + 0x12, 0x49, 0x52, 0x46, 0x05, 0x23, 0x13, 0x70, 0x80, 0x22, 0x0B, 0x88, 0x13, 0x42, 0xFC, 0xD1, + 0x10, 0x48, 0x0E, 0x49, 0x00, 0x26, 0x80, 0x22, 0x01, 0x25, 0x06, 0x70, 0x0B, 0x88, 0x13, 0x42, + 0xFC, 0xD1, 0x03, 0x78, 0x2B, 0x42, 0xF8, 0xD1, 0x40, 0x23, 0x0B, 0x80, 0xA4, 0x45, 0xA3, 0xD8, + 0x03, 0xB0, 0x3C, 0xBC, 0x90, 0x46, 0x99, 0x46, 0xA2, 0x46, 0xAB, 0x46, 0xF0, 0xBD, 0x23, 0x0A, + 0xDB, 0x00, 0x02, 0x22, 0x13, 0x43, 0x1B, 0x06, 0x1B, 0x0E, 0xA9, 0xE7, 0xA0, 0x01, 0x00, 0x04, + 0x40, 0xA0, 0xFF, 0xFF, 0xA2, 0x01, 0x00, 0x04, 0x70, 0xB5, 0x14, 0x1C, 0x1E, 0x1C, 0x22, 0x4A, + 0x22, 0x4B, 0x0D, 0x1C, 0x1A, 0x80, 0x01, 0x2E, 0x31, 0xD0, 0x03, 0x22, 0x20, 0x4B, 0x1F, 0x49, + 0x1A, 0x70, 0x80, 0x22, 0x0B, 0x88, 0x13, 0x42, 0xFC, 0xD1, 0x03, 0x2E, 0x2E, 0xD0, 0x01, 0x2E, + 0x03, 0xD9, 0x03, 0x04, 0x1A, 0x4A, 0x1B, 0x0E, 0x13, 0x70, 0x18, 0x49, 0x0B, 0x88, 0x1A, 0x06, + 0xFB, 0xD4, 0x03, 0x06, 0x16, 0x4A, 0x1B, 0x0E, 0x13, 0x70, 0x08, 0x1C, 0x80, 0x22, 0x03, 0x88, + 0x13, 0x42, 0xFC, 0xD1, 0x00, 0x2C, 0x0E, 0xD0, 0x11, 0x49, 0x10, 0x48, 0x00, 0x26, 0x80, 0x22, + 0x0E, 0x70, 0x03, 0x88, 0x13, 0x42, 0xFC, 0xD1, 0x0B, 0x78, 0x01, 0x3C, 0x2B, 0x70, 0x00, 0x2C, + 0x01, 0xD0, 0x01, 0x35, 0xF4, 0xE7, 0x09, 0x4B, 0x40, 0x22, 0x1A, 0x80, 0x70, 0xBD, 0x03, 0x0A, + 0x03, 0x22, 0xDB, 0x00, 0x13, 0x43, 0x1B, 0x06, 0x1A, 0x0E, 0xC7, 0xE7, 0x03, 0x02, 0x04, 0x4A, + 0x1B, 0x0E, 0x13, 0x70, 0xD1, 0xE7, 0x00, 0x00, 0x40, 0xA0, 0xFF, 0xFF, 0xA0, 0x01, 0x00, 0x04, + 0xA2, 0x01, 0x00, 0x04, 0x0F, 0x00, 0x52, 0xE3, 0x04, 0xE0, 0x2D, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, + 0x02, 0xE0, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0x9A, 0x00, 0x30, 0x81, 0xE1, 0x03, 0x00, 0x13, 0xE3, + 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x5E, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x00, 0x20, 0xA0, 0xE3, + 0x01, 0x30, 0xD1, 0xE4, 0x0C, 0x30, 0xC2, 0xE7, 0x01, 0x20, 0x82, 0xE2, 0x0E, 0x00, 0x52, 0xE1, + 0xFA, 0xFF, 0xFF, 0x1A, 0x04, 0xE0, 0x9D, 0xE4, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x30, 0x91, 0xE5, + 0x00, 0x30, 0x8C, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0x04, 0x20, 0x8C, 0xE5, 0x08, 0x30, 0x91, 0xE5, + 0x08, 0x30, 0x8C, 0xE5, 0x10, 0xE0, 0x4E, 0xE2, 0x0C, 0x30, 0x91, 0xE5, 0x0F, 0x00, 0x5E, 0xE3, + 0x0C, 0x30, 0x8C, 0xE5, 0x10, 0x10, 0x81, 0xE2, 0x10, 0xC0, 0x8C, 0xE2, 0xF2, 0xFF, 0xFF, 0x8A, + 0x03, 0x00, 0x5E, 0xE3, 0xE6, 0xFF, 0xFF, 0x9A, 0x04, 0xE0, 0x4E, 0xE2, 0x04, 0x30, 0x91, 0xE4, + 0x03, 0x00, 0x5E, 0xE3, 0x04, 0x30, 0x8C, 0xE4, 0xFA, 0xFF, 0xFF, 0x8A, 0xE0, 0xFF, 0xFF, 0xEA, + 0x0D, 0xC0, 0xA0, 0xE1, 0xF8, 0xDF, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x28, 0xD0, 0x4B, 0xE2, + 0xF0, 0x6F, 0x9D, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0xFC, 0x00, 0x80, 0xBF, 0xB8, 0x00, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; -bool tryPatch(void* data, size_t size) +bool tryPatch(void* data, size_t size, unsigned int device) { // Find the DSDI reserved space in the file addr_t patchOffset = quickFind ((data_t*)data, dldiMagicString, size, sizeof(dldiMagicString)/sizeof(char)); @@ -641,7 +788,7 @@ if (patchOffset < 0) return false; - data_t *pDH = mpcf_dldi; + data_t *pDH = device == 0?mpcf_dldi:r4_dldi; data_t *pAH = (data_t*)data + patchOffset; if (pDH[DO_driverSize] > pAH[DO_allocatedSpace]) { @@ -691,7 +838,7 @@ // Remember how much space is actually reserved pDH[DO_allocatedSpace] = pAH[DO_allocatedSpace]; // Copy the DLDI patch into the application - memcpy (pAH, pDH, sizeof(mpcf_dldi)); + memcpy (pAH, pDH, device == 0?sizeof(mpcf_dldi):sizeof(r4_dldi)); // Fix the section pointers in the header writeAddr (pAH, DO_text_start, readAddr (pAH, DO_text_start) + relocationOffset); diff -Nru desmume-0.9.9/src/utils/fsnitro.cpp desmume-0.9.10/src/utils/fsnitro.cpp --- desmume-0.9.9/src/utils/fsnitro.cpp 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/utils/fsnitro.cpp 2013-11-28 00:37:28.173172403 +0000 @@ -0,0 +1,556 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "types.h" + +#include +#include +#ifdef HOST_WINDOWS +#include +#include +#define __mkdir(x) mkdir(x) +#else +#include +#include +#include +#include +#define __mkdir(x) mkdir(x, 0777) +#endif +#include "fsnitro.h" + +using namespace std; + +#ifdef HOST_WINDOWS +#define FS_DIRECTORY_DELIMITER_CHAR "\\" +#else +#define FS_DIRECTORY_DELIMITER_CHAR "/" +#endif + +FS_NITRO::FS_NITRO(u8 *cart_rom) +{ + inited = false; + numDirs = numFiles = numOverlay7 = numOverlay9 = currentID =0; + fat = NULL; + fnt = NULL; + ovr9 = NULL; + ovr7 = NULL; + + if (!cart_rom) return; + + rom = cart_rom; + + FNameTblOff = *(u32*)(rom + 0x40); + FNameTblSize = *(u32*)(rom + 0x44); + FATOff = *(u32*)(rom + 0x48); + FATSize = *(u32*)(rom + 0x4C); + + ARM9OverlayOff = *(u32*)(rom + 0x50); + ARM9OverlaySize = *(u32*)(rom + 0x54); + ARM7OverlayOff = *(u32*)(rom + 0x58); + ARM7OverlaySize = *(u32*)(rom + 0x5C); + + ARM9exeSize = *(u32*)(rom + 0x2C); + ARM9exeStart = *(u32*)(rom + 0x20); + ARM9exeEnd = (ARM9exeStart + ARM9exeSize); + + ARM7exeSize = *(u32*)(rom + 0x3C); + ARM7exeStart = *(u32*)(rom + 0x30); + ARM7exeEnd = (ARM7exeStart + ARM7exeSize); + + //printf("ARM9exe %08Xh - %08Xh, size %08Xh\n", ARM9exeStart, ARM9exeEnd, ARM9exeSize); + //printf("ARM7exe %08Xh - %08Xh, size %08Xh\n", ARM7exeStart, ARM7exeEnd, ARM7exeSize); + + if (FNameTblOff < 0x8000) return; + if (FNameTblOff == 0) return; + if (FATOff < 0x8000) return; + if (FATSize == 0) return; + + numDirs = *(u16*)(rom + FNameTblOff + 6); + numFiles = FATSize / 8; + + if (numFiles == 0 || numDirs == 0) + { + numFiles = numDirs = 0; + return; + } + + FATEnd = (FATOff + FATSize); + + numOverlay9 = ARM9OverlaySize / sizeof(OVR_NITRO); + numOverlay7 = ARM7OverlaySize / sizeof(OVR_NITRO); + + printf("Nitro File System:\n"); + printf("\t* FNT at 0x%08X, size 0x%08X\n", FNameTblOff, FNameTblSize); + printf("\t* FAT at 0x%08X, size 0x%08X\n", FATOff, FATSize); + printf("\t* ARM9 at Overlay 0x%08X, size 0x%08X\n", ARM9OverlayOff, ARM9OverlaySize); + printf("\t* ARM7 at Overlay 0x%08X, size 0x%08X\n", ARM7OverlayOff, ARM7OverlaySize); + printf("\t* ARM9 exe at %08X, size %08Xh\n", ARM9exeStart, ARM9exeSize); + printf("\t* ARM7 exe at %08X, size %08Xh\n", ARM7exeStart, ARM7exeSize); + printf("\t* Directories: %u\n", numDirs); + printf("\t* Files %u\n", numFiles); + printf("\t* ARM9 Overlays %u\n", numOverlay9); + printf("\t* ARM7 Overlays %u\n", numOverlay7); + + fat = new FAT_NITRO[numFiles]; + fnt = new FNT_NITRO[numDirs]; + if (numOverlay7) ovr7 = new OVR_NITRO[numOverlay7]; + if (numOverlay9) ovr9 = new OVR_NITRO[numOverlay9]; + + if (!loadFileTables()) + { + destroy(); + printf("FSNITRO: Error loading file system tables\n"); + return; + } + + inited = true; +} + +FS_NITRO::~FS_NITRO() +{ + destroy(); +} + +void FS_NITRO::destroy() +{ + if (fat) { delete [] fat; fat = NULL; } + if (fnt) { delete [] fnt; fnt = NULL; } + if (ovr9) { delete [] ovr9; ovr9 = NULL; } + if (ovr7) { delete [] ovr7; ovr7 = NULL; } + numDirs = numFiles = numOverlay7 = numOverlay9 = currentID = 0; + inited = false; +} + +FNT_TYPES FS_NITRO::getFNTType(u8 type) +{ + if (type == 0x00) return FS_END_SUBTABLE; + if (type == 0x80) return FS_RESERVED; + if (type < 0x80) return FS_FILE_ENTRY; + + return FS_SUBDIR_ENTRY; +} + +bool FS_NITRO::loadFileTables() +{ + if (!fnt) return false; + if (!fat) return false; + if (numOverlay7 && !ovr7) return false; + if (numOverlay9 && !ovr9) return false; + + delete[] fat; + delete[] fnt; + fat = new FAT_NITRO[numFiles]; + fnt = new FNT_NITRO[numDirs]; + + // ========= FAT (File Allocation Table) + u32 *_FAT = (u32*)(rom + FATOff); + for (u32 i = 0; i < numFiles; i++) + { + const u32 ofs = (i * 2); + fat[i].start = *(_FAT + ofs); + fat[i].end = *(_FAT + ofs + 1); + fat[i].size = fat[i].end - fat[i].start; + fat[i].sizeFile = fat[i].size; + fat[i].isOverlay = false; + } + + // ========= Overlays ARM9 + if (numOverlay9) + { + memcpy(ovr9, (rom + ARM9OverlayOff), ARM9OverlaySize); + for (u32 i = 0 ; i < numOverlay9; i++) + { + char buf[129] = {0}; + memset(&buf[0], 0, sizeof(buf)); + fat[ovr9[i].fileID].isOverlay = true; + sprintf(buf, "overlay_%04u.bin", ovr9[i].id); + fat[ovr9[i].fileID].filename = buf; + } + } + + // ========= Overlays ARM7 + if (numOverlay7) + { + memcpy(ovr7, (rom + ARM7OverlayOff), ARM7OverlaySize); + for (u32 i = 0 ; i < numOverlay7; i++) + { + char buf[129] = {0}; + memset(&buf[0], 0, sizeof(buf)); + fat[ovr7[i].fileID].isOverlay = true; + sprintf(buf, "overlay_%04u.bin", ovr7[i].id); + fat[ovr7[i].fileID].filename = buf; + } + } + + // ========= FNT (File Names Table) + u8 *_FNT = (u8*)(rom + FNameTblOff); + for (u32 i = 0; i < numDirs; i++) + { + memcpy(&fnt[i], _FNT, 8); + //printf("FNT %04Xh: sub:%08Xh, 1st ID:%04xh, parentID:%04Xh\n", i, fnt[i].offset, fnt[i].firstID, fnt[i].parentID); + _FNT += 8; + } + + // ========= Read file structure + u8 *sub = (u8*)(rom + FNameTblOff + fnt[0].offset); + u8 *_end = (u8*)(rom + FNameTblOff + FNameTblSize - 1); + u16 fileCount = fnt[0].firstID; + u16 fntID = 0xF000; + uintptr_t *store = new uintptr_t[numDirs]; + + if (!store) return false; + memset(store, 0, sizeof(uintptr_t) * numDirs); + + fnt[0].filename = FS_DIRECTORY_DELIMITER_CHAR; + fnt[0].parentID = 0xF000; + + //printf("FNT F000: Sub:%08Xh, 1st ID:%04xh, parentID:%04Xh <%s>\n", fnt[0].offset, fnt[0].firstID, fnt[0].parentID, fnt[0].filename); + + while (true) + { + u8 len = (sub[0] & 0x7F); + FNT_TYPES type = getFNTType(sub[0]); + + if (type == FS_END_SUBTABLE) + { + //printf("********** End Subdir (%04Xh, parent %04X)\n", fntID, fnt[fntID & 0x0FFF].parentID); + sub = (u8*)store[fntID & 0x0FFF]; + fntID = fnt[fntID & 0x0FFF].parentID; + continue; + } + + if (type == FS_SUBDIR_ENTRY) + { + //printf("********** Subdir Entry\n"); + char buf[129] = {0}; + memcpy(buf, (sub + 1), len); buf[len] = 0; + sub += (len + 1); + fntID = (*(u16*)sub); + sub += 2; + + u32 id = (fntID & 0x0FFF); + store[id] = (uintptr_t)sub; + sub = (u8*)(rom + FNameTblOff + fnt[id].offset); + fnt[id].filename = buf; + + //printf("FNT %04X: Sub:%08Xh, 1st ID:%04xh, parentID:%04Xh <%s>\n", fntID, fnt[id].offset, fnt[id].firstID, fnt[id].parentID, buf); + continue; + } + + if (type == FS_FILE_ENTRY) + { + //printf("********** File Entry\n"); + char buf[129] = {0}; + memcpy(buf, (sub + 1), len); buf[len] = 0; + fat[fileCount].filename = buf; + fat[fileCount].parentID = fntID; + //printf("ID:%04Xh, len %03d, type %d, parentID %04X, filename: %s\n", fileCount, len, (u32)type, fntID, fat[fileCount].filename); + sub += (len + 1); + fileCount++; + + if (fileCount >= numFiles) break; + continue; + } + + if (type == FS_RESERVED) + { + printf("********** FS_RESERVED\n"); + break; + } + } + delete [] store; store = NULL; + + return true; +} + +// ======================= tools +bool FS_NITRO::rebuildFAT(u32 addr, u32 size, string pathData) +{ + if (!inited) return false; + if (size == 0) return false; + if (addr < FATOff) return false; + if (addr > FATEnd) return false; + + const u32 startID = (addr - FATOff) / 8; + const u32 endID = startID + (size / 8); + //printf("Start rebuild FAT (start ID:%04Xh)\n", startID); + + u8 *romFAT = (u8*)(rom + addr); + + for (u32 i = startID; i < endID; i++) + { + if (i >= numFiles) break; + string path = pathData + getFullPathByFileID(i); + //printf("%04Xh - %s (%d)\n", i, path.c_str(), fat[i].size); + fat[i].file = false; + FILE *fp = fopen(path.c_str(), "rb"); + if (!fp) continue; + fseek(fp, 0, SEEK_END); + u32 size = ftell(fp); + fclose(fp); + + fat[i].file = true; + + if (fat[i].size != size) + { + //printf("Different size: %s (ROM: %d, file %d)\n", path.c_str(), fat[i].size, size); + fat[i].sizeFile = size; + } + else + fat[i].sizeFile = fat[i].size; + } + + return true; +} + +bool FS_NITRO::rebuildFAT(string pathData) +{ + return rebuildFAT(FATOff, FATSize, pathData); +} + +u32 FS_NITRO::getFATRecord(u32 addr) +{ + if (!inited) return 0xFFFFFFFF; + if (addr < FATOff) return 0xFFFFFFFF; + if (addr > FATEnd) return 0xFFFFFFFF; + + u32 id = (addr - FATOff) / 8; + u32 offs = (addr - FATOff) % 8; + + if (offs == 0) + { + return fat[id].start; + } + else + { + if (fat[id].file) + return (fat[id].start + fat[id].sizeFile); + else + return fat[id].end; + } + + return 0xFFFFFFFF; +} + +bool FS_NITRO::getFileIdByAddr(u32 addr, u16 &id) +{ + id = 0xFFFF; + if (!inited) return false; + + u32 pos = currentID; + while (true) + { + if ((addr >= fat[pos].start) && (addr < fat[pos].end)) + { + id = pos; + currentID = pos; + return true; + } + pos++; + if (pos >= numFiles) pos = 0; + if (pos == currentID) break; + } + return false; +} + +bool FS_NITRO::getFileIdByAddr(u32 addr, u16 &id, u32 &offset) +{ + id = 0xFFFF; offset = 0; + if (!inited) return false; + + u32 pos = currentID; + while (true) + { + if ((addr >= fat[pos].start) && (addr < fat[pos].end)) + { + id = pos; + offset = addr - fat[pos].start; + currentID = pos; + return true; + } + pos++; + if (pos >= numFiles) pos = 0; + if (pos == currentID) break; + } + + return false; +} + +string FS_NITRO::getDirNameByID(u16 id) +{ + if (!inited) return ""; + if ((id & 0xF000) != 0xF000) return "|file|"; + if ((id & 0x0FFF) > numDirs) return ""; + + return fnt[id & 0x0FFF].filename; +} + +u16 FS_NITRO::getDirParrentByID(u16 id) +{ + if (!inited) return 0xFFFF; + if ((id & 0xF000) != 0xF000) return 0xFFFF; + if ((id & 0x0FFF) > numDirs) return 0xFFFF; + + return fnt[id & 0x0FFF].parentID; +} + +string FS_NITRO::getFileNameByID(u16 id) +{ + if (!inited) return ""; + if ((id & 0xF000) == 0xF000) return ""; + if (id > numFiles) return ""; + + return fat[id].filename; +} + +u16 FS_NITRO::getFileParentById(u16 id) +{ + if (!inited) return 0xFFFF; + if ((id & 0xF000) == 0xF000) return 0xFFFF; + if (id > numFiles) return 0xFFFF; + + return fat[id].parentID; +} + +string FS_NITRO::getFullPathByFileID(u16 id, bool addRoot) +{ + if (!inited) return ""; + if (id > numFiles) return ""; + string res = ""; + + if (!fat[id].isOverlay) + { + u32 parentID = (fat[id].parentID & 0x0FFF); + while (parentID) + { + res = fnt[parentID].filename + string(FS_DIRECTORY_DELIMITER_CHAR) + res; + parentID = (fnt[parentID].parentID & 0x0FFF); + } + if (addRoot) + res = string(FS_DIRECTORY_DELIMITER_CHAR) + string("data") + string(FS_DIRECTORY_DELIMITER_CHAR) + res; + } + else + { + if (addRoot) + res = string(FS_DIRECTORY_DELIMITER_CHAR) + string("overlay") + string(FS_DIRECTORY_DELIMITER_CHAR); + } + + res += fat[id].filename; + return res; +} + +u32 FS_NITRO::getFileSizeById(u16 id) +{ + if (!inited) return 0; + if (id > numFiles) return 0; + + return (fat[id].size); +} + +u32 FS_NITRO::getStartAddrById(u16 id) +{ + if (!inited) return 0; + if (id > numFiles) return 0; + + return (fat[id].start); +} + +u32 FS_NITRO::getEndAddrById(u16 id) +{ + if (!inited) return 0; + if (id > numFiles) return 0; + + return (fat[id].end); +} + +bool FS_NITRO::extract(u16 id, string to) +{ + printf("Extract to %s\n", to.c_str()); + + FILE *fp = fopen(to.c_str(), "wb"); + if (fp) + { + fwrite((rom + fat[id].start), 1, fat[id].size, fp); + fclose(fp); + return true; + } + + return false; +} + +bool FS_NITRO::extractFile(u16 id, string to) +{ + if (!inited) return false; + if (id > numFiles) return false; + + char curr_dir[MAX_PATH] = {0}; + getcwd(curr_dir, sizeof(curr_dir)); + chdir(to.c_str()); + extract(id, fat[id].filename); + chdir(curr_dir); + + return true; +} + +bool FS_NITRO::extractAll(string to, void (*callback)(u32 current, u32 num)) +{ + if (!inited) return false; + + string dataDir = to + "data" + FS_DIRECTORY_DELIMITER_CHAR; + string overlayDir = to + "overlay" + FS_DIRECTORY_DELIMITER_CHAR; + __mkdir(dataDir.c_str()); + __mkdir(overlayDir.c_str()); + + char curr_dir[MAX_PATH] = {0}; + getcwd(curr_dir, sizeof(curr_dir)); + chdir(dataDir.c_str()); + + for (u32 i = 0; i < numDirs; i++) + { + string tmp = fnt[i].filename; + u16 parent = (fnt[i].parentID) & 0x0FFF; + + while (parent) + { + tmp = fnt[parent].filename + string(FS_DIRECTORY_DELIMITER_CHAR) + tmp; + parent = (fnt[parent].parentID) & 0x0FFF; + } + __mkdir(tmp.c_str()); + } + + chdir(dataDir.c_str()); + for (u32 i = 0; i < numFiles; i++) + { + if (fat[i].isOverlay) continue; + string fname = getFullPathByFileID(i, false); + extract(i, fname); + if (callback) + callback(i, numFiles); + } + + chdir(overlayDir.c_str()); + for (u32 i = 0; i < numFiles; i++) + { + if (!fat[i].isOverlay) continue; + extract(i, fat[i].filename); + } + + chdir(curr_dir); + + return true; +} + diff -Nru desmume-0.9.9/src/utils/fsnitro.h desmume-0.9.10/src/utils/fsnitro.h --- desmume-0.9.9/src/utils/fsnitro.h 1970-01-01 00:00:00.000000000 +0000 +++ desmume-0.9.10/src/utils/fsnitro.h 2013-11-28 00:37:28.173172403 +0000 @@ -0,0 +1,173 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#ifndef _FS_NITRO_H_ +#define _FS_NITRO_H_ +#include +#ifndef _MSC_VER +#include +#include +#endif +#include "../types.h" + +using namespace std; + +enum FNT_TYPES +{ + FS_FILE_ENTRY = 0, + FS_SUBDIR_ENTRY = 1, + FS_END_SUBTABLE = 2, + FS_RESERVED = 3, +}; + +#include "PACKED.h" +struct FAT_NITRO +{ + FAT_NITRO() + : start(0) + , end(0) + , size(0) + , parentOffset(0) + , isOverlay(false) + , file(false) + , sizeFile(0) + , parentID(0) + { + } + u32 start; + u32 end; + u32 size; + u32 parentOffset; + bool isOverlay; + bool file; + u32 sizeFile; + u16 parentID; + string filename; +}; + +struct FNT_MAIN +{ + u32 offset; + u16 firstID; + u16 parentID; +}; + +struct FNT_NITRO +{ + FNT_NITRO() + : offset(0) + , firstID(0) + , parentID(0) + { + } + u32 offset; + u16 firstID; + u16 parentID; + string filename; +}; + +struct OVR_NITRO +{ + u32 id; + u32 RAMaddr; + u32 RAMSize; + u32 BSSSize; + u32 start; + u32 end; + u32 fileID; + u32 reserved; +}; +#include "PACKED_END.h" + +class FS_NITRO +{ +private: + bool inited; + + u32 FNameTblOff; + u32 FNameTblSize; + u32 FATOff; + u32 FATSize; + u32 FATEnd; + u32 ARM9OverlayOff; + u32 ARM9OverlaySize; + u32 ARM7OverlayOff; + u32 ARM7OverlaySize; + + u32 ARM9exeStart; + u32 ARM9exeEnd; + u32 ARM9exeSize; + + u32 ARM7exeStart; + u32 ARM7exeEnd; + u32 ARM7exeSize; + + u32 numFiles; + u32 numDirs; + u32 numOverlay7; + u32 numOverlay9; + + u32 currentID; + + u8 *rom; + FAT_NITRO *fat; + FNT_NITRO *fnt; + OVR_NITRO *ovr9; + OVR_NITRO *ovr7; + + FNT_TYPES getFNTType(u8 type); + bool loadFileTables(); + + bool extract(u16 id, string to); + void destroy(); + +public: + FS_NITRO(u8 *cart_rom); + ~FS_NITRO(); + + bool getFileIdByAddr(u32 addr, u16 &id); + bool getFileIdByAddr(u32 addr, u16 &id, u32 &offset); + + string getDirNameByID(u16 id); + u16 getDirParrentByID(u16 id); + + string getFileNameByID(u16 id); + string getFullPathByFileID(u16 id, bool addRoot = true); + + u16 getFileParentById(u16 id); + u32 getFileSizeById(u16 id); + u32 getStartAddrById(u16 id); + u32 getEndAddrById(u16 id); + bool isOverlay(u16 id) { if (id > numFiles) return false; return fat[id].isOverlay; } + + bool isARM9(u32 addr) { return ((addr >= ARM9exeStart) && (addr < ARM9exeEnd)); } + bool isARM7(u32 addr) { return ((addr >= ARM7exeStart) && (addr < ARM7exeEnd)); } + bool isFAT(u32 addr) { return ((addr >= FATOff) && (addr < FATEnd)); } + + bool rebuildFAT(u32 addr, u32 size, string pathData); + bool rebuildFAT(string pathData); + u32 getFATRecord(u32 addr); + + bool extractFile(u16 id, string to); + bool extractAll(string to, void (*callback)(u32 current, u32 num) = NULL); + + u32 getNumDirs() { return numDirs; } + u32 getNumFiles() { return numFiles; } +}; + + +#endif diff -Nru desmume-0.9.9/src/utils/task.cpp desmume-0.9.10/src/utils/task.cpp --- desmume-0.9.9/src/utils/task.cpp 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/task.cpp 2013-11-28 00:37:27.373159487 +0000 @@ -19,13 +19,38 @@ #include "task.h" #include -#ifdef _WINDOWS +#ifdef HOST_WINDOWS #include #else #include +#if defined HOST_LINUX || defined HOST_DARWIN +#include +#elif defined HOST_BSD +#include #endif +#endif // HOST_WINDOWS -#ifdef _MSC_VER +// http://stackoverflow.com/questions/150355/programmatically-find-the-number-of-cores-on-a-machine +int getOnlineCores (void) +{ +#ifdef HOST_WINDOWS + SYSTEM_INFO sysinfo; + GetSystemInfo(&sysinfo); + return sysinfo.dwNumberOfProcessors; +#elif defined HOST_LINUX || defined HOST_DARWIN + return sysconf(_SC_NPROCESSORS_ONLN); +#elif defined HOST_BSD + int cores; + const int mib[4] = { CTL_HW, HW_NCPU, 0, 0 }; + const size_t len = sizeof(cores); + sysctl(mib, 2, &cores, &len, NULL, 0); + return (cores < 1) ? 1 : cores; +#else + return 1; +#endif +} + +#ifdef HOST_WINDOWS class Task::Impl { public: Impl(); diff -Nru desmume-0.9.9/src/utils/task.h desmume-0.9.10/src/utils/task.h --- desmume-0.9.9/src/utils/task.h 2013-05-01 18:48:57.000000000 +0000 +++ desmume-0.9.10/src/utils/task.h 2013-11-28 00:37:27.861167366 +0000 @@ -45,5 +45,6 @@ }; +int getOnlineCores (void); #endif diff -Nru desmume-0.9.9/src/version.cpp desmume-0.9.10/src/version.cpp --- desmume-0.9.9/src/version.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/version.cpp 2013-11-28 00:37:26.721148959 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2009-2012 DeSmuME team + Copyright (C) 2009-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,13 +32,12 @@ #endif //todo - everyone will want to support this eventually, i suppose -#if (defined(_WINDOWS) && !defined(WXPORT)) || defined(DESMUME_COCOA) +#if defined(HOST_WINDOWS) || defined(DESMUME_COCOA) #include "svnrev.h" #else - #ifdef SVN_REV - #define SVN_REV_STR SVN_REV - #else - #define SVN_REV_STR "" + #ifndef SVN_REV + #define SVN_REV 0 + #define SVN_REV_STR "0" #endif #endif @@ -115,11 +114,23 @@ #define DESMUME_JIT "" #endif -#define DESMUME_VERSION_NUMERIC 90900 -#define DESMUME_VERSION_STRING " " "0.9.9" DESMUME_SUBVERSION_STRING DESMUME_FEATURE_STRING DESMUME_PLATFORM_STRING DESMUME_JIT DESMUME_CPUEXT_STRING +#ifdef PUBLIC_RELEASE +const u32 DESMUME_SUBVERSION_NUMERIC = 0xFFFFFFFF; +#else +const u32 DESMUME_SUBVERSION_NUMERIC = SVN_REV; +#endif + +const u8 DESMUME_VERSION_MAJOR = 0; +const u8 DESMUME_VERSION_MINOR = 9; +const u8 DESMUME_VERSION_BUILD = 10; + +#define DESMUME_VERSION_NUMERIC 91000 +#define DESMUME_VERSION_STRING " " "0.9.10" DESMUME_SUBVERSION_STRING DESMUME_FEATURE_STRING DESMUME_PLATFORM_STRING DESMUME_JIT DESMUME_CPUEXT_STRING #define DESMUME_NAME_AND_VERSION DESMUME_NAME DESMUME_VERSION_STRING u32 EMU_DESMUME_VERSION_NUMERIC() { return DESMUME_VERSION_NUMERIC; } +u32 EMU_DESMUME_SUBVERSION_NUMERIC() { return DESMUME_SUBVERSION_NUMERIC; } const char* EMU_DESMUME_VERSION_STRING() { return DESMUME_VERSION_STRING; } +const char* EMU_DESMUME_SUBVERSION_STRING() { return DESMUME_SUBVERSION_STRING; } const char* EMU_DESMUME_NAME_AND_VERSION() { return DESMUME_NAME_AND_VERSION; } const char* EMU_DESMUME_COMPILER_DETAIL() { return DESMUME_COMPILER_DETAIL; } diff -Nru desmume-0.9.9/src/version.h desmume-0.9.10/src/version.h --- desmume-0.9.9/src/version.h 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/version.h 2013-11-28 00:37:18.805021131 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2009-2011 DeSmuME team + Copyright (C) 2009-2013 DeSmuME team This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,7 +18,13 @@ #include #include "types.h" +extern const u8 DESMUME_VERSION_MAJOR; +extern const u8 DESMUME_VERSION_MINOR; +extern const u8 DESMUME_VERSION_BUILD; + u32 EMU_DESMUME_VERSION_NUMERIC(); +u32 EMU_DESMUME_SUBVERSION_NUMERIC(); const char* EMU_DESMUME_VERSION_STRING(); +const char* EMU_DESMUME_SUBVERSION_STRING(); const char* EMU_DESMUME_NAME_AND_VERSION(); const char* EMU_DESMUME_COMPILER_DETAIL(); diff -Nru desmume-0.9.9/src/wifi.cpp desmume-0.9.10/src/wifi.cpp --- desmume-0.9.9/src/wifi.cpp 2013-05-01 18:48:59.000000000 +0000 +++ desmume-0.9.10/src/wifi.cpp 2013-11-28 00:37:18.809021196 +0000 @@ -24,14 +24,12 @@ #include "bits.h" -#ifdef _WINDOWS +#ifdef HOST_WINDOWS #include #include #define socket_t SOCKET #define sockaddr_t SOCKADDR - #ifndef WXPORT - #include "windriver.h" - #endif + #include "windriver.h" #define PCAP_DEVICE_NAME description #else #include diff -Nru desmume-0.9.9/src/wx/DeSmuME.xpm desmume-0.9.10/src/wx/DeSmuME.xpm --- desmume-0.9.9/src/wx/DeSmuME.xpm 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/DeSmuME.xpm 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -/* XPM */ -static const char * DeSmuME_xpm[] = { -"32 32 15 1", -" c None", -". c #000000", -"+ c #F6F6FB", -"@ c #ECECF6", -"# c #E2E2F1", -"$ c #D8D8EC", -"% c #CFCFE7", -"& c #C5C5E2", -"* c #BBBBDE", -"= c #B1B1D9", -"- c #A8A8D4", -"; c #9E9ECF", -"> c #9494CA", -", c #8A8AC5", -"' c #8080C0", -" .................... ", -" .................... ", -".....++..+++++..+++++.. ", -".....++..++.....++..... ", -"..@@@@@..@@@@@..@@@@@.. ", -"..@@.@@..@@........@@.. ", -"..##.##..##.##..##.##.. ", -"..##.##..##.##..##.##.. ", -"..$$.$$..$$.$$..$$.$$.. ", -"..$$.$$..$$.$$..$$.$$.. ", -"..%%.%%..%%.%%..%%.%%.. ", -"..%%.%%..%%.%%..%%.%%.. ", -"..&&&&&..&&&&&..&&&&&.. ", -"....................... ", -".......********.**.**.. ", -" ..==.==.==.==.==.. ", -" ..==.==.==.==.==.. ", -" ..--.--.--.--.--.. ", -" ..--.--.--.--.--.. ", -" ..;;.;;.;;.;;;;;.. ", -" ..................... ", -" ..................... ", -" ..>>>>>>>>.>>>>>.. ", -" ..>>.>>.>>.>>..... ", -" ..,,.,,.,,.,,,,,.. ", -" ..,,.,,.,,.,,..... ", -" ..''.''.''.''.''.. ", -" ..''.''.''.''.''.. ", -" ..''.''.''.''.''.. ", -" ..''.''.''.'''''.. ", -" .................. ", -" .................. "}; diff -Nru desmume-0.9.9/src/wx/InputCommon/Configuration.cpp desmume-0.9.10/src/wx/InputCommon/Configuration.cpp --- desmume-0.9.9/src/wx/InputCommon/Configuration.cpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/Configuration.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,278 +0,0 @@ - -// Project description -// ------------------- -// Name: Input Configuration and Calibration -// Description: Common SDL Input Functions -// -// Author: Falcon4ever (nJoy@falcon4ever.com, www.multigesture.net), JPeterson etc -// Copyright (C) 2003 Dolphin Project. -// - -// -// Licensetype: GNU General Public License (GPL) -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. -// -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ -// -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ -// - - - - - -// Include -// ------------------- -#if defined HAVE_WX && HAVE_WX - #include -#endif - -#ifdef _WIN32 -#define NOMINMAX -#include -#endif - -#include "SDL.h" // Local - - - -namespace InputCommon -{ - - - -// Degree to radian and back -// ------------- -float Deg2Rad(float Deg) -{ - return Deg * (float)M_PI / 180.0f; -} -float Rad2Deg(float Rad) -{ - return Rad * 180.0f / (float)M_PI; -} - -// Check if the pad is within the dead zone, we assume the range is 0x8000 -// ---------------- -static float CoordinatesToRadius(int x, int y) -{ - return sqrt(pow((float)x, 2) + pow((float)y, 2)); -} - -bool IsDeadZone(float DeadZone, int x, int y) -{ - // Get the distance from the center - float Distance = CoordinatesToRadius(x, y) / 32767.0f; - - //Console::Print("%f\n", Distance); - - // Check if it's within the dead zone - if (Distance <= DeadZone) - return true; - else - return false; -} - - - - -// Scale down stick values from 0x8000 to 0x80 -/* ---------------- - The value returned by SDL_JoystickGetAxis is a signed integer s16 - (-32768 to 32767). The value used for the gamecube controller is an unsigned - char u8 (0 to 255) with neutral at 0x80 (128), so that it's equivalent to a signed - -128 to 127. -*/ -// --------------------- -int Pad_Convert(int _val) -{ - /* If the limits on PadState[].axis[] actually is a u16 then we don't need this - but if it's not actually limited to that we need to apply these limits */ - if(_val > 32767) _val = 32767; // upper limit - if(_val < -32768) _val = -32768; // lower limit - - // Convert the range (-0x8000 to 0x7fff) to (0 to 0xffff) - _val = 0x8000 +_val; - - // Convert the range (0 to 0xffff) to (0 to 0xff) - _val = _val >> 8; - - //Console::Print("0x%04x %06i\n\n", _val, _val); - - return _val; -} - - - - -// Adjust the radius -// ---------------- -void RadiusAdjustment(int &_x, int &_y, int _pad, std::string SRadius) -{ - // Get the radius setting - int Tmp = atoi (SRadius.substr(0, SRadius.length() - 1).c_str()); - float RadiusSetting = Tmp / 100.0f; - - // Get current angle - float Deg = Rad2Deg(atan2((float)_y, (float)_x)); - // Get the current radius - float Radius = sqrt((float)(_x*_x + _y*_y)); - // Adjust radius - Radius = Radius * RadiusSetting; - // Produce new coordinates - float x = Radius * cos(Deg2Rad(Deg)); - float y = Radius * sin(Deg2Rad(Deg)); - // Update values - _x = (int)x, _y = (int)y; -} - - - - -/* Convert the stick raidus from a square or rounded box to a circular radius. I don't know what - input values the actual GC controller produce for the GC, it may be a square, a circle or - something in between. But one thing that is certain is that PC pads differ in their output - (as shown in the list below), so it may be beneficiary to convert whatever radius they - produce to the radius the GC games expect. This is the first implementation of this - that convert a square radius to a circual radius. Use the advanced settings to enable - and calibrate it. - - Observed diagonals: - Perfect circle: 71% = sin(45) - Logitech Dual Action: 100% - PS2 Dual Shock 2 (Original) with Super Dual Box Pro: 90% - XBox 360 Wireless: 85% - GameCube Controller (Third Party) with EMS Trio Linker Plus II: 60% -*/ -// --------------------- - -/* Calculate the distance from the outer edges of the box to the outer edges of the circle inside the box - at any angle from 0 to 360. The returned value is 1 + Distance, for example at most sqrt(2) in the - corners and at least 1.0 at the horizontal and vertical angles. */ -static float Square2CircleDistance(float deg) -{ - // See if we have to adjust the angle - deg = abs(deg); - if( (deg > 45 && deg < 135) ) deg = deg - 90; - - // Calculate distance from center - float val = abs(cos(Deg2Rad(deg))); - float Distance = 1 / val; - - //m_frame->m_pStatusBar2->SetLabel(wxString::Format("Deg:%f Val:%f Dist:%f", deg, val, dist)); - - return Distance; -} -// Produce a perfect circle from an original square or rounded box -void Square2Circle(int &_x, int &_y, int _pad, std::string SDiagonal, bool Circle2Square) -{ - // Do we need to do this check? - if(_x > 32767) _x = 32767; if(_y > 32767) _y = 32767; // upper limit - if(_x < -32768) _x = -32768; if(_y < -32768) _y = -32768; // lower limit - - // ==================================== - // Convert to circle - // ----------- - // Get the manually configured diagonal distance - int Tmp = atoi (SDiagonal.substr(0, SDiagonal.length() - 1).c_str()); - float Diagonal = Tmp / 100.0f; - - // First make a perfect square in case we don't have one already - float OrigDist = sqrt( pow((float)_y, 2) + pow((float)_x, 2) ); // Get current distance - float deg = Rad2Deg(atan2((float)_y, (float)_x)); // Get current angle - - /* Calculate the actual distance between the maxium diagonal values, and the outer edges of the - square. A diagonal of 85% means a maximum distance of 0.85 * sqrt(2) ~1.2 in the diagonals. */ - float corner_circle_dist = ( Diagonal / sin(Deg2Rad(45.0f)) ); - float SquareDist = Square2CircleDistance(deg); - // The original-to-square distance adjustment - float adj_ratio1; - // The circle-to-square distance adjustment - float adj_ratio2 = SquareDist; - // The resulting distance - float result_dist; - - // Calculate the corner-to-square adjustment ratio - if(corner_circle_dist < SquareDist) adj_ratio1 = SquareDist / corner_circle_dist; - else adj_ratio1 = 1; - - // Calculate the resulting distance - if(Circle2Square) - result_dist = OrigDist * adj_ratio1; - else - result_dist = OrigDist * adj_ratio1 / adj_ratio2; - - // Calculate x and y and return it - float x = result_dist * cos(Deg2Rad(deg)); - float y = result_dist * sin(Deg2Rad(deg)); - // Update coordinates - _x = (int)floor(x); - _y = (int)floor(y); - // Boundaries - if (_x < -32768) _x = -32768; if (_x > 32767) _x = 32767; - if (_y < -32768) _y = -32768; if (_y > 32767) _y = 32767; - - // Debugging - //Console::Print("%f %f %i", corner_circle_dist, Diagonal, Tmp)); -} - - - - -// Windows Virtual Key Codes Names -// --------------------- -#ifdef _WIN32 -std::string VKToString(int keycode) -{ -#ifdef _WIN32 - // Default value - char KeyStr[64] = {0}; - std::string KeyString; - - // TODO: Switch to unicode GetKeyNameText? - if (keycode < 256) // Keyboard - GetKeyNameTextA(MapVirtualKey(keycode, MAPVK_VK_TO_VSC) << 16, KeyStr, 64); - else // Pad - sprintf(KeyStr, "PAD: %d", keycode - 0x1000); - - switch(keycode) - { - // Give it some help with a few keys - case VK_END: return "END"; - case VK_INSERT: return "INS"; - case VK_DELETE: return "DEL"; - case VK_PRIOR: return "PGUP"; - case VK_NEXT: return "PGDN"; - - case VK_UP: return "UP"; - case VK_DOWN: return "DOWN"; - case VK_LEFT: return "LEFT"; - case VK_RIGHT: return "RIGHT"; - - case VK_LSHIFT: return "LEFT SHIFT"; - case VK_LCONTROL: return "LEFT CTRL"; - case VK_RCONTROL: return "RIGHT CTRL"; - case VK_LMENU: return "LEFT ALT"; - - default: return KeyString = KeyStr; - } -#else - // An equivalent name translation can probably be used on other systems to? - return ""; -#endif -} -#endif - - -} - diff -Nru desmume-0.9.9/src/wx/InputCommon/EventHandler.cpp desmume-0.9.10/src/wx/InputCommon/EventHandler.cpp --- desmume-0.9.9/src/wx/InputCommon/EventHandler.cpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/EventHandler.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,316 +0,0 @@ -#include "EventHandler.h" -#include -#include - -#if defined(HAVE_WX) -#include -#endif - -EventHandler *EventHandler::m_Instance = 0; - -EventHandler::EventHandler() { - memset(keys, 0, sizeof(keys)); - memset(mouse, 0, sizeof(mouse)); - memset(joys, 0, sizeof(joys)); -} - -EventHandler::~EventHandler() { -} - -EventHandler *EventHandler::GetInstance() { - // fprintf(stderr, "handler instance %p\n", m_Instance); - - if (! m_Instance) - m_Instance = new EventHandler(); - return m_Instance; -} - -void EventHandler::Destroy() { - if (m_Instance) - delete m_Instance; - // fprintf(stderr, "deleting instance %p\n", m_Instance); - m_Instance = 0; -} - -bool EventHandler::RegisterEventListener(listenFuncPtr func, Keys key) { - if (key.inputType == KeyboardInput) { - // fprintf(stderr, "Registering %d:%d %p %p \n", key.keyCode, key.mods, func, this); - if (key.keyCode == sf::Key::Count || key.mods >= NUMMODS || - key.keyCode >= NUMKEYS) - return false; - if (keys[key.keyCode][key.mods] && keys[key.keyCode][key.mods] != func) - return false -; - keys[key.keyCode][key.mods] = func; - } else if (key.inputType == MouseInput) { - if (mouse[key.mouseButton]) - return false; - mouse[key.mouseButton] = func; - } - - return true; -} - -bool EventHandler::RemoveEventListener(Keys key) { - if (key.inputType == KeyboardInput) { - if ((key.keyCode == sf::Key::Count || key.keyCode >= NUMKEYS - || key.mods >= NUMMODS) && ! keys[key.keyCode][key.mods]) - return false; - keys[key.keyCode][key.mods] = NULL; - } else if (key.inputType == MouseInput) { - if (! mouse[key.mouseButton]) - return false; - mouse[key.mouseButton] = NULL; - } - - return true; -} - -void EventHandler::Update() { - for (unsigned int i = 0; i < eventQueue.size();i++) { - sf::Event ev = eventQueue.front(); - eventQueue.pop(); - fprintf(stderr, "Updating event type %d code %d mod %d func %p %p\n", ev.Type, ev.Key.Code, ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control, keys[ev.Key.Code][ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control], this); - if(keys[ev.Key.Code][ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control]) - keys[ev.Key.Code][ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control](ev); - } -} - -bool EventHandler::addEvent(sf::Event *ev) { - eventQueue.push(*ev); - fprintf(stderr, "Got event type %d code %d %p\n", ev->Type, ev->Key.Code, this); - return true; -} - - -bool EventHandler::TestEvent (Keys k, sf::Event e) -{ - //Mouse event - if (k.inputType==MouseInput && k.eventType==e.Type && k.mouseButton==e.MouseButton.Button) - { - return (true); - } - //Keyboard event - if (k.inputType==KeyboardInput && k.eventType==e.Type && k.keyCode==e.Key.Code) - { - return (true); - } - return (false); -} - -#if defined(HAVE_WX) -// Taken from wxw source code -sf::Key::Code EventHandler::wxCharCodeToSF(int id) -{ - sf::Key::Code sfKey; - - switch (id) { -// case WXK_CANCEL: sfKey = sf::Key::Cancel; break; -// case WXK_BACK: sfKey = sf::Key::BackSpace; break; - case WXK_TAB: sfKey = sf::Key::Tab; break; -// case WXK_CLEAR: sfKey = sf::Key::Clear; break; - case WXK_RETURN: sfKey = sf::Key::Return; break; - case WXK_SHIFT: sfKey = sf::Key::LShift; break; - case WXK_CONTROL: sfKey = sf::Key::LControl; break; - case WXK_ALT: sfKey = sf::Key::LAlt; break; -// case WXK_CAPITAL: sfKey = sf::Key::Caps_Lock; break; - case WXK_MENU : sfKey = sf::Key::Menu; break; - case WXK_PAUSE: sfKey = sf::Key::Pause; break; - case WXK_ESCAPE: sfKey = sf::Key::Escape; break; - case WXK_SPACE: sfKey = sf::Key::Space; break; - case WXK_PAGEUP: sfKey = sf::Key::PageUp; break; - case WXK_PAGEDOWN: sfKey = sf::Key::PageDown; break; - case WXK_END: sfKey = sf::Key::End; break; - case WXK_HOME : sfKey = sf::Key::Home; break; - case WXK_LEFT : sfKey = sf::Key::Left; break; - case WXK_UP: sfKey = sf::Key::Up; break; - case WXK_RIGHT: sfKey = sf::Key::Right; break; - case WXK_DOWN : sfKey = sf::Key::Down; break; -// case WXK_SELECT: sfKey = sf::Key::Select; break; -// case WXK_PRINT: sfKey = sf::Key::Print; break; -// case WXK_EXECUTE: sfKey = sf::Key::Execute; break; - case WXK_INSERT: sfKey = sf::Key::Insert; break; - case WXK_DELETE: sfKey = sf::Key::Delete; break; -// case WXK_HELP : sfKey = sf::Key::Help; break; - case WXK_NUMPAD0: sfKey = sf::Key::Numpad0; break; - case WXK_NUMPAD_INSERT: sfKey = sf::Key::Insert; break; - case WXK_NUMPAD1: sfKey = sf::Key::Numpad1; break; - case WXK_NUMPAD_END: sfKey = sf::Key::End; break; - case WXK_NUMPAD2: sfKey = sf::Key::Numpad2; break; - case WXK_NUMPAD_DOWN: sfKey = sf::Key::Down; break; - case WXK_NUMPAD3: sfKey = sf::Key::Numpad3; break; - case WXK_NUMPAD_PAGEDOWN: sfKey = sf::Key::PageDown; break; - case WXK_NUMPAD4: sfKey = sf::Key::Numpad4; break; - case WXK_NUMPAD_LEFT: sfKey = sf::Key::Left; break; - case WXK_NUMPAD5: sfKey = sf::Key::Numpad5; break; - case WXK_NUMPAD6: sfKey = sf::Key::Numpad6; break; - case WXK_NUMPAD_RIGHT: sfKey = sf::Key::Right; break; - case WXK_NUMPAD7: sfKey = sf::Key::Numpad7; break; - case WXK_NUMPAD_HOME: sfKey = sf::Key::Home; break; - case WXK_NUMPAD8: sfKey = sf::Key::Numpad8; break; - case WXK_NUMPAD_UP: sfKey = sf::Key::Up; break; - case WXK_NUMPAD9: sfKey = sf::Key::Numpad9; break; - case WXK_NUMPAD_PAGEUP: sfKey = sf::Key::PageUp; break; -// case WXK_NUMPAD_DECIMAL: sfKey = sf::Key::Decimal; break; - case WXK_NUMPAD_DELETE: sfKey = sf::Key::Delete; break; - case WXK_NUMPAD_MULTIPLY: sfKey = sf::Key::Multiply; break; - case WXK_NUMPAD_ADD: sfKey = sf::Key::Add; break; - case WXK_NUMPAD_SUBTRACT: sfKey = sf::Key::Subtract; break; - case WXK_NUMPAD_DIVIDE: sfKey = sf::Key::Divide; break; - case WXK_NUMPAD_ENTER: sfKey = sf::Key::Return; break; -// case WXK_NUMPAD_SEPARATOR:sfKey = sf::Key::Separator; break; - case WXK_F1: sfKey = sf::Key::F1; break; - case WXK_F2: sfKey = sf::Key::F2; break; - case WXK_F3: sfKey = sf::Key::F3; break; - case WXK_F4: sfKey = sf::Key::F4; break; - case WXK_F5: sfKey = sf::Key::F5; break; - case WXK_F6: sfKey = sf::Key::F6; break; - case WXK_F7: sfKey = sf::Key::F7; break; - case WXK_F8: sfKey = sf::Key::F8; break; - case WXK_F9: sfKey = sf::Key::F9; break; - case WXK_F10: sfKey = sf::Key::F10; break; - case WXK_F11: sfKey = sf::Key::F11; break; - case WXK_F12: sfKey = sf::Key::F12; break; - case WXK_F13: sfKey = sf::Key::F13; break; - case WXK_F14: sfKey = sf::Key::F14; break; - case WXK_F15: sfKey = sf::Key::F15; break; -// case WXK_NUMLOCK: sfKey = sf::Key::Num_Lock; break; -// case WXK_SCROLL: sfKey = sf::Key::Scroll_Lock; break; - default: - - // To lower (will tolower work on windows?) - if (id >= 'A' && id <= 'Z') - id = id - 'A' + 'a'; - - if ((id >= 'a' && id <= 'z') || - (id >= '0' && id <= '9')) - sfKey = (sf::Key::Code)id; - else - sfKey = sf::Key::Count; // Invalid key - - } - - return sfKey; -} -#endif - -void EventHandler::SFKeyToString(sf::Key::Code keycode, char *keyStr) { - switch (keycode) { -/* case sf::Key::A = 'a': sprintf(keyStr, "UP"); break; - case sf::Key::B = 'b': sprintf(keyStr, "UP"); break; - case sf::Key::C = 'c': sprintf(keyStr, "UP"); break; - case sf::Key::D = 'd': sprintf(keyStr, "UP"); break; - case sf::Key::E = 'e': sprintf(keyStr, "UP"); break; - case sf::Key::F = 'f': sprintf(keyStr, "UP"); break; - case sf::Key::G = 'g': sprintf(keyStr, "UP"); break; - case sf::Key::H = 'h': sprintf(keyStr, "UP"); break; - case sf::Key::I = 'i': sprintf(keyStr, "UP"); break; - case sf::Key::J = 'j': sprintf(keyStr, "UP"); break; - case sf::Key::K = 'k': sprintf(keyStr, "UP"); break; - case sf::Key::L = 'l': sprintf(keyStr, "UP"); break; - case sf::Key::M = 'm': sprintf(keyStr, "UP"); break; - case sf::Key::N = 'n': sprintf(keyStr, "UP"); break; - case sf::Key::O = 'o': sprintf(keyStr, "UP"); break; - case sf::Key::P = 'p': sprintf(keyStr, "UP"); break; - case sf::Key::Q = 'q': sprintf(keyStr, "UP"); break; - case sf::Key::R = 'r': sprintf(keyStr, "UP"); break; - case sf::Key::S = 's': sprintf(keyStr, "UP"); break; - case sf::Key::T = 't': sprintf(keyStr, "UP"); break; - case sf::Key::U = 'u': sprintf(keyStr, "UP"); break; - case sf::Key::V = 'v': sprintf(keyStr, "UP"); break; - case sf::Key::W = 'w': sprintf(keyStr, "UP"); break; - case sf::Key::X = 'x': sprintf(keyStr, "UP"); break; - case sf::Key::Y = 'y': sprintf(keyStr, "UP"); break; - case sf::Key::Z = 'z': sprintf(keyStr, "UP"); break; - case sf::Key::Num0 = '0': sprintf(keyStr, "UP"); break; - case sf::Key::Num1 = '1': sprintf(keyStr, "UP"); break; - case sf::Key::Num2 = '2': sprintf(keyStr, "UP"); break; - case sf::Key::Num3 = '3': sprintf(keyStr, "UP"); break; - case sf::Key::Num4 = '4': sprintf(keyStr, "UP"); break; - case sf::Key::Num5 = '5': sprintf(keyStr, "UP"); break; - case sf::Key::Num6 = '6': sprintf(keyStr, "UP"); break; - case sf::Key::Num7 = '7': sprintf(keyStr, "UP"); break; - case sf::Key::Num8 = '8': sprintf(keyStr, "UP"); break; - case sf::Key::Num9 = '9': sprintf(keyStr, "UP"); break;*/ - case sf::Key::Escape: sprintf(keyStr, "Escape"); break; - case sf::Key::LControl: sprintf(keyStr, "LControl"); break; - case sf::Key::LShift: sprintf(keyStr, "LShift"); break; - case sf::Key::LAlt: sprintf(keyStr, "LAlt"); break; - case sf::Key::LSystem: sprintf(keyStr, "LSystem"); break; - case sf::Key::RControl: sprintf(keyStr, "RControl"); break; - case sf::Key::RShift: sprintf(keyStr, "RShift"); break; - case sf::Key::RAlt: sprintf(keyStr, "RAlt"); break; - case sf::Key::RSystem: sprintf(keyStr, "RSystem"); break; - case sf::Key::Menu: sprintf(keyStr, "Menu"); break; - case sf::Key::LBracket: sprintf(keyStr, "LBracket"); break; - case sf::Key::RBracket: sprintf(keyStr, "RBracket"); break; - case sf::Key::SemiColon: sprintf(keyStr, ";"); break; - case sf::Key::Comma: sprintf(keyStr, ","); break; - case sf::Key::Period: sprintf(keyStr, "."); break; - case sf::Key::Quote: sprintf(keyStr, "\'"); break; - case sf::Key::Slash: sprintf(keyStr, "/"); break; - case sf::Key::BackSlash: sprintf(keyStr, "\\"); break; - case sf::Key::Tilde: sprintf(keyStr, "~"); break; - case sf::Key::Equal: sprintf(keyStr, "="); break; - case sf::Key::Dash: sprintf(keyStr, "-"); break; - case sf::Key::Space: sprintf(keyStr, "Space"); break; - case sf::Key::Return: sprintf(keyStr, "Return"); break; - case sf::Key::Back: sprintf(keyStr, "Back"); break; - case sf::Key::Tab: sprintf(keyStr, "Tab"); break; - case sf::Key::PageUp: sprintf(keyStr, "Page Up"); break; - case sf::Key::PageDown: sprintf(keyStr, "Page Down"); break; - case sf::Key::End: sprintf(keyStr, "End"); break; - case sf::Key::Home: sprintf(keyStr, "Home"); break; - case sf::Key::Insert: sprintf(keyStr, "Insert"); break; - case sf::Key::Delete: sprintf(keyStr, "Delete"); break; - case sf::Key::Add: sprintf(keyStr, "+"); break; - case sf::Key::Subtract: sprintf(keyStr, "-"); break; - case sf::Key::Multiply: sprintf(keyStr, "*"); break; - case sf::Key::Divide: sprintf(keyStr, "/"); break; - case sf::Key::Left: sprintf(keyStr, "Left"); break; - case sf::Key::Right: sprintf(keyStr, "Right"); break; - case sf::Key::Up: sprintf(keyStr, "Up"); break; - case sf::Key::Down: sprintf(keyStr, "Down"); break; - case sf::Key::Numpad0: sprintf(keyStr, "NP 0"); break; - case sf::Key::Numpad1: sprintf(keyStr, "NP 1"); break; - case sf::Key::Numpad2: sprintf(keyStr, "NP 2"); break; - case sf::Key::Numpad3: sprintf(keyStr, "NP 3"); break; - case sf::Key::Numpad4: sprintf(keyStr, "NP 4"); break; - case sf::Key::Numpad5: sprintf(keyStr, "NP 5"); break; - case sf::Key::Numpad6: sprintf(keyStr, "NP 6"); break; - case sf::Key::Numpad7: sprintf(keyStr, "NP 7"); break; - case sf::Key::Numpad8: sprintf(keyStr, "NP 8"); break; - case sf::Key::Numpad9: sprintf(keyStr, "NP 9"); break; - case sf::Key::F1: sprintf(keyStr, "F1"); break; - case sf::Key::F2: sprintf(keyStr, "F2"); break; - case sf::Key::F3: sprintf(keyStr, "F3"); break; - case sf::Key::F4: sprintf(keyStr, "F4"); break; - case sf::Key::F5: sprintf(keyStr, "F5"); break; - case sf::Key::F6: sprintf(keyStr, "F6"); break; - case sf::Key::F7: sprintf(keyStr, "F7"); break; - case sf::Key::F8: sprintf(keyStr, "F8"); break; - case sf::Key::F9: sprintf(keyStr, "F9"); break; - case sf::Key::F10: sprintf(keyStr, "F10"); break; - case sf::Key::F11: sprintf(keyStr, "F11"); break; - case sf::Key::F12: sprintf(keyStr, "F12"); break; - case sf::Key::F13: sprintf(keyStr, "F13"); break; - case sf::Key::F14: sprintf(keyStr, "F14"); break; - case sf::Key::F15: sprintf(keyStr, "F15"); break; - case sf::Key::Pause: sprintf(keyStr, "Pause"); break; - default: - if (keycode > sf::Key::Escape) - sprintf(keyStr, "Invalid Key"); - else - sprintf(keyStr, "%c", toupper(keycode)); - break; - } -} - -class EventHandlerCleaner -{ -public: - ~EventHandlerCleaner() - { - //EventHandler::Destroy(); - } -} EventHandlerCleanerInst; diff -Nru desmume-0.9.9/src/wx/InputCommon/EventHandler.h desmume-0.9.10/src/wx/InputCommon/EventHandler.h --- desmume-0.9.9/src/wx/InputCommon/EventHandler.h 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/EventHandler.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -#ifndef EVENTHANDER_H -#define EVENTHANDER_H 1 -#include "common.h" -#include -#include "Event.hpp" - -#define NUMKEYS 300 -#define NUMMODS 8 - -typedef bool (*listenFuncPtr) (sf::Event); -enum InputType -{ - KeyboardInput, - MouseInput, - JoystickInput -}; - -enum Modifiers { - UseAlt = 1, - UseShift = 2, - UseCtrl = 4 -}; - -struct Keys { - InputType inputType; - sf::Event::EventType eventType; - sf::Key::Code keyCode; - int mods; - sf::Mouse::Button mouseButton; -}; - -class EventHandler { - -private: - listenFuncPtr keys[NUMKEYS][NUMMODS]; - listenFuncPtr mouse[sf::Mouse::Count+1]; - listenFuncPtr joys[sf::Joy::Count+1]; - std::queue eventQueue; - static EventHandler *m_Instance; - -protected: - EventHandler(const EventHandler&); - EventHandler& operator= (const EventHandler&); - - EventHandler(); - ~EventHandler(); - -public: - - bool RegisterEventListener(listenFuncPtr func, Keys key); - bool RemoveEventListener(Keys key); - void Update(); - static EventHandler *GetInstance(); - static void Destroy(); - bool addEvent(sf::Event *e); - static bool TestEvent (Keys k, sf::Event e); -#if defined(HAVE_WX) - static sf::Key::Code wxCharCodeToSF(int id); -#endif - static void SFKeyToString(sf::Key::Code keycode, char *keyStr); -}; - -#endif diff -Nru desmume-0.9.9/src/wx/InputCommon/Event.hpp desmume-0.9.10/src/wx/InputCommon/Event.hpp --- desmume-0.9.9/src/wx/InputCommon/Event.hpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/Event.hpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2008 Laurent Gomila (laurent.gom@gmail.com) -// -// This software is provided 'as-is', without any express or implied warranty. -// In no event will the authors be held liable for any damages arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it freely, -// subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; -// you must not claim that you wrote the original software. -// If you use this software in a product, an acknowledgment -// in the product documentation would be appreciated but is not required. -// -// 2. Altered source versions must be plainly marked as such, -// and must not be misrepresented as being the original software. -// -// 3. This notice may not be removed or altered from any source distribution. - -#ifndef SFML_EVENT_HPP -#define SFML_EVENT_HPP - - -namespace sf -{ - namespace Key - { - enum Code - { - A = 'a', - B = 'b', - C = 'c', - D = 'd', - E = 'e', - F = 'f', - G = 'g', - H = 'h', - I = 'i', - J = 'j', - K = 'k', - L = 'l', - M = 'm', - N = 'n', - O = 'o', - P = 'p', - Q = 'q', - R = 'r', - S = 's', - T = 't', - U = 'u', - V = 'v', - W = 'w', - X = 'x', - Y = 'y', - Z = 'z', - Num0 = '0', - Num1 = '1', - Num2 = '2', - Num3 = '3', - Num4 = '4', - Num5 = '5', - Num6 = '6', - Num7 = '7', - Num8 = '8', - Num9 = '9', - Escape = 256, - LControl, - LShift, - LAlt, - LSystem, - RControl, - RShift, - RAlt, - RSystem, - Menu, - LBracket, - RBracket, - SemiColon, - Comma, - Period, - Quote, - Slash, - BackSlash, - Tilde, - Equal, - Dash, - Space, - Return, - Back, - Tab, - PageUp, - PageDown, - End, - Home, - Insert, - Delete, - Add, - Subtract, - Multiply, - Divide, - Left, - Right, - Up, - Down, - Numpad0, - Numpad1, - Numpad2, - Numpad3, - Numpad4, - Numpad5, - Numpad6, - Numpad7, - Numpad8, - Numpad9, - F1, - F2, - F3, - F4, - F5, - F6, - F7, - F8, - F9, - F10, - F11, - F12, - F13, - F14, - F15, - Pause, - - Count // For internal use - }; - } - - - namespace Mouse - { - enum Button - { - Left, - Right, - Middle, - XButton1, - XButton2, - - Count // For internal use - }; - } - - - namespace Joy - { - enum Axis - { - AxisX, - AxisY, - AxisZ, - AxisR, - AxisU, - AxisV, - AxisPOV, - - Count // For internal use - }; - } - - - class Event - { - public : - - struct KeyEvent - { - Key::Code Code; - bool Alt; - bool Control; - bool Shift; - }; - - struct TextEvent - { - // I'm not sure we need this... - unsigned short Unicode; - }; - - struct MouseMoveEvent - { - int X; - int Y; - }; - - struct MouseButtonEvent - { - Mouse::Button Button; - int X; - int Y; - }; - - struct MouseWheelEvent - { - int Delta; - }; - - struct JoyMoveEvent - { - unsigned int JoystickId; - Joy::Axis Axis; - float Position; - }; - - struct JoyButtonEvent - { - unsigned int JoystickId; - unsigned int Button; - }; - - struct SizeEvent - { - unsigned int Width; - unsigned int Height; - }; - - enum EventType - { - Closed, - Resized, - LostFocus, - GainedFocus, - TextEntered, - KeyPressed, - KeyReleased, - MouseWheelMoved, - MouseButtonPressed, - MouseButtonReleased, - MouseMoved, - MouseEntered, - MouseLeft, - JoyButtonPressed, - JoyButtonReleased, - JoyMoved - }; - - // Member data - EventType Type; - - union - { - KeyEvent Key; - TextEvent Text; - MouseMoveEvent MouseMove; - MouseButtonEvent MouseButton; - MouseWheelEvent MouseWheel; - JoyMoveEvent JoyMove; - JoyButtonEvent JoyButton; - SizeEvent Size; - }; - }; - -} // namespace sf - - -#endif // SFML_EVENT_HPP diff -Nru desmume-0.9.9/src/wx/InputCommon/InputCommon.cpp desmume-0.9.10/src/wx/InputCommon/InputCommon.cpp --- desmume-0.9.9/src/wx/InputCommon/InputCommon.cpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/InputCommon.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#include "EventHandler.h" -#include "InputCommon.h" - -//EventHandler *eventHandler = NULL; - -namespace InputCommon -{ - void Init() { - // init the event handler - //EventHandler::GetInstance(); - } - - void Shutdown() { - //if (eventHandler) - // delete eventHandler; - } -} diff -Nru desmume-0.9.9/src/wx/InputCommon/InputCommon.h desmume-0.9.10/src/wx/InputCommon/InputCommon.h --- desmume-0.9.9/src/wx/InputCommon/InputCommon.h 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/InputCommon.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -#include "EventHandler.h" - -//extern EventHandler *eventHandler; - -namespace InputCommon -{ - void Init(); - void Shutdown(); -} diff -Nru desmume-0.9.9/src/wx/InputCommon/SDL.cpp desmume-0.9.10/src/wx/InputCommon/SDL.cpp --- desmume-0.9.9/src/wx/InputCommon/SDL.cpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/SDL.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,375 +0,0 @@ - -// Project description -// ------------------- -// Name: SDL Input -// Description: Common SDL Input Functions -// -// Author: Falcon4ever (nJoy@falcon4ever.com, www.multigesture.net), JPeterson etc -// Copyright (C) 2003 Dolphin Project. -// - -// -// Licensetype: GNU General Public License (GPL) -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. -// -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ -// -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ -// - - - - -// Include -// ------------------- -#define _SDL_MAIN_ // Avoid certain declarations in SDL.h -#include "SDL.h" // Local -#include "XInput.h" - - - - -// Definitions -// ------------------- -int g_LastPad = 0; - - - -namespace InputCommon -{ - - -// Definitions -// ------------------- - - - - - -// Search attached devices. Populate joyinfo for all attached physical devices. -// ----------------------- -bool SearchDevices(std::vector &_joyinfo, int &_NumPads, int &_NumGoodPads) -{ - if (!SDL_WasInit(0)) -#if SDL_VERSION_ATLEAST(1, 3, 0) - if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) < 0) -#else - if (SDL_Init(SDL_INIT_JOYSTICK) < 0) -#endif - { - //PanicAlert("Could not initialize SDL: %s", SDL_GetError()); - return false; - } - - // Get device status - int numjoy = SDL_NumJoysticks(); - for (int i = 0; i < numjoy; i++ ) - { - CONTROLLER_INFO Tmp; - - Tmp.joy = SDL_JoystickOpen(i); - Tmp.ID = i; - Tmp.NumAxes = SDL_JoystickNumAxes(Tmp.joy); - Tmp.NumButtons = SDL_JoystickNumButtons(Tmp.joy); - Tmp.NumBalls = SDL_JoystickNumBalls(Tmp.joy); - Tmp.NumHats = SDL_JoystickNumHats(Tmp.joy); - Tmp.Name = SDL_JoystickName(i); - - // Check if the device is okay - if ( Tmp.NumAxes == 0 - && Tmp.NumBalls == 0 - && Tmp.NumButtons == 0 - && Tmp.NumHats == 0 - ) - { - Tmp.Good = false; - } - else - { - _NumGoodPads++; - Tmp.Good = true; - } - - _joyinfo.push_back(Tmp); - - // We have now read the values we need so we close the device - if (SDL_JoystickOpened(i)) SDL_JoystickClose(_joyinfo[i].joy); - } - - _NumPads = (int)_joyinfo.size(); - - return true; -} - - - - -// Supporting functions -// ---------------- - -// Read current joystick status -/* ---------------- - The value PadMapping[].buttons[] is the number of the assigned joypad button, - PadState[].buttons[] is the status of the button, it becomes 0 (no pressed) or 1 (pressed) */ - - -// Read buttons status. Called from GetJoyState(). -// ---------------------- -static void ReadButton(CONTROLLER_STATE &_PadState, CONTROLLER_MAPPING _PadMapping, int button, int NumButtons) -{ - int ctl_button = _PadMapping.buttons[button]; - if (ctl_button < NumButtons) - { - _PadState.buttons[button] = SDL_JoystickGetButton(_PadState.joy, ctl_button); - } -} - -// Request joystick state. -// ---------------------- -/* Called from: PAD_GetStatus() - Input: The virtual device 0, 1, 2 or 3 - Function: Updates the PadState struct with the current pad status. The input value "controller" is - for a virtual controller 0 to 3. */ -void GetJoyState(CONTROLLER_STATE &_PadState, CONTROLLER_MAPPING _PadMapping, int Controller, int NumButtons) -{ - // Update the gamepad status - SDL_JoystickUpdate(); - - // Update axis states. It doesn't hurt much if we happen to ask for nonexisting axises here. - _PadState.axis[CTL_MAIN_X] = SDL_JoystickGetAxis(_PadState.joy, _PadMapping.axis[CTL_MAIN_X]); - _PadState.axis[CTL_MAIN_Y] = SDL_JoystickGetAxis(_PadState.joy, _PadMapping.axis[CTL_MAIN_Y]); - _PadState.axis[CTL_SUB_X] = SDL_JoystickGetAxis(_PadState.joy, _PadMapping.axis[CTL_SUB_X]); - _PadState.axis[CTL_SUB_Y] = SDL_JoystickGetAxis(_PadState.joy, _PadMapping.axis[CTL_SUB_Y]); - - // Update the analog trigger axis values -#ifdef _WIN32 - if (_PadMapping.triggertype == CTL_TRIGGER_SDL) - { -#endif - // If we are using SDL analog triggers the buttons have to be mapped as 1000 or up, otherwise they are not used - if(_PadMapping.buttons[CTL_L_SHOULDER] >= 1000) _PadState.axis[CTL_L_SHOULDER] = SDL_JoystickGetAxis(_PadState.joy, _PadMapping.buttons[CTL_L_SHOULDER] - 1000); else _PadState.axis[CTL_L_SHOULDER] = 0; - if(_PadMapping.buttons[CTL_R_SHOULDER] >= 1000) _PadState.axis[CTL_R_SHOULDER] = SDL_JoystickGetAxis(_PadState.joy, _PadMapping.buttons[CTL_R_SHOULDER] - 1000); else _PadState.axis[CTL_R_SHOULDER] = 0; -#ifdef _WIN32 - } - else - { - // XInput triggers for Xbox360 pads - _PadState.axis[CTL_L_SHOULDER] = XInput::GetXI(0, _PadMapping.buttons[CTL_L_SHOULDER] - 1000); - _PadState.axis[CTL_R_SHOULDER] = XInput::GetXI(0, _PadMapping.buttons[CTL_R_SHOULDER] - 1000); - } -#endif - - // Update button states to on or off - ReadButton(_PadState, _PadMapping, CTL_L_SHOULDER, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_R_SHOULDER, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_A_BUTTON, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_B_BUTTON, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_X_BUTTON, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_Y_BUTTON, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_Z_TRIGGER, NumButtons); - ReadButton(_PadState, _PadMapping, CTL_START, NumButtons); - - // Update Halfpress state, this one is not in the standard _PadState.buttons array - if (_PadMapping.halfpress < NumButtons && _PadMapping.halfpress >= 0) - _PadState.halfpress = SDL_JoystickGetButton(_PadState.joy, _PadMapping.halfpress); - else - _PadState.halfpress = 0; - - - // Check if we have an analog or digital joypad - if (_PadMapping.controllertype == CTL_DPAD_HAT) - { - _PadState.dpad = SDL_JoystickGetHat(_PadState.joy, _PadMapping.dpad); - } - else - { - // Only do this if the assigned button is in range (to allow for the current way of saving keyboard - // keys in the same array) - if(_PadMapping.dpad2[CTL_D_PAD_UP] <= NumButtons) - _PadState.dpad2[CTL_D_PAD_UP] = SDL_JoystickGetButton(_PadState.joy, _PadMapping.dpad2[CTL_D_PAD_UP]); - if(_PadMapping.dpad2[CTL_D_PAD_DOWN] <= NumButtons) - _PadState.dpad2[CTL_D_PAD_DOWN] = SDL_JoystickGetButton(_PadState.joy, _PadMapping.dpad2[CTL_D_PAD_DOWN]); - if(_PadMapping.dpad2[CTL_D_PAD_LEFT] <= NumButtons) - _PadState.dpad2[CTL_D_PAD_LEFT] = SDL_JoystickGetButton(_PadState.joy, _PadMapping.dpad2[CTL_D_PAD_LEFT]); - if(_PadMapping.dpad2[CTL_D_PAD_RIGHT] <= NumButtons) - _PadState.dpad2[CTL_D_PAD_RIGHT] = SDL_JoystickGetButton(_PadState.joy, _PadMapping.dpad2[CTL_D_PAD_RIGHT]); - } - -#ifdef SHOW_PAD_STATUS - // Show the status of all connected pads - //ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener(); - //if ((g_LastPad == 0 && Controller == 0) || Controller < g_LastPad) Console->ClearScreen(); - g_LastPad = Controller; - NOTICE_LOG(CONSOLE, - "Pad | Number:%i Enabled:%i Handle:%i\n" - "Main Stick | X:%03i Y:%03i\n" - "C Stick | X:%03i Y:%03i\n" - "Trigger | Type:%s DigitalL:%i DigitalR:%i AnalogL:%03i AnalogR:%03i HalfPress:%i\n" - "Buttons | A:%i X:%i\n" - "D-Pad | Type:%s Hat:%i U:%i D:%i\n" - "======================================================\n", - - Controller, _PadMapping.enabled, _PadState.joy, - - _PadState.axis[InputCommon::CTL_MAIN_X], _PadState.axis[InputCommon::CTL_MAIN_Y], - _PadState.axis[InputCommon::CTL_SUB_X], _PadState.axis[InputCommon::CTL_SUB_Y], - - (_PadMapping.triggertype ? "CTL_TRIGGER_XINPUT" : "CTL_TRIGGER_SDL"), - _PadState.buttons[InputCommon::CTL_L_SHOULDER], _PadState.buttons[InputCommon::CTL_R_SHOULDER], - _PadState.axis[InputCommon::CTL_L_SHOULDER], _PadState.axis[InputCommon::CTL_R_SHOULDER], - _PadState.halfpress, - - _PadState.buttons[InputCommon::CTL_A_BUTTON], _PadState.buttons[InputCommon::CTL_X_BUTTON], - - (_PadMapping.controllertype ? "CTL_DPAD_CUSTOM" : "CTL_DPAD_HAT"), - _PadState.dpad, - _PadState.dpad2[InputCommon::CTL_D_PAD_UP], _PadState.dpad2[InputCommon::CTL_D_PAD_DOWN] - ); -#endif -} - - - - - - -// Configure button mapping -// ---------- - -// Avoid extreme axis values -// --------------------- -/* Function: We have to avoid very big values to becuse some triggers are -0x8000 in the - unpressed state (and then go from -0x8000 to 0x8000 as they are fully pressed) */ -static bool AvoidValues(int value, bool NoTriggerFilter) -{ - // Avoid detecting very small or very big (for triggers) values - if( (value > -0x2000 && value < 0x2000) // Small values - || ((value < -0x6000 || value > 0x6000) && !NoTriggerFilter)) // Big values - return true; // Avoid - else - return false; // Keep -} - - -// Detect a pressed button -// --------------------- -void GetButton(SDL_Joystick *joy, int ControllerID, int buttons, int axes, int hats, - int &KeyboardKey, int &value, int &type, int &pressed, bool &Succeed, bool &Stop, - bool LeftRight, bool Axis, bool XInput, bool Button, bool Hat, bool NoTriggerFilter) -{ - // It needs the wxWidgets excape keycode - static const int WXK_ESCAPE = 27; - - // Update the internal status - SDL_JoystickUpdate(); - - // For the triggers we accept both a digital or an analog button - if(Axis) - { - for(int i = 0; i < axes; i++) - { - value = SDL_JoystickGetAxis(joy, i); - - if(AvoidValues(value, NoTriggerFilter)) continue; // Avoid values - - pressed = i + (LeftRight ? 1000 : 0); // Identify the analog triggers - type = InputCommon::CTL_AXIS; - Succeed = true; - } - } - - // Check for a hat - if(Hat) - { - for(int i = 0; i < hats; i++) - { - value = SDL_JoystickGetHat(joy, i); - if(value) - { - pressed = i; - type = InputCommon::CTL_HAT; - Succeed = true; - } - } - } - - // Check for a button - if(Button) - { - for(int i = 0; i < buttons; i++) - { - // Some kind of bug in SDL 1.3 would give button 9 and 10 (nonexistent) the value 48 on the 360 pad - if (SDL_JoystickGetButton(joy, i) > 1) continue; - - if(SDL_JoystickGetButton(joy, i)) - { - pressed = i; - type = InputCommon::CTL_BUTTON; - Succeed = true; - } - } - } - - // Check for a XInput trigger - #ifdef _WIN32 - if(XInput) - { - for(int i = 0; i <= InputCommon::XI_TRIGGER_R; i++) - { - if(XInput::GetXI(0, i)) - { - pressed = i + 1000; - type = InputCommon::CTL_AXIS; - Succeed = true; - } - } - } - #endif - - // Check for keyboard action - if (KeyboardKey) - { - if(Button) - { - // Todo: Add a separate keyboard vector to remove this restriction - if(KeyboardKey >= buttons) - { - pressed = KeyboardKey; - type = InputCommon::CTL_BUTTON; - Succeed = true; - KeyboardKey = 0; - if(pressed == WXK_ESCAPE) pressed = -1; // Check for the escape key - } - // Else show the error message - else - { - pressed = KeyboardKey; - KeyboardKey = -1; - Stop = true; - } - } - // Only accept the escape key - else if (KeyboardKey == WXK_ESCAPE) - { - Succeed = true; - KeyboardKey = 0; - pressed = -1; - } - } -} -/////////////////////////////////////////////////////////// Configure button mapping - - - -} // InputCommon - diff -Nru desmume-0.9.9/src/wx/InputCommon/SDL.h desmume-0.9.10/src/wx/InputCommon/SDL.h --- desmume-0.9.9/src/wx/InputCommon/SDL.h 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/SDL.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,269 +0,0 @@ - -// Project description -// ------------------- -// Name: SDL Input -// Description: Common SDL Input Functions -// -// Author: Falcon4ever (nJoy@falcon4ever.com, www.multigesture.net), JPeterson etc -// Copyright (C) 2003 Dolphin Project. -// - -// -// Licensetype: GNU General Public License (GPL) -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. -// -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ -// -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ -// - - -#ifndef _SDL_h -#define _SDL_h - - -// Include -// ------------------- -#include // System -#include -#include - -#ifdef _WIN32 -#include // Externals -#include -#if SDL_VERSION_ATLEAST(1, 3, 0) - #include -#endif -#else -#include -#include -#if SDL_VERSION_ATLEAST(1, 3, 0) - #include -#endif -#endif - -#include "common.h" // Common - - - -namespace InputCommon -{ - - -// Settings -// ---------- -// Show a status window with the detected axes, buttons and so on -//#define SHOW_PAD_STATUS - - - -// Structures -/* ------------------- - CONTROLLER_STATE buttons (PadState) = 0 or 1 - CONTROLLER_MAPPING buttons (joystick) = 0 or 1, 2, 3, 4, a certain joypad button - - Please remember: The axis limit is hardcoded here, if you allow more axises (for - example for analog A and B buttons) you must first incrase the size of the axis array - size here -*/ -struct CONTROLLER_STATE // GC PAD INFO/STATE -{ - int buttons[8]; // Amount of buttons (A B X Y Z, L-Trigger R-Trigger Start) might need to change the triggers buttons - int dpad; // Automatic SDL D-Pad (8 directions + neutral) - int dpad2[4]; // D-pad using buttons - int axis[6]; // 2 x 2 Axes (Main & Sub) - int halfpress; // Halfpress... you know, like not fully pressed ;)... - SDL_Joystick *joy; // SDL joystick device -}; - -struct CONTROLLER_MAPPING // GC PAD MAPPING -{ - int buttons[8]; // (See above) - int dpad; // (See above) - int dpad2[4]; // (See above) - int axis[6]; // (See above) - int halfpress; // (See above) - int deadzone; // Deadzone... what else? - int ID; // SDL joystick device ID - int controllertype; // Hat: Hat or custom buttons - int triggertype; // Triggers range - std::string SRadius, SDiagonal, SRadiusC, SDiagonalC; - bool bRadiusOnOff, bSquareToCircle, bRadiusOnOffC, bSquareToCircleC; - bool rumble; - bool enable; - int eventnum; // Linux Event Number, Can't be found dynamically yet -}; - -struct CONTROLLER_INFO // CONNECTED WINDOWS DEVICES INFO -{ - int NumAxes; // Amount of Axes - int NumButtons; // Amount of Buttons - int NumBalls; // Amount of Balls - int NumHats; // Amount of Hats (POV) - std::string Name; // Joypad/stickname - int ID; // SDL joystick device ID - bool Good; // Pad is good (it has at least one button or axis) - SDL_Joystick *joy; // SDL joystick device -}; -enum -{ - // CTL_L_SHOULDER and CTL_R_SHOULDER = 0 and 1 - CTL_MAIN_X = 2, - CTL_MAIN_Y, - CTL_SUB_X, - CTL_SUB_Y -}; - -enum -{ - CTL_L_SHOULDER = 0, - CTL_R_SHOULDER, - CTL_A_BUTTON, - CTL_B_BUTTON, - CTL_X_BUTTON, - CTL_Y_BUTTON, - CTL_Z_TRIGGER, - CTL_START -}; -// DPad Type -enum -{ - CTL_DPAD_HAT = 0, // Automatically use the first hat that SDL finds - CTL_DPAD_CUSTOM // Custom directional pad settings -}; -// Trigger Type -enum -{ - CTL_TRIGGER_SDL = 0, // - CTL_TRIGGER_XINPUT // The XBox 360 pad -}; -enum -{ - CTL_D_PAD_UP = 0, - CTL_D_PAD_DOWN, - CTL_D_PAD_LEFT, - CTL_D_PAD_RIGHT -}; -// Button type for the configuration -enum -{ - CTL_AXIS = 0, - CTL_HAT, - CTL_BUTTON, - CTL_KEY -}; -// XInput buttons -enum -{ - XI_TRIGGER_L = 0, - XI_TRIGGER_R -}; - - -union PadAxis -{ - int keyForControls[6]; - struct - { - int Lx; - int Ly; - int Rx; - int Ry; - int Tl; // Trigger - int Tr; // Trigger - }; -}; -struct PadWiimote -{ - int keyForControls[16]; - // Order is A, B, 1, 2, +, -, Home - // L, R, U, D, RollL, RollR, PitchU, PitchD, Shake -}; -struct PadNunchuck -{ - int keyForControls[7]; - // Order is Z, C, L, R, U, D, Shake -}; -struct PadClassicController -{ - int keyForControls[23]; - // Order is A, B, X, Y, +, -, Home - // Tl, Zl, Zr, Tr, Dl, Dr, Du, Dd - // Ll, Lr, Lu, Ld, Rl, Rr, Ru, Rd -}; -struct PadGH3Controller -{ - int keyForControls[14]; - // Order is Green, Red, Yellow, Blue, Orange, - // +, -, Whammy, - // Al, Ar, Au, Ad, - // StrumUp, StrumDown -}; -struct CONTROLLER_STATE_NEW // GC PAD INFO/STATE -{ - PadAxis Axis; // 6 Axes (Main, Sub, Triggers) - SDL_Joystick *joy; // SDL joystick device -}; -struct CONTROLLER_MAPPING_NEW // GC PAD MAPPING -{ - PadAxis Axis; // (See above) - PadWiimote Wm; - PadNunchuck Nc; - PadClassicController Cc; - PadGH3Controller GH3c; - bool enabled; // Pad attached? - bool Rumble; - int RumbleStrength; - int DeadZoneL; // Analog 1 Deadzone - int DeadZoneR; // Analog 2 Deadzone - int ID; // SDL joystick device ID - int controllertype; // D-Pad type: Hat or custom buttons - int triggertype; // SDL or XInput trigger - std::string SDiagonal; - bool bSquareToCircle; - bool bCircle2Square; -}; - - - - -// Declarations -// --------- - -// General functions -bool SearchDevices(std::vector &_joyinfo, int &NumPads, int &NumGoodPads); -void GetJoyState(CONTROLLER_STATE &_PadState, CONTROLLER_MAPPING _PadMapping, int controller, int NumButtons); -void GetButton(SDL_Joystick*, int,int,int,int, int&,int&,int&,int&,bool&,bool&, bool,bool,bool,bool,bool,bool); - -// Value conversion -float Deg2Rad(float Deg); -float Rad2Deg(float Rad); -int Pad_Convert(int _val); -float SquareDistance(float deg); -bool IsDeadZone(float DeadZone, int x, int y); -void Square2Circle(int &_x, int &_y, int _pad, std::string SDiagonal, bool Circle2Square = false); -void RadiusAdjustment(int &_x, int &_y, int _pad, std::string SRadius); - -// Input configuration -std::string VKToString(int keycode); - -#ifndef _SDL_MAIN_ - extern int g_LastPad; -#endif - - - -} // InputCommon - - -#endif // _SDL_h diff -Nru desmume-0.9.9/src/wx/InputCommon/X11InputBase.cpp desmume-0.9.10/src/wx/InputCommon/X11InputBase.cpp --- desmume-0.9.9/src/wx/InputCommon/X11InputBase.cpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/X11InputBase.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,156 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#include "X11InputBase.h" -#include -#include -#include -namespace InputCommon -{ -#if defined(HAVE_WX) && HAVE_WX -// Taken from wxw source code -KeySym wxCharCodeWXToX(int id) -{ - KeySym keySym; - - switch (id) - { - case WXK_CANCEL: keySym = XK_Cancel; break; - case WXK_BACK: keySym = XK_BackSpace; break; - case WXK_TAB: keySym = XK_Tab; break; - case WXK_CLEAR: keySym = XK_Clear; break; - case WXK_RETURN: keySym = XK_Return; break; - case WXK_SHIFT: keySym = XK_Shift_L; break; - case WXK_CONTROL: keySym = XK_Control_L; break; - case WXK_ALT: keySym = XK_Meta_L; break; - case WXK_CAPITAL: keySym = XK_Caps_Lock; break; - case WXK_MENU : keySym = XK_Menu; break; - case WXK_PAUSE: keySym = XK_Pause; break; - case WXK_ESCAPE: keySym = XK_Escape; break; - case WXK_SPACE: keySym = ' '; break; - case WXK_PAGEUP: keySym = XK_Prior; break; - case WXK_PAGEDOWN: keySym = XK_Next; break; - case WXK_END: keySym = XK_End; break; - case WXK_HOME : keySym = XK_Home; break; - case WXK_LEFT : keySym = XK_Left; break; - case WXK_UP: keySym = XK_Up; break; - case WXK_RIGHT: keySym = XK_Right; break; - case WXK_DOWN : keySym = XK_Down; break; - case WXK_SELECT: keySym = XK_Select; break; - case WXK_PRINT: keySym = XK_Print; break; - case WXK_EXECUTE: keySym = XK_Execute; break; - case WXK_INSERT: keySym = XK_Insert; break; - case WXK_DELETE: keySym = XK_Delete; break; - case WXK_HELP : keySym = XK_Help; break; - case WXK_NUMPAD0: keySym = XK_KP_0; break; case WXK_NUMPAD_INSERT: keySym = XK_KP_Insert; break; - case WXK_NUMPAD1: keySym = XK_KP_1; break; case WXK_NUMPAD_END: keySym = XK_KP_End; break; - case WXK_NUMPAD2: keySym = XK_KP_2; break; case WXK_NUMPAD_DOWN: keySym = XK_KP_Down; break; - case WXK_NUMPAD3: keySym = XK_KP_3; break; case WXK_NUMPAD_PAGEDOWN: keySym = XK_KP_Page_Down; break; - case WXK_NUMPAD4: keySym = XK_KP_4; break; case WXK_NUMPAD_LEFT: keySym = XK_KP_Left; break; - case WXK_NUMPAD5: keySym = XK_KP_5; break; - case WXK_NUMPAD6: keySym = XK_KP_6; break; case WXK_NUMPAD_RIGHT: keySym = XK_KP_Right; break; - case WXK_NUMPAD7: keySym = XK_KP_7; break; case WXK_NUMPAD_HOME: keySym = XK_KP_Home; break; - case WXK_NUMPAD8: keySym = XK_KP_8; break; case WXK_NUMPAD_UP: keySym = XK_KP_Up; break; - case WXK_NUMPAD9: keySym = XK_KP_9; break; case WXK_NUMPAD_PAGEUP: keySym = XK_KP_Page_Up; break; - case WXK_NUMPAD_DECIMAL: keySym = XK_KP_Decimal; break; case WXK_NUMPAD_DELETE: keySym = XK_KP_Delete; break; - case WXK_NUMPAD_MULTIPLY: keySym = XK_KP_Multiply; break; - case WXK_NUMPAD_ADD: keySym = XK_KP_Add; break; - case WXK_NUMPAD_SUBTRACT: keySym = XK_KP_Subtract; break; - case WXK_NUMPAD_DIVIDE: keySym = XK_KP_Divide; break; - case WXK_NUMPAD_ENTER: keySym = XK_KP_Enter; break; - case WXK_NUMPAD_SEPARATOR: keySym = XK_KP_Separator; break; - case WXK_F1: keySym = XK_F1; break; - case WXK_F2: keySym = XK_F2; break; - case WXK_F3: keySym = XK_F3; break; - case WXK_F4: keySym = XK_F4; break; - case WXK_F5: keySym = XK_F5; break; - case WXK_F6: keySym = XK_F6; break; - case WXK_F7: keySym = XK_F7; break; - case WXK_F8: keySym = XK_F8; break; - case WXK_F9: keySym = XK_F9; break; - case WXK_F10: keySym = XK_F10; break; - case WXK_F11: keySym = XK_F11; break; - case WXK_F12: keySym = XK_F12; break; - case WXK_F13: keySym = XK_F13; break; - case WXK_F14: keySym = XK_F14; break; - case WXK_F15: keySym = XK_F15; break; - case WXK_F16: keySym = XK_F16; break; - case WXK_F17: keySym = XK_F17; break; - case WXK_F18: keySym = XK_F18; break; - case WXK_F19: keySym = XK_F19; break; - case WXK_F20: keySym = XK_F20; break; - case WXK_F21: keySym = XK_F21; break; - case WXK_F22: keySym = XK_F22; break; - case WXK_F23: keySym = XK_F23; break; - case WXK_F24: keySym = XK_F24; break; - case WXK_NUMLOCK: keySym = XK_Num_Lock; break; - case WXK_SCROLL: keySym = XK_Scroll_Lock; break; - default: keySym = id <= 255 ? (KeySym)id : 0; - } - - return keySym; -} -#else -KeySym wxCharCodeWXToX(int id) -{ - return NULL; -} -#endif -void XKeyToString(unsigned int keycode, char *keyStr) { - switch (keycode) { - - case XK_Left: - sprintf(keyStr, "LEFT"); - break; - case XK_Up: - sprintf(keyStr, "UP"); - break; - case XK_Right: - sprintf(keyStr, "RIGHT"); - break; - case XK_Down: - sprintf(keyStr, "DOWN"); - break; - case XK_Return: - sprintf(keyStr, "RETURN"); - break; - case XK_KP_Enter: - sprintf(keyStr, "KP ENTER"); - break; - case XK_KP_Left: - sprintf(keyStr, "KP LEFT"); - break; - case XK_KP_Up: - sprintf(keyStr, "KP UP"); - break; - case XK_KP_Right: - sprintf(keyStr, "KP RIGHT"); - break; - case XK_KP_Down: - sprintf(keyStr, "KP DOWN"); - break; - case XK_Shift_L: - sprintf(keyStr, "LShift"); - break; - case XK_Control_L: - sprintf(keyStr, "LControl"); - break; - default: - sprintf(keyStr, "%c", toupper(keycode)); - } -} -} diff -Nru desmume-0.9.9/src/wx/InputCommon/X11InputBase.h desmume-0.9.10/src/wx/InputCommon/X11InputBase.h --- desmume-0.9.9/src/wx/InputCommon/X11InputBase.h 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/X11InputBase.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef XINPUTBASE_H -#define XINPUTBASE_H - -#include -#include -#if 0 -#include "config.h" -#endif -#if defined(HAVE_WX) && HAVE_WX -#include -#endif -namespace InputCommon -{ -KeySym wxCharCodeWXToX(int id); -void XKeyToString(unsigned int keycode, char *keyStr); -} -#endif diff -Nru desmume-0.9.9/src/wx/InputCommon/XInput.cpp desmume-0.9.10/src/wx/InputCommon/XInput.cpp --- desmume-0.9.9/src/wx/InputCommon/XInput.cpp 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/XInput.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ - -// -// Licensetype: GNU General Public License (GPL) -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. -// -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ -// -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ -// - - - - -// File description -/* ------------------- - Function: This file will get the status of the analog triggers of any connected XInput device. - This code was made with the help of SimpleController.cpp in the June 2008 Microsoft DirectX SDK - Samples. - -///////////////////////////////////////////////////// */ - -#ifdef _WIN32 - - -// Includes -// ------------------- -#include -#include // XInput API - -#include "SDL.h" // Local - - - -namespace XInput -{ - - - -// Declarations -// ------------------- - -#define MAX_CONTROLLERS 4 // XInput handles up to 4 controllers - -struct CONTROLER_STATE -{ - XINPUT_STATE state; - bool bConnected; -}; -CONTROLER_STATE g_Controllers[MAX_CONTROLLERS]; - - - - -// Init -// ------------------- -/* Function: Calculate the number of connected XInput devices - Todo: Implement this to figure out if there are multiple XInput controllers connected, - we currently only try to connect to XInput device 0 */ -void Init() -{ - // Init state - //ZeroMemory( g_Controllers, sizeof( CONTROLER_STATE ) * MAX_CONTROLLERS ); - - // Declaration - DWORD dwResult; - - // Calculate the number of connected XInput devices - for( DWORD i = 0; i < MAX_CONTROLLERS; i++ ) - { - // Simply get the state of the controller from XInput. - dwResult = XInputGetState( i, &g_Controllers[i].state ); - - if( dwResult == ERROR_SUCCESS ) - g_Controllers[i].bConnected = true; - else - g_Controllers[i].bConnected = false; - } - -} - - - - -// Get the trigger status -// ------------------- -int GetXI(int Controller, int Button) -{ - // Update the internal status - DWORD dwResult; - dwResult = XInputGetState( Controller, &g_Controllers[Controller].state ); - - if( dwResult != ERROR_SUCCESS ) return -1; - - switch(Button) - { - case InputCommon::XI_TRIGGER_L: - return g_Controllers[0].state.Gamepad.bLeftTrigger; - - case InputCommon::XI_TRIGGER_R: - return g_Controllers[0].state.Gamepad.bRightTrigger; - - default: - return 0; - } -} - - - - -// Check if a certain controller is connected -// ------------------- -bool IsConnected(int Controller) -{ - DWORD dwResult = XInputGetState( Controller, &g_Controllers[Controller].state ); - - // Update the connected status - if( dwResult == ERROR_SUCCESS ) - return true; - else - return false; -} - - -} // XInput - -#endif \ No newline at end of file diff -Nru desmume-0.9.9/src/wx/InputCommon/XInput.h desmume-0.9.10/src/wx/InputCommon/XInput.h --- desmume-0.9.9/src/wx/InputCommon/XInput.h 2013-05-01 18:48:39.000000000 +0000 +++ desmume-0.9.10/src/wx/InputCommon/XInput.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - -// -// Licensetype: GNU General Public License (GPL) -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. -// -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ -// -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ -// - - -#ifdef _WIN32 - - -// Includes -// ---------- -#include - - - - -namespace XInput -{ - - -// Declarations -// ---------- -void Init(); -int GetXI(int Controller, int Button); -bool IsConnected(int Controller); - - -} // XInput - -#endif - diff -Nru desmume-0.9.9/src/wx/LuaWindow.h desmume-0.9.10/src/wx/LuaWindow.h --- desmume-0.9.9/src/wx/LuaWindow.h 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/LuaWindow.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef __LUAWINDOW_H__ -#define __LUAWINDOW_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class wxLuaWindow : public wxFrame -{ - public: - - wxLuaWindow(wxFrame* parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); - - void PrintMessage(const char *text); - - void OnStop(); - - virtual ~wxLuaWindow(); - - protected: - static int luaCount; - int luaID; - bool bScriptRunning; - wxString currentScript; - - // Event Table - DECLARE_EVENT_TABLE(); - - // --- GUI Controls --- - - wxPanel *m_Tab_Log; - - wxButton *m_Button_Close, *m_Button_LoadScript, *m_Button_Run, - *m_Button_Stop; - - wxTextCtrl *m_TextCtrl_Log; - - // GUI IDs - enum - { - ID_TAB_LOG, - ID_BUTTON_CLOSE, - ID_BUTTON_LOAD, - ID_BUTTON_RUN, - ID_BUTTON_STOP, - ID_TEXTCTRL_LOG - }; - - void InitGUIControls(); - - - // --- Wx Events Handlers --- - // $ Window - void OnEvent_Window_Resize(wxSizeEvent& event); - void OnEvent_Window_Close(wxCloseEvent& event); - - // $ Buttons - void OnEvent_ButtonClose_Press(wxCommandEvent& event); - void OnEvent_ScriptLoad_Press(wxCommandEvent& event); - void OnEvent_ScriptRun_Press(wxCommandEvent& event); - void OnEvent_ScriptStop_Press(wxCommandEvent& event); - - -}; - -#endif - diff -Nru desmume-0.9.9/src/wx/Makefile.am desmume-0.9.10/src/wx/Makefile.am --- desmume-0.9.9/src/wx/Makefile.am 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -include $(top_srcdir)/src/desmume.mk - -AM_CPPFLAGS += -DHAVE_WX=1 -DHAVE_X11=1 $(WX_CPPFLAGS) $(SDL_CFLAGS) $(LIBAGG_CFLAGS) $(LIBSOUNDTOUCH_CFLAGS) - -Applicationsdir = $(datadir)/applications -Applications_DATA = wxdesmume.desktop -pixmapdir = $(datadir)/pixmaps -pixmap_DATA = DeSmuME.xpm -EXTRA_DIST = wxdesmume.desktop DeSmuME.xpm -bin_PROGRAMS = wxdesmume -wxdesmume_SOURCES = \ - ../sndsdl.cpp \ - ../driver.h ../driver.cpp \ - ../wxdlg/wxdlg3dViewer.h ../wxdlg/wxdlg3dViewer.cpp \ - ../wxdlg/wxcontrolsconfigdialog.h ../wxdlg/wxcontrolsconfigdialog.cpp \ - PadSimple/pluginspecs_pad.h \ - PadSimple/PadSimple.h PadSimple/PadSimple.cpp \ - PadSimple/GUI/ConfigDlg.h PadSimple/GUI/ConfigDlg.cpp \ - InputCommon/X11InputBase.h InputCommon/X11InputBase.cpp \ - InputCommon/XInput.h InputCommon/XInput.cpp \ - InputCommon/InputCommon.h InputCommon/InputCommon.cpp \ - InputCommon/Event.hpp \ - InputCommon/EventHandler.h InputCommon/EventHandler.cpp \ - InputCommon/Configuration.cpp \ - InputCommon/SDL.h InputCommon/SDL.cpp \ - LuaWindow.h \ - StringUtil.h StringUtil.cpp \ - wxMain.cpp -wxdesmume_LDADD = ../libdesmume.a \ - $(SDL_LIBS) $(GTHREAD_LIBS) $(GLIB_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) $(WX_LIBS) $(LIBSOUNDTOUCH_LIBS) -lX11 -if HAVE_GDB_STUB -wxdesmume_LDADD += ../gdbstub/libgdbstub.a -endif diff -Nru desmume-0.9.9/src/wx/Makefile.in desmume-0.9.10/src/wx/Makefile.in --- desmume-0.9.9/src/wx/Makefile.in 2013-05-01 21:30:08.000000000 +0000 +++ desmume-0.9.10/src/wx/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,875 +0,0 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/src/desmume.mk -bin_PROGRAMS = wxdesmume$(EXEEXT) -@HAVE_GDB_STUB_TRUE@am__append_1 = ../gdbstub/libgdbstub.a -subdir = src/wx -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/wxwin.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(Applicationsdir)" \ - "$(DESTDIR)$(pixmapdir)" -PROGRAMS = $(bin_PROGRAMS) -am_wxdesmume_OBJECTS = sndsdl.$(OBJEXT) driver.$(OBJEXT) \ - wxdlg3dViewer.$(OBJEXT) wxcontrolsconfigdialog.$(OBJEXT) \ - PadSimple.$(OBJEXT) ConfigDlg.$(OBJEXT) X11InputBase.$(OBJEXT) \ - XInput.$(OBJEXT) InputCommon.$(OBJEXT) EventHandler.$(OBJEXT) \ - Configuration.$(OBJEXT) SDL.$(OBJEXT) StringUtil.$(OBJEXT) \ - wxMain.$(OBJEXT) -wxdesmume_OBJECTS = $(am_wxdesmume_OBJECTS) -am__DEPENDENCIES_1 = -wxdesmume_DEPENDENCIES = ../libdesmume.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(wxdesmume_SOURCES) -DIST_SOURCES = $(wxdesmume_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -DATA = $(Applications_DATA) $(pixmap_DATA) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -ALSA_CFLAGS = @ALSA_CFLAGS@ -ALSA_LIBS = @ALSA_LIBS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLADEUI_UNINSTALLED_DIR = @GLADEUI_UNINSTALLED_DIR@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTKGLEXT_CFLAGS = @GTKGLEXT_CFLAGS@ -GTKGLEXT_LIBS = @GTKGLEXT_LIBS@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ -INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ -INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ -INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ -LDFLAGS = @LDFLAGS@ -LIBAGG_CFLAGS = @LIBAGG_CFLAGS@ -LIBAGG_LIBS = @LIBAGG_LIBS@ -LIBGLADE_CFLAGS = @LIBGLADE_CFLAGS@ -LIBGLADE_LIBS = @LIBGLADE_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSOUNDTOUCH_CFLAGS = @LIBSOUNDTOUCH_CFLAGS@ -LIBSOUNDTOUCH_LIBS = @LIBSOUNDTOUCH_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -LUA_CFLAGS = @LUA_CFLAGS@ -LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -OBJEXT = @OBJEXT@ -OSMESA_LIBS = @OSMESA_LIBS@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_DIR = @PO_DIR@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SDLCONFIG = @SDLCONFIG@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -UI_DIR = @UI_DIR@ -UPDATEDESKTOP = @UPDATEDESKTOP@ -USE_MAINTAINER_MODE = @USE_MAINTAINER_MODE@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WX_CFLAGS = @WX_CFLAGS@ -WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ -WX_CONFIG_PATH = @WX_CONFIG_PATH@ -WX_CPPFLAGS = @WX_CPPFLAGS@ -WX_CXXFLAGS = @WX_CXXFLAGS@ -WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ -WX_LIBS = @WX_LIBS@ -WX_LIBS_STATIC = @WX_LIBS_STATIC@ -WX_RESCOMP = @WX_RESCOMP@ -WX_VERSION = @WX_VERSION@ -XGETTEXT = @XGETTEXT@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -desmume_arch = @desmume_arch@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -intltool__v_merge_options_ = @intltool__v_merge_options_@ -intltool__v_merge_options_0 = @intltool__v_merge_options_0@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = -AM_CPPFLAGS = -I$(top_srcdir)/src -DHAVE_WX=1 -DHAVE_X11=1 \ - $(WX_CPPFLAGS) $(SDL_CFLAGS) $(LIBAGG_CFLAGS) \ - $(LIBSOUNDTOUCH_CFLAGS) -AM_LDFLAGS = -Applicationsdir = $(datadir)/applications -Applications_DATA = wxdesmume.desktop -pixmapdir = $(datadir)/pixmaps -pixmap_DATA = DeSmuME.xpm -EXTRA_DIST = wxdesmume.desktop DeSmuME.xpm -wxdesmume_SOURCES = \ - ../sndsdl.cpp \ - ../driver.h ../driver.cpp \ - ../wxdlg/wxdlg3dViewer.h ../wxdlg/wxdlg3dViewer.cpp \ - ../wxdlg/wxcontrolsconfigdialog.h ../wxdlg/wxcontrolsconfigdialog.cpp \ - PadSimple/pluginspecs_pad.h \ - PadSimple/PadSimple.h PadSimple/PadSimple.cpp \ - PadSimple/GUI/ConfigDlg.h PadSimple/GUI/ConfigDlg.cpp \ - InputCommon/X11InputBase.h InputCommon/X11InputBase.cpp \ - InputCommon/XInput.h InputCommon/XInput.cpp \ - InputCommon/InputCommon.h InputCommon/InputCommon.cpp \ - InputCommon/Event.hpp \ - InputCommon/EventHandler.h InputCommon/EventHandler.cpp \ - InputCommon/Configuration.cpp \ - InputCommon/SDL.h InputCommon/SDL.cpp \ - LuaWindow.h \ - StringUtil.h StringUtil.cpp \ - wxMain.cpp - -wxdesmume_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTHREAD_LIBS) \ - $(GLIB_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) $(WX_LIBS) \ - $(LIBSOUNDTOUCH_LIBS) -lX11 $(am__append_1) -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/src/desmume.mk $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/wx/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/wx/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; -$(top_srcdir)/src/desmume.mk: - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -wxdesmume$(EXEEXT): $(wxdesmume_OBJECTS) $(wxdesmume_DEPENDENCIES) $(EXTRA_wxdesmume_DEPENDENCIES) - @rm -f wxdesmume$(EXEEXT) - $(CXXLINK) $(wxdesmume_OBJECTS) $(wxdesmume_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigDlg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Configuration.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventHandler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InputCommon.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PadSimple.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SDL.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringUtil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/X11InputBase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XInput.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndsdl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxMain.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxcontrolsconfigdialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxdlg3dViewer.Po@am__quote@ - -.cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -sndsdl.o: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.o -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.o `test -f '../sndsdl.cpp' || echo '$(srcdir)/'`../sndsdl.cpp - -sndsdl.obj: ../sndsdl.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sndsdl.obj -MD -MP -MF $(DEPDIR)/sndsdl.Tpo -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sndsdl.Tpo $(DEPDIR)/sndsdl.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../sndsdl.cpp' object='sndsdl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sndsdl.obj `if test -f '../sndsdl.cpp'; then $(CYGPATH_W) '../sndsdl.cpp'; else $(CYGPATH_W) '$(srcdir)/../sndsdl.cpp'; fi` - -driver.o: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.o -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.o `test -f '../driver.cpp' || echo '$(srcdir)/'`../driver.cpp - -driver.obj: ../driver.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT driver.obj -MD -MP -MF $(DEPDIR)/driver.Tpo -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver.Tpo $(DEPDIR)/driver.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../driver.cpp' object='driver.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o driver.obj `if test -f '../driver.cpp'; then $(CYGPATH_W) '../driver.cpp'; else $(CYGPATH_W) '$(srcdir)/../driver.cpp'; fi` - -wxdlg3dViewer.o: ../wxdlg/wxdlg3dViewer.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wxdlg3dViewer.o -MD -MP -MF $(DEPDIR)/wxdlg3dViewer.Tpo -c -o wxdlg3dViewer.o `test -f '../wxdlg/wxdlg3dViewer.cpp' || echo '$(srcdir)/'`../wxdlg/wxdlg3dViewer.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/wxdlg3dViewer.Tpo $(DEPDIR)/wxdlg3dViewer.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../wxdlg/wxdlg3dViewer.cpp' object='wxdlg3dViewer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wxdlg3dViewer.o `test -f '../wxdlg/wxdlg3dViewer.cpp' || echo '$(srcdir)/'`../wxdlg/wxdlg3dViewer.cpp - -wxdlg3dViewer.obj: ../wxdlg/wxdlg3dViewer.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wxdlg3dViewer.obj -MD -MP -MF $(DEPDIR)/wxdlg3dViewer.Tpo -c -o wxdlg3dViewer.obj `if test -f '../wxdlg/wxdlg3dViewer.cpp'; then $(CYGPATH_W) '../wxdlg/wxdlg3dViewer.cpp'; else $(CYGPATH_W) '$(srcdir)/../wxdlg/wxdlg3dViewer.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/wxdlg3dViewer.Tpo $(DEPDIR)/wxdlg3dViewer.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../wxdlg/wxdlg3dViewer.cpp' object='wxdlg3dViewer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wxdlg3dViewer.obj `if test -f '../wxdlg/wxdlg3dViewer.cpp'; then $(CYGPATH_W) '../wxdlg/wxdlg3dViewer.cpp'; else $(CYGPATH_W) '$(srcdir)/../wxdlg/wxdlg3dViewer.cpp'; fi` - -wxcontrolsconfigdialog.o: ../wxdlg/wxcontrolsconfigdialog.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wxcontrolsconfigdialog.o -MD -MP -MF $(DEPDIR)/wxcontrolsconfigdialog.Tpo -c -o wxcontrolsconfigdialog.o `test -f '../wxdlg/wxcontrolsconfigdialog.cpp' || echo '$(srcdir)/'`../wxdlg/wxcontrolsconfigdialog.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/wxcontrolsconfigdialog.Tpo $(DEPDIR)/wxcontrolsconfigdialog.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../wxdlg/wxcontrolsconfigdialog.cpp' object='wxcontrolsconfigdialog.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wxcontrolsconfigdialog.o `test -f '../wxdlg/wxcontrolsconfigdialog.cpp' || echo '$(srcdir)/'`../wxdlg/wxcontrolsconfigdialog.cpp - -wxcontrolsconfigdialog.obj: ../wxdlg/wxcontrolsconfigdialog.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wxcontrolsconfigdialog.obj -MD -MP -MF $(DEPDIR)/wxcontrolsconfigdialog.Tpo -c -o wxcontrolsconfigdialog.obj `if test -f '../wxdlg/wxcontrolsconfigdialog.cpp'; then $(CYGPATH_W) '../wxdlg/wxcontrolsconfigdialog.cpp'; else $(CYGPATH_W) '$(srcdir)/../wxdlg/wxcontrolsconfigdialog.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/wxcontrolsconfigdialog.Tpo $(DEPDIR)/wxcontrolsconfigdialog.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../wxdlg/wxcontrolsconfigdialog.cpp' object='wxcontrolsconfigdialog.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wxcontrolsconfigdialog.obj `if test -f '../wxdlg/wxcontrolsconfigdialog.cpp'; then $(CYGPATH_W) '../wxdlg/wxcontrolsconfigdialog.cpp'; else $(CYGPATH_W) '$(srcdir)/../wxdlg/wxcontrolsconfigdialog.cpp'; fi` - -PadSimple.o: PadSimple/PadSimple.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PadSimple.o -MD -MP -MF $(DEPDIR)/PadSimple.Tpo -c -o PadSimple.o `test -f 'PadSimple/PadSimple.cpp' || echo '$(srcdir)/'`PadSimple/PadSimple.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PadSimple.Tpo $(DEPDIR)/PadSimple.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PadSimple/PadSimple.cpp' object='PadSimple.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PadSimple.o `test -f 'PadSimple/PadSimple.cpp' || echo '$(srcdir)/'`PadSimple/PadSimple.cpp - -PadSimple.obj: PadSimple/PadSimple.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PadSimple.obj -MD -MP -MF $(DEPDIR)/PadSimple.Tpo -c -o PadSimple.obj `if test -f 'PadSimple/PadSimple.cpp'; then $(CYGPATH_W) 'PadSimple/PadSimple.cpp'; else $(CYGPATH_W) '$(srcdir)/PadSimple/PadSimple.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PadSimple.Tpo $(DEPDIR)/PadSimple.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PadSimple/PadSimple.cpp' object='PadSimple.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PadSimple.obj `if test -f 'PadSimple/PadSimple.cpp'; then $(CYGPATH_W) 'PadSimple/PadSimple.cpp'; else $(CYGPATH_W) '$(srcdir)/PadSimple/PadSimple.cpp'; fi` - -ConfigDlg.o: PadSimple/GUI/ConfigDlg.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConfigDlg.o -MD -MP -MF $(DEPDIR)/ConfigDlg.Tpo -c -o ConfigDlg.o `test -f 'PadSimple/GUI/ConfigDlg.cpp' || echo '$(srcdir)/'`PadSimple/GUI/ConfigDlg.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ConfigDlg.Tpo $(DEPDIR)/ConfigDlg.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PadSimple/GUI/ConfigDlg.cpp' object='ConfigDlg.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConfigDlg.o `test -f 'PadSimple/GUI/ConfigDlg.cpp' || echo '$(srcdir)/'`PadSimple/GUI/ConfigDlg.cpp - -ConfigDlg.obj: PadSimple/GUI/ConfigDlg.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConfigDlg.obj -MD -MP -MF $(DEPDIR)/ConfigDlg.Tpo -c -o ConfigDlg.obj `if test -f 'PadSimple/GUI/ConfigDlg.cpp'; then $(CYGPATH_W) 'PadSimple/GUI/ConfigDlg.cpp'; else $(CYGPATH_W) '$(srcdir)/PadSimple/GUI/ConfigDlg.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ConfigDlg.Tpo $(DEPDIR)/ConfigDlg.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PadSimple/GUI/ConfigDlg.cpp' object='ConfigDlg.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConfigDlg.obj `if test -f 'PadSimple/GUI/ConfigDlg.cpp'; then $(CYGPATH_W) 'PadSimple/GUI/ConfigDlg.cpp'; else $(CYGPATH_W) '$(srcdir)/PadSimple/GUI/ConfigDlg.cpp'; fi` - -X11InputBase.o: InputCommon/X11InputBase.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT X11InputBase.o -MD -MP -MF $(DEPDIR)/X11InputBase.Tpo -c -o X11InputBase.o `test -f 'InputCommon/X11InputBase.cpp' || echo '$(srcdir)/'`InputCommon/X11InputBase.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/X11InputBase.Tpo $(DEPDIR)/X11InputBase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/X11InputBase.cpp' object='X11InputBase.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o X11InputBase.o `test -f 'InputCommon/X11InputBase.cpp' || echo '$(srcdir)/'`InputCommon/X11InputBase.cpp - -X11InputBase.obj: InputCommon/X11InputBase.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT X11InputBase.obj -MD -MP -MF $(DEPDIR)/X11InputBase.Tpo -c -o X11InputBase.obj `if test -f 'InputCommon/X11InputBase.cpp'; then $(CYGPATH_W) 'InputCommon/X11InputBase.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/X11InputBase.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/X11InputBase.Tpo $(DEPDIR)/X11InputBase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/X11InputBase.cpp' object='X11InputBase.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o X11InputBase.obj `if test -f 'InputCommon/X11InputBase.cpp'; then $(CYGPATH_W) 'InputCommon/X11InputBase.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/X11InputBase.cpp'; fi` - -XInput.o: InputCommon/XInput.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XInput.o -MD -MP -MF $(DEPDIR)/XInput.Tpo -c -o XInput.o `test -f 'InputCommon/XInput.cpp' || echo '$(srcdir)/'`InputCommon/XInput.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XInput.Tpo $(DEPDIR)/XInput.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/XInput.cpp' object='XInput.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XInput.o `test -f 'InputCommon/XInput.cpp' || echo '$(srcdir)/'`InputCommon/XInput.cpp - -XInput.obj: InputCommon/XInput.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XInput.obj -MD -MP -MF $(DEPDIR)/XInput.Tpo -c -o XInput.obj `if test -f 'InputCommon/XInput.cpp'; then $(CYGPATH_W) 'InputCommon/XInput.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/XInput.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XInput.Tpo $(DEPDIR)/XInput.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/XInput.cpp' object='XInput.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XInput.obj `if test -f 'InputCommon/XInput.cpp'; then $(CYGPATH_W) 'InputCommon/XInput.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/XInput.cpp'; fi` - -InputCommon.o: InputCommon/InputCommon.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputCommon.o -MD -MP -MF $(DEPDIR)/InputCommon.Tpo -c -o InputCommon.o `test -f 'InputCommon/InputCommon.cpp' || echo '$(srcdir)/'`InputCommon/InputCommon.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InputCommon.Tpo $(DEPDIR)/InputCommon.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/InputCommon.cpp' object='InputCommon.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputCommon.o `test -f 'InputCommon/InputCommon.cpp' || echo '$(srcdir)/'`InputCommon/InputCommon.cpp - -InputCommon.obj: InputCommon/InputCommon.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputCommon.obj -MD -MP -MF $(DEPDIR)/InputCommon.Tpo -c -o InputCommon.obj `if test -f 'InputCommon/InputCommon.cpp'; then $(CYGPATH_W) 'InputCommon/InputCommon.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/InputCommon.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InputCommon.Tpo $(DEPDIR)/InputCommon.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/InputCommon.cpp' object='InputCommon.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputCommon.obj `if test -f 'InputCommon/InputCommon.cpp'; then $(CYGPATH_W) 'InputCommon/InputCommon.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/InputCommon.cpp'; fi` - -EventHandler.o: InputCommon/EventHandler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EventHandler.o -MD -MP -MF $(DEPDIR)/EventHandler.Tpo -c -o EventHandler.o `test -f 'InputCommon/EventHandler.cpp' || echo '$(srcdir)/'`InputCommon/EventHandler.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EventHandler.Tpo $(DEPDIR)/EventHandler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/EventHandler.cpp' object='EventHandler.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EventHandler.o `test -f 'InputCommon/EventHandler.cpp' || echo '$(srcdir)/'`InputCommon/EventHandler.cpp - -EventHandler.obj: InputCommon/EventHandler.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EventHandler.obj -MD -MP -MF $(DEPDIR)/EventHandler.Tpo -c -o EventHandler.obj `if test -f 'InputCommon/EventHandler.cpp'; then $(CYGPATH_W) 'InputCommon/EventHandler.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/EventHandler.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EventHandler.Tpo $(DEPDIR)/EventHandler.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/EventHandler.cpp' object='EventHandler.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EventHandler.obj `if test -f 'InputCommon/EventHandler.cpp'; then $(CYGPATH_W) 'InputCommon/EventHandler.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/EventHandler.cpp'; fi` - -Configuration.o: InputCommon/Configuration.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Configuration.o -MD -MP -MF $(DEPDIR)/Configuration.Tpo -c -o Configuration.o `test -f 'InputCommon/Configuration.cpp' || echo '$(srcdir)/'`InputCommon/Configuration.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Configuration.Tpo $(DEPDIR)/Configuration.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/Configuration.cpp' object='Configuration.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Configuration.o `test -f 'InputCommon/Configuration.cpp' || echo '$(srcdir)/'`InputCommon/Configuration.cpp - -Configuration.obj: InputCommon/Configuration.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Configuration.obj -MD -MP -MF $(DEPDIR)/Configuration.Tpo -c -o Configuration.obj `if test -f 'InputCommon/Configuration.cpp'; then $(CYGPATH_W) 'InputCommon/Configuration.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/Configuration.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Configuration.Tpo $(DEPDIR)/Configuration.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/Configuration.cpp' object='Configuration.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Configuration.obj `if test -f 'InputCommon/Configuration.cpp'; then $(CYGPATH_W) 'InputCommon/Configuration.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/Configuration.cpp'; fi` - -SDL.o: InputCommon/SDL.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SDL.o -MD -MP -MF $(DEPDIR)/SDL.Tpo -c -o SDL.o `test -f 'InputCommon/SDL.cpp' || echo '$(srcdir)/'`InputCommon/SDL.cpp -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SDL.Tpo $(DEPDIR)/SDL.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/SDL.cpp' object='SDL.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SDL.o `test -f 'InputCommon/SDL.cpp' || echo '$(srcdir)/'`InputCommon/SDL.cpp - -SDL.obj: InputCommon/SDL.cpp -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SDL.obj -MD -MP -MF $(DEPDIR)/SDL.Tpo -c -o SDL.obj `if test -f 'InputCommon/SDL.cpp'; then $(CYGPATH_W) 'InputCommon/SDL.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/SDL.cpp'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SDL.Tpo $(DEPDIR)/SDL.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InputCommon/SDL.cpp' object='SDL.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SDL.obj `if test -f 'InputCommon/SDL.cpp'; then $(CYGPATH_W) 'InputCommon/SDL.cpp'; else $(CYGPATH_W) '$(srcdir)/InputCommon/SDL.cpp'; fi` -install-ApplicationsDATA: $(Applications_DATA) - @$(NORMAL_INSTALL) - @list='$(Applications_DATA)'; test -n "$(Applicationsdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(Applicationsdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(Applicationsdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(Applicationsdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(Applicationsdir)" || exit $$?; \ - done - -uninstall-ApplicationsDATA: - @$(NORMAL_UNINSTALL) - @list='$(Applications_DATA)'; test -n "$(Applicationsdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(Applicationsdir)'; $(am__uninstall_files_from_dir) -install-pixmapDATA: $(pixmap_DATA) - @$(NORMAL_INSTALL) - @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pixmapdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pixmapdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapdir)" || exit $$?; \ - done - -uninstall-pixmapDATA: - @$(NORMAL_UNINSTALL) - @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir) - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(Applicationsdir)" "$(DESTDIR)$(pixmapdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-ApplicationsDATA install-pixmapDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-ApplicationsDATA uninstall-binPROGRAMS \ - uninstall-pixmapDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-ApplicationsDATA \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-pixmapDATA \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-ApplicationsDATA uninstall-am uninstall-binPROGRAMS \ - uninstall-pixmapDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru desmume-0.9.9/src/wx/PadSimple/GUI/ConfigDlg.cpp desmume-0.9.10/src/wx/PadSimple/GUI/ConfigDlg.cpp --- desmume-0.9.9/src/wx/PadSimple/GUI/ConfigDlg.cpp 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/PadSimple/GUI/ConfigDlg.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,558 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#include - -#include "common.h" -#include "ConfigDlg.h" -#include "../PadSimple.h" - -#ifdef _WIN32 -#include "XInput.h" -#include "../../InputCommon/DirectInputBase.h" // Core - -DInput m_dinput; -#endif - -BEGIN_EVENT_TABLE(PADConfigDialogSimple,wxDialog) - EVT_SHOW(PADConfigDialogSimple::OnShow) - EVT_CLOSE(PADConfigDialogSimple::OnClose) - EVT_BUTTON(ID_CLOSE,PADConfigDialogSimple::OnCloseClick) - EVT_BUTTON(ID_PAD_ABOUT,PADConfigDialogSimple::DllAbout) - - EVT_CHECKBOX(ID_X360PAD,PADConfigDialogSimple::ControllerSettingsChanged) - EVT_CHOICE(ID_X360PAD_CHOICE,PADConfigDialogSimple::ControllerSettingsChanged) - EVT_CHECKBOX(ID_RUMBLE,PADConfigDialogSimple::ControllerSettingsChanged) - EVT_CHECKBOX(ID_DISABLE,PADConfigDialogSimple::ControllerSettingsChanged) - - // Input recording -#ifdef RERECORDING - EVT_CHECKBOX(ID_RECORDING,PADConfigDialogSimple::ControllerSettingsChanged) - EVT_CHECKBOX(ID_PLAYBACK,PADConfigDialogSimple::ControllerSettingsChanged) - EVT_BUTTON(ID_SAVE_RECORDING,PADConfigDialogSimple::ControllerSettingsChanged) -#endif - - EVT_BUTTON(CTL_A, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_B, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_X, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_Y, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_Z, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_START, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_L, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_R, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_L_SEMI, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_R_SEMI, PADConfigDialogSimple::OnButtonClick) - EVT_SLIDER(ID_TRIGGER_SEMIVALUE, PADConfigDialogSimple::ControllerSettingsChanged) - EVT_BUTTON(CTL_MAINUP, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_MAINDOWN, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_MAINLEFT, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_MAINRIGHT, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_MAIN_SEMI, PADConfigDialogSimple::OnButtonClick) - EVT_SLIDER(ID_MAIN_SEMIVALUE, PADConfigDialogSimple::ControllerSettingsChanged) - EVT_BUTTON(CTL_SUBUP, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_SUBDOWN, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_SUBLEFT, PADConfigDialogSimple::OnButtonClick) - EVT_SLIDER(ID_SUB_SEMIVALUE, PADConfigDialogSimple::ControllerSettingsChanged) - EVT_BUTTON(CTL_SUBRIGHT, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_SUB_SEMI, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_DPADUP, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_DPADDOWN, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_DPADLEFT, PADConfigDialogSimple::OnButtonClick) - EVT_BUTTON(CTL_DPADRIGHT, PADConfigDialogSimple::OnButtonClick) -END_EVENT_TABLE() - -PADConfigDialogSimple::PADConfigDialogSimple(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style) -: wxDialog(parent, id, title, position, size, style) -{ - ClickedButton = NULL; - CreateGUIControls(); - Fit(); - - // Connect keydown to the window - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_DOWN, - wxKeyEventHandler(PADConfigDialogSimple::OnKeyDown), - (wxObject*)NULL, this); - - Show(); -} - -PADConfigDialogSimple::~PADConfigDialogSimple() -{ -} - -// Create input button controls -// ------------------- -inline void AddControl(wxPanel *pan, wxButton **button, - wxStaticBoxSizer *sizer, const char *name, int ctl, int controller) -{ - wxBoxSizer *hButton = new wxBoxSizer(wxHORIZONTAL); - char keyStr[10] = {0}; - - // Add the label - hButton->Add(new wxStaticText(pan, 0, wxString::FromAscii(name), - wxDefaultPosition, wxDefaultSize), 0, - wxALIGN_CENTER_VERTICAL|wxALL); - - // Give it the mapped key name -#ifdef _WIN32 - DInput::DIKToString(pad[controller].keyForControl[ctl], keyStr); -#elif defined(HAVE_X11) && HAVE_X11 - InputCommon::XKeyToString(pad[controller].keyForControl[ctl], keyStr); -#endif - - // Add the button to its sizer - *button = new wxButton(pan, ctl, wxString::FromAscii(keyStr), - wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS); - hButton->Add(*button, 0, wxALIGN_RIGHT|wxALL); - sizer->Add(hButton, 0, wxALIGN_RIGHT|wxALL); -} - -// Create input slider controls -// ------------------- -inline void PADConfigDialogSimple::AddSlider(wxPanel *pan, wxSlider **slider, - wxStaticBoxSizer *sizer, const char *name, int ctl, int controller) -{ - wxBoxSizer *hSlider = new wxBoxSizer(wxHORIZONTAL); - int semivalue, maxvalue; - std::stringstream ss; - - // Add the label - hSlider->Add(new wxStaticText(pan, 0, wxString::FromAscii(name), - wxDefaultPosition, wxDefaultSize), 0, - wxALIGN_CENTER_VERTICAL|wxALL); - - // Do everything else - switch (ctl) - { - case ID_TRIGGER_SEMIVALUE: - semivalue = pad[controller].Trigger_semivalue; - maxvalue = TRIGGER_FULL; - // Add the slider to its sizer - *slider = new wxSlider(pan, ctl, semivalue, 0, maxvalue, wxDefaultPosition, wxSize(100,-1)); - (**slider).SetPageSize(32); - hSlider->Add(*slider, 0, wxALIGN_RIGHT|wxALL); - sizer->Add(hSlider, 0, wxALIGN_RIGHT|wxALL); - // Add numeric value label to sizer - ss << pad[controller].Trigger_semivalue; - m_Trigger_SemiValue_Label[controller] = new wxStaticText(pan, 0, - wxString::FromAscii( ss.str().c_str() ), wxDefaultPosition, wxSize(25, -1)); - hSlider->Add(m_Trigger_SemiValue_Label[controller], - 0, wxALIGN_CENTER_VERTICAL|wxALL); - break; - case ID_MAIN_SEMIVALUE: - semivalue = pad[controller].Main_stick_semivalue; - maxvalue = STICK_FULL; - // Add the slider to its sizer - *slider = new wxSlider(pan, ctl, semivalue, 0, maxvalue, wxDefaultPosition, wxSize(100, -1)); - (**slider).SetPageSize(10); - hSlider->Add(*slider, 0, wxALIGN_RIGHT|wxALL); - sizer->Add(hSlider, 0, wxALIGN_RIGHT|wxALL); - // Add numeric value label to sizer - ss << pad[controller].Main_stick_semivalue; - m_Stick_SemiValue_Label[controller] = new wxStaticText(pan, 0, - wxString::FromAscii( ss.str().c_str() ), wxDefaultPosition, wxSize(25, -1)); - hSlider->Add(m_Stick_SemiValue_Label[controller], - 0, wxALIGN_CENTER_VERTICAL|wxALL); - break; - case ID_SUB_SEMIVALUE: - semivalue = pad[controller].Sub_stick_semivalue; - maxvalue = STICK_FULL; - // Add the slider to its sizer - *slider = new wxSlider(pan, ctl, semivalue, 0, maxvalue, wxDefaultPosition, wxSize(100,-1)); - (**slider).SetPageSize(10); - hSlider->Add(*slider, 0, wxALIGN_RIGHT|wxALL); - sizer->Add(hSlider, 0, wxALIGN_RIGHT|wxALL); - // Add numeric value label to sizer - ss << pad[controller].Sub_stick_semivalue; - m_CStick_SemiValue_Label[controller] = new wxStaticText(pan, 0, - wxString::FromAscii( ss.str().c_str() ), wxDefaultPosition, wxSize(25, -1)); - hSlider->Add(m_CStick_SemiValue_Label[controller], - 0, wxALIGN_CENTER_VERTICAL|wxALL); - break; - } -} - -void PADConfigDialogSimple::CreateGUIControls() -{ - // Notebook - m_Notebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize); - - // Controller pages - m_Controller[0] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE1, wxDefaultPosition, wxDefaultSize); - m_Notebook->AddPage(m_Controller[0], wxT("Controller 1")); - m_Controller[1] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE2, wxDefaultPosition, wxDefaultSize); - m_Notebook->AddPage(m_Controller[1], wxT("Controller 2")); - m_Controller[2] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE3, wxDefaultPosition, wxDefaultSize); - m_Notebook->AddPage(m_Controller[2], wxT("Controller 3")); - m_Controller[3] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE4, wxDefaultPosition, wxDefaultSize); - m_Notebook->AddPage(m_Controller[3], wxT("Controller 4")); - - // Standard buttons - m_Close = new wxButton(this, ID_CLOSE, wxT("Close"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - m_About = new wxButton(this, ID_PAD_ABOUT, wxT("About"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - - // Put notebook and standard buttons in sizers - wxBoxSizer* sSButtons; - sSButtons = new wxBoxSizer(wxHORIZONTAL); - sSButtons->Add(m_About,0,wxALL, 5); - sSButtons->Add(0, 0, 1, wxEXPAND, 5); - sSButtons->Add(m_Close, 0, wxALL, 5); - - wxBoxSizer* sMain; - sMain = new wxBoxSizer(wxVERTICAL); - sMain->Add(m_Notebook, 1, wxEXPAND|wxALL, 5); - sMain->Add(sSButtons, 0, wxEXPAND, 5); - - this->SetSizer(sMain); - this->Layout(); - -#ifdef _WIN32 - // Add connected XPads - for (int x = 0; x < 4; x++) - { - XINPUT_STATE xstate; - DWORD xresult = XInputGetState(x, &xstate); - - if (xresult == ERROR_SUCCESS) - { - arrayStringFor_X360Pad.Add(wxString::Format(wxT("%i"), x+1)); - } - } -#endif - - for(int i = 0; i < 4; i++) - { - // -------------------------------------------------------------------- - // Settings - // ----------------------------- - // Main horizontal container - sDevice[i] = new wxBoxSizer(wxHORIZONTAL); - - sbDevice[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("Controller Settings")); - m_Disable[i] = new wxCheckBox(m_Controller[i], ID_DISABLE, wxT("Disable when Dolphin is not in focus"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - sbDevice[i]->Add(m_Disable[i], 0, wxEXPAND|wxALL, 1); - -#ifdef _WIN32 - m_SizeXInput[i] = new wxStaticBoxSizer(wxHORIZONTAL, m_Controller[i], wxT("XInput Pad")); - m_X360Pad[i] = new wxCheckBox(m_Controller[i], ID_X360PAD, wxT("Enable X360Pad"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - m_X360PadC[i] = new wxChoice(m_Controller[i], ID_X360PAD_CHOICE, wxDefaultPosition, wxDefaultSize, arrayStringFor_X360Pad, 0, wxDefaultValidator); - m_Rumble[i] = new wxCheckBox(m_Controller[i], ID_RUMBLE, wxT("Enable rumble"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - - m_SizeXInput[i]->Add(m_X360Pad[i], 0, wxEXPAND | wxALL, 1); - m_SizeXInput[i]->Add(m_X360PadC[i], 0, wxEXPAND | wxALL, 1); - m_SizeXInput[i]->Add(m_Rumble[i], 0, wxEXPAND | wxALL, 1); -#endif - // Set values - m_Disable[i]->SetValue(pad[i].bDisable); - -#ifdef _WIN32 - // Check if any XInput pad was found - if (arrayStringFor_X360Pad.IsEmpty()) - { - m_X360Pad[i]->SetLabel(wxT("Enable X360Pad - No pad connected")); - m_X360Pad[i]->SetValue(false); - m_X360Pad[i]->Enable(false); - pad[i].bEnableXPad = false; - m_X360PadC[i]->Hide(); - m_Rumble[i]->Hide(); - } - else - { - m_X360Pad[i]->SetValue(pad[i].bEnableXPad); - m_X360PadC[i]->SetSelection(pad[i].XPadPlayer); - m_X360PadC[i]->Enable(m_X360Pad[i]->IsChecked()); - m_Rumble[i]->SetValue(pad[i].bRumble); - m_Rumble[i]->Enable(m_X360Pad[i]->IsChecked()); - } -#endif - - // Sizers - sDevice[i]->Add(sbDevice[i], 0, wxEXPAND | wxALL, 1); - //sDevice[i]->AddStretchSpacer(); -#ifdef _WIN32 - sDevice[i]->Add(m_SizeXInput[i], 0, wxEXPAND | wxALL, 1); -#endif - // ----------------------------------- - - - - // Rerecording - // --------- -#ifdef RERECORDING - // Create controls - m_SizeRecording[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("Input Recording")); - m_CheckRecording[i] = new wxCheckBox(m_Controller[i], ID_RECORDING, wxT("Record input")); - m_CheckPlayback[i] = new wxCheckBox(m_Controller[i], ID_PLAYBACK, wxT("Play back input")); - m_BtnSaveRecording[i] = new wxButton(m_Controller[i], ID_SAVE_RECORDING, wxT("Save recording"), wxDefaultPosition, wxDefaultSize); - - // Tool tips - m_CheckRecording[i]->SetToolTip(wxT("Your recording will be saved to pad-record.bin in the Dolphin dir when you stop the game")); - m_CheckPlayback[i]->SetToolTip(wxT("Play back the pad-record.bin file from the Dolphin dir")); - m_BtnSaveRecording[i]->SetToolTip(wxT( - "This will save the current recording to pad-record.bin. Your recording will\n" - "also be automatically saved every 60 * 10 frames. And when you shut down the\n" - "game.")); - - // Sizers - m_SizeRecording[i]->Add(m_CheckRecording[i], 0, wxEXPAND | wxALL, 1); - m_SizeRecording[i]->Add(m_CheckPlayback[i], 0, wxEXPAND | wxALL, 1); - m_SizeRecording[i]->Add(m_BtnSaveRecording[i], 0, wxEXPAND | wxALL, 1); - - // Only enable these options for pad 0 - m_CheckRecording[i]->Enable(false); m_CheckRecording[0]->Enable(true); - m_CheckPlayback[i]->Enable(false); m_CheckPlayback[0]->Enable(true); - m_BtnSaveRecording[i]->Enable(false); m_BtnSaveRecording[0]->Enable(true); - // Don't allow saving when we are not recording - m_BtnSaveRecording[i]->Enable(g_EmulatorRunning && pad[0].bRecording); - sDevice[i]->Add(m_SizeRecording[i], 0, wxEXPAND | wxALL, 1); - - // Set values - m_CheckRecording[0]->SetValue(pad[0].bRecording); - m_CheckPlayback[0]->SetValue(pad[0].bPlayback); - - //DEBUG_LOG(CONSOLE, "m_CheckRecording: %i\n", pad[0].bRecording, pad[0].bPlayback); -#endif - - - - // -------------------------------------------------------------------- - // Buttons - // ----------------------------- - sButtons[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("Buttons")); - - AddControl(m_Controller[i], &(m_ButtonA[i]), sButtons[i], "A: ", CTL_A, i); - AddControl(m_Controller[i], &(m_ButtonB[i]), sButtons[i], "B: ", CTL_B, i); - AddControl(m_Controller[i], &(m_ButtonX[i]), sButtons[i], "X: ", CTL_X, i); - AddControl(m_Controller[i], &(m_ButtonY[i]), sButtons[i], "Y: ", CTL_Y, i); - AddControl(m_Controller[i], &(m_ButtonZ[i]), sButtons[i], "Z: ", CTL_Z, i); - AddControl(m_Controller[i], &(m_ButtonStart[i]), sButtons[i], "Start: ", CTL_START, i); - - sTriggers[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("Triggers")); - - AddControl(m_Controller[i], &(m_ButtonL[i]), sTriggers[i], "L: ", CTL_L, i); - AddControl(m_Controller[i], &(m_ButtonR[i]), sTriggers[i], "R: ", CTL_R, i); - AddControl(m_Controller[i], &(m_ButtonL_Semi[i]), sTriggers[i], "Semi-L: ", CTL_L_SEMI, i); - AddControl(m_Controller[i], &(m_ButtonR_Semi[i]), sTriggers[i], "Semi-R: ", CTL_R_SEMI, i); - AddSlider(m_Controller[i], &(m_Trigger_SemiValue[i]), sTriggers[i], "Semi: ", ID_TRIGGER_SEMIVALUE, i); - - sStick[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("Main Stick")); - - AddControl(m_Controller[i], &(m_StickUp[i]), sStick[i], "Up: ", CTL_MAINUP, i); - AddControl(m_Controller[i], &(m_StickDown[i]), sStick[i], "Down: ", CTL_MAINDOWN, i); - AddControl(m_Controller[i], &(m_StickLeft[i]), sStick[i], "Left: ", CTL_MAINLEFT, i); - AddControl(m_Controller[i], &(m_StickRight[i]), sStick[i], "Right: ", CTL_MAINRIGHT, i); - AddControl(m_Controller[i], &(m_Stick_Semi[i]), sStick[i], "Semi-press: ", CTL_MAIN_SEMI, i); - AddSlider(m_Controller[i], &(m_Stick_SemiValue[i]), sStick[i], "Semi: ", ID_MAIN_SEMIVALUE, i); - - sDPad[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("D-Pad")); - - AddControl(m_Controller[i], &(m_DPadUp[i]), sDPad[i], "Up: ", CTL_DPADUP, i); - AddControl(m_Controller[i], &(m_DPadDown[i]), sDPad[i], "Down: ", CTL_DPADDOWN, i); - AddControl(m_Controller[i], &(m_DPadLeft[i]), sDPad[i], "Left: ", CTL_DPADLEFT, i); - AddControl(m_Controller[i], &(m_DPadRight[i]), sDPad[i], "Right: ", CTL_DPADRIGHT, i); - - sCStick[i] = new wxStaticBoxSizer(wxVERTICAL, m_Controller[i], wxT("C-Stick")); - - AddControl(m_Controller[i], &(m_CStickUp[i]), sCStick[i], "Up: ", CTL_SUBUP, i); - AddControl(m_Controller[i], &(m_CStickDown[i]), sCStick[i], "Down: ", CTL_SUBDOWN, i); - AddControl(m_Controller[i], &(m_CStickLeft[i]), sCStick[i], "Left: ", CTL_SUBLEFT, i); - AddControl(m_Controller[i], &(m_CStickRight[i]), sCStick[i], "Right: ", CTL_SUBRIGHT, i); - AddControl(m_Controller[i], &(m_CStick_Semi[i]), sCStick[i], "Semi-press: ", CTL_SUB_SEMI, i); - AddSlider(m_Controller[i], &(m_CStick_SemiValue[i]), sCStick[i], "Semi: ", ID_SUB_SEMIVALUE, i); - - // -------------------------------------------------------------------- - // Sizers - // ----------------------------- - sPage[i] = new wxGridBagSizer(0, 0); - sPage[i]->SetFlexibleDirection(wxBOTH); - sPage[i]->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED); - sPage[i]->Add(sDevice[i], wxGBPosition(0, 0), wxGBSpan(1, 5), wxEXPAND|wxALL, 1); - sPage[i]->Add(sButtons[i], wxGBPosition(1, 0), wxGBSpan(2, 1), wxALL, 1); - sPage[i]->Add(sTriggers[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 1); - sPage[i]->Add(sStick[i], wxGBPosition(1, 2), wxGBSpan(2, 1), wxALL, 1); - sPage[i]->Add(sDPad[i], wxGBPosition(1, 3), wxGBSpan(2, 1), wxALL, 1); - sPage[i]->Add(sCStick[i], wxGBPosition(1, 4), wxGBSpan(2, 1), wxALL, 1); - m_Controller[i]->SetSizer(sPage[i]); - sPage[i]->Layout(); - } -} - -void PADConfigDialogSimple::OnClose(wxCloseEvent& event) -{ -#ifdef _WIN32 - m_dinput.Free(); -#endif - EndModal(0); -} - -void PADConfigDialogSimple::OnCloseClick(wxCommandEvent& event) -{ - SaveConfig(); - Destroy(); -} - -void PADConfigDialogSimple::OnShow(wxShowEvent& event) -{ -#ifdef _WIN32 - m_dinput.Init((HWND)this->GetParent()); -#endif -} - -void PADConfigDialogSimple::OnKeyDown(wxKeyEvent& event) -{ - char keyStr[10] = {0}; - if(ClickedButton) - { - // Get the selected notebook page - int page = m_Notebook->GetSelection(); - -#ifdef _WIN32 - m_dinput.Read(); - if (m_dinput.diks[DIK_ESCAPE]) - { - pad[page].keyForControl[ClickedButton->GetId()] = 0x00; - ClickedButton->SetLabel(wxString::FromAscii("")); - } - else - { - for(int i = 0; i < 255; i++) - { - if(m_dinput.diks[i]) - { - // Save the mapped key - pad[page].keyForControl[ClickedButton->GetId()] = i; - // Get the key name - DInput::DIKToString(i, keyStr); - ClickedButton->SetLabel(wxString::FromAscii(keyStr)); - break; - } - } - } - -#elif defined(HAVE_X11) && HAVE_X11 - if (event.GetKeyCode() == (XK_Escape & 0xFF)) - { - pad[page].keyForControl[ClickedButton->GetId()] = InputCommon::wxCharCodeWXToX(0x00); - ClickedButton->SetLabel(wxString::FromAscii("")); - } - else - { - pad[page].keyForControl[ClickedButton->GetId()] = InputCommon::wxCharCodeWXToX(event.GetKeyCode()); - InputCommon::XKeyToString(pad[page].keyForControl[ClickedButton->GetId()], keyStr); - ClickedButton->SetLabel(wxString::FromAscii(keyStr)); - } -#endif - ClickedButton->Disconnect(); - } - // Reset - ClickedButton = NULL; - //event.Skip(); -} - -// We have clicked a button -void PADConfigDialogSimple::OnButtonClick(wxCommandEvent& event) -{ - // Check if the Space key was set, to solve the problem that the Space key calls this function -#ifdef _WIN32 - if (m_dinput.diks[DIK_SPACE]) { m_dinput.diks[DIK_SPACE] = 0; return; } -#endif - - // If we come here again before any key was set - if(ClickedButton) ClickedButton->SetLabel(oldLabel); - - // Save the old button label so we can reapply it if necessary - ClickedButton = (wxButton *)event.GetEventObject(); - oldLabel = ClickedButton->GetLabel(); - ClickedButton->SetLabel(_("Press Key/Esc")); - - ClickedButton->SetWindowStyle(wxWANTS_CHARS); -} - -void PADConfigDialogSimple::ControllerSettingsChanged(wxCommandEvent& event) -{ - int page = m_Notebook->GetSelection(); - std::stringstream ss; - - switch (event.GetId()) - { - // General settings - case ID_DISABLE: - pad[page].bDisable = m_Disable[page]->GetValue(); - break; - - // XInput - case ID_X360PAD: - pad[page].bEnableXPad = event.IsChecked(); - m_Rumble[page]->Enable(event.IsChecked()); - m_X360PadC[page]->Enable(event.IsChecked()); - break; - case ID_X360PAD_CHOICE: - pad[page].XPadPlayer = event.GetSelection(); - break; - case ID_RUMBLE: - pad[page].bRumble = m_Rumble[page]->GetValue(); - break; - - // Semi-press adjustment - case ID_TRIGGER_SEMIVALUE: - pad[page].Trigger_semivalue = m_Trigger_SemiValue[page]->GetValue(); - ss << pad[page].Trigger_semivalue; - (*m_Trigger_SemiValue_Label[page]).SetLabel(wxString::FromAscii( ss.str().c_str() )); - break; - case ID_MAIN_SEMIVALUE: - pad[page].Main_stick_semivalue = m_Stick_SemiValue[page]->GetValue(); - ss << pad[page].Main_stick_semivalue; - (*m_Stick_SemiValue_Label[page]).SetLabel(wxString::FromAscii( ss.str().c_str() )); - break; - case ID_SUB_SEMIVALUE: - pad[page].Sub_stick_semivalue = m_CStick_SemiValue[page]->GetValue(); - ss << pad[page].Sub_stick_semivalue; - (*m_CStick_SemiValue_Label[page]).SetLabel(wxString::FromAscii( ss.str().c_str() )); - break; - - // Input recording -#ifdef RERECORDING - case ID_RECORDING: - pad[page].bRecording = m_CheckRecording[page]->GetValue(); - // Turn off the other option - pad[page].bPlayback = false; m_CheckPlayback[page]->SetValue(false); - break; - case ID_PLAYBACK: - pad[page].bPlayback = m_CheckPlayback[page]->GetValue(); - // Turn off the other option - pad[page].bRecording = false; m_CheckRecording[page]->SetValue(false); - break; - case ID_SAVE_RECORDING: - // Double check again that we are still running a game - if (g_EmulatorRunning) SaveRecord(); - break; -#endif - } -} - -void PADConfigDialogSimple::DllAbout(wxCommandEvent& event) -{ - wxString message; -#ifdef _WIN32 - message = _("A simple keyboard and XInput plugin for dolphin."); -#else - message = _("A simple keyboard plugin for dolphin."); -#endif - - wxMessageBox(_T("Dolphin PadSimple Plugin\nBy ector and F|RES\n\n" + message), - _T("Dolphin PadSimple"), wxOK, this); -} diff -Nru desmume-0.9.9/src/wx/PadSimple/GUI/ConfigDlg.h desmume-0.9.10/src/wx/PadSimple/GUI/ConfigDlg.h --- desmume-0.9.9/src/wx/PadSimple/GUI/ConfigDlg.h 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/PadSimple/GUI/ConfigDlg.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef __CONFIGDLG_H__ -#define __CONFIGDLG_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(HAVE_X11) && HAVE_X11 -#include "InputCommon/X11InputBase.h" -#endif - -class PADConfigDialogSimple : public wxDialog -{ - - - public: - PADConfigDialogSimple(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("Pad Configuration"), - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE); - - virtual ~PADConfigDialogSimple(); - - private: - DECLARE_EVENT_TABLE(); - wxNotebook *m_Notebook; - wxPanel *m_Controller[4]; - wxButton *m_About; - wxButton *m_Close; - - wxStaticBoxSizer *sbDevice[4], *m_SizeXInput[4], *m_SizeRecording[4]; - wxBoxSizer *sDevice[4]; - wxGridBagSizer *sPage[4]; - wxStaticBoxSizer *sButtons[4]; - wxStaticBoxSizer *sTriggers[4]; - wxStaticBoxSizer *sStick[4]; - wxStaticBoxSizer *sCStick[4]; - wxStaticBoxSizer *sDPad[4]; - - wxArrayString arrayStringFor_X360Pad; - wxCheckBox *m_X360Pad[4]; - wxChoice *m_X360PadC[4]; - wxCheckBox *m_Disable[4]; - wxCheckBox *m_Rumble[4]; - - // Recording - wxCheckBox *m_CheckRecording[4]; - wxCheckBox *m_CheckPlayback[4]; - wxButton *m_BtnSaveRecording[4]; - - wxButton *m_ButtonA[4]; - wxButton *m_ButtonB[4]; - wxButton *m_ButtonX[4]; - wxButton *m_ButtonY[4]; - wxButton *m_ButtonZ[4]; - wxButton *m_ButtonStart[4]; - wxButton *m_ButtonL[4]; - wxButton *m_ButtonR[4]; - wxButton *m_ButtonL_Semi[4]; - wxButton *m_ButtonR_Semi[4]; - wxSlider *m_Trigger_SemiValue[4]; - wxStaticText *m_Trigger_SemiValue_Label[4]; - wxButton *m_StickUp[4]; - wxButton *m_StickDown[4]; - wxButton *m_StickLeft[4]; - wxButton *m_StickRight[4]; - wxButton *m_Stick_Semi[4]; - wxSlider *m_Stick_SemiValue[4]; - wxStaticText *m_Stick_SemiValue_Label[4]; - wxButton *m_CStickUp[4]; - wxButton *m_CStickDown[4]; - wxButton *m_CStickLeft[4]; - wxButton *m_CStickRight[4]; - wxButton *m_CStick_Semi[4]; - wxSlider *m_CStick_SemiValue[4]; - wxStaticText *m_CStick_SemiValue_Label[4]; - wxButton *m_DPadUp[4]; - wxButton *m_DPadDown[4]; - wxButton *m_DPadLeft[4]; - wxButton *m_DPadRight[4]; - - enum - { - ////GUI Enum Control ID Start - ID_CLOSE = 1000, - ID_NOTEBOOK, - ID_CONTROLLERPAGE1, - ID_CONTROLLERPAGE2, - ID_CONTROLLERPAGE3, - ID_CONTROLLERPAGE4, - - // XInput pad - ID_X360PAD_CHOICE, - ID_X360PAD, - ID_RUMBLE, - - // Semi-press values - ID_TRIGGER_SEMIVALUE, - ID_MAIN_SEMIVALUE, - ID_SUB_SEMIVALUE, - - // Input recording - ID_RECORDING, - ID_PLAYBACK, - ID_SAVE_RECORDING, - - // General settings - ID_DISABLE, - ID_PAD_ABOUT, - }; - - void OnClose(wxCloseEvent& event); - void CreateGUIControls(); - void OnCloseClick(wxCommandEvent& event); - void OnKeyDown(wxKeyEvent& event); - void ControllerSettingsChanged(wxCommandEvent& event); - void OnButtonClick(wxCommandEvent& event); - void DllAbout(wxCommandEvent& event); - void OnShow(wxShowEvent& event); - void AddSlider(wxPanel *pan, wxSlider **slider, - wxStaticBoxSizer *sizer, const char *name, int ctl, int controller); - - wxButton *ClickedButton; - wxString oldLabel; -}; - -#endif diff -Nru desmume-0.9.9/src/wx/PadSimple/PadSimple.cpp desmume-0.9.10/src/wx/PadSimple/PadSimple.cpp --- desmume-0.9.9/src/wx/PadSimple/PadSimple.cpp 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/PadSimple/PadSimple.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,989 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - - - -// Include -#include -#include - -#include "common.h" -//#include "LogManager.h" -#include "pluginspecs_pad.h" -#include "PadSimple.h" -#include -//#include "StringUtil.h" -//#include "FileUtil.h" -//#include "ChunkFile.h" - -#if defined(HAVE_WX) - #include "GUI/ConfigDlg.h" - PADConfigDialogSimple* m_ConfigFrame = NULL; -#endif - -#ifdef _WIN32 - #include "XInput.h" - #include "../InputCommon/DirectInputBase.h" // Core - - DInput dinput; - //#elif defined(USE_SDL) && USE_SDL - //#include - -#elif defined(HAVE_X11) && HAVE_X11 - - #include - #include - #include - #include - - Display* GXdsp; - bool KeyStatus[NUMCONTROLS]; -#elif defined(HAVE_COCOA) && HAVE_COCOA - #include - bool KeyStatus[NUMCONTROLS]; -#endif - - - -// Declarations -SPads pad[4]; -SPADInitialize g_PADInitialize; - - -// Standard crap to make wxWidgets happy -#ifdef _WIN32 -//HINSTANCE g_hInstance; - -#if defined(HAVE_WX) -class wxDLLApp : public wxApp -{ - bool OnInit() - { - return true; - } -}; -IMPLEMENT_APP_NO_MAIN(wxDLLApp) -WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst); -#endif - -BOOL APIENTRY aMain(HINSTANCE hinstDLL, // DLL module handle - DWORD dwReason, // reason called - LPVOID lpvReserved) // reserved -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - { -#if defined(HAVE_WX) - wxSetInstance((HINSTANCE)hinstDLL); - int argc = 0; - char **argv = NULL; - wxEntryStart(argc, argv); - if (!wxTheApp || !wxTheApp->CallOnInit()) - return FALSE; -#endif - } - break; - - case DLL_PROCESS_DETACH: -#if defined(HAVE_WX) - wxEntryCleanup(); -#endif - break; - default: - break; - } - - //g_hInstance = hinstDLL; - return TRUE; -} -#endif - -#if 0 -#if defined(HAVE_WX) -wxWindow* GetParentedWxWindow(HWND Parent) -{ -#ifdef _WIN32 -// wxSetInstance((HINSTANCE)g_hInstance); -#endif - wxWindow *win = new wxWindow(); -#ifdef _WIN32 - win->SetHWND((WXHWND)Parent); - win->AdoptAttributesFromHWND(); -#endif - return win; -} -#endif -#endif - - -// Input Recording - -// Enable these to record or play back -//#define RECORD_REPLAY -//#define RECORD_STORE -#if 0 -// Pre defined maxium storage limit -#define RECORD_SIZE (1024 * 128) -PLUGIN_GLOBALS* globals = NULL; -SPADStatus recordBuffer[RECORD_SIZE]; -int count = 0; -bool g_EmulatorRunning = false; - -//****************************************************************************** -// Supporting functions -//****************************************************************************** - -void RecordInput(const SPADStatus& _rPADStatus) -{ - if (count >= RECORD_SIZE) return; - recordBuffer[count++] = _rPADStatus; - - // Logging - //u8 TmpData[sizeof(SPADStatus)]; - //memcpy(TmpData, &recordBuffer[count - 1], sizeof(SPADStatus)); - //Console::Print("RecordInput(%i): %s\n", count, ArrayToString(TmpData, sizeof(SPADStatus), 0, 30).c_str()); - - // Auto save every ten seconds - if (count % (60 * 10) == 0) SaveRecord(); -} - -const SPADStatus& PlayRecord() -{ - // Logging - //Console::Print("PlayRecord(%i)\n", count); - - if (count >= RECORD_SIZE) - { - // Todo: Make the recording size unlimited? - //PanicAlert("The recording reached its end"); - return(recordBuffer[0]); - } - return(recordBuffer[count++]); -} - -void LoadRecord() -{ - FILE* pStream = fopen("pad-record.bin", "rb"); - - if (pStream != NULL) - { - fread(recordBuffer, 1, RECORD_SIZE * sizeof(SPADStatus), pStream); - fclose(pStream); - } - else - { - PanicAlert("SimplePad: Could not open pad-record.bin"); - } - - //Console::Print("LoadRecord()"); -} - -void SaveRecord() -{ - // Open the file in a way that clears all old data - FILE* pStream = fopen("pad-record.bin", "wb"); - - if (pStream != NULL) - { - fwrite(recordBuffer, 1, RECORD_SIZE * sizeof(SPADStatus), pStream); - fclose(pStream); - } - else - { - PanicAlert("SimplePad: Could not save pad-record.bin"); - } - //PanicAlert("SaveRecord()"); - //Console::Print("SaveRecord()"); -} - -#endif -// Check if Dolphin is in focus -bool IsFocus() -{ -#ifdef _WIN32 - HWND Parent = GetParent(g_PADInitialize.hWnd); - HWND TopLevel = GetParent(Parent); - // Support both rendering to main window and not - if (GetForegroundWindow() == TopLevel || GetForegroundWindow() == g_PADInitialize.hWnd) - return true; - else - return false; -#else - return true; -#endif -} - -#ifdef _WIN32 -// Implement circular deadzone -void ScaleStickValues(unsigned char* outx, - unsigned char* outy, - short inx, short iny) -{ - const float kDeadZone = 0.1f; - float x = ((float)inx + 0.5f) / 32767.5f; - float y = ((float)iny + 0.5f) / 32767.5f; - - if ((x == 0.0f) && (y == 0.0f)) // to be safe - { - *outx = 0; - *outy = 0; - return; - } - - float magnitude = sqrtf(x * x + y * y); - float nx = x / magnitude; - float ny = y / magnitude; - - if (magnitude < kDeadZone){magnitude = kDeadZone;} - - magnitude = (magnitude - kDeadZone) / (1.0f - kDeadZone); - magnitude *= magnitude; // another power may be more appropriate - nx *= magnitude; - ny *= magnitude; - int ix = (int)(nx * 100); - int iy = (int)(ny * 100); - *outx = 0x80 + ix; - *outy = 0x80 + iy; -} -#endif - -// for same displacement should be sqrt(2)/2 (in theory) -// 3/4 = 0.75 is a little faster than sqrt(2)/2 = 0.7071... -// In SMS, 17/20 = 0.85 is perfect; in WW, 7/10 = 0.70 is closer. -#define DIAGONAL_SCALE 0.70710678 -static void EmulateAnalogStick(unsigned char *stickX, unsigned char *stickY, bool buttonUp, bool buttonDown, bool buttonLeft, bool buttonRight, int magnitude) { - int mainY = 0; - int mainX = 0; - if (buttonUp) - mainY = magnitude; - else if (buttonDown) - mainY = -magnitude; - if (buttonLeft) - mainX = -magnitude; - else if (buttonRight) - mainX = magnitude; - // only update if there is some action - // this allows analog stick to still work - // disable for now, enable later if any platform supports both methods of input - //if ((mainX != 0) && (mainY != 0)) { - if (true) { - if ((mainX == 0) || (mainY == 0)) - { - *stickX += mainX; - *stickY += mainY; - } - else - { - *stickX += mainX*DIAGONAL_SCALE; - *stickY += mainY*DIAGONAL_SCALE; - } - } -} - -//****************************************************************************** -// Input -//****************************************************************************** - - -#ifdef _WIN32 -void DInput_Read(int _numPAD, SPADStatus* _pPADStatus) -{ - dinput.Read(); - -// for (int i = 0; i < 200; i++) -// if(dinput.diks[i]) -// printf("DInput_Read"); - - // Analog stick values based on semi-press keys - int mainstickvalue = (dinput.diks[pad[_numPAD].keyForControl[CTL_MAIN_SEMI]] & 0xFF) ? pad[_numPAD].Main_stick_semivalue : STICK_FULL; - int substickvalue = (dinput.diks[pad[_numPAD].keyForControl[CTL_SUB_SEMI]] & 0xFF) ? pad[_numPAD].Sub_stick_semivalue : STICK_FULL; - // Buttons (A/B/X/Y/Z/Start) - if (dinput.diks[pad[_numPAD].keyForControl[CTL_A]] & 0xFF) - { - _pPADStatus->button |= PAD_BUTTON_A; - _pPADStatus->analogA = BUTTON_FULL; - } - if (dinput.diks[pad[_numPAD].keyForControl[CTL_B]] & 0xFF) - { - _pPADStatus->button |= PAD_BUTTON_B; - _pPADStatus->analogB = BUTTON_FULL; - } - if (dinput.diks[pad[_numPAD].keyForControl[CTL_X]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_X;} - if (dinput.diks[pad[_numPAD].keyForControl[CTL_Y]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_Y;} - if (dinput.diks[pad[_numPAD].keyForControl[CTL_Z]] & 0xFF){_pPADStatus->button |= PAD_TRIGGER_Z;} - if (dinput.diks[pad[_numPAD].keyForControl[CTL_START]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_START;} - // Triggers (L/R) - if (dinput.diks[pad[_numPAD].keyForControl[CTL_L]] & 0xFF) - { - _pPADStatus->button |= PAD_TRIGGER_L; - _pPADStatus->triggerLeft = TRIGGER_FULL; - } - if (dinput.diks[pad[_numPAD].keyForControl[CTL_R]] & 0xFF) - { - _pPADStatus->button |= PAD_TRIGGER_R; - _pPADStatus->triggerRight = TRIGGER_FULL; - } - if (dinput.diks[pad[_numPAD].keyForControl[CTL_L_SEMI]] & 0xFF) - { - _pPADStatus->triggerLeft = pad[_numPAD].Trigger_semivalue; - if (pad[_numPAD].Trigger_semivalue > TRIGGER_THRESHOLD) - _pPADStatus->button |= PAD_TRIGGER_L; - } - if (dinput.diks[pad[_numPAD].keyForControl[CTL_R_SEMI]] & 0xFF) - { - _pPADStatus->triggerRight = pad[_numPAD].Trigger_semivalue; - if (pad[_numPAD].Trigger_semivalue > TRIGGER_THRESHOLD) - _pPADStatus->button |= PAD_TRIGGER_R; - } - // Main stick - EmulateAnalogStick( - &_pPADStatus->stickX, - &_pPADStatus->stickY, - !!dinput.diks[pad[_numPAD].keyForControl[CTL_MAINUP]], - !!dinput.diks[pad[_numPAD].keyForControl[CTL_MAINDOWN]], - !!dinput.diks[pad[_numPAD].keyForControl[CTL_MAINLEFT]], - !!dinput.diks[pad[_numPAD].keyForControl[CTL_MAINRIGHT]], - mainstickvalue ); - - // Sub-stick (C-stick) - EmulateAnalogStick( - &_pPADStatus->substickX, - &_pPADStatus->substickY, - !!dinput.diks[pad[_numPAD].keyForControl[CTL_SUBUP]], - !!dinput.diks[pad[_numPAD].keyForControl[CTL_SUBDOWN]], - !!dinput.diks[pad[_numPAD].keyForControl[CTL_SUBLEFT]], - !!dinput.diks[pad[_numPAD].keyForControl[CTL_SUBRIGHT]], - substickvalue ); - // D-pad - if (dinput.diks[pad[_numPAD].keyForControl[CTL_DPADUP]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_UP;} - if (dinput.diks[pad[_numPAD].keyForControl[CTL_DPADDOWN]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_DOWN;} - if (dinput.diks[pad[_numPAD].keyForControl[CTL_DPADLEFT]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_LEFT;} - if (dinput.diks[pad[_numPAD].keyForControl[CTL_DPADRIGHT]] & 0xFF){_pPADStatus->button |= PAD_BUTTON_RIGHT;} - // Mic key - _pPADStatus->MicButton = (dinput.diks[pad[_numPAD].keyForControl[CTL_MIC]] & 0xFF) ? true : false; -} - -bool XInput_Read(int XPadPlayer, SPADStatus* _pPADStatus) -{ - const int base = 0x80; - XINPUT_STATE xstate; - DWORD xresult = XInputGetState(XPadPlayer, &xstate); - - // Let's .. yes, let's use XINPUT! - if (xresult == ERROR_SUCCESS) - { - const XINPUT_GAMEPAD& xpad = xstate.Gamepad; - - if ((_pPADStatus->stickX == base) && (_pPADStatus->stickY == base)) - { - ScaleStickValues( - &_pPADStatus->stickX, - &_pPADStatus->stickY, - xpad.sThumbLX, - xpad.sThumbLY); - } - - if ((_pPADStatus->substickX == base) && (_pPADStatus->substickY == base)) - { - ScaleStickValues( - &_pPADStatus->substickX, - &_pPADStatus->substickY, - xpad.sThumbRX, - xpad.sThumbRY); - } - - if (xpad.wButtons & XINPUT_GAMEPAD_DPAD_UP) {_pPADStatus->button |= PAD_BUTTON_UP;} - if (xpad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN) {_pPADStatus->button |= PAD_BUTTON_DOWN;} - if (xpad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) {_pPADStatus->button |= PAD_BUTTON_LEFT;} - if (xpad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) {_pPADStatus->button |= PAD_BUTTON_RIGHT;} - - _pPADStatus->triggerLeft = xpad.bLeftTrigger; - _pPADStatus->triggerRight = xpad.bRightTrigger; - if (xpad.bLeftTrigger > TRIGGER_THRESHOLD) {_pPADStatus->button |= PAD_TRIGGER_L;} - if (xpad.bRightTrigger > TRIGGER_THRESHOLD) {_pPADStatus->button |= PAD_TRIGGER_R;} - if (xpad.wButtons & XINPUT_GAMEPAD_START) {_pPADStatus->button |= PAD_BUTTON_START;} - if (xpad.wButtons & XINPUT_GAMEPAD_A) {_pPADStatus->button |= PAD_BUTTON_A;} - if (xpad.wButtons & XINPUT_GAMEPAD_B) {_pPADStatus->button |= PAD_BUTTON_X;} - if (xpad.wButtons & XINPUT_GAMEPAD_X) {_pPADStatus->button |= PAD_BUTTON_B;} - if (xpad.wButtons & XINPUT_GAMEPAD_Y) {_pPADStatus->button |= PAD_BUTTON_Y;} - if (xpad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER){_pPADStatus->button |= PAD_TRIGGER_Z;} - - //_pPADStatus->MicButton = (xpad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER) ? true : false; - - return true; - } - else - { - return false; - } -} -#endif - -#if (defined(HAVE_X11) && HAVE_X11) || (defined(HAVE_COCOA) && HAVE_COCOA) -#if defined(HAVE_X11) && HAVE_X11 -// The graphics plugin in the PCSX2 design leaves a lot of the window processing to the pad plugin, weirdly enough. -static void X11_Read(int _numPAD, SPADStatus* _pPADStatus) -{ -#ifndef __APPLE__ - // Do all the stuff we need to do once per frame here - if (_numPAD != 0) - return; - // This code is from Zerofrog's pcsx2 pad plugin - XEvent E; - //int keyPress=0, keyRelease=0; - KeySym key; - - // keyboard input - int num_events; - for (num_events = XPending(GXdsp);num_events > 0;num_events--) - { - XNextEvent(GXdsp, &E); - switch (E.type) - { - case KeyPress: - //_KeyPress(pad, XLookupKeysym((XKeyEvent *)&E, 0)); - //break; - key = XLookupKeysym((XKeyEvent*)&E, 0); - - if((key >= XK_F1 && key <= XK_F9) || - key == XK_Shift_L || key == XK_Shift_R || - key == XK_Control_L || key == XK_Control_R) - { - XPutBackEvent(GXdsp, &E); - break; - } - int i; - for (i = 0; i < NUMCONTROLS; i++) { - if (key == pad[_numPAD].keyForControl[i]) { - KeyStatus[i] = true; - break; - } - } - break; - case KeyRelease: - key = XLookupKeysym((XKeyEvent*)&E, 0); - if((key >= XK_F1 && key <= XK_F9) || - key == XK_Shift_L || key == XK_Shift_R || - key == XK_Control_L || key == XK_Control_R) - { - XPutBackEvent(GXdsp, &E); - break; - } - //_KeyRelease(pad, XLookupKeysym((XKeyEvent *)&E, 0)); - for (i = 0; i < NUMCONTROLS; i++) - { - if (key == pad[_numPAD].keyForControl[i]) - { - KeyStatus[i] = false; - break; - } - } - break; - } - } -#endif // __APPLE__ -#elif defined(HAVE_COCOA) && HAVE_COCOA -void cocoa_Read(int _numPAD, SPADStatus* _pPADStatus) -{ - // Do all the stuff we need to do once per frame here - if (_numPAD != 0) - return; - //get event from main thread - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSConnection *conn; - NSDistantObject *proxy; - - conn = [NSConnection connectionWithRegisteredName:@"DolphinCocoaEvent" host:nil]; - //if (!conn) { - //printf("error creating cnx event client\n"); - //} - proxy = [conn rootProxy]; - //if (!proxy) { - // printf("error prox client\n"); - //} - - long cocoaKey = (long)[proxy keyCode]; - - int i; - if ((long)[proxy type] == 10) - { - for (i = 0; i < NUMCONTROLS; i++) - { - if (cocoaKey == pad[_numPAD].keyForControl[i]) - { - KeyStatus[i] = true; - break; - } - } - } - else - { - for (i = 0; i < NUMCONTROLS; i++) - { - if (cocoaKey == pad[_numPAD].keyForControl[i]) - { - KeyStatus[i] = false; - break; - } - } - } -#endif - // Analog stick values based on semi-press keys - int mainstickvalue = (KeyStatus[CTL_MAIN_SEMI]) ? pad[_numPAD].Main_stick_semivalue : STICK_FULL; - int substickvalue = (KeyStatus[CTL_SUB_SEMI]) ? pad[_numPAD].Sub_stick_semivalue : STICK_FULL; - // Buttons (A/B/X/Y/Z/Start) - if (KeyStatus[CTL_A]) - { - _pPADStatus->button |= PAD_BUTTON_A; - _pPADStatus->analogA = BUTTON_FULL; - } - if (KeyStatus[CTL_B]) - { - _pPADStatus->button |= PAD_BUTTON_B; - _pPADStatus->analogB = BUTTON_FULL; - } - if (KeyStatus[CTL_X]){_pPADStatus->button |= PAD_BUTTON_X;} - if (KeyStatus[CTL_Y]){_pPADStatus->button |= PAD_BUTTON_Y;} - if (KeyStatus[CTL_Z]){_pPADStatus->button |= PAD_TRIGGER_Z;} - if (KeyStatus[CTL_START]){_pPADStatus->button |= PAD_BUTTON_START;} - // Triggers (L/R) - if (KeyStatus[CTL_L]){_pPADStatus->triggerLeft = TRIGGER_FULL;} - if (KeyStatus[CTL_R]){_pPADStatus->triggerRight = TRIGGER_FULL;} - if (KeyStatus[CTL_L_SEMI]){_pPADStatus->triggerLeft = pad[_numPAD].Trigger_semivalue;} - if (KeyStatus[CTL_R_SEMI]){_pPADStatus->triggerRight = pad[_numPAD].Trigger_semivalue;} - // Main stick - EmulateAnalogStick( - &_pPADStatus->stickX, - &_pPADStatus->stickY, - KeyStatus[CTL_MAINUP], - KeyStatus[CTL_MAINDOWN], - KeyStatus[CTL_MAINLEFT], - KeyStatus[CTL_MAINRIGHT], - mainstickvalue ); - EmulateAnalogStick( - &_pPADStatus->substickX, - &_pPADStatus->substickY, - KeyStatus[CTL_SUBUP], - KeyStatus[CTL_SUBDOWN], - KeyStatus[CTL_SUBLEFT], - KeyStatus[CTL_SUBRIGHT], - substickvalue ); - // D-pad - if (KeyStatus[CTL_DPADUP]) {_pPADStatus->button |= PAD_BUTTON_UP;} - if (KeyStatus[CTL_DPADDOWN]) {_pPADStatus->button |= PAD_BUTTON_DOWN;} - if (KeyStatus[CTL_DPADLEFT]) {_pPADStatus->button |= PAD_BUTTON_LEFT;} - if (KeyStatus[CTL_DPADRIGHT]){_pPADStatus->button |= PAD_BUTTON_RIGHT;} - // Mic key - _pPADStatus->MicButton = KeyStatus[CTL_MIC]; -#if defined(HAVE_X11) && HAVE_X11 -} -#elif defined(HAVE_COCOA) && HAVE_COCOA - [pool release]; -} -#endif -#endif - -//****************************************************************************** -// Plugin specification functions -//****************************************************************************** -#if 0 -void GetDllInfo(PLUGIN_INFO* _PluginInfo) -{ - _PluginInfo->Version = 0x0100; - _PluginInfo->Type = PLUGIN_TYPE_PAD; - -#ifdef DEBUGFAST - sprintf(_PluginInfo->Name, "Dolphin KB/X360pad (DebugFast)"); -#else -#ifndef _DEBUG - sprintf(_PluginInfo->Name, "Dolphin KB/X360pad"); -#else - sprintf(_PluginInfo->Name, "Dolphin KB/X360pad (Debug)"); -#endif -#endif - -} - -void SetDllGlobals(PLUGIN_GLOBALS* _pPluginGlobals) -{ - globals = _pPluginGlobals; - LogManager::SetInstance((LogManager *)globals->logManager); -} - -void DllConfig(HWND _hParent) -{ - // Load configuration - LoadConfig(); - - // Show wxDialog -#if defined(HAVE_WX) && HAVE_WX - if (!m_ConfigFrame) - m_ConfigFrame = new PADConfigDialogSimple(GetParentedWxWindow(_hParent)); - else if (!m_ConfigFrame->GetParent()->IsShown()) - m_ConfigFrame->Close(true); - - // Only allow one open at a time - if (!m_ConfigFrame->IsShown()) - m_ConfigFrame->ShowModal(); - else - m_ConfigFrame->Hide(); -#endif - - // Save configuration - SaveConfig(); -} - -void DllDebugger(HWND _hParent, bool Show) {} -#endif -void Initialize(void *init) -{ - // We are now running a game -// g_EmulatorRunning = true; - - // Load configuration - LoadConfig(); - -#ifdef RERECORDING - /* Check if we are starting the pad to record the input, and an old file exists. In that case ask - if we really want to start the recording and eventually overwrite the file */ - if (pad[0].bRecording && File::Exists("pad-record.bin")) - { - if (!AskYesNo("An old version of '%s' aleady exists in your Dolphin directory. You can" - " now make a copy of it before you start a new recording and overwrite the file." - " Select Yes to continue and overwrite the file. Select No to turn off the input" - " recording and continue without recording anything.", - "pad-record.bin")) - { - // Turn off recording and continue - pad[0].bRecording = false; - } - } - - // Load recorded input if we are to play it back, otherwise begin with a blank recording - if (pad[0].bPlayback) LoadRecord(); -#endif - - g_PADInitialize = *(SPADInitialize*)init; - - #ifdef _WIN32 - dinput.Init((HWND)g_PADInitialize.hWnd); - #elif defined(HAVE_X11) && HAVE_X11 - GXdsp = (Display*)g_PADInitialize.hWnd; - #elif defined(HAVE_COCOA) && HAVE_COCOA - - #endif -} - -#if 0 -void DoState(unsigned char **ptr, int mode) -{ -#ifdef RERECORDING - // Load or save the counter - PointerWrap p(ptr, mode); - p.Do(count); - - //Console::Print("count: %i\n", count); - - // Update the frame counter for the sake of the status bar - if (mode == PointerWrap::MODE_READ) - { - #ifdef _WIN32 - // This only works when rendering to the main window, I think - PostMessage(GetParent(g_PADInitialize.hWnd), WM_USER, INPUT_FRAME_COUNTER, count); - #endif - } -#endif -} - -static void Shutdown() -{ - // Save the recording and reset the counter -#ifdef RERECORDING - // Save recording - if (pad[0].bRecording) SaveRecord(); - // Reset the counter - count = 0; -#endif - - // We have stopped the game - //g_EmulatorRunning = false; - -#ifdef _WIN32 - dinput.Free(); - // Kill xpad rumble - XINPUT_VIBRATION vib; - vib.wLeftMotorSpeed = 0; - vib.wRightMotorSpeed = 0; - for (int i = 0; i < 4; i++) - if (pad[i].bRumble) - XInputSetState(pad[i].XPadPlayer, &vib); -#endif - SaveConfig(); -} -#endif - -// Set buttons status from wxWidgets in the main application -void PAD_Input(u16 _Key, u8 _UpDown) {} - - -void PAD_GetStatus(u8 _numPAD, SPADStatus* _pPADStatus) -{ - // Check if all is okay - if (_pPADStatus == NULL) return; - - // Play back input instead of accepting any user input -#ifdef RERECORDING - if (pad[0].bPlayback) - { - *_pPADStatus = PlayRecord(); - return; - } -#endif - - const int base = 0x80; - // Clear pad - memset(_pPADStatus, 0, sizeof(SPADStatus)); - - _pPADStatus->stickY = base; - _pPADStatus->stickX = base; - _pPADStatus->substickX = base; - _pPADStatus->substickY = base; - _pPADStatus->button |= PAD_USE_ORIGIN; -#ifdef _WIN32 - // Only update pad on focus, don't do this when recording - if (pad[_numPAD].bDisable && !pad[0].bRecording && !IsFocus()) return; - - // Dolphin doesn't really care about the pad error codes anyways... - _pPADStatus->err = PAD_ERR_NONE; - - // Read XInput - if (pad[_numPAD].bEnableXPad) - XInput_Read(pad[_numPAD].XPadPlayer, _pPADStatus); - - // Read Direct Input - DInput_Read(_numPAD, _pPADStatus); - -#elif defined(HAVE_X11) && HAVE_X11 - _pPADStatus->err = PAD_ERR_NONE; - X11_Read(_numPAD, _pPADStatus); -#elif defined(HAVE_COCOA) && HAVE_COCOA - _pPADStatus->err = PAD_ERR_NONE; - cocoa_Read(_numPAD, _pPADStatus); -#endif - -#ifdef RERECORDING - // Record input - if (pad[0].bRecording) RecordInput(*_pPADStatus); -#endif -} - - -// Rough approximation of GC behaviour - needs improvement. -void PAD_Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength) -{ -#ifdef _WIN32 - if (pad[_numPAD].bEnableXPad) - { - static int a = 0; - - if ((_uType == 0) || (_uType == 2)) - { - a = 0; - } - else if (_uType == 1) - { - a = _uStrength > 2 ? pad[_numPAD].RumbleStrength : 0; - } - - a = int ((float)a * 0.96f); - - if (!pad[_numPAD].bRumble) - { - a = 0; - } - - XINPUT_VIBRATION vib; - vib.wLeftMotorSpeed = a; //_uStrength*100; - vib.wRightMotorSpeed = a; //_uStrength*100; - XInputSetState(pad[_numPAD].XPadPlayer, &vib); - } -#endif -} - -//****************************************************************************** -// Load and save the configuration -//****************************************************************************** -void LoadConfig() -{ - // Initialize first pad to standard controls -#ifdef _WIN32 - const int defaultKeyForControl[NUMCONTROLS] = - { - DIK_X, // A - DIK_Z, // B - DIK_C, // X - DIK_S, // Y - DIK_D, // Z - DIK_RETURN, // Start - DIK_Q, // L - DIK_W, // R - 0x00, // L semi-press - 0x00, // R semi-press - DIK_UP, // Main stick up - DIK_DOWN, // Main stick down - DIK_LEFT, // Main stick left - DIK_RIGHT, // Main stick right - DIK_LSHIFT, // Main stick semi-press - DIK_I, // C-stick up - DIK_K, // C-stick down - DIK_J, // C-stick left - DIK_L, // C-stick right - DIK_LCONTROL, // C-stick semi-press - DIK_T, // D-pad up - DIK_G, // D-pad down - DIK_F, // D-pad left - DIK_H, // D-pad right - DIK_M, // Mic - }; -#elif defined(HAVE_X11) && HAVE_X11 - const int defaultKeyForControl[NUMCONTROLS] = - { - XK_x, // A - XK_z, // B - XK_c, // X - XK_s, // Y - XK_d, // Z - XK_Return, // Start - XK_q, // L - XK_w, // R - 0x00, // L semi-press - 0x00, // R semi-press - XK_Up, // Main stick up - XK_Down, // Main stick down - XK_Left, // Main stick left - XK_Right, // Main stick right - XK_Shift_L, // Main stick semi-press - XK_i, // C-stick up - XK_k, // C-stick down - XK_j, // C-stick left - XK_l, // C-stick right - XK_Control_L, // C-stick semi-press - XK_t, // D-pad up - XK_g, // D-pad down - XK_f, // D-pad left - XK_h, // D-pad right - XK_m, // Mic - }; -#elif defined(HAVE_COCOA) && HAVE_COCOA - // Reference for Cocoa key codes: - // http://boredzo.org/blog/archives/2007-05-22/virtual-key-codes - const int defaultKeyForControl[NUMCONTROLS] = - { - 7, // A (x) - 6, // B (z) - 8, // X (c) - 1, // Y (s) - 2, // Z (d) - 36, // Start (return) - 12, // L (q) - 13, // R (w) - -1, // L semi-press (none) - -1, // R semi-press (none) - 126, // Main stick up (up) - 125, // Main stick down (down) - 123, // Main stick left (left) - 124, // Main stick right (right) - 56, // Main stick semi-press (left shift) - 34, // C-stick up (i) - 40, // C-stick down (k) - 38, // C-stick left (j) - 37, // C-stick right (l) - 59, // C-stick semi-press (left control) - 17, // D-pad up (t) - 5, // D-pad down (g) - 3, // D-pad left (f) - 4, // D-pad right (h) - 46, // Mic (m) - }; -#endif - - wxConfigBase *config = wxConfigBase::Get(); - - for(int i = 0; i < 4; i++) - { - config->SetPath(wxString::Format(_T("/PAD%i"), i+1)); - - config->Read(_T("UseXPad"), &pad[i].bEnableXPad, i==0); - config->Read(_T("DisableOnBackground"), &pad[i].bDisable, false); - config->Read(_T("Rumble"), &pad[i].bRumble, true); - config->Read(_T("RumbleStrength"), (long *)&pad[i].RumbleStrength, 8000); - config->Read(_T("XPad#"), &pad[i].XPadPlayer); - - config->Read(_T("Trigger_semivalue"), (long *)&pad[i].Trigger_semivalue, TRIGGER_HALF_DEFAULT); - config->Read(_T("Main_stick_semivalue"), (long *)&pad[i].Main_stick_semivalue, STICK_HALF_DEFAULT); - config->Read(_T("Sub_stick_semivalue"), (long *)&pad[i].Sub_stick_semivalue, STICK_HALF_DEFAULT); - - #ifdef RERECORDING - config->Read(_T("Recording"), &pad[0].bRecording, false); - config->Read(_T("Playback"), &pad[0].bPlayback, false); - #endif - - for (int x = 0; x < NUMCONTROLS; x++) - { - config->Read(wxString(controlNames[x],wxConvUTF8), - (long *)&pad[i].keyForControl[x], - (i==0) ? defaultKeyForControl[x] : 0); -#if defined(HAVE_X11) && HAVE_X11 - // In linux we have a problem assigning the upper case of the - // keys because they're not being recognized - pad[i].keyForControl[x] = tolower(pad[i].keyForControl[x]); -#endif - } - } -} - - -void SaveConfig() -{ - wxConfigBase *config = wxConfigBase::Get(); - - for(int i = 0; i < 4; i++) - { - config->SetPath(wxString::Format(_T("/PAD%i"), i+1)); - - config->Write(_T("UseXPad"), pad[i].bEnableXPad); - config->Write(_T("DisableOnBackground"), pad[i].bDisable); - config->Write(_T("Rumble"), pad[i].bRumble); - config->Write(_T("RumbleStrength"), (long)pad[i].RumbleStrength); - config->Write(_T("XPad#"), pad[i].XPadPlayer); - - config->Write(_T("Trigger_semivalue"), (long)pad[i].Trigger_semivalue); - config->Write(_T("Main_stick_semivalue"), (long)pad[i].Main_stick_semivalue); - config->Write(_T("Sub_stick_semivalue"), (long)pad[i].Sub_stick_semivalue); - - #ifdef RERECORDING - config->Write(_T("Recording"), pad[0].bRecording); - config->Write(_T("Playback"), pad[0].bPlayback); - #endif - - for (int x = 0; x < NUMCONTROLS; x++) - { - config->Write(wxString(controlNames[x],wxConvUTF8), (long)pad[i].keyForControl[x]); - } - } -} diff -Nru desmume-0.9.9/src/wx/PadSimple/PadSimple.h desmume-0.9.10/src/wx/PadSimple/PadSimple.h --- desmume-0.9.9/src/wx/PadSimple/PadSimple.h 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/PadSimple/PadSimple.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef __PADSIMPLE_H__ -#define __PADSIMPLE_H__ - -//#include "Setup.h" // Common -#include "types.h" - -// Constants for full-press sticks and triggers -const int BUTTON_FULL = 255; -const int STICK_FULL = 100; -const int STICK_HALF_DEFAULT = 50; -const int TRIGGER_FULL = 255; -const int TRIGGER_HALF_DEFAULT = 128; -const int TRIGGER_THRESHOLD = 230; - -// Controls -enum -{ - CTL_A = 0, - CTL_B, - CTL_X, - CTL_Y, - CTL_Z, - CTL_START, - CTL_L, - CTL_R, - CTL_L_SEMI, - CTL_R_SEMI, - CTL_MAINUP, - CTL_MAINDOWN, - CTL_MAINLEFT, - CTL_MAINRIGHT, - CTL_MAIN_SEMI, - CTL_SUBUP, - CTL_SUBDOWN, - CTL_SUBLEFT, - CTL_SUBRIGHT, - CTL_SUB_SEMI, - CTL_DPADUP, - CTL_DPADDOWN, - CTL_DPADLEFT, - CTL_DPADRIGHT, - CTL_MIC, - NUMCONTROLS, -}; - -// Control names -static const char* controlNames[] = -{ - "A_button", - "B_button", - "X_button", - "Y_button", - "Z_trigger", - "Start", - "L_button", - "R_button", - "L_button_semi", - "R_button_semi", - "Main_stick_up", - "Main_stick_down", - "Main_stick_left", - "Main_stick_right", - "Main_stick_semi", - "Sub_stick_up", - "Sub_stick_down", - "Sub_stick_left", - "Sub_stick_right", - "Sub_stick_semi", - "D-Pad_up", - "D-Pad_down", - "D-Pad_left", - "D-Pad_right", - "Mic-button", -}; - -struct SPads -{ - bool bEnableXPad; // Use an XPad in addition to the keyboard? - bool bDisable; // Disabled when dolphin isn't in focus - bool bRumble; // Rumble for xpad - u32 RumbleStrength; // Rumble strength - bool bRecording; // Record input? - bool bPlayback; // Playback input? - s32 XPadPlayer; // Player# of the xpad - u32 keyForControl[NUMCONTROLS]; // Keyboard mapping - u32 Trigger_semivalue; // Semi-press value for triggers - u32 Main_stick_semivalue; // Semi-press value for main stick - u32 Sub_stick_semivalue; // Semi-press value for sub-stick -}; - -extern SPads pad[]; -//extern bool g_EmulatorRunning; - -void LoadConfig(); -void SaveConfig(); -bool IsFocus(); - -// Input Recording -void SaveRecord(); - -#endif diff -Nru desmume-0.9.9/src/wx/PadSimple/pluginspecs_pad.h desmume-0.9.10/src/wx/PadSimple/pluginspecs_pad.h --- desmume-0.9.9/src/wx/PadSimple/pluginspecs_pad.h 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/PadSimple/pluginspecs_pad.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -//__________________________________________________________________________________________________ -// Common pad plugin spec, version #1.0 maintained by F|RES -// - -#ifndef _PAD_H_INCLUDED__ -#define _PAD_H_INCLUDED__ - -#include "types.h" -//#include "PluginSpecs.h" - -//#include "ExportProlog.h" - -#define PAD_ERR_NONE 0 -#define PAD_ERR_NO_CONTROLLER -1 -#define PAD_ERR_NOT_READY -2 -#define PAD_ERR_TRANSFER -3 - -#define PAD_USE_ORIGIN 0x0080 - -#define PAD_BUTTON_LEFT 0x0001 -#define PAD_BUTTON_RIGHT 0x0002 -#define PAD_BUTTON_DOWN 0x0004 -#define PAD_BUTTON_UP 0x0008 -#define PAD_TRIGGER_Z 0x0010 -#define PAD_TRIGGER_R 0x0020 -#define PAD_TRIGGER_L 0x0040 -#define PAD_BUTTON_A 0x0100 -#define PAD_BUTTON_B 0x0200 -#define PAD_BUTTON_X 0x0400 -#define PAD_BUTTON_Y 0x0800 -#define PAD_BUTTON_START 0x1000 - -#ifndef WIN32 // todo- find better fixoring for that -typedef void *HWND; -#endif -typedef void (*TLog)(const char* _pMessage); - -typedef struct -{ - HWND hWnd; - TLog pLog; - int padNumber; -} SPADInitialize; - -typedef struct -{ - unsigned short button; // Or-ed PAD_BUTTON_* and PAD_TRIGGER_* bits - unsigned char stickX; // 0 <= stickX <= 255 - unsigned char stickY; // 0 <= stickY <= 255 - unsigned char substickX; // 0 <= substickX <= 255 - unsigned char substickY; // 0 <= substickY <= 255 - unsigned char triggerLeft; // 0 <= triggerLeft <= 255 - unsigned char triggerRight; // 0 <= triggerRight <= 255 - unsigned char analogA; // 0 <= analogA <= 255 - unsigned char analogB; // 0 <= analogB <= 255 - bool MicButton; // HAX - signed char err; // one of PAD_ERR_* number -} SPADStatus; - -#define EXPORT -#define CALL - -// I N T E R F A C E - -// __________________________________________________________________________________________________ -// Function: -// Purpose: -// input: -// output: -// -EXPORT void CALL PAD_GetStatus(u8 _numPAD, SPADStatus* _pPADStatus); - -// __________________________________________________________________________________________________ -// Function: Send keyboard input to the plugin -// Purpose: -// input: The key and if it's pressed or released -// output: None -// -EXPORT void CALL PAD_Input(u16 _Key, u8 _UpDown); - -// __________________________________________________________________________________________________ -// Function: PAD_Rumble -// Purpose: Pad rumble! -// input: PAD number, Command type (Stop=0, Rumble=1, Stop Hard=2) and strength of Rumble -// output: none -// -EXPORT void CALL PAD_Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength); - -//#include "ExportEpilog.h" -#endif diff -Nru desmume-0.9.9/src/wx/StringUtil.cpp desmume-0.9.10/src/wx/StringUtil.cpp --- desmume-0.9.9/src/wx/StringUtil.cpp 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/StringUtil.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,507 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#include -#include -#include - -#include "StringUtil.h" - -// faster than sscanf -bool AsciiToHex(const char* _szValue, u32& result) -{ - u32 value = 0; - size_t finish = strlen(_szValue); - - if (finish > 8) - finish = 8; // Max 32-bit values are supported. - - for (size_t count = 0; count < finish; count++) - { - value <<= 4; - switch (_szValue[count]) - { - case '0': break; - case '1': value += 1; break; - case '2': value += 2; break; - case '3': value += 3; break; - case '4': value += 4; break; - case '5': value += 5; break; - case '6': value += 6; break; - case '7': value += 7; break; - case '8': value += 8; break; - case '9': value += 9; break; - case 'A': - case 'a': value += 10; break; - case 'B': - case 'b': value += 11; break; - case 'C': - case 'c': value += 12; break; - case 'D': - case 'd': value += 13; break; - case 'E': - case 'e': value += 14; break; - case 'F': - case 'f': value += 15; break; - default: - return false; - break; - } - } - - result = value; - return (true); -} - -// Convert AB to it's ascii table entry numbers 0x4142 -u32 Ascii2Hex(std::string _Text) -{ - // Reset the return value zero - u32 Result = 0; - - // Max 32-bit values are supported - size_t Length = _Text.length(); - if (Length > 4) - Length = 4; - - for (int i = 0; i < (int)Length; i++) - { - // Add up the values, for example RSPE becomes, 0x52000000, then 0x52530000 and so on - Result += _Text.c_str()[i] << ((Length - 1 - i) * 8); - } - // Return the value - return Result; -} - -// Convert it back again -std::string Hex2Ascii(u32 _Text) -{ - // Create temporary storate - char Result[5]; // need space for the final \0 - // Go through the four characters - sprintf(Result, "%c%c%c%c", _Text >> 24, _Text >> 16, _Text >> 8, _Text); - // Return the string - std::string StrResult = Result; - return StrResult; -} - -bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list args) -{ - int writtenCount = vsnprintf(out, outsize, format, args); - - if (writtenCount > 0 && writtenCount < outsize) - { - out[writtenCount] = '\0'; - return true; - } - else - { - out[outsize - 1] = '\0'; - return false; - } -} - -// Expensive! -void ToStringFromFormat(std::string* out, const char* format, ...) -{ - int writtenCount = -1; - int newSize = (int)strlen(format) + 4; - char *buf = 0; - va_list args; - while (writtenCount < 0) - { - delete [] buf; - buf = new char[newSize + 1]; - - va_start(args, format); - writtenCount = vsnprintf(buf, newSize, format, args); - va_end(args); - if (writtenCount >= (int)newSize) { - writtenCount = -1; - } - // ARGH! vsnprintf does no longer return -1 on truncation in newer libc! - // WORKAROUND! let's fake the old behaviour (even though it's less efficient). - // TODO: figure out why the fix causes an invalid read in strlen called from vsnprintf :( -// if (writtenCount >= (int)newSize) -// writtenCount = -1; - newSize *= 2; - } - - buf[writtenCount] = '\0'; - *out = buf; - delete[] buf; -} - - -std::string StringFromFormat(const char* format, ...) -{ - int writtenCount = -1; - int newSize = (int)strlen(format) + 4; - char *buf = 0; - va_list args; - while (writtenCount < 0) - { - delete [] buf; - buf = new char[newSize + 1]; - - va_start(args, format); - writtenCount = vsnprintf(buf, newSize, format, args); - va_end(args); - if (writtenCount >= (int)newSize) { - writtenCount = -1; - } - // ARGH! vsnprintf does no longer return -1 on truncation in newer libc! - // WORKAROUND! let's fake the old behaviour (even though it's less efficient). - // TODO: figure out why the fix causes an invalid read in strlen called from vsnprintf :( -// if (writtenCount >= (int)newSize) -// writtenCount = -1; - newSize *= 2; - } - - buf[writtenCount] = '\0'; - std::string temp = buf; - delete[] buf; - return temp; -} - - -// For Debugging. Read out an u8 array. -std::string ArrayToString(const u8 *data, u32 size, u32 offset, int line_len, bool Spaces) -{ - std::string Tmp, Spc; - if (Spaces) Spc = " "; else Spc = ""; - for (u32 i = 0; i < size; i++) - { - Tmp += StringFromFormat("%02x%s", data[i + offset], Spc.c_str()); - if(i > 1 && (i + 1) % line_len == 0) Tmp.append("\n"); // break long lines - } - return Tmp; -} - -// Turns " hej " into "hej". Also handles tabs. -std::string StripSpaces(const std::string &str) -{ - std::string s = str; - int i; - for (i = 0; i < (int)s.size(); i++) - { - if ((s[i] != ' ') && (s[i] != 9)) - { - break; - } - } - - s = s.substr(i); - - for (i = (int)s.size() - 1; i > 0; i--) - { - if ((s[i] != ' ') && (s[i] != 9)) - { - break; - } - } - - return s.substr(0, i + 1); -} - - -// "\"hello\"" is turned to "hello" -// This one assumes that the string has already been space stripped in both -// ends, as done by StripSpaces above, for example. -std::string StripQuotes(const std::string& s) -{ - if ((s[0] == '\"') && (s[s.size() - 1] == '\"')) - return s.substr(1, s.size() - 2); - else - return s; -} - -// "\"hello\"" is turned to "hello" -// This one assumes that the string has already been space stripped in both -// ends, as done by StripSpaces above, for example. -std::string StripNewline(const std::string& s) -{ - if (!s.size()) - return s; - else if (s[s.size() - 1] == '\n') - return s.substr(0, s.size() - 1); - else - return s; -} - -bool TryParseInt(const char* str, int* outVal) -{ - const char* s = str; - int value = 0; - bool negativ = false; - - if (*s == '-') - { - negativ = true; - s++; - } - - while (*s) - { - char c = *s++; - - if ((c < '0') || (c > '9')) - { - return false; - } - - value = value * 10 + (c - '0'); - } - if (negativ) - value = -value; - - *outVal = value; - return true; -} - - -bool TryParseBool(const char* str, bool* output) -{ - if ((str[0] == '1') || !strcmp(str, "true") || !strcmp(str, "True") || !strcmp(str, "TRUE")) - { - *output = true; - return true; - } - else if (str[0] == '0' || !strcmp(str, "false") || !strcmp(str, "False") || !strcmp(str, "FALSE")) - { - *output = false; - return true; - } - return false; -} - -std::string StringFromInt(int value) -{ - char temp[16]; - sprintf(temp, "%i", value); - return std::string(temp); -} - -std::string StringFromBool(bool value) -{ - return value ? "True" : "False"; -} - -#ifdef _WIN32 -bool SplitPath(const std::string& full_path, std::string* _pPath, std::string* _pFilename, std::string* _pExtension) -{ - char drive[_MAX_DRIVE]; - char dir[_MAX_DIR]; - char fname[_MAX_FNAME]; - char ext[_MAX_EXT]; - - if (_splitpath_s(full_path.c_str(), drive, _MAX_DRIVE, dir, _MAX_DIR, fname, _MAX_FNAME, ext, _MAX_EXT) == 0) - { - if (_pPath) - { - *_pPath = std::string(drive) + std::string(dir); - } - - if (_pFilename != 0) - { - *_pFilename = fname; - } - - if (_pExtension != 0) - { - *_pExtension = ext; - } - - return true; - } - - return false; -} - - -#else -bool SplitPath(const std::string& full_path, std::string* _pPath, std::string* _pFilename, std::string* _pExtension) -{ - size_t last_slash = full_path.rfind('/'); - - if (last_slash == std::string::npos) - { - return false; // FIXME return the filename - } - - size_t last_dot = full_path.rfind('.'); - - if ((last_dot == std::string::npos) || (last_dot < last_slash)) - { - return false; // FIXME why missing . is critical? - } - - if (_pPath) - { - *_pPath = full_path.substr(0, last_slash + 1); - } - - if (_pFilename) - { - *_pFilename = full_path.substr(last_slash + 1, last_dot - (last_slash + 1)); - } - - if (_pExtension) - { - *_pExtension = full_path.substr(last_dot + 1); - _pExtension->insert(0, "."); - } - else if (_pFilename) - { - *_pFilename += full_path.substr(last_dot); - } - - return true; -} -#endif -#define DIR_SEP "/" -#define DIR_SEP_CHR '/' - -void BuildCompleteFilename(std::string& _CompleteFilename, const std::string& _Path, const std::string& _Filename) -{ - _CompleteFilename = _Path; - - // check for seperator - if (_CompleteFilename[_CompleteFilename.size() - 1] != DIR_SEP_CHR) - { -#ifdef _WIN32 - if (_CompleteFilename[_CompleteFilename.size() - 1] != '\\') -#endif - _CompleteFilename += DIR_SEP_CHR; - } - - // add the filename - _CompleteFilename += _Filename; -} - - -void SplitString(const std::string& str, const std::string& delim, std::vector& output) -{ - output.clear(); - - size_t offset = 0; - size_t delimIndex = 0; - - delimIndex = str.find(delim, offset); - - while (delimIndex != std::string::npos) - { - output.push_back(str.substr(offset, delimIndex - offset)); - offset += delimIndex - offset + delim.length(); - delimIndex = str.find(delim, offset); - } - - output.push_back(str.substr(offset)); -} - - -bool TryParseUInt(const std::string& str, u32* output) -{ - if (!strcmp(str.substr(0, 2).c_str(), "0x") || !strcmp(str.substr(0, 2).c_str(), "0X")) - return sscanf(str.c_str() + 2, "%x", output) > 0; - else - return sscanf(str.c_str(), "%d", output) > 0; -} - - -int ChooseStringFrom(const char* str, const char* * items) -{ - int i = 0; - while (items[i] != 0) - { - if (!strcmp(str, items[i])) - return i; - i++; - } - return -1; -} - - -// Thousand separator. Turns 12345678 into 12,345,678 -std::string ThS(int Integer, bool Unsigned, int Spaces) -{ - // Create storage space - char cbuf[20]; - // Determine treatment of signed or unsigned - if(Unsigned) sprintf(cbuf, "%u", Integer); else sprintf(cbuf, "%i", Integer); - - std::string Sbuf = cbuf; - for (u32 i = 0; i < Sbuf.length(); ++i) - { - if((i & 3) == 3) - { - Sbuf.insert(Sbuf.length() - i, ","); - } - } - - // Spaces - std::string Spc = ""; - for (int i = 0; i < (int)(Spaces - Sbuf.length()); i++) Spc += " "; - return Spc + Sbuf; -} - -void NormalizeDirSep(std::string* str) -{ -#ifdef _WIN32 - int i; - while ((i = (int)str->find_first_of('\\')) >= 0) - { - str->replace(i, 1, DIR_SEP); - } -#endif -} - -std::string TabsToSpaces(int tab_size, const std::string &in) -{ - std::string out; - int len = 0; - // First, compute the size of the new string. - for (unsigned i = 0; i < in.size(); i++) - { - if (in[i] == '\t') - len += tab_size; - else - len += 1; - } - out.resize(len); - int out_ctr = 0; - for (unsigned i = 0; i < in.size(); i++) - { - if (in[i] == '\t') - { - for (int j = 0; j < tab_size; j++) - out[out_ctr++] = ' '; - } - else - { - out[out_ctr++] = in[i]; - } - } - return out; -} - -std::string PathToFilename(std::string Path) -{ - std::string Name, Ending; - SplitPath(Path, 0, &Name, &Ending); - return Name + Ending; -} diff -Nru desmume-0.9.9/src/wx/StringUtil.h desmume-0.9.10/src/wx/StringUtil.h --- desmume-0.9.9/src/wx/StringUtil.h 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/StringUtil.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef _STRINGUTIL_H_ -#define _STRINGUTIL_H_ - -#include - -#include -#include - -#include "common.h" - -std::string StringFromFormat(const char* format, ...); -void ToStringFromFormat(std::string* out, const char* format, ...); - -// WARNING - only call once with a set of args! -void StringFromFormatV(std::string* out, const char* format, va_list args); -// Cheap! -bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list args); - -// Good -std::string ArrayToString(const u8 *data, u32 size, u32 offset = 0, int line_len = 20, bool Spaces = true); - - -template -inline void CharArrayFromFormat(char (& out)[Count], const char* format, ...) -{ - va_list args; - va_start(args, format); - CharArrayFromFormatV(out, Count, format, args); - va_end(args); -} - - -std::string StripSpaces(const std::string &s); -std::string StripQuotes(const std::string &s); -std::string StripNewline(const std::string &s); -// Thousand separator. Turns 12345678 into 12,345,678 -std::string ThS(int a, bool b = true, int Spaces = 0); - -std::string StringFromInt(int value); -std::string StringFromBool(bool value); - -bool TryParseInt(const char* str, int* outVal); -bool TryParseBool(const char* str, bool* output); -bool TryParseUInt(const std::string& str, u32* output); - - -// TODO: kill this -bool AsciiToHex(const char* _szValue, u32& result); -u32 Ascii2Hex(std::string _Text); -std::string Hex2Ascii(u32 _Text); - -std::string TabsToSpaces(int tab_size, const std::string &in); - -void SplitString(const std::string& str, const std::string& delim, std::vector& output); -int ChooseStringFrom(const char* str, const char* * items); - - -// "C:\Windows\winhelp.exe" to "C:\Windows\", "winhelp", "exe" -bool SplitPath(const std::string& full_path, std::string* _pPath, std::string* _pFilename, std::string* _pExtension); -// "C:\Windows\winhelp.exe" to "winhelp.exe" -std::string PathToFilename(std::string Path); - -void BuildCompleteFilename(std::string& _CompleteFilename, const std::string& _Path, const std::string& _Filename); -void NormalizeDirSep(std::string* str); - -#endif // _STRINGUTIL_H_ diff -Nru desmume-0.9.9/src/wx/wxdesmume.desktop desmume-0.9.10/src/wx/wxdesmume.desktop --- desmume-0.9.9/src/wx/wxdesmume.desktop 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/wxdesmume.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.0 -Type=Application -Name=DeSmuME (WxWidgets) -Comment=Nintento DS emulator -TryExec=wxdesmume -Exec=wxdesmume -Icon=DeSmuME -Categories=GNOME;GTK;Game;Emulator; -MimeType=application/x-nintendo-ds-rom; diff -Nru desmume-0.9.9/src/wx/wxMain.cpp desmume-0.9.10/src/wx/wxMain.cpp --- desmume-0.9.9/src/wx/wxMain.cpp 2013-05-01 18:48:47.000000000 +0000 +++ desmume-0.9.10/src/wx/wxMain.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,971 +0,0 @@ -/* wxMain.cpp - this file is part of DeSmuME - * - * Copyright (C) 2003-2009 Dolphin Project - * Copyright (C) 2009-2011 DeSmuME Team - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This file is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "wxMain.h" -#include "NDSSystem.h" -#include "GPU_osd.h" -#include -#include "gfx3d.h" -#include "version.h" -#include "addons.h" -#include "saves.h" -#include "movie.h" -#include "sndsdl.h" -#include "render3D.h" -#include "rasterize.h" -#include "OGLRender.h" -#include "firmware.h" -#ifdef HAVE_LIBAGG -#include "aggdraw.h" -#endif - -#include "DeSmuME.xpm" - -#ifndef WIN32 -#define lstrlen(a) strlen((a)) -#endif - -#include - -#include "LuaWindow.h" -#include "PadSimple/GUI/ConfigDlg.h" -#include "PadSimple/pluginspecs_pad.h" -#include "wxdlg/wxcontrolsconfigdialog.h" - -#ifndef WX_PRECOMP -#include -#endif - -#ifdef GDB_STUB -#include "gdbstub.h" -#endif -#include -#include - -/*************** VARS ******************/ - -#define SCREEN_SIZE (256*192*3) -#define GAP_DEFAULT 64 -#define GAP_MAX 90 -static int nds_gap_size; -static SPADInitialize PADInitialize; -static bool Touch = false; - -#if defined(WIN32) || defined(HAVE_LIBSOUNDTOUCH) -#define HAVE_SPUMODE_SYNCP -#endif - -enum audiodriver_enum { - AUDIODRIVER_SDL = 0, - AUDIODRIVER_DISABLE -}; - -enum spumode_enum { - SPUMODE_DUALASYNC = 0, - SPUMODE_SYNCN, - SPUMODE_SYNCZ, -#ifdef HAVE_SPUMODE_SYNCP - SPUMODE_SYNCP -#endif -}; - -SoundInterface_struct *SNDCoreList[] = { - &SNDDummy, - &SNDSDL, - NULL -}; - -GPU3DInterface *core3DList[] = { - &gpu3DRasterize, -#if !defined(WIN32) && !defined(__APPLE__) - &gpu3Dgl, -#endif - &gpu3DNull, - NULL -}; - -volatile bool execute = false; - -/*************** wx OnInit ******************/ - -bool Desmume::OnInit() -{ - if ( !wxApp::OnInit() ) - return false; - -#ifdef WIN32 - extern void OpenConsole(); - OpenConsole(); -#endif - - SetAppName(_T("desmume")); - wxString iniFileName = wxPathOnly(wxStandardPaths::Get().GetExecutablePath()) + _T("/desmume.ini"); - wxConfigBase *pConfig = new wxFileConfig(wxEmptyString,wxEmptyString,iniFileName,wxEmptyString,wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_RELATIVE_PATH); - wxConfigBase::Set(pConfig); - wxString emu_version(EMU_DESMUME_NAME_AND_VERSION(), wxConvUTF8); - DesmumeFrame *frame = new DesmumeFrame(emu_version); - frame->NDSInitialize(); - - frame->Show(true); - - PADInitialize.padNumber = 1; - -#ifndef WIN32 - extern void Initialize(void *init); - - Initialize(&PADInitialize); -#endif - - return true; -} - -/*************** DesmumeFrame class functions for functionality/events ******************/ - -void DesmumeFrame::NDSInitialize() { - NDS_FillDefaultFirmwareConfigData( &fw_config); - -#ifdef HAVE_LIBAGG - Desmume_InitOnce(); - aggDraw.hud->attach((u8*)GPU_screen, 256, 384, 1024);//TODO -#endif - - //TODO - addon_type = NDS_ADDON_NONE; - addonsChangePak(addon_type); - -#ifdef GDB_STUB - arm9_memio = &arm9_base_memory_iface; - arm7_memio = &arm7_base_memory_iface; - NDS_Init( arm9_memio, &arm9_ctrl_iface, - arm7_memio, &arm7_ctrl_iface); -#else - NDS_Init(); -#endif - SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4); - NDS_3D_ChangeCore(0); - NDS_CreateDummyFirmware( &fw_config); -} - -void DesmumeFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - execute = false; - SPU_Pause(1); - NDS_DeInit(); - Close(true); -} - -void DesmumeFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageBox( - wxString::Format(wxT("Desmume on %s"),wxGetOsDescription().c_str()), - wxT("About Desmume"), - wxOK | wxICON_INFORMATION, - this); -} - -void DesmumeFrame::applyInput() -{ - - bool up,down,left,right,x,y,a,b,l,r,start,select; - - up = down = left = right = x = y = a = b = l = r = start = select = false; - - SPADStatus s; - memset(&s,0,sizeof(s)); - - //TODO !!!!!!!!!!!!!!!!!!!!!! FIXME!!!!!!!!!!1 -#ifndef _MSC_VER -// PAD_GetStatus(0, &s); -#endif - - if(s.button & PAD_BUTTON_LEFT) - left = true; - if(s.button & PAD_BUTTON_RIGHT) - right = true; - if(s.button & PAD_BUTTON_UP) - up = true; - if(s.button & PAD_BUTTON_DOWN) - down = true; - if(s.button & PAD_BUTTON_A) - a = true; - if(s.button & PAD_BUTTON_B) - b = true; - if(s.button & PAD_BUTTON_X) - x = true; - if(s.button & PAD_BUTTON_Y) - y = true; - if(s.button & PAD_TRIGGER_L) - l = true; - if(s.button & PAD_TRIGGER_R) - r = true; - if(s.button & PAD_BUTTON_START) - start = true; - - u16 pad1 = (0 | - ((a ? 0 : 0x80) >> 7) | - ((b ? 0 : 0x80) >> 6) | - ((select? 0 : 0x80) >> 5) | - ((start ? 0 : 0x80) >> 4) | - ((right ? 0 : 0x80) >> 3) | - ((left ? 0 : 0x80) >> 2) | - ((up ? 0 : 0x80) >> 1) | - ((down ? 0 : 0x80) ) | - ((r ? 0 : 0x80) << 1) | - ((l ? 0 : 0x80) << 2)) ; - - ((u16 *)MMU.ARM9_REG)[0x130>>1] = (u16)pad1; - ((u16 *)MMU.ARM7_REG)[0x130>>1] = (u16)pad1; - - bool debug = false; - bool lidClosed = false; - - u16 padExt = (((u16 *)MMU.ARM7_REG)[0x136>>1] & 0x0070) | - ((x ? 0 : 0x80) >> 7) | - ((y ? 0 : 0x80) >> 6) | - ((debug ? 0 : 0x80) >> 4) | - ((lidClosed) << 7) | - 0x0034; - - ((u16 *)MMU.ARM7_REG)[0x136>>1] = (u16)padExt; -} - -void DesmumeFrame::LoadRom(wxCommandEvent& event) -{ - execute = false; - SPU_Pause(1); - - wxFileDialog dialog(this,_T("Load Rom"),wxGetHomeDir(),_T(""),_T("*.nds"),wxFD_OPEN, wxDefaultPosition, wxDefaultSize); - if(dialog.ShowModal() == wxID_OK) { - history->AddFileToHistory(dialog.GetPath()); - NDS_LoadROM(dialog.GetPath().mb_str(), dialog.GetPath().mb_str()); - execute = true; - SPU_Pause(0); - } -} - -bool DesmumeFrame::DetransformTouchCoords(int& X, int& Y) -{ - int dtX, dtY; - - // TODO: descaling (when scaling is supported) - - // De-rotate coordinates - switch (nds_screen_rotation_angle) - { - case 0: dtX = X; dtY = Y - 191 - nds_gap_size; break; - case 90: dtX = Y; dtY = 191 - X; break; - case 180: dtX = 255 - X; dtY = 191 - Y; break; - case 270: dtX = 255 - Y; dtY = X - 191 - nds_gap_size; break; - } - - // Atleast one of the coordinates is out of range - if ((dtX < 0) || (dtX > 255) || (dtY < 0) || (dtY > 191)) - { - X = wxClip(dtX, 0, 255); - Y = wxClip(dtY, 0, 191); - return false; - } - else - { - X = dtX; - Y = dtY; - return true; - } -} - -void DesmumeFrame::OnTouchEvent(wxMouseEvent& evt) -{ - wxPoint pt = evt.GetPosition(); - bool inside = DetransformTouchCoords(pt.x, pt.y); - - if (evt.LeftDown() && inside) - { - Touch = true; - NDS_setTouchPos((u16)pt.x, (u16)pt.y); - } - else if(evt.LeftUp() && Touch) - { - Touch = false; - NDS_releaseTouch(); - } - else if (Touch) - { - NDS_setTouchPos((u16)pt.x, (u16)pt.y); - } -} - -void DesmumeFrame::gpu_screen_to_rgb(u8 *rgb1, u8 *rgb2) -{ - u16 gpu_pixel; - u8 pixel[3]; - u8 *rgb = rgb1; - const int rot = nds_screen_rotation_angle; - int done = false; - int offset = 0; - -loop: - for (int i = 0; i < 256; i++) { - for (int j = 0; j < 192; j++) { - gpu_pixel = *((u16 *) & GPU_screen[(i + (j + offset) * 256) << 1]); - pixel[0] = ((gpu_pixel >> 0) & 0x1f) << 3; - pixel[1] = ((gpu_pixel >> 5) & 0x1f) << 3; - pixel[2] = ((gpu_pixel >> 10) & 0x1f) << 3; - switch (rot) { - case 0: - memcpy(rgb+((i+j*256)*3),pixel,3); - break; - case 90: - memcpy(rgb+SCREEN_SIZE-((j+(255-i)*192)*3)-3,pixel,3); - break; - case 180: - memcpy(rgb+SCREEN_SIZE-((i+j*256)*3)-3,pixel,3); - break; - case 270: - memcpy(rgb+((j+(255-i)*192)*3),pixel,3); - break; - } - } - - } - - if (done == false) { - offset = 192; - rgb = rgb2; - done = true; - goto loop; - } -} - -void DesmumeFrame::onPaint(wxPaintEvent &event) -{ - u8 rgb1[SCREEN_SIZE], rgb2[SCREEN_SIZE]; - wxPaintDC dc(this); - int w, h; - - if (nds_screen_rotation_angle == 90 || nds_screen_rotation_angle == 270) { - w = 192; - h = 256; - } else { - w = 256; - h = 192; - } - - gpu_screen_to_rgb(rgb1, rgb2); - wxBitmap m_bitmap1(wxImage(w, h, rgb1, true)); - wxBitmap m_bitmap2(wxImage(w, h, rgb2, true)); - switch (nds_screen_rotation_angle) { - case 0: - dc.DrawBitmap(m_bitmap1, 0, 0, true); - dc.DrawBitmap(m_bitmap2, 0, 192+nds_gap_size, true); - break; - case 90: - dc.DrawBitmap(m_bitmap2, 0, 0, true); - dc.DrawBitmap(m_bitmap1, 192+nds_gap_size, 0, true); - break; - case 180: - dc.DrawBitmap(m_bitmap2, 0, 0, true); - dc.DrawBitmap(m_bitmap1, 0, 192+nds_gap_size, true); - break; - case 270: - dc.DrawBitmap(m_bitmap1, 0, 0, true); - dc.DrawBitmap(m_bitmap2, 192+nds_gap_size, 0, true); - break; - } -} - -void DesmumeFrame::onIdle(wxIdleEvent &event) -{ - Refresh(false); - event.RequestMore(); - if (execute) - { - applyInput(); - NDS_exec(); - SPU_Emulate_user(); - osd->update(); - DrawHUD(); - osd->clear(); - } -} - -void DesmumeFrame::pause(wxCommandEvent& event) -{ - if (gameInfo.romdata == NULL) - return; - - if (execute) { - execute=false; - SPU_Pause(1); - } else { - execute=true; - SPU_Pause(0); - } -} - -void DesmumeFrame::frameCounter(wxCommandEvent& event) -{ - CommonSettings.hud.FrameCounterDisplay ^= true; - osd->clear(); -} - -void DesmumeFrame::FPS(wxCommandEvent& event) -{ - CommonSettings.hud.FpsDisplay ^= true; - osd->clear(); -} - -void DesmumeFrame::displayInput(wxCommandEvent& event) -{ - CommonSettings.hud.ShowInputDisplay ^= true; - osd->clear(); -} - -void DesmumeFrame::displayGraphicalInput(wxCommandEvent& event) -{ - CommonSettings.hud.ShowGraphicalInputDisplay ^= true; - osd->clear(); -} - -void DesmumeFrame::displayLagCounter(wxCommandEvent& event) -{ - CommonSettings.hud.ShowLagFrameCounter ^= true; - osd->clear(); -} - -void DesmumeFrame::displayMicrophone(wxCommandEvent& event) -{ - CommonSettings.hud.ShowMicrophone ^= true; - osd->clear(); -} - -#ifdef HAVE_LIBAGG -void DesmumeFrame::setHUDFont(wxCommandEvent &event) -{ - wxArrayString fontchoices; - for(int i = 0; i < font_Nums;i++) - { - fontchoices.Add(fonts_list[i].name); - } - - wxSingleChoiceDialog fontDialog(this, - _T("Please select a font for use on the HUD:\n"), - _T("Configure HUD font"), - fontchoices); - fontDialog.SetSelection(fontchoices.GetCount() - 1); - if(fontDialog.ShowModal() == wxID_OK) - { - aggDraw.hud->setFont(fonts_list[fontDialog.GetSelection()].name); - } - -} -#endif - -void DesmumeFrame::mainG(int n) -{ - if(CommonSettings.dispLayers[0][n]) - GPU_remove(MainScreen.gpu, n); - else - GPU_addBack(MainScreen.gpu, n); -} - -void DesmumeFrame::subG(int n) -{ - if(CommonSettings.dispLayers[1][n]) - GPU_remove(SubScreen.gpu, n); - else - GPU_addBack(SubScreen.gpu, n); -} - -void DesmumeFrame::_3dView(wxCommandEvent& event) -{ - driver->VIEW3D_Init(); - driver->view3d->Launch(); -} - -void DesmumeFrame::saveStateAs(wxCommandEvent& event) -{ - wxFileDialog dialog(this,_T("Save State As"),wxGetHomeDir(),_T(""),_T("*.dst"),wxFD_SAVE, wxDefaultPosition, wxDefaultSize); - if(dialog.ShowModal() == wxID_OK) - savestate_save (dialog.GetPath().mb_str()); -} - -void DesmumeFrame::loadStateFrom(wxCommandEvent& event) -{ - wxFileDialog dialog(this,_T("Load State From"),wxGetHomeDir(),_T(""),_T("*.dst"),wxFD_OPEN, wxDefaultPosition, wxDefaultSize); - if(dialog.ShowModal() == wxID_OK) - savestate_load (dialog.GetPath().mb_str()); -} - -void DesmumeFrame::closeRom(wxCommandEvent& event) -{ - NDS_FreeROM(); - execute = false; - SPU_Pause(1); -#ifdef HAVE_LIBAGG - Hud.resetTransient(); -#endif - NDS_Reset(); -} - -void DesmumeFrame::importBackupMemory(wxCommandEvent& event) -{ - wxFileDialog dialog(this,_T("Import Backup Memory"),wxGetHomeDir(),_T(""),_T("*.duc, *.sav"),wxFD_OPEN, wxDefaultPosition, wxDefaultSize); - if(dialog.ShowModal() == wxID_OK) - if (!NDS_ImportSave(dialog.GetPath().mb_str())) - wxMessageBox(wxString::Format(_T("Save was not successfully imported")),_T("Error"),wxOK | wxICON_ERROR,this); -} - -void DesmumeFrame::exportBackupMemory(wxCommandEvent& event) -{ - wxFileDialog dialog(this,_T("Export Backup Memory"),wxGetHomeDir(),_T(""),_T("*.duc, *.sav"),wxFD_SAVE, wxDefaultPosition, wxDefaultSize); - if(dialog.ShowModal() == wxID_OK) - if (!NDS_ExportSave(dialog.GetPath().mb_str())) - wxMessageBox(wxString::Format(_T("Save was not successfully exported")),_T("Error"),wxOK | wxICON_ERROR,this); -} - -void DesmumeFrame::saveScreenshotAs(wxCommandEvent& event) -{ - wxFileDialog dialog(this,_T("Save Screenshot As"),wxGetHomeDir(),_T(""),_T("*.png"),wxFD_SAVE, wxDefaultPosition, wxDefaultSize); - if(dialog.ShowModal() == wxID_OK) - NDS_WritePNG(dialog.GetPath().mb_str()); -} - -void DesmumeFrame::quickScreenshot(wxCommandEvent& event) -{ - NDS_WritePNG(wxStandardPaths::Get().GetExecutablePath().mb_str());//TODO GetExecutablePath is wrong -} - -void DesmumeFrame::OnOpenLuaWindow(wxCommandEvent& WXUNUSED (event)) -{ -#ifdef WIN32 - new wxLuaWindow(this, wxDefaultPosition, wxSize(600, 390)); -#endif -} - -void DesmumeFrame::OnOpenControllerConfiguration(wxCommandEvent& WXUNUSED (event)) -{ -//#ifndef _MSC_VER -// new PADConfigDialogSimple(this); - (new wxControlsConfigDialog(this))->ShowModal(); -//#endif -} - -void DesmumeFrame::Menu_SaveStates(wxCommandEvent &event){savestate_slot(event.GetId() - wSaveState01);} -void DesmumeFrame::Menu_LoadStates(wxCommandEvent &event){loadstate_slot(event.GetId() - wLoadState01);} - -void DesmumeFrame::OnRotation(wxCommandEvent &event) { - ChangeRotation((event.GetId() - wRot0)*90, true); -} - -void DesmumeFrame::ChangeRotation(int rot, bool skip) { - wxSize sizeMin, sizeMax; - - if (skip && rot == nds_screen_rotation_angle) - return; - - SetMinSize(wxSize(-1,-1)); - SetMaxSize(wxSize(-1,-1)); - - if (rot == 90 || rot == 270) { - SetClientSize(384 + nds_gap_size, 256); - sizeMax = sizeMin = ClientToWindowSize(wxSize(384,256)); - sizeMax.IncBy(GAP_MAX,0); - } else { - SetClientSize(256, 384 + nds_gap_size); - sizeMax = sizeMin = ClientToWindowSize(wxSize(256,384)); - sizeMax.IncBy(0,GAP_MAX); - } - SetMinSize(sizeMin); - SetMaxSize(sizeMax); - nds_screen_rotation_angle = rot; -} - -void DesmumeFrame::onResize(wxSizeEvent &event) { - int w, h; - - GetClientSize(&w,&h); - if (nds_screen_rotation_angle == 90 || nds_screen_rotation_angle == 270) { - if (w>=384) - nds_gap_size = w-384; - } else { - if (h>=384) - nds_gap_size = h-384; - } - event.Skip(); -} - -#ifdef WIN32 -/* -* The thread handling functions needed by the GDB stub code. -*/ -void * -createThread_gdb( void (APIENTRY *thread_function)( void *data), - void *thread_data) { - void *new_thread = CreateThread( NULL, 0, - (LPTHREAD_START_ROUTINE)thread_function, thread_data, - 0, NULL); - - return new_thread; -} - -void -joinThread_gdb( void *thread_handle) { -} -#endif -bool DesmumeFrame::LoadSettings() { - wxConfigBase::Get()->Read(_T("/Screen/Gap"),&nds_gap_size,0); - wxConfigBase::Get()->Read(_T("/Screen/Rotation"),&nds_screen_rotation_angle,0); - wxConfigBase::Get()->SetPath(_T("/History")); - history->Load(*wxConfigBase::Get()); - return true; -} - -bool DesmumeFrame::SaveSettings() { - wxConfigBase::Get()->Write(_T("/Screen/Gap"),nds_gap_size); - wxConfigBase::Get()->Write(_T("/Screen/Rotation"),nds_screen_rotation_angle); - wxConfigBase::Get()->SetPath(_T("/History")); - history->Save(*wxConfigBase::Get()); - return true; -} - -void DesmumeFrame::OnClose(wxCloseEvent &event) { - SaveSettings(); - event.Skip(); -} - -void DesmumeFrame::OnOpenRecent(wxCommandEvent &event) { - int ret; - size_t id = event.GetId()-wxID_FILE1; - - execute = false; - SPU_Pause(1); - - ret = NDS_LoadROM(history->GetHistoryFile(id).mb_str(), history->GetHistoryFile(id).mb_str()); - if (ret > 0) { - execute = true; - SPU_Pause(0); - } else - history->RemoveFileFromHistory(id); -} - -void DesmumeFrame::ClearHistory(wxCommandEvent &event) { - while (history->GetCount()) { - history->RemoveFileFromHistory(0); - } -} - - -void DesmumeFrame::Modify_AudioDriver(wxCommandEvent &event) -{ - const int selection = event.GetId() - wAUDIODRIVER_SDL; - - switch (selection) { - case AUDIODRIVER_DISABLE: - SPU_ChangeSoundCore(0, 0); - osd->addLine("Audio disabled"); - break; - default: - case AUDIODRIVER_SDL: - SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4); - osd->addLine("Audio enabled (SDL driver)"); - break; - } -} - -void DesmumeFrame::Modify_SPUMode(wxCommandEvent &event) -{ - const int selection = event.GetId() - wSPUMODE_DUALASYNC; - uint syncMode, syncMethod; - - switch (selection) { - case SPUMODE_SYNCN: - case SPUMODE_SYNCZ: -#ifdef HAVE_SPUMODE_SYNCP - case SPUMODE_SYNCP: -#endif - syncMode = 1; - syncMethod = selection - 1; - break; - - // Default to DualASync mode on invalid selection - default: - case SPUMODE_DUALASYNC: - syncMode = 0; - syncMethod = 0; - break; - } - SPU_SetSynchMode(syncMode, syncMethod); -} - -/*************** DesmumeFrame class "loadmenu" functions and the frame ******************/ - -DesmumeFrame::DesmumeFrame(const wxString& title) -: wxFrame(NULL, wxID_ANY, title) -{ - history = new wxFileHistory; - wxMenuBar *menuBar = new wxMenuBar(); - - LoadSettings(); - - SetIcon(wxICON(DeSmuME)); - - loadmenuBar(menuBar); - - SetMenuBar(menuBar); - - ChangeRotation(nds_screen_rotation_angle, false); -} - -void DesmumeFrame::loadfileMenu(wxMenu *fileMenu) -{ - wxMenu *recentMenu = new wxMenu; - wxMenu *saves(MakeStatesSubMenu(wSaveState01)); - wxMenu *loads(MakeStatesSubMenu(wLoadState01)); - fileMenu->Append(wxID_OPEN, _T("Load R&om\tAlt-R")); - fileMenu->AppendSubMenu(recentMenu, _T("Recent files")); - fileMenu->Append(wCloseRom, _T("Close Rom")); - fileMenu->AppendSeparator(); - fileMenu->Append(wSaveStateAs, _T("Save State As...")); - fileMenu->Append(wLoadStateFrom, _T("Load State From...")); - fileMenu->AppendSubMenu(saves, _T("Save State")); - fileMenu->AppendSubMenu(loads, _T("Load State")); - fileMenu->AppendSeparator(); - fileMenu->Append(wImportBackupMemory, _T("Import Backup Memory...")); - fileMenu->Append(wExportBackupMemory, _T("Export Backup Memory...")); - fileMenu->AppendSeparator(); - fileMenu->Append(wSaveScreenshotAs, _T("Save Screenshot As")); - fileMenu->Append(wQuickScreenshot, _T("Quick Screenshot")); - fileMenu->AppendSeparator(); - fileMenu->Append(wPlayMovie, _T("Play Movie")); - fileMenu->Append(wRecordMovie, _T("Record Movie")); - fileMenu->Append(wStopMovie, _T("Stop Movie")); - fileMenu->AppendSeparator(); - fileMenu->Append(wLuaWindow, _T("New Lua Script Window...")); - fileMenu->AppendSeparator(); - fileMenu->Append(wxID_EXIT, _T("E&xit\tAlt-X"), _T("Quit this program")); - - recentMenu->Append(wClearHistory, wxT("Clear recent list")); - history->UseMenu(recentMenu); - history->AddFilesToMenu(); - -} - -void DesmumeFrame::loademulationMenu(wxMenu *emulationMenu) -{ - wxMenu *audiodriverMenu = new wxMenu; - wxMenu *spumodeMenu = new wxMenu; - emulationMenu->Append(wPause, _T("&Pause\tAlt-P"), _T("Pause Emulation")); - emulationMenu->Append(wReset, _T("&Reset\tAlt-R"), _T("Reset Emulation")); - emulationMenu->AppendSeparator(); - emulationMenu->AppendSubMenu(audiodriverMenu, _T("&Audio Driver")); - audiodriverMenu->AppendRadioItem(wAUDIODRIVER_SDL, _T("&SDL")); - audiodriverMenu->AppendRadioItem(wAUDIODRIVER_DISABLE, _T("&Disable Sound")); - emulationMenu->AppendSubMenu(spumodeMenu, _T("&SPU Mode")); - spumodeMenu->AppendRadioItem(wSPUMODE_DUALASYNC, _T("&Dual Asynchronous")); - spumodeMenu->AppendRadioItem(wSPUMODE_SYNCN, _T("Synchronous (&N)")); - spumodeMenu->AppendRadioItem(wSPUMODE_SYNCZ, _T("Synchronous (&Z)")); -#ifdef HAVE_SPUMODE_SYNCP - spumodeMenu->AppendRadioItem(wSPUMODE_SYNCP, _T("Synchronous (&P)")); -#endif -} - -void DesmumeFrame::loadrotateMenu(wxMenu *rotateMenu) -{ - rotateMenu->AppendRadioItem(wRot0, _T("0")); - rotateMenu->AppendRadioItem(wRot90, _T("90")); - rotateMenu->AppendRadioItem(wRot180, _T("180")); - rotateMenu->AppendRadioItem(wRot270, _T("270")); - rotateMenu->Check(wRot0+(nds_screen_rotation_angle/90), true); -} - -void DesmumeFrame::loadviewMenu(wxMenu *viewMenu) -{ - wxMenu *rotateMenu = new wxMenu; - viewMenu->AppendSubMenu(rotateMenu, _T("Rotate")); - viewMenu->AppendSeparator(); - viewMenu->Append(wSetHUDFont, _T("&Set HUD Font")); - viewMenu->AppendCheckItem(wFrameCounter, _T("&Display Frame Counter")); - viewMenu->AppendCheckItem(wFPS, _T("&Display FPS")); - viewMenu->AppendCheckItem(wDisplayInput, _T("&Display Input")); - viewMenu->AppendCheckItem(wDisplayGraphicalInput, _T("&Display Graphical Input")); - viewMenu->AppendCheckItem(wDisplayLagCounter, _T("&Display Lag Counter")); - viewMenu->AppendCheckItem(wDisplayMicrophone, _T("&Display Microphone")); - - loadrotateMenu(rotateMenu); -} - -void DesmumeFrame::loadtoolsMenu(wxMenu *toolsMenu) -{ - wxMenu *layersMenu = new wxMenu; - - toolsMenu->Append(w3dView, _T("&3d Viewer")); - toolsMenu->AppendSeparator(); - toolsMenu->AppendSubMenu(layersMenu, _T("View Layers")); - - loadlayersMenu(layersMenu); -} - -void DesmumeFrame::loadlayersMenu(wxMenu *layersMenu) -{ - layersMenu->AppendCheckItem(wMainGPU, _T("Main GPU")); - layersMenu->Check(wMainGPU, true); - layersMenu->AppendCheckItem(wMainBG0, _T("Main BG 0")); - layersMenu->Check(wMainBG0, true); - layersMenu->AppendCheckItem(wMainBG1, _T("Main BG 1")); - layersMenu->Check(wMainBG1, true); - layersMenu->AppendCheckItem(wMainBG2, _T("Main BG 2")); - layersMenu->Check(wMainBG2, true); - layersMenu->AppendCheckItem(wMainBG3, _T("Main BG 3")); - layersMenu->Check(wMainBG3, true); - layersMenu->AppendSeparator(); - layersMenu->AppendCheckItem(wSubGPU, _T("Sub GPU")); - layersMenu->Check(wSubGPU, true); - layersMenu->AppendCheckItem(wSubBG0, _T("Sub BG 0")); - layersMenu->Check(wSubBG0, true); - layersMenu->AppendCheckItem(wSubBG1, _T("Sub BG 1")); - layersMenu->Check(wSubBG1, true); - layersMenu->AppendCheckItem(wSubBG2, _T("Sub BG 2")); - layersMenu->Check(wSubBG2, true); - layersMenu->AppendCheckItem(wSubBG3, _T("Sub BG 3")); - layersMenu->Check(wSubBG3, true); -} - -void DesmumeFrame::loadconfigMenu(wxMenu *configMenu) -{ - configMenu->Append(wConfigureControls, _T("Controls")); -} - -void DesmumeFrame::loadhelpMenu(wxMenu *helpMenu) -{ - helpMenu->Append(wWebsite, _T("&Website")); - helpMenu->Append(wForums, _T("&Forums")); - helpMenu->Append(wSubmitABugReport, _T("&Submit A Bug Report")); - helpMenu->Append(wxID_ABOUT); -} - -void DesmumeFrame::loadmenuBar(wxMenuBar *menuBar) -{ - wxMenu *fileMenu = new wxMenu; - wxMenu *emulationMenu = new wxMenu; - wxMenu *viewMenu = new wxMenu; - wxMenu *configMenu = new wxMenu; - wxMenu *toolsMenu = new wxMenu; - wxMenu *helpMenu = new wxMenu; - - menuBar->Append(fileMenu, _T("&File")); - menuBar->Append(emulationMenu, _T("&Emulation")); - menuBar->Append(viewMenu, _T("&View")); - menuBar->Append(configMenu, _T("&Config")); - menuBar->Append(toolsMenu, _T("&Tools")); - menuBar->Append(helpMenu, _T("&Help")); - - loadfileMenu(fileMenu); - loademulationMenu(emulationMenu); - loadconfigMenu(configMenu); - loadtoolsMenu(toolsMenu); - loadhelpMenu(helpMenu); - loadviewMenu(viewMenu); - -} - -/*************** wx Event Table ******************/ - -BEGIN_EVENT_TABLE(DesmumeFrame, wxFrame) - - EVT_PAINT(DesmumeFrame::onPaint) - EVT_IDLE(DesmumeFrame::onIdle) - EVT_SIZE(DesmumeFrame::onResize) - EVT_LEFT_DOWN(DesmumeFrame::OnTouchEvent) - EVT_LEFT_UP(DesmumeFrame::OnTouchEvent) - EVT_LEFT_DCLICK(DesmumeFrame::OnTouchEvent) - EVT_MOTION(DesmumeFrame::OnTouchEvent) - EVT_CLOSE(DesmumeFrame::OnClose) - - EVT_MENU(wxID_EXIT, DesmumeFrame::OnQuit) - EVT_MENU(wxID_OPEN, DesmumeFrame::LoadRom) - EVT_MENU(wxID_ABOUT,DesmumeFrame::OnAbout) - - EVT_MENU(wPause,DesmumeFrame::pause) - EVT_MENU(wReset,DesmumeFrame::reset) - - EVT_MENU(wClearHistory,DesmumeFrame::ClearHistory) - - EVT_MENU_RANGE(wAUDIODRIVER_SDL,wAUDIODRIVER_DISABLE,DesmumeFrame::Modify_AudioDriver) - EVT_MENU_RANGE(wSPUMODE_DUALASYNC,wSPUMODE_SYNCZ,DesmumeFrame::Modify_SPUMode) -#ifdef HAVE_SPUMODE_SYNCP - EVT_MENU(wSPUMODE_SYNCP,DesmumeFrame::Modify_SPUMode) -#endif - - EVT_MENU(wFrameCounter,DesmumeFrame::frameCounter) - EVT_MENU(wFPS,DesmumeFrame::FPS) - EVT_MENU(wDisplayInput,DesmumeFrame::displayInput) - EVT_MENU(wDisplayGraphicalInput,DesmumeFrame::displayGraphicalInput) - EVT_MENU(wDisplayLagCounter,DesmumeFrame::displayLagCounter) - EVT_MENU(wDisplayMicrophone,DesmumeFrame::displayMicrophone) -#ifdef HAVE_LIBAGG - EVT_MENU(wSetHUDFont,DesmumeFrame::setHUDFont) -#endif - - EVT_MENU(wMainGPU,DesmumeFrame::mainGPU) - EVT_MENU(wMainBG0,DesmumeFrame::mainBG0) - EVT_MENU(wMainBG1,DesmumeFrame::mainBG1) - EVT_MENU(wMainBG2,DesmumeFrame::mainBG2) - EVT_MENU(wMainBG3,DesmumeFrame::mainBG3) - EVT_MENU(wSubGPU,DesmumeFrame::subGPU) - EVT_MENU(wSubBG0,DesmumeFrame::subBG0) - EVT_MENU(wSubBG1,DesmumeFrame::subBG1) - EVT_MENU(wSubBG2,DesmumeFrame::subBG2) - EVT_MENU(wSubBG3,DesmumeFrame::subBG3) - - EVT_MENU(wWebsite,DesmumeFrame::website) - EVT_MENU(wForums,DesmumeFrame::forums) - EVT_MENU(wSubmitABugReport,DesmumeFrame::submitABugReport) - - EVT_MENU(wSaveStateAs,DesmumeFrame::saveStateAs) - EVT_MENU(wLoadStateFrom,DesmumeFrame::loadStateFrom) - - EVT_MENU_RANGE(wSaveState01,wSaveState01+9,DesmumeFrame::Menu_SaveStates) - EVT_MENU_RANGE(wLoadState01,wLoadState01+9,DesmumeFrame::Menu_LoadStates) - - EVT_MENU(wCloseRom,DesmumeFrame::closeRom) - EVT_MENU(wImportBackupMemory,DesmumeFrame::importBackupMemory) - EVT_MENU(wExportBackupMemory,DesmumeFrame::exportBackupMemory) - - EVT_MENU_RANGE(wRot0,wRot270,DesmumeFrame::OnRotation) - - EVT_MENU(wSaveScreenshotAs,DesmumeFrame::saveScreenshotAs) - EVT_MENU(wQuickScreenshot,DesmumeFrame::quickScreenshot) - - EVT_MENU(wPlayMovie,DesmumeFrame::playMovie) - EVT_MENU(wStopMovie,DesmumeFrame::stopMovie) - EVT_MENU(wRecordMovie,DesmumeFrame::recordMovie) - - EVT_MENU(w3dView,DesmumeFrame::_3dView) - - EVT_MENU(wLuaWindow,DesmumeFrame::OnOpenLuaWindow) - - EVT_MENU(wConfigureControls,DesmumeFrame::OnOpenControllerConfiguration) - - EVT_MENU_RANGE(wxID_FILE1,wxID_FILE9,DesmumeFrame::OnOpenRecent) - -END_EVENT_TABLE() - -IMPLEMENT_APP(Desmume) diff -Nru desmume-0.9.9/src/wxdlg/wxcontrolsconfigdialog.cpp desmume-0.9.10/src/wxdlg/wxcontrolsconfigdialog.cpp --- desmume-0.9.9/src/wxdlg/wxcontrolsconfigdialog.cpp 2013-05-01 18:47:30.000000000 +0000 +++ desmume-0.9.10/src/wxdlg/wxcontrolsconfigdialog.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,575 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxcontrolsconfigdialog.cpp -// Purpose: -// Author: -// Modified by: -// Created: 09/07/2010 15:27:00 -// RCS-ID: -// Copyright: -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -////@begin includes -////@end includes - -#include "wxcontrolsconfigdialog.h" - -////@begin XPM images -////@end XPM images - - -/* - * wxControlsConfigDialog type definition - */ - -IMPLEMENT_DYNAMIC_CLASS( wxControlsConfigDialog, wxDialog ) - - -/* - * wxControlsConfigDialog event table definition - */ - -BEGIN_EVENT_TABLE( wxControlsConfigDialog, wxDialog ) - -////@begin wxControlsConfigDialog event table entries - EVT_BUTTON( ID_K_L_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_R_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_X_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_Y_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_A_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_B_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_START_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_SELECT_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_UP_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_DOWN_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_LEFT_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_RIGHT_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_BUTTON( ID_K_LID_C, wxControlsConfigDialog::OnChangeKeyboardMapping ) - - EVT_CHOICE( ID_JOYSTICKIDX, wxControlsConfigDialog::OnJoystickidxSelected ) - - EVT_BUTTON( ID_J_L_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_R_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_X_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_Y_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_A_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_B_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_START_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_SELECT_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_BUTTON( ID_J_LID_C, wxControlsConfigDialog::OnChangeJoystickMapping ) - - EVT_RADIOBUTTON( ID_DPAD_OPT1, wxControlsConfigDialog::OnChangeDPadMode ) - - EVT_RADIOBUTTON( ID_DPAD_OPT2, wxControlsConfigDialog::OnChangeDPadMode ) - - EVT_RADIOBUTTON( ID_DPAD_OPT3, wxControlsConfigDialog::OnChangeDPadMode ) - - EVT_BUTTON( wxID_DEFAULT, wxControlsConfigDialog::OnDefaultClick ) - - EVT_BUTTON( wxID_OK, wxControlsConfigDialog::OnOkClick ) - - EVT_BUTTON( wxID_CANCEL, wxControlsConfigDialog::OnCancelClick ) - - EVT_BUTTON( wxID_APPLY, wxControlsConfigDialog::OnApplyClick ) - -////@end wxControlsConfigDialog event table entries - -END_EVENT_TABLE() - - -/* - * wxControlsConfigDialog constructors - */ - -wxControlsConfigDialog::wxControlsConfigDialog() -{ - Init(); -} - -wxControlsConfigDialog::wxControlsConfigDialog( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) -{ - Init(); - Create(parent, id, caption, pos, size, style); -} - - -/* - * wxControlsConfigDialog creator - */ - -bool wxControlsConfigDialog::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) -{ -////@begin wxControlsConfigDialog creation - SetExtraStyle(wxWS_EX_BLOCK_EVENTS); - wxDialog::Create( parent, id, caption, pos, size, style ); - - CreateControls(); - if (GetSizer()) - { - GetSizer()->SetSizeHints(this); - } - Centre(); -////@end wxControlsConfigDialog creation - return true; -} - - -/* - * wxControlsConfigDialog destructor - */ - -wxControlsConfigDialog::~wxControlsConfigDialog() -{ -////@begin wxControlsConfigDialog destruction -////@end wxControlsConfigDialog destruction -} - - -/* - * Member initialisation - */ - -void wxControlsConfigDialog::Init() -{ -////@begin wxControlsConfigDialog member initialisation -////@end wxControlsConfigDialog member initialisation -} - - -/* - * Control creation for wxControlsConfigDialog - */ - -void wxControlsConfigDialog::CreateControls() -{ -////@begin wxControlsConfigDialog content construction - wxControlsConfigDialog* itemDialog1 = this; - - wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); - itemDialog1->SetSizer(itemBoxSizer2); - - wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0); - - wxStaticBox* itemStaticBoxSizer4Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Keyboard")); - wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer4Static, wxVERTICAL); - itemBoxSizer3->Add(itemStaticBoxSizer4, 0, wxALIGN_TOP|wxALL, 5); - - wxFlexGridSizer* itemFlexGridSizer5 = new wxFlexGridSizer(0, 3, 0, 0); - itemStaticBoxSizer4->Add(itemFlexGridSizer5, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - wxStaticText* itemStaticText6 = new wxStaticText( itemDialog1, wxID_STATIC, _("L:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText6, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl7 = new wxTextCtrl( itemDialog1, ID_K_L_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl7, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton8 = new wxButton( itemDialog1, ID_K_L_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText9 = new wxStaticText( itemDialog1, wxID_STATIC, _("R:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText9, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl10 = new wxTextCtrl( itemDialog1, ID_K_R_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl10, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton11 = new wxButton( itemDialog1, ID_K_R_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton11, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText12 = new wxStaticText( itemDialog1, wxID_STATIC, _("X:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText12, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl13 = new wxTextCtrl( itemDialog1, ID_K_X_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton14 = new wxButton( itemDialog1, ID_K_X_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton14, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText15 = new wxStaticText( itemDialog1, wxID_STATIC, _("Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText15, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl16 = new wxTextCtrl( itemDialog1, ID_K_Y_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl16, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton17 = new wxButton( itemDialog1, ID_K_Y_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton17, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText18 = new wxStaticText( itemDialog1, wxID_STATIC, _("A:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText18, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl19 = new wxTextCtrl( itemDialog1, ID_K_A_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl19, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton20 = new wxButton( itemDialog1, ID_K_A_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton20, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText21 = new wxStaticText( itemDialog1, wxID_STATIC, _("B:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText21, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl22 = new wxTextCtrl( itemDialog1, ID_K_B_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl22, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton23 = new wxButton( itemDialog1, ID_K_B_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton23, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText24 = new wxStaticText( itemDialog1, wxID_STATIC, _("Start:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText24, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl25 = new wxTextCtrl( itemDialog1, ID_K_START_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl25, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton26 = new wxButton( itemDialog1, ID_K_START_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton26, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText27 = new wxStaticText( itemDialog1, wxID_STATIC, _("Select:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText27, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl28 = new wxTextCtrl( itemDialog1, ID_K_SELECT_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl28, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton29 = new wxButton( itemDialog1, ID_K_SELECT_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton29, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText30 = new wxStaticText( itemDialog1, wxID_STATIC, _("Up:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText30, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl31 = new wxTextCtrl( itemDialog1, ID_K_UP_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl31, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton32 = new wxButton( itemDialog1, ID_K_UP_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton32, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText33 = new wxStaticText( itemDialog1, wxID_STATIC, _("Down:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText33, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl34 = new wxTextCtrl( itemDialog1, ID_K_DOWN_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl34, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton35 = new wxButton( itemDialog1, ID_K_DOWN_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton35, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText36 = new wxStaticText( itemDialog1, wxID_STATIC, _("Left:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText36, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl37 = new wxTextCtrl( itemDialog1, ID_K_LEFT_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl37, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton38 = new wxButton( itemDialog1, ID_K_LEFT_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton38, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText39 = new wxStaticText( itemDialog1, wxID_STATIC, _("Right:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText39, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl40 = new wxTextCtrl( itemDialog1, ID_K_RIGHT_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl40, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton41 = new wxButton( itemDialog1, ID_K_RIGHT_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton41, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText42 = new wxStaticText( itemDialog1, wxID_STATIC, _("Close/open lid:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemStaticText42, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl43 = new wxTextCtrl( itemDialog1, ID_K_LID_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer5->Add(itemTextCtrl43, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton44 = new wxButton( itemDialog1, ID_K_LID_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer5->Add(itemButton44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticBox* itemStaticBoxSizer45Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Joystick")); - wxStaticBoxSizer* itemStaticBoxSizer45 = new wxStaticBoxSizer(itemStaticBoxSizer45Static, wxVERTICAL); - itemBoxSizer3->Add(itemStaticBoxSizer45, 0, wxALIGN_TOP|wxALL, 5); - - wxArrayString itemChoice46Strings; - wxChoice* itemChoice46 = new wxChoice( itemDialog1, ID_JOYSTICKIDX, wxDefaultPosition, wxSize(250, -1), itemChoice46Strings, 0 ); - itemStaticBoxSizer45->Add(itemChoice46, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5); - - wxFlexGridSizer* itemFlexGridSizer47 = new wxFlexGridSizer(0, 3, 0, 0); - itemStaticBoxSizer45->Add(itemFlexGridSizer47, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - wxStaticText* itemStaticText48 = new wxStaticText( itemDialog1, wxID_STATIC, _("L:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText48, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl49 = new wxTextCtrl( itemDialog1, ID_J_L_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl49, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton50 = new wxButton( itemDialog1, ID_J_L_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton50, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText51 = new wxStaticText( itemDialog1, wxID_STATIC, _("R:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText51, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl52 = new wxTextCtrl( itemDialog1, ID_J_R_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl52, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton53 = new wxButton( itemDialog1, ID_J_R_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton53, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText54 = new wxStaticText( itemDialog1, wxID_STATIC, _("X:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText54, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl55 = new wxTextCtrl( itemDialog1, ID_J_X_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl55, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton56 = new wxButton( itemDialog1, ID_J_X_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton56, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText57 = new wxStaticText( itemDialog1, wxID_STATIC, _("Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText57, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl58 = new wxTextCtrl( itemDialog1, ID_J_Y_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl58, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton59 = new wxButton( itemDialog1, ID_J_Y_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton59, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText60 = new wxStaticText( itemDialog1, wxID_STATIC, _("A:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText60, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl61 = new wxTextCtrl( itemDialog1, ID_J_A_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl61, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton62 = new wxButton( itemDialog1, ID_J_A_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton62, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText63 = new wxStaticText( itemDialog1, wxID_STATIC, _("B:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText63, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl64 = new wxTextCtrl( itemDialog1, ID_J_B_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl64, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton65 = new wxButton( itemDialog1, ID_J_B_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton65, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText66 = new wxStaticText( itemDialog1, wxID_STATIC, _("Start:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText66, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl67 = new wxTextCtrl( itemDialog1, ID_J_START_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl67, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton68 = new wxButton( itemDialog1, ID_J_START_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton68, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText69 = new wxStaticText( itemDialog1, wxID_STATIC, _("Select:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText69, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl70 = new wxTextCtrl( itemDialog1, ID_J_SELECT_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl70, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton71 = new wxButton( itemDialog1, ID_J_SELECT_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton71, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticText* itemStaticText72 = new wxStaticText( itemDialog1, wxID_STATIC, _("Close/open lid:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemStaticText72, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5); - - wxTextCtrl* itemTextCtrl73 = new wxTextCtrl( itemDialog1, ID_J_LID_S, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); - itemFlexGridSizer47->Add(itemTextCtrl73, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxButton* itemButton74 = new wxButton( itemDialog1, ID_J_LID_C, _("Change"), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer47->Add(itemButton74, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - wxStaticBox* itemStaticBoxSizer75Static = new wxStaticBox(itemDialog1, wxID_ANY, _("D-Pad")); - wxStaticBoxSizer* itemStaticBoxSizer75 = new wxStaticBoxSizer(itemStaticBoxSizer75Static, wxHORIZONTAL); - itemStaticBoxSizer45->Add(itemStaticBoxSizer75, 0, wxALIGN_LEFT|wxALL, 5); - - wxRadioButton* itemRadioButton76 = new wxRadioButton( itemDialog1, ID_DPAD_OPT1, _("POV hat"), wxDefaultPosition, wxDefaultSize, 0 ); - itemRadioButton76->SetValue(false); - itemStaticBoxSizer75->Add(itemRadioButton76, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxRadioButton* itemRadioButton77 = new wxRadioButton( itemDialog1, ID_DPAD_OPT2, _("X/Y axis"), wxDefaultPosition, wxDefaultSize, 0 ); - itemRadioButton77->SetValue(false); - itemStaticBoxSizer75->Add(itemRadioButton77, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxRadioButton* itemRadioButton78 = new wxRadioButton( itemDialog1, ID_DPAD_OPT3, _("Both"), wxDefaultPosition, wxDefaultSize, 0 ); - itemRadioButton78->SetValue(false); - itemStaticBoxSizer75->Add(itemRadioButton78, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxBoxSizer* itemBoxSizer79 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer2->Add(itemBoxSizer79, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - wxButton* itemButton80 = new wxButton( itemDialog1, wxID_DEFAULT, _("Default"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer79->Add(itemButton80, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5); - - itemBoxSizer79->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxButton* itemButton82 = new wxButton( itemDialog1, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); - itemButton82->SetDefault(); - itemBoxSizer79->Add(itemButton82, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); - - wxButton* itemButton83 = new wxButton( itemDialog1, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer79->Add(itemButton83, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); - - wxButton* itemButton84 = new wxButton( itemDialog1, wxID_APPLY, _("&Apply"), wxDefaultPosition, wxDefaultSize, 0 ); - itemButton84->Enable(false); - itemBoxSizer79->Add(itemButton84, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5); - -////@end wxControlsConfigDialog content construction -} - - -/* - * Should we show tooltips? - */ - -bool wxControlsConfigDialog::ShowToolTips() -{ - return true; -} - -/* - * Get bitmap resources - */ - -wxBitmap wxControlsConfigDialog::GetBitmapResource( const wxString& name ) -{ - // Bitmap retrieval -////@begin wxControlsConfigDialog bitmap retrieval - wxUnusedVar(name); - return wxNullBitmap; -////@end wxControlsConfigDialog bitmap retrieval -} - -/* - * Get icon resources - */ - -wxIcon wxControlsConfigDialog::GetIconResource( const wxString& name ) -{ - // Icon retrieval -////@begin wxControlsConfigDialog icon retrieval - wxUnusedVar(name); - return wxNullIcon; -////@end wxControlsConfigDialog icon retrieval -} - - -/* - * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_K_L_C - */ - -void wxControlsConfigDialog::OnChangeKeyboardMapping( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_K_L_C in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_K_L_C in wxControlsConfigDialog. -} - - -/* - * wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_JOYSTICKIDX - */ - -void wxControlsConfigDialog::OnJoystickidxSelected( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_JOYSTICKIDX in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_JOYSTICKIDX in wxControlsConfigDialog. -} - - -/* - * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_J_L_C - */ - -void wxControlsConfigDialog::OnChangeJoystickMapping( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_J_L_C in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_J_L_C in wxControlsConfigDialog. -} - - -/* - * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_DPAD_OPT1 - */ - -void wxControlsConfigDialog::OnChangeDPadMode( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_DPAD_OPT1 in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_DPAD_OPT1 in wxControlsConfigDialog. -} - - -/* - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_DEFAULT - */ - -void wxControlsConfigDialog::OnDefaultClick( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_DEFAULT in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_DEFAULT in wxControlsConfigDialog. -} - - -/* - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK - */ - -void wxControlsConfigDialog::OnOkClick( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK in wxControlsConfigDialog. -} - - -/* - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL - */ - -void wxControlsConfigDialog::OnCancelClick( wxCommandEvent& event ) -{ - Destroy(); -} - - -/* - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_APPLY - */ - -void wxControlsConfigDialog::OnApplyClick( wxCommandEvent& event ) -{ -////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_APPLY in wxControlsConfigDialog. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_APPLY in wxControlsConfigDialog. -} - diff -Nru desmume-0.9.9/src/wxdlg/wxcontrolsconfigdialog.h desmume-0.9.10/src/wxdlg/wxcontrolsconfigdialog.h --- desmume-0.9.9/src/wxdlg/wxcontrolsconfigdialog.h 2013-05-01 18:47:30.000000000 +0000 +++ desmume-0.9.10/src/wxdlg/wxcontrolsconfigdialog.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxcontrolsconfigdialog.h -// Purpose: -// Author: -// Modified by: -// Created: 09/07/2010 15:27:00 -// RCS-ID: -// Copyright: -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WXCONTROLSCONFIGDIALOG_H_ -#define _WXCONTROLSCONFIGDIALOG_H_ - - -/*! - * Includes - */ - -////@begin includes -////@end includes - -/*! - * Forward declarations - */ - -////@begin forward declarations -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define ID_WXCONTROLSCONFIGDIALOG 10010 -#define ID_K_L_S 10011 -#define ID_K_L_C 10012 -#define ID_K_R_S 10013 -#define ID_K_R_C 10014 -#define ID_K_X_S 10015 -#define ID_K_X_C 10016 -#define ID_K_Y_S 10017 -#define ID_K_Y_C 10018 -#define ID_K_A_S 10019 -#define ID_K_A_C 10020 -#define ID_K_B_S 10021 -#define ID_K_B_C 10022 -#define ID_K_START_S 10023 -#define ID_K_START_C 10024 -#define ID_K_SELECT_S 10025 -#define ID_K_SELECT_C 10026 -#define ID_K_UP_S 10027 -#define ID_K_UP_C 10028 -#define ID_K_DOWN_S 10029 -#define ID_K_DOWN_C 10030 -#define ID_K_LEFT_S 10031 -#define ID_K_LEFT_C 10032 -#define ID_K_RIGHT_S 10033 -#define ID_K_RIGHT_C 10034 -#define ID_K_LID_S 10035 -#define ID_K_LID_C 10036 -#define ID_JOYSTICKIDX 10058 -#define ID_J_L_S 10037 -#define ID_J_L_C 10038 -#define ID_J_R_S 10039 -#define ID_J_R_C 10040 -#define ID_J_X_S 10041 -#define ID_J_X_C 10042 -#define ID_J_Y_S 10043 -#define ID_J_Y_C 10044 -#define ID_J_A_S 10045 -#define ID_J_A_C 10046 -#define ID_J_B_S 10047 -#define ID_J_B_C 10048 -#define ID_J_START_S 10049 -#define ID_J_START_C 10050 -#define ID_J_SELECT_S 10051 -#define ID_J_SELECT_C 10052 -#define ID_J_LID_S 10053 -#define ID_J_LID_C 10054 -#define ID_DPAD_OPT1 10055 -#define ID_DPAD_OPT2 10056 -#define ID_DPAD_OPT3 10057 -#define SYMBOL_WXCONTROLSCONFIGDIALOG_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL -#define SYMBOL_WXCONTROLSCONFIGDIALOG_TITLE _("Controls configuration") -#define SYMBOL_WXCONTROLSCONFIGDIALOG_IDNAME ID_WXCONTROLSCONFIGDIALOG -#define SYMBOL_WXCONTROLSCONFIGDIALOG_SIZE wxSize(400, 300) -#define SYMBOL_WXCONTROLSCONFIGDIALOG_POSITION wxDefaultPosition -////@end control identifiers - - -/*! - * wxControlsConfigDialog class declaration - */ - -class wxControlsConfigDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS( wxControlsConfigDialog ) - DECLARE_EVENT_TABLE() - -public: - /// Constructors - wxControlsConfigDialog(); - wxControlsConfigDialog( wxWindow* parent, wxWindowID id = SYMBOL_WXCONTROLSCONFIGDIALOG_IDNAME, const wxString& caption = SYMBOL_WXCONTROLSCONFIGDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXCONTROLSCONFIGDIALOG_POSITION, const wxSize& size = SYMBOL_WXCONTROLSCONFIGDIALOG_SIZE, long style = SYMBOL_WXCONTROLSCONFIGDIALOG_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXCONTROLSCONFIGDIALOG_IDNAME, const wxString& caption = SYMBOL_WXCONTROLSCONFIGDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXCONTROLSCONFIGDIALOG_POSITION, const wxSize& size = SYMBOL_WXCONTROLSCONFIGDIALOG_SIZE, long style = SYMBOL_WXCONTROLSCONFIGDIALOG_STYLE ); - - /// Destructor - ~wxControlsConfigDialog(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - -////@begin wxControlsConfigDialog event handler declarations - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_K_L_C - virtual void OnChangeKeyboardMapping( wxCommandEvent& event ); - - /// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_JOYSTICKIDX - virtual void OnJoystickidxSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_J_L_C - virtual void OnChangeJoystickMapping( wxCommandEvent& event ); - - /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_DPAD_OPT1 - virtual void OnChangeDPadMode( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_DEFAULT - virtual void OnDefaultClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK - virtual void OnOkClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL - virtual void OnCancelClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_APPLY - virtual void OnApplyClick( wxCommandEvent& event ); - -////@end wxControlsConfigDialog event handler declarations - -////@begin wxControlsConfigDialog member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxControlsConfigDialog member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxControlsConfigDialog member variables -////@end wxControlsConfigDialog member variables -}; - -#endif - // _WXCONTROLSCONFIGDIALOG_H_ diff -Nru desmume-0.9.9/src/wxdlg/wxdlg3dViewer.cpp desmume-0.9.10/src/wxdlg/wxdlg3dViewer.cpp --- desmume-0.9.9/src/wxdlg/wxdlg3dViewer.cpp 2013-05-01 18:47:30.000000000 +0000 +++ desmume-0.9.10/src/wxdlg/wxdlg3dViewer.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,422 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxdlg3dViewer.h.cpp -// Purpose: -// Author: -// Modified by: -// Created: 12/12/2009 15:45:31 -// RCS-ID: -// Copyright: -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#include "types.h" - -#ifdef HAVE_WX - -// Generated by DialogBlocks (unregistered), 12/12/2009 15:45:31 - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -////@begin includes -#include "wx/imaglist.h" -////@end includes - -#include "wxdlg3dViewer.h" - -////@begin XPM images -////@end XPM images - - -/* - * wxdlg3dViewer type definition - */ - -IMPLEMENT_DYNAMIC_CLASS( wxdlg3dViewer, wxDialog ) - - -/* - * wxdlg3dViewer event table definition - */ - -BEGIN_EVENT_TABLE( wxdlg3dViewer, wxDialog ) - -////@begin wxdlg3dViewer event table entries - EVT_CLOSE( wxdlg3dViewer::OnCloseWindow ) - - EVT_CHECKBOX( ID_CheckMaterialInterpolate, wxdlg3dViewer::OnMaterialInterpolateClick ) - - EVT_LIST_ITEM_SELECTED( ID_ListPolys, wxdlg3dViewer::OnListPolysSelected ) - -////@end wxdlg3dViewer event table entries - -END_EVENT_TABLE() - - -/* - * wxdlg3dViewer constructors - */ - -wxdlg3dViewer::wxdlg3dViewer() -{ - Init(); -} - -wxdlg3dViewer::wxdlg3dViewer( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) -{ - Init(); - Create(parent, id, caption, pos, size, style); - listPolys->callbacks = this; - listPolys->InsertColumn(0,wxT("polys")); -} - - -/* - * x creator - */ - -bool wxdlg3dViewer::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) -{ -////@begin wxdlg3dViewer creation - SetExtraStyle(wxWS_EX_BLOCK_EVENTS); - wxDialog::Create( parent, id, caption, pos, size, style ); - - CreateControls(); - if (GetSizer()) - { - GetSizer()->SetSizeHints(this); - } - Centre(); -////@end wxdlg3dViewer creation - return true; -} - - -/* - * wxdlg3dViewer destructor - */ - -wxdlg3dViewer::~wxdlg3dViewer() -{ -////@begin wxdlg3dViewer destruction -////@end wxdlg3dViewer destruction -} - - -/* - * Member initialisation - */ - -void wxdlg3dViewer::Init() -{ -////@begin wxdlg3dViewer member initialisation - checkMaterialInterpolate = NULL; - panelTexture = NULL; - panelViewport = NULL; - labelFrameCounter = NULL; - labelUserPolycount = NULL; - labelFinalPolycount = NULL; - listPolys = NULL; - tree = NULL; -////@end wxdlg3dViewer member initialisation -} - - -/* - * Control creation for x - */ - -void wxdlg3dViewer::CreateControls() -{ -////@begin wxdlg3dViewer content construction - wxdlg3dViewer* itemDialog1 = this; - - wxFlexGridSizer* itemFlexGridSizer2 = new wxFlexGridSizer(1, 0, 0, 0); - itemFlexGridSizer2->AddGrowableCol(0); - itemFlexGridSizer2->AddGrowableCol(1); - itemFlexGridSizer2->AddGrowableCol(2); - itemFlexGridSizer2->AddGrowableCol(3); - itemFlexGridSizer2->AddGrowableCol(4); - itemDialog1->SetSizer(itemFlexGridSizer2); - - wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL); - itemFlexGridSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALIGN_TOP|wxALL, 5); - - wxStaticBox* itemStaticBoxSizer4Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Display optionsss")); - wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer4Static, wxVERTICAL); - itemBoxSizer3->Add(itemStaticBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - checkMaterialInterpolate = new wxCheckBox( itemDialog1, ID_CheckMaterialInterpolate, _("Material clip interpolation"), wxDefaultPosition, wxDefaultSize, 0 ); - checkMaterialInterpolate->SetValue(false); - itemStaticBoxSizer4->Add(checkMaterialInterpolate, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - wxCheckBox* itemCheckBox6 = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Something else"), wxDefaultPosition, wxDefaultSize, 0 ); - itemCheckBox6->SetValue(false); - itemStaticBoxSizer4->Add(itemCheckBox6, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - wxFlexGridSizer* itemFlexGridSizer8 = new wxFlexGridSizer(0, 2, 0, 0); - itemBoxSizer3->Add(itemFlexGridSizer8, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - panelTexture = new wxWindow( itemDialog1, ID_PanelTexture, wxDefaultPosition, wxSize(64, 64), wxSIMPLE_BORDER ); - itemFlexGridSizer8->Add(panelTexture, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxStaticText* itemStaticText10 = new wxStaticText( itemDialog1, wxID_STATIC, _("3dviewer is unstable.\ndont use it."), wxDefaultPosition, wxDefaultSize, 0 ); - itemFlexGridSizer8->Add(itemStaticText10, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); - - panelViewport = new wxWindow( itemDialog1, ID_PanelViewport, wxDefaultPosition, wxSize(256, 192), wxSIMPLE_BORDER ); - itemFlexGridSizer2->Add(panelViewport, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxFlexGridSizer* itemFlexGridSizer12 = new wxFlexGridSizer(3, 1, 0, 0); - itemFlexGridSizer12->AddGrowableRow(1); - itemFlexGridSizer2->Add(itemFlexGridSizer12, 1, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); - - wxStaticBox* itemStaticBoxSizer13Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Choose One")); - wxStaticBoxSizer* itemStaticBoxSizer13 = new wxStaticBoxSizer(itemStaticBoxSizer13Static, wxVERTICAL); - itemFlexGridSizer12->Add(itemStaticBoxSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_BOTTOM|wxALL, 5); - - wxRadioButton* itemRadioButton14 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON, _("Final Polylist"), wxDefaultPosition, wxDefaultSize, 0 ); - itemRadioButton14->SetValue(true); - itemStaticBoxSizer13->Add(itemRadioButton14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - wxRadioButton* itemRadioButton15 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON1, _("User Polylist"), wxDefaultPosition, wxDefaultSize, 0 ); - itemRadioButton15->SetValue(false); - itemRadioButton15->Enable(false); - itemStaticBoxSizer13->Add(itemRadioButton15, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - wxRadioButton* itemRadioButton16 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON2, _("Display List"), wxDefaultPosition, wxDefaultSize, 0 ); - itemRadioButton16->SetValue(false); - itemRadioButton16->Enable(false); - itemStaticBoxSizer13->Add(itemRadioButton16, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - itemFlexGridSizer12->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxStaticBox* itemStaticBoxSizer18Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Statistics")); - wxStaticBoxSizer* itemStaticBoxSizer18 = new wxStaticBoxSizer(itemStaticBoxSizer18Static, wxVERTICAL); - itemFlexGridSizer12->Add(itemStaticBoxSizer18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); - - labelFrameCounter = new wxStaticText( itemDialog1, wxID_STATIC, _("Frame: 9999999"), wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer18->Add(labelFrameCounter, 0, wxALIGN_LEFT|wxALL, 1); - - labelUserPolycount = new wxStaticText( itemDialog1, wxID_STATIC, _("User Polys: 999999"), wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer18->Add(labelUserPolycount, 0, wxALIGN_LEFT|wxALL, 1); - - labelFinalPolycount = new wxStaticText( itemDialog1, wxID_STATIC, _("Final Polys: "), wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer18->Add(labelFinalPolycount, 0, wxALIGN_LEFT|wxALL, 1); - - wxStaticLine* itemStaticLine22 = new wxStaticLine( itemDialog1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - itemFlexGridSizer2->Add(itemStaticLine22, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); - - listPolys = new wxDesmumeListCtrl( itemDialog1, ID_ListPolys, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_VIRTUAL ); - itemFlexGridSizer2->Add(listPolys, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); - - tree = new wxTreeCtrl( itemDialog1, ID_Tree, wxDefaultPosition, wxSize(99, 99), wxTR_HAS_BUTTONS |wxTR_HIDE_ROOT|wxTR_ROW_LINES|wxTR_SINGLE ); - itemFlexGridSizer2->Add(tree, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); - - // Connect events and objects - panelTexture->Connect(ID_PanelTexture, wxEVT_PAINT, wxPaintEventHandler(wxdlg3dViewer::OnPaintPanelTexture), NULL, this); - panelTexture->Connect(ID_PanelTexture, wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxdlg3dViewer::OnDoNotEraseBackground), NULL, this); - panelViewport->Connect(ID_PanelViewport, wxEVT_PAINT, wxPaintEventHandler(wxdlg3dViewer::OnPanelPaint), NULL, this); - panelViewport->Connect(ID_PanelViewport, wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxdlg3dViewer::OnDoNotEraseBackground), NULL, this); -////@end wxdlg3dViewer content construction -} - - -/* - * Should we show tooltips? - */ - -bool wxdlg3dViewer::ShowToolTips() -{ - return true; -} - -/* - * Get bitmap resources - */ - -wxBitmap wxdlg3dViewer::GetBitmapResource( const wxString& name ) -{ - // Bitmap retrieval -////@begin wxdlg3dViewer bitmap retrieval - wxUnusedVar(name); - return wxNullBitmap; -////@end wxdlg3dViewer bitmap retrieval -} - -/* - * Get icon resources - */ - -wxIcon wxdlg3dViewer::GetIconResource( const wxString& name ) -{ - // Icon retrieval -////@begin wxdlg3dViewer icon retrieval - wxUnusedVar(name); - return wxNullIcon; -////@end wxdlg3dViewer icon retrieval -} - - -/* - * wxEVT_CLOSE_WINDOW event handler for ID_X - */ - -void wxdlg3dViewer::OnCloseWindow( wxCloseEvent& event ) -{ - - event.Skip(); - Destroy(); -} - - -/* - * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_MATERIALINTERPOLATE - */ - -void wxdlg3dViewer::OnMaterialInterpolateClick( wxCommandEvent& event ) -{ - RepaintPanel(); -} - - -/* - * wxEVT_PAINT event handler for ID_PANEL - */ - -void wxdlg3dViewer::OnPanelPaint( wxPaintEvent& event ) -{ - _OnPaintPanel(event); -} - - - - -/* - * wxEVT_ERASE_BACKGROUND event handler for ID_PANEL - */ - -void wxdlg3dViewer::OnDoNotEraseBackground( wxEraseEvent& event ) -{ - //blank to block background clearing -} - - - -/* - * wxDesmumeListCtrl type definition - */ - -IMPLEMENT_DYNAMIC_CLASS( wxDesmumeListCtrl, wxListCtrl ) - - -/* - * wxDesmumeListCtrl event table definition - */ - -BEGIN_EVENT_TABLE( wxDesmumeListCtrl, wxListCtrl ) - -////@begin wxDesmumeListCtrl event table entries -////@end wxDesmumeListCtrl event table entries - -END_EVENT_TABLE() - - -/* - * wxDesmumeListCtrl constructors - */ - -wxDesmumeListCtrl::wxDesmumeListCtrl() -{ - Init(); -} - -wxDesmumeListCtrl::wxDesmumeListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator) -{ - Init(); - Create(parent, id, pos, size, style, validator); -} - - -/* - * wxDesmumeListCtrl creator - */ - -bool wxDesmumeListCtrl::Create(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator) -{ -////@begin wxDesmumeListCtrl creation - wxListCtrl::Create(parent, id, pos, size, style, validator); - CreateControls(); -////@end wxDesmumeListCtrl creation - return true; -} - - -/* - * wxDesmumeListCtrl destructor - */ - -wxDesmumeListCtrl::~wxDesmumeListCtrl() -{ -////@begin wxDesmumeListCtrl destruction -////@end wxDesmumeListCtrl destruction -} - - -/* - * Member initialisation - */ - -void wxDesmumeListCtrl::Init() -{ -////@begin wxDesmumeListCtrl member initialisation -////@end wxDesmumeListCtrl member initialisation -} - - -/* - * Control creation for wxDesmumeListCtrl - */ - -void wxDesmumeListCtrl::CreateControls() -{ -////@begin wxDesmumeListCtrl content construction -////@end wxDesmumeListCtrl content construction -} - - -/* - * wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_LISTPOLYS - */ - -void wxdlg3dViewer::OnListPolysSelected( wxListEvent& event ) -{ -////@begin wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_LISTPOLYS in wxdlg3dViewer. - // Before editing this code, remove the block markers. - event.Skip(); -////@end wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_LISTPOLYS in wxdlg3dViewer. -} - - -/* - * wxEVT_PAINT event handler for ID_PanelTexture - */ - -void wxdlg3dViewer::OnPaintPanelTexture( wxPaintEvent& event ) -{ -////@begin wxEVT_PAINT event handler for ID_PanelTexture in wxdlg3dViewer. - // Before editing this code, remove the block markers. - wxPaintDC dc(wxDynamicCast(event.GetEventObject(), wxWindow)); -////@end wxEVT_PAINT event handler for ID_PanelTexture in wxdlg3dViewer. -} - -#endif //HAVE_WX diff -Nru desmume-0.9.9/src/wxdlg/wxdlg3dViewer.h desmume-0.9.10/src/wxdlg/wxdlg3dViewer.h --- desmume-0.9.9/src/wxdlg/wxdlg3dViewer.h 2013-05-01 18:47:30.000000000 +0000 +++ desmume-0.9.10/src/wxdlg/wxdlg3dViewer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,195 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxdlg3dviewer.h -// Purpose: -// Author: -// Modified by: -// Created: 12/12/2009 15:45:31 -// RCS-ID: -// Copyright: -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// Generated by DialogBlocks (unregistered), 12/12/2009 15:45:31 - -#ifndef _WXDLG3DVIEWER_H_ -#define _WXDLG3DVIEWER_H_ - - -/*! - * Includes - */ - -////@begin includes -#include "wx/statline.h" -#include "wx/listctrl.h" -#include "wx/treectrl.h" -////@end includes - -class IListCtrlCallbacks -{ -public: - virtual wxString OnGetItemText(const wxListCtrl* list, long item, long column) const = 0; -}; - - -/*! - * Forward declarations - */ - -////@begin forward declarations -class wxWindow; -class wxDesmumeListCtrl; -class wxTreeCtrl; -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define ID_X 10000 -#define ID_CheckMaterialInterpolate 10004 -#define ID_CHECKBOX1 10008 -#define ID_PanelTexture 10001 -#define ID_PanelViewport 10002 -#define ID_RADIOBUTTON 10005 -#define ID_RADIOBUTTON1 10006 -#define ID_RADIOBUTTON2 10007 -#define ID_ListPolys 10009 -#define ID_Tree 10003 -#define SYMBOL_WXDLG3DVIEWER_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxDIALOG_NO_PARENT|wxCLOSE_BOX|wxTAB_TRAVERSAL -#define SYMBOL_WXDLG3DVIEWER_TITLE _("3D Viewer") -#define SYMBOL_WXDLG3DVIEWER_IDNAME ID_X -#define SYMBOL_WXDLG3DVIEWER_SIZE wxSize(399, 300) -#define SYMBOL_WXDLG3DVIEWER_POSITION wxDefaultPosition -#define SYMBOL_WXDESMUMELISTCTRL_STYLE wxLC_REPORT|wxLC_VIRTUAL -#define SYMBOL_WXDESMUMELISTCTRL_IDNAME ID_ListPolys -#define SYMBOL_WXDESMUMELISTCTRL_SIZE wxDefaultSize -#define SYMBOL_WXDESMUMELISTCTRL_POSITION wxDefaultPosition -////@end control identifiers - - -/*! - * wxdlg3dViewer class declaration - */ - -class wxdlg3dViewer: public wxDialog, public IListCtrlCallbacks -{ - DECLARE_DYNAMIC_CLASS( wxdlg3dViewer ) - DECLARE_EVENT_TABLE() - -public: - /// Constructors - wxdlg3dViewer(); - wxdlg3dViewer( wxWindow* parent, wxWindowID id = SYMBOL_WXDLG3DVIEWER_IDNAME, const wxString& caption = SYMBOL_WXDLG3DVIEWER_TITLE, const wxPoint& pos = SYMBOL_WXDLG3DVIEWER_POSITION, const wxSize& size = SYMBOL_WXDLG3DVIEWER_SIZE, long style = SYMBOL_WXDLG3DVIEWER_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXDLG3DVIEWER_IDNAME, const wxString& caption = SYMBOL_WXDLG3DVIEWER_TITLE, const wxPoint& pos = SYMBOL_WXDLG3DVIEWER_POSITION, const wxSize& size = SYMBOL_WXDLG3DVIEWER_SIZE, long style = SYMBOL_WXDLG3DVIEWER_STYLE ); - - /// Destructor - ~wxdlg3dViewer(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - virtual wxString OnGetItemText(const wxListCtrl* list, long item, long column) const { - return wxT(""); - } - virtual void RepaintPanel() {} - virtual void _OnPaintPanel( wxPaintEvent& event ) {}; - -////@begin wxdlg3dViewer event handler declarations - - /// wxEVT_CLOSE_WINDOW event handler for ID_X - virtual void OnCloseWindow( wxCloseEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CheckMaterialInterpolate - virtual void OnMaterialInterpolateClick( wxCommandEvent& event ); - - /// wxEVT_PAINT event handler for ID_PanelTexture - virtual void OnPaintPanelTexture( wxPaintEvent& event ); - - /// wxEVT_ERASE_BACKGROUND event handler for ID_PanelTexture - virtual void OnDoNotEraseBackground( wxEraseEvent& event ); - - /// wxEVT_PAINT event handler for ID_PanelViewport - virtual void OnPanelPaint( wxPaintEvent& event ); - - /// wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_ListPolys - virtual void OnListPolysSelected( wxListEvent& event ); - -////@end wxdlg3dViewer event handler declarations - -////@begin wxdlg3dViewer member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxdlg3dViewer member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxdlg3dViewer member variables - wxCheckBox* checkMaterialInterpolate; - wxWindow* panelTexture; - wxWindow* panelViewport; - wxStaticText* labelFrameCounter; - wxStaticText* labelUserPolycount; - wxStaticText* labelFinalPolycount; - wxDesmumeListCtrl* listPolys; - wxTreeCtrl* tree; -////@end wxdlg3dViewer member variables -}; - -/*! - * wxDesmumeListCtrl class declaration - */ - -class wxDesmumeListCtrl: public wxListCtrl -{ - DECLARE_DYNAMIC_CLASS( wxDesmumeListCtrl ) - DECLARE_EVENT_TABLE() - -public: - IListCtrlCallbacks* callbacks; - - virtual wxString OnGetItemText(long item, long column) const { - return callbacks->OnGetItemText(this,item,column); - } - - /// Constructors - wxDesmumeListCtrl(); - wxDesmumeListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator); - - /// Creation - bool Create(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator); - - /// Destructor - ~wxDesmumeListCtrl(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - -////@begin wxDesmumeListCtrl event handler declarations - -////@end wxDesmumeListCtrl event handler declarations - -////@begin wxDesmumeListCtrl member function declarations - -////@end wxDesmumeListCtrl member function declarations - -////@begin wxDesmumeListCtrl member variables -////@end wxDesmumeListCtrl member variables -}; - -#endif - // _X_H_ diff -Nru desmume-0.9.9/wxwin.m4 desmume-0.9.10/wxwin.m4 --- desmume-0.9.9/wxwin.m4 2013-05-01 18:49:01.000000000 +0000 +++ desmume-0.9.10/wxwin.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,366 +0,0 @@ -dnl --------------------------------------------------------------------------- -dnl Macros for wxWidgets detection. Typically used in configure.in as: -dnl -dnl AC_ARG_ENABLE(...) -dnl AC_ARG_WITH(...) -dnl ... -dnl AM_OPTIONS_WXCONFIG -dnl ... -dnl ... -dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) -dnl if test "$wxWin" != 1; then -dnl AC_MSG_ERROR([ -dnl wxWidgets must be installed on your system -dnl but wx-config script couldn't be found. -dnl -dnl Please check that wx-config is in path, the directory -dnl where wxWidgets libraries are installed (returned by -dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or -dnl equivalent variable and wxWidgets version is 2.3.4 or above. -dnl ]) -dnl fi -dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" -dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" -dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" -dnl -dnl LIBS="$LIBS $WX_LIBS" -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl AM_OPTIONS_WXCONFIG -dnl -dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and -dnl --wx-config command line options -dnl --------------------------------------------------------------------------- - -AC_DEFUN([AM_OPTIONS_WXCONFIG], -[ - AC_ARG_WITH(wxdir, - [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH], - [ wx_config_name="$withval/wx-config" - wx_config_args="--inplace"]) - AC_ARG_WITH(wx-config, - [ --with-wx-config=CONFIG wx-config script to use (optional)], - wx_config_name="$withval" ) - AC_ARG_WITH(wx-prefix, - [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)], - wx_config_prefix="$withval", wx_config_prefix="") - AC_ARG_WITH(wx-exec-prefix, - [ --with-wx-exec-prefix=PREFIX - Exec prefix where wxWidgets is installed (optional)], - wx_config_exec_prefix="$withval", wx_config_exec_prefix="") -]) - -dnl Helper macro for checking if wx version is at least $1.$2.$3, set's -dnl wx_ver_ok=yes if it is: -AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], -[ - wx_ver_ok="" - if test "x$WX_VERSION" != x ; then - if test $wx_config_major_version -gt $1; then - wx_ver_ok=yes - else - if test $wx_config_major_version -eq $1; then - if test $wx_config_minor_version -gt $2; then - wx_ver_ok=yes - else - if test $wx_config_minor_version -eq $2; then - if test $wx_config_micro_version -ge $3; then - wx_ver_ok=yes - fi - fi - fi - fi - fi - fi -]) - -dnl --------------------------------------------------------------------------- -dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND -dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) -dnl -dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC -dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME -dnl environment variable to override the default name of the wx-config script -dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this -dnl case the macro won't even waste time on tests for its existence. -dnl -dnl Optional WX-LIBS argument contains comma- or space-separated list of -dnl wxWidgets libraries to link against (it may include contrib libraries). If -dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to -dnl link with all of the core wxWidgets libraries. -dnl -dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config -dnl invocation command in present. It can be used to fine-tune lookup of -dnl best wxWidgets build available. -dnl -dnl Example use: -dnl AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] -dnl [--unicode --debug]) -dnl --------------------------------------------------------------------------- - -dnl -dnl Get the cflags and libraries from the wx-config script -dnl -AC_DEFUN([AM_PATH_WXCONFIG], -[ - dnl do we have wx-config name: it can be wx-config or wxd-config or ... - if test x${WX_CONFIG_NAME+set} != xset ; then - WX_CONFIG_NAME=wx-config - fi - - if test "x$wx_config_name" != x ; then - WX_CONFIG_NAME="$wx_config_name" - fi - - dnl deal with optional prefixes - if test x$wx_config_exec_prefix != x ; then - wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" - WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" - fi - if test x$wx_config_prefix != x ; then - wx_config_args="$wx_config_args --prefix=$wx_config_prefix" - WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" - fi - if test "$cross_compiling" = "yes"; then - wx_config_args="$wx_config_args --host=$host_alias" - fi - - dnl don't search the PATH if WX_CONFIG_NAME is absolute filename - if test -x "$WX_CONFIG_NAME" ; then - AC_MSG_CHECKING(for wx-config) - WX_CONFIG_PATH="$WX_CONFIG_NAME" - AC_MSG_RESULT($WX_CONFIG_PATH) - else - AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") - fi - - if test "$WX_CONFIG_PATH" != "no" ; then - WX_VERSION="" - - min_wx_version=ifelse([$1], ,2.2.1,$1) - if test -z "$5" ; then - AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) - else - AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) - fi - - WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4" - - WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` - wx_config_major_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - wx_config_minor_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - wx_config_micro_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - - wx_requested_major_version=`echo $min_wx_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - wx_requested_minor_version=`echo $min_wx_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - wx_requested_micro_version=`echo $min_wx_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - - _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], - [$wx_requested_minor_version], - [$wx_requested_micro_version]) - - if test -n "$wx_ver_ok"; then - - AC_MSG_RESULT(yes (version $WX_VERSION)) - WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs` - - dnl is this even still appropriate? --static is a real option now - dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is - dnl what the user actually wants, making this redundant at best. - dnl For now keep it in case anyone actually used it in the past. - AC_MSG_CHECKING([for wxWidgets static library]) - WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null` - if test "x$WX_LIBS_STATIC" = "x"; then - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(yes) - fi - - dnl starting with version 2.2.6 wx-config has --cppflags argument - wx_has_cppflags="" - if test $wx_config_major_version -gt 2; then - wx_has_cppflags=yes - else - if test $wx_config_major_version -eq 2; then - if test $wx_config_minor_version -gt 2; then - wx_has_cppflags=yes - else - if test $wx_config_minor_version -eq 2; then - if test $wx_config_micro_version -ge 6; then - wx_has_cppflags=yes - fi - fi - fi - fi - fi - - dnl starting with version 2.7.0 wx-config has --rescomp option - wx_has_rescomp="" - if test $wx_config_major_version -gt 2; then - wx_has_rescomp=yes - else - if test $wx_config_major_version -eq 2; then - if test $wx_config_minor_version -ge 7; then - wx_has_rescomp=yes - fi - fi - fi - if test "x$wx_has_rescomp" = x ; then - dnl cannot give any useful info for resource compiler - WX_RESCOMP= - else - WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` - fi - - if test "x$wx_has_cppflags" = x ; then - dnl no choice but to define all flags like CFLAGS - WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` - WX_CPPFLAGS=$WX_CFLAGS - WX_CXXFLAGS=$WX_CFLAGS - - WX_CFLAGS_ONLY=$WX_CFLAGS - WX_CXXFLAGS_ONLY=$WX_CFLAGS - else - dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS - WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags` - WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags` - WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` - - WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` - WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` - fi - - ifelse([$2], , :, [$2]) - - else - - if test "x$WX_VERSION" = x; then - dnl no wx-config at all - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(no (version $WX_VERSION is not new enough)) - fi - - WX_CFLAGS="" - WX_CPPFLAGS="" - WX_CXXFLAGS="" - WX_LIBS="" - WX_LIBS_STATIC="" - WX_RESCOMP="" - ifelse([$3], , :, [$3]) - - fi - else - - WX_CFLAGS="" - WX_CPPFLAGS="" - WX_CXXFLAGS="" - WX_LIBS="" - WX_LIBS_STATIC="" - WX_RESCOMP="" - - ifelse([$3], , :, [$3]) - - fi - - AC_SUBST(WX_CPPFLAGS) - AC_SUBST(WX_CFLAGS) - AC_SUBST(WX_CXXFLAGS) - AC_SUBST(WX_CFLAGS_ONLY) - AC_SUBST(WX_CXXFLAGS_ONLY) - AC_SUBST(WX_LIBS) - AC_SUBST(WX_LIBS_STATIC) - AC_SUBST(WX_VERSION) - AC_SUBST(WX_RESCOMP) -]) - -dnl --------------------------------------------------------------------------- -dnl Get information on the wxrc program for making C++, Python and xrs -dnl resource files. -dnl -dnl AC_ARG_ENABLE(...) -dnl AC_ARG_WITH(...) -dnl ... -dnl AM_OPTIONS_WXCONFIG -dnl ... -dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) -dnl if test "$wxWin" != 1; then -dnl AC_MSG_ERROR([ -dnl wxWidgets must be installed on your system -dnl but wx-config script couldn't be found. -dnl -dnl Please check that wx-config is in path, the directory -dnl where wxWidgets libraries are installed (returned by -dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or -dnl equivalent variable and wxWidgets version is 2.6.0 or above. -dnl ]) -dnl fi -dnl -dnl AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0]) -dnl if test "x$HAVE_WXRC" != x1; then -dnl AC_MSG_ERROR([ -dnl The wxrc program was not installed or not found. -dnl -dnl Please check the wxWidgets installation. -dnl ]) -dnl fi -dnl -dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" -dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" -dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" -dnl -dnl LDFLAGS="$LDFLAGS $WX_LIBS" -dnl --------------------------------------------------------------------------- - - - -dnl --------------------------------------------------------------------------- -dnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) -dnl -dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS -dnl resources. The variable WXRC will be set and substituted in the configure -dnl script and Makefiles. -dnl -dnl Example use: -dnl AM_PATH_WXRC([wxrc=1], [wxrc=0]) -dnl --------------------------------------------------------------------------- - -dnl -dnl wxrc program from the wx-config script -dnl -AC_DEFUN([AM_PATH_WXRC], -[ - AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) - - if test "x$WX_CONFIG_NAME" = x; then - AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) - else - - AC_MSG_CHECKING([for wxrc]) - - if test "x$WXRC" = x ; then - dnl wx-config --utility is a new addition to wxWidgets: - _WX_PRIVATE_CHECK_VERSION(2,5,3) - if test -n "$wx_ver_ok"; then - WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` - fi - fi - - if test "x$WXRC" = x ; then - AC_MSG_RESULT([not found]) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT([$WXRC]) - ifelse([$1], , :, [$1]) - fi - - AC_SUBST(WXRC) - fi -])