Riyyi
900dbde54b
Emulator: Set camera zoom-level and screen flip in scene JSON
2022-10-16 12:47:21 +02:00
Riyyi
16db21fcab
Emulator: Fix predicate jump call opcodes
2022-10-16 12:46:10 +02:00
Riyyi
d33de14694
Emulator: Fix swap opcodes
2022-10-16 12:46:10 +02:00
Riyyi
80c68035c5
Emulator: Fix non-prefix rotate opcodes
2022-10-16 12:46:10 +02:00
Riyyi
8f016b1095
Emulator: Add function to fetch pixel color from palette
2022-10-16 12:46:10 +02:00
Riyyi
869438e0e0
Emulator: Add state machine to PPU
2022-10-16 12:46:10 +02:00
Riyyi
6943cfd684
Emulator: Add naive background tile rendering to PPU
2022-10-16 12:46:10 +02:00
Riyyi
fcfd27468d
Emulator: Change main to become an Inferno application
2022-10-16 12:46:10 +02:00
Riyyi
ce46f5033a
Emulator+Test: Store ProcessingUnits as std::shared_ptr
2022-10-16 12:46:10 +02:00
Riyyi
5919f70537
CMake+Meta: Add inferno dependency, which includes ruc indirectly
2022-10-16 12:46:10 +02:00
Riyyi
136250355e
Meta: Add assets for settings and scene
2022-10-16 11:32:52 +02:00
Riyyi
66c10e3c3e
Doc: Update git submodule instructions in readme
2022-09-27 12:42:28 +02:00
Riyyi
7153b0e9b6
Emulator: Optimize interrupt request checking
2022-09-02 23:15:06 +02:00
Riyyi
cd2673909c
Emulator: Implement DI/EI opcodes, finish RETI opcode
2022-09-02 22:44:24 +02:00
Riyyi
5b4dbdc9a4
Emulator: Add interrupt handling
2022-09-02 22:44:24 +02:00
Riyyi
5b08c18127
Emulator: Fix DAA carry flag, opcode: 0x27
2022-09-02 16:35:43 +02:00
Riyyi
857865dfb9
Emulator: You can only have copyright on stuff you have worked on
2022-09-02 16:08:31 +02:00
Riyyi
a29f01389b
Emulator: Fix RET zero flag condition, opcode: 0xc0, 0xc8
2022-09-01 21:49:29 +02:00
Riyyi
a806f173ce
Emulator: Add getters for CPU registers
2022-09-01 18:13:32 +02:00
Riyyi
3b132a6820
Test: Add way to run opcodes in test cases, add test for ADC, POP, PUSH
2022-09-01 18:05:33 +02:00
Riyyi
b63f0d3b52
Test: Update CPU test for new carry logic
2022-09-01 17:34:48 +02:00
Riyyi
b48f308bfc
Emulator: Simplify isCarry(Subtraction) function
2022-09-01 17:23:07 +02:00
Riyyi
059441c30a
Emulator: Fix ADC/CP/DEC/SBC/SUB opcode: 0x8e, 0xbe, 0x35, 0x93, 0x96
...
Most of these were broken on the carry and half-carry calculation.
2022-09-01 16:59:27 +02:00
Riyyi
a4743fa77b
Emulator: Fix LD A,(HL-) opcode: 0x3a
2022-09-01 14:26:58 +02:00
Riyyi
70778840c7
Emulator: Fix SLA/SRA/SRL opcodes: 0x26, 0x2e, 0x3e
2022-09-01 14:26:58 +02:00
Riyyi
c396e7fcf6
Emulator: Fix LD L,(HL) opcode 0x6e
2022-09-01 14:26:58 +02:00
Riyyi
92c0236f2a
Emulator: Rename ldffi8 => ldff8 and move two opcodes to it
2022-09-01 14:26:58 +02:00
Riyyi
f56984b555
Emulator: Fix LD A,(0xff00 + C) and its reverse, opcodes: 0xe2, 0xf2
2022-09-01 14:26:58 +02:00
Riyyi
1dd9a2c16e
Doc: Add definition for lsb/msb, (least|most) significant byte
2022-09-01 14:26:58 +02:00
Riyyi
1c0809b611
Emulator: Fix LD a16,SP opcode: 0x08
2022-09-01 14:26:58 +02:00
Riyyi
c8ad40c128
Emulator: Fix LD A,a16 opcode: 0xfa
2022-09-01 14:26:58 +02:00
Riyyi
cc46a45a73
Emulator: Print blargg's test ROM output
2022-09-01 14:26:58 +02:00
Riyyi
ed045a72b2
Emulator: Prepare for running blargg's test ROMs
2022-09-01 14:20:57 +02:00
Riyyi
38b740856e
Emulator: Fix 2 opcodes ending up in the wrong location
2022-09-01 00:51:35 +02:00
Riyyi
e1eed33410
Emulator: Fake screen scrolling to pass the bootrom
2022-09-01 00:51:35 +02:00
Riyyi
2b7d4dee3d
Emulator: Add LCDC register to PPU
2022-08-31 21:43:56 +02:00
Riyyi
5831a23b02
Meta: Update ruc library
2022-08-31 21:33:09 +02:00
Riyyi
c7903c0a50
Emulator: Fix address pushed onto stack in CALL opcode
2022-08-31 20:30:23 +02:00
Riyyi
5d054c90f8
Emulator: Update comment wording
2022-08-31 20:21:44 +02:00
Riyyi
5a690a12d2
Meta: Add script to check for missing opcodes
2022-08-31 10:16:11 +02:00
Riyyi
461fc28c94
Emulator: Add support for negative numbers to DAA opcode
2022-08-31 01:22:36 +02:00
Riyyi
6c2e5d32d4
Emulator: Implement DAA opcode
2022-08-30 18:10:47 +02:00
Riyyi
525391144a
Emulator: Fix increment HL opcode
2022-08-30 16:41:20 +02:00
Riyyi
cfded56dcd
Emulator: Fix offset bug in readMemory() function
2022-08-30 16:24:51 +02:00
Riyyi
024e6aecc3
Emulator: Add comments to cycle waiting amount
2022-08-30 15:20:54 +02:00
Riyyi
baa679904c
Emulator: Implement RET opcodes, minus one
2022-08-29 01:54:31 +02:00
Riyyi
0c4d7b2112
Emulator: Implement JP opcodes
2022-08-29 01:31:02 +02:00
Riyyi
3346b5329a
Emulator: Implement XOR/OR opcodes
2022-08-29 01:12:59 +02:00
Riyyi
275739bd5b
Emulator: Implement SUB/SBC opcodes
2022-08-29 00:26:40 +02:00
Riyyi
d47dddfe69
Emulator: Implement ADC opcode
2022-08-28 22:47:30 +02:00
Riyyi
bf8bd66389
Emulator: Implement 8-bit ADD opcodes
2022-08-28 22:47:12 +02:00
Riyyi
3bac216698
Emulator: Add some missing LD opcodes
2022-08-28 22:16:01 +02:00
Riyyi
7dc569b1a1
Emulator: Add SCF/CCF opcodes
2022-08-28 22:16:01 +02:00
Riyyi
5015b9e59d
Emulator: Implement 16-bit INC opcode
2022-08-28 18:12:19 +02:00
Riyyi
a7169addd8
Emulator: Rename inc() => inc8()
2022-08-28 17:49:49 +02:00
Riyyi
4dffe1a60a
Emulator: Implement push/pop opcodes
2022-08-28 17:44:59 +02:00
Riyyi
69760e349e
Emulator: Fix compiler warnings in cpu-prefix.cpp
2022-08-28 17:44:59 +02:00
Riyyi
200cf12a8f
Emulator: Fix switch case numbers for prefix opcodes
2022-08-28 16:43:01 +02:00
Riyyi
c4ccbecaf7
Emulator: Add warning for illegal opcodes
2022-08-28 16:25:39 +02:00
Riyyi
ec0f8bf02e
Emulator: Implement SLA/SRA/SRL opcodes
2022-08-27 13:43:15 +02:00
Riyyi
ac03d70d83
fixup! Emulator: Implement SWAP opcodes
2022-08-27 13:38:04 +02:00
Riyyi
99c768d400
Emulator: Rename reg => register_
2022-08-27 13:36:07 +02:00
Riyyi
fb6ba43ff1
Emulator: Implement RL/RR opcodes
2022-08-27 13:36:07 +02:00
Riyyi
275cab4da4
Emulator: Implement RLC/RRC opcodes
2022-08-27 13:08:21 +02:00
Riyyi
d53f4759e3
Emulator: Implement SWAP opcodes
2022-08-27 12:43:01 +02:00
Riyyi
67698528e1
Emulator: Implement SET opcodes
2022-08-27 02:17:37 +02:00
Riyyi
e35aa06471
Emulator: Implement RES opcodes
2022-08-27 02:15:18 +02:00
Riyyi
6ada7261e7
Emulator: Add .cpp file for prefix $cb opcodes, implement BIT opcodes
2022-08-27 02:15:18 +02:00
Riyyi
ff2f94fc05
Doc: Added mnemonics for two opcode constants
2022-08-27 00:03:34 +02:00
Riyyi
81fe126068
Emulator: Add cartridge ROM bank loading
2022-08-26 07:22:44 +02:00
Riyyi
27abccf863
Emulator: Implement nop/rst opcodes
2022-08-26 07:14:32 +02:00
Riyyi
e7e1b58d01
Emulator: Add error message when reading/writing unmapped memory space
2022-08-26 06:11:57 +02:00
Riyyi
d33837f118
Emulator: Implement call opcodes
2022-08-26 05:39:09 +02:00
Riyyi
219520965c
Emulator: Implement Accumulator rotate opcodes
2022-08-25 19:53:40 +02:00
Riyyi
462fa09a00
Emulator: Implement AND opcodes
2022-08-25 15:11:03 +02:00
Riyyi
be3ee22086
Emulator: Add error message when reading unloaded cartridge header
2022-08-25 14:56:33 +02:00
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