{"id":813,"date":"2026-06-04T14:34:19","date_gmt":"2026-06-04T14:34:19","guid":{"rendered":"https:\/\/jackharvest.com\/?p=813"},"modified":"2026-09-13T23:04:04","modified_gmt":"2026-09-13T23:04:04","slug":"rune-factory-guardians-of-azuma-ultrawide-fix","status":"publish","type":"post","link":"https:\/\/jackharvest.com\/index.php\/2026\/06\/04\/rune-factory-guardians-of-azuma-ultrawide-fix\/","title":{"rendered":"Rune Factory: Guardians of Azuma Ultrawide Fix \u2013 A 21:9 &#038; 32:9 Patcher"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Rune Factory: Guardians of Azuma<\/em> will happily let you select <code>3440\u00d71440<\/code> in its graphics menu. Then it draws the game in a 16:9 box in the middle of your ultrawide anyway, with permanent black bars down both sides. That\u2019s not a resolution bug \u2014 it\u2019s a hardcoded aspect-ratio lock, and this patcher takes it out.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/rune-factory-ultrawide-featured.jpg\" alt=\"Rune Factory: Guardians of Azuma ultrawide patch \u2014 16:9 forced vs 21:9 patched\" class=\"wp-image-768\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/rune-factory-ultrawide-featured.jpg 1200w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/rune-factory-ultrawide-featured-300x158.jpg 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/rune-factory-ultrawide-featured-1024x538.jpg 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/rune-factory-ultrawide-featured-768x403.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/jackharvest\/rune-factory-azuma-ultrawide-patcher\">Get the patcher<\/a><\/div>\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/jackharvest\/rune-factory-azuma-ultrawide-patcher\/raw\/main\/rune_factory_azuma_ultrawide_patcher.py\">Download the script<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What it fixes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The 16:9 lock.<\/strong> The engine\u2019s camera has <code>bConstrainAspectRatio<\/code> set to 1.7777 (16:9). The patcher finds that float constant in the shipping executable and replaces it with your ratio.<\/li>\n\n<li><strong>The supersampling side-effect.<\/strong> After patching, the game\u2019s resolution picker would choose a supersampled render target on first launch \u2014 4644\u00d71944 on a 3440\u00d71440 monitor, 135% of native. It looked right, but your GPU was doing a lot more work than it needed to. The patcher resets <code>GameUserSettings.ini<\/code> to native.<\/li>\n\n<li><strong>The shop letterbox.<\/strong> Opening the blacksmith, cooking bench, carpenter, medicine or reinforce UI plays a camera animation that slides black bars back in. Version 1.2 clamps it so the bars never appear.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Features<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Presets<\/strong> for 21:9 (3440\u00d71440, 2560\u00d71080) and 32:9 (5120\u00d71440, 3840\u00d71080), or enter any custom width \u00d7 height.<\/li>\n\n<li><strong>Safe backups<\/strong> \u2014 it makes a <code>.bak<\/code> of the original executable and always patches from that clean copy, so re-running is always safe.<\/li>\n\n<li><strong>Revert anytime<\/strong> to the original 16:9 executable.<\/li>\n\n<li><strong>Read-only lock<\/strong> on the patched executable so it isn\u2019t overwritten on launch.<\/li>\n\n<li><strong>Automatic ini repair<\/strong> across Windows and every common Wine\/Proton\/Bottles\/CrossOver\/Whisky path \u2014 also available on its own if that\u2019s all you need.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How to use it<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">All you need is Python 3.7+ (already there on Linux and macOS).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows:<\/strong> drop <code>rune_factory_azuma_ultrawide_patcher.py<\/code> into <code>game\\Game\\Binaries\\Win64\\<\/code> next to the executable, then double-click it or run it with <code>python<\/code>.<\/li>\n\n<li><strong>Linux (Steam\/Proton\/Bottles):<\/strong> copy it into the game\u2019s <code>Binaries\/Win64\/<\/code> folder, <code>chmod +x<\/code> it and run it. It finds the ini file for you.<\/li>\n\n<li><strong>macOS (CrossOver\/Whisky):<\/strong> right-click the game \u2192 Show in Finder, go to <code>game\/Game\/Binaries\/Win64\/<\/code>, and run it from Terminal there.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pick <strong>1<\/strong> for 21:9, <strong>2<\/strong> for 32:9 or <strong>3<\/strong> for custom, launch the game, set your native resolution in Graphics Settings, and enjoy the whole screen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technical details<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The executable contains two slightly different float32 encodings of 16:9 (compiler rounding), and 12 occurrences in total, falling into four groups: camera\/viewport initializers (the main fix), a runtime aspect-ratio override (the UI transitions), resolution selection (the source of the supersampling bug), and a static data table.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Ratio<\/th><th>Bytes (little-endian)<\/th><th>Float<\/th><\/tr><\/thead><tbody><tr><td>16:9 (pattern 1)<\/td><td><code>39 8E E3 3F<\/code><\/td><td>1.77777779<\/td><\/tr><tr><td>16:9 (pattern 2)<\/td><td><code>3B 8E E3 3F<\/code><\/td><td>1.77777803<\/td><\/tr><tr><td>21:9 (3440\u00d71440)<\/td><td><code>8E E3 18 40<\/code><\/td><td>2.38888\u2026<\/td><\/tr><tr><td>32:9 (5120\u00d71440)<\/td><td><code>39 8E 63 40<\/code><\/td><td>3.55555\u2026<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The shop fix is an 18-byte patch to the camera\u2019s per-frame tick: instead of letting the animation write a shrinking ratio down to 1.7778, a <code>maxss<\/code> clamps it to the 21:9 constant already sitting in <code>.rdata<\/code>. The animation still runs internally; the camera just never drops below ultrawide.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Known limitations<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>World map skew:<\/strong> the in-game world map can look skewed at ultrawide \u2014 its coordinate math is authored for 16:9 and never touches the letterbox system. Still investigating.<\/li>\n\n<li><strong>Game updates<\/strong> may overwrite the executable. Just re-run the patcher.<\/li>\n\n<li><strong>Saves<\/strong> are unaffected.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">MIT licensed. The same technique should apply to other Unreal Engine 5 games with a hardcoded 16:9 lock.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Free and open source, and it\u2019s staying that way. If it saved you some time, you can <a href=\"https:\/\/www.buymeacoffee.com\/jackharvest\">buy me a coffee<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rune Factory: Guardians of Azuma lets you pick an ultrawide resolution, then pillarboxes it to 16:9 anyway. This small cross-platform Python patcher removes the lock, fixes the supersampling bug it causes, and stops the shop menus from animating black bars back in.<\/p>\n","protected":false},"author":1,"featured_media":841,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Rune Factory Guardians of Azuma Ultrawide Fix (21:9 \/ 32:9)","_seopress_titles_desc":"Remove the 16:9 lock and black bars in Rune Factory: Guardians of Azuma. A free Python patcher for 21:9, 32:9 or custom aspect ratios on Windows, Linux and Mac.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"Rune Factory Guardians of Azuma ultrawide,Guardians of Azuma 21:9,Rune Factory Azuma black bars,Rune Factory ultrawide fix,UE5 ultrawide patch,32:9","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[79,77],"tags":[146,147,138,144,149,151,143,150,145,148],"class_list":["post-813","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gaming","category-projects","tag-146","tag-147","tag-crossover","tag-guardians-of-azuma","tag-pc-gaming","tag-python","tag-rune-factory","tag-steam-deck","tag-ultrawide","tag-unreal-engine-5"],"_links":{"self":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/comments?post=813"}],"version-history":[{"count":1,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/813\/revisions"}],"predecessor-version":[{"id":814,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/813\/revisions\/814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/media\/841"}],"wp:attachment":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/media?parent=813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/categories?post=813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/tags?post=813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}