Commit Graph

168 Commits

Author SHA1 Message Date
itsmattkc
2a5e6490dc Merge branch 'master' into pr/43 2023-06-27 18:31:09 -07:00
itsmattkc
f7c84d719b reccmp: use bold font for easier readability 2023-06-27 18:25:38 -07:00
MattKC
612730f631
readme: add progress images 2023-06-27 18:12:52 -07:00
itsmattkc
b393851ebd reccmp: change svg canvas size 2023-06-27 18:10:36 -07:00
itsmattkc
1ea15e6478 reccmp: use entire canvas for progress images 2023-06-27 18:04:30 -07:00
itsmattkc
f03cee6b6e reccmp: improve progress bar text rendering 2023-06-27 18:00:53 -07:00
itsmattkc
40fdc5b2f5 ci: use alternative download 2023-06-27 17:42:07 -07:00
itsmattkc
4ba4352058 ci: pacman noconfirm 2023-06-27 17:38:37 -07:00
itsmattkc
dd3ce5ac61 ci: attempt to install inkscape through msys2 2023-06-27 17:31:46 -07:00
itsmattkc
a3887f554d ci: attempt installing inkscape 2023-06-27 17:28:46 -07:00
itsmattkc
0191c6560b ci: attempt to use inkscape to produce PNGs 2023-06-27 17:26:30 -07:00
itsmattkc
5915cc3ea2 ci: try converting SVG to PNG 2023-06-27 17:17:26 -07:00
itsmattkc
066b7311ad rename Isle to IsleApp 2023-06-27 17:10:11 -07:00
itsmattkc
883720941a ci: provide GITHUB_TOKEN as env 2023-06-27 16:25:26 -07:00
itsmattkc
b2bd8bc766 ci: fix typo 2023-06-27 16:15:38 -07:00
itsmattkc
d8d83eb02e ci: upload release 2023-06-27 16:12:11 -07:00
itsmattkc
f9e9723a67 reccmp: give svg template background color 2023-06-27 16:12:04 -07:00
itsmattkc
f73987e472 line ending change 2023-06-27 16:06:10 -07:00
itsmattkc
4a1e3a5b7e reccmp: fixed typo 2023-06-27 16:01:49 -07:00
itsmattkc
b080766321 generate progress SVGs 2023-06-27 15:59:44 -07:00
Cydra
daa0bf3f61 Finished up some work, compiles fine. All functions are STUB annotated to not pollute reccmp.py output. 2023-06-27 23:25:40 +02:00
Christian Semmler
24ec7023bd
isle: match WndProc and re-arrange functions in ISLE.EXE (#45)
* match WinProc

* minor accuracy improvement

* WndProc at 50%

* fix WM_DISPLAYCHANGE branching

* fix type

* fix x/y comparison

* WndProc 82%

* 84%

* 97%

* rearrange functions to get close to the original

* remove newline

* inline no longer necessary

* merge
2023-06-27 13:07:29 -07:00
Mark Langen
51ec2c97c6
100% Match of MxDSFile (#51)
* 100% Match of MxDSFile

* ...almost, MxDSFile::Open is still not quite matching but all of the
  other methods are 100% matching.

* Turns out that most of the virtual methods and some of the members are
  actually on the MxDSSource base class, which I've pulled out as part
  of this.

* In order to implement the methods I added the MXIOINFO class, which
  seems to be a thin wrapper around the MMIOINFO windows structure. We
  can tell this because MMIOINFO::~MMIOINFO was included in the DLL
  exports, and calls down to a function which deconstructs something
  looking exactly like MMIOINFO.

* Add mxdssource.cpp

* mattkc feedback

* some accuracy improvements

* Use FOURCC macro

* Tirival solve in mxioinfo.cpp

* Update mxdsfile.cpp

0xFFFFFFFF -> -1

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-06-27 11:44:02 -07:00
MattKC
6e8b93b07c
Update CONTRIBUTING.md 2023-06-27 10:56:59 -07:00
Cydra
a19ab94388 Merge branch 'master' into ClassLayout
# Conflicts:
#	LEGO1/legoinputmanager.h
#	LEGO1/mxvideomanager.cpp
#	LEGO1/mxvideomanager.h
#	isle.mak
#	isle.mdp
2023-06-26 20:17:19 +02:00
Cydra
38aceb25fd No clue, I guess forced update for line endings 2023-06-26 20:11:28 +02:00
Christian Semmler
4db49fe6a6
match MxAutoLocker ctor/dtor (#52) 2023-06-26 09:48:19 -07:00
Mark Langen
0b47f3fff3
Improve reccmp.py (#49)
* Improve reccmp.py

* Now only shows the info for a single function when a specific function
  is specified via -v

* Now colors the output by default

* Percentages are shown as green/yellow/red depending on the percentage
  completed.

* Diff +/- lines are shown as green/red.

* Includes standard --no-color argument in case we need no color for
  some tooling which consumes the output.

* Feedback
2023-06-25 19:01:40 -07:00
Christian Semmler
9990d0a2b7
lego: match GetClassName/IsClass (#48) 2023-06-25 18:34:13 -07:00
Christian Semmler
64d2b9e02b
lego: implement SetControlMax and related partials (MxVideoManager, MxPalette, MxUnknown100dc6b0) (#42)
* lego: implement LegoNavController::SetControlMax and related

* use MxResult

* fix name
2023-06-24 10:09:46 -07:00
Cydra
c460f66cff Again more classes and virtual function resolves. Builds and compares fine. 2023-06-24 02:50:14 +02:00
Cydra
69f2bfc7bc More classes and virtual function resolves. Builds and compares fine. 2023-06-23 23:55:55 +02:00
Cydra
2f537e25c2 Fixed function adresses that caused the python script to fail 2023-06-23 21:28:16 +02:00
Christian Semmler
579ee84049
isle: Improving WinMain and SetupWindow accuracy (#38)
* fix second Tick call, change loop

* add missing parameter to SetupWindow

* add missing include

* reorganize CreateWindowEx

* reorder cursor assignments

* declare SetupWindow as inline

* fix indent

* WinMain 99%

* minor improvement
2023-06-23 11:45:25 -07:00
Cydra
1c980f9ff1 Merged master back into ClassLayout 2023-06-23 20:08:58 +02:00
Cydra
621f81de68 Added classes to project and made it compile 2023-06-23 20:05:08 +02:00
Anonymous Maarten
7dbb06eef3
Convert all sources eol's to nl (#41) 2023-06-23 09:17:41 -07:00
Cydra
f6716a5693 Resolved merge conflict 2023-06-23 17:35:57 +02:00
Cydra
e14f2cb859 More smaller fixes 2023-06-23 17:24:04 +02:00
Cydra
0431c02a97 Some additional fixes 2023-06-23 17:13:24 +02:00
Cydra
fc239c4a08 Fixed code and decided on a way to handle virtual table stubs 2023-06-23 17:09:04 +02:00
MS
4f4863af6f
Use bitfield for MxVideoParamFlags (#40)
* Use bitfield for MxVideoParamFlags

Using a bitfield for MxVideoParamFlags results in the same xor/and logic that was partially inlined in the header file. This approach is a lot cleaner and there's a good chance this is what the devs would have landed on.

The code generation is really finicky -- other inlines in the header influence the code just by being there -- so I decided to stub out all of them. This got the match to 100%.

While I was in isle.cpp::SetupVideoFlags, I changed the signature so that the `m_using16bit` parameter is just `using16bit`.

* fix: cast Set16Bit inline arg to byte
2023-06-22 23:00:51 -07:00
MishaProductions
bd245dc6d8
lego1: implement Get* functions (#39) 2023-06-22 09:23:54 -07:00
Christian Semmler
a0fac56d4c
lego: implement/match MxVideoParam exported functions (#36)
Co-authored-by: itsmattkc <itsmattkc@gmail.com>
2023-06-22 09:19:48 -07:00
itsmattkc
749a1f419b reccmp: support inlined functions that may have been compiled into both files 2023-06-22 01:05:00 -07:00
itsmattkc
66a010a19f move inlined MxDSObject::SetAtomId to main header
We've confirmed that, despite a function being declared inline, msvc will still make a conventional call in some circumstances. As such, I feel like this is warranted because it's most likely what a developer would have actually written.
2023-06-22 00:45:56 -07:00
itsmattkc
12395ac41a reccmp: further improve accuracy 2023-06-22 00:44:28 -07:00
itsmattkc
598ca01df5 gitignore ISLE.EXE/LEGO1.DLL 2023-06-22 00:43:37 -07:00
Christian Semmler
30ef923bf4
hotfix: messed up structure due to windows.h (#37) 2023-06-21 23:13:15 -07:00
itsmattkc
c4b4555b80 reccmp: revert using debug offsets 2023-06-21 17:31:54 -07:00