Commit Graph

128 Commits

Author SHA1 Message Date
Dniel97
1c7531e45e
ekt: add gfx hook, misc: bugfixes 2026-02-26 23:26:51 +01:00
kyoubate-haruka
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
Dniel97
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
Mahuyo
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
Dniel97
7e5e0f132e
idac: 837-15070 board implementation 2024-06-23 21:21:57 +02:00
Dniel97
4e58d3b9a2
added game specific devices documentation 2024-06-23 21:04:08 +02:00