Commit graph

230 commits

Author SHA1 Message Date
Alex Janka 18a0ceb46e clippy clean :) 2023-02-12 09:46:47 +11:00
Alex Janka cee17032bd clippy suggestions 2023-02-12 09:41:34 +11:00
Alex Janka 45a1aae05f fix timers 2023-02-12 09:29:35 +11:00
Alex Janka 03faea6ca9 move stuff to util file 2023-02-12 09:27:41 +11:00
Alex Janka d3ee58131e make uses more consistent 2023-02-12 08:59:40 +11:00
Alex Janka ab3cba1ec0 make things neater :) 2023-02-12 08:51:23 +11:00
Alex Janka d6276a1478 mostly intact mbc1 impl 2023-02-11 21:43:36 +11:00
Alex Janka c442363cd4 VERY stupid mistake 2023-02-11 08:57:48 +11:00
Alex Janka 793a698947 hack for oam lol 2023-02-10 10:05:51 +11:00
Alex Janka 76642194b1 object priority 2023-02-10 09:55:58 +11:00
Alex Janka 8394b4d225 ignore bit 0 of tile index for 8x16 objects 2023-02-10 09:47:57 +11:00
Alex Janka 63f98a5ec4 window internal lc 2023-02-10 09:26:26 +11:00
Alex Janka cf67c8a501 gpu actually almost works 2023-02-09 19:00:53 +11:00
Alex Janka c3c02fa539 mbc name 2023-02-09 17:32:47 +11:00
Alex Janka ad51d4173a lol 2023-02-09 17:32:41 +11:00
Alex Janka b659e5c77b fix DAA 2023-02-09 17:30:50 +11:00
Alex Janka 615446faa7 keypress interrupts 2023-02-09 17:30:38 +11:00
Alex Janka 96af4b94a1 minor gpu improvements 2023-02-09 16:57:01 +11:00
Alex Janka 6eb791ebf4 move gpu types out 2023-02-09 12:37:23 +11:00
Alex Janka 3d15a1ef6f set dma addr to last loaded 2023-02-09 12:31:57 +11:00
Alex Janka a462e2cfd2 actually talk to mbcs 2023-02-09 12:18:13 +11:00
Alex Janka 3cd888d991 oam dma transfers 2023-02-09 12:14:55 +11:00
Alex Janka ad8d001f0c error message rather than panic 2023-02-09 11:57:51 +11:00
Alex Janka 09b1cb1e57 fix tile rendering 2023-02-09 11:10:49 +11:00
Alex Janka d6b95e6c6c work better when lcd is disabled + turn off bits in stat 2023-02-09 11:10:33 +11:00
Alex Janka d5efdd6084 derives + set stat properly + joypad improvements 2023-02-09 10:05:13 +11:00
Alex Janka ac6c2afd10 initial state 2023-02-08 21:06:26 +11:00
Alex Janka f518e390fa service interrupts when halted 2023-02-08 18:07:46 +11:00
Alex Janka 8ef947d54a draw objects behind bg/window 2023-02-08 11:12:08 +11:00
Alex Janka 465b8454f6 lcd status interrupts 2023-02-08 11:11:39 +11:00
Alex Janka 2dab3623e9 fix some little stinks 2023-02-08 10:43:00 +11:00
Alex Janka 2346b6c661 derive 2023-02-08 10:32:06 +11:00
Alex Janka 984adbd942 colours 2023-02-08 10:30:21 +11:00
Alex Janka 5c612c27bc fix addr handling for tilemaps 2023-02-08 10:09:24 +11:00
Alex Janka 0a75b58732 tile window draws all tiles + is optional 2023-02-08 09:40:54 +11:00
Alex Janka 3b2a07c264 if bg/window disabled clear with white 2023-02-08 09:20:57 +11:00
Alex Janka 72bdc2212b object rendering... such a dumb mistake lolz 2023-02-08 09:15:47 +11:00
Alex Janka 30cbe63090 cleaning 2023-02-08 09:06:21 +11:00
Alex Janka 2f8c606f79 keep rom bank in limits 2023-02-08 08:58:56 +11:00
Alex Janka 122bfee8df implement HALT 2023-02-07 22:49:08 +11:00
Alex Janka 89370fd077 mbc support 2023-02-07 19:28:06 +11:00
Alex Janka 5ef4e8c792 mbc trait 2023-02-07 10:08:34 +11:00
Alex Janka 5fe3d2ef2e parse cart header 2023-02-07 09:51:11 +11:00
Alex Janka 8185243582 split rom to struct 2023-02-07 09:19:50 +11:00
Alex Janka afd95afd71 make more of memory private 2023-02-07 09:13:45 +11:00
Alex Janka 1a0a45527a clean imports 2023-02-07 09:12:39 +11:00
Alex Janka b363de3608 input handling 2023-02-07 09:09:52 +11:00
Alex Janka 3725382752 split mem addrs 2023-02-07 08:38:21 +11:00
Alex Janka 25f45e18f7 more handling 2023-02-06 21:10:13 +11:00
Alex Janka acbddcb08f back to functional 2023-02-06 21:00:56 +11:00
Alex Janka 98b217b858 split memory module 2023-02-06 20:54:26 +11:00
Alex Janka f0b2369c9d object rendering + usermode ram 2023-02-06 19:17:52 +11:00
Alex Janka 94bb1a2bfb better io handling 2023-02-06 14:24:04 +11:00
Alex Janka 5d788fe9c1 move windows 2023-02-06 12:44:58 +11:00
Alex Janka 5884eeabf4 remove unused verbose prints 2023-02-06 12:37:40 +11:00
Alex Janka 1338d58582 actually turn off bootrom LOL 2023-02-06 12:37:35 +11:00
Alex Janka 9591f2123f fix stupid ram stuff + cpu inits itself 2023-02-06 12:32:10 +11:00
Alex Janka edfda4fd84 remove stupid commented out code 2023-02-06 12:19:15 +11:00
Alex Janka 56e2735e58 position windows and allow ignore obj_size 2023-02-06 12:17:58 +11:00
Alex Janka 805ae0c817 draw window with tiledata 2023-02-06 12:14:51 +11:00
Alex Janka bec5a0c3d6 window renders + it all works kind of almost ish 2023-02-06 12:14:02 +11:00
Alex Janka 1d041e2d57 gpu improvements 2023-02-06 11:42:45 +11:00
Alex Janka 4a48bf6a68 dont pretend to run bootrom if actually running bootrom 2023-02-06 11:18:18 +11:00
Alex Janka 7eba1f9586 better... 2023-02-05 23:07:55 +11:00
Alex Janka 587916ed34 scaling & lcd enable back 2023-02-05 22:56:18 +11:00
Alex Janka 75c765b392 almost drawing 2023-02-05 22:37:49 +11:00
Alex Janka 839429029d reset vblank flag lol 2023-02-05 18:50:07 +11:00
Alex Janka 976ee24d6a initial gpu impl 2023-02-05 18:46:55 +11:00
Alex Janka 28fef84118 stink 2023-02-03 17:37:08 +11:00
Alex Janka 74551afdd8 graphics window 2023-02-03 09:15:30 +11:00
Alex Janka f759fdd48c dont let the game know about the speedup 2023-02-03 08:55:03 +11:00
Alex Janka f87fe618fd vblank should be working 2023-02-03 08:54:29 +11:00
Alex Janka 8b9bcb5026 clear if bits 2023-02-02 19:05:18 +11:00
Alex Janka 6ae1d4a4b8 interrupt handling 2023-02-02 19:01:11 +11:00
Alex Janka 04a9748aa6 quicker cycling 2023-02-02 19:01:04 +11:00
Alex Janka 0a6e0b6833 almost timing 2023-02-02 16:52:33 +11:00
Alex Janka bb7e0fbc51 opcodes return number of cycles 2023-02-02 16:28:49 +11:00
Alex Janka 7c196daeb6 cleanup 2023-02-02 12:05:09 +11:00
Alex Janka eb85d3aa25 cant pop to f 2023-02-02 11:55:04 +11:00
Alex Janka ba8b03693f all instructions actually working 2023-02-02 11:52:45 +11:00
Alex Janka c82f00c88b fix carry instruction flags 2023-02-02 11:07:09 +11:00
Alex Janka d73fbc827c move ime_scheduled logic from opcode handler 2023-02-02 11:00:59 +11:00
Alex Janka 8fc35fa1e1 cleanup 2023-02-02 11:00:47 +11:00
Alex Janka e4ba687968 0xC0 - 0xFF 2023-02-02 10:54:16 +11:00
Alex Janka f07c6a41a3 impl 0x80 to 0xBF 2023-02-01 23:08:51 +11:00
Alex Janka d03043bef9 ld instructions 2023-02-01 22:54:02 +11:00
Alex Janka e3199f32b6 0x00 - 0x3F opcodes 2023-02-01 22:46:58 +11:00
Alex Janka 3da02edc34 instruction changes & fixes 2023-02-01 22:46:41 +11:00
Alex Janka 7460d31913 extra instructions + fix caps on flags 2023-02-01 20:04:05 +11:00
Alex Janka fffb6e0278 new register layout 2023-02-01 17:18:08 +11:00
Alex Janka 3a599b069f better processor modularisation 2023-01-31 10:05:36 +11:00
Alex Janka 8413dedb89 remove unneeded allow(dead_code)s 2023-01-27 11:26:33 +11:00
Alex Janka f073cd5722 begin 2023-01-27 11:12:38 +11:00
Alex Janka 17f037fb27 give flags their Full Name 2023-01-22 13:09:31 +11:00
Alex Janka 13bd9f0a1c refactor printing + args 2023-01-22 12:13:02 +11:00
Alex Janka 744f769728 move opcodes to module 2023-01-22 09:39:45 +11:00
Alex Janka 57b46eca6e move processor to own module folder 2023-01-22 09:35:10 +11:00
Alex Janka e51d188a3a reorganise main 2023-01-22 09:33:18 +11:00
Alex Janka 26c999f8f4 extra prints 2023-01-22 09:32:19 +11:00
Alex Janka 043f333c7d fix adds and such 2023-01-22 09:18:07 +11:00
Alex Janka 0e674af1b2 swap rom endian 2023-01-22 09:08:33 +11:00
Alex Janka 769a587aaa memory fixes, interrupt table, better pause 2023-01-22 09:07:57 +11:00
Alex Janka 7510ad13cd prevent panic on overflow when incrementing program counter 2023-01-20 14:59:17 +11:00
Alex Janka ac023fdc31 init cpu ram properly + other minor changes 2023-01-20 14:58:43 +11:00
Alex Janka 4fcde0fd82 fixes & all opcodes!! 2023-01-18 14:43:24 +11:00
Alex Janka 8f3cf515a9 fix interrupts 2023-01-18 13:58:53 +11:00
Alex Janka df8acbfa32 rotate instructions 2023-01-18 13:14:22 +11:00
Alex Janka d1dae1aa73 bootrom boot 2023-01-18 12:46:15 +11:00
Alex Janka 9533768bd9 fix adds and flags 2023-01-18 12:45:56 +11:00
Alex Janka 3cf0df204d move ime to ram 2023-01-17 09:45:49 +11:00
Alex Janka 7bf1034265 object attribute memory 2023-01-17 09:39:05 +11:00
Alex Janka 2fd4266156 better halt panic 2023-01-17 09:32:49 +11:00
Alex Janka d2e1b2d3eb ime & daa (maybe) instruction 2023-01-17 09:30:42 +11:00
Alex Janka e6cbedc59b all opcodes implemented-ish 2023-01-17 09:09:53 +11:00
Alex Janka e40bf4f786 add step by 2023-01-17 08:58:37 +11:00
Alex Janka edb348ec60 fixes etc 2023-01-16 19:28:11 +11:00
Alex Janka 866d4ded80 all opcodes to 0xCF 2023-01-16 19:28:03 +11:00
Alex Janka c131791608 fix write to rom errors... for now 2023-01-16 16:01:50 +11:00
Alex Janka 121129fe35 more opcodes 2023-01-16 14:43:27 +11:00
Alex Janka ca839d9375 allow booting bootrom 2023-01-16 14:43:11 +11:00
Alex Janka bbc05c48c7 allow dead code on flags 2023-01-16 14:23:43 +11:00
Alex Janka 90a1c92a0c more opcodes & opcode refactoring 2023-01-16 14:23:06 +11:00
Alex Janka 04261acd53 split processor to module 2023-01-16 12:13:53 +11:00
Alex Janka 831e880a37 memory setting, byte ordering, more opcodes 2023-01-16 12:10:21 +11:00
Alex Janka ba69b1070b ld_immediate_word 2023-01-16 11:46:00 +11:00
Alex Janka 289acd0070 fix unused 2023-01-16 11:35:07 +11:00
Alex Janka 9789826cf3 new register impl & stepping execution 2023-01-16 11:34:36 +11:00
Alex Janka 1b1b8bbd9f starting to implement opcodes... 2023-01-15 21:05:28 +11:00
Alex Janka e49ae14f4d cpu struct & more on memory 2023-01-15 20:34:44 +11:00
Alex Janka 0c6c79fa3e initial: memory and cpu state, rom load path 2023-01-15 19:53:15 +11:00