diff --git a/libmupen64plus/mupen64plus-rsp-hle/projects/msvc11/mupen64plus-rsp-hle.vcxproj b/libmupen64plus/mupen64plus-rsp-hle/projects/msvc11/mupen64plus-rsp-hle.vcxproj
index 19b49fdd23..ed1a35b1ac 100644
--- a/libmupen64plus/mupen64plus-rsp-hle/projects/msvc11/mupen64plus-rsp-hle.vcxproj
+++ b/libmupen64plus/mupen64plus-rsp-hle/projects/msvc11/mupen64plus-rsp-hle.vcxproj
@@ -96,7 +96,7 @@
MachineX86
- xcopy /y $(OutDir)$(TargetName)$(TargetExt) $(TargetDir)..\..\..\..\..\output\dll\
+ xcopy /y "$(OutDir)$(TargetName)$(TargetExt)" "$(TargetDir)..\..\..\..\..\output\dll\"
diff --git a/libmupen64plus/mupen64plus-ui-console/INSTALL b/libmupen64plus/mupen64plus-ui-console/INSTALL
deleted file mode 100644
index 51c97cea7d..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/INSTALL
+++ /dev/null
@@ -1,26 +0,0 @@
-Mupen64Plus-UI-Console INSTALL
-------------------------------
-
-This text file was written to explain the installation process of the
-Mupen64Plus-UI-Console front-end module.
-
-If this module is part of a Mupen64Plus source code bundle, the user should run
-the "m64p_install.sh" script in the root of the unzipped bundle to install all
-of the included modules in the bundle.
-
-If this module is a standalone source code release, you should build the program
-from source code and install it via the makefile, like this:
-
-$ cd projects/unix
-$ make all
-$ sudo make install
-
-If you want to build the Mupen64Plus-UI-Console for installation in a home
-folder for a single user, you may build it like this (replacing
-with your desired local installation path):
-
-$ cd projects/unix
-$ make all COREDIR= PLUGINDIR=
-$ make install BINDIR= MANDIR=
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/README b/libmupen64plus/mupen64plus-ui-console/README
deleted file mode 100644
index 6c755dd4ba..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/README
+++ /dev/null
@@ -1,52 +0,0 @@
-Mupen64Plus-UI-Console README
------------------------------
-
-README Sections
- 1. Command-line options
-
-1. Command-line options
-------------------------
-
-Run 'mupen64plus --help' for a complete list of command-line options:
-
- $ mupen64plus --help
-Usage: mupen64plus [parameter(s)] [romfile]
-
-Parameters:
- --noosd : disable onscreen display
- --osd : enable onscreen display
- --fullscreen : use fullscreen display mode
- --windowed : use windowed display mode
- --resolution (res) : display resolution (640x480, 800x600, 1024x768, etc)
- --nospeedlimit : disable core speed limiter (should be used with dummy audio plugin)
- --cheats (cheat-spec) : enable or list cheat codes for the given rom file
- --corelib (filepath) : use core library (filepath) (can be only filename or full path)
- --configdir (dir) : force configation directory to (dir); should contain mupen64plus.conf
- --datadir (dir) : search for shared data files (.ini files, languages, etc) in (dir)
- --plugindir (dir) : search for plugins in (dir)
- --sshotdir (dir) : set screenshot directory to (dir)
- --gfx (plugin-spec) : use gfx plugin given by (plugin-spec)
- --audio (plugin-spec) : use audio plugin given by (plugin-spec)
- --input (plugin-spec) : use input plugin given by (plugin-spec)
- --rsp (plugin-spec) : use rsp plugin given by (plugin-spec)
- --emumode (mode) : set emu mode to: 0=Pure Interpreter 1=Interpreter 2=DynaRec
- --testshots (list) : take screenshots at frames given in comma-separated (list), then quit
- --set (param-spec) : set a configuration variable, format: ParamSection[ParamName]=Value
- --core-compare-send : use the Core Comparison debugging feature, in data sending mode
- --core-compare-recv : use the Core Comparison debugging feature, in data receiving mode
- --nosaveoptions : do not save the given command-line options in configuration file
- --verbose : print lots of information
- --help : see this help message
-
-(plugin-spec):
- (pluginname) : filename (without path) of plugin to find in plugin directory
- (pluginpath) : full path and filename of plugin
- 'dummy' : use dummy plugin
-
-(cheat-spec):
- 'list' : show all of the available cheat codes
- 'all' : enable all of the available cheat codes
- (codelist) : a comma-separated list of cheat code numbers to enable,
- with dashes to use code variables (ex 1-2 to use cheat 1 option 2)
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/RELEASE b/libmupen64plus/mupen64plus-ui-console/RELEASE
deleted file mode 100644
index ab52f5eb61..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/RELEASE
+++ /dev/null
@@ -1,39 +0,0 @@
-Mupen64Plus-UI-Console RELEASE
-------------------------------
-
-Mupen64Plus-UI-Console Front-End v1.99.5 - March 10, 2012
----------------------------------------------------------
- - New option to disable internal core speed limiter (for benchmarking)
- - Updated Console-UI front-end for new Mupen64plus 2.0 API versioning
- - Added config version number for UI-Console section
- - makefile fixes and improvements
-
-Mupen64Plus-UI-Console Front-End v1.99.4 - November 22, 2010
-------------------------------------------------------------
- - add some parameter checking for --emumode option
- - new cheat file format from spinout182
- - makefile fixes and improvements
-
-Mupen64Plus-UI-Console Front-End v1.99.3 - February 13, 2010
-------------------------------------------------------------
- - New feature: command-line option --set for setting arbitrary configuration variables
- - updated MAN pgae for all the changes made in the 2.0 re-architecture
- - Makefile improvements:
- - added OS type GNU/kFreeBSD
- - add -lpthread to LIBS so that GDB will run the emulator without throwing a warning right after starting
-
-Mupen64Plus-UI-Console Front-End v1.99.2 - January 6, 2010
-------------------------------------------------------------
- - new feature: added MSVC8 project/solution files, minor refactoring for VC compatibility
- - Makefile improvements:
- - throw error if OS/CPU not supported
- - use DESTDIR in install/uninstall paths
- - Allow user-specified CC/CXX/LD paths
-
-Mupen64Plus-UI-Console Front-End v1.99.1 - December 14, 2009
-------------------------------------------------------------
- - Brand new Console-based front-end for Mupen64Plus 2.0
- - New feature: R4300 Core Comparison for debugging
- - New feature: Cheat code support from command-line
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/doc/mupen64plus.6 b/libmupen64plus/mupen64plus-ui-console/doc/mupen64plus.6
deleted file mode 100644
index 00f6dbd4e1..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/doc/mupen64plus.6
+++ /dev/null
@@ -1,188 +0,0 @@
-.TH "mupen64plus" 6
-.SH NAME
-mupen64plus \- Console front\(hyend for the Mupen64Plus N64 emulator
-.SH SYNOPSIS
-.B mupen64plus
-[parameters(s)] [romfile]
-.SH DESCRIPTION
-Mupen64Plus is a plugin\(hybased N64 emulator for Linux/Unix, OSX, and Windows which is capable of accurately playing many games.
-Included are four MIPS R4300 CPU emulators, with dynamic recompilers for 32\(hybit x86 and 64\(hybit amd64 systems, and necessary plugins for audio, graphical rendering (RDP), signal co\(hyprocessor (RSP), and input.
-There are currently two OpenGL video plugins available: the included Rice Video, and Arachnoid (at http://bitbucket.org/wahrhaft/mupen64plus\-video\-arachnoid/).
-
-The most current documentation can be found at the project's homepage:
-
-http://code.google.com/p/mupen64plus
-.TP
-.B \-h, \-\-help
-Print help message.
-.TP
-.B \-\-noosd
-Disable onscreen display.
-.TP
-.B \-\-osd
-Enable onscreen display.
-.TP
-.B \-\-fullscreen
-Run emulator in fullscreen display mode.
-.TP
-.B \-\-windowed
-Run emulator in windowed display mode.
-.TP
-.B \-\-resolution \fRres
-Display resolution (640\(mu480, 800\(mu600, 1024\(mu768, etc)
-.TP
-.B \-\-cheats \fRcheat\(hyspec
-Enable or list cheat codes for the given rom file.
-.TP
-.B \-\-corelib \fRfilepath
-Specifies a filename (optionally with a preceding directory path) to load a specific Mupen64Plus core library.
-.TP
-.B \-\-configdir \fRdirectory
-Specifies a directory to look for the mupen64plus.cfg file.
-Default is \fI~/.config/mupen64plus/\fR.
-.TP
-.B \-\-datadir \fRdirectory
-Specifies a directory to search for shared data files (fonts, cheat codes, .ini files).
-Default is \fIPREFIX/share/mupen64plus/\fR.
-.TP
-.B \-\-plugindir \fRdirectory
-Specifies a directory to search for plugin files.
-Default is \fIPREFIX/lib/mupen64plus/\fR.
-.TP
-.B \-\-sshotdir \fRdirectory
-Specifies a directory to save screenshots captured during gameplay.
-Default is \fI~/.local/share/mupen64plus/screenshot/\fR.
-.TP
-.B \-\-gfx \fRplugin\(hyspec
-Specifies a \fIplugin\(hyspec\fR to select a graphics plugin for use during emulation.
-.TP
-.B \-\-audio \fRplugin\(hyspec
-Specifies a \fIplugin\(hyspec\fR to select an audio plugin for use during emulation.
-.TP
-.B \-\-input \fRplugin\(hyspec
-Specifies a \fIplugin\(hyspec\fR to select an input plugin for use during emulation.
-.TP
-.B \-\-rsp \fRplugin\(hyspec
-Specifies a \fIplugin\(hyspec\fR to select an RSP plugin for use during emulation.
-.TP
-.B \-\-emumode \fRmode
-Specifies which mode the emulator core should run in.
-\fImode\fR should be set to one of the following numbers: 0=Pure Interpreter, 1=Cached Interpreter, 2=Dynamic Recompiler (DynaRec).
-.TP
-.B \-\-testshots \fRlist
-Take screenshots at frames given in the comma\(hyseparated \fIlist\fR, then quit.
-.TP
-.B \-\-core\-compare\-send
-Use the core comparison debugging feature, in data sending mode.
-If the core was not compiled with support for the Core Comparison feature, then the emulator will exit with an error.
-.TP
-.B \-\-core\-compare\-recv
-Use the core comparison debugging feature, in data receiving mode.
-If the core was not compiled with support for the Core Comparison feature, then the emulator will exit with an error.
-.TP
-.B \-\-set \fRparam\(hyspec
-Set the value of a Mupen64Plus configuration parameter.
-This option may be used multiple times.
-The format of \fIparam\(hyspec\fR is Section\(hyName[Param\(hyName]=Value
-.TP
-.B \-\-saveoptions
-Save the given command\(hyline options into the mupen64plus configuration file to use as defaults in the future.
-Since the console front\(hyend needs to load the core library before reading the configuration file, the \-\-corelib option cannot be saved.
-.TP
-.B \-\-verbose
-Print lots of information.
-Useful for debugging but unnecessary for normal use.
-.SH plugin\(hyspec
-.TP
-.B (plugin\-name)
-Filename (without path) of plugin to use.
-Application will search through several directories to look for a matching plugin name.
-.TP
-.B (plugin\-path)
-Full directory path and filename of plugin.
-.TP
-.B 'dummy'
-Use the dummy plugin.
-.SH cheat\(hyspec
-.TP
-.B 'list'
-Show all of the available cheat codes.
-.TP
-.B 'all'
-Enable all of the available cheat codes.
-.TP
-.B (codelist)
-A comma separated list of cheat code numbers to enable.
-.SH KEY COMMANDS
-The following shortcut keys can be used during emulation.
-These are the default key values; nearly all of them may be set to different keys by editing the mupen64plus configuration file.
-.TP
-.B Escape
-Quit the emulator.
-.TP
-.B 0\-9
-Select virtual 'slot' for save/load state.
-.TP
-.B F5
-Save emulator state to current slot.
-.TP
-.B F7
-Load emulator state from current slot.
-.TP
-.B F9
-Reset emulator.
-.TP
-.B F10
-Slow down emulator speed by 5 percent.
-.TP
-.B F11
-Speed up emulator speed by 5 percent.
-.TP
-.B F12
-Take screenshot.
-.TP
-.B Alt\(hyEnter
-Toggle fullscreen mode.
-This is not supported on Windows.
-.TP
-.B p or P
-Pause/continue emulation.
-.TP
-.B m or M
-Mute/unmute sound.
-.TP
-.B f or F
-Fast Forward (playback at 250% normal speed as long as key is pressed).
-.TP
-.B g or G
-Press GameShark button (if cheats are enabled).
-.TP
-.B / or ?
-Advance one frame if paused.
-.TP
-.B [
-Decrease volume.
-.TP
-.B ]
-Increase volume.
-.SH FILES
-The default location for the Mupen64plus configuration file is \fI~/.config/mupen64plus/\fR.
-The default location of the saved screenshots is \fI~/.local/share/mupen64plus/screenshot/\fR.
-The default location of the save states is \fI~/.local/share/mupen64plus/save/\fR.
-.SH BUGS
-To report bugs or make feature requests, use the issue tracker on the Mupen64Plus project site:
-
-http://code.google.com/p/mupen64plus/issues/list
-.SH AUTHORS
-Mupen64Plus was originally started by Richard42 and nmn, and is based on Mupen64 (originally written by Hacktarux).
-
-This man page was written by ebenblues, and updated by Richard42.
-
-.SH COPYRIGHT
-Mupen64Plus is \(co 2008\-2010 The Mupen64Plus Team
-License GPLv2+: GNU GPL version 2 or later
-
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.sln b/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.sln
index 48ac48eb69..5c3079d363 100644
--- a/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.sln
+++ b/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.sln
@@ -1,7 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-ui-console", "mupen64plus-ui-console.vcxproj", "{0E29D9F8-C675-4D21-AF16-AA80EDDB264E}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-core", "..\..\..\mupen64plus-core\projects\msvc11\mupen64plus-core.vcxproj", "{92D3FEB9-2129-41C5-8577-BCD7D961EF41}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-rsp-hle", "..\..\..\mupen64plus-rsp-hle\projects\msvc11\mupen64plus-rsp-hle.vcxproj", "{2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}"
@@ -20,10 +18,6 @@ Global
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Debug|Win32.ActiveCfg = Debug|Win32
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Debug|Win32.Build.0 = Debug|Win32
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Release|Win32.ActiveCfg = Release|Win32
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Release|Win32.Build.0 = Release|Win32
{92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Debug|Win32.ActiveCfg = Debug|Win32
{92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Debug|Win32.Build.0 = Debug|Win32
{92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.vcxproj b/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.vcxproj
deleted file mode 100644
index 62fcf8e747..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/projects/msvc11/mupen64plus-ui-console.vcxproj
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}
- mupen64plusuiconsole
- Win32Proj
-
-
-
- Application
- MultiByte
- true
-
-
- Application
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.40219.1
- $(SolutionDir)$(Configuration)\
- $(Configuration)\
- true
- $(SolutionDir)$(Configuration)\
- $(Configuration)\
- false
- AllRules.ruleset
-
-
- AllRules.ruleset
-
-
-
-
-
- Disabled
- ..\..\..\mupen64plus-core\src\api;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDebugDLL
-
-
- Level3
- EditAndContinue
- CompileAsCpp
- true
-
-
- ..\..\..\mupen64plus-win32-deps\SDL-1.2.14\lib\SDLmain.lib;%(AdditionalDependencies)
- true
- Console
- MachineX86
-
-
- Copying shared data and libraries to build directory...
- copy ..\..\..\mupen64plus-core\data\* "$(OutDir)"
-copy ..\..\..\mupen64plus-video-rice\data\* "$(OutDir)"
-copy ..\..\..\mupen64plus-input-sdl\data\* "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\freetype-2.3.5-1\bin\*.dll "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\libpng-1.2.37\bin\*.dll "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\SDL-1.2.14\lib\*.dll "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\zlib-1.2.3\bin\*.dll "$(OutDir)"
-
-
-
-
-
- ..\..\..\mupen64plus-core\src\api;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
- MultiThreadedDLL
-
-
- Level3
- ProgramDatabase
- CompileAsCpp
- true
-
-
- ..\..\..\mupen64plus-win32-deps\SDL-1.2.14\lib\SDLmain.lib;%(AdditionalDependencies)
- true
- Console
- true
- true
- MachineX86
-
-
- Copying shared data and libraries to build directory...
- copy ..\..\..\mupen64plus-core\data\* "$(OutDir)"
-copy ..\..\..\mupen64plus-video-rice\data\* "$(OutDir)"
-copy ..\..\..\mupen64plus-input-sdl\data\* "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\freetype-2.3.5-1\bin\*.dll "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\libpng-1.2.37\bin\*.dll "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\SDL-1.2.14\lib\*.dll "$(OutDir)"
-copy ..\..\..\mupen64plus-win32-deps\zlib-1.2.3\bin\*.dll "$(OutDir)"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libmupen64plus/mupen64plus-ui-console/projects/msvc8/mupen64plus-ui-console.sln b/libmupen64plus/mupen64plus-ui-console/projects/msvc8/mupen64plus-ui-console.sln
deleted file mode 100644
index 08eb3808c9..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/projects/msvc8/mupen64plus-ui-console.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-ui-console", "mupen64plus-ui-console.vcproj", "{0E29D9F8-C675-4D21-AF16-AA80EDDB264E}"
- ProjectSection(ProjectDependencies) = postProject
- {96969748-EA54-43FC-8103-A346E9AD98E7} = {96969748-EA54-43FC-8103-A346E9AD98E7}
- {7D4AFF6A-B7D9-4C25-975A-038B8079098E} = {7D4AFF6A-B7D9-4C25-975A-038B8079098E}
- {92D3FEB9-2129-41C5-8577-BCD7D961EF41} = {92D3FEB9-2129-41C5-8577-BCD7D961EF41}
- {7F3178D0-0E2E-471B-9160-69F0354F9DE9} = {7F3178D0-0E2E-471B-9160-69F0354F9DE9}
- {2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A} = {2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-core", "..\..\..\mupen64plus-core\projects\msvc8\mupen64plus-core.vcproj", "{92D3FEB9-2129-41C5-8577-BCD7D961EF41}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-video-rice", "..\..\..\mupen64plus-video-rice\projects\msvc8\mupen64plus-video-rice.vcproj", "{7D4AFF6A-B7D9-4C25-975A-038B8079098E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-rsp-hle", "..\..\..\mupen64plus-rsp-hle\projects\msvc8\mupen64plus-rsp-hle.vcproj", "{2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-input-sdl", "..\..\..\mupen64plus-input-sdl\projects\msvc8\mupen64plus-input-sdl.vcproj", "{7F3178D0-0E2E-471B-9160-69F0354F9DE9}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-audio-sdl", "..\..\..\mupen64plus-audio-sdl\projects\msvc8\mupen64plus-audio-sdl.vcproj", "{96969748-EA54-43FC-8103-A346E9AD98E7}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Debug|Win32.ActiveCfg = Debug|Win32
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Debug|Win32.Build.0 = Debug|Win32
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Release|Win32.ActiveCfg = Release|Win32
- {0E29D9F8-C675-4D21-AF16-AA80EDDB264E}.Release|Win32.Build.0 = Release|Win32
- {92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Debug|Win32.ActiveCfg = Debug|Win32
- {92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Debug|Win32.Build.0 = Debug|Win32
- {92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Release|Win32.ActiveCfg = Release|Win32
- {92D3FEB9-2129-41C5-8577-BCD7D961EF41}.Release|Win32.Build.0 = Release|Win32
- {7D4AFF6A-B7D9-4C25-975A-038B8079098E}.Debug|Win32.ActiveCfg = Debug|Win32
- {7D4AFF6A-B7D9-4C25-975A-038B8079098E}.Debug|Win32.Build.0 = Debug|Win32
- {7D4AFF6A-B7D9-4C25-975A-038B8079098E}.Release|Win32.ActiveCfg = Release|Win32
- {7D4AFF6A-B7D9-4C25-975A-038B8079098E}.Release|Win32.Build.0 = Release|Win32
- {2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}.Debug|Win32.ActiveCfg = Debug|Win32
- {2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}.Debug|Win32.Build.0 = Debug|Win32
- {2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}.Release|Win32.ActiveCfg = Release|Win32
- {2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}.Release|Win32.Build.0 = Release|Win32
- {7F3178D0-0E2E-471B-9160-69F0354F9DE9}.Debug|Win32.ActiveCfg = Debug|Win32
- {7F3178D0-0E2E-471B-9160-69F0354F9DE9}.Debug|Win32.Build.0 = Debug|Win32
- {7F3178D0-0E2E-471B-9160-69F0354F9DE9}.Release|Win32.ActiveCfg = Release|Win32
- {7F3178D0-0E2E-471B-9160-69F0354F9DE9}.Release|Win32.Build.0 = Release|Win32
- {96969748-EA54-43FC-8103-A346E9AD98E7}.Debug|Win32.ActiveCfg = Debug|Win32
- {96969748-EA54-43FC-8103-A346E9AD98E7}.Debug|Win32.Build.0 = Debug|Win32
- {96969748-EA54-43FC-8103-A346E9AD98E7}.Release|Win32.ActiveCfg = Release|Win32
- {96969748-EA54-43FC-8103-A346E9AD98E7}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libmupen64plus/mupen64plus-ui-console/projects/msvc8/mupen64plus-ui-console.vcproj b/libmupen64plus/mupen64plus-ui-console/projects/msvc8/mupen64plus-ui-console.vcproj
deleted file mode 100644
index 09cb69b9e1..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/projects/msvc8/mupen64plus-ui-console.vcproj
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/projects/unix/Makefile b/libmupen64plus/mupen64plus-ui-console/projects/unix/Makefile
deleted file mode 100644
index d574a66e8c..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/projects/unix/Makefile
+++ /dev/null
@@ -1,331 +0,0 @@
-#/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-# * Mupen64plus - Makefile *
-# * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
-# * Copyright (C) 2009 Richard42 *
-# * *
-# * 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; either version 2 of the License, or *
-# * (at your option) any later version. *
-# * *
-# * 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 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. *
-# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-# Makefile for Mupen64plus-ui-console
-
-# detect operation system
-UNAME ?= $(shell uname -s)
-OS := NONE
-ifeq ("$(UNAME)","Linux")
- OS = LINUX
-endif
-ifeq ("$(UNAME)","linux")
- OS = LINUX
-endif
-ifneq ("$(filter GNU hurd,$(UNAME))","")
- OS = LINUX
-endif
-ifeq ("$(UNAME)","Darwin")
- OS = OSX
-endif
-ifeq ("$(UNAME)","FreeBSD")
- OS = FREEBSD
-endif
-ifeq ("$(UNAME)","OpenBSD")
- OS = FREEBSD
- $(warning OS type "$(UNAME)" not officially supported.')
-endif
-ifneq ("$(filter GNU/kFreeBSD kfreebsd,$(UNAME))","")
- OS = LINUX
-endif
-ifeq ("$(patsubst MINGW%,MINGW,$(UNAME))","MINGW")
- OS = MINGW
-endif
-ifeq ("$(OS)","NONE")
- $(error OS type "$(UNAME)" not supported. Please file bug report at 'http://code.google.com/p/mupen64plus/issues')
-endif
-
-# detect system architecture
-HOST_CPU ?= $(shell uname -m)
-NO_ASM ?= 1
-CPU := NONE
-ifneq ("$(filter x86_64 amd64,$(HOST_CPU))","")
- CPU := X86
- ifeq ("$(BITS)", "32")
- ARCH_DETECTED := 64BITS_32
- else
- ARCH_DETECTED := 64BITS
- endif
-endif
-ifneq ("$(filter pentium i%86,$(HOST_CPU))","")
- CPU := X86
- ARCH_DETECTED := 32BITS
-endif
-ifneq ("$(filter ppc macppc socppc powerpc,$(HOST_CPU))","")
- CPU := PPC
- ARCH_DETECTED := 32BITS
- BIG_ENDIAN := 1
- $(warning Architecture "$(HOST_CPU)" not officially supported.')
-endif
-ifneq ("$(filter ppc64 powerpc64,$(HOST_CPU))","")
- CPU := PPC
- ARCH_DETECTED := 64BITS
- BIG_ENDIAN := 1
- $(warning Architecture "$(HOST_CPU)" not officially supported.')
-endif
-ifneq ("$(filter arm%,$(HOST_CPU))","")
- ifeq ("$(filter arm%b,$(HOST_CPU))","")
- CPU := ARM
- ARCH_DETECTED := 32BITS
- $(warning Architecture "$(HOST_CPU)" not officially supported.')
- endif
-endif
-ifeq ("$(CPU)","NONE")
- $(error CPU type "$(HOST_CPU)" not supported. Please file bug report at 'http://code.google.com/p/mupen64plus/issues')
-endif
-
-# base CFLAGS, LDLIBS, and LDFLAGS
-OPTFLAGS ?= -O3
-WARNFLAGS ?= -Wall
-
-# default configuration programs
-SDL_CONFIG = $(CROSS_COMPILE)sdl-config
-
-CFLAGS += $(OPTFLAGS) $(WARNFLAGS) -ffast-math -fno-strict-aliasing -I../../src
-ifeq ($(OS), MINGW)
- CFLAGS += -lpthread
- LDLIBS += -lpthread
-else
- CFLAGS += -pthread
- LDLIBS += -pthread
-endif
-
-ifeq ($(PIE), 1)
- CFLAGS += -fPIE
- LDFLAGS += -fPIE -pie
-else
- CFLAGS += -fno-PIE
- LDFLAGS += -fno-PIE
-endif
-
-# set special flags per-system
-ifeq ($(OS), LINUX)
- LDLIBS += -ldl
-endif
-ifeq ($(OS), OSX)
- # Select the proper SDK
- # Also, SDKs are stored in a different location since XCode 4.3
- OSX_SDK ?= $(shell sw_vers -productVersion | cut -f1 -f2 -d .)
- OSX_XCODEMAJ = $(shell xcodebuild -version | grep '[0-9]*\.[0-9]*' | cut -f2 -d ' ' | cut -f1 -d .)
- OSX_XCODEMIN = $(shell xcodebuild -version | grep '[0-9]*\.[0-9]*' | cut -f2 -d ' ' | cut -f2 -d .)
- OSX_XCODEGE43 = $(shell echo "`expr $(OSX_XCODEMAJ) \>= 4``expr $(OSX_XCODEMIN) \>= 3`")
- ifeq ($(OSX_XCODEGE43), 11)
- OSX_SYSROOT := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
- else
- OSX_SYSROOT := /Developer/SDKs
- endif
-
- # The mac version of SDL requires inclusion of SDL_main in the executable
- CFLAGS += $(shell $(SDL_CONFIG) --cflags)
- LDLIBS += -ldl $(shell $(SDL_CONFIG) --libs)
- ifeq ($(CPU), X86)
- ifeq ($(ARCH_DETECTED), 64BITS)
- CFLAGS += -pipe -arch x86_64 -mmacosx-version-min=$(OSX_SDK) -isysroot $(OSX_SYSROOT)/MacOSX$(OSX_SDK).sdk
- LDFLAGS += -arch x86_64
- else
- CFLAGS += -pipe -mmmx -msse -fomit-frame-pointer -arch i686 -mmacosx-version-min=$(OSX_SDK) -isysroot $(OSX_SYSROOT)/MacOSX$(OSX_SDK).sdk
- LDFLAGS += -arch i686
- endif
- endif
-endif
-
-ifeq ($(OS), MINGW)
- # Do NOT include SDL_main for Windows; we are building a console app!
- # NO -mwindows either! (it will still be a valid 32-bit Windows program)
- CFLAGS += -I/usr/local/include/SDL -D_GNU_SOURCE=1
- LDLIBS += -L/usr/local/lib -lmingw32 -lSDL
-endif
-
-ifeq ($(BIG_ENDIAN), 1)
- CFLAGS += -DM64P_BIG_ENDIAN
-endif
-
-# tweak flags for 32-bit build on 64-bit system
-ifeq ($(ARCH_DETECTED), 64BITS_32)
- ifeq ($(OS), FREEBSD)
- $(error Do not use the BITS=32 option with FreeBSD, use -m32 and -m elf_i386)
- endif
- CFLAGS += -m32
- LDFLAGS += -m32 -Wl,-m,elf_i386
-endif
-
-# set mupen64plus core API header path
-ifneq ("$(APIDIR)","")
- CFLAGS += "-I$(APIDIR)"
-else
- TRYDIR = ../../../mupen64plus-core/src/api
- ifneq ("$(wildcard $(TRYDIR)/m64p_types.h)","")
- CFLAGS += -I$(TRYDIR)
- else
- TRYDIR = /usr/local/include/mupen64plus
- ifneq ("$(wildcard $(TRYDIR)/m64p_types.h)","")
- CFLAGS += -I$(TRYDIR)
- else
- TRYDIR = /usr/include/mupen64plus
- ifneq ("$(wildcard $(TRYDIR)/m64p_types.h)","")
- CFLAGS += -I$(TRYDIR)
- else
- $(error Mupen64Plus API header files not found! Use makefile parameter APIDIR to force a location.)
- endif
- endif
- endif
-endif
-
-# reduced compile output when running make without V=1
-ifneq ($(findstring $(MAKEFLAGS),s),s)
-ifndef V
- Q_CC = @echo ' CC '$@;
- Q_LD = @echo ' LD '$@;
-endif
-endif
-
-# set base program pointers and flags
-CC = $(CROSS_COMPILE)gcc
-CXX = $(CROSS_COMPILE)g++
-RM ?= rm -f
-INSTALL ?= install
-MKDIR ?= mkdir -p
-COMPILE.c = $(Q_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
-LINK.o = $(Q_LD)$(CC) $(LDFLAGS) $(TARGET_ARCH)
-
-# set special flags for given Makefile parameters
-# note: COREDIR _must_ end in a slash if you want it to work; not necessary for the others
-ifneq ($(PLUGINDIR),)
- CFLAGS += '-DPLUGINDIR="$(PLUGINDIR)"'
-endif
-ifneq ($(COREDIR),)
- CFLAGS += '-DCOREDIR="$(COREDIR)"'
-endif
-ifneq ($(SHAREDIR),)
- CFLAGS += '-DSHAREDIR="$(SHAREDIR)"'
-endif
-ifeq ($(DEBUG),1)
- CFLAGS += -g
- INSTALL_STRIP_FLAG ?=
-else
- INSTALL_STRIP_FLAG ?= -s
-endif
-
-# set installation options
-ifeq ($(PREFIX),)
- PREFIX := /usr/local
-endif
-ifeq ($(BINDIR),)
- BINDIR := $(PREFIX)/bin
-endif
-ifeq ($(MANDIR),)
- MANDIR := $(PREFIX)/share/man
-endif
-
-SRCDIR = ../../src
-OBJDIR = _obj$(POSTFIX)
-
-ifeq ("$(OS)","MINGW")
- EXEEXT = .exe
-else
- EXEEXT =
-endif
-
-# list of source files to compile
-SOURCE = \
- $(SRCDIR)/cheat.c \
- $(SRCDIR)/compare_core.c \
- $(SRCDIR)/core_interface.c \
- $(SRCDIR)/main.c \
- $(SRCDIR)/plugin.c
-
-ifeq ($(OS), MINGW)
-SOURCE += \
- $(SRCDIR)/osal_dynamiclib_win32.c \
- $(SRCDIR)/osal_files_win32.c
-else
-SOURCE += \
- $(SRCDIR)/osal_dynamiclib_unix.c \
- $(SRCDIR)/osal_files_unix.c
-endif
-
-# generate a list of object files build, make a temporary directory for them
-OBJECTS := $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(filter %.c, $(SOURCE)))
-OBJDIRS = $(dir $(OBJECTS))
-$(shell $(MKDIR) $(OBJDIRS))
-
-# build targets
-TARGET = mupen64plus$(POSTFIX)$(EXEEXT)
-
-targets:
- @echo "Mupen64Plus-ui-console makefile."
- @echo " Targets:"
- @echo " all == Build Mupen64Plus console front-end application"
- @echo " clean == remove object files and build products"
- @echo " rebuild == clean and re-build all"
- @echo " install == Install Mupen64Plus console front-end application"
- @echo " uninstall == Uninstall Mupen64Plus console front-end application"
- @echo " Options:"
- @echo " COREDIR=path == default path to search for Mupen64Plus Core (must end with slash)"
- @echo " PLUGINDIR=path == default path to search for plugins"
- @echo " SHAREDIR=path == default path to search for shared data files"
- @echo " APIDIR=path == path to find Mupen64Plus Core headers"
- @echo " OPTFLAGS=flags == compiler optimization (default: -O3)"
- @echo " WARNFLAGS=flag == compiler warning levels (default: -Wall)"
- @echo " PIE=(1|0) == Force enable/disable of position independent executables"
- @echo " POSTFIX=name == String added to the name of the the build (default: '')"
- @echo " Install Options:"
- @echo " PREFIX=path == install/uninstall prefix (default: /usr/local/)"
- @echo " BINDIR=path == path to install mupen64plus binary (default: PREFIX/bin/)"
- @echo " MANDIR=path == path to install mupen64plus manual page (default: PREFIX/share/man)"
- @echo " DESTDIR=path == path to prepend to all installation paths (only for packagers)"
- @echo " Debugging Options:"
- @echo " DEBUG=1 == add debugging symbols to application binary"
- @echo " LTO=1 == enable experimental build with link-time optimization"
- @echo " V=1 == show verbose compiler output"
-
-all: $(TARGET)
-
-clean:
- $(RM) -r $(OBJDIR) $(TARGET)
-
-rebuild: clean all
-
-install: $(TARGET)
- $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
- $(INSTALL) -m 0755 $(INSTALL_STRIP_FLAG) $(TARGET) "$(DESTDIR)$(BINDIR)"
- $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6"
- $(INSTALL) -m 0644 ../../doc/mupen64plus.6 "$(DESTDIR)$(MANDIR)/man6"
-
-uninstall:
- $(RM) "$(DESTDIR)$(BINDIR)/$(TARGET)" "$(DESTDIR)$(MANDIR)/man6/mupen64plus.6"
-
-# build dependency files
-CFLAGS += -MD
--include $(OBJECTS:.o=.d)
-
-ifeq ($(LTO), 1)
- CFLAGS += -flto
- LDFLAGS += -fuse-linker-plugin -fwhole-program $(CFLAGS)
-endif
-
-# standard build rules
-$(OBJDIR)/%.o: $(SRCDIR)/%.c
- $(COMPILE.c) -o $@ $<
-
-$(TARGET): $(OBJECTS)
- $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
-
-.PHONY: all clean install uninstall targets
diff --git a/libmupen64plus/mupen64plus-ui-console/src/cheat.c b/libmupen64plus/mupen64plus-ui-console/src/cheat.c
deleted file mode 100644
index d491cbf0a8..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/cheat.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus - cheat.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009-2010 Richard Goedeken *
- * Copyright (C) 2010 Rhett Osborne (spinout) *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include
-#include
-#include
-
-#include "m64p_types.h"
-
-#include "main.h"
-#include "cheat.h"
-#include "core_interface.h"
-
-/* local definitions */
-#define CHEAT_FILE "mupencheat.txt"
-
-typedef struct {
- int address;
- int *variables;
- char **variable_names;
- int var_to_use;
- int var_count;
-} cheat_code;
-
-typedef struct _sCheatInfo {
- int Number;
- int Count;
- int VariableLine;
- const char *Name;
- const char *Description;
- cheat_code *Codes;
- struct _sCheatInfo *Next;
- } sCheatInfo;
-
-/* local variables */
-static m64p_rom_header l_RomHeader;
-static char *l_IniText = NULL;
-static char *l_CheatGameName = NULL;
-static sCheatInfo *l_CheatList = NULL;
-static int l_CheatCodesFound = 0;
-static int l_RomFound = 0;
-
-/*********************************************************************************************************
- * Static (Local) functions
- */
-
-static int isSpace(char ch)
-{
- return (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n');
-}
-
-/* Find cheat code */
-static sCheatInfo *CheatFindCode(int Number)
-{
- sCheatInfo *pCur = l_CheatList;
- while (pCur != NULL)
- {
- if (pCur->Number == Number) break;
- pCur = pCur->Next;
- }
- return pCur;
-}
-
-
-/* Activate a code */
-static void CheatActivate(sCheatInfo *pCheat)
-{
- int i;
-
- /* Get a m64p_cheat_code object */
- m64p_cheat_code * code = (m64p_cheat_code*) calloc(pCheat->Count, sizeof(m64p_cheat_code));
- if (code == NULL)
- {
- DebugMessage(M64MSG_WARNING, "could not allocate memory for code '%s'", pCheat->Name);
- return;
- }
- /* Fill in members */
- for (i = 0; i < pCheat->Count; i++)
- {
- code[i].address = pCheat->Codes[i].address;
- code[i].value = pCheat->Codes[i].variables[pCheat->Codes[i].var_to_use];
- }
- /* Enable cheat */
- if (CoreAddCheat(pCheat->Name, code, pCheat->Count) != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_WARNING, "CoreAddCheat() failed for cheat code %i (%s)", pCheat->Number, pCheat->Name);
- free(code);
- return;
- }
-
- free(code);
- DebugMessage(M64MSG_STATUS, "activated cheat code %i: %s", pCheat->Number, pCheat->Name);
-}
-
-static void CheatFreeAll(void)
-{
- if (l_IniText != NULL)
- free(l_IniText);
- l_IniText = NULL;
-
- sCheatInfo *pCur = l_CheatList;
- while (pCur != NULL)
- {
- sCheatInfo *pNext = pCur->Next;
- if (pCur->Codes != NULL)
- {
- int i;
- for (i=0; i < pCur->Count; i++)
- {
- if (pCur->Codes[i].variables != NULL)
- free(pCur->Codes[i].variables);
- if (pCur->Codes[i].variable_names != NULL)
- free(pCur->Codes[i].variable_names);
- }
- free(pCur->Codes);
- }
- free(pCur);
- pCur = pNext;
- }
-
- l_CheatList = NULL;
-}
-
-/* Append new code */
-static sCheatInfo * NewCode(char *CheatName, int CheatNum)
-{
- /* allocate memory for a new sCheatInfo struct */
- sCheatInfo *pNew = (sCheatInfo *) malloc(sizeof(sCheatInfo));
- if (pNew == NULL) return NULL;
-
- /* fill in the data members */
- pNew->Number = CheatNum;
- pNew->Count = 0;
- pNew->VariableLine = -1;
- pNew->Name = CheatName;
- pNew->Description = NULL;
- pNew->Codes = NULL;
- pNew->Next = NULL;
-
- l_CheatCodesFound++;
-
- /* stick it at the end of the list */
- if (l_CheatList == NULL)
- {
- l_CheatList = pNew;
- return pNew;
- }
- sCheatInfo *pLast = l_CheatList;
- while (pLast->Next != NULL) pLast = pLast->Next;
- pLast->Next = pNew;
- return pNew;
-}
-
-static void CheatAddVariables(cheat_code * Code, char *varlist)
-{
- /* needs to be more verbose? */
- Code->variables = NULL;
- Code->variable_names = NULL;
- Code->var_count = 0;
- while (*varlist != 0)
- {
- if ((Code->variables = (int*) realloc(Code->variables, sizeof(int) * (Code->var_count + 1))) == NULL)
- return;
- if ((Code->variable_names = (char**) realloc(Code->variable_names, sizeof(char*) * (Code->var_count + 1))) == NULL)
- return;
- if (sscanf(varlist, "%04X", &Code->variables[Code->var_count]) != 1)
- Code->variables[Code->var_count] = 0;
- if (strchr(varlist, '"') == NULL)
- return;
- Code->variable_names[Code->var_count] = strchr(varlist, '"') + 1;
- if ((varlist = strchr(Code->variable_names[Code->var_count], '"')) == NULL)
- return;
- *varlist++ = 0;
- if (*varlist == ',')
- varlist++;
- Code->var_count++;
- }
-}
-
-/*********************************************************************************************************
-* global functions
-*/
-
-static void ReadCheats(char *RomSection)
-{
- sCheatInfo *curr_code = NULL;
- const char *romdbpath = ConfigGetSharedDataFilepath(CHEAT_FILE);
- if (romdbpath == NULL)
- {
- DebugMessage(M64MSG_WARNING, "cheat code database file '%s' not found.", CHEAT_FILE);
- return;
- }
-
- /* read the INI file into a new buffer */
- FILE *fPtr = NULL;
- fPtr = fopen(romdbpath, "rb");
- if (fPtr == NULL)
- {
- DebugMessage(M64MSG_WARNING, "Couldn't open cheat code database file '%s'.", romdbpath);
- return;
- }
- fseek(fPtr, 0L, SEEK_END);
- long IniLength = ftell(fPtr);
- fseek(fPtr, 0L, SEEK_SET);
- l_IniText = (char *) malloc(IniLength + 1);
- if (l_IniText == NULL)
- {
- DebugMessage(M64MSG_WARNING, "Couldn't allocate %li bytes of memory to read cheat file.", IniLength);
- fclose(fPtr);
- return;
- }
- if (fread(l_IniText, 1, IniLength, fPtr) != IniLength)
- {
- DebugMessage(M64MSG_WARNING, "Couldn't read %li bytes from cheat file.", IniLength);
- free(l_IniText);
- l_IniText = NULL;
- fclose(fPtr);
- return;
- }
- fclose(fPtr);
- l_IniText[IniLength] = 0; /* null-terminate the text data */
-
- /* parse lines from cheat database */
- char *curline = NULL;
- char *nextline = l_IniText;
-
- while(nextline != NULL && *nextline != 0)
- {
- curline = nextline;
- /* get pointer to next line and NULL-terminate the current line */
- nextline = strchr(curline, '\n');
- if (nextline != NULL)
- {
- *nextline = 0;
- nextline++;
- }
-
- /* remove leading and trailing white space */
- while(isSpace(*curline)) curline++;
- char *endptr = curline + strlen(curline) - 1;
- while(isSpace(*endptr)) *endptr-- = 0;
-
- /* ignore line if comment or empty */
- if (*curline == '#' || strncmp(curline, "//", 2) == 0 || *curline == 0)
- continue;
-
- /* handle beginning of new rom section */
- if (strncmp(curline, "crc ", 4) == 0)
- {
- /* if we have already found cheats for the given ROM file, then exit upon encountering a new ROM section */
- if (l_RomFound && (l_CheatGameName != NULL || l_CheatList != NULL))
- return;
- /* else see if this Rom Section matches */
- if (strcmp(curline+4, RomSection) == 0)
- l_RomFound = 1;
- continue;
- }
-
- /* if we haven't found the specified ROM section, then continue looking */
- if (!l_RomFound)
- continue;
-
- /* Game name */
- if (strncmp(curline, "gn ", 3) == 0)
- {
- l_CheatGameName = curline+3;
- continue;
- }
-
- /* code name */
- if (strncmp(curline, "cn ", 3) == 0)
- {
- curr_code = NewCode(curline + 3, l_CheatCodesFound);
- if (curr_code == NULL)
- DebugMessage(M64MSG_WARNING, "error getting new code (%s)", curline+3);
- continue;
- }
-
- /* if curr_code is NULL, don't do these checks */
- if (curr_code == NULL)
- continue;
-
- /* code description */
- if (strncmp(curline, "cd ", 3) == 0)
- {
- curr_code->Description = curline+3;
- continue;
- }
-
- /* code line */
- int address;
- if (sscanf(curline, "%8X %*s", &address) == 1)
- {
- curr_code->Codes = (cheat_code*) realloc(curr_code->Codes, sizeof(cheat_code) * (curr_code->Count + 1));
- if (strncmp(curline+9, "????", 4) == 0)
- {
- curr_code->Codes[curr_code->Count].var_count = 0;
- CheatAddVariables(&curr_code->Codes[curr_code->Count], curline+14);
- curr_code->VariableLine = curr_code->Count;
- }
- else
- {
- int var;
- curr_code->Codes[curr_code->Count].var_count = 1;
- curr_code->Codes[curr_code->Count].variables = (int*) malloc(sizeof(int));
- if(curr_code->Codes[curr_code->Count].variables == NULL)
- {
- DebugMessage(M64MSG_WARNING, "couldn't allocate memory; ignoring line: '%s'", curline);
- continue;
- }
- if (sscanf(curline+9, "%04X", &var) != 1)
- var = 0;
- curr_code->Codes[curr_code->Count].variables[0] = var;
- curr_code->Codes[curr_code->Count].variable_names = NULL;
- }
- curr_code->Codes[curr_code->Count].var_to_use = 0;
- curr_code->Codes[curr_code->Count].address = address;
- curr_code->Count++;
- continue;
- }
-
- /* otherwise we don't know what this line is */
- DebugMessage(M64MSG_WARNING, "unrecognized line in cheat file: '%s'", curline);
- }
-
-}
-
-void CheatStart(eCheatMode CheatMode, char *CheatNumList)
-{
- /* if cheat codes are disabled, then we don't have to do anything */
- if (CheatMode == CHEAT_DISABLE || (CheatMode == CHEAT_LIST && strlen(CheatNumList) == 0))
- {
- DebugMessage(M64MSG_STATUS, "Cheat codes disabled.");
- return;
- }
-
- /* get the ROM header for the currently loaded ROM image from the core */
- if ((*CoreDoCommand)(M64CMD_ROM_GET_HEADER, sizeof(l_RomHeader), &l_RomHeader) != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_WARNING, "couldn't get ROM header information from core library");
- return;
- }
-
- /* generate section name from ROM's CRC and country code */
- char RomSection[24];
- sprintf(RomSection, "%08X-%08X-C:%X", sl(l_RomHeader.CRC1), sl(l_RomHeader.CRC2), l_RomHeader.Country_code & 0xff);
-
- /* parse through the cheat INI file and load up any cheat codes found for this ROM */
- ReadCheats(RomSection);
- if (!l_RomFound || l_CheatCodesFound == 0)
- {
- DebugMessage(M64MSG_WARNING, "no cheat codes found for ROM image '%.20s'", l_RomHeader.Name);
- CheatFreeAll();
- return;
- }
-
- /* handle the list command */
- if (CheatMode == CHEAT_SHOW_LIST)
- {
- DebugMessage(M64MSG_INFO, "%i cheat code(s) found for ROM '%s'", l_CheatCodesFound, l_CheatGameName);
- sCheatInfo *pCur = l_CheatList;
- while (pCur != NULL)
- {
- if (pCur->Description == NULL)
- DebugMessage(M64MSG_INFO, " %i: %s", pCur->Number, pCur->Name);
- else
- DebugMessage(M64MSG_INFO, " %i: %s (%s)", pCur->Number, pCur->Name, pCur->Description);
- if(pCur->VariableLine != -1)
- {
- int i;
- for (i = 0; i < pCur->Codes[pCur->VariableLine].var_count; i++)
- DebugMessage(M64MSG_INFO, " %i: %s", i, pCur->Codes[pCur->VariableLine].variable_names[i]);
- }
- pCur = pCur->Next;
- }
- CheatFreeAll();
- return;
- }
-
- /* handle all cheats enabled mode */
- if (CheatMode == CHEAT_ALL)
- {
- sCheatInfo *pCur = l_CheatList;
- while (pCur != NULL)
- {
- CheatActivate(pCur);
- pCur = pCur->Next;
- }
- CheatFreeAll();
- return;
- }
-
- /* handle list of cheats enabled mode */
- if (CheatMode == CHEAT_LIST)
- {
- int option, number;
- char *cheat_next;
- sCheatInfo *pCheat;
- while(CheatNumList != NULL && *CheatNumList)
- {
- if ((cheat_next = strchr(CheatNumList, ',')) != NULL)
- {
- *cheat_next = 0;
- cheat_next ++;
- }
-
- if (strchr(CheatNumList, '-') != NULL)
- {
- sscanf(CheatNumList, "%i-%i", &number, &option); /* option */
- }
- else
- {
- option=0;
- sscanf(CheatNumList, "%i", &number);
- }
-
- pCheat = CheatFindCode(number);
- if (pCheat == NULL)
- DebugMessage(M64MSG_WARNING, "invalid cheat code number %i", number);
- else
- {
- if (pCheat->VariableLine != -1 && pCheat->Count > pCheat->VariableLine && option < pCheat->Codes[pCheat->VariableLine].var_count)
- pCheat->Codes[pCheat->VariableLine].var_to_use = option;
- CheatActivate(pCheat);
- }
-
- CheatNumList = cheat_next;
- }
- CheatFreeAll();
-
- return;
- }
-
- /* otherwise the mode is invalid */
- DebugMessage(M64MSG_WARNING, "internal error; invalid CheatMode in CheatStart()");
-
- return;
-}
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/cheat.h b/libmupen64plus/mupen64plus-ui-console/src/cheat.h
deleted file mode 100644
index e44ac05cf2..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/cheat.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus - cheat.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef CHEAT_H
-#define CHEAT_H
-
-#ifdef M64P_BIG_ENDIAN
- #define sl(mot) mot
-#else
- #define sl(mot) (((mot & 0xFF) << 24) | ((mot & 0xFF00) << 8) | ((mot & 0xFF0000) >> 8) | ((mot & 0xFF000000) >> 24))
-#endif
-
-typedef enum {
- CHEAT_DISABLE,
- CHEAT_LIST,
- CHEAT_ALL,
- CHEAT_SHOW_LIST
- } eCheatMode;
-
-void CheatStart(eCheatMode CheatMode, char *CheatNumList);
-
-#endif // #define CHEAT_H
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/compare_core.c b/libmupen64plus/mupen64plus-ui-console/src/compare_core.c
deleted file mode 100644
index bdc4f8783e..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/compare_core.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus - compare_core.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * Copyright (C) 2002 Hacktarux *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include
-#include
-#include
-
-#include "m64p_types.h"
-#include "main.h"
-#include "compare_core.h"
-#include "core_interface.h"
-
-/* local variables */
-
-static FILE *fPipe = NULL;
-static int comp_reg_32[32];
-static long long comp_reg_64[32];
-static unsigned int old_op = 0;
-static int l_CoreCompareMode = CORE_COMPARE_DISABLE;
-
-static long long *ptr_reg = NULL; /* pointer to the 64-bit general purpose registers in the core */
-static int *ptr_cop0 = NULL; /* pointer to the 32-bit Co-processor 0 registers in the core */
-static long long *ptr_fgr = NULL; /* pointer to the 64-bit floating-point registers in the core */
-static int *ptr_PC = NULL; /* pointer to 32-bit R4300 Program Counter */
-
-/* local functions */
-static void stop_it(void)
-{
- static int errors = 0;
-
- (*CoreDoCommand)(M64CMD_STOP, 0, NULL);
-
- errors++;
-#if !defined(WIN32)
- #if defined(__i386__) || defined(__x86_64__)
- if (errors > 7)
- asm("int $3;");
- #endif
-#endif
-}
-
-static void display_error(char *txt)
-{
- int i;
-
- printf("err: %6s addr:%x\t ", txt, *ptr_PC);
-
- if (!strcmp(txt, "PC"))
- {
- printf("My PC: %x Ref PC: %x\t ", *ptr_PC, *comp_reg_32);
- }
- else if (!strcmp(txt, "gpr"))
- {
- for (i=0; i<32; i++)
- {
- if (ptr_reg[i] != comp_reg_64[i])
- printf("My: reg[%d]=%llx\t Ref: reg[%d]=%llx\t ", i, ptr_reg[i], i, comp_reg_64[i]);
- }
- }
- else if (!strcmp(txt, "cop0"))
- {
- for (i=0; i<32; i++)
- {
- if (ptr_cop0[i] != comp_reg_32[i])
- printf("My: reg_cop0[%d]=%x\t Ref: reg_cop0[%d]=%x\t ", i, (unsigned int)ptr_cop0[i], i, (unsigned int)comp_reg_32[i]);
- }
- }
- else if (!strcmp(txt, "cop1"))
- {
- for (i=0; i<32; i++)
- {
- if (ptr_fgr[i] != comp_reg_64[i])
- printf("My: reg[%d]=%llx\t Ref: reg[%d]=%llx\t ", i, ptr_fgr[i], i, comp_reg_64[i]);
- }
- }
- printf("\n");
- /*for (i=0; i<32; i++)
- {
- if (reg_cop0[i] != comp_reg[i])
- printf("reg_cop0[%d]=%llx != reg[%d]=%llx\n",
- i, reg_cop0[i], i, comp_reg[i]);
- }*/
-
- stop_it();
-}
-
-static void compare_core_sync_data(int length, void *value)
-{
- if (l_CoreCompareMode == CORE_COMPARE_RECV)
- {
- if (fread(value, 1, length, fPipe) != length)
- stop_it();
- }
- else if (l_CoreCompareMode == CORE_COMPARE_SEND)
- {
- if (fwrite(value, 1, length, fPipe) != length)
- stop_it();
- }
-}
-
-static void compare_core_check(unsigned int cur_opcode)
-{
- static int comparecnt = 0;
- int iFirst = 1;
- char errHead[128];
- sprintf(errHead, "Compare #%i old_op: %x op: %x\n", comparecnt++, old_op, cur_opcode);
-
- /* get pointer to current R4300 Program Counter address */
- ptr_PC = (int *) DebugGetCPUDataPtr(M64P_CPU_PC); /* this changes for every instruction */
-
- if (l_CoreCompareMode == CORE_COMPARE_RECV)
- {
- if (fread(comp_reg_32, sizeof(int), 4, fPipe) != 4)
- printf("compare_core_check: fread() failed");
- if (*ptr_PC != *comp_reg_32)
- {
- if (iFirst)
- {
- printf("%s", errHead);
- iFirst = 0;
- }
- display_error("PC");
- }
- if (fread (comp_reg_64, sizeof(long long int), 32, fPipe) != 32)
- printf("compare_core_check: fread() failed");
- if (memcmp(ptr_reg, comp_reg_64, 32*sizeof(long long int)) != 0)
- {
- if (iFirst)
- {
- printf("%s", errHead);
- iFirst = 0;
- }
- display_error("gpr");
- }
- if (fread(comp_reg_32, sizeof(int), 32, fPipe) != 32)
- printf("compare_core_check: fread() failed");
- if (memcmp(ptr_cop0, comp_reg_32, 32*sizeof(int)) != 0)
- {
- if (iFirst)
- {
- printf("%s", errHead);
- iFirst = 0;
- }
- display_error("cop0");
- }
- if (fread(comp_reg_64, sizeof(long long int), 32, fPipe) != 32)
- printf("compare_core_check: fread() failed");
- if (memcmp(ptr_fgr, comp_reg_64, 32*sizeof(long long int)))
- {
- if (iFirst)
- {
- printf("%s", errHead);
- iFirst = 0;
- }
- display_error("cop1");
- }
- /*fread(comp_reg, 1, sizeof(int), f);
- if (memcmp(&rdram[0x31280/4], comp_reg, sizeof(int)))
- display_error("mem");*/
- /*fread (comp_reg, 4, 1, f);
- if (memcmp(&FCR31, comp_reg, 4))
- display_error();*/
- old_op = cur_opcode;
- }
- else if (l_CoreCompareMode == CORE_COMPARE_SEND)
- {
- if (fwrite(ptr_PC, sizeof(int), 4, fPipe) != 4 ||
- fwrite(ptr_reg, sizeof(long long int), 32, fPipe) != 32 ||
- fwrite(ptr_cop0, sizeof(int), 32, fPipe) != 32 ||
- fwrite(ptr_fgr, sizeof(long long int), 32, fPipe) != 32)
- printf("compare_core_check: fwrite() failed");
- /*fwrite(&rdram[0x31280/4], 1, sizeof(int), f);
- fwrite(&FCR31, 4, 1, f);*/
- }
-}
-
-/* global functions */
-void compare_core_init(int mode)
-{
-#if defined(WIN32)
- DebugMessage(M64MSG_VERBOSE, "core comparison feature not supported on Windows platform.");
- return;
-#else
- /* set mode */
- l_CoreCompareMode = mode;
- /* set callback functions in core */
- if (DebugSetCoreCompare(compare_core_check, compare_core_sync_data) != M64ERR_SUCCESS)
- {
- l_CoreCompareMode = CORE_COMPARE_DISABLE;
- DebugMessage(M64MSG_WARNING, "DebugSetCoreCompare() failed, core comparison disabled.");
- return;
- }
- /* get pointers to emulated R4300 CPU registers */
- ptr_reg = (long long *) DebugGetCPUDataPtr(M64P_CPU_REG_REG);
- ptr_cop0 = (int *) DebugGetCPUDataPtr(M64P_CPU_REG_COP0);
- ptr_fgr = (long long *) DebugGetCPUDataPtr(M64P_CPU_REG_COP1_FGR_64);
- /* open file handle to FIFO pipe */
- if (l_CoreCompareMode == CORE_COMPARE_RECV)
- {
- mkfifo("compare_pipe", 0600);
- DebugMessage(M64MSG_INFO, "Core Comparison Waiting to read pipe.");
- fPipe = fopen("compare_pipe", "r");
- }
- else if (l_CoreCompareMode == CORE_COMPARE_SEND)
- {
- DebugMessage(M64MSG_INFO, "Core Comparison Waiting to write pipe.");
- fPipe = fopen("compare_pipe", "w");
- }
-#endif
-}
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/compare_core.h b/libmupen64plus/mupen64plus-ui-console/src/compare_core.h
deleted file mode 100644
index 1d54c8d715..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/compare_core.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus - compare_core.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#if !defined(COMPARE_CORE_H)
-#define COMPARE_CORE_H
-
-typedef enum {
- CORE_COMPARE_DISABLE = 0,
- CORE_COMPARE_SEND = 1,
- CORE_COMPARE_RECV = 2
-} CoreCompareMode;
-
-void compare_core_init(int mode);
-
-#endif /* COMPARE_CORE_H */
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/core_interface.c b/libmupen64plus/mupen64plus-ui-console/src/core_interface.c
deleted file mode 100644
index 09dd817470..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/core_interface.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - core_interface.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This file contains the routines for attaching to the Mupen64Plus core
- * library and pointers to the core functions
- */
-
-#include
-
-#include "m64p_types.h"
-#include "m64p_common.h"
-#include "m64p_frontend.h"
-#include "m64p_config.h"
-#include "m64p_debugger.h"
-
-#include "osal_preproc.h"
-#include "osal_dynamiclib.h"
-
-#include "main.h"
-#include "version.h"
-#include "core_interface.h"
-
-/* global data definitions */
-int g_CoreCapabilities;
-int g_CoreAPIVersion;
-
-/* definitions of pointers to Core common functions */
-ptr_CoreErrorMessage CoreErrorMessage = NULL;
-
-/* definitions of pointers to Core front-end functions */
-ptr_CoreStartup CoreStartup = NULL;
-ptr_CoreShutdown CoreShutdown = NULL;
-ptr_CoreAttachPlugin CoreAttachPlugin = NULL;
-ptr_CoreDetachPlugin CoreDetachPlugin = NULL;
-ptr_CoreDoCommand CoreDoCommand = NULL;
-ptr_CoreOverrideVidExt CoreOverrideVidExt = NULL;
-ptr_CoreAddCheat CoreAddCheat = NULL;
-ptr_CoreCheatEnabled CoreCheatEnabled = NULL;
-
-/* definitions of pointers to Core config functions */
-ptr_ConfigListSections ConfigListSections = NULL;
-ptr_ConfigOpenSection ConfigOpenSection = NULL;
-ptr_ConfigDeleteSection ConfigDeleteSection = NULL;
-ptr_ConfigSaveSection ConfigSaveSection = NULL;
-ptr_ConfigListParameters ConfigListParameters = NULL;
-ptr_ConfigSaveFile ConfigSaveFile = NULL;
-ptr_ConfigSetParameter ConfigSetParameter = NULL;
-ptr_ConfigGetParameter ConfigGetParameter = NULL;
-ptr_ConfigGetParameterType ConfigGetParameterType = NULL;
-ptr_ConfigGetParameterHelp ConfigGetParameterHelp = NULL;
-ptr_ConfigSetDefaultInt ConfigSetDefaultInt = NULL;
-ptr_ConfigSetDefaultFloat ConfigSetDefaultFloat = NULL;
-ptr_ConfigSetDefaultBool ConfigSetDefaultBool = NULL;
-ptr_ConfigSetDefaultString ConfigSetDefaultString = NULL;
-ptr_ConfigGetParamInt ConfigGetParamInt = NULL;
-ptr_ConfigGetParamFloat ConfigGetParamFloat = NULL;
-ptr_ConfigGetParamBool ConfigGetParamBool = NULL;
-ptr_ConfigGetParamString ConfigGetParamString = NULL;
-
-ptr_ConfigGetSharedDataFilepath ConfigGetSharedDataFilepath = NULL;
-ptr_ConfigGetUserConfigPath ConfigGetUserConfigPath = NULL;
-ptr_ConfigGetUserDataPath ConfigGetUserDataPath = NULL;
-ptr_ConfigGetUserCachePath ConfigGetUserCachePath = NULL;
-
-/* definitions of pointers to Core debugger functions */
-ptr_DebugSetCallbacks DebugSetCallbacks = NULL;
-ptr_DebugSetCoreCompare DebugSetCoreCompare = NULL;
-ptr_DebugSetRunState DebugSetRunState = NULL;
-ptr_DebugGetState DebugGetState = NULL;
-ptr_DebugStep DebugStep = NULL;
-ptr_DebugDecodeOp DebugDecodeOp = NULL;
-ptr_DebugMemGetRecompInfo DebugMemGetRecompInfo = NULL;
-ptr_DebugMemGetMemInfo DebugMemGetMemInfo = NULL;
-ptr_DebugMemGetPointer DebugMemGetPointer = NULL;
-
-ptr_DebugMemRead64 DebugMemRead64 = NULL;
-ptr_DebugMemRead32 DebugMemRead32 = NULL;
-ptr_DebugMemRead16 DebugMemRead16 = NULL;
-ptr_DebugMemRead8 DebugMemRead8 = NULL;
-
-ptr_DebugMemWrite64 DebugMemWrite64 = NULL;
-ptr_DebugMemWrite32 DebugMemWrite32 = NULL;
-ptr_DebugMemWrite16 DebugMemWrite16 = NULL;
-ptr_DebugMemWrite8 DebugMemWrite8 = NULL;
-
-ptr_DebugGetCPUDataPtr DebugGetCPUDataPtr = NULL;
-ptr_DebugBreakpointLookup DebugBreakpointLookup = NULL;
-ptr_DebugBreakpointCommand DebugBreakpointCommand = NULL;
-
-/* global variables */
-m64p_dynlib_handle CoreHandle = NULL;
-
-/* functions */
-m64p_error AttachCoreLib(const char *CoreLibFilepath)
-{
- /* check if Core DLL is already attached */
- if (CoreHandle != NULL)
- return M64ERR_INVALID_STATE;
-
- /* load the DLL */
- m64p_error rval = M64ERR_INTERNAL;
- /* first, try a library path+name that was given on the command-line */
- if (CoreLibFilepath != NULL)
- {
- rval = osal_dynlib_open(&CoreHandle, CoreLibFilepath);
- }
- /* then try a library path that was given at compile time */
-#if defined(COREDIR)
- if (rval != M64ERR_SUCCESS || CoreHandle == NULL)
- {
- rval = osal_dynlib_open(&CoreHandle, COREDIR OSAL_DEFAULT_DYNLIB_FILENAME);
- }
-#endif
- /* then try just the filename of the shared library, to let dlopen() look through the system lib dirs */
- if (rval != M64ERR_SUCCESS || CoreHandle == NULL)
- {
- rval = osal_dynlib_open(&CoreHandle, OSAL_DEFAULT_DYNLIB_FILENAME);
- }
- /* as a last-ditch effort, try loading library in current directory */
- if (rval != M64ERR_SUCCESS || CoreHandle == NULL)
- {
- rval = osal_dynlib_open(&CoreHandle, OSAL_CURRENT_DIR OSAL_DEFAULT_DYNLIB_FILENAME);
- }
- /* if we haven't found a good core library by now, then we're screwed */
- if (rval != M64ERR_SUCCESS || CoreHandle == NULL)
- {
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: failed to find Mupen64Plus Core library");
- CoreHandle = NULL;
- return M64ERR_INPUT_NOT_FOUND;
- }
-
- /* attach and call the PluginGetVersion function, check the Core and API versions for compatibility with this front-end */
- ptr_PluginGetVersion CoreVersionFunc;
- CoreVersionFunc = (ptr_PluginGetVersion) osal_dynlib_getproc(CoreHandle, "PluginGetVersion");
- if (CoreVersionFunc == NULL)
- {
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: Shared library '%s' invalid; no PluginGetVersion() function found.", CoreLibFilepath);
- osal_dynlib_close(CoreHandle);
- CoreHandle = NULL;
- return M64ERR_INPUT_INVALID;
- }
- m64p_plugin_type PluginType = (m64p_plugin_type) 0;
- int Compatible = 0;
- int CoreVersion = 0;
- const char *CoreName = NULL;
- (*CoreVersionFunc)(&PluginType, &CoreVersion, &g_CoreAPIVersion, &CoreName, &g_CoreCapabilities);
- if (PluginType != M64PLUGIN_CORE)
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: Shared library '%s' invalid; this is not the emulator core.", CoreLibFilepath);
- else if (CoreVersion < MINIMUM_CORE_VERSION)
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: Shared library '%s' incompatible; core version %i.%i.%i is below minimum supported %i.%i.%i",
- CoreLibFilepath, VERSION_PRINTF_SPLIT(CoreVersion), VERSION_PRINTF_SPLIT(MINIMUM_CORE_VERSION));
- else if ((g_CoreAPIVersion & 0xffff0000) != (CORE_API_VERSION & 0xffff0000))
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: Shared library '%s' incompatible; core API major version %i.%i.%i doesn't match with this application (%i.%i.%i)",
- CoreLibFilepath, VERSION_PRINTF_SPLIT(g_CoreAPIVersion), VERSION_PRINTF_SPLIT(CORE_API_VERSION));
- else
- Compatible = 1;
- /* exit if not compatible */
- if (Compatible == 0)
- {
- osal_dynlib_close(CoreHandle);
- CoreHandle = NULL;
- return M64ERR_INCOMPATIBLE;
- }
-
- /* attach and call the CoreGetAPIVersion function, check Config API version for compatibility */
- ptr_CoreGetAPIVersions CoreAPIVersionFunc;
- CoreAPIVersionFunc = (ptr_CoreGetAPIVersions) osal_dynlib_getproc(CoreHandle, "CoreGetAPIVersions");
- if (CoreAPIVersionFunc == NULL)
- {
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: Library '%s' broken; no CoreAPIVersionFunc() function found.", CoreLibFilepath);
- osal_dynlib_close(CoreHandle);
- CoreHandle = NULL;
- return M64ERR_INPUT_INVALID;
- }
- int ConfigAPIVersion, DebugAPIVersion, VidextAPIVersion;
- (*CoreAPIVersionFunc)(&ConfigAPIVersion, &DebugAPIVersion, &VidextAPIVersion, NULL);
- if ((ConfigAPIVersion & 0xffff0000) != (CONFIG_API_VERSION & 0xffff0000))
- {
- DebugMessage(M64MSG_ERROR, "AttachCoreLib() Error: Emulator core '%s' incompatible; Config API major version %i.%i.%i doesn't match application: %i.%i.%i",
- CoreLibFilepath, VERSION_PRINTF_SPLIT(ConfigAPIVersion), VERSION_PRINTF_SPLIT(CONFIG_API_VERSION));
- osal_dynlib_close(CoreHandle);
- CoreHandle = NULL;
- return M64ERR_INCOMPATIBLE;
- }
-
- /* print some information about the core library */
- DebugMessage(M64MSG_INFO, "attached to core library '%s' version %i.%i.%i", CoreName, VERSION_PRINTF_SPLIT(CoreVersion));
- if (g_CoreCapabilities & M64CAPS_DYNAREC)
- DebugMessage(M64MSG_INFO, " Includes support for Dynamic Recompiler.");
- if (g_CoreCapabilities & M64CAPS_DEBUGGER)
- DebugMessage(M64MSG_INFO, " Includes support for MIPS r4300 Debugger.");
- if (g_CoreCapabilities & M64CAPS_CORE_COMPARE)
- DebugMessage(M64MSG_INFO, " Includes support for r4300 Core Comparison.");
-
- /* get function pointers to the common and front-end functions */
- CoreErrorMessage = (ptr_CoreErrorMessage) osal_dynlib_getproc(CoreHandle, "CoreErrorMessage");
- CoreStartup = (ptr_CoreStartup) osal_dynlib_getproc(CoreHandle, "CoreStartup");
- CoreShutdown = (ptr_CoreShutdown) osal_dynlib_getproc(CoreHandle, "CoreShutdown");
- CoreAttachPlugin = (ptr_CoreAttachPlugin) osal_dynlib_getproc(CoreHandle, "CoreAttachPlugin");
- CoreDetachPlugin = (ptr_CoreDetachPlugin) osal_dynlib_getproc(CoreHandle, "CoreDetachPlugin");
- CoreDoCommand = (ptr_CoreDoCommand) osal_dynlib_getproc(CoreHandle, "CoreDoCommand");
- CoreOverrideVidExt = (ptr_CoreOverrideVidExt) osal_dynlib_getproc(CoreHandle, "CoreOverrideVidExt");
- CoreAddCheat = (ptr_CoreAddCheat) osal_dynlib_getproc(CoreHandle, "CoreAddCheat");
- CoreCheatEnabled = (ptr_CoreCheatEnabled) osal_dynlib_getproc(CoreHandle, "CoreCheatEnabled");
-
- /* get function pointers to the configuration functions */
- ConfigListSections = (ptr_ConfigListSections) osal_dynlib_getproc(CoreHandle, "ConfigListSections");
- ConfigOpenSection = (ptr_ConfigOpenSection) osal_dynlib_getproc(CoreHandle, "ConfigOpenSection");
- ConfigDeleteSection = (ptr_ConfigDeleteSection) osal_dynlib_getproc(CoreHandle, "ConfigDeleteSection");
- ConfigSaveSection = (ptr_ConfigSaveSection) osal_dynlib_getproc(CoreHandle, "ConfigSaveSection");
- ConfigListParameters = (ptr_ConfigListParameters) osal_dynlib_getproc(CoreHandle, "ConfigListParameters");
- ConfigSaveFile = (ptr_ConfigSaveFile) osal_dynlib_getproc(CoreHandle, "ConfigSaveFile");
- ConfigSetParameter = (ptr_ConfigSetParameter) osal_dynlib_getproc(CoreHandle, "ConfigSetParameter");
- ConfigGetParameter = (ptr_ConfigGetParameter) osal_dynlib_getproc(CoreHandle, "ConfigGetParameter");
- ConfigGetParameterType = (ptr_ConfigGetParameterType) osal_dynlib_getproc(CoreHandle, "ConfigGetParameterType");
- ConfigGetParameterHelp = (ptr_ConfigGetParameterHelp) osal_dynlib_getproc(CoreHandle, "ConfigGetParameterHelp");
- ConfigSetDefaultInt = (ptr_ConfigSetDefaultInt) osal_dynlib_getproc(CoreHandle, "ConfigSetDefaultInt");
- ConfigSetDefaultFloat = (ptr_ConfigSetDefaultFloat) osal_dynlib_getproc(CoreHandle, "ConfigSetDefaultFloat");
- ConfigSetDefaultBool = (ptr_ConfigSetDefaultBool) osal_dynlib_getproc(CoreHandle, "ConfigSetDefaultBool");
- ConfigSetDefaultString = (ptr_ConfigSetDefaultString) osal_dynlib_getproc(CoreHandle, "ConfigSetDefaultString");
- ConfigGetParamInt = (ptr_ConfigGetParamInt) osal_dynlib_getproc(CoreHandle, "ConfigGetParamInt");
- ConfigGetParamFloat = (ptr_ConfigGetParamFloat) osal_dynlib_getproc(CoreHandle, "ConfigGetParamFloat");
- ConfigGetParamBool = (ptr_ConfigGetParamBool) osal_dynlib_getproc(CoreHandle, "ConfigGetParamBool");
- ConfigGetParamString = (ptr_ConfigGetParamString) osal_dynlib_getproc(CoreHandle, "ConfigGetParamString");
-
- ConfigGetSharedDataFilepath = (ptr_ConfigGetSharedDataFilepath) osal_dynlib_getproc(CoreHandle, "ConfigGetSharedDataFilepath");
- ConfigGetUserConfigPath = (ptr_ConfigGetUserConfigPath) osal_dynlib_getproc(CoreHandle, "ConfigGetUserConfigPath");
- ConfigGetUserDataPath = (ptr_ConfigGetUserDataPath) osal_dynlib_getproc(CoreHandle, "ConfigGetUserDataPath");
- ConfigGetUserCachePath = (ptr_ConfigGetUserCachePath) osal_dynlib_getproc(CoreHandle, "ConfigGetUserCachePath");
-
- /* get function pointers to the debugger functions */
- DebugSetCallbacks = (ptr_DebugSetCallbacks) osal_dynlib_getproc(CoreHandle, "DebugSetCallbacks");
- DebugSetCoreCompare = (ptr_DebugSetCoreCompare) osal_dynlib_getproc(CoreHandle, "DebugSetCoreCompare");
- DebugSetRunState = (ptr_DebugSetRunState) osal_dynlib_getproc(CoreHandle, "DebugSetRunState");
- DebugGetState = (ptr_DebugGetState) osal_dynlib_getproc(CoreHandle, "DebugGetState");
- DebugStep = (ptr_DebugStep) osal_dynlib_getproc(CoreHandle, "DebugStep");
- DebugDecodeOp = (ptr_DebugDecodeOp) osal_dynlib_getproc(CoreHandle, "DebugDecodeOp");
- DebugMemGetRecompInfo = (ptr_DebugMemGetRecompInfo) osal_dynlib_getproc(CoreHandle, "DebugMemGetRecompInfo");
- DebugMemGetMemInfo = (ptr_DebugMemGetMemInfo) osal_dynlib_getproc(CoreHandle, "DebugMemGetMemInfo");
- DebugMemGetPointer = (ptr_DebugMemGetPointer) osal_dynlib_getproc(CoreHandle, "DebugMemGetPointer");
-
- DebugMemRead64 = (ptr_DebugMemRead64) osal_dynlib_getproc(CoreHandle, "DebugMemRead64");
- DebugMemRead32 = (ptr_DebugMemRead32) osal_dynlib_getproc(CoreHandle, "DebugMemRead32");
- DebugMemRead16 = (ptr_DebugMemRead16) osal_dynlib_getproc(CoreHandle, "DebugMemRead16");
- DebugMemRead8 = (ptr_DebugMemRead8) osal_dynlib_getproc(CoreHandle, "DebugMemRead8");
-
- DebugMemWrite64 = (ptr_DebugMemWrite64) osal_dynlib_getproc(CoreHandle, "DebugMemRead64");
- DebugMemWrite32 = (ptr_DebugMemWrite32) osal_dynlib_getproc(CoreHandle, "DebugMemRead32");
- DebugMemWrite16 = (ptr_DebugMemWrite16) osal_dynlib_getproc(CoreHandle, "DebugMemRead16");
- DebugMemWrite8 = (ptr_DebugMemWrite8) osal_dynlib_getproc(CoreHandle, "DebugMemRead8");
-
- DebugGetCPUDataPtr = (ptr_DebugGetCPUDataPtr) osal_dynlib_getproc(CoreHandle, "DebugGetCPUDataPtr");
- DebugBreakpointLookup = (ptr_DebugBreakpointLookup) osal_dynlib_getproc(CoreHandle, "DebugBreakpointLookup");
- DebugBreakpointCommand = (ptr_DebugBreakpointCommand) osal_dynlib_getproc(CoreHandle, "DebugBreakpointCommand");
-
- return M64ERR_SUCCESS;
-}
-
-m64p_error DetachCoreLib(void)
-{
- if (CoreHandle == NULL)
- return M64ERR_INVALID_STATE;
-
- /* set the core function pointers to NULL */
- CoreErrorMessage = NULL;
- CoreStartup = NULL;
- CoreShutdown = NULL;
- CoreAttachPlugin = NULL;
- CoreDetachPlugin = NULL;
- CoreDoCommand = NULL;
- CoreOverrideVidExt = NULL;
- CoreAddCheat = NULL;
- CoreCheatEnabled = NULL;
-
- ConfigListSections = NULL;
- ConfigOpenSection = NULL;
- ConfigDeleteSection = NULL;
- ConfigSaveSection = NULL;
- ConfigListParameters = NULL;
- ConfigSetParameter = NULL;
- ConfigGetParameter = NULL;
- ConfigGetParameterType = NULL;
- ConfigGetParameterHelp = NULL;
- ConfigSetDefaultInt = NULL;
- ConfigSetDefaultBool = NULL;
- ConfigSetDefaultString = NULL;
- ConfigGetParamInt = NULL;
- ConfigGetParamBool = NULL;
- ConfigGetParamString = NULL;
-
- ConfigGetSharedDataFilepath = NULL;
- ConfigGetUserDataPath = NULL;
- ConfigGetUserCachePath = NULL;
-
- DebugSetCallbacks = NULL;
- DebugSetCoreCompare = NULL;
- DebugSetRunState = NULL;
- DebugGetState = NULL;
- DebugStep = NULL;
- DebugDecodeOp = NULL;
- DebugMemGetRecompInfo = NULL;
- DebugMemGetMemInfo = NULL;
- DebugMemGetPointer = NULL;
-
- DebugMemRead64 = NULL;
- DebugMemRead32 = NULL;
- DebugMemRead16 = NULL;
- DebugMemRead8 = NULL;
-
- DebugMemWrite64 = NULL;
- DebugMemWrite32 = NULL;
- DebugMemWrite16 = NULL;
- DebugMemWrite8 = NULL;
-
- DebugGetCPUDataPtr = NULL;
- DebugBreakpointLookup = NULL;
- DebugBreakpointCommand = NULL;
-
- /* detach the shared library */
- osal_dynlib_close(CoreHandle);
- CoreHandle = NULL;
-
- return M64ERR_SUCCESS;
-}
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/core_interface.h b/libmupen64plus/mupen64plus-ui-console/src/core_interface.h
deleted file mode 100644
index 295daae697..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/core_interface.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - core_interface.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#if !defined(CORE_INTERFACE_H)
-#define CORE_INTERFACE_H
-
-#include "m64p_types.h"
-#include "m64p_common.h"
-#include "m64p_frontend.h"
-#include "m64p_config.h"
-#include "m64p_debugger.h"
-
-/* function declarations */
-extern m64p_error AttachCoreLib(const char *CoreLibFilepath);
-extern m64p_error DetachCoreLib(void);
-
-/* global variables from core_interface.c */
-extern int g_CoreCapabilities;
-extern int g_CoreAPIVersion;
-
-/* declarations of Core library handle and pointers to common functions */
-extern m64p_dynlib_handle CoreHandle;
-extern ptr_CoreErrorMessage CoreErrorMessage;
-
-/* declarations of pointers to Core front-end functions */
-extern ptr_CoreStartup CoreStartup;
-extern ptr_CoreShutdown CoreShutdown;
-extern ptr_CoreAttachPlugin CoreAttachPlugin;
-extern ptr_CoreDetachPlugin CoreDetachPlugin;
-extern ptr_CoreDoCommand CoreDoCommand;
-extern ptr_CoreOverrideVidExt CoreOverrideVidExt;
-extern ptr_CoreAddCheat CoreAddCheat;
-extern ptr_CoreCheatEnabled CoreCheatEnabled;
-
-/* declarations of pointers to Core config functions */
-extern ptr_ConfigListSections ConfigListSections;
-extern ptr_ConfigOpenSection ConfigOpenSection;
-extern ptr_ConfigDeleteSection ConfigDeleteSection;
-extern ptr_ConfigSaveSection ConfigSaveSection;
-extern ptr_ConfigListParameters ConfigListParameters;
-extern ptr_ConfigSaveFile ConfigSaveFile;
-extern ptr_ConfigSetParameter ConfigSetParameter;
-extern ptr_ConfigGetParameter ConfigGetParameter;
-extern ptr_ConfigGetParameterType ConfigGetParameterType;
-extern ptr_ConfigGetParameterHelp ConfigGetParameterHelp;
-extern ptr_ConfigSetDefaultInt ConfigSetDefaultInt;
-extern ptr_ConfigSetDefaultFloat ConfigSetDefaultFloat;
-extern ptr_ConfigSetDefaultBool ConfigSetDefaultBool;
-extern ptr_ConfigSetDefaultString ConfigSetDefaultString;
-extern ptr_ConfigGetParamInt ConfigGetParamInt;
-extern ptr_ConfigGetParamFloat ConfigGetParamFloat;
-extern ptr_ConfigGetParamBool ConfigGetParamBool;
-extern ptr_ConfigGetParamString ConfigGetParamString;
-
-extern ptr_ConfigGetSharedDataFilepath ConfigGetSharedDataFilepath;
-extern ptr_ConfigGetUserConfigPath ConfigGetUserConfigPath;
-extern ptr_ConfigGetUserDataPath ConfigGetUserDataPath;
-extern ptr_ConfigGetUserCachePath ConfigGetUserCachePath;
-
-/* declarations of pointers to Core debugger functions */
-extern ptr_DebugSetCallbacks DebugSetCallbacks;
-extern ptr_DebugSetCoreCompare DebugSetCoreCompare;
-extern ptr_DebugSetRunState DebugSetRunState;
-extern ptr_DebugGetState DebugGetState;
-extern ptr_DebugStep DebugStep;
-extern ptr_DebugDecodeOp DebugDecodeOp;
-extern ptr_DebugMemGetRecompInfo DebugMemGetRecompInfo;
-extern ptr_DebugMemGetMemInfo DebugMemGetMemInfo;
-extern ptr_DebugMemGetPointer DebugMemGetPointer;
-
-extern ptr_DebugMemRead64 DebugMemRead64;
-extern ptr_DebugMemRead32 DebugMemRead32;
-extern ptr_DebugMemRead16 DebugMemRead16;
-extern ptr_DebugMemRead8 DebugMemRead8;
-
-extern ptr_DebugMemWrite64 DebugMemWrite64;
-extern ptr_DebugMemWrite32 DebugMemWrite32;
-extern ptr_DebugMemWrite16 DebugMemWrite16;
-extern ptr_DebugMemWrite8 DebugMemWrite8;
-
-extern ptr_DebugGetCPUDataPtr DebugGetCPUDataPtr;
-extern ptr_DebugBreakpointLookup DebugBreakpointLookup;
-extern ptr_DebugBreakpointCommand DebugBreakpointCommand;
-
-#endif /* #define CORE_INTERFACE_H */
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/main.c b/libmupen64plus/mupen64plus-ui-console/src/main.c
deleted file mode 100644
index c7f20e23a3..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/main.c
+++ /dev/null
@@ -1,756 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - main.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2007-2010 Richard42 *
- * Copyright (C) 2008 Ebenblues Nmn Okaygo Tillin9 *
- * Copyright (C) 2002 Hacktarux *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This is the main application entry point for the console-only front-end
- * for Mupen64Plus v2.0.
- */
-
-#include
-#include
-#include
-#include
-
-// The mac version of SDL requires inclusion of SDL_main in the executable
-#ifdef __APPLE__
- #include
-#endif
-
-#include "cheat.h"
-#include "main.h"
-#include "plugin.h"
-#include "version.h"
-#include "core_interface.h"
-#include "compare_core.h"
-#include "osal_preproc.h"
-
-/* Version number for UI-Console config section parameters */
-#define CONFIG_PARAM_VERSION 1.00
-
-/** global variables **/
-int g_Verbose = 0;
-
-/** static (local) variables **/
-static m64p_handle l_ConfigCore = NULL;
-static m64p_handle l_ConfigVideo = NULL;
-static m64p_handle l_ConfigUI = NULL;
-
-static const char *l_CoreLibPath = NULL;
-static const char *l_ConfigDirPath = NULL;
-static const char *l_ROMFilepath = NULL; // filepath of ROM to load & run at startup
-
-#if defined(SHAREDIR)
- static const char *l_DataDirPath = SHAREDIR;
-#else
- static const char *l_DataDirPath = NULL;
-#endif
-
-static int *l_TestShotList = NULL; // list of screenshots to take for regression test support
-static int l_TestShotIdx = 0; // index of next screenshot frame in list
-static int l_SaveOptions = 1; // save command-line options in configuration file (enabled by default)
-static int l_CoreCompareMode = 0; // 0 = disable, 1 = send, 2 = receive
-
-static eCheatMode l_CheatMode = CHEAT_DISABLE;
-static char *l_CheatNumList = NULL;
-
-/*********************************************************************************************************
- * Callback functions from the core
- */
-
-void DebugMessage(int level, const char *message, ...)
-{
- char msgbuf[1024];
- va_list args;
-
- va_start(args, message);
- vsnprintf(msgbuf, 1024, message, args);
-
- DebugCallback("UI-Console", level, msgbuf);
-
- va_end(args);
-}
-
-void DebugCallback(void *Context, int level, const char *message)
-{
- if (level == M64MSG_ERROR)
- printf("%s Error: %s\n", (const char *) Context, message);
- else if (level == M64MSG_WARNING)
- printf("%s Warning: %s\n", (const char *) Context, message);
- else if (level == M64MSG_INFO)
- printf("%s: %s\n", (const char *) Context, message);
- else if (level == M64MSG_STATUS)
- printf("%s Status: %s\n", (const char *) Context, message);
- else if (level == M64MSG_VERBOSE)
- {
- if (g_Verbose)
- printf("%s: %s\n", (const char *) Context, message);
- }
- else
- printf("%s Unknown: %s\n", (const char *) Context, message);
-}
-
-static void FrameCallback(unsigned int FrameIndex)
-{
- // take a screenshot if we need to
- if (l_TestShotList != NULL)
- {
- int nextshot = l_TestShotList[l_TestShotIdx];
- if (nextshot == FrameIndex)
- {
- (*CoreDoCommand)(M64CMD_TAKE_NEXT_SCREENSHOT, 0, NULL); /* tell the core take a screenshot */
- // advance list index to next screenshot frame number. If it's 0, then quit
- l_TestShotIdx++;
- }
- else if (nextshot == 0)
- {
- (*CoreDoCommand)(M64CMD_STOP, 0, NULL); /* tell the core to shut down ASAP */
- free(l_TestShotList);
- l_TestShotList = NULL;
- }
- }
-}
-/*********************************************************************************************************
- * Configuration handling
- */
-
-static m64p_error OpenConfigurationHandles(void)
-{
- float fConfigParamsVersion;
- int bSaveConfig = 0;
- m64p_error rval;
-
- /* Open Configuration sections for core library and console User Interface */
- rval = (*ConfigOpenSection)("Core", &l_ConfigCore);
- if (rval != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "failed to open 'Core' configuration section");
- return rval;
- }
-
- rval = (*ConfigOpenSection)("Video-General", &l_ConfigVideo);
- if (rval != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "failed to open 'Video-General' configuration section");
- return rval;
- }
-
- rval = (*ConfigOpenSection)("UI-Console", &l_ConfigUI);
- if (rval != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "failed to open 'UI-Console' configuration section");
- return rval;
- }
-
- if ((*ConfigGetParameter)(l_ConfigUI, "Version", M64TYPE_FLOAT, &fConfigParamsVersion, sizeof(float)) != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_WARNING, "No version number in 'UI-Console' config section. Setting defaults.");
- (*ConfigDeleteSection)("UI-Console");
- (*ConfigOpenSection)("UI-Console", &l_ConfigUI);
- bSaveConfig = 1;
- }
- else if (((int) fConfigParamsVersion) != ((int) CONFIG_PARAM_VERSION))
- {
- DebugMessage(M64MSG_WARNING, "Incompatible version %.2f in 'UI-Console' config section: current is %.2f. Setting defaults.", fConfigParamsVersion, (float) CONFIG_PARAM_VERSION);
- (*ConfigDeleteSection)("UI-Console");
- (*ConfigOpenSection)("UI-Console", &l_ConfigUI);
- bSaveConfig = 1;
- }
- else if ((CONFIG_PARAM_VERSION - fConfigParamsVersion) >= 0.0001f)
- {
- /* handle upgrades */
- float fVersion = CONFIG_PARAM_VERSION;
- ConfigSetParameter(l_ConfigUI, "Version", M64TYPE_FLOAT, &fVersion);
- DebugMessage(M64MSG_INFO, "Updating parameter set version in 'UI-Console' config section to %.2f", fVersion);
- bSaveConfig = 1;
- }
-
- /* Set default values for my Config parameters */
- (*ConfigSetDefaultFloat)(l_ConfigUI, "Version", CONFIG_PARAM_VERSION, "Mupen64Plus UI-Console config parameter set version number. Please don't change this version number.");
- (*ConfigSetDefaultString)(l_ConfigUI, "PluginDir", OSAL_CURRENT_DIR, "Directory in which to search for plugins");
- (*ConfigSetDefaultString)(l_ConfigUI, "VideoPlugin", "mupen64plus-video-rice" OSAL_DLL_EXTENSION, "Filename of video plugin");
- (*ConfigSetDefaultString)(l_ConfigUI, "AudioPlugin", "mupen64plus-audio-sdl" OSAL_DLL_EXTENSION, "Filename of audio plugin");
- (*ConfigSetDefaultString)(l_ConfigUI, "InputPlugin", "mupen64plus-input-sdl" OSAL_DLL_EXTENSION, "Filename of input plugin");
- (*ConfigSetDefaultString)(l_ConfigUI, "RspPlugin", "mupen64plus-rsp-hle" OSAL_DLL_EXTENSION, "Filename of RSP plugin");
-
- if (bSaveConfig && ConfigSaveSection != NULL) /* ConfigSaveSection was added in Config API v2.1.0 */
- (*ConfigSaveSection)("UI-Console");
-
- return M64ERR_SUCCESS;
-}
-
-static m64p_error SaveConfigurationOptions(void)
-{
- /* if shared data directory was given on the command line, write it into the config file */
- if (l_DataDirPath != NULL)
- (*ConfigSetParameter)(l_ConfigCore, "SharedDataPath", M64TYPE_STRING, l_DataDirPath);
-
- /* if any plugin filepaths were given on the command line, write them into the config file */
- if (g_PluginDir != NULL)
- (*ConfigSetParameter)(l_ConfigUI, "PluginDir", M64TYPE_STRING, g_PluginDir);
- if (g_GfxPlugin != NULL)
- (*ConfigSetParameter)(l_ConfigUI, "VideoPlugin", M64TYPE_STRING, g_GfxPlugin);
- if (g_AudioPlugin != NULL)
- (*ConfigSetParameter)(l_ConfigUI, "AudioPlugin", M64TYPE_STRING, g_AudioPlugin);
- if (g_InputPlugin != NULL)
- (*ConfigSetParameter)(l_ConfigUI, "InputPlugin", M64TYPE_STRING, g_InputPlugin);
- if (g_RspPlugin != NULL)
- (*ConfigSetParameter)(l_ConfigUI, "RspPlugin", M64TYPE_STRING, g_RspPlugin);
-
- return (*ConfigSaveFile)();
-}
-
-/*********************************************************************************************************
- * Command-line parsing
- */
-
-static void printUsage(const char *progname)
-{
- printf("Usage: %s [parameters] [romfile]\n"
- "\n"
- "Parameters:\n"
- " --noosd : disable onscreen display\n"
- " --osd : enable onscreen display\n"
- " --fullscreen : use fullscreen display mode\n"
- " --windowed : use windowed display mode\n"
- " --resolution (res) : display resolution (640x480, 800x600, 1024x768, etc)\n"
- " --nospeedlimit : disable core speed limiter (should be used with dummy audio plugin)\n"
- " --cheats (cheat-spec) : enable or list cheat codes for the given rom file\n"
- " --corelib (filepath) : use core library (filepath) (can be only filename or full path)\n"
- " --configdir (dir) : force configation directory to (dir); should contain mupen64plus.conf\n"
- " --datadir (dir) : search for shared data files (.ini files, languages, etc) in (dir)\n"
- " --plugindir (dir) : search for plugins in (dir)\n"
- " --sshotdir (dir) : set screenshot directory to (dir)\n"
- " --gfx (plugin-spec) : use gfx plugin given by (plugin-spec)\n"
- " --audio (plugin-spec) : use audio plugin given by (plugin-spec)\n"
- " --input (plugin-spec) : use input plugin given by (plugin-spec)\n"
- " --rsp (plugin-spec) : use rsp plugin given by (plugin-spec)\n"
- " --emumode (mode) : set emu mode to: 0=Pure Interpreter 1=Interpreter 2=DynaRec\n"
- " --testshots (list) : take screenshots at frames given in comma-separated (list), then quit\n"
- " --set (param-spec) : set a configuration variable, format: ParamSection[ParamName]=Value\n"
- " --core-compare-send : use the Core Comparison debugging feature, in data sending mode\n"
- " --core-compare-recv : use the Core Comparison debugging feature, in data receiving mode\n"
- " --nosaveoptions : do not save the given command-line options in configuration file\n"
- " --verbose : print lots of information\n"
- " --help : see this help message\n\n"
- "(plugin-spec):\n"
- " (pluginname) : filename (without path) of plugin to find in plugin directory\n"
- " (pluginpath) : full path and filename of plugin\n"
- " 'dummy' : use dummy plugin\n\n"
- "(cheat-spec):\n"
- " 'list' : show all of the available cheat codes\n"
- " 'all' : enable all of the available cheat codes\n"
- " (codelist) : a comma-separated list of cheat code numbers to enable,\n"
- " with dashes to use code variables (ex 1-2 to use cheat 1 option 2)\n"
- "\n", progname);
-
- return;
-}
-
-static int SetConfigParameter(const char *ParamSpec)
-{
- char *ParsedString, *VarName, *VarValue=NULL;
- m64p_handle ConfigSection;
- m64p_type VarType;
- m64p_error rval;
-
- if (ParamSpec == NULL)
- {
- DebugMessage(M64MSG_ERROR, "ParamSpec is NULL in SetConfigParameter()");
- return 1;
- }
-
- /* make a copy of the input string */
- ParsedString = (char *) malloc(strlen(ParamSpec) + 1);
- if (ParsedString == NULL)
- {
- DebugMessage(M64MSG_ERROR, "SetConfigParameter() couldn't allocate memory for temporary string.");
- return 2;
- }
- strcpy(ParsedString, ParamSpec);
-
- /* parse it for the simple section[name]=value format */
- VarName = strchr(ParsedString, '[');
- if (VarName != NULL)
- {
- *VarName++ = 0;
- VarValue = strchr(VarName, ']');
- if (VarValue != NULL)
- {
- *VarValue++ = 0;
- }
- }
- if (VarName == NULL || VarValue == NULL || *VarValue != '=')
- {
- DebugMessage(M64MSG_ERROR, "invalid (param-spec) '%s'", ParamSpec);
- free(ParsedString);
- return 3;
- }
- VarValue++;
-
- /* then set the value */
- rval = (*ConfigOpenSection)(ParsedString, &ConfigSection);
- if (rval != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "SetConfigParameter failed to open config section '%s'", ParsedString);
- free(ParsedString);
- return 4;
- }
- if ((*ConfigGetParameterType)(ConfigSection, VarName, &VarType) == M64ERR_SUCCESS)
- {
- switch(VarType)
- {
- int ValueInt;
- float ValueFloat;
- case M64TYPE_INT:
- ValueInt = atoi(VarValue);
- ConfigSetParameter(ConfigSection, VarName, M64TYPE_INT, &ValueInt);
- break;
- case M64TYPE_FLOAT:
- ValueFloat = (float) atof(VarValue);
- ConfigSetParameter(ConfigSection, VarName, M64TYPE_FLOAT, &ValueFloat);
- break;
- case M64TYPE_BOOL:
- ValueInt = (int) (osal_insensitive_strcmp(VarValue, "true") == 0);
- ConfigSetParameter(ConfigSection, VarName, M64TYPE_BOOL, &ValueInt);
- break;
- case M64TYPE_STRING:
- ConfigSetParameter(ConfigSection, VarName, M64TYPE_STRING, VarValue);
- break;
- default:
- DebugMessage(M64MSG_ERROR, "invalid VarType in SetConfigParameter()");
- return 5;
- }
- }
- else
- {
- ConfigSetParameter(ConfigSection, VarName, M64TYPE_STRING, VarValue);
- }
-
- free(ParsedString);
- return 0;
-}
-
-static int *ParseNumberList(const char *InputString, int *ValuesFound)
-{
- const char *str;
- int *OutputList;
-
- /* count the number of integers in the list */
- int values = 1;
- str = InputString;
- while ((str = strchr(str, ',')) != NULL)
- {
- str++;
- values++;
- }
-
- /* create a list and populate it with the frame counter values at which to take screenshots */
- if ((OutputList = (int *) malloc(sizeof(int) * (values + 1))) != NULL)
- {
- int idx = 0;
- str = InputString;
- while (str != NULL)
- {
- OutputList[idx++] = atoi(str);
- str = strchr(str, ',');
- if (str != NULL) str++;
- }
- OutputList[idx] = 0;
- }
-
- if (ValuesFound != NULL)
- *ValuesFound = values;
- return OutputList;
-}
-
-static int ParseCommandLineInitial(int argc, const char **argv)
-{
- int i;
-
- /* look through commandline options */
- for (i = 1; i < argc; i++)
- {
- int ArgsLeft = argc - i - 1;
-
- if (strcmp(argv[i], "--corelib") == 0 && ArgsLeft >= 1)
- {
- l_CoreLibPath = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--configdir") == 0 && ArgsLeft >= 1)
- {
- l_ConfigDirPath = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--datadir") == 0 && ArgsLeft >= 1)
- {
- l_DataDirPath = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0)
- {
- printUsage(argv[0]);
- return 1;
- }
- }
-
- return 0;
-}
-
-static m64p_error ParseCommandLineFinal(int argc, const char **argv)
-{
- int i;
-
- /* parse commandline options */
- for (i = 1; i < argc; i++)
- {
- int ArgsLeft = argc - i - 1;
- if (strcmp(argv[i], "--noosd") == 0)
- {
- int Osd = 0;
- (*ConfigSetParameter)(l_ConfigCore, "OnScreenDisplay", M64TYPE_BOOL, &Osd);
- }
- else if (strcmp(argv[i], "--osd") == 0)
- {
- int Osd = 1;
- (*ConfigSetParameter)(l_ConfigCore, "OnScreenDisplay", M64TYPE_BOOL, &Osd);
- }
- else if (strcmp(argv[i], "--fullscreen") == 0)
- {
- int Fullscreen = 1;
- (*ConfigSetParameter)(l_ConfigVideo, "Fullscreen", M64TYPE_BOOL, &Fullscreen);
- }
- else if (strcmp(argv[i], "--windowed") == 0)
- {
- int Fullscreen = 0;
- (*ConfigSetParameter)(l_ConfigVideo, "Fullscreen", M64TYPE_BOOL, &Fullscreen);
- }
- else if (strcmp(argv[i], "--nospeedlimit") == 0)
- {
- int EnableSpeedLimit = 0;
- if (g_CoreAPIVersion < 0x020001)
- DebugMessage(M64MSG_WARNING, "core library doesn't support --nospeedlimit");
- else
- {
- if ((*CoreDoCommand)(M64CMD_CORE_STATE_SET, M64CORE_SPEED_LIMITER, &EnableSpeedLimit) != M64ERR_SUCCESS)
- DebugMessage(M64MSG_ERROR, "core gave error while setting --nospeedlimit option");
- }
- }
- else if ((strcmp(argv[i], "--corelib") == 0 || strcmp(argv[i], "--configdir") == 0 ||
- strcmp(argv[i], "--datadir") == 0) && ArgsLeft >= 1)
- { /* these are handled in ParseCommandLineInitial */
- i++;
- }
- else if (strcmp(argv[i], "--resolution") == 0 && ArgsLeft >= 1)
- {
- const char *res = argv[i+1];
- int xres, yres;
- i++;
- if (sscanf(res, "%ix%i", &xres, &yres) != 2)
- DebugMessage(M64MSG_WARNING, "couldn't parse resolution '%s'", res);
- else
- {
- (*ConfigSetParameter)(l_ConfigVideo, "ScreenWidth", M64TYPE_INT, &xres);
- (*ConfigSetParameter)(l_ConfigVideo, "ScreenHeight", M64TYPE_INT, &yres);
- }
- }
- else if (strcmp(argv[i], "--cheats") == 0 && ArgsLeft >= 1)
- {
- if (strcmp(argv[i+1], "all") == 0)
- l_CheatMode = CHEAT_ALL;
- else if (strcmp(argv[i+1], "list") == 0)
- l_CheatMode = CHEAT_SHOW_LIST;
- else
- {
- l_CheatMode = CHEAT_LIST;
- l_CheatNumList = (char*) argv[i+1];
- }
- i++;
- }
- else if (strcmp(argv[i], "--plugindir") == 0 && ArgsLeft >= 1)
- {
- g_PluginDir = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--sshotdir") == 0 && ArgsLeft >= 1)
- {
- (*ConfigSetParameter)(l_ConfigCore, "ScreenshotPath", M64TYPE_STRING, argv[i+1]);
- i++;
- }
- else if (strcmp(argv[i], "--gfx") == 0 && ArgsLeft >= 1)
- {
- g_GfxPlugin = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--audio") == 0 && ArgsLeft >= 1)
- {
- g_AudioPlugin = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--input") == 0 && ArgsLeft >= 1)
- {
- g_InputPlugin = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--rsp") == 0 && ArgsLeft >= 1)
- {
- g_RspPlugin = argv[i+1];
- i++;
- }
- else if (strcmp(argv[i], "--emumode") == 0 && ArgsLeft >= 1)
- {
- int emumode = atoi(argv[i+1]);
- i++;
- if (emumode < 0 || emumode > 2)
- {
- DebugMessage(M64MSG_WARNING, "invalid --emumode value '%i'", emumode);
- continue;
- }
- if (emumode == 2 && !(g_CoreCapabilities & M64CAPS_DYNAREC))
- {
- DebugMessage(M64MSG_WARNING, "Emulator core doesn't support Dynamic Recompiler.");
- emumode = 1;
- }
- (*ConfigSetParameter)(l_ConfigCore, "R4300Emulator", M64TYPE_INT, &emumode);
- }
- else if (strcmp(argv[i], "--testshots") == 0 && ArgsLeft >= 1)
- {
- l_TestShotList = ParseNumberList(argv[i+1], NULL);
- i++;
- }
- else if (strcmp(argv[i], "--set") == 0 && ArgsLeft >= 1)
- {
- if (SetConfigParameter(argv[i+1]) != 0)
- return M64ERR_INPUT_INVALID;
- i++;
- }
- else if (strcmp(argv[i], "--core-compare-send") == 0)
- {
- l_CoreCompareMode = 1;
- }
- else if (strcmp(argv[i], "--core-compare-recv") == 0)
- {
- l_CoreCompareMode = 2;
- }
- else if (strcmp(argv[i], "--nosaveoptions") == 0)
- {
- l_SaveOptions = 0;
- }
- else if (ArgsLeft == 0)
- {
- /* this is the last arg, it should be a ROM filename */
- l_ROMFilepath = argv[i];
- return M64ERR_SUCCESS;
- }
- else if (strcmp(argv[i], "--verbose") == 0)
- {
- g_Verbose = 1;
- }
- else
- {
- DebugMessage(M64MSG_WARNING, "unrecognized command-line parameter '%s'", argv[i]);
- }
- /* continue argv loop */
- }
-
- /* missing ROM filepath */
- DebugMessage(M64MSG_ERROR, "no ROM filepath given");
- return M64ERR_INPUT_INVALID;
-}
-
-/*********************************************************************************************************
-* main function
-*/
-int main(int argc, char *argv[])
-{
- int i;
-
- printf(" __ __ __ _ _ ____ _ \n");
- printf("| \\/ |_ _ _ __ ___ _ __ / /_ | || | | _ \\| |_ _ ___ \n");
- printf("| |\\/| | | | | '_ \\ / _ \\ '_ \\| '_ \\| || |_| |_) | | | | / __| \n");
- printf("| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \\__ \\ \n");
- printf("|_| |_|\\__,_| .__/ \\___|_| |_|\\___/ |_| |_| |_|\\__,_|___/ \n");
- printf(" |_| http://code.google.com/p/mupen64plus/ \n");
- printf("%s Version %i.%i.%i\n\n", CONSOLE_UI_NAME, VERSION_PRINTF_SPLIT(CONSOLE_UI_VERSION));
-
- /* bootstrap some special parameters from the command line */
- if (ParseCommandLineInitial(argc, (const char **) argv) != 0)
- return 1;
-
- /* load the Mupen64Plus core library */
- if (AttachCoreLib(l_CoreLibPath) != M64ERR_SUCCESS)
- return 2;
-
- /* start the Mupen64Plus core library, load the configuration file */
- m64p_error rval = (*CoreStartup)(CORE_API_VERSION, l_ConfigDirPath, l_DataDirPath, "Core", DebugCallback, NULL, NULL);
- if (rval != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "couldn't start Mupen64Plus core library.");
- DetachCoreLib();
- return 3;
- }
-
- /* Open configuration sections */
- rval = OpenConfigurationHandles();
- if (rval != M64ERR_SUCCESS)
- {
- (*CoreShutdown)();
- DetachCoreLib();
- return 4;
- }
-
- /* parse command-line options */
- rval = ParseCommandLineFinal(argc, (const char **) argv);
- if (rval != M64ERR_SUCCESS)
- {
- (*CoreShutdown)();
- DetachCoreLib();
- return 5;
- }
-
- /* Handle the core comparison feature */
- if (l_CoreCompareMode != 0 && !(g_CoreCapabilities & M64CAPS_CORE_COMPARE))
- {
- DebugMessage(M64MSG_ERROR, "can't use --core-compare feature with this Mupen64Plus core library.");
- DetachCoreLib();
- return 6;
- }
- compare_core_init(l_CoreCompareMode);
-
- /* save the given command-line options in configuration file if requested */
- if (l_SaveOptions)
- SaveConfigurationOptions();
-
- /* load ROM image */
- FILE *fPtr = fopen(l_ROMFilepath, "rb");
- if (fPtr == NULL)
- {
- DebugMessage(M64MSG_ERROR, "couldn't open ROM file '%s' for reading.", l_ROMFilepath);
- (*CoreShutdown)();
- DetachCoreLib();
- return 7;
- }
-
- /* get the length of the ROM, allocate memory buffer, load it from disk */
- long romlength = 0;
- fseek(fPtr, 0L, SEEK_END);
- romlength = ftell(fPtr);
- fseek(fPtr, 0L, SEEK_SET);
- unsigned char *ROM_buffer = (unsigned char *) malloc(romlength);
- if (ROM_buffer == NULL)
- {
- DebugMessage(M64MSG_ERROR, "couldn't allocate %li-byte buffer for ROM image file '%s'.", romlength, l_ROMFilepath);
- fclose(fPtr);
- (*CoreShutdown)();
- DetachCoreLib();
- return 8;
- }
- else if (fread(ROM_buffer, 1, romlength, fPtr) != romlength)
- {
- DebugMessage(M64MSG_ERROR, "couldn't read %li bytes from ROM image file '%s'.", romlength, l_ROMFilepath);
- free(ROM_buffer);
- fclose(fPtr);
- (*CoreShutdown)();
- DetachCoreLib();
- return 9;
- }
- fclose(fPtr);
-
- /* Try to load the ROM image into the core */
- if ((*CoreDoCommand)(M64CMD_ROM_OPEN, (int) romlength, ROM_buffer) != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "core failed to open ROM image file '%s'.", l_ROMFilepath);
- free(ROM_buffer);
- (*CoreShutdown)();
- DetachCoreLib();
- return 10;
- }
- free(ROM_buffer); /* the core copies the ROM image, so we can release this buffer immediately */
-
- /* handle the cheat codes */
- CheatStart(l_CheatMode, l_CheatNumList);
- if (l_CheatMode == CHEAT_SHOW_LIST)
- {
- (*CoreDoCommand)(M64CMD_ROM_CLOSE, 0, NULL);
- (*CoreShutdown)();
- DetachCoreLib();
- return 11;
- }
-
- /* search for and load plugins */
- rval = PluginSearchLoad(l_ConfigUI);
- if (rval != M64ERR_SUCCESS)
- {
- (*CoreDoCommand)(M64CMD_ROM_CLOSE, 0, NULL);
- (*CoreShutdown)();
- DetachCoreLib();
- return 12;
- }
-
- /* attach plugins to core */
- for (i = 0; i < 4; i++)
- {
- if ((*CoreAttachPlugin)(g_PluginMap[i].type, g_PluginMap[i].handle) != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "core error while attaching %s plugin.", g_PluginMap[i].name);
- (*CoreDoCommand)(M64CMD_ROM_CLOSE, 0, NULL);
- (*CoreShutdown)();
- DetachCoreLib();
- return 13;
- }
- }
-
- /* set up Frame Callback if --testshots is enabled */
- if (l_TestShotList != NULL)
- {
- if ((*CoreDoCommand)(M64CMD_SET_FRAME_CALLBACK, 0, FrameCallback) != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_WARNING, "couldn't set frame callback, so --testshots won't work.");
- }
- }
-
- /* run the game */
- (*CoreDoCommand)(M64CMD_EXECUTE, 0, NULL);
-
- /* detach plugins from core and unload them */
- for (i = 0; i < 4; i++)
- (*CoreDetachPlugin)(g_PluginMap[i].type);
- PluginUnload();
-
- /* close the ROM image */
- (*CoreDoCommand)(M64CMD_ROM_CLOSE, 0, NULL);
-
- /* save the configuration file again if --nosaveoptions was not specified, to keep any updated parameters from the core/plugins */
- if (l_SaveOptions)
- SaveConfigurationOptions();
-
- /* Shut down and release the Core library */
- (*CoreShutdown)();
- DetachCoreLib();
-
- /* free allocated memory */
- if (l_TestShotList != NULL)
- free(l_TestShotList);
-
- return 0;
-}
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/main.h b/libmupen64plus/mupen64plus-ui-console/src/main.h
deleted file mode 100644
index 5ab3752640..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/main.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus - main.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard42 *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef __MAIN_H__
-#define __MAIN_H__
-
-extern void DebugMessage(int level, const char *message, ...);
-extern void DebugCallback(void *Context, int level, const char *message);
-
-extern int g_Verbose;
-
-#endif /* __MAIN_H__ */
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib.h b/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib.h
deleted file mode 100644
index 15b45d3aa6..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_dynamiclib.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#if !defined(OSAL_DYNAMICLIB_H)
-#define OSAL_DYNAMICLIB_H
-
-#include "m64p_types.h"
-
-m64p_error osal_dynlib_open(m64p_dynlib_handle *pLibHandle, const char *pccLibraryPath);
-
-void * osal_dynlib_getproc(m64p_dynlib_handle LibHandle, const char *pccProcedureName);
-
-m64p_error osal_dynlib_close(m64p_dynlib_handle LibHandle);
-
-#endif /* #define OSAL_DYNAMICLIB_H */
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib_unix.c b/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib_unix.c
deleted file mode 100644
index 870db48cc8..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib_unix.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_dynamiclib_unix.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include
-#include
-#include
-#include
-
-#include "main.h"
-#include "m64p_types.h"
-#include "osal_dynamiclib.h"
-
-m64p_error osal_dynlib_open(m64p_dynlib_handle *pLibHandle, const char *pccLibraryPath)
-{
- if (pLibHandle == NULL || pccLibraryPath == NULL)
- return M64ERR_INPUT_ASSERT;
-
- *pLibHandle = dlopen(pccLibraryPath, RTLD_NOW);
-
- if (*pLibHandle == NULL)
- {
- /* only print an error message if there is a directory separator (/) in the pathname */
- /* this prevents us from throwing an error for the use case where Mupen64Plus is not installed */
- if (strchr(pccLibraryPath, '/') != NULL)
- DebugMessage(M64MSG_ERROR, "dlopen('%s') failed: %s", pccLibraryPath, dlerror());
- return M64ERR_INPUT_NOT_FOUND;
- }
-
- return M64ERR_SUCCESS;
-}
-
-void * osal_dynlib_getproc(m64p_dynlib_handle LibHandle, const char *pccProcedureName)
-{
- if (pccProcedureName == NULL)
- return NULL;
-
- return dlsym(LibHandle, pccProcedureName);
-}
-
-m64p_error osal_dynlib_close(m64p_dynlib_handle LibHandle)
-{
- int rval = dlclose(LibHandle);
-
- if (rval != 0)
- {
- DebugMessage(M64MSG_ERROR, "dlclose() failed: %s", dlerror());
- return M64ERR_INTERNAL;
- }
-
- return M64ERR_SUCCESS;
-}
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib_win32.c b/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib_win32.c
deleted file mode 100644
index 052fd79c75..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_dynamiclib_win32.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_dynamiclib_win32.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include
-#include
-#include
-
-#include "main.h"
-#include "m64p_types.h"
-#include "osal_dynamiclib.h"
-
-m64p_error osal_dynlib_open(m64p_dynlib_handle *pLibHandle, const char *pccLibraryPath)
-{
- if (pLibHandle == NULL || pccLibraryPath == NULL)
- return M64ERR_INPUT_ASSERT;
-
- *pLibHandle = LoadLibrary(pccLibraryPath);
-
- if (*pLibHandle == NULL)
- {
- char *pchErrMsg;
- DWORD dwErr = GetLastError();
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErr,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &pchErrMsg, 0, NULL);
- DebugMessage(M64MSG_ERROR, "LoadLibrary('%s') error: %s", pccLibraryPath, pchErrMsg);
- LocalFree(pchErrMsg);
- return M64ERR_INPUT_NOT_FOUND;
- }
-
- return M64ERR_SUCCESS;
-}
-
-void * osal_dynlib_getproc(m64p_dynlib_handle LibHandle, const char *pccProcedureName)
-{
- if (pccProcedureName == NULL)
- return NULL;
-
- return GetProcAddress(LibHandle, pccProcedureName);
-}
-
-m64p_error osal_dynlib_close(m64p_dynlib_handle LibHandle)
-{
- int rval = FreeLibrary(LibHandle);
-
- if (rval == 0)
- {
- char *pchErrMsg;
- DWORD dwErr = GetLastError();
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErr,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &pchErrMsg, 0, NULL);
- DebugMessage(M64MSG_ERROR, "FreeLibrary() error: %s", pchErrMsg);
- LocalFree(pchErrMsg);
- return M64ERR_INTERNAL;
- }
-
- return M64ERR_SUCCESS;
-}
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_files.h b/libmupen64plus/mupen64plus-ui-console/src/osal_files.h
deleted file mode 100644
index 31ef4a6a9d..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_files.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_files.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This header file is for all kinds of system-dependent file handling
- *
- */
-
-#if !defined(OSAL_FILES_H)
-#define OSAL_FILES_H
-
-#include "m64p_types.h"
-#include "osal_preproc.h"
-
-/* data structure for linked list of shared libraries found in a directory */
-typedef struct _osal_lib_search {
- char filepath[PATH_MAX];
- char *filename;
- m64p_plugin_type plugin_type;
- struct _osal_lib_search *next;
- } osal_lib_search;
-
-/* const definitions for system directories to search when looking for mupen64plus plugins */
-extern const int osal_libsearchdirs;
-extern const char *osal_libsearchpath[];
-
-/* functions for searching for shared libraries in a given directory */
-extern osal_lib_search *osal_library_search(const char *searchpath);
-extern void osal_free_lib_list(osal_lib_search *head);
-
-#endif /* #define OSAL_FILES_H */
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_files_unix.c b/libmupen64plus/mupen64plus-ui-console/src/osal_files_unix.c
deleted file mode 100644
index 2199271d45..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_files_unix.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_files_unix.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This implements all kinds of system-dependent file handling
- *
- */
-
-#include
-#include
-#include
-#include
-#include // for opendir(), readdir(), closedir()
-
-#include "main.h"
-#include "m64p_types.h"
-#include "osal_preproc.h"
-#include "osal_files.h"
-
-/* definitions for system directories to search when looking for mupen64plus plugins */
-#if defined(PLUGINDIR)
- const int osal_libsearchdirs = 4;
- const char *osal_libsearchpath[4] = { PLUGINDIR, "/usr/local/lib/mupen64plus", "/usr/lib/mupen64plus", "./" };
-#else
- const int osal_libsearchdirs = 3;
- const char *osal_libsearchpath[3] = { "/usr/local/lib/mupen64plus", "/usr/lib/mupen64plus", "./" };
-#endif
-
-osal_lib_search *osal_library_search(const char *searchpath)
-{
- osal_lib_search *head = NULL, *curr = NULL;
- DIR *dir;
- struct dirent *entry;
-
-#ifdef __APPLE__
- const char* suffix = ".dylib";
-#else
- const char* suffix = ".so";
-#endif
-
- dir = opendir(searchpath);
- if (dir == NULL)
- return NULL;
-
- /* look for any shared libraries in this folder */
- while ((entry = readdir(dir)) != NULL)
- {
- osal_lib_search *newlib = NULL;
- if (strcmp(entry->d_name + strlen(entry->d_name) - strlen(suffix), suffix) != 0)
- continue;
- /* this is a .so file, so add it to the list */
- newlib = malloc(sizeof(osal_lib_search));
- if (newlib == NULL)
- {
- DebugMessage(M64MSG_ERROR, "Memory allocation error in osal_library_search()!");
- osal_free_lib_list(head);
- closedir(dir);
- return NULL;
- }
- if (head == NULL)
- {
- head = curr = newlib;
- }
- else
- {
- curr->next = newlib;
- curr = newlib;
- }
- /* set up the filepath and filename members */
- strncpy(curr->filepath, searchpath, PATH_MAX-2);
- curr->filepath[PATH_MAX-2] = 0;
- if (curr->filepath[strlen(curr->filepath)-1] != '/')
- strcat(curr->filepath, "/");
- int pathlen = strlen(curr->filepath);
- curr->filename = curr->filepath + pathlen;
- strncat(curr->filepath, entry->d_name, PATH_MAX - pathlen - 1);
- curr->filepath[PATH_MAX-1] = 0;
- /* set plugin_type and next pointer */
- curr->plugin_type = 0;
- curr->next = NULL;
- }
-
- closedir(dir);
- return head;
-}
-
-void osal_free_lib_list(osal_lib_search *head)
-{
- while (head != NULL)
- {
- osal_lib_search *next = head->next;
- free(head);
- head = next;
- }
-}
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_files_win32.c b/libmupen64plus/mupen64plus-ui-console/src/osal_files_win32.c
deleted file mode 100644
index 0cd3f2c328..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_files_win32.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_files_win32.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This implements all kinds of system-dependent file handling
- *
- */
-
-#include
-#include
-#include
-#include
-
-#include "main.h"
-#include "m64p_types.h"
-#include "osal_preproc.h"
-#include "osal_files.h"
-
-/* definitions for system directories to search when looking for mupen64plus plugins */
-const int osal_libsearchdirs = 1;
-const char *osal_libsearchpath[1] = { ".\\" };
-
-osal_lib_search *osal_library_search(const char *searchpath)
-{
- osal_lib_search *head = NULL, *curr = NULL;
- WIN32_FIND_DATA entry;
- HANDLE hDir;
-
- char *pchSearchPath = (char *) malloc(strlen(searchpath) + 16);
- if (pchSearchPath == NULL)
- {
- DebugMessage(M64MSG_ERROR, "Couldn't allocate memory for file search path in osal_library_search()!");
- return NULL;
- }
- sprintf(pchSearchPath, "%s\\*.dll", searchpath);
- hDir = FindFirstFile(pchSearchPath, &entry);
- free(pchSearchPath);
- if (hDir == INVALID_HANDLE_VALUE)
- return NULL;
-
- /* look for any shared libraries in this folder */
- do
- {
- osal_lib_search *newlib = NULL;
- /* this is a .dll file, so add it to the list */
- newlib = (osal_lib_search *) malloc(sizeof(osal_lib_search));
- if (newlib == NULL)
- {
- DebugMessage(M64MSG_ERROR, "Memory allocation error in osal_library_search()!");
- osal_free_lib_list(head);
- FindClose(hDir);
- return NULL;
- }
- if (head == NULL)
- {
- head = curr = newlib;
- }
- else
- {
- curr->next = newlib;
- curr = newlib;
- }
- /* set up the filepath and filename members */
- strncpy(curr->filepath, searchpath, PATH_MAX-2);
- curr->filepath[PATH_MAX-2] = 0;
- if (curr->filepath[strlen(curr->filepath)-1] != '\\')
- strcat(curr->filepath, "\\");
- int pathlen = (int) strlen(curr->filepath);
- curr->filename = curr->filepath + pathlen;
- strncat(curr->filepath, entry.cFileName, PATH_MAX - pathlen - 1);
- curr->filepath[PATH_MAX-1] = 0;
- /* set plugin_type and next pointer */
- curr->plugin_type = (m64p_plugin_type) 0;
- curr->next = NULL;
- } while (FindNextFile(hDir, &entry));
-
- FindClose(hDir);
- return head;
-}
-
-void osal_free_lib_list(osal_lib_search *head)
-{
- while (head != NULL)
- {
- osal_lib_search *next = head->next;
- free(head);
- head = next;
- }
-}
diff --git a/libmupen64plus/mupen64plus-ui-console/src/osal_preproc.h b/libmupen64plus/mupen64plus-ui-console/src/osal_preproc.h
deleted file mode 100644
index 8503ff6982..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/osal_preproc.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - osal_preproc.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This header file is for OS-specific #includes and #defines
- *
- */
-
-#if !defined(OSAL_PREPROC_H)
-#define OSAL_PREPROC_H
-
-#if defined(WIN32)
-
- #include
- #define PATH_MAX 2048
- #define OSAL_DEFAULT_DYNLIB_FILENAME "mupen64plus.dll"
- #define OSAL_DIR_SEPARATOR '\\'
- #define OSAL_CURRENT_DIR ".\\"
- #define OSAL_DLL_EXTENSION ".dll"
- #define osal_insensitive_strcmp(x, y) _stricmp(x, y)
-
-#elif defined(__APPLE__)
-
- #include // for PATH_MAX
- #define OSAL_DEFAULT_DYNLIB_FILENAME "libmupen64plus.dylib"
- #define OSAL_DIR_SEPARATOR '/'
- #define OSAL_CURRENT_DIR "./"
- #define OSAL_DLL_EXTENSION ".dylib"
- #define osal_insensitive_strcmp(x, y) strcasecmp(x, y)
-
-#else /* Linux-like UNIX */
-
- #include // for PATH_MAX
- #define OSAL_DEFAULT_DYNLIB_FILENAME "libmupen64plus.so.2"
- #define OSAL_DIR_SEPARATOR '/'
- #define OSAL_CURRENT_DIR "./"
- #define OSAL_DLL_EXTENSION ".so"
- #define osal_insensitive_strcmp(x, y) strcasecmp(x, y)
-
- /* PATH_MAX only may be defined by limits.h */
- #ifndef PATH_MAX
- #define PATH_MAX 4096
- #endif
-
-#endif
-
-#endif /* #define OSAL_PREPROC_H */
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/plugin.c b/libmupen64plus/mupen64plus-ui-console/src/plugin.c
deleted file mode 100644
index a8edb7877c..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/plugin.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - plugin.c *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard42 *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include
-#include
-#include
-
-#include "m64p_types.h"
-#include "m64p_common.h"
-#include "core_interface.h"
-#include "osal_dynamiclib.h"
-#include "osal_files.h"
-#include "plugin.h"
-#include "main.h" /* for the debug callback function */
-#include "version.h"
-
-/* global variables */
-const char *g_PluginDir = NULL;
-const char *g_GfxPlugin = NULL; // pointer to graphics plugin specified at commandline (if any)
-const char *g_AudioPlugin = NULL; // pointer to audio plugin specified at commandline (if any)
-const char *g_InputPlugin = NULL; // pointer to input plugin specified at commandline (if any)
-const char *g_RspPlugin = NULL; // pointer to rsp plugin specified at commandline (if any)
-
-plugin_map_node g_PluginMap[] = {{M64PLUGIN_GFX, "Video", NULL, "", NULL, 0 },
- {M64PLUGIN_AUDIO, "Audio", NULL, "", NULL, 0 },
- {M64PLUGIN_INPUT, "Input", NULL, "", NULL, 0 },
- {M64PLUGIN_RSP, "RSP", NULL, "", NULL, 0 } };
-
-/* local functions */
-static m64p_error PluginLoadTry(const char *filepath, int MapIndex)
-{
- /* try to open a shared library at the given filepath */
- m64p_dynlib_handle handle;
- m64p_error rval = osal_dynlib_open(&handle, filepath);
- if (rval != M64ERR_SUCCESS)
- return rval;
-
- /* call the GetVersion function for the plugin and check compatibility */
- ptr_PluginGetVersion PluginGetVersion = (ptr_PluginGetVersion) osal_dynlib_getproc(handle, "PluginGetVersion");
- if (PluginGetVersion == NULL)
- {
- if (g_Verbose)
- DebugMessage(M64MSG_ERROR, "library '%s' is not a Mupen64Plus library.", filepath);
- osal_dynlib_close(handle);
- return M64ERR_INCOMPATIBLE;
- }
- m64p_plugin_type PluginType = (m64p_plugin_type) 0;
- int PluginVersion = 0;
- const char *PluginName = NULL;
- (*PluginGetVersion)(&PluginType, &PluginVersion, NULL, &PluginName, NULL);
- if (PluginType != g_PluginMap[MapIndex].type)
- {
- /* the type of this plugin doesn't match with the type that was requested by the caller */
- osal_dynlib_close(handle);
- return M64ERR_INCOMPATIBLE;
- }
- /* the front-end doesn't talk to the plugins, so we don't care about the plugin version or api version */
-
- /* call the plugin's initialization function and make sure it starts okay */
- ptr_PluginStartup PluginStartup = (ptr_PluginStartup) osal_dynlib_getproc(handle, "PluginStartup");
- if (PluginStartup == NULL)
- {
- DebugMessage(M64MSG_ERROR, "library '%s' broken. No PluginStartup() function found.", filepath);
- osal_dynlib_close(handle);
- return M64ERR_INCOMPATIBLE;
- }
- rval = (*PluginStartup)(CoreHandle, g_PluginMap[MapIndex].name, DebugCallback); /* DebugCallback is in main.c */
- if (rval != M64ERR_SUCCESS)
- {
- DebugMessage(M64MSG_ERROR, "Error: %s plugin library '%s' failed to start.", g_PluginMap[MapIndex].name, filepath);
- osal_dynlib_close(handle);
- return rval;
- }
-
- /* plugin loaded successfully, so set the plugin map's members */
- g_PluginMap[MapIndex].handle = handle;
- strcpy(g_PluginMap[MapIndex].filename, filepath);
- g_PluginMap[MapIndex].libname = PluginName;
- g_PluginMap[MapIndex].libversion = PluginVersion;
-
- return M64ERR_SUCCESS;
-}
-
-/* global functions */
-m64p_error PluginSearchLoad(m64p_handle ConfigUI)
-{
- osal_lib_search *lib_filelist = NULL;
- int i;
-
- /* start by checking the directory given on the command line */
- if (g_PluginDir != NULL)
- {
- lib_filelist = osal_library_search(g_PluginDir);
- if (lib_filelist == NULL)
- {
- DebugMessage(M64MSG_ERROR, "No plugins found in --plugindir path: %s", g_PluginDir);
- return M64ERR_INPUT_NOT_FOUND;
- }
- }
-
- /* if no plugins found, search the PluginDir in the UI-console section of the config file */
- if (lib_filelist == NULL)
- {
- const char *plugindir = (*ConfigGetParamString)(ConfigUI, "PluginDir");
- lib_filelist = osal_library_search(plugindir);
- }
-
- /* if still no plugins found, search some common system folders */
- if (lib_filelist == NULL)
- {
- for (i = 0; i < osal_libsearchdirs; i++)
- {
- lib_filelist = osal_library_search(osal_libsearchpath[i]);
- if (lib_filelist != NULL)
- break;
- }
- }
-
- /* try to load one of each type of plugin */
- for (i = 0; i < 4; i++)
- {
- m64p_plugin_type type = g_PluginMap[i].type;
- const char *cmdline_path = NULL;
- const char *config_var = NULL;
- int use_dummy = 0;
- switch (type)
- {
- case M64PLUGIN_RSP: cmdline_path = g_RspPlugin; config_var = "RspPlugin"; break;
- case M64PLUGIN_GFX: cmdline_path = g_GfxPlugin; config_var = "VideoPlugin"; break;
- case M64PLUGIN_AUDIO: cmdline_path = g_AudioPlugin; config_var = "AudioPlugin"; break;
- case M64PLUGIN_INPUT: cmdline_path = g_InputPlugin; config_var = "InputPlugin"; break;
- default: cmdline_path = NULL; config_var = "";
- }
- /* first search for a plugin matching what was given on the command line */
- if (cmdline_path != NULL)
- {
- /* if full path was given, try loading exactly this file */
- if (strchr(cmdline_path, OSAL_DIR_SEPARATOR) != NULL)
- {
- PluginLoadTry(cmdline_path, i);
- }
- else if (strcmp(cmdline_path, "dummy") == 0)
- {
- use_dummy = 1;
- }
- else /* otherwise search through the plugin directory to find a match with this name */
- {
- osal_lib_search *curr = lib_filelist;
- while (curr != NULL && g_PluginMap[i].handle == NULL)
- {
- if (strncmp(curr->filename, cmdline_path, strlen(cmdline_path)) == 0)
- PluginLoadTry(curr->filepath, i);
- curr = curr->next;
- }
- }
- /* exit with error if we couldn't find the specified plugin */
- if (!use_dummy && g_PluginMap[i].handle == NULL)
- {
- DebugMessage(M64MSG_ERROR, "Specified %s plugin not found: %s", g_PluginMap[i].name, cmdline_path);
- osal_free_lib_list(lib_filelist);
- return M64ERR_INPUT_NOT_FOUND;
- }
- }
- else /* otherwise search for a plugin specified in the config file */
- {
- const char *config_path = (*ConfigGetParamString)(ConfigUI, config_var);
- if (config_path != NULL && strlen(config_path) > 0)
- {
- /* if full path was given, try loading exactly this file */
- if (strchr(config_path, OSAL_DIR_SEPARATOR) != NULL)
- {
- PluginLoadTry(config_path, i);
- }
- else if (strcmp(config_path, "dummy") == 0)
- {
- use_dummy = 1;
- }
- else /* otherwise search through the plugin directory to find a match with this name */
- {
- osal_lib_search *curr = lib_filelist;
- while (curr != NULL && g_PluginMap[i].handle == NULL)
- {
- if (strncmp(curr->filename, config_path, strlen(config_path)) == 0)
- PluginLoadTry(curr->filepath, i);
- curr = curr->next;
- }
- }
- }
- }
- /* As a last resort, search for any appropriate plugin in search directory */
- if (!use_dummy && g_PluginMap[i].handle == NULL)
- {
- osal_lib_search *curr = lib_filelist;
- while (curr != NULL && g_PluginMap[i].handle == NULL)
- {
- PluginLoadTry(curr->filepath, i);
- curr = curr->next;
- }
- }
- /* print out the particular plugin used */
- if (g_PluginMap[i].handle == NULL)
- {
- DebugMessage(M64MSG_INFO, "using %s plugin: ", g_PluginMap[i].name);
- }
- else
- {
- DebugMessage(M64MSG_INFO, "using %s plugin: '%s' v%i.%i.%i", g_PluginMap[i].name,
- g_PluginMap[i].libname, VERSION_PRINTF_SPLIT(g_PluginMap[i].libversion));
- DebugMessage(M64MSG_VERBOSE, "%s plugin library: %s", g_PluginMap[i].name, g_PluginMap[i].filename);
- }
- }
-
- /* free up the list of library files in the plugin search directory */
- osal_free_lib_list(lib_filelist);
- return M64ERR_SUCCESS;
-}
-
-m64p_error PluginUnload(void)
-{
- typedef m64p_error (*ptr_PluginShutdown)(void);
- ptr_PluginShutdown PluginShutdown;
- int i;
-
- /* shutdown each type of plugin */
- for (i = 0; i < 4; i++)
- {
- if (g_PluginMap[i].handle == NULL)
- continue;
- /* call the destructor function for the plugin and release the library */
- PluginShutdown = (ptr_PluginShutdown) osal_dynlib_getproc(g_PluginMap[i].handle, "PluginShutdown");
- if (PluginShutdown != NULL)
- (*PluginShutdown)();
- osal_dynlib_close(g_PluginMap[i].handle);
- /* clear out the plugin map's members */
- g_PluginMap[i].handle = NULL;
- g_PluginMap[i].filename[0] = 0;
- g_PluginMap[i].libname = NULL;
- g_PluginMap[i].libversion = 0;
- }
-
- return M64ERR_SUCCESS;
-}
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/plugin.h b/libmupen64plus/mupen64plus-ui-console/src/plugin.h
deleted file mode 100644
index 3d9a1f381a..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/plugin.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - plugin.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard42 *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#if !defined(PLUGIN_H)
-#define PLUGIN_H
-
-#include "m64p_types.h"
-#include "osal_preproc.h"
-
-extern m64p_error PluginSearchLoad(m64p_handle ConfigUI);
-extern m64p_error PluginUnload(void);
-
-extern const char *g_PluginDir; // directory to search for plugins
-extern const char *g_GfxPlugin; // graphics plugin specified at commandline (if any)
-extern const char *g_AudioPlugin; // audio plugin specified at commandline (if any)
-extern const char *g_InputPlugin; // input plugin specified at commandline (if any)
-extern const char *g_RspPlugin; // rsp plugin specified at commandline (if any)
-
-typedef struct {
- m64p_plugin_type type;
- char name[8];
- m64p_dynlib_handle handle;
- char filename[PATH_MAX];
- const char *libname;
- int libversion;
- } plugin_map_node;
-
-extern plugin_map_node g_PluginMap[4];
-
-#endif /* #define PLUGIN_H */
-
-
diff --git a/libmupen64plus/mupen64plus-ui-console/src/version.h b/libmupen64plus/mupen64plus-ui-console/src/version.h
deleted file mode 100644
index d26973d362..0000000000
--- a/libmupen64plus/mupen64plus-ui-console/src/version.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Mupen64plus-ui-console - version.h *
- * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
- * Copyright (C) 2009 Richard Goedeken *
- * *
- * 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; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * 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 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This header file is for versioning information
- *
- */
-
-#if !defined(VERSION_H)
-#define VERSION_H
-
-#define CONSOLE_UI_NAME "Mupen64Plus Console User-Interface"
-#define CONSOLE_UI_VERSION 0x016305
-#define CORE_API_VERSION 0x20001
-#define CONFIG_API_VERSION 0x20000
-
-#define MINIMUM_CORE_VERSION 0x016300
-
-#define VERSION_PRINTF_SPLIT(x) (((x) >> 16) & 0xffff), (((x) >> 8) & 0xff), ((x) & 0xff)
-
-#endif /* #define VERSION_H */
-
diff --git a/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc11/mupen64plus-video-glide64mk2.vcxproj b/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc11/mupen64plus-video-glide64mk2.vcxproj
index 2d5cd0ea91..685da5e996 100644
--- a/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc11/mupen64plus-video-glide64mk2.vcxproj
+++ b/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc11/mupen64plus-video-glide64mk2.vcxproj
@@ -157,7 +157,7 @@
Copying shared data and libraries to build directory...
- xcopy /y $(OutDir)$(TargetName)$(TargetExt) $(TargetDir)..\..\..\..\..\output\dll\
+ xcopy /y "$(OutDir)$(TargetName)$(TargetExt)" "$(TargetDir)..\..\..\..\..\output\dll\"
diff --git a/libmupen64plus/mupen64plus-video-rice/projects/msvc11/mupen64plus-video-rice.vcxproj b/libmupen64plus/mupen64plus-video-rice/projects/msvc11/mupen64plus-video-rice.vcxproj
index 144da86b22..82b239397b 100644
--- a/libmupen64plus/mupen64plus-video-rice/projects/msvc11/mupen64plus-video-rice.vcxproj
+++ b/libmupen64plus/mupen64plus-video-rice/projects/msvc11/mupen64plus-video-rice.vcxproj
@@ -97,7 +97,7 @@
MachineX86
- xcopy /y $(OutDir)$(TargetName)$(TargetExt) $(TargetDir)..\..\..\..\..\output\dll\
+ xcopy /y "$(OutDir)$(TargetName)$(TargetExt)" "$(TargetDir)..\..\..\..\..\output\dll\"