Commit Graph

23 Commits

Author SHA1 Message Date
MS
4fd6642be9 parser: don't enforce variable naming convention (#761) 2024-03-30 11:39:34 -04:00
MS
6fda6ca92b reccmp: Don't use placeholder for address comparison (#751) 2024-03-29 13:29:44 -04:00
MS
53b3d0b195 Add datacmp to CI (#746) 2024-03-29 07:58:59 -04:00
MS
ededdf31c3 Identify and handle jump tables (#732) 2024-03-26 19:06:35 +01:00
MS
3f03940fcb Match vtables with virtual inheritance (#717)
* Match vtables with virtual inheritance

* Simplify vtable name check

* Thunk alert
2024-03-23 18:01:40 -04:00
MS
5e0e7ab908 Make reccmp more compatible with debug builds (#674) 2024-03-15 16:17:08 +01:00
MS
ec1fcce08c Data comparison tool (#618)
* Parse cvdump TYPES section. Add datacmp tool.

* Corrections

* Use static

* Revert "Use static"

This reverts commit e0a4324e00.

* Handle partially initialized variable

* Shuffle order of legounksavedatawriter

* Revert "Shuffle order of legounksavedatawriter"

This reverts commit 506e06f117.

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-05 09:45:09 +01:00
MS
ba8f2b1c0f parser: Detect function declaration (#580) 2024-02-19 16:00:48 +01:00
MS
1b696e4bd8 reccmp: Unique addresses and stub reporting (#554) 2024-02-13 20:25:51 -05:00
MS
264b9e815b Match static function variables (#530)
* Match static function variables

* IsleApp::Tick static variables
2024-02-05 12:43:13 +01:00
MS
8cc79ad4de Performance enhancements (#527) 2024-02-04 19:37:37 +01:00
MS
4137cd75e6 parser: Identify namespaces (#499) 2024-01-28 15:25:45 +01:00
MS
6ed3e89ed2 reccmp: Show float constants (#473) 2024-01-20 20:19:49 -05:00
MS
aaa18bc9e2 Decomp parser: indirect globals and string markers (#446)
* Enable string annotations and indirect globals

* Adding some STRING annotations

* Library functions
2024-01-17 12:56:34 +01:00
MS
7e9d3bde65 Reccmp: Use symbol names in asm output (#433)
* Name substitution for reccmp asm output

* Decomp marker corrections

* Fix a few annotations

* Fix IslePathActor dtor

* Fix audio presenter

* Fix LegoEntity::Create

* Fix Pizza and related

* Fix path part

* Add missing annotations

* Add missing annotations

* Add more missing annotations

* Fix MxNotificationParam

* More fixes

* More fixes

* Add missing annotations

* Fixes

* More annotations

* More annotations

* More annotations

* More annotations

* Fixes and annotations

* Find imports and thunk functions

* Fix more bugs

* Add some markers for LEGO1 imports, fix SIZE comment

* Add more annotations

* Rename annotation

* Fix bugs and annotations

* Fix bug

* Order

* Update legoanimpresenter.h

* Re-enable print-rec-addr option

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-14 22:28:46 +01:00
MS
ce68a7b1f4 Reccmp comparison engine refactor (#405)
* Reccmp comparison engine refactor

* Remove redundant references to 'entry' symbol
2024-01-04 18:12:55 -05:00
MS
bcb7bec68b Improve handling of variables for decomp parser (#376)
* Parser refactor:
- Handling LIRBARY and STRING markers
- Extracting global variable name for future comparison
- Marking function static variables
- More fluent error messages

* String constants annotated with STRING

* fix variable name

* Should compare LIBRARY markers
2023-12-27 15:59:42 -05:00
MS
b2c730e1df Refactor WinePathConverter into PathResolver (#353)
* Refactor WinePathConverter into PathResolver

* Run pytest in CI
2023-12-23 08:05:07 -05:00
MS
994d17a85e Decomp linter warning for offset reuse (#342)
* Linter warning for offset reuse in codebase

* Fix repeated offset problems
2023-12-17 17:45:33 -05:00
Christian Semmler
3b155bfe38 (Discussion/Proposals) Consistency regarding annotations of header-implemented functions (#316)
* Open discussion

* Move annotations of header-implemented functions back to `.h` files

* Adjust `README.md`

* Relocate annotation

* linter

* Comment markers in headers only, rename script, update github actions

* type hint compat

* Rename github action, better argparse for linter

* Type hints, working test for byname ignore

* Move annotation

* CI rename and enable warnfail, enforce mode always on

* Two step linting

* or one step

* continue on error

* two jobs instead

* Fixes

---------

Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2023-12-12 20:27:17 +01:00
Christian Semmler
494a556f8e (Proposal) Adjustments to "decomp" language (#308)
* Adjustments to "decomp" language

* Fix a comment

* Fix accidental clang-formatting

* Fix order

* Fix order

* Remove junk

* Fix OFFSET

* Adjustments based on new suggestions

* Annotate globals

* Globals in ISLE

* More globals

* Merge from parser2 branch

* Allow prepending space for exact marker match

* To eliminate noise, require the 0x prefix on offset for marker match

* fix test from previous

* Count tab stops for indented functions to reduce MISSED_END_OF_FUNCTION noise

* FUNCTION to SYNTHETIC where needed

* Missed marker conversion on SetAtomId

* pylint cleanup, remove unused code

* Fix unexpected function end, add more unit tests

* Be more strict about synthetic name syntax

* Revert "Missed marker conversion on SetAtomId"

This reverts commit d87d665127.

* Revert "FUNCTION to SYNTHETIC where needed"

This reverts commit 8c815418d2.

* Implicit lookup by name for functions

* Fix VTABLE SYNTHETIC and other decomp markers

* Get vtable class name

* Vtable marker should identify struct

* No colon for SIZE comment

* Update README.md

* Update README.md

* Update CONTRIBUTING.md

* Update README.md

* Update README.md

* Update CONTRIBUTING.md

* Update README.md

* Update CONTRIBUTING.md

* Fix destructor/annotation

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

---------

Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2023-12-06 13:10:45 +01:00
Thomas Phillips
b14116cc93 Python Linting and Code Formatting (#298)
* Create common print_diff function

* Add pylint and black

* Fix linting, move classes to utils

* Add black/pylint to github actions

* Fix linting

* Move Bin and SymInfo into their own files

* Split out format

* Tidy up workdlows and pip, add readme

* Lint tests, add tests to readme
2023-11-25 13:27:42 -05:00
MS
1ae3b07dc2 Checkorder tool to keep functions in original binary order (#228)
* First commit of order tool

* More flexible match on module name. Bugfix on blank_or_comment

* Report inexact offset comments in verbose mode. Bugfix for exact regex

* Refactor checkorder into reusable isledecomp module

* Find bad comments in one pass, add awareness of TEMPLATE

* Refactor of state machine to prepare for reccmp integration

* Use isledecomp lib in reccmp

* Build isledecomp in GH actions, fix mypy complaint

* Ensure unit test cpp files will be ignored by reccmp

* Allow multiple offset markers, pep8 cleanup

* Remove unused variable

* Code style, remove unneeded module and TODO

* Final renaming and type hints

* Fix checkorder issues, add GH action and enforce (#2)

* Fix checkorder issues

* Add GH action

* Test error case

* Works

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-21 09:44:45 +01:00