* Remove unused RED|GREEN|BLUE_VALUE macros
* preproc: Add basic support for loading .pal files directly via INCPAL()
* Some potential boss_8 render fixes and misc. stuff
* Use INCPAL macro in src/data/sprite_animation.c (but that file's is unused rn?)
* Fix non-main-Makefiles not using preproc properly
* Remove all INCBIN(.gbapal) uses with INCPAL(.pal) in ./src
* Move gSpritePalettes to C
* Rename palette to time_display_singlepak.pal
* Remove obj_palettes.inc
* Use ColorRaw for known palettes
* Fix time_display match
* Rename palette to sound_test_bg.pal
* Add comment and scratch to sub_80236C8
* Use PALETTE_LEN_4BPP
* Document a vocal sample name. Thanks 'Asal (in Harmony)' for letting us know!
* Document palette names in /graphics
* Fix boss palette names
* Renmae to sBoss7Palettes
* Some Boss 7 documentation
* Add ShredWindowsGarbage to win32
* Make PLTT a Color[] in non-vanilla builds
* Make Tilemap use INCPAL
* 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>
* 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
* 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
* Move Boss_9 data to C
* sRGB_080D8E20 hex -> dec
* First pass on CreateTrueArea53Boss
* Move CreateTrueArea53Boss into non-matching
* Rename remaining MoveBossPositionFuncs
* Move TrueArea53BossMove into non-match
* Match Task_EggmanKidnapsVanilla
* Match Task_TrueArea53BossMain
* Match sub_804D8E0
* Match Task_804D9DC
* Match Task_804DB34
* More Boss 9 progress
* Make upper bound in PseudoRandBetween() exclusive, since many calls suggest this being the original pattern
* Match sub_804E078
* Move sub_804E15C into non-matching
* Start sub_804E4CC
* Move sub_804E4CC into non-match
* Match sub_804E66C
* Match sub_804E74C
* Match sub_804E974
* Move sub_804F1EC into non-matching
* Match sub_804F47C
* Match sub_804F5BC
* More progress
* Move sub_804F850 into non-matching
* Match sub_804FD58
* Match sub_804FE24, sub_804FEFC and sub_804FF9C
* Move sub_8050030 and sub_8050104 into non-matching
* Temporarily move sub_8050104 and sub_80501D4 into non-matching
* Almost match sub_8050958
* Remove boss_9.s
* Remove old stubs
* Minor cleanup and fix crash in Zone 3's background
* Add missing pointer refs in CreateTrueArea53Boss
* Almost match sub_80505B8 (basically on-par with sub_80501D4
* Ollie matched sub_80501D4 and sub_80505B8
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Tilemap unknown_stars -> music_plant_moving_stars
* Add DEBUG macro
* Progress on CreateTrueArea53Boss
* Some fixes for CreateTrueArea53Boss
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Convert Pipe data pointers to C
* Move Special Stage data to C
* Add C_DECL macro
* Use `#if` instead of `#ifdef` for some macros
* Add more stubs
* Rename RGB( ) macro to RGB16( ) to avoid naming conflicts
* Add defsym NON_MATCHING to ASFLAGS
* Use FLAGS_ macros instead of numbers
* Move debug_text_printer.h
* Add DCCredits
* Some formatting, some minor fixes
* Introduce ENABLE_DECOMP_CREDITS symbol
* More adjustments to the credits. Edit the Q_MUL macro
* Slight position adjustment for Sonic
* Minor fixes. Add note for weird Mod() compiler error
* Minor spelling mistake
* Remove build path from ldscript
* Fix issues with ldscript in chaogarden
* Update Makefile to handle building with other compilers
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Match sub_801F15C
* Fix faulty context generation
* Fake-match sub_801F07C
* Kind of match sub_801F044
* Properly match sub_801F044
* Ollie matched sub_801F07C
* Change proc prototype
* Refine Collision macro
* Document min/max fields in struct Camera
* Minor doc in camera.c
* Progress on sub_801EF94
* Get sub_801EF94 to match more closely
* Move sub_801EF94 into nonmatch
* Collision:🎏 u8 -> u16
* Fake-match sub_801EE64
* Fake-match sub_801EF94
* Fake-match sub_801ED24
* Progress on sub_801EC3C
* Match sub_801EC3C. Introduce CLAMP_32
* Reorganize new CLAMP macro
* Match sub_801ED24 properly
* Some documentation of stage_collision
* Match sub_801EB44
* Start sub_801E6D4
* Progress on sub_801E6D4
* Match sub_801E6D4
* Match sub_801E6D4
* Match sub_801E4E4
* Try making more sense of the strongly nested functions through macros
* Use the macros in more places
* Remove stage_collision.s
* Start SetupEggmanKidnapsVanillaTask
* Match SetupEggmanKidnapsVanillaTask
* Start on sub_8023708
* Match sub_80236C8 and sub_8023610
* Fake-match sub_8022F58
* Move sub_802302C into non-match
* Match sub_8023128
* Match sub_80231C0
* Match sub_8023260
* Start sub_80232D0
* Minor progress on sub_80232D0
* Progress on sub_80232D0
* Progress on sub_80232D0
* Progress on sub_80232D0
* Ollie matched sub_80232D0
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Remove player_1.s
* Remove redundant comment
* One PLAYERFN_CHANGE_SHIFT_OFFSETS macro
* Progress on sprite_4
* Ollie matched sub_8007858
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Rename sprite_4
* Move sub_800724C into non-match
* Progress on sub_8006228 (99%)
* Move sub_8006228 into nonmatch
* Move sub_80064A into nonmatch
* Remove bg_triangles_o.s
* Minor progress(?) on sub_8004860
* Some documentation in title_screen
* Some matching progress in GrindRail(+10%). Rename platform nonmatch file
* Some documentation in demo_manager
* Add rodata of some modules to make future extension of them nicer
* se_149 -> se_time_up
* More game_over documentation
* Start player_super_sonic
* Move sub_802BCCC into nonmatch
* Progress on player_super_sonic
* Move sub_802C92C into nonmatch. Match sub_802C8EC and sub_802C8A0
* Introduce SUPER_SWITCH_ANIM
* Merge player_super_sonic modules into one
* InitBackGround -> DrawBackground
* Some Camera struct doc
* gUnknown_03002260 -> gTilemapsRef
* gUnknown_03001B60 -> gBgOffsetsBuffer
* More var documentation
* Add some description for the two stage timers
* Move Task_801951C into nonmatch
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* c_header_parser: Add EQUALS and some compatibility fixes.
* Add stage_info.txt files to all maps
* Filter BriBaSA_ex as long as it doesn't have a Makefile
* Add fixes for the tokenizer
* Initial commit for BriBaSA_ex
* Update stage info
* Add spawn pos being shown as player character, add 'Go to spawn pos' keyboard shortcut, add ability to display item boxes.
* Renamed stage_info.txt -> metadata.txt, because regular tilemaps will make use of them
* BriBaSA_ex: Set camera to spawn pos when loading a map. Load all map paths on init. Cleanup.
* Implement drawing of most interactables
* Fix main not compiling when Raylib wasn't compiled before
* Add keyboard button controls and some cleanup
* Rename a few IA and anim constants
* Rename a few constants
* Add error output for unknown names when converting CSV->Bin using epos
* Add TILE_DIM and TILES_PER_METATILE, and some cleanup
* Move some procedures out of epos.c
* Minor cleanup
* Minor cleanup in csv_conv.c
* More cleanup and documentation
* More cleanup
* Move shared libraries inside tools to their own directories
* Remove redundant versions of shared libraries
* Fix warnings
* Add library binaries to .gitignore
* Add BriBaSA_ex Makefile
* Fix compilation
* Load entity data from CSV files and display them
* Fix some var and const names
* Fix includes
* Re-add Makefile for csv_conv
* Generalize drawing of IA textures and bounding boxes
* Split the code into multiple modules
* Rename a few IAs
* Rename Giant Propeller -> Propeller
* More adjustments for Propeller renaming
* BriBaSA_ex: Some restructuring
* Fix warning
* Add texture.c to build.bat
* Fix build errors from renaming IAs
* More restructuring
* Move constants to header file
* Cleanup
* Open buttons through 'UiElement()'
* Uncomment redundant call to FileExists
* Fix build
* BriBaSA: Fix crash
* Streamline entity data layout
* Split ring graphics into individual frames
* Make entities clickable
* Display metadata of highlit entity
* Print entity type if an Entity has one
* Fix IA bounding boxes
* Implement saving entities when clicking on 'Save Map'
* Add EntityData* to EntityDataPointer union
* Allow entity data to be edited
* Add IS_USER_KEY_PRESSED_ macros. Use them for the spawn position
* Fix gcc warnings
* Update readme
* Fix GCC warnings
* Fix Makefile compilation for Linux
* Update epos to use CsvEntityType
* Exclude tools dir when formatting
* Format...
* fix linux build and some makefile improvements
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* fix formatter, undo some debug stuff
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* fix CI
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* try this
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* this is better
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Replace MSVC-exclusive file functions
* remove comment
Co-authored-by: Oliver Bell <freshollie@gmail.com>
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Match sub_802DBC0
* Match sub_802E044
* Match sub_802E0D4
* Match sub_802E164 and sub_802E1EC
* Progress on sub_802E278 and sub_802E384
* Move sub_802E278 and sub_802E384 into nonmatch
* Split stage_intro.s
* Start SetupStageIntro
* Fix SITaskD's size being too small, resulting in an endless loop
* Move SetupStageIntro into nonmatch
* Update percentage
* Match Task_802F75C
* Move Task_802F9F8 into nonmatch
* Match Task_IntroColorAnimation
* Document some of Task_IntroColorAnimation
* Match StageIntroUpdateIcons
* Progress on Task_IntroZoneNameAndIconAnimations
* Move Task_IntroZoneNameAndIconAnimations into nonmatch
* Formatter........
* Move Task_IntroActLettersAnimations into nonmatch
* Match remaining procedures of intro module
* Make most procedures static
* Remove old asm file
* Fix function header types
* Progress on sub_8031138
* Move sub_8031138 into nonmatching
* Match sub_80310F0
* Some documentation of outro vars
* Almost match Task_UpdateGotThroughScreen
* Almost match Task_UpdateGotThroughScreen
* Move Task_UpdateGotThroughScreen into non-matching
* Remove Task_UpdateGotThroughScreen's asm
* Fix typo
* Start sub_80304DC and fix type of StageOutro.unk170
* Introduce SPECIAL_STAGE_REQUIRED_SP_RING_COUNT
* Progress on sub_80304DC
* Finish stage_outro.s
* Rename stage/outro.c -> stage/results.c
* Rename task creation to CreateStageResults
* Use ZONE_TIME_TO_INT in results.c
* Final cleanup
* Minor cleanup
* Delete stage_outro.s, again
* Start sub_8019CCC
* Address review issues
* Match sub_8019CCC
* Simplify sub_8019CCC
* Finish remaining procedures of player_mp_finish_1
* Start StageBgUpdate_Zone6Acts12
* Start matching StageBgUpdate_Zone6Acts12
* Move StageBgUpdate_Zone6Acts12 into nonmatch
* Fix endless loop in StageBgUpdate_Zone6Acts12
* Call params x/y
* Start player_actions.s. Match sub_801561C
* Match sub_80156D0
* Match more procs of player_actions.c
* Match sub_801583C
* Match Task_80159C8
* Match CreateAmyAttackHeartEffect
* Fake-match Task_8015CE4
* Match amy_attack_heart_effect.c
* Make a few variables local to boost_effect.c
* Rename IA019
* Rename IA094 -> Pole
* Rename IA080 -> light_globe
* Rename some IAs, rename dir tec_base -> techno_base for consistency
* Fix include paths to techno_base
* Rename sprite -> ia105 (change once IA105 is named!)
* Rename IAs to avoid their names starting with digits
* Edit CSV format to include map-width/-height and seperated regions instead of world positions
* Add item indices
* Update example format
* First draft for CSV->Bin conversion done
* Implement binary file export in epos
* Revert changes to propeller_spring.c
* Add CSV files
* Fix data-less CSV lines leading to exit
* Add rules for map entity data. Add rule to remove <entity>.bin files
* Remove <entity>.bin files
* Introduce Tilemap, replace MapHeader_Full.
* Add Background members metatileMap, mapWidth, mapHeight
* Export all raw, non-level tilemaps. Also find 3 unused ones
* Consistent naming for TM_CHARACTER_SELECT_ defines
* Add more info for matching, document TM_371 and format
* Add palettes which use transparency raw, fix pointer in pause_menu
* Remove redundant copies
* Convert gSpriteDimensions to C data
* Formatter of doom destroying formatting
* Move OamData into C
* Introduce NUM_SPRITE_ANIMATIONS
* Remove redundant copy
* Unwrap OAM sprite data into PACKED struct
* Remove outdated comment
* Fix formatter's formatting
* convert to typedef
Co-authored-by: Oliver Bell <freshollie@gmail.com>
---------
Co-authored-by: Oliver Bell <freshollie@gmail.com>
* Match stage_palette_loader
* Match stage_language_task_1
* Match stage_language_task_2
* Pop-Effect -> Dust-Cloud. Match stage/dust_cloud
* stage_debug_ui -> debug_text_printer. Match Debug Text Printer
* Match Task_StageMusicManager
* Match stage_music_manager
* (Sort of) match CreateStageRingsManager
* Move Task_RingsMgrMain into non-match. Match rest of Rings Manager