<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sneslab.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LX5</id>
	<title>SnesLab - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sneslab.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LX5"/>
	<link rel="alternate" type="text/html" href="https://sneslab.net/wiki/Special:Contributions/LX5"/>
	<updated>2026-04-29T05:46:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=Bithacks&amp;diff=1890</id>
		<title>Bithacks</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=Bithacks&amp;diff=1890"/>
		<updated>2021-04-25T19:12:12Z</updated>

		<summary type="html">&lt;p&gt;LX5: Modified formatting to allow linking to individual sections and let the site automatically generate a table of contents.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bithacks are optimization tricks that utilize information in bits and [https://en.wikipedia.org/wiki/Bit_manipulation bit manipulation]&lt;br /&gt;
to accomplish their tasks. Usually they work in a slightly non-obvious way, (the most famous being the [https://en.wikipedia.org/wiki/Fast_inverse_square_root fast inverse sqrt]), and bit manipulation in general is harder on the 65c816. To that end here is a collection of some useful tricks.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note: cycle counts are intended to be a worst case measure.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Math Bithacks =&lt;br /&gt;
== Signed Division By 2 ==&lt;br /&gt;
&#039;&#039;3 bytes / 4 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	CMP #$80&lt;br /&gt;
	ROR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signed Division By 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; ==&lt;br /&gt;
&#039;&#039;6+n bytes / 6+2n cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; signed division by two, n times&lt;br /&gt;
macro SignedDiv_2N(n)&lt;br /&gt;
	LSR #&amp;lt;n&amp;gt;&lt;br /&gt;
	BIT.b #$80&amp;gt;&amp;gt;&amp;lt;n&amp;gt;&lt;br /&gt;
	BEQ ?positive&lt;br /&gt;
	ORA.b #$FF00&amp;gt;&amp;gt;&amp;lt;n&amp;gt;    ; sign extension&lt;br /&gt;
?positive:&lt;br /&gt;
endmacro&lt;br /&gt;
&lt;br /&gt;
; -1 cycle and +n bytes, but must have N flag set before use&lt;br /&gt;
macro SignedDiv_2N(n)&lt;br /&gt;
	BMI ?negative&lt;br /&gt;
	LSR #&amp;lt;n&amp;gt;&lt;br /&gt;
	BRA ?end&lt;br /&gt;
?negative:&lt;br /&gt;
	LSR #&amp;lt;n&amp;gt;&lt;br /&gt;
	ORA.b #$FF00&amp;gt;&amp;gt;&amp;lt;n&amp;gt;    ; sign extension&lt;br /&gt;
?end:&lt;br /&gt;
endmacro&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Absolute Value ==&lt;br /&gt;
&#039;&#039;5 bytes / 6 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A, (N Flag)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro abs()&lt;br /&gt;
	BPL ?plus&lt;br /&gt;
	EOR #$FF&lt;br /&gt;
	INC&lt;br /&gt;
?plus:		; only 3 cycles if branch taken&lt;br /&gt;
endmacro&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Absolute Value (SEC) ==&lt;br /&gt;
&#039;&#039;4 bytes / 4 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A, (Carry Set)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; compared to the branching version this is 1 byte smaller&lt;br /&gt;
; it&#039;s either 2 cycles slower/faster depending on branch taken&lt;br /&gt;
	EOR #$7F&lt;br /&gt;
;	SEC		; the instant you add this in it becomes worse than the branching version&lt;br /&gt;
	SBC #$7F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Magnitude/Extents Check ==&lt;br /&gt;
&#039;&#039;~7 bytes / 12 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; (none)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; asks &amp;quot;Is [A] on the zero-side of value [X] or the far side?&amp;quot;&lt;br /&gt;
; good for magnitude checks, smaller *AND* faster than alternatives&lt;br /&gt;
; NOTE: in the event that it is exactly [X] it will have that value at branch&lt;br /&gt;
; doesn&#039;t need to be an indexed CMP but is most useful this way&lt;br /&gt;
; this can be used to combine the BPL and BMI checks for both signs into one&lt;br /&gt;
	SEC : SBC Extents,x&lt;br /&gt;
	EOR Extents,x&lt;br /&gt;
	BMI .zero_side&lt;br /&gt;
.far_side:&lt;br /&gt;
	; do things&lt;br /&gt;
.zero_side:&lt;br /&gt;
	; do things&lt;br /&gt;
&lt;br /&gt;
Extents:&lt;br /&gt;
	db -$23, $23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Misc. Tricks =&lt;br /&gt;
&amp;lt;small&amp;gt;As this list grows tricks here will be consolidated into their own sections. Clever optimization tricks that aren&#039;t necessarily what someone might personally call a &amp;quot;bithack&amp;quot; are okay here as well!&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clear High Byte of Accumulator ==&lt;br /&gt;
&#039;&#039;1 byte / 2 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; (none)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; &amp;quot;Trashes&amp;quot; A but clears high byte&lt;br /&gt;
	TDC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Direction/Facing As Index ==&lt;br /&gt;
&#039;&#039;4 bytes / 6 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; Ever wonder why facing flags are 0=right and 1=left? This is why. It&#039;s incredibly cheap.&lt;br /&gt;
	ASL&lt;br /&gt;
	ROL&lt;br /&gt;
	AND #$01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Skip Dead Code ==&lt;br /&gt;
&#039;&#039;1-2 bytes / 2-3 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; (none)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; (none)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; If you need to skip one byte of dead code (due to a hijack or whatever reason) you can use:&lt;br /&gt;
	NOP		; 1 byte, 2 cycles&lt;br /&gt;
&lt;br /&gt;
; But if you need to skip just 2 bytes the most efficient is:&lt;br /&gt;
; NOTE: many times WDM is used as a breakpoint for debugging so only do this as a final pass to speed up your code!&lt;br /&gt;
	WDM		; 2 bytes, 2 cycles&lt;br /&gt;
&lt;br /&gt;
; Finally, if you need to skip a large amount of dead code you can use BRA/JMP instead&lt;br /&gt;
; JMP is as fast as BRA on the SNES CPU, but will be slightly slower on SA-1, and 1 cycle slower on SPC. So BRA is recommended&lt;br /&gt;
; (The extra byte used for JMP in this case doesn&#039;t matter)&lt;br /&gt;
	BRA +		; 2 bytes, 3 cycles&lt;br /&gt;
	; dead code&lt;br /&gt;
+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check 3 Conditions ==&lt;br /&gt;
&#039;&#039;2 bytes / 2 cycles&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;inputs:&amp;lt;/u&amp;gt; A&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;outputs:&amp;lt;/u&amp;gt; (none)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; just the opcode as normal here (not counting the conditions), using any operand that&#039;s not immediate (#)&lt;br /&gt;
; it&#039;s worth noting that you can do up to 3 tests with a single opcode though!&lt;br /&gt;
; Just As A Reminder: the V &amp;amp; N flag are set by the *operand* to BIT not the result of the AND!&lt;br /&gt;
	BIT $00&lt;br /&gt;
	BMI .bit7_set&lt;br /&gt;
	BVS .bit6_set&lt;br /&gt;
	BNE .bit5_set	; assuming #$20 is in $00&lt;br /&gt;
.bit7_set:&lt;br /&gt;
.bit6_set:&lt;br /&gt;
.bit5_set:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=SMW_Resource_Memory_Map&amp;diff=1174</id>
		<title>SMW Resource Memory Map</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=SMW_Resource_Memory_Map&amp;diff=1174"/>
		<updated>2020-06-08T19:55:55Z</updated>

		<summary type="html">&lt;p&gt;LX5: Fixed description about $7FB004 in AddMusicK section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Organization comes later. Feel free to add major patches here as well.&amp;lt;br&amp;gt;&lt;br /&gt;
Also feel free to suggest a good way to represent SA-1 addresses (if applicable).&lt;br /&gt;
&lt;br /&gt;
== Lunar Magic ==&lt;br /&gt;
Note about SA-1:&lt;br /&gt;
&lt;br /&gt;
For addresses between $7E:0000-$7E:00FF, the SA-1 equivalent is $3000-$30FF (code bank). For addresses between $7E:0200-$7E:1FFF, the SA-1 equivalent is $6200-$7FFF (code bank) or $40:0200-$40:1FFF (absolute).&lt;br /&gt;
&lt;br /&gt;
Any other address used by Lunar Magic does not have any SA-1 equivalent and must be manipulated by the SNES CPU. &lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
Most of these addresses were acquired from Lunar Magic&#039;s help file and files floating around the internet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! LM Version !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E:0BF5 || 1 byte || 3.00 || ExLevel (Dynamic Levels) flags.&lt;br /&gt;
Format: %toPsssss&lt;br /&gt;
* o: Overscan level mode. If set, the camera will try scrolling to the maximum vertical level edge (15 extra pixels).&lt;br /&gt;
* t: Two layers flag. If set, it means the level has two interactive layers (layer 1+2 or layer 1+3).&lt;br /&gt;
* P: New sprite spawn flag. It&#039;s a copy of the 5th bit from the sprite header and it&#039;s used for checking if the sprites uses the new data structure or not.&lt;br /&gt;
* sssss: Vertical level mode. It gets indexed by a table to get the screen height. See [[Lunar_Magic/Custom_Level_Sizes]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
| $7E:0BF6 || 256 bytes || 3.00 || ExLevel RAM (to be filled later).&lt;br /&gt;
|-&lt;br /&gt;
| $7E:13D7 || 2 bytes || 3.00 || Screen vertical size.&lt;br /&gt;
|-&lt;br /&gt;
| $7E:1936 || 2 bytes || 3.00 || Screen vertical size - #$0010. Used only for adjusting smkdan&#039;s VRAM patch.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C004 || 1 byte || Unknown || Legacy ExAnimations frame counter. Used to be the frame counter for every ExAnimation slot, now it&#039;s only accurate for slots 0, 8, 10 and 18.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C060 || 16 bytes || 1.80 || Conditional Direct Map16 flags.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C070 || 16 bytes || 1.70 || Manual ExAnimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
Each byte corresponds to one manual ExAnimation slot. This block of RAM addresses isn&#039;t initialized unless you use the Trigger Init button in the ExAnimation dialog.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C080 || 32 bytes || Unknown || Level ExAnimations frame counter. Each byte corresponds to one slot.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C0A0 || 32 bytes || Unknown || Global ExAnimations frame counter. Each byte corresponds to one slot.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C0F8 || 4 bytes || 1.70 || One Shot Exanimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C0FC || 2 bytes || 1.70 || Custom ExAnimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
Each bit corresponds to each custom ExAnimation slot. If a bit is on it means the trigger is enabled. This block of RAM addresses isn&#039;t initialized unless you use the Trigger Init button in the ExAnimation dialog.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:8183 || 422 bytes || 1.70 || Used for VRAM modification. See below for details.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:8183 || 2 bytes || 1.70 || Holds the Layer 1 VRAM tilemap address, similar to $7E:1BE4. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:8185 || 2 bytes || 1.70 || Holds the Layer 2 VRAM tilemap address, similar to $7E:1BE4. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:8187 || 2 bytes || 1.70 || Holds the Layer 1 VRAM address for column upload. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:8189 || 2 bytes || 1.70 || Holds the Layer 2 VRAM address for column upload. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:818B || 128 bytes || 1.70 || Holds the Layer 1 column buffer. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:820B || 128 bytes || 1.70 || Holds the Layer 2 column buffer. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:BC00 || 1024&amp;amp;nbsp;bytes || 1.70 || Map16 low-byte buffer. Used for VRAM modification.&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C00B || 2 bytes? || Unknown || Unknown purpose. Used in $0E:FD00 to perform a bit 2 check.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7F:C300 || 1024 bytes || 1.70 || Map16 high-byte buffer. Used for VRAM modification.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $03BCE0 || Routine to implement the bytes 4/5/6/7 of the secondary entrance data.&lt;br /&gt;
|-&lt;br /&gt;
| $05DC80 || Getter routines for the latter three secondary exit bytes. Specifically, $05DC80 for byte 3, $05DC85 for byte 4, and $05DC8A for byte 5. Bytes 0-2 are at $0DE190.&lt;br /&gt;
|-&lt;br /&gt;
| $05DCD0 || Routine used to handle the high bit of level numbers.&lt;br /&gt;
|-&lt;br /&gt;
| $05DD00 || Routine to transfer the water/slippery flags from $192A to $85/$86 on level load. After execution, the two flags are cleared from $192A.&lt;br /&gt;
|-&lt;br /&gt;
| $05DD30 || Routine to implement bytes 5/6/7 of the secondary level header.&lt;br /&gt;
|-&lt;br /&gt;
| $05DD80 || Routine used for setting up the initial overworld level flags.&lt;br /&gt;
|-&lt;br /&gt;
| $05DDA0 || Table of initial overworld flags for each level ($1EA2). If LM&#039;s overworld expansion hijack is applied, it is instead moved to $03BE80, while this block is left unused.&lt;br /&gt;
|-&lt;br /&gt;
| $05DE00 || Table used for byte 4 of the secondary level header.&lt;br /&gt;
|-&lt;br /&gt;
| $06F540 || Routine to get the VRAM data for a particular Map16 tile; also used for the overworld&#039;s Layer 1 tiles. The tile number should be passed in A, left-shifted 3 times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alternative entry points also exist at $06F5D0 (for the tile generation routine at $00BEB0) and at $06F5E4 (for the overworld Layer 1 tiles).&lt;br /&gt;
|-&lt;br /&gt;
| $06F600 || Routine to get a Map16 tile&#039;s &amp;quot;acts-like&amp;quot; setting. The actual entry point is at $06F608, but note that it is an RTS-ended routine.&lt;br /&gt;
|-&lt;br /&gt;
| $06F660 || A series of routines used to call various handlers for custom Map16 blocks. Specifically:&amp;lt;br/&amp;gt;&lt;br /&gt;
$06F660 - MarioBelow, MarioAbove, MarioSide, TopCorner, BodyInside, HeadInside&amp;lt;br/&amp;gt;&lt;br /&gt;
$06F700 - SpriteV, SpriteH&amp;lt;br/&amp;gt;&lt;br /&gt;
$06F760 - MarioCape&amp;lt;br/&amp;gt;&lt;br /&gt;
$06F7A0 - MarioFireball&amp;lt;br/&amp;gt;&lt;br /&gt;
(handlers for WallFeet and WallBody are implemented by GPS, at $06F7D0 and $06F7E0 respectively)&lt;br /&gt;
|-&lt;br /&gt;
| $06FC00 || Table used for byte 5 of the secondary level header.&lt;br /&gt;
|-&lt;br /&gt;
| $06FE00 || Table used for byte 6 of the secondary level header.&lt;br /&gt;
|-&lt;br /&gt;
| $0DE190 || Getter routines for the first three secondary exit bytes. Specifically, $0DE190 for byte 0, $0DE196 for byte 1, and $0DE19D for byte 2. Bytes 3-5 are at $05DC80.&lt;br /&gt;
|-&lt;br /&gt;
| $0DE1B0 || Implementation of extended object 02, the 5-byte screen exit.&lt;br /&gt;
|-&lt;br /&gt;
| $0DE1D0 || Implementation of extended object 01, the screen jump.&lt;br /&gt;
|-&lt;br /&gt;
| $0DE1E0 || Implementation of extended object 03, the vertical screen jump.&lt;br /&gt;
|-&lt;br /&gt;
| $0EF100 || Bank bytes for each of the level sprite data pointers.&lt;br /&gt;
|-&lt;br /&gt;
| $0EF300 || Routine to implement the bank bytes (from $0EF100) for the sprite data pointers.&lt;br /&gt;
|-&lt;br /&gt;
| $0EF55D || Holds a 24-bit pointer to custom overworld sprite data. $FFFFFF if none present.&lt;br /&gt;
|-&lt;br /&gt;
| $0EF570 || Routine to upload a custom palette from the table at $0EF600. Note: calls $05BE8A upon return.&lt;br /&gt;
|-&lt;br /&gt;
| $0EF600 || Table of 24-bit pointers to the custom palettes for each level. If a palette is FFFFFF, the ROM contains no custom palettes at all. If 000000, that particular level just does not have a custom palette.&lt;br /&gt;
|-&lt;br /&gt;
| $0EFD00 || Routine to get a 24-bit pointer to the background Map16 page set. The actual pointers are in a table at $0EFD50, with 0x10 pages per pointer.&lt;br /&gt;
|-&lt;br /&gt;
| $0FF0A0 || Lunar Magic version string.&lt;br /&gt;
|-&lt;br /&gt;
| $0FF600 || Table of 24-bit pointers to ExGFX 80-FF. A value of 000000 means not inserted. ExGFX 100-FFF can be found in a table at read3($0FF937).&lt;br /&gt;
|-&lt;br /&gt;
| $0FF900 || GFX decompression routine.&amp;lt;br&amp;gt;&lt;br /&gt;
It can&#039;t decompress GFX files 32 or 33.&amp;lt;br&amp;gt;&lt;br /&gt;
On entry:&amp;lt;br&amp;gt;&lt;br /&gt;
* A should contain the 16-bit GFX/ExGFX file number you want to decompress.&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 should contain the 24-bit address of where to decompress the data to.&amp;lt;br&amp;gt;&lt;br /&gt;
On exit:&amp;lt;br&amp;gt;&lt;br /&gt;
* Processor bits are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* Contents of X are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* Contents of Y are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* A is not preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AddMusicK ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
Note: AddMusicK&#039;s RAM addresses ($7FB000-$7FB00A) are reset during the SPC Program upload.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E1DFA || 0x1 || Command list.&amp;lt;br&amp;gt;&lt;br /&gt;
*$01 - Jump SFX. Sounds glitched due to it overwritting part of arpeggio&#039;s RAM with unexpected data. See L_0A14 for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
*$02 - Turns on Yoshi Drums.&amp;lt;br&amp;gt;&lt;br /&gt;
*$03 - Turns off Yoshi Drums.&amp;lt;br&amp;gt;&lt;br /&gt;
*$04 - Grinder SFX. Potentially glitched.&amp;lt;br&amp;gt;&lt;br /&gt;
*$05 - Disables echo effect on SFXs.&amp;lt;br&amp;gt;&lt;br /&gt;
*$06 - Enables echo effect on SFXs.&amp;lt;br&amp;gt;&lt;br /&gt;
*$07 - Pauses music.&amp;lt;br&amp;gt;&lt;br /&gt;
*$08 - Unpauses music.&amp;lt;br&amp;gt;&lt;br /&gt;
*$09-$FE - Unused&amp;lt;br&amp;gt;&lt;br /&gt;
*$FF - Jumps to L_099C. It &#039;&#039;seems&#039;&#039; to prepare the SPC700 to receive data. Disables echo, sets delay to 0, turns off channels, resets the song number (SPC Output 2 = 0). Needs testing.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB000 || 0x1 || Current song playing.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB001 || 0x1 || Flag used to disable sample upload when switching to a new song.&amp;lt;br&amp;gt;&lt;br /&gt;
Reset when a song finishes being uploaded to ARAM.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB002 || 0x2 || Unused. Meant to be:&amp;lt;br&amp;gt;&lt;br /&gt;
ARAM/DSP Address.&lt;br /&gt;
* To write to ARAM: Set $7FB002 to the address, and $7FB004 to the value to write.  Note that the address cannot be $FFxx.&lt;br /&gt;
* To write to the S-DSP: Set $7FB002 to the address, $7FB003 to #$FF, and $7FB004 to the value to write.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB004 || 0x4 || SPC Output.&amp;lt;br&amp;gt;&lt;br /&gt;
* $F4 $05 will send a 16-bit value containing the current song position.&amp;lt;br&amp;gt;&lt;br /&gt;
* $F9 $XX $YY will send $XX and $YY to $7FB004 and $7FB005 respectively. (Needs verification)&amp;lt;br&amp;gt;&lt;br /&gt;
* $7FB006 and $7FB007 are unused and most likely have garbage sent by the program.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB008 || 0x1 || Unused. Meant to have the same purpose as $7E0DDA.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB009 || 0x1 || Sample count in the current song.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB00A || 0x400 || ARAM SRCN table.&lt;br /&gt;
Used as a buffer for the sample pointer/loop table.  Could be up to 1024 bytes long, but this is unlikely (4 bytes per sample; do the math).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $008079 || UploadSPCData.&amp;lt;br&amp;gt;&lt;br /&gt;
This is an ever-so-slightly modified version of SMW&#039;s SPC upload routine. You can jump here at any time to upload data to the SPC.&amp;lt;br&amp;gt;&lt;br /&gt;
Input:&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 - Address of the block to upload to ARAM&amp;lt;br&amp;gt;&lt;br /&gt;
* $03-$04 - Position in ARAM to jump to upon completion&amp;lt;br&amp;gt;&lt;br /&gt;
* $05-$06 - Clobbered.  Unused on entry; will be the size of the transferred data when finished.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $008135 || UploadSPCDataDynamic. This address needs to be checked.&lt;br /&gt;
This is an alternate version of the upload routine. Call this if it is impossible to determine ahead of time where data will go. This routine is used to upload samples by default, but it can upload anything.&amp;lt;br&amp;gt;&lt;br /&gt;
Input:&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 - Address of the block to upload to ARAM&amp;lt;br&amp;gt;&lt;br /&gt;
* $03-$04 - Position in ARAM to jump to upon completion&amp;lt;br&amp;gt;&lt;br /&gt;
* $05-$06 - Size of the data to upload (this address is NOT clobbered).&amp;lt;br&amp;gt;&lt;br /&gt;
* $07-$08 - Address in ARAM to upload to (recommended to increment it by ($05) when you finish to upload consecutive data)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PIXI ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPS ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Custom Powerups ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E2000 || 0x800 || RAM with different purposes. Only uses 0x1D4 bytes at the moment.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E2800 || 0x2000 || Reserved as a decompression buffer for the 5th tile GFX.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E4800 || 0x2000 || Reserved as a decompression buffer for dynamic items GFX.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E6800 || 0x800 || Reserved as a copy of the first 2KiB of the latest decompresed GFX file.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E7000 || 0xCFF || Free to use.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Dynamic Z ==&lt;br /&gt;
https://sneslab.net/wiki/Dynamic_Z#RAM_Addresses&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=Resource_List&amp;diff=1086</id>
		<title>Resource List</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=Resource_List&amp;diff=1086"/>
		<updated>2020-01-13T17:49:54Z</updated>

		<summary type="html">&lt;p&gt;LX5: Removed DiztinGUIsh from the Tools list.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to various resources developed by members of SNESLab until an official resource page is opened along with an uploader. For now, if you have stuff you want exclusive to SNESLab, feel free to link them here. If the list becomes bigger, separate pages may be required alongside here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: You may remove your own resources at any time.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== ROM Hacks ==&lt;br /&gt;
* None listed.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
=== General ===&lt;br /&gt;
* [https://github.com/VitorVilela7/SA1-Root SA-1 Root] by [[User:Vitor_Vilela|Vitor Vilela]].&lt;br /&gt;
* [https://github.com/VitorVilela7/SnesSpeedTest SnesSpeedTest] by [[User:Vitor_Vilela|Vitor Vilela]].&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
=== Super Mario World ===&lt;br /&gt;
==== [https://www.dropbox.com/sh/icsm6ltj3kesqgi/AAApte1jqQNoLu_Q-e2R2thqa?dl=0 Masterlink&#039;s Song Pack] ====&lt;br /&gt;
* Castlevania: Aria of Sorrow - Castle Corridor [Sampled]&lt;br /&gt;
* Castlevania: Harmoney of Dissonance - Chapel of Dissonance [Unsampled]&lt;br /&gt;
* Castlevania: Legends - Highest Castle Floor (Stage 4) 16-bit Remix [Unsampled]&lt;br /&gt;
* CUSTOM (Nox-Kixune) - Pirates [Sampled]&lt;br /&gt;
* Donkey Kong Country - Mine Cart Madness [Sampled]&lt;br /&gt;
* Donkey Kong Country 2: Diddy&#039;s Kong Quest - Boss Bossanova [Unsampled/Sampled]&lt;br /&gt;
* Donkey Kong Country 2: Diddy&#039;s Kong Quest - Token Tango [Sampled]&lt;br /&gt;
* Donkey Kong Land - Flooded Ruins [Sampled] &#039;&#039;(Requires 7zip to open)&#039;&#039;&lt;br /&gt;
* Elevator Action (GBA) - Stage 7 [Sampled]&lt;br /&gt;
* Final Fantasy III - Priestess Aria [Sampled]&lt;br /&gt;
* Final Fantasy V - A New World [Sampled]&lt;br /&gt;
* Final Fantasy VI - Kefka&#039;s Tower [Sampled]&lt;br /&gt;
* Final Fantasy VI - The Fierce Battle [Unsampled/Sampled]&lt;br /&gt;
* Final Fantasy VII - Forested Temple [Unsampled]&lt;br /&gt;
* Final Fantasy X - Scilence Before the Storm [Sampled]&lt;br /&gt;
* Golden Sun - Isaac&#039;s Battle Theme [Sampled]&lt;br /&gt;
* Golden Sun, The Lost Age - Felix Battle Theme [Sampled]&lt;br /&gt;
* Kirby &amp;amp; The Amazing Mirror - Boss Battle [Sampled]&lt;br /&gt;
* Kirby Dreamland 2 - Dark Castle [Unsampled]&lt;br /&gt;
* Kirby Nightmare in Dreamland - Nightmare Battle (Final Boss) [Sampled]&lt;br /&gt;
* Kirby Nightmare in Dreamland - Rainbow Resort [Sampled]&lt;br /&gt;
* Magical Pop&#039;n - Around the Castle [Unsampled]&lt;br /&gt;
* Mario &amp;amp; Luigi: Super Star Saga - Beanbean Fields [Sampled]&lt;br /&gt;
* Mario &amp;amp; Luigi: Super Star Saga - Bowser&#039;s Castle [Sampled]&lt;br /&gt;
* Mario &amp;amp; Luigi: Super Star Saga - Hoohoo Village [Sampled]&lt;br /&gt;
* Mega Man Legends - At a Place Nobody Knows [Sampled]&lt;br /&gt;
* Mega Man X - Armored Armadilo [Sampled]&lt;br /&gt;
* Mega Man X3 - Blizzard Buffalo [Sampled]&lt;br /&gt;
* Mother 3 - Mr. Batty Twist [Sampled]&lt;br /&gt;
* Romancing Saga 3 - Byunei&#039;s Nest [Unsampled]&lt;br /&gt;
* SaGa 2 - Dreadful Fight (RS3 Arrangement) [Sampled]&lt;br /&gt;
* SaGa Frontier - Battle 2 [Sampled]&lt;br /&gt;
* Secret of Mana - Crystal Forest ~ A Wish [Unsampled]&lt;br /&gt;
* Secret of Mana - Forest ~ Into the Thick of it [Sampled]&lt;br /&gt;
* Secret of Mana - Ice Palace ~ Eight Ringing Bells [Sampled]&lt;br /&gt;
* Secret of Mana - Kakkara Desert ~ Secret of the Arid Sands [Unsampled]&lt;br /&gt;
* Secret of Mana - Pandora ~ Rose and Ghost [Sampled]&lt;br /&gt;
* Secret of Mana - Sage Joch&#039;s Cave ~ The Legend [Unsampled]&lt;br /&gt;
* Secret of Mana - Sunken Continent ~ Star of Darkness [Sampled]&lt;br /&gt;
* Seiken Densetsu 3 (Trials of Mana) - Few Paths Forbidden [Unsampled] &#039;&#039;(Requires 7zip to open)&#039;&#039;&lt;br /&gt;
* Seiken Densetsu 3 (Trials of Mana) - Strange Machine [Sampled]&lt;br /&gt;
* Super Bomberman 2 - BGM 2 [Sampled]&lt;br /&gt;
* Super Mario RPG - Fight Against an Armed Boss [Sampled]&lt;br /&gt;
* Super Mario World - Title Screen (Beta Festive Remix) [Unsampled]&lt;br /&gt;
* Tales of Phantasia - Biting Cold [Unsampled] &#039;&#039;(Requires 7zip to open)&#039;&#039;&lt;br /&gt;
* Wrecking Crew &#039;98 - Title Screen [Sampled]&lt;br /&gt;
* Xenogears - Faraway Promise [Sampled]&lt;br /&gt;
* Zelda: Majora&#039;s Mask - Song of Healing [Sampled]&lt;br /&gt;
* Zelda: Ocarina of Time/Majora&#039;s Mask - Goron City/Village [Sampled]&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
* None listed.&lt;br /&gt;
&lt;br /&gt;
== ASM ==&lt;br /&gt;
=== Patches: ===&lt;br /&gt;
==== Super Mario World: ====&lt;br /&gt;
* [https://github.com/TheLX5/Cappy Cappy] by lx5.&lt;br /&gt;
* [https://github.com/TheLX5/Powerups Powerups Patch] by lx5.&lt;br /&gt;
* [https://github.com/VitorVilela7/SA1-Pack SA-1 Pack] by [[User:Vitor_Vilela|Vitor Vilela]].&lt;br /&gt;
* [https://github.com/TheLX5/Star-Coins Star Coins] by lx5. (Unfinished)&lt;br /&gt;
&lt;br /&gt;
=== Sprites: ===&lt;br /&gt;
==== Super Mario World: ====&lt;br /&gt;
* [https://github.com/TheLX5/SMW-Sprites/tree/master/Cosmic%20Clone Cosmic Clones] by lx5.&lt;br /&gt;
* [https://github.com/TheLX5/SMW-Sprites/tree/master/Fire%20Bones Fire Drybones] by lx5.&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=SMW_Resource_RAM/ROM_Map&amp;diff=713</id>
		<title>SMW Resource RAM/ROM Map</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=SMW_Resource_RAM/ROM_Map&amp;diff=713"/>
		<updated>2019-09-30T06:27:08Z</updated>

		<summary type="html">&lt;p&gt;LX5: LX5 moved page SMW Resource RAM/ROM Map to SMW Resource RAM-ROM Map: i used /&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[SMW Resource RAM-ROM Map]]&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=SMW_Resource_Memory_Map&amp;diff=712</id>
		<title>SMW Resource Memory Map</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=SMW_Resource_Memory_Map&amp;diff=712"/>
		<updated>2019-09-30T06:27:08Z</updated>

		<summary type="html">&lt;p&gt;LX5: LX5 moved page SMW Resource RAM/ROM Map to SMW Resource RAM-ROM Map: i used /&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Organization comes later. Feel free to add major patches here as well.&amp;lt;br&amp;gt;&lt;br /&gt;
Also feel free to suggest a good way to represent SA-1 addresses (if applicable).&lt;br /&gt;
&lt;br /&gt;
== Lunar Magic == &lt;br /&gt;
=== RAM ===&lt;br /&gt;
Most of these addresses were adquired from Lunar Magic&#039;s help file and files floating around the internet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E0BF5 || 0x1 || ExLevel flags (to be filled later).&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E0BF6 || 0x100 || ExLevel RAM (to be filled later).&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E13D7 || 0x2 || Screen vertical size.&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E1936 || 0x2 || Screen vertical size - #$0010. Used to adjust smkdan&#039;s patch&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FC004 || 0x1 || Legacy ExAnimations frame counter. Used to be the frame counter for every ExAnimation slot, now it&#039;s only accurate for slots 0, 8, 10 and 18.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC060 || 0x10 || Conditional Direct Map16 flags.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FC070 || 0x10 || Manual ExAnimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
Each byte corresponds to one manual ExAnimation slot. This block of RAM addresses isn&#039;t initialized unless you use the Trigger Init button in the ExAnimation dialog.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC080 || 0x20 || Level ExAnimations frame counter. Each byte corresponds to one slot.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC0A0 || 0x20 || Global ExAnimations frame counter. Each byte corresponds to one slot.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC0F8 || 0x4 || One Shot Exanimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FC0FC || 0x2 || Custom ExAnimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
Each bit corresponds to each custom ExAnimation slot. If a bit is on it means the trigger is enabled. This block of RAM addresses isn&#039;t initialized unless you use the Trigger Init button in the ExAnimation dialog.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC00B || 0x2? || Purpose unknown. Used in $0EFD00 to perform a bit 2 check.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7F8183 || 0x1A4? || Used for VRAM modification.&amp;lt;br&amp;gt;&lt;br /&gt;
*$7F8185 holds a 16-bit value. Written to on $0FB054.&lt;br /&gt;
*$7F8327 is used on $0FB054 to store either 0x01B0 or 0x200. Maybe it&#039;s related to Layer 2 BG height?&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $0FF900 || GFX decompression routine.&amp;lt;br&amp;gt;&lt;br /&gt;
It can&#039;t decompress GFX files 32 or 33.&amp;lt;br&amp;gt;&lt;br /&gt;
On entry:&amp;lt;br&amp;gt;&lt;br /&gt;
* A should contain the 16-bit GFX/ExGFX file number you want to decompress.&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 should contain the 24-bit address of where to decompress the data to.&amp;lt;br&amp;gt;&lt;br /&gt;
On exit:&amp;lt;br&amp;gt;&lt;br /&gt;
* Processor bits are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* Contents of X are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* Contents of Y are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* A is not preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $0EFD00 || LM Routine? Does something related to Layer 2 tilemaps. Returns the value of $7E1928 in A.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AddMusicK ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
Note: AddMusicK&#039;s RAM addresses ($7FB000-$7FB00A) are reset during the SPC Program upload.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E1DFA || 0x1 || Command list.&amp;lt;br&amp;gt;&lt;br /&gt;
*$01 - Jump SFX. Sounds glitched due to it overwritting part of arpeggio&#039;s RAM with unexpected data. See L_0A14 for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
*$02 - Turns on Yoshi Drums.&amp;lt;br&amp;gt;&lt;br /&gt;
*$03 - Turns off Yoshi Drums.&amp;lt;br&amp;gt;&lt;br /&gt;
*$04 - Grinder SFX. Potentially glitched.&amp;lt;br&amp;gt;&lt;br /&gt;
*$05 - Disables echo effect on SFXs.&amp;lt;br&amp;gt;&lt;br /&gt;
*$06 - Enables echo effect on SFXs.&amp;lt;br&amp;gt;&lt;br /&gt;
*$07 - Pauses music.&amp;lt;br&amp;gt;&lt;br /&gt;
*$08 - Unpauses music.&amp;lt;br&amp;gt;&lt;br /&gt;
*$09-$FE - Unused&amp;lt;br&amp;gt;&lt;br /&gt;
*$FF - Jumps to L_099C. It &#039;&#039;seems&#039;&#039; to prepare the SPC700 to receive data. Disables echo, sets delay to 0, turns off channels, resets the song number (SPC Output 2 = 0). Needs testing.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB000 || 0x1 || Current song playing.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB001 || 0x1 || Flag used to disable sample upload when switching to a new song.&amp;lt;br&amp;gt;&lt;br /&gt;
Reset when a song finishes being uploaded to ARAM.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB002 || 0x2 || Unused. Meant to be:&amp;lt;br&amp;gt;&lt;br /&gt;
ARAM/DSP Address.&lt;br /&gt;
* To write to ARAM: Set $7FB002 to the address, and $7FB004 to the value to write.  Note that the address cannot be $FFxx.&lt;br /&gt;
* To write to the S-DSP: Set $7FB002 to the address, $7FB003 to #$FF, and $7FB004 to the value to write.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB004 || 0x4 || SPC Output.&amp;lt;br&amp;gt;&lt;br /&gt;
* $F4 $05 will reset $7FB004 and $7FB005.&amp;lt;br&amp;gt;&lt;br /&gt;
* $F9 $XX $YY will send $XX and $YY to $7FB004 and $7FB005 respectively. (Needs verification)&amp;lt;br&amp;gt;&lt;br /&gt;
* $7FB006 and $7FB007 are unused and most likely have garbage sent by the program.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB008 || 0x1 || Unused. Meant to have the same purpose as $7E0DDA.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB009 || 0x1 || Sample count in the current song.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB00A || 0x400 || ARAM SRCN table.&lt;br /&gt;
Used as a buffer for the sample pointer/loop table.  Could be up to 1024 bytes long, but this is unlikely (4 bytes per sample; do the math).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $008079 || UploadSPCData.&amp;lt;br&amp;gt;&lt;br /&gt;
This is an ever-so-slightly modified version of SMW&#039;s SPC upload routine. You can jump here at any time to upload data to the SPC.&amp;lt;br&amp;gt;&lt;br /&gt;
Input:&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 - Address of the block to upload to ARAM&amp;lt;br&amp;gt;&lt;br /&gt;
* $03-$04 - Position in ARAM to jump to upon completion&amp;lt;br&amp;gt;&lt;br /&gt;
* $05-$06 - Clobbered.  Unused on entry; will be the size of the transferred data when finished.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $008135 || UploadSPCDataDynamic. This address needs to be checked.&lt;br /&gt;
This is an alternate version of the upload routine. Call this if it is impossible to determine ahead of time where data will go. This routine is used to upload samples by default, but it can upload anything.&amp;lt;br&amp;gt;&lt;br /&gt;
Input:&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 - Address of the block to upload to ARAM&amp;lt;br&amp;gt;&lt;br /&gt;
* $03-$04 - Position in ARAM to jump to upon completion&amp;lt;br&amp;gt;&lt;br /&gt;
* $05-$06 - Size of the data to upload (this address is NOT clobbered).&amp;lt;br&amp;gt;&lt;br /&gt;
* $07-$08 - Address in ARAM to upload to (recommended to increment it by ($05) when you finish to upload consecutive data)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PIXI ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPS ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Custom Powerups ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E2000 || 0x800 || RAM with different purposes. Only uses 0x1D4 bytes at the moment.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E2800 || 0x2000 || Reserved as a decompression buffer for the 5th tile GFX.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E4800 || 0x2000 || Reserved as a decompression buffer for dynamic items GFX.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E6800 || 0x800 || Reserved as a copy of the first 2KiB of the latest decompresed GFX file.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E7000 || 0xCFF || Free to use.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=SMW_Resource_Memory_Map&amp;diff=711</id>
		<title>SMW Resource Memory Map</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=SMW_Resource_Memory_Map&amp;diff=711"/>
		<updated>2019-09-30T06:24:56Z</updated>

		<summary type="html">&lt;p&gt;LX5: Created page with &amp;quot;Organization comes later. Feel free to add major patches here as well.&amp;lt;br&amp;gt; Also feel free to suggest a good way to represent SA-1 addresses (if applicable).  == Lunar Magic ==...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Organization comes later. Feel free to add major patches here as well.&amp;lt;br&amp;gt;&lt;br /&gt;
Also feel free to suggest a good way to represent SA-1 addresses (if applicable).&lt;br /&gt;
&lt;br /&gt;
== Lunar Magic == &lt;br /&gt;
=== RAM ===&lt;br /&gt;
Most of these addresses were adquired from Lunar Magic&#039;s help file and files floating around the internet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E0BF5 || 0x1 || ExLevel flags (to be filled later).&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E0BF6 || 0x100 || ExLevel RAM (to be filled later).&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E13D7 || 0x2 || Screen vertical size.&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E1936 || 0x2 || Screen vertical size - #$0010. Used to adjust smkdan&#039;s patch&amp;lt;br&amp;gt;&lt;br /&gt;
Used on Lunar Magic 3.00+&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FC004 || 0x1 || Legacy ExAnimations frame counter. Used to be the frame counter for every ExAnimation slot, now it&#039;s only accurate for slots 0, 8, 10 and 18.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC060 || 0x10 || Conditional Direct Map16 flags.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FC070 || 0x10 || Manual ExAnimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
Each byte corresponds to one manual ExAnimation slot. This block of RAM addresses isn&#039;t initialized unless you use the Trigger Init button in the ExAnimation dialog.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC080 || 0x20 || Level ExAnimations frame counter. Each byte corresponds to one slot.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC0A0 || 0x20 || Global ExAnimations frame counter. Each byte corresponds to one slot.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC0F8 || 0x4 || One Shot Exanimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FC0FC || 0x2 || Custom ExAnimation triggers.&amp;lt;br&amp;gt;&lt;br /&gt;
Each bit corresponds to each custom ExAnimation slot. If a bit is on it means the trigger is enabled. This block of RAM addresses isn&#039;t initialized unless you use the Trigger Init button in the ExAnimation dialog.&lt;br /&gt;
|-&lt;br /&gt;
| $7FC00B || 0x2? || Purpose unknown. Used in $0EFD00 to perform a bit 2 check.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7F8183 || 0x1A4? || Used for VRAM modification.&amp;lt;br&amp;gt;&lt;br /&gt;
*$7F8185 holds a 16-bit value. Written to on $0FB054.&lt;br /&gt;
*$7F8327 is used on $0FB054 to store either 0x01B0 or 0x200. Maybe it&#039;s related to Layer 2 BG height?&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $0FF900 || GFX decompression routine.&amp;lt;br&amp;gt;&lt;br /&gt;
It can&#039;t decompress GFX files 32 or 33.&amp;lt;br&amp;gt;&lt;br /&gt;
On entry:&amp;lt;br&amp;gt;&lt;br /&gt;
* A should contain the 16-bit GFX/ExGFX file number you want to decompress.&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 should contain the 24-bit address of where to decompress the data to.&amp;lt;br&amp;gt;&lt;br /&gt;
On exit:&amp;lt;br&amp;gt;&lt;br /&gt;
* Processor bits are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* Contents of X are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* Contents of Y are preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
* A is not preserved.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $0EFD00 || LM Routine? Does something related to Layer 2 tilemaps. Returns the value of $7E1928 in A.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AddMusicK ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
Note: AddMusicK&#039;s RAM addresses ($7FB000-$7FB00A) are reset during the SPC Program upload.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E1DFA || 0x1 || Command list.&amp;lt;br&amp;gt;&lt;br /&gt;
*$01 - Jump SFX. Sounds glitched due to it overwritting part of arpeggio&#039;s RAM with unexpected data. See L_0A14 for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
*$02 - Turns on Yoshi Drums.&amp;lt;br&amp;gt;&lt;br /&gt;
*$03 - Turns off Yoshi Drums.&amp;lt;br&amp;gt;&lt;br /&gt;
*$04 - Grinder SFX. Potentially glitched.&amp;lt;br&amp;gt;&lt;br /&gt;
*$05 - Disables echo effect on SFXs.&amp;lt;br&amp;gt;&lt;br /&gt;
*$06 - Enables echo effect on SFXs.&amp;lt;br&amp;gt;&lt;br /&gt;
*$07 - Pauses music.&amp;lt;br&amp;gt;&lt;br /&gt;
*$08 - Unpauses music.&amp;lt;br&amp;gt;&lt;br /&gt;
*$09-$FE - Unused&amp;lt;br&amp;gt;&lt;br /&gt;
*$FF - Jumps to L_099C. It &#039;&#039;seems&#039;&#039; to prepare the SPC700 to receive data. Disables echo, sets delay to 0, turns off channels, resets the song number (SPC Output 2 = 0). Needs testing.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB000 || 0x1 || Current song playing.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB001 || 0x1 || Flag used to disable sample upload when switching to a new song.&amp;lt;br&amp;gt;&lt;br /&gt;
Reset when a song finishes being uploaded to ARAM.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7FB002 || 0x2 || Unused. Meant to be:&amp;lt;br&amp;gt;&lt;br /&gt;
ARAM/DSP Address.&lt;br /&gt;
* To write to ARAM: Set $7FB002 to the address, and $7FB004 to the value to write.  Note that the address cannot be $FFxx.&lt;br /&gt;
* To write to the S-DSP: Set $7FB002 to the address, $7FB003 to #$FF, and $7FB004 to the value to write.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB004 || 0x4 || SPC Output.&amp;lt;br&amp;gt;&lt;br /&gt;
* $F4 $05 will reset $7FB004 and $7FB005.&amp;lt;br&amp;gt;&lt;br /&gt;
* $F9 $XX $YY will send $XX and $YY to $7FB004 and $7FB005 respectively. (Needs verification)&amp;lt;br&amp;gt;&lt;br /&gt;
* $7FB006 and $7FB007 are unused and most likely have garbage sent by the program.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB008 || 0x1 || Unused. Meant to have the same purpose as $7E0DDA.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB009 || 0x1 || Sample count in the current song.&lt;br /&gt;
|-&lt;br /&gt;
| $7FB00A || 0x400 || ARAM SRCN table.&lt;br /&gt;
Used as a buffer for the sample pointer/loop table.  Could be up to 1024 bytes long, but this is unlikely (4 bytes per sample; do the math).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $008079 || UploadSPCData.&amp;lt;br&amp;gt;&lt;br /&gt;
This is an ever-so-slightly modified version of SMW&#039;s SPC upload routine. You can jump here at any time to upload data to the SPC.&amp;lt;br&amp;gt;&lt;br /&gt;
Input:&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 - Address of the block to upload to ARAM&amp;lt;br&amp;gt;&lt;br /&gt;
* $03-$04 - Position in ARAM to jump to upon completion&amp;lt;br&amp;gt;&lt;br /&gt;
* $05-$06 - Clobbered.  Unused on entry; will be the size of the transferred data when finished.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $008135 || UploadSPCDataDynamic. This address needs to be checked.&lt;br /&gt;
This is an alternate version of the upload routine. Call this if it is impossible to determine ahead of time where data will go. This routine is used to upload samples by default, but it can upload anything.&amp;lt;br&amp;gt;&lt;br /&gt;
Input:&amp;lt;br&amp;gt;&lt;br /&gt;
* $00-$02 - Address of the block to upload to ARAM&amp;lt;br&amp;gt;&lt;br /&gt;
* $03-$04 - Position in ARAM to jump to upon completion&amp;lt;br&amp;gt;&lt;br /&gt;
* $05-$06 - Size of the data to upload (this address is NOT clobbered).&amp;lt;br&amp;gt;&lt;br /&gt;
* $07-$08 - Address in ARAM to upload to (recommended to increment it by ($05) when you finish to upload consecutive data)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PIXI ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPS ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Custom Powerups ==&lt;br /&gt;
=== RAM ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $7E2000 || 0x800 || RAM with different purposes. Only uses 0x1D4 bytes at the moment.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E2800 || 0x2000 || Reserved as a decompression buffer for the 5th tile GFX.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E4800 || 0x2000 || Reserved as a decompression buffer for dynamic items GFX.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E6800 || 0x800 || Reserved as a copy of the first 2KiB of the latest decompresed GFX file.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $7E7000 || 0xCFF || Free to use.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || 0x0 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ROM/Routines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! SNES Address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| $000000 || To be edited later.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=Custom_Powerups&amp;diff=627</id>
		<title>Custom Powerups</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=Custom_Powerups&amp;diff=627"/>
		<updated>2019-08-24T05:35:21Z</updated>

		<summary type="html">&lt;p&gt;LX5: Added language selector&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Select Language|Custom Powerups}}&lt;br /&gt;
[[File:custom_powerups_boomerang.gif|thumb|right|Boomerang suit and enhanced vanilla blocks in action.]]&lt;br /&gt;
The [https://github.com/TheLX5/Powerups/wiki/1.-Main-Page Custom Powerups] patch is a package of a bunch of ASM hacks mainly created by [[User:MarioE|MarioE]] and [[User:LX5|LX5]] with the main goal of adding new powerups for [[Super Mario World]] with ease and give a bunch of tools for programmers to create their own powerups for the game.&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:custom_powerups_roulette.gif|thumb|right|Cat suit, ice flower and enhanced roulette item.]]&lt;br /&gt;
[[File:custom_powerups_mini_mario.gif|thumb|right|Mini Mario and tanooki suit.]]&lt;br /&gt;
==For regular users==&lt;br /&gt;
* Several new powerups from various Mario (and other) games&lt;br /&gt;
* [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=20407 32x32 player tilemap]&lt;br /&gt;
* Dynamic powerup items and projectiles&lt;br /&gt;
* Easy and powerful customization options in the main patch and each powerup&lt;br /&gt;
* Enhanced vanilla blocks and powerup items to make them more interesting&lt;br /&gt;
* [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=13800 Better Powerdown] patch native integration&lt;br /&gt;
==For programmers==&lt;br /&gt;
* A nice ecosystem with RAM defines ready to use in every major tool ([[PIXI]], [[GPS]] and [[UberASM Tool]])&lt;br /&gt;
* Frees up ~22000 bytes of RAM at $7E2000&lt;br /&gt;
* Can insert up to 256 different powerups&lt;br /&gt;
* Several RAM addresses to alter the behavior of the patch&#039;s core engines&lt;br /&gt;
* Easy to use &amp;quot;add-on&amp;quot; engine to include specific ASM hacks for your powerups&lt;br /&gt;
* Total control of player&#039;s interaction field with ground and sprites&lt;br /&gt;
* A bunch of pointers to routines and tables ready to use at $02800C about various things of the patch&lt;br /&gt;
* Let&#039;s you install external ASM hacks that need to run during NMI at $00A304&lt;br /&gt;
=Included powerups=&lt;br /&gt;
[[File:custom_powerups_cloud.gif|thumb|right|Cloud flower from Super Mario Galaxy.]]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mushroom-super-mario-world Mushroom (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#feather-super-mario-world Feather (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#fire-flower-super-mario-world Fire Flower (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#hammer-suit-super-mario-bros-3 Hammer Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#boomerang-suit-custom Boomerang Suit (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#super-leaf-super-mario-bros-3 Raccoon Leaf (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#tanooki-suit-super-mario-bros-3 Tanooki Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#superball-flower-super-mario-land Superball Flower (Super Mario Land)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#frog-suit-super-mario-bros-3 Frog Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#rocket-boots-terraria Rocket Boots (Terraria)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mini-mushroom-new-super-mario-bros Mini Mushroom (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#ice-flower-new-super-mario-bros-wii Ice Flower (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#penguin-suit-new-super-mario-bros-wii Penguin Suit (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#propeller-mushroom-new-super-mario-bros-wii Propeller Mushroom (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#shell-suit-new-super-mario-bros Shell Suit (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#bubble-flower-custom Bubble Flower (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cloud-flower-super-mario-galaxy Cloud Flower (Super Mario Galaxy)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cat-suit-super-mario-3d-world Cat Suit (Super Mario 3D World)]&lt;br /&gt;
=Useful links=&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/ Official GitHub repo]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/2.-Installation Installation Guide in text]&lt;br /&gt;
* [https://www.youtube.com/watch?v=82_HH05jdl0 Installation Guide in video]&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=User:LX5&amp;diff=625</id>
		<title>User:LX5</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=User:LX5&amp;diff=625"/>
		<updated>2019-08-24T05:26:19Z</updated>

		<summary type="html">&lt;p&gt;LX5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SNES Programmer for [[Super Mario World]]. Administrator at [http://www.fortalezareznor.com Fortaleza Reznor] and former ASM Team leader at [[SMW Central]].&lt;br /&gt;
&lt;br /&gt;
=Notable creations=&lt;br /&gt;
* Current developer of [https://github.com/TheLX5/Powerups Custom Powerups] and [https://github.com/TheLX5/Star-Coins Star Coins] patches&lt;br /&gt;
* [https://github.com/TheLX5/Cappy Super Mario World Odyssey] beta developer&lt;br /&gt;
* Enhancement and/or remoderation of some [https://github.com/TheLX5/SMW-Patches patches]&lt;br /&gt;
* [https://github.com/TheLX5/SMW-Sprites Custom sprites] and [https://github.com/TheLX5/SMW-Blocks custom blocks] for Super Mario World&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=es/Custom_Powerups&amp;diff=624</id>
		<title>es/Custom Powerups</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=es/Custom_Powerups&amp;diff=624"/>
		<updated>2019-08-24T04:53:29Z</updated>

		<summary type="html">&lt;p&gt;LX5: poweruppppssss (español)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:custom_powerups_boomerang.gif|thumb|right|Traje bumerán y los blocks originales mejorados en acción.]]&lt;br /&gt;
El parche de [https://github.com/TheLX5/Powerups/wiki/1.-Main-Page Custom Powerups] es una compilación de varios códigos de ASM creados principalmente por [[User:MarioE|MarioE]] y [[User:LX5|LX5]] con el propósito de añadir nuevos powerups en [[Super Mario World]] con facilidad e incluir algunas herramientas que permitan a programadores a hacer sus propios powerups.&lt;br /&gt;
&lt;br /&gt;
=Características=&lt;br /&gt;
[[File:custom_powerups_roulette.gif|thumb|right|Traje de gato, flor de hielo y la ruleta de items mejorada.]]&lt;br /&gt;
[[File:custom_powerups_mini_mario.gif|thumb|right|Mini Mario y traje tanooki.]]&lt;br /&gt;
==Para el usuario general==&lt;br /&gt;
* Un montón de nuevos powerups de varios juegos de Mario (y otros juegos)&lt;br /&gt;
* Incluído el parche [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=20407 32x32 player tilemap]&lt;br /&gt;
* Ítems y proyectiles dinámicos&lt;br /&gt;
* Opciones poderosas y fáciles de comprender para el parche principal y cada powerup&lt;br /&gt;
* Blocks vainilla e ítems mejorados&lt;br /&gt;
* Inclusión nativa del parche [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=13800 Better Powerdown]&lt;br /&gt;
==Para programadores==&lt;br /&gt;
* Un buen ecosistema con definiciones de RAM listas para usar en cada herramienta importante ([[PIXI]], [[GPS]] and [[UberASM Tool]])&lt;br /&gt;
* Libera alrededor de 22000 bytes de RAM en $7E2000&lt;br /&gt;
* Puede insertar hasta 256 powerups distintos&lt;br /&gt;
* Varias direcciones RAM que puede alterar el comportamiento de varias cosas importantes del parche&lt;br /&gt;
* Sistema de &amp;quot;add-on&amp;quot; fácil de usar para añadir tus propios códigos ASM especificos para tus powerups&lt;br /&gt;
* Control total de la interaccion del jugador con el terreno y enemigos.&lt;br /&gt;
* Un montón de punteros a rutinas y tablas listas de usar en $02800C acerca de varias cosas de parche&lt;br /&gt;
* Permite instalar parches que necesitan ejecutarse durante el NMI en $00A304&lt;br /&gt;
=Powerups incluidos=&lt;br /&gt;
[[File:custom_powerups_cloud.gif|thumb|right|Flor nube de Super Mario Galaxy.]]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mushroom-super-mario-world Hongo (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#feather-super-mario-world Pluma (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#fire-flower-super-mario-world Flor de fuego (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#hammer-suit-super-mario-bros-3 Traje martillo (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#boomerang-suit-custom Traje bumerán (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#super-leaf-super-mario-bros-3 Súper hoja (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#tanooki-suit-super-mario-bros-3 Traje tanooki (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#superball-flower-super-mario-land Flor superbola (Super Mario Land)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#frog-suit-super-mario-bros-3 Traje rana (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#rocket-boots-terraria Botas cohete (Terraria)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mini-mushroom-new-super-mario-bros Mini hongo (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#ice-flower-new-super-mario-bros-wii Flor de hielo (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#penguin-suit-new-super-mario-bros-wii Traje pingüino (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#propeller-mushroom-new-super-mario-bros-wii Hongo propulsor (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#shell-suit-new-super-mario-bros Traje caparazón (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#bubble-flower-custom Flor burbuja (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cloud-flower-super-mario-galaxy Flor nube (Super Mario Galaxy)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cat-suit-super-mario-3d-world Traje gato (Super Mario 3D World)]&lt;br /&gt;
=Links útiles=&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/ Repo oficial en GitHub]&lt;br /&gt;
* [http://www.fortalezareznor.com/t3338- Post oficial en Fortaleza Reznor]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/2.-Installation Guía de instalación en texto (en inglés)]&lt;br /&gt;
* [https://www.youtube.com/watch?v=82_HH05jdl0 Guía de instalación en vídeo]&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=Custom_Powerups&amp;diff=623</id>
		<title>Custom Powerups</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=Custom_Powerups&amp;diff=623"/>
		<updated>2019-08-24T04:37:00Z</updated>

		<summary type="html">&lt;p&gt;LX5: smol changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:custom_powerups_boomerang.gif|thumb|right|Boomerang suit and enhanced vanilla blocks in action.]]&lt;br /&gt;
The [https://github.com/TheLX5/Powerups/wiki/1.-Main-Page Custom Powerups] patch is a package of a bunch of ASM hacks mainly created by [[User:MarioE|MarioE]] and [[User:LX5|LX5]] with the main goal of adding new powerups for [[Super Mario World]] with ease and give a bunch of tools for programmers to create their own powerups for the game.&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:custom_powerups_roulette.gif|thumb|right|Cat suit, ice flower and enhanced roulette item.]]&lt;br /&gt;
[[File:custom_powerups_mini_mario.gif|thumb|right|Mini Mario and tanooki suit.]]&lt;br /&gt;
==For regular users==&lt;br /&gt;
* Several new powerups from various Mario (and other) games&lt;br /&gt;
* [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=20407 32x32 player tilemap]&lt;br /&gt;
* Dynamic powerup items and projectiles&lt;br /&gt;
* Easy and powerful customization options in the main patch and each powerup&lt;br /&gt;
* Enhanced vanilla blocks and powerup items to make them more interesting&lt;br /&gt;
* [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=13800 Better Powerdown] patch native integration&lt;br /&gt;
==For programmers==&lt;br /&gt;
* A nice ecosystem with RAM defines ready to use in every major tool ([[PIXI]], [[GPS]] and [[UberASM Tool]])&lt;br /&gt;
* Frees up ~22000 bytes of RAM at $7E2000&lt;br /&gt;
* Can insert up to 256 different powerups&lt;br /&gt;
* Several RAM addresses to alter the behavior of the patch&#039;s core engines&lt;br /&gt;
* Easy to use &amp;quot;add-on&amp;quot; engine to include specific ASM hacks for your powerups&lt;br /&gt;
* Total control of player&#039;s interaction field with ground and sprites&lt;br /&gt;
* A bunch of pointers to routines and tables ready to use at $02800C about various things of the patch&lt;br /&gt;
* Let&#039;s you install external ASM hacks that need to run during NMI at $00A304&lt;br /&gt;
=Included powerups=&lt;br /&gt;
[[File:custom_powerups_cloud.gif|thumb|right|Cloud flower from Super Mario Galaxy.]]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mushroom-super-mario-world Mushroom (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#feather-super-mario-world Feather (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#fire-flower-super-mario-world Fire Flower (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#hammer-suit-super-mario-bros-3 Hammer Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#boomerang-suit-custom Boomerang Suit (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#super-leaf-super-mario-bros-3 Raccoon Leaf (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#tanooki-suit-super-mario-bros-3 Tanooki Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#superball-flower-super-mario-land Superball Flower (Super Mario Land)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#frog-suit-super-mario-bros-3 Frog Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#rocket-boots-terraria Rocket Boots (Terraria)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mini-mushroom-new-super-mario-bros Mini Mushroom (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#ice-flower-new-super-mario-bros-wii Ice Flower (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#penguin-suit-new-super-mario-bros-wii Penguin Suit (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#propeller-mushroom-new-super-mario-bros-wii Propeller Mushroom (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#shell-suit-new-super-mario-bros Shell Suit (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#bubble-flower-custom Bubble Flower (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cloud-flower-super-mario-galaxy Cloud Flower (Super Mario Galaxy)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cat-suit-super-mario-3d-world Cat Suit (Super Mario 3D World)]&lt;br /&gt;
=Useful links=&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/ Official GitHub repo]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/2.-Installation Installation Guide in text]&lt;br /&gt;
* [https://www.youtube.com/watch?v=82_HH05jdl0 Installation Guide in video]&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=Custom_Powerups&amp;diff=622</id>
		<title>Custom Powerups</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=Custom_Powerups&amp;diff=622"/>
		<updated>2019-08-24T04:26:24Z</updated>

		<summary type="html">&lt;p&gt;LX5: powerupssssss&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:custom_powerups_boomerang.gif|thumb|right|Boomerang suit and enhanced vanilla blocks in action.]]&lt;br /&gt;
The [https://github.com/TheLX5/Powerups/wiki/1.-Main-Page Custom Powerups] patch is a package of a bunch of ASM hacks created by [[User:MarioE|MarioE]] and [[User:LX5|LX5]] with the main goal of adding new powerups for [[Super Mario World]] with ease and give a bunch of tools for programmers to create their own powerups for the game.&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:custom_powerups_roulette.gif|thumb|right|Cat suit, ice flower and enhanced roulette item.]]&lt;br /&gt;
[[File:custom_powerups_mini_mario.gif|thumb|right|Mini Mario and tanooki suit.]]&lt;br /&gt;
==For regular users==&lt;br /&gt;
* Several new powerups from various Mario (and other) games&lt;br /&gt;
* 32x32 player tilemap&lt;br /&gt;
* Dynamic powerup items and projectiles&lt;br /&gt;
* Easy and powerful customization options in the main patch and each powerup&lt;br /&gt;
* Enhanced vanilla blocks and powerup items to make them more interesting&lt;br /&gt;
* [[Better Powerdown]] patch native integration&lt;br /&gt;
==For programmers==&lt;br /&gt;
* A nice ecosystem with RAM defines ready to use in every major tool ([[PIXI]], [[GPS]] and [[UberASM Tool]])&lt;br /&gt;
* Frees up ~22000 bytes of RAM at $7E2000&lt;br /&gt;
* Can insert up to 256 different powerups&lt;br /&gt;
* Several RAM addresses to alter the behavior of the patch&#039;s core engines&lt;br /&gt;
* Easy to use &amp;quot;add-on&amp;quot; engine to include specific ASM hacks for your powerups&lt;br /&gt;
* Total control of player&#039;s interaction field with ground and sprites&lt;br /&gt;
* A bunch of pointers to routines and tables ready to use at $02800C about various things of the patch&lt;br /&gt;
* Let&#039;s you install external ASM hacks that need to run during NMI at $00A304&lt;br /&gt;
=Included powerups=&lt;br /&gt;
[[File:custom_powerups_cloud.gif|thumb|right|Cloud flower from Super Mario Galaxy.]]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mushroom-super-mario-world Mushroom (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#feather-super-mario-world Feather (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#fire-flower-super-mario-world Fire Flower (Super Mario World)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#hammer-suit-super-mario-bros-3 Hammer Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#boomerang-suit-custom Boomerang Suit (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#super-leaf-super-mario-bros-3 Raccoon Leaf (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#tanooki-suit-super-mario-bros-3 Tanooki Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#superball-flower-super-mario-land Superball Flower (Super Mario Land)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#frog-suit-super-mario-bros-3 Frog Suit (Super Mario Bros. 3)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#rocket-boots-terraria Rocket Boots (Terraria)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#mini-mushroom-new-super-mario-bros Mini Mushroom (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#ice-flower-new-super-mario-bros-wii Ice Flower (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#penguin-suit-new-super-mario-bros-wii Penguin Suit (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#propeller-mushroom-new-super-mario-bros-wii Propeller Mushroom (New Super Mario Bros. Wii)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#shell-suit-new-super-mario-bros Shell Suit (New Super Mario Bros.)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#bubble-flower-custom Bubble Flower (Custom)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cloud-flower-super-mario-galaxy Cloud Flower (Super Mario Galaxy)]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/7.-Powerups#cat-suit-super-mario-3d-world Cat Suit (Super Mario 3D World)]&lt;br /&gt;
=External links=&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/ Official GitHub repo]&lt;br /&gt;
* [https://github.com/TheLX5/Powerups/wiki/2.-Installation Installation Guide in text]&lt;br /&gt;
* [https://www.youtube.com/watch?v=82_HH05jdl0 Installation Guide in video]&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=File:custom_powerups_cloud.gif&amp;diff=621</id>
		<title>File:custom powerups cloud.gif</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=File:custom_powerups_cloud.gif&amp;diff=621"/>
		<updated>2019-08-24T04:24:19Z</updated>

		<summary type="html">&lt;p&gt;LX5: Custom Powerups&amp;#039;s cloud flower showcase.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Custom Powerups&#039;s cloud flower showcase.&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=File:custom_powerups_mini_mario.gif&amp;diff=620</id>
		<title>File:custom powerups mini mario.gif</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=File:custom_powerups_mini_mario.gif&amp;diff=620"/>
		<updated>2019-08-24T04:13:39Z</updated>

		<summary type="html">&lt;p&gt;LX5: Custom Powerup&amp;#039;s mini Mario and tanooki suit.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Custom Powerup&#039;s mini Mario and tanooki suit.&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=File:custom_powerups_roulette.gif&amp;diff=619</id>
		<title>File:custom powerups roulette.gif</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=File:custom_powerups_roulette.gif&amp;diff=619"/>
		<updated>2019-08-24T04:09:18Z</updated>

		<summary type="html">&lt;p&gt;LX5: Custom Powerup&amp;#039;s cat suit, ice flower and enhanced roulette item.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Custom Powerup&#039;s cat suit, ice flower and enhanced roulette item.&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=File:custom_powerups_boomerang.gif&amp;diff=618</id>
		<title>File:custom powerups boomerang.gif</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=File:custom_powerups_boomerang.gif&amp;diff=618"/>
		<updated>2019-08-24T04:05:50Z</updated>

		<summary type="html">&lt;p&gt;LX5: Custom Powerup&amp;#039;s boomerang suit and enhanced vanilla blocks in action.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Custom Powerup&#039;s boomerang suit and enhanced vanilla blocks in action.&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
	<entry>
		<id>https://sneslab.net/mw/index.php?title=User:LX5&amp;diff=416</id>
		<title>User:LX5</title>
		<link rel="alternate" type="text/html" href="https://sneslab.net/mw/index.php?title=User:LX5&amp;diff=416"/>
		<updated>2019-07-03T04:34:31Z</updated>

		<summary type="html">&lt;p&gt;LX5: Created page with &amp;quot;🐇 (to be filled later)  My works: * [https://github.com/TheLX5/Powerups Custom Powerups v3.3.3] * [https://github.com/TheLX5/Cappy Super Mario World Odyssey v1]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🐇 (to be filled later)&lt;br /&gt;
&lt;br /&gt;
My works:&lt;br /&gt;
* [https://github.com/TheLX5/Powerups Custom Powerups v3.3.3]&lt;br /&gt;
* [https://github.com/TheLX5/Cappy Super Mario World Odyssey v1]&lt;/div&gt;</summary>
		<author><name>LX5</name></author>
	</entry>
</feed>