Mode 0: Difference between revisions
AnasMario130 (talk | contribs) No edit summary |
AnasMario130 (talk | contribs) No edit summary |
||
Line 120: | Line 120: | ||
'''3.''' Use the following 2bpp-trimmed SMW tileset for your Layer 4 levels by [[AnasMario130]] (includes most of SMW's important animations and graphics, such as the cave tileset, coins, question blocks, etc.): https://cdn.discordapp.com/attachments/334352091340472340/648173302530965504/template.zip | '''3.''' Use the following 2bpp-trimmed SMW tileset for your Layer 4 levels by [[AnasMario130]] (includes most of SMW's important animations and graphics, such as the cave tileset, coins, question blocks, etc.): https://cdn.discordapp.com/attachments/334352091340472340/648173302530965504/template.zip | ||
[[File:tileset.gif | [[File:tileset.gif|A GIF of the cave tileset as well as the animations]] | ||
[[File:pipesnbones.png | [[File:pipesnbones.png|A picture of the map16 data included in template.zip. Discolored tiles are from the ghost ship tileset]] | ||
'''Second Tileset: Ghost Ship''' | '''Second Tileset: Ghost Ship''' | ||
Line 129: | Line 129: | ||
Link: https://cdn.discordapp.com/attachments/334352091340472340/648226959477964816/ghostship.zip | Link: https://cdn.discordapp.com/attachments/334352091340472340/648226959477964816/ghostship.zip | ||
[[File:ghostship.gif | [[File:ghostship.gif|A GIF of the tileset in action with all layers being shown individually later on in the GIF; recorded with LiceCAP on ZMZ]] | ||
[[File:ghostiles.png | [[File:ghostiles.png|The map16 of the ghost ship tileset, now with the correct palette!]] | ||
Line 138: | Line 138: | ||
ExAnimation in Mode 0 levels is not really difficult once you adapt to it, but it may seem tricky at first glance. The main reason for this is that even in LM's 2bpp graphics viewing mode, ExAnimation tiles are still rendered in 4bpp, thus becoming garbled. Also the size of the frames to be animated is halved (that is, 16x16 divided by 2 equals 8x8) with the gaps cut out if arranged as follows: | ExAnimation in Mode 0 levels is not really difficult once you adapt to it, but it may seem tricky at first glance. The main reason for this is that even in LM's 2bpp graphics viewing mode, ExAnimation tiles are still rendered in 4bpp, thus becoming garbled. Also the size of the frames to be animated is halved (that is, 16x16 divided by 2 equals 8x8) with the gaps cut out if arranged as follows: | ||
[[File:arrangement.gif | [[File:arrangement.gif|The recommended arrangement for your ExAnimation frames for better understanding of Mode 0 ExAnimation. Here, the AN2 file is ExGFX405]] | ||
[[File:garbled.png|The actual rendering of the tiles, starting from 0x780, in the 8x8 Tile Editor window. As explained earlier, the gaps from the above screenshot of ExGFX405, are cut out]] | |||
[[Category:SNES Hardware]] | [[Category:SNES Hardware]] |
Revision as of 17:29, 25 November 2019
What is Mode 0?
Mode 0 is the first mode on the SNES, characterized by its offer of four layers, as opposed to the normal three Mode 1 offers you. However, there are two significant drawbacks: you only have four colors (3 actual colors plus transparency) per palette, and the layer 3 tilemap is halved to make room for layer 4. However, the latter drawback can be circumvented by sacrificing GFX slots.
Applications of Mode 0
When it comes to the SNES library of games, only a few have used Layer 4, such as Super Mario Kart, Super Mario World 2 - Yoshi's Island, S.O.S., and Earthbound.
To make things more interesting, in the field of Super Mario World hacking, a few hacks and contest levels have used it, such as ASMWCP, LMPuny's work-in-progress SUPER MARIO BROS. Returns, idol and Katrina's Chocolate Level Design Contest 2018 entry lightest, and AnasMario130's Power Mario Contest entry Pyro-Blue's Fort.
Palette and Tilemap Distribution
As mentioned in the previous heading, Mode 0 can only offer you four colors per palette, including transparency. Each layer takes up 8 four-color palettes distributed in two rows each. Layer 1 takes up rows 0-1, layer 2 rows 2-3, layer 3 rows 4-5, and layer 4 rows 6-7.
As for the tilemap, it is 2bpp, but the size must be 4 KB. However, the arrangement for the tilemap is doubled, meaning that in a graphics editor like YY-Chr, you can have eight rows' worth of graphics instead of the usual four.
How to Use Mode 0 in Super Mario World
1. First of all, please use one of the given codes in a level using UberASM Tool before proceeding:
Stationary Layer 4, by LMPuny
init: LDA #$51 : STA $2109 LDA #$59 : STA $210A LDA #$44 : STA $210C STZ $3E LDA #$11 : STA $212C : STA $212E LDA #$0E : STA $212D : STA $212F REP #$20 : LDA $20 : CLC : ADC #$0080 : SEP #$20 STA $2112 : XBA : STA $2112 REP #$20 : LDA $24 CLC : ADC #$0070 : SEP #$20 STA $2114 : XBA : STA $2114 RTL
Automatically-Scrolling Layer 4, by LMPuny
!base1 = $0000 !base2 = $0000 if read1($00FFD5) == $23 sa1rom !base1 = $3000 !base2 = $6000 endif !FreeRAM = $60 init: stz !FreeRAM stz !FreeRAM+1 LDA #$51 : STA $2109 LDA #$59 : STA $210A LDA #$44 : STA $210C STZ $3E LDA #$11 : STA $212C : STA $212E LDA #$0E : STA $212D : STA $212F REP #$20 : LDA $20 : CLC : ADC #$0080 : SEP #$20 STA $2112 : XBA : STA $2112 REP #$20 : LDA $24 CLC : ADC #$0070 : SEP #$20 STA $2114 : XBA : STA $2114 RTL
Camera-Based Scrolling Layer 4, by LMPuny; scrolling code by MolSno from his Layer 4 code; however the init: code is broken in that layer 4 doesn't show up at all
init: LDA #$51 : STA $2109 LDA #$59 : STA $210A LDA #$44 : STA $210C STZ $3E LDA #$11 : STA $212C : STA $212E LDA #$0E : STA $212D : STA $212F REP #$20 : LDA $20 : CLC : ADC #$0080 : SEP #$20 STA $2112 : XBA : STA $2112 REP #$20 : LDA $24 CLC : ADC #$0070 : SEP #$20 STA $2114 : XBA : STA $2114 main: ; Layer 4 H-Scroll = Layer 3 H-Scroll / 4 REP #$20 : LDA $22 : LSR A : LSR A : SEP #$20 STA $2113 : XBA : STA $2113 ; Layer 4 V-Scroll = Layer 3 V-Scroll REP #$20 : LDA $24 : SEP #$20 STA $2114 : XBA : STA $2114 RTL
Bugs so far:
- Layer 2/3 translucency doesn't work when set in LM.
- The 2nd layer 4 code doesn't seem to initialize the layer 4 BG's position at all, so you will notice that the position of layer 4 in a section of your level will be carried off from the previous section's. A workaround to this would be swapping their priorities around in LM's Layer 3 Tilemap Editor using the Priority -- tab. More on that later.
Please make a fix to these two bugs, if possible, and cross them out respectively.
2. Press Ctrl+F7 on a level to change Lunar Magic's graphics viewer mode to 2bpp.
3. Use the following 2bpp-trimmed SMW tileset for your Layer 4 levels by AnasMario130 (includes most of SMW's important animations and graphics, such as the cave tileset, coins, question blocks, etc.): https://cdn.discordapp.com/attachments/334352091340472340/648173302530965504/template.zip
Second Tileset: Ghost Ship
Link: https://cdn.discordapp.com/attachments/334352091340472340/648226959477964816/ghostship.zip
ExAnimation in Mode 0 levels
ExAnimation in Mode 0 levels is not really difficult once you adapt to it, but it may seem tricky at first glance. The main reason for this is that even in LM's 2bpp graphics viewing mode, ExAnimation tiles are still rendered in 4bpp, thus becoming garbled. Also the size of the frames to be animated is halved (that is, 16x16 divided by 2 equals 8x8) with the gaps cut out if arranged as follows: