Serial Loops is a full-fledged editor for the Nintendo DS game Suzumiya Haruhi no Chokuretsu (The Series of Haruhi Suzumiya).
Serial Loops is developed by:
- Jonko – Systems architect & reverse engineering work
- William278 – UX architect & design work
Additional contributions have been made by:
- Fuyuko Ayumu
- Xzonn
Serial Loops is translated into a variety of langauges thanks to the following contributors:
- Chinese (Simplified/Traditional): Xzonn (traditional is auto-generated via OpenCC)
- Italian: Oropuro_49 and Fuyuko Ayumu
- Japanese: Amelia Chaplin
Documentation for how to use Serial Loops can be found on our website.
It is recommended that you use a distribution of Serial Loops that automatically installs or comes with the necessary prerequisites. For each platform these are:
- Linux: Flatpak
- macOS: Installer
- Windows: Installer
Using these will ensure Serial Loops is ready to use after installation. However, if you would rather use a portable build on Windows/Linux, please check the information on installing these prerequisites below.
View prerequisites for non-Flatpak/installer distributions
devkitARM is required to use Serial Loops on all platforms.
- Using the Windows graphical installer, you can simply select the devkitARM (Nintendo DS) workloads
- On macOS and Linux, run
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.
- To install on Windows, you will have to use a terminal and a package manager. Your options are Winget (installed by default on Win10+) or
Chocolatey. Open an admin PowerShell or Terminal window (Winkey + X + A) and enter
winget install GnuWin32.make
for Winget orchoco install make
for Chocolatey. If using Winget, you will then have to go into system preferences and add Make to the path. - Installation on macOS can be done through Xcode or Homebrew. If using Xcode, open a terminal and type
xcode-select --install
. If you would rather use Homebrew, open a terminal after installing Homebrew and typebrew install make
. - Make comes preinstalled on many Linux distributions, and if you're using the Debian or RPM package, it was definitely installed when you installed
Serial Loops. If you're using the tar.gz it is not installed on yours, you will likely be able to install it as simply as
[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. - To install on Windows, you will have to use a terminal and a package manager. Your options are Winget (installed by default on Win10+) or
Chocolatey. Open an admin PowerShell or Terminal window (Winkey + X + A) and enter
-
If you would rather not install Make, or if it is not working properly, you can instead run it through a Docker container. To do this, you should install Docker Desktop or the Docker Engine. Ensure the Docker engine is running and make sure to check the "Use Docker for ASM Hacks" option in Preferences. You may want to occasionally clean up containers created by Serial Loops, as it will create many of them.
- On Windows, you will additionally need to install Windows Subsystem for Linux (WSL).
From an admin PowerShell or Terminal window (Winkey + X + A), simply type
wsl --install
to install it.
- On Windows, you will additionally need to install Windows Subsystem for Linux (WSL).
From an admin PowerShell or Terminal window (Winkey + X + A), simply type
If you're running on Linux and not using one of the package releases (the Flatpak, AppImage, .deb
or .rpm
), you will also need to install SDL2 which is used for audio processing.
To test the game easily, you will want to have a Nintendo DS emulator installed. We recommend using melonDS for its accuracy.
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!
Uninstalling Serial Loops itself is quite simple; however, you may also want to uninstall the packaged dependencies. Follow the instructions below for each platform to do this.
- If you installed the Flatpak, simply run
flatpak uninstall --delete-data club.haroohie.SerialLoops
to remove the Flatpak and all its associated data. If you don't want to keep your project data, ensure you delete the~/SerialLoops
directory as well. - If you installed the deb or rpm package, run your package manager's uninstall command for the
SerialLoops
package. Afterwards, you can uninstall devkitARM by running the uninstall command for thedevkitpro-pacman
package. Finally, runsudo rm -r /opt/devkitpro && sudo rm -r /etc/apt/sources.list.d/devkitpro.list
to delete the remainder of the devkitARM files on your system. - If you downloaded the tarball, delete the unpacked files from your system and then run the above commands to remove devkitARM from your system as well. You may also run your package manager's uninstallation command for SDL2.
Simply drag the Serial Loops application from the Applications folder to the trash. Afterwards, you can remove devkitARM from your system, you can open a terminal and run sudo rm -rf /opt/devkitpro
.
Go into Add or Remove Programs and remove Serial Loops, the devkitPro installer, and Docker Desktop. Then, open an administrator PowerShell or CMD terminal (Win+X,A) and run wsl --uninstall
to uninstall WSL.
Please file bugs in the Issues tab in this repository. Please include the following information:
- The platform you are running Serial Loops on
- The version of the Chokuretsu ROM you are using (Japanese, patched English ROM, etc.)
- A description of the steps required to reproduce the issue
- The relevant logs for the issue (can be found in ~/SerialLoops/Logs)
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.
Additionally, on macOS, you will have to install CMake so that the build can compile SDL2. To do this, download the macOS dmg for your here and install it. Then run:
sudo /Applications/CMake.app/Contents/bin/cmake-gui --install
This will symlink the CMake binaries to /usr/local/bin
which is necessary for the build to work.
On Linux, you will need to install the SDL2 binaries for your distribution.
To build Serial Loops for your platform, run:
dotnet build
On Linux/Mac, you need to specify the target framework:
dotnet build -f net8.0
Specifying this prevents dotnet from trying to build the Windows project, which can cause errors.
We recommend Rider for development as it has the best Avalonia support and is now free to use for non-commercial purposes; however, on Windows, you can also use Visual Studio 2022.
You can also build from both of these IDEs; however, when building from Rider on Linux/Mac, you must go into Settings → Build, Execution, Deployment → Toolset and Build and add TargetFramework=net8.0
to the MSBuild global properties field. This has the same effect as specifying -f net8.0
on the command line.
If you'd like to contribute new features or fixes, we recommend getting in touch on Discord first before submitting a pull request!
Serial Loops has headless tests that run to test the UI and other functionality of the program. To run tests locally, you will need to define either a ui_vals.json
file or set an environment variable.
First, download these test assets -OutFile $(Build.ArtifactStagingDirectory)/test-assets.zip) and unzip them to a directory somewhere. Then, specify that directory in the ui_vals.json
as AssetsDirectory
or set the environment variable ASSETS_DIRECTORY
to that path.
Tests can be run via dotnet test
(make sure to add -f net8.0
on Linux or Mac) or through the test runners in Rider or Visual Studio.