Commit Graph

5177 Commits

Author SHA1 Message Date
Stephen Anthony 14567207ff Fix minor warnings that come up in g++ and not clang, and fixes for which cause warnings in the other compiler. 2019-03-09 18:01:38 -03:30
Fabrice Fontaine 74450028fc undef PAGE_SIZE
PAGE_SIZE is sometimes already defined by the toolchain so undef it:

/home/naourr/work/instance-3/output/host/bin/x86_64-linux-g++ -MMD -MF "src/debugger/.deps/CpuDebug.d" -MQ "src/debugger/CpuDebug.o" -MP -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -x c++ -Wall -Wextra -Wno-unused-parameter -Wno-ignored-qualifiers -Wno-multichar -Wunused -fno-rtti -Woverloaded-virtual -Wnon-virtual-dtor -std=c++14 -fomit-frame-pointer -D_GLIBCXX_USE_CXX11_ABI=1 -DUNIX -DBSPF_UNIX -DWINDOWED_SUPPORT -DSOUND_SUPPORT -DDEBUGGER_SUPPORT -DJOYSTICK_SUPPORT -DCHEATCODE_SUPPORT  -Isrc/emucore -Isrc/common -Isrc/common/tv_filters -Isrc/gui -Isrc/emucore/tia -Isrc/emucore/tia/frame-manager -I/home/naourr/work/instance-3/output/host/x86_64-buildroot-linux-musl/sysroot/usr/bin/../../usr/include/SDL2 -D_REENTRANT -Isrc/unix -Isrc/debugger -Isrc/debugger/gui -Isrc/yacc -Isrc/cheat -c src/debugger/CpuDebug.cxx -o src/debugger/CpuDebug.o
In file included from /home/naourr/work/instance-3/output/host/x86_64-buildroot-linux-musl/sysroot/usr/include/limits.h:8:0,
                 from /home/naourr/work/instance-3/output/host/opt/ext-toolchain/x86_64-buildroot-linux-musl/include/c++/7.4.0/climits:42,
                 from src/common/bspf.hxx:28,
                 from src/debugger/CartDebug.cxx:18:
src/emucore/System.hxx:64:29: error: expected unqualified-id before numeric constant
     static constexpr uInt16 PAGE_SIZE = (1 << PAGE_SHIFT);

Fixes:
 - http://autobuild.buildroot.org/results/22a9b009749af2a0862750a1fb2b2dc7167cd589

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-03-09 17:02:47 -03:30
Stephen Anthony a5ca6b8ca5 Start of purging 'Display_Height' from the codebase.
- We've already removed it from the UI, now it's removed from consideration altogether
- For now, NTSC ROMS use 240, PAL 250; this will change when we get aspect ratio working
2019-03-09 16:27:33 -03:30
Stephen Anthony 91c98ceed2 Converted another plain enum to 'enum class'. 2019-03-09 16:02:43 -03:30
Stephen Anthony 51981d633d When compiled for R77, use 'minimal_ui' mode. 2019-03-09 14:35:22 -03:30
Stephen Anthony fa59b6b9d2 Updated R77 audio settings. 2019-03-09 13:23:07 -03:30
Stephen Anthony 374a318556 More R77 improvements.
- Don't allow ROM launcher to go above '/mnt/games'
- Remember 'lastrom' selected in ROM launcher
2019-03-09 12:48:39 -03:30
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