31 Commits
Author SHA1 Message Date
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
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 ae3dd666f4 refactor all common parts and games 2025-04-17 19:40:40 +02:00
Dniel97 e850346b79 renamed start.bat to launch.bat 2025-03-02 00:25:15 +01:00
kyoubate-haruka d257887f6e kemono: fix packagefile again 2024-09-12 13:29:17 +02:00
kyoubate-haruka 70ac873d11 kemono: add to package creation 2024-09-12 12:39:42 +02:00
Dniel97 c535f18e40 added support for tokyo 2024-08-20 13:32:35 +02:00
Dniel97 3e9303e043 fgo: ups forgot to add it to Package.mk 2024-02-06 12:34:39 +01:00
Dniel97 cc0b6b0953 swdc: fixed steering wheel buttons, improved start.bat 2024-01-16 17:56:24 +01:00
Dniel97 4ffcf25555 added freeplay setting to ALLS games 2023-12-03 22:22:17 +01:00
Dniel97 793417e891 added new aime card reader generation
- Added new aime generation: 837-15286 and 837-15396
- New config setting `[aime] gen=3` for 837-15396
- Updated LED information for card reader
- Updated all games with the needed reader generation?
2023-12-03 18:45:42 +01:00
Dniel97 8c12853051 cm: disabled coin selector AS6DB 2023-11-30 00:02:00 +01:00
Dniel97 a2db39c58c fgo: fgohook finally added
Credits:
- Coburn
- domeori
- Mitsuhide
- OLEG
- rakisaionji
2023-11-11 23:05:11 +01:00
Dniel97 d521eeb43e idz, idac, swdc: Added separate pedals config, better XInput controls
- Configure separate pedals which are not part of the steering wheel (base)
 - It is now possible to have a different steering wheel, pedal and shifter brand all connected to 3 different USB ports
- XInput does not have a deadzone at the end of the max steering anymore and the `restrict` setting works as intended
2023-10-05 00:46:54 +02:00
Dniel97 49f729c501 idz, idac, swdc: switched to [xinput] config instead of [io] 2023-09-04 02:03:31 +02:00
Dniel97 f0dc51d01e idac: added config_hook.json 2023-08-29 20:03:33 +02:00
Dniel97 97234f26d7 cm, chusan, mai2, mu3, swdc: added emoney config 2023-08-15 22:02:38 +02:00
Dniel97 e5d17b82b2 updated Package.mk for mai2, cm 2023-07-14 01:03:36 +02:00
Dniel97 2a6a8bf8b2 chusan: added chusanhook, led board fix, config added
credits go to @domeori https://dev.s-ul.net/domeori/segatools/-/tree/mr-imports
2023-07-14 00:58:02 +02:00
Dniel97 ec072667b3 swdc: first segatools added 2023-07-14 00:52:50 +02:00
Dniel97 555784258a idac: test 2023-04-23 16:13:51 +02:00
Kevin Trocolli edd85ee818 add half-working CXB support 2023-02-13 03:08:41 -05:00
Kevin Trocolli 376dad0bc8 Add carolhook for Wonderland Wars 2023-02-13 03:08:40 -05:00
Kevin Trocolli 929ea862ca wacca: io is now part of mercuryhook.dll 2023-02-13 03:08:40 -05:00
xpeng 729a7ec280 Add led support for mercuryio.dll 2023-02-13 03:08:40 -05:00
Kevin Trocolli 5f4b3a0fe5 added ongeki build 2023-02-13 03:07:38 -05:00
Kevin Trocolli 08832ea140 Added wacca stub code 2023-02-13 03:07:36 -05:00
6cb1008cabfc0d4485696f6df7431a5e27604e1b e677a1b4f3 dist: add idzhook.md to doc.zip 2021-06-20 16:18:08 +02:00
6cb1008cabfc0d4485696f6df7431a5e27604e1b f3e124a4b1 dist: remove obsolete file copy commands 2021-06-20 16:07:34 +02:00
icex2 b01bbf1658 Add Makefile with easy to use targets for building and dist packaging
Similar to what we used on other projects. Makes the build process
more streamlined
2021-04-10 15:00:16 +02:00