Commit Graph

88 Commits

Author SHA1 Message Date
fa38bc45e9 swapped HL and DE in render routine so that we can 'inc e' since the video pointer low byte never overflows 2019-01-03 10:08:17 +01:00
fef4452f4a Merge branch 'master' of https://github.com/msklywenn/GB-GameOfLife 2019-01-03 10:05:30 +01:00
c12654ba1e properly shut sound off + comments 2019-01-03 10:05:27 +01:00
ed05f1ebd3 Merge pull request #2 from ISSOtm/patch-1
Optimize handlers slightly
2019-01-03 10:04:20 +01:00
Eldred Habert
34010073a2 Optimize handlers slightly 2019-01-03 01:58:21 +01:00
b7b00de3a5 use B and C registers for line and tile counters in rendering 2019-01-03 01:09:44 +01:00
c21a794db9 share low byte of new/old pointers, compute directly from WRAM without loading in HRAM 2019-01-03 00:56:04 +01:00
bdaa79be08 faster automata update + restored wait rendering because it's apparently necessary for some reason... 2019-01-01 23:36:56 +01:00
dc3f21078c faster pointer increment while loading to hram + don't wait for rendering, update is too slow anyway 2019-01-01 23:19:53 +01:00
5d4a97c70d table based branchless automata update resolution. Actually not much faster, but at least has a stable execution time 2019-01-01 18:36:48 +01:00
6429f8ec92 avoid fully recomputing HL while loading cells to HRAM, 10 => 9 VBLs 2019-01-01 02:53:41 +01:00
8d95806abe use B directly for result instead of L 2019-01-01 02:47:14 +01:00
358f0912fc it's not necessary to load mask into A, and can use direct value too! 11 => 10 VBLs 2018-12-31 14:26:57 +01:00
1c927caba1 avoid resetting D to HIGH(BitsSet) unnecessarily 2018-12-31 14:23:56 +01:00
69bba61dcf faster way of counting bits set. 12 => 11VBLs 2018-12-31 14:21:49 +01:00
9478fd7e24 use L register to store result, not C, how could that have ever worked huh? I must have forgot to reload the rom when testing... Also, I now use a macro to load neighbors to avoid the loop, much faster. We're now down to "12 VBLs" to update the automata 2018-12-31 14:01:35 +01:00
6d3db56244 use C register to store 2x2 updated cell, instead of HRAM byte 2018-12-31 13:34:20 +01:00
ab06a7db5a use H register instead of HRAM byte to store alive neighbor count 2018-12-31 02:21:18 +01:00
da8f88d72c better interrupt handling, rendering in hbl still too slow, much faster automata update by only reading necessary neighbors 2018-12-31 02:09:14 +01:00
798e11c1d4 split totaltorender into linesleft and tilesleft, makes rendering code simpler and faster 2018-12-30 16:02:03 +01:00
eb63517a49 automata bugfix 2018-12-29 20:41:49 +01:00
6d932e0166 automata bugfixes 2018-12-29 19:48:24 +01:00
816db6c101 rendering! which shows computation is totally buggy :D 2018-12-29 19:09:06 +01:00
5d2fbf30a6 bugfixes 2018-12-29 01:51:33 +01:00
cc2bf13512 store 4 cells per byte, raised resolution to 40x36, no rendering yet 2018-12-29 00:42:12 +01:00
d25ce019e7 rendering! there are bugs and I don't know if they are rendering related or automaton... 2018-12-28 00:23:20 +01:00
23b6ad662f added interrupt handlers for rendering (no rendering yet) 2018-12-27 19:39:42 +01:00
0ea98b1904 do computations in work ram on a 32x32 grid (no display yet) 2018-12-27 13:38:30 +01:00
11be8f7a31 nicer graphics 2018-12-26 21:47:12 +01:00
a92f2dfd17 do not disable screen while computing, wait h-blank before reading to vram. Simple implementation, awfully slow, at least doesn't blink :) 2018-12-26 16:18:52 +01:00
1bd335dd56 made memory copy a function instead of a macro 2018-12-26 15:56:35 +01:00
9fe236ab42 fixed offset table for top left corner 2018-12-26 14:22:31 +01:00
72f4fb7b95 processingjs implementation for reference 2018-12-26 13:31:07 +01:00
501487cf34 Merge pull request #1 from msklywenn/add-license-1
Create LICENSE
2018-12-26 13:28:42 +01:00
7b05bf9ee7 Create LICENSE 2018-12-26 13:28:06 +01:00
ca1bdf68b7 Update README.md 2018-12-26 13:02:59 +01:00
1d802033e7 Create README.md 2018-12-26 12:45:00 +01:00
ab9debb0b3 First implementation, blinks quite a lot due to lcd being disable while updating the automaton 2018-12-26 12:29:48 +01:00