VNDS-LOVE is a cross platform program that plays Visual Novel Dual Screen formatted novels. Many famous visual novels have been ported to this format, which was designed for the Nintendo DS.
VNDS is a specification designed for visual novels in order to run them on the Nintendo DS. Many of the original sources for the project no longer exist, but you can find further information on it at this wiki page.
VNDS novels only have a few commands. As such, they don't have any support for animations, videos, or other fancier graphical capabilites of newer visual novels. They support basic audio and image based storytelling.
Mostly functional. There are no known VNDS related bugs. Note that some features from other visual novel engines might be missing. If they are, file an issue along with a general description of the feature.
Windows, Mac, Linux, and the Nintendo Switch are all fully supported. Note that you need to have a Switch capable of running homebrew. For more information, see the guide below.
This is only partially supported and a work in progress. I do provide builds (3dsx files) for the Nintendo 3DS, however the image format that the 3DS needs is custom (.t3x) so PNG/JPG files do not work on it without being converted. At some point I do intend on writing a cross platform conversion tool, however that won't be for a while most likely. Text and audio still work fine without any conversion.
Performance on the 3DS is also lacking at this moment. You can see this being tracked in this issue.
Android is also only partially supported. There aren't any touchscreen controls at this moment. You can still play through novels by hooking up an external gamepad, such as a Switch Joycon over bluetooth or a Wii Remote. Audio, images, and text all work fine.
If you are a user who wants to install this, go to the guide here. If you encounter any issues, feel free to pop in our Discord here.
If you don't want to use Discord for some reason, feel free to open a Github issue.
Go to the issues and search for an issue similar to yours. If there are no similar issues, go ahead and make a new one! Fill out as much information as you can.
ONLY FOLLOW THESE INSTRUCTIONS IF YOU WANT TO COMPILE VNDS-LOVE! IF YOU JUST WANT TO PLAY VISUAL NOVELS, GO TO THE GUIDE!
Note: Right now, building an NRO file is only supported on systems that you can install devKitPro on. You can still easily test, but you won't be able to generate a final package.
You should be able to develop on Windows, Mac, and Linux. If you encounter any errors when trying to do that, create an issue.
If you are an experienced developer, try reading through the Dockerfile and the main.yml workflow in the repository to get an idea of how the entire thing is built. If you want step by step instructions, follow along below.
- Install LuaRocks
- After making sure that LuaRocks is on your path (
luarocks --help
has output), run the following:
luarocks install moonscript
luarocks install busted
luarocks install alfons
- Clone the repository (
git clone https://github.com/ajusa/VNDS-LOVE
) cd
to the cloned directory (cd VNDS-LOVE
)- Install Love2D and make sure it is also on your path.
Run alfons compile
to compile the moonscript source to lua.
Run alfons run
to run VNDS-LOVE using the installed copy of love
.
Run alfons test
to run the busted unit tests, which are located in spec
Building binaries requires additional steps. If you are able to run VNDS-LOVE with changes using Love2D, you do not need to build the program. You can submit a Pull Request without building the program. Building is just for distribution.
With that out of the way:
- Try running
luarocks install --server=http://luarocks.org/dev love-release
- Install
libzip-dev
on your OS if the above command fails. - Run
alfons build
, and the build files should appear in abuild
folder, including a.love
file.
Github Actions is set up to do these builds. If you want to do this locally as well, follow the "Dependencies" instructions on the LovePotion wiki here.
- Install lovebrew and make sure you can run
lovebrew -h
- Create a directory called
bin
in the root of the project - Download the latest LovePotion release, and save
LovePotion.elf
inbin/switch.elf
. - Run
lovebrew
in the project directory.
This should output a VNDS-LOVE.nro
file in the project root directory to test with.