Description: |
This pack of patches enables the SA-1 chip on your ROM and modifies almost all SMW engine to make the sprites (including non-standard) and blocks processed by SA-1, killing almost all slowdown on level and overworld and decreases the level loading time. And as a bonus, it increases the maximum number of sprites on screen to 20 and per level to 255.
Additionally, it includes a couple of minor optimizations, like the circle routine used on level ending.
With this, almost all slowdown possible in-game disappears.
Features:
- Increases the maximum amount of sprites *on screen* to 22.
- Increases the maximum amount of sprites *per level* to 255.
- Moves the sprite processing code to SA-1, making all sprites gets processed 4 times as normally
- Optimizes some routines to make the level loading faster.
- Moves almost all non standard sprites, such as shooters, generators, cluster, extended, minor extended, bounce, score and smoke to SA-1 CPU.
- Moves the block/map16 handling to SA-1 CPU.
- Moves almost all overworld code to SA-1 side, leaving minimal CPU usage on overworld.
- All other SA-1 features like 6 and 8MB support, 10.74 MHz CPU, Character Conversion DMA, fast RAM, etc.
Versin 1.32 changes:
- Fixed an oversight in the Lives Exchanger fix. (LX5)
- Fixed a rare bug involving the tile generation routine. (Tattletale)
- Minor code cleanup.
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
screen resolution.
- 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.
|
Comments (50)
It's pretty common practice for hackers to periodically port over all of their resources to a new base ROM for various reasons, so that wouldn't cause any serious problems. Plus, most of the people who would use this patch at all are advanced hackers who already have experience / have finished hacks before, so it's not that unreasonable to think that someone would know of this (extremely famous) patch prior to beginning a new hack.
Besides, it's not like there's anything Vitor Vilela can do to fix this issue.
I've been playing SMW since it released and it is so cool to have such high performance and never feel any slow down.
This makes 1 of the best games ever, even better.
Thank you to the authors! <3
Dynamic Sprites patch that uses from its dsx.asm is already implemented on SA-1
Steps I've followed:
1. Opened new, clean, unmodified rom in Lunar Magic v3.21.
2. Expanded rom to 2mb.
3. Opened ASAR.
4. Put SA-1.asm patch in ASAR.
5. Put rom in ASAR.
6. Hit enter.
7. Read the screen where bites were increased and there were no issues.
8. Opened rom in every emulator I have on my PC to find that nothing works.
Thanks fellas for the help.
autor: seven-ish persons
the best slowdown/disapearing tiles remover in smwc that even makes some resources that work get rejected for not being compatible:
autor: two persons
i see this patch pretty useful and easy for use.
One is from 2011, the other from 2013.
And not everything worked with SA-1. You couldn't even play SA-1 on certain flash cart a few years ago. Easy to criticize the work of others.
eh... i wasn't even criticizing the work... sa-1 is probably the best patch on smwc, and a good alternative for the old sprite tile limit patch, i just found out funny the fact that a special chip was made by two persons, and a patch that fixes the amount of sprite tilemap on screen was made by seven persons, the old one is pretty cool, that would explain it's use on smw hacking, and why would i criticize someone else's work, if it's pure asm, and i don't know asm? lmao
autor: seven-ish persons
the best slowdown/disapearing tiles remover in smwc that even makes some resources that work get rejected for not being compatible:
autor: two persons
i see this patch pretty useful and easy for use.
One is from 2011, the other from 2013.
And not everything worked with SA-1. You couldn't even play SA-1 on certain flash cart a few years ago. Easy to criticize the work of others.
You can use Zsnes 8MB Custom Build by FuSoYa(search on Google).
lol funny
autor: seven-ish persons
the best slowdown/disapearing tiles remover in smwc that even makes some resources that work get rejected for not being compatible:
autor: two persons
i see this patch pretty useful and easy for use.
I'm not sure that's how SA-1 would work, I'm pretty sure that if there was a way to keep everything compatible with SA-1 on it's own, then he would have done that a long time ago. Besides, SA-1 already seems really weird with how it works on the SNES.
Edit: I solved that I follow directions that I have to expand to any mb of 2, 3, or 4.
So never mind. It works fine.
Did you insert it to a clean ROM that's already been expanded to 2MB but otherwise unedited?
Did you insert it to a clean ROM that's already been expanded to 2MB but otherwise unedited?
All of the fixes work, so I'm approving it.
(coders: be careful with NMI-heavy stuff when the lives exchanger is enabled though, it may break it again)
Not much of a problem, since smw bosses are not often used on smw hacks.
The ROM Crashes (Note: I have converted the sprite with sa-1 converter)
I have no problem with making this patch work in higan v099. I haven't tried higan v100, will edit when I try it out.
EDIT: Confirmed, black screen with v100.