Commit Graph

84 Commits

Author SHA1 Message Date
Anghelo Carvajal 7f14659919
`diff.py` symlink and `graphovl.py` (#151)
* Add `diff.py` symlink

* Add graphovl.py

* remove graphovl

* add graphovl subrepo

* git subrepo pull --force tools/graphovl

subrepo:
  subdir:   "tools/graphovl"
  merged:   "577e7159"
upstream:
  origin:   "https://github.com/AngheloAlf/graphovl.git"
  branch:   "master"
  commit:   "577e7159"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"
2021-05-18 22:21:14 -04:00
Zach Banks 091219d742
Small env fixes: git submodules & python3 (#127)
* Small env fixes: for git submodules & python3

Using `/usr/bin/env python3` is preferred over `/usr/bin/python3`
because it is compatible with virtualenvs, etc. It picks the version of
`python3` currently on the `PATH`, rather than the system-wide default.

For the git submodules, I had two issues:

The ZAPD repo is currently pointing at a commit not on the master
branch, which has to be specifically fetched. Adding `--remote` to the
update command fixes this.

The decomp-permuter has primary branch `main` not `master` like this
repo, so this has to be specified in `.gitmodules` when using `--remote`.

* Rework `git submodule update...` part of Makefile
2021-05-18 19:53:11 -04:00
Kenix3 5a776fabde
Updates progress.py script for the new location of built assets (#143) 2021-05-18 17:22:43 -04:00
Anghelo Carvajal aae6d9d364
Port `actorfixer.py` to MM (#126)
* Port actorfixer

* Run actorfixer
2021-05-10 21:22:03 -04:00
engineer124 cf1da451aa
Update actor symbols (#124)
* update actor symbols

* switch to baserom directory

Co-authored-by: Jared Collette <jcollette@4000v-udp25-l.eng.unimelb.edu.au>
2021-05-10 18:47:30 -04:00
Zach Banks 23d63852de
Use decompiled overlays when building ROM (#121)
* Restore padding in ObjVisiblock struct

* Copy overlays out of compiled `code.elf` to put into the ROM

This is just a "tempory fix"

It seems like the built code/assets in `code.elf` should not be copied
into `build/baserom/...` (over the original ROM's files) but instead
into a `build/decomp/...` tree or similar.

`dmadata_table.txt` would also need to be updated to read from the
correct location.

* Use dmadata_table.txt to generate build rules

`makerom_files.txt` & `makerom_uncompressed_files.txt` contained a lot
of the same data in `dmadata_table.txt`, so I added a small python
script to generate this information into `build/`

Segments are no longer dumped out of `code.elf` into `build/baserom/``,
instead they are put in `build/binary/`.

`linker_scripts/dmadata_script.txt` was checked in, but generated by
`dmadata.py`. I deleted it / moved it to `build/dmadata_script.txt.pre`.

I also introduced some sentinel files (`dep`). I ended up needing these
to make incremental builds work smoothly? (Without them, there were a
lot of steps that were getting re-triggered on every build.) If this
style isn't welcome, I can try to fiddle with the Makefile more to try
to avoid having them?

* Restore padding in BgLbfshot struct

* Touch sentinel file before command; rm on failure

* Restore padding in ObjKepnKoya struct

* Ensure asm/ directories exist before disasm steps

* Clean up Makefile rules

* Set default goal; silent objcopy; fix code_script path

* Fix ovl_En_Ginko_Man, ovl_Obj_Lightswitch merge

ovl_En_Encount2 still needs work to bring back to matching

* Fix ovl_En_Encount2 merge
2021-05-10 18:24:59 -04:00
Kenix3 c40bb119e1
Adds in scene support (#117)
* 1 scene done, Z2_SOUGEN OK

* All scenes OK

* Makefile improvements

* Use WIP ZAPD branch as submodule

* Add spawn rotation flag macro

* Fix bad merge

* Move scenes to be in their own subfolders

* Rename and restructure extracted baserom files

* Progress tracking for assets

* Add asset progress to csv

* Use master ZAPD

* Use distclean like in OOT

* Fix up a few things with the makefile

* Fix scenes not being dumped from ELF

Co-authored-by: Rozelette <Uberpanzermensch@gmail.com>
2021-04-29 18:56:18 -04:00
kyleburnette d327f3e6c3
Changed ichaindis to output actual names by default and added an --offset arg to output offset names if needed. Also changed permission on all the overlayhelper scripts (#102) 2021-04-12 21:47:36 -05:00
kyleburnette 50d0bbe087
dm_sa OK (#88)
* initial dm_sa work

* more dmsa work

* dm_sa OK

* Changed char arrays in header to be UNK_TYPE1

* Made all of roz's suggested changes

* merge
2021-04-07 18:08:19 -04:00
Rozelette b22e26dbd8
z_en_item00 (#78)
* z_en_item00 WIP 17/21 match, rest close to matching

* Split .rodata for z_en_item00

* Item00 documentation, some misc cleanup

* Minor cleanup

* Fixup for z_collision_check

* Address feedback

* Delete old file

* Fix bad merge
2021-03-27 19:55:42 -05:00
Lucas Shaw 623b6d5318
Some OOT transfers, some renaming, etc (#75)
* Progress on various files

* gfxprint stuff

* split some rodata, add iconv for rodata string parsing

* z_std_dma rodata

* 2 nonmatchings in gfxprint

* mtxuty-cvt ok

* more

* match a function in idle.c

* progress

* Cleanup

* Rename BgPolygon to CollisionPoly

* progress

* some effect stuff

* more effect progress

* updates

* made suggested changes

* z_effect_soft_sprite_old_init mostly ok

Co-authored-by: Lucas Shaw <lucas.shaw1123@gmail.com>
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
2021-03-27 16:17:41 -05:00
Tharo 012e3c21ae
Floats and Strings in asm (#82) 2021-03-27 14:10:09 -05:00
Rozelette 807db1ca54
Improve the robustness of depend.py (#76) 2021-03-27 12:44:31 -05:00
Tharo 1a2e6d7ffe
z_collision_check.c (#58)
* setup

* Progress on z_collision_check.c

* Further progress on z_collision_check.c

* renamed code_0x800E03A0 to z_collision_btltbls, z_collision_check.c decompiled besides bss

* Structs changes

* Document functions

* overlayhelpers folder, colliderinit.py and ichaindis.py

* Flags, format existing ColliderInits

* Fix merge

* Few more small improvements

* Review suggestions
2021-03-22 17:48:15 -04:00
Rozelette 8342329538
yaz0.c OK (#71) 2021-03-16 21:49:27 -04:00
Rozelette 3a91922e89
Generate dependencies for C files with GLOBAL_ASM (#70) 2021-03-14 22:12:14 -04:00
Kenix3 daca195583 Comments out debugging print statements 2021-03-10 22:28:06 -05:00
Kenix3 1f7ad229c5 Updates progress.py to use the git module for outputting commit hash 2021-03-10 22:28:06 -05:00
Kenix3 375f99f2b4 Fixes matching and non-matching counts in progress.py 2021-03-10 22:28:06 -05:00
Kenix3 c8e9e78e78 Fixes issue that causes split rodata to be read as code decomp progress 2021-03-10 22:28:06 -05:00
Kenix3 037ba9a22e Initial support of tracking progress per code/boot/overlay, and outputs the stats to csv. 2021-03-10 22:28:06 -05:00
Zelllll fb1ed529ad
Add OoT actor structs and enums (#55)
* add oot structs

* revert formatting

* fix comment thing

* fix accidental renames

* slight fix

* naviEnemyId -> hintId

* fix headers
2021-02-28 22:52:12 -05:00
Kenix3 5c761c33f0
Updates asm-differ (#53) 2021-02-25 19:36:55 -05:00
Kenix3 7955a59194
PoC automatic rodata split Total split: 585 Failed / Troublesome: 61 (10,42735042735043%) Successfull rodata split: 524 (89,57264957264957%) Failed due to Script issues: 51 Failed due to object boundary issues or unreferenced .rodata: 10 Build OK?: :feelsokman: (#51)
rom_uncompressed.z64: OK
2a0a8acb61538235bc1094d297fb6556  rom.z64
rom.z64: OK

List Of Troublesome (mostly simliar edge cases, some are strings that we dont catch right / data without references):
 -    ovl_Arrow_Ice
 -    ovl_Arrow_Light
 -    ovl_Bg_Dkjail_Ivy
 -    ovl_Bg_Ikana_Mirror
 -    ovl_Boss_02
 -    ovl_Boss_07
 -    ovl_Boss_Hakugin
 -    ovl_Elf_Msg
 -    ovl_Elf_Msg2
 -    ovl_Elf_Msg3
 -    ovl_Elf_Msg4
 -    ovl_Elf_Msg5
 -    ovl_En_Az
 -    ovl_En_Bigokuta
 -    ovl_En_Bigpamet
 -    ovl_En_Bigpo
 -    ovl_En_Bigslime
 -    ovl_En_Box
 -    ovl_En_Butte
 -    ovl_En_Col_Man
 -    ovl_En_Crow
 -    ovl_En_Death
 -    ovl_En_Elf
 -    ovl_En_Elforg
 -    ovl_En_Encount3
 -    ovl_En_Encount4
 -    ovl_En_Fish
 -    ovl_En_Fish2
 -    ovl_En_Fsn
 -    ovl_En_Honotrap
 -    ovl_En_Horse
 -    ovl_En_Horse_Game
 -    ovl_En_Invadepoh
 -    ovl_En_Ishi
 -    ovl_En_Kame
 -    ovl_En_Kanban
 -    ovl_En_Kusa2
 -    ovl_En_M_Thunder
 -    ovl_En_Maruta
 -    ovl_En_Mushi2
 -    ovl_En_Okuta
 -    ovl_En_Ossan
 -    ovl_En_Pametfrog
 -    ovl_En_Peehat
 -    ovl_En_Rg
 -    ovl_En_Ruppecrow
 -    ovl_En_Slime
 -    ovl_En_Sob1
 -    ovl_En_Syateki_Man
 -    ovl_En_Test7
 -    ovl_En_Trt
 -    ovl_En_Wiz_Fire
 -    ovl_Mir_Ray
 -    ovl_Obj_Bombiwa
 -    ovl_Obj_Driftice
 -    ovl_Obj_Hariko
 -    ovl_Obj_Iceblock
 -    ovl_Obj_Mure
 -    ovl_Obj_Snowball2
 -    ovl_Obj_Toudai
 -    ovl_select

Co-authored-by: MMDecomp <MMDecomp@anon.tld>
2021-02-25 19:05:33 -05:00
Kenix3 73eed5a0b3
Fixes IDO recomp and allows git to detect binary files. (#50) 2021-02-25 18:21:51 -05:00
louist103 36557611ce
Added IDO recomp support (#45)
* Added recomp

* Fix .exes not being included maybe

* Fixed now?

* OK this should add IDO

* Re recompile in -O2

* Updates asm-processor to point to current HEAD.

* Uses the exact same ido_recomp binaries as OOT.

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
2021-02-24 00:50:57 -05:00
Tharo c55e9eeee5
pragma variant for GLOBAL_ASM (#49)
* pragma GLOBAL_ASM

* Revert split_asm.py arg description change
2021-02-23 23:15:58 -05:00
fullgrowngaming 1c4a3047de
z_skelanime OK (#34)
* initial skelanime commit

* Skelanime OK

* Forgot to add z64animation.h and skelanime.c
2020-10-11 13:31:06 -04:00
Rozelette 07efebe2ff
z_actor_dlftbls.c OK. Rework a bunch of segment address organization. (#29) 2020-09-27 20:19:06 -04:00
Rozelette a672633c3b
Fix ordering of relocations in overlay (#32) 2020-09-27 20:18:45 -04:00
Rozelette dc7b8cc5b4
Add some OOT tools (#17)
* Add first_diff.py and sym_info.py

* Add c tools from OOT. Replace yaz0 tool
2020-09-17 17:11:59 -04:00
Rozelette 88e5dbbb7a
Add .data and .rodata sections to generated assembly. Add Overlay .rodata splits. (#18) 2020-09-16 20:33:34 -05:00
Rozelette ec912054da
Update tools (#16)
* Clean up .gitignore

* Set exec bit on all python and shell scripts

* Delete unused files

* Add decomp-permuter repo

* Update submodules
2020-09-13 21:09:13 -04:00
Rozelette 189d0d6c30
Bootstrap actors (#14)
* Bootstrap actors

* Address feedback. Improve header guard. Remove ovl_Player_Actor, it will need to be handled seperately.
2020-09-13 14:21:43 -04:00
Rozelette b930732494
Makefile rework. Add init and uncompressed targets. (#15)
* Makefile rework. Add init and uncompressed targets

* Update file_setup.sh for new makefile

* Change CFLAGS
2020-09-11 19:00:17 -04:00
Rozelette f4936cc471
Delete function type information (#12)
* Remove ability to generate headers when disassembling

* Remove type information from function table

Co-authored-by: Rozelette <users.noreply.github.com>
2020-08-28 20:55:33 -04:00
MMDecomp 7d61d4e6ff Decompile `game.c` 2020-06-23 10:55:11 -04:00
MMDecomp 730b1ae46b Add helper script to generate mips2c C-Context
- This script is based on it's OoT decomp variant
2020-05-04 22:51:31 +02:00
rozlette a5eed624ed Add ZAP2 module 2020-05-01 16:48:21 -05:00
rozlette 5687f3741a Fix variadic function typedef to be legal C 2020-04-28 15:11:14 -05:00
rozlette c1bb5f00d6 Decompile z_rpc.c 2020-04-22 15:38:09 -05:00
rozlette 57587fa612 Add file_setup.sh to streamline first-time setup for each file 2020-04-18 14:42:28 -05:00
rozlette b455d2993a parse_dl: Find mesh headers in object files 2020-03-02 17:43:36 -06:00
rozlette 5037e2da8d Set up diff script 2020-03-02 00:21:16 -06:00
rozlette baf0935a47 Build ROM with relocated overlays to prep for nonmatching builds. Makefile cleanup of the predmadata stage. 2020-02-27 16:22:42 -06:00
rozlette 50a7c1c48d Add ovl_Obj_Mure 2020-02-26 21:17:29 -06:00
rozlette 581a97b561 Make non-matchings consistent with oot 2020-02-20 16:29:22 -06:00
rozlette e45d0ef673 Normalize line endings 2020-02-19 11:18:03 -06:00
rozlette 2982bd5d81 Update asm-preprocessor 2020-02-17 00:52:18 -06:00
rozlette 930b8bc242 Port a bunch of libultra files from sm64 2020-01-20 23:27:02 -06:00