Language…
11 users online: anonimzwx, codfish1002, DanMario24YT, deported, koffe190, lean4, ModernKiwi, Pizzagamer9791,  Ringo, SysDataSoft,  yoshi3706 - Guests: 299 - Bots: 300
Users: 64,795 (2,375 active)
Latest user: mathew

SA-1 Pack v1.32 (Reduces Slowdown)

SMW Patches → SA-1 Pack v1.32 (Reduces Slowdown)

This file is obsolete. The latest version is SA-1 Pack v1.40. For other versions, check the version history.

Submission Details

Name: SA-1 Pack v1.32 (Reduces Slowdown)
Authors: Arujus, Vitor Vilela
Added:
Version History: View
Tool: Asar
Requires Free Space: Yes
Bug Fix: No
Featured: Yes
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:
  1. Increases the maximum amount of sprites *on screen* to 22.
  2. Increases the maximum amount of sprites *per level* to 255.
  3. Moves the sprite processing code to SA-1, making all sprites gets processed 4 times as normally
  4. Optimizes some routines to make the level loading faster.
  5. Moves almost all non standard sprites, such as shooters, generators, cluster, extended, minor extended, bounce, score and smoke to SA-1 CPU.
  6. Moves the block/map16 handling to SA-1 CPU.
  7. Moves almost all overworld code to SA-1 side, leaving minimal CPU usage on overworld.
  8. 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.
Tags: chip sa-1 speedup sprites
Comments: 50 (jump to comments)
Download 168.75 KiB | 4,215 downloads

Screenshots

View all

Comments (50)

 K.T.B. Link
Originally posted by Xboy1282
Bruh what's the point if you can't apply it to a modified ROM 90% of people aren't even gonna find this before they started making the ROM

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.
Xboy1282 Link
Bruh what's the point if you can't apply it to a modified ROM 90% of people aren't even gonna find this before they started making the ROM
Atari Link
I patched a fresh ROM and loaded it up on my SNES with a SD2SNES cartridge to try this. This is amazing!
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
El Cuh Fermin Link
Originally posted by Darkbloom
Dynamic sprites aren't compatible with SA-1 anymore!


Dynamic Sprites patch that uses from its dsx.asm is already implemented on SA-1
obersteiner86 Link
no the steps are wrong dont open up the rom in lunar magic asar 1.71 expand the rom after you apply the sa-1 patch, after you apply the sa-1 patch, patch all orther patches to you rom(warrning you patches need sa-1 support now) after all patches apply to you rom then open up the rom with lunar magic and expand it to 4 mb, because if you us retry patch you need to change some stuff in lunar magic ore you rom not works. But ther is are tool on the forum that ats sa-1 support to most of the patches
GrumpyWalrus Link
Can anyone confirm if there is a compatibility issue in the newest Lunar Magic release? I've spent the last 2 hours downloading new roms, following both the online README and the included txt readme, on a clean rom in both SNES9x v1.60 and BSNES v1.55 and the BSNES nightly beta release, and cannot get the SA-1 patched rom to load, even the ASAR states it's patched correctly with no issues.

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.
Dark Prince Link
Originally posted by Romano338
Originally posted by Dark Prince
no more sprite tile limits:
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
Romano338 Link
Originally posted by Dark Prince
no more sprite tile limits:
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.
mish1 Link
they still are
Vivian Darkbloom Link
Dynamic sprites aren't compatible with SA-1 anymore!
Batata Douce Link
Originally posted by Kiatus
can you make this compatible with zsnes pleseae


You can use Zsnes 8MB Custom Build by FuSoYa(search on Google).
Wheat Link
Is there anyway I can use an unclean rom? I only needed this patch after I started making my hack and I could use a clean new rom but I would need to start over!!!
SweatyNoodle Link
Originally posted by Maxodex
is this compatible with SA-1

lol funny
Dark Prince Link
no more sprite tile limits:
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.
Kiatus Link
can you make this compatible with zsnes pleseae
Maxodex Link
is this compatible with SA-1
lx5 Link
Is This Compatible With Super FX And VWF Cutscene Tool
AntiDuck Link
Originally posted by Shiny Ninetales
yeah please make this compatible with everything instead of making everything compatible with this

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.
 Ayami Link
yeah please make this compatible with everything instead of making everything compatible with this
El Cuh Fermin Link
Please make compatible with powerups 3.3.4, ExGFX, AddMusicK, Gopher Popcorn Stew, PIXI as well and everything that needs to be compatible.

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.
El Cuh Fermin Link
Originally posted by AntiDuck
Originally posted by izaguirrefermin28
It has a black screen.

Did you insert it to a clean ROM that's already been expanded to 2MB but otherwise unedited?
when I inserted with Addmusick and inserting Exgfx and won't work my game.
AntiDuck Link
Originally posted by izaguirrefermin28
It has a black screen.

Did you insert it to a clean ROM that's already been expanded to 2MB but otherwise unedited?
El Cuh Fermin Link
It has a black screen.
 Erik Link
Tested with: Asar 1.71; Lunar Magic 3.03; bsnes v106.44
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)
Knucklesfan From older version: SA-1 Pack v1.31 (Reduces Slowdown) Link
This patch doesn't work with VWF Messages as of yet. Kinda useless with my hack lol. Hope you get it working soon!
Zareption From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
God made patch
HammerBrother From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
Note that the multiplication registers are SIGNED, and performs calculation when $2254 is written.
HammerBrother From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
I notice a bug in ludwig boss fight about the item being dropped from the item box goes behind the sprite background (assuming you must've messed up the OAM order). In the normal original smw, it was fine.

Not much of a problem, since smw bosses are not often used on smw hacks.
 Erik From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
the tool should be compatible too. there's a sa-1 spritetool around there but I don't know where. Best to use PIXI.
Aurel509 From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
When I insert some sprites with the Romi's SpriteTool v1.41.
The ROM Crashes (Note: I have converted the sprite with sa-1 converter)
HammerBrother From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
you mean blue shellless koopas not catching moving shells at all.
 Erik From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
All of the bugfixes and other features seem to work fine. Good job on this patch!
Wind Fish From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
Is this the version the VLDCX base rom is using? If so, it works fine
 Erik From older version: SA-1 Pack v1.26 (Reduces Slowdown) Link
oh my god how do you even start with moderating this
HammerBrother From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
Note that when using the multiplication/division routine, $2254 must be written in order to take effect.
Kaisaan From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
When expanding the ROM to 8MB, do I patch 8mb.asm or can I expand it through LM without the use of that patch?
H.carrell on an ipad From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
thx
Vitor Vilela Author From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
It's a higan v100 bug, confirmed by byuu. SA-1 Pack heavily uses IRQs.
Mogu94 From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
Can confirm, black screen with Higan v100
 Noivern From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
Chiming in here...

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.
Vitor Vilela Author From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
I will check what's going on with higan v100.
 RPG Hacker From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
Also just tried Higan v092 (from the Tools section), worked fine in that verison as well, so it's definitely something introduced in newer versions of Higan that causes it to break...
 Erik From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
confirming that. works in higan v098 though.
 RPG Hacker From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
I have problems getting this too work with Higan v100. Whenever I apply this to a ROM (after following the appropriate steps listed here http://smwc.me/1118451) and start it in Higan, I just get a black screen. The ROM does still work in BSNES Accuracy, so I'm not sure if the ROM itself is corrupted. Other SA-1 games (such as Super Mario RPG) still work in Higan, though. Did anyone have this problem before?
 Aram From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
I don't find the appeal of playing hacks on an SNES.
UTF From older version: SA-1 Pack v1.25 (Reduces Slowdown) Link
yeah! real hardware compatibility!! with the sprite and block conversion tool and the sa-1 spritetool that got released recently, this patch definitely is more user-friendly than ever. good stuff.
Taffy From older version: SA-1 Pack v1.24 Link
I love this patch! It really suits what I am working on, and it is just really high quality! The ZSNES compatibility issue doesnt bother me, as I use snes9x.
HammerBrother From older version: SA-1 Pack v1.24 Link
Note that the real maximum number of slots are 22 slots (0-21 (#$00-#$15 for hex) possible range) the reason for 20 slots is because the last-two slot indexes are for misc spawning sprites (item box sprite after released and from blocks).
HammerBrother From older version: SA-1 Pack v1.24 Link
I think it has to do with the sprite header of LM (the Lakitu cloud button).
Nickelony From older version: SA-1 Pack v1.24 Link
I can't place more than 7 sprites on 1 screen, why?