Commit graph

321 commits

Author SHA1 Message Date
Richard Goedeken
4d70a77201 merged heads 2013-02-02 22:28:06 -08:00
richard42
e1701fc6c5 OSX build fix 2013-02-02 22:21:33 -08:00
Richard Goedeken
9f1df227da merge patches from npepinpe: new-dynarec-u_int-fix branch and osx-use-system-zlib branch 2013-02-02 21:58:07 -08:00
Sven Eckelmann
a27c5858ea Enable link time garbage collection when link time optimization is enabled 2013-02-01 10:01:53 +01:00
Sven Eckelmann
8a5669c550 Introduce WARNFLAGS for default (removable) compiler warning flags 2013-01-02 21:56:16 +01:00
Sven Eckelmann
61395b2a34 Link against pthreads on MinGW for localtime_r emulation 2013-01-01 00:35:25 +01:00
Sven Eckelmann
be503102a8 Disable PIC on MinGW to reduce warnings 2013-01-01 00:30:33 +01:00
n pepinpe
e364b0b8d9 Fix path to OSX SDK with XCode >=4.3 2012-12-31 10:43:00 +01:00
veganaize
ce42cfb753 Don't try to find OpenGL libraries on MacOSX and MinGW using pkg-config
MacOSX and MinGW don't provide gl.pc or glu.pc to find the cflags or libs using
pkg-config. Removing this search and replacing it with an hardcoded value is
easier on these platforms.
2012-12-19 21:57:39 +01:00
Sven Eckelmann
c82cecc685 Use $(OBJDIR) in clean target instead of hardcoded path 2012-12-13 14:53:05 +01:00
Sven Eckelmann
c482334054 Allow to add a postfix for each build
The POSTFIX make option is useful for distributions to compile different
versions of the plugin in parallel. The object files will be stored in a
directory with the postfix appended and the linker result will also have this
postfix appended.
2012-12-13 14:47:28 +01:00
Sven Eckelmann
c7aa2d3960 Add CROSS_COMPILE make option
The CROSS_COMPILE make option can be used to automatically prepend the prefix
to all build relevant tools to seamlessly allow cross compilation without
setting each tool name separately.

Cross compiling for MinGW32 would can be done using
$ make -C projects/unix/ CROSS_COMPILE=i686-pc-mingw32- HOST_CPU=i686 UNAME=MINGW
2012-12-13 12:25:26 +01:00
Sven Eckelmann
012bd66c1e Allow to change names of *-config tools for cross compiles 2012-12-13 11:33:49 +01:00
Sven Eckelmann
689e011f7f Synchronize usage of environmental variables for UNAME with HOST_CPU 2012-12-13 10:52:49 +01:00
Sven Eckelmann
920aeeb8e1 Remove duplicated definition of CC for MinGW 2012-12-13 10:46:16 +01:00
Sven Eckelmann
2c653a14d5 Don't add malformed/missing linker flag to LDFLAGS on MinGW 2012-12-12 23:17:23 +01:00
Richard Goedeken
ff56ce7aa3 branch merge with no extra changes 2012-12-09 17:11:47 -08:00
veganaize
0b14238353 Add support for MingW32 2012-12-04 21:17:52 +01:00
Sven Eckelmann
d9e579f385 Add workqueue to postpone work to another thread 2012-11-22 11:07:37 +01:00
Sven Eckelmann
47bac82b89 Completely disable old dynarec when NEW_DYNAREC is enabled 2012-11-22 09:55:07 +01:00
Anthony J. Bentley
dce1d74ed5 Detect OpenBSD PowerPC platforms macppc and socppc. 2012-11-12 18:00:20 -07:00
Sven Eckelmann
8fa5322ca2 Fix build of dynarec under x86_64 2012-11-10 18:07:10 +01:00
paulscode
736fbae839 Integrated mupen64plus-ae arm assembler 2012-11-03 09:33:19 -04:00
Richard Goedeken
43efc79701 merge with no changes 2012-10-28 11:28:13 -07:00
Richard Goedeken
e7a9a464bb merge with no changes 2012-10-28 11:23:09 -07:00
Sven Eckelmann
2688e4db9f Disable unused cryptographic functions in included minizip 2012-10-07 22:08:31 +02:00
Sven Eckelmann
044e9a4f6d Don't depend on freetype2 for OSD=0 builds 2012-10-07 20:15:48 +02:00
Sven Eckelmann
81506b856f Merge port of Ari64's new experimental dynamic recompiler for i386
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 doc/new_dynarec.txt                 |  413 ++
 projects/unix/Makefile              |   17 +
 src/main/savestates.c               |   25 +
 src/memory/dma.c                    |    4 +
 src/memory/memory.c                 |   21 +-
 src/r4300/interupt.c                |    9 +
 src/r4300/new_dynarec/assem_x86.c   | 4364 ++++++++++++++
 src/r4300/new_dynarec/assem_x86.h   |   20 +
 src/r4300/new_dynarec/linkage_x86.s |  929 +++
 src/r4300/new_dynarec/new_dynarec.c |10974 +++++++++++++++++++++++++++++++++++
 src/r4300/new_dynarec/new_dynarec.h |   38 +
 src/r4300/r4300.c                   |   23 +-
 12 files changed, 16834 insertions(+), 3 deletions(-)
 create mode 100644 doc/new_dynarec.txt
 create mode 100644 src/r4300/new_dynarec/assem_x86.c
 create mode 100644 src/r4300/new_dynarec/assem_x86.h
 create mode 100644 src/r4300/new_dynarec/linkage_x86.s
 create mode 100644 src/r4300/new_dynarec/new_dynarec.c
 create mode 100644 src/r4300/new_dynarec/new_dynarec.h
2012-09-30 11:17:08 +02:00
Sven Eckelmann
168ae23a47 Allow to build without OpenGL support for non-OpenGL devices 2012-09-16 21:51:23 +02:00
Richard Goedeken
ee21a0073c fix bugs with NO_ASM=1 and DEBUGGER=1 builds 2012-08-26 15:33:58 -07:00
casualjames casualjames
b05457b693 Initial attempt to join the pure interpreter and the cached interpreter main codebase.
This is just the bare minimum for it to work, since there's still some warnings/slowdowns/ugly code which has to be fixed.
2012-08-21 13:47:42 +02:00
casualjames casualjames
2fdb149da9 Add a Makefile switch to enable section timing. Use clock_gettime instead of gettimeofday (which returns wall time). Also remove the useless fflush call which broke compilation. 2012-08-06 22:03:15 +02:00
casualjames casualjames
8ed2e2c2a0 Remove adler32.c/adler32.h since Zlib provides an adler32() function already. 2012-08-06 22:01:37 +02:00
casualjames casualjames
2b291af0c3 - Added shell32.lib as a dependency to VS project (because some functions like SHGetSpecialFolderLocation are used)
- #define inline __inline in mupen64plus-core for Visual Studio, since 'inline' doesn't work on Visual Studio (2008) for C files.
- Added a reset.c file with functions to perform soft and hard resets
- Add support for multiple path separators instead of just one
- Added a PluginGetVersion to the dummy plugins, so they can be handled as if they were a real plugin
- Added new frontend APIs:
      Get screen width
      Get screen height
      Read screen
      Volume up
      Volume down
      Get volume level
      Set volume level
      Mute volume
      Input callback
      Soft reset
      Advance frame
      Audio callback
      Get audio frequency
      Read audio samples
      Vi Callback

- Reorganized internal rom_header structure so field sizes make more sense
- Added two systemtype and vilimit properties to m64p_rom_settings
  so frontends can get this information easily instead of looking at ROM header,
  and also simplifies some internal logic
- Some other refactoring/commenting
2012-08-06 21:59:08 +02:00
Sven Eckelmann
84a36e8f92 Enable experimental support for link-time optimization 2012-05-29 22:19:41 +02:00
Sven Eckelmann
68e3d1317e Import minizip from zlib 1.2.7 2012-05-29 22:13:29 +02:00
Sven Eckelmann
8dcdbb06e1 Remove unused functions 2012-05-29 22:11:03 +02:00
Anthony J. Bentley
8f2043ad4d off_t is 64 bits on OpenBSD, so don't use f*64() there. 2012-02-27 23:17:58 -07:00
Sven Eckelmann
3364c4eafe Remove additional -O3 on MacOSX 2011-10-14 19:58:42 +02:00
Sven Eckelmann
d7562c5f73 Use 32 bit io api for minizip on MacOSX to prevent build error 2011-10-13 00:03:03 +02:00
Sven Eckelmann
7160a3c584 Explicitly disable PIC in case of PIC=0 2011-10-13 00:01:01 +02:00
Sven Eckelmann
0a517b3238 Try to build against external minizip library to fix compilation on Gentoo 2011-10-06 10:26:08 +02:00
Sven Eckelmann
de028a8223 Fix linking with liblirc_client 2011-10-06 10:02:41 +02:00
Sven Eckelmann
5502c6b1e7 Enable ppc(64) as experimental target
nogagplz tested mupen64plus on 32-bit ppc and didn't detect any big show
stoppers with interpreter cores and the mupen64plus example rom. This makes the
PowerPC an interesting target for further tests and may reveal other endianness
problems.
2011-08-05 10:46:14 +02:00
Sven Eckelmann
0dee89e291 Enable PIC depending on architecture instead of bits only
nogagplz noticed on ppc32 that PIC is necessary to compile everything as shared
object. Therefore, it seems to be a better idea to have architecture specific
PIC default settings instead of checking only whether it is a 32 or 64 bit
architecture.
2011-08-05 10:32:06 +02:00
Sven Eckelmann
54a5e3cee5 Enable big endian mode on ppc and ppc64 2011-08-05 10:19:20 +02:00
Sven Eckelmann
74ac8f507e Strip binaries during install 2011-07-23 21:22:52 +02:00
Richard Goedeken
43206c936f use X-Scale's PIF-CIC algorithm instead of the hard-coded challenge-response pairs 2011-07-16 15:47:14 -07:00
Sven Eckelmann
5a03b61fb0 Allow to force PIC to remove text relocations 2011-07-10 13:37:54 +02:00
Sven Eckelmann
09e4c2228a Fix linker search for libstdc++.so 2011-07-08 08:24:33 +00:00