Commit Graph

336 Commits

Author SHA1 Message Date
archshift 302f0b32f5 Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h 2015-02-19 22:26:25 -08:00
archshift 49f94b82b4 Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin 2015-02-18 23:23:18 -08:00
archshift 961f65d1fe Remove redundant utf8 compilation unit that was leftover from Dolphin 2015-02-18 22:34:32 -08:00
archshift 9f7f1a2272 Remove useless extended_trace compilation unit that was leftover from Dolphin 2015-02-18 22:30:31 -08:00
archshift 5efd149ad5 Remove the useless msg_handler compilation unit that was left over from Dolphin 2015-02-18 22:26:22 -08:00
bunnei 745b42d236 Merge pull request #570 from purpasmart96/config_mem
ConfigMem: Clean up the Config memory to be more like the shared page
2015-02-18 00:12:37 -05:00
Yuri Kunde Schlesner 714d507938 Asserts: Use lambdas to keep assertion code away from the main code path 2015-02-18 02:19:30 -02:00
purpasmart96 c3c309f33d ConfigMem: Clean up the Config memory to be more like the shared page and moved
the helper macro for padding to common_funcs.h
2015-02-16 15:12:05 -08:00
bunnei 12181c8a64 Merge pull request #529 from Subv/master
Build: Fixed some warnings
2015-02-14 15:50:26 -05:00
Lioncash 3c474a7d31 backend: Add logging subentry for ldr
Fixes an assertion upon executing citra in debug mode.
2015-02-12 20:46:13 -05:00
Subv 8e2b248e05 Build: Fixed some warnings 2015-02-12 09:25:35 -05:00
archshift ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00
bunnei ca22ee3239 Merge pull request #526 from purpasmart96/citra_stubs
Services: Stub some functions
2015-02-10 18:39:37 -05:00
purpasmart96 60ce36f721 Services: Stub some functions 2015-02-07 17:34:59 -08:00
chinhodado 34cce345a7 Fix a wrong file name in a comment 2015-02-07 00:37:06 -05:00
Yuri Kunde Schlesner fc11aff955 Common: Fix SCOPE_EXIT to actually create unique identifiers. 2015-01-30 11:47:03 -02:00
archshift 1f109c6b49 Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxx 2015-01-21 13:31:10 -08:00
archshift 228843c43e Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance. 2015-01-10 14:32:10 -08:00
bunnei e6864a1f41 Merge pull request #431 from yuriks/thread-queue-cleanup
Common: Clean up ThreadQueueList
2015-01-07 17:58:31 -05:00
Yuri Kunde Schlesner 122c2bb324 Common: Clean up ThreadQueueList
Replace all the C-style complicated buffer management with a std::deque.
In addition to making the code easier to understand it also adds support
for non-POD IdTypes.

Also clean the rest of the code to follow our code style.
2015-01-07 18:38:25 -02:00
bunnei 3eca33c6a4 Merge pull request #425 from Subv/coretiming
Ported the CoreTiming namespace from PPSSPP
2015-01-07 15:30:46 -05:00
Subv 9bf82beb4c CoreTiming: Ported the CoreTiming namespace from PPSSPP
Implemented the required calls to make it work.

CoreTiming: Added a new logging class Core_Timing.
2015-01-07 15:08:35 -05:00
bunnei 5217e3f873 Merge pull request #421 from linkmauve/remove-dead-platforms
Remove dead platform #ifdefs to make the code more readable.
2015-01-06 23:09:20 -05:00
bunnei 088863c921 Merge pull request #376 from Subv/arc_reorder
Archives: Change the folder layout of some archives.
2015-01-06 20:13:56 -05:00
Emmanuel Gil Peyrot 6b411c63c9 Common: Remove dead platform #ifdefs to make the code more readable.
Symbian, Xbox, Blackberry and iOS got removed.
FreeBSD and Android kept due to them potentially being able to run Citra in the future.
The iOS specific part also got removed from PPSSPP in order to fix a bug there.
2015-01-06 18:57:28 +00:00
Emmanuel Gil Peyrot 66e06f65c4 Common: Use std::abs instead of abs, using abs with cmath fails on some systems. 2015-01-05 16:38:12 +00:00
Emmanuel Gil Peyrot ffe4cc9c5a Common: Remove the unused x86-specific 128-bit float type. 2015-01-05 15:03:50 +00:00
Subv 71a063f45c Archives: Changed the way paths are built for the archives.
Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout
2015-01-03 20:46:05 -05:00
Subv cfd7b219f6 SaveDataCheck: Move the files to nand/title
under /nand/title/high/low/content/00000000.app.romfs
2015-01-03 19:01:46 -05:00
Subv 3bc9f5509b Archives: Change the folder layout of some archives.
This is to better represent the hardware layout, they are still aren't quite accurate, but this better and will help a bit when implementing the other archives like NAND-RO and NAND-RW
2015-01-02 21:55:13 -05:00
Subv aade417b14 Archives: Reduced duplicate code in RomFS and SaveCheck.
Fixed a few warnings and cleaned up the code
2015-01-02 21:13:54 -05:00
Subv 97a7381d29 SOC_U: Preliminary implementation of sockets.
Stubbed CreateMemoryBlock

Using Berkeley sockets, and Winsock2.2 on Windows.
So far ftpony creates the socket and accepts incoming connections

SOC_U: Renamed functions to maintain consistency

Also prevents possible scope errors / conflicts with the actual Berkeley socket functions

SOCU: Close all the opened sockets when cleaning up SOCU
2014-12-31 10:51:44 -05:00
bunnei 29da5da951 Merge pull request #369 from darkf/mingw_
Fix MinGW build (2)
2014-12-30 23:54:02 -05:00
darkf 5d10b212ec Fix MSVC-related #defines and add CMakeLists comment 2014-12-29 20:12:03 -08:00
darkf 8ba9ac0f74 Fix merge conflicts 2014-12-29 19:47:41 -08:00
Subv 2c89d4d5cd Archives: Implemented ExtSaveData and SharedExtSaveData
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
2014-12-29 22:29:55 -05:00
bunnei 2188af4a65 Merge pull request #322 from chinhodado/master
More warning cleanups
2014-12-22 00:12:43 -05:00
bunnei 0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
2014-12-21 16:05:44 -05:00
Chin 0199a7d9ef More warning cleanups 2014-12-21 10:58:55 -05:00
purpasmart96 ebfd831ccb License change 2014-12-20 21:20:24 -08:00
Tony Wasserka 95be6a09b2 BitField: Add an explicit Assign method.
This is useful when doing crazy stuff like inheriting from BitField.
2014-12-20 18:05:53 +01:00
Yuri Kunde Schlesner 82528ba7df Common: Add a clone of std::make_unique 2014-12-20 03:45:02 -02:00
Subv bec527fa24 SaveData: Implemented the SystemSaveData archive.
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
2014-12-17 23:44:32 -05:00
Subv ea9ce0fba7 Filesystem/Archives: Implemented the SaveData archive
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information

Got rid of the code duplication in File and Directory

Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.

FS_U: Use the correct error code when a file wasn't found
2014-12-17 19:21:38 -05:00
Yuri Kunde Schlesner ac87c3b0d0 Restore the original console color after logging a message.
Fixes #277
2014-12-14 02:10:41 -02:00
Yuri Kunde Schlesner 4d2a6f8b9b Remove old logging system 2014-12-13 02:08:06 -02:00
Yuri Kunde Schlesner 0e0a007a25 Add configurable per-class log filtering 2014-12-13 02:08:06 -02:00
Yuri Kunde Schlesner 0600e2d8b5 Convert old logging calls to new logging macros 2014-12-13 02:08:02 -02:00
Yuri Kunde Schlesner 6390c66e95 Implement text path trimming for shorter paths. 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner 6b0fb62c47 Re-add coloring to the console logging output. 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner 616d874443 New logging system 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner 04b1f2936c Add SCOPE_EXIT macro to conveniently execute cleanup actions 2014-12-13 01:59:51 -02:00
Yuri Kunde Schlesner eda30c36ee Added missing include in common_funcs.h 2014-12-13 01:59:50 -02:00
Yuri Kunde Schlesner 8a681cdf3d Remove redundant include from common_funcs.h 2014-12-13 01:59:50 -02:00
bunnei a6791e4fc7 Merge pull request #267 from bunnei/apt-shared-font
APT shared font loading
2014-12-12 22:12:12 -05:00
bunnei 6fe61d3deb APT_U: Added GetSharedFont service function. 2014-12-12 22:06:10 -05:00
Tony Wasserka 33e61ef514 Merge pull request #261 from neobrain/boost
Add Boost as a submodule and add some minor cleanups using Boost.Range
2014-12-12 17:32:57 +01:00
bunnei 5bac72282a Common: Add "sysdata" to GetUserPath and cleanup. 2014-12-12 00:15:47 -05:00
archshift 4763fca9f8 Explicitly specify LE strings to iconv, fixes paths in Steel Diver 2014-12-09 22:07:28 -08:00
Yuri Kunde Schlesner 521e1cb7e0 Remove unused NDMA module 2014-12-09 18:27:16 -02:00
Tony Wasserka 0cd27a511e Some code cleanup. 2014-12-09 16:37:34 +01:00
Tony Wasserka 27280f178b Fix some headers to include their dependencies properly. 2014-12-09 16:37:34 +01:00
Tony Wasserka 3d8c6e61be StringUtil: Perform some minimal cleanup. 2014-12-07 23:52:17 +01:00
Rohit Nirmal 8a62423970 Change NULLs to nullptrs. 2014-12-03 12:57:57 -06:00
darkf 459502e48c Fix MinGW build 2014-11-28 21:38:20 -08:00
Emmanuel Gil Peyrot f8c05e53c4 Remove unused includes to common/thread.h 2014-11-25 20:39:25 +00:00
Emmanuel Gil Peyrot 739bb58c3a Remove tabs in all files except in skyeye imports and in generated GL code 2014-11-19 09:04:03 +00:00
Emmanuel Gil Peyrot f5d38649c7 Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated 2014-11-19 09:03:07 +00:00
bunnei 40acd63631 Merge pull request #165 from neobrain/viewport-scaling
Stretch emulation output to render window and be display density independent
2014-11-18 18:32:01 -05:00
Lioncash 1a8f466217 Remove extraneous semicolons 2014-11-18 08:27:16 -05:00
Tony Wasserka 5785f764ab EmuWindow: Add some explicit documentation and set proper minimal client area size. 2014-11-18 13:16:02 +01:00
Tony Wasserka 6a6464807a EmuWindow: Add a TODO.
Implementing this function currently is not critical, as we don't perform any configuration changes, yet.

However, the interface is a good starting point for adding this functionality.
2014-11-18 13:16:02 +01:00
Tony Wasserka e02ff0121f MathUtil: Make Rectangle work with unsigned types. 2014-11-18 13:15:59 +01:00
Tony Wasserka 19bb01c223 EmuWindow: Better document the purpose of OnMinimalClientAreaChangeRequest. 2014-11-18 13:09:01 +01:00
Tony Wasserka 182476c96a EmuWindow: Remove window title getters/setters.
The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there.
Providing properly thread-safe window title getters and setters is a mess anyway.
2014-11-18 13:09:01 +01:00
Tony Wasserka ded9c8a826 EmuWindow: Add documentation. 2014-11-18 13:09:01 +01:00
Tony Wasserka 722ce22589 EmuWindow: Add support for specifying minimal client area sizes. 2014-11-18 13:09:01 +01:00
Tony Wasserka bd8f491e4c Fixup EmuWindow interface and implementations thereof. 2014-11-18 13:09:01 +01:00
Kevin Hartman 221a9b023d Viewport scaling and display density independence
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window.
On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
2014-11-18 13:06:05 +01:00
Tony Wasserka c8d933a142 Add a GUI logging channel.
Replace asserts with _dbg_assert_.
2014-11-18 13:03:02 +01:00
Lioncash 827e7a1898 emu_window: Fix initializer list order.
Gets rid of a warning on OSX.
2014-11-17 09:27:59 -05:00
archshift 1f7c4ab7f6 Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functions 2014-11-12 19:30:17 -08:00
Gareth Poole 38df9e96dd Renamed souce files of services to match port names 2014-10-29 15:55:51 -04:00
Yuri Kunde Schlesner d72708c1f5 Add `override` keyword through the code.
This was automated using `clang-modernize`.
2014-10-26 16:18:05 -02:00
Yuri Kunde Schlesner da564d3fe0 Fix compile errors in Clang 2014-10-26 16:18:04 -02:00
Tony Wasserka a7a57c04c6 Merge pull request #150 from lioncash/typo
bit_field: Fix a typo in the sample usage.
2014-10-25 21:19:43 +02:00
Lioncash 2dce9b2ead bit_field: Fix a typo in the sample usage. 2014-10-25 15:18:34 -04:00
archshift 7fa4dbd0c6 Removed uses of raw c-string manipulation functions. 2014-10-23 21:44:10 -07:00
bunnei ce8390ac03 Merge pull request #133 from archshift/sdmc-enabled
Use config files to store whether SDMC is enabled or not, auto-create SDMC dir.
2014-10-23 18:51:54 -04:00
Yuri Kunde Schlesner b75ac24391 Use std sized types instead of platform specific typedefs 2014-10-22 22:43:15 -02:00
archshift a7c7946867 Common: Return from CreateFullPath early if the directory creation fails 2014-10-22 15:24:25 -07:00
bunnei a171000cbe Merge pull request #108 from archshift/config
Configuration files
2014-10-07 19:44:13 -04:00
archshift e6594f9f53 Added configuration file system.
Uses QSettings on citra-qt, and inih on citra-cli.
2014-10-07 15:09:37 -07:00
Emmanuel Gil Peyrot fbd72fd6bf Common: Add a helper function to generate a 8.3 filename from a long one.
Core: Fix the SDMC Directory implementation to make blargSnes work.
2014-10-06 19:58:43 +02:00
Lioncash ca2f0de08a Fix warnings in core and common 2014-09-28 11:44:14 -04:00
bunnei ee7cfc71bd Merge pull request #118 from lioncash/chunk-file
chunk_file: General cleanup
2014-09-22 22:02:51 -04:00
Lioncash ff442d6cf9 chunk_file: General cleanup
- Remove unnecessary ifdefs
- Remove commented out code. Can be retrieved later if needed.
2014-09-21 18:36:14 -04:00
archshift 1966f7b0ad Use the citra user path for the sdmc directory 2014-09-21 09:34:33 -07:00
Emmanuel Gil Peyrot 6b7b36a874 Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions. 2014-09-17 14:35:45 +00:00
Emmanuel Gil Peyrot edaf59a759 Common: Return the number of items read/written in IOFile’s methods instead of a boolean. 2014-09-17 14:35:45 +00:00
Kevin Hartman 02fd19b2f6 Added support for multiple input device types for KeyMap and connected Qt. 2014-09-12 01:15:14 -07:00
Kevin Hartman 4a94ec934a Initial HID PAD work, with GLFW only. 2014-09-11 22:43:42 -07:00
bunnei 532a9e80a0 Merge pull request #99 from archshift/ext-check
loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
2014-09-11 00:04:36 -04:00
bunnei d79fe3ebaa Merge pull request #103 from archshift/prune
Prune redundant includes
2014-09-10 18:44:08 -04:00
bunnei 249a567834 Merge pull request #104 from archshift/removal
Removed fixed_size_queue.h
2014-09-09 20:56:28 -04:00
bunnei 8891c27425 Merge pull request #101 from lioncash/inf-loop
Common: Fix a potential infinite loop in StringUtil's ReplaceAll
2014-09-09 20:53:33 -04:00
archshift 727bad24a2 Removed fixed_size_queue.h
It's unused and doesn't look like it compiles anyway :/
2014-09-08 18:49:41 -07:00
archshift 9d7cc2bedc common: Prune all redundant includes 2014-09-08 17:25:43 -07:00
archshift 8fe5f2e2fe Moved common_types::Rect from common to Common namespace 2014-09-08 15:43:36 -07:00
archshift 5472fd4d9b Added string_util to common, small changes in loader.cpp 2014-09-08 15:43:22 -07:00
archshift 4ed24a0619 loader.cpp: improved file extension checking, made Upper/LowerStr useful
Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location.
2014-09-08 15:41:58 -07:00
Lioncash 5b65decf91 Common: Remove HAVE_CXX11_SYNTAX define from Common.h 2014-09-08 15:01:15 -04:00
Lioncash 2f6ef914db Common: Fix a potential infinite loop in StringUtil's ReplaceAll 2014-09-08 14:48:59 -04:00
archshift 498d1a37f1 Removed common/std_xyz, instead using the std header 2014-09-07 14:31:07 -07:00
archshift 4795a64fc8 Removed common/atomic, instead using std::atomic 2014-09-02 22:40:02 -07:00
Yuri Kunde Schlesner c57de3e404 Remove hand-crafted Visual Studio solution. 2014-09-01 18:06:30 -03:00
Yuri Kunde Schlesner b15d631d99 Avoid LOGGING redefinition warnings. 2014-09-01 18:06:30 -03:00
Yuri Kunde Schlesner 45976da975 CMake cleanup
Several cleanups to the buildsystem:
 - Do better factoring of common libs between platforms.
 - Add support to building on Windows.
 - Remove Qt4 support.
 - Re-sort file lists and add missing headers.
2014-09-01 18:06:30 -03:00
bunnei 59d512484a Merge pull request #58 from lioncash/clamp
Common: Add a clamp function to math_utils.h
2014-08-21 11:31:43 -04:00
Lioncash 2f571a0d9d Common: Add a clamp function to math_utils.h 2014-08-19 03:37:38 -04:00
Lioncash 85a20a9b19 Common: Get rid of an unnecessary forward declaration in symbols.h 2014-08-18 16:40:17 -04:00
Lioncash a49a5fa4d9 Common: Don't return a reference to a string when calling GetName in symbols.cpp
Returning a copy of the string is what was likely meant to be done.
2014-08-18 01:59:03 -04:00
bunnei 68c81f28d9 Merge pull request #52 from lioncash/memory
Common: Correctly set ptr to null if mmap fails in memory_util
2014-08-17 20:38:28 -04:00
bunnei 54d5d4477f Merge pull request #48 from linkmauve/master
Replace insecure temporary file creation with devshm.
2014-08-17 20:33:47 -04:00
Lioncash cc9f352b66 Common: Correctly set ptr to null if mmap fails in memory_util
On POSIX systems mmap will return MAP_FAILED ((void*)-1) instead of a null pointer.
2014-08-17 14:08:43 -04:00
Lioncash da6f24b374 Common: Move remaining C header includes over to their C++ equivalent 2014-08-17 13:54:06 -04:00
Lioncash 90e994471a Common: Move header guards over to pragma once
Also replaced C headers with the C++ equivalent ones
2014-08-17 13:45:55 -04:00
Emmanuel Gil Peyrot c91d9fd837 mem_arena: Replace insecure temporary file creation with devshm, importing Dolphin’s code. 2014-08-16 10:12:30 +02:00
archshift a7c549a40c Simplified if-tree in extended_trace.cpp 2014-08-12 14:34:25 -07:00
bunnei 0ccd026a6d Merge pull request #41 from archshift/itr
Changed iterators to use auto, many of which using range-based loops
2014-08-12 10:12:39 -04:00
archshift 1a2604902f break_points.cpp: return directly from conditionals 2014-08-12 04:04:54 -07:00
archshift e3efc613fd break_points: cleaned up, added `find_if`s 2014-08-12 03:48:11 -07:00
archshift 5a7c3ad194 Changed iterators to use auto, some of which using range-based loops 2014-08-11 17:53:23 -07:00
Tony Wasserka 9c781a6c76 Remove the fancy RegisterSet class introduced in 4c2bff61e.
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures.
Instead, we now use a more conventional approach which is a lot more clean to use.
2014-08-12 02:17:21 +02:00
Anthony J. Bentley dad3655a6d Use pthread_set_name_np() on OpenBSD. 2014-08-07 22:56:58 -06:00
Tony Wasserka 246cb75584 RegisterSet: Simplify code by using structs for register definition instead of unions. 2014-07-23 00:33:08 +02:00
Yuri Kunde Schlesner 78eb8ba844 [build] Search for the git binary in the default msysgit install dir
The Git for Windows installer doesn't add the Git binaries to the path
by default. (Due to risk of conflicts with built-in windows commands.)
Unless you have configured your system specially this causes the
scm_rev_gen.js script to fail to find Git.  Added more paths to the
script so that it searches in the default msysgit installation
directory, eliminating the need to set the PATH for most environments.
2014-07-19 17:16:05 -03:00
Tony Wasserka 0da8e2eacc BitField: Cast enum values to proper integer type. 2014-07-16 12:47:33 +02:00
Tony Wasserka cd1d5786d9 BitField: Add a static_assert.
Being able to store BitField within unions requires BitField to be of standard layout, which in turn is only given if the underlying type is also has standard layout.
2014-07-16 12:46:37 +02:00
Tony Wasserka 15ab5382a5 BitField: Delete copy assignment to prevent obscure bugs.
Cf. https://github.com/dolphin-emu/dolphin/pull/483
2014-07-16 09:08:19 +02:00
Tony Wasserka 47a001722d BitField: Add an explicit evaluation method.
Sometimes it can be beneficial to use this in places where an explicit cast needs to happen otherwise. By using the evaluation method, it's not necessary anymore to explicitly write the underlying type in this case.
2014-07-16 09:05:29 +02:00
bunnei 004df76795 Merge branch 'threading' of https://github.com/bunnei/citra
Conflicts:
	src/core/hle/function_wrappers.h
	src/core/hle/service/gsp.cpp
2014-06-14 12:13:16 -04:00
bunnei b919158050 Removed definition of MAX_PATH, this is already defined in common_paths.h. 2014-06-12 06:10:55 -04:00
archshift ee4717aaae Preprocessor: #if's out OSX-specific GL changes on other platforms 2014-06-12 06:10:55 -04:00
bunnei 06ef8f001a Common: Removed duplicate "LONG" and "MAX_PATH" definitions. 2014-06-12 06:10:54 -04:00
Tony Wasserka 4c2bff61e5 Pica: Use some template magic to define register structures efficiently. 2014-06-12 06:10:54 -04:00
Tony Wasserka 1dfa392824 Rename LCD to GPU. 2014-06-12 06:10:49 -04:00
bunnei 00adbc7817 log: updated MAX_LOGLEVEL to use correct log level enum type 2014-06-01 11:49:58 -04:00
bunnei 5cd922d151 log: updated GenericLog __attribute__ for newly added parameter 2014-06-01 11:05:48 -04:00
bunnei 6fc62f8c93 log: fixed to not print twice, enabled coloring, added OS print logging as its own type 2014-05-29 23:03:03 -04:00