Alexander Faßbender
d2ce4dd89e
Match all FX render functions ( #540 )
...
* match most fx_XX_render functions
* match the rest of the fx render functions
* resolve data migration issues
* resolve issues
* Update effect_117.c
2021-11-26 10:25:50 +09:00
Alexander Faßbender
bb5c96a417
Use designated inits for data tables and AC 0A data migration ( #538 )
...
* data tables and minor data migration
* remove redundant comments
2021-11-23 16:26:32 +01:00
Ethan Roseman
755c83a363
fold_* , effect_10, and other assorted decomp ( #535 )
...
* work on appendGfx_message
* :OK:
* indentation
* message window states
* SetEntityCullMode & some of appendGfx_model
* 9 smalls
* 2 more
* 2 mo
* update_player_actor_shadow
* EffectInstanceData rework
* some shtuff
* effect_10 dun
* wip
* wip
* wipz
* rename
* progz
* remove wip work for appendGfx_model
* PR comments
* Alex comments
* tomorrow for sure
* eventually
2021-11-19 23:31:28 +09:00
Alex Bates
a8c85b377a
Share 1370.c across versions ( #509 )
...
* split jp gfxRetrace_Callback
* func_80025F70
* use 1370_len_7d0 on jp
* rename 1370_len_7d0 to main
* coverage.py
2021-10-31 03:53:55 +09:00
Ethan Roseman
068b8a5b08
B4580 and d0a70_len_4fe0 ( #502 )
...
* func_80133A94
* animator stuff
* add_anim_node and animator_node_update_model_transform
* a bunch more
* more
* .
* temp
* create_mesh_animator
* 2 mo
* d0a70 funcs
* more d0a70
* 2 mo
* 1 + cleanup
* 2 mo
* cleanup
* revert change to verbosity for splat
* PR comments
2021-10-30 02:57:15 +09:00
Ethan Roseman
33c9dda3a5
KMC GCC, effects, cleanup, map funcs ( #476 )
...
* warnings, cleanup, 2 npc ai funcs
* kmcgcc stuff
* effect_75
* effect_9.c done
* cleanup, work on kmc gcc
* start on fx_73
* guOrtho/guOrthoF
* more libultra/cleanup
* more libultra
* add wine for darwin
* effect_73 done
* UnkQuizFunc
* effect func naming
* name appendGfx funcs
* fix fx_66
* Add KMC wrapper to Jenkinsfile
* mac fixes
* fix macro usage
* oopz
* 3 fixes
* blah
* KMC_ASM
* config changes
2021-10-22 23:01:27 +09:00
eperdew
789049ee36
Decompile action_cmd/bomb.c ( #467 )
...
* Decompile the easy functions of bomb.c
* Deduplicate action command function in bomb.c
* Fully decompile bomb.c
* Remove matched func_802A928C_427CFC.s
* Clean up bomb.c before making a PR.
* Address @nanaian's feedback.
* Convert nonsense function pointer symbol reference to proper BSS var.
2021-10-10 07:30:38 +09:00
eperdew
93a4f819ac
Match smack.c ( #464 )
...
* Get full match on smack.c
* Clean up smack.c and remove the unnecessary 42ED70.data.s
* Update smack.c to use barFillLevel instead of unk_44.
2021-10-08 02:56:18 +01:00
eperdew
5a85b3115d
Decompile mega_shock.c ( #457 )
...
* parent d2721ed191
author eperdew <eperdew17@gmail.com> 1632807291 -0700
committer eperdew <eperdew17@gmail.com> 1633221439 -0700
Decompile mega_shock.c.
* Move common stuff to top of variable declaration blocks.
* Address @ethteck's review comments on func_802A92A0_42DCB0.
Also remove an unnecessary shift during a comparison.
2021-10-03 21:20:11 -04:00
Ethan Roseman
59050ec3e9
Effects & misc ( #458 )
...
* fx_6_appendGfx
* update_effects
* effect_6 done
* Update diff.py
* update configure for new splat
* git subrepo pull --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "0efa552c5d"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "0efa552c5d"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* nu stuff / undefined_syms org
* Actor struct refactor to match AddActorVar (thanks Josh)
* various cleanup, matched an obfuscation func
* fx_7 work
* is_block_on_ground
* state_*
* create_entity_shadow, update asm macro to fix diff.py
* set_standard_shadow_scale
* set_npc_shadow_scale and set_peach_shadow_scale
* create_shadow_type
* revert macro.inc
* clear_model_data (thanks Josh)
* cleanup
* mdl_get_next_texture_address
* mdl_set_all_fog_mode
* load_model_textures
* fx_7_appendGfx (effect_7 done)
* fx_8_main
* fx_8_render
* fx_8_update
* func_E0010000
* func_E0010104
* effect_8 done
* effect_8 done
* warnings
* cleanup
* try to fix some warnings
* warnings + change Bowser Slug behavior
2021-10-04 00:44:16 +09:00
fig02
5779f5de0e
crash_screen OK ( #449 )
...
* crash screen done
* cleanup
* done i think
* crash -> crash_screen
* fix warnings
* size comment
* review
2021-09-30 08:01:31 +09:00
Ethan Roseman
555f0ea15b
Effects ( #442 )
...
* effect shim names
* fx_1_main and data migration
* fx_1_renderWorld
* header reorg
* remove stale comment
* effect_1
* cleanup
* fx_6 stuff
* most of effect_6, misc changes
* cleanup
* PR stuff
* warningz
2021-09-27 08:19:58 +09:00
Ethan Roseman
e04a2e8330
Set up IDO and match osFlash.c ( #424 )
...
* set up IDO, created osFlash, fix newlines in libultra headers
* osFlash OK
* Try to fix Jenkinsfile
2021-09-25 16:31:44 +09:00
Ethan Roseman
db578d9788
a5dd0 (model file) + filemenu decomp ( #420 )
...
* remove some warnings, improve build speed on master
* update Camera
* update_camera_zone_interp not matching but close :/
* cleanup
* configure fix
* cleanup, better gbi macros
* decomp and syms
* a couple more
* 2 more and stuff
* more naming
* 3
* syms
* mdl_get_child_count
* more stuff
* get_model_list_index_from_tree_index
* 5 more
* header org
* update_entity_shadow_position
* fog color funcs
* more color stuff
* display lists
* create_shadow_from_data
* 4 evt shtuffsh
* func_80117D00
* func_80111790
* some BSS
* entity_raycast_down
* MakeEntity and almost step_entity_commandList
* step_current_game_mode
* filemenu stuff
* lots more filemenu stuff
* cleanup
* formatting
* fixes
* 1 more
* more fixes
2021-09-22 20:17:46 +09:00
Ethan Roseman
ac5b75763c
Fix alignment ( #421 )
...
* git subrepo pull (merge) tools/splat
subrepo:
subdir: "tools/splat"
merged: "0f6b99498e"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "a889d905d9"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* OK
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "7eb5744b2a"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "7eb5744b2a"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
2021-09-22 20:09:51 +09:00
Ethan Roseman
1b163a0c4a
Decomp some pause screen map functions ( #412 )
...
* decomp pause screen map functions
* pull upstream and merge
* change get_variable calls to evt_get_variable
* style fixes for map pause screen
* close match on pause_map_init and style in map pause functions
* small pause_map_cleanup change
* Matches (thanks Josh), structs, symbols, cleanup
* cleanup
* Symbol / struct refresh
* further cleanup
* data/rodata disasm, rodata migration, cleanup
* PR comments
* map message ids
Co-authored-by: Rain <rainmachus@gmail.com>
2021-09-02 20:17:40 +09:00
Alexander Faßbender
afab424519
Rename all si_funcs to evt_funcs ( #403 )
...
* resolve #397
* fix libultra
* Match func_80144E4C (#406 )
* Update hud_element.c
* Update hud_element.h
* Update hud_element.h
* Delete func_80144E4C.s
* Trigger funcs (#405 )
* remove old tools, fix warnings
* almost match si_handle_print_debug_var
* si_goto_end_loop and warnings
* is_trigger_bound and create_trigger
* Cleanup + matching 2 non-matchings
* update_triggers (trigger.c complete)
* fix warnings
* PR comments, m2ctx.py fix
* combine PR #398 with #403
* More entity decomp (#402 )
* More entity decomp
* cleanup
* Vec3f instead of 3 floats in structE307C0
* resolve #397
* fix libultra
* combine PR #398 with #403
* decompile evt_goto_end_loop
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
Co-authored-by: JaThePlayer <50085307+JaThePlayer@users.noreply.github.com>
2021-08-29 23:34:42 +09:00
Ethan Roseman
a865cbdf17
Trigger funcs ( #405 )
...
* remove old tools, fix warnings
* almost match si_handle_print_debug_var
* si_goto_end_loop and warnings
* is_trigger_bound and create_trigger
* Cleanup + matching 2 non-matchings
* update_triggers (trigger.c complete)
* fix warnings
* PR comments, m2ctx.py fix
2021-08-29 22:44:17 +09:00
jdaster64
3627d909fc
Power Shock - Adding 4/5 matching funcs ( #389 )
...
* Tidal Wave update function
* Tidal Wave merge issues, re-delete ASM
* action_cmd_tidal_wave_update (#379 )
* Adding Power Shock 4/5 matching, NON_MATCHING update func
* Responses to comments
* disable ccache on Jenkins :(
* oops
* Fix type warnings for HUD scripts, add function declarations
* Fixing a couple more Power Shock warnings
* Change HudElements* to s32s in Power Shock code
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-08-26 03:08:35 +09:00
Ethan Roseman
2c0cb43181
Tidying ( #375 )
...
* don't touch undefined syms/funcs auto
* git subrepo pull --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "25b848a230"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "25b848a230"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* 4 npc funcs
* nine sef commands
* test
* test2
* run undefined_syms through cpp, remove bss and dead syms files
* nuContQueryRead
* Remove unnecessary flags
* oops
* oops2
2021-08-22 22:10:06 +09:00
alex
49bee8512b
hud_element.c ( #371 )
...
* generate permuter_settings.toml
* remove -Wshadow (#366 )
Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>
2021-08-18 17:28:32 +01:00
Ethan Roseman
aaf44dceac
effect overlay refactor ( #369 )
...
* fx table work
* fx data
* blah
* render_effects_UI
* split out effects.c
* battle state menu functions
* render_frame
* clean
* clean
* 4 camera funcs
* state_step_end_battle & symbol names
* state_file_select done
* 111f0 done
* .
* the great effect migration
* PR comments
* main func renames
* proper symbols for the effects table! (mostly)
* effect entry table cleanup
* comments
* Remove old asm, fix fx table
* cleanup
* cleanup
2021-08-17 12:24:26 +01:00
JaThePlayer
af6416de0e
Major Action Command Decomp ( #365 )
...
* Decomp jump and most of tidal wave action commands
* More action commands
* stop_leech.c fully decomped.
* flee.c decomped
* cleanup and function name convention fixes
* slight cleanup
* Move ActionCommand enum to enums.h, style changes
* Changed some numbers to decimal
* That one missing newline
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-08-17 03:31:45 +09:00
Ethan Roseman
c7a7567d68
FX data/funcs, camera funcs, state funcs ( #364 )
...
* fx table work
* fx data
* blah
* render_effects_UI
* split out effects.c
* battle state menu functions
* render_frame
* clean
* clean
* 4 camera funcs
* state_step_end_battle & symbol names
* state_file_select done
* 111f0 done
* .
* PR comments
2021-08-17 03:14:58 +09:00
ThreeMustyFears
25dcbe4b92
Match some funcs in world/action/walk ( #362 )
...
* match some walk funcs
* fix D_800F7B40 type
* update functions.h
* update splat.yaml
* remove walk.data.s
* run coverage.py
* remove line at top
* changed brace
* requested changes
Co-authored-by: ThreeMustyFears <>
2021-08-15 18:28:16 +09:00
Ethan Roseman
3c887e6ac3
curtains.c data work, assorted funcs, new file, etc and cleanup: misc decomp ( #360 )
...
* PlayEffect progress, two insane funcs
* PartnerActionStatus struct and some cleanup
* file split
* physics funcs
* data migration, some decomp
* curtains data, etc
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "b8bf80cd07"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "b8bf80cd07"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* git subrepo pull tools/splat
subrepo:
subdir: "tools/splat"
merged: "265b837554"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "265b837554"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* PR comments
2021-08-14 02:27:57 +09:00
alex
3dfb922ce0
name shrink and transparent ui anims ( #359 )
2021-08-12 23:06:28 -04:00
alex
b48eb150d2
battle/action_cmd ( #348 )
...
* compile
* improve match
* improve
* ~check_block_input
* match LoadActionCommand
* cleanup
* match SetupMashMeter
* check_block_input much closer
* name action_cmd segments
* make better for great good
* improve again
* revert removing blah
* close
* improve
* match func_80268224
* match func_80268284 wrappers
* improvements
* work on func_80268938
* maide changes to check_block_input
* check_block_input :OK: - thanks Maide!
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-08-01 01:50:10 +09:00
Ethan Roseman
5d69c3454f
effect shims and more battle matches ( #347 )
2021-07-31 15:32:19 +01:00
alex
90497377b9
split icons ( #346 )
...
* split icons
* subsections -> subsegments
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-07-30 02:19:00 +09:00
Ethan Roseman
ed9727a34e
Various decomp, use of SCREEN_WIDTH and SCREEN_HEIGHT, etc ( #340 )
...
* Update symbol_addrs
* effects.h and cleanup
* effect code generation!
* func_80024A784
* state_step_demo
* meh
* work on gfx_task_main and cleanup
* state_step_intro
* set_custom_gfx
2021-07-23 03:48:30 +09:00
Ethan Roseman
24e32f8b48
Effect code generation ( #338 )
...
* Update symbol_addrs
* effects.h and cleanup
* effect code generation!
2021-07-21 23:46:58 +09:00
Ethan Roseman
18837f7303
Shift ( #334 )
...
* migrate si.data.s to si.c
* remove unused undefined_sym
* split world script data into individual scripts
Co-authored-by: Alex Bates <hi@imalex.xyz>
2021-07-21 20:52:26 +09:00
Ethan Roseman
53b5004d6e
New images + more ( #332 )
...
* no foliage warnings
* new images
* 4 funcs in 16F740
* update symbol addrs
* no more UnkStarFuncs.inc.c
* clean
2021-07-21 20:43:13 +09:00
Ethan Roseman
ab96e98acf
Miscellaneoush Decomp 323 ( #323 )
...
* more images
* new data file
* 2 undefined syms
* func_80048E34
* Shorten BattleStatus
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "2fbdbb9df8"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "2fbdbb9df8"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* chop away 0x460-onward in BattleState
* battle.c complete!
* .
2021-07-19 20:49:30 +09:00
alex
035a0e6db6
is_debug ( #322 )
2021-07-19 17:22:43 +09:00
Ethan Roseman
a876384c97
fix power bounce and unknown move code/data splits ( #320 )
2021-07-18 00:21:02 +09:00
alex
8dc3d81a84
Fix battle/partner/lakilester split ( #317 )
...
* near-match func_800279B4
* fix lakilester split
* match func_8023A1B0_70DEC0
2021-07-18 00:06:16 +09:00
Ethan Roseman
1beee32dc6
Message work ( #315 )
...
* msg wip
* var name restoration
* rodata padding
* New compiler that supports .bss section attribute!
* -fno-common & cleanup
* clean
* extern bss for now
* msg work
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "8588eaae7b"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "8588eaae7b"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* msg_draw_prim_rect
* draw_message_window
* render_messages
* draw_string progress
* remove dumb file
* images, data
2021-07-17 03:27:27 +09:00
alex
d2875030a3
Name files and avoid use of X32 type for functionTemp ( #314 )
...
* name entity files
* name encounter_api
* abolish X32
2021-07-16 21:22:21 +09:00
alex
7cf8bf0b88
Split charsets, matching load_font and load_font_data ( #312 )
...
Also use snake_case for splat_ext types
2021-07-16 10:28:37 +01:00
Ethan Roseman
f02743e1cb
Tidying and msg.c work ( #311 )
...
* undefined syms cleanup
* moving all remaining undefined funcs to dead_syms (as they're dead)
* Rename and update MessagePrintState
* msg wip
* B9D60 -> msg
* msg stuff
* .
* PR stuff
2021-07-13 22:43:14 +09:00
alex
31b0c3f685
Merge 4DF30 into battle/battle ( #309 )
...
* merge 4DF30 into battle/battle
* nomatching load_battle
* oops
2021-07-13 21:33:29 +09:00
alex
da6fd773bb
Disassemble battle/partner/goombario.c ( #308 )
...
* name battle/partner/ segments
* name battle_goombario sprites
* battle/partner/goombario data
* update
2021-07-12 22:00:45 +09:00
alex
8decbeb3ff
Disassemble fully battle/area_kmr_part_1 ( #307 )
...
* generate c includes for img segments
* flatten battle/item/dusty_hammer.c
needs custom splat
* use .inc.c for c incbins
* fixy
* new stuff
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "6120d18600"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "6120d18600"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* remove dumb
* git subrepo pull tools/splat
subrepo:
subdir: "tools/splat"
merged: "8a179e74ba"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "8a179e74ba"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* yaml cleaning
* Further yaml cleanup & battle item refactor
* remove rawptr
* disasm_script: handle = (const) NPC_ANIM
* disasm_script improvements
* wip
* it compiles!
* battles.c -> area.c
* squish warnings
* git subrepo pull tools/splat
subrepo:
subdir: "tools/splat"
merged: "fe30b60b75"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "fe30b60b75"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* all OK except rodata padding
* ok
* ACTOR_SELF
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-07-12 21:06:00 +09:00
Ethan Roseman
7cb1790789
Fix alignment of many data sections ( #305 )
...
* generate c includes for img segments
* flatten battle/item/dusty_hammer.c
needs custom splat
* use .inc.c for c incbins
* fixy
* new stuff
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "6120d18600"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "6120d18600"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* remove dumb
* git subrepo pull tools/splat
subrepo:
subdir: "tools/splat"
merged: "8a179e74ba"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "8a179e74ba"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* yaml cleaning
* Further yaml cleanup & battle item refactor
* remove rawptr
* git subrepo pull tools/splat
subrepo:
subdir: "tools/splat"
merged: "fe30b60b75"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "fe30b60b75"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* further cleanup
* Further cleanup & match gfx_draw_background
* clean & wip
Co-authored-by: Alex Bates <hi@imalex.xyz>
2021-07-12 18:15:00 +09:00
Ethan Roseman
6484e4883d
Work towards fixing alignment issues ( #304 )
2021-07-09 15:34:12 +01:00
alex
9dce90da41
Move D_80077908 to state_logos.c ( #303 )
...
* rm f270_len_1190.c
* state_logos data
2021-07-09 22:00:35 +09:00
alex
6da5c0e41b
Name many files ( #302 )
...
* get_spirits_rescued: use enum StoryProgress
* rename 6240_len_c00 to fio
* rename 1b40_len_20b0 to main_loop
* rename 3bf0_len_6f0 to input
* rename 42e0_len_1f60 to rumble
* rename 6e40_len_500 to curtains
* rename 7340_len_b00 crash
* match func_8002C890
* intro_logos and state_battle split
* rename e940_len_290 to state_startup
* split state_logos and state_pause
* state_file_select
* state_world, state_intro
* state_title_screen
* state_demo
* split game_modes and camera
2021-07-09 01:50:23 +09:00
Ethan Roseman
03eccf598f
Misc decomp 534 ( #301 )
...
* splat disasm update
* a little
* splat jtbl robustness
* git subrepo pull (merge) --force tools/splat
subrepo:
subdir: "tools/splat"
merged: "150dcdebfd"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "150dcdebfd"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* some rodata stuff
* git subrepo pull tools/splat
subrepo:
subdir: "tools/splat"
merged: "21bf3a381c"
upstream:
origin: "https://github.com/ethteck/splat.git "
branch: "master"
commit: "21bf3a381c"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo "
commit: "2f68596"
* progress
* All area rodata migrated
* UnkDistFunc
* SwitchToPartner
* UnkNpcAIFunc23
* UnkNpcAIFunc24
* UnkNpcAIFunc25
* cleanup & symbol_addrs
* disasm update
* work on fio.c (6240)
* data 'n' tst_04 funcz
* more tst_
* misc & PlayFX3D
* two end_01 funcs
* more shtuff
* fix
* fix2
2021-07-09 00:53:00 +09:00