1
0
forked from ppc/amnet
This branch is 38 commits behind ppc/amnet:master
2025-02-05 08:43:49 +00:00
2025-02-05 08:43:49 +00:00
2025-01-14 23:30:54 +00:00
2025-01-21 19:08:32 +00:00
2024-08-31 21:59:23 +01:00
2024-08-31 18:46:50 +01:00
2024-08-31 18:46:50 +01:00
2024-08-31 19:48:29 +01:00

AMNet

TestFlightFirebaseWebsiteServer DLLs

An Aime Card Switcher for segatools-based games.

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 intended for use with maimai and 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, replacing the existing [aimeio] section with this one (read all the comments and change settings as needed):
    [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).
    ; useAimeDBForPhysicalCards - Whether physical cards should use AiMeDB to retrieve access codes. If the game is using a hosted network, set this to 1 to load the same account data/profile as you would get on a physical cab.
    gameId=SDEZ
    ;serverName=CHUNI-PENGUIN
    ;serverAddress=http://+:6070
    ;enableKeyboardMode=1
    ;useAimeDBForPhysicalCards=1
    
  4. Launch the game, and check the amdaemon console for server startup messages
  5. Access the using one of the interfaces (see below), add a new server http://<your-ip-address>:6070, import your existing card (or create a new one) and start playing!

Physical Cards

AMNet 1.3 adds support for scanning physical cards on iOS devices. If you own a physical AiMe/Banapass/e-Amusement/Suica card, you can scan it using the app and use it in-game. By changing the useAimeDBForPhysicalCards in segatools.ini, you can choose how the card is read on a per-game basis:

  • 0 will send the 20-digit access code on the back of the card to the game and load the save data directly (default option).
  • 1 - Send the card's IDm to the game and use AiMeDB to retrieve the 20-digit code assigned to the card.

Mode 1 makes the app function in the same way to a real card reader and should be used if you want the same access code to show when scanning the card on a cab. You should also use this option if you're connecting to a hosted server (AquaNet/rinnet/etc).

Additionally, if useAimeDBForPhysicalCards is set to 1 and the game is failing to read the card, make sure an up-to-date version of segatools is being used.

Interfaces

AMNet can be used on most platforms, see below for options available for each platform:

Platform Method Notes
iOS TestFlight Aime/Banapass/e-Amusement/Suica IC cards supported
Android Firebase Recommended for reduced download/install size and easier upgrading
.apk Larger download, manual installation required.
All Web Works on all platforms and is installable as a PWA. Ensure it's used on http to avoid CORS-related errors

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.

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\net9.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:

# 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 multiple native libraries not included in Expo Go. The app must be built from scratch and run on a physical device or simulator.

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 for more information.

Description
LAN-based Aime card reader
Readme 4.7 MiB
Languages
TypeScript 90.4%
C# 6.4%
JavaScript 1.7%
CSS 0.8%
HTML 0.7%