{"id":197,"date":"2020-06-27T19:22:17","date_gmt":"2020-06-27T17:22:17","guid":{"rendered":"http:\/\/www.virtualparadise.org\/edwin\/?p=197"},"modified":"2025-01-11T17:54:49","modified_gmt":"2025-01-11T16:54:49","slug":"porting-virtual-paradise-to-the-3ds-part-3","status":"publish","type":"post","link":"https:\/\/www.virtualparadise.org\/edwin\/2020\/06\/porting-virtual-paradise-to-the-3ds-part-3\/","title":{"rendered":"Porting Virtual Paradise to the 3DS (part 3)"},"content":{"rendered":"\n<p>Also see <a href=\"http:\/\/www.virtualparadise.org\/edwin\/2020\/06\/porting-virtual-paradise-to-the-3ds-part-1\/\">part 1<\/a> and <a href=\"http:\/\/www.virtualparadise.org\/edwin\/2020\/06\/porting-virtual-paradise-to-the-3ds-part-2\/\">part 2<\/a> in this series.<\/p>\n\n\n\n<p>Finally it renders something! This took me quite a while to get working. Apparently the 3DS expects some vectors in WZYX ordering&#8230; The wrong ordering caused the projection and view matrix to be incorrect and the result was a blank screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"480\" src=\"http:\/\/www.virtualparadise.org\/edwin\/wp-content\/uploads\/2020\/06\/citra-qt_2020-06-26_13-21-08.png\" alt=\"\" class=\"wp-image-198\"\/><\/figure>\n\n\n\n<p>However, on a real 3DS it looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"240\" src=\"http:\/\/www.virtualparadise.org\/edwin\/wp-content\/uploads\/2020\/06\/2020-06-26_14-53-16.025_top.png\" alt=\"\" class=\"wp-image-199\"\/><\/figure>\n\n\n\n<p>In the emulator I could get quite a bit more working. I added the ability to load 3D models. It doesn&#8217;t download from the object path yet so I copied a pre-filled cache folder to the emulator&#8217;s virtual SD card as a test:<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Virtual Paradise in Citra 3DS emulator\" width=\"584\" height=\"438\" src=\"https:\/\/www.youtube.com\/embed\/RjahQ097Q6E?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>\n<\/div><\/figure>\n\n\n\n<p>There it is, VP with 3D models loading on the 3DS emulator \ud83d\ude42 Of course it is still missing textures, lighting and probably more.<\/p>\n\n\n\n<p>Unfortunately I&#8217;m not sure how to fix it so it runs on a real 3DS. It doesn&#8217;t just have distorted rendering, with the model loading it hangs a few seconds after starting. Unless I get it working, this will be the last part in the series.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Also see part 1 and part 2 in this series. Finally it renders something! This took me quite a while to get working. Apparently the 3DS expects some vectors in WZYX ordering&#8230; The wrong ordering caused the projection and view &hellip; <a href=\"https:\/\/www.virtualparadise.org\/edwin\/2020\/06\/porting-virtual-paradise-to-the-3ds-part-3\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[27],"class_list":["post-197","post","type-post","status-publish","format-standard","hentry","category-development","tag-3ds"],"_links":{"self":[{"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/comments?post=197"}],"version-history":[{"count":6,"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/posts\/197\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/posts\/197\/revisions\/207"}],"wp:attachment":[{"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/categories?post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtualparadise.org\/edwin\/wp-json\/wp\/v2\/tags?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}