EarthBound/ASM/Palette Routines: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Document more subroutines)
(Document more subroutines)
Line 8: Line 8:


Decrements [[EarthBound:Palette_Memory#$7E445C|Animation Palette Remaining Frames]], and if zero, updates WRAM ([[EarthBound:Palette_Memory#$7E445E|Animation Palette Number]] and Animation Palette Remaining Frames) for the next animation palette and calls the subroutine at [[#$C0A1F2|$C0A1F2]] to load the next palette.
Decrements [[EarthBound:Palette_Memory#$7E445C|Animation Palette Remaining Frames]], and if zero, updates WRAM ([[EarthBound:Palette_Memory#$7E445E|Animation Palette Number]] and Animation Palette Remaining Frames) for the next animation palette and calls the subroutine at [[#$C0A1F2|$C0A1F2]] to load the next palette.
==<tt>$C00391-$C00433</tt>: Calculate color averages for map palette<span class="anchor" id="$C00391"></span>==
For the given map palette, averages out all the non-zero red values, all the non-zero green values, and all the non-zero blue values from all colors in all 6 subpalettes of the map palette. Stores the results to WRAM at [[EarthBound:Palette_Memory#$7E43D0|$7E43D0]], [[EarthBound:Palette_Memory#$7E43D2|$7E43D2]], and [[EarthBound:Palette_Memory#$7E43D4|$7E43D4]] respectively.
===Inputs===
* <tt>accumulator</tt>: Map palette data pointer
==<tt>$C00434-$C0047F</tt>: Cap palette color adjustment<span class="anchor" id="$C00434"></span>==
For the given unadjusted and adjusted color values (single red, green, or blue value), determines a new adjusted color value that is at most 6 different from the unadjusted. Used by the subroutine at [[#$C00480|$C00480]] to limit the difference made by sprite palette adjustements.
===Inputs===
* <tt>accumulator</tt>: Original unadjusted color value (red, green, or blue)
* <tt>x</tt>: Adjusted color value
===Outputs===
* <tt>accumulator</tt>: Capped adjusted color value
==<tt>$C00480-$C005E6</tt>: Adjust sprite palette colors for map palette<span class="anchor" id="$C00480"></span>==
==<tt>$C005E7-$C00629</tt>: Calculate color averages for default map palette<span class="anchor" id="$C005E7"></span>==


==<tt>$C0A1F2-$C0A20B</tt>: Load map palette animation palette<span class="anchor" id="$C0A1F2"></span>==
==<tt>$C0A1F2-$C0A20B</tt>: Load map palette animation palette<span class="anchor" id="$C0A1F2"></span>==

Revision as of 18:18, 17 July 2023

This is a sub-page of EarthBound/ASM.

$C0023F-$C0030E: Load map palette animation

First checks if the currently loaded map palette is animated, as indicated by a non-zero Palette Animation Index and a non-zero Animation Number of Palettes for that animation index, and sets the Animation Palette Active Flag accordingly in WRAM. If the palette is animated, loads Decompressed Map Animation Palettes, Animation Palette Frame Durations, Animation Palette Remaining Frames, and Animation Palette Number to WRAM.

$C0030F-$C0035A: Iterate map palette animation frame

Decrements Animation Palette Remaining Frames, and if zero, updates WRAM (Animation Palette Number and Animation Palette Remaining Frames) for the next animation palette and calls the subroutine at $C0A1F2 to load the next palette.

$C00391-$C00433: Calculate color averages for map palette

For the given map palette, averages out all the non-zero red values, all the non-zero green values, and all the non-zero blue values from all colors in all 6 subpalettes of the map palette. Stores the results to WRAM at $7E43D0, $7E43D2, and $7E43D4 respectively.

Inputs

  • accumulator: Map palette data pointer

$C00434-$C0047F: Cap palette color adjustment

For the given unadjusted and adjusted color values (single red, green, or blue value), determines a new adjusted color value that is at most 6 different from the unadjusted. Used by the subroutine at $C00480 to limit the difference made by sprite palette adjustements.

Inputs

  • accumulator: Original unadjusted color value (red, green, or blue)
  • x: Adjusted color value

Outputs

  • accumulator: Capped adjusted color value

$C00480-$C005E6: Adjust sprite palette colors for map palette

$C005E7-$C00629: Calculate color averages for default map palette

$C0A1F2-$C0A20B: Load map palette animation palette

Loads a palette from Decompressed Map Animation Palettes and replaces the current map palette.

Inputs

  • accumulator: Map animation palette number
So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?