Commit Graph

163 Commits

Author SHA1 Message Date
Maide
829d1d4c2a
En_Po_Sisters (#345)
* En_Po_Sisters

* Tharo magic

* Rebase

* PR

* Fix make and actorfixer

* Format
2021-10-31 16:07:08 -03:00
Tom Overton
d4effceefd
En_Elforg (Stray Fairy) OK and mostly documented (#359)
* Migrate data to C

* EnElforg_Init OK

* func_80ACC470 OK

* EnElforg_Destroy OK

* EnElforg_Update OK

* func_80ACCBD0 OK

* func_80ACCBB8 OK

* func_80ACD6EC OK

* func_80ACD59C OK

* func_80ACD6A8 OK

* func_80ACD610 OK

* func_80ACD878 OK

* Declare animated materials for Elforg

* EnElforg_Draw OK

* func_80ACCC98 OK

* func_80ACC7E4 OK

* func_80ACC8D4 OK

* func_80ACCEB0 OK

* func_80ACC994 OK

* PLAYER -> GET_PLAYER

* func_80ACCE4C OK

* func_80ACC934 OK

* func_80ACCAC0 OK

* func_80ACD2E4 OK

* func_80ACD1F0 OK

* func_80ACD164 OK

* func_80ACD1B0 OK (maybe fakematch but oh well)

* func_80ACD088 OK

* Better match for func_80ACD1B0

* Use compiled reloc

* Move static data to appropriate function

* Name sCylinderInit appropriately

* Add explanatory comment

* Clean up forward declarations

* Add macro for the flag

* Macro and enum for type

* Add STRAY_FAIRY_GET_PARAM_1C0 macro (no clue what this does)

* Document the area stuff

* Name some functions

* Document timer and direction

* Eliminate some early returns

* Tons more documentation

* Name remaining functions

* Document flags

* Name targetDistanceFromHome

* fairyFountainTimer -> secondaryTimer, since it's used outside of Fairy Fountains

* Name the unknown flag

* Name the collider fairy type

* Last bit of renaming/documenting

* Remove zero check

* Use hex constant for newAngle

* Merge animation updates

* Use 0x10000 instead of 65536.0f

* Use decimal for alpha

* Move yDifference initialization up to the same line as declaration

* Use +=/-=

* <= 30 instead of < 31

* += -1 -> --

* >= 81 -> > 80

* 0xDFFFFFFF -> ~0x20000000

* EnElforg_InitializeSpeedAndRotation -> EnElforg_InitializeParams
2021-10-31 13:25:10 -03:00
Tharo
b1b114e142
Decompile graph.c (#274)
* Decompiled, 1 non-matching, add some bss reordering helpers

* Document stuff

* Review suggestions

* graphutil.c -> graphalloc.c

* Try to fix fault callback warnings

* Remove extra comments in GfxMasterList

* char pad -> u32 pad

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Fix gameState

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Other suggestions

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
2021-10-29 15:30:48 -03:00
Anghelo Carvajal
38fc110f99
actorfixer.py hotfix (#374)
* actorfixer.py hotfix

* add missing stuff

* add zeldaarena

* add skelAnime fields

* add comment
2021-10-28 22:38:46 -04:00
Maide
de3fc29d51
En_Ot ~~(1 non-matching)~~ (#302)
* En_Ot

* Fix
2021-10-27 11:59:21 -03:00
Maide
c97a8e5225
En_Tite (#318)
* En_Tite

* Fix
2021-10-27 11:02:26 -03:00
Maide
a60c47a970
En_Fish2 (#292)
* En_Fish2

* Fix
2021-10-27 10:28:52 -03:00
Tom Overton
bfd1ab28a6
En_Giant OK and mostly documented (#346)
* Migrate data to C

* EnGiant_Destroy OK

* EnGiant_Init OK

* func_80B01A74 OK

* Comment what each of the quest items are

* Put a little comment for myself on func_80B01A74 because it was confusing me lol

* Very early names (they're all bad)

* func_80B01990 OK

* EnGiant_Update OK

* func_80B024AC OK

* func_80B023D0 OK

* func_80B024D8 OK

* func_80B02354 OK (this function is bad!)

* func_80B020A0 OK

* func_80B01EE8 OK

* func_80B01E84 OK

* func_80B0211C OK

* func_80B02234 OK

* unk_250 -> sfxId and label SFX

* func_80B02688 OK

* func_80B026C4 OK

* EnGiant_Draw OK

* Update spec

* Fix up the static data

* unk_24E -> alpha

* Document some of the animation stuff

* Name EnGiant_IsNotFreed

* Document the giant types better

* Minor cleanup

* Add explanatory comment

* Rename the functions in functions.txt too, whoops

* Document sFaceTextures and blink routine

* Document all the various animations

* Name EnGiant_PlaySound

* Document some functions and change an unknown to action

* Add an SFX id I missed

* Name all the action funcs

* Name last two functions

* Mark one case as unused

* Change func_800F5A8C to use arg0, arg1, arg2, etc.

* Move sFaceTextures to EnGiant_Draw and comment what they are

* EnGiant_IsNotFreed -> EnGiant_IsImprisoned

* Use booleans in EnGiant_IsImprisoned

* **/ -> */

* action -> csAction

* Make macros for all type conditional checks

* Add warning about inconsistency

* Document the cs actions

* Add some documentation to animation-changing functions

* Update the function name in functions.txt too

* Improve GIANT_TYPE macros

* Remove an unncessary early return

* Incorporate animation changes
2021-10-25 09:22:17 -03:00
rylieb
57a9fb7b34
Hopefully prevent misformatted files from ever entering master again. (#356)
* Added tools/check_format.sh.

* Exit nonzero from format.sh if clang-format-11 not installed.

* Replace which with command -v.

* Fail check_format.sh if format.sh fails.

* Improve Jenkinsfile.

* Take exit 0 out of else in check_format.sh.

* Format flg_set.c to test new Jenkins environment.

* Fix formatter failed logic in check_format.sh.

* Format all misformatted files in master.

* Remove Summarize Problems stage from Jenkins.
I didn't realize Jenkins would not a run a subsequent stage if a
previous stage errored. This defeats the purpose of summarizing all
problems at the end, since this will only happen if there *are* no
problems.

* Use Post->Failure block to print all logs instead.

* Remove spurious semicolon in arms_hook.
2021-10-24 13:06:46 -04:00
Tharo
ef53ba8261
z_game_over.c (#263)
* game over

* Fixes

* Revert save field rename

* Fix comment indent

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

* Add bss reordering stuff, fix bss reordering in z_scene_proc

* Enum uggestions, fix item id

* link -> player in enum comments

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
2021-10-24 13:41:50 -03:00
Anghelo Carvajal
b2747aa8b4
Subrepos updates (#360)
* git subrepo pull tools/asm-differ --force

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "d218cdf0"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "d218cdf0"
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:   "f5fe93d7"
upstream:
  origin:   "https://github.com/AngheloAlf/graphovl.git"
  branch:   "master"
  commit:   "f5fe93d7"
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:   "e7a8a48c"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "e7a8a48c"
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:   "d14ea084"
upstream:
  origin:   "https://github.com/AngheloAlf/graphovl.git"
  branch:   "master"
  commit:   "d14ea084"
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:   "e243634e"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "e243634e"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/decomp-permuter --force

subrepo:
  subdir:   "tools/decomp-permuter"
  merged:   "d1294dfa0"
upstream:
  origin:   "https://github.com/simonlindholm/decomp-permuter.git"
  branch:   "main"
  commit:   "d1294dfa0"
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:   "f5fe93d75"
upstream:
  origin:   "https://github.com/AngheloAlf/graphovl.git"
  branch:   "master"
  commit:   "f5fe93d75"
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:   "d0cd6b397"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "d0cd6b397"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* add ExternalXMLFolder config

* git subrepo pull --force tools/decomp-permuter

subrepo:
  subdir:   "tools/decomp-permuter"
  merged:   "a20bac942"
upstream:
  origin:   "https://github.com/simonlindholm/decomp-permuter.git"
  branch:   "main"
  commit:   "a20bac942"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "4f7b8393e"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "4f7b8393e"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/asm-differ

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "f30d43ace"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "f30d43ace"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* Remove Segment="128"
2021-10-24 13:04:36 -03:00
Lucas Shaw
dcf44596d2
Animation system updated, some more boot files decompiled (+6%), z_fcurve_data_skelanime decompiled (1 non-matching), some asm files split, etc (#89)
* 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

* remove old effects enum

* gamealloc.c OK

* added more files

* motor.c almost done

* motor.c OK

* updates

* migration of two files

* listalloc.c oK

* z_fcurve_data_skelanime split

* z_fcurve_data_skelanime.c decompiled

* more files split

* z_malloc.c OK

* contpfs.c OK

* fault.c rodata migrated

* migrated fault_drawer rodata

* update

* update preprocess.py

* renamed functions in z_skelanime

* started z_skelanime cleanup

* like halfway through fixing z_skelanime

* animation system updated to meet oot standards

* remove unused animation structs

* rename matrix structs to fit oot

* Add -woff 712

* fix diff_settings.py because i accidentally broke it before

* fixed merge conflict, doesn't match though

* It matches now

* Updates

* Fixed warnings...added gcc code syntax checking

* Remove gcc check, added in Tharo's PR

* warnings fixed (i think)

* fixed all warnings i think

* ok

* not sure what to do

* Fix all warnings i think (z_en_a_keep needs some file cleanup thouguh)

* it matches if i do this

* remove comment

* accidentally put osPfsFreeBlocks in epilinkhandle.c

* memcmp -> bcmp

* change u32 size to size_t size, delete string.h because it caused unnecessary confusion with defining size_t twice

* format.sh

* MTXMODE_NEW and MTXMODE_APPLY to matrix functions

* Made suggested changes

* pragma sFaultDrawerFont instead of including in repo

* add some functions to functions.h

* Bss reordering fixed in z_collision_check...added hack to disasm.py

* Updated z_en_a_keep.c

* Missed suggestion in EnAObj_Destroy

* .

* update z_fcurve_Data_skelanime and z_skelanime with suggestions

* devmgr.c ok

* minor changes

* Addressed comments

* remove redundant file

* gfxp -> dlist in game.c

* updated actorfixer.py

* fixed warnings in z_malloc

* Change void* back to Actor*

* format

* Add the soft_sprit comments back

* Rename SV->Flex

* remove .common

* run format

* Update src/code/z_skelanime.c

* u32 channel

Co-authored-by: Lucas Shaw <lucas.shaw1123@gmail.com>
Co-authored-by: angie <angheloalf95@gmail.com>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
2021-10-24 10:59:14 -04:00
EllipticEllipsis
151e098e48
z_debug OK (#330)
* z_debug OK

* Rename function

* Remove duplicate struct

* Update z64.h
2021-10-14 12:25:14 -03:00
Maide
94e6ebaec9
En_Fu (#343)
* En_Fu

* Fix non-matching, thanks Anon58
2021-10-11 16:48:03 -03:00
EllipticEllipsis
565b1f7579
flg_set.c OK and documented (#335)
* Draw OK, Update very much not

* Flag table imported

* Update OK

* Actually OK this time

* Begin documenting

* Rename some stuff

* Rename functions

* spec

* Review

* Format

* Anghelo's review

* Fix lifemeter bss

* Format

* Missed one

* idle.c bss
2021-10-11 15:28:16 -03:00
Maide
a2666a6ee0
En_Sw (6 non-matching) (#295)
* En_Sw

* spec

* Sw

* Fix
2021-10-11 13:41:02 -04:00
EllipticEllipsis
28523e2980
Script to check global bss ordering (#339)
* Script to check global bss ordering

* Bit of cleanup

* Format

* Extremely important capilatisation correction

* Review
2021-10-11 13:11:11 -04:00
Maide
1774416598
En_Poh (#291)
* En_Poh

* PR

* PR

* Fix wrong float
2021-10-11 10:21:17 -03:00
Maide
f059baa87f
En_Owl (#271)
* En_Owl

* a

* PR

* a

* Rebase
2021-10-10 21:36:24 -04:00
Tom Overton
fbd1a79942
Arrow_Ice OK (#314)
* Migrate data and ArrowIce_Init OK

* ArrowIce_Destroy OK (also define func_80115D5C in functions.h, maybe a bad thing???)

* ArrowIce_SetupAction OK

* func_809224DC OK

* ArrowIce_Update OK

* func_809227F4 OK (but with hacky float constant)

* func_809225D0 OK and use float constant in func_809227F4

* func_80922628 OK

* ArrowIce_Draw OK

* Migrate D_80924200.s to C

* Apply better names in ice_gfx, and document Draw slightly

* Name struct vars to match OoT

* Update function names to match OoT

* Explain that arrow's timer and hitFlags came from OoT

* Update spec + "migrate" bss to C

* Do a hex -> decimal conversion I missed

* Remove blank line in-between headers

* Remove extraneous forward declare

* Move initialization of arrow up one line

* Remove parentheses

* Use else if

* Use decrement operation

* Use decimal for an alpha calculation

* Switch func_80115D5C to take GameState*

* Put pad on the top of Draw

* Move initialization of arrow up (again)

* Early return from Update if we're killed

* Extract assets instead of putting them in the repo

* Add explanatory comment to top of file

* += 1 -> ++

* Use VEC3F_LERPIMPDST macro

* Force a jenkins rerun by adding a space

* Remove the space from the last commit

* Move literal to the back of the conditional

* Respond to review feedback

* Add ArrowIce_LerpFiredPosition to functions.txt
2021-09-30 10:34:45 -03:00
EllipticEllipsis
bd9e21b165
z_nmi_buff OK, code_8010C1B0 split and OK (#334)
* nmi_buff OK, code_8010C1B0 split and OK

* COLD_RESET

* spec

* Fix lifemeter bss

* Rename variable
2021-09-29 22:13:31 -04:00
EllipticEllipsis
f80b08450f
ShrinkWindow OK (#303)
* OK, small amount of documentation, import bss

* Remove comments

* Actually commit functions.txt

* Add renames to actorfixer.py, review
2021-09-29 21:55:41 -04:00
EllipticEllipsis
ef875bc221
Improve check new warnings (#308)
* Change check_new_warnings to output stderr to console too

* Colour warnings and functions in check_new_warnings

* Remove unneeded prototype in EnDai

* Add multithreading options, colour to output, help

* Give Jenkins a script again

* Test

* Remove tput warnings, hopefully

* Try -T dumb

* Undo test warning
2021-09-29 18:42:24 -04:00
Anghelo Carvajal
96cd49b6d5
ovl_En_Test4 with 1 non-matching (#319)
* Decompile update and stuff

* Decompile some more

* func_80A41FA4 non_matching

* init is a disaster

* Import bss

* match func_80A41D70

* Improve func_80A42AB8 a bit

* equivalent EnTest4_Init

* Import data

* CLOCK_TIME

* Run formatter

* func_80A42AB8 may be equivalent now, not completely sure

* match func_80A42AB8

* Some minor renames

* Name some struct members

* Format

* format in bigpo

* fix merge issue

* Apply suggestions from code review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Description: Day transition effects

* Un-rename unk_144

* Update include/macros.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* sIsLoaded

* Update src/overlays/actors/ovl_En_Test4/z_en_test4.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* review

* format

* daytemp

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
2021-09-29 00:08:54 -03:00
Anghelo Carvajal
2f000058f5
ovl_select: ZELDA MAP SELECT matched and documented (#310)
* basic functions

* errr

* Progress, kinda

* func_808016E8

* func_808019FC and func_80801A64

* Import data

* Format

* some progress

* func_808013B8

* func_80801620

* fix stuff

* func_80800930

* improve func_80800A44 a bit

* At least it is equivalent now

* matches!

* small renames

* Use generated reloc

* move functions

* Renaming a lot of stuff

* Some functions renames

* Rename members

* Add translations for everything

* Run formatter

* Update include/alloca.h

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* review changes

* review comments

* Update src/overlays/gamestates/ovl_select/z_select.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/gamestates/ovl_select/z_select.h

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
2021-09-28 22:23:08 -04:00
Connor Anderson
1713e8a97d
ovl_En_Ending_Hero6 OK (#333)
* All functions in z_en_ending_hero6.c matching

* Add data to z_en_ending_hero6.c

* Remove duplicate declarations

* Add symbols to undefined_syms.txt

* Address initial PR comments

* Add heading, rename variables, and remove U suffix

* Further variable renamings according to PR suggestions
2021-09-28 20:50:04 -04:00
Maide
9478fc760f
Thiefbird (#290)
* Thiefbird

* Fix enums

* Rename funcs

* PR
2021-09-28 17:56:25 -04:00
Maide
edb1dd4675
En_Zot (#320)
* En_Zot

* PR
2021-09-28 10:28:06 -03:00
Tom Overton
0f4bdbc020
Obj_Etcetera (Deku Flower) OK and somewhat documented (#326)
* Migrate data to C

* ObjEtcetera_Init OK

* ObjEtcetera_Destroy OK

* ObjEtcetera_Update OK

* func_80A7C690 OK

* func_80A7C718 OK

* func_80A7C168 OK

* func_80A7BE8C OK

* Make the draw functions take Actor*

* CollisionCheck_SetAC should take a Collider

* func_80A7BDC8 OK (with silly dummy label meme)

* func_80A7C1F0 OK

* unk_276 is almost certainly a u16 since I constantly have to cast it, so just retype it

* func_80A7BF08 OK

* Some minor cleanup

* Convert D_80A7C80C to array of CollisionHeader*

* Finish defining struct to prepare for func_80A7C308

* func_80A7C308 OK

* Move gameplay_keep symbols to variables.h

* Explanatory comment at the top

* Type gameplay_keep animation headers too

* Update the spec (why do I always forget this?)

* Rename func_80A7BDC8 to ObjEtcetera_PerformFlutter (name still up for debate)

* Name objIndex

* Document the types of flowers

* Name displayListPtr

* Name burrowFlag and provide a macro

* Name specialFlutterScale and clean up some things with newer understanding

* Give the draw functions (bad) names

* Name ObjEtcetera_Idle

* Name ObjEtcetera_Setup (name sucks but oh well lol)

* Name ObjEtcetera_ReturnToIdle. These names all suck but they're a start

* Document some of ObjEtcetera_Idle's behavior

* Name and document objectIds

* Remove the burrow macro because it's frankly more confusing for now

* Name the draw functions something slightly better

* MUCH better names for things + more documentation

* Clean up ObjEtcetera_Setup a bit

* Call it NUMBER_OF_FLOWER_TYPES instead

* A few more name changes

* Link -> Player in comments

* displayListPtr -> dList

* Trailing commas + format

* Move initialization of type up

* Improve conditional check

* Use BGCHECK_SCENE macro

* Move initialization of floorBgId up

* Use documentation comment style

* Match ObjEtcetera_DoNormalOscillation without a dummy label

* param_2 -> arg1

* Insert blank line after scoped pad

* OBJETCETERA_TYPE -> DEKU_FLOWER_TYPE

* Cleanup and rename enum

* Break up ObjEtcetera_Setup a bit and convert DekuFlowerType to an s32 to remove warnings

* Whoops, run format

* Delete leading 0 on struct comments

* Rename pad to requiredScopeTemp to match my other PR
2021-09-28 08:18:31 -04:00
Maide
27e41b73a8
En_Rd (#316)
* En_Rd

* PR

* a
2021-09-27 23:17:28 -03:00
EllipticEllipsis
f642ed6eef
boot_0x80086760 OK and documented (#288)
* boot_80086760 OK, added fp header, resplit data

* Some more documentation, data imported with unions

* Sweep data under the rug

* Move the fp header properly

* Format

* include/fp.h header guards

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

* Engineer's review

* Fix typo

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Rename header

* while (true)

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
2021-09-27 21:07:09 -03:00
EllipticEllipsis
c72b5788a3
sys_math, cosf OK and documented, sinf, coss, sins documented (#289)
* OK, data imported, document

* spec

* Match cosf, document sinf and cosf

* Some more documentation, switch fu back

* Format

* Little more documentation

* Document coss too

* Move macros

* Review, add some .s

* Fix headers, review
2021-09-27 17:41:07 -04:00
Maide
039fc4623e
En_Syateki_Man (#269)
* En_Syateki_Man

* a
2021-09-25 13:22:51 -03:00
rylieb
bc5c3866d5
Obj_Syokudai (Torch) OK and mostly documented (#306)
* Started uncommenting statics, but then realized this actor has BSS, lol.

* Import .data and .bss. Run format.sh.

* ObjSyokudai_Init OK and mostly documented.

* ObjSyokudai_Destroy OK and fully documented.

* ObjSyokudai_Draw OK and partially documented.

* Good progress on ObjSyokudai_Update, but NOT OK.

* Instruction match, but needs regalloc and stack.

* Stack is closer now.

* Obj_Syokudai OK, no new warnings, ran formatter.

* Documented .data and .bss variables.

* Final documentation pass before PR.

* Add header, fix build errors.

* Use COLTYPE_METAL and COLTYPE_WOOD macros.

* Apply suggestions from code review

engineer124's suggestions.

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Apply suggestions from code review

engineer124: WaterBox* instead of UNK_PTR

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c

engineer124: AC_HARD -> AC_HIT so Jenkins stops complaining

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Hopefully fix Jenkins via z_bg_lotus WaterBox*.

* Rename sp2C to waterBox in BgLotus.

* Run format.sh.

* Update include/functions.h

Change func_800F22C4 param_1 from s8 to s16.

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Change func_801A5CFC param_1 to sfxId in prototype

* Document interactions.

* Run formatter.

* Clarify that posDiff is relative to stick *tip*.

* Changed interaction comparisons to better fit enum

* snuffTimer enum

* Added more #defines.

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
2021-09-25 09:53:53 -04:00
Anghelo Carvajal
2ff7320409
ovl_daytelop OK (#277)
* eeeee

* nonequivalents

* draw

* Import data

* Match Daytelop_LoadGraphics

* draw kinda better

* extract daytelops and gameover

* SEGMENT_ROM macros

* Use extracted symbols for daytelop

* match Daytelop_Draw

* Fix bss

* draw cleanup

* Daytelop_Update from non equivalent to non matching

* Some renames and spec

* Run formatter

* enum

* sfx

* Use SEGMENT_ROM_START macros everywhere

* more macros

* run formatter

* Add description

* update variables.txt

* Remove extra stuff in gbi.h

* Would this fix it?

* and again

* whoops

* Apply suggestions from code review

Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>

* Tharo's suggestions

* match Daytelop_Update

* run formatter

* fix merge issues

Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
2021-09-22 21:50:35 -04:00
EllipticEllipsis
01a6dea813
Update subrepos (#281)
* git subrepo pull tools/ZAPD --force

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "e02e151c"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "e02e151c"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/decomp-permuter --force

subrepo:
  subdir:   "tools/decomp-permuter"
  merged:   "86b1975e"
upstream:
  origin:   "https://github.com/simonlindholm/decomp-permuter.git"
  branch:   "main"
  commit:   "86b1975e"
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:   "eb25be94"
upstream:
  origin:   "https://github.com/AngheloAlf/graphovl.git"
  branch:   "master"
  commit:   "eb25be94"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull (merge) tools/z64compress --force

subrepo:
  subdir:   "tools/z64compress"
  merged:   "98ef0ac2"
upstream:
  origin:   "https://github.com/z64me/z64compress.git"
  branch:   "main"
  commit:   "98ef0ac2"
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:   "45cb0d6b"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "45cb0d6b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/asm-differ --force

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "48e675ff"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "48e675ff"
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:   "3c00dcb3"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "3c00dcb3"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/asm-differ --force

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "47c94c99"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "47c94c99"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* Declare required textures

* Name texture, add decomp.me permuter settings

* git subrepo pull tools/ZAPD --force

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "913810fc"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "913810fc"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/asm-differ --force

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "97197f2a"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "97197f2a"
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:   "623d779f"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "623d779f"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/asm-differ --force

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "55bba23a"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "55bba23a"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull tools/decomp-permuter --force

subrepo:
  subdir:   "tools/decomp-permuter"
  merged:   "a20bac94"
upstream:
  origin:   "https://github.com/simonlindholm/decomp-permuter.git"
  branch:   "main"
  commit:   "a20bac94"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-09-21 20:13:03 -04:00
Maide
4796e6f61d
En_Railgibud (#268)
* En_Railgibud

* Match func_80BA57F8 (thanks Petrie, Simon, Anghelo)

* Match func_80BA5E18, thanks to engineer

* a

* PR
2021-09-19 22:46:56 -03:00
Maide
da1265f4bc
En_Dns (#241)
* En_Dns

* NBS

* PR

* PR

* Fix warnings

* PR

Co-authored-by: Angie <angheloalf95@gmail.com>
2021-09-02 12:27:11 -04:00
Tom Overton
6ecea0ec6f
Obj_KIbako cleanup (#280)
* Modify Kibako to use the same ID/FLAG macros as Kibako2

* Define KIBAKO_BANK_INDEX

* Add explanatory comment at the top of the file

* Add Kibako function names to functions.txt

* Define KIBAKO_BOMBER_CAN_HIDE_IN_BOX
2021-09-02 11:44:50 -04:00
gamestabled
b3816cd26b
ObjMakeoshihiki OK (#272)
* ObjMakeoshihiki OK

* suggested changed

Co-authored-by: gamestabled <gamest@bl.edu>
2021-09-02 10:49:00 -04:00
rylieb
6fb180d0e1
En_Holl (Loading Halls/Holes) OK and mostly documented. (#270)
* EnHoll_Destroy() matching.

* EnHoll_Update() matching.

* EnHoll_Draw() matching and mostly documented.

* func_808999B0() matching and mostly documented.

* En_Holl OK (some asm remains)

* Renamed macros.

* func_80899B88 matching, but control flow could use some work.

* Got rid of GOTO in func_80899B88.

* Removed as many returns and magic numbers as currently possible.

* Renamed previous two functions to EnHoll_ChangeRooms and
EnHoll_VisibleIdle.

* EnHoll_SetAlwaysZero matching.

* EnHoll_TransparentIdle matching.

* func_8089A0C0 matching and mostly documented.

* func_8089A238 matching and mostly documented.

* Deleted last GLOBAL_ASM pragma.

* Final documentation for En_Holl PR.

* Switched spec to generated reloc.

* Clean up macros.

* Rename functions.

* Simplify name of ActionFunc array.

* Renamed globalCtx->unk_18878 to bgCoverAlpha.

* Ran format.sh.

* Added c file header.

* Update src/overlays/actors/ovl_En_Holl/z_en_holl.c

add trailing comma to sActionFuncs[]

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

* Update src/overlays/actors/ovl_En_Holl/z_en_holl.c

replace UNK_TYPE with s32.

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Run format.sh.

* s32 pad and declaration formatting

* Remove comma in EnHoll_TransparentIdle.

* Renamed sThis to sInstancePlayingSound.

* renamed gfxP to dl

* Improved affine transformation documentation.

* ran format.sh

* Updated documentation to be doxygen compatible.

* Extracted assets.

* fix bss

* Update src/overlays/actors/ovl_En_Holl/z_en_holl.c

replace bitmask == 0 with !

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

* Rename extracted asset variables.

* Renamed argument to macro functions to match .c

* renamed Vertices to Vtx.

* Renamed Vtx and DL.

* Update src/overlays/actors/ovl_En_Holl/z_en_holl.c

Shorten documentation.

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Apply suggestions from code review

Newline changes for readability.

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Holl/z_en_holl.c

* Update src/overlays/actors/ovl_En_Holl/z_en_holl.c

Change oldCurrRoom to tempRoom.

* Apply suggestions from code review

engineer124's suggestions

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
2021-09-01 19:39:01 -04:00
Isghj
f21f393fcc
EnBigpo (Big Poh) (#250)
* EnBigpo: start

* EnBigpo: uhh, this struct is weird

* EnBigpo: progress

* EnBigpo: so many of these functions are tiny

* EnBigpo nasty four loop function

* EnBigpo: hate draw functions

* EnBigpo: all functions attempted

* EnBigpo: data migrated, does not OK, 2 bytes off...

* Multi: Attempting to OK, issues

* EnBigpo: more docs

* EnBigpo: more docs2

* EnBigpo: more docs and cleaning

* EnBigpo: removed data to try to find the issues, matched a draw function thanks to Tharo

* EnBigpo: progress? maybe not

* EnBigpo: matched another function

* EnBigpo: overwrite limbdraw matches now

* EnBigpo: one more nonmatching rejected

* EnBigPo: not actual progress, probably

* Match Init, down to single stack pointer on second func

* EnBigPo OK

* EnBigpo: docs and cleaning

* EnBigpo: more docs and cleaning

* EnBigpo: back to OK with no warnings

* EnBigpo: more docs and cleaning

* EnBigpo: docs and cleaning

* EnBigpo: hmm, rename_sym doesn't like renaming system functions but I'm 98% sure I know what these are

* Multiple: changed some function names, maybe changed too much... hmm

* EnBigpo: even more changes to docs

* EnBigpo: formater pass

* EnBigpo: small fixes

* EnBigpo: c file description

* Apply suggestions from code review

Apply camera suggestions from eng124

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: updating all requested changes and reverting one incorrect macro

* Apply suggestions from code review

Some of eng124's recommendations, need to add the last by hand

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: back to OK

* EnBigpo: Minor cleanup changes

* Functions fixed: added function changes to actorfixer and fixed dinofos

* EnBigpo: BINANG_ROT180

* Apply suggestions from code review

First batch of requested changes, the simpler ones that shouldn't require checking

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

* EnBigpo: fixes to recommended changes, back to OK

* EnBigpo: move idleTimer docs out of struct

* Sprite: removed old commented out pragma, it matches, I still dont get it

* EnBigpo: more changes I had to check first

* EnBigpo: more requested changes, and some macro uses found

* EnBigpo: forgot a requested change

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigPo: missed a disphead array access

* Apply suggestions from code review

More requested changes

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: more hex to dec

* EnBigpo: more hex to dec 2

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update include/functions.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: build being weird

* EnBigpo: weird, rename_sym didn't catch this earlier

* Tools: fixed actorfixer to use Play_CameraSetAtEye forgot I blew this change away trying to get build again,

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* EnBigpo: cutscene functions changed name to indicate they are stages

* EnBigpo: Rename Particles to Effect

* EnBigpo: changed draw function names, changed function comment format

* EnBigpo: renamed limbdraw functions, formater pass

Co-authored-by: isghj8 <isghj8@gmail.com>
Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
2021-09-01 18:44:42 -04:00
Anghelo Carvajal
97e066f23f
Update asm-processor and diff.py (#278)
* fix asm differ branch

* git subrepo pull --force tools/asm-differ

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

* delete asm-processor

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

subrepo:
  subdir:   "tools/asm-processor"
  merged:   "755f734fb"
upstream:
  origin:   "git@github.com:simonlindholm/asm-processor.git"
  branch:   "main"
  commit:   "755f734fb"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* re-add build.py

* remove subrepo

* git subrepo pull --force tools/asm-differ

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "1dfba80e1"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "1dfba80e1"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"
2021-08-25 01:11:41 -04:00
Anghelo Carvajal
5ece221fe2
Port sfxconvert (#276) 2021-08-25 00:41:07 -04:00
Tom Overton
f0749d583c
Obj_Kibako2 OK (#249)
* Data migrated and ObjKibako2_Init OK

* ObjKibako2_Destroy OK

* func_8098EC68 OK

* Commit what I have on Update as I figure it out

* Name skulltulaNoiseTimer and get a little closer to matching Update

* Wrap Update in NON_MATCHING for now

* Get this ready to push up

* func_8098ED20 OK (but it's not an actionFunc???)

* ObjKibako2_Draw OK

* func_8098E9C4 OK

* Turns out globalCtx *is* needed

* func_8098E8A8 OK

* Save my progress on func_8098E5C0 for now

* func_8098E900 OK

* func_8098EB78 OK

* Clean up some if-conditionals

* Delete pointless forward declaration

* ObjKibako2_Break OK

* Update names to match OoT equivalent

* func_8098E5C0 OK (though a little weird)

* ObjKibako2_Update OK

* Clean, document, and name ObjKibako2_ShouldBreak

* Clean and name ObjKibako2_ContainsSkulltula

* Some more cleanup

* Why did I mix snake case with camel case lol

* Update spec now that everything matches

* Actually rename the data

* sn/cs -> sin/cos

* Use true/false in ObjKibako2_ShouldBreak

* Use the AC_HIT macro and don't use the temp where it isn't needed

* Use macro and enum for contents

* Get rid of fake temp in Init

* Macros for collectible ID/Flag

* 0xFFFD -> ~AC_HIT

* In macros, x -> this

* Just kidding, use thisx for macros

* Add description to the top of C file

* Run ./format.sh after installing clang-format-11

* char -> UNK_TYPE1

* Remove unnecessary struct padding

* Initialize thisPos at the same time it's declared

* Clean up parentheses for bitwise operations to make it clearer what they do

* Clean up control flow in ObjKibako2_Idle

* Remove extraneous parentheses

* Move instantialization up in ObjKibako2_ContainsSkulltula

* Move tempRand instantiation up in ObjKibako2_Break

* Move collectible instantiation up in ObjKibako2_SpawnCollectible

* Remove extra brackets

* Remove extra brackets (again)

* Move contents instantiation up in ObjKibako2_Init
2021-08-23 22:14:18 -04:00
EllipticEllipsis
04343a1202
z_construct OK (#267)
* z_construct OK

* Rename
2021-08-18 11:24:57 -04:00
EllipticEllipsis
fa95f9e6e8
Migrated a lot of boot bss, matched a few NON_MATCHINGs in boot (#266)
* Import bss to boot_main and idle, match last function in idle

* Some pointer cleanup in idle, spec

* Clean up idle, add build.c, add bss to CIC6105

* Import rand bss

* sptask bss and a macro

* sptask updated to use libultra macros

* siacs.c bss

* Macros in CIC and idle

* controller bss

* seteventmesg bss

* spec

* pimgr and piacs bss

* initialize OK, threadsave, initialize, pimgr bss

* Match DmaMgr_Start

* Fix bss reorder using separate file

* Small cleanup of hex/dec in buffer sizes

* Add comment, remove unused bss from spec

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

* Format

* Delete files

* remove commented-out structs

* Bit more cleanup

* Addressed reviews

* Format
2021-08-18 11:12:35 -04:00
Anghelo Carvajal
49922b4856
system_malloc OK (#261)
* move system_malloc to boot_O2

* Rename StartHeap into SystemArena

* match

* fake system_malloc data

* fix return types

* Rename Alloc to Malloc

* Update tools/disasm/files.txt

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* fix spec

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
2021-08-18 08:48:08 -04:00
Maide
9eb438860c
Sort actor functions and extern'd symbols (#259)
* Sort funcs

* PR
2021-08-15 14:04:28 -04:00
Andzura
3e0801890d
z_lifemeter (#247)
* z_lifemeter done.

* fix new warning I didn't saw. add variables.txt

* suggested changes

* add new texture ptrs to undefined_sym, changed heartTex & temp to TexturePtr in LifeMeter_Draw

* change hex literal to decimal and other small suggestions

* change bool to u32; change hexa literal to decimal in LifeMeter_IsCritical; renamed undefined sym to their D_02 addresses

* re-applied format.sh on z_lifemeter

* coding style fixes

* fix typo in undefined_sym

* named func and vars.

* changed modulo check

* add extra line after var declaration in LifeMeter_Draw

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* changed unkTimer to camelCase; timer constant as decimal; flip some comparison in LifeMeter_Draw

* uncomment & rename func_ in functions.h

* Update include/functions.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

Co-authored-by: Andzura <andzura@andzura.fr>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
2021-08-15 12:20:35 -04:00