Glossary
| Name | Description |
|---|---|
| Accumlator | An alias for the A register. |
| Index Register | Alias for X and Y register. |
| AL | Lower 8 bits of A register. |
| AH | Higher 8 bits of A register. You can’t access this value unless you use 16 bits mode or swap the value with XBA. |
| XL | Lower 8 bits of X register. |
| XH | Higher 8 bits of X register. You can’t access this value unless you use 16 bits mode or swap the value with TAX, XBA and TXA. |
| YL | Lower 8 bits of Y register. |
| YH | Higher 8 bits of Y register. You can’t access this value unless you use 16 bits mode or swap the value with TAY, XBA and TYA. |
smwlibs.asm
Under constructing…
| Address | Name | Type | Description |
|---|---|---|---|
| $0086DF | SMW_ExecutePtr | JSL routine | |
| $0086FA | SMW_ExecutePtrLong | JSL routine | |
| $00F5B7 | SMW_HurtMario | JSL routine | |
| $00F606 | SMW_KillMario | JSL routine | |
| $05B160 | SMW_SubSideExit | JSL routine | |
| $0286BF | SMW_YoshiStomp | JSL routine | |
| $0294C1 | SMW_GroundPound | JSL routine | |
| $00BEB0 | SMW_GenerateTile | JSL routine | |
| $01ACF9 | SMW_GetRand | JSL routine | |
| $02ACE5 | SMW_GivePoints | JSL routine | |
| $05B329 | SMW_GiveCoins | JSL routine | |
| $03A6C8 | SMW_KillMostSprites | JSL routine | |
| $01AA33 | SMW_BoostMarioSpeed | JSL routine | |
| $03B664 | SMW_GetMarioClipping | JSL routine | |
| $03B69F | SMW_GetSpriteClippingA | JSL routine | |
| $03B6E5 | SMW_GetSpriteClippingB | JSL routine | |
| $03B72B | SMW_CheckContack | JSL routine | |
| $07F7D2 | SMW_InitSpriteTables | JSL routine | |
| $01801A | SMW_UpdateSpriteYPosNoGravity | JSL routine | |
| $018022 | SMW_UpdateSpriteXPosNoGravity | JSL routine | |
| $01802A | SMW_UpdateSpritePosWithGravity | JSL routine | |
| $018032 | SMW_SpriteSpriteInteraction | JSL routine | |
| $01A7DC | SMW_SpriteMarioInteraction | JSL routine | |
| $01803A | SMW_SpriteInteraction | JSL routine | |
| $019138 | SMW_SpriteObjectInteraction | JSL routine | |
| $01B7B3 | SMW_SpriteFinishOAMWrite | JSL routine | |
| $0DA8A6 | SMW_IndexToBit | Data | |
| $07F7DB | SMW_CircleCoords | Data |
libAkagi.asm
The library of frequently used routines.
| Name | Type | Description |
|---|---|---|
| GetDrawInfo | JSL routine | Get sprite tile map index. |
| SubOffScreen | JSL routine | Kill sprite when sprite is off screen. |
| SubOffScreenA | JSL routine | Kill sprite when sprite is off screen. |
GetDrawInfo
Get sprite tile map index.
Register width
| Register | Width |
|---|---|
| Accumlator (A) | 8 bits |
| Index (X,Y) | 8 bits |
Inputs
| Input | Description |
|---|---|
| XL | Index of currently executing sprite |
Return
| Return | Description |
|---|---|
| YL | Index to sprite tile map($0300) |
Note
Be sure to call this routine in the following format.
AnyRoutine:
JSR SubGfx ; <-- Be sure to use JSR.
;
;
RTL
SubGfx:
JSL GetDrawInfo
;
;
RTS
SubOffScreen
Kill sprite when sprite is off screen.
Caution: The Inputs specification differs from PIXI’s one.
Register width
| Register | Width |
|---|---|
| Accumlator (A) | 8 bits |
| Index (X,Y) | 8 bits |
Inputs
| Input | Description |
|---|---|
| YL | Sub off screen type 0: X0 2: X1 4: X2 6: X3 8: X4 10: X5 12: X6 14: X7 |
| XL | Index of currently executing sprite |
Return
| Return | Description |
|---|---|
| Carry flag | Set: sprite is killed Clear: sprite is alive(OnScreen) |
Note
The operation from X4 to X7 processing isn’t guaranteed.
SubOffScreenA
Kill sprite when sprite is off screen.
It is compatible with PIXI’s SubOffScreen, but slightly slower.
Register width
| Register | Width |
|---|---|
| Accumlator (A) | 8 bits |
| Index (X,Y) | 8 bits |
Inputs
| Input | Description |
|---|---|
| AL | Sub off screen type 0: X0 1: X1 2: X2 3: X3 4: X4 5: X5 6: X6 7: X7 |
| XL | Index of currently executing sprite |
Return
| Return | Description |
|---|---|
| Carry flag | Set: sprite is killed Clear: sprite is alive(OnScreen) |
Note
The operation from X4 to X7 processing isn’t guaranteed.
libScroller.asm
Library about scroller process.
| Name | Type | Description |
|---|---|---|
| UpdateLayerPos | JSL routine | The routine for update layer position. |
UpdateLayerPos
The routine for update layer position.
Add the value of $1446+X to $146E+X (and $1462+X).
Register width
| Register | Width |
|---|---|
| Accumlator (A) | 16 bits |
| Index (X,Y) | 8 bits |
Inputs
| Input | Description |
|---|---|
| XL | Position type 0: Layer1 X 2: Layer1 Y 4: Layer2 X 6: Layer2 Y |
Return
none.
libGarbage.asm
Misc library.
| Name | Type | Description |
|---|---|---|
| ShowShooterSmoke | JSL routine | Generate smoke for shooter. |
ShowShooterSmoke
Generate smoke for shooter.
Register width
| Register | Width |
|---|---|
| Accumlator (A) | 8 bits |
| Index (X,Y) | 8 bits |
Inputs
| Input | Description |
|---|---|
| AL | The number of extended sprite for generate |
| XL | Index of currently executing shooter |
Return
none.