From c9f7ab5fa939240e99dd93b11b852a486bfe4a3c Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Sun, 22 Oct 2023 20:28:08 +0200 Subject: [PATCH] Implement TGM3 and world modes fully. --- DMGTRIS.GB | Bin 32768 -> 32768 bytes README.md | 13 +- src/constants.asm | 12 ++ src/field.asm | 300 +++++++++++++++++++++++--- src/include/globals.asm | 3 + src/res/sources/tiles.gbr | Bin 39009 -> 39009 bytes src/res/sources/title_map.gbm | Bin 4388 -> 4388 bytes src/res/tiles.inc | 72 +++---- src/res/title_map.inc | 2 +- src/rng.asm | 383 +++++++++++++++++++++++++++------- src/state_title.asm | 2 +- 11 files changed, 632 insertions(+), 155 deletions(-) diff --git a/DMGTRIS.GB b/DMGTRIS.GB index 33952912e7e734f935353da5c2aa95ccbc4b7217..9132a86720a1fd446eceb274fc86ba69c1146d15 100644 GIT binary patch delta 4881 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 R4pOt(dx8K58wV)B7yt|@FxdbA delta 557 zcmaF3f$8A}rVUq`RTvmiAdtfV!YHDX7b;4tqKH703~7}jlh0;}Zcc3d%&x@1i~@li z1`tLPot)<`tBk}4%MCJhYDBmX=;Xl-Hfnd3P>D~AH1v~C>Gceq-E|!bc*^tTbGmF70 znu+24^EFH&KsF;#JxI(3NIhn`#rVH3(i9{Fljj7omjM-d0M&duD^mXJR~Ew$AXX7- zV0zBZ#URGO!yv=J%J7_-fr|m88Dt3SL__JI7@&?IppFtC-2lWOFat;z?kgyRiLnC3 z9s&6+82&IY{AFPH$H4G^^FyXk#?ARG GTX_JDH(V3| delta 252 zcmZ3Yv_xsc8OC}ExhjS~U$Ph~i(|_e7^)Z;7#bMr>zO<5aWgR7u`ZVDl3JR{@imLV zDw>I*e)&8m86cYxs0t)z1Ee3a++zG+zJvqFgv)aR*~@^60)T41ofRo(`kuwW0K_Un z#Z1rHxfsM4cz{rz;W;yq0%-;rBF!K)(NHod1*j(osHX-