Homebrew [W.I.P] VN3DS Visual Novel Interpreter for 3DS Homebrew

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
Will Steins gate work with this? As well as Minecraft a true love story
It's not finished.
If you have a .vnds file for it, then yes it should work when it is finished (or maybe this needs them unpacked?)
Either way you can't just give it the full official version of the VN, you need the .vnds version.
 

dfsa3fdvc1

Well-Known Member
OP
Member
Joined
Jan 3, 2015
Messages
226
Trophies
0
XP
214
Country
Albania
Will Steins gate work with this? As well as Minecraft a true love story

There has to be a VNDS port of the game to be compatible. There isn't a port Steins;Gate AFAIK.
Short list of notable VNDS games, Cross Channel, Ever 17, Fate Stay Night, Higurashi, Kira Kira, Narcissu 2nd, Never 7 Pain Song, Red Shift, Saya no Uta, Sharnoth, Tsukihime, True Remembrance, Umineko
 

Rinnegatamante

Well-Known Member
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
Country
Italy
I found your issue with blood2.ogg file.

Opening it with an HEX editor you'll see the file misses the COMMENT section lpp-3ds uses to extract title and author ( https://github.com/Rinnegatamante/lpp-3ds/blob/master/source/luaSound.cpp#L496 )
If you search for this hex value (take in mind you have to revert it cause 3DS CPU is a little endian ones.) you'll never find it so lpp-3ds start an infinite loop leading you to a complete freeze.

To solve it you can just add an empty comment section.
I'll add a patch in next lpp-3ds release for this.

Here you are a correct blood2.ogg file
 

Attachments

  • blood2.rar
    12.3 KB · Views: 229
  • Like
Reactions: dfsa3fdvc1

9thSage

Well-Known Member
Member
Joined
Aug 8, 2008
Messages
457
Trophies
0
XP
587
Country
United States
Oooh, cool. I wish you luck with this, I got a lot of use out of VNDS...played most of Fate/Stay Night on my DS.
 

dfsa3fdvc1

Well-Known Member
OP
Member
Joined
Jan 3, 2015
Messages
226
Trophies
0
XP
214
Country
Albania
I'll add a patch in next lpp-3ds release for this.

I tried out commit #291 and I'm getting the same problems with these files
Index.lua said:
test = Sound.openOgg("/blood.ogg",true)
Sound.init()
Sound.play(test,NO_LOOP,0x08,0x09)

while true do
pad = Controls.read()
if (Controls.check(pad,KEY_A)) then
Sound.close(test)
Sound.term()
System.exit()
end
if (Controls.check(pad,KEY_B)) and not (Controls.check(oldpad,KEY_B)) then
if (Sound.isPlaying(test)) then
Sound.pause(test)
else
Sound.resume(test)
end
end
oldpad = pad

Screen.waitVblankStart()
Screen.refresh()
Screen.debugPrint(0,0,"Hello World",Color.new(255,255,255),TOP_SCREEN)--just to confirm it works
Screen.flip()
end

So I tried various settings for the Sound.openOgg() and here's my experience
blood2, false (STUCK)
blood2, true (STUCK)

blood, false (STUCK)
blood, true (WORKS but plays the first 5 seconds then restarts)

I'll test out whether re exporting the files via Audacity can clear up the issue.
 
Last edited by dfsa3fdvc1,

Rinnegatamante

Well-Known Member
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
Country
Italy
I tried out commit #291 and I'm getting the same problems with these files


So I tried various settings for the Sound.openOgg() and here's my experience
blood2, false (STUCK)
blood2, true (STUCK)

blood, false (STUCK)
blood, true (WORKS but plays the first 5 seconds then restarts)

I'll test out whether re exporting the files via Audacity can clear up the issue.

blood2 file i sent you works perfectly without streaming (using streaming feature for sfx is the worst thing to do).
 

Arras

Well-Known Member
Member
Joined
Sep 14, 2010
Messages
6,318
Trophies
2
XP
5,409
Country
Netherlands
blood2 file i sent you works perfectly without streaming (using streaming feature for sfx is the worst thing to do).
Yeah, but the problem is that visual novels have hundreds of audio files. Having to convert all of these isn't really an option, especially since it would break compatibility with existing .vnds files.
 

dfsa3fdvc1

Well-Known Member
OP
Member
Joined
Jan 3, 2015
Messages
226
Trophies
0
XP
214
Country
Albania
Yeah, but the problem is that visual novels have hundreds of audio files. Having to convert all of these isn't really an option, especially since it would break compatibility with existing .vnds files.

Lol, Fate Stay Night alone has 28,000 audio files.I'm going to have to find an alternative way to batch convert audio files into compatible OGGs because Audacity crashes when trying to feed it thousands of files.
I really hope that the OGG support eventually gets ironed out.

EDIT: It seems that re-exporting the problematic original blood2.ogg via Audacity does prevent getting stuck.
EDIT2: It thankfully might just be the soundclips from that one game (Saya no Uta) that fuck it up. I tried some clips from the FS/N VNDS port and those all work fine.
 
Last edited by dfsa3fdvc1,

zac122

Well-Known Member
Member
Joined
Sep 7, 2015
Messages
301
Trophies
0
Age
26
XP
249
Country
United States
Would it be possible for someone to write a step by step "this is how to get this working" guide after you have the VN converted? I tried to get this running yesterday, but couldn't figure out what went wrong.

Also great job making this. I'm sure those of us who love visual novels will be ecstatic to see it completed.
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
Would it be possible for someone to write a step by step "this is how to get this working" guide after you have the VN converted? I tried to get this running yesterday, but couldn't figure out what went wrong.
What's done:
Text, cleartext, label/goto, delay, jump, setvar, gsetvar, save/load, "CPU bgload" "CPU setimg", choice selection, IF/FI, random

what's not done
Music/sound (ogg loading in LPP is a W.I.P. Crashes quite often right now and been disabled)
Fadetime
Start/End colored text

If you really want to use it now, basically get rid of all the sound and maybe get rid of the other unsupported things. It's probably better to wait until it's finished though.
 

zac122

Well-Known Member
Member
Joined
Sep 7, 2015
Messages
301
Trophies
0
Age
26
XP
249
Country
United States
Oh I don't mind that it won't have sound. It's just that the idea of having a visual novel on my 3ds is too good to pass up. I had already gotten rid of the sound, I'm just looking for a step by step so I can see what I messed up on.
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
Oh I don't mind that it won't have sound. It's just that the idea of having a visual novel on my 3ds is too good to pass up. I had already gotten rid of the sound, I'm just looking for a step by step so I can see what I messed up on.
I'm just waiting for it to be finished myself, since I have a few I'd like to check out.

it's hardcoded to open /vnds/Saya/script.s02.txt so you'd need to change that
This might have been an earlier version but maybe try that.
 

Rinnegatamante

Well-Known Member
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
Country
Italy
Or just wait for LPP to support GPU JPGS.

In latest repository git it's solved (i currently use JPG with GPU rendering on TriaAl).
If you don't have a C/C++ environment installed, here you can grab my TriaAl debug 3dsx (Take in mind that this 3dsx loads index.lua from HOMEBREWFOLDER/script/ and not from HOMEBREWFOLDER/) [It also provides some new feature for scaling/rotating GPU textures, if you need them just ask and i'll tell you correct syntax]
 

Attachments

  • TriaAl_3DSX.rar
    630.8 KB · Views: 246

dfsa3fdvc1

Well-Known Member
OP
Member
Joined
Jan 3, 2015
Messages
226
Trophies
0
XP
214
Country
Albania
Oh I don't mind that it won't have sound. It's just that the idea of having a visual novel on my 3ds is too good to pass up. I had already gotten rid of the sound, I'm just looking for a step by step so I can see what I messed up on.

It's really hard for me to recommend anyone checking this out as anything more than a novely right now. I attached a zip with the main script and a folder, /vnds/ that both go in the root of the SD card. The VNDS novel it opens is written in the LUA script so you'll need to open that up and change it to whatever VN you want to try.
Basically right now I'm just fast forwarding though games and documenting and fix the many many crashes that occur for weird reasons. Like in FS/N it'll crash if you take Sakura home on the first night. Ever 17 and Saya no Uta seemed pretty solid but still hard to recommend right now.
Also, you'd need to batch scaledown the images foreground/background to a max height of 240 and a max width of 400. GPU scaling is coming so in the future this won't be necessary.
Also just to get this question out of the way early you use either X or Y to make a selection on menus. 'A' to continue to the next line and 'B' to skip. And R and L for save and load states.
EDIT: Whoops, you'll also need the LPP .3ds or .3dsx I attached somewhere on the first post.

1.png

In latest repository git it's solved (i currently use JPG with GPU rendering on TriaAl).
If you don't have a C/C++ environment installed, here you can grab my TriaAl debug 3dsx (Take in mind that this 3dsx loads index.lua from HOMEBREWFOLDER/script/ and not from HOMEBREWFOLDER/) [It also provides some new feature for scaling/rotating GPU textures, if you need them just ask and i'll tell you correct syntax]

Thank you so much I'll check that out. What is the proper way to GPU scale an image? I tried out Graphics.drawImageExtended() but didn't quite understand all of the arguments.
I'm having some trouble getting it to load in Citra. Haven't tried it out an actual 3DS yet. My setup with the index.lua in HOMEBREWFOLDER/script/ is correct, right? EDIT: I'm launch the .3dsx from the root folder /sdmc/
2.png
 

Attachments

  • vnds.zip
    242.3 KB · Views: 282
Last edited by dfsa3fdvc1,

Rinnegatamante

Well-Known Member
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
Country
Italy
To only scale images you can use also simple drawImage with these arguments: Graphics.drawImage(x, y, image, scale_x, scale_y)

For Citra, don't know, i don't really like it and don't know where it search for the scripts.
 

Konno Ryo

gbatemp's clueless butler?
Member
Joined
Aug 5, 2015
Messages
158
Trophies
0
Location
Somewhere?
XP
166
Country
Canada
Lol, Fate Stay Night alone has 28,000 audio files.I'm going to have to find an alternative way to batch convert audio files into compatible OGGs because Audacity crashes when trying to feed it thousands of files.
I really hope that the OGG support eventually gets ironed out.
If you are having problems with file converting try using Format Factory.
 

Oceanstuck

New Member
Newbie
Joined
Aug 23, 2015
Messages
3
Trophies
0
Age
24
XP
69
Country
United States
I don't think I set this up right. It doesn't show up on the homebrew menu. I have the vnds folder in /3ds and the other files at the root.
 

Lycan911

wolf boi
Member
Joined
May 11, 2014
Messages
2,136
Trophies
1
Age
26
XP
4,451
Country
Germany
So glad that this is finally happening! If anyone needs pre-converted novels, message me and I'll send you the link to them, since it's not allowed to post them here.

Novels written in bold letters contain sexual content.

Ballad of and Evening Butterfly
Cross+Channel
Ever17
Fate/stay night
Higurashi no Naku Koro ni
Kira Kira
Narcissu Side 2nd
Niji no Kanata ni
Red Shift
Saya no Uta
True Remembrance
Tsukihime
Umineko no Naku Koro ni
Wanko to Kurasou

Note: All of these novels are optimized for the Android version of VNDS, so the backgrounds and sprites are in a resolution higher than that on the 3DS, so I'm guessing some resizing is in order if you want them to work better.
 
Last edited by Lycan911,
  • Like
Reactions: Deleted User

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    OctoAori20 @ OctoAori20: Nice nice-