Commit graph

51 commits

Author SHA1 Message Date
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 de755822d3 Rename test_cpu.ml to test_bit.ml 2016-02-28 23:25:19 +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 6c7544dffb Add codeslinger.co.uk to references 2016-01-21 21:16:42 +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 845d4fff8b Add logs to .gitignore 2015-08-10 01:36:30 +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 214590e2db Add debug build. 2015-05-08 14:47:12 +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 f72d8ece56 Add Merlin config file. 2015-03-25 16:19:16 +01:00
Fabien Freling 997048c444 Fix README link. 2015-03-24 11:28:25 +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 b5ed4b8f1f Update warnings by enabling all. 2015-02-24 20:36:33 +01:00
Fabien Freling af014b77b0 Fix PanDocs link in README. 2015-02-24 20:35:54 +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 bbd75e25f1 Add 'clean' target. 2015-02-23 16:51:45 +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 10f4fb6e76 Add README. 2015-02-21 17:20:52 +01:00
Fabien Freling da1253c94c Update .gitignore for Game Boy ROM files. 2015-02-21 17:13:33 +01:00