Commit graph

43 commits

Author SHA1 Message Date
Fabien Freling b4c81fa3f9 Add CPU.handle_interrupts 2016-03-01 23:15:56 +01:00
Fabien Freling c6106203eb Change of heart, begin is cool 2016-03-01 00:22:56 +01:00
Fabien Freling 77f7c7bef3 Replace begin .. end with ( .. ) 2016-02-29 23:58:29 +01:00
Fabien Freling 033f63ec42 Add interrupt handlers in cpu 2016-02-29 23:07:42 +01:00
Fabien Freling 4df4aea484 Add Interrupt module 2016-02-28 23:41:06 +01:00
Fabien Freling 27efc19125 Remove redundant inc_cycles()
inc_cycles() was called in every case of the
CPU pattern matching. Since we return the number
of cycles of each instructions, we can increment
only afterwards.
2016-02-17 23:14:33 +01:00
Fabien Freling 1b7c60e94d Add copyright banner 2016-02-02 21:25:53 +01:00
Fabien Freling 67093196ea Implement timers 2016-01-23 13:16:18 +01:00
Fabien Freling 013fd9abe4 Add fps to main loop 2015-08-17 22:26:11 +02:00
Fabien Freling fb5eeed6ba Add graphics window 2015-08-11 23:06:32 +02:00
Fabien Freling 54def17c26 Move signed_byte to Bit 2015-08-11 22:49:27 +02:00
Fabien Freling a2f5b2e08a Fix signed integer parsing 2015-08-10 01:35:47 +02:00
Fabien Freling eb98415994 Improve debug printing 2015-08-10 00:34:10 +02:00
Fabien Freling b52a070087 Add CPU instructions. 2015-06-15 00:52:50 +02:00
Fabien Freling 6599857947 Add print_cpu_state.
This function pretty prints the state of the CPU on stdout.
2015-05-20 16:38:39 +02:00
Fabien Freling c8b231d48a Add CPU instructions. 2015-05-20 16:37:56 +02:00
Fabien Freling 763c81a1e2 Add CPU instructions. 2015-05-08 14:48:44 +02:00
Fabien Freling 7805e50062 Add work RAM. 2015-05-08 14:47:30 +02:00
Fabien Freling 3c24ade366 Blit tiles to map. 2015-04-19 19:18:20 +02:00
Fabien Freling c464ca697a Add graphics window. 2015-04-19 19:18:03 +02:00
Fabien Freling 644a1356a8 Add LCD control structure.
Also add the Bin module to easily deal with binary.
2015-04-08 14:49:24 +02:00
Fabien Freling 52e5afa344 Add draft for Screen module. 2015-03-25 16:20:06 +01:00
Fabien Freling 5789fe145f Add Cpu.read_pc_byte 2015-03-25 16:19:54 +01:00
Fabien Freling 5d2d1ca2da Update README. 2015-03-24 11:27:25 +01:00
Fabien Freling b611dfdd49 Add more opcodes. 2015-03-23 22:38:11 +01:00
Fabien Freling b3ca33a814 Automatically increment PC register. 2015-03-23 17:34:22 +01:00
Fabien Freling f3916dfd64 Add flag register. 2015-03-23 12:50:02 +01:00
Fabien Freling e5bc9bc4db Use memory map instead of cartridge. 2015-03-22 16:57:03 +01:00
Fabien Freling 16d303008c Add memory module. 2015-03-22 13:56:32 +01:00
Fabien Freling 02e2ef3caf Add basic support for MBC. 2015-03-05 23:00:28 +01:00
Fabien Freling 0f83810230 Add CPU instructions. 2015-02-28 00:25:10 +01:00
Fabien Freling b2c7e7b947 Basic support for CPU opcodes.
Support for 2 opcodes: nop and jump.
These are the first opcodes encountered in Super Mario Land.
2015-02-27 22:24:26 +01:00
Fabien Freling fa09906bcb Detail registers. 2015-02-27 14:00:38 +01:00
Fabien Freling 3c6dc24a65 Add draft for CPU registers and flags. 2015-02-24 17:30:14 +01:00
Fabien Freling dad26e3f4b Clean open statements. 2015-02-24 17:29:29 +01:00
Fabien Freling 91ad537af9 Refactor "try" block in read_cartridge.
Remove custom exception Read_error in favor of standard Failure.
2015-02-24 16:27:41 +01:00
Fabien Freling 1a978d6814 Store full ROM in Cartridge.t
Now that the full ROM is stored, all fields are derived from it.
2015-02-24 14:40:11 +01:00
Fabien Freling 5cbd8c9794 Disable warning 40.
This warning is about label resolution with regard to type.
It basically means that the label resolution was done thanks to the
type. This is a new behavior but a welcome change, so the warning is
disabled.
2015-02-23 18:12:53 +01:00
Fabien Freling f89d34ec14 Read RAM size. 2015-02-23 16:51:53 +01:00
Fabien Freling fdb5744d01 Read ROM size. 2015-02-23 16:10:40 +01:00
Fabien Freling b0df091425 Verify Nintendo logo checksum.
Handle read errors when loading the cartridge.
2015-02-23 15:43:37 +01:00
Fabien Freling 840c00e30b Read ROM title. 2015-02-22 12:50:14 +01:00
Fabien Freling 09f1ffb488 Read Nintendo checksum in cartridge header.
This first commit parses the ROM to extract the Nintendo Logo and
display it on stdout.
2015-02-21 17:11:18 +01:00