249 Commits

Author SHA1 Message Date
coco875 203090e591 update with the decomp (#97)
* Update menus.c (#634)

* Update common_data.yml (#635)

* Renames for screenId and other changes (#636)

* screenId renames

* Rename surface map to collision mesh (#637)

* Rename some stack vars (#638)

* Fix syntax error (#639)

* Rename some stack vars

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* update doxygen (#649)

* change bool (#644)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update (#642)

* Delete trig_tables_bss.c (#650)

* fix typo audio (#656)

* fix typo src actor (#657)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo include (#658)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix course (#659)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo debug (#660)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo data (#661)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* replace number with const (#665)

* fix typo buffers (#655)

* fix typo buffers

* tweak ld file

* rename to sMemoryPool

* add a warning

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo src (#654)

* fix typo src

* fix non matcing

* Update code_80091750.c

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo racing (#653)

* fix typo racing

* get it match

* replace G_LINE3D to G_QUAD

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo src (#652)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix ending typo (#651)

* Action more info when it doesn't match and fix first diff (#662)

* Update linux-compile.yml

* fix first-diff

* Update first-diff.py

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* document texture of kart (#663)

* document texture of kart

* change screenPlayerId to screenId

* some documentation around object

* Revert "some documentation around object"

This reverts commit cbb39078e036bf2a417bed67359e910213acab28.

* more rename

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Make evaluate_collision_players_palm_tree better (#667)

This matches just the same as before,	but using those two casts instead of
shifts seems more likely to be accurate to the original source code

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>

* add fedora instruciton (#666)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* start documenting animation (#668)

* start documenting animation

* Update course_data.c

* change comment

* update libultra asm (#648)

* update libultra asm

* fix gcc __osThreadTail

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Document Vehicles (#641)

* start doc collision

* fix merge

* finish rename fonction related to vehicle

* document around waypoint of vehicle

* make some modification

* make some change and rename one

* copy_ to oldPos

* doc smoke ferry and train

* some rename

* fix some renaming

* precise index

* rename a funciton

* simplify waypoint_vehicles

* change some name

* change some name

* rename move_to_point_direction

* fix some conflict

* Update code_80005FD0.c

* Update code_80005FD0.h

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Label a save info loop (#645)

* save info

* more gcc progress

* fix a value and do a rename (#669)

* update clang and add action (#664)

* update clang and add action

* try clang on course folder only

* forget two file

* Update course_displaylists.inc.c

* forget few other file

* Update course_vertices.inc.c

* format all code while get it match

* second pass

* format other dir

* disable clang format on bad ido code

* fix some tabulation

* revert format on tool dir

* Update clang-format.yml

* ignore gbi.h

* add some read me instruction

* fix error

* format and fixing error

* Update README.md

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update linkonly_generator.py (#670)

* some rename for torch (#588)

* rename gBombKartSpawns, and fix cup ID

* Update doxygen_syms.md

* rename for gCourseIndexInCup and his constant

* rename to gCupSelectedCourseIndex

* forget a change in constant

* fix compilation issue

* Update Dockerfile to latest Ubuntu LTS + fixed missing cmake (#674)

* Fix color font matrix function (#676)

* Fix label variables used in menus (#675)

* Fix label variables used in menus

* split D_800F2BDC and clang format menu.c

---------

Co-authored-by: coco875 <pereira.jannin@gmail.com>

* Fix some libultra struct types (#677)

* Uintptr (#671)

* Update render_courses.c

* Update math_util.c

* Update math_util.c

* Update math_util.h

* Update render_courses.c

* Clang suggest (#678)

* add clang suggestion

* Update clang-format-suggest.yml

* Update clang-format-suggest.yml

* simplify

* switch to ubuntu

* Update clang-format-suggest.yml

* update ubuntu

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Clang pr (#679)

* Create clang-pr.yml

* Update clang-pr.yml

* Update osCreateMesgQueue.c

* Update osCreateMesgQueue.c

* Update clang-pr.yml

* Update clang-pr.yml

* Update clang-format.yml

* clang format (#680)

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>

* some rename in ceremony (#647)

* rename ceremony

* apply some suggestion

* some rename

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* clang format (#681)

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>

* Rename Object Timing Related Code (#673)

* start making models extraction with blender

* finishing extract model

* Update fast64

* extract course

* Update fast64

* Update fast64

* simplify import of course_displaylists and course_textures and remplace adress with texture

* Update fast64

* change data format and simplify the thread queue

* move in a blender folder

* remove fast64

* re add fast64

* add model_extract and fast64_blender in makefile

* multithread with make file split the models into multiple json and add course segment

* Update fast64

* remove old model_extract

* remove the error when he don't find blender

* start rename around course section

* rename around object

* update submodule fast64

* fix compilation issue and add some model to extract

* Update fast64

* remove fast64

* re add fast64

* update submodule

* fix compilation issue

* add other collision gfx and prepare reorganise file

* re arrange json

* Create README.MD

* Update README.MD

* Update README.MD

* update fast64

* rename to initiate_next_state

* Revert "Merge branch '3d-objects' into general-object"

This reverts commit f5347b38cc75af4d10ee3726dc1524c1c71d6849, reversing
changes made to a353c4d954fb5b50c8b48fe3f9d67c95ccaab299.

* revert the revert...

* revert 3d-models PR

* finish some revert

* Update code_80005FD0.c

* fix code_80091750.c

* Update code_80091750.c

* rename isTimerRunning to isTimerActive and set_object_timer_running to set_object_timer_state

* rename to initialize_next_state

* rename to object_next_state

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* extract models with blender (#577)

* start making models extraction with blender

* finishing extract model

* Update fast64

* extract course

* Update fast64

* Update fast64

* simplify import of course_displaylists and course_textures and remplace adress with texture

* Update fast64

* change data format and simplify the thread queue

* move in a blender folder

* remove fast64

* re add fast64

* add model_extract and fast64_blender in makefile

* multithread with make file split the models into multiple json and add course segment

* Update fast64

* remove old model_extract

* remove the error when he don't find blender

* start rename around course section

* update submodule fast64

* fix compilation issue and add some model to extract

* Update fast64

* remove fast64

* re add fast64

* update submodule

* fix compilation issue

* add other collision gfx and prepare reorganise file

* re arrange json

* Create README.MD

* Update README.MD

* Update README.MD

* update fast64

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* other

* fix some error of compilation

* finish fix all error

---------

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
Co-authored-by: Gabriel Ravier <gabravier@gmail.com>
Co-authored-by: MisterSheeple <27652712+MisterSheeple@users.noreply.github.com>
Co-authored-by: AloXado320 <38191089+AloXado320@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-09-17 09:32:50 -06:00
MegaMech f79b02348a Fix compile (#80)
* Fix compile

* Fix compile

* Fix mtx in fb effects

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-09-10 17:36:11 -06:00
coco875 b36b9e3180 [enhancement] Disable Culling (#58)
* less intrusif possible way to disable culling

* forget cloud and star

* some change and add gFarFrustrum

* reduce range of gFarFrustrum

* minor rename of a CVar

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-09-10 16:20:55 -06:00
coco875 a1f0d32d66 Update decomp clang (#67)
* Update menus.c (#634)

* Update common_data.yml (#635)

* Renames for screenId and other changes (#636)

* screenId renames

* Rename surface map to collision mesh (#637)

* Rename some stack vars (#638)

* Fix syntax error (#639)

* Rename some stack vars

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* update doxygen (#649)

* change bool (#644)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update (#642)

* Delete trig_tables_bss.c (#650)

* fix typo audio (#656)

* fix typo src actor (#657)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo include (#658)

* fix course (#659)

* fix typo debug (#660)

* fix typo data (#661)

* replace number with const (#665)

* fix typo buffers (#655)

* fix typo buffers

* tweak ld file

* rename to sMemoryPool

* add a warning

---------

* fix typo src (#654)

* fix typo src

* fix non matcing

* Update code_80091750.c

---------

* fix typo racing (#653)

* fix typo racing

* get it match

* replace G_LINE3D to G_QUAD

---------

* fix typo src (#652)

* fix ending typo (#651)

* Action more info when it doesn't match and fix first diff (#662)

* Update linux-compile.yml

* fix first-diff

* Update first-diff.py

---------

* document texture of kart (#663)

* document texture of kart

* change screenPlayerId to screenId

* some documentation around object

* Revert "some documentation around object"

This reverts commit cbb39078e036bf2a417bed67359e910213acab28.

* more rename

---------

* Make evaluate_collision_players_palm_tree better (#667)

This matches just the same as before,	but using those two casts instead of
shifts seems more likely to be accurate to the original source code

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>

* add fedora instruciton (#666)

* start documenting animation (#668)

* start documenting animation

* Update course_data.c

* change comment

* update libultra asm (#648)

* update libultra asm

* fix gcc __osThreadTail

---------

* Document Vehicles (#641)

* start doc collision

* fix merge

* finish rename fonction related to vehicle

* document around waypoint of vehicle

* make some modification

* make some change and rename one

* copy_ to oldPos

* doc smoke ferry and train

* some rename

* fix some renaming

* precise index

* rename a funciton

* simplify waypoint_vehicles

* change some name

* change some name

* rename move_to_point_direction

* fix some conflict

* Update code_80005FD0.c

* Update code_80005FD0.h

---------

* Label a save info loop (#645)

* save info

* more gcc progress

* fix a value and do a rename (#669)

* update clang and add action (#664)

* update clang and add action

* try clang on course folder only

* forget two file

* Update course_displaylists.inc.c

* forget few other file

* Update course_vertices.inc.c

* format all code while get it match

* second pass

* format other dir

* disable clang format on bad ido code

* fix some tabulation

* revert format on tool dir

* Update clang-format.yml

* ignore gbi.h

* add some read me instruction

* fix error

* format and fixing error

* Update README.md

---------

* Update linkonly_generator.py (#670)

* format more file

* update

* fix compilation issue

* remove course_metadata folder

* re add course metadata folder

* fix banshee bordwalk crash

* fix windows eurk

* Update CMakeLists.txt

---------
2024-08-27 17:47:39 -06:00
coco875 848b31c01e Update decomp (#63)
* update libultra asm (#648)

* update libultra asm

* fix gcc __osThreadTail

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Document Vehicles (#641)

* start doc collision

* fix merge

* finish rename fonction related to vehicle

* document around waypoint of vehicle

* make some modification

* make some change and rename one

* copy_ to oldPos

* doc smoke ferry and train

* some rename

* fix some renaming

* precise index

* rename a funciton

* simplify waypoint_vehicles

* change some name

* change some name

* rename move_to_point_direction

* fix some conflict

* Update code_80005FD0.c

* Update code_80005FD0.h

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Label a save info loop (#645)

* save info

* more gcc progress

* fix a value and do a rename (#669)

* fix error of compilation

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-08-24 18:39:52 -06:00
coco875 e135178097 Update from decomp (#34)
* Update menus.c (#634)

* Update common_data.yml (#635)

* Renames for screenId and other changes (#636)

* screenId renames

* Rename surface map to collision mesh (#637)

* Rename some stack vars (#638)

* Fix syntax error (#639)

* Rename some stack vars

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* update doxygen (#649)

* change bool (#644)

* Update (#642)

* Delete trig_tables_bss.c (#650)

* fix typo audio (#656)

* fix typo src actor (#657)

* fix typo include (#658)

* fix course (#659)

* fix typo debug (#660)


* fix typo data (#661)

* Update common_structs.h

* replace number with const (#665)

* fix typo buffers (#655)

* fix typo buffers

* tweak ld file

* rename to sMemoryPool

* add a warning

---------

* fix typo src (#654)

* fix typo src

* fix non matcing

* Update code_80091750.c

---------

* fix typo racing (#653)

* fix typo racing

* get it match

* replace G_LINE3D to G_QUAD

---------

* fix typo src (#652)

* fix ending typo (#651)

* Action more info when it doesn't match and fix first diff (#662)

* Update linux-compile.yml

* fix first-diff

* Update first-diff.py

---------

* document texture of kart (#663)

* document texture of kart

* change screenPlayerId to screenId

* some documentation around object

* Revert "some documentation around object"

This reverts commit cbb39078e036bf2a417bed67359e910213acab28.

* more rename

---------

* Make evaluate_collision_players_palm_tree better (#667)

This matches just the same as before,	but using those two casts instead of
shifts seems more likely to be accurate to the original source code

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>

* add fedora instruciton (#666)

* start documenting animation (#668)

* start documenting animation

* Update course_data.c

* change comment

* fix error of compilation

* fix error of compilation

* Update animation.c
2024-08-22 18:20:13 -06:00
coco875 3781ce2830 fix animation (#60)
* fix animation

* Update update_objects.c
2024-08-22 17:53:05 -06:00
KiritoDv 8054960948 Fixed compilation issues 2024-08-18 07:47:24 -06:00
MegaMech 09505cc0aa Fix Falling Rocks and Vehicles (#55)
* valley

* beach

* sherbet & rainbow

* fix ceremony

* Fix parser for course displaylists

* Fix crash near end of ceremony

* Clean rock

* Fix actors

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-16 21:37:51 -06:00
MegaMech bd6e3d18e0 Courses (#54)
* valley

* beach

* sherbet & rainbow

* fix ceremony

* Fix parser for course displaylists

* Fix crash near end of ceremony

* Clean rock

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-15 22:20:08 -06:00
MegaMech 177504c495 Add Courses (#49)
* castle and stadium

* castle

* boardwalk & snowland

* turnpike

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-13 22:26:16 -06:00
coco875 745ed093ec clean some gbi function in header (#30)
* clean some gbi function in header

* move gbi extra in mk64.h

* Update mk64.h

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-08-12 15:51:31 -06:00
MegaMech c270c11c9b Lakitu fix (#35)
* Fix menu bug

* Fix undefined behaviour

* Fix kart textures

* Fix boost texture

* Rename as per review

* Fix buffer overflows

* Fix lakitu progress

* Fix race starter character

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-03 20:57:07 -06:00
coco875 cc5414b013 fix missing header or not correctly formed header (#24)
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-07-28 16:29:10 -06:00
MegaMech 532ad5a4c0 Renames & seg 3 & 5 texture fixes (#19)
* Remove tools/torch

* Auto compile torch and extract

* Re-implement soh's implementation of lus implementation of an array

* Fix static actors in mr

* Update

* Updated torch

* Updated lus

* uncomment

* Fix collision

* Renames

* More renaming

* Collision Renames

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* Update

* update lus

* Bug fixes

* remove tabs

* fixes

* fixes

* Fix kart textures

* Networking

* net

* Add networking

* Update

* Cleanup

* Fix balloon rendering

* Fix lakitu and red shell

* fixes

* Implement new random system

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-07-26 11:29:35 -06:00
MegaMech b594f112e0 Update lus (#16)
* Updates
2024-06-11 09:49:44 -06:00
MegaMech 12553beabd Current Changes (#14)
* Couple minor fixes

* test

* OTR changes

* More otr stuff

* Some fixes

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-05-08 13:03:35 -06:00
MegaMech e86b876992 Changes (#9) 2024-05-03 21:38:56 -06:00
KiritoDv 1fbf28a78d Fixed more errors, we are rendering the logo, Yay 2024-05-03 18:20:20 -06:00
MegaMech 1548512084 First Compile (#7)
* Update torch

* A lot of fixes

* First compile
2024-05-03 12:17:36 -06:00
MegaMech 6a6a78f719 A lot of fixes 2024-05-03 12:14:16 -06:00
MegaMech b77f432923 Fix extern 2024-05-02 17:24:24 -06:00
MegaMech e5c9616a64 More fixes 2024-05-02 17:21:29 -06:00
MegaMech e3774dc377 Fixes 2024-05-02 12:21:35 -06:00
KiritoDv a2c3feb67a WIP Compilation 2024-05-01 10:09:49 -06:00
MegaMech 7a10ba89f6 Header cleanup and some renames (#616)
* Place macros for addr conversions

* dl renames

* fixes

* changes ok

* Delete types.h

* move enums
2024-04-20 19:10:53 -06:00
MegaMech 900a9f0f85 Remove some warnings (#609)
* Remove some warnings

* Update torch to latest version
2024-04-17 09:41:19 -06:00
coco875 9ac20c80b8 fix a lot of warning in code (#598)
* Fix warnings
* Fix building
2024-04-16 10:00:08 -06:00
MegaMech d9c1ebb626 Initial gcc Support (#568)
* Added GCC
2024-04-15 10:53:58 -06:00
MegaMech 3dd4c071e1 Update osEeprom Read and Write (#608) 2024-04-14 17:15:41 -06:00
MegaMech 3da5a4f343 Add ymls for Torch code generator (#497)
* Add torch

* update jenkinsfile
2024-04-09 21:29:57 -06:00
coco875 2b66867af1 Rename cpu behaviour related symbols (#586)
* Rename cpu related symbols
2024-04-06 11:35:13 -06:00
MegaMech c4d596d297 trig tables shiftable (#596) 2024-04-05 21:42:14 -06:00
coco875 12f332614e move actors code in actors folder and rename thing related to actor (#584)
* Move actors into their folders

* Renamings and documentation
2024-04-03 12:44:44 -06:00
MegaMech 40700ce9ad Remove inc from linked file names (#593)
* Remove inc from linked file names
2024-04-02 13:12:38 -06:00
Tyler McGavran 6af653ad3d Update some attempts, got a couple matches (#591)
* Update some attempts, got a couple matches

* More matches and updates

Signed-off-by: Taggerung <tyler.taggerung@email.com>
2024-04-02 13:00:35 -06:00
Tyler McGavran 6f4decf6b3 Update StarSpawn to StarCloudData (#578)
* Update StarSpawn to StarCloudData

Add and better specify the struct used to control how stars and
 clouds are handled in various courses.
2024-03-04 19:28:31 -07:00
coco875 f99e242d97 Document render/update objects (#565)
* Document objects related code.
  * Including render/update objects code
* Various renamings
2024-03-04 09:02:45 -07:00
Tyler McGavran 1aa6824d33 Match the last 2 data files (#574)
* Match the last 2 data files

Signed-off-by: Taggerung <tyler.taggerung@email.com>

* Update one of the file names based on comments

Signed-off-by: Taggerung <tyler.taggerung@email.com>

* Fix bad path in onomatopoeia asset file

Signed-off-by: Taggerung <tyler.taggerung@email.com>

---------

Signed-off-by: Taggerung <tyler.taggerung@email.com>
Co-authored-by: Taggerung <tyler.taggerung@email.com>
2024-02-28 10:11:38 -05:00
Tyler McGavran 811e05c297 Some matches in code_80091750 (#567)
Signed-off-by: Taggerung <tyler.taggerung@email.com>
Co-authored-by: Taggerung <tyler.taggerung@email.com>
2024-02-14 18:50:16 -05:00
coco875 d6663422b0 fix warning, type and document audio (#559)
* Document audio

* Update external.h

* fix warnings

* put a do while on one line
2024-02-13 07:27:58 -07:00
MegaMech 19410f2825 Code Segments Shiftable (#566)
his PR cleans up segment related code in main.c.
Also cleans up the linker a bit.

    Add memory pool to linker as .bss to validate that it exists properly.

    Move framebuffers, gfx, and audio buffers out of racing segment and make its own segment.

    Rename framebuffers.c to buffers.c as it contains more than just framebuffers.

    Import asserts from sm64 to validate that code segments are not overlapping

    Rename segNoload to segmentNoload

    Rename 802BA370 segment to trigTables

    Rename gMenuSelectionFromEndingSequence to gGotoMenu

    Rename gMenuSelectionFromQuit to gGotoMode

    Rename SEG_ENDING_SEQUENCES to SEG_ENDING

    Rename data_821D10 to ceremonyData

    Rename data_825800 to startupLogo
2024-02-05 17:08:29 -07:00
coco875 639fec1458 place surface type const and unassemble flag in vtx and document effects (#553)
* place surface type const and unassemble flag in vtx
2024-01-20 21:22:35 -07:00
coco875 a86b3b0a2e document player and cpu (#534)
* document player and cpu

* cpu_descisions_branch_item to cpu_decisions_branch_item
2024-01-17 16:19:54 -07:00
coco875 6716570e2a Rename some Object related function and property (#531)
* rename some variables
2024-01-17 15:10:26 -07:00
coco875 03843d77fe some const placement and one rename (#529)
* some const placement and one rename
2024-01-06 07:46:59 -07:00
coco875 7c44252daa Finish bss (#527)
* Finish importing bss
2024-01-02 14:53:51 -07:00
coco875 98474c5b94 fix todo, bug not appears and change theme (#525)
* fix todo, bug not appears and change theme

* fix warning
2023-12-31 19:56:14 -07:00
MegaMech c2c00db97d Rename gTrains to gTrainList (#522) 2023-12-30 20:46:34 -07:00
Tyler McGavran c3975f2865 Cleanup some references to fake variables (#520)
* Cleanup some references to fake variables

* Some matches, header stuff, and updated a BSS file

Signed-off-by: Taggerung <tyler.taggerung@email.com>
2023-12-30 20:07:04 -07:00