{"id":22654,"date":"2026-10-03T01:46:14","date_gmt":"2026-10-03T01:46:14","guid":{"rendered":"https:\/\/8657085.xyz\/?p=22654"},"modified":"2026-10-03T01:46:14","modified_gmt":"2026-10-03T01:46:14","slug":"super-mario-bros-wonder-is-playing-on-windows-as-rebuilt-native-code","status":"publish","type":"post","link":"https:\/\/8657085.xyz\/?p=22654","title":{"rendered":"Super Mario Bros Wonder Is Playing on Windows as Rebuilt Native Code"},"content":{"rendered":"<p> <div style=\"display: grid; grid-template-columns: 300px 160px; gap: 2px; width: 460px; background: #eee; padding: 2px;\">\r\n\r\n  <!-- \u6574\u884c\u5bbd\u5e7f\u544a -->\r\n  <div style=\"grid-column: 1\/-1; width: 460px; height: 250px; background: #ccc; display: grid; place-items: center;\">\r\n  <script async type=\"application\/javascript\" src=\"https:\/\/a.magsrv.com\/ad-provider.js\"><\/script> \r\n <ins class=\"eas6a97888e2\" data-zoneid=\"5876674\"><\/ins> \r\n <script>(AdProvider = window.AdProvider || []).push({\"serve\": {}});<\/script>\r\n  <\/div>\r\n  <div style=\"grid-column: 1\/-1; width: 460px; height: 90px; background: #ccc; display: grid; place-items: center;\">\r\n  <script async type=\"application\/javascript\" src=\"https:\/\/a.magsrv.com\/ad-provider.js\"><\/script> \r\n <ins class=\"eas6a97888e2\" data-zoneid=\"5876676\"><\/ins> \r\n <script>(AdProvider = window.AdProvider || []).push({\"serve\": {}});<\/script>\r\n  <\/div>\r\n\r\n  <!-- \u5de6\u4fa7\u7ad6\u6392 -->\r\n  <div style=\"height: 250px; background: #ccc; display: grid; place-items: center;\">\r\n  <script async type=\"application\/javascript\" src=\"https:\/\/a.magsrv.com\/ad-provider.js\"><\/script> \r\n <ins class=\"eas6a97888e2\" data-zoneid=\"5876672\"><\/ins> \r\n <script>(AdProvider = window.AdProvider || []).push({\"serve\": {}});<\/script>\r\n  <\/div>\r\n  <div style=\"height: 500px; background: #ccc; display: grid; place-items: center;\">\r\n  <script async type=\"application\/javascript\" src=\"https:\/\/a.magsrv.com\/ad-provider.js\"><\/script> \r\n <ins class=\"eas6a97888e2\" data-zoneid=\"5876680\"><\/ins> \r\n <script>(AdProvider = window.AdProvider || []).push({\"serve\": {}});<\/script>\r\n  <\/div>\r\n\r\n  <!-- \u53f3\u4fa7\u6469\u5929\u697c\uff08\u548c\u5de6\u4fa7\u5b8c\u5168\u5bf9\u9f50\uff09 -->\r\n  <div style=\"grid-row: 3\/5; height: 750px; background: #ccc; display: grid; place-items: center;\">\r\n  <script async type=\"application\/javascript\" src=\"https:\/\/a.magsrv.com\/ad-provider.js\"><\/script> \r\n <ins class=\"eas6a97888e2\" data-zoneid=\"5876678\"><\/ins> \r\n <script>(AdProvider = window.AdProvider || []).push({\"serve\": {}});<\/script>\r\n  <\/div>\r\n  \r\n  <script async type=\"application\/javascript\" src=\"https:\/\/a.magsrv.com\/ad-provider.js\"><\/script> \r\n <ins class=\"eas6a97888e6\" data-zoneid=\"5876682\"><\/ins> \r\n <script>(AdProvider = window.AdProvider || []).push({\"serve\": {}});<\/script>\r\n<\/div><br \/>\n<\/p>\n<div>\n<p><img decoding=\"async\" src=\"https:\/\/images.techeblog.com\/wp-content\/uploads\/2026\/10\/02175604\/super-mario-bros-wonder-native-pc-port-windows.jpg\" alt=\"Super Mario Bros. Wonder Native PC Port Windows\" width=\"960\" height=\"961\"\/><br \/>A laptop with an RTX 3050 is running Super Mario Bros. Wonder as a Windows program, and a clip from a developer called Belmante is the clearest look yet at how far that work has come. World 1-1 plays at close to 60 frames a second. Menus, character select, the opening cutscene, and the world map all line up with an earlier Mac build of the same project. Sound comes through the game\u2019s own audio path, routed on Windows through XAudio2.<\/p>\n<p><span id=\"more-260224\"\/><br \/><iframe title=\"Super Mario Bros. Wonder now running natively on Windows too, NVN \u2192 Vulkan on an RTX 3050\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/CgcneAuDi5o?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><noscript><iframe title=\"Super Mario Bros. Wonder now running natively on Windows too, NVN \u2192 Vulkan on an RTX 3050\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/CgcneAuDi5o?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/noscript><br \/>The 2023 Flower Kingdom game port to native PC software is already well along, even before the game has begun. ARM64 instructions from the console version are meticulously recompiled ahead of time to function as ordinary machine code. The equation has no intermediate emulators, translators, or interpreters. The identical C++ code that ran on a Mac is now being rebuilt on Windows using clang-cl.<\/p>\n<p>\nGraphically, things are a little more tricky. The game talks with the Switch using Nintendo\u2019s NVN graphics interface, which is also being updated to be compatible. Instead of NVN providing the graphics, a custom layer intercepts the requests and retargets them to the Windows PC as Vulkan draws; on the Windows laptop, this layer only communicates with the NVIDIA driver. There\u2019s no fancy MoltenVK in the chain here, unlike on the Mac.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/images.techeblog.com\/wp-content\/uploads\/2026\/10\/02180250\/super-mario-bros-wonder-native-pc-port-windows-1.jpg\" alt=\"Super Mario Bros. Wonder Native PC Port Windows\" width=\"1280\" height=\"720\"\/><br \/>As it turned out, switching the game to a non-Apple machine revealed a few bugs that had been lurking on the Mac. Wonder, the game, stores key art and model textures in ASTC format, which is not supported by most desktop NVIDIA GPUs. And this resulted in a serious problem: the driver simply crashed when asked to make those images. So, a special decoder has been implemented that takes the ASTC and decodes it on the CPU during upload time, which was written out of the Khronos specification and double-checked against a second independent decoder for good measure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.techeblog.com\/wp-content\/uploads\/2026\/10\/02180259\/super-mario-bros-wonder-native-pc-port-windows-2.jpg\" alt=\"Super Mario Bros. Wonder Native PC Port Windows\" width=\"1280\" height=\"720\"\/><br \/>Plus, Metal had been adding barriers between render runs on its own, but NVIDIA overlapped those passes, resulting in enormous holes in the heads-up display until he placed barriers as well, which worked at no obvious cost. Another big issue that needed to be solved was upload ring overflows, which resulted in characters being painted black and green. To fix the stutter that happens when new objects appear on the screen, he implemented an on-disk pipeline cache and multithreaded ASTC decoding.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.techeblog.com\/wp-content\/uploads\/2026\/10\/02180305\/super-mario-bros-wonder-native-pc-port-windows-3.jpg\" alt=\"Super Mario Bros. Wonder Native PC Port Windows\" width=\"1280\" height=\"720\"\/><br \/>The next item on the to-do list is to get the game to operate on the Intel UHD 770, an integrated chip comparable to the Switch\u2019s Tegra X1, and that\u2019s basically just a sanity check for how light the port can be. For the time being, the repository remains secret, but there are plans to make the recompiler code, the NVN-to-Vulkan layer, and NVN notes available to the general public at some point. Keeping track of notes and processes is part of the build process, which includes employing an AI tool called FlowForge. Each bug receives a write-up that summarizes what was wrong, why it was wrong, what we did to solve it, and how we discovered the problem.<br \/><span>[Source]<\/span><\/p>\n<\/p><\/div>\n<p><!-- \u603b\u5bb9\u5668\uff1a\u6700\u5927\u5bbd908px Grid\u7d27\u51d1\u5e03\u5c40 -->\r\n<div style=\"display: grid; grid-template-columns: 728px 160px; gap:2px; width:908px; background:#eee; padding:2px;\">\r\n\r\n  <!-- \u901a\u680f\u9876\u90e8\uff1a\u6700\u5927\u6a2a\u5e45 908x258 \u8de8\u6574\u884c -->\r\n  <div style=\"grid-column:1\/-1; height:258px; background:#ff6b6b; display:grid; place-items:center;\">\r\n    <!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114307\" data-width=\"908\" data-height=\"258\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114307});<\/script>\r\n<!--JuicyAds END-->\r\n  <\/div>\r\n\r\n  <!-- \u7b2c\u4e8c\u901a\u680f\uff1a728\u00d790 \u901a\u680f -->\r\n  <div style=\"grid-column:1\/-1; height:90px; background:#4ecdc4; display:grid; place-items:center;\">\r\n    <!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114300\" data-width=\"728\" data-height=\"90\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114300});<\/script>\r\n<!--JuicyAds END-->\r\n  <\/div>\r\n\r\n  <!-- \u5de6\u4fa7\u4e3b\u680f\uff1a\u591a\u5e7f\u544a\u5806\u53e0 -->\r\n  <div style=\"display:grid; gap:2px;\">\r\n    <div style=\"height:60px; background:#45b7d1; display:grid; place-items:center;\">\r\n\t<!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114308\" data-width=\"468\" data-height=\"60\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114308});<\/script>\r\n<!--JuicyAds END-->\r\n\t<\/div>\r\n    <div style=\"height:250px; background:#ffe066; display:grid; place-items:center;\">\r\n\t<!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114299\" data-width=\"300\" data-height=\"250\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114299});<\/script>\r\n<!--JuicyAds END-->\r\n\t<\/div>\r\n    <div style=\"height:250px; background:#ff9ecd; display:grid; place-items:center;\">\r\n\t<!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114305\" data-width=\"250\" data-height=\"250\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114305});<\/script>\r\n<!--JuicyAds END-->\r\n\t<\/div>\r\n    <div style=\"height:139px; background:#c792ea; display:grid; place-items:center;\">\r\n\t<!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114302\" data-width=\"133\" data-height=\"139\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114302});<\/script>\r\n<!--JuicyAds END-->\r\n\t<\/div>\r\n    <div style=\"height:125px; background:#91e7ac; display:grid; place-items:center;\">\r\n\t\r\n<!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114303\" data-width=\"125\" data-height=\"125\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114303});<\/script>\r\n<!--JuicyAds END-->\r\n\t<\/div>\r\n  <\/div>\r\n\r\n  <!-- \u53f3\u4fa7\u7ad6\u680f\uff1a160\u00d7600 \u6574\u5217\u9ad8\u5e7f\u544a -->\r\n  <div style=\"grid-row:3\/8; height:600px;  display:grid; place-items:center;\">\r\n    <!-- JuicyAds v3.0 -->\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async src=\"https:\/\/poweredby.jads.co\/js\/jads.js\"><\/script>\r\n<ins id=\"1114301\" data-width=\"160\" data-height=\"600\"><\/ins>\r\n<script type=\"text\/javascript\" data-cfasync=\"false\" async>(adsbyjuicy = window.adsbyjuicy || []).push({'adzone':1114301});<\/script>\r\n<!--JuicyAds END-->\r\n  <\/div>\r\n\r\n<\/div><br \/>\n<br \/> Super Mario Bros Wonder Is Playing on Windows as Rebuilt Native Code<br \/>\n<br \/>#Super #Mario #Bros #Playing #Windows #Rebuilt #Native #Code<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A laptop with an RTX 3050 is running Super Mario Bros. Wonder as a Windows&#8230;<\/p>\n","protected":false},"author":1,"featured_media":22655,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[5913,363,2998,5864,1280,6562,1436,8541],"class_list":["post-22654","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-bros","tag-code","tag-mario","tag-native","tag-playing","tag-rebuilt","tag-super","tag-windows"],"featured_image_urls":{"full":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows.jpg",960,961,false],"thumbnail":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-150x150.jpg",150,150,true],"medium":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-300x300.jpg",300,300,true],"medium_large":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-768x769.jpg",640,641,true],"large":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows.jpg",640,641,false],"1536x1536":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows.jpg",960,961,false],"2048x2048":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows.jpg",960,961,false],"covernews-slider-full":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-960x715.jpg",960,715,true],"covernews-slider-center":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-800x500.jpg",800,500,true],"covernews-featured":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows.jpg",960,961,false],"covernews-medium":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-540x340.jpg",540,340,true],"covernews-medium-square":["https:\/\/8657085.xyz\/wp-content\/uploads\/2026\/10\/super-mario-bros-wonder-native-pc-port-windows-400x250.jpg",400,250,true]},"author_info":{"display_name":"admin","author_link":"https:\/\/8657085.xyz\/?author=1"},"category_info":"<a href=\"https:\/\/8657085.xyz\/?cat=8\" rel=\"category\">Tech<\/a>","tag_info":"Tech","comment_count":"0","_links":{"self":[{"href":"https:\/\/8657085.xyz\/index.php?rest_route=\/wp\/v2\/posts\/22654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/8657085.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/8657085.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/8657085.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/8657085.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22654"}],"version-history":[{"count":0,"href":"https:\/\/8657085.xyz\/index.php?rest_route=\/wp\/v2\/posts\/22654\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/8657085.xyz\/index.php?rest_route=\/wp\/v2\/media\/22655"}],"wp:attachment":[{"href":"https:\/\/8657085.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/8657085.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/8657085.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}