Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1192 commits
Select commit Hold shift + click to select a range
935ad91
Merge pull request #551 from HolterPhylo/UpdateFor10937377
monkeyman192 Apr 5, 2023
1762a78
Update for 10949467
monkeyman192 Apr 7, 2023
5942938
Merge pull request #552 from monkeyman192/update/10949467
monkeyman192 Apr 7, 2023
471e180
Updated files for 10999491
monkeyman192 Apr 14, 2023
d476728
Merge pull request #553 from monkeyman192/update/10999491
monkeyman192 Apr 14, 2023
bacf2f8
Update for 11371463
Jun 1, 2023
45e0761
Merge pull request #555 from HolterPhylo/UpdateFor11371463
HolterPhylo Jun 1, 2023
1dd8577
Update for 11414212
monkeyman192 Jun 7, 2023
95de968
Merge pull request #556 from monkeyman192/update/11414212
monkeyman192 Jun 7, 2023
ab4e60a
Update for 11477461
Jun 15, 2023
801c407
changed version
Jun 16, 2023
d2f9fb5
Merge pull request #558 from HolterPhylo/UpdateFor11477461
monkeyman192 Jun 16, 2023
307621f
Update for 11590273
Jun 29, 2023
124c6b6
Merge pull request #561 from HolterPhylo/updateFor11590273
monkeyman192 Jun 30, 2023
3e436c8
Update dotnet versions
monkeyman192 Jul 16, 2023
155d57b
Merge pull request #562 from monkeyman192/dotnet_update
monkeyman192 Jul 17, 2023
af566c3
[skip ci] Fix mistake in readme
monkeyman192 Jul 17, 2023
0940d4c
Update for 4.40
monkeyman192 Aug 24, 2023
d6acfcd
Merge pull request #565 from monkeyman192/update/12022825
monkeyman192 Aug 24, 2023
30fd08a
Update for 12034724
Aug 25, 2023
e96720b
Merge pull request #566 from HolterPhylo/UpdateFor12034724
monkeyman192 Aug 25, 2023
d1e8be6
Add Linux build
Aug 31, 2023
ca356e2
Merge pull request #570 from SplinterGU/Linux
monkeyman192 Aug 31, 2023
1a61087
Update for 12107035
Sep 5, 2023
df2d35c
Merge pull request #573 from HolterPhylo/UpdateFor12107035
monkeyman192 Sep 5, 2023
073d50e
Update CI with build matrix
monkeyman192 Sep 3, 2023
10cede7
Merge pull request #572 from monkeyman192/ci_update
monkeyman192 Sep 8, 2023
4078b02
Update for 12141065
monkeyman192 Sep 8, 2023
aa74654
Merge pull request #574 from monkeyman192/update/12141065
monkeyman192 Sep 8, 2023
e649c3e
Update for 12660810
Nov 9, 2023
b1b9614
Merge pull request #576 from HolterPhylo/UpdateFor12660810
monkeyman192 Nov 9, 2023
ded85c9
Bump version
monkeyman192 Nov 9, 2023
efb1e01
Only small change it seems...
monkeyman192 Dec 8, 2023
6b26c39
Potential CI fix
monkeyman192 Dec 8, 2023
43b137c
Merge pull request #577 from monkeyman192/4.46.0-changes
monkeyman192 Dec 8, 2023
9aeb8e1
Update for 12964151
Dec 14, 2023
3625342
Merge pull request #578 from HolterPhylo/UpdateFor12964151
monkeyman192 Dec 14, 2023
c048e20
Update for 13391537
Feb 7, 2024
5bb184e
bump action versions
Lenni009 Feb 7, 2024
fcbd188
Merge pull request #579 from HolterPhylo/UpdateFor13391537
monkeyman192 Feb 7, 2024
6bb5f98
Merge pull request #580 from Lenni009/development
monkeyman192 Feb 7, 2024
f6afcce
Update for 13407450
Feb 8, 2024
09879ff
Merge pull request #581 from HolterPhylo/UpdateFor13407450
monkeyman192 Feb 8, 2024
0006b43
update keys to be hashed for save mapping
monkeyman192 Feb 10, 2024
aea735e
Merge pull request #582 from monkeyman192/save_mapping_update
monkeyman192 Feb 11, 2024
f1afb83
version bump
monkeyman192 Feb 14, 2024
6231e17
Update for 13456635
Feb 14, 2024
c0d3d08
Merge pull request #583 from HolterPhylo/UpdateFor13456635
monkeyman192 Feb 14, 2024
c4d871e
Update for 13499678
Feb 19, 2024
6ab1eed
Merge pull request #585 from HolterPhylo/UpdateFor13499678
monkeyman192 Feb 19, 2024
7f32525
Update for 13531997
Feb 22, 2024
c372935
Updated version
Feb 22, 2024
a92c9dc
revert version update
Feb 22, 2024
d2d4afd
Updated version to 4.52.0.2
Feb 22, 2024
66a5702
Merge pull request #587 from HolterPhylo/UpdateFor13531997
HolterPhylo Feb 23, 2024
a6e6c93
use dedicated sets for saves and account data
cengelha Mar 21, 2024
71aae25
add Version to account_mapping
cengelha Mar 24, 2024
98ca732
Update for 4.60
monkeyman192 Mar 27, 2024
20b7f22
Merge pull request #590 from monkeyman192/update/13578399
HolterPhylo Mar 27, 2024
3b35d3f
Update for 13913824
Apr 1, 2024
a3844aa
Merge pull request #591 from HolterPhylo/UpdateFor13913824
monkeyman192 Apr 2, 2024
9f4a487
Update for 13926066
Apr 2, 2024
e5b5f23
Merge pull request #592 from HolterPhylo/UpdateFor13926066
monkeyman192 Apr 2, 2024
653613e
Update for 13939219
Apr 3, 2024
c2b4d0b
Merge pull request #593 from HolterPhylo/UpdateFor13939219
monkeyman192 Apr 3, 2024
f1f47c1
Update for 14035264
Apr 12, 2024
b48a6b9
Merge pull request #594 from HolterPhylo/UpdateFor14035264
monkeyman192 Apr 13, 2024
cb668c9
Update for 14109135
monkeyman192 Apr 19, 2024
22ad0d3
Merge pull request #595 from monkeyman192/update/14109135
monkeyman192 Apr 19, 2024
09701cd
Fixes for broken files and AlignOf optimization
monkeyman192 Apr 20, 2024
400a06b
Changes for 14144058
monkeyman192 Apr 23, 2024
7510b39
Merge pull request #596 from monkeyman192/recent_fixes
monkeyman192 Apr 23, 2024
f4694ff
Restore pre experimental field order when serialising to exml
Auburn Apr 24, 2024
ea608bc
Merge pull request #597 from Auburn/restore_field_order
monkeyman192 Apr 26, 2024
ae9468d
Add index attributes to all classes
monkeyman192 Apr 25, 2024
428e551
Add some extra manual alignments to fix two test failures
monkeyman192 Apr 26, 2024
b96951c
Implemented code to reorder list data, fixed padded string null byte …
monkeyman192 Apr 26, 2024
a094a15
Merge pull request #598 from monkeyman192/add_field_index
monkeyman192 Apr 26, 2024
50a5c0d
Add changes for 14207877
monkeyman192 Apr 29, 2024
85f6b03
Merge pull request #600 from monkeyman192/update/14207877
monkeyman192 Apr 29, 2024
ab9d09d
update header to version 3
monkeyman192 Apr 27, 2024
b50bbda
Merge pull request #599 from monkeyman192/header_v3
monkeyman192 Apr 29, 2024
0532910
Improve reserialization of geometry and animation files
monkeyman192 Apr 29, 2024
21acb8a
Merge pull request #601 from monkeyman192/more_geom_anim_fixes
monkeyman192 Apr 30, 2024
ecdd047
Updated files for version 14533385
monkeyman192 May 29, 2024
cd43e88
Merge pull request #603 from monkeyman192/update/14533385
monkeyman192 May 30, 2024
99102a6
Changes to Quaternion (de)serialization
monkeyman192 May 11, 2024
dd8cd99
Merge pull request #602 from monkeyman192/anim_fixes
monkeyman192 May 30, 2024
0f33a4c
Flatten VariableSizeString
monkeyman192 May 30, 2024
c5dca4d
Merge pull request #604 from monkeyman192/flatten_VariableSizeString
monkeyman192 May 30, 2024
a5757c0
Updated file for 14550997
monkeyman192 May 31, 2024
07d3e72
Merge pull request #605 from monkeyman192/update/14550997
monkeyman192 May 31, 2024
850766a
Update for 14676108
Jun 11, 2024
9d1090e
Merge pull request #606 from HolterPhylo/UpdateFor14676108
HolterPhylo Jun 11, 2024
d532cf5
Merge pull request #589 from cengelha/issue-588-mapping-hash-collision
monkeyman192 Jul 10, 2024
d8f7a9a
Update for header v4
monkeyman192 Jul 17, 2024
9b23251
Update for 5.0
monkeyman192 Jul 19, 2024
43ac519
Merge pull request #607 from monkeyman192/header_v4
monkeyman192 Jul 19, 2024
f0f8247
Implement HashMap and other new types
monkeyman192 Jul 22, 2024
58dacf1
Merge pull request #609 from monkeyman192/more_5.0
monkeyman192 Jul 25, 2024
7bd61e8
Update for 15152259
Jul 25, 2024
2b69370
Update version
Jul 26, 2024
30c58dc
Merge pull request #610 from HolterPhylo/UpdateFor15152259
monkeyman192 Jul 26, 2024
bcddf5f
Deleting unused .cs files
Jul 26, 2024
61efec9
Merge pull request #611 from HolterPhylo/DeleteUnusedCSFiles
monkeyman192 Jul 26, 2024
64ff46a
Update for 15174591
monkeyman192 Jul 28, 2024
cd04c75
Merge pull request #613 from monkeyman192/update/15174591
monkeyman192 Jul 28, 2024
3593102
Update for 15243936
Aug 2, 2024
e77527a
Update version
Aug 3, 2024
0ff266e
Merge pull request #614 from HolterPhylo/UpdateFor15243936
monkeyman192 Aug 3, 2024
208d41d
Update for 15307704
Aug 8, 2024
0598df0
Merge pull request #615 from HolterPhylo/UpdateFor15307704
monkeyman192 Aug 8, 2024
058a8c3
bump action-gh-release action version
monkeyman192 Sep 3, 2024
39661ee
Merge pull request #616 from monkeyman192/pipeline_bump
monkeyman192 Sep 4, 2024
48153b1
Update for NMS 5.10
monkeyman192 Sep 4, 2024
435f30c
Merge pull request #617 from monkeyman192/update/15589280
monkeyman192 Sep 4, 2024
b190919
partially revert pipeline change
monkeyman192 Sep 4, 2024
635211c
Update for 15593720
monkeyman192 Sep 4, 2024
65a5033
Merge pull request #618 from monkeyman192/update/15593720
monkeyman192 Sep 5, 2024
e902901
Update for 15663204
monkeyman192 Sep 11, 2024
689c2a8
Merge pull request #619 from monkeyman192/update/15663204
monkeyman192 Sep 11, 2024
d9964d2
Changes for 5.20 update
monkeyman192 Oct 23, 2024
2ab3e65
Merge pull request #622 from monkeyman192/update/16151577
monkeyman192 Oct 23, 2024
7c9db9d
Update for 16166985
monkeyman192 Oct 24, 2024
dfc4a1f
Merge pull request #623 from monkeyman192/update/16166985
monkeyman192 Oct 25, 2024
8c61df7
Update for 16209713
Oct 28, 2024
e04eea3
Merge pull request #624 from HolterPhylo/UpdateFor16209713
monkeyman192 Oct 28, 2024
a57a53c
Update for steam build id 16327053
monkeyman192 Nov 7, 2024
a5fbebf
Merge pull request #625 from monkeyman192/update/16327053
monkeyman192 Nov 7, 2024
5989e2a
Update for 16706643
monkeyman192 Dec 11, 2024
382e07f
Merge pull request #626 from monkeyman192/update/16706643
HolterPhylo Dec 11, 2024
05ff316
Update for latest experimental
monkeyman192 Jan 3, 2025
6b77571
Changes for 16928316 and geometry data guid fix
monkeyman192 Jan 7, 2025
e624be7
Merge pull request #627 from monkeyman192/update/16900201
monkeyman192 Jan 7, 2025
e886708
Initial changes to generate mxml-compliant files
monkeyman192 Jan 7, 2025
c517d80
Start producing mxml instead of exml files
monkeyman192 Jan 8, 2025
de7ad5c
Change default exclude to nothing
monkeyman192 Jan 9, 2025
9ad065d
Got tests passing now
monkeyman192 Jan 9, 2025
31d8433
Further improvements and changes to mxml format
monkeyman192 Jan 28, 2025
b034c63
Fixed a small issue with the xml properties
monkeyman192 Jan 28, 2025
b4ec1f5
Fix issue writing List<NMSTemplate>'s to mxml
monkeyman192 Jan 29, 2025
7b92fe1
Change EXML to MXML in all files and add EXML output format for compa…
monkeyman192 Jan 29, 2025
cf7a9c5
Revert "Change EXML to MXML in all files and add EXML output format f…
monkeyman192 Jan 29, 2025
ace6e7a
Re-revert back to using MXML everywhere
monkeyman192 Jan 29, 2025
4920f0d
Merge pull request #630 from monkeyman192/mxml_changes
monkeyman192 Jan 29, 2025
4bdd2a9
Update for Worlds Part 2
monkeyman192 Jan 29, 2025
cf6a2e9
Update geometry related guids
monkeyman192 Jan 29, 2025
be37d04
Version bump
monkeyman192 Jan 30, 2025
fe94366
Fix issue with field name checking
monkeyman192 Jan 30, 2025
7e04328
Merge pull request #631 from monkeyman192/update/17176007
monkeyman192 Jan 30, 2025
511bf90
Update for latest experimental (steam build id 1719083)
monkeyman192 Jan 30, 2025
bd6a360
Merge pull request #632 from monkeyman192/update/17190683
monkeyman192 Jan 31, 2025
b9ca102
Update for steam build 17241289
monkeyman192 Feb 4, 2025
8300364
Merge pull request #635 from monkeyman192/update/17241289
monkeyman192 Feb 5, 2025
722a849
Update for steam build id 17266312
monkeyman192 Feb 6, 2025
56bb86b
Merge pull request #636 from monkeyman192/update/17266312
monkeyman192 Feb 6, 2025
dbc5267
Improve mxml format compatibility
monkeyman192 Feb 7, 2025
f6007c2
Update for steam build id 17286670
monkeyman192 Feb 7, 2025
443bb52
Merge pull request #637 from monkeyman192/mxml_fixes
HolterPhylo Feb 8, 2025
eee7d5d
Update for steam build id 17356484
monkeyman192 Feb 13, 2025
5312717
Merge pull request #638 from monkeyman192/update/17356484
monkeyman192 Feb 13, 2025
82e205b
Bump version
monkeyman192 Feb 13, 2025
4f7fff7
Update for experimental - Add COlour32 and _index attribute for non-e…
monkeyman192 Feb 20, 2025
3ce3cea
Completed the _index attribute writing and added _id attribute
monkeyman192 Feb 20, 2025
b64f3e9
Update for latest experimental
monkeyman192 Feb 21, 2025
5e5063f
Fix for empty HashMap and update for latest experimental
monkeyman192 Feb 21, 2025
01471d2
Merge pull request #639 from monkeyman192/update/17409346
monkeyman192 Feb 21, 2025
ed29fe1
Add ID info to HashMap's and change Colour32's fields to bytes
monkeyman192 Feb 22, 2025
c27f00d
Merge pull request #640 from monkeyman192/hashmap_ids
monkeyman192 Feb 22, 2025
99c17cd
Fix issue writing HashMap's to MXML
monkeyman192 Feb 25, 2025
aec9291
Merge pull request #641 from monkeyman192/hashmap_to_mxml_fix
monkeyman192 Feb 27, 2025
a98de47
Update for 17871712
monkeyman192 Mar 26, 2025
a148fc5
Merge pull request #644 from monkeyman192/update/17871712
monkeyman192 Mar 26, 2025
7234a2b
Update for steam build id 17995244
monkeyman192 Apr 5, 2025
c4d94b4
Merge pull request #645 from monkeyman192/update/17995244
monkeyman192 Apr 5, 2025
209bdf2
Adding Field do not exist Error to log
Apr 17, 2025
a3ff01f
Update for steam build id 18738426
monkeyman192 Jun 5, 2025
04ccfc5
Merge pull request #648 from monkeyman192/update/18738426
monkeyman192 Jun 5, 2025
f54357c
Merge branch 'development' into FieldDoNotExistError
HolterPhylo Jun 5, 2025
bd7ab8c
Merge pull request #646 from HolterPhylo/FieldDoNotExistError
monkeyman192 Jun 6, 2025
b01b00f
Update for steam build id 18798351
monkeyman192 Jun 9, 2025
62f4278
Merge pull request #651 from monkeyman192/update/18798351
monkeyman192 Jun 9, 2025
1946b50
Update for steam build id 18884609
monkeyman192 Jun 16, 2025
31b37dc
Merge pull request #652 from monkeyman192/update/18884609
monkeyman192 Jun 16, 2025
b0f1ecb
Update for steam build id 18899088
monkeyman192 Jun 17, 2025
50b67a4
Small change to conftest to detect when MBINCompiler path can't be fo…
monkeyman192 Jun 17, 2025
a571e24
Merge pull request #653 from monkeyman192/update/18899088
monkeyman192 Jun 17, 2025
decef16
Update for steam build id 18916812
monkeyman192 Jun 18, 2025
88b3215
Merge pull request #654 from monkeyman192/update/18916812
monkeyman192 Jun 18, 2025
2597503
Update for steam build id 18938516
Jun 20, 2025
f98c9f8
Merge pull request #655 from HolterPhylo/Update18938516
monkeyman192 Jun 21, 2025
7ac1295
Update for steam build id 19009471
Jun 26, 2025
166fab6
Merge pull request #656 from HolterPhylo/Update19009471
monkeyman192 Jun 26, 2025
2ce4f72
Update for steam build id 19096341
Jul 3, 2025
8cb27a9
Merge pull request #657 from HolterPhylo/Update19096341
monkeyman192 Jul 3, 2025
e180862
Update for steam build id 19148553
Jul 8, 2025
bf40bfa
Merge pull request #658 from HolterPhylo/Update19148553
monkeyman192 Jul 8, 2025
e303d91
Update for steam build id 19162366
Jul 9, 2025
282f907
Merge pull request #659 from HolterPhylo/Update19162366
monkeyman192 Jul 9, 2025
3471f79
Update for steam build 19760175
monkeyman192 Aug 28, 2025
e12127f
Merge pull request #660 from monkeyman192/update/19760175
monkeyman192 Aug 28, 2025
889c2e0
Fix issue with deserializing bitflag enums
monkeyman192 Aug 29, 2025
0616257
Merge pull request #661 from monkeyman192/flagenum_array_fix
monkeyman192 Aug 29, 2025
8294cf1
Update for 19792402
monkeyman192 Aug 30, 2025
82f0f61
Merge pull request #662 from monkeyman192/update/19792402
HolterPhylo Aug 30, 2025
4b66226
Update for 19816668
Sep 1, 2025
078b7dc
Merge pull request #663 from HolterPhylo/UpdateFor19816668
HolterPhylo Sep 1, 2025
ecd1ddc
Update for 19829742
Sep 2, 2025
e8501b0
Merge pull request #664 from HolterPhylo/UpdateFor19829742
HolterPhylo Sep 2, 2025
539d5ba
Update for 19844476
Sep 4, 2025
c1e7e87
Merge pull request #665 from HolterPhylo/UpdateFor19844476
HolterPhylo Sep 4, 2025
7e10883
Update for steam build id 19861266
monkeyman192 Sep 5, 2025
010e73e
Merge pull request #666 from monkeyman192/update/19861266
monkeyman192 Sep 5, 2025
a108517
Fix linux tests running on CI
monkeyman192 Sep 5, 2025
312b8ce
Merge pull request #667 from monkeyman192/linux_fix
monkeyman192 Sep 6, 2025
9c021e6
Add uv to make running python code easier
monkeyman192 Sep 8, 2025
0d338f7
Merge pull request #668 from monkeyman192/add_uv
monkeyman192 Sep 8, 2025
3bbc575
Update dotnet version from 7 to 8
monkeyman192 Sep 8, 2025
0fa40ca
Merge pull request #670 from monkeyman192/gh-669
monkeyman192 Sep 9, 2025
46d4e51
Update for 19913116
Sep 9, 2025
7c9ff3e
Update for pull_request
Sep 9, 2025
858e2af
Merge pull request #672 from HolterPhylo/UpdatePipeline
monkeyman192 Sep 9, 2025
120a163
Update for 19913116
Sep 9, 2025
28a4ffe
Merge branch 'UpdateFor19913116' of github.com:HolterPhylo/MBINCompil…
Sep 9, 2025
20c8950
Merge pull request #671 from HolterPhylo/UpdateFor19913116
HolterPhylo Sep 9, 2025
df22477
Update for 20052004
Sep 20, 2025
38847fc
Merge pull request #673 from HolterPhylo/UpdateFor20052004
HolterPhylo Sep 20, 2025
6c82ac4
Adds array size info to MXML files
Oct 7, 2025
79e771e
Adding option --typed
Oct 10, 2025
65dda15
Corrected template.SerializeMXML 2nd parameter to false
Oct 10, 2025
05ed72d
Update libMBIN/Source/MXML/MXmlProperty.cs
HolterPhylo Oct 14, 2025
6a7f802
Update libMBIN/Source/MXML/MXmlProperty.cs
HolterPhylo Oct 14, 2025
6c07188
Update libMBIN/Source/Template/NMSTemplate.cs
HolterPhylo Oct 14, 2025
d3c14c4
Changed IncludeTypedInfo to IncludeTypeInfo
Oct 14, 2025
a121d2f
Merge branch 'ArraySizeInfo' of https://github.com/HolterPhylo/MBINCo…
Oct 15, 2025
66ce270
Changed IncludeTypedInfo to IncludeTypeInfo
Oct 15, 2025
c8fa39d
Updated reference to type (not typed)
Oct 15, 2025
3053339
Remove isField from SerializeMXmlValue
Oct 15, 2025
bba4ed3
Update for steam build id 20494447
monkeyman192 Oct 22, 2025
edff5ed
Merge pull request #675 from monkeyman192/update/20494447
monkeyman192 Oct 22, 2025
ddfc4fa
Merge branch 'development' into ArraySizeInfo
HolterPhylo Oct 22, 2025
ae56110
Update for 20514297
Oct 23, 2025
6094ece
Merge pull request #676 from HolterPhylo/UpdateFor20514297
HolterPhylo Oct 23, 2025
ed5057f
Added back WriteTemplate(NMSTemplate template)
Oct 27, 2025
f4bb7b2
Merge branch 'development' into ArraySizeInfo
Oct 27, 2025
d94a754
Merge pull request #674 from HolterPhylo/ArraySizeInfo
monkeyman192 Oct 28, 2025
136f6bc
UpdateFor20576816
Oct 28, 2025
dbaf038
Merge pull request #677 from HolterPhylo/UpdateFor20576816
HolterPhylo Oct 28, 2025
8f78b10
Remove serialization of GcResource to MXML files
monkeyman192 Oct 29, 2025
ec79b40
Merge pull request #678 from monkeyman192/no_serialize_GcResource
monkeyman192 Oct 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
23 changes: 23 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Contributing to MBINCompiler

There are a number of ways that anyone can contribute to the development of MBINCompiler, but the main two ways are as follows:

#### Providing Updated versions of structs

Every time Hello Games pushes an update to the game we check to see if there are any structs that have changed. If there have been changes then an issue will be created which has the *Update Info* tag.

If you have some reverse engineering skills you can create a Pull Request which fixes some or all of the structs that were broken by the update.

If your pull request would result in every struct that was changed being fixed (or finishes off the list of structs requiring updating in a given issue), then you should add `closes #XYZ` (where `XYZ` is the number of the issue that should be closed) to the text of the PR.

#### Providing names for unknowns in globals

As of NMS 2.0, HG removed the names of variables in all globals exept for the camera globals. Because of this, we have gone back to having a number of variables which have their effect unknown. This is a great place to start off contributing to MBINCompiler as it doesn't require any reverse engineering knowledge and can be done by simply using cheat engine to try and determine the values.

A number of globals also have some comments in the source code which indicate some suggestions for what the variables *may* do. In this case testing is required to confirm or deny whether the variable is in fact related to what the comment suggests.

### General protocol for opening a Pull Request

- If you are working on a PR which may end up having a few commits, you can prepend the name of your PR with `[WIP]` to indicate that the PR is not yet complete.
- Once you are happy with your PR, the title must be prepended with `[MRG]` to indicate that the PR is ready to go and the review process can take place.
- Currently there is no testing done on the MBINCompile code base on a CI service, however this will hopefully come in the future and when it does, no PR will be able to be merged unless it passes any CI tests.
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/-bug-report-.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: "[Bug Report]"
about: Create a bug report to submit information about program errors, unpexpected
behaviours and other unintended mistakes.
title: ''
labels: bug
assignees: ''

---

_Fill in the details for each relevant section._
_When you're done, then delete any instructions, example text and irrelevant sections._
_Please select the project on the sidebar where you encountered the problem._

**Things to check before you raise an issue**
- Make sure that you have looked at the log file and determined that the issue is in fact an issue with MBINCompiler, and not an issue with the mxml file being modified incorrect etc.
- Check to see that an issue has not already been raised of the same manner.
- If there has been a recent update, check to see for any issues marked `[UPDATE]` to see if the struct you are having issues with is in fact supported yet or not. If not ticked off, please do not post an issue.
**IMPORTANT**: If there was a recent release and there is no issue with the update info, please do not raise an issue about single broken files. It may take some time for this issue to be created, so please be patient. Opening multiple issues will not help and they will just be closed.

**Describe the bug**
A clear and concise description of what the bug is.
Include a summary of the error message if there is one.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Steps To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Specs (please complete the following information, if applicable):**
- libMBIN (MBINCompiler) Version: [eg 1.0.0.0]
- NMS Game Version or Steam Build Number: [eg 1.0.0.0, or 4154325] (To find the build number, right click on the game in steam, select `Properties`, then click on the `LOCAL FILES` tab and the buildID is at the bottom).
- MBIN File: [eg GCPLAYERGLOBALS.GLOBAL.MBIN]
- MBIN File Version: [eg 1.0.0.0]

**Additional Information**
Add any other information here that you think might be helpful.

_Attachments:_
_Always include the entire log file._
_Do not attach MBIN files unless requested._
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/-feature-request-.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: "[Feature Request]"
about: Suggest an idea for this project.
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
151 changes: 151 additions & 0 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
name: MBINCompiler

on:
# Run on all branches except for the gh-pages branch
push:
paths-ignore:
- '*.md'
branches-ignore:
- 'gh-pages'
pull_request:
paths-ignore:
- '*.md'
branches-ignore:
- 'gh-pages'
create:

jobs:
build_test:
name: Build artefacts - ${{ matrix.os.name }}/${{ matrix.dotnet.framework }}
runs-on: ${{ matrix.os.name }}-latest
strategy:
fail-fast: false
matrix:
os: [{name: 'Ubuntu', runtime: 'linux-x64'}, {name: 'Windows', runtime: 'win-x64'}]
dotnet: [{framework: 'net6.0', version: '6.0.0'}, {framework: 'net8.0', version: '8.0.0'}]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v5
with:
# Install both sdk versions.
dotnet-version: |
6.0.100
8.0.100
- name: Build ${{ matrix.os.name }}-dotnet ${{ matrix.dotnet }} binaries
run: |
sed -i '\|<TargetFrameworks>net6.0;net8.0</TargetFrameworks>|a\ <RuntimeFrameworkVersion>${{ matrix.dotnet.version }}</RuntimeFrameworkVersion>' ./MBINCompiler/MBINCompiler.csproj
sed -i '\|<TargetFrameworks>net6.0;net8.0</TargetFrameworks>|a\ <RuntimeFrameworkVersion>${{ matrix.dotnet.version }}</RuntimeFrameworkVersion>' ./libMBIN-DLL/libMBIN-DLL.csproj
dotnet publish libMBIN-DLL --no-self-contained -c Release -f ${{ matrix.dotnet.framework }} -r ${{ matrix.os.runtime }} /nowarn:cs0618 /nowarn:cs0169 /nowarn:cs0414
dotnet publish MBINCompiler --no-self-contained -c Release -f ${{ matrix.dotnet.framework }} -r ${{ matrix.os.runtime }} /nowarn:cs0618 /nowarn:cs0169 /nowarn:cs0414
- name: Move the exe so the tests can find it easier
run: |
cp Build/Release/${{ matrix.dotnet.framework }}/${{ matrix.os.runtime }}/publish/MBINCompiler.exe MBINCompiler.exe
cp Build/Release/${{ matrix.dotnet.framework }}/${{ matrix.os.runtime }}/publish/libMBIN.dll libMBIN.dll
if: ${{matrix.os.name == 'Windows' }}
- name: Move the exe so the tests can find it easier
run: |
cp Build/Release/${{ matrix.dotnet.framework }}/${{ matrix.os.runtime }}/publish/MBINCompiler MBINCompiler.exe
cp Build/Release/${{ matrix.dotnet.framework }}/${{ matrix.os.runtime }}/publish/libMBIN.dll libMBIN.dll
if: ${{matrix.os.name == 'Ubuntu' }}
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Install dependencies
run: |
python -m pip install --upgrade pip uv
uv sync
- name: Run tests
run: uv run python -m pytest --mbincompiler_path="./MBINCompiler.exe" --tb=no --report
- name: Upload Windows binaries
uses: actions/upload-artifact@v4
with:
name: MBINCompiler-${{ matrix.os.name }}-${{ matrix.dotnet.framework }}
path: |
MBINCompiler.exe
libMBIN.dll
if: ${{matrix.os.name == 'Windows' }}
- name: Upload Linux binaries
uses: actions/upload-artifact@v4
with:
name: MBINCompiler-${{ matrix.os.name }}-${{ matrix.dotnet.framework }}
path: |
MBINCompiler.exe
MBINCompiler.dll
libMBIN.dll
if: ${{matrix.os.name == 'Ubuntu' }}
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: MBINCompiler-report
path: report.json
if: ${{matrix.os.name == 'Windows' && matrix.dotnet.framework == 'net6.0'}}
save_mapping:
name: Build save file mapping and generate mapping
runs-on: Windows-latest
steps:
- uses: actions/checkout@v4
- name: Build SaveFileMapping binary
run: dotnet publish SaveFileMapping -c Release -f net8.0 -r win-x64 -o Build/Release/net8/ /nowarn:cs0618 /nowarn:cs0169 /nowarn:cs0414
- name: Generate save data mapping
run : Build/Release/net8/SaveFileMapping.exe
shell: bash
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: savedata-mapping
path: mapping.json
release:
name: Release MBINCompiler binaries and other data
# Only run this job if the commit was tagged.
if: ${{ startsWith(github.ref, 'refs/tags/') }}
runs-on: windows-latest
needs: [build_test, save_mapping]
steps:
- name: Download files for release
uses: actions/download-artifact@v4
- name: Rename files for release
run: |
mv MBINCompiler-Windows-net6.0/MBINCompiler.exe MBINCompiler-dotnet6.exe
mv MBINCompiler-Windows-net6.0/libMBIN.dll libMBIN-dotnet6.dll
mv MBINCompiler-Windows-net8.0/MBINCompiler.exe MBINCompiler.exe
mv MBINCompiler-Windows-net8.0/libMBIN.dll libMBIN.dll
mv MBINCompiler-Ubuntu-net6.0/MBINCompiler.exe MBINCompiler-linux-dotnet6
mv MBINCompiler-Ubuntu-net6.0/libMBIN.dll libMBIN-linux-dotnet6.so
mv MBINCompiler-Ubuntu-net8.0/MBINCompiler.exe MBINCompiler-linux
mv MBINCompiler-Ubuntu-net8.0/libMBIN.dll libMBIN-linux.so
mv savedata-mapping/mapping.json mapping.json
mv MBINCompiler-report/report.json report.json
- name: Get MBINCompiler tag version
run: |
echo "VERSION=$(./MBINCompiler.exe version | awk '{print $2}')" >> $GITHUB_ENV
echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
shell: bash
- name: Upload resources if version matches
if: env.VERSION == env.TAG
uses: softprops/action-gh-release@v2
with:
name: "${{ env.TAG }}"
tag_name: ${{ env.TAG }}
prerelease: true
files: |
MBINCompiler.exe
libMBIN.dll
MBINCompiler-dotnet6.exe
libMBIN-dotnet6.dll
MBINCompiler-linux
libMBIN-linux.so
MBINCompiler-linux-dotnet6
libMBIN-linux-dotnet6.so
report.json
mapping.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check if tag doesn't match version
if: env.VERSION != env.TAG
run: |
echo "There is a version mismatch between the tag and MBINCompiler version!"
echo "MBINCompiler version: ${{ env.VERSION }}"
echo "Tag version: ${{ env.TAG }}"
exit 1
shell: bash
29 changes: 28 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -254,4 +254,31 @@ paket-files/

# CodeRush
.cr/
/MBINCompilerTests/app.config
*.manifest

**/launchSettings.json
/.nuget/

# python-related files
*.pyc
.pytest_cache/
.venv/

# test data
tests/**/*.MBIN
tests/**/.version
tests/**/_*.txt
tests/data/*
report.json
results.txt

# Auto-generated documentation
docs/classes/
html_docs/

# auto-extraction script output
Tools/auto_extract/output/**/*.cs
Tools/auto_extract/*.projitems
Tools/auto_extract/summary.txt
Tools/auto_extract/extract.cfg
Tools/auto_extract/guids_*.json
24 changes: 24 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/Build/Debug/net6.0/MBINCompiler.dll",
"args": [],
"cwd": "${workspaceFolder}/MBINCompiler",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}
41 changes: 41 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/MBINCompiler.sln",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary;ForceNoAlign"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/MBINCompiler.sln",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary;ForceNoAlign"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"--project",
"${workspaceFolder}/MBINCompiler.sln"
],
"problemMatcher": "$msCompile"
}
]
}
Loading