Commit Graph

31 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
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