Commit Graph

193 Commits

Author SHA1 Message Date
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
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
697bfb636d A more succinct definition of the LR35902 interrupt mechanism.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-12-12 22:29:37 +00:00
Adrian Conlon
a1c753d63e Couple of small tidy ups on the LR35902 implementation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-12-10 21:57:32 +00:00
Adrian Conlon
1edabd79f3 More pinout oriented method of executing instructions (especially interrupts)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-12-10 21:41:48 +00:00
Adrian Conlon
23f7a88480 Further 8080/Z80 interrupt rewrite
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-12-03 00:57:47 +00:00
Adrian Conlon
befcda2c0e Linux build compatibility.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-27 21:33:23 +00:00
Adrian Conlon
c513f0cab1 GSL was too problematic when used with GCC. Removed.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-20 19:17:49 +00:00
Adrian Conlon
67c27d4a3e GSL + CPP core guidelines changes.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-18 14:29:30 +00:00
Adrian Conlon
dea1847280 Unify more VS2017 build configurations
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-12 10:38:05 +00:00
Adrian Conlon
0b6ef3d4dd VS2017 and CPP core guidelines updates
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-11 15:13:26 +00:00
Adrian Conlon
c18aeb9e63 More updates from the CPP core guidelines
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-11 11:12:09 +00:00
Adrian Conlon
46d7777dbe Bring LR35902 to VS2017
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-10 23:13:19 +00:00
Adrian Conlon
d4f1614ffa Updated for VS2017
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-10 23:01:10 +00:00
Adrian Conlon
437cc4ce89 LTO in gcc
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-04 23:52:15 +00:00
Adrian Conlon
d408bfe022 Updated build to C++ 14
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-04 12:44:38 +00:00
Adrian Conlon
c292fb552e A whole bunch of consistency changes. No functional changes.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-03 22:05:01 +00:00
Adrian Conlon
ff13e9afc9 Get the LR35902 test suite up and running again.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-28 13:08:07 +01:00
Adrian Conlon
e17e98a6fd Correct constructor initialisation ordering in GameBoyBus
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-24 22:10:02 +01:00
Adrian Conlon
a22e59546b Tidy the gameboy core a little. Mainly by moving the execution loops into the bus class.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-24 00:04:13 +01:00
Adrian Conlon
774b181008 Whoops: correct accidental fall through in GameBoyBus handler.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-23 21:39:31 +01:00
Adrian Conlon
a065199098 Tidy up some leftover work from the scanline rendering update.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-22 21:25:06 +01:00
Adrian Conlon
6ae1d9c492 Update linux Makefile
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-19 22:46:49 +01:00
Adrian Conlon
94604b355d Tidy up include file usage.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-19 22:43:09 +01:00
Adrian Conlon
b6396a8d2d Update linux build
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-19 21:13:05 +01:00
Adrian Conlon
156cb66904 Split the bus into IoRegisters and "the rest"
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-05 11:24:36 +01:00
Adrian Conlon
e8715b941b Explicit use of OAM and VRAM
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-04 18:00:53 +01:00
Adrian Conlon
9796f9d600 First stab at associating the "Display" class more closely with the Bus.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-04 15:37:11 +01:00
Adrian Conlon
2b5324cb43 More scanline changes. Try to render only what we need to see.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-04 01:28:33 +01:00
Adrian Conlon
d5a724fdb4 Whoops: missed variable name change.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-04 00:34:11 +01:00
Adrian Conlon
e2ea6d1445 Some scan line render corrections.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-04 00:30:59 +01:00
Adrian Conlon
c92b0642a1 First stab at scan line rendering.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-03 23:54:39 +01:00
Adrian Conlon
27acba97ff Correct linux warning (signed/unsigned)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-03 15:42:39 +01:00
Adrian Conlon
1993cbe656 Whoops: missing Makefile source entry.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-03 15:29:48 +01:00
Adrian Conlon
c21d66eba4 Correct both a linux warning, and some timing anomalies.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-02 20:54:38 +01:00
Adrian Conlon
18d74b6f13 More linux changes
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-02 20:29:16 +01:00
Adrian Conlon
d2c3efac83 More linux fixes.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-02 17:30:46 +01:00
Adrian Conlon
44ff68d6f3 First part of gb linux port.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-02 16:47:05 +01:00
Adrian Conlon
c06c0d2cf9 Small tidy ups + optimisations.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-02 15:28:41 +01:00
Adrian Conlon
8b1da2097b More scan line rendering changes.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-02 10:12:25 +01:00
Adrian Conlon
10913bf1b8 Remove some unused signals.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-01 22:22:25 +01:00
Adrian Conlon
63f7216341 More preparation for scan line rendering.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-10-01 11:32:41 +01:00
Adrian Conlon
88117398ef Add interrupt signal generation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-09-30 16:47:43 +01:00
Adrian Conlon
13fed631d4 Correct some cycle counting assertion failures.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-09-30 16:46:53 +01:00
Adrian Conlon
e5e6d02845 Correct keypad interrupt generation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-09-30 16:24:25 +01:00
Adrian Conlon
66b870bb78 First stage refactoring CPU instruction execution (to hopefully allow display interrupt interleave)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-09-30 15:28:25 +01:00
Adrian Conlon
da438ffb85 Try to get better cycle count/adjustments. 2017-09-30 00:03:42 +01:00
Adrian.Conlon
794d0fa361 First stab at GB -> linux
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-26 22:59:21 +01:00
Adrian.Conlon
04b6835cf4 Whoops: dangling assert from old audio code.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-23 23:40:26 +01:00