mirror of
https://gitea.tendokyu.moe/ppc/amnet.git
synced 2026-09-28 01:37:56 +03:00
96 lines
4.5 KiB
Markdown
96 lines
4.5 KiB
Markdown
<div align="center">
|
|
|
|
# AMNet
|
|
[TestFlight](https://testflight.apple.com/join/kHbeJTsQ) • [Website](http://card.ppc.moe) • [Server DLLs](https://gitea.tendokyu.moe/ppc/amnet/releases)
|
|
|
|
An Aime Card Switcher for segatools-based games.
|
|
|
|
</div>
|
|
|
|
## Overview
|
|
AMNet is designed to simulate the `DEVICE/aime.txt` file, allowing multiple users to log into a game using their phone.
|
|
This was originally designed for use with maimai/Chunithm, but should be compatible with any segatools-based game with Aime support.
|
|
|
|
### Setup
|
|
1. Download the latest `amnet.dll` from the releases page
|
|
2. Move `amnet.dll` to the game directory
|
|
3. Edit `segatools.ini` to use the new DLL:
|
|
```ini
|
|
[aimeio]
|
|
; To use a custom card reader IO DLL enter its path here.
|
|
; Leave empty if you want to use Segatools built-in keyboard input.
|
|
path=amnet.dll
|
|
|
|
; AMNet-specific options (all optional)
|
|
; gameId - the 4 character game ID (will show the game icon in the UI)
|
|
; serverName - the name of the server to show to users (defaults to the computer name if not set)
|
|
; serverAddress - the address to listen on, including the protocol (defaults to http://+:6070, where + is a wildcard)
|
|
; enableKeyboardMode - whether to enable hold-enter-to-login mode. Reads the file set at aimePath for card number (or DEVICE/aime.txt if not set).
|
|
gameId=SDEZ
|
|
;serverName=CHUNI-PENGUIN
|
|
;serverAddress=http://+:6070
|
|
;enableKeyboardMode=1
|
|
```
|
|
4. Launch the game, and check the amdaemon console for server startup messages
|
|
5. Access the using one of the interfaces (see below), connect to the running server, add a card and start playing!
|
|
|
|
### Web Interface
|
|
The web interface can be accessed by navigating to http://card.ppc.moe/ on a device on the same network as the server.
|
|
This website is also installable as a PWA, which will allow it to be registered as an app on your device.
|
|
|
|
> Because the server can only listen on HTTP, the website needs to be visited over HTTP as well. This may cause issues with some devices, as they may block HTTP requests on HTTPS websites.
|
|
|
|
[](http://card.ppc.moe)
|
|
|
|
### Native Application
|
|
The AMNet application is available (and fully supported) for iOS devices, and can be downloaded by joining the TestFlight (see links at the top of the file) or built manually.
|
|
Android is technically supported but hasn't been tested; as such APKs aren't provided at this moment.
|
|
|
|
<div align="center">
|
|
<img src="./res/native.png" height="600"/>
|
|
</div>
|
|
|
|
## Building
|
|
### Server (AMNet.Server)
|
|
Building the server from source requires the following dependencies:
|
|
Visual Studio 2022 (or Build Tools) with **Desktop Development with C++** and **.NET Desktop Development** workloads, including **MSVC x64/x86** compiler and a recent **Windows 10/11 SDK**.
|
|
|
|
After cloning the repository, the server can be built by publishing the project.
|
|
Building the server without publish mode will result in a DLL that cannot be run by the game.
|
|
|
|
```shell
|
|
dotnet publish -c Release -r win-x64 -p:Version=1.0.0 AMNet.Server/AMNet.Server.csproj
|
|
```
|
|
|
|
The dll will be available at `.\AMNet.Server\bin\Release\net8.0-windows\win-x64\publish\amnet.dll`.
|
|
|
|
### Website (amnet-web)
|
|
The web interface is built using Vite and React. Building the web interface requires Node.js (or alternative runtime).
|
|
After cloning the repository, install dependencies then start the dev server or build the site as a static site:
|
|
|
|
```shell
|
|
# for amnet-web
|
|
cd amnet-web
|
|
npm install
|
|
npm run dev # starts the vite development server
|
|
npm run build # build the website, outputs to ./dist
|
|
```
|
|
### Mobile (amnet-native)
|
|
The mobile app is built using Expo and React Native. The app requires Node.js and npm to build, along with either the Android SDK or Xcode for iOS.
|
|
After cloning the repository, install dependencies then run the app, or prebuild for the platform of your choice then complete the build process for a standalone app:
|
|
|
|
> amnet-native relies on one or more native libraries, so Expo Go cannot be used. The app must be built and run on a physical device or simulator.
|
|
|
|
```shell
|
|
cd amnet-native
|
|
npm install
|
|
npm expo run:ios # starts the expo development server for iOS
|
|
|
|
npm expo prebuild --platform ios # prebuild the app for iOS, run command then use the xcworkspace file in the ios directory to archive the app for a standalone build
|
|
```
|
|
|
|
If building for iOS, you may need to open the workspace (`./amnet-native/ios/AMNet.xcworkspace`) in Xcode and configure the signing/provisioning settings before builds work as expected.
|
|
|
|
## License
|
|
AMNet is licensed under AGPLv3 or later. See [license.md](license.md) for more information.
|