I've been working on this on and off for the past few weeks, and it's finally ready to be released.
Basically, this patch allows you to disable the default status bar and replace it with a sprite status bar, on a per-level basis, making room for a fullscreen layer 3 background and allowing all 16 colors in palettes 0 and 1 to be used without status bar issues.
For each level, it allows you to choose which palette to use and which sprite tiles to overwrite.
Much of this patch is hardcoded, so it will be more difficult to edit than SMW's default status bar.
Here's an example of this patch in action:
The snow is on layer 1, the FG is on layer 2, and the BG is on layer 3. The layer 3 BG and status bar overlap.
Here's another example:
The FG is on layer 1, the bramble BG is on layer 2, and the cloud BG is on layer 3. The layer 3 BG and status bar overlap.
and here's the download link: http://edit1754.co.cc/bin/download.php?file=SpriteSB.zip
Please don't submit this to the patches section yet, as I might have to do a few more bugfixes before I release it.
Remember, make a backup of your rom first!
Useful LevelASM+Init codes: (I haven't tested these yet in LevelASM, but they should work)
Resize layer 3 tilemap to 256x256: (Place in INIT)
Move layer 3 behind layer 2, when using layer2-BG level mode: (Place in INIT)
If that doesn't work, use this instead:
Layer 3 scrolling: (Place in MAIN, and JSR to MAIN within INIT)
to JSR to MAIN within INIT, use this code: (I'm assuming xkas lets you access labels in other incsrc'd ASM files)
Alternatively, you can do this: (notice the JMP instead of JSR, and no RTS)
Basically, this patch allows you to disable the default status bar and replace it with a sprite status bar, on a per-level basis, making room for a fullscreen layer 3 background and allowing all 16 colors in palettes 0 and 1 to be used without status bar issues.
For each level, it allows you to choose which palette to use and which sprite tiles to overwrite.
Much of this patch is hardcoded, so it will be more difficult to edit than SMW's default status bar.
Here's an example of this patch in action:
The snow is on layer 1, the FG is on layer 2, and the BG is on layer 3. The layer 3 BG and status bar overlap.
Here's another example:
The FG is on layer 1, the bramble BG is on layer 2, and the cloud BG is on layer 3. The layer 3 BG and status bar overlap.
and here's the download link: http://edit1754.co.cc/bin/download.php?file=SpriteSB.zip
Please don't submit this to the patches section yet, as I might have to do a few more bugfixes before I release it.
Remember, make a backup of your rom first!
Useful LevelASM+Init codes: (I haven't tested these yet in LevelASM, but they should work)
Resize layer 3 tilemap to 256x256: (Place in INIT)
Code
LDA.b #$50 STA.w $2109
Move layer 3 behind layer 2, when using layer2-BG level mode: (Place in INIT)
Code
LDA.b #%00010001 STA.w $212C STA.w $212E LDA.b #%00000110 STA.w $212D STA.w $212F
If that doesn't work, use this instead:
Code
LDA.b #%00010001 STA.w $0D9D LDA.b #%00000110 STA.w $0D9E
Layer 3 scrolling: (Place in MAIN, and JSR to MAIN within INIT)
Code
REP #%00100000 LDA.w $1462 ; horz: LSR #3 ; the higher this number, the slower it will scroll. Remove for same speed as FG CLC : ADC.w #$XXXX ; (offset, change this to whatever you want, or remove it if you don't need it) STA.b $22 LDA.w $1464 ;vert: LSR #3 ; the higher this number, the slower it will scroll. Remove for same speed as FG CLC : ADC.w #$XXXX ; (offset, change this to whatever you want, or remove it if you don't need it) STA.b $24 SEP #%00100000
to JSR to MAIN within INIT, use this code: (I'm assuming xkas lets you access labels in other incsrc'd ASM files)
Code
levelinit105: **INSERT YOUR INIT CODE HERE** JSR level105 RTS
Alternatively, you can do this: (notice the JMP instead of JSR, and no RTS)
Code
levelinit105: **INSERT YOUR INIT CODE HERE** JMP level105