|
|
(18 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{Infobox 3DS homebrew | | {{Infobox 3DS Homebrews |
| | title = VN3DS | | |title=VN3DS |
| | image = https://dlhb.gamebrew.org/3dshomebrew/VN3DS.jpeg|250px | | |image=Vn3ds2.png |
| | type = Other Apps | | |description=Visual Novel Interpreter. |
| | version = wip | | |author=dfsa3fdvc1 |
| | licence = Mixed | | |lastupdated=2015/09/06 |
| | author = dfsa3fdvc1 | | |type=Demos |
| | website = https://gbatemp.net/threads/w-i-p-vn3ds-visual-novel-interpreter-for-3ds-homebrew.396564/ | | |version=2015 |
| | download = https://dlhb.gamebrew.org/3dshomebrew/VN3DS.rar
| | |license=Mixed |
| | source = https://dlhb.gamebrew.org/3dshomebrew/VN3DS.rar
| | |download=https://dlhb.gamebrew.org/3dshomebrews/vn3ds.7z?k33p0fil35 |
| | |website=https://gbatemp.net/threads/w-i-p-vn3ds-visual-novel-interpreter-for-3ds-homebrew.396564 |
| }} | | }} |
| <youtube></youtube>
| | VN3DS is a WIP port of VNDS to the 3DS, which is a syntax created for the purpose of playing visual novel games on multiple devices. Dozens of popular visual novels such as Fate Stay Night, Ever 17, Saya no Uta have been converted to be VNDS compatible (.vnds), and thus, a VNDS port will allow them to be run on the 3DS. |
|
| |
|
| <div class="messageInfo primaryContent">
| | '''Note:''' The project is discontinued. |
| <div class="messageContent">
| | |
| <blockquote>VNDS is a syntax created for the purpose of playing visual novel games on multiple devices. Dozens of popular visual novels such as Fate Stay Night, Ever 17, Saya no Uta have been converted to be VNDS compatible and thus, when this is completed, will be 3DS compatible.<br />
| | ==Installation== |
| <br />
| | Download contains [[Lua Player Plus 3DS|LPP]] 3ds/3dsx/elf, and the index.lua script which goes on the root of the SD. |
| Here's a GIF of the interpreter fast forwarding though Saya no Uta<br />
| | |
| [https://gbatemp.net/attachments/citrademo-gif.24503/ [[File:data/attachments/23/23891-9cc0d7990e78fb66e3044141b6a4f063.jpg|class=bbCodeImage|CitraDemo.gif]]]<br />
| | The VNs are hardcoded to open /vnds/Saya/script.s02.txt so you'd need to change that. |
| <br />
| | |
| What's done:<br />
| | There's no GPU scaling you'd need to batch resize all the assets down to 3DS size (the one shown in the screenshots are at 320x240). |
| Text, cleartext, label/goto, delay, jump, setvar, gsetvar, save/load, "CPU bgload" "CPU setimg", choice selection, IF/FI, random<br />
| | |
| <br />
| | ==User guide== |
| what's not done<br />
| | Functions that have been worked on include text, cleartext, label/goto, delay, jump, setvar, gsetvar, save/load, "CPU bgload", "CPU setimg", choice selection, IF/FI, and random. |
| Music/sound (ogg loading in LPP is a W.I.P. Crashes quite often right now and been disabled)<br />
| | |
| Fadetime<br />
| | Currently it can display pretty much the whole game, just not make it through the main menu and conditionally move through the script. |
| Start/End colored text<br />
| | |
| <br />
| | ==Screenshots== |
| This is what if/fi conditionals look like in a very conditional heavy scene of Ever 17. Can't even imagine how someone managed to do this in VNDS. Looks like nonsense.<br />
| | https://dlhb.gamebrew.org/3dshomebrews/vn3ds4.png |
| <div class="bbCodeBlock bbCodeQuote" author="IF/FI">
| | https://dlhb.gamebrew.org/3dshomebrews/vn3ds5.gif |
| <div class="attribution type">
| | |
| Quoted from IF/FI:
| | ==Known issues== |
| </div>
| | Not meant to be playable (see discussion thread for more info). |
| <blockquote><div class="quote">
| | |
| text I was trying to decide which area of the park to visit first.<br />
| | No music/sound (disabled), Fadetime and Start/End colored text. |
| <br />
| | |
| setvar v_d0 = 1<br />
| | ==External links== |
| setvar v_d1 = 1<br />
| | * GBAtemp - https://gbatemp.net/threads/w-i-p-vn3ds-visual-novel-interpreter-for-3ds-homebrew.396564 |
| setvar v_d2 = 1<br />
| |
| label L00000221<br />
| |
| if v_d0 != 0<br />
| |
| goto L00000260<br />
| |
| fi<br />
| |
| if v_d1 != 0<br />
| |
| goto L00000260<br />
| |
| fi<br />
| |
| if v_d2 == 0<br />
| |
| goto L000006a3<br />
| |
| fi<br />
| |
| label L00000260<br />
| |
| if v_d0 != 0<br />
| |
| if v_d1 != 0<br />
| |
| if v_d2 != 0<br />
| |
| choice The Dolphin Merry-go-round|The so++uvenir shop|The Security Office<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 0<br />
| |
| fi<br />
| |
| if selected == 2<br />
| |
| setvar selected2 = 1<br />
| |
| fi<br />
| |
| if selected == 3<br />
| |
| setvar selected2 = 2<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 == 0<br />
| |
| if v_d1 != 0<br />
| |
| if v_d2 != 0<br />
| |
| choice The souvenir shop|The Security Office<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 1<br />
| |
| fi<br />
| |
| if selected == 2<br />
| |
| setvar selected2 = 2<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 != 0<br />
| |
| if v_d1 == 0<br />
| |
| if v_d2 != 0<br />
| |
| choice The Dolphin Merry-go-round|The Security Office<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 0<br />
| |
| fi<br />
| |
| if selected == 2<br />
| |
| setvar selected2 = 2<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 == 0<br />
| |
| if v_d1 == 0<br />
| |
| if v_d2 != 0<br />
| |
| choice The Security Office<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 2<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 != 0<br />
| |
| if v_d1 != 0<br />
| |
| if v_d2 == 0<br />
| |
| choice The Dolphin Merry-go-round|The souvenir shop<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 0<br />
| |
| fi<br />
| |
| if selected == 2<br />
| |
| setvar selected2 = 1<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 == 0<br />
| |
| if v_d1 != 0<br />
| |
| if v_d2 == 0<br />
| |
| choice The souvenir shop<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 1<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 != 0<br />
| |
| if v_d1 == 0<br />
| |
| if v_d2 == 0<br />
| |
| choice The Dolphin Merry-go-round<br />
| |
| if selected == 1<br />
| |
| setvar selected2 = 0<br />
| |
| fi<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| if v_d0 == 0<br />
| |
| if v_d1 == 0<br />
| |
| if v_d2 == 0<br />
| |
| text ERROR: All choice options are deactivated<br />
| |
| <br />
| |
| setvar selected = 0<br />
| |
| goto CL1<br />
| |
| fi<br />
| |
| fi<br />
| |
| fi<br />
| |
| label CL1<br />
| |
| setvar v_b3 = selected2<br />
| |
| if v_b3 == 0<br />
| |
| goto L0000028a<br />
| |
| fi<br />
| |
| if v_b3 == 1<br />
| |
| goto L00000508<br />
| |
| fi<br />
| |
| if v_b3 == 2<br />
| |
| goto L0000062a<br />
| |
| fi<br />
| |
| label L0000028a<br />
| |
| setvar v_d0 = 0<br />
| |
| bgload bg02a2.jpg<br />
| |
| text I headed to the room with the attractions.
| |
| </div>
| |
| <div class="quoteExpand quoteCut">
| |
| Click to expand...
| |
| </div></blockquote>
| |
| </div>
| |
| Future plans.<br />
| |
| Automatic unzipping of .novel and .zip assets<br />
| |
| Clean up all the awful programming.<br />
| |
| GPU rendering to allow imagescaling. VNDS has been widely adopted on Android and other devices with higher res screens than the DS's 256x192. What this means is that newer VNDS ports in some cases aren't actually compatible with DS. This would fix that. This is actually a feature of later LPP commites, only problem is that LPP has problems with GPU rendering JPGs currently. Thinking of on the fly converting the JPGs via CPU into BMP and then GPU rendering and storing the newly converted BMP version. Wonder if that would work... Or just wait for LPP to support GPU JPGS.<br />
| |
| <br />
| |
| Attached ZIP of latest build of LPP 3ds/3dsx/elf, and the index.lua script which goes on the root of the SD. Obviously I can't distribute the VNs with it so you'd need one of those and it's hardcoded to open /vnds/Saya/script.s02.txt so you'd need to change that. Because there's no GPU scaling you'd need to batch resize all the assets down to 3DS size (mine are at 320x24)<br />
| |
| IDK. Maybe someone smart could help me with the IF/FI thing. This really isn't meant to be playable. Without if/fi support it actually can't get past the main menu. It can display pretty much the whole game, just not make it through the main menu and conditionally move through the script.
| |
| <div class="messageTextEndMarker">
| |
|
| |
| </div></blockquote>
| |
| <div class="attachedFiles">
| |
| ==== Attached Files: ==== | |
| <ul>
| |
| <li><div class="boxModelFixer primaryContent">
| |
| <div class="thumbnail">
| |
| [[attachments/vnds-zip.24504/|attachments/vnds-zip.24504/]]
| |
| </div>
| |
| <div class="attachmentInfo pairsJustified">
| |
| ====== [[attachments/vnds-zip.24504/|VNDS.zip]] ======
| |
| <dl>
| |
| <dt>File size:</dt>
| |
| <dd>1.7 MB</dd></dl>
| |
| <dl>
| |
| <dt>Views:</dt>
| |
| <dd>1,556</dd></dl>
| |
| </div>
| |
| </div></li></ul>
| |
| </div>
| |
| </div>
| |
| <div class="editDate item">
| |
| ''''Last edited by [[members/dfsa3fdvc1.359092/|dfsa3fdvc1]], <span class="DateTime" title="Sep 6, 2015 at 5:31 PM">Sep 6, 2015</span>
| |
| </div>
| |
| <div id="likes-post-5652076">
| |
| <div class="likesSummary secondaryContent">
| |
| <span class="LikeText"> [[members/tarmfot.377005/|Tarmfot]], [[members/baddinorox99.371661/|BADDINOROX99]], [[members/koko-kun.392886/|Koko-Kun]] and [[posts/5652076/likes|18 others]] like this. </span>
| |
| </div>
| |
| </div>
| |
| <div id="messageControls">
| |
| <div class="messageDetails muted">
| |
| [[threads/w-i-p-vn3ds-visual-novel-interpreter-for-3ds-homebrew.396564/|#1]] <span class="item muted"> [[threads/w-i-p-vn3ds-visual-novel-interpreter-for-3ds-homebrew.396564/|<span class="DateTime" title="Sep 4, 2015 at 7:48 PM">Sep 4, 2015</span>]] </span>
| |
| </div>
| |
| </div>
| |
| </div>
| |