Commit Graph

429 Commits

Author SHA1 Message Date
Adrian Conlon
cac871cf2b Remove duplicated code (from const definitions) the performance benefit isn't worth the amount of duplicated code.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-24 20:58:20 +01:00
Adrian Conlon
feb5e7ad60 Simplifications carried over from the Z80 implementation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-23 16:43:05 +01:00
Adrian Conlon
757d8f3c32 Reduce code density a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-16 10:09:28 +01:00
Adrian Conlon
7d25962f3c Remove commented block.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-16 09:56:16 +01:00
Adrian Conlon
d27b490d4c (Hopefully) fix compilation issue on g++
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-16 09:53:44 +01:00
Adrian Conlon
67487b5b6e Simplify the usage of the register16_t union.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-16 00:55:32 +01:00
Adrian Conlon
89632774a7 Bring closer to the Z80 implementation again.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-11 23:02:27 +01:00
Adrian Conlon
7cb5e137f4 Some small simplifications of the 16-bit arithmetic operators.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-11 23:01:48 +01:00
Adrian Conlon
2d8c3d4b12 Simplify AF usage. Keeps speed roughly as before
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-11 00:50:46 +01:00
Adrian Conlon
fbf098ae00 Simplify memory event handlers and ROM recognition a little (bit of speed difference)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-10 22:00:52 +01:00
Adrian Conlon
3e854c7c49 Const some more bus/processor usage, and ensure the data bus is a member, not a reference to memory.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-06-10 00:40:56 +01:00
Adrian Conlon
7531f8a24a Remove extra stdafx include (Signal.h)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-05-25 22:38:12 +01:00
Adrian Conlon
116f9961c4 Add a higher/lower nibble mask
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-05-25 22:36:10 +01:00
Adrian Conlon
ae177b9b92 Remove unnecessary member variable initialisation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-05-04 04:12:25 +01:00
Adrian Conlon
05fd9cf5bb Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2018-05-04 03:39:35 +01:00
Adrian Conlon
740cf01085 Slightly better use of vector/array for pixel display.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-05-04 03:38:39 +01:00
Adrian Conlon
3e87f8a191 Whoops: correct parity definition
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-05-02 03:31:05 +01:00
Adrian Conlon
0b2c1fa084 Gameboy, some random tidy ups.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-05-02 02:47:47 +01:00
Adrian Conlon
9de0f597f6 Remove some "tricksy" code from the Z80 emulator chain.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-04-14 09:39:06 +01:00
Adrian Conlon
4b4f6b1a49 Some *small* consistency changes. Perhaps some performance gains.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-04-11 23:53:26 +01:00
Adrian Conlon
d818095815 MEMPTR is really only a concept of Intel style processors.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-03-18 22:40:23 +00:00
Adrian Conlon
97a121b8d4 Unneeded UNREACHABLEs can cause gcc to produce problematic code. TBC
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-03-17 23:34:27 +00:00
Adrian Conlon
dac58b121a More small tidyups in the core emulator set.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-03-12 01:22:28 +00:00
Adrian Conlon
bebc68539b Correct sneaky reference passing in heavily used method. (~205Mhz emulated speed)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-03-10 10:53:11 +00:00
Adrian Conlon
45dc274167 Get rid of wrappers for bus access: i.e. make it clearer where the bus is being read/written.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-03-10 01:53:57 +00:00
Adrian Conlon
c6eb68ba13 Further return by value, rather than reference.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-02-26 19:47:35 +00:00
Adrian Conlon
adf506a41e Optimisation: Prefer return by value to return by reference. ~10% speed-up!
Just watch a video by Chandler Carruth from 2015, where he talked about C++ optimisers...

Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-02-25 19:48:01 +00:00
Adrian Conlon
d34b161255 Simplify some build options.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-02-19 23:18:21 +00:00
Adrian Conlon
7f501ff29c Temporarily perhaps, reintroduce post-read and pre-write bus events (for the NES)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-02-07 23:00:38 +00:00
Adrian Conlon
1bf2a9bdfb 6502, Disassembly: Some dump methods can be static
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-27 10:13:17 +00:00
Adrian Conlon
9524cf4c6b Adjust memory loaders, to allow easier usage (default arguments)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-25 22:24:08 +00:00
Adrian Conlon
9124f10008 6502: Implement some more undocumented instructions (for the Blargg nes cpu tests)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-21 10:45:25 +00:00
Adrian Conlon
b5fee5b5d9 Make explicit the notion of page based loads in M6502.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-18 21:17:45 +00:00
Adrian Conlon
21bd8a06e6 Power on conditions are chip specific and *not* directly related to construction/destruction.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-18 17:50:15 +00:00
Adrian Conlon
19aea5244b The vector of instructions was good, but a switch is fastest and probably easiest to read/modify. (Running at 101Mz, 32M instructions per second)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-17 22:17:08 +00:00
Adrian Conlon
d57cb8c9be 6502: I might regret this, but move to a vector of instructions, rather than decoding them one at a time
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-16 23:54:43 +00:00
Adrian Conlon
43573ac699 6502: Rotate and shift by value, not reference.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-14 21:03:29 +00:00
Adrian Conlon
4bd1a1eab1 M6502: Couple of small C++ usage changes: shouldn't be any functional effects.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-12 23:32:06 +00:00
Adrian Conlon
177dbbcd33 Tidy 6502 PLP implementation a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-12 20:39:15 +00:00
Adrian Conlon
ac95670cfc Add support for 6502 pin 38 (SO: set overflow)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-12 20:13:35 +00:00
Adrian Conlon
290ab7a4dc More 8080 simplifications. No need to have it act like a Z80 under the hood.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-11 00:02:44 +00:00
Adrian Conlon
29edc46966 Simplify some MEMPTR usage in Intel processors.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-10 23:08:14 +00:00
Adrian Conlon
3bd01e211e Try to avoid so many virtual calls in the Z80 by hanging onto AF a little longer.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-09 23:30:51 +00:00
Adrian Conlon
0a2873c40d Add AllSuiteA test suite (works fine)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-09 20:18:03 +00:00
Adrian Conlon
ffb945a46d Add some documentation (!) for undocumented 6502 instructions.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-07 23:48:27 +00:00
Adrian Conlon
847e07be86 Add undocumented 6502 instruction RRA. nestest.nes now runs to completion: Hurrah!
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-07 23:42:26 +00:00
Adrian Conlon
4d9c0b490a Add undocumented 6502 instruction: SRE
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-07 23:16:24 +00:00
Adrian Conlon
65b856611e Undocumented 6502 instruction RLA added.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-07 22:50:14 +00:00
Adrian Conlon
31524929c3 Correct Windows path style to platform neutral. 2018-01-06 23:26:34 +00:00
Adrian Conlon
5b62a6b70b Sort out M6502 precompiled headers.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-01-06 23:19:29 +00:00