Riyyi
c9e2bf9e94
Emulator: Implement 16-bit add opcodes
2022-08-25 14:56:33 +02:00
Riyyi
c81db1d3b5
Emulator: Rename decr16 => dec16 as there is only one variant
2022-08-25 14:55:58 +02:00
Riyyi
69dc545bf0
Emulator: Implement 8-bit decrement opcodes
2022-08-25 14:55:58 +02:00
Riyyi
802995b7d9
Emulator: Implement JR opcodes
2022-08-25 14:55:58 +02:00
Riyyi
eb0f4b6a5f
Doc: Add explanation of flag conditions
2022-08-25 11:42:46 +02:00
Riyyi
67f8bcfca9
Emulator: Implement INC and CP arithmetic opcodes
2022-08-25 02:02:57 +02:00
Riyyi
8e4dacca8a
Emulator: Add cli argument to specify bootrom path
2022-08-25 00:16:32 +02:00
Riyyi
dd2920b2a4
Emulator: Load cartridge header
2022-08-25 00:10:57 +02:00
Riyyi
2aa50d3532
Emulator: Put startup into a Loader class
2022-08-24 23:47:36 +02:00
Riyyi
589faceb9b
Doc: Clarify opcode mnemonic for 16-bit address registers
...
When you see a 16-bit register wrapped by parentheses, its referencing
the value at the address the register is pointing to rather than the
address itself.
2022-08-24 22:54:40 +02:00
Riyyi
e9b47d7d68
Emulator: Implement 16-bit DEC opcode
2022-08-24 22:53:35 +02:00
Riyyi
009938b126
Meta: Update ruc library
2022-08-24 22:10:19 +02:00
Riyyi
50e1672524
Emulator: Fix opcode logic in the ldi16 function
2022-08-24 21:21:12 +02:00
Riyyi
1b713f8ab0
Emulator: Make ldi8 function more compact
2022-08-24 21:14:59 +02:00
Riyyi
3fcc6823e8
Emulator: Add last LD opcode
2022-08-24 21:14:59 +02:00
Riyyi
efe798084f
Emulator: Add last 8-bit LD opcode variants
2022-08-24 21:14:59 +02:00
Riyyi
c630a7aab6
Emulator: Add more LD opcodes
2022-08-24 20:52:47 +02:00
Riyyi
8cc8f711e9
Emulator: Reorganize 16-bit and more 8-bit load opcode functions
2022-08-24 20:07:10 +02:00
Riyyi
4220c4fcd2
Emulator: Put opcode comment on the case label line
2022-08-24 19:44:16 +02:00
Riyyi
9f12eaa5ff
Emulator: Reorganize 8-bit load opcode functions
2022-08-24 19:44:09 +02:00
Riyyi
4c24ade250
Test: Add unit test for carry calculation
2022-08-24 18:57:00 +02:00
Riyyi
1cd6c428e3
Emulator: Update opcode commentary to decided terminology
2022-08-24 18:56:57 +02:00
Riyyi
002c992e0d
Emulator: Add FIXME to verify shared register necessity
2022-08-24 18:55:59 +02:00
Riyyi
cc120891ca
Emulator: Add isCarry() function to CPU
2022-08-24 18:55:47 +02:00
Riyyi
1f25f875e6
Doc: Make the half-carry flag explanation more clear
2022-08-24 15:27:08 +02:00
Riyyi
ab550f6d3e
Emulator: Fix offset bug in writeMemory() function
2022-08-23 23:08:54 +02:00
Riyyi
fe020c9374
Doc: Decide on opcode mnemonics
2022-08-23 23:08:21 +02:00
Riyyi
e2ca4359f2
Emulator: Add opcode $20/$0d/$2f
2022-08-23 20:49:46 +02:00
Riyyi
446a777e40
Emulator: Add Formatter for CPU class
2022-08-23 17:03:52 +02:00
Riyyi
1acb5af23e
Emulator: Add function to retrieve AF/PC/SP register
2022-08-23 16:55:35 +02:00
Riyyi
a20d756e7b
Meta: Update ruc library
2022-08-23 16:55:31 +02:00
Riyyi
80e15531f2
Emulator: Add bitmask for additional safety in read/write functions
2022-08-23 13:47:02 +02:00
Riyyi
16235b4663
Emulator: Add opcode $0a/$0e/$1a/$1e/$2a/$2e/$3a
2022-08-23 13:38:08 +02:00
Riyyi
af07357812
Emulator: Add opcode $a8/$af
2022-08-23 01:28:16 +02:00
Riyyi
7e54c733a8
Emulator: Add opcode $cd
2022-08-22 23:24:36 +02:00
Riyyi
5d2ee7cbc9
Emulator: Add opcodes $6/$16/$26/$36
2022-08-22 22:53:52 +02:00
Riyyi
2dc4da71e4
Emulator: Add mnemonic comments to opcodes
2022-08-22 22:53:02 +02:00
Riyyi
6bbc705651
Emulator: Make read/write function more generic
2022-08-22 22:47:32 +02:00
Riyyi
5035b26f8a
Emulator: Add opcodes $2/$12/$22/$32
2022-08-22 21:49:24 +02:00
Riyyi
afedc8a30b
Emulator: Some cleanup in the CPU class
2022-08-22 21:49:24 +02:00
Riyyi
c83d322d0c
Emulator: Make read/write function more generic
2022-08-22 21:49:24 +02:00
Riyyi
2c870e89c6
Emulator: Make memory spaces more accurate
2022-08-22 13:29:54 +02:00
Riyyi
e2db1598af
Emulator: Change opcode lookup table to regular switch case
2022-08-22 13:25:59 +02:00
Riyyi
2a234fabfd
Emulator: Add opcode LDH or LD 0xff00
2022-08-22 13:25:59 +02:00
Riyyi
07345d0552
Emulator: Add some more opcodes
2022-08-22 13:10:30 +02:00
Riyyi
7689efeb44
Meta: Allow single line short case labels in .clang-format
2022-08-22 12:49:44 +02:00
Riyyi
6a44e48244
Doc: Add reference section to terminology.org, add links to mnemonics
2022-08-22 11:47:55 +02:00
Riyyi
4cc21a1c3a
Doc: Add document that describes the GameBoy terminology
2022-08-22 11:33:09 +02:00
Riyyi
ab5d9cbe69
Emulator: Fix loading 16-bit immediate value
...
The 8 lower bits are read first. The 8 higher bits come afterwards!
2022-08-21 23:41:26 +02:00
Riyyi
077ba70a16
Emulator: Read bootrom into memory space
2022-08-21 23:40:40 +02:00