Commit Graph
130 Commits
Author SHA1 Message Date
samnyan 5f818a4457 doc: add usage notes for [touch] config 2026-04-21 12:12:55 +08:00
HaseoSora ddc969ff04 haseosora-springBoost-Integration (#102)
Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/102
Reviewed-by: Dniel97 <dniel97@noreply.gitea.tendokyu.moe>
Co-authored-by: HaseoSora <haseosora@noreply.gitea.tendokyu.moe>
Co-committed-by: HaseoSora <haseosora@noreply.gitea.tendokyu.moe>
2026-04-06 12:22:00 +00:00
Dniel97 1c7531e45e ekt: add gfx hook, misc: bugfixes 2026-02-26 23:26:51 +01:00
kyoubate-harukaandDniel97 9c67f53902 Add support for Sangokushi Taisen and Eiketsu Taisen (#85)
This adds full support for the Taisen series of games, namely Sangokushi Taisen and Eiketsu Taisen.

Games added:
* Sangokushi Taisen (SDDD)
* Eiketsu Taisen (SDGY)

Devices added:
* CHC-320 printer (SGT)
* "Printer camera" (SGT, unsure what this actually really is)
* CX-7000 printer (EKT)
* Y3CR BD SIE F720MM (SGT, EKT)

Notable changes in the codebase:

* Renamed everything printer specific to seperate between CHC and CX.
* Many new function and registry hooks were added across the board.
* An error is now logged when segatools.ini (or the path in `SEGATOOLS_CONFIG_PATH`) cannot be found.
* Netenv now redirects UDP broadcasts targeted at the subnet that is specified in the keychip configuration. The terminal announces it's presence by broadcasting UDP to 192.168.189.255, this will be redirected to 255.255.255.255.
* Vfs now seperates between absolute and relative paths in `vfs_fixup_path` via an environment variable called `SEGATOOLS_VFS_RELATIVE_PATH`. This is needed because amcapture accesses files as workingdirectory-relative.
* The Y3 board emulation has support for external Y3 I/O dlls. The default implementation (y3ws) that comes with this is a websocket implementation. The docs are available under `doc\y3ws.txt` and a sample card player .html file is under `dist\ekt\card_player.html`. I already know one person that is hosting a massively improved version of it.
  * For websockets, my own websocket implementation is used as a subproject (MIT license): https://github.com/akechi-haruka/cwinwebsocket
  * For JSON, cJSON was embedded (MIT license): https://github.com/DaveGamble/cJSON
  * y3ws reads all printed cards from `DEVICE\print` by default including card back sides. It's up to the client to merge or skip them.

Remarks:
* SGT takes ~8 minutes to load. This seems to be intentional.
* SGT uses some weird TCP network implementation like IDZ. I have not bothered reversing that yet and I have confirmed everything working from the test menu.
* EKT will throw a network error if no terminal is found. You must run the terminal on another computer to be able to launch the satellite.
* EKT has a very bizzare speed glitch that will speed up the ingame unit movement by several 1000% and also slows down cutscene animations by 90%. When this effect is active, you also take a ton more damage than usual. I do not know what causes this and it seems PC specific.
* EKT is very stutter sensitive and will throw error 6401 (I/O timeout) at random when trying to alt+tab or have other things running.
* EKT features a livestream system called Enbu (or "Dojo Upload"). While you are in a match, regardless of vs. AI or another player, the game will record your screen and live-stream it to the Enbu server as defined by the game server's startup response. The application responsible for that, "AM Capture" will not limit it's recording to the game window, but also anything that overlays the game window (notifications, popups, alt+tabbed windows, web browsers, etc). Since this is live-streamed, killing the process will have no effect afterwards, as the frames showing unwanted things will already have been transmitted. To make people aware of this, a one-time dialog message will pop up when starting EKT. The flag for that is stored in the DEVICE folder.

Closes #25.

Co-authored-by: Dniel97 <Dniel97@noreply.gitea.tendokyu.moe>
Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/85
Co-authored-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
Co-committed-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
2026-02-26 19:31:45 +00:00
Dniel97 c24363b65d diva: add ELO touch support, thanks @emihiok 2026-02-08 18:17:53 +01:00
Dniel97 3a8bde7ca8 mercury: fix left touch board, window focus, launch params 2026-01-14 23:30:00 +01:00
Dniel97 a2bfd840d6 idac: improve DNS hooking 2026-01-09 15:34:30 +01:00
Dniel97andHaseoSora 1a7a53f328 Update deadzone in wheel center for IDAC/IDZ/SWDC (#93)
Original PR by @HaseoSora :https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/82

Co-authored-by: HaseoSora <haseosora@noreply.gitea.tendokyu.moe>
Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/93
Co-authored-by: Dniel97 <Dniel97@noreply.gitea.tendokyu.moe>
Co-committed-by: Dniel97 <Dniel97@noreply.gitea.tendokyu.moe>
2026-01-09 13:32:35 +00:00
Dniel97 0a27ed2aae idz, swdc: add up/down/left/right DInput button config 2026-01-04 10:11:15 +01:00
Dniel97 e2257a6fa7 misc: cleanup 2026-01-04 10:06:23 +01:00
Dniel97 60e7e1d432 mai2: add all net auth 1.0 2025-12-25 00:05:51 +01:00
puniru eb96660fdf idac: update config for up and down dpad buttons 2025-08-27 13:30:00 +09:00
kyoubate-haruka d423058cbd APM3: Fix amdaemon breakage when Unity Doorstop is present (#76)
Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/76
Co-authored-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
Co-committed-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
2025-08-10 16:04:01 +00:00
Dniel97 3f2cfb6a26 [apm3, idac] improved launch.bat, removed zinput 2025-08-01 17:58:21 +02:00
Dniel97 122034f922 [fgo] improve keyboard bindings 2025-07-27 22:05:07 +02:00
Dniel97 bb0b023ec0 [apm3] hook video loading, bug fixes 2025-07-27 19:22:57 +02:00
Dniel97 bb01e131e9 [epay]: hook enabled by default 2025-07-27 18:06:58 +02:00
Dniel97 0006731536 [apm3] fix led hook, fix blocked reboot 2025-07-21 21:09:24 +02:00
Dniel97 e974a76fe6 [apm3] add DInput and XInput support 2025-07-20 18:13:29 +02:00
kyoubate-haruka e2e4b37e3f APMv3: add hook (#73)
This adds support for APMv3 I/O, menus and the launcher.

* Added a apm3hook dll and I/O based on the usual layout.
* Added C:\Mount\Apm to vfs.
* Added the relevant .dlls to unityhook.
* Added a hook for apmmount.dll that uses `CreateDosDevice` to mount decrypted data to the locations the launcher and games expect files to be. This will conflict with anything that is already at W:\ and X:\, but I do not have better solutions for this.
* `launch.bat` is a bit more involved as it simulates the launcher loop. It can be broken by alt+f4ing or closing the launcher with "X".
* An extra export was added, so rundll32 can be used to get rid of the dosdevices after the launcher was killed.
* Since all the games do everything via `X:\lib\apm.dll`, no game hooks were needed in testing, therefore, `game.bat` files can be used as is.
* Path hooks are applied correctly, so you can go correctly between games, launcher, sub system test mode and game test modes.

A setup guide (some stuff specific to my server) can be found here:
https://gmg.hopto.org:82/gmg/wiki/index.php/All.Net_P-ras_Multi_Menu

Tested with the 2 APM sample apps, Blazblue, Puyo, Guilty Gear and some weird unity puzzle game whose name I forgot.

![Apmv3System_yLRityJVpm.png](/attachments/3d645e71-81e6-42e6-acd4-63c537cda59e)
![puyoe_hJNhnJGFnd.png](/attachments/01664049-71fe-4c38-9c99-39649ab21e56)

Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/73
Co-authored-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
Co-committed-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
2025-07-20 09:43:56 +00:00
Dniel97 03513e7b0c add aime scan button to default segatools.ini 2025-07-16 15:44:05 +02:00
Dniel97 cdb6815c5a add keychip id and pcbid to default segatools.ini 2025-06-19 19:28:10 +02:00
Dniel97 ae3dd666f4 refactor all common parts and games 2025-04-17 19:40:40 +02:00
kyoubate-haruka 39711a994a FGO: add keyboard input (#61)
Probably self-explanatory :p

Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/61
Co-authored-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
Co-committed-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
2025-04-05 15:22:14 +00:00
kyoubate-haruka 61f95c3f2e GFX: add dpi-awareness switch for all games (#64)
Pretty simple, adds a new config setting to the gfx category, which defaults to enabled to disable DPI scaling if a scale higher than 100% is used, causing game windows to appear stretched and blurry.

Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/64
Co-authored-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
Co-committed-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
2025-03-14 11:53:31 +00:00
Dniel97 e850346b79 renamed start.bat to launch.bat 2025-03-02 00:25:15 +01:00
Dniel97 4d0ef54279 system: add dip switch label configurations 2025-03-02 00:23:53 +01:00
Dniel97 b8af67377c Merge branch 'feature/mai2-touch-led' into develop 2025-03-02 00:04:00 +01:00
Dniel97 4cb76dd1ee mai2: update all LED boards to use two boards 2025-03-02 00:01:45 +01:00
Hay1tsme 004a2f6dcd docs: fix playformID and billingType config docs 2025-02-21 19:37:54 -05:00
MahuyoandSucareto a1611afffc Mai2: Add touch and led15070 hook (#55)
In this PR, I have added the `mai2` touch and `led15070` hooks to provide an example for handling custom peripherals. This change allows users to implement the touch and `led15070` logic by writing appropriate `mai2io` scripts.

#### **Touch Hook**:
- The touch hook simulates touch points based on keyboard combinations. For example, to trigger the A1 touch point, the user must press the A and 1 keys on the keyboard. Input for the 1p requires Caps Lock to be off, while 2p requires Caps Lock to be on.
- The hook allows for independent control of whether device simulation is enabled for "1p" and "2p" and whether keyboard input mapping is enabled.
- **Note**: The current touch hook is not yet functional as it requires modifications to the `capnhook` for proper completion of the `sinmai` hook.

#### **LED15070 Hook**:
- This hook implements basic device simulation. Peripherals requiring lighting data should complete the logic as needed.
- **Note**: The LED data refresh can flood the console logs, so I’ve added a `DEBUG` flag to control whether the debug logging is enabled or not.

#### **Other Changes**:
- In certain versions of `sinmai`, key inputs for 1p and 2p can be directly read from the keyboard without requiring simulation via the `amdaemon io4` hook. I’ve added a switch to control this behavior to prevent redundant input.
- **Benefit**: This ensures that key input is only read when `sinmai` is in the foreground.

If you'd like to learn more about the touch and `led15070` features, my research findings are available here:
[Mai2Touch](https://github.com/Sucareto/Mai2Touch)

Co-authored-by: Sucareto <28331534+Sucareto@users.noreply.github.com>
Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/55
Co-authored-by: Mahuyo <mahuyo@noreply.gitea.tendokyu.moe>
Co-committed-by: Mahuyo <mahuyo@noreply.gitea.tendokyu.moe>
2025-02-16 12:49:58 +00:00
Dniel97 8fc24503c8 diva, fgo: added gfx, close #46 2024-11-03 23:00:43 +01:00
Dniel97 892eb2b859 idz, idac, swdc: fixed rumble effect 2024-10-29 22:06:07 +01:00
kyoubate-haruka 3bb9404a38 printer: add the default waitTime setting to config 2024-10-04 11:43:34 +02:00
Dniel97 259b763a13 idz: add ffb and led emulation 2024-09-30 23:10:16 +02:00
Dniel97 2251585ef0 swdc: add ffb and led emulation 2024-09-30 20:23:28 +02:00
Dniel97 c06bb408e7 idac: add ffb emulation 2024-09-30 18:50:46 +02:00
Dniel97 bb773a63ce Merge pull request 'Kemono Friends support / 32-bit CHC300 support' (#36) from Haruka/segatools:kemonofr into develop
Reviewed-on: https://gitea.tendokyu.moe/Dniel97/segatools/pulls/36
2024-09-21 15:12:05 +00:00
kyoubate-haruka 86556ed2c8 kemono: Update start.bat 2024-09-16 14:29:49 +02:00
kyoubate-haruka 96bdacfa7c kemono: remove old amdaemon workaround 2024-09-12 12:40:57 +02:00
kyoubate-haruka d4bb7b6e0e kemono: correct keychip IP range 2024-09-12 12:40:10 +02:00
kyoubate-haruka 068651b6fa kemono: add support 2024-09-11 13:31:23 +02:00
kyoubate-haruka 26624f25b1 hide default vfd ports from configs 2024-08-24 11:14:13 +02:00
kyoubate-haruka 54cbbffae9 add almost full vfd implementation 2024-08-23 16:30:22 +02:00
Dniel97 ac0f9f0587 aime firmware fix, mu3 keybinding fix 2024-08-21 15:13:09 +02:00
Dniel97 c535f18e40 added support for tokyo 2024-08-20 13:32:35 +02:00
Dniel97 c91c7db3c7 renamed [gpio] dipsw settings to [system] 2024-08-20 10:48:08 +02:00
d4nin3u 37c26ecadb chuniio: Add OpeNITHM LED protocol support (#26)
This commit basically copy-pastes the last commits from https://dev.s-ul.net/VeroxZik/segatools/-/commits/master to add OpenITHM LED support. Doesn't need to edit segatools.ini because the relevant config lines are already there for some reason.

Tested with my OpenITHM controller and behaves exactly like the other fork.

Reviewed-on: https://gitea.tendokyu.moe/Dniel97/segatools/pulls/26
Co-authored-by: d4nin3u <d4nin3u@gmail.com>
Co-committed-by: d4nin3u <d4nin3u@gmail.com>
2024-08-06 21:35:51 +00:00
Dniel97 5abc593b46 cm: added printer support 2024-08-05 20:53:56 +02:00
Dniel97 965126c68a idac: improved compatibility with newer versions 2024-06-30 14:23:20 +02:00