From 00b5833bb2a7ef39d40e3599f74d1f5ac69a24a3 Mon Sep 17 00:00:00 2001 From: Jurjen Ladenius Date: Fri, 3 Jul 2026 21:48:14 +0200 Subject: [PATCH] C cheat drops player one move from the exit, not on it Instead of teleporting straight onto the exit cell (instant win), the C cheat now places the player on an open neighbour of the exit, leaving one valid move onto it. The exit is a normal spanning-tree cell, so at least one of its up/left/right neighbours has an open passage; pick the first. Co-Authored-By: Claude Opus 4.8 --- projects/mazegame/emul/rom/mazegame.rom | Bin 262144 -> 262144 bytes projects/mazegame/mazegame.c | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/projects/mazegame/emul/rom/mazegame.rom b/projects/mazegame/emul/rom/mazegame.rom index 992573cae41d9fec9bc27eda5518edd9d12ba90b..0165761229e31be82d37c778beae24244a4fce52 100644 GIT binary patch delta 3462 zcma)94Ny~87JhjUeiRAeKP13=1j9oxKqA;ie5H2OZc$UUtLvhINQjg`2zG&h5Zdvt zJKJrYTRU~u>DujVWoJiGafY4QaRpza8?$f6pY`od^`&N=q+?ket0QVLWY0~)k8Njm zedeBX&v$soYmV_m>**6Tnek!$n7n}C3)<;CVK+ZBLq4)E0cHlR zkWSPBJY>3<@o6S> zT-qkxfw>`7%P0AfI-HggoUyBI(Q`bhgYpMH4tqE;OV=+0BR+n=YuS4wnPV9UvE(vlE z-q6PJ=d9u{f?64W(mIrp-XW1ZM8D3cF$7Fnf{o?V%`Ejuulgs#0j(RVaChys*dV4cV z95nl!H?;G_z99bu{Y6z2cdtzw$4a5#->McuZW-Ac7}@Mb2R#{l@hN|}S-!7|{%wGN zV&%ond`Aua$+K1s!Kd%!+g3o6)8)|XhW{(OIqw>89PJdV!0n)`5Ohn0=TfKjLWM&z zs9PdPq$Bgh&Pg_zq=^qIl5tI_YrATp*Tjk`B8Lz+1xw{g)IhE5qD3C?ZF%hoQRFj#J<4A4}DGvML2yL$sLE@Vg|KQ zZ%)-L{_!k61J}*MM}GwFpN0E>1U@zk?|ly55Dq>viywRr55u=-;a~j_F6Lg`F7{30 z+5zcAMY)PC(2*+WNW&-3bR`0GYF?=Tr3}(Kp&}^uP5CL~Fhhy%sSYL!#zrO;#y%#| zpc8V4lGQyWU49uuvXbEo13P$fYiQ@2!aD)w7C7)RFr|%x<6xyW8pdr}>71jXSEm!g zF}nPc)%IbgJQS!T6sRy1NZmEeTuC?-eZy2DV7h#PUMN&3xtn!Z6Mn-?A&j-z=|ppVp#q*l zg*l|~oXh*03YeTic ziM!V`{|P__0XNae{Cn1iVX0sZ9UF!UK|@&KX@c6$q z_PAg2C!V$ra(QNSI8U>2C2Yv9i&d*jC2D;2Y~QIDy)HI^SMP*$>znyqW;xM;&)@fV z$%!stxQr&~_qp(Q)A0Q;j1tx9v1ukYnS%?kNL`(#Ygj!#6zC(5Uw*kEh8Q1O&XqTK zQDXi=bV{8_t#C2GRS`=l+?DR^=^vYgSCPB0be>?k3f-mPA@MB> za~-XXH~0fPuX31vz7u!P*P-KcTEb@jP!u;Sx-qArzIPXgZ{MpuLJUh}+>;#|BRC2NW#_YtevnvrJ~yzT-{ZH9XdQcW(u4fY>88f2re#*Tvg z`B111k4=0EFB^QNpw9{z{JFvxY`}zO@-bP>=rP&D6yndKflsIrxs;pz~_ZA=8EABj}ZL=8S}4QcFzAM z_fregvRELH@XVK-)?x}v<)w6@VhO!Oc((JU@`MqL+|1h`RDS)`O6#cF74k;XBt z^15Y4MQLFrp>oonHuHbB>E81g-t$y4QLMy8PtKJnw2Q4u~{C4^&ChKB|E_7vD#h&220Smi28qKY5!MaTvLjIsd0m^8kI5QqY z-e_)r3-T7z;hBm%)q>_PrjjtG;;w<2LrXv?v}|!n+T*utS_6JnxYx7QP{H*5}m45exdr7|0L)Ph!MS8sgRO7HVj zNa&CS7oL&yB({fHB!g+rfo0&+ZM^JiUF7gUK`{iODBHAZycONj8sz7!Yu(Gj4=o{7 z+-+1)l26h$w6^4NY<>Nh3qBlCb*U;rZo7M+_LZ9h(Oj_&?Jh0PHrd?8?(A&pX|F%( zz=6}ouImGnc9+ZO@4tM)hMcAL7bqLlYnX}d;gszOoY&@acEJKdB0GqpU*#^@*dRWf ow^{j;c5YiczZ8$CqfAYj>W6+)c5=ZxRr{+X`>V*$tD;8!3&RrL5&!@I delta 3321 zcma)8eNYqW8Q&~PKtuvWg+PQXA7KFvkYLn+d(rdMD9to~vQJ-nL4EoD4JFd66kPLa*#A*~{N1e{}7 zf?kd2Av|b}`--=wx{0iQV}LpJqS-tU7zs4rADB@wmN~{4rmCBOLXd^Rp<1wC&|#o- z25>=O6a0pi2BpGZ^HKN|GVysF%ek7&QU8`)5+Q&jQE_xqrDy}Rk#JIn=m{$9FbuPg zvZj3&#plxAj7q!2_ffqOl&}0z)ZkfJ6P0eSJcf1{z`LsmcIaDGpB-ZTU|i3cj;BmT zn0)fKB7qWGnGeGX5%ttEn7+E5$EyOz)9W%bkBPS{y&cLEl-@J5nUJA@h%Ox>hxde;n z(uR4!3Q6oa-Sg7;}Cs++uAwBT8$j3)${ zS-8k$gu$l6U@-)tLI&{TtgLrjMk0$ksU-{Rh-K9O%*HG86-YPz*RtgS0;O)gH@TL) zShv`pKV_NH`WvPKsZ|Ko-%vd{!U{XV7HI~0u>sUcvw2%Urxcf7Z0H&ro*XSpJ90q! z(S8E?v^g*`p-5z0VQLHbqqHPpgH4e@2w=h=OABCZ>1*WhPOLGyXJ#mWYw9sA_RA2p z#Y!>zsrEYT>`RLrq4bTEZ7ZyBY&|S=&HokJq8H6}jbe_Fu(hC6)5;C>D{*5gTFo0! zx+`c*aBa6b4MTd>X+p$7%WmiC_hci7ov~r& z@Er3&I9tZ-3r8ux7+K61&ekqKrouBOTA5D|C<|yxx^qz-5K>rOnzJvJr8KO%+%h^jj45e# z*cp`Rhwx0F9bfHhz|(wAJXxcJ`%meP&QeEEgrfv+==!sI3O&H}?m@1WyOm1XXT~4- zeu4*m;7LxVTWGCO#KGQvL&4`dJfskC%-UC0sSF&*KqA$&btuNpu@Pbgv|0*7Ob(MeJ+qme z9Ho7*uy4FlF4TkFi}KOVIa(8GO$^K2>@sRL&{nQ3HELRpSYcPKFA3 zBNMF-s(#i}sof?auX_wlCTNyn&mM;R}V-M=q1s+dVHkwlpr;ojS5qAnX#k#=?yyVIPCIG{k* zAA*Ip7=9juzmLE_jQ0^g8}GZICUy%yzoRDE)cT^8(mPAm~(IpR*r;% zSxAxRxQ7l-P`4V#NOt^ZBU@b$xIHOmAu|5kl(1l$SX6aOPPfQ;Hr7Q82_*d=JUp53 zz%MFq8o~gB}~Mz zj0`-V%?W{TV~3;oUUs+>G0x#CR#O!fvELTDA`Ls7DcU5cZi0@0%3}QI#X{DWP`s8M z)Wv1!@pX>#Tm*?nOnCDY3@kpHVrfRD*Z1d5Kjlj?x$GJ2<*nEaoTR~~bYIRFJ-1wogXh|#%32^KPRx7-vdD~C(H=@Ejhn!?-D|yxg zPM1gplZ-ml3jR}FeOoAU6)H0Sn$tV9}2B+6yn>bBMJ~Knt zN8@Uv6Sij~T_@&Oaqy$7NXe`=N6@W6pl9I8y3$qJkMxB3&&d8v9bjM3a!V4aYXfRU zH9FP?K2fa8`nM^!$4^yQ;OF|RM|spAd26t3s0!dy6bat3kpUBUrr7b;Z3}kHujXOg z3^Jmj*fukq54EUYG0Dx^;4^)-H`6S|Za>UF3&EvYY%%Iy3jn2>RCrMODkB%hL!@L8 z@R#PJtv0|fds_P2hAA)nNSpGGpX(k!5AXNB^1`p(xwu=S3FGGm#?L2_@7W&yRR8+D zZ}{YgHc(u?9__b*hH?oyYXe8hof}(hFq=a-zl${3lgMIwV8j7^;7m?v;_oC=>_nK| r#^1M64m step down + g_MX = g_EX; g_MY = ey - 1; + } else if (g_EX > 0 && g_RW[g_EX-1][ey] == 0) { // open left -> step right + g_MX = g_EX - 1; g_MY = ey; + } else { // open right -> step left + g_MX = g_EX + 1; g_MY = ey; + } DrawFull(); row8 = 0xFF; continue;