Commit Graph

476 Commits

Author SHA1 Message Date
Christian Semmler
9ed4422edc Decomp adjustments 2023-12-06 07:31:07 -05:00
Christian Semmler
99d214c8df Merge branch 'master' into d3drm 2023-12-06 07:27:37 -05: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
Christian Semmler
798a486ff1 Alphabetical sort 2023-12-02 07:33:56 -05:00
Mark Langen
1b5bfe542f Third time's the charm 2023-12-01 19:24:48 -08:00
Mark Langen
8cf6f1daa3 Fix dtor comments 2023-12-01 13:10:32 -08:00
Christian Semmler
4f5b70013f
Implement MxStillPresenter::LoadFrame (#306) 2023-12-01 05:59:32 -05:00
Mark Langen
fef91382e6 Check all inline destructors 2023-11-30 23:35:27 -08:00
Mark Langen
495070a2f4 Remove duplicate destructor. 2023-11-30 21:39:24 -08:00
Mark Langen
66faae8228 Merge branch 'd3drm' of https://github.com/stravant/isle into d3drm 2023-11-30 21:36:57 -08:00
Mark Langen
fab0d80e36 Change malloc/free -> new/delete in Tgl 2023-11-30 21:23:36 -08:00
Christian Semmler
b8c6582c15 Fix order 2023-11-30 11:05:41 -05:00
Christian Semmler
068358b36c Merge branch 'd3drm' of https://github.com/stravant/isle into d3drm 2023-11-30 10:57:32 -05:00
Christian Semmler
3137494be8 Add scalar ddtor to verify inline destructor 2023-11-30 10:57:26 -05:00
Mark Langen
c2bb95b210 Return paramter naming convention to what Tgl used 2023-11-30 01:06:39 -08:00
Mark Langen
87a20e1557 Rename Something -> Unk 2023-11-29 22:45:53 -08:00
Mark Langen
83de02d08d Revert change to bool return value. 2023-11-29 22:27:42 -08:00
Mark Langen
9a5d53034c Missing Tgl:: on CreateRenderer 2023-11-29 22:19:50 -08:00
Mark Langen
228c9c7dce Use new and delete for DeepClone 2023-11-29 22:14:41 -08:00
Mark Langen
df68b05e2a Fix call which should have been Release 2023-11-29 22:01:48 -08:00
Joshua Peisach
f7dcdf9894
MxFlcPresenter vtable70, m_unk64 (#304)
* MxFlcPresenter: vtable70

* begin work on MxFlcPresenter's m_unk64

* Add another function that makes use of the FLIC header

* Remove space

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-29 13:35:32 +01:00
Mark Langen
2fbe91aaa5 Put back accidentally removed include. 2023-11-29 00:37:59 -08:00
Mark Langen
8dad24301a Full fix for ordering problems 2023-11-29 00:22:55 -08:00
Mark Langen
ce22c366e3 Fix order 2023-11-28 23:03:12 -08:00
Mark Langen
76aa524129 Fixups FloatMatrix -> FloatMatrix4 2023-11-28 22:09:35 -08:00
Mark Langen
d476b7a7a0 Move d3drm link requirement 2023-11-28 21:53:21 -08:00
Mark Langen
77730334d0 Restructure changes using Tgl naming / details
* Restructure the changes to use the naming that we know from Tgl.

* Fill in some parts of the implementation I couldn't initially figure
  out using the details from Tgl (got more 100% matches).
2023-11-28 21:53:20 -08:00
Mark Langen
09ccc4b83d Formatting 2023-11-28 21:43:59 -08:00
Mark Langen
c15ca8a34d Bootstrap decomp of D3DRM rendering code
* This PR kicks off work on decompiling the D3D Retained Mode (D3DRM)
  rendering part of the codebase.

* High level overview:

* There is a base IMxDirect3DRMObject class which all of the D3DRM
  rendering objects inherit from. Its only virtual method is one to get
  the underlying object handle.

* A hierarchy of abstract classes inherits from this base class, which
  I've called "IMxDirect3DRM<class>". These classes only have pure
  virtual methods on them and don't contain any data.

* Each one of the abstract classes has exactly one concrete
  implementation, which I've called "MxDirect3DRM<class>". These classes
  have exactly one piece of data, which is a pointer to the underlying
  D3D Retained Mode object.

* If the classes need to store additional data, they store it in a
  userdata blob which is attached to the D3DRM object rather than the
  additional data being stored in the class itself.

* I've worked out about twice this many classes related to D3DRM
  rendering so far but the PR was getting large enough as is, so I'm
  cutting it here for now.

* I decomped sufficiently many methods of these classe to convince
  myself that the above observations are correct. About 60% of the
  decomped methods here are perfect matches, including at least one
  non-trivial method per class.
2023-11-28 21:43:59 -08:00
MS
3d48cdede1
STL lists for stream classes (#307) 2023-11-28 14:26:39 +01:00
Christian Semmler
10062d2b28
Return type of PutData is MxResult (#305)
* Return type of PutData is MxResult

* Remove out.html
2023-11-26 15:03:40 +01:00
Christian Semmler
2fa70d233f
Update README.md [skip ci] 2023-11-26 14:57:19 +01:00
Christian Semmler
d46f2e094b
Bootstrap MxStillPresenter (#303) 2023-11-25 20:08:10 +01:00
Christian Semmler
4ac5fd7f0f
Empty commit (to fix CI) 2023-11-25 14:04:07 -05: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
Christian Semmler
fb0d1ccb62
Implement/match MxLoopingMIDIPresenter (#302)
* Implement/match MxLoopingMIDIPresenter

* Move declarations
2023-11-25 13:26:44 -05:00
Christian Semmler
5aa548c449
Replace FALSE with NULL 2023-11-25 07:22:23 -05:00
Christian Semmler
7db2b2e6b7
Implement/match MxMidiPresenter (#301) 2023-11-24 12:21:26 -05:00
Christian Semmler
db77350169
(clang-format) Add EmptyLineBeforeAccessModifier (#300) 2023-11-24 12:10:09 -05:00
Christian Semmler
1d3ce6b0aa
Implement/match remaining MxWavePresenter functions (#294)
* Implement/match remaining MxWavePresenter functions

* Name m_unk65

* Match WriteToSoundBuffer

* Remove header

* Match StreamingTickle

* Name more variables

* Give names to some things
2023-11-24 12:09:53 -05:00
Joshua Peisach
a577b393bf
LegoRace initial layout (#299)
* LegoRace initial layout

* fix function ordering

* Fix it all

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-24 13:11:32 +01:00
MS
14f05ea823
MXIOINFO code style (#297) 2023-11-22 02:54:08 -05:00
MS
abcc3afb31
Fix reccmp html output for template functions (#296) 2023-11-22 02:52:57 -05:00
Misha
343b0ff3cb
LegoActionControlPresenter functions (#295)
* LegoActionControlPresenter

* fix formatting

* fix format

* Fixes

* Fix order

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-21 11:35:03 +01: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
Christian Semmler
714d36b57d
Bootstrap MxWavePresenter, implement/match some functions (#286)
* Bootstrap MxWavePresenter, implement/match some functions

* Fix

* Use constant for 0x7f

* Update mxwavepresenter.cpp

* Update mxwavepresenter.h
2023-11-19 12:10:49 -05:00
Christian Semmler
6441391092
Implement/match MxEventPresenter (#285) 2023-11-19 12:10:32 -05:00
Christian Semmler
e0c168367a
Fix ROI acronym explanation 2023-11-19 09:49:36 -05:00
Nathan M Gilbert
7fc1f8019f
Implement ViewROI and base classes (#287)
* Implement ViewROI and base classes

* Clean up Orientable header

* Move tgl to tgl subdirectory, and use target_include_directories

* Move classes to submodules

* Fix some missed references

* Fix/match UpdateWorldData

* Renaming / removing MxTypes / refactoring

* Consistent naming for Matrix

* Adjust format action

* Add Vector3/Vector4 to Data vector

* Add TGL comment

* Add a comment about Matrix4Impl

* Add ROI comment

---------

Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 15:38:07 +01:00
Christian Semmler
17b0eeddb4
Update CONTRIBUTING.md 2023-11-19 14:17:01 +01:00