* 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
* Fix nullpointer crash in stage intro, when starting the Extra Boss stage
* Add first NOT-WORKING (WIP) pass on OpenGL renderer in win32
* Address #ifdef comment
* Fix capitalization
* 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 padding from RLUnCompWram since we don't need this
* Add a graphics queue copy buffer for prevening a race condition in the dimps engine design
* Fix a DMA copy bug on init
* Fix backgrounds in high resolutions
* Fix boost after-image palette being off by 1.
* Fix wave gradient in higher resolutions
* Add TEMP_FIX #define. Remove call creating the spotlights in Zone 4's background to circumvent crash. General cleanup
* Document and fix some of Zone 5's background functions
* Minor cleanup
* Simplify Enemy Yado collision code
* Fix Small Windmill IA despawn condition
* Use -1 instead of 0xFF for prevVariant
* Use HB_COLLISION macro for enemy Spinner
* Use HB_COLLISION macro for enemy Madillo
* Some documentation and bug fixes
* Remove redundant #include and some cleanup
* Order DMA register types in the same way
* Fix compilation error in zone_6 BG
* More zone_6 palette fixes
* Some DMA 64 fixes
* fix macos 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>
* Add a color buffer for VRAM view
* Fix graphics not being processes in-time
* Progress on sub_8002B20
* Some more sub_8002B20 matching
* Remove constants in on-screen checks
* Some documentation and cleanup
* Win-Range and screen range documentation
* Fix nullpointer dereference in water_effects.c
* Rename STAGE_FLAG__4 -> STAGE_FLAG__TIMER_REVERSED
* Rename MapHeader.h -> MapHeader.tileset. Use Tilemap* for gTilemaps and gTilemapsRef
* Rename some camera background flags for accuracy
* BACKGROUND_DONT_UPDATE_TILESET and BACKGROUND_DONT_UPDATE_PALETTE -> BACKGROUND_DISABLE_TILESET_UPDATE and BACKGROUND_DISABLE_PALETTE_UPDATE
* Fix Note Blocks not spawning
* Use (DISPLAY_HEIGHT - 1) in Hot Crater's BG code
* Temp hack for Magnet Shield softlocking
* Some bgmap cleanup, fixes and documentation
* Remove invalid scratch link
* Rename Sprite.timeUntilNextFrame -> .qAnimDelay
* 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 Boss 2 documentation
* Some Sprite and BG documentation
* More minimal Boss 2 doc
* Move non-vanilla DmaWait impl.
* Add null-check to debug_text_printer
* Add CLEAR_TASK_MEMORY_ON_DESTROY toggle to Task system, to find and prevent use-after-free bugs
* Fix multiple use-after-free bugs
* Remove old address comments
* Add null-check to TasksExec (might be temporary)
* Fix use-after-free bug in sound test
* Use DISPLAY_HEIGHT instead of a magic number
* Add toggle for new DMA layout
* Some Sound Test doc
* Document gUnknown_080D6736
* Fix Sonic air-dashing instead of jumping in non-matching builds
* Some player func documentation
* Rename TogglePlayerLayer structs to reflect current naming convention