Commit Graph

56 Commits

Author SHA1 Message Date
James Benton
b7c12c4ce6 Restore .txt extension for log filenames.
spdlog broke it for a few releases, it's fixed now - yay!
2018-01-11 11:40:01 +00:00
James Benton
173817ef55 decaf: Fix log path. 2017-04-26 12:30:53 +01:00
James Benton
61a66bcf8f config: Add config generating when no config exists. 2017-04-26 11:53:53 +01:00
James Benton
a364565f8b Move to a .toml config file and try to unify config loading.
Still not an ideal solution, but it's at least a step in the right direction.
2017-04-24 23:32:00 +01:00
James Benton
d67a59f6e4 Refactor GPU code out of libdecaf/gpu and in to libgpu. 2017-04-24 17:22:10 +01:00
James Benton
a1fb43180e Refactor debugger and add a gdb stub. 2017-04-13 13:05:27 +01:00
James Benton
e4c8f989f6 kernel: Add support for LLE of system modules.
Looks for system libraries in mlc/sys/title/00050010/1000400A/code/*.rpl
Will only load modules in config.system.lle_modules list.
2017-04-04 23:37:22 +01:00
Andrew Church
445c180972 Fix typo in libbinrec optimization flag name for --jit-opt-level=1. 2017-04-05 04:10:35 +09:00
Andrew Church
70d8e3c6e9 jit: Support new libbinrec optimization flags. 2017-04-05 02:28:43 +09:00
James Benton
4c2049bf47 New JIT implementation using libbinrec. 2017-04-01 17:04:30 +01:00
James Benton
35f40d211c decaf: Add support for /dev/sdcard01.
Set path in config as system/sdcard-path.
Set path on command line as --sdcard-path <path>.
2017-03-27 23:19:12 +01:00
James Benton
813c925427 Fix decaf-cli build 2017-03-17 01:04:55 +00:00
James Benton
550211e330 decaf: Flush log on every message when not using async logging.
This makes log output more reliable.
2017-03-16 17:30:18 +00:00
James Benton
a890721718 cmake: Cleanup install. 2017-03-16 13:27:19 +00:00
James Benton
94b97d79ef Remove types.h and virtual_ptr.h 2017-03-01 13:43:16 +00:00
James Benton
f114c98f99 Update spdlog to v0.12.0 2017-02-21 11:41:31 +00:00
James Benton
2edad665a3 Use CMake to build for Windows. 2017-02-20 19:25:39 +00:00
Andrew Church
ecced575ac Fix OpenGL locking errors detected by -Wshadow.
Also fix other shadowing warnings throughout the codebase, and
enable shadowing warnings flag by default for CMake builds (using
-Werror=shadow except in decaf-cli and decaf-sdl, where excmd.h
triggers shadowing warnings).
2016-09-04 13:20:35 +01:00
James Benton
34cd5982da decaf: Rewrite filesystem.
Adds support for writing files to host file system.
Adds file permissions to prevent corruption of game files.
2016-09-02 01:34:22 +01:00
James Benton
78daf1f1d6 Add a much more lenient cereal json input archive.
- All values are optional, value will not be touched in the missing case
- Adds rapidjson flags for kParseCommentsFlag and kParseTrailingCommasFlag
2016-08-18 23:08:44 +01:00
Andrew Church
bc1e5cb5a7 jit: Implement JIT verifier.
We bracket each translated instruction with calls to pre- and
post-verify routines.  The pre-verify routine makes a copy of the
current core state and the contents of any affected memory, and the
post-verify routine runs the associated interpreter function on the
initial core state (and memory contents), then compares the result to
the state produced by the JIT code and reports any differences.
(FPSCR is ignored since the JIT translators don't update it yet.)

To avoid false failures caused by other cores storing to the same
memory region referenced by an instruction while the instruction is
being verified, we force all load and store instructions subject to
verification to go through a mutex, ensuring that only one core can
access memory at any time.

The kc, lwarx, and stwcx instructions are not verified since they are
not repeatable.  (lwarx and stwcx do not obey the memory access mutex
since they do not go through the verifier, but simultaneous access to
memory with lwarx/stwcx and other load/store instructions is
unreliable anyway and real-world code should never do it, so we don't
worry about that case.)

Also rename the related configuration option from "debug" to "verify"
to better reflect its purpose.
2016-08-16 00:40:28 -07:00
James
5d9a124335 Merge pull request #245 from achurch/config-system-region
Read system::region from config.json.
2016-08-04 20:18:20 +01:00
Andrew Church
6b65812c1d Read system::region from config.json. 2016-08-05 03:48:10 +09:00
Andrew Church
4e4e799b95 Avoid silently aborting if config.json has a syntax error. 2016-08-05 03:44:57 +09:00
Andrew Church
467d4d45da Implement basic sound output via SDL.
Sound is off by default (to avoid destroying speakers in case the
logic is incorrect for some case); pass the --sound option to enable.

Sound data can be dumped by setting the sound::dump_sounds option in
the configuration file to true.
2016-07-26 21:57:48 +09:00
James Benton
fad35a8823 coreinit: Rename SCIRegion::US to USA 2016-07-22 22:26:12 +01:00
James Benton
66dc5600df Fix build from merge error 2016-07-18 15:08:30 +01:00
Andrew Church
4e2e3f355e Add missing logic to convert option strings to region codes. 2016-07-18 15:07:24 +01:00
James Benton
9379e4a12b Merge branch 'region-config' of https://github.com/achurch/decaf-emu into achurch-region-config 2016-07-18 13:39:58 +01:00
Andrew Church
3c0b756fbc Make the emulated system region configurable.
Also add the region constant for Japan.
2016-07-18 16:45:42 +09:00
Andrew Church
fa4e7bbc44 Add a --time-scale option to control the emulated clock speed.
Mainly useful when running under Valgrind, to prevent games from
thinking threads have locked up.
2016-07-18 10:25:33 +09:00
James Benton
2d91f54e51 decaf-cli: Fix oopsy semicolon. 2016-07-16 12:58:45 +01:00
James Benton
ad7e212c0c decaf: Log the config path and game path. 2016-07-16 12:38:10 +01:00
Andrew Church
2176535637 Add --config option to set the configuration file location. 2016-07-16 12:05:23 +01:00
Andrew Church
9b58729d2f Store configuration files in a platform-standard directory.
Not yet implemented for Windows.
2016-07-16 12:05:22 +01:00
James Benton
f4bb1384bd cmake: Add decaf-cli project. 2016-06-14 22:41:48 +01:00
James Benton
ac1d89a3d8 Add decaf-cli project.
A command line only application to execute Wii U games with no graphics
and no input. This can be useful for running unit test rpx files.
2016-06-14 22:30:35 +01:00
James Benton
f0610eb0c2 Rename decaf-cli to decaf-sdl. 2016-06-14 20:15:49 +01:00
James Benton
64ec1ec02a libdecaf: Add debugger config options enabled and break_on_entry. 2016-06-14 20:10:51 +01:00
James Benton
a3fd51927c decaf-sdl: Fix usage of class name in member function declaration.
Damn copy pasta.
2016-06-14 00:38:43 +01:00
James Benton
49ce6b2df2 cmake: Update CMakeLists to use GLOB_RECURSE.
We do not develop with CMakeLists as our primary platform, it makes it too
hard to maintain the file list in CMakeLists.

GLOB_RECURSE will have to do for now.
2016-06-14 00:38:37 +01:00
Brett Lawson
e2fb3e3b2c Make emulator window resizeable. 2016-06-14 01:19:52 -07:00
James Benton
2cc1b306b8 Refactor decaf api and update decaf-cli to use SDL. 2016-06-13 23:53:02 +01:00
James Benton
a8ff5e00a8 Initial folder restructuring. 2016-06-13 13:03:01 +01:00
Brett Lawson
9e6eab5d86 Added support for function keys in keyboard input handling. 2016-06-13 03:56:42 -07:00
James Benton
c0a647bf33 decaf-cli: Fix usage of renamed mTvWindow in getWindowBorderHeight. 2016-06-12 13:56:59 +01:00
James Benton
504efb4ec8 decaf-cli: Remove unnecessary switch cases from glfw translateKeyCode. 2016-06-12 13:01:34 +01:00
James Benton
7a324fc022 cmake: Update CMakeLists for new project structure. 2016-06-12 12:53:33 +01:00
James Benton
71aa5295c8 decaf-cli: Add missing include in config 2016-06-12 12:53:33 +01:00
James Benton
7f1dbde7c6 Add missing end of file newlines. 2016-06-12 11:45:28 +01:00