Somewhat long change log but..
SA-1 Pack v1.31 (and v1.30) Released!
Version 1.31 changes:
- Added support to Dynamic levels patch, built-in in Lunar Magic.
- **Change Super No More Sprite Tile Limits setting header from 0x10 to 0x08**. This important change fixes various graphical glitches present in Bowser battle, such as Princess Toadstool appearing "in the front" of the clown car, Bowser's bowling ball having parts of its OAM tiles disappearing and additionally it fixes the softlock after beating Bowser, where the fireworks animation simply doesn't show out. However, this implies into having to you edit all levels that you used to have Sprite Header Index as 0x10 and change it to 0x08, otherwise you won't have more than 10 sprites on screen. The sprite header index 0x08 will not cause any problem on the original game because along index 0x03 and 0x05, it's unused in the original game while 0x10 was used for Bowser's battle scenes. This also now means you can play SMW normally using this patch, without having to use something else to fix Bowser.
- Sprite resetting/cleaning routine now runs on SA-1 CPU. This should make level loading a few milliseconds faster.
- Minor cleanup and rearrangements on the sprite loading routines.
- Fixed live exchange not being properly updated on hardware. Patch by LX5.
- Fixed graphical glitches when a mushroom (and likely other powerups) falls during Morton, Ludwig and Roy battles. SMW made it use a fixed OAM slot just for their battles, but Arujus while building the More Sprites patch thought the fixed slot would be used during normal levels as well and removed it thinking it would cause problems. I have undo that change and both works now.
- Fixed sprite loading routine not running on SA-1 CPU during initialization. Now the routine is 100% SA-1 CPU.
- Fixed minor grammar error on notable changes and on this document.
Version 1.30 changes:
- Side note: does not work correctly with current version of RPG Hacker's VWF dialogues.
- Rewrote SMW's IRQ handling system. Now it runs on RAM, gives PPU IRQ priority over SA-1 IRQ, added support for custom IRQ codes.
- Added support for bypassing SMW's NMI routine to run on specific
scanline as an IRQ, also known as "IRQ-as-NMI". In practice this trick,
used in many games including Yoshi's Island, Super Mario RPG, Star Fox
and more will allow for much more DMA uploads per time, which implies
into more ExAnimations, Dynamic Sprites, etc., in sacrifice of vertical
- IRQ and NMI now preserves $2224 and Direct Page. Direct Page usage and BW-RAM mapping is now allowed on SNES CPU side as well.
- Rewrote most of the documents, including the README, to include more
information and use markdown styling, which includes the BW-RAM, I-RAM,
Memory Map Summary and Sprite Remap documents.
- README and all other documents are now in .html format on the release .zip file.
- Split some of the routines in sa1.asm to separate files.
- Added W-RAM document.
- Added known issues document.
- Added notable changes document.
- Added programming document, which was part of the README originally.
- Updated quick guide to include updated information.
- Added remap.asm with hybrid SA-1 Pack/normal definitions.
- Made the SA-1 dynamic vectors loads value from vector info on initialization instead of static default vectors from SMW.
I didn't post v1.30 before because as soon as I was gonna write the new post I noticed I missed fixing the lives exchanger bug and I thought to postpone until I made something more stable to release. So the v1.30 was left within my GitHub repo.
This version does not work
with VWF Dialogues and requires to you change your sprite header index to 0x08 instead of 0x10 for the 22 sprites mode. However it has native support for the new Lunar Magic version. I will be working on a fix for VWF dialogues patch itself on the next days, but you can use the new SA-1 Pack without VWF dialogues for now (the ROM will only cause problems when you open something with VWF).
Recommended upgrade procedure:
1) Edit your ROM with new Lunar Magic version
2) Apply this SA-1 Pack version.
3) **Update** and run your preferred Sprite Tool.
The current version of Romi's Sprite Tool will work fine except with the Goal Tape sprite. However you must update all of your sprites to take the sub off screen routines and map16 changes if you want to use them on the custom level size.
I already updated Romi's Sprite Tool and you can download it here
. Will make a thread dedicated for Romi's Sprite Tool soon.
Download SA-1 Pack v1.31
- SnesLab Discord