232 Commits

Author SHA1 Message Date
Anghelo Carvajal 4ddba04604 Generate decomp.dev progress reports (#249)
* Generate decomp.dev progress reports

- Wire up CI to generate decomp.dev progress reports (using the objdiff report format) and upload them as GHA artifacts, by using `mapfile_parser`.
- This also adds a `decomp.yaml` file, which is used by `mapfile_parser` to generate the objdiff reports.
- The `progress.py` script used to locally visualize the current progress has been updated to parse objdiff reports too.
- `mapfile_parser` 2.13.0 or above is now required.
- Delete the old `upload_frogress.py` script.

Once we have this we can create an af entry in [decomp.dev](https://decomp.dev/).
I'll talk with Encounter to migrate the old frogress progress into decomp.dev too

* Activate venv
2026-08-16 10:56:24 -07:00
Dragorn421 d7ab4030a6 [GHA] Fixup final job if condition (#250) 2026-08-16 10:53:48 -07:00
Anghelo Carvajal 25843830a9 This time for real: Change the CI system from Jenkins to Github Actions (GHA) like we did for OoT and MM (#248)
* Changes the CI system from Jenkins to Github Actions (GHA) like we did for OoT and MM (#246)

I tried to adapt the original jenkinsfile as I could.
One major difference is loosing progress reporting to frogress. frogress is currently deprecated in favor of decomp.dev, and I would like we migrate to decomp.dev somewhat soon, so this should be a big problem.

The mapfiles will be uploaded as an GHA artifact to the Action workflow.

This specific approach to handle GHA for decomp projects was adapted from the one used by the GC/Wii community. It is documented here https://github.com/encounter/dtk-template/blob/main/docs/github_actions.md There's a writeup about this adaptation for N64 projects [here](https://github.com/AngheloAlf/drmario64/pull/19).

Also relevant implementations for OoT and MM:
- https://github.com/zeldaret/oot/pull/2742
- https://github.com/zeldaret/mm/pull/1885

* Round of fixes (#247)

* Round of fixes

* Set WARNINGS_CHECK environment variable in CI

* Update .github/workflows/ci.yml

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

---------

Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>
2026-08-06 19:12:28 -07:00
Derek Hensley 61a38830b9 Spimdisasm update (#243)
* git subrepo pull tools/asm-processor

subrepo:
  subdir:   "tools/asm-processor"
  merged:   "5c3984fc"
upstream:
  origin:   "git@github.com:simonlindholm/asm-processor.git"
  branch:   "main"
  commit:   "5c3984fc"
git-subrepo:
  version:  "0.4.9"
  origin:   "git@github.com:ingydotnet/git-subrepo.git"
  commit:   "ea10886"

* Fix things needed for new spimdisasm release
2025-09-04 17:56:01 -07:00
kuchenmitsahne a4d5910cdb m_random_field OK (#241)
* 25 functions OK

* 10 functions OK

* Add block type and block kind enums/defines

* Formatting/style pass

* Move `FieldMakeBlockType` to `m_field_make`

* Remove unused/duplicate defines

* Split data out for `m_quest` and `m_random_field`; rename data symbols

* Generate `m_random_field.c` and rename function symbols.

* mRF_BlockTypeDirect2GateType, mRF_BlockTypeDirect2GateData OK

* mRF_Type2BlockInfo, mRF_Info2BlockType, mRF_GateType2GateCount, mRF_SearchPond, mRF_Attr2BeastRoadAttr, mRF_CheckBeastRoad OK

* mFI_GetUnitCol OK; mRF_PrintDebug and mRF_BlockInf2CheckBeastRoad OK (pending data import).

* Fix `m_random_field` code split; all newly included functions OK

* Fix mRF_Malloc return type; formatting pass

* Name m_random_field_ovl

* Rename data symbols (m_random_field_ovl).

* Rename symbols (all functions named)

* Import data

* Declare overlay segment; rename symbols

* mRF_MakeRandomField OK (all functions matching).

* Extract asset `data_combi_table`

* Clean up mRF_MakeRandomField; document m_field_make.h

* Rename mCoBG_unkStruct->unk6 as unitAttribute

* Misc cleanup and formatting.

* Rename additional data symbols (m_random_field_ovl).

* Formatting pass

* Improve documentation of BackgroundAttribute enum.

* Formatting pass; add omitted attribute.
2025-06-04 16:38:23 -07:00
Derek Hensley 8c6ae625ae Ultralib Update (#233)
* git subrepo pull (merge) lib/ultralib

subrepo:
  subdir:   "lib/ultralib"
  merged:   "74f0eee"
upstream:
  origin:   "git@github.com:decompals/ultralib.git"
  branch:   "main"
  commit:   "2717d45"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "cce3d93"

* New ultralib fixes

* Update some includes in tools

* git subrepo commit (merge) lib/ultralib

subrepo:
  subdir:   "lib/ultralib"
  merged:   "3a702eaf"
upstream:
  origin:   "git@github.com:decompals/ultralib.git"
  branch:   "main"
  commit:   "48f9f908"
git-subrepo:
  version:  "0.4.9"
  origin:   "git@github.com:ingydotnet/git-subrepo.git"
  commit:   "ea10886"

* Update warnings file
2025-02-21 17:03:51 -07:00
Derek Hensley f013a028f4 sFRm_flashrom OK (#240)
* YAML setup

* func_800CDF78_jp

* func_800CDEDC_jp

* func_800CDCC0_jp

* func_800CDE54_jp

* func_800CDB10_jp

* func_800CDECC_jp

* func_800CE04C_jp

* func_800CDBE0_jp

* func_800CDBF0_jp

* func_800CDC10_jp

* func_800CDC30_jp

* func_800CDDE0_jp

* func_800CE090_jp

* func_800CE0E8_jp

* func_800CE110_jp

* Cleanup
2025-01-21 09:34:12 -07:00
Derek Hensley 7c3634c2fb s_cpak OK (#239)
* YAML setup

* func_800CD640_jp

* func_800CD68C_jp

* func_800CD730_jp

* func_800CD8F8_jp

* func_800CD990_jp

* func_800CD9F0_jp

* func_800CDA4C_jp

* func_800CDA90_jp

* func_800CDAD0_jp

* func_800CD760_jp

* func_800CD82C_jp

* Cleanup
2025-01-20 11:52:28 -07:00
Derek Hensley 6baf5141be m_cpak OK (#238)
* Yaml setup

* mCPk_InitPak

* mCPk_get_pkinfo

* mCPk_PakOpen

* func_80079080_jp

* mCPk_SavePak

* func_8007919C_jp

* func_80079378_jp

* func_8007920C_jp

* func_80078EE0_jp

* func_80078EB4_jp

* func_8007942C_jp

* func_800792FC_jp

* func_800793A8_jp

* func_80079D00_jp

* func_80079BF8_jp

* func_80079B28_jp

* func_80079EA4_jp

* func_800794E4_jp

* func_80078F08_jp

* func_80079030_jp

* func_80078FE8_jp

* func_8007967C_jp

* func_80079708_jp

* func_80079760_jp

* func_80079838_jp

* func_800798DC_jp

* func_80079A24_jp

* func_80079AAC_jp

* func_80079E54_jp

* func_80079D50_jp

* func_80079E14_jp

* func_80079EDC_jp

* func_8007A008_jp

* func_80079F44_jp

* func_8007A080_jp

* func_80078F34_jp

* Some cleanup

* m_cpak
2025-01-19 09:05:03 -07:00
Derek Hensley a9e52e5a55 Cfbinfo (#237)
* func_800D2CDC_jp

* func_800D2CB4_jp

* func_800D2C10_jp

* cleanup

* Small docs of CfbInfo struct
2025-01-03 17:51:33 -07:00
Derek Hensley f319c81250 Graph OK (#236)
* graph_proc

* game_get_next_game_dlftbl

* graph_ct

* func_800D38E0_jp

* func_800D3C94_jp

* graph_dt

* graph_main

* graph_setup_double_buffer

* graph_task_set00 WIP

* graph_draw_finish

* func_800D3E40_jp

* func_800D3E14_jp

* Some cleanup

* Fix m2ctx.py

* graph_task_set00
2025-01-03 13:05:50 -07:00
Derek Hensley cb54eb49e4 6FD190 + 6FD410 OK (#235)
* func_800D94F0_jp

* func_800D9514_jp

* func_800D9524_jp

* func_800D955C_jp

* func_800D9618_jp

* func_800D96A8_jp

* func_800D96E8_jp

* func_800D9700_jp

* func_800D9750_jp

* func_800D9760_jp

* func_800D9770_jp

* func_800D9788_jp

* func_800D97A0_jp

* func_800D97F8_jp

* func_800D986C_jp

* Split off 6FD410 based on bss

* Migrate bss

* add todo

* headers

* Better types for 6FD410 bss based on graph

* Cleanup
2024-12-28 08:59:22 -07:00
Derek Hensley 7ba4585497 Move D_8003C568_jp from system_heap (#231) 2024-12-26 08:33:00 -07:00
Derek Hensley b73a19dd98 Identify audio_data data (#232) 2024-12-26 08:19:10 -07:00
Derek Hensley bececbff99 main OK (#234)
* main OK

* gSegments -> SegmentBaseAddress

* newline

* format
2024-12-26 08:14:55 -07:00
kuchenmitsahne 60579a4260 m_field_info 37 additional functions OK (40/188 total) (#230)
* 25 functions OK

* 10 functions OK

* Add block type and block kind enums/defines

* Formatting/style pass

* Move `FieldMakeBlockType` to `m_field_make`

* Remove unused/duplicate defines
2024-12-13 09:54:39 -07:00
Leonid Kapitonov 8e54519977 ac_house_goki OK (#229)
* prepare unknown size

* move `.data` to the C side

* remove redundant headers

* aHG_actor_ct OK

* func_80A83770_jp OK (rename to `aHG_actor_dt`)

* aHG_actor_move OK

- fix `mCoBG_CheckResult` description and comments
- extend `MyRoomClip` and fix offsets in comments

* func_80A83780_jp OK

* func_80A83930_jp OK

* func_80A83994_jp OK

* func_80A83A00_jp OK

* func_80A8401C_jp OK

* func_80A8409C_jp OK (rename to `aHG_setup_action`)

* aHG_actor_draw OK

* func_80A83D4C_jp OK

* func_80A83A24_jp OK

* name HG models

* put static HG data into the functions

* func_80A837C4_jp OK

* add notes and clean up a bit

* apply a suggestion by @hensldm

* remove ASM pragmas

* extract assets
2024-12-07 12:27:42 -07:00
kuchenmitsahne 7c055329a7 ac_hanami_npc1 OK (#228)
* Rename symbols

* First pass on struct Hanami_Npc1

* Actor funcs (ct, save, dt, init, draw) OK

* Add trailing member to struct_809AEFA4

* Update Clip_unk_040_unk_E4 typedef to ActorFunc signature in order to unify *_actor_draw signatures

* All talk functions and proc functions (minus aHM1_think_main_proc.s) OK

* mFI_GetPuleIdx (func_8008930C_jp) OK; rename symbols (m_field_info)

* aHM1_set_animation OK

* aHM1_actor_move OK; update *_actor_move function signature to ActorFunc across project

* aHM1_set_request_act, aHM1_check_moveRange OK

* aHM1_check_inBlock OK; fix style in aHM1_check_moveRange

* aHM1_turn, aHM1_walk, aHM1_set_spd_info OK

* aHM1_think_init_proc OK

* aHM1_revise_moveRange OK with fake (all functions matching)

* Remove extraneous prototypes

* Fix aHM1_think_main_proc signature

* Import data

* Fix aHM1_revise_moveRange signature

* Standardize actor accesses

* Improve define usage

* Name blockX and blockZ members in Actor struct

* Remove extraneous comments

* mFI_BkNum2WposXZ OK (m_field_info)

* Add defines to m_field_info

* Formatting pass

* Remove extraneous comments

* Fix unk_18 type in struct_809AEFA4

---------

Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>
2024-11-27 11:46:58 -07:00
kuchenmitsahne d38ac6a9d3 ac_hanami_npc0 OK (#227)
* Standard actor functions and aHM0_ct_data functions OK

* Add scaffolding to Hanami_Npc0 struct

* func_809DE830_jp OK

* func_809DE434, func_809DE4A0_jp, func_809DE5BC_jp, func_809DE6B4_jp, func_809DE6C8_jp, func_809DE6EC_jp OK

* func_809DE538_jp OK with warnings

* func_809DE538_jp OK

* func_809DE714_jp OK with warnings

* func_809DE7D0_jp OK

* func_809DE8D0 OK

* func_809DE56C_jp OK with warnings

* func_809DE800_jp OK

* func_809DE978_jp OK

* func_809DE948_jp OK

* func_809DE744_jp OK

* func_809DE5DC_jp progress (nonmatching)

* Remove fake symbol D_809DEB1C_jp.

* Prepare for data import

* func_809DE5DC_jp OK, update func_809DE6EC_jp (all functions matching)

* Import data (44 differing words)

* Fix struct_809AEFA4, ac_hanami_npc0 OK

* Rename symbols + initial style pass

* Unify aHM0_*_proc function signatures

* Resolve warnings in aHM0_merry

* Update NPC actor functions + corresponding clip functions to use ActorFunc signature

* Fix aHM0_make_tumbler warning (none remain); minor cleanup

* Avoid format.py strangeness

* Fix typedef order
2024-11-26 08:37:21 -07:00
Leonid Kapitonov 0bab7e592c ac_radio OK (#226)
* prepare unknown size

* move `.data` to the C side

* aRAD_actor_ct OK

* func_80A76B2C_jp OK

* func_80A769E4_jp OK

* aRAD_actor_init OK

* func_80A76958_jp OK (rename to `aRAD_actor_dt`)

* func_80A76A30_jp OK

* func_80A76B4C_jp OK

* aRAD_actor_draw OK

* remove asm pragmas

* document `ac_radio` actions

* rename `func_80A769E4_jp` in accord with aKAG's

* rename `func_80A76B4C_jp` -> `aRAD_actor_move`

* use `StructureActor` as others do

* apply review suggestions

* seems to match too
2024-11-22 07:30:14 -07:00
kuchenmitsahne 9576a6909f ac_goza OK (#225)
* aGOZ_actor_move OK

* aGOZ_actor_init OK

* Make style more consistent (aGOZ_actor_init).

* aGOZ_actor_dt, aGOZ_wait OK

* aGOZ_setup_action OK (with temporary extern)

* aGOZ_actor_ct OK

* aGOZ_actor_draw OK (unused-parameter warning introduced)

* Replace magic numbers with macros, rename symbols.

* aGOZ_set_bgOffset OK (all functions matching).

* ac_goza OK (data import complete).

* Replace hex with decimal where appropriate

* Finish renaming symbols

* Style/formatting tweaks

* Remove extraneous whitespace

* Fix warning

* Fix warning properly
2024-11-03 09:12:54 -07:00
Prakxo 943287ddfa m_fbdemo* OK (#223)
* m_fbdemo OK

* m_fbdemo_wipe1 OK

* fix play

* m_fbdemo_triforce OK

* link triforce

* m_fbdemo_fade OK

* typo

* newline

* format
2024-10-21 07:57:26 -07:00
Prakxo 78d0c294c5 m_bgm OK (#222)
* m_demo OK

* camera fix

* m_bgm OK
2024-10-13 08:36:51 -07:00
Prakxo 60cc4c9e23 m_demo OK (#221)
* m_demo OK

* camera fix
2024-10-10 08:18:22 -07:00
Prakxo c7a6aa2b88 ac_arrange_room OK (#220)
* ac_arrange_room OK

* fix?
2024-10-09 08:46:35 -07:00
Prakxo 8639fa43c7 ac_boxTrick01 OK (#219) 2024-10-01 08:09:20 -07:00
Prakxo 8f359e10f0 m_player audio and other_func functions (#218)
* m_player_sound

* m_player_other_func

* format
2024-09-27 10:26:30 -07:00
emilybrooks 5db5ae7201 sum_blue_bureau01 OK (#216)
* initial commit

* imported data

* matching

* renamed functions

* extracted assets

* review
2024-09-26 07:45:16 -07:00
Prakxo bd553a1ca8 m_player controller functions (#217)
* player work1

* m_player_controller

* format
2024-09-26 07:39:38 -07:00
emilybrooks 5fb92a5079 properly handle swapped textures (#215)
* set up extension

* extension works

* make file stuff

* everything works!

* renamed script
2024-09-25 11:50:06 -07:00
Prakxo 35eba20abd ef_room_sunshine OK (#214)
* ef_room_sunshine OK

* format

* jenkins

* fourth time's the charm
2024-09-24 12:05:32 -07:00
emilybrooks 946ee8e9c2 clchest03 matched and hal_chest02 cleanup (#213)
* initial commit

* func_80A70C60_jp

* func_80A70CF4_jp

* fully matching

* inported data

* improved furniture actor profile struct

* extracted spooky wardrobe object

* extracted clchest03 object

* forgot
2024-09-21 13:03:08 -07:00
Prakxo 2c7d61be83 m_land OK (#212) 2024-09-21 09:17:13 -07:00
Prakxo a12931233d fix mFI_Wpos2BlockNum calls (#211) 2024-09-17 10:10:45 -07:00
emilybrooks 78f3971623 update discord links (#209) 2024-08-17 19:09:55 -07:00
Prakxo 0f475e88a8 Extend usage of mTM_TIME_TO_SEC (#208) 2024-08-13 14:34:26 -07:00
Prakxo eb99af89c8 m_kankyo OK (#207)
* implement kankyo

* m_kankyo OK
2024-08-12 10:36:07 -07:00
Prakxo c3164cd99c ac_mikuji OK (#206)
* ac_mikuji OK

* jenkins
2024-07-29 09:30:20 -07:00
Prakxo c7d98021c3 m_prenmi OK (#205) 2024-07-28 07:28:07 -07:00
Prakxo ed51325ede player_select OK (#204) 2024-07-27 07:58:33 -07:00
Prakxo 85a19d3fb6 m_mail_check OK (#203)
* m_mail_check OK

* comments
2024-07-22 08:22:21 -07:00
Prakxo 9cb07c495c version OK (#202) 2024-07-20 14:29:48 -07:00
Derek Hensley 1b6c90ae6b Bootclear cleanup (#201)
* bootclear is the start of the boot segment

* Use the end of boot

* stack top in main thread creation
2024-07-19 16:50:02 -07:00
Derek Hensley fbc4e813e5 Move copied libultra archive to the libultra build folder (#199)
* Combine makefile defines to avoid duplication

* Move libultra archive in build to the libultra folder
2024-07-19 11:40:29 -07:00
Prakxo aeb01dcb95 m_roll_lib OK (#198) 2024-07-13 06:50:22 -07:00
Prakxo 0e66d077f8 lbrtc OK (#196)
* lbrtc OK

* format

* names

* format 2

* review + docs

* format
2024-07-01 08:02:29 -07:00
emilybrooks 235b6575c2 extracted yubinkyoku and locerrmsg (#195)
* s post office

* winter post office

* extracted locerrmsg

* added comments
2024-06-15 12:56:42 -07:00
emilybrooks 167abace84 update progress tracking (#194)
* ignore hasm files

* add assets to progress.py

* add assets to frogress script
2024-06-11 19:48:56 -07:00
Prakxo 69201d6d72 m_room_type OK (#193)
* m_room_type OK

* offsets

* jenkins
2024-06-02 07:41:49 -07:00
Anghelo Carvajal fd05811213 m_trademark OK (#192)
* C file

* trademark_init

* trademark_cancel, trademark_move, trademark_main

* trademark_draw

* trademark_goto_demo_scene and func_80805360_jp

* set_npc_4_title_demo

* func_80804C40_jp

* trademark_cleanup

* func_808052B8_jp

* func_80805104_jp

* func_80804F78_jp

* func_80804EE0_jp

* fix warnings

* small cleanup

* fix build

* some fixes

* stuff

* some cleanups

* Fix rebase

* Import data

* Migrate bss

* cleanup

* Save substruct

* format

* TrademarkState and some other stuff

* remove fake match

* stuff I missed

* whoops

* Stupid `-Wtype-limits`

* Update src/overlays/gamestates/ovl_trademark/m_trademark.c

Co-authored-by: Prakxo <87568477+Prakxo@users.noreply.github.com>

* Review

* Update src/overlays/gamestates/ovl_trademark/m_trademark.c

Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>

* Update src/overlays/gamestates/ovl_trademark/m_trademark.c

Co-authored-by: Prakxo <87568477+Prakxo@users.noreply.github.com>

* clang-tidy changes???

* review

---------

Co-authored-by: Prakxo <87568477+Prakxo@users.noreply.github.com>
Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>
2024-05-30 14:00:57 -07:00