Commit Graph

40 Commits

Author SHA1 Message Date
Lee Fogg 4a9de25186 Dont fully understand why but this improves it by 7.75% 2020-04-19 19:30:33 +01:00
Lee Fogg 2b3330bbee Use `ref` to pass PC by reference into ReadNextInstruction which then doesn't need its own Position 2020-04-18 20:47:44 +01:00
Lee Fogg 313ff55adf Reuse the same Z80Instruction instance
Avoid using `new`
2020-04-18 20:21:49 +01:00
Lee Fogg 8bb52e6fc6 Reuse 1 or 2 byte buffers for ReadBytes
ReadBytes is never used to read more than 2 bytes so no need to keep allocating buffers
2020-04-18 20:13:06 +01:00
Lee Fogg ac1d09f718 Strongly typed interrupt vectors 2020-04-18 14:32:42 +01:00
Lee Fogg fe0d65a084 Moved emulator stuff out of cpu and into GameBoy class
Replaced OnPerformedStep event with hardcoded calls to whatever component to reduce EventArgs creation (GC)
Added  Cpu.SpeedMultiplier to dimplify (speedMode ? 2 : 1) everwhere
2020-04-17 23:09:27 +01:00
Lee Fogg db225984d6 Zeroed invalid opcodes 2020-04-15 20:40:09 +01:00
Lee Fogg 8b6cbef37c Fixed instruction timings 2020-04-15 19:59:06 +01:00
Washi 74b331d4e8 Merge branch 'master' into monogame-support 2018-10-06 12:02:08 +02:00
Washi fdc32a5f61 Cleanup of some code, Added timer registers to IO view 2018-07-31 18:54:15 +02:00
Washi c9442e221b Bugfix: Interrupts now interrupt HALT regardless of value of IME 2018-07-26 21:26:28 +02:00
Washi 2c1ac18334 DAA now conforms to testroms. 2018-07-25 00:51:26 +02:00
Washi 2be31b675c Started on breakpoint conditions, expression parser. 2018-07-11 23:51:03 +02:00
Washi e9bddd1353 Fixes CCF and SCF instructions. 2018-07-11 20:50:34 +02:00
Washi 9f2094575c Extracted IClock interface, moved native timer to main app. 2018-07-07 17:36:13 +02:00
Washi 30d9722355 Carry flag improvements 2018-01-30 17:29:23 +01:00
Washi 8119619565 POP AF bugfix, BGPI bugfix 2018-01-30 00:09:16 +01:00
Washi ba5e936ff3 GBC double speed mode improvements 2017-10-22 16:25:35 +02:00
Washi e0520e122a GPU sprite priority bugfix, started on doublespeed gbc mode 2017-09-16 01:26:27 +02:00
Washi 1430c91406 Bugfixes mbc5, dma controller, image better quality 2017-08-22 19:18:56 +02:00
Washi b0f055586d Components now implemen IGameBoyComponent interface. 2017-08-22 17:24:27 +02:00
Washi 1d3c48c602 Disassembler read directly from field 2017-08-13 23:12:39 +02:00
Washi ddc4cc4ab8 Added Resumed event to CPU 2017-08-13 19:23:56 +02:00
Washi de2fba9dd9 Clock speed updates every frame now 2017-08-09 00:39:17 +02:00
Washi 2438218756 Bugfix LDH a, (nn) clock cycles 2017-08-07 18:00:57 +02:00
Washi eb9b39fdcf Bugfix RRA instruction 2017-08-05 21:06:29 +02:00
Washi f19cb19498 Bugfix LD HL,SP+00 2017-08-03 23:05:04 +02:00
Washi 82772902ca Square channels simple implementation 2017-08-03 16:34:16 +02:00
Washi a54cc1a790 Bugfix flags roll operations 2017-07-29 01:12:32 +02:00
Washi f114d4559b Some GUI programming, concurrency bugfix regarding pausing 2017-07-28 01:31:54 +02:00
Washi 3ef458a253 More sophisticated frame limiter 2017-07-28 00:08:49 +02:00
Washi 728386a728 Merge branch 'master' 2017-07-27 12:09:17 +02:00
Washi 3e02059dde Bugfix DAA with N flag, experimental frame limiter, docoumentation 2017-07-27 01:56:17 +02:00
Washi 3178bf7c01 Memory bank controller v2 implementation 2017-07-26 16:18:25 +02:00
Washi 5eb04b9dd0 Memory bank controller v2 implementation 2017-07-26 16:15:01 +02:00
Washi c780f42d53 GameBoy Timer implemented. Some cleanup 2017-07-26 15:31:54 +02:00
Washi b962d12a43 Bugfix roll through carry clears carry before using it. 2017-07-26 01:35:57 +02:00
Washi c226706b31 DAA support 2017-07-25 14:59:42 +02:00
Washi 4cca1e1423 Bug fixes on some instructions 2017-07-25 14:02:09 +02:00
Washi c40d798091 Initial commit 2017-07-23 23:45:16 +02:00