Commit Graph

5020 Commits

Author SHA1 Message Date
Stephen Anthony f508ca2634 First pass at porting R77-specific changes to mainline.
- more work is required here, since I'm unable to test on a real R77 yet
- changes will also be required in the manually generated config.mak
2019-03-09 12:22:33 -03:30
thrust26 9b6cae5684 Minor fixes for 3E+ 2019-03-05 20:22:08 +01:00
Stephen Anthony 61828ac695 Don't create an empty 'stella.pro' file when possible.
- Not a big deal, but several people are complaining when 'ghost' files are created
- If file doesn't already exist and there is nothing to add, simply don't create one
- Alternatively, we should delete the file if it's zero-sized, but that requires changes to FSNode.
2019-03-04 20:12:21 -03:30
Christian Speckner 501e75ccb7 Update .gitignore 2019-03-04 19:35:22 +01:00
Stephen Anthony 9f6b91cff6 Completely remove OSystem/FrameBuffer/Settings dependency on AVox/SaveKey.
- Added a new callback that enables sending messages back to the parent (Console)
2019-03-03 22:03:44 -03:30
Stephen Anthony 3b15f8da5d Move SerialPort declaration/instantiation directly into AtariVox.
- This is the only class that uses it, so it makes no sense for OSystem to even care about it
2019-03-03 21:30:53 -03:30
Christian Speckner 852ba8ba54 Fix profile generation, move object files to separate directory. 2019-03-04 00:53:43 +01:00
Stephen Anthony 784793cae3 Fix compile warnings from clang8; this class still needs more work though. 2019-03-03 15:18:58 -03:30
Christian Speckner 6e5e61f995 Fix linking pgo binary with GCC. 2019-03-03 16:59:18 +01:00
Christian Speckner 24305371c7 Add pgo builds with GCC and LLVM to Makefile 2019-03-03 16:51:52 +01:00
Stephen Anthony 8856789438 Fixed minor compile error in Linux. 2019-03-02 15:28:00 -03:30
thrust26 21da4a6388 move ROM path selection into UIDialog
deleted ConfigPathDialog class (TODO: update non VS project files)
2019-03-02 19:04:18 +01:00
Stephen Anthony 7bd355d759 Fix another warning from clang8.
- This one isn't serious at all, but my OCD doesn't allow any warnings to pass :)
2019-03-02 12:17:07 -03:30
Stephen Anthony abc3b3a32b Fix warnings generated by clang 8.
- Several more still exist, and are mostly related to C-style code
- It has long been my intent to remove as much C-style code as possible
2019-03-02 12:06:08 -03:30
Christian Speckner d04b5dd64b More inlining for performance. 2019-03-02 00:08:22 +01:00
Christian Speckner 2a9bfd6b23 Optimizations to TIA movement mode. 2019-03-01 23:35:52 +01:00
Christian Speckner 2b19f4ab5e Use ystart / layout autodetection and real FrameManager in profiling run. 2019-02-28 23:56:02 +01:00
Christian Speckner ac398ac31b Profiling. 2019-02-27 23:41:08 +01:00
Christian Speckner 1ba1332501 Fix fallout from rebase. 2019-02-27 22:44:11 +01:00
Christian Speckner 05260ca006 More refactoring: remove dependency of System on OSystem. 2019-02-27 22:40:25 +01:00
Stephen Anthony b93c95e041 Updated VS project for new profiling classes. 2019-02-26 22:23:22 -03:30
Stephen Anthony e7169ac010 Completely removed OSystem dependency for Cart classes. 2019-02-26 21:37:35 -03:30
Stephen Anthony 61cf68cb98 Move `getTicks()` from OSystem to TimerManager.
- This allows OSystem dependency to be removed in a few places (WIP).
- It more properly belongs in TimerManager, which has other functionality related to std::chrono.
- Historically this was a virtual method in OSystem, since different ports implemented it differently.  Now that we use proper C++11 code, it doesn't need to be there anymore.
- Changed from a virtual call to a static call, so it's probably even a little faster.
2019-02-26 19:20:28 -03:30
Christian Speckner 85acaef8cd Refactoring: remove dependency of TIA and M6532 on Console. 2019-02-26 23:43:22 +01:00
Christian Speckner 806045cb1c Open ROMs for profiling, refactoring. 2019-02-26 22:46:54 +01:00
Christian Speckner 58d7846f6b Profiling CLI. Wip. 2019-02-25 23:56:57 +01:00
Christian Speckner 6709b43f9c Remove (u)Int32 vs. (u)Int64 for R77. 2019-02-25 23:54:49 +01:00
thrust26 37afed9778 Merge branch 'master' of https://github.com/stella-emu/stella 2019-02-25 19:50:47 +01:00
thrust26 a251ccf3d6 another small unsafe optimization 2019-02-25 19:50:33 +01:00
Stephen Anthony ae589e1655 Some fixes to last commit
- if autodetection fails, we still want to see what was set in properties
- if type is not set to 'AUTO', we don't want to autodetect at all
2019-02-25 09:31:14 -03:30
Stephen Anthony f15d1ec7a5 Fixed crash in ROM launcher when openROM failed (typically on 0-byte file). 2019-02-25 09:17:06 -03:30
thrust26 d716f42b5c one small unsafe optimization for register 15 2019-02-25 11:36:42 +01:00
Stephen Anthony 42f9fc88f1 Fixed macOS compilation
- Like Windows, the 'basedir' stuff isn't implemented yet
2019-02-24 20:03:29 -03:30
Stephen Anthony c5099cf292 Windows port compiles again, but 'basedir.txt' functionality removed
- Still need to work on '-basedir' and '-baseinappdir'.
2019-02-24 19:50:30 -03:30
Stephen Anthony 88afab2d22 More restructuring of the OSystem and derived class interaction
- Each derived class no longer calls methods from the base class
- The base class now directly queries the derived class with a pure virtual method, making sure it is called
- Implemented 'basedir' commandline argument for Linux

Windows and macOS currently won't compile.  I'll work on those next.
2019-02-24 19:14:55 -03:30
thrust26 28d1113523 Thumbulator::fetch16 can fetch only ROM when optimized 2019-02-24 14:39:52 +01:00
thrust26 6f94174989 Merge branch 'master' of https://github.com/stella-emu/stella 2019-02-24 09:24:11 +01:00
thrust26 bb3075947b segfault Stella protection added
some more small optimizations (fetch32 removed)
2019-02-24 09:23:57 +01:00
Stephen Anthony d5180ba649 Improve variable/method naming in Settings class. 2019-02-23 17:07:50 -03:30
Stephen Anthony 032b08cca1 Fixed compilation errors in macOS. I still need to think about the Settings stuff, though. 2019-02-23 16:02:13 -03:30
Stephen Anthony 814977e968 Cleaned up Settings API, and moved to C++ maps instead of vectors. 2019-02-23 15:21:11 -03:30
thrust26 d188b5024f one more missing optimization 2019-02-23 19:02:25 +01:00
thrust26 b32d3eba49 oops 2019-02-23 16:09:39 +01:00
thrust26 486494eb7a defined UNSAFE_OPTIMIZATIONS in Thumbulator 2019-02-23 16:09:00 +01:00
thrust26 bac5a86832 minor Thumbulator optimizations and code cleanup 2019-02-23 12:05:53 +01:00
thrust26 9910398be8 added profiling targets 2019-02-23 12:03:21 +01:00
thrust26 e245655747 Revert "optimized Thumbulator.cxx"
This reverts commit 9a09675e55.
2019-02-22 20:11:19 +01:00
thrust26 38366b65bb optimized complex conditional branches in Thumbulator (affects ~5% instructions) 2019-02-22 14:50:52 +01:00
Stephen Anthony 324ba22180 Updated comments. 2019-02-21 22:18:46 -03:30
Stephen Anthony 130fcf1dfc Fairly large refactoring of Settings class
- Completely separate Settings and OSystem; the former no longer uses the latter at all
- Moved separate Settings methods directly into that class, exposing less info outside the class
- Reworked loading/saving config files; this may break macOS port (not tested yet)
- Next thing TODO is convert Settings class to use map instead of vectors
2019-02-21 21:55:08 -03:30