Various bugfixes and features for the upcoming iidx multidisk release #236

Merged
icex2 merged 38 commits from timebase-tool into master 2023-04-06 16:39:53 +03:00
38 Commits
Author SHA1 Message Date
icex2 dd6d645abd chore: Update changelog for 5.44 release 2023-04-06 15:25:15 +02:00
icex2 8ef92d24a4 feat(doc iidx15): Add crashinig on boot due to no backup data 2023-04-06 15:25:15 +02:00
icex2 3a80c41a72 chore: Apply code formatting to entire code base 2023-04-06 14:50:16 +02:00
icex2 e73bd37d0c chore(doc): Add dev journal about 10th style IO and security boot 2023-04-06 14:46:32 +02:00
icex2 d8a0a713fa fix(iidx/config): Utilize io board type, fix 10th SQ-INIT error
Using the right combination of "flags", this addresses the
SQ-INIT error on 10th style as well as forces 10 to 13 into
using the D01 operation mode. The latter follows the approach that
14+ is also using the best/latest IO type supported (IO2 in that
case). Expecting that gameplay experience benefits from more
optimized/better maintained code paths.

Make 10 operate in D01 IO mode which forces security to using
the D01 dongle from a D01 dedicab setup. The alternative would
be using a C02 dongle from a C02 upgraded cabinet.

More details to follow in another commit with a dev journal
entry.
2023-04-06 14:46:32 +02:00
icex2 6c44d64f45 chore(iidx): Wire-up ezusb configuration in iidxhook1 and 2
Make io board type for ezusb board configurable as well as allow
switching on/off additional ezusb debugging feature.
2023-04-06 14:46:32 +02:00
icex2 c05320c9d3 feat(iidx/config): Expose ezusb specific configuration params
Useful (debugging) and required (io board type) for different
game versions
2023-04-06 14:46:32 +02:00
icex2 db8ff4e624 feat(iidx/ezusb): Make iidx ezusb emu io board type configurable
Second part to fixing the 10th style SQ-INIT error. This has
cross-impact on the kind of security data the game expects.
Therefore, we need to expose the IO board type and make it
configurable like the security data for the different game
versions.

More details explained in a dev journal entry to following
in one of the next commits.
2023-04-06 14:46:32 +02:00
icex2 baaf75a47b fix(iidx/ezusb): ezusb does not have a white dongle
This is one part of fixing the 10th style SQ-INIT boot error.
For some reason, 10th style calls the "second dongle slot"
which, according to the code, is expected to return the same data
as the first (black) dongle slot. Original ezusb/C02/D01 IO boards
do not have a second dongle round plug slot nor ever came with
a splitter cable. I checked original manuals of the C02 conversion
kit, E11 and ECO software upgrade kits. No white dongle nor
additional hardware for any other dongle than a black dongle.
2023-04-06 14:46:32 +02:00
icex2 9b3ac159c1 fix(iidx/ezusb2): Fix IO buffer inconsistency on ezusb ioctl level
See same commit for ezusb for details and reasoning.
2023-04-06 14:46:32 +02:00
icex2 b42cbdc4ea fix(iidx/ezusb): Fix IO buffer inconsistency on ezusb ioctl level 2023-04-06 14:46:32 +02:00
icex2 b596d5e184 chore(dev): Fix incorrect log module header 2023-04-06 14:46:32 +02:00
icex2 9ad16d3a63 feat(iidx/ezusb): Add ezusb api monitoring module
Implement several functions relevant to the boot process with
a focus on the security init part
2023-04-06 14:46:32 +02:00
icex2 f7d76b95b4 fix(iidx/ezusb2): Fix IO buffer inconsistency on ezusb device level 2023-04-03 17:54:53 +02:00
icex2 72e8a593f1 feat(iidx 14-24): Wire up coin mech to IO emulation 2023-04-03 17:54:53 +02:00
icex2 12594289c8 feat(iidx 9-13): Wire up coin mech to IO emulation 2023-04-03 17:54:53 +02:00
icex2 633fac81fb fix(pnm/ezusb2-emu): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 de1d90925a fix(jb/p4io): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 ca71789f53 fix(jb/p3io): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 4c8cd66212 fix(iidx/ezusb2): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 09f9f45811 chore: Move and convert from gitlab templates to github templates 2023-04-03 17:54:53 +02:00
icex2 6d67a5a81c chore(doc): Re-structure, separate dev journals 2023-04-03 17:54:53 +02:00
icex2 c62f1d8065 feat(iidx19): imagefs override strategy with local file redir 2023-04-03 17:54:49 +02:00
icex2 77934d7495 chore: Apply code formatting on entire codebase for consistent style 2023-04-01 20:54:18 +02:00
icex2 d8d5a512b4 feat(iidx18/19): Improve chart-patch to correctly support iidx 18 and 19
The paths changed for 18 and again for 19. Refactor and improve
the detection logic to consider this. This also should make
the code more maintainable.
2023-04-01 20:54:18 +02:00
icex2 988ed47160 fix(iidxhook-util/chart-patch): Bugfix broken synchronization
The synchronization block was too coarse and kept the lock
acquired even when the hooked call continued traversing because
it skipped the chart patch trap code. This was apparently fine
on several games but caused very flaky deadlocking on iidx18
during the boot screens and even crashed iidx19 consistently
before showing the boot screen.
2023-04-01 20:54:18 +02:00
icex2 ffb589faa7 fix(iidxhook-util/settings): Bugfix broken paths with mixed / and \
Applies to iidx18 and iidx19 when using the recently extended
redirect feature for settings paths, mixing / and \ crashes the
game in some operator sub-menus when trying to save settings.
2023-04-01 20:54:18 +02:00
icex2 5e68df541f doc: Add documentation about parallel building being broken 2023-04-01 20:54:18 +02:00
icex2 1385cd6768 fix(dev): Upgrade docker file, move to latest debian bullseye base image
The fedora image was already quite old but also took ages to
initially install the dependencies. Being more familiar with debian,
initial container building with package installation being rather
quick, and assuming most folks being more familiar debian as well,
I decided to shift to make this easier to maintain.
2023-04-01 20:54:18 +02:00
icex2 8325ca167d chore(dev): Fix compiler warning about not knowing the definition for a struct 2023-04-01 20:54:18 +02:00
icex2 a239d18e26 chore(dev): Fix format warning 2023-04-01 20:54:18 +02:00
icex2 bf13d769d7 chore(dev): Fix compiler warning, use correct format for size_t type 2023-04-01 20:54:18 +02:00
icex2 4a672de960 fix(iidx/ezusb): Improve code resiliance of ezusb node-serial module
- Use static assert to verify struct sizes
- Replace "magic numbers" with proper sizeof's
- Allocate largest size buffer for message response to address
  compiler warnings which indicates potential out of bounds
  reads/writes
2023-04-01 20:54:18 +02:00
icex2 68c3aa7796 chore(doc): Documentation cleanup and improvements
- Add index with aux tooling to main readme
- Move release process to doc, not valuable to have this on the
  main readme
2023-04-01 20:54:16 +02:00
icex2 ba4ef2b6a5 chore(dev): Disable formatting on some files to prevent header resorting
This leads to compiler errors as windows.h is expected to be
the first header included for other windows related header files.
2023-04-01 20:52:42 +02:00
icex2 cc677c5fbe chore(dev): Scope code formatting to src/main and src/test
Do not format imports which includes headers from other projects
with different code styles.
2023-04-01 20:52:42 +02:00
icex2 cf9f3b9dbd fix(dev): Improve deps docker build process, mount local folder as volume
This removes the need to copy all the data into the docker container
and outputs from the build process out of the container. In
hindsight, this was a poor design decision as it created docker
images that were very large with data, that you don't have to
keep stored once the build finished, e.g. the build output.

Therefore, mount the local folder, keep the checkouts also local
which is good for debugging and also re-using them to build without
the docker container (no second checkout required).

Build output is also written directly to the build/ output folder

Overall, the docker container is more lightweight and actually
a "build environment" only not tainted with specific versions
of the dependencies to build.
2023-04-01 20:52:32 +02:00
icex2 e59343a7fb feat(iidx19): Add back btools monitor check for iidxhook5
Provide an option for non final lincle revisions and
if the "modern" monitor check is not delivering stable
results on the final lincle revision, e.g. using the
original "pendual lcd" monitor.
2023-04-01 20:52:21 +02:00