The uClibc-ng C library defines a type called R0 when compiling for ARM,
that conflits with a global variable called R0 from PaddleReader.cxx.
src/emucore/tia/PaddleReader.cxx:25:3: error: ‘constexpr const double R0’ redeclared as different kind of symbol
R0 = 1.5e3,
^
/home/sprado/workspace/build/buildroot/build/stella_uclibc/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/ucontext.h:42:3: note: previous declaration ‘<anonymous enum> R0’
R0 = 0,
^~
So let's redefine R0 as a private member of the PaddleReader class.
Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
pre-defined location (ROM files and disassemblies, etc).
- Repurposed the snapshot load/save folders by changing OSystem::defaultSnapLoadDir to OSystem::defaultLoadDir, and similar for the save dir
- In Windows, this directory will now be 'Documents\Stella', while in Linux/OSX it will be $HOME
- Testing still required for Windows and OSX; only Linux is confirmed to work for now
- The cycles counter is now essentially monotonically increasing (ie, we never need to worry about it going backwards and giving a negative difference, simplifying a lot of code
- There are now reset() methods in all places that keep track of system cycles, but they are used for a full reset only; not called each frame like before (which had to be done to prevent overflow).
- remove peek and poke from classes where the addressing is set up such that they aren't needed
- where possible, move from using 'myCurrentBank << 12' everywhere, to precomputing the value (perhaps a small optimization, but still valid)
- This emulation is much simpler, and takes the scheme from being
esoteric to being a simple hotspot-based scheme
- The original patent application for the FE scheme describes in perfect
detail what is happening, and although the previous code worked, it
was complex and actually hid what was really happening.
Now that the scheme is hotspot-based, the debugger can be extended to
work better with it. That part comes next.
- changed from templates back to inheritance (sorry DirtyHairy :))
- added 'tsense' commandline argument and associated UI
- updated docs and screenshots for new functionality
- An extraneous TAB key event was being generated
- This is possibly an SDL bug in Linux only; it doesn't happen on other systems
- I've contacted the SDL mailing list for more info, so this code may be temporary
Clang 3.8, gcc 5, Visual Studio 2017 and Xcode 8 are now the minimum
supported compilers, and they all support C++14, so we may as well use it.
- Change all make_ptr to make_unique
- Change iterator begin(), end(), etc to const versions where appropriate
- Remove UniquePtr, since C++14 supports it natively
* Lazily update readout circuit simulation as soon as the pin
changes
* Always assume that "max resistance" means "connected to ground"
* Minor accuracy improvements
This is enabled in the UI or through the 'tv.phosphor' commandline
argument. Note that what was previously 'tv.phosphor' (for setting
the blend level) is now 'tv.phosblend'.
Updated documentation in various places.
Added new 'tv.phosphor' commandline argument to accomplish the above,
and associated UI item in Video Settings.
Updated docs for 'tv.phosphor' and 'tia.debugcolors'. More work is
needed on this, since I need to add screenshots for this new functionality.
This is allowed, since after analyzing the code, we see the pixel format
will always be ARGB8888 mode, so we can hard-code the logic to do the
conversion.
This leads to a measurable performance improvement, since we eliminate
3 function calls per RGB colour lookup. And the calls themselves involved
IF statements and various other shifts that weren't needed. Assuming
normal phosphor mode with 160x210 pixels, this saves 100,800 function calls
per frame!
This has been in patch form for about a year, and I'm finally
getting around to applying it. Basically, we separate the Cart
class into 3 classes:
- Cart: stuff specific to cartridge emulation
- BSTypes: various bankswitch types, both as enum and strings
- CartDetector: actual bankswitch auto-detection code
Also made more use of smart pointers, and added const in a few
more places.
I promise to get back to the phosphor stuff soon. This is just
to clear my head a little.
the fixed debug colors to user-defined preferences. Note that there
are 6 registers (P0,M0,P1,M1,PF,BL), and the option takes a string
of 6 characters, where each represents a colour for the respective
positional register (ROYGBP are the choices).
I may add a UI item for this, but this is as far as I will go with
allowing user editing.
For now, Blargg phosphor mode simply shows the same image as without phosphor.
This is a WIP, and if we can't get it finished for 5.0, it will be released as-is.
Phosphor blend now defaults to 0 in the base properties, and is converted to
50 before being passed to higher levels. This needs to change when we
get to issue #144.
- converted many pointers to references
- merged code from several files into one class
- broke up some methods into more managable chunks
This will allow it to be easy to add the phosphor code during
NTSC TV emulation.
- Updated default phosphor blend to '30'.
- Added shortcut keys Alt-i and Alt-o to decrease/increase phosphor
blend mode dynamically, while a ROM is running.
- Made range of blending 0 - 100.
The Harmony/Melody BUS driver is undergoing a major revision to add support for the new JMP FASTJUMP feature. This update implements the changes, as well as the fast jump feature which isn't yet in the HMdriver. It also implements the load/save state support as well as the BUS debugger widget.
A few minor updates to CDF were also done.
Note that this update breaks compatibility with the previous BUS demos.
Rework defaults for ROM launcher and TIA zoom level.
Both of these are basically defined around having only a 640x480
screen, which hasn't been the case on hardware (even phones) for
about 10 years.
* Implemented load/save state.
* Updated the debugger tab, which required the following:
- removal of : from RAM labels (part of the debugger overhaul)
- setCrossed() functionality in the DataGrid
The Harmony/Melody CDF driver underwent a major revision to add support for the new JMP FASTJUMP feature. Note that this update breaks compatibility with the previous CDF demos.
3-Voice Audio and Digital Sample playback are in place, though both sound "off" so further work will need to be done. Debugger Widget needs additional work, and state save/load support needs to be finished.