Commit graph

138 commits

Author SHA1 Message Date
MishaProductions
b0288803a8
Merge branch 'isledecomp:master' into legobackgroundcolor 2023-06-26 09:42:08 +03: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
Misha
3d16867a90 90% match 2023-06-25 17:03:14 +03:00
Misha
2208573eb2 improve accuracy + add editorconfig 2023-06-25 12:23:47 +03:00
Misha
288f861428 fix makefile 2023-06-25 07:57:14 +03:00
Misha
3590e59a3a Update isle.mak 2023-06-25 07:51:35 +03:00
Misha
fb52ad5781 fix build 2023-06-25 07:47:06 +03:00
Misha
791cf1301a Merge remote-tracking branch 'upstream/master' into legobackgroundcolor 2023-06-25 07:42:09 +03:00
Misha
b9ecd15ca6 undo change 2023-06-25 07:40:22 +03:00
Misha
6327a797bc delete accidently committed files 2023-06-24 21:48:08 +03:00
Misha
7ae1c05df9 implement SetColorString 2023-06-24 21:47:05 +03:00
Misha
323a2ee0e7 constructor and some methods are matching 2023-06-24 20:47:03 +03:00
Misha
0ce6fab3d0 constructor is almost matching 2023-06-24 20:38:10 +03: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
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
Anonymous Maarten
7dbb06eef3
Convert all sources eol's to nl (#41) 2023-06-23 09:17:41 -07: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
Christian Semmler
fa8e4523bd
isle: match Isle::Tick and FindExistingInstance (#32)
* match Isle::Tick and FindExistingInstance

* add offset comments

* inline Isle::Tick

* move inline MxDSObject, remove mx.cpp
2023-06-21 15:18:37 -07:00
MS
4d531d1de5
reccomp: add option to hide 100% matching functions (#35)
* add option to hide 100% matching functions

* slight formatting improvement

---------

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2023-06-21 14:43:01 -07:00
itsmattkc
fa63d7e341 rename reccomp to reccmp
Sorry to everyone's muscle memory, but I think this is better. The idea for the name was "recomp compare", but it's too easy to read it as "recomp with a typo". This should fix that, as well as be slightly easier to write since it's shorter.
2023-06-21 14:36:09 -07:00
Anonymous Maarten
da3ad91b20
recomp.py: use argparse to parse arguments (#30)
* recomp.py: use argparse to parse arguments

* Address code revew comments

* reccomp.py: -h/--help for help -H/--htmp for html

* update CI to use new arg

* slight string updates

---------

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2023-06-21 14:33:08 -07:00
Joshua Peisach
2644be3ca6
MxTimer matching (#29)
* MxTimer::Start - swap instruction order

Technically, isRunning is set after getting the real time according to the pseudo code,
which i guess is fine, you dont know it started until it really started

* MxTimer - finish tweaking to match assembly
2023-06-21 00:37:46 -07:00
itsmattkc
4b71fb8815 ci: upload HTML summaries of accuracy/progress too 2023-06-21 00:36:38 -07:00
Christian Semmler
bfa035ca79
isle: Match Isle::SetupCursor (#28)
* match Isle::SetupCursor

* case
2023-06-21 00:30:59 -07:00
Christian Semmler
124a5ddaa3
isle: Accuracy improvements (#27)
* Isle::Isle 100% accuracy

* Isle::~Isle 100%

* improve accuracy of ReadReg functions

* refactor

* fix Isle::ReadRegBool

* fix Isle::ReadRegInt

* empty commit to reset GH action

* fix Isle::SetupLegoOmni
2023-06-21 00:30:46 -07:00
MS
6207d1f775
add more MxString functions (#31) 2023-06-21 00:30:07 -07:00
itsmattkc
290c006d14 use offsets from PDB to only diff instructions
Also ensure empty functions aren't falsely identified as matching due to no comparison occurring
2023-06-20 13:09:48 -07:00
Christian Semmler
0ab8fc52d2
lego1/isle: Add MxDSObject, implement SetObjectName, adjust MxDSAction (#20)
* add MxDSObject, implement SetObjectName, adjust MxDSAction

* add a TODO

* update project files

* add WIP MxDSObject stuff

* merge

* update project file

* add addresses and SetAtomId

* switch addresses

* remove comment since it's fixed now (?)

* refactor

* update project file

* refactor into separate unit

* refactor into separate unit

* rename unit to avoid NMAKE issue

* rename param

* add last missing piece to Isle::Close

* fix spelling

* merge

* use union hack
2023-06-19 17:18:53 -07:00
itsmattkc
66dd2cdeb9 improved reccomp reliability even further, added html summary generator
Will probably host the summary somewhere for easy access
2023-06-19 12:52:21 -07:00
itsmattkc
ff85548c85 project update 2023-06-19 11:02:44 -07:00
itsmattkc
ec12b8f30f improved compare script performance and reliability 2023-06-19 10:57:13 -07:00
itsmattkc
dafe66191c mxomni: fixed minor inaccuracy 2023-06-19 10:56:53 -07:00
Christian Semmler
0b3d1abe66
fix wrong video param flag interfaces (#26) 2023-06-19 09:20:36 -07:00
MattKC
8b16b7b2c3
Update CONTRIBUTING.md [skip ci] 2023-06-19 01:37:13 -07:00
MattKC
4494d4db60
Update README.md [skip ci] 2023-06-19 01:36:05 -07:00
Christian Semmler
5c440b5878
lego1: implement more of LegoNavController (#16)
* implement more of LegoNavController

* merge

* use MX_FALSE

* file file perms

* added Timer(), GetTime to LegoNavController

* add a comment about SetControlMax

* remove colon

* add commented out dtor

* revert inheritance for now so we don't accidentally break the interface to ISLE.exe later

* add missing include

* update project files

* update project files

* fix main.cpp

* add offsets

* update project files

* fix line endings

* fix a bug thanks to ASM checker

* add addr for Timer()

* updated project file
2023-06-19 01:34:58 -07:00
itsmattkc
f9f8440a3a main: elaborate new info about LoadAccelerators call [skip ci] 2023-06-19 01:22:01 -07:00
itsmattkc
2c6aeb8b82 oops forgot the calls too 2023-06-19 01:12:12 -07:00
itsmattkc
3d9a96995a isle: convert last two functions to PascalCase 2023-06-18 23:22:32 -07:00
itsmattkc
f8263a3ef8 implemented some parts of MxOmni and LegoOmni 2023-06-18 23:19:40 -07:00
MattKC
d774644b4a
Update README.md 2023-06-18 22:57:38 -07:00