Commit Graph

74 Commits

Author SHA1 Message Date
Anghelo Carvajal 5fa3049236
Remove header dependencies checks (#215)
* Remove header dependencies checks

* I think this fixes it
2021-07-19 20:27:49 -04:00
EllipticEllipsis 0e51bf35a1
EnFirefly OK and mostly documented (#194)
* Data imported, 8/30 functions done

* OK

* Delete ASM references, add SFX

* Named functions

* more naming

* Type the nop ActorFunc correctly

* A couple more bits of documentation

* Sorted object_script

* Merge remote-tracking branch 'upstream/master' into Firefly

* format

* Update other includes

* Review suggestions

* Review changes; named Actor_Noop

* Format
2021-07-05 17:47:55 -04:00
Anghelo Carvajal b6904aa2cc
Convert every submodule into subrepo (#170)
* remove ZAPD submodule

* git subrepo clone https://github.com/zeldaret/ZAPD.git tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "ca229f19"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "ca229f19"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* git subrepo clone https://github.com/simonlindholm/decomp-permuter.git tools/decomp-permuter

subrepo:
  subdir:   "tools/decomp-permuter"
  merged:   "1e4b85a7"
upstream:
  origin:   "https://github.com/simonlindholm/decomp-permuter.git"
  branch:   "main"
  commit:   "1e4b85a7"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Remove asm-differ

* git subrepo clone https://github.com/simonlindholm/asm-differ.git tools/asm-differ

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "eaf72269"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "master"
  commit:   "eaf72269"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* remove asm-processor

* git subrepo clone https://github.com/simonlindholm/asm-processor.git tools/asm-processor

subrepo:
  subdir:   "tools/asm-processor"
  merged:   "85288fcd"
upstream:
  origin:   "https://github.com/simonlindholm/asm-processor.git"
  branch:   "master"
  commit:   "85288fcd"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* remove .gitmodules file

* Update REAMDE

* Update warnings
2021-06-07 18:31:56 -04:00
Anghelo Carvajal 062a813fba
Misc fixes (#159)
* Fix `extract_assets` not properly checking if scenes files were updated

* fix `first_diff.py` path due to the baserom renaming

* FlexSkeletonHeader and other stuff

* fix some SkeletonHeader instead of FlexSkeletonHeader

* Add blob compilation to makefile

* CURRENT_DAY and type swaps

* Remove extra cast

* run format

* zbanks suggestions
2021-05-20 18:52:07 -04:00
Anghelo Carvajal 25afa196f6
Make Jenkins check if a PR will add new warnings (#150)
* warning count

* update warnings

* Update warnings

* Use `tee`

* Suggestions of zbanks

* I hope this will fix it
2021-05-19 22:14:20 -04:00
Zach Banks dea3c8fd79
Fix all warnings raised by IDO (#152)
* Fix all warnings raised by IDO, ignore trailing commas

* Set -woff=624,...; keep const in printf functions

* Remove redefined macros in irqmgr.c

* Remove DECR macro & reformat

* Address PR comments from AngheloAlf
2021-05-18 22:28:04 -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
Anghelo Carvajal 0e3e008da4
Hotfix: Fix running `make init` without `-jN` (#139)
* `assembly` target

* update phony

* temporary cp

* add todo

* use @hensldm suggestion
2021-05-18 19:20:31 -04:00
Parker Burnett 490924df23
QOL addtions to the readme (#104)
* adding changes to the README

* adding in progress shield

adding in the shield icon to show percentage complete

* updating the files, added gitignore for ctx.c

* fixing the typos

* fixing things to hopefully build now
2021-05-18 18:39:08 -04:00
Anghelo Carvajal 86bdadf4da
Extract assets in `make setup`, don't extract them to `assets/src/` and build them in `make` (#132)
* extract assets in setup and build them in make

* Add assetclean
2021-05-13 21:00:38 -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
Rozelette 75f1d51940
Optimization when building all to let compression happen as early as possible (#98) 2021-04-07 18:38:23 -04: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 6536afc6d3
Restructure how buffers are set up (#77) 2021-03-27 12:44:39 -05:00
Kenix3 22cb3c4b27
Fixes -include in makefile. (#74) 2021-03-16 22:48:54 -05:00
Kenix3 a53626049f
Decompiles z_vr_box (from zel) (#73) 2021-03-16 21:27:14 -04:00
Rozelette 3a91922e89
Generate dependencies for C files with GLOBAL_ASM (#70) 2021-03-14 22:12:14 -04:00
Kenix3 8468e83786 Updates file_setup.sh script to split based on the asm files being in different sub directories 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
Kenix3 7ef48e193b
Make defaults to uncompressed (#52)
* 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:

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

* Make now defaults to only build the uncompressed rom. This fixes permuter import errors, and makes building quicker since most of the time people only need to test one rom. Uncompressed was chosen because it's easier to debug with the first_diff script.

Co-authored-by: MMDecomp <MMDecomp@anon.tld>
2021-02-25 19:12:48 -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
Rozelette 31a5f1e4ba Use MAKE in Makefile 2020-09-28 17:42:16 -05:00
Rozelette 10f9460b3b
Fix several issues with the makefile (#30)
* Fix several issues with the makefile

* Make ROM_NAME conditionally set to allow custom names
2020-09-23 19:47:05 -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 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 b4b8044d38
Make the disasm target when appropiate instead of needing to do it manually (#10) 2020-08-28 20:55:08 -04:00
Kenix 6046720adc Allows make process to identify bin utils prefix (from OOT makefile) 2020-05-12 17:08:58 -04:00
MMDecomp 8e8d99e6fd Improve Drag & Drop support for IDO Tools
- Add optional default for QEMU_IRIX to Makefile
- Add tools/qemu-mips to .gitignore
-  `make clean` should not fail if rom.z64 doesnt exist
2020-05-04 22:51:31 +02:00
rozlette df921ce024 Automatically find and create src directories when building 2020-05-01 16:49:27 -05:00
rozlette 5037e2da8d Set up diff script 2020-03-02 00:21:16 -06:00
rozlette 74c1dc2145 Decompile code_0x800CAE10.c 2020-03-01 16:49:45 -06:00
rozlette 759fef3928 Some loadfragment2.c progress 2020-03-01 14:57:16 -06:00
rozlette 2ee01ad0b7 Avoid changing the last modified date on the built elf files during later parts of the build process 2020-02-27 16:58:39 -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 581a97b561 Make non-matchings consistent with oot 2020-02-20 16:29:22 -06:00
rozlette c7a60e9fd5 Rename table files to *.txt so as to not confuse github language statistics 2020-02-19 14:08:04 -06:00
rozlette 0c2cca4801 Don't generate headers from disassembling. This hasn't been relevant for awhile. 2020-02-19 11:19:30 -06:00
rozlette 1b4bc7910d Fix various errors in README 2020-01-25 00:22:56 -06:00
rozlette 36f1c42bf9 Modernize z_std_dma.c, and match a few more functions 2020-01-21 01:45:43 -06:00
rozlette 930b8bc242 Port a bunch of libultra files from sm64 2020-01-20 23:27:02 -06:00
rozlette 7f4a682072 Port perspective.c from sm64 2020-01-17 01:04:40 -06:00
rozlette e74e227113 Decomp idle.c 2020-01-16 21:35:54 -06:00
rozlette 30daa16255 Port stackcheck.c from oot decomp 2020-01-12 20:18:31 -06:00
rozlette 36f623023d Port over fault.c from oot decomp 2020-01-12 16:52:32 -06:00
rozlette 7692d06fcd Decompile Bg_Ikana_Ray 2019-12-28 02:23:17 -06:00
rozlette 37969fbe50 Decompile Bg_Fu_Kaiten. Add some method to generate overlays, refinement needed 2019-12-27 20:55:40 -06:00
rozlette 890a8acba4 Generate limker map 2019-12-20 01:50:43 -06:00