* Align InitPlayerHitRingsScatter
* Align InitScatteringRings
* More rings_scatter.c alignment
* More general alignment with SA1
* Align INCREMENT_SCORE macros with SA1
* Align Task_8008DCC with SA1
* Align Demo Manager with SA1
* Some minor cleanup
* Document static PlayerSpriteInfo vars
* Remove nonmatch SA1 code from entities_manager.c and rigns_scatter.c
* Use SA1's matching, yet technically bugged, loop in InitializePlayer
* Fix a potential bug due to memory alignment in Player struct
* Fix crashes due to uninitialized pointers
* Simplify InitializePlayer
Co-authored-by: Oliver Bell <freshollie@gmail.com>
-----------------------------------------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* document ItemBox object
* research & document Spring object
* research & document Platform objects
* research & document misc shared objects
* research & document a ton of player related vars & funcs
* research & document spikes object
* research & document Checkpoint
* research & document StageGoal & RoomEvent
* add RoomEvent type parameters
* add comment(s) for future research
* Some cleanup in title_screen.c
* Some documentation in unused_level_select.c
* Unify sa1_sa2_shared/collision.c and collision_1.c
* Remove sub_800D0A0 from stub.c
* Small pieces of documentation
* Document some globals and align characters.h with SA1
* Mostly align amy_attack_heart_effect.c with SA1
* Rename file of Ring -> Magnetic Ring
* Align save.h with SA1
* Rename Player.unk90|unk94 -> Player.spriteInfoBody|Limbs
* Add some comments
* Rename Spark Effect -> Grind Effect, document SA1's and SA2's versions a bit
* Various documentation and alignment with SA3
* Extract input_recorder.c .data section from core.c, as in SA3
* Align multi_sio.c with SA3
* Document parameters of DisplaySprites
* Document centerOffsetX/Y in DisplaySprites
* Only display copyright note
* Split GAME_ and ENGINE_ macros
* Use ENGINE macros in core.c
* Rename game<->engine interface procedures
* Remove searching in /src for header files in genctx.py
* Fix global.h<->config.h dependency in genctx.py
* Only enable Task logging in debug versions
* Fix uses of DEBUG, remove TEST_GFX_POINTERS because current gfx copy implementation already makes it redundant
* Use 64bit as default target in Win SDL
* Align some files with sa1 and sa3
* Align sprite.c and other files closer with sa1 and sa3
* Various documentation
* Some dodumentation and cleanup from SA1 core.c integration
* Rename sa1_leftovers/ -> sa1_sa2_shared/
* Put gEwramHeap into ewram_data section
* Refactor m4a for better names
* Bring in m4a PC backend code
* Update songs data to work on 64bit
* Move m4a to it's own folder
* Add linker map to sdl build
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Remove and move comments to the correct procedures
* Fix regular SDL compilation
* Move animation data from Asm to C
* Layout the anim macros in a common way. Add Big Endian support to them (I think?)
* add CI for sdl objs, fix some of the build on linux
* make native macos work
---------
Co-authored-by: bitten2up <bitten2up@courvix.com>
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Rename SpriteBase.spriteY -> SpriteBase.id
* Add explicit returns after TaskDestroy calls
* Rename 'sakit' -> 'sa1_leftovers' and put it into ./src/game/
* Some documentation
* Document more Player Transition values
* Rename to Player_Debug_TestRingScatter
* Use cast to make this code path compile in regular debug builds
* Document some Player callbacks
* Add SE_WATERFALL_SURFACE_HIT and add TRUE/FALSE to Player.isBoosting definitions
* Add constants/char_states.h, add those to sCharStateAnimInfo
* Document many uses of CHARSTATE_xyz
* Remove magic nums when comparing/setting Player.prevCharState
* Document PlayerTransitions and some Spring data
* Document various PlayerTransitions, charStates and player callback functions
* Document a bunch of Player function names
* Fix NONMATCH path typo and more Player funcs
* Document MOVESTATE_GOAL_REACHED
* Document Player Taunt procedure names
* Remove gotos in sub_8023610
* More Player documentation
* More character documentation
* Add DISABLE_TRICK_AIR_WAIT to player.h
* Some cleanup for sub_802DF18, but still non-matching
* Almost match sub_802E278, down to one add instr
* Some grind variable documentation
* Fix some of the logic in sub_801EE64
* Some general documentation
* Document Bouncy Bar tasks and fix compilation
* Some documentation in rotating handle
* Fix standalone compile/link
* Add standalone build CI
* Fix copy-paste of Q_24_8
* Align whitespace
* Potential random crash fix
* Add some DMA doc to standalone
* Remove old nonmatch ASM and add SDL comment
* Cleanup and #ifdef fix in player.c
* Match sub_802966C, fixing some control issues
* Some additions to Task_CreateStageUnknownTask
* Make CreateCharacterSelectionScreen scratch more recent
* Cleanup
* boss_run.s data -> boss_run.c
* Merge boss_run and boss_8
* Rename BOSS_8_ARM_ -> ARM_, since it's a local macro, anyway
* Remove boss_run from ldscript
* Remove data stubs
* Inline StageInit_SetMusic as was probably the case originally
* Some documentation
* Minor documentation
* Sprite.unk10 -> .frameFlags
* Sprite.unk1A -> .oamFlags
* Formatter...
* Set all Sprite.oamFlags values using SPRITE_OAM_ORDER macro
* Minor documentation
* Get logic of sub_8004860 to match the game closer, but ASM percentage is worse.
* Fix big parts of sub_8004860's logic, still not matching very well
* Rename sub_8004860 -> TransformSprite
* Minor cleanup
* Add potential fix for tile copying
* Reorder DMA offsets
* Add SDL fullscreen (Alt+Return)
* Formatter
* SPRITE_MAYBE_SWITCH_ANIM -> SPRITE_INIT_ANIM_IF_CHANGED
* Add graphics queue macros
* Reorder for compiler flags
* Add GFX Queue macros and logging
* Reformulate task logging
* Reorder compiler flags
* Minor boss8 cleanup
* Use new DMA layout
* Replace Div and Mod calls with macros
* Minor cleanup
* Add EXTENDED_OAM (WIP)
* Camera.unk38|.unk3C -> .dx|.dy
* Split logging output
* Fix syntax error
* Match MaskPaletteWithUnderwaterColor
* Document CheeseTarget and HomingTarget. Some cleanup
* Implement sub_8085968, but non-matching
* Ollie matched sub_8085968
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* EXTRA_STATE__* -> STAGE_FLAG__*
* Document Gravity Toggle
* Minor documentation in stage 2 background
* Rename IS_OUT_OF_GRAV_TRIGGER_RANGE -> IS_OUT_OF_CAM_RANGE_2
* Prettify ternary operators
* Simplify sub_807E66C
* Make StageBgUpdate_Zone2Acts12 match vanilla more closely
* More progress on StageBgUpdate_Zone2Acts12
* ReadMe -> ReadMapEntity
* Some documentation for Collect Ring's time_display.c
* Split math_0.s at unsed functions
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>