From 16bda5acc87c76bf65a767e787768a5fb44eed6b Mon Sep 17 00:00:00 2001 From: LawnMeower Date: Tue, 17 Oct 2023 23:05:59 +0200 Subject: [PATCH] release preparations --- MungPlex/CMakeLists.txt | 6 ++- MungPlex/resources.rc | 3 ++ MungPlex/resources/img/icon/icon.ico | Bin 0 -> 99678 bytes MungPlex/resources/img/icon/icon128.png | Bin 0 -> 7790 bytes MungPlex/resources/img/icon/icon64.png | Bin 0 -> 3794 bytes README.md | 51 ++++++++++++++++++++++++ resources.aps | Bin 0 -> 420 bytes 7 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 MungPlex/resources.rc create mode 100644 MungPlex/resources/img/icon/icon.ico create mode 100644 MungPlex/resources/img/icon/icon128.png create mode 100644 MungPlex/resources/img/icon/icon64.png create mode 100644 resources.aps diff --git a/MungPlex/CMakeLists.txt b/MungPlex/CMakeLists.txt index c60ee59..57ba052 100644 --- a/MungPlex/CMakeLists.txt +++ b/MungPlex/CMakeLists.txt @@ -1,7 +1,7 @@ # CMakeList.txt : CMake project for MungPlex, include source and define # project specific logic here. cmake_minimum_required (VERSION 3.16) -project(MungPlex VERSION 2.1.0) +project(MungPlex VERSION 2.1.1) # Find lua find_package(Lua REQUIRED) @@ -40,6 +40,7 @@ add_executable (MungPlex MemoryViewer.cpp DataConversion.h DataConversion.cpp + resources.rc ../include/imgui/imgui.cpp ../include/imgui/imgui_demo.cpp ../include/imgui/imgui_draw.cpp @@ -69,6 +70,9 @@ add_executable (MungPlex ../include/ImGui_MemoryEditor/imgui_memory_editor/imgui_memory_editor.h ) +# Link Icon +target_sources(MungPlex PRIVATE resources.rc) + # Link against lua target_link_libraries(MungPlex ${LUA_LIBRARIES}) diff --git a/MungPlex/resources.rc b/MungPlex/resources.rc new file mode 100644 index 0000000..5ad595c --- /dev/null +++ b/MungPlex/resources.rc @@ -0,0 +1,3 @@ +#define IDI_APP_ICON 101 + +ICON IDI_APP_ICON, "resources\\img\\icon\\icon.ico" \ No newline at end of file diff --git a/MungPlex/resources/img/icon/icon.ico b/MungPlex/resources/img/icon/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6884745c0e10a7d401c0dc3a608c41a31065181a GIT binary patch literal 99678 zcmeHQ2YggT8s7*KdH_+1Vh{yEKtV)`Xy`~0MMbdzV#5ZgSg0G6l5B!VO99VQ&&r9t zoIResoO)+DMU?1?Vn>vo?A-r9yR*!`y!ZC)d%K$i^8J3Zv-8T#S7zqTeDlpWK3|$| ze_wXC4{=*x$GU00vwS{Z|Ni0hK%Z|eu664cN=xv~h=Z;Pc?h{5DmB&>AEp2gG0fb@2@!tiIz;CMX|qrZYNG@dea`PZ#mSJGL(&i>-%>n6LX19@9n zzrmyG4&y+8zb)Q*=N(a}P90STp2R)Nv4CphXb(#fO5>45Wjw3P|8IZ$n`qs- zb)*iwGX3)S>j3I_usDBoHLn0~QvL%53=j(P^YfMb8Bf*etLkmsu3qW#fAh^Z#V4P9 zA`Uv}AW197h40Lm5`P^i%G()S6&R!Qs2cr;HA1NEKlcw;TL9zZ%J1q52of|IkAZ6=h{*5&84a zufP5(GBYzJU)nW4Ky1G4mbm$1CyUCsXKeq9;153dKs0OCOw!uCVFU4z|GKzoh5XAf zubH42TMgo-z;P?(zi{C~#fqqyedPZ8?=Sgs=CMb|&6CQIv0a%~@+Z-xwNax+lGcM7 zH58v@Pmh~k*pQS53-d0j2C^rL(#vK34I4^&4{nkn*3Z8wZhFxV1kn#nA%m+ha7_ONf;j*D^L24o_+MULE`|;r zDtS_O|Jve%+1JF)lT^#us=Qe8C-E=5@Pbft!^{JkiqeHMGKbf$0 z?OIX0c5O-Xk?8j}<;`_PGu93RRj3YJM){GhjT<*w%G&G(#{z=~50?DkSm47s)oUye zul&h_2OoSe((fI8NGtL4t@GT~fug(uWM`>MO=10bi}I(g-wklC(6VJqSqG}ySip_^ z$)msi^{-;T{q~bIcW-mB_;tz6?&?5spcroVF25XWT^?cg?%kqazkZS*jq0Ym{w~__YR<^eSc5ow4P4*(_nd1Z z`B2~I2B<4lxLn+?mn->`W{e3R4=!DrN?W_*6yBW6B?8Vq`|ODP-F_48u8?)p)T7 z*YHbqgv&Z0_jYjYiZ(o6LFs!_WeZv(|B$T&`ho9ZS9+9-I&c@;e(&DBy^3Dih${P^ zRP_C<`!(|4V=IF-qfNo0#a-j516*g`METE~2b%?tP*_+f$9>#8{hQ16Z@q7K^1nv@ zd*mPf7W{}Y;V};Dz_FA)19kOYVfgUjGOyuXIwt+Quj)pP{G;U`ssn-FFhA_&pbku< z>@zYlJkR@f?%XLFG-x2@zv7%RHS$m3`j4vXamJgm@3e1>IH{K{^-xm8JRQaihYvgY& zfASySfvv&9{2?ZFfb&HuGbj5yV%3H2-Mh=YEOU3%O>(aoARfP_qJ`@Vu{!GKJ^C5_VuC5unu1%fAP>m4@LB#c*5QQzUJy<0+*JJgmy{SNwVY`R9fDK9c9u zk4zcZFC}{<(f9ALupRq}xGY(+M4{e3e`_{hUl?ZcN%pnsDu31k?vLUA zYRZA~V7Q=n57&E!jJ(F&f4jxrfq5*ebLY;gI=YTeKKW#ccV+GOug>yUO#k@fkA)gT zQ7#-uCqjn``M-qx%wQERN}nwX2RAY8gqt*JBIUnq+-aWLKYebW)V`gVcgoPX^4S~Y zPu_F=g!?Yk{!#9id(7kaz{a=8qm+Lvzdo_*1Z};T55wy>Tp5?#jD6MUV>-)xNPj%O zR`(Y9D_+y5i1IT>eadZTjdsmfwEvSJ8#8zV7sWN#z&C>jc;bmCA~N&h`%m9`^(TON z{~Qb1^YWj}kNY&dz{H6YrL0DF?c_@SlrMb*5tmCZy;P#|cYvv1O6;`Bf34e_9F<)454 znORC$y?S+o-Uly%?@61rlD%F2iYI=}uNwOSyKe!${abDPMsWYAI5ri~i!am+_MA>z@iS1)1aYvMou`A@{RBG<}{d8qWhB!AX{Yp>no zpJwWy6HWPovEM8!;o~~bDU`e?kG+6e_dT)wVWxN}85!f*BSJoVxCX*Caw||iG&m2o z^0~jS$)A0rJ|rb$ef5gArXPfBB2!veh{= z^v`DWv0PQ<|Hvbc$Tj{ULxzZT>()7@HJ%4~4wv#jeNNBrlK(h!ZYFqa2PfjDlmqA5 zUV!5^wf?gthMt;wi$j}*){6S{>Eqa^IPv@X>#rkwOUCu=7FExxs{EC1jJ)Pq0k_<8 zi)VkDX0n<;e}1G*v3)`B6YJc`K}!CcH*Yq}GOla%5zPDsb!;Cc7h_*AV|YlH$uZyi z@4p{c8GJY|FE2u;Zbw@kP)09k!DY}$WHjU$2CETkFImm^NZ*IAAkH2>6-&*j5O^7=m&;n z@*F*`Yq$lTy`%OS%*DC^`kh<+AXq_f+>pN=|Dli0M1h*49nv%-vajLBVFM&S+++6PhaV=YD7kJ4!eri!!)G*C z7x}Xu{DSjAdL0(hYmpA>^%DX7o~yIzkgwlN__!9)|9j2lmj)z{G_|pcQe#pH7zgbGY zh&k6cLM_bIg!V*UE{p4rv0 zV@D-}l}6!nKS0ZjMpFLEmoN8RmNA3>{qKK*b6k`wPCDtNgpB!&WvDdwtsj2);j%2Q zi@JqWj{higWBAY9YX$AS$usJ5%+|x>p>6u~=}P`z8s!iD@Bp4q#j@C6Cj)4=#`8lG zpU?74cVU$L;S1!V6ONbV&|g~(2vJq!{{?I# zxR%a3;Pu-~f1b<-p+J{EeL>6~F=!|6@oe83s5*>VQ%yvqY9vmE=$R zI3*kE)ZD@|&pZ>!2l-_fDge(E>9@zs>4X@{=X4v5pRVZ&02LsgRh`?IG-P{k6S%L1bQsrv zImWXKH=P_>Go=o|iyn}6HY`6J%zOYx&V9M>zWW^WD$x(#d+)spN5L~APQbb8#QBgz z4)HYpjR#L%{?AOgID(JHKiAj#9pP+m%%95^h@8_$NZ)`g*Q;*^>ftr~kH>#AcoP>r zt)0ZfXXCS+-?VPsTH?ult!x)Of17(6h?f_gzOgL3v@U=89=Wh@Pif0UdnUWUvn}c0 z*DADtPp|wlM~N>N+!Ph4=XnFRK+jLRRNRI69{oEsZy55OPrA8&^ZW0=+o2ru9_=ld zS2#rJfN@O$_lS$8O`D3!&;wj|-E|T_`osL#KRwbfUOPDSJ>ZzY%N!^slfn<^@+Utk zE0A99?MlRY`Qwj2uIS)epVisXtQYdRRL{FOwo!W*u7SMuZ{n7v^CNb0iLx8Bs|)Oh zG}}4Fx0J;7>eZ8HFR?9n-H)Zy7zhLu{yf*!4&K8}!M)t61m)X=ehXn)N8s$K*8=8YRS3Xaif*PaYez8N6fC+&ofd-4pJI(6!Z@4x>(8K_jq zQ~3*Ly`#QUZ~OXx`pV`r91EvnEx7`s)${`ARBBuW{!!O&2iz~R6+zIKXR?8MK922K z9>>O5kG7OQ$4P2VNW1SEaK-_SnaJO8h_xRKkNKoO$b%0)IO*fSn{K*E;>9ukhjZY6 zF2;OV_YdX89@`n`_Kv4!%$T8MPap5}_Y(`a9wcqTR;*Z&G$zpB0KYRROI(dPPb}H< zKKFSkTT<#Oll8q!8qq1vnEX-wEBL%Tmf*Gf4^b}c1GaD9o)oNy4jn3Ge^8@_k^SmU z>VU43@oF2D6vC=druW}}ziRu8x!1=jbisq=2!eBmM8n#(Ya@8wF#&Up82!HSKF<>- zZk(ra>|6sCIY52!F~=OE`23Pn!E4XmLmoG3)JS;s4WVPVb?a7Vy4|c4I!H z+*O);i>)IbFeaDOG`7Y=4;zGxA6UQ&N-(-{%$YKo;_RQMB6qe zenOPYjWKnp#EpUT^cvX10qPQ3wQ8mK^DKDe7OumKGM}fOdTLJrF8^^YU)iEwp4BJr zeqXNxyWs=5>%k!!X}ee%I%}6~NcwAcW6mMlwQDEkMBjahJpc5^{A|&z zL4BDw`Ogs zv7TptqHufo;fMFBD!@KZeOJRgSckYRLZYD|GJG9D@|tH9+4*Z#Lf|?k`)0m(alc*( zmp$tS`xDw$u?+eMrLWMv8MvnN#v5-)`vBcm67)ZZ&;lV@P#+op4I$FrXs^dTmsUCg z~`DE?cSs92+s(JflGD1 zzYDZ+uf}48z6hym?#jD_BJmz^x#-h1n& ztHtD#`Uv_Rs*Yh|-yYjWb?vwgzF?kcTrZt+=G^Nvgl-5{wtKi$y#T(+Mf5Ryd*Jb9q>bO6OFc&oq<{m#Re6W8e@%5AfULLG zwDA-O*g+A&+w(FZi}lH_12t{jfiNoRk>JYwHW*v4OJp6;+c?J?l|))iu?{&9Tzy*$ z$m}C8bwIUo^e3m#@3q6CYaXj290(TV9RwME=(G+*wei(CWBIOTvSSkx5X zg14>eKusHW%E{{c9M?-w2i{;EKwrL9j@66vr*f=VeW|L!JRS}NF%QT5aA1tHt>ejZ zpL^EQK5mCU`c`&URJzQU8I>;aW$0<_8&B8Mr7-)^)8KQOmflRhYw2vJ{hYjF=dA%s9#Em;`SAq2|yEVIk(LS@Mp{Jfy0 zvkd7>rd4iuLn5H1B?n4nR`N#{sHG*vdfJctO5~%VpDaT<6X|U2J`2>-EKpCAV(oEB zv7ROZQE9(W%nDu3GNiFjGwS&aLpoi_BK%Y>Lpsfn_UY{9JARGbOlKL=nTB+R#%?~J zZb(Oj&6|KU!~L{Uc{%b^E6#Mf;rR;b5?>Ug8`2pb)0u|%<4tE7-j6r!H@qJ!9V`D# zLw>Q+vG`}?cZGDeFACBP=~^XGw|()}kC@LJ>Z7r~R!AG_f2~;QaNnq?NRO3{Zr{Fi zLs}kGsxm`tOlL;*KR$dUO0=ihhexOVqBQEhU++(GC#rvyU3L_~=-{FVVuz^Pz-A#` zqOG|jDa!VY4|yAq9Y!Ja0ol_9`{iAsP>g)g!ZOPW-xeX1_I%$$C}pbKp*~Xo+_5}W z7@r~nk*D#eq~h1puixJs{V@dsS^8~JrWb}g!OW=JdZHtW?vId-kmhTPUqH6}t@1xO zB(o0m0Rzj6^A-n-b7%*<*MnRSDGpo)njbAM3~W(z;PS$}Ej-6%Z({&;bfO?I7_{ai ze5~j-i*bJ|pRMjZfPSN0upn@Gd2#OJQm%3AlLHU72McpYR00p!&!)L4HzMQWyd~vD zd7qle*6bSn;+tIu4|Zbh_%t`TxO|6u8rCBOoW3t*T$p!NNXEH;n$cl*ZQJsN@C&`4 zC_Zn`+1mQ^<%PMsU`utjQ+zx=Hxlc{C*AB>d?(69QSPP0CrQwQd(G(+g8LEaGqy!WgU@#r{|@eRQ$Qcx+~YoT_&`%!l0iSqroVpj;PERjG%Xi(5Io4E zAD2V|ZPvFLeK5ZB&O4}+>EhX`@Xr~?w=14!b@?ma-*LwsqF$Z-QSQa2a!^i{lQ(_a&f8Llo$2QP!4)7Q3|I8pKCr32Kxk+zhADpoamBxPg z<;cX0k8E+EZMpa^ zuf{xbKjalJtmA(7SU~@lSH$7t>i&z*6YNvyyUQwEcG+d(oSxld($BNP4rvNSL##fy zFmR_>Ggj`)b;yJs^xqZhOal5e=Q$4F!cSjJ9Ktw~e)=o41D*?(Q2J4Jc~S2Ds0Xzj z(!YTI3}V6L$&{v3d-`E$YFfqmMq?j&yl%;>3yA zcOAcDBN`tVofs5lk$6Mvp>%DEZOk@);(_z5%VtDqw& z*ZO|a{~P_S*#Z4tEgyH9X?`qY{rsCmJ?IVCj~tG(1gXc@%T5*jq=Dx`&_5UTRAxT7 zF*p7fiPm6uth3>}cI_(1Fgi{8|B+ogNk8H{ckYz)+*uTvu24V_3BpO zL3u$Q{q88>cvx)Muz{~xLYFRG#DkZdA4QX*|FJ73%5Q@@tKgsi{HN@T{yPuj$#DHk zrTldw$OHOg=2`O!7w(Zz#3Md{^xNsXm|wqs{Y2q;_(mGq6UTyW4`?Qg`oaq@yioK% z^6-fN|H`7D^?>I|bwGdc8`c%k@0W=s{w5mztw=x5(6s~l+%}$FNM6hyIasi6?Ao;} z>UH)*Tsz~LpL{Nn^fT`zOO^#es;%QjwQ`{sEf(+8ipltgRL7XQVzZQG2m zM5XEflKv<4c62h%tULdF^a&Qgx<|fqzMN?Kse_n{x<`E-*GHTH>kMe!fRK)$fO?OZ zIzQ%5y|6mV>EX!}BtO6V?mOF}KmPb*c@7kPHzq^>$G*1#)&v$U!niaBupO|@fL{92 zR3Q65C%*4F@8TJC@50A%X0s;3>G?!FQ=D}t8T7MndHsefZ{rb|Mcu(?xbHHZx z>jnAEb^`R(N2P;uB{IBOPTFDu~pC`|vMVfq<; z7;EjzDnDMIfce4DqdJH`mdyulO$6&gyg>SoIi$6mPf@R_2Yz!o_E4c?%Yy{RR1A|( z>W%ftWAI*6(XwSr@yaW&*cQ#PFzBUCpS}()lWj^!FGo*hbf(~u522l3-=bszV zvQ4wkV|~AISpTTG(TFY`r9Q;=lC=MdVC7T(@3GcG6mQrz2OfDuM8~7k&i^~05AV>TxtKqHzIvrnW6u9L zZvpLo6WOav{3iavGfeG(;~cIxeBz&ODtpC?=cZjE&qw(R=cH6N%$+-zw10_UWdopi za4~gPR_%c6;Kv)^BfgX8aJ=-=OBK-O zIH6TWBf;|s6peQA#@yMk*-ICXJn~3|ypnl=eI3W5;q!wy-j8Pw4Q=OUB5d!~tC!#z zPqanm`Ae)DGlva&gm$-fbnEw)oHbh7OwzV4nStwg>~F@8AFp&hl=&(I>bcwi&)J%W z@Gt_`Og}@o8^H&gPVD7zcHRkXWl!(kRrEOYkfenpTORaBqx5v*_y|Hi0?+Tz_DLd@ zUTx9|-n+FVg{dnmshX(c`h72@ph^>AD(My&jTIE{_@r5VbLq)U7fD&SWd zzHW$>KM)nC?+87o{CZ@B-C<;M0td(vuQGxFq>~9h;*zi@q*C4mY?gQF=qQs(NJK^= zm=TJFpD`O^H-w1@5kCm9R?P24TZQ1to2!Ly$6(R?R_OO=`Lo*sMA70=BcOP|oMj$=3 z4cWSUfhRc_@n<>I|JDHw+YNTXq@VMEIB8gR`|Y(>kDfMVLfUyi-2mte20 zS$GHbO|1V$;2wYs=rPS?Mx8_)H2gvxvKg#fw@w_2^;5Gl^lOb8HIjBNT+7$Pz4zWL zR-7}&6n~c2w{Ks|yzy;$&;bq24?GZik1c@bW&f0KZ+lNVxK?fkv~6^YKl8=B@*gp1 zxW;Zxj%&_3pRN8U3;!?;kJ->rMjI|OSg~S-Sa{m-O2=Q)P?-M?KH?Sj;8S;Q1w0Fy zHp*5!*RLm&|Ee75SN~&>!_d*AN1LKgyEr`S2zTb63jA3P+QXX~4J)knIq>}T3wrfP zI{xe*R*V}Hvwv1HkTgIS7^dOBrp(91i!Qnd_7~>+UG%)vf4BVS8ftECuCxJtVcMmR z_@(VNwL)K>f&S+*=igno_$vfhUk45xD0&@ssMx+@p)DP%{ z5{W-);CP0%1q)7%{{94u7Ih8tzoG6=iti|(&GI#aPK?5jxN=VwZIuW|9d(o_)#ihV z#$Vymv13Qf<_+g))5_P&|`?MX*;jpi@cylJPWfId&?yNB(8v?U9Fw#8Ph zT8WSR*J7_vfNQ@Bj=A>QYZW?CG3_A_ZqhhHGrk#e-8IImtkLlAMEgc7piRZ%Ge?P?D;Ej+owKrE=3KB#>z1zT5AkRHdw0fE z(Xe4dD|DoMXxjz+m90!m+B;bR@#Wl+ezBf^{&}m%|0hIz(6M8g!h?~r>g&EWp~ z?b*! z{Az{qXH;(Y-B1~EJVhTT#GQeD6}olnrf#P!4(}Dy(Dz-y`A;n9)2EMk06xzY{)}le z$gy^+fZrq_{-KUM{!|{_{S}IyJ#?ok4P$A=e-+aQQ!*ip`!3*G zSHsu%m-eBbjT<*ku)Zk3KG&Fba3$AG7M(hEQm-T=<`|y-f@!M?ygo*#XGGW{eFCn3 zjzIg^-x1CU7Uf*XH6F!pv$$KER#E$N^u0Rq{D)m|*?wthKcn2Q5bi**<2i0S1Nh4y zYle3su3;>;J6M!IGgx#h_l+eDus(fOLhyx+F68-Sa8+Q87#o*AOwY98JiC6e>XI3a z7#D29drPar8E9BHKh6wC<29^fy%8*2bc~IULC^ejn*sDNCsn|=Fz~e~%*_^si`u%) zHd1#I_cdwgNHUm*j&h%_C$ zEgxoYmw!q4zKTo3X&IwDIcZff$|E0WVG-|yswSF+cj@vxhl=_33aiDQ(a>mEX<#3R*>1X88cwN6o&eSeDplc{;Tr&I`@(4&tUv9 z&#XMdwb`m{#?+CG@9lhjPcNVEQ+FMOLt)+$LwQk2>?7rCQ6TLGz(YMB{+D~Xr%Vx3 z!a?}~k9rx2+bcALsm((Lh3Ekd>PPV|k>xWl$l?`6yxIO)>g4q@_5V)kpEZ1t zWgZfT!oW+!fjTH1XyREI z6Z=$L?-L<^|C7~oD&{!_3P;8~i$L#>;w_)~($9dtX2g8M@`s^aG<0s=BC33@i*aq~ zq026i*WHw_N@y0Y*Z7Y86fVC&-BYpNf6_03f*w6W{h^ogsi*7R?oh7lT^%m}E|tHE zmCm2*vA5oOtGX;>uD?4ipL%xgUpE5RAM4cdwYQ>w%a$$DcO&f}jX?joE#RY02dn;P zHTvI|ubph_#|gHm(nLR_UOESE6@Y8k-+%voh3mXP9kUL0<+GkWb=4%nb$=abKT7)V z9Di1P3T{1<@c&rl69@VhH3EtshmaP_{|MhRexLNboRojl$piFPxD?6R{jrUZVw#sWRJzutat2Hz} z%XJe5_7i%bJ+HBU<@3CT@<$;M8a(*mgS=b;xDG)1F+7QSWalTT!pk-nxV9TAI`aFO z@p1Z|qkkqHN0M_2O8q3zw zuhMRaV?XQz!QQuu<3El|>6b8`z;z{*!D%M0Iu8cTEtfv%Ls#dUq6qGwozmreL5?U`)0xk+SVvg?{oag zJq-%*dJgTSVuAiXalGaloUZ`j-X`R+XCRGh^e;nyKsw+VJ{Jk<9?zJ>GYYi}HT%6IWT*Ve2c?DvmrV-*1HY@EtNkI_E`;aH7*LQLQ})qK~9 menz|u`ZJ-|g-$dZxo4xN$yOz(o+q51&Q;5%jD-v0r#|AcY? literal 0 HcmV?d00001 diff --git a/MungPlex/resources/img/icon/icon128.png b/MungPlex/resources/img/icon/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..471af1ad96a81ec6496321f83014cc3f1a47c437 GIT binary patch literal 7790 zcmWlebyO5>6o+S7x=TX3yCkGRx|UE75J~CojzvJE5oCb{l#mppQM$XOQ&PH-j&Hs{ zX6BsT^PaiyeQ!MXH&NP}%6QmMu>k{su+3z0JP%& z3&Pe#PzL@;>8WVo`O3xG)5qN13h?pq;k9#i@OWqLYQ^i~Zj*5+`4j+XZdDat==z!* zWcm5Rwk~>QZZ|B2^oQQ*%$KCcXv=qNSChh`OE`4Z?JU?iYno>kv!j1SpYDAt+dqSRvMvlJ(+99_eo4?ThGt zgV`78?E8&cjUqR#OV|L+DRB(Nn-4PB}+l-x3d#&-Ng=p!2Lmew3YYcd-u{}ETo zM@w($lvM_kfD(pT>R5Hqof&Pv^mW`@K6w40A1$;obj!+!>`X{pw35q=oy{upPWA^` zTa#52`=pB{+8knOV`e+i0gaz8JT;<&H#^gD5UmS>aVGECmx6K?$bpBut3CRvZu8|2 z%vr2`_n56zoxG0-8h5UGO`uxdw)E8%ny+TvCQ*_$W_R1;shnq@9!lEJSOiKPplD@e zq8Q2#-KS4gihRoi7kkXFWt_z&ML1n!iiu~UxSykKU_*wma*}f^@Lf}#t}_?fG$D_I zZShzSlAmd+kksUDi&mbHV3bA61wo}}*vi!s;-b1hbS^0bi4q4_leNnxOavAof3X-I zL~ce6mFUn~AenKa)ZMjQIhmqO*bKN;99oH=GYP5Au9oA{l!-!?>VsA-0v*r2=(#ty z_!tyQ=P(?*oFVMdYbfWy2S_P>8=aOoGkskPTF(ZvG8mR8cYEkWkNRwyB} zT9-My0(UGuaLC;8ZWW4uX!x=jNcUuHLRKxRoEb! z?lNXV-mQip&G?xGgYSH;hmkCe8-{D^>sUBA>sKf1)Y5@z;A`Fgl^C8*NUgl1@B01G ztQH_uwmI;`e&z?v(UBWwgr9#2e;nZTW(p7Gv-!EQ zyP2o^<88Xk<6W{`1a`mkH97;Tasn+2Gjq60%k_tE-^uyIVIeB@(ple`M=24P_RRdU=&3W>cK!Vk8cC<3g)a~D?4)AyM>(_EqX?QNX zkjrwW-uKrhGo~Tq`Re3(#Zs=IyGxKB;s#G3q>7YKRA}JMPN7EnGsV-sv|qnOL4$`k z2UCl6Yq9cJX%%%!f15RQNj41bXOsI8lc=Wh8qYTQRqvl_5E2u26zSxtXlS7RLKh;E zQ&4e!O7{5giDEI{5U{=6ERoEng^+yKJ3Jh>vSJ4Oh@{z?Z7*jgSeUDFM$xihbo24C zS?!3Zx=uI0I$kX``iZZvuMZz+ONh?>CNWf}0&ujhJOV$TSq)SKUb|0DxA`~t9Q}wW zaiU^9VP<`KTJeP|72kcWj}u^pAr)%vr-o?02sC&f46Jp>#QiLTtFl@PauWmmPm2gD zEV{APQaD-C%icZQUH_`DCpx>LU3mUxCbo|PSGDxfn^_Lie!8^(m)p8!s!dXR7>1zh zitPHqx6hbgqBYR6+132$G22E*6GpNm)M=+**6z{PMo z_zy7BVxJ1D)y>5vBoNSudje*A4N+avQAv`&x5_;h#5{J{0O{)ul7Un{K0i_*dtxU| z)Gha#O$ON?WP@Y}|Et6}?tjtCq#H@DT3Jj~!ZAw7{o)t463R4w{w zhONOt%K=AH{dvGE|I0&Icl49EpJ5tKJJi^Wr%MjgTZqTJ`|y+w;$`HY}h8?athp36QT?Sw?pCe243Bbbbe zC_OaP`XZSg{e;VcpShAD8Gp6;qx#)VOhcO>nCM7h2Ub7QM6#BamL7F2--hqvFbDvJ z5Rj9Tf54++U7*$k!>?9zF-09i?8!|?QtvB~z(;A-C^uh!f8>QLPG7jV*KXQHa?QA` ze`U2yk@_#IK}3p^q1>OAAS^5_^U*I-j@N#YwR@Ls!^4tdS3~`D*L#b6zz|Y6CW%EI zIY%=bNA>)d>+1WvSzH1Ff=C6GW)rRAm-((fK7}fu81Y@ENflS8^i4M->4Je|OgLf3 zK1NX#GKN*eahAR+*<))2%f`kA^6~ZZyY5WFocq8!`ZuIpCNF?o#Tc>WcCeIs;W%^WW^6eJ=fq~|ql;eMQOw7%G%>v`;fnFs#q!8r&;YSXKIW@lJi zThoyF%7coEiYY59CKl6{Eh7Y}IepLuKwroF33)VrNb9V3-&89hPbQJ^Z#KcD7S&cz zRP29L_&!%-mwa;h6!2kCK*D5g;Lb}8V$3y$>e||be}XP)R##U`9}k0+Q11rHsBA=k zDI2d+N%;$T?MR#ZJ4Tfz4?C!^iXci#I(_(#UE?THFt45o`XA@4qMvvCN-uSe<+Bsl$D z+`+4HrlXhXsrJM>Xwa$txwGiN8hOFHmKsOrvD$%F0Lv&C{xbi5(uNbiSR(WQV9U}} zzP%_eh^xkvk&%&;lbdY~k#W!`VBpXxTO+2X*7(Gz$b3}Vdrl<1}{k`2V5Sy zfkvAIUt7&}GlpN^MZ+i0fMEdn+=W+aBzSkSI1hHxP+wnZJI>g@KDSz*q*uEq;qz?x zOe3{7Vfa}OU6?AWHfeXt=Whw%&Y#k4v40J^p#1UUhp(TXPF~N%#fhQ(*11sLAoJOb zeQw^c2rF1-yzY*$?Mr-|vt3s^t~ty9yrz|E$~R8sc-7NoK{Hcs`n(wrBbhZ@GtZ=1 zHtUoBDw^_Z3$8Yk*y6*HkrBzqri0q5j*gDl)K79BBNG|n_3C!73ii2@Atid>5lrik zD8IKBkEkHEF4m*$+jo9tD!Vd0IKn8RM5HuN4pFq5{Sk;Yt~Rwp#kXtVX#(dv6UtR@ zdMn?}TW6B=;LyPND`dp;vs6_Xx#?3YyzUjinky+KMJef9;aHaz9*(N{RobaZ%DG7! zExTf7cD%1-sOxM_`JJ1?<`Y1sdt^BO@a> z%*8MWXqkC6xnctQd~={5y;fB`&v_t*BoODtUoZacPT5Tq;7LnMpN5CaN5#eE8#j7` zsl=~b5J%HpmSJPq=#QCQcYpEM(s`k7*w@bx({0>051J;Tq8dnD=1k{N0}vAvZ;$6i zilEMck@hF>EN){{^x^&}{UVrivLEMoIU(bN=OcZ+TPI8bcj+04%+|%0`8DAdh`EchKd1%~+MNIO}@Y;$X zm$7_xcXyz{Yj6KBjZVscQmE1@t9Y0laB|csH4s?OU&<8o_%K&(10Ac`YH{0m@#LT?0loz(PPFH<8cnIe3hg^1Uqq)ShC+53g&`-_F7)PIYuAzxiu@27nm)l~GVV^PMegQT+6$fdH;}ha)$%Xhl&IoG z;?r1wM~)nR&8nH%x76qZlI4k?L*=m1jK}-$sR>oCJ*~fJ9wO^T+b!7=j3s@K;e0Ju z9lnikF;6^o7$Ufd+SYp$z~(6h48KWe>$eof$#(8so(xoliBif0OX}z#T(FYG0BqD0>r3>NC;9=z8h$3QAGUKN><~9zS5zn8$ zP2-A+iTit-0=>2y=1)pmE7mP0#=xh}cKOp%^?f)~ItU3y9ED3*1mSay10~SuPc6dQ z9|n*;NVu?lZN34PlNOQ^wDR}q8iL!f13VvAKg*H3>oc){*JXHPgGcJ;BZk!>=S%@;$qj`a!hl>sc zZ2?yD8;n`Li!EmrYTwllFtf24Eip8CA0Vf7O8#`EBKdsyefl;*=sVdd{95I)rKy(6 z%ad_n@pmYlTFf04e&{lyzkK*O9Fr9Dp%cv&%!e{q`Gs81I|CbXf`&`I7$q7p_b$&S zBuAcd0xK&k`twT*&%Jj61&-dooBTX7Gc#@fv`E>EWSS3r<`9)AG-~Zv8ienZx30e|21)^_(p3*7C*MVG8>aDUF`1W4q zAON|YZm9OJb4(O!ZGn^2wx{M*Q!Q#1Z{FI*D7qZx-TnRCPpzf;$@O70_p`lKH`AqK zrgx-mB>^ihbkt+ zb|7G1-|Uq`d~265d}}E={NTCjjgcN z>(AzMPQC;^i$4~aTP zuHGYeZNe{huYp$(1^JQ#`Pc6j>n%q8q?{yR+23r0!L$KK%z`?L*&kmnd+??69cSE|sCBVq&c>DKhv0*hUFiy}J6;sP|pngDD zf=z&fBaiuFr;5*BzT4&#XyE$hX7?AV0Kj(qB53*Psgt$&A6&FI8m3mkl3$AfMp-A9 zgB;B)arnIE621(ZA$9!#oy_fJA8Dze z*1n?7R9feVbr`mSd5f43%6-jy zlti`y!2X%WZ~h+fc769XYHRyrVUU2MTo%FX0Pr!M($?mkzA8d)(>~HJ89mrHf zt+8;PIIl?0`*=B`*qN*>)_Z{TBM|Zs7*6=PT=%O$vex|NDJ1+l5MB&CKz@1d5cl`@ zvnG`F4yxZzM;eQ>8)Emxf~^cx4ixj0;%Ycfl!nodAFkwm5p^LDRauXTV7ML0@$({^ z3FFq_ED&>$X{C7}&;ydO4XU~u!qGB?dWD?yP>@XGT3cm$6TTZ=Mw9XkQr)M%Y&0S0 zpWt1TB(}rehn`_(JCQ&8u|20YQ2?t|OVxjm-yO6+6)JY@A)NeA=i{)?QH`oT*Z3d$#BSdg$i5+ zj+g%79-BJ+dyni++rUUu0^k#H*tOrY9&7qidX#VdKa3k~7k>$aVGyt~GNQ1t*}Q2H zLAKd#`Q`^}%`H`8A~7)5@r%)1u~#OGU;Tc!CxE?jF@CM2cFff<< zct@#0?L;u>=6pQKbWp!Ui~OshSn^oO2*!R2Q=6)GBqOEOrh(kf@BG@}wr&|8m1&#g zu`%s%!e0TO+gy&H_Gn0_3-Zy)>dc^7Lhhi8keW&70DfA`fBK=o5WDe(;!}}>guD@0 zT_{_0=p&pN$muDN&qk0|lD}(S#klPJMQ;9QtO|%E3X6A!bk1QFGXZT7?dQ((5=>XS z-^=Zle~}A8>)%I;N8pFb>!gyZ8UeQuTIoRBOV_dPZbdFv*N1(w{x`BBBxs&@t`w0l zx&jvX#J6*3o%0fBdTC*RkJriC(ODz*hcK~T?^Idfq;;Wh41X`*!9fMZc600T3RXs`EnDYi z#OCW%Dzi(rE2N?YNWd+@g9l{|tBk3ut1DpFuQe*FGN~5My@pICDM!auUMfw;x5Jjj zB*LOb>ph1C1_o-AMqFL>qUq36Y18A0U$wMgJb>O!h0{8y=mQ*g!0umMqj-tr>yAHn)Kn833JviE7;V#Er0A=^1Nb&N3y7bP}*#8D{x_}CSnS~MGP%P}8J z-t&WnRJ!1+P?|@a+^87|Fm4lphIuEikoV z=)!s_5+|BVsiLO#Y$1sGNx3(s6<5(M2~B85fI#HF!~cSkx3-cYPD!Cv+vD5yV=VvP zhg1TDBA_i1mK=Pu!$!t!V5aZXSp2HczMr-EuB9t4aV}~aKS%!Oj*#t|vfTUEH+|M> zh!Q1>_r^L1P}nP*Rjfsp)n<)~90v{YprfLj-=5?UBd}MD%zlIHG1ufL*gPr7T4voF zPcyHY4QoOlFPa1TI|bOI<#ycp`V*XbXd&DtO=)nTmf3k~*912>q`Ld|8bcumMwEt27*5t@gD24?;1-o8Bfz+S(lAT}~r4Y6!mBZxJwQpOw ze7?SG?;YN#h-q-KA>tx&vl+HY1emdmc`npBg-1rdY6v4PGbUxyI zercLve0?O=15yp8xF1vaBVR^*cWT$D#%+2$>?Bv<3QwnT4g&did!a zg5hi6DORI*v2xD&sgc5Uw0(nbu+>t7*ZJN|!p4TBT1s(u1%dbM{7gE@_NYqL_GZ`< z6hb)#s0^gkpt57Fcs1zu;$+U|D@42eB;)RTgg=={u+@4`+||uZ(&x|NHap}LM8{l; z(IsBVrE=!4vt`ydd*gd7Am1ubR>0}#&2UTX$B!RDZIW*@Lpxa-`oPt=!Byw9pahCk z|5K1<@h&L3OclsYN6Tri@Kbv@Yp@z{!SAzKDZ|6VRaiYh8i1nXu1uF1**D7UM+Pn( zf(b`OM@I*CPIjFt?9Sf90)rFmDkE!5G-+Il9=0lm?-gnQ2Uj>lwzqq1M9#$jB)vbI zbBMORyyY>VU&80NL5EK#tpVy|Q86)j;9^|5#te{F`<&Am-~y0`A`Es*lGj-D5#?|; zP)GwEAy)_4RZZ!cklYp7hn-CyAtg4L;%TMSKqT?KyAp_q`D{I#MpHNWOo*O>YMpZzz%qJ*SYkW zkKYO%0s_k^0lTn%f zW|QAp4T)r^fE=b%gUbVP35&#PTy}=GZ9>0Yetp()&X6HZPCb}jq?jPF_Awr{QarEzJQH9#+0P&+KgFbFROe_X>1K&D#*;sh7QHig z%>Hd9BAaRqTG7z^IV%m@3>=a*()dHcLXv4LNg?i^5hxzX(zQo=6D*4R&vA*mix#r2 z6B(`tj`uy_3=e+OfP&gR;qEd@Oy9wHyDs4D?A+Dey}G~F4uYg(vDpo31Z`-icA=67 zMFtv>%|2kzc0N?coE=BVcxIUEIhG6cW!i>(3;1j7ZO#b*Y|S`FO^sj3O?4&~O6hxm zrJmaiy45eqvs`e-BC)XUm$WcKxo-h#`8+D)?NmeGjcqUrP{0|K-}P!Voi;ihoq(u` zR+RdmLhsx6#wdU`>87CBvt6a6A3L?T@${k;mm3{5vT^uJkY1h}8(9kr?ys?2$`&0Y zH+Z*S#PKGZ<6j@QnPpF05m6`OiN!IYWOLDoiZ$TAs z1mWLIv~5c#`dP4w;knsQz#ZqM=Qg^56w|sb>Y@&=FGlS21r(Ah9`bPcS zA2=@>-8!cj7wc03xqw#%eyphUf<9uST%A^`e$Ozo zezVqkpLeZ=kWzB9ShSj+QZO9YS)wOxP6TCY&aFn=ECUw)i(p~pGr;Rws1!&?vRgn> zY&73jNxx;>6ay9}5-KFgfTyb2kdO`R26lT`*bx)M6*Z?ZXmA7GN@RePYzB;~=7d|; zI~vr0g^B!CNHzg(s&*q(?H$sEoi991k($#`G?)R45*dMH1K_G^^`s2gk7T#du{(Am zN7RJ+&>#l9wVKgV@DAXjYBzz?5>kQPZsqKnI+a2-;YO&p0dM`2i4s-=nyNJd76gZ| zlJt9fN38}3AzA`sJUl!e)imuctJUfaq!$+#k6yT1MgebAhsIm27T#Yoic1&Is8WL= zD=cQAb15*J%d_)yPaiHXFWv#{lTy}Lf7IAzg%FyHi_6P8o$i%RojO?t4<2j`3=G6* zG%|7G#3w`h&e#Bq288-rN2KprLH@6q{No=BRjI+SSS+sj`S~q>`|Y=ur?Rqp?%KKI z*`lICtHEH{Xfl~zmQtQqUsIz227}?BK0ZFfwr^TzDivuC&vVu+M-chww+LqG^I z&ePL#&C#Pr^=;d>Rb{MJD_y$wz}q*3fkPLmay8yxJBpUgirKzBNtGIn6)RTA>C>lM zEEY?!l=6@*UTy3OA^h}u{o4r%2@V?%plKSbS0#|XcLljQ&TE#F|4rrl|0I!+uuPR2 zl_^uEi1_$;ozZCAB!n>7;?)c=7z`_egM(ee!^2g{j;>w168=;;$(yFCQY98kIY}Q) z;pLZKqD`ANs@&+j^2#fkzrTMA7Z;ZoY%#kbAcW|s)9Jp>%F5CO1_oBfYa%~CpSJhj z&!FKe>C|O}D)agF1)Ms*f#b*igTYW~`Yk0XDT!gjh83Airj}C5QoA1D=H~YDs8OS= zb!j|+udgq!|9t^Fw#HIkZvQNEAwQcvJO9q=RSCCE;{gT^9Eh*4uPZPdstf@kL~E1D zG&DXw{)S4~sHi9c0{r-5$7^=+=62zwEQ>IU!&X*ba9Ld-~`}Q4iadkWzuM`zhSX9oe1wYxvrL?m9v-$k^{rhBP z)!h3E3k&h~_6E4aHU$0>5D-un7#Mg%-M=b+etx{R;8mtgn?`zi`VBYUhP-xHN=eyH zKtO<^UL`d(l`&(VQNswK(fyG~Qj_OVR8)kQm*Xnc_8x#$1JLU|x^?Z^z1~xGOiT<1 z4<4jPj~=SjXc*kQkWx}uSo2eIZf-6@2nqbAEm?<8n|r%W>e8iiEmKYH=yW=|b?c^v z8BRS~N>Jp~Z!{-uK;ipPKiFWbdv8L_~~tIs^|M zJcz5S>(>C9&V?^8U-}h)e}6U4AyP^*G7giOnW;)n*}Hcyuf9584L2x9GT!0W^WQT2 zmA|Qy9jU3QrB|+8*#)4@m?%oFT)9|h17c#P(5rV}A|_14VzH>QLrO|Y7(f1LKKy92 zDm55qeoSZU#!0MQlSs2>%~ZLPf`S4L95~?0)kRk{z)MPLyDc~+BO`;gYu7Sq#$Iys zE|HLspr$xv{`>`;J@<*gGCMHT(SJx9#%F5-l06-QN z7GAFuYM@`g0W!GHb8_KoDaTLRBE7u4Wlm0xnr6rG~1KzoDj8!(=i^KR>@xV641W0BV39 zK(E)^3~|W0bLZH-JB5dPJqJLC2cP85Ha(dU8>eJmM@mUl)MUE!98c@Jd#ZB1sHm`z znmmX1*Nh?|VHxr9v(%JoEL^yV(o$0~u*nwFxLOiowOVa4ha@K_)4I)rG;eWFWo*#! zUgdQ5)tt2xP0-f z8m{E8!RS8wycy)?=JMEMkFz)J2$N?X zz(3#tH3i_$Z>*##Tr)rj@zc*g|7@S45ERs&-1A4(upPbn#}g5=jr)ThQ>8{BIXRi2 zppN7f=!u@OAD?D-sVO!zz01{kKm#Z%D?9beFV0KV(9lqR%05zU^|vZ6E(U@+J)wqg zIz>fAL`P3%*zl2r^qa%@$;r5T)ciaEP$3C}YX+Fj=F>m?@I#F|r~vKSwZq4!8E3N6 zRq2*twOU!TW)1h;a~~<6AK|(9O#TuUQ>QzR;Hm+(Y5kk8zWS>ACSetX5QKz=kbP?3 zE$iY{$;ilH>eT7{nEeyIAD>6Jho3>yYF-0yK&RIeXs%uRHxw`O(1|X%(b9Za(ch`EEg&bC@n4BnUs{|v>p~hFnI72e0Q|+Y4VRqnpMXD+u^E81Axy?o;+!^ z)$=tmX3Qv#9o>S(Qm#t3KZ3pP76w*5cUW}@V@Zb)G=qfpb*3MoLRA0ZvN|KrnlHQ_h|}>u`7Y zjW^z8!GhO$=DAev4D71P07${AxJY8C{mrWP04e1$H#fKA>(;Gv_+lv~5fh%l-7ApZ z1DtO`sTkdTFuFH&dO0g;mn~byym|8ppZsZ!jYqO5E|SUAq4D6r0D$7+;$_R1FE3Yn z2f)&$OG!&Rz{rS=PCslzvv%!TX3ctuh?peqzW3_smTCyzoEc5c8x;<4XaMkjUS6Jc z&z?PY!OYA|X2rkAi1F{z#OF_T+RbGB`t?kn{48T5KjNPID_65r=FW^HUJcfULj$Cg zB~r=_D_5?p+(5W|`7*Hu59>r^Dl_3?K!}oEgPD zRj3ON4FE8k%?Vq#Zq?=GBP7Qp#`L+}w^OCML?a-+o(e+xAIGZcbL0S38r=K!<^jJoOucK3!k*W+Jg<#6eDC%_xx!P^8Dnf`6US3}BmX(!hX0v&Sl=3q* zXYpc;6`ni{^hGiVXs_nn2<2r({O$QB=yWa&4`0JWJsh4{t`P7{Y!vHN;YO*=0G(d1 zKP{!)WHOmzRoxLwR&sZRj=n%&3H`bLkCS!6Y%XQ?G#`eHT0!^VNL2=?KoT)CnhmP( zdvIz1fDobya79Y#eEZk|O7G|kJf!A0qO{}^M)%6?yQ-LkWOQsaTU6oqQmX+CNj-Z< zxh5DfBa%;5p*}RK0acl|4mS@ok5ISXQ6eNmVxvh_h5B;K3{YA0FWLwzk8-tlJO(tm zCKaRc#LS6&Q6;^>xNQum%Di>Bxtj<9`U}aXnb90na~g{O2PS>84|#6ZNdN!<07*qo IM6N<$g0VJM2LJ#7 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 89bf84e..d10dcfe 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,9 @@ As of version 2.0.0 the following emulators and systems are supported: - Cemu (Wii U) - Yuzu (Switch) Experimental! - melonDS (Nintendo DS) +- No$psx (PS1) +- PCSX2 (PS2) +- RPCS3 (PS3) - PPSSPP (PSP) @@ -188,6 +191,7 @@ In the following you will learn about all additional features required to create #### Read Functions The following functions can be used to read data from game memory: + - `bool ReadBool(uint64 address)`: returns the boolean value located at `address` of the game's memory - `int8 ReadInt8(uint64 address)`: returns the signed 8-bit value located at `address` of the game's memory - `int16 ReadInt16(uint64 address)`: returns the signed 16-bit value located at `address` of the game's memory @@ -199,8 +203,20 @@ The following functions can be used to read data from game memory: - `uint64 ReadUInt64(uint64 address)`: returns the unsigned 64-bit value located at `address` of the game's memory - `float ReadFloat(uint64 address)`: returns the float value located at `address` of the game's memory - `double ReadDouble(uint64 address)`: returns the double value located at `address` of the game's memory +- `table ReadArrayInt8(const uint64_t address, uint32_t size)`: returns the signed 8-bit array of `size` located at `address` of the game's memory +- `table ReadArrayUInt8(const uint64_t address, uint32_t size)`: returns the unsigned 8-bit array of `size` located at `address` of the game's memory +- `table ReadArrayInt16(const uint64_t address, uint32_t size)`: returns the signed 16-bit array of `size` located at `address` of the game's memory +- `table ReadArrayUInt16(const uint64_t address, uint32_t size)`: returns the unsigned 16-bit array of `size` located at `address` of the game's memory +- `table ReadArrayInt32(const uint64_t address, uint32_t size)`: returns the signed 32-bit array of `size` located at `address` of the game's memory +- `table ReadArrayUInt32(const uint64_t address, uint32_t size)`: returns the unsigned 32-bit array of `size` located at `address` of the game's memory +- `table ReadArrayInt64(const uint64_t address, uint32_t size)`: returns the signed 64-bit array of `size` located at `address` of the game's memory +- `table ReadArrayUInt64(uint64_t address, uint32_t size)`: returns the unsigned 64-bit array of `size` located at `address` of the game's memory +- `table ReadArrayFloat(uint64_t address, uint32_t size)`: returns the float array of `size` located at `address` of the game's memory +- `table ReadArrayDouble(uint64_t address, uint32_t size)`: returns the double array of `size` located at `address` of the game's memory #### Write Functions +The following functions can be used to write data to game memory: + - `WriteBool(uint64 address, bool value)`: writes the boolean `value` to `address` of the game's memory - `WriteInt8(uint64 address, int8 value)`: writes the int8 `value` to `address` of the game's memory - `WriteInt16(uint64 address, int16 value)`: writes the int16 `value` to `address` of the game's memory @@ -208,6 +224,41 @@ The following functions can be used to read data from game memory: - `WriteInt64(uint64 address, int64 value)`: writes the int64 `value` to `address` of the game's memory - `WriteFloat(uint64 address, float value)`: writes the float `value` to `address` of the game's memory - `WriteDouble(uint64 address, double value)`: writes the double `value` to `address` of the game's memory +- `WriteArrayInt8(uint64_t address, table array)`: writes the int8 `array` to `address` of the game's memory +- `WriteArrayInt16(uint64_t address, table array)`: writes the int16 `array` to `address` of the game's memory +- `WriteArrayInt32(uint64_t address, table array)`: writes the int23 `array` to `address` of the game's memory +- `WriteArrayInt64(uint64_t address, table array)`: writes the int64 `array` to `address` of the game's memory +- `WriteArrayFloat(uint64_t address, table array)`: writes the float `array` to `address` of the game's memory +- `WriteArrayDouble(uint64_t address, table array)`: writes the double `array` to `address` of the game's memory + +#### RAM Fill and Slide +These functions consecutively write values and increment/decrement those alongside the address as many times as defined by `count`. Note that an address increment does not consider the value size. For instance, to consecutively write int32 values the minimum desired address increment would be 4 or -4. Increment values are signed(!). The first write does not apply any increment. If you don't want a value increment just pass a valueIncrement of 0. + +`fillAndSlideInt8(uint64_t address, int64_t addressIncrement, int8_t value, int8_t valueIncrement, uint8_t count)`: consecutively writes `value` + `valueIncrement` to `address` + `addressIncrement` `count` times +`fillAndSlideInt16(uint64_t address, int64_t addressIncrement, int16_t value, int16_t valueIncrement, uint16_t count)`: consecutively writes `value` + `valueIncrement` to `address` + `addressIncrement` `count` times +`fillAndSlideInt32(uint64_t address, int64_t addressIncrement, int32_t value, int32_t valueIncrement, uint32_t count)`: consecutively writes `value` + `valueIncrement` to `address` + `addressIncrement` `count` times +`fillAndSlideInt64(uint64_t address, int64_t addressIncrement, int64_t value, int64_t valueIncrement, uint32_t count)`: consecutively writes `value` + `valueIncrement` to `address` + `addressIncrement` `count` times +`fillAndSlideFloat(uint64_t address, int64_t addressIncrement, float value, float valueIncrement, uint32_t count)`: consecutively writes `value` + `valueIncrement` to `address` + `addressIncrement` `count` times +`fillAndSlideDouble(uint64_t address, int64_t addressIncrement, double value, double valueIncrement, uint32_t count)`: consecutively writes `value` + `valueIncrement` to `address` + `addressIncrement` `count` times + +#### Log Functions +- `LogText(const char* text)`: Logs the given `text` to the log frame +- `LogUInt8(const uint8_t value, bool hex)`: Logs the given uint8 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogUInt16(const uint16_t value, bool hex)`: Logs the given uint16 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogUInt32(const uint32_t value, bool hex)`: Logs the given uint32 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogUInt64(const uint64_t value, bool hex)`: Logs the given uint64 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogInt8(const int8_t value, bool hex)`: Logs the given int8 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogInt16(const int16_t value, bool hex)`: Logs the given int16 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogInt32(const int32_t value, bool hex)`: Logs the given int32 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogInt64(const int64_t value, bool hex)`: Logs the given int64 `value` to the log frame. if `hex` is *true* printed value will be hex +- `LogFloat(const float value)`: Logs the given float `value` to the log frame +- `LogDouble(const double value)`: Logs the given double `value` to the log frame +- `LogBool(const bool value)`: Logs the given bool `value` to the log frame + +#### Misc. Functions +- bool `IsInRange(uint64_t value, uint64_t start, uint64_t end)`: Checks if value is >= start and < end. This can be used to verify pointers are within a valid range to prevent possible crashes during loading times +- uint64_t `GetModuleAddress(char* moduleName)`: returns the address of a processe's module (e.g. GetModuleAddress("mono.dll")) +- `copyMemory(uint64_t source, uint64_t destination, uint32_t size)`: copies the `size` bytes of memory located at `source` ot `destination` #### Registers These variables can be used to store and keep values across execution cycles and different cheats. diff --git a/resources.aps b/resources.aps new file mode 100644 index 0000000000000000000000000000000000000000..5df4df2a517c1c80d31118e858d2d4fc20051de4 GIT binary patch literal 420 zcmZQzU|>)H;{X347|28c>Oh_f5PL9$GdKb1|Nj|b@;orc2Oz`EDkeO?D7&~IF*!BH zw=^$3ASbmVrYN;IzqBYhwOFqxnSntNs1DVv6JR3@7#Mh%poS@eX(0I+=pZD3s_!IN z23a2qPy|)YDGW6#K-W*ePzSLY*({KsU4R&$pFw^BnT1e;@C#5F4nU#^H3)aZ6oB0Q L21O0R-7qx(w5K~g literal 0 HcmV?d00001