mirror of https://github.com/zeldaret/mm.git
Subrepos update (#1208)
* git subrepo pull tools/asm-differ --force
subrepo:
subdir: "tools/asm-differ"
merged: "ae408664a"
upstream:
origin: "https://github.com/simonlindholm/asm-differ"
branch: "main"
commit: "ae408664a"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull (merge) tools/fado --force
subrepo:
subdir: "tools/fado"
merged: "8d896ee97"
upstream:
origin: "git@github.com:EllipticEllipsis/fado.git"
branch: "master"
commit: "8d896ee97"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull tools/graphovl --force
subrepo:
subdir: "tools/graphovl"
merged: "dab4addae"
upstream:
origin: "https://github.com/AngheloAlf/graphovl.git"
branch: "master"
commit: "dab4addae"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull tools/z64compress --force
subrepo:
subdir: "tools/z64compress"
merged: "43035d97f"
upstream:
origin: "https://github.com/z64me/z64compress.git"
branch: "main"
commit: "43035d97f"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull tools/ZAPD --force
subrepo:
subdir: "tools/ZAPD"
merged: "23929ec93"
upstream:
origin: "https://github.com/zeldaret/ZAPD.git"
branch: "master"
commit: "23929ec93"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* Revert "git subrepo pull tools/z64compress --force"
This reverts commit 2e487b5008
.
This commit is contained in:
parent
c833969ea7
commit
0c3a48ef94
|
@ -6,7 +6,7 @@
|
||||||
[subrepo]
|
[subrepo]
|
||||||
remote = https://github.com/zeldaret/ZAPD.git
|
remote = https://github.com/zeldaret/ZAPD.git
|
||||||
branch = master
|
branch = master
|
||||||
commit = 5786abbdd2d0fd14907e03575a0bd972c1fe9b28
|
commit = 23929ec9373d28cb298daad4ad7cb468e09c0a46
|
||||||
parent = e451a103ba5d14af3dd14acfa54a6b4999fd951f
|
parent = 2e487b5008c129031ab311a3a7bfd42adeb4916b
|
||||||
method = merge
|
method = merge
|
||||||
cmdver = 0.4.5
|
cmdver = 0.4.3
|
||||||
|
|
|
@ -569,6 +569,7 @@ void ZTextureAnimation::DeclareReferences(const std::string& prefix)
|
||||||
count = 2;
|
count = 2;
|
||||||
}
|
}
|
||||||
params = new TextureScrollingParams(parent);
|
params = new TextureScrollingParams(parent);
|
||||||
|
params->type = entry.type;
|
||||||
params->ExtractFromBinary(paramsOffset, count);
|
params->ExtractFromBinary(paramsOffset, count);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -582,6 +583,7 @@ void ZTextureAnimation::DeclareReferences(const std::string& prefix)
|
||||||
|
|
||||||
case TextureAnimationParamsType::TextureCycle:
|
case TextureAnimationParamsType::TextureCycle:
|
||||||
params = new TextureCyclingParams(parent);
|
params = new TextureCyclingParams(parent);
|
||||||
|
params->type = entry.type;
|
||||||
params->ExtractFromBinary(paramsOffset);
|
params->ExtractFromBinary(paramsOffset);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
.mypy_cache/
|
.mypy_cache/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
.vscode/
|
||||||
|
poetry.lock
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
[subrepo]
|
[subrepo]
|
||||||
remote = https://github.com/simonlindholm/asm-differ
|
remote = https://github.com/simonlindholm/asm-differ
|
||||||
branch = main
|
branch = main
|
||||||
commit = 1236288d1520335c2bfb672078fec65084d7cb5c
|
commit = ae408664a89ea4dc70d005d0afc69ac26c938cbb
|
||||||
parent = 2c5690701a350c7e7c3d6252dff925ad65d59910
|
parent = c833969ea79ba31c3103e25e94ef88098c0287de
|
||||||
method = merge
|
method = merge
|
||||||
cmdver = 0.4.3
|
cmdver = 0.4.3
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/psf/black
|
- repo: https://github.com/psf/black
|
||||||
rev: 22.1.0
|
rev: 22.3.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: black
|
- id: black
|
||||||
|
|
|
@ -7,7 +7,7 @@ Nice differ for assembly code. Currently supports MIPS, PPC, AArch64, and ARM32;
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
- Python >= 3.6
|
- Python >= 3.6
|
||||||
- `python3 -m pip install --user colorama watchdog python-Levenshtein` (also `dataclasses` if on 3.6)
|
- `python3 -m pip install --user colorama watchdog levenshtein cxxfilt` (also `dataclasses` if on 3.6)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,8 @@ def apply(config, args):
|
||||||
config["source_directories"] = ["."]
|
config["source_directories"] = ["."]
|
||||||
# config["show_line_numbers_default"] = True
|
# config["show_line_numbers_default"] = True
|
||||||
# config["arch"] = "mips"
|
# config["arch"] = "mips"
|
||||||
# config["map_format"] = "gnu" # gnu or mw
|
# config["map_format"] = "gnu" # gnu, mw, ms
|
||||||
# config["mw_build_dir"] = "build/" # only needed for mw map format
|
# config["build_dir"] = "build/" # only needed for mw and ms map format
|
||||||
|
# config["expected_dir"] = "expected/" # needed for -o
|
||||||
# config["makeflags"] = []
|
# config["makeflags"] = []
|
||||||
# config["objdump_executable"] = ""
|
# config["objdump_executable"] = ""
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
[tool.poetry]
|
||||||
|
name = "asm-differ"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["Simon Lindholm <simon.lindholm10@gmail.com>"]
|
||||||
|
license = "UNLICENSE"
|
||||||
|
readme = "README.md"
|
||||||
|
packages = [{ include = "diff.py" }]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.7"
|
||||||
|
colorama = "^0.4.6"
|
||||||
|
ansiwrap = "^0.8.4"
|
||||||
|
watchdog = "^2.2.0"
|
||||||
|
levenshtein = "^0.20.9"
|
||||||
|
cxxfilt = "^0.3.0"
|
||||||
|
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
|
@ -6,7 +6,7 @@
|
||||||
[subrepo]
|
[subrepo]
|
||||||
remote = git@github.com:EllipticEllipsis/fado.git
|
remote = git@github.com:EllipticEllipsis/fado.git
|
||||||
branch = master
|
branch = master
|
||||||
commit = f7efb10a9a65f27e9ccad7ce270234f20d386ac9
|
commit = 8d896ee97d565508755584803c409fc33bb0c953
|
||||||
parent = 90cfafec47fe4b73ad9009e9501e147e86025aa6
|
parent = b51c9f4d22d6e7db63700c163418654431a2a61a
|
||||||
method = merge
|
method = merge
|
||||||
cmdver = 0.4.3
|
cmdver = 0.4.3
|
||||||
|
|
|
@ -112,15 +112,15 @@ bool vc_vector_is_equals(vc_vector* vector1, vc_vector* vector2) {
|
||||||
return memcmp(vector1->data, vector2->data, size_vector1) == 0;
|
return memcmp(vector1->data, vector2->data, size_vector1) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float vc_vector_get_growth_factor() {
|
float vc_vector_get_growth_factor(void) {
|
||||||
return GROWTH_FACTOR;
|
return GROWTH_FACTOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t vc_vector_get_default_count_of_elements() {
|
size_t vc_vector_get_default_count_of_elements(void) {
|
||||||
return DEFAULT_COUNT_OF_ELEMENTS;
|
return DEFAULT_COUNT_OF_ELEMENTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t vc_vector_struct_size() {
|
size_t vc_vector_struct_size(void) {
|
||||||
return sizeof(vc_vector);
|
return sizeof(vc_vector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,13 +24,13 @@ void vc_vector_release(vc_vector* vector);
|
||||||
bool vc_vector_is_equals(vc_vector* vector1, vc_vector* vector2);
|
bool vc_vector_is_equals(vc_vector* vector1, vc_vector* vector2);
|
||||||
|
|
||||||
// Returns constant value of the vector growth factor.
|
// Returns constant value of the vector growth factor.
|
||||||
float vc_vector_get_growth_factor();
|
float vc_vector_get_growth_factor(void);
|
||||||
|
|
||||||
// Returns constant value of the vector default count of elements.
|
// Returns constant value of the vector default count of elements.
|
||||||
size_t vc_vector_get_default_count_of_elements();
|
size_t vc_vector_get_default_count_of_elements(void);
|
||||||
|
|
||||||
// Returns constant value of the vector struct size.
|
// Returns constant value of the vector struct size.
|
||||||
size_t vc_vector_struct_size();
|
size_t vc_vector_struct_size(void);
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Element access
|
// Element access
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
#include "version.inc"
|
#include "version.inc"
|
||||||
|
|
||||||
void PrintVersion() {
|
void PrintVersion(void) {
|
||||||
printf("Fado (Fairy-Assisted relocations for Decompiled Overlays), version %s\n", versionNumber);
|
printf("Fado (Fairy-Assisted relocations for Decompiled Overlays), version %s\n", versionNumber);
|
||||||
printf("Copyright (C) 2021 Elliptic Ellipsis\n");
|
printf("Copyright (C) 2021 Elliptic Ellipsis\n");
|
||||||
printf("%s\n", credits);
|
printf("%s\n", credits);
|
||||||
|
@ -88,7 +88,7 @@ static size_t posArgCount = ARRAY_COUNT(posArgInfo);
|
||||||
static size_t optCount = ARRAY_COUNT(optInfo);
|
static size_t optCount = ARRAY_COUNT(optInfo);
|
||||||
static struct option longOptions[ARRAY_COUNT(optInfo)];
|
static struct option longOptions[ARRAY_COUNT(optInfo)];
|
||||||
|
|
||||||
void ConstructLongOpts() {
|
void ConstructLongOpts(void) {
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < optCount; i++) {
|
for (i = 0; i < optCount; i++) {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
[subrepo]
|
[subrepo]
|
||||||
remote = https://github.com/AngheloAlf/graphovl.git
|
remote = https://github.com/AngheloAlf/graphovl.git
|
||||||
branch = master
|
branch = master
|
||||||
commit = f5fe93d75bb75ea4bea65f62c43f41f6a1e70679
|
commit = dab4addae0c5db6274ab5daf7780c62c346120a1
|
||||||
parent = 6c5a50ef95f351acc7c4c0455a347a94443adbe1
|
parent = 5da1ae553569ddb0016d302cfac8c45d9cb22e73
|
||||||
method = merge
|
method = merge
|
||||||
cmdver = 0.4.3
|
cmdver = 0.4.3
|
||||||
|
|
|
@ -18,7 +18,7 @@ except ModuleNotFoundError:
|
||||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
config = ConfigParser()
|
config = ConfigParser()
|
||||||
|
|
||||||
func_names = None
|
func_names = list()
|
||||||
func_definitions = list()
|
func_definitions = list()
|
||||||
line_numbers_of_functions = list()
|
line_numbers_of_functions = list()
|
||||||
|
|
||||||
|
@ -72,6 +72,19 @@ def capture_setupaction_call_arg(content):
|
||||||
transitionList.append(func)
|
transitionList.append(func)
|
||||||
return transitionList
|
return transitionList
|
||||||
|
|
||||||
|
setaction_regexpr = re.compile(r"_SetAction+\([^\)]*\)(\.[^\)]*\))?;")
|
||||||
|
|
||||||
|
def capture_setaction_calls(content):
|
||||||
|
return [x.group() for x in re.finditer(setaction_regexpr, content)]
|
||||||
|
|
||||||
|
def capture_setaction_call_arg(content):
|
||||||
|
transitionList = []
|
||||||
|
for x in re.finditer(setaction_regexpr, content):
|
||||||
|
func = x.group().split(",")[2].strip().split(");")[0].strip()
|
||||||
|
if func not in transitionList:
|
||||||
|
transitionList.append(func)
|
||||||
|
return transitionList
|
||||||
|
|
||||||
# Search for the function definition by supplied function name
|
# Search for the function definition by supplied function name
|
||||||
def definition_by_name(content, name):
|
def definition_by_name(content, name):
|
||||||
for definition in capture_definitions(content):
|
for definition in capture_definitions(content):
|
||||||
|
@ -206,7 +219,11 @@ def addFunctionTransitionToGraph(dot, index: int, func_name: str, action_transit
|
||||||
fontColor = config.get("colors", "fontcolor")
|
fontColor = config.get("colors", "fontcolor")
|
||||||
bubbleColor = config.get("colors", "bubbleColor")
|
bubbleColor = config.get("colors", "bubbleColor")
|
||||||
indexStr = str(index)
|
indexStr = str(index)
|
||||||
|
try:
|
||||||
funcIndex = str(index_of_func(action_transition))
|
funcIndex = str(index_of_func(action_transition))
|
||||||
|
except ValueError:
|
||||||
|
print(f"Warning: function '{action_transition}' called by '{func_name}' was not found. Skiping...", file=sys.stderr)
|
||||||
|
return
|
||||||
|
|
||||||
dot.node(indexStr, func_name, fontcolor=fontColor, color=bubbleColor)
|
dot.node(indexStr, func_name, fontcolor=fontColor, color=bubbleColor)
|
||||||
dot.node(funcIndex, action_transition, fontcolor=fontColor, color=bubbleColor)
|
dot.node(funcIndex, action_transition, fontcolor=fontColor, color=bubbleColor)
|
||||||
|
@ -230,7 +247,7 @@ def addCallNamesToGraph(dot, func_names: list, index: int, code_body: str, remov
|
||||||
if call in removeList:
|
if call in removeList:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if setupAction and "_SetupAction" in call:
|
if setupAction and ("_SetupAction" in call or "_SetAction" in call):
|
||||||
continue
|
continue
|
||||||
seen.add(call)
|
seen.add(call)
|
||||||
|
|
||||||
|
@ -342,10 +359,11 @@ def main():
|
||||||
actionIdentifier = "this->actionFunc"
|
actionIdentifier = "this->actionFunc"
|
||||||
|
|
||||||
setupAction = func_prefix + "_SetupAction" in func_names
|
setupAction = func_prefix + "_SetupAction" in func_names
|
||||||
|
setAction = func_prefix + "_SetAction" in func_names
|
||||||
arrayActorFunc = match_obj is not None
|
arrayActorFunc = match_obj is not None
|
||||||
rawActorFunc = actionIdentifier in contents
|
rawActorFunc = actionIdentifier in contents
|
||||||
|
|
||||||
if not setupAction and not arrayActorFunc and not rawActorFunc:
|
if not setupAction and not setAction and not arrayActorFunc and not rawActorFunc:
|
||||||
print("No actor action-based structure found")
|
print("No actor action-based structure found")
|
||||||
os._exit(1)
|
os._exit(1)
|
||||||
|
|
||||||
|
@ -383,6 +401,8 @@ def main():
|
||||||
Create all edges for SetupAction-based actors
|
Create all edges for SetupAction-based actors
|
||||||
"""
|
"""
|
||||||
transitionList = capture_setupaction_call_arg(code_body)
|
transitionList = capture_setupaction_call_arg(code_body)
|
||||||
|
elif setAction:
|
||||||
|
transitionList = capture_setaction_call_arg(code_body)
|
||||||
elif arrayActorFunc:
|
elif arrayActorFunc:
|
||||||
"""
|
"""
|
||||||
Create all edges for ActorFunc array-based actors
|
Create all edges for ActorFunc array-based actors
|
||||||
|
|
Loading…
Reference in New Issue