Adrian Conlon
|
a940a29283
|
Unify build settings across all the EightBit libraries.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-28 21:24:51 +00:00 |
|
Adrian Conlon
|
e156b1ff1a
|
Correct some more compilation warnings (across the whole EightBit project).
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-25 19:02:11 +00:00 |
|
Adrian Conlon
|
68b352d1df
|
Wire the GameBoy board like a piece of powered hardware.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-12 00:38:03 +00:00 |
|
Adrian Conlon
|
fdbb28828f
|
Apply the concept of powered components to the "board"
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-11 16:48:44 +00:00 |
|
Adrian Conlon
|
e688411cb9
|
Refactor memory related code a little to make the hierarchy of classes a little easier to understand.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-04 16:38:57 +00:00 |
|
Adrian Conlon
|
95968cb000
|
Whoops: missed boost update for LR35902
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-04 13:26:12 +00:00 |
|
Adrian Conlon
|
8ef5d97366
|
Update boost from 1.65 -> 1.68
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-04 12:58:01 +00:00 |
|
Adrian Conlon
|
9132f2028f
|
Add an "UnusedMemory" class to better allow "gaps" in the memory map.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-03 23:11:48 +00:00 |
|
Adrian Conlon
|
984626a331
|
Introduce the concept of a MemoryInterface to the EightBit library.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-03 22:15:17 +00:00 |
|
Adrian Conlon
|
68a785ceec
|
Add an address masking to the memory mapping structure.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-11-01 23:43:29 +00:00 |
|
Adrian Conlon
|
015071fcfb
|
Tidy up GameBoy processor (LR35902) with respect to C++14/17
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-10-27 19:23:02 +01:00 |
|
Adrian Conlon
|
8dbb3eafec
|
Switch to C++17 standard in all EightBit projects.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-10-27 14:28:14 +01:00 |
|
Adrian Conlon
|
1b2ddd8843
|
Don't expose the bus via the CPU any more: if a component needs the bus, it should be prepared to hold a reference to it.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-10-20 20:52:41 +01:00 |
|
Adrian Conlon
|
8d3551e681
|
Refactor bit set/get routines from processor class to lower level chip class.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-09-29 14:08:44 +01:00 |
|
Adrian Conlon
|
fe3794e011
|
Simplify register16_t usage a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-09-16 12:00:29 +01:00 |
|
Adrian Conlon
|
7d840f1a42
|
Modifying the manner in which memory is mapped, allows a fairly clean mechanism for loading Intel "hex" files.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-09-15 14:35:59 +01:00 |
|
Adrian Conlon
|
97272d650d
|
Simplify processor bus access a little by further allowing register16_t address access.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-29 13:52:25 +01:00 |
|
Adrian Conlon
|
a8cc289149
|
Whoops: The "Bus" class *really* isn't allowed to know the "endianness" of the attached processor!
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-27 11:27:33 +01:00 |
|
Adrian Conlon
|
1212e8d4f0
|
Tidy some processor virtual specifications.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-25 13:35:53 +01:00 |
|
Adrian Conlon
|
17c46264e9
|
Match the GameBoy code to the updated handling of reset (etc.) interrupts.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-25 01:57:22 +01:00 |
|
Adrian Conlon
|
6d4223c368
|
Start moving towards reset being just another style of interrupt.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-25 01:34:30 +01:00 |
|
Adrian Conlon
|
b0aacce406
|
Tidy header file usage a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-18 23:56:16 +01:00 |
|
Adrian Conlon
|
ed76038bfa
|
More memptr adjustments
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-17 13:59:59 +01:00 |
|
Adrian Conlon
|
70c70af969
|
Sort out some exception and member initialisation rules.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
|
2018-08-11 21:19:19 +01:00 |
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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 |
|
Adrian.Conlon
|
dbe5f7f8e5
|
Prepare the LR35902 to allow use of the Blargg gb sound library.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-23 22:56:11 +01:00 |
|
Adrian.Conlon
|
053d649124
|
Whoops: correct or/and muddle in the volume envelope.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-23 11:19:01 +01:00 |
|
Adrian.Conlon
|
210286514e
|
Calculate voice step length adjustments.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-23 00:26:06 +01:00 |
|
Adrian.Conlon
|
5084d85e49
|
Wire envelope amplitude shaping.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-23 00:07:30 +01:00 |
|
Adrian.Conlon
|
09f7fe5dfe
|
Couple of small "documentation" changes.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-22 22:09:57 +01:00 |
|
Adrian.Conlon
|
78b6e7b339
|
Remove dump logging, it was never overly useful anyway.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-22 19:17:34 +01:00 |
|
Adrian.Conlon
|
1a1d5ea807
|
Start the process of audio frame generation.
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-22 09:30:27 +01:00 |
|
Adrian.Conlon
|
a4cdc2bcb5
|
Correct int/bool cast warning
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-22 09:29:05 +01:00 |
|
Adrian.Conlon
|
531d5d6d6b
|
Refactor the Audio header into declaration/definition files.
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-21 23:43:33 +01:00 |
|
Adrian.Conlon
|
877618f973
|
Wire audio frame counter (tbc)
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-21 21:26:52 +01:00 |
|
Adrian.Conlon
|
cd63636895
|
Move some constants from static methods to enumerations.
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-21 20:08:37 +01:00 |
|
Adrian.Conlon
|
7830c29f6a
|
Update audio custom wave pattern data.
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-21 10:36:52 +01:00 |
|
Adrian.Conlon
|
32a585a980
|
Correct warning.
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-20 22:33:43 +01:00 |
|
Adrian.Conlon
|
acf0c53e1a
|
Move the audio data (hopefully) correctly between the registers and the audio device.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
|
2017-09-20 20:53:04 +01:00 |
|
Adrian.Conlon
|
ca0b768ac5
|
More Noise Register to Audo structure conversions.
Signed-off-by: Adrian.Conlon <adrian.conlon@arup.com>
|
2017-09-20 00:38:35 +01:00 |
|