thrust26
d15690f5f1
added mirrors
2017-10-08 10:43:26 +02:00
Christian Speckner
bff13fb008
Comment.
2017-10-07 19:50:29 +02:00
Christian Speckner
47f528c4d3
Inject FrameManager instance into TIA.
2017-10-07 19:48:06 +02:00
Christian Speckner
a452d83b39
Coding style.
2017-10-07 18:48:02 +02:00
Christian Speckner
6aecade2c3
Dcumentation.
2017-10-07 18:26:53 +02:00
thrust26
c6593e6c58
this should be working
2017-10-07 18:25:56 +02:00
thrust26
f862e1c97d
progress...
2017-10-07 14:17:34 +02:00
Christian Speckner
a400238c19
Refactor FrameManager to extend AbstractFrameManager.
2017-10-07 01:41:47 +02:00
thrust26
61bf556e5b
it compiles again
2017-10-06 23:06:59 +02:00
Stephen Anthony
f38b40415f
Minor refactoring of AVox/SaveKey classes (use delegating c'tor).
2017-10-05 20:57:02 -02:30
Stephen Anthony
9fc8b9fcc0
Fixed crash when specifying an invalid controller type on the commandline.
2017-10-04 18:35:55 -02:30
Stephen Anthony
90a6c35061
Removed ability to manually select CompuMate controllers ( fixes #229 ).
2017-10-04 17:43:21 -02:30
Stephen Anthony
d99d3a16f5
Fix crash when using CompuMate scheme but not using CM controllers.
...
The code now never looks at the controller type for CM ROMs, but just creates the required controllers.
This means that we no longer actually need a special CompuMate controller type anywhere in the code, since selecting it has become redundant.
2017-10-03 20:17:23 -02:30
Christian Speckner
d52562975d
AbstractFrameManager adjustments.
2017-10-03 23:08:14 +02:00
thrust26
cd189050ec
Fixed wrong display of swapped controllers in debugger
2017-10-03 18:42:46 +02:00
thrust26
8348525f14
before cleanup
2017-10-03 16:33:33 +02:00
Stephen Anthony
bec1784d18
Added infrastructure to call methods on AVox/SaveKey controllers from InputDialog.
...
Thomas, you will need to edit InputDialog::eraseEEPROM and finish the logic there.
2017-10-02 19:57:21 -02:30
thrust26
43e9693959
added 'echo' command to debugger prompt
2017-10-02 14:23:08 +02:00
Christian Speckner
d220888474
Abstract common frame manager interface.
2017-10-02 00:52:56 +02:00
Stephen Anthony
924e92214f
Fixes for several minor issues in the last few commits:
...
- move files from src/windows to proper location
- formatting fixes to match style in other files
This fixes all compile issues in Linux; still TODO is fix Windows and OSX.
2017-10-01 16:23:53 -02:30
thrust26
00cb377c0a
finalized trackball widgets
2017-10-01 13:06:34 +02:00
thrust26
4fe9317ad2
Refactored FlashWidget, SaveKeyWidget and AtariVoxWidget
2017-10-01 12:00:07 +02:00
thrust26
f77cd9ab06
Updated VS project file, reworked SaveKey/AtariVox widget, started with implementing trackball widgets for debugger (AmigaMouse working)
2017-10-01 09:52:39 +02:00
thrust26
ecd8d0ff22
Fixed and refactored controller selection
2017-09-30 12:03:45 +02:00
thrust26
a92ceed195
SaveKey/AtariVox detects EEPROM areas accessed by ROM and allows erasing only these in the debugger.
2017-09-29 20:12:41 +02:00
Christian Speckner
7965b84553
Merge branch 'master' into refactoring/frame_manager
2017-09-27 23:27:44 +02:00
Christian Speckner
b3228aaad7
Work around g++ bug on OSX.
2017-09-25 22:06:21 +02:00
Stephen Anthony
e7b732b115
Allow access to current frame count from TIA; minor formatting cleanup.
2017-09-23 10:20:36 -02:30
thrust26
ba764fdc06
added _cyclesLo and _cyclesHi to debugger prompt
2017-09-19 20:49:48 +02:00
Stephen Anthony
aed2945a56
First pass at continuous state saving in emulation mode, accessible by the debugger:
...
- Toggle this with Alt-r. When enabled, state is saved each frame to memory (up to 100 slots)
- Upon entering the debugger, rewind is immediately available, allowing to rewind (for example) back past a breakpoint
- Testing is definitely required.
2017-09-18 20:29:52 -02:30
Stephen Anthony
628f981121
Various cleanups to documentation and snapshots:
...
- Changelog updated for recent fixed from Thomas J.
- Minor formatting fixes in TIASurface class
- Updated documentation for 'ss1x' mode; snapshots now have only scaling disabled, not effects removed
- Updated snapshots for change in ss1x, and also ran them all through pngcrush, to optimize size
2017-09-18 19:50:37 -02:30
thrust26
5fe51112dd
fixed #214 , now "usemouse.always" is checked too
2017-09-18 20:48:49 +02:00
thrust26
ed47816303
fixed issue #201 with new reRender method
...
in phosphor modes buffers are simply copied form phosphor buffer, else the screen is rendered again
2017-09-18 15:49:30 +02:00
thrust26
11367e6a17
1x snapshots now support all 4 phosphor/Blargg combinations
2017-09-18 09:27:51 +02:00
thrust26
8aad8afda7
fixed 1x snapshot problem when phosphor was disabled
2017-09-17 23:58:52 +02:00
thrust26
b3eaaac5ed
enable phosphor and TV effects for 1x snapshots
2017-09-17 23:38:59 +02:00
Stephen Anthony
f442fae890
Fixed graphical corrution when saving snapshots in 1x mode
...
- Phosphor is now also disabled in this mode
2017-09-17 16:46:56 -02:30
thrust26
5b0965ad6c
Fixed the fix.
2017-09-17 17:28:03 +02:00
thrust26
f0ced8ae4c
Fixed 1x snapshot bug with phosphor #222
2017-09-17 17:20:48 +02:00
Christian Speckner
c682dd1c27
Microoptimization: avoid function dispatch overhead.
2017-09-17 14:12:37 +02:00
thrust26
7d72265088
added TIA access tracking
...
improved ZP-RAM/Stack tracking
2017-09-17 10:35:45 +02:00
Christian Speckner
8485b0820f
Collisions are disabled during vblank.
2017-09-17 01:35:01 +02:00
thrust26
cfa40722b9
updated poke(), now CPU emulation provides the flags
...
improved ZP/stack access tracking and output
added ZP code tracking
2017-09-16 22:37:19 +02:00
thrust26
3bf809a137
refined access tracking for ZP, Stack and IO addresses
...
improved RIOT RAM output in Distella
2017-09-16 17:38:37 +02:00
Stephen Anthony
03c1ab17fd
Added access tracking to M6532 for ZP and IO addresses.
2017-09-16 10:37:42 -02:30
thrust26
7f65fad7cf
preliminary implementation for ZP-RAM access tracking
...
extra access type flag for poke()
2017-09-16 13:48:04 +02:00
thrust26
10e6d483b1
added access tracking via poke()
...
code cleanup in DiStella and CartDebug
2017-09-16 08:54:32 +02:00
Stephen Anthony
7b63dc6f22
Cleanups to System class (call methods, remove debugging code).
2017-09-15 23:42:20 -02:30
Stephen Anthony
1d99a1e5fa
Refactored various page accessing functionality:
...
- Removed System::PAGE_SHIFT from all classes (except where it's needed inside System); it is an implementation detail of that class that shouldn't be used outside the class, and was making the various calls to setPageAccess very messy
- Changed uInt32 to uInt16, and loop variable to 'addr' for all calls to setPageAccess; this is for consistency, and allows the reader to see how all the code is similar in different classes
- Updated comments in various places (mostly TIA and RIOT) to more clearly show how page accessing works.
2017-09-15 23:28:20 -02:30
Stephen Anthony
ca69e2ed73
Refactor code and comments for TIA and RIOT 'page access' stuff.
2017-09-15 21:22:10 -02:30
thrust26
5f68b0565d
2nd part of Distella updates
2017-09-15 14:56:54 +02:00
Christian Speckner
c26372da4c
Dot.
2017-09-13 20:37:54 +02:00
thrust26
95b04b2baa
1st part of Distella improvements
2017-09-13 16:04:54 +02:00
Stephen Anthony
648ed74527
Oops, missed one variable in the 64-bit clock conversion.
2017-09-12 11:04:59 -02:30
Stephen Anthony
483013baa7
Make PaddleReader constants private, to guard against same variable names used elsewhere.
2017-09-09 17:28:21 -02:30
Sergio Prado
391601d238
Fix error when building with uClibc-ng for ARM
...
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>
2017-09-09 17:25:29 -02:30
Stephen Anthony
b7bf3b79b2
First pass at a consistent default for load/saving files that don't have a
...
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
2017-09-09 15:06:21 -02:30
Stephen Anthony
9190943534
Added debugging output for FSNode.
2017-09-09 14:02:36 -02:30
Stephen Anthony
823c693a9e
Final updates for recent 64-bit cycles refactoring.
2017-09-08 18:52:03 -02:30
Stephen Anthony
c4d04ffe26
CartCDF and friends refactoring (have similar functionality):
...
- rework music fetcher code; there can never be a negative cycle count
- use get/put double Serializer methods for doubles.
2017-09-08 18:36:06 -02:30
Stephen Anthony
ebb8725126
Refactor System::myCycles to be 64-bit instead of 32-bit.
...
- 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).
2017-09-08 11:29:30 -02:30
Stephen Anthony
eafe102daa
Refactor StateManager and RewindManager for eventual use outside debugger.
2017-09-03 23:02:15 -02:30
Christian Speckner
5ca9b7912b
Fix a very minor timing glitch in paddle emulation.
2017-09-02 00:53:08 +02:00
Christian Speckner
2757c906cb
More TIA documentation.
2017-09-02 00:46:54 +02:00
Stephen Anthony
c2302c2e71
Cart::getImage refactoring: use uInt32, since sizes are never negative.
2017-09-01 10:23:17 -02:30
Stephen Anthony
754c901b5a
Fix minor typos, but also a compile error (missing closing comments).
2017-08-31 22:03:41 -02:30
Christian Speckner
cd390bcc5a
TIA documentation.
2017-09-01 00:48:28 +02:00
Stephen Anthony
4440aabc56
Final updates for bankswitch schemes, updating documentation.
...
- Some schemes are not completely documented and/or implemented, and in those cases a FIXME has been added.
2017-08-31 19:21:20 -02:30
Stephen Anthony
6cf4aa4832
Further refactoring of bankswitching schemes, and removal of 'MC' scheme.
...
- MC is being removed, since the code has never been tested, and a test ROM has never been created
2017-08-31 15:31:27 -02:30
Stephen Anthony
31907f4be1
More peek/poke refactoring, and improved comments in bankswitching schemes.
2017-08-31 13:01:45 -02:30
Stephen Anthony
68f80f04d9
Peek/poke refactoring for next batch of bankswitch schemes.
2017-08-30 20:44:18 -02:30
Stephen Anthony
a5d9550f2f
First pass at cleanup of the peek/poke API from Device class:
...
- 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)
2017-08-30 19:45:57 -02:30
Stephen Anthony
8cf8200908
Fixed logic error in detecting 'Alt' key.
...
DirtyHairy, it looks like you removed a negation and replaced it with
a positive (ie, you removed an _ifndef_, not an _ifdef_) :)
2017-08-30 19:41:16 -02:30
Christian Speckner
fd85f9d0d5
Basic support for plain UNIX-style builds on OSX.
2017-08-30 23:13:07 +02:00
Stephen Anthony
2930e74333
Updated FE debugger support to allow changing banks dynamically.
2017-08-30 17:22:56 -02:30
Stephen Anthony
1358be402f
Update explanation of FE scheme, and minor code optimization.
2017-08-30 16:53:00 -02:30
Stephen Anthony
d37b89e2fd
Oops, for Alex I used his github username, not the AtariAge one.
2017-08-30 12:00:26 -02:30
Stephen Anthony
ae8304563d
Updated credits for recent 'FE' research.
2017-08-30 11:52:02 -02:30
Stephen Anthony
92cd739001
Added 'Zippy the Porcupine' info to ROM properties database.
2017-08-30 11:09:06 -02:30
Stephen Anthony
3a02c54b0a
Updated FE scheme to that described by the original FE patent application.
...
- 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.
2017-08-29 22:03:11 -02:30
Stephen Anthony
792421e67d
Updated ROM properties database (Champ Games, mostly).
2017-08-23 22:12:40 -02:30
Stephen Anthony
52c16d604b
Update TIA shadow registers for HMCLR (and code cleanup). Fixes #211 .
2017-08-22 16:38:52 -02:30
Stephen Anthony
21bf401836
Commandline arguments 'holdxxx' now work correctly ( fixes #209 ).
2017-08-22 14:15:30 -02:30
Christian Speckner
5661b245c7
Fix object positions in debugger (getting + setting), documentation.
2017-08-22 15:16:13 +02:00
Christian Speckner
8367ef9828
Documentation typo.
2017-08-20 23:57:11 +02:00
Christian Speckner
25bf4f55d6
Prevent ystart detection code from oscillating between 'fixed' and 'floating'. Documentation.
2017-08-20 23:54:04 +02:00
Christian Speckner
168c7ba201
Fix genesis controller initial state.
2017-08-20 23:39:30 +02:00
Stephen Anthony
6e55d98ad7
Fixed inconsistent Alt-p phosphor behaviour ( fixes #196 ).
2017-08-19 19:48:41 -02:30
Stephen Anthony
48a99c6b6b
Make Random class serializable, and save to state files.
2017-08-18 12:36:54 -02:30
Stephen Anthony
c1f7c5c90b
Fix potential app lockups when emulated CPU execution fails in the debugger.
2017-08-16 19:00:32 -02:30
Stephen Anthony
4f336eddeb
Added 'threads' commandline argument, to enable/disable multi-threading.
...
- Still TODO is expose this in the UI, but the infrastructure is there
- For now, this defaults to off
2017-08-14 21:29:48 -02:30
Christian Speckner
6d1a306b52
Blargg and phosphor threading by Thomas Jentzsch.
2017-08-14 09:20:42 -02:30
Stephen Anthony
7a9cde3e4d
CDF updates (with versioning) from Spiceware.
2017-08-14 09:11:54 -02:30
Stephen Anthony
f57d69a023
Fixed reading collision of ball and playfield ( fixes #189 ).
2017-08-13 14:43:31 -02:30
Stephen Anthony
55111c4ccb
Fixed minor warning for potential uninitialized variable.
2017-08-09 22:38:39 -02:30
Stephen Anthony
1e7e4cbe20
More TIA rendering optimizations.
2017-08-08 12:11:45 -02:30
Stephen Anthony
8759f340e8
Oops, premature optimization; it broke changing phosphor blend level.
2017-08-07 18:56:13 -02:30
Stephen Anthony
1dc78a9b5b
Pre-calculate phosphor colours, and remove redundant shift parameter.
...
This leads to nice speedups in the TIASurface::render() method.
2017-08-07 18:39:30 -02:30
Stephen Anthony
322af0fb38
Fixed code where emplace_back was being used incorrectly.
2017-08-06 13:57:09 -02:30
Stephen Anthony
e2b78b6df7
Remove redundant checks for 'ramrandom'; the code is checking a boolean,
...
then calling a method and checking the boolean again.
2017-08-06 13:30:45 -02:30