Name: | Center Scroll 3.5 |
Authors: | HammerBrother, Thomas |
Added: | |
Version History: | View |
Tool: | Asar |
Requires Free Space: | Yes |
Bug Fix: | No |
Featured: | No |
Description: | This patch reduces the width of the "static camera region" (the range where the screen doesn't scroll left or right by the player) to a single pixel, removes the auto "look ahead" feature in smw and makes the screen always centered with the player (ignoring L/R scrolling, but still has the reduced "static camera region"). Update: Added a newer version (with the old version in case you want it) that makes the screen tightly follow Mario vertically (the vertical scroll area is also reduced to a single line) when you set the vertical scroll to "vertical scroll at will". This is more ASM-flexible. See readme for details. And also allow the bottom 16x16 row to be seen (both). Another update: Also include a non-instant-scroll to prevent player-warp glitches. v3.2 update: Fixed a crash on vertical levels due to a hijack at $00F77B. v3.3 fixed a missing SA-1 [|!addr] at line 324, which caused the screen shaking issue (or snapping scroll on Bsnes+) on SA-1 vertical levels when using the non-instant scroll. v3.4 fixed a broken compatibility with LM v3.20 and v3.21. v3.5 fixed a bug that occurred in the Ludwig and Reznor boss battle. Thanks to AyGaAlPa for reporting this. Github: https://github.com/GhbSmwc/SMW_CenterScroll |
Tags: | lorom sa-1 screen scroll scrolling |
Comments: | 58 (jump to comments) |
Download
20.07 KiB | 340 downloads
Comments (58)
to
This is because sprites spawn based on the position of the screen, altering the timing of sprites's movement. Recommend anyone using this patch to at least edit the title screen demo to avoid death.
No clue why
I may have figured out why
I guess I have to apply this to a completely unmodified ROM
No clue why
This update didn't change anything in the code but fixed an issue with Lunar Magic 3.20 and 3.21 (a certain code was changed in 3.20 so an hijack has to be moved in this patch). Note that this version is not compatible with earlier versions of LM (<= 3.11). If you need it, you can grab Center Scroll 3.3 from the version history.
While the game doesn't necessarily crash, upon testing, my knowledge so far:
-The scroll line position is off.
It appears that FuSoYa have moved the code that initializes the BG position and scroll line.
EDIT: issue is fixed. See release here.
Use this tool, drag the file onto the console window (after opening asar.exe), and hit ENTER, then do the same with the ROM, then enter.
Note: due to a discovered bug someone reported, this version crashes on vertical levels. Consider using this one instead.
Uh, it's a patch, not an uberasm code. You only use uberasm to write your own code that sets the scroll lines position.[/quote
i have to write my own code to get this to work?
Tag (div) was not closed.
Tag (div) was not closed.
CenterScroll.asm: error: Missing load/init/main/nmi label.
Uh, it's a patch, not an uberasm code. You only use uberasm to write your own code that sets the scroll lines position.
CenterScroll.asm: error: Missing load/init/main/nmi label.
It seems a new hijack appeared on $00F77B.
What define setting are you using?
Actually, I got it working not long after I commented.
What define setting are you using?
centerscroll.asm:84: error: (E5158): Assertion failed: Hijack for Horizontal Scroll Fix from Lunar Magic not detected! [assert read1($009708) == $22,"Hijack for Horizontal Scroll Fix from Lunar Magic not detected!"]
please help
This patch modifies LM code due to LM hijack relating to scrolling the screen to load layer 1 tiles as well as level loading to make sure the static cam region is centered properly.
Make sure you're using LM v3.03 or higher. As the code jumped from $009708 have been changed.
centerscroll.asm:84: error: (E5158): Assertion failed: Hijack for Horizontal Scroll Fix from Lunar Magic not detected! [assert read1($009708) == $22,"Hijack for Horizontal Scroll Fix from Lunar Magic not detected!"]
please help
Asar v1.71, Lunar Magic v3.02 (checking if it still works with the previous), Lunar Magic v3.03, SA-1 Pack v1.31, Snes9x v1.55
Works without issue.
What version of Asar are you using? I never experienced issues.
centerscroll.asm:120: error: Unknown function. [if and(equal(0,0),notequal(0,0))]
Any idea why this is happening?
CenterScrollAdvanced.asm:70: error: SNES address $8D000C doesn't map to ROM [nop #6]
? I have saved a level in lunar magic and have free ram in that area... Any help?
EDIT: Or perhaps if possible have the effects of this patch be incorporated into a block that activates the centered camera for the duration of the level, then reverts back when the level finishes or when a 'revert camera' block is touched.
In the bit inside the InitScrollPos label, the DEC instruction has to be replaced with the instruction to increment the accumulator by $0F instead, this is most noticeable when using Layer 2 V-Scroll: Constant.
I tried to use
but it just didn’t work for some odd reason, whereas 15 INC instructions did.
Edit: This only has to be done when BG v-scroll start is C0, because the equivalent FG v-scroll is CF.
- You don't need to switch the data bank in the Advanced version, it'll be faster to do LDA.l label,x since you're only accessing one table in total.
- You don't need PHP/PLP in such small code range. Not only that, the code that requires the original processor flags is restored right at the before you even push.
Fun fact: readmes are supposed to be user friendly, not a wall of unrelated text that average user: a) Doesn't understand; b) Doesn't care about. If the moderator, which knows about these things, has problems understanding what it goes on about, don't you think it's a good indication to start either shortening them or at least including a separate quick guide?
But neither of those I ound removal worthy, and it works, so approved. I don't really like this kind of scrolling personally but some do.
$00CDF6 to $00CE76, 00F72C to $00F758, $00F789 to $00F79B, and $00F810 to $00F8AA/$00F814 are skipped.
Either way, fix your nonsensical requirements, GHB. Use assert read1($00F6E4) == $5C and org read3($00F6E5).
And double check the SA-1 support, you missed the assert there and I suspect you may have missed more.
Tip : With my ROM expanded to 2MB i had a message : Address out of bounds. So i expanded my ROM to 3MB and it worked perfectly
@Kaisaan it works only with "Vertical Scroll at Will" ;)
Did you save at least 1 level in LM?
Enter patch name: CenterScroll.asm
Enter ROM name: ROM.smc
CenterScroll.asm:30: error: Assertion failed: Two possible problems: Save at least one level in lunar magic, or your rom is in a different format. [assert read4($00F6E4) == $1FB1A05C,"Two possible problems: Save at least one level in lunar magic, or your rom is in a different format."]
Errors were detected while assembling the patch. Assembling aborted. Your ROM has not been modified.
Press any key to continue . . .
But whatever, good job I guess.