mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2026-09-15 03:45:09 -05:00
Compare commits
484 Commits
v5.29
...
frame-paci
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed34be6ec3 | ||
|
|
8ec9ec712c | ||
|
|
3d868e33d4 | ||
|
|
ce1a004bf6 | ||
|
|
e72e38eda2 | ||
|
|
e71373e718 | ||
|
|
44cd2ba098 | ||
|
|
f17a2d2044 | ||
|
|
42f09417a0 | ||
|
|
dc16844bbb | ||
|
|
4fedf34d6b | ||
|
|
06317d63e7 | ||
|
|
e2a6410461 | ||
|
|
0a29e031ff | ||
|
|
0897a25174 | ||
|
|
6efbf71c30 | ||
|
|
e1008576ce | ||
|
|
f41cdba8b8 | ||
|
|
1379c1e11b | ||
|
|
d1525a98dd | ||
|
|
329d6a80a3 | ||
|
|
f37f216c69 | ||
|
|
bdf493d2fb | ||
|
|
bec007d52a | ||
|
|
a177913bd6 | ||
|
|
0fdde8b32d | ||
|
|
09b3a6c24a | ||
|
|
f8b2f5f40d | ||
|
|
882a3557c9 | ||
|
|
2454141cab | ||
|
|
4b740c13e8 | ||
|
|
ec4e81d9d3 | ||
|
|
9a964e6bdb | ||
|
|
9b2ed6910e | ||
|
|
82343d8cf1 | ||
|
|
c0101cb614 | ||
|
|
820036087d | ||
|
|
ebd80d3749 | ||
|
|
3bff7f8a5e | ||
|
|
9ce47e7050 | ||
|
|
13c87eaf8d | ||
|
|
f8d394e124 | ||
|
|
09080f7ae2 | ||
|
|
e673cf694f | ||
|
|
9afb28a759 | ||
|
|
2920e2b2cf | ||
|
|
5c08e966d9 | ||
|
|
6be7bdc403 | ||
|
|
20c6e46a71 | ||
|
|
d7c4128a28 | ||
|
|
0961bae99f | ||
|
|
3a89502498 | ||
|
|
23ca366f78 | ||
|
|
ec374ec291 | ||
|
|
db2d71e13c | ||
|
|
2bbbfccd13 | ||
|
|
c22ec4fcff | ||
|
|
1a86cc7ee5 | ||
|
|
069981ef63 | ||
|
|
4c3febfcad | ||
|
|
7d9b837463 | ||
|
|
c5bba84940 | ||
|
|
5ef190f0af | ||
|
|
ed0ce2de35 | ||
|
|
f2628a954c | ||
|
|
96d7c4ed91 | ||
|
|
3c185d5fde | ||
|
|
d3f192976c | ||
|
|
7d0c502c45 | ||
|
|
387dc046f4 | ||
|
|
e40709ddf7 | ||
|
|
bf83bd89e5 | ||
|
|
9c9e554234 | ||
|
|
782a23db74 | ||
|
|
6ea099fd9e | ||
|
|
6dea29ec6a | ||
|
|
b864c0dcfd | ||
|
|
c4e77a9152 | ||
|
|
736c82975f | ||
|
|
ecd598185b | ||
|
|
89efe0cc86 | ||
|
|
3249e70cc2 | ||
|
|
d54627c3fc | ||
|
|
be4b303ed7 | ||
|
|
d438cd320e | ||
|
|
4b23860f8c | ||
|
|
3d36da6751 | ||
|
|
9dd7a81033 | ||
|
|
6eb415a9d7 | ||
|
|
df9a617062 | ||
|
|
11f670b5a1 | ||
|
|
139c658d03 | ||
|
|
043906e353 | ||
|
|
c38ea64ea9 | ||
|
|
cd7425a3b9 | ||
|
|
8fb42aff73 | ||
|
|
fc052b2d7f | ||
|
|
e9d24f7f90 | ||
|
|
64901bdb61 | ||
|
|
52ff4927b4 | ||
|
|
d989e75488 | ||
|
|
b0564b97c6 | ||
|
|
47bfb4e9b2 | ||
|
|
5c4afb8a2a | ||
|
|
83ef8e2e9d | ||
|
|
3a71a5047a | ||
|
|
aaab9bfbfc | ||
|
|
eab80455b2 | ||
|
|
27e9775101 | ||
|
|
da94ad8f76 | ||
|
|
4c127d26e5 | ||
|
|
e807376d6b | ||
|
|
a2c2d31ca8 | ||
|
|
22978afc9b | ||
|
|
94c562f17b | ||
|
|
1f95437b17 | ||
|
|
58d4130c2a | ||
|
|
e530968dab | ||
|
|
99d756f207 | ||
|
|
2b8d19d82a | ||
|
|
fb84085f69 | ||
|
|
ffe678de61 | ||
|
|
031836ef0e | ||
|
|
a1a849aef3 | ||
|
|
32c786de27 | ||
|
|
4d9fe0002a | ||
|
|
a2ceb0f6cc | ||
|
|
2a57ed9916 | ||
|
|
825ac8e6d2 | ||
|
|
ef103eb299 | ||
|
|
65aa31ca22 | ||
|
|
ecda3ff86f | ||
|
|
389708f794 | ||
|
|
34aca9dc2a | ||
|
|
c2104e7758 | ||
|
|
6a140699ec | ||
|
|
b2e0d9f3d6 | ||
|
|
cb884c307c | ||
|
|
1154444d16 | ||
|
|
7b90963f53 | ||
|
|
722927caa7 | ||
|
|
5eb40bfad3 | ||
|
|
f2678539c3 | ||
|
|
bb0d2823bf | ||
|
|
cb290ab02e | ||
|
|
3d955a8dca | ||
|
|
4a333d0b13 | ||
|
|
f63c759ab2 | ||
|
|
edd0bda3bb | ||
|
|
c49fc61f89 | ||
|
|
885bffd9eb | ||
|
|
c310a41752 | ||
|
|
2a7738dac8 | ||
|
|
b4bf1f481d | ||
|
|
dc931faf86 | ||
|
|
523c0ad3f2 | ||
|
|
3cba8db787 | ||
|
|
2139fce2ae | ||
|
|
bb86aa65e5 | ||
|
|
f0dfc61128 | ||
|
|
61a343d59a | ||
|
|
119272b5d2 | ||
|
|
0cd85083f6 | ||
|
|
485c4d0ad7 | ||
|
|
4bd0ee5ef6 | ||
|
|
8081793a5f | ||
|
|
badd616add | ||
|
|
926e976c36 | ||
|
|
5d2b46376d | ||
|
|
8d5ef0bfb3 | ||
|
|
db12f21fd2 | ||
|
|
d009502c9f | ||
|
|
aa147022c6 | ||
|
|
8bcadcfa8f | ||
|
|
993e6718b3 | ||
|
|
2939106841 | ||
|
|
91bb3b4278 | ||
|
|
9c49839e57 | ||
|
|
52d907e0c6 | ||
|
|
f8a09580ea | ||
|
|
6e06685551 | ||
|
|
efca967553 | ||
|
|
6c1bb3db82 | ||
|
|
bec809fbaa | ||
|
|
9775f2c853 | ||
|
|
26c9d7fe0a | ||
|
|
6b81cd7535 | ||
|
|
b3b6c3f499 | ||
|
|
0586ea50aa | ||
|
|
cafa60d0f6 | ||
|
|
76c2c49c13 | ||
|
|
6d38aa5f4a | ||
|
|
c1c5685e3a | ||
|
|
050e52b21e | ||
|
|
ab50c70f71 | ||
|
|
2223947dd8 | ||
|
|
0294eed22b | ||
|
|
d7235c3c2c | ||
|
|
402d0d4ca4 | ||
|
|
89fe822919 | ||
|
|
75583897c1 | ||
|
|
58d297458c | ||
|
|
ba528488f0 | ||
|
|
7692e14b0b | ||
|
|
4cc81f48f3 | ||
|
|
da736d2968 | ||
|
|
c3f9ce7e91 | ||
|
|
41de45d459 | ||
|
|
bda239a2ba | ||
|
|
1e32d1a9a8 | ||
|
|
852d770629 | ||
|
|
4be866e69e | ||
|
|
537b1fa384 | ||
|
|
bd2d722031 | ||
|
|
4f8f6c0f7a | ||
|
|
51a018b0cf | ||
|
|
04442a6dbc | ||
|
|
85a080e6b3 | ||
|
|
28633ded37 | ||
|
|
721897d7b0 | ||
|
|
926bbf2e10 | ||
|
|
ce75e149f7 | ||
|
|
57d9d976ff | ||
|
|
7e731916e2 | ||
|
|
dd9b8faafe | ||
|
|
50ff026b85 | ||
|
|
0ff6134b79 | ||
|
|
ae35b859d9 | ||
|
|
3cf3d44945 | ||
|
|
2a80083af2 | ||
|
|
66e0467ad3 | ||
|
|
c5f0116294 | ||
|
|
ddfa814387 | ||
|
|
088d4bf338 | ||
|
|
f1a7621e2b | ||
|
|
4a3d5fa189 | ||
|
|
0f2828da40 | ||
|
|
ba2016b5bc | ||
|
|
b42c9aa93b | ||
|
|
8de259c639 | ||
|
|
0d54587787 | ||
|
|
4721ba2d3c | ||
|
|
1105a2a130 | ||
|
|
8ab92872ad | ||
|
|
a16dc82cef | ||
|
|
729f5abcc0 | ||
|
|
6e0e5031ac | ||
|
|
f17e8d6739 | ||
|
|
ac02609948 | ||
|
|
c644db03ae | ||
|
|
7d5398b6af | ||
|
|
cac09f8f87 | ||
|
|
85c9c444f1 | ||
|
|
8f2ce1f1b3 | ||
|
|
d3bf381a4f | ||
|
|
3acbc7f251 | ||
|
|
839903ab48 | ||
|
|
c929141e71 | ||
|
|
1477480836 | ||
|
|
bf4322e855 | ||
|
|
3eed0a4ab3 | ||
|
|
a9ade9d9d4 | ||
|
|
26336805d2 | ||
|
|
7d0e916b9f | ||
|
|
a03a5604ec | ||
|
|
54e7d783ef | ||
|
|
4ea1397af2 | ||
|
|
fb593df4a1 | ||
|
|
f0c33663e9 | ||
|
|
87ee37d059 | ||
|
|
5688fb7319 | ||
|
|
d529ee484f | ||
|
|
7c43fb7163 | ||
|
|
652d2ef633 | ||
|
|
78884aebad | ||
|
|
549f00bfb3 | ||
|
|
aab45f145f | ||
|
|
6171f0dc60 | ||
|
|
2f05760f4e | ||
|
|
7b5e4772ea | ||
|
|
e266aed1f9 | ||
|
|
0b0e7faef0 | ||
|
|
53866130cb | ||
|
|
dbb8c45a9f | ||
|
|
8ed7d6db71 | ||
|
|
4c746df6a8 | ||
|
|
7d485e7c7e | ||
|
|
deb6e5cf77 | ||
|
|
2a03690772 | ||
|
|
6ce4cce500 | ||
|
|
c6e59bae9b | ||
|
|
31e15ec5ea | ||
|
|
9cef7c03d0 | ||
|
|
f9b37c7a72 | ||
|
|
609c19b0ca | ||
|
|
75b27d5992 | ||
|
|
965df98093 | ||
|
|
0c06d224cc | ||
|
|
fb3d2ea312 | ||
|
|
089253a537 | ||
|
|
a4436747de | ||
|
|
43b11c8778 | ||
|
|
dd7fd860b5 | ||
|
|
18842a1dd3 | ||
|
|
18f6d9ef70 | ||
|
|
592967e191 | ||
|
|
6614cc801e | ||
|
|
8e1151ac02 | ||
|
|
4b60cb6c6c | ||
|
|
770bae4169 | ||
|
|
49d0bc638b | ||
|
|
837affc66c | ||
|
|
ec76ba075f | ||
|
|
f438f04f2a | ||
|
|
865980991e | ||
|
|
37384c15ec | ||
|
|
f0d62cc938 | ||
|
|
bf067de633 | ||
|
|
f3b07aeb0a | ||
|
|
a1a67697c4 | ||
|
|
ce5b1b2eac | ||
|
|
3f2aed65e4 | ||
|
|
22f3845609 | ||
|
|
de0d70d808 | ||
|
|
12c52bb0d8 | ||
|
|
279d4de4b3 | ||
|
|
2b52fbe211 | ||
|
|
78e7c05876 | ||
|
|
9a5418f6a3 | ||
|
|
2363498f73 | ||
|
|
edbbe5ae67 | ||
|
|
d799b69d12 | ||
|
|
91f83cd975 | ||
|
|
adeabbea19 | ||
|
|
41187091b0 | ||
|
|
5658658d3a | ||
|
|
79a74b2d2f | ||
|
|
51484b1d3d | ||
|
|
df8f3bc96a | ||
|
|
ec435e7a7b | ||
|
|
f8a01ed92f | ||
|
|
2b1dd866d0 | ||
|
|
7d129a3e63 | ||
|
|
29db89cebe | ||
|
|
f7e1c8b3f9 | ||
|
|
f667ae5601 | ||
|
|
4b061bdf8f | ||
|
|
13600db1d5 | ||
|
|
e4126500ef | ||
|
|
049f1b4564 | ||
|
|
687c000000 | ||
|
|
1b593a8e23 | ||
|
|
24178121f0 | ||
|
|
62ad4e0616 | ||
|
|
c348a41d22 | ||
|
|
ef377f40d8 | ||
|
|
0c88518a1f | ||
|
|
0bc87db8da | ||
|
|
53f8cb3bf3 | ||
|
|
41edfec702 | ||
|
|
c6c3bdb075 | ||
|
|
b3a89012ca | ||
|
|
f0bc87f1d6 | ||
|
|
7508c43119 | ||
|
|
34be731211 | ||
|
|
bac1ce62e5 | ||
|
|
58689bbc30 | ||
|
|
d5e186ffe2 | ||
|
|
34c95561c4 | ||
|
|
81d697d59a | ||
|
|
3bdda4d123 | ||
|
|
ea8842b58a | ||
|
|
e89889806b | ||
|
|
b3b2f8f433 | ||
|
|
1cdf330cbf | ||
|
|
89c3ada28f | ||
|
|
d9cb953b67 | ||
|
|
7ebb80d600 | ||
|
|
e737d60893 | ||
|
|
f39843b41f | ||
|
|
98d0debd05 | ||
|
|
950584f025 | ||
|
|
e4081c057f | ||
|
|
8c3030354a | ||
|
|
9777eddaa0 | ||
|
|
671723febd | ||
|
|
c1f6166e1b | ||
|
|
538650f7ac | ||
|
|
efd243fd9d | ||
|
|
383b301d3c | ||
|
|
a9d201691a | ||
|
|
ebb6f811b4 | ||
|
|
9e96cf074f | ||
|
|
e6766d4a3b | ||
|
|
843d78bc4b | ||
|
|
0792b29f3d | ||
|
|
e1d4810743 | ||
|
|
2110abc269 | ||
|
|
fc22f76988 | ||
|
|
3d4df4cd64 | ||
|
|
be5a773cb7 | ||
|
|
3ed6ac6290 | ||
|
|
e49149b03d | ||
|
|
af507e6dcb | ||
|
|
a9ebc30ea7 | ||
|
|
4f3135439d | ||
|
|
2d1c09d4e6 | ||
|
|
164d56b6eb | ||
|
|
1712f10f66 | ||
|
|
128496901e | ||
|
|
65a45740d2 | ||
|
|
8bd0f44e24 | ||
|
|
7733912ae2 | ||
|
|
55c9f5a521 | ||
|
|
917dc88826 | ||
|
|
475d438ec7 | ||
|
|
f23d3531a2 | ||
|
|
32c3428c59 | ||
|
|
ee034a1f08 | ||
|
|
54b321c7d9 | ||
|
|
de894ae5ce | ||
|
|
1d25abc10b | ||
|
|
beea9e7bb7 | ||
|
|
fbb69d4550 | ||
|
|
e0fe9bcf94 | ||
|
|
f9c0733af3 | ||
|
|
a016f27652 | ||
|
|
3a1005f1f8 | ||
|
|
f1700ca551 | ||
|
|
60b081b01c | ||
|
|
89989ae49c | ||
|
|
ff1b9ff9a2 | ||
|
|
4c0f60fc93 | ||
|
|
caba39843f | ||
|
|
f028bdeb20 | ||
|
|
bfbb7103ef | ||
|
|
95e073271f | ||
|
|
cdefc2b09e | ||
|
|
9246e7f9e0 | ||
|
|
bbb5157460 | ||
|
|
e0cfc8c948 | ||
|
|
69ef963451 | ||
|
|
93cfb591b7 | ||
|
|
3396c09fbf | ||
|
|
bd8dc18b30 | ||
|
|
86517bd001 | ||
|
|
172c83a854 | ||
|
|
c7137659bc | ||
|
|
8e9abf9906 | ||
|
|
62bb717582 | ||
|
|
4816fb809d | ||
|
|
2a2c77f255 | ||
|
|
55513bac41 | ||
|
|
9c37ef71ba | ||
|
|
a0a1dea397 | ||
|
|
3c26a3f315 | ||
|
|
b408cd9687 | ||
|
|
be4df516fd | ||
|
|
d1080905e5 | ||
|
|
f87a51bbe4 | ||
|
|
2a4d3e2865 | ||
|
|
6697ff7df1 | ||
|
|
682fe8aa1b | ||
|
|
7d533f60cb | ||
|
|
e5331fbc7c | ||
|
|
77527e346b | ||
|
|
1d0a96fa20 | ||
|
|
63e19aaaf6 | ||
|
|
4c59f16d46 | ||
|
|
7157fdedb7 | ||
|
|
13d29cb62e | ||
|
|
bf48715466 | ||
|
|
24b490e36b | ||
|
|
ff2a4b9a2c | ||
|
|
10bddd4905 | ||
|
|
ad5fbc1f5b | ||
|
|
25413bcba8 | ||
|
|
937290f93d | ||
|
|
d04598a570 | ||
|
|
bd382e5509 | ||
|
|
0d3fa54316 | ||
|
|
e8943edff6 | ||
|
|
61f3eb44d2 | ||
|
|
5aa1e27a31 |
103
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
103
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
# Bug report
|
||||
|
||||
## Summary
|
||||
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
## Expected behavior
|
||||
|
||||
<!--- Tell us what should happen -->
|
||||
|
||||
## Current behavior
|
||||
|
||||
<!--- Tell us what happens instead of the expected behavior -->
|
||||
|
||||
## Detailed Description
|
||||
|
||||
<!--- Provide a detailed description of the issue. Include links to screenshots or videos if
|
||||
necessary -->
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
<!-- Try running the game with a default configuration as well. If that also causes issues, please point that out here in the report. This might speed up the debugging process.-->
|
||||
|
||||
<!--- Provide a detailed step by step description how to reproduce this issue -->
|
||||
|
||||
1.
|
||||
1.
|
||||
1.
|
||||
1.
|
||||
|
||||
## Possible solution
|
||||
|
||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||
|
||||
## Context (Environment)
|
||||
|
||||
### Bemanitools version(s) affected
|
||||
|
||||
- <!--- Add one or multiple versions as a bullet list -->
|
||||
|
||||
### Game(s) and version(s) affected
|
||||
|
||||
- <!--- Add one or multiple game versions as a bullet list -->
|
||||
|
||||
### Log output
|
||||
|
||||
See attachment.
|
||||
|
||||
<!---
|
||||
Provide FULL log output, e.g. inject.log or launcher.log. Please do not guess which things
|
||||
are relevant or not. Without knowing, you might leave out things that are relevant for the developers. You have to enable log output explicitly if not done already.
|
||||
|
||||
For inject.exe and launcher.exe, add `-Y logfile.log` to the command line args to output to a file, e.g. `gamestart.bat -Y logfile.log`.
|
||||
|
||||
!!!!!!
|
||||
REMOVE ANY SENSITIVE DATA LIKE PCBIDS OR DEVICE NAMES BY REPLACING IT THEM WITH
|
||||
|
||||
[REDACTED]
|
||||
|
||||
BEFORE UPLOADING/POSTING ANY LOG DATA!!!
|
||||
|
||||
Use the search and replace feature of any kind of text editor.
|
||||
!!!!!!
|
||||
-->
|
||||
|
||||
### Configuration files
|
||||
|
||||
See attachment.
|
||||
|
||||
<!--- Provide any configuration files that you used, e.g. iidxhook-XX.conf. This file is located in
|
||||
the same directory as launcher.exe or inject.exe.
|
||||
|
||||
!!!!!!
|
||||
REMOVE ANY SENSITIVE DATA LIKE PCBIDS OR DEVICE NAMES BY REPLACING IT THEM WITH
|
||||
|
||||
[REDACTED]
|
||||
|
||||
BEFORE UPLOADING/POSTING ANY LOG DATA!!!
|
||||
|
||||
Use the search and replace feature of any kind of text editor.
|
||||
!!!!!!
|
||||
-->
|
||||
|
||||
### Command line arguments
|
||||
|
||||
<!--- Provide how you run the game from the command line, e.g. which gamestart.bat you used and any
|
||||
additional arguments that you provided to it. Also provide the contents of the gamestart.bat you
|
||||
used if you altered it. -->
|
||||
|
||||
### APIs used
|
||||
|
||||
- <!--- List all APIs you used as a bullet list, e.g. iidxio-keyboard, eamio-keyboard -->
|
||||
|
||||
### OS version
|
||||
|
||||
<!--- Provide the version of Windows you used with whatever update/build identifier -->
|
||||
|
||||
### Hardware specs
|
||||
|
||||
- CPU: <!--- Insert, e.g. Core i7 2600k 3.20ghz -->
|
||||
- RAM: <!--- Insert, e.g. 16 GB -->
|
||||
- GPU: <!--- Insert, e.g. Nvidia GeForce GTX 970, 4GB -->
|
||||
- Controllers/IO: <!--- Insert, e.g. DJ Dao RE over USB -->
|
||||
@@ -1,14 +1,21 @@
|
||||
# Feature request
|
||||
|
||||
## Summary
|
||||
|
||||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
|
||||
## Detailed description
|
||||
|
||||
<!--- Describe your feature in detail -->
|
||||
|
||||
## Benefits
|
||||
|
||||
<!--- Describe the value/benefits of the feature in detail -->
|
||||
|
||||
## Drawbacks
|
||||
|
||||
<!--- Describe any drawbacks that might be introduced with this feature -->
|
||||
|
||||
## Current blockers
|
||||
<!--- Describe any blockers that need to be resolved before implementing this feature -->
|
||||
|
||||
<!--- Describe any blockers that need to be resolved before implementing this feature -->
|
||||
@@ -1,27 +1,41 @@
|
||||
# Pull request
|
||||
|
||||
## Summary
|
||||
|
||||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
|
||||
## Description
|
||||
|
||||
<!--- Describe your changes in detail -->
|
||||
|
||||
## Related Issue
|
||||
|
||||
<!--- This project only accepts pull requests related to open issues -->
|
||||
|
||||
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
|
||||
|
||||
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
|
||||
|
||||
<!--- Please link to the issue here: -->
|
||||
|
||||
## How Has This Been Tested?
|
||||
|
||||
<!--- Please describe in detail how you tested your changes. -->
|
||||
|
||||
<!--- Include details of your testing environment, and the tests you ran to -->
|
||||
|
||||
<!--- see how your change affects other areas of the code, etc. -->
|
||||
|
||||
## Checklist
|
||||
|
||||
<!-- Make sure you covered all items, which apply, of the checklist below. -->
|
||||
|
||||
<!-- Strikethrough items that do not apply and provide a brief description why. -->
|
||||
* [ ] Implemented (unit) test(s) which prove that the introduced changes are working as expected.
|
||||
* Tested with the following games:
|
||||
* [ ] ... <!-- insert game name 1-->
|
||||
* [ ] ... <!-- insert game name 2--->
|
||||
* [ ] Followed the developer (style) guidelines.
|
||||
* [ ] Updated existing doc of or add new doc to README file(s).
|
||||
* [ ] Updated development documentation.
|
||||
|
||||
- \[ \] Implemented (unit) test(s) which prove that the introduced changes are working as expected.
|
||||
- Tested with the following games:
|
||||
- \[ \] ... <!-- insert game name 1-->
|
||||
- \[ \] ... \<!-- insert game name 2--->
|
||||
- \[ \] Followed the developer (style) guidelines.
|
||||
- \[ \] Updated existing doc of or add new doc to README file(s).
|
||||
- \[ \] Updated development documentation.
|
||||
39
.github/workflows/build-master.yaml
vendored
Normal file
39
.github/workflows/build-master.yaml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
name: "Build bemanitools"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: "ubuntu-22.04"
|
||||
steps:
|
||||
- name: "Checkout repository"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Install prerequisites"
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y runc containerd docker.io
|
||||
|
||||
- name: "Build"
|
||||
run: |
|
||||
make build-docker
|
||||
|
||||
# Do some unpacking of the dist zip. Artifact upload repackages stuff
|
||||
- name: "Prepare artifact package"
|
||||
run: |
|
||||
mkdir artifact
|
||||
cd artifact
|
||||
unzip ../build/bemanitools.zip
|
||||
cd ..
|
||||
|
||||
- name: "Upload artifact"
|
||||
uses: "actions/upload-artifact@v2"
|
||||
with:
|
||||
name: bemanitools-${{ github.sha }}
|
||||
retention-days: 90
|
||||
if-no-files-found: "error"
|
||||
path: |
|
||||
artifact/**
|
||||
75
.github/workflows/build-tag.yaml
vendored
Normal file
75
.github/workflows/build-tag.yaml
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
name: "Build bemanitools and publish release"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*.*"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: "ubuntu-22.04"
|
||||
steps:
|
||||
- name: "Checkout repository"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
# Building bootstrapped using docker containers
|
||||
- name: "Install prerequisites"
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y runc containerd docker.io
|
||||
|
||||
- name: "Build"
|
||||
run: |
|
||||
make build-docker
|
||||
|
||||
# Do some unpacking of the dist zip. Artifact upload repackages stuff
|
||||
- name: "Prepare artifact package"
|
||||
run: |
|
||||
mkdir artifact
|
||||
cd artifact
|
||||
unzip ../build/bemanitools.zip
|
||||
cd ..
|
||||
|
||||
- name: "Upload artifact"
|
||||
uses: "actions/upload-artifact@v2"
|
||||
with:
|
||||
name: bemanitools-${{ github.sha }}
|
||||
retention-days: 90
|
||||
if-no-files-found: "error"
|
||||
path: |
|
||||
artifact/**
|
||||
|
||||
publish-release:
|
||||
needs: "build"
|
||||
runs-on: "ubuntu-22.04"
|
||||
steps:
|
||||
# This already extracts the contents of the artifact
|
||||
- name: "Download artifact"
|
||||
uses: "actions/download-artifact@v2"
|
||||
with:
|
||||
name: bemanitools-${{ github.sha }}
|
||||
|
||||
- name: "Get the version"
|
||||
id: get_version
|
||||
run: |
|
||||
echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
|
||||
|
||||
# The publish release action does not package the artifact *sigh*
|
||||
- name: "Create release package"
|
||||
run: |
|
||||
zip bemanitools-${{ steps.get_version.outputs.VERSION }}.zip *
|
||||
|
||||
- name: "Publish release"
|
||||
uses: "marvinpinto/action-automatic-releases@v1.2.1"
|
||||
with:
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
automatic_release_tag: "latest"
|
||||
draft: false
|
||||
prerelease: true
|
||||
title: ${{ steps.get_version.outputs.VERSION }}
|
||||
files: |
|
||||
bemanitools-${{ steps.get_version.outputs.VERSION }}.zip
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -3,4 +3,5 @@ build/
|
||||
.idea
|
||||
.vscode
|
||||
.vs
|
||||
version
|
||||
version
|
||||
.DS_Store
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
image: debian
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- release
|
||||
- releasetag
|
||||
|
||||
build:
|
||||
stage: build
|
||||
before_script:
|
||||
- apt-get update && apt-get -qq install clang mingw-w64 git make zip > /dev/null
|
||||
script:
|
||||
- make
|
||||
artifacts:
|
||||
name: "$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
|
||||
paths:
|
||||
- build
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
|
||||
test:
|
||||
allow_failure: true
|
||||
stage: test
|
||||
dependencies:
|
||||
- build
|
||||
before_script:
|
||||
- apt-get update && apt-get -qq install make wine unzip > /dev/null
|
||||
- dpkg --add-architecture i386 && apt-get update && apt-get -qq install wine32 > /dev/null
|
||||
script:
|
||||
- ls
|
||||
- make run-tests
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
|
||||
release:
|
||||
stage: release
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
dependencies:
|
||||
- build
|
||||
before_script:
|
||||
- apt-get update && apt-get -qq install zip > /dev/null
|
||||
script:
|
||||
- mv build/bemanitools.zip ./bemanitools.zip
|
||||
- find . -mindepth 1 ! -regex '^./bemanitools.zip' -delete
|
||||
- unzip bemanitools.zip
|
||||
- rm bemanitools.zip
|
||||
artifacts:
|
||||
name: "$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
|
||||
paths:
|
||||
- ./*
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
|
||||
releasetag:
|
||||
stage: releasetag
|
||||
dependencies: []
|
||||
before_script:
|
||||
- apt-get update && apt-get -qq install curl > /dev/null
|
||||
script:
|
||||
- |
|
||||
curl --silent --show-error \
|
||||
--data "{\"tag_name\": \"${CI_COMMIT_TAG}\", \"name\": \"${CI_PROJECT_NAME}-${CI_COMMIT_TAG}\", \"description\": \"${CI_COMMIT_TAG_MESSAGE:-No release notes.}\"}" \
|
||||
--header "Content-Type: application/json" \
|
||||
--header "Private-Token: ${CI_PRIVATE_TOKEN}" \
|
||||
--request POST \
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases"
|
||||
only:
|
||||
- tags
|
||||
@@ -1,53 +0,0 @@
|
||||
## Summary
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
## Expected behavior
|
||||
<!--- Tell us what should happen -->
|
||||
|
||||
## Current behavior
|
||||
<!--- Tell us what happens instead of the expected behavior -->
|
||||
|
||||
## Detailed Description
|
||||
<!--- Provide a detailed description of the issue. Include links to screenshots or videos if necessary -->
|
||||
|
||||
## Steps to reproduce
|
||||
<!--- Provide a detailed step by step description how to reproduce this issue -->
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
|
||||
## Possible solution
|
||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||
|
||||
## Context (Environment)
|
||||
### Bemanitools version(s) affected
|
||||
* <!--- Add one or multiple versions as a bullet list -->
|
||||
|
||||
### Game(s) and version(s) affected
|
||||
* <!--- Add one or multiple game versions as a bullet list -->
|
||||
|
||||
### Log output
|
||||
See attachment.
|
||||
<!--- Provide log output as attachment. Make sure to censor sensitive data like PCBIDs or device names if necessary -->
|
||||
|
||||
### Configuration files
|
||||
See attachment.
|
||||
<!--- Provide any configuration files that you used, e.g. iidxhook-XX.conf. Make sure to censor sensitive data like
|
||||
PCBIDs -->
|
||||
|
||||
### Command line arguments
|
||||
<!--- Provide how you run the game from the command line, e.g. which gamestart.bat you used and any additional arguments
|
||||
that you provided to it. Also provide the contents of the gamestart.bat you used if you altered it. -->
|
||||
|
||||
### APIs used
|
||||
* <!--- List all APIs you used as a bullet list, e.g. iidxio-keyboard, eamio-keyboard -->
|
||||
|
||||
### OS version
|
||||
<!--- Provide the version of Windows you used with whatever update/build identifier -->
|
||||
|
||||
### Hardware specs
|
||||
* CPU: <!--- Insert, e.g. Core i7 2600k 3.20ghz -->
|
||||
* RAM: <!--- Insert, e.g. 16 GB -->
|
||||
* GPU: <!--- Insert, e.g. Nvidia GeForce GTX 970, 4GB -->
|
||||
* Controllers/IO: <!--- Insert, e.g. DJ Dao RE over USB -->
|
||||
@@ -1,27 +0,0 @@
|
||||
## Summary
|
||||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
|
||||
## Description
|
||||
<!--- Describe your changes in detail -->
|
||||
|
||||
## Related Issue
|
||||
<!--- This project only accepts pull requests related to open issues -->
|
||||
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
|
||||
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
|
||||
<!--- Please link to the issue here: -->
|
||||
|
||||
## How Has This Been Tested?
|
||||
<!--- Please describe in detail how you tested your changes. -->
|
||||
<!--- Include details of your testing environment, and the tests you ran to -->
|
||||
<!--- see how your change affects other areas of the code, etc. -->
|
||||
|
||||
## Checklist
|
||||
<!-- Make sure you covered all items, which apply, of the checklist below. -->
|
||||
<!-- Strikethrough items that do not apply and provide a brief description why. -->
|
||||
* [ ] Implemented (unit) test(s) which prove that the introduced changes are working as expected.
|
||||
* Tested with the following games:
|
||||
* [ ] ... <!-- insert game name 1-->
|
||||
* [ ] ... <!-- insert game name 2--->
|
||||
* [ ] Followed the developer (style) guidelines.
|
||||
* [ ] Updated existing doc of or add new doc to README file(s).
|
||||
* [ ] Updated development documentation.
|
||||
515
CHANGELOG.md
515
CHANGELOG.md
@@ -1,205 +1,420 @@
|
||||
# Release history
|
||||
|
||||
Note for CI/CD: Ensure the version formatting in the sections is kept identical to the versions
|
||||
given in tags. The pipeline will pick this up and cuts out the relevant section for release notes.
|
||||
|
||||
## 5.49
|
||||
|
||||
### Features
|
||||
|
||||
### Fixes
|
||||
|
||||
## 5.48
|
||||
|
||||
### Features
|
||||
|
||||
- feat(config): Add invert analog input option. Remark: The old configuration file format is
|
||||
upgraded but downgrading is not possible anymore. The new saves are using a new filename and it
|
||||
doesn't delete the old files, see `C:\Users\<YOUR_USERNAME>\AppData\Roaming\DJHACKERS`
|
||||
|
||||
### Fixes
|
||||
|
||||
## 5.47
|
||||
|
||||
### Features
|
||||
|
||||
N/A
|
||||
|
||||
### Fixes
|
||||
|
||||
- fix(ddr/p3ioemu): Handle unknown 2B command to fix DDR X IO errors
|
||||
- fix(ddr/p3io): Crash on all supported DDR games due to incorrect p3io message size validation
|
||||
- fix(geninput): Sony DualShock 4 not working
|
||||
|
||||
## 5.46
|
||||
|
||||
### Features
|
||||
|
||||
- feat(ddrio): Wrapper/shim library to drive another ddrio in a dedicated IO thread. Improves
|
||||
performance for highly IO bound ddrio implementations, e.g. ddrio-p3io
|
||||
- feat(iidxiotest): bi2a-iidx support
|
||||
|
||||
### Fixes
|
||||
|
||||
- fix(jb03/04): Missing XML in gamestart script
|
||||
- fix(jbhook1): Rotate error message box when screen is rotated
|
||||
- fix(jbhook1): Improve/fix automatic config/nvram fs initialization
|
||||
|
||||
## 5.45
|
||||
|
||||
### Features
|
||||
|
||||
- feat(iidx 30): Added support
|
||||
- feat(ddr): Add ddrio implementation with P3IO driver backend
|
||||
- feat(ddr): Add p3io-ddr-tool for testing/debugging real P3IO devices with EXTIO
|
||||
- feat(ddr): Add testing tool for real EXTIO devices
|
||||
- feat(ddr): Add extio driver
|
||||
- feat(ddr): Add p3io driver
|
||||
- feat(iidx 20-26): New/fixed gfx up-/downscaling feature, old one was broken
|
||||
- feat(ddr): Vigem driver for ddrio
|
||||
- feat(iidx 25-30): The user can now set a custom camera device override of "SKIP" to leave that
|
||||
camera unassigned
|
||||
|
||||
### Fixes
|
||||
|
||||
- fix(iidx 09/10): Fix stretched BGAs on 1st and 3rd style videos
|
||||
|
||||
## 5.44
|
||||
|
||||
### Features
|
||||
|
||||
- feat(doc): ezusb dev journal entry, 10th style ezusb boot up and security setup
|
||||
- feat(iidx 09/10): ezusb API call monitoring module and configuration flag
|
||||
- feat(iidx 19): Add back btools monitor check for iidxhook5
|
||||
- feat(iidx 9-19): Add configurable settings path hook. Redirect settings paths, i.e. `d/`, `e/` and
|
||||
`f/` drive "folders" to an arbitrary path on any partition, e.g. writable partition
|
||||
- feat(iidx 9/10): Improve commandline script for irbeat-patch 09 and 10, add interactive mode
|
||||
|
||||
### Fixes
|
||||
|
||||
- fix(iidx 10): SQ-INIT error caused by incorrect security configuration
|
||||
- fix(iidx 9-24): Wire up coin input in ezusb1/2 IO emulation layer
|
||||
- fix(pnm 15-18): Fix IO buffer inconsistency causing random input misfiring
|
||||
- fix(jb 1-8): Fix IO buffer inconsistency causing random input misfiring
|
||||
- fix(iidx 9-24): Fix IO buffer inconsistency causing random input misfiring
|
||||
- fix(iidx 19): imagefs override strategy with local file redir. Required to enable monitor-check on
|
||||
all chart files
|
||||
- fix(iidx 9-19): Code synchronization issue causing deadlock resulting in game hang/stuck on boot
|
||||
- fix(iidx 9-19): Fix broken settings path handling with mixed / and \\
|
||||
- fix(iidx 27): Align disabled cam connection config defaults with 28/29
|
||||
- fix(inject): Fix missing forwarding of exit code
|
||||
- fix(inject): Getting stuck when game exits cleanly due to locked up debugger thread.
|
||||
- fix(iidx 18/19 CN): gamestart.bat creating dev/nvram and dev/raw folders
|
||||
|
||||
## 5.43
|
||||
|
||||
- iidx29: (Officially) support IIDX CASTHOUR
|
||||
- Code structure maintenance
|
||||
- Various documentation improvements
|
||||
|
||||
## 5.42
|
||||
|
||||
- Bugfix: Fix diagonal texture tearing on IIDX 18 and 19 based games
|
||||
- Feature: Add support for IIDX Resort Anthem CN using iidxhook4-cn
|
||||
- Feature/bugfix: Enable "nvidia fix" for iidxhook4, 5 and 5-cn. Should fix crashing on some/all
|
||||
nvidia cards
|
||||
- Various minor fixes
|
||||
|
||||
## 5.41
|
||||
|
||||
- Feature: Support pop'n music 15-18 using popnhook1
|
||||
- Feature: Support IIDX tricoro CN using iidxhook5-cn
|
||||
- Various documentation improvements
|
||||
|
||||
## 5.40
|
||||
|
||||
- Feature: Support DDR X and X2 US/EU using ddrhook1 including memory card emulation
|
||||
- Fix: sdvxhook2 crashing on some OS versions
|
||||
- Feature: Support sdvx generator lights in sdvxio
|
||||
|
||||
## 5.39
|
||||
|
||||
- jbhook3: Fix window mode, remove window frame option, add show cursor on window option
|
||||
- Code simplification and cleanup round plug modules
|
||||
- Code structure improvements p3io jubeat
|
||||
|
||||
## 5.38
|
||||
|
||||
- sdvxhook2: Support sound voltex exceed gear
|
||||
|
||||
## 5.37
|
||||
|
||||
- jbhook1: Support jubeat (1) and ripples
|
||||
- jbhook2: Support jubeat knit and copious
|
||||
- jbhook3: Support jubeat saucer, prop, qubell, clan and festo
|
||||
|
||||
## 5.36
|
||||
|
||||
- iidxhook9: Support for IIDX28
|
||||
- Various bugfixes
|
||||
|
||||
## 5.35
|
||||
|
||||
- Jubeat: Add jbio-p4io
|
||||
- Nostalgia: Add nostio-panb
|
||||
- Misc: Add wavepass support to aciodrv-icca (and eamio-icca)
|
||||
- Misc: Refactor aciodrv to support multiple devices using the same port (with aciomgr)
|
||||
- Misc: Fix d3d9ex windowed hook not behaving correctly (size/framed)
|
||||
- Misc: Fix docs not being included with release
|
||||
- Various bugfixes
|
||||
|
||||
## 5.34
|
||||
|
||||
- IIDX: Support IO and card reader feature switches to disable emulation in iidxhook4-7
|
||||
- Jubeat: jbio implementation for magicbox hardware
|
||||
- Misc: Various documentation improvements
|
||||
- IIDX: Turntable multiplier (can also be used as inverted) for iidxhook9
|
||||
- IIDX: iidxhook9, add force screen resolution option to fix sometimes wrong auto res detection by
|
||||
iidx27 causing inaccurate/wrong refresh rates on monitor check
|
||||
- IIDX: iidxio BIO2 implementation -> Use BIO2 hardware with any iidxhook or other software
|
||||
supporting BT5's iidxio interface
|
||||
- IIDX: BIO2 exit hook, exit the game pressing Start P1 + Start P2, Effect and VEFX
|
||||
- launcher: Allow overriding service URL from command line
|
||||
- IIDX: vigem-iidxio, tool to allow using iidxio (ezusb, ezusb2 or bio2) to emulate XBOX controllers
|
||||
to play other non arcade games that support xinput, e.g. Lunatic Rave (note: Infinitas does not
|
||||
work with this since it only supports direct input)
|
||||
|
||||
## 5.33
|
||||
|
||||
- iidxhook9: Support for IIDX27
|
||||
- sdvxio-bio2: Driver for real sdvx5 cabinet IO hardware
|
||||
- vigem-sdvxio: Tool to allow using sdvxio (kfca or bio2) to emulate an xbox controller
|
||||
- Various bugfixes and refactoring for inject and launcher
|
||||
|
||||
## 5.32
|
||||
|
||||
- Various bugfixes
|
||||
|
||||
## 5.31
|
||||
|
||||
- DDR: Fix p3io and extio lights not working / being swapped when using geninput
|
||||
- DDR: Add HDXS light support
|
||||
- DDR: Add 64 bit support
|
||||
- DDR: Add option to use COM4 as the p3io rs232 port instead of emulating (for use with acrealio
|
||||
etc.)
|
||||
- Jubeat: Add network adapter hook
|
||||
- Misc: Fix aciodrv sometimes hanging on boot (eamio-icca and sdvxio-kfca)
|
||||
|
||||
## 5.30
|
||||
|
||||
- SDVX: sdvxhook2 headphone force and cursor confining config options
|
||||
- DDR: Add light support for SMX gen 4 pads
|
||||
|
||||
## 5.29
|
||||
* SDVX: Add option for monitor rotation
|
||||
* SDVX: Add option to allow overriding network adapter IP
|
||||
* IIDX: Add force display adapter and refresh rate configuration
|
||||
* SDVX: Allow specifying display adapter to open for d3d9ex hook
|
||||
* IIDX/SDVX camerahooks bugfix: Camera sometimes not detected on some older machines
|
||||
|
||||
- SDVX: Add option for monitor rotation
|
||||
- SDVX: Add option to allow overriding network adapter IP
|
||||
- IIDX: Add force display adapter and refresh rate configuration
|
||||
- SDVX: Allow specifying display adapter to open for d3d9ex hook
|
||||
- IIDX/SDVX camerahooks bugfix: Camera sometimes not detected on some older machines
|
||||
|
||||
## 5.28
|
||||
* Improve documentation in various places
|
||||
* Automatic code formatting in build pipeline
|
||||
* Bugfix: Recursive config.bat script
|
||||
* Enable automatic building on pushes to master
|
||||
* Bugfix: Stop SDVX hanging on thankyou for playing
|
||||
* sdvx2: Support for Vivid Wave using sdvxhook2
|
||||
* sdvxio-kfca: Driver for real sdvx cabinet IO hardware
|
||||
|
||||
- Improve documentation in various places
|
||||
- Automatic code formatting in build pipeline
|
||||
- Bugfix: Recursive config.bat script
|
||||
- Enable automatic building on pushes to master
|
||||
- Bugfix: Stop SDVX hanging on thankyou for playing
|
||||
- sdvx2: Support for Vivid Wave using sdvxhook2
|
||||
- sdvxio-kfca: Driver for real sdvx cabinet IO hardware
|
||||
|
||||
## 5.27
|
||||
* Various documentation updates regarding development and how to contribute
|
||||
* KFCA emulation accuracy fixes
|
||||
* Fix passthrough of serial calls when using real hardware (e.g. card reader passthrough IIDX25+/SDVX5+)
|
||||
* Add sdvxio-kfca driver to talk to real SDVX hardware
|
||||
* Refactor d3d9 hook module to improve maintainability. Also fixes upscaling not working on IIDX20+.
|
||||
* Remove d3d8 hook module to improve maintainability. Make old d3d8 based games, e.g. iidxhook1/2, use d3d9 instead.
|
||||
Requires usage of d3d8to9 wrapper library to use gfx patching features.
|
||||
* Add dev doc about IIDX rendering loops
|
||||
* Add an initial draft of an architecture document (will be worked on in iterations)
|
||||
* Refactor BIO2 emulation to make it re-usable by other games
|
||||
|
||||
- Various documentation updates regarding development and how to contribute
|
||||
- KFCA emulation accuracy fixes
|
||||
- Fix passthrough of serial calls when using real hardware (e.g. card reader passthrough
|
||||
IIDX25+/SDVX5+)
|
||||
- Add sdvxio-kfca driver to talk to real SDVX hardware
|
||||
- Refactor d3d9 hook module to improve maintainability. Also fixes upscaling not working on IIDX20+.
|
||||
- Remove d3d8 hook module to improve maintainability. Make old d3d8 based games, e.g. iidxhook1/2,
|
||||
use d3d9 instead. Requires usage of d3d8to9 wrapper library to use gfx patching features.
|
||||
- Add dev doc about IIDX rendering loops
|
||||
- Add an initial draft of an architecture document (will be worked on in iterations)
|
||||
- Refactor BIO2 emulation to make it re-usable by other games
|
||||
|
||||
## 5.26
|
||||
* iidxio-ezusb: Reduce sleep time to Sleep(1) to avoid framerate issues on some versions of iidx.
|
||||
* Bugfix: iidx d3d9 games, mainly the newer ones iidx 20-25, freezing. Happened on boot, during song selection or during the song.
|
||||
* Bugfix: log_server_init deadlock on iidxhook4-7. This caused games like iidx24 to hang before even showing a render window.
|
||||
* iidxhook: Add feature to allow GPU based up-/downscaling of rendered frame. This gives
|
||||
you the possibility to upscale the resolution of old SD (640x480) games to your monitor's/TV's
|
||||
native resolution which can have a few advantages: better image quality if the monitor's upscaler
|
||||
is not doing a good job, especially on resolutions that are not a multiple of its native resolution;
|
||||
Reduce display latency if the upscaler is slow, avoid over-/underscan which cannot always be fixed
|
||||
entirely or at all (depending on your GPU and monitor model). See the iidxhook configuration file
|
||||
for the new parameters available.
|
||||
* Major readme cleanup. Add development documentation like style guide, guidelines, development setup.
|
||||
|
||||
- iidxio-ezusb: Reduce sleep time to Sleep(1) to avoid framerate issues on some versions of iidx.
|
||||
- Bugfix: iidx d3d9 games, mainly the newer ones iidx 20-25, freezing. Happened on boot, during song
|
||||
selection or during the song.
|
||||
- Bugfix: log_server_init deadlock on iidxhook4-7. This caused games like iidx24 to hang before even
|
||||
showing a render window.
|
||||
- iidxhook: Add feature to allow GPU based up-/downscaling of rendered frame. This gives you the
|
||||
possibility to upscale the resolution of old SD (640x480) games to your monitor's/TV's native
|
||||
resolution which can have a few advantages: better image quality if the monitor's upscaler is not
|
||||
doing a good job, especially on resolutions that are not a multiple of its native resolution;
|
||||
Reduce display latency if the upscaler is slow, avoid over-/underscan which cannot always be fixed
|
||||
entirely or at all (depending on your GPU and monitor model). See the iidxhook configuration file
|
||||
for the new parameters available.
|
||||
- Major readme cleanup. Add development documentation like style guide, guidelines, development
|
||||
setup.
|
||||
|
||||
## 5.25
|
||||
* Bugfix: iidx14 and 15 crashing on Windows 10
|
||||
* Bugfix: IO2 driver not using correct package sizes on reads/write -> iidxio-ezusb2.dll now working
|
||||
* Improve ezusb2-boot.bat script to handle flashing of IO2 firmware
|
||||
* Remove broken x64 builds of ezusb1/2 tools -> Just use the x86 tool versions instead
|
||||
(use the x64 versions of iidxio-ezusb.dll and iidxio-ezusb2.dll with iidx25)
|
||||
* iidxhook1-8: Allow floating point values for frame rate limiting, e.g. 59.95 (hz).
|
||||
* Improve timing with ezusb (C02) driver
|
||||
|
||||
- Bugfix: iidx14 and 15 crashing on Windows 10
|
||||
- Bugfix: IO2 driver not using correct package sizes on reads/write -> iidxio-ezusb2.dll now working
|
||||
- Improve ezusb2-boot.bat script to handle flashing of IO2 firmware
|
||||
- Remove broken x64 builds of ezusb1/2 tools -> Just use the x86 tool versions instead (use the x64
|
||||
versions of iidxio-ezusb.dll and iidxio-ezusb2.dll with iidx25)
|
||||
- iidxhook1-8: Allow floating point values for frame rate limiting, e.g. 59.95 (hz).
|
||||
- Improve timing with ezusb (C02) driver
|
||||
|
||||
## v5.24
|
||||
* Bugfix: iidxhook8 hangs very early on startup (race condition in log-server module)
|
||||
|
||||
- Bugfix: iidxhook8 hangs very early on startup (race condition in log-server module)
|
||||
|
||||
## v5.23
|
||||
* Refactored configurion (file) handling for iidxhooks, RE-READ THE DOCUMENTATION.
|
||||
This gets rid of the "short cmd parameters", e.g. -w for windowed mode, and replaces
|
||||
them with full name parameters, e.g. -p gfx.windowed=true, which improves handling
|
||||
of configuration files/values.
|
||||
* Add a lot of unit tests to the codebase
|
||||
* Refactored round plug security infrastructure, shared with IIDX and jubeat (1)
|
||||
* Move shared utility modules between iidxhook modules to a separate utilty module 'iidxhook-util'
|
||||
* Add experimental jubeat (1) support (buggy IO emulation)
|
||||
* Various fixes to improve all iidxhooks when running on Windows 10
|
||||
* Bugfix: iidxio-ezusb getting stuck on newer Windows platforms
|
||||
* Update iidxhook docs, e.g. how to get old IIDX versions sync on Windows 10
|
||||
* Various documentation updates
|
||||
* Various code cleanup
|
||||
* Various other minor bugfixes
|
||||
|
||||
- Refactored configurion (file) handling for iidxhooks, RE-READ THE DOCUMENTATION. This gets rid of
|
||||
the "short cmd parameters", e.g. -w for windowed mode, and replaces them with full name
|
||||
parameters, e.g. -p gfx.windowed=true, which improves handling of configuration files/values.
|
||||
- Add a lot of unit tests to the codebase
|
||||
- Refactored round plug security infrastructure, shared with IIDX and jubeat (1)
|
||||
- Move shared utility modules between iidxhook modules to a separate utilty module 'iidxhook-util'
|
||||
- Add experimental jubeat (1) support (buggy IO emulation)
|
||||
- Various fixes to improve all iidxhooks when running on Windows 10
|
||||
- Bugfix: iidxio-ezusb getting stuck on newer Windows platforms
|
||||
- Update iidxhook docs, e.g. how to get old IIDX versions sync on Windows 10
|
||||
- Various documentation updates
|
||||
- Various code cleanup
|
||||
- Various other minor bugfixes
|
||||
|
||||
## v5.22
|
||||
* Added a lot of documentation and readme stuff (READ IT!!11)
|
||||
* Re-numbering iidxhook implementations to make room for missing games
|
||||
* Support for IIDX 18 -> iidxhook4
|
||||
* Support for IIDX 19 -> iidxhook5
|
||||
* Support for IIDX 20 -> iidxhook6
|
||||
* A lot of code refactoring and cleanup
|
||||
* Refactor p3io emulation
|
||||
* Remove obsolete BT4 DDR stuff
|
||||
* iidxhook: Refactored software monitor check and bugfixes. You can use the
|
||||
auto monitor check to determine your machine's refresh rate or (new) set the
|
||||
refresh rate yourself in the configuration file, e.g. when you already have
|
||||
determined it using one of the newer IIDX games and want to skip that monitor
|
||||
check or if BT5's software monitor check doesn't work properly (e.g. on Win 7).
|
||||
* iidxhook1-3: Check if eamuse server is reachable and log a warning otherwise.
|
||||
This should make debugging invalid URLs or connection issues easier.
|
||||
* iidxhook: Revised ezusb and ezusb2 emulation layer. Translucent support
|
||||
removed, all IO emulation goes through BT5's iidxio interface.
|
||||
* iidxio: Add implementations for ezusb (C02 IO) and ezusb2 (IO2) hardware. This
|
||||
allows you to run _ANY_ IIDX game supported by BT5 either with real C02 or IO2
|
||||
hardware.
|
||||
* iidxhook: Remove translucent card reader feature. Again, to create a unified
|
||||
interface for _ALL_ versions, use the eamio-icca.dll if you want to run on
|
||||
real ICCA (slotted or wavepass) readers.
|
||||
* Various other bugfixes
|
||||
|
||||
Again, read the various markdown (.md) readme files. We tried to document
|
||||
everything to the best of our knowledge. If you are missing something, please
|
||||
contribute by adding that information and submitting a patch to us.
|
||||
- Added a lot of documentation and readme stuff (READ IT!!11)
|
||||
- Re-numbering iidxhook implementations to make room for missing games
|
||||
- Support for IIDX 18 -> iidxhook4
|
||||
- Support for IIDX 19 -> iidxhook5
|
||||
- Support for IIDX 20 -> iidxhook6
|
||||
- A lot of code refactoring and cleanup
|
||||
- Refactor p3io emulation
|
||||
- Remove obsolete BT4 DDR stuff
|
||||
- iidxhook: Refactored software monitor check and bugfixes. You can use the auto monitor check to
|
||||
determine your machine's refresh rate or (new) set the refresh rate yourself in the configuration
|
||||
file, e.g. when you already have determined it using one of the newer IIDX games and want to skip
|
||||
that monitor check or if BT5's software monitor check doesn't work properly (e.g. on Win 7).
|
||||
- iidxhook1-3: Check if eamuse server is reachable and log a warning otherwise. This should make
|
||||
debugging invalid URLs or connection issues easier.
|
||||
- iidxhook: Revised ezusb and ezusb2 emulation layer. Translucent support removed, all IO emulation
|
||||
goes through BT5's iidxio interface.
|
||||
- iidxio: Add implementations for ezusb (C02 IO) and ezusb2 (IO2) hardware. This allows you to run
|
||||
_ANY_ IIDX game supported by BT5 either with real C02 or IO2 hardware.
|
||||
- iidxhook: Remove translucent card reader feature. Again, to create a unified interface for _ALL_
|
||||
versions, use the eamio-icca.dll if you want to run on real ICCA (slotted or wavepass) readers.
|
||||
- Various other bugfixes
|
||||
|
||||
Again, read the various markdown (.md) readme files. We tried to document everything to the best of
|
||||
our knowledge. If you are missing something, please contribute by adding that information and
|
||||
submitting a patch to us.
|
||||
|
||||
## v5.21
|
||||
* Camera hook for IIDX 25 (use any UVC webcam in-game), by Xyen
|
||||
* *deep breath* Source code release
|
||||
|
||||
- Camera hook for IIDX 25 (use any UVC webcam in-game), by Xyen
|
||||
- *deep breath* Source code release
|
||||
|
||||
## v5.20
|
||||
* Support for the new IIDX 25 IO board (xyen)
|
||||
* New IO hook system with better multi-threading behavior
|
||||
* Add a replaceable "vefxio" backend dll for IIDX (xyen)
|
||||
* Card reader emulation can now be disabled in iidxhook (xyen)
|
||||
* Add jbhook (xyen, mon)
|
||||
* Add ddrhook (ported from Bemanitools 4 by mon)
|
||||
* Various ICCA emulation improvements (xyen, mon)
|
||||
* QoL improvements to config.exe (xyen, mon)
|
||||
* Other bug fixes (various contributors)
|
||||
|
||||
- Support for the new IIDX 25 IO board (xyen)
|
||||
- New IO hook system with better multi-threading behavior
|
||||
- Add a replaceable "vefxio" backend dll for IIDX (xyen)
|
||||
- Card reader emulation can now be disabled in iidxhook (xyen)
|
||||
- Add jbhook (xyen, mon)
|
||||
- Add ddrhook (ported from Bemanitools 4 by mon)
|
||||
- Various ICCA emulation improvements (xyen, mon)
|
||||
- QoL improvements to config.exe (xyen, mon)
|
||||
- Other bug fixes (various contributors)
|
||||
|
||||
## a19
|
||||
* iidx 17 support
|
||||
* Bugfix: forums.php?action=viewthread&threadid=51257&postid=1425861#post1425861
|
||||
* iidx 14-17: Improved monitor check and new monitor check screen which shows
|
||||
the current frame rate instead of just a white screen
|
||||
* iidx 09-13: Improved monitor check (but still white screen when in progress.
|
||||
d3d8 doesn't offer any text render out of the box)
|
||||
* iidxfx(2)-exit-hook: Switch off lights on shutdown
|
||||
* Various other bugfixes
|
||||
|
||||
- iidx 17 support
|
||||
- Bugfix: forums.php?action=viewthread&threadid=51257&postid=1425861#post1425861
|
||||
- iidx 14-17: Improved monitor check and new monitor check screen which shows the current frame rate
|
||||
instead of just a white screen
|
||||
- iidx 09-13: Improved monitor check (but still white screen when in progress. d3d8 doesn't offer
|
||||
any text render out of the box)
|
||||
- iidxfx(2)-exit-hook: Switch off lights on shutdown
|
||||
- Various other bugfixes
|
||||
|
||||
## a18
|
||||
* Bugfix: forums.php?action=viewthread&threadid=51063
|
||||
* Various other bugfixes
|
||||
|
||||
- Bugfix: forums.php?action=viewthread&threadid=51063
|
||||
- Various other bugfixes
|
||||
|
||||
## a17
|
||||
* IIDX 16 support
|
||||
* Fix broken debug output to file (for iidxhook1-3 and all games using launcher)
|
||||
* Improve debug output
|
||||
* Various minor bugfixes
|
||||
|
||||
- IIDX 16 support
|
||||
- Fix broken debug output to file (for iidxhook1-3 and all games using launcher)
|
||||
- Improve debug output
|
||||
- Various minor bugfixes
|
||||
|
||||
## a16
|
||||
* Add tools.zip which contains various tools for development: ezusb IO related,
|
||||
bemanitools API testing, acio related
|
||||
* Add documentation (.md files) for tools
|
||||
* Add iidxfx(2)-exit-hook.dll: Hook this using either inject or launcher
|
||||
(depending on the game version) and exit the game by pressing Start P1 + Start
|
||||
P2 + VEFX + Effect simultaneously
|
||||
* Bugfix iidxio API: 16seg not working on IIDX games with FX2 emulation
|
||||
* Bugfix iidxio API: return value of init call not getting checked in hook
|
||||
libraries
|
||||
* SDVX input emulation fixes
|
||||
* Various other bugfixes
|
||||
|
||||
- Add tools.zip which contains various tools for development: ezusb IO related, bemanitools API
|
||||
testing, acio related
|
||||
- Add documentation (.md files) for tools
|
||||
- Add iidxfx(2)-exit-hook.dll: Hook this using either inject or launcher (depending on the game
|
||||
version) and exit the game by pressing Start P1 + Start P2 + VEFX + Effect simultaneously
|
||||
- Bugfix iidxio API: 16seg not working on IIDX games with FX2 emulation
|
||||
- Bugfix iidxio API: return value of init call not getting checked in hook libraries
|
||||
- SDVX input emulation fixes
|
||||
- Various other bugfixes
|
||||
|
||||
## a15
|
||||
* Select best network adapter if having multiple
|
||||
* Add Felica card detection
|
||||
* Fix SDVX HID lighting
|
||||
* Fix IIDX FX2 deck lighting
|
||||
|
||||
- Select best network adapter if having multiple
|
||||
- Add Felica card detection
|
||||
- Fix SDVX HID lighting
|
||||
- Fix IIDX FX2 deck lighting
|
||||
|
||||
## a13
|
||||
* iidx 15 (DJ Troopers) support
|
||||
* Fix BG video triangle seam on old games
|
||||
* New options handling: cmd args and options file
|
||||
|
||||
- iidx 15 (DJ Troopers) support
|
||||
- Fix BG video triangle seam on old games
|
||||
- New options handling: cmd args and options file
|
||||
|
||||
## a11
|
||||
* Fix nVidia crash on GOLD
|
||||
|
||||
- Fix nVidia crash on GOLD
|
||||
|
||||
## a10
|
||||
* Adds IO2 emulation for Gold
|
||||
* Add IO2 translucent mode for Gold ONLY atm (untested due to lack of hardware)
|
||||
* Random input bug resolved (also kinda untested, so maybe?)
|
||||
|
||||
- Adds IO2 emulation for Gold
|
||||
- Add IO2 translucent mode for Gold ONLY atm (untested due to lack of hardware)
|
||||
- Random input bug resolved (also kinda untested, so maybe?)
|
||||
|
||||
## a09
|
||||
* Add IIDX 14 support
|
||||
|
||||
- Add IIDX 14 support
|
||||
|
||||
## a08
|
||||
* Add experimental KFCA (SDVX PCB) support
|
||||
* Add Sound Voltex and BeatStream builds
|
||||
|
||||
- Add experimental KFCA (SDVX PCB) support
|
||||
- Add Sound Voltex and BeatStream builds
|
||||
|
||||
## a07
|
||||
* Add IIDX 13 DistorteD support
|
||||
* Add option to use real card readers with IIDX 13
|
||||
|
||||
- Add IIDX 13 DistorteD support
|
||||
- Add option to use real card readers with IIDX 13
|
||||
|
||||
## a06
|
||||
* Fixes bug in chart data loader interception code
|
||||
|
||||
- Fixes bug in chart data loader interception code
|
||||
|
||||
## a05
|
||||
* Fix broken card reader emulation on Copula
|
||||
* Add monitor check/auto timebase for old IIDX games (9-12) -> refer to the
|
||||
readme file on how to use it
|
||||
|
||||
- Fix broken card reader emulation on Copula
|
||||
- Add monitor check/auto timebase for old IIDX games (9-12) -> refer to the readme file on how to
|
||||
use it
|
||||
|
||||
## a04
|
||||
* Add software frame rate limiter for all D3D8 based games (-g option).
|
||||
|
||||
- Add software frame rate limiter for all D3D8 based games (-g option).
|
||||
|
||||
## a03
|
||||
* Add support for IIDX 9-12
|
||||
* Translucent mode: Use real C02 EZUSB IO hardware
|
||||
* eamio-real.dll: Use real slotted or wave pass card readers
|
||||
* Setup guide, advanced features and FAQ: see readme file iidxhook1.md
|
||||
|
||||
- Add support for IIDX 9-12
|
||||
- Translucent mode: Use real C02 EZUSB IO hardware
|
||||
- eamio-real.dll: Use real slotted or wave pass card readers
|
||||
- Setup guide, advanced features and FAQ: see readme file iidxhook1.md
|
||||
|
||||
## a02
|
||||
* Fonts are always correct irrespective of system locale! (Make sure you
|
||||
install East Asian fonts tho)
|
||||
* No longer crashes shitty gaming mice that don't follow the USB spec! (will
|
||||
backport this to bt4)
|
||||
* launcher.exe now has a UAC manifest! (because 2006 called and told me to get
|
||||
with the fucking program)
|
||||
|
||||
- Fonts are always correct irrespective of system locale! (Make sure you install East Asian fonts
|
||||
tho)
|
||||
- No longer crashes shitty gaming mice that don't follow the USB spec! (will backport this to bt4)
|
||||
- launcher.exe now has a UAC manifest! (because 2006 called and told me to get with the fucking
|
||||
program)
|
||||
|
||||
## a01
|
||||
* Initial Alpha, only supports IIDX 21 and 22 for now.
|
||||
|
||||
- Initial Alpha, only supports IIDX 21 and 22 for now.
|
||||
|
||||
102
CONTRIBUTING.md
102
CONTRIBUTING.md
@@ -1,30 +1,88 @@
|
||||
# Contributing
|
||||
Please have a look at the issue board about what's currently going on. If you see an issue that is not assigned yet and
|
||||
that you can and want to work on, please leave a comment to reach out to one of our developers. You can also ask
|
||||
questions and discuss the issue.
|
||||
|
||||
# Bug reports
|
||||
Please check if the bug was already reported by searching the existing issues. If it does, feel free to leave a comment
|
||||
that you also have this issue. Add additional information, screenshots, log files etc. The more information and details
|
||||
we have, the easier it might get to solve the issue.
|
||||
This document outlines different types of contributions and how YOU can help us to improve the
|
||||
project. Read it, as it provides guidelines that are there to help you and the maintainers.
|
||||
|
||||
When creating new issues, use our template for reporting bugs. It tells you what kind of information we need.
|
||||
## Reporting and discussions: Issues section on gitlab
|
||||
|
||||
# Pull requests: bugfixes, new features or other code contributions
|
||||
Pull requests are welcome! May it be a PR to an already known issue or a new feature that you consider as a valuable
|
||||
contribution, please open a PR. If you want to start working on a new feature that was proposed in an issue, yet, it
|
||||
is recommended to reach out to the developers about this, first, to discuss if this contribution is valuable to the
|
||||
project. Otherwise, you might waste your time on implementing something that won't make it into master.
|
||||
In order to avoid having to manage ongoing discussions and bug reports on different communication
|
||||
channels, e.g. forums, messangers or other closed groups, we ask everyone to treat the issue section
|
||||
on gitlab as the place to open their relevant discussions and bug reports regarding the project.
|
||||
|
||||
Please read our [development guidelines](doc/development.md) as they contain valuable information that your contribution
|
||||
meets our standards.
|
||||
The maintainers of the project do not have the time nor motivation to micromanage on the various
|
||||
channels and enter all data here to have it collected. This is a simple task that *ANYONE* can do
|
||||
allowing the maintainers and developers to spend their time on the codebase.
|
||||
|
||||
Fork the upstream repository and start developing on your personal fork. Make sure to test your changes with games that
|
||||
are affected by them. Pay attention to the target platform/hardware you are testing on! This is valuable information
|
||||
that should be included in the PR.
|
||||
## Bug reports
|
||||
|
||||
Once you completed your implementation, open a pull request on the upstream repository to propose your changes. We will review your contribution and get back to you about any changes or when we merge them to our upstream repository. Your changes, once approved, will be included in the next release.
|
||||
Follow these steps when reporting bugs to ensure you provide all information we *always* need and
|
||||
make your report valuable and actionable.
|
||||
|
||||
# Roadmap
|
||||
No concrete roadmap or timeline exists. We want to continue adding support for new games as well as old games (some of
|
||||
the old games supported by BT4 are not supported, yet).
|
||||
1. On the bemanitools repository, go `Issues` on the left-hand sidebar.
|
||||
1. Use the search function to check if there is an already open issue regarding what you want to
|
||||
report
|
||||
1. If that applies, read the open issue to check what's already covered regarding the bug
|
||||
1. Provide additional information or things that are missing. Upload your log files, screenshots,
|
||||
videos etc. Be careful to remove sensitive information like PCBIDs
|
||||
1. Give a thumbs up to the issue to show you are interested/affected as well
|
||||
1. If no existing issue avilable, create a new one
|
||||
1. Come up with a descriptive title
|
||||
1. **USE OUR BUG REPORTING TEMPLATE**: Pick it by selecting `Bug` on the `Description` section
|
||||
1. Follow the sections and their instructions provided by the template and fill them in. All fields
|
||||
are mandatory to provide a comprehensive report if not stated otherwise
|
||||
1. When finished, submit the issue
|
||||
|
||||
## Pull requests: bugfixes, new features or other code contributions
|
||||
|
||||
Pull requests are welcome! May it be a merge request to an already known issue or a new feature that
|
||||
you consider as a valuable contribution, please open a MR.
|
||||
|
||||
**!!! Maintaining documentation by adding new or improving existing documentation is as important as
|
||||
code !!!**
|
||||
|
||||
If you want to start working on a new feature that was proposed in an issue, yet, it is recommended
|
||||
to reach out to the active developers about this, first, to discuss if this contribution is valuable
|
||||
to the project. Otherwise, you might waste your time on implementing something that won't make it
|
||||
into master.
|
||||
|
||||
Please read our [development guidelines](doc/development.md) as they contain valuable information
|
||||
that your contribution meets our standards. This is not meant to annoy people but ensures
|
||||
consistency that the project stays maintainable for everyone.
|
||||
|
||||
Steps for contributing to the repository using a merge request:
|
||||
|
||||
1. If you are new to git, take a bit of time to learn the basics which are very simple, e.g. Google
|
||||
for "git tutorial for non-programmers"
|
||||
1. Fork the upstream repository (Fork button on the top right on the main page of the repository)
|
||||
1. You can start editing files like documentation easily inside gitlab which might be the prefered
|
||||
option for many non-coders
|
||||
1. Clone your fork to your local machine and start working on stuff
|
||||
1. Ensure you push your changes to your fork on gitlab
|
||||
1. When done, go to the `Merge Requests` section on the left sidebar of the upstream repository
|
||||
1. Hit the `New merge request` button
|
||||
1. Select the `master` branch as the source branch
|
||||
1. Select whatever branch you worked, likely `master` if you didn't change that, as the target
|
||||
branch
|
||||
1. Hit `Compare branches and continue`
|
||||
1. Provide a descriptive title of what your change is about
|
||||
1. **USE OUR MR TEMPLATES**
|
||||
1. If you submit a bugfix, use the `Bugfix` tempalte and fill in the sections
|
||||
1. If you submit a new feature, use the `Feature` template and fill in the sections
|
||||
1. If you submit some minor fixes or documentation improvements, there is no template for that.
|
||||
Please provide a expressive description what you did and *why* you did that
|
||||
1. If any of your changes are tied to one or multiple issues, link them in the description
|
||||
1. When done, hit `Submit merge request`
|
||||
|
||||
The maintainers will take a look at your submission and provide their feedback. The intention of
|
||||
this process is to ensure the contribution meets the quality standards. Please also see this is a
|
||||
learning opportunity, especially with your first contribution, if a lot of comments and change
|
||||
requests are being made. The maintainers are open to discuss their suggestions/feedback if
|
||||
reasonable feedback is given back to them.
|
||||
|
||||
Once all discussion is resolved and the involved maintainers approved your submission, it will be
|
||||
merged into master and also included in the next release.
|
||||
|
||||
## Roadmap
|
||||
|
||||
No concrete roadmap or timeline exists. We want to continue adding support for new games as well as
|
||||
old games (some of the old games supported by BT4 are not supported, yet).
|
||||
|
||||
21
Dockerfile
Normal file
21
Dockerfile
Normal file
@@ -0,0 +1,21 @@
|
||||
FROM --platform=amd64 debian:11.6-slim@sha256:f7d141c1ec6af549958a7a2543365a7829c2cdc4476308ec2e182f8a7c59b519
|
||||
|
||||
LABEL description="Build environment for bemanitools"
|
||||
|
||||
# mingw-w64-gcc has 32-bit and 64-bit toolchains
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
mingw-w64 \
|
||||
mingw-w64-common \
|
||||
make \
|
||||
zip \
|
||||
git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN mkdir /bemanitools
|
||||
WORKDIR /bemanitools
|
||||
|
||||
ENTRYPOINT [ \
|
||||
"/bin/sh", \
|
||||
"-c" , \
|
||||
"cd /bemanitools && \
|
||||
make" ]
|
||||
80
GNUmakefile
80
GNUmakefile
@@ -11,19 +11,24 @@ BUILDDIR ?= build
|
||||
# Internal variables
|
||||
#
|
||||
|
||||
depdir := $(BUILDDIR)/dep
|
||||
objdir := $(BUILDDIR)/obj
|
||||
bindir := $(BUILDDIR)/bin
|
||||
builddir_docker := $(BUILDDIR)/docker
|
||||
|
||||
toolchain_32 := i686-w64-mingw32-
|
||||
toolchain_64 := x86_64-w64-mingw32-
|
||||
docker_container_name := "bemanitools-build"
|
||||
docker_image_name := "bemanitools-build:latest"
|
||||
|
||||
gitrev := $(shell git rev-parse HEAD)
|
||||
cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev)
|
||||
cflags := -O2 -pipe -ffunction-sections -fdata-sections \
|
||||
-Wall -std=c99
|
||||
cflags_release := -Werror
|
||||
ldflags := -Wl,--gc-sections -static-libgcc
|
||||
depdir := $(BUILDDIR)/dep
|
||||
objdir := $(BUILDDIR)/obj
|
||||
bindir := $(BUILDDIR)/bin
|
||||
|
||||
toolchain_32 := i686-w64-mingw32-
|
||||
toolchain_64 := x86_64-w64-mingw32-
|
||||
|
||||
gitrev := $(shell git rev-parse HEAD)
|
||||
cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev)
|
||||
cflags := -O2 -pipe -ffunction-sections -fdata-sections \
|
||||
-Wall -std=c99 -DPSAPI_VERSION=1
|
||||
cflags_release := -Werror
|
||||
ldflags := -Wl,--gc-sections -static-libgcc
|
||||
|
||||
#
|
||||
# The first target that GNU Make encounters becomes the default target.
|
||||
@@ -32,18 +37,24 @@ ldflags := -Wl,--gc-sections -static-libgcc
|
||||
|
||||
all: build
|
||||
|
||||
FORCE:
|
||||
|
||||
.PHONY: \
|
||||
build-docker \
|
||||
clean \
|
||||
code-format \
|
||||
doc-format \
|
||||
print-building \
|
||||
print-release \
|
||||
run-tests \
|
||||
version
|
||||
version \
|
||||
FORCE
|
||||
|
||||
release: \
|
||||
print-release \
|
||||
clean \
|
||||
code-format \
|
||||
doc-format \
|
||||
all \
|
||||
run-tests
|
||||
|
||||
@@ -52,27 +63,48 @@ print-building \
|
||||
version
|
||||
|
||||
print-building:
|
||||
@echo "Build gitrev "$(gitrev)"..."
|
||||
$(V)echo "Build gitrev "$(gitrev)"..."
|
||||
|
||||
print-release:
|
||||
@echo "Starting release build..."
|
||||
$(V)echo "Starting release build..."
|
||||
|
||||
clean:
|
||||
@echo "Cleaning up..."
|
||||
$(V)echo "Cleaning up..."
|
||||
$(V)rm -rf $(BUILDDIR)
|
||||
|
||||
code-format:
|
||||
@echo "Applying clang-format..."
|
||||
# -style=file enables reading .clang-format
|
||||
@find src/ -iname *.h -o -iname *.c | xargs clang-format -i -style=file
|
||||
$(V)echo "Applying clang-format..."
|
||||
$(V)find src/main src/test -name '*.c' -o -name '*.h' | xargs clang-format -i -style=file
|
||||
|
||||
doc-format:
|
||||
$(V)echo "Applying mdformat on all docs..."
|
||||
$(V)find . -name '*.md' | xargs mdformat --wrap 100
|
||||
|
||||
run-tests:
|
||||
@echo "Running tests..."
|
||||
@./run-tests-wine.sh
|
||||
$(V)echo "Running tests..."
|
||||
$(V)./run-tests-wine.sh
|
||||
|
||||
# Generate a version file to identify the build
|
||||
version:
|
||||
@echo "$(gitrev)" > version
|
||||
$(V)echo "$(gitrev)" > version
|
||||
|
||||
build-docker:
|
||||
$(V)docker rm -f $(docker_container_name) 2> /dev/null || true
|
||||
$(V)docker \
|
||||
build \
|
||||
-t $(docker_image_name) \
|
||||
-f Dockerfile \
|
||||
.
|
||||
$(V)docker \
|
||||
run \
|
||||
--volume $(shell pwd):/bemanitools \
|
||||
--name $(docker_container_name) \
|
||||
$(docker_image_name)
|
||||
|
||||
clean-docker:
|
||||
$(V)docker rm -f $(docker_container_name) || true
|
||||
$(V)docker image rm -f $(docker_image_name) || true
|
||||
$(V)rm -rf $(BUILDDIR)
|
||||
|
||||
#
|
||||
# Pull in module definitions
|
||||
@@ -170,6 +202,8 @@ $$(depdir_$1_$2_$3):
|
||||
$$(objdir_$1_$2_$3):
|
||||
$(V)mkdir -p $$@
|
||||
|
||||
$$(volatile_$3:%.c=$$(objdir_$1_$2_$3)/%.o): FORCE
|
||||
|
||||
$$(objdir_$1_$2_$3)/%.o: $$(srcdir_$3)/%.c \
|
||||
| $$(depdir_$1_$2_$3) $$(objdir_$1_$2_$3)
|
||||
$(V)echo ... $$@
|
||||
@@ -211,7 +245,7 @@ $$(dll_$1_$2_$3) $$(implib_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) \
|
||||
$(V)echo ... $$(dll_$1_$2_$3)
|
||||
$(V)$$(toolchain_$1)gcc -shared \
|
||||
-o $$(dll_$1_$2_$3) -Wl,--out-implib,$$(implib_$1_$2_$3) \
|
||||
$$^ $$(ldflags_$3)
|
||||
-Wl,--start-group $$^ -Wl,--end-group $$(ldflags_$3)
|
||||
$(V)$$(toolchain_$1)strip $$(dll_$1_$2_$3)
|
||||
$(V)$$(toolchain_$1)ranlib $$(implib_$1_$2_$3)
|
||||
|
||||
@@ -241,7 +275,7 @@ impdef_$1_$2_$3 ?= src/imports/import_$1_$2_$3.def
|
||||
|
||||
$$(bindir_$1_$2)/lib$3.a: $$(impdef_$1_$2_$3) | $$(bindir_$1_$2)
|
||||
$(V)echo ... $$@ [dlltool]
|
||||
$(V)$$(toolchain_$1)dlltool -l $$@ -d $$<
|
||||
$(V)$$(toolchain_$1)dlltool --kill-at -l $$@ -d $$<
|
||||
|
||||
endef
|
||||
|
||||
|
||||
457
Module.mk
457
Module.mk
@@ -21,12 +21,20 @@
|
||||
#
|
||||
# 4: Patch 2: beatmania IIDX 14 GOLD
|
||||
#
|
||||
# 4: Patch 3: pop'n music 15 ADVENTURE
|
||||
#
|
||||
# 6: Patch 5: beatmania IIDX 15 DJ Troopers
|
||||
#
|
||||
# 7: Patch 1: pop'n music 16 PARTY
|
||||
#
|
||||
# 8: Patch 3: beatmania IIDX 16 Empress
|
||||
# jubeat
|
||||
#
|
||||
# 10: Patch 4: DanceDanceRevolution X2
|
||||
# 9: Patch 0: pop'n music 17 THE MOVIE
|
||||
#
|
||||
# 10: Patch 1: pop'n music 18 Sengoku Retsuden
|
||||
# Patch 2: jubeat Knit
|
||||
# Patch 4: DanceDanceRevolution X2
|
||||
#
|
||||
# 11: Patch 1: beatmania IIDX 18 Resort Anthem
|
||||
# pop'n music 19 Tune Street
|
||||
@@ -49,14 +57,17 @@
|
||||
# beatmania IIDX 22 PENDUAL
|
||||
# beatmania IIDX 23 copula
|
||||
# beatmania IIDX 24 SINOBUZ
|
||||
# Patch 3: DanceDanceRevoluion A20+ (64-bit)
|
||||
# "Patch" 3: Silent Scope Bone Eater (compatible with p7)
|
||||
# "Patch" 7: Steel Chronicle VicTroopers (not a Bemani, w/e)
|
||||
#
|
||||
# 17: Patch 0: beatmania IIDX 25 CANNON BALLERS
|
||||
# beatmania IIDX 26 Rootage
|
||||
# beatmania IIDX 27 HEROIC VERSE
|
||||
#
|
||||
# Patch 3: SOUND VOLTEX VIVID WAVE
|
||||
#
|
||||
#
|
||||
|
||||
cflags += \
|
||||
-DWIN32_LEAN_AND_MEAN \
|
||||
@@ -69,88 +80,133 @@ cflags += \
|
||||
# Each AVS-dependent project should consume the earliest AVS import definition
|
||||
# that is still ABI-compatible with the real build its target links against.
|
||||
|
||||
avsvers_32 := 1700 1603 1601 1508 1403 1304 1101 803 0
|
||||
avsvers_64 := 1700 1603 1601 1508
|
||||
avsvers_32 := 1700 1603 1601 1508 1403 1306 1304 1101 1002 803 0
|
||||
avsvers_64 := 1700 1603 1601 1509 1508
|
||||
|
||||
imps += avs avs-ea3
|
||||
|
||||
include src/main/aciodrv/Module.mk
|
||||
include src/main/aciodrv-proc/Module.mk
|
||||
include src/main/acioemu/Module.mk
|
||||
include src/main/aciomgr/Module.mk
|
||||
include src/main/aciotest/Module.mk
|
||||
include src/main/asio/Module.mk
|
||||
include src/main/avs-util/Module.mk
|
||||
include src/main/bio2drv/Module.mk
|
||||
include src/main/bio2emu-iidx/Module.mk
|
||||
include src/main/bio2emu/Module.mk
|
||||
include src/main/bsthook/Module.mk
|
||||
include src/main/bstio/Module.mk
|
||||
include src/main/camhook/Module.mk
|
||||
include src/main/cconfig/Module.mk
|
||||
include src/main/config/Module.mk
|
||||
include src/main/d3d9-util/Module.mk
|
||||
include src/main/d3d9exhook/Module.mk
|
||||
include src/main/ddrhook/Module.mk
|
||||
include src/main/ddrio/Module.mk
|
||||
include src/main/ddrio-smx/Module.mk
|
||||
include src/main/ddrhook-util/Module.mk
|
||||
include src/main/ddrhook1/Module.mk
|
||||
include src/main/ddrhook2/Module.mk
|
||||
include src/main/ddrio-async/Module.mk
|
||||
include src/main/ddrio-p3io/Module.mk
|
||||
include src/main/ddrio-mm/Module.mk
|
||||
include src/main/eamio/Module.mk
|
||||
include src/main/ddrio-smx/Module.mk
|
||||
include src/main/ddriotest/Module.mk
|
||||
include src/main/ddrio/Module.mk
|
||||
include src/main/dinput/Module.mk
|
||||
include src/main/eamio-icca/Module.mk
|
||||
include src/main/eamio/Module.mk
|
||||
include src/main/eamiotest/Module.mk
|
||||
include src/main/ezusb/Module.mk
|
||||
include src/main/extio/Module.mk
|
||||
include src/main/extiodrv/Module.mk
|
||||
include src/main/extiotest/Module.mk
|
||||
include src/main/ezusb-emu/Module.mk
|
||||
include src/main/ezusb-iidx/Module.mk
|
||||
include src/main/ezusb-iidx-16seg-emu/Module.mk
|
||||
include src/main/ezusb-iidx-emu/Module.mk
|
||||
include src/main/ezusb-iidx-fpga-flash/Module.mk
|
||||
include src/main/ezusb-iidx-sram-flash/Module.mk
|
||||
include src/main/ezusb-iidx/Module.mk
|
||||
include src/main/ezusb-tool/Module.mk
|
||||
include src/main/ezusb2/Module.mk
|
||||
include src/main/ezusb/Module.mk
|
||||
include src/main/ezusb2-dbg-hook/Module.mk
|
||||
include src/main/ezusb2-emu/Module.mk
|
||||
include src/main/ezusb2-iidx/Module.mk
|
||||
include src/main/ezusb2-iidx-emu/Module.mk
|
||||
include src/main/ezusb2-iidx/Module.mk
|
||||
include src/main/ezusb2-popn-emu/Module.mk
|
||||
include src/main/ezusb2-popn-shim/Module.mk
|
||||
include src/main/ezusb2-tool/Module.mk
|
||||
include src/main/ezusb-iidx-emu/Module.mk
|
||||
include src/main/ezusb2/Module.mk
|
||||
include src/main/geninput/Module.mk
|
||||
include src/main/hdr-histogram/Module.mk
|
||||
include src/main/hook/Module.mk
|
||||
include src/main/hooklib/Module.mk
|
||||
include src/main/iidx-bio2-exit-hook/Module.mk
|
||||
include src/main/iidx-ezusb-exit-hook/Module.mk
|
||||
include src/main/iidx-ezusb2-exit-hook/Module.mk
|
||||
include src/main/iidx-irbeat-patch/Module.mk
|
||||
include src/main/iidxhook-d3d9/Module.mk
|
||||
include src/main/iidxhook-util/Module.mk
|
||||
include src/main/iidxhook1/Module.mk
|
||||
include src/main/iidxhook2/Module.mk
|
||||
include src/main/iidxhook3/Module.mk
|
||||
include src/main/iidxhook4/Module.mk
|
||||
include src/main/iidxhook4-cn/Module.mk
|
||||
include src/main/iidxhook5/Module.mk
|
||||
include src/main/iidxhook5-cn/Module.mk
|
||||
include src/main/iidxhook6/Module.mk
|
||||
include src/main/iidxhook7/Module.mk
|
||||
include src/main/iidxhook8/Module.mk
|
||||
include src/main/iidxio/Module.mk
|
||||
include src/main/iidxhook9/Module.mk
|
||||
include src/main/iidxio-async/Module.mk
|
||||
include src/main/iidxio-bio2/Module.mk
|
||||
include src/main/iidxio-ezusb/Module.mk
|
||||
include src/main/iidxio-ezusb2/Module.mk
|
||||
include src/main/iidxio-perf/Module.mk
|
||||
include src/main/iidxio/Module.mk
|
||||
include src/main/iidxiotest/Module.mk
|
||||
include src/main/inject/Module.mk
|
||||
include src/main/jbio-magicbox/Module.mk
|
||||
include src/main/jbio-p4io/Module.mk
|
||||
include src/main/jbio/Module.mk
|
||||
include src/main/jbhook/Module.mk
|
||||
include src/main/jbiotest/Module.mk
|
||||
include src/main/jbhook-util/Module.mk
|
||||
include src/main/jbhook-util-p3io/Module.mk
|
||||
include src/main/jbhook1/Module.mk
|
||||
include src/main/jbhook2/Module.mk
|
||||
include src/main/jbhook3/Module.mk
|
||||
include src/main/launcher/Module.mk
|
||||
include src/main/mempatch-hook/Module.mk
|
||||
include src/main/mm/Module.mk
|
||||
include src/main/p3io/Module.mk
|
||||
include src/main/p3iodrv/Module.mk
|
||||
include src/main/p3ioemu/Module.mk
|
||||
include src/main/p3io-ddr-tool/Module.mk
|
||||
include src/main/p4iodrv/Module.mk
|
||||
include src/main/p4ioemu/Module.mk
|
||||
include src/main/popnhook-util/Module.mk
|
||||
include src/main/popnhook1/Module.mk
|
||||
include src/main/popnio/Module.mk
|
||||
include src/main/pcbidgen/Module.mk
|
||||
include src/main/sdvxhook/Module.mk
|
||||
include src/main/sdvxhook2/Module.mk
|
||||
include src/main/sdvxhook2-cn/Module.mk
|
||||
include src/main/sdvxio/Module.mk
|
||||
include src/main/sdvxhook2/Module.mk
|
||||
include src/main/sdvxio-bio2/Module.mk
|
||||
include src/main/sdvxio-kfca/Module.mk
|
||||
include src/main/sdvxio/Module.mk
|
||||
include src/main/security/Module.mk
|
||||
include src/main/unicorntail/Module.mk
|
||||
include src/main/util/Module.mk
|
||||
include src/main/vefxio/Module.mk
|
||||
include src/main/vigem-iidxio/Module.mk
|
||||
include src/main/vigem-sdvxio/Module.mk
|
||||
include src/main/vigem-ddrio/Module.mk
|
||||
include src/main/vigemstub/Module.mk
|
||||
|
||||
include src/test/cconfig/Module.mk
|
||||
include src/test/d3d9hook/Module.mk
|
||||
include src/test/iidxhook-util/Module.mk
|
||||
include src/test/iidxhook8/Module.mk
|
||||
include src/test/security/Module.mk
|
||||
include src/test/test/Module.mk
|
||||
include src/test/util/Module.mk
|
||||
include src/test/iidxhook8/Module.mk
|
||||
|
||||
#
|
||||
# Distribution build rules
|
||||
@@ -163,12 +219,15 @@ $(zipdir)/:
|
||||
|
||||
$(zipdir)/tools.zip: \
|
||||
build/bin/indep-32/aciotest.exe \
|
||||
build/bin/indep-32/ddriotest.exe \
|
||||
build/bin/indep-32/eamiotest.exe \
|
||||
build/bin/indep-32/ezusb-iidx-fpga-flash.exe \
|
||||
build/bin/indep-32/ezusb-iidx-sram-flash.exe \
|
||||
build/bin/indep-32/iidxiotest.exe \
|
||||
build/bin/indep-32/iidx-bio2-exit-hook.dll \
|
||||
build/bin/indep-32/iidx-ezusb-exit-hook.dll \
|
||||
build/bin/indep-32/iidx-ezusb2-exit-hook.dll \
|
||||
build/bin/indep-32/jbiotest.exe \
|
||||
build/bin/indep-32/pcbidgen.exe \
|
||||
dist/iidx/ezusb-boot.bat \
|
||||
dist/iidx/ezusb2-boot.bat \
|
||||
@@ -181,27 +240,25 @@ $(zipdir)/tools.zip: \
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/tools-x64.zip: \
|
||||
build/bin/indep-64/aciotest.exe \
|
||||
build/bin/indep-64/ddriotest.exe \
|
||||
build/bin/indep-64/eamiotest.exe \
|
||||
build/bin/indep-64/iidxiotest.exe \
|
||||
build/bin/indep-64/iidx-bio2-exit-hook.dll \
|
||||
build/bin/indep-64/iidx-ezusb-exit-hook.dll \
|
||||
build/bin/indep-64/iidx-ezusb2-exit-hook.dll \
|
||||
build/bin/indep-64/jbiotest.exe \
|
||||
build/bin/indep-64/mempatch-hook.dll \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/src.zip: .git/HEAD $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)git archive -o $@ HEAD
|
||||
|
||||
$(zipdir)/iidx-09-to-12.zip: \
|
||||
build/bin/indep-32/iidxhook1.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
@@ -225,11 +282,8 @@ $(zipdir)/iidx-13.zip: \
|
||||
build/bin/avs2_0-32/iidxhook2.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
@@ -244,11 +298,8 @@ $(zipdir)/iidx-14-to-17.zip: \
|
||||
build/bin/avs2_0-32/iidxhook3.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
@@ -270,11 +321,8 @@ $(zipdir)/iidx-18.zip: \
|
||||
build/bin/avs2_1101-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-18.bat \
|
||||
@@ -284,16 +332,28 @@ $(zipdir)/iidx-18.zip: \
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-18-cn.zip: \
|
||||
build/bin/avs2_1101-32/iidxhook4-cn.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-18-cn.bat \
|
||||
dist/iidx/iidxhook-18-cn.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-19.zip: \
|
||||
build/bin/avs2_1304-32/iidxhook5.dll \
|
||||
build/bin/avs2_1304-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-19.bat \
|
||||
@@ -308,11 +368,8 @@ $(zipdir)/iidx-20.zip: \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-20.bat \
|
||||
@@ -322,16 +379,28 @@ $(zipdir)/iidx-20.zip: \
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-20-cn.zip: \
|
||||
build/bin/avs2_1304-32/iidxhook5-cn.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-20-cn.bat \
|
||||
dist/iidx/iidxhook-20-cn.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-21-to-24.zip: \
|
||||
build/bin/avs2_1601-32/iidxhook7.dll \
|
||||
build/bin/avs2_1601-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-21.bat \
|
||||
@@ -352,11 +421,8 @@ $(zipdir)/iidx-25-to-26.zip: \
|
||||
build/bin/avs2_1700-64/launcher.exe \
|
||||
build/bin/indep-64/config.exe \
|
||||
build/bin/indep-64/eamio.dll \
|
||||
build/bin/indep-64/eamio-icca.dll \
|
||||
build/bin/indep-64/geninput.dll \
|
||||
build/bin/indep-64/iidxio.dll \
|
||||
build/bin/indep-64/iidxio-ezusb.dll \
|
||||
build/bin/indep-64/iidxio-ezusb2.dll \
|
||||
build/bin/indep-64/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-25.bat \
|
||||
@@ -368,6 +434,58 @@ $(zipdir)/iidx-25-to-26.zip: \
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-27-to-30.zip: \
|
||||
build/bin/avs2_1700-64/iidxhook9.dll \
|
||||
build/bin/avs2_1700-64/launcher.exe \
|
||||
build/bin/indep-64/config.exe \
|
||||
build/bin/indep-64/eamio.dll \
|
||||
build/bin/indep-64/geninput.dll \
|
||||
build/bin/indep-64/iidxio.dll \
|
||||
build/bin/indep-64/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-27.bat \
|
||||
dist/iidx/gamestart-28.bat \
|
||||
dist/iidx/gamestart-29.bat \
|
||||
dist/iidx/gamestart-30.bat \
|
||||
dist/iidx/iidxhook-27.conf \
|
||||
dist/iidx/iidxhook-28.conf \
|
||||
dist/iidx/iidxhook-29.conf \
|
||||
dist/iidx/iidxhook-30.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-hwio-x86.zip: \
|
||||
build/bin/indep-32/aciomgr.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/iidxio-async.dll \
|
||||
build/bin/indep-32/iidxio-bio2.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/iidxio-perf.dll \
|
||||
dist/iidx/iidxio-bio2.conf \
|
||||
build/bin/indep-32/vigem-iidxio.exe \
|
||||
dist/iidx/vigem-iidxio.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-hwio-x64.zip: \
|
||||
build/bin/indep-64/aciomgr.dll \
|
||||
build/bin/indep-64/eamio-icca.dll \
|
||||
build/bin/indep-64/iidxio-async.dll \
|
||||
build/bin/indep-64/iidxio-bio2.dll \
|
||||
build/bin/indep-64/iidxio-ezusb.dll \
|
||||
build/bin/indep-64/iidxio-ezusb2.dll \
|
||||
build/bin/indep-64/iidxio-perf.dll \
|
||||
dist/iidx/iidxio-bio2.conf \
|
||||
build/bin/indep-64/vigem-iidxio.exe \
|
||||
dist/iidx/vigem-iidxio.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-01.zip: \
|
||||
build/bin/avs2_803-32/jbhook1.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
@@ -382,28 +500,79 @@ $(zipdir)/jb-01.zip: \
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-02.zip: \
|
||||
build/bin/avs2_1002-32/jbhook1.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart-02.bat \
|
||||
dist/jb/jbhook-02.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-03.zip: \
|
||||
build/bin/avs2_1101-32/jbhook2.dll \
|
||||
build/bin/avs2_1101-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart-03.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-04.zip: \
|
||||
build/bin/avs2_1304-32/jbhook2.dll \
|
||||
build/bin/avs2_1304-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart-03.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-05-to-07.zip: \
|
||||
build/bin/avs2_1508-32/jbhook.dll \
|
||||
build/bin/avs2_1508-32/jbhook3.dll \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart.bat \
|
||||
dist/jb/gamestart-04.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-08.zip: \
|
||||
build/bin/avs2_1700-32/jbhook.dll \
|
||||
build/bin/avs2_1700-32/jbhook3.dll \
|
||||
build/bin/avs2_1700-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart.bat \
|
||||
dist/jb/gamestart-04.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-hwio.zip: \
|
||||
build/bin/indep-32/aciomgr.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/jbio-magicbox.dll \
|
||||
build/bin/indep-32/jbio-p4io.dll \
|
||||
dist/jb/jbio-h44b.conf \
|
||||
dist/jb/eamio-icc.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
@@ -415,21 +584,19 @@ $(zipdir)/sdvx-01-to-04.zip: \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/sdvxio.dll \
|
||||
build/bin/indep-32/sdvxio-kfca.dll \
|
||||
dist/sdvx/config.bat \
|
||||
dist/sdvx/gamestart.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/sdvx-05.zip: \
|
||||
$(zipdir)/sdvx-05-to-06.zip: \
|
||||
build/bin/avs2_1700-64/launcher.exe \
|
||||
build/bin/avs2_1700-64/sdvxhook2.dll \
|
||||
build/bin/indep-64/config.exe \
|
||||
build/bin/indep-64/eamio.dll \
|
||||
build/bin/indep-64/geninput.dll \
|
||||
build/bin/indep-64/sdvxio.dll \
|
||||
build/bin/indep-64/sdvxio-kfca.dll \
|
||||
dist/sdvx5/config.bat \
|
||||
dist/sdvx5/gamestart.bat \
|
||||
dist/sdvx5/sdvxhook2.conf \
|
||||
@@ -451,10 +618,68 @@ $(zipdir)/sdvx-05-cn.zip: \
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-12-to-16.zip: \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/avs2_1508-32/ddrhook.dll \
|
||||
build/bin/avs2_1508-32/unicorntail.dll \
|
||||
$(zipdir)/sdvx-hwio-x86.zip: \
|
||||
build/bin/indep-32/aciomgr.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/sdvxio-kfca.dll \
|
||||
build/bin/indep-32/sdvxio-bio2.dll \
|
||||
build/bin/indep-32/vigem-sdvxio.exe \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/sdvx-hwio-x64.zip: \
|
||||
build/bin/indep-64/aciomgr.dll \
|
||||
build/bin/indep-64/eamio-icca.dll \
|
||||
build/bin/indep-64/sdvxio-kfca.dll \
|
||||
build/bin/indep-64/sdvxio-bio2.dll \
|
||||
build/bin/indep-64/vigem-sdvxio.exe \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-11.zip: \
|
||||
build/bin/indep-32/inject.exe \
|
||||
build/bin/avs2_803-32/ddrhook1.dll \
|
||||
build/bin/avs2_803-32/unicorntail.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/ddrio.dll \
|
||||
build/bin/indep-32/ddrio-mm.dll \
|
||||
build/bin/indep-32/ddrio-smx.dll \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-11.bat \
|
||||
dist/ddr/gamestart-11-us.bat \
|
||||
dist/ddr/ddr-11.conf \
|
||||
dist/ddr/ddr-11-us.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-12-us.zip: \
|
||||
build/bin/indep-32/inject.exe \
|
||||
build/bin/avs2_1002-32/ddrhook1.dll \
|
||||
build/bin/avs2_1002-32/unicorntail.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/ddrio.dll \
|
||||
build/bin/indep-32/ddrio-mm.dll \
|
||||
build/bin/indep-32/ddrio-smx.dll \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-12-us.bat \
|
||||
dist/ddr/gamestart-12-eu.bat \
|
||||
dist/ddr/ddr-12-us.conf \
|
||||
dist/ddr/ddr-12-eu.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-12.zip: \
|
||||
build/bin/avs2_1002-32/launcher.exe \
|
||||
build/bin/avs2_1002-32/ddrhook2.dll \
|
||||
build/bin/avs2_1002-32/unicorntail.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/ddrio.dll \
|
||||
build/bin/indep-32/ddrio-mm.dll \
|
||||
@@ -463,10 +688,80 @@ $(zipdir)/ddr-12-to-16.zip: \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-12.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-13.zip: \
|
||||
build/bin/avs2_1306-32/launcher.exe \
|
||||
build/bin/avs2_1306-32/ddrhook2.dll \
|
||||
build/bin/avs2_1306-32/unicorntail.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/ddrio.dll \
|
||||
build/bin/indep-32/ddrio-mm.dll \
|
||||
build/bin/indep-32/ddrio-smx.dll \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-13.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-14-to-18.zip: \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/avs2_1508-32/ddrhook2.dll \
|
||||
build/bin/avs2_1508-32/unicorntail.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/ddrio.dll \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-14.bat \
|
||||
dist/ddr/gamestart-15.bat \
|
||||
dist/ddr/gamestart-16.bat \
|
||||
dist/ddr/gamestart-17.bat \
|
||||
dist/ddr/gamestart-18.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-16-to-18-x64.zip: \
|
||||
build/bin/avs2_1603-64/launcher.exe \
|
||||
build/bin/avs2_1603-64/ddrhook2.dll \
|
||||
build/bin/avs2_1603-64/unicorntail.dll \
|
||||
build/bin/indep-64/config.exe \
|
||||
build/bin/indep-64/ddrio.dll \
|
||||
build/bin/indep-64/eamio.dll \
|
||||
build/bin/indep-64/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-16.bat \
|
||||
dist/ddr/gamestart-17.bat \
|
||||
dist/ddr/gamestart-18.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-hwio-x86.zip: \
|
||||
build/bin/indep-32/ddrio-async.dll \
|
||||
build/bin/indep-32/ddrio-p3io.dll \
|
||||
build/bin/indep-32/ddrio-mm.dll \
|
||||
build/bin/indep-32/ddrio-smx.dll \
|
||||
build/bin/indep-32/extiotest.exe \
|
||||
build/bin/indep-32/p3io-ddr-tool.exe \
|
||||
build/bin/indep-32/vigem-ddrio.exe \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-hwio-x64.zip: \
|
||||
build/bin/indep-64/ddrio-async.dll \
|
||||
build/bin/indep-64/ddrio-p3io.dll \
|
||||
build/bin/indep-64/ddrio-mm.dll \
|
||||
build/bin/indep-64/ddrio-smx.dll \
|
||||
build/bin/indep-64/extiotest.exe \
|
||||
build/bin/indep-64/p3io-ddr-tool.exe \
|
||||
build/bin/indep-64/vigem-ddrio.exe \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
@@ -485,11 +780,29 @@ $(zipdir)/bst.zip: \
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/popn-15-to-18.zip: \
|
||||
build/bin/avs2_803-32/popnhook1.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/inject.exe \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/popnio.dll \
|
||||
build/bin/indep-32/ezusb2-popn-shim.dll \
|
||||
dist/popn/config.bat \
|
||||
dist/popn/gamestart-15.bat \
|
||||
dist/popn/gamestart-16.bat \
|
||||
dist/popn/gamestart-17.bat \
|
||||
dist/popn/gamestart-18.bat \
|
||||
dist/popn/popnhook-15.conf \
|
||||
dist/popn/popnhook-16.conf \
|
||||
dist/popn/popnhook-17.conf \
|
||||
dist/popn/popnhook-18.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/doc.zip: \
|
||||
doc/iidxhook \
|
||||
doc/sdvxhook \
|
||||
doc/jbhook \
|
||||
doc/tools \
|
||||
doc/ \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -r $@ $^
|
||||
@@ -522,23 +835,41 @@ $(BUILDDIR)/tests.zip: \
|
||||
|
||||
$(BUILDDIR)/bemanitools.zip: \
|
||||
$(zipdir)/bst.zip \
|
||||
$(zipdir)/ddr-12-to-16.zip \
|
||||
$(zipdir)/ddr-11.zip \
|
||||
$(zipdir)/ddr-12.zip \
|
||||
$(zipdir)/ddr-12-us.zip \
|
||||
$(zipdir)/ddr-13.zip \
|
||||
$(zipdir)/ddr-14-to-18.zip \
|
||||
$(zipdir)/ddr-16-to-18-x64.zip \
|
||||
$(zipdir)/ddr-hwio-x86.zip \
|
||||
$(zipdir)/ddr-hwio-x64.zip \
|
||||
$(zipdir)/doc.zip \
|
||||
$(zipdir)/iidx-09-to-12.zip \
|
||||
$(zipdir)/iidx-13.zip \
|
||||
$(zipdir)/iidx-14-to-17.zip \
|
||||
$(zipdir)/iidx-18.zip \
|
||||
$(zipdir)/iidx-18-cn.zip \
|
||||
$(zipdir)/iidx-19.zip \
|
||||
$(zipdir)/iidx-20.zip \
|
||||
$(zipdir)/iidx-20-cn.zip \
|
||||
$(zipdir)/iidx-21-to-24.zip \
|
||||
$(zipdir)/iidx-25-to-26.zip \
|
||||
$(zipdir)/iidx-27-to-30.zip \
|
||||
$(zipdir)/iidx-hwio-x86.zip \
|
||||
$(zipdir)/iidx-hwio-x64.zip \
|
||||
$(zipdir)/jb-01.zip \
|
||||
$(zipdir)/jb-02.zip \
|
||||
$(zipdir)/jb-03.zip \
|
||||
$(zipdir)/jb-04.zip \
|
||||
$(zipdir)/jb-05-to-07.zip \
|
||||
$(zipdir)/jb-08.zip \
|
||||
$(zipdir)/src.zip \
|
||||
$(zipdir)/jb-hwio.zip \
|
||||
$(zipdir)/popn-15-to-18.zip \
|
||||
$(zipdir)/sdvx-01-to-04.zip \
|
||||
$(zipdir)/sdvx-05.zip \
|
||||
$(zipdir)/sdvx-05-to-06.zip \
|
||||
$(zipdir)/sdvx-05-cn.zip \
|
||||
$(zipdir)/sdvx-hwio-x86.zip \
|
||||
$(zipdir)/sdvx-hwio-x64.zip \
|
||||
$(zipdir)/tools.zip \
|
||||
$(zipdir)/tools-x64.zip \
|
||||
CHANGELOG.md \
|
||||
|
||||
248
README.md
248
README.md
@@ -1,103 +1,189 @@
|
||||
# Bemanitools 5
|
||||
[](https://dev.s-ul.eu/djhackers/bemanitools/commits/master)
|
||||
|
||||
Version: 5.29</br>
|
||||
[Release history](CHANGELOG.md)
|
||||
Version: `5.49`
|
||||
|
||||
A collection of tools to run [various Bemani arcade games](#list-of-supported-games).
|
||||
[Changelog](CHANGELOG.md)
|
||||
|
||||
Bemanitools 5 (BT5) is the successor to Bemanitools 4 which introduces a big code cleanup and support for newer games.
|
||||
BT5 uses a cleaner approach than BT4 did; specifically, all input and lighting is handled by emulating the protocols
|
||||
spoken by the real IO PCBs, instead of replacing chunks of game code like BT4. The benefits of this approach are a more
|
||||
authentic gameplay experience, and easier support for a broader range of releases from each game series.
|
||||
A collection of tools to run [various Bemani arcade games](#supported-games).
|
||||
|
||||
# List of supported games
|
||||
* BeatStream
|
||||
* BeatStream (bst.zip) using bsthook
|
||||
* BeatStream アニムトライヴ (bst.zip) using bsthook
|
||||
* Dance Dance Revolution
|
||||
* Dance Dance Revolution X2 (ddr-12-to-16.zip) using ddrhook
|
||||
* Dance Dance Revolution X3 vs. 2ndMIX (ddr-12-to-16.zip) using ddrhook
|
||||
* Dance Dance Revolution 2013 (ddr-12-to-16.zip) using ddrhook
|
||||
* Dance Dance Revolution 2014 (ddr-12-to-16.zip) using ddrhook
|
||||
* Dance Dance Revolution A (ddr-12-to-16.zip) using ddrhook
|
||||
* Beatmania IIDX
|
||||
* Beatmania IIDX 9th Style (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
* Beatmania IIDX 10th Style (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
* Beatmania IIDX 11 IIDX RED (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
* Beatmania IIDX 12 HAPPY SKY (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
* Beatmania IIDX 13 DistorteD (iidx-13.zip) using [iidxhook2](doc/iidxhook/iidxhook2.md)
|
||||
* Beatmania IIDX 14 GOLD (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
* Beatmania IIDX 15 DJ TROOPERS (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
* Beatmania IIDX 16 EMPRESS (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
* Beatmania IIDX 17 SIRIUS (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
* Beatmania IIDX 18 Resort Anthem (iidx-18.zip) using [iidxhook4](doc/iidxhook/iidxhook4.md)
|
||||
* Beatmania IIDX 19 Lincle (iidx-19.zip) using [iidxhook5](doc/iidxhook/iidxhook5.md)
|
||||
* Beatmania IIDX 20 Tricoro (iidx-20.zip) using [iidxhook6](doc/iidxhook/iidxhook6.md)
|
||||
* Beatmania IIDX 21 SPADA (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
* Beatmania IIDX 22 PENDUAL (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
* Beatmania IIDX 23 copula (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
* Beatmania IIDX 24 SINOBUZ (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
* Beatmania IIDX 25 CANNON BALLERS (iidx-25-to-26.zip) using [iidxhook8](doc/iidxhook/iidxhook8.md)
|
||||
* Beatmania IIDX 26 Rootage (iidx-25-to-26.zip) using [iidxhook8](doc/iidxhook/iidxhook8.md)
|
||||
* jubeat
|
||||
* jubeat (experimental/buggy) (jb-01.zip) using [jbhook1](doc/jbhook1/jbhook1.md)
|
||||
* jubeat saucer (fulfill) (jb-05-to-07.zip) using jbhook
|
||||
* jubeat prop (jb-05-to-07.zip) using jbhook
|
||||
* jubeat Qubell (jb-05-to-07.zip) using jbhook
|
||||
* jubeat clan (jb-08.zip) using jbhook
|
||||
* SOUND VOLTEX
|
||||
* SOUND VOLTEX BOOTH (sdvx-01-to-04.zip) using sdvxhook
|
||||
* SOUND VOLTEX II -infinite infection- (sdvx-01-to-04.zip) using sdvxhook
|
||||
* SOUND VOLTEX III GRAVITY WARS (sdvx-01-to-04.zip) using sdvxhook
|
||||
* SOUND VOLTEX IV HEAVENLY HAVEN (sdvx-01-to-04.zip) using sdvxhook
|
||||
* SOUND VOLTEX Vivid Wave (sdvx-05.zip) using sdvxhook2
|
||||
Bemanitools 5 (BT5) is the successor to Bemanitools 4 which introduces a big code cleanup and
|
||||
support for newer games. BT5 uses a cleaner approach than BT4 did; specifically, all input and
|
||||
lighting is handled by emulating the protocols spoken by the real IO PCBs, instead of replacing
|
||||
chunks of game code like BT4. The benefits of this approach are a more authentic gameplay
|
||||
experience, and easier support for a broader range of releases from each game series.
|
||||
|
||||
# Supported platforms
|
||||
Our main platforms are currently Windows XP and Windows 7 which are also the target platforms on the original hardware
|
||||
of those games. However, as it gets more difficult to get and maintain hardware comptible with Windows XP, this might
|
||||
change in the future. Many games also run on very recent Windows 10 builds but bear with us that it's hard to keep up
|
||||
with Windows updates breaking legacy software.
|
||||
## Documentation
|
||||
|
||||
# Distribution contents
|
||||
Check the [list of supported games](#list-of-supported-games) to grab the right files for your game. BT5 also includes
|
||||
a *tools* subpackage (tools.zip) as well as the full source code (src.zip).
|
||||
Browse our [documentation](doc/README.md) as it might already cover various questions and concerns
|
||||
you are looking for or about to ask.
|
||||
|
||||
You will find *.md files in various sub-packages that give you further instructions for setup, usage, error information
|
||||
or FAQ. We advice you to read them as your questions and concerns might already be answered by them. If not, let us
|
||||
know if there is any information that you consider helpful or important to know and should be added.
|
||||
## Contributions and bug reporting
|
||||
|
||||
[Read the dedicated CONTRIBUTING.md documentation](CONTRIBUTING.md).
|
||||
|
||||
The tl;dr version and golden rules of the sections in the document:
|
||||
|
||||
- **EVERYONE** can contribute, this is **NOT** limited to people coding
|
||||
- [Open an issue on gitlab for discussions, feature requests and bug reports](CONTRIBUTING.md#reporting-and-discussions-issues-section-on-github)
|
||||
- [ALWAYS report bugs as issues and ALWAYS use the available bug template](CONTRIBUTING.md#bug-reports)
|
||||
- [Everyone is allowed to submit changes which are not just limited to code by opening merge requests](CONTRIBUTING.md#pull-requests-bugfixes-new-features-or-other-code-contributions)
|
||||
- [Documentation improvements can and even should be contributed by non developers](CONTRIBUTING.md#pull-requests-bugfixes-new-features-or-other-code-contributions)
|
||||
|
||||
## Supported games
|
||||
|
||||
The following games are supported with their corresponding hook-libraries.
|
||||
|
||||
- BeatStream
|
||||
- BeatStream (`bst.zip`): bsthook
|
||||
- BeatStream アニムトライヴ (`bst.zip`): bsthook
|
||||
- [Dance Dance Revolution](doc/ddrhook/README.md)
|
||||
- Dance Dance Revolution X (`ddr-11.zip`): [ddrhook1](doc/ddrhook/ddrhook1.md)
|
||||
- Dance Dance Revolution X2 (US/EU regions) (`ddr-12-us.zip`): [ddrhook1](doc/ddrhook/ddrhook1.md)
|
||||
- Dance Dance Revolution X2 (JP region) (`ddr-12.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- Dance Dance Revolution X3 vs. 2ndMIX (`ddr-13.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- Dance Dance Revolution 2013 (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- Dance Dance Revolution 2014 (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- Dance Dance Revolution A (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- Dance Dance Revolution A20 (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- Dance Dance Revolution A20+ (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
|
||||
- [Beatmania IIDX](doc/iidxhook/README.md)
|
||||
- Beatmania IIDX 9th Style (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
- Beatmania IIDX 10th Style (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
- Beatmania IIDX 11 IIDX RED (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
- Beatmania IIDX 12 HAPPY SKY (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
|
||||
- Beatmania IIDX 13 DistorteD (`iidx-13.zip`): [iidxhook2](doc/iidxhook/iidxhook2.md)
|
||||
- Beatmania IIDX 14 GOLD (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
- Beatmania IIDX 15 DJ TROOPERS (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
- Beatmania IIDX 16 EMPRESS (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
- Beatmania IIDX 17 SIRIUS (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
|
||||
- Beatmania IIDX 18 Resort Anthem (`iidx-18.zip`): [iidxhook4](doc/iidxhook/iidxhook4.md)
|
||||
- Beatmania IIDX 19 Lincle (`iidx-19.zip`): [iidxhook5](doc/iidxhook/iidxhook5.md)
|
||||
- Beatmania IIDX tricoro CN (狂热节拍 IIDX 2) (`iidx-20-cn.zip`):
|
||||
[iidxhook5-cn](doc/iidxhook/iidxhook5-cn.md)
|
||||
- Beatmania IIDX 20 Tricoro (`iidx-20.zip`): [iidxhook6](doc/iidxhook/iidxhook6.md)
|
||||
- Beatmania IIDX 21 SPADA (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
- Beatmania IIDX 22 PENDUAL (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
- Beatmania IIDX 23 copula (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
- Beatmania IIDX 24 SINOBUZ (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
|
||||
- Beatmania IIDX 25 CANNON BALLERS (`iidx-25-to-26.zip`): [iidxhook8](doc/iidxhook/iidxhook8.md)
|
||||
- Beatmania IIDX 26 Rootage (`iidx-25-to-26.zip`): [iidxhook8](doc/iidxhook/iidxhook8.md)
|
||||
- Beatmania IIDX 27 Heroic Verse (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
|
||||
- Beatmania IIDX 28 BISTROVER (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
|
||||
- Beatmania IIDX 29 CASTHOUR (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
|
||||
- Beatmania IIDX 30 RESIDENT (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
|
||||
- [jubeat](doc/jbhook/README.md)
|
||||
- jubeat (`jb-01.zip`): [jbhook1](doc/jbhook/jbhook1.md)
|
||||
- jubeat ripples (`jb-02.zip`): [jbhook1](doc/jbhook/jbhook1.md)
|
||||
- jubeat knit (`jb-03.zip`): [jbhook2](doc/jbhook/jbhook2.md)
|
||||
- jubeat copious (`jb-04.zip`): [jbhook2](doc/jbhook/jbhook2.md)
|
||||
- jubeat saucer (fulfill) (`jb-05-to-07.zip`): [jbhook3](doc/jbhook/jbhook3.md)
|
||||
- jubeat prop (`jb-05-to-07.zip`): [jbhook3](doc/jbhook/jbhook3.md)
|
||||
- jubeat qubell (`jb-05-to-07.zip`): [jbhook3](doc/jbhook/jbhook3.md)
|
||||
- jubeat clan (`jb-08.zip`): [jbhook3](doc/jbhook/jbhook3.md)
|
||||
- jubeat festo (`jb-08.zip`): [jbhook3](doc/jbhook/jbhook3.md)
|
||||
- [pop'n music](doc/popnhook/README.md)
|
||||
- pop'n music 15 ADVENTURE (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
|
||||
- pop'n music 16 PARTY♪ (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
|
||||
- pop'n music 17 THE MOVIE (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
|
||||
- pop'n music 18 せんごく列伝 (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
|
||||
- SOUND VOLTEX
|
||||
- SOUND VOLTEX BOOTH (`sdvx-01-to-04.zip`): sdvxhook
|
||||
- SOUND VOLTEX II -infinite infection- (`sdvx-01-to-04.zip`): sdvxhook
|
||||
- SOUND VOLTEX III GRAVITY WARS (`sdvx-01-to-04.zip`): sdvxhook
|
||||
- SOUND VOLTEX IV HEAVENLY HAVEN (`sdvx-01-to-04.zip`): sdvxhook
|
||||
- SOUND VOLTEX Vivid Wave (`sdvx-05-to-06`): sdvxhook2
|
||||
- SOUND VOLTEX EXCEED GEAR (`sdvx-05-to-06`): sdvxhook2
|
||||
|
||||
## Auxiliary tooling
|
||||
|
||||
- Bootstrapping
|
||||
- [inject](doc/inject.md): Inject arbitrary hooking libraries into a target application process.
|
||||
- [launcher](doc/launcher.md): Bootstrap Konami's AVS environment and launch a target application
|
||||
with arbitrary injected hooking libraries.
|
||||
- Beatmnia IIDX Ezusb IO board
|
||||
- [ezusb-iidx-fpga-flash](doc/tools/ezusb-iidx-fpga-flash.md): Flash a binary blob with FPGA
|
||||
firmware to a target ezusb FX IO board
|
||||
- [ezusb-iidx-sram-flash](doc/tools/ezusb-iidx-sram-flash.md): Flash a binary blob with SRAM
|
||||
contents to a target ezusb FX2 IO board
|
||||
- Exit hooks: Exit the game with a button combination using native cabinet inputs
|
||||
- [iidx-ezusb-exit-hook](doc/tools/iidx-ezusb-exit-hook.md): For IIDX with ezusb IO
|
||||
- [iidx-bio2-exit-hook](doc/tools/iidx-bio2-exit-hook.md): For IIDX with BIO2 IO
|
||||
- [iidx-ezusb2-exit-hook](doc/tools/iidx-ezusb-exit-hook.md): For IIDX with ezusb FX2 IO
|
||||
- Bemanitools API testing: Tools for testing bemanitools API implementations
|
||||
- [ddriotest](doc/tools/ddriotest.md): For [ddrio API](doc/api.md#io-boards)
|
||||
- [eamiotest](doc/tools/eamiotest.md): For [eamio API](doc/api.md#eamuse-readers)
|
||||
- [iidxiotest](doc/tools/iidxiotest.md): For [iidxio API](doc/api.md#io-boards)
|
||||
- [jbiotest](doc/tools/jbiotest.md): For [jbio API](doc/api.md#io-boards)
|
||||
- DDR IO testing: Tools for testing hardware of a real DDR cabinet
|
||||
- [p3io-ddr-tool](doc/tools/p3io-ddr-tool.md)
|
||||
- [extiotest](doc/tools/extiotest.md)
|
||||
- [aciotest](doc/tools/aciotest.md): Command line tool to quickly test ACIO devices
|
||||
- config: UI input/output configuration tool when using the default bemanitools API (geninput)
|
||||
- ir-beat-patch-9/10: Patch the IR beat phase on IIDX 9 and 10
|
||||
- [mempatch-hook](doc/tools/mempatch-hook.md): Patch raw memory locations in the target process
|
||||
based on the provided configuration
|
||||
- [pcbidgen](doc/tools/pcbidgen.md): Konami PCBID generator tool
|
||||
- [ViGEm clients](doc/vigem/README.md): Expose BT5 APIs as XBOX game controllers to play any games
|
||||
with real cabinet hardware.
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
### Supported platforms
|
||||
|
||||
Our main platforms are currently Windows XP and Windows 7 which are also the target platforms on the
|
||||
original hardware of those games. However, as it gets more difficult to get and maintain hardware
|
||||
comptible with Windows XP, this might change in the future. Many games also run on very recent
|
||||
Windows 10 builds but bear with us that it's hard to keep up with Windows updates breaking legacy
|
||||
software.
|
||||
|
||||
### Distribution contents
|
||||
|
||||
Check the [list of supported games](#supported-games) to grab the right files for your game. BT5
|
||||
also includes a *tools* subpackage (tools.zip) as well as the full source code (src.zip).
|
||||
|
||||
You will find \*.md files in various sub-packages that give you further instructions for setup,
|
||||
usage, error information or FAQ. We advice you to read them as your questions and concerns might
|
||||
already be answered by them. If not, let us know if there is any information that you consider
|
||||
helpful or important to know and should be added.
|
||||
|
||||
### Setup and dependencies
|
||||
|
||||
# Setup and dependencies
|
||||
Most (older generation) games were developed for Windows XP Embedded but should run fine on any
|
||||
consumer version of Windows XP. Newer versions of Windows, e.g. Windows 7, 8 and 10, should be fine
|
||||
as well. Some hooks also include fixes required to run the games on a more recent version.
|
||||
|
||||
Depending on the game, you also need the following dependencies installed:
|
||||
* DirectX 9 runtime
|
||||
* Microsoft Visual C++ Redistributables 2010 **and** 2013: Depends on the game and age but both
|
||||
should cover most if not all of the games so far
|
||||
|
||||
# Contributions
|
||||
Please refer to the [dedicated documentation](CONTRIBUTING.md).
|
||||
- The 32-bit (x86) version of
|
||||
[Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update](https://www.microsoft.com/en-sg/download/details.aspx?id=26999)
|
||||
- The 32-bit (x86) and 64-bit (x64) versions of
|
||||
[Microsoft Visual C++ Redistributable Packages for Visual Studio 2013](https://www.microsoft.com/en-sg/download/details.aspx?id=40784)
|
||||
- The
|
||||
[DirectX 9 End-User Runtimes (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109)
|
||||
|
||||
# Development
|
||||
## Architecture
|
||||
A dedicate [architecture document](doc/architecture.md) outlines the architecture of Bemanitools and points out the most
|
||||
important aspects you should know before you get started with development.
|
||||
See also [bemanitools-supplement](https://www.github.com/djhackersdev/bemanitools-supplement/) for
|
||||
files.
|
||||
|
||||
## Development
|
||||
|
||||
### Building
|
||||
|
||||
See the [development document](doc/development.md).
|
||||
|
||||
### Architecture
|
||||
|
||||
A dedicate [architecture document](doc/architecture.md) outlines the architecture of Bemanitools and
|
||||
points out the most important aspects you should know before you get started with development.
|
||||
|
||||
### API
|
||||
|
||||
## API
|
||||
Please refer to the [API documentation](doc/api.md).
|
||||
|
||||
## Source Code
|
||||
The source code is included with this distribution package (src.zip). Please refer to the
|
||||
[development document](doc/development.md) for further details.
|
||||
|
||||
# License
|
||||
Source code license is the Unlicense; you are permitted to do with this as thou wilt. For details, please refer to the
|
||||
[LICENSE file](LICENSE) included with the source code.
|
||||
|
||||
|
||||
|
||||
## Release process
|
||||
|
||||
Please refer to the [dedicated documentation](doc/release-process.md).
|
||||
|
||||
## License
|
||||
|
||||
Source code license is the Unlicense; you are permitted to do with this as thou wilt. For details,
|
||||
please refer to the [LICENSE file](LICENSE) included with the source code.
|
||||
|
||||
32
dist/ddr/ddr-11-us.conf
vendored
Normal file
32
dist/ddr/ddr-11-us.conf
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Mcode of the game to run.
|
||||
security.mcode=GQHDXUAA
|
||||
|
||||
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
|
||||
ddrhook1.use_com4_emu=true
|
||||
|
||||
# SD cabinet mode
|
||||
ddrhook1.standard_def=false
|
||||
|
||||
# Use 15 kHz monitor mode
|
||||
ddrhook1.use_15khz=false
|
||||
|
||||
# Enable USB memory data emulation
|
||||
ddrhook1.usbmem_enabled=false
|
||||
|
||||
# Specify path for P1 USB memory data
|
||||
ddrhook1.usbmem_path_p1=usbmem_p1
|
||||
|
||||
# Specify path for P2 USB memory data
|
||||
ddrhook1.usbmem_path_p2=usbmem_p2
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
32
dist/ddr/ddr-11.conf
vendored
Normal file
32
dist/ddr/ddr-11.conf
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Mcode of the game to run.
|
||||
security.mcode=GQHDXJAA
|
||||
|
||||
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
|
||||
ddrhook1.use_com4_emu=true
|
||||
|
||||
# SD cabinet mode
|
||||
ddrhook1.standard_def=false
|
||||
|
||||
# Use 15 kHz monitor mode
|
||||
ddrhook1.use_15khz=false
|
||||
|
||||
# Enable USB memory data emulation
|
||||
ddrhook1.usbmem_enabled=false
|
||||
|
||||
# Specify path for P1 USB memory data
|
||||
ddrhook1.usbmem_path_p1=usbmem_p1
|
||||
|
||||
# Specify path for P2 USB memory data
|
||||
ddrhook1.usbmem_path_p2=usbmem_p2
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
32
dist/ddr/ddr-12-eu.conf
vendored
Normal file
32
dist/ddr/ddr-12-eu.conf
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Mcode of the game to run.
|
||||
security.mcode=GQJDXEAA
|
||||
|
||||
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
|
||||
ddrhook1.use_com4_emu=true
|
||||
|
||||
# SD cabinet mode
|
||||
ddrhook1.standard_def=false
|
||||
|
||||
# Use 15 kHz monitor mode
|
||||
ddrhook1.use_15khz=false
|
||||
|
||||
# Enable USB memory data emulation
|
||||
ddrhook1.usbmem_enabled=false
|
||||
|
||||
# Specify path for P1 USB memory data
|
||||
ddrhook1.usbmem_path_p1=usbmem_p1
|
||||
|
||||
# Specify path for P2 USB memory data
|
||||
ddrhook1.usbmem_path_p2=usbmem_p2
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
32
dist/ddr/ddr-12-us.conf
vendored
Normal file
32
dist/ddr/ddr-12-us.conf
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Mcode of the game to run.
|
||||
security.mcode=GQJDXUAA
|
||||
|
||||
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
|
||||
ddrhook1.use_com4_emu=true
|
||||
|
||||
# SD cabinet mode
|
||||
ddrhook1.standard_def=false
|
||||
|
||||
# Use 15 kHz monitor mode
|
||||
ddrhook1.use_15khz=false
|
||||
|
||||
# Enable USB memory data emulation
|
||||
ddrhook1.usbmem_enabled=false
|
||||
|
||||
# Specify path for P1 USB memory data
|
||||
ddrhook1.usbmem_path_p1=usbmem_p1
|
||||
|
||||
# Specify path for P2 USB memory data
|
||||
ddrhook1.usbmem_path_p2=usbmem_p2
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
11
dist/ddr/gamestart-11-us.bat
vendored
Normal file
11
dist/ddr/gamestart-11-us.bat
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\CLVsd.ax
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
inject ddrhook1.dll DDR.exe --config ddr-11-us.conf %*
|
||||
11
dist/ddr/gamestart-11.bat
vendored
Normal file
11
dist/ddr/gamestart-11.bat
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\CLVsd.ax
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
inject ddrhook1.dll DDR.exe --config ddr-11.conf %*
|
||||
11
dist/ddr/gamestart-12-eu.bat
vendored
Normal file
11
dist/ddr/gamestart-12-eu.bat
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\CLVsd.ax
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
inject ddrhook1.dll DDR.exe --config ddr-12-eu.conf %*
|
||||
11
dist/ddr/gamestart-12-us.bat
vendored
Normal file
11
dist/ddr/gamestart-12-us.bat
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\CLVsd.ax
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
inject ddrhook1.dll DDR.exe --config ddr-12-us.conf %*
|
||||
2
dist/ddr/gamestart-12.bat
vendored
2
dist/ddr/gamestart-12.bat
vendored
@@ -8,4 +8,4 @@ if not exist conf\raw mkdir conf\raw
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\ddr.dll %*
|
||||
.\launcher.exe -K .\ddrhook2.dll .\ddr.dll %*
|
||||
|
||||
2
dist/ddr/gamestart-13.bat
vendored
2
dist/ddr/gamestart-13.bat
vendored
@@ -8,4 +8,4 @@ if not exist conf\raw mkdir conf\raw
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\ddr.dll %*
|
||||
.\launcher.exe -K .\ddrhook2.dll .\ddr.dll %*
|
||||
|
||||
2
dist/ddr/gamestart-14.bat
vendored
2
dist/ddr/gamestart-14.bat
vendored
@@ -11,4 +11,4 @@ if not exist conf\raw mkdir conf\raw
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\mdxja_945.dll %*
|
||||
.\launcher.exe -K .\ddrhook2.dll .\mdxja_945.dll %*
|
||||
|
||||
2
dist/ddr/gamestart-15.bat
vendored
2
dist/ddr/gamestart-15.bat
vendored
@@ -11,4 +11,4 @@ if not exist conf\raw mkdir conf\raw
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\mdxja_945.dll %*
|
||||
.\launcher.exe -K .\ddrhook2.dll .\mdxja_945.dll %*
|
||||
|
||||
2
dist/ddr/gamestart-16.bat
vendored
2
dist/ddr/gamestart-16.bat
vendored
@@ -12,4 +12,4 @@ if not exist conf\raw mkdir conf\raw
|
||||
regsvr32 /s com\k-clvsd.dll
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -H 33554432 -K .\ddrhook.dll .\arkmdxp3.dll %*
|
||||
.\launcher.exe -H 33554432 -K .\ddrhook2.dll .\arkmdxp3.dll %*
|
||||
|
||||
15
dist/ddr/gamestart-17.bat
vendored
Normal file
15
dist/ddr/gamestart-17.bat
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\nvram\ea3-config.xml copy prop\eamuse-config.xml conf\nvram\ea3-config.xml
|
||||
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml
|
||||
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml
|
||||
if not exist conf\nvram\testmode-v.xml copy prop\testmode-v.xml conf\nvram\testmode-v.xml
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\k-clvsd.dll
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -H 33554432 -K .\ddrhook2.dll .\arkmdxp3.dll %*
|
||||
15
dist/ddr/gamestart-18.bat
vendored
Normal file
15
dist/ddr/gamestart-18.bat
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\nvram\ea3-config.xml copy prop\eamuse-config.xml conf\nvram\ea3-config.xml
|
||||
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml
|
||||
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml
|
||||
if not exist conf\nvram\testmode-v.xml copy prop\testmode-v.xml conf\nvram\testmode-v.xml
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\k-clvsd.dll
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -H 33554432 -K .\ddrhook2.dll .\arkmdxp3.dll %*
|
||||
17
dist/iidx/gamestart-18-cn.bat
vendored
Normal file
17
dist/iidx/gamestart-18-cn.bat
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
inject iidxhook4-cn.dll bm2dx.exe -D --config iidxhook-18-cn.conf %*
|
||||
17
dist/iidx/gamestart-20-cn.bat
vendored
Normal file
17
dist/iidx/gamestart-20-cn.bat
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
inject iidxhook5-cn.dll bm2dx.exe -D --config iidxhook-20-cn.conf %*
|
||||
16
dist/iidx/gamestart-27.bat
vendored
Normal file
16
dist/iidx/gamestart-27.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev mkdir dev
|
||||
if not exist dev\e mkdir dev\e
|
||||
if not exist dev\g mkdir dev\g
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
if not exist dev\raw\log mkdir dev\raw\log
|
||||
if not exist dev\raw\fscache mkdir dev\raw\fscache
|
||||
|
||||
for /R prop\defaults %%D in (*.*) do (
|
||||
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram
|
||||
)
|
||||
|
||||
launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-27.conf %*
|
||||
16
dist/iidx/gamestart-28.bat
vendored
Normal file
16
dist/iidx/gamestart-28.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev mkdir dev
|
||||
if not exist dev\e mkdir dev\e
|
||||
if not exist dev\g mkdir dev\g
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
if not exist dev\raw\log mkdir dev\raw\log
|
||||
if not exist dev\raw\fscache mkdir dev\raw\fscache
|
||||
|
||||
for /R prop\defaults %%D in (*.*) do (
|
||||
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram
|
||||
)
|
||||
|
||||
launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-28.conf %*
|
||||
16
dist/iidx/gamestart-29.bat
vendored
Normal file
16
dist/iidx/gamestart-29.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev mkdir dev
|
||||
if not exist dev\e mkdir dev\e
|
||||
if not exist dev\g mkdir dev\g
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
if not exist dev\raw\log mkdir dev\raw\log
|
||||
if not exist dev\raw\fscache mkdir dev\raw\fscache
|
||||
|
||||
for /R prop\defaults %%D in (*.*) do (
|
||||
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram
|
||||
)
|
||||
|
||||
launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-29.conf %*
|
||||
16
dist/iidx/gamestart-30.bat
vendored
Normal file
16
dist/iidx/gamestart-30.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev mkdir dev
|
||||
if not exist dev\e mkdir dev\e
|
||||
if not exist dev\g mkdir dev\g
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
if not exist dev\raw\log mkdir dev\raw\log
|
||||
if not exist dev\raw\fscache mkdir dev\raw\fscache
|
||||
|
||||
for /R prop\defaults %%D in (*.*) do (
|
||||
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram
|
||||
)
|
||||
|
||||
modules\launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-30.conf %*
|
||||
47
dist/iidx/iidx-irbeat-patch-09.bat
vendored
47
dist/iidx/iidx-irbeat-patch-09.bat
vendored
@@ -1,12 +1,45 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
IF "%1"=="" GOTO USAGE
|
||||
REM Open menu if no arguments specified
|
||||
if "%~1" == "" goto menu
|
||||
|
||||
iidx-irbeat-patch.exe 9 %1 e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 9 %1 f\\settings.bin.1
|
||||
GOTO END
|
||||
if "%~1" gtr "3" goto badbeat
|
||||
if "%~1" == "0" goto badbeat
|
||||
|
||||
:USAGE
|
||||
ECHO "Usage: iidx-irbeat-patch.bat <beat phase>"
|
||||
set beat = "%~1" - 1
|
||||
iidx-irbeat-patch.exe 9 %beat% e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 9 %beat% f\\settings.bin.1
|
||||
|
||||
if not errorlevel 0 goto error
|
||||
echo Beat phase patched sucessfully
|
||||
exit /b
|
||||
|
||||
:menu
|
||||
echo Select beat phase:
|
||||
echo 1 - beat#1
|
||||
echo 2 - beat#2
|
||||
echo 3 - beat#3
|
||||
|
||||
choice /n /c:123
|
||||
set /a beat = %errorlevel% - 1
|
||||
|
||||
echo.
|
||||
iidx-irbeat-patch.exe 9 %beat% e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 9 %beat% f\\settings.bin.1
|
||||
echo.
|
||||
|
||||
if not errorlevel 0 goto error
|
||||
echo Beat phase patched sucessfully
|
||||
timeout 5
|
||||
exit /b
|
||||
|
||||
:error
|
||||
echo Something has gone wrong with the patching process, have you run the game at least once?
|
||||
pause
|
||||
exit /b
|
||||
|
||||
:badbeat
|
||||
echo Invalid beat phase specified, values are 1 to 3.
|
||||
exit /b
|
||||
|
||||
:END
|
||||
|
||||
47
dist/iidx/iidx-irbeat-patch-10.bat
vendored
47
dist/iidx/iidx-irbeat-patch-10.bat
vendored
@@ -1,12 +1,45 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
IF "%1"=="" GOTO USAGE
|
||||
REM Open menu if no arguments specified
|
||||
if "%~1" == "" goto menu
|
||||
|
||||
iidx-irbeat-patch.exe 10 %1 e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 10 %1 f\\settings.bin.1
|
||||
GOTO END
|
||||
if %~1 gtr 3 goto badbeat
|
||||
if %~1 == 0 goto badbeat
|
||||
|
||||
:USAGE
|
||||
ECHO "Usage: iidx-irbeat-patch.bat <beat phase>"
|
||||
set /a beat = %~1 - 1
|
||||
iidx-irbeat-patch.exe 9 %beat% e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 9 %beat% f\\settings.bin.1
|
||||
|
||||
if not errorlevel 0 goto error
|
||||
echo Beat phase patched sucessfully
|
||||
exit /b
|
||||
|
||||
:menu
|
||||
echo Select beat phase:
|
||||
echo 1 - beat#1
|
||||
echo 2 - beat#2
|
||||
echo 3 - beat#3
|
||||
|
||||
choice /n /c:123
|
||||
set /a beat = %errorlevel% - 1
|
||||
|
||||
echo.
|
||||
iidx-irbeat-patch.exe 10 %beat% e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 10 %beat% f\\settings.bin.1
|
||||
echo.
|
||||
|
||||
if not errorlevel 0 goto error
|
||||
echo Beat phase patched sucessfully
|
||||
timeout 5
|
||||
exit /b
|
||||
|
||||
:error
|
||||
echo Something has gone wrong with the patching process, have you run the game at least once?
|
||||
pause
|
||||
exit /b
|
||||
|
||||
:badbeat
|
||||
echo Invalid beat phase specified, values are 1 to 3.
|
||||
exit /b
|
||||
|
||||
:END
|
||||
|
||||
15
dist/iidx/iidxhook-09.conf
vendored
15
dist/iidx/iidxhook-09.conf
vendored
@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,17 +46,26 @@ gfx.forced_refresh_rate=-1
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
|
||||
ezusb.api_call_monitoring=false
|
||||
|
||||
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
|
||||
ezusb.io_board_type=0
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
|
||||
sec.boot_seeds=0:0:0
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQC02JAA
|
||||
# Security black plug mcode id string (e.g. GEC02JAA).
|
||||
sec.black_plug_mcode=GEC02JAA
|
||||
11
dist/iidx/iidxhook-10.conf
vendored
11
dist/iidx/iidxhook-10.conf
vendored
@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,12 +46,21 @@ gfx.forced_refresh_rate=-1
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
|
||||
ezusb.api_call_monitoring=false
|
||||
|
||||
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
|
||||
ezusb.io_board_type=1
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
|
||||
11
dist/iidx/iidxhook-11.conf
vendored
11
dist/iidx/iidxhook-11.conf
vendored
@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,12 +46,21 @@ gfx.forced_refresh_rate=-1
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
|
||||
ezusb.api_call_monitoring=false
|
||||
|
||||
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
|
||||
ezusb.io_board_type=1
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
|
||||
11
dist/iidx/iidxhook-12.conf
vendored
11
dist/iidx/iidxhook-12.conf
vendored
@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,6 +46,12 @@ gfx.forced_refresh_rate=-1
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
|
||||
ezusb.api_call_monitoring=false
|
||||
|
||||
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
|
||||
ezusb.io_board_type=1
|
||||
|
||||
# Fix broken 3D background on Happy Sky's music select (if appearing completely white)
|
||||
misc.happy_sky_ms_bg_fix=false
|
||||
|
||||
@@ -55,6 +61,9 @@ misc.disable_clock_set=false
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
|
||||
11
dist/iidx/iidxhook-13.conf
vendored
11
dist/iidx/iidxhook-13.conf
vendored
@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,6 +46,12 @@ gfx.forced_refresh_rate=-1
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
|
||||
ezusb.api_call_monitoring=false
|
||||
|
||||
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
|
||||
ezusb.io_board_type=1
|
||||
|
||||
# Fix broken 3D background on DistorteD's music select (if appearing completely black)
|
||||
misc.distorted_ms_bg_fix=false
|
||||
|
||||
@@ -55,6 +61,9 @@ misc.disable_clock_set=false
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
|
||||
8
dist/iidx/iidxhook-14.conf
vendored
8
dist/iidx/iidxhook-14.conf
vendored
@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,8 +46,8 @@ gfx.device_adapter=-1
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GQGLDJAA
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQGLDJA
|
||||
sec.black_plug_mcode=GQGLDJAA
|
||||
8
dist/iidx/iidxhook-15.conf
vendored
8
dist/iidx/iidxhook-15.conf
vendored
@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -46,8 +46,8 @@ gfx.device_adapter=-1
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GQHDDJAA
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQHDDJA
|
||||
sec.black_plug_mcode=GQHDDJAA
|
||||
8
dist/iidx/iidxhook-16.conf
vendored
8
dist/iidx/iidxhook-16.conf
vendored
@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -49,8 +49,8 @@ gfx.device_adapter=-1
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GQI00JAA
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQI00JA
|
||||
sec.black_plug_mcode=GQI00JAA
|
||||
8
dist/iidx/iidxhook-17.conf
vendored
8
dist/iidx/iidxhook-17.conf
vendored
@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
@@ -49,8 +49,8 @@ gfx.device_adapter=-1
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GCJDJJAA
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GCJDJJA
|
||||
sec.black_plug_mcode=GCJDJJAA
|
||||
50
dist/iidx/iidxhook-18-cn.conf
vendored
Normal file
50
dist/iidx/iidxhook-18-cn.conf
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, 0 for default size
|
||||
gfx.window_width=0
|
||||
|
||||
# Windowed height, 0 for default size
|
||||
gfx.window_height=0
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
|
||||
gfx.diagonal_tearing_fix=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GKJDZCAA
|
||||
15
dist/iidx/iidxhook-18.conf
vendored
15
dist/iidx/iidxhook-18.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -36,3 +33,15 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
|
||||
gfx.diagonal_tearing_fix=false
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
18
dist/iidx/iidxhook-19.conf
vendored
18
dist/iidx/iidxhook-19.conf
vendored
@@ -1,12 +1,12 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
@@ -33,3 +33,15 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
|
||||
gfx.diagonal_tearing_fix=false
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
47
dist/iidx/iidxhook-20-cn.conf
vendored
Normal file
47
dist/iidx/iidxhook-20-cn.conf
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, 0 for default size
|
||||
gfx.window_width=0
|
||||
|
||||
# Windowed height, 0 for default size
|
||||
gfx.window_height=0
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
|
||||
gfx.diagonal_tearing_fix=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
|
||||
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
|
||||
misc.settings_path=.\
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GKJDZCAA
|
||||
9
dist/iidx/iidxhook-20.conf
vendored
9
dist/iidx/iidxhook-20.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -33,3 +30,9 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
9
dist/iidx/iidxhook-21.conf
vendored
9
dist/iidx/iidxhook-21.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -33,3 +30,9 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
9
dist/iidx/iidxhook-22.conf
vendored
9
dist/iidx/iidxhook-22.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -33,3 +30,9 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
9
dist/iidx/iidxhook-23.conf
vendored
9
dist/iidx/iidxhook-23.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -33,3 +30,9 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
9
dist/iidx/iidxhook-24.conf
vendored
9
dist/iidx/iidxhook-24.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -33,3 +30,9 @@ gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
|
||||
io.disable_io_emu=false
|
||||
17
dist/iidx/iidxhook-25.conf
vendored
17
dist/iidx/iidxhook-25.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -37,17 +34,23 @@ gfx.device_adapter=-1
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=false
|
||||
|
||||
# Override camera device ID 1 detection (copy from device manager, do not escape)
|
||||
# Disable camera 1. Use, i.e., if you only have one camera and want it to be mapped to camera 2 ingame.
|
||||
cam.disable_camera1=false
|
||||
|
||||
# Disable camera 2. Use, i.e., if you have more than one camera but only want to map camera 1 ingame.
|
||||
cam.disable_camera2=false
|
||||
|
||||
# Override camera device ID 1 detection (copy from device manager, do not escape) Leave blank to automatically detect
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID 2 detection (copy from device manager, do not escape)
|
||||
# Override camera device ID 2 detection (copy from device manager, do not escape) Leave blank to automatically detect
|
||||
cam.device_id2=
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM0 (for games supporting slotted readers)
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
17
dist/iidx/iidxhook-26.conf
vendored
17
dist/iidx/iidxhook-26.conf
vendored
@@ -1,6 +1,3 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
@@ -37,17 +34,23 @@ gfx.device_adapter=-1
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=false
|
||||
|
||||
# Override camera device ID 1 detection (copy from device manager, do not escape)
|
||||
# Disable camera 1. Use, i.e., if you only have one camera and want it to be mapped to camera 2 ingame.
|
||||
cam.disable_camera1=false
|
||||
|
||||
# Disable camera 2. Use, i.e., if you have more than one camera but only want to map camera 1 ingame.
|
||||
cam.disable_camera2=false
|
||||
|
||||
# Override camera device ID 1 detection (copy from device manager, do not escape) Leave blank to automatically detect
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID 2 detection (copy from device manager, do not escape)
|
||||
# Override camera device ID 2 detection (copy from device manager, do not escape) Leave blank to automatically detect
|
||||
cam.device_id2=
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM0 (for games supporting slotted readers)
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
84
dist/iidx/iidxhook-27.conf
vendored
Normal file
84
dist/iidx/iidxhook-27.conf
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
# Lightning cab mode (requires additional IO emulation)
|
||||
io.lightning_mode=false
|
||||
|
||||
# Disable camera connection
|
||||
io.disable_cams=true
|
||||
|
||||
# Disables the built in file hooks, requiring manual file creation
|
||||
io.disable_file_hooks=false
|
||||
|
||||
# Turntable sensitivity multiplier (1.0 is default)
|
||||
io.tt_multiplier=1.0
|
||||
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=true
|
||||
|
||||
# Disable camera 1. Use, i.e., if you only have one camera and want it to be mapped to camera 2 ingame.
|
||||
cam.disable_camera1=false
|
||||
|
||||
# Disable camera 2. Use, i.e., if you have more than one camera but only want to map camera 1 ingame.
|
||||
cam.disable_camera2=false
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id2=
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=true
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Confine mouse cursor to window
|
||||
gfx.confined=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Windowed X, -1 for default X position
|
||||
gfx.window_x=-1
|
||||
|
||||
# Windowed Y, -1 for default Y position
|
||||
gfx.window_y=-1
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9ex device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Orientation to force monitor into, -1 to use default, 0, 1, 2, 3 to do 0, 90, 180, 270 degrees
|
||||
gfx.force_orientation=-1
|
||||
|
||||
# Force a screen resolution (width), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.width=-1
|
||||
|
||||
# Force a screen resolution (height), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.height=-1
|
||||
|
||||
# IP of adapter to force override with
|
||||
adapter.override_ip=
|
||||
|
||||
# Force ASIO audio mode/device (if applicable / TDJ default)
|
||||
asio.force_asio=false
|
||||
|
||||
# Force WASAPI audio mode (if applicable / LDJ default)
|
||||
asio.force_wasapi=true
|
||||
|
||||
# The ASIO device name to use
|
||||
asio.device_name=XONAR SOUND CARD(64)
|
||||
|
||||
84
dist/iidx/iidxhook-28.conf
vendored
Normal file
84
dist/iidx/iidxhook-28.conf
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
# Lightning cab mode (requires additional IO emulation)
|
||||
io.lightning_mode=false
|
||||
|
||||
# Disable camera connection
|
||||
io.disable_cams=true
|
||||
|
||||
# Disables the built in file hooks, requiring manual file creation
|
||||
io.disable_file_hooks=false
|
||||
|
||||
# Turntable sensitivity multiplier (1.0 is default)
|
||||
io.tt_multiplier=1.0
|
||||
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=true
|
||||
|
||||
# Disable camera 1. Use, i.e., if you only have one camera and want it to be mapped to camera 2 ingame.
|
||||
cam.disable_camera1=false
|
||||
|
||||
# Disable camera 2. Use, i.e., if you have more than one camera but only want to map camera 1 ingame.
|
||||
cam.disable_camera2=false
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id2=
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=true
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Confine mouse cursor to window
|
||||
gfx.confined=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Windowed X, -1 for default X position
|
||||
gfx.window_x=-1
|
||||
|
||||
# Windowed Y, -1 for default Y position
|
||||
gfx.window_y=-1
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9ex device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Orientation to force monitor into, -1 to use default, 0, 1, 2, 3 to do 0, 90, 180, 270 degrees
|
||||
gfx.force_orientation=-1
|
||||
|
||||
# Force a screen resolution (width), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.width=-1
|
||||
|
||||
# Force a screen resolution (height), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.height=-1
|
||||
|
||||
# IP of adapter to force override with
|
||||
adapter.override_ip=
|
||||
|
||||
# Force ASIO audio mode/device (if applicable / TDJ default)
|
||||
asio.force_asio=false
|
||||
|
||||
# Force WASAPI audio mode (if applicable / LDJ default)
|
||||
asio.force_wasapi=true
|
||||
|
||||
# The ASIO device name to use
|
||||
asio.device_name=XONAR SOUND CARD(64)
|
||||
|
||||
84
dist/iidx/iidxhook-29.conf
vendored
Normal file
84
dist/iidx/iidxhook-29.conf
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
# Lightning cab mode (requires additional IO emulation)
|
||||
io.lightning_mode=false
|
||||
|
||||
# Disable camera connection
|
||||
io.disable_cams=true
|
||||
|
||||
# Disables the built in file hooks, requiring manual file creation
|
||||
io.disable_file_hooks=false
|
||||
|
||||
# Turntable sensitivity multiplier (1.0 is default)
|
||||
io.tt_multiplier=1.0
|
||||
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=true
|
||||
|
||||
# Disable camera 1. Use, i.e., if you only have one camera and want it to be mapped to camera 2 ingame.
|
||||
cam.disable_camera1=true
|
||||
|
||||
# Disable camera 2. Use, i.e., if you have more than one camera but only want to map camera 1 ingame.
|
||||
cam.disable_camera2=false
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id2=
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=true
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Confine mouse cursor to window
|
||||
gfx.confined=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Windowed X, -1 for default X position
|
||||
gfx.window_x=-1
|
||||
|
||||
# Windowed Y, -1 for default Y position
|
||||
gfx.window_y=-1
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9ex device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Orientation to force monitor into, -1 to use default, 0, 1, 2, 3 to do 0, 90, 180, 270 degrees
|
||||
gfx.force_orientation=-1
|
||||
|
||||
# Force a screen resolution (width), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.width=-1
|
||||
|
||||
# Force a screen resolution (height), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.height=-1
|
||||
|
||||
# IP of adapter to force override with
|
||||
adapter.override_ip=
|
||||
|
||||
# Force ASIO audio mode/device (if applicable / TDJ default)
|
||||
asio.force_asio=false
|
||||
|
||||
# Force WASAPI audio mode (if applicable / LDJ default)
|
||||
asio.force_wasapi=true
|
||||
|
||||
# The ASIO device name to use
|
||||
asio.device_name=XONAR SOUND CARD(64)
|
||||
|
||||
84
dist/iidx/iidxhook-30.conf
vendored
Normal file
84
dist/iidx/iidxhook-30.conf
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
# Lightning cab mode (requires additional IO emulation)
|
||||
io.lightning_mode=false
|
||||
|
||||
# Disable camera connection
|
||||
io.disable_cams=true
|
||||
|
||||
# Disables the built in file hooks, requiring manual file creation
|
||||
io.disable_file_hooks=false
|
||||
|
||||
# Turntable sensitivity multiplier (1.0 is default)
|
||||
io.tt_multiplier=1.0
|
||||
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=true
|
||||
|
||||
# Disable camera 1. Use, i.e., if you only have one camera and want it to be mapped to camera 2 ingame.
|
||||
cam.disable_camera1=true
|
||||
|
||||
# Disable camera 2. Use, i.e., if you have more than one camera but only want to map camera 1 ingame.
|
||||
cam.disable_camera2=false
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID detection (copy from device manager, do not escape)
|
||||
cam.device_id2=
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=true
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Confine mouse cursor to window
|
||||
gfx.confined=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Windowed X, -1 for default X position
|
||||
gfx.window_x=-1
|
||||
|
||||
# Windowed Y, -1 for default Y position
|
||||
gfx.window_y=-1
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
# D3D9ex device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
|
||||
gfx.device_adapter=-1
|
||||
|
||||
# Orientation to force monitor into, -1 to use default, 0, 1, 2, 3 to do 0, 90, 180, 270 degrees
|
||||
gfx.force_orientation=-1
|
||||
|
||||
# Force a screen resolution (width), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.width=-1
|
||||
|
||||
# Force a screen resolution (height), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.height=-1
|
||||
|
||||
# IP of adapter to force override with
|
||||
adapter.override_ip=
|
||||
|
||||
# Force ASIO audio mode/device (if applicable / TDJ default)
|
||||
asio.force_asio=false
|
||||
|
||||
# Force WASAPI audio mode (if applicable / LDJ default)
|
||||
asio.force_wasapi=true
|
||||
|
||||
# The ASIO device name to use
|
||||
asio.device_name=XONAR SOUND CARD(64)
|
||||
|
||||
8
dist/iidx/iidxio-bio2.conf
vendored
Normal file
8
dist/iidx/iidxio-bio2.conf
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Autodetect BIO2 port (default: on)
|
||||
bio2.autodetect=true
|
||||
|
||||
# BIO2 serial port. Optional, if autodetect property is turned on
|
||||
bio2.port=COM4
|
||||
|
||||
# BIO2 bus baudrate (real devices expect 115200)
|
||||
bio2.baud=115200
|
||||
26
dist/iidx/vigem-iidxio.conf
vendored
Normal file
26
dist/iidx/vigem-iidxio.conf
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# Use relative mode analog mapping instead of absolute analog values
|
||||
vigem.iidxio.tt.anlog.relative=false
|
||||
|
||||
# Sensitivity value for relative mode (1 to 32767). Tweak if you are having issues with jittering/misfiring/unresponsiveness
|
||||
vigem.iidxio.tt.anlog.relative_sensitivity=1024
|
||||
|
||||
# Button turntable: "debounce" value (1 to 50, recommend 20). Tweak if you are having issues with TT button misfiring/unresponsiveness
|
||||
vigem.iidxio.tt.button.debounce=20
|
||||
|
||||
# Button turntable: minimum ticks required within (debounce * 2) ms to register movement (1 to 4, recommend 2). Tweak if you button input is too (un-) responsive
|
||||
vigem.iidxio.tt.button.threshold=2
|
||||
|
||||
# Print verbose debug output to the console for debugging turntable sensitivity issues
|
||||
vigem.iidxio.tt.debug_output=false
|
||||
|
||||
# Enable input based key lighting
|
||||
vigem.iidxio.cab_light.enable_keylight=true
|
||||
|
||||
# Different cabinet light modes: 0 = off, 1 = neons sequence, 2 = neons flash on TT spin
|
||||
vigem.iidxio.cab_light.light_mode=0
|
||||
|
||||
# Display text on 16seg. If text exceeds 9 char display limit, it will scroll + cycle
|
||||
vigem.iidxio.cab_light.text_16seg=
|
||||
|
||||
# Cycle time/scroll speed for text exceeding 16seg display length (9) to scroll from right
|
||||
vigem.iidxio.cab_light.text_scroll_cycle_time_ms=500
|
||||
5
dist/jb/eamio-icc.conf
vendored
Normal file
5
dist/jb/eamio-icc.conf
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# ICCA serial port
|
||||
icc.port=COM2
|
||||
|
||||
# ICCA bus baudrate (real devices expect 57600)
|
||||
icc.baud=57600
|
||||
7
dist/jb/gamestart-02.bat
vendored
Normal file
7
dist/jb/gamestart-02.bat
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
|
||||
inject jbhook1.dll jubeat.exe --config jbhook-02.conf %*
|
||||
11
dist/jb/gamestart-03.bat
vendored
Normal file
11
dist/jb/gamestart-03.bat
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\ea3-config.xml copy prop\ea3-config.xml dev\nvram\ea3-config.xml
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -H 33554432 -K jbhook2.dll jubeat.dll -v
|
||||
@@ -3,8 +3,9 @@
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\ea3-config.xml copy prop\ea3-config.xml dev\nvram\ea3-config.xml
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K jbhook.dll jubeat.dll
|
||||
launcher -H 33554432 -K jbhook3.dll jubeat.dll
|
||||
3
dist/jb/jbhook-01.conf
vendored
3
dist/jb/jbhook-01.conf
vendored
@@ -1,6 +1,9 @@
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# rotate the normally-horizontal game window to be vertical
|
||||
gfx.vertical=true
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
|
||||
18
dist/jb/jbhook-02.conf
vendored
Normal file
18
dist/jb/jbhook-02.conf
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# rotate the normally-horizontal game window to be vertical
|
||||
gfx.vertical=true
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Mcode of the game to run.
|
||||
security.mcode=GCI44JAA
|
||||
|
||||
5
dist/jb/jbio-h44b.conf
vendored
Normal file
5
dist/jb/jbio-h44b.conf
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# H44B serial port
|
||||
h44b.port=COM2
|
||||
|
||||
# H44B bus baudrate (real devices expect 57600)
|
||||
h44b.baud=57600
|
||||
1
dist/popn/config.bat
vendored
Normal file
1
dist/popn/config.bat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
@start config.exe pnm
|
||||
16
dist/popn/gamestart-15.bat
vendored
Normal file
16
dist/popn/gamestart-15.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist e\bookkeeping mkdir e\bookkeeping
|
||||
if not exist e\CONF\NVRAM mkdir e\CONF\NVRAM
|
||||
if not exist e\CONF\NVRAM\0 mkdir e\CONF\NVRAM\0
|
||||
if not exist e\CONF\NVRAM\1 mkdir e\CONF\NVRAM\1
|
||||
if not exist e\CONF\NVRAM\2 mkdir e\CONF\NVRAM\2
|
||||
if not exist e\CONF\NVRAM\3 mkdir e\CONF\NVRAM\3
|
||||
if not exist e\CONF\RAW mkdir e\CONF\RAW
|
||||
if not exist e\settings mkdir e\settings
|
||||
if not exist e\UP mkdir e\UP
|
||||
|
||||
inject popnhook1.dll ezusb.dll=ezusb2-popn-shim.dll popn15.exe --config popnhook-15.conf %*
|
||||
|
||||
16
dist/popn/gamestart-16.bat
vendored
Normal file
16
dist/popn/gamestart-16.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist e\bookkeeping mkdir e\bookkeeping
|
||||
if not exist e\CONF\NVRAM mkdir e\CONF\NVRAM
|
||||
if not exist e\CONF\NVRAM\0 mkdir e\CONF\NVRAM\0
|
||||
if not exist e\CONF\NVRAM\1 mkdir e\CONF\NVRAM\1
|
||||
if not exist e\CONF\NVRAM\2 mkdir e\CONF\NVRAM\2
|
||||
if not exist e\CONF\NVRAM\3 mkdir e\CONF\NVRAM\3
|
||||
if not exist e\CONF\RAW mkdir e\CONF\RAW
|
||||
if not exist e\settings mkdir e\settings
|
||||
if not exist e\UP mkdir e\UP
|
||||
|
||||
inject popnhook1.dll ezusb.dll=ezusb2-popn-shim.dll popn16.exe --config popnhook-16.conf %*
|
||||
|
||||
16
dist/popn/gamestart-17.bat
vendored
Normal file
16
dist/popn/gamestart-17.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist e\bookkeeping mkdir e\bookkeeping
|
||||
if not exist e\CONF\NVRAM mkdir e\CONF\NVRAM
|
||||
if not exist e\CONF\NVRAM\0 mkdir e\CONF\NVRAM\0
|
||||
if not exist e\CONF\NVRAM\1 mkdir e\CONF\NVRAM\1
|
||||
if not exist e\CONF\NVRAM\2 mkdir e\CONF\NVRAM\2
|
||||
if not exist e\CONF\NVRAM\3 mkdir e\CONF\NVRAM\3
|
||||
if not exist e\CONF\RAW mkdir e\CONF\RAW
|
||||
if not exist e\settings mkdir e\settings
|
||||
if not exist e\UP mkdir e\UP
|
||||
|
||||
inject popnhook1.dll ezusb.dll=ezusb2-popn-shim.dll popn17.exe --config popnhook-17.conf %*
|
||||
|
||||
16
dist/popn/gamestart-18.bat
vendored
Normal file
16
dist/popn/gamestart-18.bat
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist e\bookkeeping mkdir e\bookkeeping
|
||||
if not exist e\CONF\NVRAM mkdir e\CONF\NVRAM
|
||||
if not exist e\CONF\NVRAM\0 mkdir e\CONF\NVRAM\0
|
||||
if not exist e\CONF\NVRAM\1 mkdir e\CONF\NVRAM\1
|
||||
if not exist e\CONF\NVRAM\2 mkdir e\CONF\NVRAM\2
|
||||
if not exist e\CONF\NVRAM\3 mkdir e\CONF\NVRAM\3
|
||||
if not exist e\CONF\RAW mkdir e\CONF\RAW
|
||||
if not exist e\settings mkdir e\settings
|
||||
if not exist e\UP mkdir e\UP
|
||||
|
||||
inject popnhook1.dll ezusb.dll=ezusb2-popn-shim.dll popn18.exe --config popnhook-18.conf %*
|
||||
|
||||
23
dist/popn/popnhook-15.conf
vendored
Normal file
23
dist/popn/popnhook-15.conf
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Windowed width, 0 for default size
|
||||
gfx.window_width=0
|
||||
|
||||
# Windowed height, 0 for default size
|
||||
gfx.window_height=0
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQG15JAA
|
||||
23
dist/popn/popnhook-16.conf
vendored
Normal file
23
dist/popn/popnhook-16.conf
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Windowed width, 0 for default size
|
||||
gfx.window_width=0
|
||||
|
||||
# Windowed height, 0 for default size
|
||||
gfx.window_height=0
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQH16JAA
|
||||
23
dist/popn/popnhook-17.conf
vendored
Normal file
23
dist/popn/popnhook-17.conf
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Windowed width, 0 for default size
|
||||
gfx.window_width=0
|
||||
|
||||
# Windowed height, 0 for default size
|
||||
gfx.window_height=0
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQI17JAA
|
||||
23
dist/popn/popnhook-18.conf
vendored
Normal file
23
dist/popn/popnhook-18.conf
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Windowed width, 0 for default size
|
||||
gfx.window_width=0
|
||||
|
||||
# Windowed height, 0 for default size
|
||||
gfx.window_height=0
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GCJ39JAA
|
||||
30
dist/sdvx5/sdvxhook2.conf
vendored
30
dist/sdvx5/sdvxhook2.conf
vendored
@@ -7,18 +7,42 @@ io.disable_bio2_emu=false
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
||||
|
||||
# Forces game to think headphones are attached
|
||||
io.force_headphones=false
|
||||
|
||||
# Disables the built in file hooks, requiring manual file creation (/dev/raw/j.dest)
|
||||
io.disable_file_hooks=false
|
||||
|
||||
# Disables the built in power control hooks, allowing game to modify system power settings
|
||||
io.disable_power_hooks=false
|
||||
|
||||
# Disables the built in NVAPI control hooks, allowing game to modify system monitor settings
|
||||
io.disable_nvapi_hooks=false
|
||||
|
||||
# Emulates the card reader on COM1 instead of COM2
|
||||
io.com1_card_reader=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=true
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Confine mouse cursor to window
|
||||
gfx.confined=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=1080
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=1920
|
||||
|
||||
# Windowed X, -1 for default X position
|
||||
gfx.window_x=-1
|
||||
|
||||
# Windowed Y, -1 for default Y position
|
||||
gfx.window_y=-1
|
||||
|
||||
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
|
||||
gfx.forced_refresh_rate=-1
|
||||
|
||||
@@ -28,6 +52,12 @@ gfx.device_adapter=-1
|
||||
# Orientation to force monitor into, -1 to use default, 0, 1, 2, 3 to do 0, 90, 180, 270 degrees
|
||||
gfx.force_orientation=-1
|
||||
|
||||
# Force a screen resolution (width), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.width=-1
|
||||
|
||||
# Force a screen resolution (height), -1 to disable. Use this if the game does not auto detect your monitor's resolution properly, e.g. 1368x768 instead of 1280x720.
|
||||
gfx.force_screen_res.height=-1
|
||||
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=false
|
||||
|
||||
|
||||
34
doc/README.md
Normal file
34
doc/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Bemanitools 5 documentation
|
||||
|
||||
This folder contains various types of documentation.
|
||||
|
||||
Table of contents:
|
||||
|
||||
- Game
|
||||
- [Error codes](game-error-codes.md): List of bemani game specific error codes that you might
|
||||
encounter during boot or gameplay with troubleshooting information
|
||||
- Key tools
|
||||
- [Inject](inject.md): Readme for one of BT5's key applications, `inject.exe`
|
||||
- [Launcher](launcher.md): Readme for another one of BT5's key applications, `launcher.exe`
|
||||
- [Tools](tools/README.md): Documentation for additional user and development tooling
|
||||
- Game hooks
|
||||
- [ddrhook](ddrhook/README.md): Documentation relevant to `ddrhook` implementations
|
||||
- [iidxhook](iidxhook/README.md): Documentation relevant to `iidxhook` implementations
|
||||
- [jbhook](jbhook/README.md): Documentation relevant to `jbhook` implementations
|
||||
- [popnhook](popnhook/README.md): Documentation relevant to `popnhook` implementations
|
||||
- [sdvxhook](sdvxhook/README.md): Documentation relevant to `sdvxhook` implementations
|
||||
- Development
|
||||
- [API](api.md): Available APIs and IO (hardware) implementations for BT5 and instructions how to
|
||||
use them
|
||||
- [Architecture](architecture.md): Outline of BT5's architecture, how things are designed and why
|
||||
- [Development](development.md): Development environment, building, releasing, etc.
|
||||
- [Developer documentation](dev/README.md): Various lose documentation/notes by developers
|
||||
- [Tools](tools/README.md): Documentation for additional user and development tooling
|
||||
|
||||
## Further external documentation
|
||||
|
||||
A list of external documentation that can be useful when dealing with bemanitools, supported data
|
||||
and hardware.
|
||||
|
||||
- [arcade-docs](https://github.com/Shizmob/arcade-docs): An open (to read and contribute) repository
|
||||
of arcade hardware and software documentation
|
||||
88
doc/api.md
88
doc/api.md
@@ -1,43 +1,81 @@
|
||||
# Bemanitools API
|
||||
Bemanitools introduces interfaces abstracting the IO hardware of many games. This is used to implement support for
|
||||
non-intended IO devices from simple keyboard support, standard gamecontrollers to custom IO boards or using real
|
||||
hardware with the games (e.g. support for real legacy hardware).
|
||||
|
||||
Bemanitools introduces interfaces abstracting the IO hardware of many games. This is used to
|
||||
implement support for non-intended IO devices from simple keyboard support, standard gamecontrollers
|
||||
to custom IO boards or using real hardware with the games (e.g. support for real legacy hardware).
|
||||
|
||||
For a list of already supported and included hardware by game, see the next section.
|
||||
|
||||
The BT5 API separates main game IO hardware like buttons, turn tables, spinners, lights etc. (bstio, iidxio, ...) from
|
||||
eamuse hardware like 10-key pads and card readers (eamio).
|
||||
The BT5 API separates main game IO hardware like buttons, turn tables, spinners, lights etc. (bstio,
|
||||
iidxio, ...) from eamuse hardware like 10-key pads and card readers (eamio).
|
||||
|
||||
If you want to write an implementation for your own custom piece of hardware, check out the SDK (*bemanitools*
|
||||
sub-folder) in the source code (src.zip).
|
||||
If you want to write an implementation for your own custom piece of hardware, check out the SDK
|
||||
(*bemanitools* sub-folder) in the source code (src.zip).
|
||||
|
||||
## Implementations
|
||||
The following implementations are already shipped with BT5.
|
||||
|
||||
* BeatStream
|
||||
* bstio.dll (default): Keyboard, joystick and mouse input
|
||||
* Dance Dance Revolution
|
||||
* ddrio.dll (default): Keyboard, joystick and mouse input
|
||||
* ddrio-mm.dll: Minimaid hardware
|
||||
* ddrio-smx.dll: StepManiaX platforms
|
||||
* Beatmania IIDX
|
||||
* iidxio.dll (default): Keyboard, joystick and mouse input
|
||||
* iidxio-ezusb.dll: Ezusb (C02 IO) driver
|
||||
* iidxio-ezusb2.dll: Ezusb FX2 (IO2) driver
|
||||
* jubeat
|
||||
* jbio.dll (default): Keyboard, joystick and mouse input
|
||||
* SOUND VOLTEX
|
||||
* sdvxio.dll (default): Keyboard, joystick and mouse input
|
||||
### IO boards
|
||||
|
||||
The following implementations are already shipped with BT5.
|
||||
|
||||
- BeatStream
|
||||
- bstio.dll (default): Keyboard, joystick and mouse input
|
||||
- Dance Dance Revolution
|
||||
- ddrio.dll (default): Keyboard, joystick and mouse input
|
||||
- [ddrio-p3io.dll](ddrhook/ddrio-p3io.md): DDR P3IO (Dragon PCB) + EXTIO hardware
|
||||
- ddrio-mm.dll: Minimaid hardware
|
||||
- [ddrio-smx.dll](ddrhook/ddrio-smx.md): StepManiaX platforms
|
||||
- [ddrio-async](ddrhook/ddrio-async.md): Wrapper/shim library to drive another ddrio in a
|
||||
dedicated IO thread
|
||||
- Beatmania IIDX
|
||||
- iidxio.dll (default): Keyboard, joystick and mouse input
|
||||
- [iidxio-bio2.dll](iidxhook/iidxio-bio2.md): BIO2 driver
|
||||
- [iidxio-ezusb.dll](iidxhook/iidxio-ezusb.md): Ezusb (C02 IO) driver
|
||||
- [iidxio-ezusb2.dll](iidxhook/iidxio-ezusb2.md): Ezusb FX2 (IO2) driver
|
||||
- jubeat
|
||||
- jbio.dll (default): Keyboard, joystick and mouse input
|
||||
- pop'n music
|
||||
- popnio.dll (default): Keyboard, joystick and mouse input
|
||||
- SOUND VOLTEX
|
||||
- sdvxio.dll (default): Keyboard, joystick and mouse input
|
||||
- [sdvxio-bio2.dll](sdvxhook/sdvxio-bio2.md): BIO2 driver
|
||||
- [sdvxio-kfca.dll](sdvxhook/sdvxio-kfca.md): KFCA IO board driver
|
||||
|
||||
### Eamuse readers
|
||||
|
||||
Eamuse hardware support is implemented separately:
|
||||
* eamio.dll (default): Keyboard and joystick input
|
||||
|
||||
- eamio.dll (default): Keyboard and joystick input
|
||||
- eamio-icca.dll: Slotted/wave pass readers, required for old games with magnetic stripe cards
|
||||
|
||||
#### ICCA readers for IIDX and port config in device manager
|
||||
|
||||
The COM port for the card readers needs to be configured correctly in device manager. Otherwise,
|
||||
communication with the readers will fail if the settings do not align with how the game or
|
||||
bemanitools wants to operate them.
|
||||
|
||||
Use built-in ports on your mainboard if available but an external USB to serial port dongle also
|
||||
works.
|
||||
|
||||
- Assign `COM1` to the COM port the card readers are connected to.
|
||||
- Ensure that the following settings for the COM port you are going to use are set
|
||||
- BAUD rate 57600
|
||||
- Data bits 8
|
||||
- Parity None
|
||||
- Stop bits 1
|
||||
- Flow control None.
|
||||
|
||||
## Development notes
|
||||
A DEF file for geninput.dll is included. To convert the DEF into an import library suitable for use with Visual C++, run
|
||||
|
||||
A DEF file for geninput.dll is included. To convert the DEF into an import library suitable for use
|
||||
with Visual C++, run
|
||||
|
||||
```
|
||||
lib /machine:i386 /def:geninput.def
|
||||
```
|
||||
|
||||
from the Visual C++ command line. If you're using mingw then use dlltool:
|
||||
|
||||
```
|
||||
dlltool -d geninput.def -l geninput.a
|
||||
```
|
||||
```
|
||||
|
||||
@@ -1,182 +1,239 @@
|
||||
# Bemanitools architecture
|
||||
This document gives you an overview of the architecture of Bemanitools (5). Why do we need this? This helps document the
|
||||
various design decisions and how everything comes together, in the end. At some point when things are evolving and other
|
||||
developers want to pick up the project, this might give them answers to why some things were done well or not so well.
|
||||
This allows them to iterate on the current design (document) to analyze if a change they want to apply might work out
|
||||
or not.
|
||||
|
||||
Anway, enough preface...I guess you got the idea. This document will be split into several sections which address
|
||||
different aspects of the architecture.
|
||||
This document gives you an overview of the architecture of Bemanitools (5). Why do we need this?
|
||||
This helps document the various design decisions and how everything comes together, in the end. At
|
||||
some point when things are evolving and other developers want to pick up the project, this might
|
||||
give them answers to why some things were done well or not so well. This allows them to iterate on
|
||||
the current design (document) to analyze if a change they want to apply might work out or not.
|
||||
|
||||
Anway, enough preface...I guess you got the idea. This document will be split into several sections
|
||||
which address different aspects of the architecture.
|
||||
|
||||
## The big picture
|
||||
|
||||
TODO create a graphic that presents the key modules and ideas.
|
||||
|
||||
## Detouring library functions, IAT hooking
|
||||
One of Bemanitools's goals is to avoid patching of executables, libraries or any game data and instead rely on
|
||||
intercepting calls to libraries to patch bugs or introduce new features. To support a game on a non native platform
|
||||
transparently, e.g. your home desktop, this allows us to intercept I/O communication to emulate hardware or
|
||||
files/filesystem features the game expects to be available.
|
||||
|
||||
We create a so called "hook library/hook.dll" which gets injected to the target process (the game) before the game
|
||||
runs any of its application code. This is well known by the terms of dll injection and will not be further discussed
|
||||
here (google it). The injected dll will replace the function addresses in the IATs to detour any calls to our own
|
||||
handler functions before, eventually, calling the real function. This way, we can intercept the call and do cool things.
|
||||
One of Bemanitools's goals is to avoid patching of executables, libraries or any game data and
|
||||
instead rely on intercepting calls to libraries to patch bugs or introduce new features. To support
|
||||
a game on a non native platform transparently, e.g. your home desktop, this allows us to intercept
|
||||
I/O communication to emulate hardware or files/filesystem features the game expects to be available.
|
||||
|
||||
We create a so called "hook library/hook.dll" which gets injected to the target process (the game)
|
||||
before the game runs any of its application code. This is well known by the terms of dll injection
|
||||
and will not be further discussed here (google it). The injected dll will replace the function
|
||||
addresses in the IATs to detour any calls to our own handler functions before, eventually, calling
|
||||
the real function. This way, we can intercept the call and do cool things.
|
||||
|
||||
These features are covered by the modules in the following subfolders in src/main:
|
||||
* hook: Essentially, this is capnhook: https://github.com/decafcode/capnhook. General tools for hooking Win32 API calls.
|
||||
* hooklib: Some additional helper modules to take care of specific issues in Bemanitools, e.g. rs232 related stuff for
|
||||
ACIO.
|
||||
|
||||
- hook: Essentially, this is capnhook: https://github.com/decafcode/capnhook. General tools for
|
||||
hooking Win32 API calls.
|
||||
- hooklib: Some additional helper modules to take care of specific issues in Bemanitools, e.g. rs232
|
||||
related stuff for ACIO.
|
||||
|
||||
Check the modules for details.
|
||||
|
||||
## Hooking and IRP
|
||||
IRP stands for "I/O request packet" and is a kernel mode structure used in Windows drivers for communication with the
|
||||
OS. The data structure describes an I/O request with parameters for that request avoiding function calls with large
|
||||
number of arguments to a driver.
|
||||
|
||||
We make use of that "IRP pattern" by creating a flexible and maintainable abstraction layer for the following hooking
|
||||
modules:
|
||||
* iohook: Hook I/O (e.g. file) related calls
|
||||
* d3d9: Hook d3d9 graphics API calls
|
||||
IRP stands for "I/O request packet" and is a kernel mode structure used in Windows drivers for
|
||||
communication with the OS. The data structure describes an I/O request with parameters for that
|
||||
request avoiding function calls with large number of arguments to a driver.
|
||||
|
||||
An IRP handler is implemented to handle selected IRP calls based on the specified operation type. IRP handlers can be
|
||||
chained which allows splitting up different features/interceptors to different functions and modules allowing you to
|
||||
create a clear structure. At the end of the forwarding chain, you the real API function that maps to the abstracted
|
||||
operation is called. However, a handler can decide at any time to not forward calls which allows you to implement
|
||||
emulation of access to selected files or I/O devices.
|
||||
We make use of that "IRP pattern" by creating a flexible and maintainable abstraction layer for the
|
||||
following hooking modules:
|
||||
|
||||
- iohook: Hook I/O (e.g. file) related calls
|
||||
- d3d9: Hook d3d9 graphics API calls
|
||||
|
||||
An IRP handler is implemented to handle selected IRP calls based on the specified operation type.
|
||||
IRP handlers can be chained which allows splitting up different features/interceptors to different
|
||||
functions and modules allowing you to create a clear structure. At the end of the forwarding chain,
|
||||
you the real API function that maps to the abstracted operation is called. However, a handler can
|
||||
decide at any time to not forward calls which allows you to implement emulation of access to
|
||||
selected files or I/O devices.
|
||||
|
||||
Modules that make use of this:
|
||||
* iidxhook-util/d3d9
|
||||
* ezusb-emu/device
|
||||
* ezusb2-emu/device
|
||||
* acioemu/emu
|
||||
|
||||
## Bemanitools's hook libraries, let's glue everything together
|
||||
Bemanitools dlls to be injected into target game processes are refered to as "hook dlls" and come in different flavours
|
||||
targetting different games and often different versions of the same game (series), for example:
|
||||
* ddrhook: Hook dll for Dance Dance Revolution games
|
||||
* iidxhook1-8: Hook dlls for Beatmania IIDX, we are currently at 8 different implementations due to the various
|
||||
iterations the game went through, related to software and hardware.
|
||||
* sdvxhook: Hook dll for SoundVoltex series
|
||||
- iidxhook-util/d3d9
|
||||
- ezusb-emu/device
|
||||
- ezusb2-emu/device
|
||||
- acioemu/emu
|
||||
|
||||
The following sub-sections will give you some brief insights on each hook implementation and what modules were used.
|
||||
## Bemanitools's hook libraries, let's glue everything together
|
||||
|
||||
Bemanitools dlls to be injected into target game processes are refered to as "hook dlls" and come in
|
||||
different flavours targetting different games and often different versions of the same game
|
||||
(series), for example:
|
||||
|
||||
- ddrhook: Hook dll for Dance Dance Revolution games
|
||||
- iidxhook1-8: Hook dlls for Beatmania IIDX, we are currently at 8 different implementations due to
|
||||
the various iterations the game went through, related to software and hardware.
|
||||
- sdvxhook: Hook dll for SoundVoltex series
|
||||
|
||||
The following sub-sections will give you some brief insights on each hook implementation and what
|
||||
modules were used.
|
||||
|
||||
### bsthook
|
||||
|
||||
TODO
|
||||
|
||||
### ddrhook
|
||||
|
||||
TODO
|
||||
|
||||
### iidxhook
|
||||
IIDX went through so many hard- and software iterations, it's actually amazing that the development team(s) refactored
|
||||
and improved parts of the game and hardware with each iteration. However, when facing emulation and supporting
|
||||
compatibility to legacy OS platforms, it can't get any worse. On the bright side, IIDX helped shaping Bemanitools a lot
|
||||
and created a solid foundation other games can build on.
|
||||
|
||||
Because of that, we have 8 iidxhook implementations supporting sometimes different software features/fixes and
|
||||
hardware. The following sub-sub-sections list the most relevant aspects and modules to point out common and different
|
||||
higher level features.
|
||||
IIDX went through so many hard- and software iterations, it's actually amazing that the development
|
||||
team(s) refactored and improved parts of the game and hardware with each iteration. However, when
|
||||
facing emulation and supporting compatibility to legacy OS platforms, it can't get any worse. On the
|
||||
bright side, IIDX helped shaping Bemanitools a lot and created a solid foundation other games can
|
||||
build on.
|
||||
|
||||
Essentially, the main module file of each iidxhook implementation just glues the APIs of the modules it requires
|
||||
together. An additional configuration layer allows users to tweak some of the features.
|
||||
Because of that, we have 8 iidxhook implementations supporting sometimes different software
|
||||
features/fixes and hardware. The following sub-sub-sections list the most relevant aspects and
|
||||
modules to point out common and different higher level features.
|
||||
|
||||
TODO go into some more detail about some differences in the hook modules, e.g. 18 to 19 look identical
|
||||
-> but different AVS versions
|
||||
Essentially, the main module file of each iidxhook implementation just glues the APIs of the modules
|
||||
it requires together. An additional configuration layer allows users to tweak some of the features.
|
||||
|
||||
TODO go into some more detail about some differences in the hook modules, e.g. 18 to 19 look
|
||||
identical -> but different AVS versions
|
||||
|
||||
#### iidxhook1 (9-12)
|
||||
* Ezusb C02 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full security emulation with SRAM and round plugs
|
||||
* Full serial emulation for magstripe card readers
|
||||
* Full game essential I/O emulation
|
||||
* d3d8 patching and extended features (superseded by d3d9 hook module + d3d8to9 wrapper)
|
||||
* clock patching
|
||||
* Font patching for Japanese chars
|
||||
* Network related patches to enable eamuse to custom servers
|
||||
* Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
- Ezusb C02 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full security emulation with SRAM and round plugs
|
||||
- Full serial emulation for magstripe card readers
|
||||
- Full game essential I/O emulation
|
||||
- d3d8 patching and extended features (superseded by d3d9 hook module + d3d8to9 wrapper)
|
||||
- clock patching
|
||||
- Font patching for Japanese chars
|
||||
- Network related patches to enable eamuse to custom servers
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook2 (13)
|
||||
* Ezusb C02 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full security emulation with SRAM and round plugs
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, slotted readers
|
||||
* d3d8 patching and extended features (superseded by d3d9 hook module + d3d8to9 wrapper)
|
||||
* clock patching
|
||||
* Font patching for Japanese chars
|
||||
* Network related patches to enable eamuse to custom servers
|
||||
* Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
- Ezusb C02 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full security emulation with SRAM and round plugs
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, slotted readers
|
||||
- d3d8 patching and extended features (superseded by d3d9 hook module + d3d8to9 wrapper)
|
||||
- clock patching
|
||||
- Font patching for Japanese chars
|
||||
- Network related patches to enable eamuse to custom servers
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook3 (14-17)
|
||||
* Ezusb IO2 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full security emulation with SRAM and round plugs
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, slotted readers
|
||||
* d3d9 patching and extended features
|
||||
* Font patching for Japanese chars
|
||||
* Network related patches to enable eamuse to custom servers
|
||||
* Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full security emulation with SRAM and round plugs
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, slotted readers
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
- Network related patches to enable eamuse to custom servers
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook4 (18)
|
||||
* Ezusb IO2 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, slotted readers
|
||||
* d3d9 patching and extended features
|
||||
* Font patching for Japanese chars
|
||||
* Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, slotted readers
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook4-cn (18 CN)
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full security emulation with SRAM and round plugs
|
||||
- Full game essential I/O emulation
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook5 (19)
|
||||
* Ezusb IO2 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, wave pass readers
|
||||
* d3d9 patching and extended features
|
||||
* Font patching for Japanese chars
|
||||
* Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, wave pass readers
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook5-cn (20 CN)
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full security emulation with SRAM and round plugs
|
||||
- Full game essential I/O emulation
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
- Filesystem patches to detour E and F backup drives for settings
|
||||
|
||||
#### iidxhook6 (20)
|
||||
* Ezusb IO2 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, wave pass readers
|
||||
* d3d9 patching and extended features
|
||||
* Font patching for Japanese chars
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, wave pass readers
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
|
||||
#### iidxhook7 (21-24)
|
||||
* Ezusb IO2 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, wave pass readers
|
||||
* d3d9 patching and extended features
|
||||
* Font patching for Japanese chars
|
||||
|
||||
- Ezusb IO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, wave pass readers
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
|
||||
#### iidxhook8 (25-26)
|
||||
* ACIO BIO2 I/O emulation
|
||||
* Setupapi emulation
|
||||
* Full game essential I/O emulation
|
||||
* ACIO ICCA card reader emulation, wave pass readers
|
||||
* d3d9 patching and extended features
|
||||
* Font patching for Japanese chars
|
||||
|
||||
- ACIO BIO2 I/O emulation
|
||||
- Setupapi emulation
|
||||
- Full game essential I/O emulation
|
||||
- ACIO ICCA card reader emulation, wave pass readers
|
||||
- d3d9 patching and extended features
|
||||
- Font patching for Japanese chars
|
||||
|
||||
### jbhook
|
||||
|
||||
TODO
|
||||
|
||||
### popnhook
|
||||
|
||||
TODO
|
||||
|
||||
### sdvxhook
|
||||
|
||||
TODO
|
||||
|
||||
## The ezusb (emulation) stack
|
||||
|
||||
TODO
|
||||
|
||||
## The ACIO (emulation) stack
|
||||
|
||||
TODO
|
||||
|
||||
## BT5 API
|
||||
|
||||
TODO
|
||||
|
||||
## AVS and launcher
|
||||
|
||||
TODO
|
||||
|
||||
## Inject
|
||||
TODO
|
||||
|
||||
TODO
|
||||
|
||||
50
doc/ddrhook/README.md
Normal file
50
doc/ddrhook/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# ddrhook
|
||||
|
||||
ddrhook is a collection of hook libraries for "Dance Dance Revoluion" providing emulation and
|
||||
various patches to run these games on non BemaniPC hardware and newer Windows versions.
|
||||
|
||||
The hook libraries must be bootstrapped either using [inject](../inject.md) or
|
||||
[launcher](../launcher.md) depending on the version you want to run. Further instructions are given
|
||||
in dedicated readme files for each ddrhook version (see below).
|
||||
|
||||
## Versions
|
||||
|
||||
ddrhook comes in a few different flavors. The game and its engine changed over the years. Some game
|
||||
versions might require patches/parameters enabled which others don't need or have different AVS
|
||||
versions. Here is the list of supported games:
|
||||
|
||||
- [ddrhook1](ddrhook1.md): X, X2 (US/EU regions)
|
||||
- [ddrhook2](ddrhook2.md): X2 (JP region), X3 vs. 2ndMIX, 2013, 2014, A
|
||||
|
||||
When building bemanitools, independent packages are created for each set of games which are ready to
|
||||
be dropped on top of vanilla AC data dumps. We recommend using pristine dumps to avoid any conflicts
|
||||
with other hardcoded hacks or binary patches.
|
||||
|
||||
## How to run
|
||||
|
||||
To run your game with ddrhook, you have to use the inject tool to inject the DLL to the game
|
||||
process. `dist/ddr` contains bat scripts with all the important parameters configured. Further
|
||||
parameters can be added but might not be required to run the game with default settings. Further
|
||||
information on how to setup the data for each specific version are elaborated in their dedicated
|
||||
readme files.
|
||||
|
||||
## Command line options
|
||||
|
||||
Add the argument *-h* when running inject with ddrhook to print help/usage information with a list
|
||||
of parameters you can apply to tweak various things.
|
||||
|
||||
## ddrio API
|
||||
|
||||
Available implementations that can be swapped out depending on which kind of IO hardware you want to
|
||||
use:
|
||||
|
||||
- `ddrio`: Default implementation supporting keyboard, mouse and USB game controllers
|
||||
- ddrio-mm: Support Minimaid custom interface
|
||||
- [ddrio-smx](ddrio-smx.md): Support for StepManiaX dance platforms
|
||||
- [ddrio-p3io](ddrio-p3io.md): P3IO + EXTIO driver implementation
|
||||
- [ddrio-async](ddrio-async.md): Wrapper/shim library to drive another ddrio in a dedicated IO
|
||||
thread
|
||||
|
||||
## Unicorntail
|
||||
|
||||
[Instructions how to run on Chimera PCBs](unicorntail.md).
|
||||
131
doc/ddrhook/ddrhook1.md
Normal file
131
doc/ddrhook/ddrhook1.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# ddrhook1
|
||||
|
||||
## Supported games
|
||||
|
||||
The following games are supported with this hook library:
|
||||
|
||||
- Dance Dance Revolution X
|
||||
- Dance Dance Revolution X2 (US/EU regions)
|
||||
|
||||
The games must be bootstrapped using [inject](../inject.md).
|
||||
|
||||
## Data setup
|
||||
|
||||
Ensure your folder with your unpacked data looks like this:
|
||||
|
||||
- `conf`
|
||||
- `data`
|
||||
- `ddr`
|
||||
- `ddr_YYYYMMDDRR` where `YYYYMMDDRR` corresponds to different datecodes of different versions.
|
||||
Multiple folders of these possible
|
||||
|
||||
`DDR.exe` files should be in `ddr` and `ddr_YYYYMMDDRR` folders.
|
||||
|
||||
Unpack the distribution package `ddr-11.zip` into one of the folders containing a `DDR.exe` file. We
|
||||
recommend using the one with the latest datecode which denotes the latest version of the game
|
||||
including bugfixes etc.
|
||||
|
||||
`gamestart-11.bat` as well as `ddrhook1.dll` are now expected to be located in the same folder as
|
||||
(one) `DDR.exe` file.
|
||||
|
||||
## Running
|
||||
|
||||
Run `gamestart-11.bat` as administrator. For the US version of the game, run `gamestart-11-us.bat`
|
||||
instead. This can be done by either by double clicking or running it from `cmd.exe`. The latter is
|
||||
recommended to have any debug output kept on screen after closing the game.
|
||||
|
||||
This will run [inject](../inject.md) with the `ddrhook1.dll`. On first run, if you don't have a
|
||||
conguration file, e.g. `ddr-11.conf`, available in the same folder, a default one will be created
|
||||
and the game exits. Simply re-run `gamestart-11.bat` again.
|
||||
|
||||
## Configuration ddrhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file. The latter is
|
||||
generated (*ddr-11.conf* in the same directory) on the first start of the game using the
|
||||
gamestart-XX.bat file. It contains default values for all available parameters and comments
|
||||
explaining each parameter. Please follow the comments when configuring your setup.
|
||||
|
||||
Add the argument *-h* when running gamestart-XX.bat (e.g. *gamestart-XX.bat -h*) to print help/usage
|
||||
information with a list of all available parameters. Every parameter can be either set as command
|
||||
line argument or using a configuration file.
|
||||
|
||||
To set a parameter from the command line, just add it as an argument after the bat file like this
|
||||
|
||||
```
|
||||
gamestart-11.bat -p gfx.windowed=true
|
||||
```
|
||||
|
||||
The syntax for the "key=value" is the same as in the config file. Make sure to have a pre-ceeding
|
||||
"-p" for every parameter added.
|
||||
|
||||
However, if a parameter is specifed in the configuration file and as a command line argument, the
|
||||
command line argument overrides the config file's value.
|
||||
|
||||
## Configure USB memory cards and edit data
|
||||
|
||||
You can setup actual USB thumb drives mapped to a drive letter, e.g. `E:\` for player 1 and `F:\`
|
||||
for player 2, or just have them point to any local directory, e.g. `usbmem_p1` and `usbmem_p2`.
|
||||
|
||||
Set-up your folder mappings in the [conf file or via command line args](#configuration-ddrhook) like
|
||||
follows:
|
||||
|
||||
- Enable USB memory data emulation: `ddrhook1.usbmem_enabled=true`
|
||||
- Set P1 USB memory data path pointing to local folder `usbmem_p1` next to `DDR.EXE`:
|
||||
`ddrhook1.usbmem_path_p1=usbmem_p1`
|
||||
- Set P1 USB memory data path pointing to local folder `usbmem_p2` next to `DDR.EXE`:
|
||||
`ddrhook1.usbmem_path_p1=usbmem_p2`
|
||||
- Have/create a subfolder called `DDR_EDIT` on any location/USB drive you want to use
|
||||
- Name your edit data file either `DDR_EDIT_J.DAT` (for JP version) or `DDR_EDIT_U.DAT` (for US
|
||||
version) and place it in the `DDR_EDIT` directory.
|
||||
|
||||
For the example setup above, the full relative path of the edit file should be
|
||||
`usbmem_p1\DDR_EDIT\DDR_EDIT_J.DAT` for player 1.
|
||||
|
||||
Note that USB memory cards are not detected by the game and the game stays silent about that if they
|
||||
do not contain edit data, your path mapping does not resolve or you misplaced or named your edit
|
||||
data file incorrectly.
|
||||
|
||||
## Grey and glitchy arrows
|
||||
|
||||
This is a known issue with many GPUs, typically non-Radeon GPUs.
|
||||
|
||||
There is currently not patch available in Bemanitools for that. We assume this is an issue with
|
||||
incompatible shader code.
|
||||
|
||||
There are solutions to hard-patch the code available elsewhere.
|
||||
|
||||
## Troubleshooting and FAQ
|
||||
|
||||
### Issues with background videos (not) playing
|
||||
|
||||
The game expects you have the `CLVSD.ax` file registered for decoding videos.
|
||||
|
||||
Grab the `CLVSD.ax` file and go to *Start* > *Run* > enter `regsvr32 clvsd.ax` and execute. Make
|
||||
sure to run as Administrator, otherwise you will get errors due to invalid permissions.
|
||||
|
||||
### Game crashes during boot
|
||||
|
||||
If you have played a newer version of DDR, e.g. DDR 2014+, you might have the `k-clvsd.dll` codec
|
||||
registered which crashes DDR X and likely X2 (EU/US) as well.
|
||||
|
||||
Unregister `k-clvsd.dll`, e.g. `regsvr32 /u k-clvsd.dll`, and
|
||||
[registering `CLVSD.ax`](#issues-with-background-videos-not-working).
|
||||
|
||||
Note that `CLVSD.ax` will likely hang any newer/more recent DDR versions on startup and require you
|
||||
to use the `k-clvsd.dll` that came with the respective version instead. See
|
||||
[this section](ddrhook2.md#video-codecs-for-background-videos) for further details.
|
||||
|
||||
### Black screen/render window without a response
|
||||
|
||||
This symptom might have many causes, here is a list of known issues and what can be done:
|
||||
|
||||
- If not done already, try installing
|
||||
[DirectX Redist (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109)
|
||||
- If you have an integrated/second GPU, ensure it is disabled
|
||||
- External (USB) audio devices could cause issues. Ensure you are running on on-board/integrated
|
||||
sound cards and unplug any external audio devices.
|
||||
- [Disable fullscreen optimizations](https://devblogs.microsoft.com/directx/demystifying-full-screen-optimizations/):
|
||||
Right click on `DDR.exe`, *Properties* > *Compatibility* > *Disable fullscreen optimizations*
|
||||
- Check if you can run `DDR.exe` without Bemanitools by simply launching it. It should at least boot
|
||||
into a startup screen. If that isn't even possible, then it's likely not an issue with
|
||||
Bemanitools. Note that your data path needs to be `D:\HDX` for that to work though.
|
||||
148
doc/ddrhook/ddrhook2.md
Normal file
148
doc/ddrhook/ddrhook2.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# ddrhook2
|
||||
|
||||
## Supported games
|
||||
|
||||
The following games are supported by this hook library:
|
||||
|
||||
- Dance Dance Revolution X2 (JP region)
|
||||
- Dance Dance Revolution X3 vs. 2ndMIX
|
||||
- Dance Dance Revolution 2013
|
||||
- Dance Dance Revolution 2014
|
||||
- Dance Dance Revolution A
|
||||
- Dance Dance Revolution A20
|
||||
- Dance Dance Revolution A20+
|
||||
|
||||
Note that different builds of the same hook library are required to run the different versions. See
|
||||
different distribution packages, e.g. `ddr-12.zip`, `ddr-13.zip` etc.
|
||||
|
||||
Depending on the game version, earlier versions are bootstrapped using [inject](../inject.md) while
|
||||
later versions require [launcher](../launcher.md).
|
||||
|
||||
## Setup A20+
|
||||
|
||||
### Data and folder structure
|
||||
|
||||
The following assumes you are using vanilla and unpacked/decrypted data. Copy/unpack the data to a
|
||||
destination of your choice. Expect to have the following root folder structure:
|
||||
|
||||
```
|
||||
arkdata
|
||||
com
|
||||
data
|
||||
dev
|
||||
modules
|
||||
prop
|
||||
```
|
||||
|
||||
- Copy the contents of `modules` to the root folder that the dll-files are next to the folders
|
||||
`arkdata`, `com`, etc.
|
||||
- Unpack the contents of `ddr-14-to-16.zip` to the root folder. `luncher.exe` should be located next
|
||||
to `arkdata`, `com` and all the dll-files
|
||||
|
||||
#### Configuring eamuse settings
|
||||
|
||||
You need to create a `prop/ea3-config.xml` configuration file which provides properties for
|
||||
connecting to a network of your choice (and allows the game to boot).
|
||||
|
||||
Take the `prop/eamuse.xml` as a base and make a copy of it called `prop/ea3-config.xml`.
|
||||
|
||||
Add the software identifier as a child to the `<ea3>` parent node:
|
||||
|
||||
```xml
|
||||
<soft>
|
||||
<model __type="str">MDX</model>
|
||||
<dest __type="str">J</dest>
|
||||
<spec __type="str">A</spec>
|
||||
<rev __type="str">A</rev>
|
||||
<ext __type="str">2022020200</ext>
|
||||
</soft>
|
||||
```
|
||||
|
||||
Replace the identifiers according to the version you are using.
|
||||
|
||||
Add your PCBID as a child to the `<ea3>` parent node:
|
||||
|
||||
```xml
|
||||
<id>
|
||||
<pcbid __type="str">00010203040506070809</pcbid>
|
||||
<hardid __type="str">00010203040506070809</hardid>
|
||||
</id>
|
||||
```
|
||||
|
||||
Replace the values accordingly with your actual PCBID registered with your target network.
|
||||
|
||||
Add network settings (note this might already exist, replace existing or delete old one) as a child
|
||||
to the `<ea3>` parent node:
|
||||
|
||||
```xml
|
||||
<network>
|
||||
<sz_xrpc_buf __type="u32">102400</sz_xrpc_buf>
|
||||
<ssl __type="bool">0</ssl>
|
||||
<services>http://eamuse.konami.fun/service/services/services/</services>
|
||||
</network>
|
||||
```
|
||||
|
||||
Replace the properties accordingly with the settings provided by your network provider, e.g. the
|
||||
URL, further settings like ssl etc.
|
||||
|
||||
## Running
|
||||
|
||||
Run `gamestart-XX.bat`, where `XX` corresponds to the version of the game you want to run, as
|
||||
administrator. For the US version of X2, run `gamestart-12-us.bat` instead. This can be done by
|
||||
either by double clicking or running it from `cmd.exe`. The latter is recommended to have any debug
|
||||
output kept on screen after closing the game.
|
||||
|
||||
This will run [inject](../inject.md) or [launcher](../launcher.md), depending on the version of the
|
||||
game, with the `ddrhook2.dll`. On first run, if you don't have a conguration file, e.g.
|
||||
`ddr-12.conf`, available in the same folder, a default one will be created and the game exits.
|
||||
Simply re-run `gamestart-XX.bat` again.
|
||||
|
||||
## Configure USB memory cards and edit data (DDR X2)
|
||||
|
||||
You can setup actual USB thumb drives mapped to a drive letter, e.g. `E:\` for player 1 and `F:\`
|
||||
for player 2, or just have them point to any local directory, e.g. `usbmem_p1` and `usbmem_p2`.
|
||||
|
||||
Set-up your folder mappings in the [conf file or via command line args](#configuration-ddrhook) like
|
||||
follows:
|
||||
|
||||
- Enable USB memory data emulation: `ddrhook1.usbmem_enabled=true`
|
||||
- Set P1 USB memory data path pointing to local folder `usbmem_p1` next to `DDR.EXE`:
|
||||
`ddrhook1.usbmem_path_p1=usbmem_p1`
|
||||
- Set P1 USB memory data path pointing to local folder `usbmem_p2` next to `DDR.EXE`:
|
||||
`ddrhook1.usbmem_path_p1=usbmem_p2`
|
||||
- Have/create a subfolder called `DDR_EDIT` on any location/USB drive you want to use
|
||||
- Name your edit data file either `DDR_EDIT_J.DAT` (for JP version) or `DDR_EDIT_US.DAT` (for US
|
||||
version) and place it in the `DDR_EDIT` directory.
|
||||
|
||||
For the example setup above, the full relative path of the edit file should be
|
||||
`usbmem_p1\DDR_EDIT\DDR_EDIT_J.DAT` for player 1.
|
||||
|
||||
Note that USB memory cards are not detected by the game and the game stays silent about that if they
|
||||
do not contain edit data, your path mapping does not resolve or you misplaced or named your edit
|
||||
data file incorrectly.
|
||||
|
||||
## Troubleshooting and FAQ
|
||||
|
||||
### Video codecs for background videos
|
||||
|
||||
For DDR 2014 and newer (maybe also earlier?), you need to register `k-clvsd.dll` and
|
||||
`xactengine2_10.dll` to make background videos work. These files are included with respective
|
||||
versions of the games.
|
||||
|
||||
Run the following commands either from a command line (`cmd.exe`) or from *Start* > *Run*. Adjust
|
||||
the path to files accordingly pointing to the correct files.
|
||||
|
||||
- Register `regsvr32 D:\MDX\contents\k-clvsd.dll`
|
||||
- Register `regsvr32 D:\MDX\contents\xactengine2_10.dll`
|
||||
|
||||
The `gamestart-XX.bat` scripts should already take care of this by executing the listed commands
|
||||
when launched.
|
||||
|
||||
Note: The one that comes with IIDX will hang DDR at startup. The opposite is not true: IIDX works
|
||||
just fine with this CLVSD.
|
||||
|
||||
### Laggy audio
|
||||
|
||||
If you're running on Windows XP, go to the sound devices control panel, select your sound card,
|
||||
click Advanced Options and turn Hardware Acceleration down to basic. This will make the audio much
|
||||
less laggy..
|
||||
33
doc/ddrhook/ddrio-async.md
Normal file
33
doc/ddrhook/ddrio-async.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Asynchronous proxy wrapper for other ddrio implementations
|
||||
|
||||
This implementation of the Bemanitools API is not implementing support for any specific IO hardware.
|
||||
It is a proxy/shim library that loads another ddrio library, e.g. ddrio-p3io, and drives the entire
|
||||
backend in a dedicated IO thread. By implementing this behind the ddrio API, it is fully transparent
|
||||
to any existing application using it.
|
||||
|
||||
The main benefit is the improved IO polling performance depending on how expensive the synchronous
|
||||
calls of the actual hardware are. For example, *ddrio-p3io* has very expensive write calls with ~12
|
||||
ms duration while read calls take ~4 ms. Therefore, a full update cycle is already about as costly
|
||||
as rendering an entire frame (at 60 fps).
|
||||
|
||||
## Setup
|
||||
|
||||
For hook libraries, i.e. ddrhookX, but likely applicable to 3rd party applications (consolidate
|
||||
their manuals).
|
||||
|
||||
- Have `ddrio-async.dll` in the same folder as your `ddrhookX.dll`
|
||||
- Rename `ddrio-async.dll` to `ddrio.dll`
|
||||
- Pick another ddrio library as the backend of your choice, e.g. `ddrio-p3io.dl` and put it next to
|
||||
the async `ddrio.dll`
|
||||
- Rename it to `ddrio-async-child.dll`, ddrio-async is looking for that filename in the same folder
|
||||
- Ensure that your `gamestart.bat` actually injects the appropriate `ddrhook.dll`, for example:
|
||||
|
||||
```bat
|
||||
inject ddrhook1.dll ddr.exe ...*
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bat
|
||||
launcher -K ddrhook2.dll arkmdxp3.dll ...*
|
||||
```
|
||||
29
doc/ddrhook/ddrio-p3io.md
Normal file
29
doc/ddrhook/ddrio-p3io.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# ddrio API implementation with DDR P3IO (Dragon) and EXTIO
|
||||
|
||||
This implementation of BT5's ddrio API allows you to use the native DDR P3IO of a "Dragon PCB" plus
|
||||
the EXTIO with anything the ddrio API supports.
|
||||
|
||||
This is not required to run the actual games supporting the hardware natively. However, there are
|
||||
various 3rd party applications using the ddrio API where you might benefit from using actual SD
|
||||
cabinet hardware, e.g. [vigem-ddrio](../vigem/README.md).
|
||||
|
||||
## Setup
|
||||
|
||||
For hooks, but likely applicable to 3rd party applications (consolidate their manuals).
|
||||
|
||||
- Driver: You must have the P3IO driver intalled on your system
|
||||
- Driver from
|
||||
[bemanitools-supplements](https://github.com/djhackersdev/bemanitools-supplement/blob/master/ddr/p3io/README.md)
|
||||
- Have `ddrio-p3io.dll` in the same folder as your `ddrhookX.dll`
|
||||
- Rename `ddrio-p3io.dll` to `ddrio.dll`
|
||||
- Ensure that your `gamestart.bat` actually injects the appropriate ddrhook dll, for example:
|
||||
|
||||
```bat
|
||||
inject ddrhook1.dll ddr.exe ...*
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bat
|
||||
launcher -K ddrhook2.dll arkmdxp3.dll ...*
|
||||
```
|
||||
30
doc/ddrhook/ddrio-smx.md
Normal file
30
doc/ddrhook/ddrio-smx.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Using SMX pads with BemaniTools (DDR Ace and higher)
|
||||
|
||||
If you are looking to use StepManiaX pads with DDR, these are supported **natively** for Gen 1
|
||||
through Gen 5.(And theoretically beyond!) Steps and info below
|
||||
|
||||
## Step-by-Step
|
||||
|
||||
1. Ensure that you have the latest `SMX.dll` copied to your contents folder. The easiest way to get
|
||||
this is to download and install the latest SMX Config program on
|
||||
[StepManiaX.com](https://data.stepmaniax.com/docs/SMXConfigInstaller-2020-04-03-01.exe).
|
||||
`SMX.dll`'s default install location is `C:\Program Files (x86)\SMXConfig`
|
||||
1. After bemanitools has been copied to your contents folder, rename the regular `ddrio.dll` to
|
||||
something like `ddrio-orig.dll`.
|
||||
1. Rename `ddrio-smx.dll` to `ddrio.dll`.
|
||||
1. Use the config tool to set up the usual stuff.(cards, network, etc.) Be sure to map menu, test,
|
||||
service, and start buttons to your keyboard or other controllers. You **cannot** map SMX panels
|
||||
as joystick inputs.
|
||||
1. Start the game. If everything works properly, the game will boot and your panels will light up
|
||||
when stepped on during gameplay and song selection.
|
||||
|
||||
## Important Things
|
||||
|
||||
- Pad panel inputs (UDLR on P1 and P2) are mapped automatically. If you've purchased a single pad
|
||||
from StepManiaX, this jumper is installed and will set your pad to P2 by default. If you want to
|
||||
change to P1, you'll need to open up your pads and remove this jumper in the
|
||||
[MCU box](https://data.stepmaniax.com/docs/Stage%20-%20Gen%205%20Manual%20Rev1.pdf).
|
||||
- Panel colors set in the SMX config tool are not used. Colors are set internally by Bemanitools.
|
||||
- If you get a warning about setlights2 when starting the game, your `SMX.dll` is likely out of
|
||||
date. Make sure you've downloaded the latest version of the StepManiaX config tool from
|
||||
stepmaniax.com and have copied the `SMX.dll` to your contents folder.
|
||||
55
doc/ddrhook/unicorntail.md
Normal file
55
doc/ddrhook/unicorntail.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Unicorntail
|
||||
|
||||
Unicorntail is a hook library to run the DDR games on a hybrid type of hardware referred to as a
|
||||
"Chimera" or "Unicorn". Compared to a "Dragon", which refers to the official stock hardware by
|
||||
Konami, a Chimera mixes the P3IO board from a PCB used with GF&DM V4-V8, Jubeat, Jubeat Ripples or
|
||||
Jubeat Knit with the motherboard from a GF&DM XG, XG2 or XG3 PCB, or a Reflec Beat PCB.
|
||||
|
||||
Actual build instructions for such hardware are out of scope here.
|
||||
|
||||
## Context
|
||||
|
||||
Dragon PCBs are hard to come by compared to finding the parts for a Chimera PCB.
|
||||
|
||||
A Chimera PCB however is different in many aspects to the Dragon PCB and requires the use of the
|
||||
`unicorntail.dll` hook library.
|
||||
|
||||
The Dragon's P3IO has two serial ports that the regular P3IOs do not, and one of these serial ports
|
||||
is used to communicate with the card readers. Note that these are actual serial ports driven
|
||||
directly by the P3IO microcontroller, these are NOT just passed through to the motherboard like the
|
||||
proprietary COM1 and COM2 connectors.
|
||||
|
||||
Unicorn Tail intercepts serial port IO commands being sent to the P3IO and redirects them to a COM4
|
||||
in Windows instead, where two readers can be connected via the motherboard's RS232 port or a usb
|
||||
RS232 adapter.
|
||||
|
||||
## Drivers
|
||||
|
||||
You need the P3IO driver installed on your target system. These can be acquired from an actual stock
|
||||
HDD or grabbed from
|
||||
[bemanitools-supplements](https://dev.s-ul.net/djhackers/bemanitools-supplement/-/blob/master/gfdm/p3io/README.md).
|
||||
|
||||
## COM Port Setup
|
||||
|
||||
Using Device Manager in Windows, ensure the following COM ports are connected and setup.
|
||||
|
||||
COM1: EXTIO COM4: Two readers
|
||||
|
||||
Windows is often poor about saving the COM port number, so ewf commit (if applicable) and reboot
|
||||
after saving this setting to ensure it sticks.
|
||||
|
||||
## Setup and run
|
||||
|
||||
Edit the `gamestart.bat` file that you are using and append `unicorntail.dll` to the list of hooks,
|
||||
e.g.:
|
||||
|
||||
```shell
|
||||
launcher.exe -H 33554432 -K unicorntail.dll arkmdxp3.dll %*
|
||||
```
|
||||
|
||||
If you want to use any ddrhook library in addition, you have to have the hooks in the right order to
|
||||
make everything work correctly, e.g.:
|
||||
|
||||
```shell
|
||||
launcher.exe -H 33554432 -K unicorntail.dll -K ddrhook2.dll arkmdxp3.dll %*
|
||||
```
|
||||
4
doc/dev/README.md
Normal file
4
doc/dev/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Development documentation and notes
|
||||
|
||||
This folder contains various lose documentation snippets created by the developers. These can be
|
||||
helpful as future reference.
|
||||
@@ -1,103 +0,0 @@
|
||||
# Follow-up (14th August 2019)
|
||||
After publishing this post-mortem, I got messaged by a user on sows who was able to shed some more light on this issue.
|
||||
The user was experiencing the same symptoms on a Win7 setup: blue screen once the firmware was flashed to the C02 IO.
|
||||
This user's solutions was to use the USB2 ports on the PC instead of the USB3 ones. This is good to know and kinda
|
||||
aligns with the weird things happening in the driver (see below).
|
||||
|
||||
# Post-mortem: C02 IO kernel module crash on Windows 7 (29th July 2019) by icex2
|
||||
## Background
|
||||
The original ezusbsys.sys kernel module, which is required to run the C02 IO, was compiled for Windows XP 32-bit, only.
|
||||
There is a newer driver by Cypress, cyusb3.sys, which could be used to IO2 boards on newer Windows platforms, but does
|
||||
not work with the C02 IO in combination with Konami's propriatery firmware. Thus, it was not possible to run the C02 IO
|
||||
on anything than Windows XP 32-bit. But, with newer IIDX games running on Windows 7 64-bit, the C02 IO wasn't usable
|
||||
anymore. Leaving aside, that the newer games actually require a BIO2 board and do not support C02 nor IO2 boards
|
||||
anymore.
|
||||
|
||||
## The goal
|
||||
I still wanted to use my cabinet with a C02 board on newer games which is possible with BT5 adding an emulation layer
|
||||
and an interface (iidxio). This IO interface can be used to implement a driver that talks to a real IO again. Thus,
|
||||
implementing a ezusb iidxio driver library, we can run newer games with an C02 IO as well.
|
||||
|
||||
However, there was no ezusbsys.sys driver that works on newer platforms required to run the newer games. But, Cypress
|
||||
was nice and included the source code of the ezusbsys kernel module. With a few tweaks and a very recent version of
|
||||
visual studio, it was quite easy to build this driver for newer platforms, including Windows 7, 8 and 10 in both
|
||||
32-bit and 64-bit variants.
|
||||
|
||||
## The problem
|
||||
But, when using this driver on certain combinations of newer hardware (max. 1-2 years old) and Windows 7, the kernel
|
||||
module might crash after the Konami C02 firmware got flashed to the ezusb board. The result was a bluescreen and reboot.
|
||||
|
||||
However, the hardware was fine and the kernel module worked fine on another piece of hardware, the stock PC that was
|
||||
used with iidx 20 to 24. However, this hardware is not powerful enough to run iidx 25 and newer without stuttering
|
||||
issues.
|
||||
|
||||
## The analysis/debugging
|
||||
Note: The full source code can be found in the bemanitools-supplement package.
|
||||
|
||||
Setup:
|
||||
* Native hardware with Windows 7 that was crashing
|
||||
* Vmware with Windows 10 and Visual Studio 2019 to compile the kernel module. Target platform Windows 7 64-bit
|
||||
* Booting Windows 7 in test mode to allow unsigned kernel modules to run and with debug output turned on
|
||||
* dbgview on Windows 7 machine to get local kernel dbg output
|
||||
|
||||
Because I wanted to stick to Windows 7 in the beginning (refer to the solution section), I started debugging the kernel
|
||||
module by enabling the debug message output that was already available in the code. However, since kernel debug message
|
||||
printing can be very delayed, the kernel could not print various messages before the kernel crashed.
|
||||
|
||||
Thus, I started stripping the kernel module step by step to narrow down the possible spots causing the crash. After a
|
||||
few hours, I got the (first) issue tracked down:
|
||||
|
||||
After the firmware was flashed, the device had to re-enumerate. When this happens, the function *Ezusb_PnPAddDevice*
|
||||
is called to create a new instance of the device. Since this kernel module is acting as a filter driver, it has to
|
||||
trap this call, and add a filter device before the real device in the device stack. Thus, each call to the ezusb device
|
||||
hits the filter device first and the filter device calls the real device after doing some magic.
|
||||
|
||||
*Ezusb_PnPAddDevice* calls *Ezusb_CreateDeviceObject*. Afterwards, it checks the status of the call to
|
||||
*Ezusb_CreateDeviceObject* and if successful, it tries attaching the device to the device stack. However, instead of
|
||||
using *IoAttachDeviceToDeviceStackSafe* it uses the unsafe variant *IoAttachDeviceToDeviceStack* which can lead to a
|
||||
race condition on newer Windows Systems. Furthermore, all initialization of further variables of the *deviceObject*
|
||||
needs to happen BEFORE doing that. Again, this is a race condition.
|
||||
|
||||
Next issue: Once the kernel calls *Ezusb_StartDevice* -> *Ezusb_ConfigureDevice* -> *Ezusb_SelectInterfaces*, it tries
|
||||
to use *USBD_ParseConfigurationDescriptorEx* to get the interface from the configuration descriptor. However, that
|
||||
fails for some unknown reason. I checked the data structure and it is perfectly fine and everything is there. Thus,
|
||||
I wrote my own version *Ezusb_GetInterfaceFromConfigurationDescriptor* which does all the magic required to get this
|
||||
part fixed:
|
||||
```
|
||||
PUSB_INTERFACE_DESCRIPTOR Ezusb_GetInterfaceFromConfigurationDescriptor(
|
||||
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
|
||||
)
|
||||
{
|
||||
if (!ConfigurationDescriptor) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor NULL configuration desc"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (ConfigurationDescriptor->wTotalLength < sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_CONFIGURATION_DESCRIPTOR)) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor configuration descriptor too small to have space for interface descriptor"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// hardcoding this to a single interface because we only care about the ezusb used with IIDX (C02 IO)
|
||||
if (ConfigurationDescriptor->bNumInterfaces < 1) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor num interfaces 0"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// when retrieving the configuration descriptor from the usb device, the interface is located right next to it
|
||||
return (PUSB_INTERFACE_DESCRIPTOR) (((unsigned char*) ConfigurationDescriptor) + sizeof(USB_CONFIGURATION_DESCRIPTOR));
|
||||
}
|
||||
```
|
||||
|
||||
And next issue is just up ahead: Following the above, we have to call *Ezusb_USBD_CreateConfigurationRequestEx* to
|
||||
create a USB configuration request to set the interface we want to use. This is executed with a *Ezusb_CallUSBD* call
|
||||
which sends request to the real hardware. However, this request always fails. The call *IoCallDriver* inside
|
||||
*Ezusb_CallUSBD* always returns an NTSTATUS code that is not documented anywhere (can't find the exact status code
|
||||
anymore, but once you get it, try to find it in the header file).
|
||||
|
||||
At this point, I had to give up. I already wasted too many hours and this is clearly a dead end.
|
||||
|
||||
## The solution
|
||||
Once I realized that I got stuck with Windows 7 and I didn't want to buy (more) new hardware, I gave Windows 10 a try.
|
||||
Surprisingly, this solved all the issues and the kernel module runs fine. The C02 board is flashable without crashing
|
||||
and works with newer IIDX games.
|
||||
@@ -6,21 +6,20 @@
|
||||
|
||||
Separate boxed unit containing with one card reader slot and pin key pad
|
||||
|
||||
- BeatmaniaIIDX DistorteD to Lincle: grey slotted readers hanging below the
|
||||
side speakers next to the monitor
|
||||
- DDR SN 1/2: slotted readers red/black supernova cover mounted to the side of
|
||||
the cabinet next to the monitor (left and right)
|
||||
- BeatmaniaIIDX DistorteD to Lincle: grey slotted readers hanging below the side speakers next to
|
||||
the monitor
|
||||
- DDR SN 1/2: slotted readers red/black supernova cover mounted to the side of the cabinet next to
|
||||
the monitor (left and right)
|
||||
|
||||
# ICCB
|
||||
|
||||
Single card reader slot (no separate pin pad) built into the cabinet.
|
||||
Pin entry using game controls.
|
||||
Single card reader slot (no separate pin pad) built into the cabinet. Pin entry using game controls.
|
||||
|
||||
- (First gen) Jubeat cabinets before replaced with wave pass readers
|
||||
|
||||
# ICCC
|
||||
|
||||
Single card reader wave pass unit without separate pin pad. Pin entry using
|
||||
game controls. Still supported by newer versions.
|
||||
Single card reader wave pass unit without separate pin pad. Pin entry using game controls. Still
|
||||
supported by newer versions.
|
||||
|
||||
- (Second gen) Jubeat cabinets with wave pass readers
|
||||
- (Second gen) Jubeat cabinets with wave pass readers
|
||||
|
||||
117
doc/dev/journal/2018-02-10-logging-breakdown-avs.md
Normal file
117
doc/dev/journal/2018-02-10-logging-breakdown-avs.md
Normal file
@@ -0,0 +1,117 @@
|
||||
Copy/pasted from chat with tau (2018/02/10):
|
||||
|
||||
alright then. so for modern iidx.
|
||||
|
||||
we want to do logging inside iidxhook and we also want to pass AVS-style log functions to iidxio
|
||||
which in turn passes them on to geninput in order for those to do logging too
|
||||
|
||||
so iidxhook connects to the AVS log API: log_body_misc and friends, which I assume are invoked using
|
||||
a log_misc() macro in Konami's source code that adds some sort of module tag.
|
||||
|
||||
anyway yeah this we already know.
|
||||
|
||||
libutil has four function ptrs: log_impl_misc and co. These are static variables which are
|
||||
statically initialized to some no-op functions. Except log_impl_fatal, whose implementation just
|
||||
calls libc abort()
|
||||
|
||||
at startup you call log_to_external(), supplying four function ptrs to wire these up to. As the name
|
||||
suggests, this causes Bemanitools libutil to talk to something that is compatible with the AVS log
|
||||
sink API.
|
||||
|
||||
alternatively you can log_to_writer(), which initializes Bemanitools to use its own, internal
|
||||
logging system, and you give it a log writer function that takes strings and writes them somewhere.
|
||||
|
||||
So you have log sinks and you have log writers. The path is \[application code\] -> \[log sink\] ->
|
||||
\[logging engine\] -> \[log writer\] 19:29
|
||||
|
||||
inside config.exe (or generally outside of modern AVS games) this path looks like \[bemanitools
|
||||
application code\] -> \[log sinks passed across dlls\] -> \[bemanitools logging engine\] ->
|
||||
\[bemanitools log writer\]
|
||||
|
||||
inside modern AVS game the path looks like \[bt hook dll / bt iodev dll\] -> \[avs log_body_whatever
|
||||
log sinks\] -> \[avs logging engine\] -> \[launcher.exe log writer\]
|
||||
|
||||
note that I tried to keep the log writer API consistent with the AVS log writer API but then Konami
|
||||
went and broke it repeatedly so now Bemanitools has its own stable log writer API. Launcher tracks
|
||||
the AVS log writer API, which breaks constantly, so that's not the same thing.
|
||||
|
||||
anyway that's the background story. Now for the details about IIDX in particular.
|
||||
|
||||
up until about iidx19 we did things the obvious way: iidxhook would log_to_external() to hook into
|
||||
the AVS log sinks and then call those directly and all was well. Then one fine day I was given a
|
||||
IIDX19 data dump and tried running iidxhook and it crashed with a stack overflow. hmm.
|
||||
|
||||
the problem boils down to this: iidx19 AVS added those log timestamps. And for for whatever reason
|
||||
the AVS logging engine needs to access some mutexes and condition variables to make this work
|
||||
properly
|
||||
|
||||
but AVS of course in grand Konami tradition has its own threading and concurrency primitive API
|
||||
which wraps the Win32 API. tbf this is kind of understandable in some sense, because win32 actually
|
||||
did not have condition variables until Windows Vista! in 2006! seriously, I'm not kidding.
|
||||
|
||||
there's all sorts of articles out there describing in fine detail how to use Win32's event objects
|
||||
to implement your own condition variables and the multitudinous pitfalls that this entails
|
||||
|
||||
but anyway one fun thing about the AVS concurrency API is that you can't actually use concurrency
|
||||
primitives unless you're calling that API from a thread launched using the AVS threading API
|
||||
|
||||
and that's a problem in the case of iidxhook, because iidx is old as balls relatively speaking and
|
||||
its EZUSB driver code has I think two worker threads, which it launches using the MS libc's
|
||||
\_beginthreadex() function
|
||||
|
||||
this in turn is a wrapper around the win32 CreateThread function, but it also boots up stdio on
|
||||
whatever new thread gets launched and basically is responsible for guaranteeing that the libc will
|
||||
operate correctly on the newly launched thread
|
||||
|
||||
so yeah when you do windows programming, never call CreateThread, always call \_beginthreadex.
|
||||
otherwise stuff will break. maybe.
|
||||
|
||||
point is, IIDX predates modern AVS so it just uses Windows threading directly. So, IIDX worker
|
||||
thread starts up, iidxhook does its thing, writes a log message, calls into AVS logging, which in
|
||||
turn grabs an AVS mutex, the implementation of which says "omg this isn't an AVS thread aaaaaa" and
|
||||
... attempts to call back into the logging system to log this fact. whereupon a stack overflow
|
||||
condition proceeds in a predictable manner.
|
||||
|
||||
so, there are a few ways to deal with this problem. bemanitools 4 dealt with it in a fairly stupid
|
||||
way.
|
||||
|
||||
and very elaborate way too
|
||||
|
||||
bt4 intercepted IIDX's calls to create Windows threads and then redirected those calls to go via the
|
||||
AVS threading API
|
||||
|
||||
so now the worker threads are AVS threads and logging works as expected
|
||||
|
||||
which is all well and good but the problem is that these threads are quite timing critical. it
|
||||
probably worked fine, but i didn't want to risk affecting those threads in a weird way and
|
||||
introducing latency and jitter. i wanted to keep the threading pristine and not mess with it just
|
||||
for the sake of diagnostic messages
|
||||
|
||||
so bemanitools 5 uses the log server approach
|
||||
|
||||
at an appropriate time, it creates its own AVS thread, the logging server. Since it is an AVS
|
||||
thread, it can call the AVS logging API
|
||||
|
||||
and then we have log_post_misc() and friends, implemented in log-server.c
|
||||
|
||||
we initialize the Bemanitools logging system to log "externally" to those funcs and we also
|
||||
propagate those to iidxio.dll and eamio.dll which in turn pass them to geninput.dll
|
||||
|
||||
so what do log_post_misc and friends do
|
||||
|
||||
they lock a "mailbox" using the win32 concurrency primitives and write the log severity and a
|
||||
pointer to the string to be logged into the mailbox, then signal the log server thread, again using
|
||||
win32 concurrency primitives
|
||||
|
||||
then they do a synchronous wait for an acknowledgement from the logging server: since we're holding
|
||||
a string pointer, we cannot return until that string pointer has been consumed or it may be
|
||||
concurrently invalidated
|
||||
|
||||
so the log server wakes up, locks the mailbox, calls AVS log_body_misc() to write the log message,
|
||||
then once that returns it asserts a signal in the mailbox (again, win32 event object because lol
|
||||
what are condition variables) and releases the lock.
|
||||
|
||||
the caller gets the signal, wakes up, and returns to whatever Bemanitools code is running on the
|
||||
IIDX IO worker thread that wanted to write a log message.
|
||||
|
||||
end of essay.
|
||||
123
doc/dev/journal/2019-07-29-c02-driver-on-w7-crash.md
Normal file
123
doc/dev/journal/2019-07-29-c02-driver-on-w7-crash.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Follow-up (14th August 2019)
|
||||
|
||||
After publishing this post-mortem, I got messaged by a user on sows who was able to shed some more
|
||||
light on this issue. The user was experiencing the same symptoms on a Win7 setup: blue screen once
|
||||
the firmware was flashed to the C02 IO. This user's solutions was to use the USB2 ports on the PC
|
||||
instead of the USB3 ones. This is good to know and kinda aligns with the weird things happening in
|
||||
the driver (see below).
|
||||
|
||||
# Post-mortem: C02 IO kernel module crash on Windows 7 (29th July 2019) by icex2
|
||||
|
||||
## Background
|
||||
|
||||
The original ezusbsys.sys kernel module, which is required to run the C02 IO, was compiled for
|
||||
Windows XP 32-bit, only. There is a newer driver by Cypress, cyusb3.sys, which could be used to IO2
|
||||
boards on newer Windows platforms, but does not work with the C02 IO in combination with Konami's
|
||||
propriatery firmware. Thus, it was not possible to run the C02 IO on anything than Windows XP
|
||||
32-bit. But, with newer IIDX games running on Windows 7 64-bit, the C02 IO wasn't usable anymore.
|
||||
Leaving aside, that the newer games actually require a BIO2 board and do not support C02 nor IO2
|
||||
boards anymore.
|
||||
|
||||
## The goal
|
||||
|
||||
I still wanted to use my cabinet with a C02 board on newer games which is possible with BT5 adding
|
||||
an emulation layer and an interface (iidxio). This IO interface can be used to implement a driver
|
||||
that talks to a real IO again. Thus, implementing a ezusb iidxio driver library, we can run newer
|
||||
games with an C02 IO as well.
|
||||
|
||||
However, there was no ezusbsys.sys driver that works on newer platforms required to run the newer
|
||||
games. But, Cypress was nice and included the source code of the ezusbsys kernel module. With a few
|
||||
tweaks and a very recent version of visual studio, it was quite easy to build this driver for newer
|
||||
platforms, including Windows 7, 8 and 10 in both 32-bit and 64-bit variants.
|
||||
|
||||
## The problem
|
||||
|
||||
But, when using this driver on certain combinations of newer hardware (max. 1-2 years old) and
|
||||
Windows 7, the kernel module might crash after the Konami C02 firmware got flashed to the ezusb
|
||||
board. The result was a bluescreen and reboot.
|
||||
|
||||
However, the hardware was fine and the kernel module worked fine on another piece of hardware, the
|
||||
stock PC that was used with iidx 20 to 24. However, this hardware is not powerful enough to run iidx
|
||||
25 and newer without stuttering issues.
|
||||
|
||||
## The analysis/debugging
|
||||
|
||||
Note: The full source code can be found in the bemanitools-supplement package.
|
||||
|
||||
Setup:
|
||||
|
||||
- Native hardware with Windows 7 that was crashing
|
||||
- Vmware with Windows 10 and Visual Studio 2019 to compile the kernel module. Target platform
|
||||
Windows 7 64-bit
|
||||
- Booting Windows 7 in test mode to allow unsigned kernel modules to run and with debug output
|
||||
turned on
|
||||
- dbgview on Windows 7 machine to get local kernel dbg output
|
||||
|
||||
Because I wanted to stick to Windows 7 in the beginning (refer to the solution section), I started
|
||||
debugging the kernel module by enabling the debug message output that was already available in the
|
||||
code. However, since kernel debug message printing can be very delayed, the kernel could not print
|
||||
various messages before the kernel crashed.
|
||||
|
||||
Thus, I started stripping the kernel module step by step to narrow down the possible spots causing
|
||||
the crash. After a few hours, I got the (first) issue tracked down:
|
||||
|
||||
After the firmware was flashed, the device had to re-enumerate. When this happens, the function
|
||||
*Ezusb_PnPAddDevice* is called to create a new instance of the device. Since this kernel module is
|
||||
acting as a filter driver, it has to trap this call, and add a filter device before the real device
|
||||
in the device stack. Thus, each call to the ezusb device hits the filter device first and the filter
|
||||
device calls the real device after doing some magic.
|
||||
|
||||
*Ezusb_PnPAddDevice* calls *Ezusb_CreateDeviceObject*. Afterwards, it checks the status of the call
|
||||
to *Ezusb_CreateDeviceObject* and if successful, it tries attaching the device to the device stack.
|
||||
However, instead of using *IoAttachDeviceToDeviceStackSafe* it uses the unsafe variant
|
||||
*IoAttachDeviceToDeviceStack* which can lead to a race condition on newer Windows Systems.
|
||||
Furthermore, all initialization of further variables of the *deviceObject* needs to happen BEFORE
|
||||
doing that. Again, this is a race condition.
|
||||
|
||||
Next issue: Once the kernel calls *Ezusb_StartDevice* -> *Ezusb_ConfigureDevice* ->
|
||||
*Ezusb_SelectInterfaces*, it tries to use *USBD_ParseConfigurationDescriptorEx* to get the interface
|
||||
from the configuration descriptor. However, that fails for some unknown reason. I checked the data
|
||||
structure and it is perfectly fine and everything is there. Thus, I wrote my own version
|
||||
*Ezusb_GetInterfaceFromConfigurationDescriptor* which does all the magic required to get this part
|
||||
fixed:
|
||||
|
||||
```
|
||||
PUSB_INTERFACE_DESCRIPTOR Ezusb_GetInterfaceFromConfigurationDescriptor(
|
||||
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
|
||||
)
|
||||
{
|
||||
if (!ConfigurationDescriptor) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor NULL configuration desc"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (ConfigurationDescriptor->wTotalLength < sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_CONFIGURATION_DESCRIPTOR)) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor configuration descriptor too small to have space for interface descriptor"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// hardcoding this to a single interface because we only care about the ezusb used with IIDX (C02 IO)
|
||||
if (ConfigurationDescriptor->bNumInterfaces < 1) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor num interfaces 0"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// when retrieving the configuration descriptor from the usb device, the interface is located right next to it
|
||||
return (PUSB_INTERFACE_DESCRIPTOR) (((unsigned char*) ConfigurationDescriptor) + sizeof(USB_CONFIGURATION_DESCRIPTOR));
|
||||
}
|
||||
```
|
||||
|
||||
And next issue is just up ahead: Following the above, we have to call
|
||||
*Ezusb_USBD_CreateConfigurationRequestEx* to create a USB configuration request to set the interface
|
||||
we want to use. This is executed with a *Ezusb_CallUSBD* call which sends request to the real
|
||||
hardware. However, this request always fails. The call *IoCallDriver* inside *Ezusb_CallUSBD* always
|
||||
returns an NTSTATUS code that is not documented anywhere (can't find the exact status code anymore,
|
||||
but once you get it, try to find it in the header file).
|
||||
|
||||
At this point, I had to give up. I already wasted too many hours and this is clearly a dead end.
|
||||
|
||||
## The solution
|
||||
|
||||
Once I realized that I got stuck with Windows 7 and I didn't want to buy (more) new hardware, I gave
|
||||
Windows 10 a try. Surprisingly, this solved all the issues and the kernel module runs fine. The C02
|
||||
board is flashable without crashing and works with newer IIDX games.
|
||||
@@ -1,25 +1,31 @@
|
||||
# Notes outlining some aspects of the DirectX calls which were required to know to implement a up-/downscaling feature
|
||||
As the title says, this outlines some aspects I needed to figure out in order to implement a up-/downscaling feature
|
||||
within the d3d9 hook module that works on all currently available IIDX versions (9 to 26).
|
||||
|
||||
To analyze the rendering loops, I have used a tool called apitrace which traces the calls of many graphic APIs:
|
||||
https://github.com/apitrace/apitrace
|
||||
As the title says, this outlines some aspects I needed to figure out in order to implement a
|
||||
up-/downscaling feature within the d3d9 hook module that works on all currently available IIDX
|
||||
versions (9 to 26).
|
||||
|
||||
Defintely recommended to quickly figure out what is going on regarding rendering. It also allows you to let you render
|
||||
parts of a scene after the application exited because it records all API calls and data passed to them.
|
||||
To analyze the rendering loops, I have used a tool called apitrace which traces the calls of many
|
||||
graphic APIs: https://github.com/apitrace/apitrace
|
||||
|
||||
Anyway, considering the various iterations in (GPU) hardware the game had to undergo combined with weird quirks and
|
||||
"fixes" Bemanitools is undoing, I wouldn't have guessed that their rendering engine was nearly the same until IIDX 20.
|
||||
That's when they introduced SD/HD mode.
|
||||
Defintely recommended to quickly figure out what is going on regarding rendering. It also allows you
|
||||
to let you render parts of a scene after the application exited because it records all API calls and
|
||||
data passed to them.
|
||||
|
||||
In this case, that's great news because I had to craft a solution that allows up-/downscaling the final frame to
|
||||
different resolutions (see the iidxhook-util/d3d9 module for more details about the feature).
|
||||
Anyway, considering the various iterations in (GPU) hardware the game had to undergo combined with
|
||||
weird quirks and "fixes" Bemanitools is undoing, I wouldn't have guessed that their rendering engine
|
||||
was nearly the same until IIDX 20. That's when they introduced SD/HD mode.
|
||||
|
||||
In this case, that's great news because I had to craft a solution that allows up-/downscaling the
|
||||
final frame to different resolutions (see the iidxhook-util/d3d9 module for more details about the
|
||||
feature).
|
||||
|
||||
But first, we need a breakdown of the render loop's most relevant parts for this:
|
||||
|
||||
## IIDX pre 20
|
||||
Using apitrace, we can see the following outline of a frame (not counting the first one that does a lot of setup in
|
||||
the beginning):
|
||||
|
||||
Using apitrace, we can see the following outline of a frame (not counting the first one that does a
|
||||
lot of setup in the beginning):
|
||||
|
||||
```
|
||||
BeginScene
|
||||
Clear
|
||||
@@ -31,12 +37,14 @@ Present
|
||||
|
||||
No render target switching, simply render everything to the back buffer...plain and simple.
|
||||
|
||||
Note: The viewport size is determined by the size returned by GetClientRect, wtf.
|
||||
Welp, no official Konmai seal of approval without that. ¯\_(ツ)_/¯
|
||||
Note: The viewport size is determined by the size returned by GetClientRect, wtf. Welp, no official
|
||||
Konmai seal of approval without that. ¯\_(ツ)\_/¯
|
||||
|
||||
## IIDX 20+
|
||||
Using apitrace, we can see the following outline of a frame (not counting the first one that does a lot of setup in
|
||||
the beginning):
|
||||
|
||||
Using apitrace, we can see the following outline of a frame (not counting the first one that does a
|
||||
lot of setup in the beginning):
|
||||
|
||||
```
|
||||
BeginScene
|
||||
// tex1 is a render target texture with size 1280x720 (also in SD mode)
|
||||
@@ -63,26 +71,30 @@ EndScene -> ErrInvalidCall return code
|
||||
Present
|
||||
```
|
||||
|
||||
This is quite a different flow to implement HD and SD mode but the solution to solve that particular problem is straight
|
||||
forward and easy to understand. This means that the game will always render in HD mode and only downscale the final
|
||||
frame to SD resolution for 640x480 output.
|
||||
This is quite a different flow to implement HD and SD mode but the solution to solve that particular
|
||||
problem is straight forward and easy to understand. This means that the game will always render in
|
||||
HD mode and only downscale the final frame to SD resolution for 640x480 output.
|
||||
|
||||
Also, why the fuck do they call BeginScene and EndScene twice? Looks like they wanted to do this in two separate scenes
|
||||
for some reason. Checking the return values would have revealed to them that something's not right...lucky them that
|
||||
this code works nevertheless.
|
||||
Another Konmai seal of approval, a job well done. ¯\_(ツ)_/¯
|
||||
Also, why the fuck do they call BeginScene and EndScene twice? Looks like they wanted to do this in
|
||||
two separate scenes for some reason. Checking the return values would have revealed to them that
|
||||
something's not right...lucky them that this code works nevertheless. Another Konmai seal of
|
||||
approval, a job well done. ¯\_(ツ)\_/¯
|
||||
|
||||
## iidxhook's up-/downscaling solution
|
||||
The initial solution simply hooked into BeginScene and EndScene and let the game render to an intermediate render
|
||||
target texture. The texture was scaled according to the actual target frame buffer size before getting presented. This
|
||||
solution worked fine for pre IIDX 20 games but created a black screen on IIDX 20+.
|
||||
|
||||
In order to avoid two different scaling flows, the final solution that works for both does the following:
|
||||
* Create a render target texture with native resolution and let the game render to it
|
||||
* Set the render target to that intermediate render target texture on BeginScene
|
||||
* Before Present
|
||||
* Scale the intermediate render target texture to the back buffer
|
||||
* Set the back buffer as the render target
|
||||
* Present frame
|
||||
The initial solution simply hooked into BeginScene and EndScene and let the game render to an
|
||||
intermediate render target texture. The texture was scaled according to the actual target frame
|
||||
buffer size before getting presented. This solution worked fine for pre IIDX 20 games but created a
|
||||
black screen on IIDX 20+.
|
||||
|
||||
Just an outline which follows the actual implementation that you can find in the iidxhook-util/d3d9.
|
||||
In order to avoid two different scaling flows, the final solution that works for both does the
|
||||
following:
|
||||
|
||||
- Create a render target texture with native resolution and let the game render to it
|
||||
- Set the render target to that intermediate render target texture on BeginScene
|
||||
- Before Present
|
||||
- Scale the intermediate render target texture to the back buffer
|
||||
- Set the back buffer as the render target
|
||||
- Present frame
|
||||
|
||||
Just an outline which follows the actual implementation that you can find in the iidxhook-util/d3d9.
|
||||
215
doc/dev/journal/2020-12-16-acio-bio2-iidx-package-dump.md
Normal file
215
doc/dev/journal/2020-12-16-acio-bio2-iidx-package-dump.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# ACIO BIO2 IIDX package dump
|
||||
|
||||
Package dump excerpt of the init sequence of a original Konami IIDX BIO2 with sub IO connected. This
|
||||
was used to identify a missing piece of information that needs to be communicated to the BIO2 for
|
||||
IIDX to initialize the sub IO correctly.
|
||||
|
||||
The dump was cut off after two polls as the sequence just keeps on repeating from that point on.
|
||||
|
||||
## Findings for problem to solve
|
||||
|
||||
With the previous implemention of the BIO2 driver, which was created off references of SDVX KFCA, a
|
||||
BIO2 used with IIDX and the sub IO (to upgrade older C02, IO2 cabinets) connected didn't initialize
|
||||
properly. This resulted in no inputs/outputs other than 14 keys working.
|
||||
|
||||
The problem identified was a different byte, exact meaning not known, that is sent in
|
||||
[exchange 4](#exchange-4-ac-io-cmd-clear). Instead of `0x3B` from the SDVX KFCA based
|
||||
implementation, it needs to be set to `0x2D`.
|
||||
|
||||
## Exchange 1: AC_IO_CMD_ASSIGN_ADDRS
|
||||
|
||||
### Write
|
||||
|
||||
```text
|
||||
AA 00 00 01 00 01 00 02
|
||||
|
||||
AA: SOF
|
||||
00: addr
|
||||
0001: AC_IO_CMD_ASSIGN_ADDRS
|
||||
00: seq_no
|
||||
01: nbytes
|
||||
data: 00
|
||||
02: checksum
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 00 00 01 00 01 01 03
|
||||
|
||||
AA: SOF
|
||||
AA: SOF
|
||||
00: addr
|
||||
0001: addr
|
||||
00: seq_no
|
||||
01: nbytes
|
||||
01: data
|
||||
03: checksum
|
||||
```
|
||||
|
||||
## Exchange 2: AC_IO_CMD_GET_VERSION
|
||||
|
||||
### Write
|
||||
|
||||
```
|
||||
AA 01 00 02 00 00 03
|
||||
|
||||
AA: SOF
|
||||
01: addr, node 1
|
||||
0002: AC_IO_CMD_GET_VERSION
|
||||
00: seq_no
|
||||
00: nbytes
|
||||
03: checksum
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 81 00 02 00 2C 0D 06 00 00 ...
|
||||
|
||||
AA: SOF
|
||||
AA: SOF
|
||||
81: Response flag + node 1
|
||||
0002: AC_IO_CMD_GET_VERSION
|
||||
00: seq_no
|
||||
2C: nbytes
|
||||
0D 06 00 00 ...: data
|
||||
XX: checksum
|
||||
```
|
||||
|
||||
## Exchange 3: AC_IO_CMD_START_UP
|
||||
|
||||
### Write
|
||||
|
||||
```
|
||||
AA 01 00 03 00 00 04
|
||||
|
||||
AA: SOF
|
||||
01: addr
|
||||
0003: AC_IO_CMD_START_UP
|
||||
00: seq_no
|
||||
00: nbytes
|
||||
04: checksum
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 81 00 03 00 01 00 85
|
||||
|
||||
AA: SOF
|
||||
AA: SOF
|
||||
81: Response flag + node 1
|
||||
0003: AC_IO_CMD_START_UP
|
||||
00: seq_no
|
||||
01: nbytes
|
||||
00: data
|
||||
85: checksum
|
||||
```
|
||||
|
||||
## Exchange 4: AC_IO_CMD_CLEAR
|
||||
|
||||
### Write
|
||||
|
||||
```
|
||||
AA 01 01 00 00 01 2D 30
|
||||
|
||||
AA: SOF
|
||||
01: addr
|
||||
0100: AC_IO_CMD_CLEAR
|
||||
00: seq_no
|
||||
01: nbytes
|
||||
2D: data
|
||||
30: checksum
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 81 01 00 00 01 00 83
|
||||
|
||||
AA: SOF
|
||||
AA: SOF
|
||||
81: Response flag + node 1
|
||||
0100: AC_IO_CMD_CLEAR
|
||||
00: seq_no
|
||||
01: nbytes
|
||||
00: data
|
||||
83: checksum
|
||||
```
|
||||
|
||||
## Exchange 5: BIO2_BI2A_CMD_WATCHDOG
|
||||
|
||||
### Write
|
||||
|
||||
```
|
||||
AA 01 01 20 00 02 00 00 24
|
||||
|
||||
AA: SOF
|
||||
01: addr
|
||||
0120: BIO2_BI2A_CMD_WATCHDOG
|
||||
00: seq_no
|
||||
02: nbytes
|
||||
00 00: data
|
||||
24: checksum
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 81 01 20 00 01 00 A3
|
||||
|
||||
AA: SOF
|
||||
AA: SOF
|
||||
81: Response flag + node 1
|
||||
0120: BIO2_BI2A_CMD_WATCHDOG
|
||||
00: seq_no
|
||||
01: nbytes
|
||||
00: data
|
||||
A3: checksum
|
||||
```
|
||||
|
||||
## Exchange 6: BIO2_BI2A_CMD_POLL
|
||||
|
||||
### Write
|
||||
|
||||
```
|
||||
AA 01 01 52 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 84
|
||||
|
||||
AA: SOF
|
||||
01: addr
|
||||
0152: BIO2_BI2A_CMD_POLL
|
||||
00: seq_no
|
||||
30: nbtes
|
||||
...: data
|
||||
84: checksum
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 81 01 52 00 2E 00 00 B0 00 F0 00 F0 F0 00 00 00 00 00 02 00 5F 11 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F3
|
||||
|
||||
AA: SOF
|
||||
AA: SOF
|
||||
81: Response flag + node 1
|
||||
0152: BIO2_BI2A_CMD_POLL
|
||||
00: seq_no
|
||||
2E: nbytes
|
||||
...: data
|
||||
F3: checksum
|
||||
```
|
||||
|
||||
## Exchange 7: BIO2_BI2A_CMD_POLL
|
||||
|
||||
### Write
|
||||
|
||||
```
|
||||
AA 01 01 52 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 84
|
||||
```
|
||||
|
||||
### Read
|
||||
|
||||
```
|
||||
AA AA 81 01 52 00 2E 00 00 B0 00 F0 00 F0 F0 00 00 00 00 00 02 00 64 11 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F8
|
||||
```
|
||||
288
doc/dev/journal/2023-04-03-d01-ezusb-io-boot-security.md
Normal file
288
doc/dev/journal/2023-04-03-d01-ezusb-io-boot-security.md
Normal file
@@ -0,0 +1,288 @@
|
||||
# Beatmania IIDX 10th Style - D01 IO boot code and security init
|
||||
|
||||
Date: 2023-04-03 Author: icex2
|
||||
|
||||
Documenting decompiled and reverse engineered code snippets from the D01 JAE `bm2dx.exe`. These
|
||||
helped me figuring out the two different security boot modes the game supports.
|
||||
|
||||
In summary, it supports booting with the C02 IO with a C02 black dongle and a D01 IO board with a
|
||||
D01 dongle. No other combination is valid because they didn't make sense back then. You either had
|
||||
an upgraded old style/twinkle cabinet to C02 (GEC02) or you bought a new dedicated cabinet (GQD01).
|
||||
With 10th style supporting the old C02 dongle, it appears that all owners of a C02 cabinet with IO
|
||||
board and C02 dongle received a free software update/HDD. This might make sense considering the
|
||||
short life span of C02 and the game being super buggy, especially in earlier/initial revisions.
|
||||
|
||||
The game expects the following "configurations" from bemanitools:
|
||||
|
||||
- Booting as upgraded C02 with free D01 upgrade
|
||||
- `sec.boot_version=GEC02 `
|
||||
- `sec.boot_seeds=0:0:1`
|
||||
- `sec.black_plug_mcode=GEC02JAA`
|
||||
- "D01 IO pin" on IO board not active
|
||||
- Booting as dedicated
|
||||
- `sec.boot_version=GEC02 `
|
||||
- `sec.boot_seeds=0:1:1`
|
||||
- `sec.black_plug_mcode=GQD01JAA`
|
||||
- "D01 IO pin" on IO board ACTIVE
|
||||
|
||||
All the above was derived from reading and understanding the documented code excerpts below.
|
||||
|
||||
## io_boot - sub_402700
|
||||
|
||||
Called as the first step in the boot statemachine by the "boot" function `sub_40F9C0`.
|
||||
|
||||
```c
|
||||
// sub_402700
|
||||
int __stdcall io_boot(int a1)
|
||||
{
|
||||
DWORD (__stdcall *timeGetTime)(); // esi
|
||||
int usb_boot_security_res; // ebp
|
||||
DWORD time_start; // ebx
|
||||
int io_boot_state; // edi
|
||||
DWORD now; // esi
|
||||
BOOL is_d01_boot_mode; // esi
|
||||
BOOL v7; // esi
|
||||
int result; // eax
|
||||
int v9; // [esp+10h] [ebp-2Ch]
|
||||
int firmware_version; // [esp+14h] [ebp-28h]
|
||||
int io_pad_read; // [esp+18h] [ebp-24h] BYREF
|
||||
char v12[32]; // [esp+1Ch] [ebp-20h] BYREF
|
||||
|
||||
dword_4D0768 = 0;
|
||||
strcpy(byte_4D076C, &byte_4D0858);
|
||||
timeGetTime = ::timeGetTime;
|
||||
v9 = 0;
|
||||
usb_boot_security_res = io_pad_read;
|
||||
time_start = ::timeGetTime();
|
||||
io_boot_state = 0;
|
||||
while ( 2 )
|
||||
{
|
||||
switch ( io_boot_state )
|
||||
{
|
||||
case 0: // "start io", firmware download and wait for reconnect
|
||||
if ( usbStart(0) )
|
||||
{
|
||||
if ( time_exceeded(time_start, 20000) )
|
||||
set_io_error_type(1, aErrorUsbioStar);// ERROR(USBIO START)
|
||||
}
|
||||
else
|
||||
{
|
||||
io_boot_state = 1;
|
||||
}
|
||||
goto reset_io_boot_state_label;
|
||||
case 1: // check firmware
|
||||
firmware_version = usbFirmResult();
|
||||
if ( firmware_version == 96 )
|
||||
{
|
||||
if ( time_exceeded(time_start, 25000) )
|
||||
set_io_error_type(1, aErrorFm); // ERROR(FM), FM = firmware
|
||||
}
|
||||
else
|
||||
{
|
||||
io_boot_state = 2;
|
||||
}
|
||||
goto reset_io_boot_state_label;
|
||||
case 2:
|
||||
if ( !firmware_version )
|
||||
{
|
||||
usbMute(1);
|
||||
time_start = timeGetTime();
|
||||
now = timeGetTime();
|
||||
io_input_is_d01_ezusb = 0;
|
||||
do
|
||||
{
|
||||
usbPadRead(&io_pad_read);
|
||||
if ( (io_pad_read & 0x10) != 0 )
|
||||
io_input_is_d01_ezusb = 1;
|
||||
}
|
||||
while ( !time_exceeded(now, 2000) );
|
||||
io_boot_state = 3;
|
||||
reset_io_boot_state_label:
|
||||
timeGetTime = ::timeGetTime;
|
||||
if ( io_boot_state != v9 )
|
||||
{
|
||||
v9 = io_boot_state;
|
||||
time_start = ::timeGetTime();
|
||||
}
|
||||
continue; // retry
|
||||
}
|
||||
if ( firmware_version > 128 )
|
||||
{
|
||||
if ( firmware_version == 254 )
|
||||
{
|
||||
set_io_error_type(1, aErrorFmTrnsOut);// ERROR(FM TRNS-OUT)
|
||||
return 1;
|
||||
}
|
||||
if ( firmware_version == 255 )
|
||||
{
|
||||
set_io_error_type(1, aErrorFmTimeOut);// ERROR(FM TIME-OUT)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch ( firmware_version )
|
||||
{
|
||||
case 128:
|
||||
set_io_error_type(1, aErrorFmReadErr);// ERROR(FM READ-ERR)
|
||||
return 1;
|
||||
case -113:
|
||||
set_io_error_type(1, aErrorFmDlErr);// ERROR(FM DL-ERR)
|
||||
return 1;
|
||||
case -33:
|
||||
set_io_error_type(1, aErrorFmCmprReq);// ERROR(FM CMPR-REQ)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
UNKNOWN_ERROR_LABEL:
|
||||
set_io_error_type(1, aErrorUnknown); // ERROR(UNKNOWN)
|
||||
return 1;
|
||||
case 3:
|
||||
if ( io_init_security() )
|
||||
{
|
||||
set_io_error_type(1, aErrorSqInit); // ERROR(SQ-INIT)
|
||||
return 1;
|
||||
}
|
||||
io_boot_state = 4;
|
||||
goto reset_io_boot_state_label;
|
||||
case 4:
|
||||
is_d01_boot_mode = io_input_is_d01_ezusb != 0;
|
||||
if ( !strncmp(black_dongle_mcode, MCODE_GED01, 5u) )
|
||||
is_d01_boot_mode = 1;
|
||||
usb_boot_security_res = usbBootSecurity(aGec02, 0, is_d01_boot_mode, 1);
|
||||
if ( usb_boot_security_res == 96 )
|
||||
{
|
||||
if ( time_exceeded(time_start, 20000) )
|
||||
set_io_error_type(1, aErrorBtSqInit);// ERROR(BT-SQ-INIT)'
|
||||
}
|
||||
else
|
||||
{
|
||||
io_boot_state = 5;
|
||||
}
|
||||
goto reset_io_boot_state_label;
|
||||
case 5:
|
||||
if ( usb_boot_security_res )
|
||||
{
|
||||
switch ( usb_boot_security_res )
|
||||
{
|
||||
case 0xFFFFFE9F:
|
||||
set_io_error_type(1, aErrorSecurityE);// ERROR(SECURITY EEP)
|
||||
result = 1;
|
||||
break;
|
||||
case 0xFFFFFECF:
|
||||
case 0xFFFFFEDF:
|
||||
set_io_error_type(1, aErrorSecurityI);// ERROR(SECURITY ID or EEP)
|
||||
result = 1;
|
||||
break;
|
||||
case 0xFFFFFEEF:
|
||||
set_io_error_type(1, aErrorSecurityN);// 'ERROR(SECURITY No Match)'
|
||||
result = 1;
|
||||
break;
|
||||
case 0xFFFFFEFF:
|
||||
io_boot_state = 6;
|
||||
goto reset_io_boot_state_label;
|
||||
default:
|
||||
goto UNKNOWN_ERROR_LABEL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Sleep(0x3E8u);
|
||||
result = 0;
|
||||
}
|
||||
return result;
|
||||
case 6: // security conversion/upgrading security dongles
|
||||
v7 = io_input_is_d01_ezusb != 0;
|
||||
if ( !usbGetSecurityKey(v12) )
|
||||
{
|
||||
if ( usbSetupSecurityComplete(v12, 0, v7, 1) )
|
||||
set_io_error_type(1, aErrorSecurityC);// ERROR(SECURITY CONVERSION FAILED)
|
||||
return 1;
|
||||
}
|
||||
set_io_error_type(1, aErrorSecurityC); // ERROR(SECURITY CONVERSION FAILED)
|
||||
goto reset_io_boot_state_label;
|
||||
default:
|
||||
goto UNKNOWN_ERROR_LABEL;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## io_init_security - sub_402BB0
|
||||
|
||||
Sub-function of the [io_boot](#io_boot---sub_402700) function.
|
||||
|
||||
```c
|
||||
// sub_402BB0
|
||||
int io_init_security()
|
||||
{
|
||||
int v0; // esi
|
||||
int v2; // esi
|
||||
int mcode_mismatch_cnt; // esi
|
||||
char white_dongle_data_maybe[10]; // [esp+Ch] [ebp-20h] BYREF
|
||||
|
||||
usbSecurityInit();
|
||||
v0 = 0;
|
||||
while ( usbSecurityInitDone() )
|
||||
{
|
||||
if ( v0 > 1200 )
|
||||
{
|
||||
set_io_error_type(-1, aNgSi);
|
||||
return -1;
|
||||
}
|
||||
++v0;
|
||||
Sleep(16u);
|
||||
}
|
||||
pcbid = 0;
|
||||
dword_4D0754 = 0;
|
||||
word_4D0758 = 0;
|
||||
while ( usbGetPCBID(&pcbid) )
|
||||
Sleep(1u);
|
||||
*(_DWORD *)black_dongle_mcode = 0;
|
||||
v2 = 0;
|
||||
*(_DWORD *)&black_dongle_mcode[4] = 0;
|
||||
while ( usbGetSecurity(black_dongle_mcode) ) // black_dongle_mcode = GQD01JAA
|
||||
{
|
||||
if ( v2 > 1200 )
|
||||
{
|
||||
set_io_error_type(-1, aNgPd);
|
||||
return -1;
|
||||
}
|
||||
++v2;
|
||||
Sleep(16u);
|
||||
}
|
||||
set_cabinet_type(black_dongle_mcode[6]);
|
||||
mcode_mismatch_cnt = black_dongle_mcode[0] != 'G';
|
||||
if ( io_input_is_d01_ezusb || !strncmp(black_dongle_mcode, MCODE_GED01, 5u) )// Path for using the D01 dongle with D01 IO board
|
||||
{
|
||||
if ( (unsigned __int8)black_dongle_mcode[2] != (char)MCODE_D01 )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( (unsigned __int8)black_dongle_mcode[3] != SBYTE1(MCODE_D01) )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( (unsigned __int8)black_dongle_mcode[4] != SBYTE2(MCODE_D01) )
|
||||
++mcode_mismatch_cnt;
|
||||
}
|
||||
else // Path for using the C02 dongle with C02 IO board
|
||||
{
|
||||
if ( (unsigned __int8)black_dongle_mcode[2] != MCODE_C02[0] )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( (unsigned __int8)black_dongle_mcode[3] != MCODE_C02[1] )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( (unsigned __int8)black_dongle_mcode[4] != MCODE_C02[2] )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( !usbGetSecurityKey(white_dongle_data_maybe) )
|
||||
{
|
||||
black_dongle_mcode[6] = white_dongle_data_maybe[6];
|
||||
set_cabinet_type(white_dongle_data_maybe[6]);
|
||||
}
|
||||
}
|
||||
if ( black_dongle_mcode[5] != 'J' )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( black_dongle_mcode[6] != 'A' && black_dongle_mcode[6] != 'B' && black_dongle_mcode[6] != 'C' )
|
||||
++mcode_mismatch_cnt;
|
||||
if ( !mcode_mismatch_cnt )
|
||||
return 0;
|
||||
set_io_error_type(-1, aNgSecurity);
|
||||
return -1;
|
||||
}
|
||||
```
|
||||
56
doc/dev/journal/2023-04-13-iidx-24-gfx-upscaling.md
Normal file
56
doc/dev/journal/2023-04-13-iidx-24-gfx-upscaling.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# IIDX 24 GFX upscaling notes
|
||||
|
||||
Date: 2023-04-15 Author: icex2
|
||||
|
||||
Notes about my work on fixing the upscaling/downscaling feature of bemanitools for IIDX 20 to 26. I
|
||||
realized that the render backend changed significantly that the old method that worked fine doesn't
|
||||
work anymore.
|
||||
|
||||
The tool used in the screenshots is [apitrace](https://github.com/apitrace/apitrace).
|
||||
|
||||
## IIDX 24
|
||||
|
||||
The GFX engine in IIDX from 20 to 26 has a changed render loop that includes built-in scaling to
|
||||
implement the SD and HD/HD\* screen settings that are selectable in the operator menu
|
||||
|
||||
### Frame 0 - GFX init part
|
||||
|
||||
Setting up the context and device, as well as the frame buffer. This also creates the intermediate
|
||||
texture that is configured as the render target once it begins drawing the scene.
|
||||
|
||||

|
||||
|
||||
### Frame 1 - A clean main render path
|
||||
|
||||
Start the scene and set the render target to the intermediate texture.
|
||||
|
||||

|
||||
|
||||
After done drawing the scene, the intermediate texture is blended to the framebuffer. With a target
|
||||
2D plane having the size of the target resolution, the blending applies linear scaling to either up-
|
||||
or downscale the final image.
|
||||
|
||||

|
||||
|
||||
## IIDX 10
|
||||
|
||||
A recap of the old stuff, see also [my previous notes](2019-10-07-iidx-gfx-rendering-loops.md), as I
|
||||
had to look at everything again to properly understand the differences.
|
||||
|
||||
### Frame 0 - GFX init part
|
||||
|
||||
Setting up the context and device, as well as the frame buffer. Renders directly to the frame
|
||||
buffer.
|
||||
|
||||

|
||||
|
||||
### Frame 1 - A clean main render path
|
||||
|
||||
Beginning the scene excerpt. The viewport needs to match the target resolution to display the final
|
||||
image correctly.
|
||||
|
||||

|
||||
|
||||
Ending the scene excerpt, nothing fancy here, just swapping the back buffer.
|
||||
|
||||

|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user