Serial Loops is a fully-fledged editor for the Nintendo DS game Suzumiya Haruhi no Chokuretsu (The Series of Haruhi Suzumiya).
Serial Loops is developed by:
Serial Loops is translated into a variety of langauges thanks to the following contributors:
Documentation for how to use Serial Loops can be found on our website.
To test the game easily, you will want to have a Nintendo DS emulator installed. We recommend using melonDS for its accuracy.
devkitARM is required to use Serial Loops on all platforms.
sudo dkp-pacman -S nds-dev
from the terminal after installing the devkitPro pacman distribution.To assemble ASM hacks you want to apply, you will need to decide whether to use Make or Docker. Make is automatically installed when using the Debian and RPM packages we distribute, so you don't need to worry about this step if you're using either of those.
Currently, the Docker path is only supported on Windows due to operating system and framework limitations. It is possible to get Docker running
just fine on Linux distros by running SerialLoops as root (e.g. sudo SerialLoops
), but it's easier to just use Make. On macOS, there is no known
way of getting the Docker path to work, so you will have to use Make.
Make is the software used to assemble assembly hacks. Installing Make allows you to build the hacks directly on your system.
winget install GnuWin32.make
for Winget or choco install make
for Chocolatey. If using Winget, you will then have to go into system preferences and add Make to the path.xcode-select --install
. If you would
rather use Homebrew, open a terminal after installing Homebrew and type brew install make
.[packagemanger] install make
from a terminal.To test if make is installed properly, type make --verison
into a terminal and see if it produces the version of make.
wsl --install
to install it.If you're running on Linux and not using one of the package releases (the .deb
or .rpm
), you will also need to install OpenAL which is used for audio processing.
Once you have installed any necessary prerequisites, to install Serial Loops, download the latest release for your platform from the Releases tab.
Be sure to read the Serial Loops documentation for instructions on how to use it!
Please file bugs in the Issues tab in this repository. Please include the following information:
Serial Loops is licensed under the GPLv3. See LICENSE for more information.
Serial Loops requires the .NET 8.0 SDK to build. You can download it here. To build Serial Loops for your platform, run:
dotnet build src/PLATFORM
Remember to replace PLATFORM
with the platform you're on:
SerialLoops.Gtk
for LinuxSerialLoops.Mac
for macOSSerialLoops.Wpf
for WindowsWe recommend Visual Studio 2022 on Windows or Rider on Linux/Mac for development. If you'd like to contribute new features or fixes, we recommend getting in touch on Discord first before submitting a pull request!
The SerialLoops.Tests
project can be run from inside Visual Studio, Rider, or with dotnet test
as normal. However, our UI tests (currently only runnable on Windows) are a bit more involved.
Our UI tests rely on Appium.
nvm install <version>
followed by nvm use <version>
(you can use 16
as the version)appium driver install mac2
Once you've installed the prerequisites, build the SerialLoops.Mac
and SerialLoops.Mac.Tests
projects with dotnet build src/SerialLoops.Mac/SerialLoops.Mac.csproj
and dotnet build test/ui/SerialLoops.Mac.Tests/SerialLoops.Mac.Tests.csproj
,
respectively. Then, inside test\ui\SerialLoops.Mac.Tests\bin\Debug\net8.0
, create a new text file called ui_vals.json
. Inside this file, place the following text, replacing necessary values:
{
"AppLoc": "PATH/TO/Serial Loops.app",
"ProjectName": "MacUITest",
"RomLoc": "PATH/TO/HaruhiChokuretsu.nds",
"ArtifactsDir": "PATH/TO/artifacts"
}
The artifacts directory can be any arbitrary directory, but ensure it exists before running the tests. The project name by default is WinUITest, but it can be anything you'd like. Have fun.
Finally, you can then run the tests with dotnet test test\ui\SerialLoops.Mac.Tests\SerialLoops.Mac.Tests.csproj
. However, it may be better to run appium
from a different terminal first so you
can see the server output as well.
nvm install latest
followed by nvm use latest
(you can sub latest for any version)appium driver install --source=npm appium-windows-driver
.Once you've installed all the prerequisites, build the SerialLoops.Wpf
and SerialLoops.Wpf.Tests
projects from Visual Studio or with dotnet build src\ui\SerialLoops.Wpf\SerialLoops.Wpf.csproj
and
dotnet build test\ui\SerialLoops.Wpf.Tests\SerialLoops.Wpf.Tests.csproj
, respectively. Then, inside test\ui\SerialLoops.Wpf.Tests\bin\Debug\net8.0
, create a new text file called ui_vals.json
.
Inside this file place the following text, replacing necessary values:
{
"AppLoc": "PATH\\TO\\SerialLoops.exe",
"ProjectName": "WinUITest",
"WinAppDriverLoc": "PATH\\TO\\WinAppDriver.exe",
"RomLoc": "PATH\\TO\\HaruhiChokuretsu.nds",
"ArtifactsDir": "PATH\\TO\\artifacts"
}
Ensure you escape your backslashes (\\
rather than \
). WinAppDriver is usually installed to C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe
. The artifacts directory can
be any arbitrary directory, but ensure it exists before running the tests. The project name by default is WinUITest, but it can be anything you'd like. Have fun.
Finally, you can then open the solution inside Visual Studio and run the tests from the Test Explorer. Alternatively, running dotnet test test\ui\SerialLoops.Wpf.Tests\SerialLoops.Wpf.Tests.csproj
may also work.