From 93014def684ea0e2b734ee9d2476e3b9b8191f20 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 15 Sep 2024 10:38:50 +0200 Subject: [PATCH] Internals - changed memory start addres to avoid overlaps Graphics - added options for 480p Nintendo Revolution SDK bug fix patch (Thanks leseratte) Graphics - added options for deflickering settings (Thanks blackb0x) Graphics - added options for disabling dithering (Thanks blackb0x) Graphics - added options for framebuffer width patch (Thanks blackb0x) Languages - Updated ZH_CN.lang (Thanks kavid) Documentation - Updated README.md with the new configuration options --- ChangeLog.txt | 15 ++++ Languages/ZH_CN.lang | 135 +++++++++++++++++-------------- Languages/lang.pot | 32 +++++++- Makefile | 29 +++++-- README.md | 18 +++++ data/intro4.jpg | Bin 16611 -> 123326 bytes source/apploader.c | 52 +++++++++++- source/cfg.c | 23 ++++++ source/cfg.h | 5 ++ source/deflicker.c | 184 +++++++++++++++++++++++++++++++++++++++++++ source/deflicker.h | 24 ++++++ source/guimenu.c | 22 +++++- source/menu.c | 42 +++++++++- source/patchcode.c | 104 ++++++++++++++++++++++++ source/patchcode.h | 9 ++- updates-222.txt | 13 +++ updates.txt | 13 +++ 17 files changed, 645 insertions(+), 75 deletions(-) create mode 100644 source/deflicker.c create mode 100644 source/deflicker.h diff --git a/ChangeLog.txt b/ChangeLog.txt index d3993ea..4de54c4 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,18 @@ +15-09-2024 cfg 70r78.13 (release) + - Internals - changed memory start addres to avoid overlaps + - Graphics - added options for 480p Nintendo Revolution SDK bug fix patch (Thanks leseratte) + - Graphics - added options for deflickering settings (Thanks blackb0x) + - Graphics - added options for disabling dithering (Thanks blackb0x) + - Graphics - added options for framebuffer width patch (Thanks blackb0x) + - Languages - Updated KO.lang (Thanks DDinghoya) + - Languages - Updated ZH_CN.lang (Thanks kavid) + - Documentation - Moved README-CFG.txt to README.md and converted to markdown format + +03-09-2024 cfg 70r78.12 (release) + - Internals - changed online update URL paths + - GC - updated nintendont config support to version 0x0000000A + - Usability - Wiimmfi WFC patching fixed (Thanks leseratte) + 15-01-2017 cfg 70r78.11 (release) - GC - updated nintendont config support to version 0x00000006 - GC - if nintendont_config_mode=arg is set nintendont configuration is passed via command line argument diff --git a/Languages/ZH_CN.lang b/Languages/ZH_CN.lang index d09e8cc..48c0114 100644 --- a/Languages/ZH_CN.lang +++ b/Languages/ZH_CN.lang @@ -1,7 +1,7 @@ -# Configurable USB Loader ZH-CN By 91wii.com -# Copyright (C) 2010 91wii.Com THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# Kavid , 2010. +# CFG USB Loader language file template. +# Put the translated string in msgstr "" +# Fill in the Last-Translator and Language-Team fields. +# Please use utf-8 charset when editing. # #, fuzzy msgid "" @@ -15,7 +15,18 @@ msgstr "" "MIME-Version: 2.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: Simplified Chinese\n" + +msgid " 59 blocks" +msgstr "59格" + +msgid " 123 blocks" +msgstr "123格" + +msgid " 251 blocks" +msgstr "251格" + +msgid " 507 blocks" +msgstr "507格" #, c-format msgid "%.1fGB free of %.1fGB" @@ -74,6 +85,9 @@ msgstr ".dol文件太小" msgid "1.2+" msgstr "1.2以上版本" +msgid "1019 blocks" +msgstr "1019格" + msgid "1st-Person Shooter" msgstr "第一人称射击" @@ -86,6 +100,9 @@ msgstr "2.1以上版本" msgid "2.2+" msgstr "2.2以上版本" +msgid "2043 blocks" +msgstr "2043格" + msgid "3D cover" msgstr "3D封面" @@ -216,9 +233,15 @@ msgstr "平衡板游戏" msgid "Boot Disc" msgstr "启动光盘" +msgid "Boot Method:" +msgstr "引导方式:" + msgid "Boot disc" msgstr "运行光盘" +msgid "Boot method:" +msgstr "引导方式:" + msgid "Booting game, please wait..." msgstr "正在启动游戏,请稍等..." @@ -367,6 +390,9 @@ msgstr "板球" msgid "Current Version: %s" msgstr "当前版本:%s" +msgid "Custom" +msgstr "自定义" + #, c-format msgid "" "Custom IOS %d could not be found!\n" @@ -390,6 +416,9 @@ msgstr "cIOS %s加载成功!" msgid "DEVO" msgstr "DEVO" +msgid "DIOS MIOS" +msgstr "DIOS MIOS" + msgid "DISC cover" msgstr "光盘封面" @@ -411,6 +440,12 @@ msgstr "数据库更新成功。" msgid "Debug" msgstr "调试" +msgid "Default" +msgstr "缺省" + +msgid "Default Gamecube Loader:" +msgstr "缺省GameCube启动器:" + msgid "Delete Game" msgstr "删除游戏" @@ -475,6 +510,10 @@ msgstr "下载游戏信息" msgid "Downloadable Content" msgstr "支持下载增值内容(DLC)" +#, c-format +msgid "Downloading %s plugin." +msgstr "正在下载 %s 插件。" + msgid "Downloading ALL MISSING covers" msgstr "正在下载所有缺失的封面" @@ -501,12 +540,6 @@ msgstr "正在下载数据库" msgid "Downloading devolution." msgstr "正在下载devolution。" -msgid "Downloading mighty plugin." -msgstr "正在下载mighty插件。" - -msgid "Downloading neek2o plugin." -msgstr "正在下载neek2o 插件。" - msgid "Downloading titles.txt ..." msgstr "正在下载titles.txt文件..." @@ -836,6 +869,9 @@ msgstr "平面封面" msgid "FULL cover" msgstr "完整封面" +msgid "FWD Emulators" +msgstr "FWD模拟器" + msgid "Fav" msgstr "收藏" @@ -900,9 +936,6 @@ msgstr "飞行模拟" msgid "Football" msgstr "足球" -msgid "Force Devolution:" -msgstr "强制Devolution:" - msgid "Force NTSC" msgstr "强制NTSC" @@ -1142,6 +1175,12 @@ msgstr "读取中..." msgid "Loading..%s\n" msgstr "正在读取..%s\n" +msgid "MC size:" +msgstr "MC大小:" + +msgid "MC size::" +msgstr "MC大小:" + msgid "Main" msgstr "主菜单" @@ -1323,9 +1362,19 @@ msgstr "对应Nintendo DS" msgid "Nintendo DS Connectivity" msgstr "支持与Nintendo DS联动" +msgid "Nintendont" +msgstr "Nintendont" + +#, c-format +msgid "Nintendont Ver. %d.%d\n" +msgstr "Nintendont 版本. %d.%d\n" + msgid "No" msgstr "否" +msgid "No Speed Limit:" +msgstr "无速度限制:" + #, c-format msgid "No domain part in URL '%s'" msgstr "URL'%s'中没有域名部分" @@ -1345,6 +1394,9 @@ msgstr "未找到更新" msgid "NoDisc:" msgstr "免光盘:" +msgid "NoSSL only" +msgstr "仅用NoSSL" + msgid "None found on disc" msgstr "光盘上未找到内容" @@ -1676,6 +1728,9 @@ msgstr "按%s键弹出DVD光盘" msgid "Priiloader" msgstr "Priiloader" +msgid "Private server:" +msgstr "私服:" + msgid "Profile:" msgstr "配置:" @@ -1735,6 +1790,9 @@ msgstr "发售日期" msgid "Release Notes: (short)" msgstr "发布说明:(简介)" +msgid "Remove Speed Limit:" +msgstr "删除速度限制:" + msgid "Removing game, please wait..." msgstr "正在删除游戏,请稍候..." @@ -1842,6 +1900,9 @@ msgstr "已选游戏" msgid "Settings" msgstr "设置" +msgid "Shared" +msgstr "已分享" + msgid "Shooter" msgstr "射击游戏" @@ -2317,47 +2378,5 @@ msgstr "无法打开Wii光盘" msgid "used: %p - %p" msgstr "已使用: %p - %p" -#~ msgid " Copying files from USB to SD card...(%c)" -#~ msgstr "正在把文件从USB设备中复制到SD卡中...(%c)" - -#~ msgid "Booting Wii game, please wait..." -#~ msgstr "正在启动Wii游戏,请稍候......" - -#~ msgid "Console Def." -#~ msgstr "主机定义。" - -#~ msgid "DISK1:%s[%s]\n" -#~ msgstr "磁盘1:%s[%s]\n" - -#~ msgid "DISK2:%s[%s]2\n" -#~ msgstr "磁盘2:%s[%s]2\n" - -#~ msgid "Download titles.txt" -#~ msgstr "下载Titltes.txt文件" - -#~ msgid "Front" -#~ msgstr "前" - -#~ msgid "Loading previous game list..." -#~ msgstr "正在读取上次游戏列表..." - -#~ msgid "Not Found boot.dol!!" -#~ msgstr "未找到Boot.dol!" - -#~ msgid "Remove Game" -#~ msgstr "删除游戏" - -#~ msgid "Synopsis Len" -#~ msgstr "摘要长度" - -#~ msgid "Update WiiTDB Game Database" -#~ msgstr "更新WiiTDB游戏数据库" - -#~ msgid "Update titles.txt" -#~ msgstr "更新titles.txt" - -#~ msgid "WiiTDB Game Database" -#~ msgstr "WiiTDB游戏数据库" - -#~ msgid "Wiird" -#~ msgstr "Wii金手指" +msgid "wiimmfi.de" +msgstr "wiimmfi.de" diff --git a/Languages/lang.pot b/Languages/lang.pot index c00fe8d..5686058 100644 --- a/Languages/lang.pot +++ b/Languages/lang.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-15 00:36+0100\n" +"POT-Creation-Date: 2024-09-14 22:07+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -442,6 +442,12 @@ msgstr "" msgid "Default Gamecube Loader:" msgstr "" +msgid "Defaults" +msgstr "" + +msgid "Deflicker Filter:" +msgstr "" + msgid "Delete Game" msgstr "" @@ -466,6 +472,9 @@ msgstr "" msgid "Devolution only accepts clean dumps!\n" msgstr "" +msgid "Disable Dithering:" +msgstr "" + msgid "Disc" msgstr "" @@ -917,6 +926,9 @@ msgstr "" msgid "Fitness" msgstr "" +msgid "Fix 480p:" +msgstr "" + msgid "Fixing EXTEND partition..." msgstr "" @@ -951,6 +963,9 @@ msgstr "" msgid "Found %s" msgstr "" +msgid "Framebuffer width:" +msgstr "" + msgid "French" msgstr "" @@ -1382,12 +1397,27 @@ msgstr "" msgid "Nunchuk" msgstr "" +msgid "OFF (Extended)" +msgstr "" + +msgid "OFF (Safe)" +msgstr "" + msgid "OK" msgstr "" msgid "OK!" msgstr "" +msgid "ON (High)" +msgstr "" + +msgid "ON (Low)" +msgstr "" + +msgid "ON (Medium)" +msgstr "" + msgid "Ocarina (cheats):" msgstr "" diff --git a/Makefile b/Makefile index d2dd9de..971dcdb 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ include $(DEVKITPPC)/wii_rules # SOURCES is a list of directories containing source code # INCLUDES is a list of directories containing extra header files #--------------------------------------------------------------------------------- -VERSION := 70r78.12 +VERSION := 70r78.13 RELEASE := release # to override RELEASE use: make announce RELEASE=beta ifeq ($(findstring compat,$(VERSION)),compat) @@ -63,8 +63,16 @@ BUILD_DEBUG := 0 ifeq ($(BUILD_DEBUG),1) BUILD := build_dbg TARGET := $(BINBASE)-dbg - BUILD_DBG_FLAG := -DBUILD_DBG=3 + BUILD_DBG_FLAG := -DBUILD_DBG=3 -DDEBUG_PATCH=1 endif + +BUILD_DEBUG_PATCH := 0 +ifeq ($(BUILD_DEBUG_PATCH),1) + BUILD := build_dbg_patch + TARGET := $(BINBASE)-dbg-patch + BUILD_DBG_FLAG := -DDEBUG_PATCH=1 +endif + #"-g" tells the compiler to include support for the debugger #"-Wall" tells it to warn us about all suspicious-looking code DEBUG_OPT = -Os @@ -74,12 +82,13 @@ CFLAGS = $(DEBUG_OPT) -Wall $(MACHDEP) $(INCLUDE) $(BUILD_FLAGS) $(DEFINES) CXXFLAGS = $(CFLAGS) # start address: -# Original: 0x80a00100 -# NeoGammaR4: 0x80dfff00 -# cfg 33-36: 0x80c00000 -# cfg 37-49: 0x80b00000 -# cfg 50-..: 0x80a80000 -LDFLAGS = $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80a80000 +# Original: 0x80a00100 +# NeoGammaR4: 0x80dfff00 +# cfg 33-36: 0x80c00000 +# cfg 37-49: 0x80b00000 +# cfg 50-..: 0x80a80000 +# cfg 70r78.13-..: 0x80a50000 +LDFLAGS = $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80a50000 #--------------------------------------------------------------------------------- # any extra libraries we wish to link with the project @@ -167,6 +176,9 @@ $(BUILD): debug: @$(MAKE) --no-print-directory BUILD_DEBUG=1 + +debug_patch: + @$(MAKE) --no-print-directory BUILD_DEBUG_PATCH=1 #--------------------------------------------------------------------------------- lang: @@ -188,6 +200,7 @@ clean: @rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol @rm -fr $(BUILD)_222 $(OUTPUT)-222.elf $(OUTPUT)-222.dol @rm -fr $(BUILD)_dbg $(OUTPUT)-dbg.elf $(OUTPUT)-dbg.dol + @rm -fr $(BUILD)_dbg_patch $(OUTPUT)-dbg-patch.elf $(OUTPUT)-dbg-patch.dol cleanall: clean @rm -fr *.dol *.elf diff --git a/README.md b/README.md index 961417b..d0a89b9 100644 --- a/README.md +++ b/README.md @@ -1099,6 +1099,24 @@ Example: # 1 = NoSSL only # 2 = wiimmfi.de # 3 = Custom string from "custom_private_server" + # + # fix_480p = [0], 1 + # enable/disable 480p Nintendo Revolution SDK bug fix patch + # + # deflicker = [0], 1, 2, 3, 4, 5 + # override deflicker filter settings: + # 0 = Defaults as hardcoded in the game + # 1 = Turns off deflickering setting the vfilter to Off + # 2 = Turns off deflickering setting the vfilter and patchig GXSetCopyFilter function + # 3 = Turns on deflickering setting vfilter to Low + # 4 = Turns on deflickering setting vfilter to Medium + # 5 = Turns on deflickering setting vfilter to High + # + # dithering = [0], 1 + # enable/disable dithering removal patch + # + # fix_fb = [0], 1 + # enable/disable framebuffer width patch # # Profile Options: # ================ diff --git a/data/intro4.jpg b/data/intro4.jpg index 96482db2274b56b8ab11e3f11a02f9c81129018b..9fb1da32a4a85213120dbaf03779a30cc71ffc7c 100644 GIT binary patch literal 123326 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%0AHxR(U0$$p)h`#uS2gfT-11mB;uP?3nt>hG$n#S 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≶xBw!2pFfxHXU{syklMIob3z391Fy>|(_|h#Elzzze(Ts>DdwCLY#_>@ahA zfzM`sqZ2=4arFd`nEOga%;B+rzZg48f%{x=(<5n0?z6;Eg`=jHP`w|P7jhRvbbRCY z2EtD2!rss)N=?iO!Y-_5SeO2IN_Gqi#zf{9FtyrsqpY-CQE-)k0#+24u5PYZD$zw; zJJiHbhHlggzfd|Vy^8=Gfyk$wSO&}qAE%HW4zikTJ>W(8crG5bSR4~0fMD>`3y-N_ zsmv6k9vFjfLR*&w;Fnd*pt{gWSwxJ^V=JP%Btd3v`sefBG>Z)IVirhbeB!g5+j{FS z(Nc!%HdCB2D{u@jVP7dK5c#y_MqNwN(5+=2LCbZCW+j`T?+rw!FzRZ=Cst3P_ zt@N2dBjWtAPseWvOx7$>#KoOjr?rSfV@Psk&;`_4SVhi6M zNY&NggMdx4m4sIhB&Bt1CGf}Z**}6JZtySV43xP15;Y`RR-DlFA4EzhCd&oN@YaYh zn{L|an(eLlc^G3YyL9nAZ{h$({s=%DAUj?lBqa}tO)_12g>r*D&46%nb{NUJFN4?B zr1dgUUxZKQJ40_2_6lMZmaWRNz^$M!1?I1gt{Z9Q06v%x1WgZtidbD3%VZMzIXU2} zBS9^MK8uEqFB_V2SYoXAN_iAvsK@l5XYx4U4i2&5;`ONi04Y%r0KgjtQwT4@Lrg%n zfe-{&Fj#EkS8y1h30=?JDNqA&0>&Cg&!(MATgl!yiXp6VV-P-(`bVrV1Op?4$lTzaA5n5lsRo^zs8byvlTLUF4 zt>>%g2Pg&JSDzppKd{b8`!rxp=`-pOOmFtZJgRGjJVH^<_X(x)=uA z2V@;CfgG}^Vixp|F|Y$bD6kz6tIZw-w>6_i1Uk#&5+?FF<+sdoxvaW&YZ*SE{8_YN zkhgf&_?n}cYeRgkx8fr)a59uom`3*w5<=BQtDeIgQ63$FD|jsXhEijo;(@fPabu*a zjK;ZERToVRYbkBJ1E1v@v}O8K2PMdjrAnaCAV4R8%g<#U(wC;6P?DqxW}}jkVyZU@ z;aS8A{{S^9B&m1>m&8M1kK|9>s)-KjCXEjB-ap&6s{mS_Qu|B(JgCuX#f@%Vu}V68 zK%~K1rS(+5VjgC)a1d6TnaQpwhjV3kyg8Qk-DnFv($9OC!>3Fcl*>~?WOB^{ZyCh~ zPkte`N{!HUEtZzb(}|zLrpNuCaWn$$4%Be=gJN4MI<2q4iO09@iXQiuH2q ze_Dt%6e(pfn8e1ffO^-M2ZQ0PrxMFsoSy31XoJeaa!`S_CHjxb%0LWlT5r54>ai?0XJc^|vWB!$!>u*q1@uDgEhRK>bg^}8 zTZS*Z4I9BlLD}3_WyOJ}MTP^buLCcKIu3~&a66`3j7nSKo&&BYC8-9=UDr(3NV@tY8G$nENoWI1RuKrRWnk;lF|q52 zrIoI-l_^Aa7vx!eu$DQIr8Klth6|SXH-hYQGJ+1M%cbhwMMsDOyz6xaD|(h6%&i<| ziUKZ@=s@ud4b~MlV~e#OkisU>21OKhB6vYIII;;tJr}G_au^qw;(&IKbzI?AJ5`@k zN48X4>2+I0(cGw1*XWGXC79}i_bo|3Fn=ZBULY-uSqPaH(k;tYys_H0I>!NJrGZvf zH*u`E`%51P8J_h0O!veGY4H^hM(Bdx4A`XW9kX~d)F-I3%mUdzWEz(yp0di&IZL8p zM59z#(~T}ruBPdM<)Pg30j1@jU=hTTi(rU+#eE*s-DC<;!*O+W3O}V1>38r_TJ0%TX0e5>6p>bz)$xc%%c7H_>eWZ$WAwznhd`=Vzj!ypHLDUg34>}1TwBH7RM?cK(!^rv zhFhguW}&8>)J+wD+s^9=CfN6P$sLc=}`^F;Wkpv`4VYe*x_QYC!is+>XEX-mQ1+vfpQ_>54x*c>?3Y^dv5})7c zHTer~kXIyC;a z{){Vih1S}*4uLUZhbdy!!eaCDKt%^K>ZDF80Z{26*FNSwoG3Kpm=My%l@ zH4#zL-kr!qN#i2^aCi=rPeMLL`hiImuw;d|oM6sFMa^?73c{=$$K-7ROLZ}3@O6yY zfqCOPf!Y8DL?gc6WN{B=spoOt!4Q`M))x;mAG)>nTjA%-OCo^+jZn4uryqkUd2c?HtL%>gns~(OLg@Q#Htz}#Hp+~D%aG;BSUKPH2(n5 zlYOZI!cxBwN zRY0Z&q9g{MXKaWxtx6HN(PGYlPRq1n&?+dVtXBJbVANFv6|z&zQtD9Su^OUnnqHzb zSSbk0HBVO0%ouf1gQD_cdI1(?V8>vA)-1XhjRN)yRxFgdg=1qY6m0hRPsgJ4`>4%J z-9w8^)m_#a#elBP1;kodb75F}iPJ1l<(Xhn1BeLGST(5;N&?7Q>ol>h@#%u-wP}~V zz^&ZKpaPfASiz#Tm5sp+Zk88q>i+;vrz#Tw7SHMojJJpOw>WOPynmifl!NrvbY*Z7Dz{9h&FMK zqG5OpdR+un?AR@vwz-R_t1y@>@s1;lNL2Jcs3Eih>tcP>JxYX0=xQ0_!K;NMc3>`? ztup-5H&?s3`!@Iu7H7)#6dK!&^OtdF$Qq6 zRhpJ} zePx~qUtyICzxd4MlMqqZkkJvVGxaZbu<2A^Eofzp&a$)d0=moy#$h#wX;(adfjs$FiDE^7=>fgS3`DvuC((vU!L z()QJ@(MBP|1gKrK0kCCNcb0dL_-1XMTQlD?w!I_Rh`j3f06p2=2Y7iC<0^0;F*yEvPWQ}UP1gNTBydd3g z{{Ur(w0x>9@B!E*TZ5=l*UhKI5ja!1R&w15)`iHKE^_Z4mLGMDfu!sP^%Dpck*n`{37VH$F}cM72cRyy56MbKN< z1RJT6DC4nL<~uTni<)|?)D%hdrcv0p!76575GP?^FICq7c)>+vmioKyLY=r*L6Xsz zpw$ep!uC)bR#baNM_E@ucZyVyX*K#mppH-jCKk`BuGUHd-xEjOtf03R)nV#V5vwLB zUlx5ObA({t49hk(M_3OFim0|J<#1oZ%BZ5Iiy*GS%_#MZ2}ZUf@h^a0-ZWwiSVY*_ z42ub83Qa&2mrfhDpu1`TzZ*d0dRf}iS5Of2X1^%WRoBVC$i){JQ0O1GaG!J{Z52DP znJ08ckit;hy4*#QONBb#!Cs(^5F)CfOI2l^8q)#u8$eyZHdF3n9`QGUM~k&}-e4gx zsPbRp5*krZq`l`S;EawN*M8i97|q}NP|6{N8hHs&H2k6k>f2tpWs(pr-|Nx?c^ixV zQIZLvW*B=kJ(dLq^98A?))?!gdip}9Ot;H%rjQT=UE=|9Og{Z>aO{xPsQ_)D9%4>r zUS($iQ>vKFma8me^PS$vj2p;i|~1hH!PWqP2he$fXxlbtgPD-sOaiUC6_Sd&ji6T`sHk&697bYJ z^3pv?i0$4dL>=cN?{dS8!O6c6@1ztVS0RzUPO!X*hbGnT+RUtAdytJ_Y*YfSE1=-Tfrgj;Lp0FJ>gH((h>B2YJvT2wB-cnc^${!-R+nL3qBa0- z?xsP)QUJpPn8R=cNrNqLe84nrH*XgB2qPA1+gMJdq#F;ggO1-tfW0ko!j2#qFbxI4 zZUBRtAEl1vZ_E|NzcC!HN0^^GCp7bQL+lEjsE;6Xi+tCpP=v}nO&)V8h~x$Z-l_p= zF~TEEd4mKE&PRl3IPq|!lF_ZoD=im@ZI}UX1n6c3*cqtz5pJuZ{YN^oMATb*rKScY ziFPi?3?71*ZP$wD0`do>Clf3d#SKLn9@Q^f^D@jLQ?5ulg8>fCYsw(4@F+tS^rT?~ zMG9MX78Fnm#=m%bj~j)Y4@UmEgCKe^Ac9h03&xZt_zF(2*mG{;2s2ZyN-N013&Bbh2*;+mMPYSN)lv%AX;M_ncM9v>K(lb&u%FVwHyXO z8rh;k>P0He;<+RF~F1Bc~gd;MQQ`fkNx6 zZ+If}P$8sVdr_Z>R}{^ad2`kpP0=YpnQKZdjUWu5t`9-Y%eZ5R8HfcHcT0yJ3w=xi z%G(gEoWfZM-GKm5Ru3;*gx`Hj1DzF*5n2K?)-UuAa2Z{OXS>{8sM3iOLK21%&K1I-E-hh%$yvb?@! z1=q|el%?ymY-aU~#xZwfWtq?e=(x!jMJ!rDzd4>@8CLfd^REujYMQ}U3gddx=)4py z;I4R==v?EJ=s7LmV7Ca-5m&2vG1_g(fV_mEqMG79u~KMwc1$4ZbJdlzNa=S8KT)aZ z<*aJpn={e8p^6$z2K>gzTyu<8^o}K>j2*``TNQmH(mqnVP$2X1?Y_GV6@uM zaD#r~E-OlhV+J!*Lk(3RQW#}I#OmvWi*0bVd&5*l!mB44xZ(c*HBe`tGujC9i6b*Gc!{|qO8A|AoClzpn ztaw}Q#hl<5ZykUgpx8#!lI{#7V!Y_yu3DJ3U*=Vgk1mKc!WS{tiIK4RnZOEIk>wP# zqgQcOLZt8nY@krE z!*{4FHXBk08*8yBKs}N+RlJXhVVlf4ll}JVBNxNq!YX($e*(;O;>$Mhyg`>nuYfv zb)glkYw;A7Ke__1(+aNK8v(fRFbeyY4@wqg8U3j&T!v1Ng>(>K(eYhv6g`~KuRsmeNk=*MQpVO_{IFfNcsa>t(!8{)nUve0t=UE z)5&plf^@Iy4axX^9Dj!%!!ICn=pYbj@vJ6jnOrxxup@deJqx+eY zAy~N)b;w5E<$|&oFjr0^gg>!u3R1P6Pd*}axXPi5a*yr~WK6;h4os1_Hw>07coLIQ zM=930dSuMHbxxz#5n`(NLJLqrDZ;9!PsTPL2&Hn2tJ}fa9eG#)qeMlN8$tkx=v!XI zdRrcXHFmZfQsU|+C{2KcyDl71ZHHT!zEs5f<;<%ueSr3kS2a@uVFjq-J$;kq=|aN- zZN4g<^&wr2+OTt+!lBv)9(Q>03Jg}Qq2!5hDsG{YwKr={Jz3st?yv0j`A_Jk+*Z zVRe?9IkoauBgs08>qT}lm4hAYog4#iW+x60Xe%dlKGBFj762pGD}!pegzp8~epge6 zqa#jkjjM&OGR+l3rXZ+vwP`tt230uiDsW^RC%ClTMUhuc(h2Suxwh;nWUYc?>dXCQ zrC6~6ZDgppFc5brmkjcN7J@4Co9_b1YEY}EAfjCa5{(S0H0`w+Zta>Gps}hHV-k}F zTW6_*aM%qL%ma|*$`?em)vB$^44Y8_cmoiAQypIcPjMnB%r&MgwG9b|?0-;`7yWdB zbv`LKz=qYFgj7}v6c8v0cx=RXDlU!IqHSSdGE+YffrC~n3IaNRiIi@^9+^)k-#6B)I~QQU^~J9y$GShY0Pt@ zu+_E+S59i8LK?6PK|*X~5hY~yfIOw%*I=i}?poS#UDj%mfzG_G9PC>`;`+tB)Iq_C zF4l#&-%}AVrdLA_yvp~l1WX-`1YJzSk}dLpR~PFYJ1msvR4T?*^2WN!R)kyKtM>xU zpw<|qAQwOYXwh}Kji$X?by}1zfL+Y9EFDhyfSI<1e}v{dFwtmt8o{4tk~rvqm>MXe z8_gf8A{Hr!5#59M5ux~VVetjgWGDe@Z5>?MbY*q9`t4D>DHEB( zgeyx|JNGRi(Armw510niGIwX{1rv)QIG&P-LX82T;YX=tRR@8hUGN2Ts?nVcbqhtO z01&dX(pq79AOdGmf`q3q10KX!%JIrR6A*#zRvwJB698Zegn350rheGS7`R zKfxE{S!`-PqPGSW?wW+ABXp)#i5#4A!$F0P=WmUios{mY70bxPid2wfzRDo_v;O-S3S7z8C<_>R5D@=b+ zCbf6(+;F9IHJiwRI*YY(G1ad@Nv+_@gA@-IL z&`OWYxT)1t_iQ)7z$OZJw_V|gx=kAp4N&JXSUFf{RcbrK=^%JRxXY|poLwL2Hx8Em zCYJu(%ji>X>0o=J6D?UfVy=b76Ltd9-b{?Q)kF~so{SM91A9OWFDi;l8@Ptba6`)p zf+$h+L;Nr?d}B2g-E^8%P*Db^rK$zu4dgMwjBO6)9FeN7qTO2pVBo#hSe^@d!9*Wv zP|@Ia(<{QxUhfd5!^P0Zd0pX0Ze!1^RH`&!6q&l0g+dSktg0iPvx+VM0P#SvOKEqQ z8BEp@eZquQI_Ure(}-k%rKYx*E~ZN#Mefy`=~DYexk-&!(yF9Q)^~_oMcyF&+z!*e zpA`&%IcvP^^u`neOZs1MRVL9v;IQ2trT(RU=)EEc&Bk8~W}P@cvuspUDXr*n^#T?v zZ{VtwvgwS@U>J&Jf`=iN<`#nn=l;~8A_I!d1Qy0sa|e}du%^#&G-OmYnvH$h!IifF zWmE=MY_a$u&Lfrvo{@&#Y>RtP-bH)EDr+mVSS%e9`^P6u8g#XOvo5{bLp1<8*3uVb zJ9c<9JXynASt5hLf~v|xmmCv)J<`go)f1^*V6&Z?2n2CP`bI^b%VmB=I*oA>s1b^! z*0iNz%s@v2NH(7(RyA`N1ZN&+7!;p^98jPKf6@^!<-3=><)Ptfy{`|$F*N97;EO_> zvK}D)jX^LxLwCyDi&@SPd+QnnD!FdsorzwU%Vn1F!LwD`0wfC6+HY|0g;W}Sl5C-| zDlJyCxTZ&%l@B=pw{eBTd&WZ46!2TpSN=2t`~d_wh#9)Zb@)T#nnKe0*Rp2Jf;jXurwBCr_djR*RpE9N8#dUCP!+q`^V%esaTmU5* zAO&T)yiN-_1t2SBW>9V_r0Ut>DvM>AF05`jL!Q^It*AlW76Om_gTTu18%k8O5UT+q zHc^TJj+YQPF3VI@Lu|`B%cN0E=UV!i_Ra3@;{@CY@;HwMLJ6e81tkI306y@*{V{{; z3Zo#NCB(JKWE3s06^?i%n?>DqfOInE1Q_ZC4+!4hc!M6$xVV9CdK!t%SCXO*FjKpU zSS<_0(Z>iuw_vw~62S|BYMr#<-3#6-0@*H(S6><-OiZ*dEY!PfFxQblA_`S&n!=mr zqYFX;RZ_wrD+GItj+W?pFg=Ze6?S-y=Ym0ef&w)wswx+4F%eS%tB5PTj_P87^1f9s zD)Ui(Zf?yhv5|!lpT<=R^1{21;{&*tl@_m!!Z)^X9#l*4b^{CA+l%0tOEe=MxyLRPvS5JoY3B0b5IiYAR5y{PD0De za)W3K171d-BOSNPSU9mvdAGc-tjsL=vk-U=EFo#5lg_z_`P>aHn}Ov`R8&oCf>~Ms z4da|)(lS!_da;##t`m)9r^zCfa|Ofd4d>b>Uy{JF1Uz9;^lLLLTssuJ%4OxpUDz9X z`RxiT)GE8mu{Hn;TixM?&d^ZpCJy#jO?tQws-QM29ChAfbWu>|u!&kUX(U+6xXSmJ zgVcH$kIN;{g;mEuTixOsajakI-6JGly0hjF&BmSKRz8$n>GvBbbR$g!1;GPSV4OMo~W97c}8RbnRv zU6J%3nQ@nZUH8^Ds7%)kxHc)MO>d}3}JMdpisB?;Vz zMa}t?<+i96%n%D1LHLN#i_~KF9}^~<-&XRbT;PR}j!a&{grm^FL#CGH4vR~0ZQC{C z6++UM8*_SgfZ+5>h|O5H6*%yfHY;Ti@o?l*u+ZrTtzqIkA#z_vRnh_J{{X?#7IfHeZaULllAT#DfHl8y4BEnpm?yxdt}2SwPm3c=iOUVsifz#4xEaT2uw-&>1B zDV8?;q1_%_sc&eYb#J6GVq0yyg~i3XMZLfs;*U2;Rwa?xSX-k81)*#XV$g~KDFuTy zY3zg^{l)T^2rUQ)b%tGyQMukx+M=6Kd_3#D#I)(kr@ltI)!t{@)z8o@VoL_`QF^no z+X2jkWOvGoyzW*)frlf42`j0zrG!xpVC@Z14X~Hy7+ZLv!3K+pq7dntIvy$rvs^8h zaulhZW(2M@<#35cq`?{h&1IXEJH+t?5j7MVEFYE)qyD`Xj4$|&BtQVqFf^ruyfXPeyy|m`HYrzUy`rlQIYrw zGG<4Y8ib-lopy8$wzo#2Kqb=8y7-4qG9EEw%0R#Mwhzel=E+_mb}A8&TE$a>{AMo5 zqkH{n_X;)T%kZrjMX}4cFlfMDtyxB&Xs5z(nq~|n1Bwm3;};PrO2(Uroi4IHK?w~U z7N}79gX`!}o-le|BM+*|ojAT8eohm=a_`ZPa^G> zKr;M6EW=0+d?W)e*x`yK4VZ^o=@J%bDa-jB%US?$Wjtkr$60q#?W6Quyv#~rZ!1?H z3Ahs=p*%oowR^IanNAouw%Ayp5o-2I0b0vVQKjkvT`_-$QqiiuvKQnL_2cBuL)q|ZP3aIrtEI|*oI7R1or|56_|mX%y)H0Aov8 z8Eb&l;BZ{E#!0ZxX>2HAON$$w$L3@xil&STtyn~ZUWKtx>X0CTpa{Q{p>V@w84&hO zKFOo=k!(Qa16Eg33gwIpXf&j_Jl zWXO<(u+RaQfHw$&TVZdhl!r*r_%{x?1j_XlP-rznq{CC>pMD$r+WLC1+5{2m(r! z4F8~e@7}w6_x}6d+xP$Pec#sfoUX2_4prTKPIb7NzFGjlw-uBX01yZSC?S5p)g?eA z>tLx^aWx0X0vKp$=xC@I=;-K}m>5_%#JD)v*f`{bMEJzi6tpzd z6jW4njNB}A^qdS-RII{moVHsJK5P*b?P~oqDiiV7Wj&#i=L+Ey`-fsYegp6`E z3*aClvVoDo003%o?)we@-{^nc0=Uc#hns6Hzb^Ug;lTUV9nsTN0(mZ%MFMAtnJ~QKAq}nE4A5yq!)MX+QEk^b4H>xoXR`x`hBH^ zI;-B@3Lm@GhY&;euK+PzJ>6{J+GI7Db zcs78p`WfbH$bV`@XSbO`7*j2nvNdnLr6ljG$`r%il~}<-IJz&HxS3KxtKFdK6#^+zt-n-bXIK2{iiqkE7R84ZsXT5S>*H{f4+Yh$?jsY#(t7E8qby34sChzn#Q`hE#54k zo7vj4O86Pga20G-}rys0<8L5e_9BZ!1|x^|IPfZ1u%b`_R510WO- z3V@1)iiG~dlR!cE8>qyf8zh2g1cXEyU;#P?UjCa3a0opkpAb~q6yaT9AbbuGD$?Z+ z>QJmu?b>GPmfOd8!-{?{5vOjh>D4BxI*XKlHAy$cT~)Dl&NHikOPPt^E|LCeHVghC zeS&^Id#NkrR9ZutS4>@{8Nc>$`>n6D@!S*wY2MJDIj64EKd>b1%fhMfJtA(*ePciT{4%*gZMzG7hwbB18NkNf=rkGQX6V`as9pFUC( z$J#>@b&jo~K-0#Dv$$dzuY7s~(&7E=kDL=s^5uB#ntA&7QdhYI5_C5b)bva4z`r#Y zZC&EcmFPlX`e=IX#wA>2F3EJ|t~JdOpDMBVJ9oZq2^<4VjU6tY1?wpJ>e=mh))7X> z5yy72rc3q@#S=59j(tzwNFR+GJvamz55i~lWnibDU>{L4Z^0J3n*@i;U0yG9`z{)E zYEPnZhwDA{<rcYi&l;b zHO=```_e_(vv}+Z2X_Y#>yGeevZi&u2cSDnLZaZx={_7YwpJk7so8o7;qv6Lsu)Mz zQ0Rua3N|NpP$#~=K(FY6n`{{*INja?b7XREshew@z4cS{aLhQr(L8-H z@6Dic>-wv>W{LZUW2=N6e&OEYEIQO}GC6$_{^AR&#`l$4U)H%B$=xt1>j1N# zqxX0fFyd&nuoPY3TfizUCB;ux-L^Zgd(s_j-HvPPP>GF^ym$q?*~R~GZ>;kL*JQ!H z*@isQ zj#A(0rx^R(ts0uLTCKaM(@D2Xpr5>iU*mjY-+VA6QP=*-c&1TzrPIt1#hB)zu56&EwS&x)}CVPSqBB*m1e5RWU(?UzfJ7;8p!NjOtLFxeJWlt5xtL1y>OR0 zRBq(nbRJqM*=@F^usTA175sdAPf!22U^70bUN#ph^83gzM)=bW9AP6WM|GPWua7pZ zEjr6w$Fq8xP82%Ucs-x{(NX*YkGs@9rv?%&xAHR)~{1Iy5a2YH_W2TJN3*< z`0kPw|Ema=4l(MN`1<)Hat{0SAB)3Ay)VwEPA#4oaUf?YHYun<@~N3iZACXZ<j^xJ!X9 zS{QWf;xu0gD!iPa$or3?DeO|+Q3;RUH!NAq-{gLncC>E7vSZTM|D0LkoG0-_D){X4 z=5=D9|MTy}z6K2bO7{PJ9AI}|R&|~I{jb#PGW(eldo3&VIa5^rN#qKUy8;SwH!woZ zD5P>2r7^2CkB%@6IOJikZ{$|rjUM^$N2j*Ce|7=#Py7G6I|3p=;sZknrRjJzpqg+~ zmmgh#blnA4fThY!Kym@S9=X1hlxJkQu}YwaN3Y>!@@a6QI!^)Jk$PK{`O za`GB~mlU^^ol)pvRC<)Q?7i?@K1y-DT1$&OuIKf)X{2WIhQnj^z6%d03!L=ac00oG zA&EGSiH-H_ekYNhw(cu|ZEe6Ou~TblZdElB-<{(nh_4{VkHD(9Ftxi=ZD(d?5;$bf z<=Yiw2r0z%;KT6UZ(*?(Mwrq|4`VEJc5R|WgYQ4A>UbvGv1_jJ@Vjj1bVqs}9oId?*nSo&Sf;uYxRE#Lk#(esNn0dg=6AqGkUvOR9aJ2+B zqICzpG_hU+cO}TuVcoH@9$Y)MLZarriw^JajgUW%Z}2535b9_oslTo-C$EY+`B}xf z&UTdR_%92WNJAgEJ!5F#KU{kW{{I-NZo0j;6F6f0 z_}qVVI*y|M$6&!tudb{MYMBdVbR=4&_0~gCm12iF{SZ_%Z zq@PnJQ=GOS2|*W$#}!}Uxks6`cjHHatd#*TNxxzZhs%7*WEny4IVn7hK6HJ1ad$#< z%U!)gdyHFCVj89){@55^R&{)D=A0c}_*kcU_B%^=c0=O<+v(~rjn7UOau`*-?cl}! z)w)g|oFJsPaC%TMxN|e%M$sBpPgIxGmskANI13~hUz3v_wapl&FDLmRy=L!47flrA zt$*9X@?KunJBc5SWF*x4rBA1jmV`xTt`8EQD7~2|7wuNzsZFoigyw}*gUOq+qsuQJ zju?cV=u;YFczP=-K3VzxlBjB!#GRzxUNzFrp;+WrF`2!3^ni6g^*}+5Y99p~Y{o5Q z<zjsP1`o$+id{#l$NLkAmq7P3>d-CgxACAkLQ`3?6Xitr0cm z$j+@LjGq;qiH`>`tmJGG4-ZX{#PthMI8G*M;~yj>X1>bv6JbhHt7d~GHqW2sO=8`O zFQjHmPg8gzw_ycyW{=CI)h(KocgQHXg{LBrnCC3wr$fuIR_H8(J|I+XXy2@RH#X^L zJW(suQMSodIj!bn63r>#_k9N=5|C`n$=^dVw>2+5hXcd*W zO~E|vZ*$JgIq|G;==hbECTGOe(tqAyzrSqksP%=v{1%q`%SB&CZbwhhXw}onZ8nGn zBi;ig%qnrh5u@8eT~jeEhn(*Rm_jtE`qBlg_QjwtwWm&5L$h`47+!F3c}tDSxxe>& zwO%QRdXgd9VK7~>7SmqC`gKU$q59ZbZ;^1Y1l6#vyNa@q{%dMRx0_a#Zt|f)98S_CU{a^>VoDT+bE^% zT1?s$Npo_Mo;!8s6Y1d>7G!(FUy$W2e5o_xTHi!H47|B>`>p`HKFJ)7?vw8F>=k|%O093N>TjxlJvF`rn&$~v#p`s31W~qlVJtb(Fs$;fp5c_wkx+21t zl@ZJm{ce9-lEn!v6TaRR5UgH!q;cpMJFj%&i{Bxd<4-$&*$2XSk+@Nv`OM$-=~C3< zo3-M<&Avsmi|lA!Y}|=W!#=tVL6;{o*z{?0*sq=Of{O%KWF~yhlo|M>OGKL_`Cc<4 zE1I5l$%SHl_J&m*b^g03$*hmE6EgQ-7`Tqvq;d8ef*$DFEX?fJ^pyPKN5Z?!EadWlC1Pp$M`QwY=-R4QdCZ#d>Q^CbefTyCDX z*s3ZbMw4E7jA6`<<-B$s&VN5Mu&+N+JaQbN<2SW<;iT`hDikEqO9P^`96@d0NC+Utuu8>(U7VD9pXV}lubJC?2msUI~XS1o!1HaxXWlNS?A zv&(LoqzQ4wL2^D^0ZhC^9m-}S4)jJPaZL7ygGOm8K{0_o4$9!a=q}F-ZaMM~VZE)L;WTjmcALC|~f7>C6*T zp7x0}lcGL#r;7Y-+k*<*UaQDr+efL|MSr+Ad!mmoWHzkr>||O zoda76r{v$se{791g!{~iaG#M-k&#hBz+aYBAb;KODmQ zUG-DeI`d6t^Uvbd2kW!k8B6IQN zU54(C(^cJ!&dnhvM6I#Q?lVyK!zyO01h3~6K@Q^X8{0-n$$-%q>*6nrL4+=;1&`Gj zKB)9+-Nhlas1VDw1JIe?pgi2-hkJOifdbFO#TmZ4a6XS@8HbB1_%ldHBNxGFQO$+9 z2;tM@-WUcOE!lL6gyw#x{xWH2k_&a&u}I!z=^t@NZB|IR8$1XF;72BJ$K|?IDtC+Z zs4uS7Qa{;}my&yrOBY9!kIJbJ_!a;%U=J_)1%RB-FCD|SMUpM(OO+VsyP7raj&l-H zw?2oUR?bIo=}i_=gYZ@vTsyfF>32|k4YfA+E{-ifzAB26G6MQ(xl6jxH%Nf2(J*wB zkm^x##`<&2sGxGW$E1!(=wDna7l#pRz8rI521@9$q7JfE{HQduSoReVN5=8uvVBmx*vu?a{bNWS7+4l{WPVZ?z5 zNyp&apXv!zLqwbt*8F`z|3r_>!$LICB0=h_)m_ZOHSG=gSU`tjD z0puK>y||G<)Hc4^uQ=$kCkkvigv>PdEk%DRq_{^PCD9)amq|l<;CBUtNYJg2!NY^J zsF0h!9Vep6CW4Uz7E``Fg~X!6NfmndnQ;s^0LDP(+oF-!!j;FmoIh=U*!ERlt+|~e z$J=E7T)?uiO!P6Bh!r`KljZRvF5~i-8(4&>N#gbKmbMZ*lHHub1I;=Uw%JI+Bjj;PJ3(!-@O%K03cWMD3 zXC%?l&^5k?E8UhNx7rxzm_t0Er1<8&V@rIbE@PFS`1c$Kzi=|5E_?<1N9sGCWG`9= z!5fh%vXnkFiiElxqm9tazhxX#WrKrb@m}ikGOa7WwcLM~@P;K@ZR;JE3UYJhcIMbQ zy&94s#a%=5IOSU`!J@gC^(&a$jQ#H0OVKEb-b5c8jD}B8q`QZ$Jm?^vZ{hE886sL`Mgy)UxE zt@=eSFdG^RSyQsVT@rea!>uZym%UV}_4g!oR$H)L1hsv660};rUB5rC03gZM+AE~X zwo9EL^nFvS7!a$Rwhj(74aEC`#Wc(mygkjLHs%VTfQCjnLxMnPf{bJjWU0M-FvsOc z;^&^f3son>fTm*T~ zzFp7N=$p%7YN`0Lyc$?3g!W^GY>e1c>u-bUjLeTinYb`CElri*m)gW?_)rCMx*B5n6AklaV=57c+T<_1}UWjc8ABr+|6EeBiFgSI0C6z&Yl9-Oglv@|e=9_tB` z;L3++nvVasAaWPk4Iq5lbE-C&ItxlY9!~?W1bh>`mo|lQ2>$}Y6N5s&KQ*vq=;+*2 z2DU%qy74Bt$S?D@s48VfAyxC_HMcpnGRkGgc0|4FqNE4Vy^10AYZ4l{819(;ikPm+E`= zb2nH`aW?(|X(8^9>3<;l|B}RW+2fYMSrEgP+Xt)s--9$G_9TDY<^!%z8o;%4j{gq- zLJLIyjXg(xXI?c#P36c4l0#RkV;y6n`|r7}`?V%S!LyEn0=+k?0WibwxT@rvSHS18 zTUojOQnA+6jD5?$W2=XJJ>D;Vp`P*J)*Vi<3-sS})imShZd9{s5WgZ!dHcrD@^84; z2AKE$X@-V^w7=)p**m4oIlh^5tWKo(18%Vc+MMINImepB$iL&BaYV)9wE2p2W(g+i z{T)}c;H?9*mPF;8cTG0s-*E*ZiqvKIZ;es3HY=C@9rv&LR|7~l|C&PRG4NBDU!Tpt z<2GFZfA%~1o$#+^AP}?KDsu9F$o;M4zwv+G0*r~ue-aRHsei*iX@NgABqL%?&W<=} z1|g#$A%Rd3$IU+gWJXXi0^xg{0}hhb;HA@a-GRbef3C={kDC#9OI)z;$%sAvt~f($ z>Gxlcro&8>=8jGXDJTk8?fXp1w6DR0^77pi=lKlc-Lmz7U^}CvS1x~#f6SXvCcBN<1?{$@?;2$DTVjK2h`+i)YKpU z%=5(LW#?kd0c{Au9v^$$@SVI5=47G53+D{7veL(fvGa!qnf~W2GI{16?82I&xZ`Tt z?XWu`L(|GI@wBrtIPTHRINE6**}qXF(8N*qcj7v;`OiOpd4IH z%o{QkJ5!;24AOZgH_%=(!Vbui)xg8iT-}Sb82)6P^#fOciE`by9X=e@>}1;DJ=qV( zI~~og0#ZD!!>^3-`y>hSWR#pr%ztUrF;P+WbYf0<9eMdjlTiK|*6>SkRyZ@PhLR{J zdsN0^uU1l!RU>=-P*UM%eNnx@T5%J3z2$d`$SF ztY}IzpF`cGHZv|_|0yo%(McSlp`S0WfO=)FU=`EEX~tU2|2>G*TmoVqvJxQNuj^Te z1VU_&{hWu0y)m$+^z}(HT@D;-TG6@_^y`fS@TDnJ3p_q@{l5|-DjnX+m0%h)654(d zN-R-vbsJvD%IXtisQeMCtP^I0?$@Stj7=@*S(w|dJ3)xTg;?1hWe`dbmsdMio)E38 ziQ~RtejfLfz=kqZD5c|c^;2qAZ;7_zNZxm~R6+{}Q#%iL_f{7-_tr|XEHu3qbKTas zf~~4xg?s1;e3!X($Qf0fl#yCw6Y)z#4a;2^O7bJ5a`oWyh@8Cj zku&E0us(9LmAo!_A))(}VV7v7xYN7v+1tlAWp(Vj)R8Y9QrskXrxzY+vc#{ClR9k_ z*JkR4U!SDx61$W29rFs9)+Rh5JBXuIxYkNjI%mPhGkFNbty?%KN`bFRu7fPR>y~Ur zE@6Fv_id6JAQoR0Mtiq0nE~vXhJZLJPI0=&(B?<&-!>S-*EbM!36v$ zq%3EA_Ff1FJ?X!U<51Fx4X>z%WYIbQwu3r|tp-9Gz*nI>TR3*DLOpn;%|OU&PqTk&qr!X+fAe)#x(z4@H($R8$=k0s~p(Fvd zhvF;zTuFO%$_dYvF!Dw|wk6f9;@^ztrDLQYeCBpx5uX;Q{jwLLW=5$UXA*vYr6@5N z*~Q_Be$HMWC)kIfLEN5UAW0THmrYXmU?x%My#%s-P=1S-aVT=EHUOZ$O7vNf?Mpyj za}8w4!Q?1^!0i;l$RwJ>9Y8OecxS5grspk)aI4mRmtq=}Mmf&_G{zVl?;#ws9ws4m z*r!M62_wr~mYmN`voa%J$f+p{AGGe#=noJKBb3liy#mDLnhj(kQ6-RJ3qCuWMCN=7 z>VR+eW#MIm)QQw#>-rn|=D;CUf9IW4;+^T&D%JS-&SZE&01y+nxwRwP96?-Bn5Q_s zA8XW9F0GFS2Q4$u!6S?EU@K1-hOv=dVarNof=|gJb2~7ah`JxqI`Ne-_(fHIVYr@l= zZgo~eRP@}iz1IuzGV}x@1Yg$%ODj=Yo^;xDpZM7z?zY8n;aj3ofW*x3Wq;J>J%^Dtf;m!q> zw16q$J=OeO)wf}98NY-V&&_|6`X++7B-{_f%DZ2PF2f@Gc7Z7Pd7ldf?mDo0bM1}I zn)u}qiWnJ=U%8a>nfRh`uR<`}g6D&Qqd+8*wjk+6(?Xa{vc~e6gbYcj9Op1~R@~x}^Q8`Onrw62?qSB-3fhn}uA~ER+vzw;HhFz` zl>rCtSDbq^@dx29I@rTBc^ze;KY|m)B z3xKkPG%;T%#b=lNUo}mQ+y=9qF}EhPBFo<#OT3F^oglm+zTZ zeBx797?eCpc$y<1I802A7Q1+qMgDpH<`3I2J77#;s&qy41Us3v799AY*!hNI8zs^O z-Y8yQ#-3i2H`vY>EP5Ny9dE8C+c|a=lNhM45IG@?UHPfP(5{ZYEZh4VzTs}DLZ{S2 z)Z8}nQ^!pOQ5xLMJcrMT$>C{_wP9#%${bio>K&z3+wA^;QVZVVrZPO=WGrnW~B zwHjF~07HKim7VYe#i!UuM#?s5Z-7Yzy&zapZBxt!x#w0f?Nc!wfh5+jF`d=#_>0^R zH>{uOU%F;%OSA9Q+2{qfQbDE%IwtF=)M}fyLLlKz)HhMx+oJ^tHAA zct~VVl5d|Tz$2Kzpv5}lj_k0tXDajjIIb5d{zIkUWh0sgH8Ct#KpbZ{fo#x}w_h_A zksM6$ri|;OK(xSk-PQ%JeeoV>UVoor@K=`bM`1q4d%1n+xaH^W-xM>pS=MQz@&2PVXzgX6aFL#h(Ao zeScnwz)1BcsnECgeW3}kxNPSWk#@&1FyS;h>ZT;e;G_B2N8MR-rlCA{bVx+pA4DwB zW&8N?Ey?E=5oO7uNb62dv%0Cgm7Cxen1{-5>dhiJ61!dS+h>P~E6F;V z%o~;lY&{#k+oP@8=ARDIFthtY%jjFTT*}dv3aYn5Q+@pSIqyyaL$39%!c9dWWg0r9 z8+Iv;>F>5kXO<_!UcqEv>6zRM;>YLY7|%A%TdJjK8Ks7XDO#2z`>11Q5VFrmOT@;K zU@G*U|8ymWe$`t&4#{3JoDwiQFc5&C=!lzUVB z#ucDGro1g=-59E)!Wnsk7ex)(4{HBt=XB}zDpU=4w3l1tbP+fr;sSHH^?5TtQvT*MI9hFFT4z5eu9K<2a2WypZ8V|Ugw&g{_6ZNDW~D`Z^Qn_41Aob_ z{CC42niUJ4Q(@?kc!pA%MOWvhxg!owld83!q(;M{>u@(9SYliWl-*ot70{GDR9_iw zrq(8uko#nB;|_Fd>4xIOaVBT0!uonzm)N7iCh;4vMj3^NgX>pY`Fd22VqpHTiV~KiLK+%VW!v)qOMvoy{9dodN**BG}Qx& z%~3GafY~#0HusMJ@pRs%+d=^p-}q=TghCGGm8SZ;y+vMdG}t~MmcN1(OHNHH;hY&m zm9eIt-A&SD=uj*Fb}~x7BOz{@J$FB>EnNYlidcbAF_civdb*kw zrBRkd`u#`Z#{%MMxm{lW3CJgI870I6I{E|E1YUcj{YoIlk diff --git a/source/apploader.c b/source/apploader.c index 7cc23b3..df8bdd0 100644 --- a/source/apploader.c +++ b/source/apploader.c @@ -17,6 +17,7 @@ #include "gettext.h" #include "menu.h" #include "dolmenu.h" +#include "deflicker.h" /* Apploader function pointers */ typedef int (*app_main)(void **dst, int *size, int *offset); @@ -291,8 +292,7 @@ s32 Apploader_Run(entry_point *entry) TIME.size += appldr_len; // used mem range by the loader - //void *mem_start = (void*)0x80b00000; // as set in Makefile - void *mem_start = (void*)0x80a80000; // as set in Makefile + void *mem_start = (void*)0x80a50000; // as set in Makefile void *mem_end = memalign(32,32); //printf("malloc = %p sta = %p\n", mem, &ret); @@ -753,6 +753,54 @@ void maindolpatches(void *dst, int len) if (!CFG.disable_pop_patch) { PrinceOfPersiaPatch(); } + + // Deflicker filter patch + if (CFG.game.deflicker == DEFLICKER_ON_LOW) + { + patch_vfilters(dst, len, vfilter_low); + patch_vfilters_rogue(dst, len, vfilter_low); + } + else if (CFG.game.deflicker == DEFLICKER_ON_MEDIUM) + { + patch_vfilters(dst, len, vfilter_medium); + patch_vfilters_rogue(dst, len, vfilter_medium); + } + else if (CFG.game.deflicker == DEFLICKER_ON_HIGH) + { + patch_vfilters(dst, len, vfilter_high); + patch_vfilters_rogue(dst, len, vfilter_high); + } + else if (CFG.game.deflicker != DEFLICKER_DEFAULT) + { + patch_vfilters(dst, len, vfilter_off); + patch_vfilters_rogue(dst, len, vfilter_off); + // This might break fade and brightness effects + if (CFG.game.deflicker == DEFLICKER_OFF_EXTENDED) + deflicker_patch(dst, len); + } + + // 480p Pixel Fix + if (CFG.game.fix_480p) { + PatchFix480p(); + } + + // Dithering patch + if (CFG.game.dithering) { + dithering_patch(dst, len); + } + + // Framebuffer width patch + if (CFG.game.fix_fb) { + framebuffer_patch(dst, len); + } + +#ifdef DEBUG_PATCH + // wait to read debug output + printf_(gt("Press any button...")); + printf("\n"); + Wpad_WaitButtons(); +#endif + // Nintendo Wi-Fi Connection (WFC) patch if (CFG.game.private_server) { NoSSLPatch(dst, len); diff --git a/source/cfg.c b/source/cfg.c index 7a4c7c4..13f62cb 100644 --- a/source/cfg.c +++ b/source/cfg.c @@ -484,6 +484,17 @@ struct TextMap map_private_server[] = { NULL, -1 } }; +struct TextMap map_deflicker[] = +{ + { "Defaults", 0 }, + { "OFF (Safe)", 1 }, + { "OFF (Extended)", 2 }, + { "ON (Low)", 3 }, + { "ON (Medium)", 4 }, + { "ON (High)", 5 }, + { NULL, -1 } +}; + struct playStat { char id[7]; s32 playCount; @@ -1423,6 +1434,10 @@ void CFG_Default() CFG.game.alt_controller_cfg = 0; CFG.game.rem_speed_limit = 0; CFG.game.private_server = 0; //off + CFG.game.deflicker = 0; //default game settings + CFG.game.fix_480p = 0; //off + CFG.game.dithering = 0; //default game settings + CFG.game.fix_fb = 0; //default game settings cfg_ios_set_idx(DEFAULT_IOS_IDX); // all other game settings are 0 (memset(0) above) STRCOPY(CFG.sort_ignore, "A,An,The"); @@ -2508,6 +2523,10 @@ void cfg_set_game(char *name, char *val, struct Game_CFG *game_cfg) cfg_map_auto("hooktype", map_hook, &game_cfg->hooktype); cfg_int_max("write_playlog", &game_cfg->write_playlog, 3); cfg_int_max("private_server", &game_cfg->private_server, 3); + cfg_int_max("deflicker", &game_cfg->deflicker, 5); + cfg_bool("fix_480p", &game_cfg->fix_480p); + cfg_bool("dithering", &game_cfg->dithering); + cfg_bool("fix_fb", &game_cfg->fix_fb); } @@ -3286,6 +3305,10 @@ bool CFG_Save_Settings(int verbose) SAVE_BOOL(alt_controller_cfg); SAVE_BOOL(rem_speed_limit); SAVE_NUM(private_server); + SAVE_NUM(deflicker); + SAVE_BOOL(fix_480p); + SAVE_BOOL(dithering); + SAVE_BOOL(fix_fb); if (game_cfg->clean == CFG_CLEAN_OFF) { SAVE_STR("clear_patches", "0"); } else if (game_cfg->clean == CFG_CLEAN_ON) { diff --git a/source/cfg.h b/source/cfg.h index 0bb86ac..77296b0 100644 --- a/source/cfg.h +++ b/source/cfg.h @@ -269,6 +269,10 @@ struct Game_CFG int alt_controller_cfg; int rem_speed_limit; int private_server; + int deflicker; + int fix_480p; + int dithering; + int fix_fb; }; struct Game_CFG_2 @@ -750,6 +754,7 @@ extern struct TextMap map_channel_boot[]; extern struct TextMap map_gc_boot[]; extern struct TextMap map_mem_card_size[]; extern struct TextMap map_private_server[]; +extern struct TextMap map_deflicker[]; extern char *names_vpatch[CFG_VIDEO_PATCH_NUM]; extern u8 cIOS_base[]; diff --git a/source/deflicker.c b/source/deflicker.c new file mode 100644 index 0000000..3e6e324 --- /dev/null +++ b/source/deflicker.c @@ -0,0 +1,184 @@ +/* + * Deflicker filter patching by wiidev (blackb0x @ GBAtemp) + */ + +#include +#include +#include +#include +#include + +#ifdef DEBUG_PATCH +#define debug_printf(fmt, args...) \ + printf(fmt, ##args) +#else +#define debug_printf(fmt, args...) +#endif + +static u8 PATTERN[12][2] = { + {6, 6}, {6, 6}, {6, 6}, + {6, 6}, {6, 6}, {6, 6}, + {6, 6}, {6, 6}, {6, 6}, + {6, 6}, {6, 6}, {6, 6} +}; + +static u8 PATTERN_AA[12][2] = { + {3, 2}, {9, 6}, {3, 10}, + {3, 2}, {9, 6}, {3, 10}, + {9, 2}, {3, 6}, {9, 10}, + {9, 2}, {3, 6}, {9, 10} +}; + +// Patch known and unknown vfilters within GXRModeObj structures +void patch_vfilters(u8 *addr, u32 len, u8 *vfilter) +{ + u8 *addr_start = addr; + while (len >= sizeof(GXRModeObj)) + { + GXRModeObj *vidmode = (GXRModeObj *)addr_start; + if ((memcmp(vidmode->sample_pattern, PATTERN, 24) == 0 || memcmp(vidmode->sample_pattern, PATTERN_AA, 24) == 0) && + (vidmode->fbWidth == 640 || vidmode->fbWidth == 608 || vidmode->fbWidth == 512) && + (vidmode->field_rendering == 0 || vidmode->field_rendering == 1) && + (vidmode->aa == 0 || vidmode->aa == 1)) + { + debug_printf("Replaced vfilter %02x%02x%02x%02x%02x%02x%02x @ %p (GXRModeObj)\n", + vidmode->vfilter[0], vidmode->vfilter[1], vidmode->vfilter[2], vidmode->vfilter[3], + vidmode->vfilter[4], vidmode->vfilter[5], vidmode->vfilter[6], addr_start); + memcpy(vidmode->vfilter, vfilter, 7); + addr_start += (sizeof(GXRModeObj) - 4); + len -= (sizeof(GXRModeObj) - 4); + } + addr_start += 4; + len -= 4; + } +} + +// Patch rogue vfilters found in some games +void patch_vfilters_rogue(u8 *addr, u32 len, u8 *vfilter) +{ + u8 known_vfilters[7][7] = { + {8, 8, 10, 12, 10, 8, 8}, // Ntsc480ProgSoft + {4, 8, 12, 16, 12, 8, 4}, // Ntsc480ProgAa + {7, 7, 12, 12, 12, 7, 7}, // Mario Kart Wii + {5, 5, 15, 14, 15, 5, 5}, // Mario Kart Wii + {4, 4, 15, 18, 15, 4, 4}, // Sonic Colors + {4, 4, 16, 16, 16, 4, 4}, // DKC Returns + {2, 2, 17, 22, 17, 2, 2} + }; + u8 *addr_start = addr; + u8 *addr_end = addr + len - 8; + while (addr_start <= addr_end) + { + u8 known_vfilter[7]; + int i; + for (i = 0; i < 7; i++) + { + int x; + for (x = 0; x < 7; x++) + known_vfilter[x] = known_vfilters[i][x]; + if (!addr_start[7] && memcmp(addr_start, known_vfilter, 7) == 0) + { + debug_printf("Replaced vfilter %02x%02x%02x%02x%02x%02x%02x @ %p\n", addr_start[0], addr_start[1], + addr_start[2], addr_start[3], addr_start[4], addr_start[5], addr_start[6], addr_start); + memcpy(addr_start, vfilter, 7); + addr_start += 7; + break; + } + } + addr_start += 1; + } +} + +// Patch GXSetCopyFilter to disable the deflicker filter +void deflicker_patch(u8 *addr, u32 len) +{ + u32 SearchPattern[18] = { + 0x3D20CC01, 0x39400061, 0x99498000, + 0x2C050000, 0x38800053, 0x39600000, + 0x90098000, 0x38000054, 0x39800000, + 0x508BC00E, 0x99498000, 0x500CC00E, + 0x90698000, 0x99498000, 0x90E98000, + 0x99498000, 0x91098000, 0x41820040}; + u8 *addr_start = addr; + u8 *addr_end = addr + len - sizeof(SearchPattern); + while (addr_start <= addr_end) + { + if (memcmp(addr_start, SearchPattern, sizeof(SearchPattern)) == 0) + { + *((u32 *)addr_start + 17) = 0x48000040; // Change beq to b + debug_printf("Patched GXSetCopyFilter @ %p\n", addr_start); + return; + } + addr_start += 4; + } +} + +// Patch Dithering +void dithering_patch(u8 *addr, u32 len) +{ + u32 SearchPattern[10] = { + 0x3C80CC01, 0x38A00061, 0x38000000, + 0x80C70220, 0x5066177A, 0x98A48000, + 0x90C48000, 0x90C70220, 0xB0070002, + 0x4E800020}; + u8 *addr_start = addr; + u8 *addr_end = addr + len - sizeof(SearchPattern); + while (addr_start <= addr_end) + { + if (memcmp(addr_start, SearchPattern, sizeof(SearchPattern)) == 0) + { + *((u32 *)addr_start - 1) = 0x48000028; + debug_printf("Patched Dithering @ %p\n", addr_start - 1); + return; + } + addr_start += 4; + } +} + +// Patch Framebuffer Width +void framebuffer_patch(void *addr, u32 len) +{ + u8 SearchPattern[32] = { + 0x40, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, 0x1C, + 0x28, 0x09, 0x00, 0x03, 0x40, 0x82, 0x00, 0x08, + 0x48, 0x00, 0x00, 0x10, 0x2C, 0x03, 0x00, 0x00, + 0x40, 0x82, 0x00, 0x08, 0x54, 0xA5, 0x0C, 0x3C}; + u8 *addr_start = (u8 *)addr; + u8 *addr_end = addr_start + len - sizeof(SearchPattern); + while (addr_start <= addr_end) + { + if (memcmp(addr_start, SearchPattern, sizeof(SearchPattern)) == 0) + { + if (addr_start[-0x70] == 0xA0 && addr_start[-0x6E] == 0x00 && addr_start[-0x6D] == 0x0A) + { + if (addr_start[-0x44] == 0xA0 && addr_start[-0x42] == 0x00 && addr_start[-0x41] == 0x0E) + { + u8 reg_a = (addr_start[-0x6F] >> 5); + u8 reg_b = (addr_start[-0x43] >> 5); + + // Patch to the framebuffer resolution + addr_start[-0x41] = 0x04; + + // Center the image + void *offset = addr_start - 0x70; + + u32 old_heap_ptr = *(u32 *)0x80003110; + *(u32 *)0x80003110 = old_heap_ptr - 0x40; + u32 heap_space = old_heap_ptr - 0x40; + + u32 org_address = (addr_start[-0x70] << 24) | (addr_start[-0x6F] << 16); + *(u32 *)(heap_space + 0x00) = org_address | 4; + *(u32 *)(heap_space + 0x04) = 0x200002D0 | (reg_b << 21) | (reg_a << 16); + *(u32 *)(heap_space + 0x08) = 0x38000002 | (reg_a << 21); + *(u32 *)(heap_space + 0x0C) = 0x7C000396 | (reg_a << 21) | (reg_b << 16) | (reg_a << 11); + + *(u32 *)offset = 0x48000000 + ((heap_space - (u32)offset) & 0x3ffffff); + *(u32 *)(heap_space + 0x10) = 0x48000000 + ((((u32)offset + 0x04) - (heap_space + 0x10)) & 0x3ffffff); + debug_printf("Patched resolution. Branched from 0x%x to 0x%x\n", (u32) offset, (u32) heap_space); + return; + } + } + } + addr_start += 4; + } +} \ No newline at end of file diff --git a/source/deflicker.h b/source/deflicker.h new file mode 100644 index 0000000..e0b8e8c --- /dev/null +++ b/source/deflicker.h @@ -0,0 +1,24 @@ +/* + * Deflicker filter patching by wiidev (blackb0x @ GBAtemp) + */ + +enum +{ + DEFLICKER_DEFAULT, + DEFLICKER_OFF, + DEFLICKER_OFF_EXTENDED, + DEFLICKER_ON_LOW, + DEFLICKER_ON_MEDIUM, + DEFLICKER_ON_HIGH +}; + +u8 vfilter_off[7] = {0, 0, 21, 22, 21, 0, 0}; +u8 vfilter_low[7] = {4, 4, 16, 16, 16, 4, 4}; +u8 vfilter_medium[7] = {4, 8, 12, 16, 12, 8, 4}; +u8 vfilter_high[7] = {8, 8, 10, 12, 10, 8, 8}; + +void patch_vfilters(u8 *addr, u32 len, u8 *vfilter); +void patch_vfilters_rogue(u8 *addr, u32 len, u8 *vfilter); +void deflicker_patch(u8 *addr, u32 len); +void dithering_patch(u8 *addr, u32 len); +void framebuffer_patch(void *addr, u32 len); \ No newline at end of file diff --git a/source/guimenu.c b/source/guimenu.c index dbf2194..140c536 100644 --- a/source/guimenu.c +++ b/source/guimenu.c @@ -478,6 +478,10 @@ struct W_GameCfg Widget *alt_controller_cfg; Widget *rem_speed_limit; Widget *private_server; + Widget *deflicker; + Widget *fix_480p; + Widget *dithering; + Widget *fix_fb; } wgame; @@ -1160,6 +1164,10 @@ void InitGameOptionsPage(Widget *pp, int bh) char *names_private_server[num_private_server]; num_private_server = map_to_list(map_private_server, num_private_server, names_private_server); + int num_deflicker = map_get_num(map_deflicker); + char *names_deflicker[num_deflicker]; + num_deflicker = map_to_list(map_deflicker, num_deflicker, names_deflicker); + ww = wgui_add_game_opt(op, gt("Language:"), CFG_LANG_NUM, languages); BIND_OPT(language); @@ -1218,7 +1226,19 @@ void InitGameOptionsPage(Widget *pp, int bh) ww = wgui_add_game_opt(op, gt("Private server:"), num_private_server, names_private_server); BIND_OPT(private_server); - + + ww = wgui_add_game_opt(op, gt("Fix 480p:"), 2, NULL); + BIND_OPT(fix_480p); + + ww = wgui_add_game_opt(op, gt("Deflicker Filter:"), num_deflicker, names_deflicker); + BIND_OPT(deflicker); + + ww = wgui_add_game_opt(op, gt("Disable Dithering:"), 2, NULL); + BIND_OPT(dithering); + + ww = wgui_add_game_opt(op, gt("Framebuffer width:"), 2, NULL); + BIND_OPT(fix_fb); + pos_move_to(pp, PAD0, -bh); pos_pad(pp, PAD0); pos_columns(pp, 4, SIZE_FULL); diff --git a/source/menu.c b/source/menu.c index 0212375..f29d3f9 100644 --- a/source/menu.c +++ b/source/menu.c @@ -212,6 +212,16 @@ char *str_private_server[4] = gts("Custom") }; +char *str_deflicker[6] = +{ + gts("Defaults"), + gts("OFF (Safe)"), + gts("OFF (Extended)"), + gts("ON (Low)"), + gts("ON (Medium)"), + gts("ON (High)") +}; + int Menu_Global_Options(); int Menu_Game_Options(); void Switch_Favorites(bool enable); @@ -1836,7 +1846,7 @@ int Menu_Boot_Options(struct discHdr *header, bool disc) { int opt_saved; //int opt_ios_reload; int opt_language, opt_video, opt_video_patch, opt_vidtv, opt_padhook, opt_nand_emu; - int opt_mem_card_emu, opt_mem_card_size, opt_country_patch, opt_anti_002, opt_ocarina, opt_wide_screen, opt_nodisc, opt_ntsc_j_patch, opt_screenshot, opt_private_server; + int opt_mem_card_emu, opt_mem_card_size, opt_country_patch, opt_anti_002, opt_ocarina, opt_wide_screen, opt_nodisc, opt_ntsc_j_patch, opt_screenshot, opt_private_server, opt_deflicker, opt_fix_480p, opt_dithering, opt_fix_fb; f32 size = 0.0; int redraw_cover = 0; int i; @@ -1882,7 +1892,7 @@ int Menu_Boot_Options(struct discHdr *header, bool disc) { game_cfg = &game_cfg2->curr; struct Menu menu; - int NUM_OPT = 20; + int NUM_OPT = 24; if (header->magic == GC_GAME_ON_DRIVE) NUM_OPT = 18; if (header->magic == CHANNEL_MAGIC) NUM_OPT = 19; char active[NUM_OPT]; @@ -1927,6 +1937,10 @@ int Menu_Boot_Options(struct discHdr *header, bool disc) { opt_ntsc_j_patch = game_cfg->ntsc_j_patch; opt_nand_emu = game_cfg->nand_emu; opt_private_server = game_cfg->private_server; + opt_deflicker = game_cfg->deflicker; + opt_fix_480p = game_cfg->fix_480p; + opt_dithering = game_cfg->dithering; + opt_fix_fb = game_cfg->fix_fb; if (game_cfg->clean == CFG_CLEAN_ALL) { opt_language = CFG_LANG_CONSOLE; @@ -1943,6 +1957,10 @@ int Menu_Boot_Options(struct discHdr *header, bool disc) { opt_nodisc = 0; opt_screenshot = 0; opt_private_server = 0; + opt_deflicker = 0; + opt_fix_480p = 0; + opt_dithering = 0; + opt_fix_fb = 0; active[1] = 0; // language active[2] = 0; // video active[3] = 0; // video_patch @@ -2174,6 +2192,14 @@ int Menu_Boot_Options(struct discHdr *header, bool disc) { PRINT_OPT_A(gt("Savegame:"), gt("Dump savegame")); if (menu_window_mark(&menu)) PRINT_OPT_A(gt("Private server:"), gt(str_private_server[opt_private_server])); + if (menu_window_mark(&menu)) + PRINT_OPT_B(gt("Fix 480p:"), opt_fix_480p); + if (menu_window_mark(&menu)) + PRINT_OPT_A(gt("Deflicker Filter:"), gt(str_deflicker[opt_deflicker])); + if (menu_window_mark(&menu)) + PRINT_OPT_B(gt("Disable Dithering:"), opt_dithering); + if (menu_window_mark(&menu)) + PRINT_OPT_B(gt("Framebuffer width:"), opt_fix_fb); } DefaultColor(); @@ -2445,6 +2471,18 @@ int Menu_Boot_Options(struct discHdr *header, bool disc) { case 19: CHANGE(game_cfg->private_server, 3); break; + case 20: + CHANGE(game_cfg->fix_480p, 1); + break; + case 21: + CHANGE(game_cfg->deflicker, 5); + break; + case 22: + CHANGE(game_cfg->dithering, 1); + break; + case 23: + CHANGE(game_cfg->fix_fb, 1); + break; } } if (buttons & CFG.button_confirm.mask) { diff --git a/source/patchcode.c b/source/patchcode.c index 5b14634..8d1c99d 100644 --- a/source/patchcode.c +++ b/source/patchcode.c @@ -12,7 +12,12 @@ //#include "fwrite_patch.h" //#include "fwrite_patch_slota.h" //#include "main.h" +#ifdef DEBUG_PATCH +#define debug_printf(fmt, args...) \ + printf(fmt, ##args) +#else #define debug_printf(fmt, args...) +#endif bool hookpatched = false; @@ -1077,3 +1082,102 @@ u32 do_new_wiimmfi() { // returns 0 when all patching is done and game is ready to be booted. return 0; } + +/* + * 480p Pixel Fix Patch by leseratte + * + * fix for a Nintendo Revolution SDK bug found by Extrems affecting early Wii console when using 480p video mode. + * https://shmups.system11.org/viewtopic.php?p=1361158#p1361158 + * https://github.com/ExtremsCorner/libogc-rice/commit/941d687e271fada68c359bbed98bed1fbb454448 + * + */ +void PatchFix480p() +{ + u8 prefix[2] = { 0x4b, 0xff }; + + /// Patch offset: ----------VVVVVVVV + u32 Pattern_MKW[8] = { 0x38000065, 0x9b810019, 0x38810018, 0x386000e0, 0x98010018, 0x38a00002}; + u32 patches_MKW[2] = { 0x38600003, 0x98610019 }; + /// Used by: MKWii, Wii Play, Need for Speed Nitro, Wii Sports, ... + + /// Patch offset: ----------------------------------------------VVVVVVVV + u32 Pattern_NSMB[8] = { 0x38000065, 0x9801001c, 0x3881001c, 0x386000e0, 0x9b81001d, 0x38a00002}; + u32 patches_NSMB[2] = { 0x38a00003, 0x98a1001d }; + /// Used by: New Super Mario Bros, ... + + /* + * Code block that is being patched (in MKW): + * + * 4bffe30d: bl WaitMicroTime + * 38000065: li r0, 0x65 + * 9b810019: stb r28, 25(r1) // store the wrong value (1) + * 38810018: addi r4, r1, 0x18 + * 386000e0: li r3, 0xe0 + * 98010018: stb r0, 24(r1) + * 38a00002: li r5, 2 + * 4bffe73d: bl __VISendI2CData + * + * r28 is a register that is set to 1 at the beginning of the function. + * However, its contents are used elsewhere as well, so we can't just modify this one function. + * + * The following code first searches for one of the patterns above, then replaces the + * "stb r28, 25(r1)" instruction that stores the wrong value on the stack with a branch instead + * That branch branches to the injected custom code ("li r3, 3; stb r3, 25(r1)") that stores the + * correct value (3) instead. At the end of the injected code will be another branch that branches + * back to the instruction after the one that has been replaced (so, to "addi r4, r1, 0x18"). + * r3 can safely be used as a temporary register because its contents will be replaced immediately + * afterwards anyways. + * + */ + + void * offset = NULL; + void * addr = (void*)0x80000000; + u32 len = 0x900000; + + void * patch_ptr = 0 ; + void * a = addr; + + while ((char*)a < ((char*)addr + len)) { + if (memcmp(a, &Pattern_MKW, 6 * 4) == 0) { + // Found pattern? + if (memcmp(a - 4, &prefix, 2) == 0) { + if (memcmp(a + 8*4, &prefix, 2) == 0) { + offset = a + 4; + patch_ptr = &patches_MKW; + break; + } + } + } + else if (memcmp(a, &Pattern_NSMB, 6 * 4) == 0) { + // Found pattern? + if (memcmp(a - 4, &prefix, 2) == 0) { + if (memcmp(a + 8*4, &prefix, 2) == 0) { + offset = a + 16; + patch_ptr = &patches_NSMB; + break; + } + } + } + a+= 4; + } + + + + if (offset == 0) { + // offset is still 0, we didn't find the pattern, return + debug_printf("Didn't find offset for 480p patch!\n"); + return; + } + + // If we are here, we found the offset. Lets grab some space + // from the heap for our patch + u32 old_heap_ptr = *(u32*)0x80003110; + *((u32*)0x80003110) = (old_heap_ptr - 0x20); + u32 heap_space = old_heap_ptr-0x20; + debug_printf("Found offset for 480p patch - create branch from 0x%x to heap (0x%x)\n", (u32) offset, (u32) heap_space); + memcpy((void*)heap_space, patch_ptr, 8); + + *((u32*)offset) = 0x48000000 + (((u32)(heap_space) - ((u32)(offset))) & 0x3ffffff); + *((u32*)((u32)heap_space + 8)) = 0x48000000 + (((u32)((u32)offset + 4) - ((u32)(heap_space + 8))) & 0x3ffffff); + return; +} \ No newline at end of file diff --git a/source/patchcode.h b/source/patchcode.h index d9ead49..f16dc64 100644 --- a/source/patchcode.h +++ b/source/patchcode.h @@ -22,6 +22,9 @@ #ifndef __PATCHCODE_H__ #define __PATCHCODE_H__ +#define STR(X) #X +#define QUOTE(X) STR(X) + // Globals extern u32 hooktype; extern int patched; @@ -30,7 +33,7 @@ extern u32 regionfree; extern bool hookpatched; #define APP_NAME "Cfg USB Loader MOD patched" -#define APP_VERSION "70r78.12" +#define APP_VERSION QUOTE(VERSION) #define PRIVSERV_WIIMMFI "wiimmfi.de" // Function prototypes @@ -41,7 +44,7 @@ void patchdebug(void *addr, u32 len); bool PatchReturnTo(void *Address, int Size, u32 id); void WFCPatch(void *addr, u32 len, const char* domain); u32 do_new_wiimmfi(); -u32 do_new_wiimmfi_nonMKWii(); - +u32 do_new_wiimmfi_nonMKWii(); +void PatchFix480p(); #endif // __PATCHCODE_H__ diff --git a/updates-222.txt b/updates-222.txt index 7b74d01..5e2f877 100644 --- a/updates-222.txt +++ b/updates-222.txt @@ -14,6 +14,19 @@ metaxml= metaxml= metaxml= +release = 70r78.13 +size = 2018688 +date = 2024-09-15 +url = http://cfgusbloader.ntd.homelinux.org/binaries/dol/r12/cfg70r78.13-222.dol +-Internals - changed memory start addres to avoid overlaps +-Graphics - added options for 480p Nintendo Revolution SDK bug fix patch +-Graphics - added options for deflickering settings +-Graphics - added options for disabling dithering +-Graphics - added options for framebuffer width patch +-Languages - Updated KO.lang +-Languages - Updated ZH_CN.lang +-Documentation - Moved to README.md + release = 70r78.12 size = 1908544 date = 2024-09-03 diff --git a/updates.txt b/updates.txt index 319a4ce..18ae236 100644 --- a/updates.txt +++ b/updates.txt @@ -14,6 +14,19 @@ metaxml= metaxml= metaxml= +release = 70r78.13 +size = 2018688 +date = 2024-09-15 +url = http://cfgusbloader.ntd.homelinux.org/binaries/dol/r13/cfg70r78.13.dol +-Internals - changed memory start addres to avoid overlaps +-Graphics - added options for 480p Nintendo Revolution SDK bug fix patch +-Graphics - added options for deflickering settings +-Graphics - added options for disabling dithering +-Graphics - added options for framebuffer width patch +-Languages - Updated KO.lang +-Languages - Updated ZH_CN.lang +-Documentation - Moved to README.md + release = 70r78.12 size = 1908512 date = 2024-09-03