Commit Graph

281 Commits

Author SHA1 Message Date
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
Adrian.Conlon
e06a092b2a First stab at audio initialisation.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-19 23:11:50 +01:00
Adrian.Conlon
685a645674 1) Correct frequency hi/lo storage
2) Calculate resultant frequency in Hz.
3) Add extra logging for audio device register writes.

Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-18 19:17:38 +01:00
Adrian.Conlon
735ebe3e85 Add a couple of missed debugging messages.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-17 23:07:56 +01:00
Adrian.Conlon
61ae382a98 A different approach to audio handling. Just holding data at the moment.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-17 22:19:07 +01:00
Adrian.Conlon
462b82add6 Add some new events for sound updates (TBC)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-17 09:50:20 +01:00
Adrian.Conlon
ea3f154989 Preliminary support for 16 row high sprites. Don't think it's working!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-17 09:46:28 +01:00
Adrian.Conlon
07d44966ac Another stab at keyboard scanning. Better, but not perfect...
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 21:25:08 +01:00
Adrian.Conlon
9190b29b4b Remove some unused memory event handlers.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 18:56:05 +01:00
Adrian.Conlon
26e99f6934 Whoops: broke sprite transparency and flipping!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 18:29:47 +01:00
Adrian.Conlon
f4c8496882 Generalise tile rendering code for background and sprites.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 18:23:02 +01:00
Adrian.Conlon
e40ee1d7a6 X/Y sprite flip implemented. Easy!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 17:48:06 +01:00
Adrian.Conlon
94fe1a7494 Add support for sprite transparencies.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 17:37:57 +01:00
Adrian.Conlon
f6181400c4 First stab at sprites. Lots of bugs!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 17:25:55 +01:00
Adrian.Conlon
2060989ac7 Add keyboard interrupt handling (TBC)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 12:35:16 +01:00
Adrian.Conlon
e1b838355e Add P1 (i.e. keyboard) support. Interestingly, gets Tetris *much* further.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-15 00:53:56 +01:00
Adrian.Conlon
32d1085ecb Start properly implementing IO status register read/write.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-14 23:48:49 +01:00
Adrian.Conlon
a77e57e5fc Add pre/post read/write memory events.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-13 23:12:47 +01:00
Adrian.Conlon
2c92e4d389 Updated for appveyor library location compatibility.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-12 13:30:56 +01:00
Adrian.Conlon
3bd647b789 Correct a couple of memory map elements.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-07 20:11:57 +01:00
Adrian.Conlon
c5c842a70b Correct some rom initialisation/loading issues. 2017-09-07 12:23:06 +01:00
Adrian.Conlon
129286f1a7 Ensure LR35902 fuse tests run successfully to completion.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-07 01:15:28 +01:00
Adrian.Conlon
57cfd79c44 Tidy header file usage a little.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-01 16:41:50 +01:00
Adrian.Conlon
9b43b74c28 Rationalise some of the reset/initialise logic across pProcessor implementations.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-01 16:01:40 +01:00
Adrian.Conlon
ef3203d943 Tidy raster line execution a little.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-01 13:24:41 +01:00
Adrian.Conlon
e42484d35c Better DIV implementation. Incremented as a word and exposed as the high part in the DIV register.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-01 13:17:20 +01:00
Adrian.Conlon
a2784ae02d Timers can (of course) expire during CPU instruction execution.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-31 17:21:44 +01:00
Adrian.Conlon
711d4f4384 Add some GB IO register information in the disassembler. Nothing fancy!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-31 17:18:38 +01:00
Adrian.Conlon
1eb127ed72 Add power support to processor base class.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-31 12:13:00 +01:00
Adrian.Conlon
20c126adfc Correct a couple of cycle counting issues.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-31 01:19:51 +01:00
Adrian.Conlon
e70686c5de Some more rationalisation of processor execution/stepping strategies.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-30 23:17:34 +01:00
Adrian.Conlon
5fe3d458df Correct F8 carry flag usage.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-29 22:36:26 +01:00
Adrian.Conlon
daab0484c3 Use corrected LR35902 library to run test loop.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-29 22:35:56 +01:00
Adrian.Conlon
ea033d3984 Move a fair amount of code from the GameBoy implementation into the EightBit library for the LR35902
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-29 22:23:32 +01:00
Adrian.Conlon
9da58a5af7 Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2017-08-29 17:28:24 +01:00
Adrian.Conlon
8033948aef Very small argument tidy.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-29 17:26:41 +01:00
Adrian.Conlon
ec15a2c90c Correct SP arithmetic methods: All Blargg CPU tests now pass. Hurrah!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-28 23:04:25 +01:00
Adrian.Conlon
329fd269ed Share some more code from the 6502 processor implementation.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-28 18:52:48 +01:00
Adrian.Conlon
73a34f4fae Start a more careful documentation of the I/O registers.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-26 09:46:53 +01:00
Adrian.Conlon
4cbab14750 Remove unused StatusFlags.h header. Not sure why that was still there!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-25 22:37:10 +01:00
Adrian.Conlon
c6df5ba775 Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2017-08-25 10:33:31 +01:00
Adrian.Conlon
246e6431ab Small correction to GB SP instructions passes a little more of the Blargg tests.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-25 10:33:22 +01:00
Adrian.Conlon
01317796c0 Effective address calculation isn't required for Gameboy MBC1
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-24 23:47:28 +01:00
Adrian.Conlon
ae4106ce5a Preliminary MBC1 support. Enough to run cpu_instrs.gb to completion. Hurrah!
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-24 23:23:40 +01:00
Adrian.Conlon
9964070b85 Refactor to allow peek/poke/reference to share a common implementation as much as possible.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-24 11:28:01 +01:00
Adrian.Conlon
448ee2f09f Refactor the MBC implementation to allow a single point of definition.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-24 10:28:31 +01:00
Adrian.Conlon
da96454185 Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2017-08-23 23:18:52 +01:00
Adrian.Conlon
2c7e32aa78 First stab at implementing MBC1 support for LR35902. Not complete, but all old tests still work.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-23 23:17:45 +01:00
Adrian.Conlon
2c99e09618 Correct compiler type for LR35902 fuse tests.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-23 22:22:58 +01:00
Adrian.Conlon
a087750d9c Interrupt handling doesn't use the current running cycles.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-21 09:34:17 +01:00
Adrian.Conlon
1cf73a8aa4 Correct test runner, to ensure LR35902 tests work correctly.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-20 23:01:49 +01:00
Adrian.Conlon
8716035396 Second stage halt implementation: allow halt state to be exited by an interrupt.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-20 20:09:21 +01:00
Adrian.Conlon
57e48e389f First stage "halt" reimplementation: allow the clock to run during halt, but nothing else.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-20 19:44:57 +01:00
Adrian.Conlon
42b0fdc23d Implement DIV timer (TBC)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-20 09:52:26 +01:00
Adrian.Conlon
75b17e47a8 Better method of enabling/disabling boot ROM.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-19 17:33:28 +01:00
Adrian.Conlon
86a4e22ae1 First stab at implementing GB timer control.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-18 19:00:10 +01:00
Adrian.Conlon
0457dffba4 Rewrite GB interrupt handling to properly document the trigger sequence.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-18 09:49:06 +01:00
Adrian.Conlon
039545bd08 Rearrange some of the shift/rotate code a little to make it easier to read.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-16 22:51:15 +01:00
Adrian.Conlon
54ab96ea38 Correct expected test results, now we know the zero flag is cleared for shift/rotate operations.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-15 23:35:27 +01:00
Adrian.Conlon
87e97eea8c Fixes rotates and shifts zero flag use (i.e. 09 - op r,r,s now runs successfully)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-15 23:27:46 +01:00
Adrian.Conlon
2bbb021176 Correct case error in LR35902 disassembler
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 22:57:46 +01:00
Adrian.Conlon
6506b33436 Add comment noting GB: unique instruction.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 18:41:51 +01:00
Adrian.Conlon
c7dafb5f75 Another GB test corrected.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 18:11:19 +01:00
Adrian.Conlon
00f6c14703 Another couple of tests fixed.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 10:54:44 +01:00
Adrian.Conlon
a8c3c46709 Fix broken GB pop af test, to take low order flags mask.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 10:42:34 +01:00
Adrian.Conlon
043b7f3338 Another tested GB instruction.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 10:36:19 +01:00
Adrian.Conlon
e7116c5b56 Another GB test fixed.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-14 10:22:22 +01:00
Adrian.Conlon
4d322aeeb3 More GB tests fixed
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 23:01:52 +01:00
Adrian.Conlon
4a0d2dd930 Miscellaneous GB tests fixed. No surprises.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 22:51:15 +01:00
Adrian.Conlon
e6c4199b2a More miscellaneous GB tests fixed.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 22:11:43 +01:00
Adrian.Conlon
fb13d9fdce Correct GB: SWAP r operation. The demoted high nibble was being effectively zeroed each time.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 21:34:19 +01:00
Adrian.Conlon
c10dced63e Add test for GB SWAP r instructions.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 21:31:28 +01:00
Adrian.Conlon
6bbd7392dc LR35902 clears the half-carry flag on a CCF
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 19:51:42 +01:00
Adrian.Conlon
f41050b60c Add working test for 3a: LDD A,(HL)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 12:52:30 +01:00
Adrian.Conlon
ca1176f0bb Fix test 32: LDD (HL),A from GB programming manual.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 12:02:45 +01:00
Adrian.Conlon
3355179884 Fix test for 2a: LDI A,(HL)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 11:48:01 +01:00
Adrian.Conlon
a739c0eddf Use daa examples from GB programming manual for tests.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-13 11:07:01 +01:00
Adrian.Conlon
c84b757ad9 Move GB documentation to be closer to the LR35902 implementation.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 23:55:56 +01:00
Adrian.Conlon
dd873d9761 Start adding LR35902 tests, where wrong.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 23:54:53 +01:00
Adrian.Conlon
a24581caee Add comments pointing out GB specific instructions in the test input suite.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 15:48:15 +01:00
Adrian.Conlon
37c86fa5cf All comments in the LR35902 test input file
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 15:47:03 +01:00
Adrian.Conlon
0084d962c1 Unused Z80 prefixes removed from the test suite.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 14:49:32 +01:00
Adrian.Conlon
78e5451f93 Remove remaining Z80 -> LR35902 test translation code.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 14:29:12 +01:00
Adrian.Conlon
e7001b2425 Now runs the first pass of the translated Z80 tests as LR35902 style instructions
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-12 14:22:10 +01:00
Adrian.Conlon
5526892e2f Adjust for the differences between Z80 LR35902 flags (TBC!)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-11 23:16:24 +01:00
Adrian.Conlon
42b1b7dc53 Add a one off converter for Z80 -> LR35902 fuse tests (TBC!)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-10 23:46:41 +01:00
Adrian.Conlon
f0515ae65f First stab at a port of the fuse tests to LR35902.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-10 20:34:17 +01:00
Adrian.Conlon
7948962d70 Because of its boot room, the LR35902 needs a custom clear mechanism.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-10 20:30:37 +01:00
Adrian.Conlon
9fcb349e1f Brought the LR35902 a little closer to the Z80
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-08 13:32:51 +01:00
Adrian.Conlon
88d773708c Correct some outstanding LR35902 problems arising.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-06 22:04:13 +01:00
Adrian.Conlon
016b3bca59 Switch to a memory read/write event driven model. All tests passing.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-06 17:06:48 +01:00
Adrian.Conlon
261433bd6e Remove unneeded 16-bit operations.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-07-27 21:44:24 +01:00
Adrian.Conlon
569e1925ce Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2017-07-25 21:23:27 +01:00
Adrian.Conlon
b6dd48ca63 Some more small clarifications of shared processor implementation.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-07-25 18:56:43 +01:00
Adrian.Conlon
99c1e8e2f1 Correct 8-bit signed integer display problem in disassembler.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-07-22 14:07:26 +01:00
Adrian.Conlon
9a264c7c06 Bring the LR35902 and i8080 increment/decrement implementations in line with the Z80.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-07-22 10:23:13 +01:00
Adrian.Conlon
0a02c32695 Some things (namely shift.rotate instructions) don't need to be quite so close to the Z80 implementation.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-07-21 19:23:36 +01:00
Adrian.Conlon
beca76d733 Share instruction decoding mechanism between Intel derived processors.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-07-21 13:33:17 +01:00