Language…
10 users online: ASSATAKKU, Daizo Dee Von, GigaCrash, Jordan, KaidenThelens, lx5, MarsAmpere, melondrank, Natsuz2,  RussianMan - Guests: 108 - Bots: 128
Users: 56,349 (2,191 active)
Latest user: Breoc

Easy Mode 7 Patch 1.1

SMW Patches → Easy Mode 7 Patch 1.1

Submission Details

Name: Easy Mode 7 Patch 1.1
Authors: ExE Boss, HuFlungDu, mathie
Added:
Version History: View
Tool: Asar
Requires Free Space: Yes
Bug Fix: No
Featured: No
Description: When you try to use Mode 7 in the original SMW, you can’t properly use its registers unless you store $C1 to $7E:0D9B to activate Bowser’s battle mode. The problem, in this case, is that part of the Mode 7 tilemap is reserved to Bowser and thus is always filled with undesired tiles which are impossible to get rid of.

The earlier version of this patch, entirely made by HuFlungDu, corrected this aspect but caused the Mode 7 image to act like Iggy/Larry’s platform and some sprite tiles to appear.

The version you can download here has been corrected with SA-1 compatibility and 2 tweaks to disable 1) Iggy/Larry’s platform rotation 2) Iggy/Larry’s animated lava sprite tiles.

ExE Boss’s Changes
------------------
- Full compatibility with all of the original game’s Mode 7 bosses
- Added a subroutine for uploading the Mode 7 GFX and tilemap to VRAM
- The Layer 3 status bar can now enabled by setting the Layer 3 absolute priority bit of $3E, this then works the same way as in the Koopaling/Reznor battles by using IRQ to change the background mode at scanline $24 ($26 with Super Status Bar).

Update by  MarioFanGamer
------------------
- Removed shared subroutines
- Added compatibility with SA-1 Pack v1.32+
- Fixed a bug where Mode 7 is still enabled on the time up and game over screen.

------------------

P.S.: I recommend watching IsoFrieze’s video explaining the Mode 7.

Notice: You must first completely uninstall 1.0 before installing 1.1 (but you don’t need to uninstall the UberASM code).

------------------

Source code is available on my GitHub.
Tags: lorom mode 7 sa-1 tilemap
Comments: 13 (jump to comments)
Download 89.13 KiB | 603 downloads

Screenshots

View all

Comments (13)

 Burning Loaf Link
Accepted, Both custom mode 7 code and the original bosses work fine.
Tested with:
- Asar 1.81
- SA-1 Pack 1.40
- Lunar Magic 3.30
- Bsnes v115
- Mesen-S 0.4.0
- Snes9x 1.60

PS. Very sorry for the long claim time, i was busy but now things are loosening a bit.
Anas Link
Originally posted by MarioFanGamer
Update: I just have fixed a bug where Mode 7 is still active on game over and time up if you have the status bar enabled. This will glitch layer 3 but that can be fixed if you enable layer 3 bypass in a single level (it can be decativated afterwards).


Alright, tested it and it works fine now! Thanks!
 MarioFanGamer Link
Update: I just have fixed a bug where Mode 7 is still active on game over and time up if you have the status bar enabled. This will glitch layer 3 but that can be fixed if you enable layer 3 bypass in a single level (it can be decativated afterwards).
 MarioFanGamer Link
The previous version had the issue that you couldn't enable the Status Bar with SA-1 Pack due to changes in the IRQ system from version 1.32 onwards. In addition, Asar turned out to be not completely backwards compatible as it broke the shared function patch (it was created in a time where Asar used to have less usable functions).
The patch is otherwise unchanged and doesn't need a version upgrade as a result.
Hayashi Neru From older version: Easy Mode 7 Patch 1.1 Link
※ This patch does not work with the latest version of ASAR, you must use ASAR 1.71.
Roy_Maluco From older version: Easy Mode 7 Patch 1.1 Link
Gira e Gira
john fortnite kennedy From older version: Easy Mode 7 Patch 1.1 Link
Mode 7 & status bar doesn't do anything on SA-1 (status bar doesn't show up) (I modified the patch to always show the status bar, and that led to layer 1 disappearing.

The code that causes layer 1 to disappear:
Code
	LDA #$14	;\ Ensure that only the Layer 3 status bar and sprites
	STA $212C	;| are visible on the status bar scanlines (i.e. hide L1/L2 garbage tiles
	STZ $212D	;/


Fixed

Code
	LDA #%00010101	;\ Ensure that only the Layer 3 status bar and sprites
	STA $212C	;| are visible on the status bar scanlines (i.e. hide L1/L2 garbage tiles
	STZ $212D	;/


Status bar has layer 1 garbage though on it now. Not sure how to fix it.

Haven't tested on roms without it.

Edit : You can fix this issue by setting up HDMA which hides layer 1/2 for a few scanlines. If anyone is having the same issue as me, run this code in nmi/main of uberasm.

Code
hdma:
   	REP #$20                      ;\  16 bit mode
		LDA #$2C00                ; | 
		STA $4330                 ; | 
		LDA #$2D00                ; | 
		STA $4340                 ; | 
		LDA #.LayerTable          ; | load high and low byte of table address
		STA $4332                 ; / 
		STA $4342
   	SEP #$20                  ; \ back to 8 bit mode
   	LDA.b #.LayerTable>>16   ; | load bank byte of table address
   	STA $4334                 ; / 
	STA $4344
	

   	LDA #$18                  ;\ 
   	TSB $6D9F                 ;| enable HDMA channel 4 and 5
RTS                       	  ;/ 

.LayerTable:
   db $30 : db $14
   db $00
 MarioFanGamer From older version: Easy Mode 7 Patch 1.1 Link
Fun fact when I moderated this patch: The patch or rather, the mode 7 effect seemed to glitch the graphics of the first two pages. But it turned out, it were just the graphics and SMW never reloads the manually uploaded graphics on the first two pages due to them being universal in levels anyway.
Once I have used the ExGFX bypass, the glitches disappear (alternatively, I could have extracted and inserted ExGFX for similar effect). Which happened on a different ROM containing the older version and I unknowingly have edited said ROM instead of the ROM with the 1.1 version of the patch.

Best moderation ever, lol.
Nikku4211 From older version: Easy Mode 7 Patch 1.1 Link
I think this should've been called version 2.0.
 RussianMan From older version: Easy Mode 7 Patch 1.0 Link
There's one problem with example code.
Code
	REP #$20
	LDA #$0180 : STA $2A	; \ Set effect center to tilemap center
	LDA #$0180 : STA $2C	; /
	STZ $36					; Set angle to 0°
	LDA #$8080 : STA $38	; Set size to 25% so the whole tilemap is visible
	LDA #$0180 : STA $3A	; \ Set layer position to tilemap center
	LDA #$0180 : STA $3C	; /
	SEP #$20

Example code says place it in Main level code while it should be in init, otherwise image will not do whatever you wanted with it (Rotating for example)
Other than that it's actually pretty good patch :)
 mathie Author From older version: Easy Mode 7 Patch 1.0 Link
@GreenHammerBro
Sure. What the patch does is that it allows you to use the Mode 7 registers anytime the SNES draws in BG mode 7. It doesn't prevent you from using IRQs to change BG Mode mid-frame.
However, I don't know how to trigger one to be honest, nor how to make the BG Mode change occur during it, sorry.
But this is a really good question. I'll add your idea to this patch's future plans.
HammerBrother From older version: Easy Mode 7 Patch 1.0 Link
Can users still make it have an IRQ so that they can show the HUD?
DiscoTheBat From older version: Easy Mode 7 Patch 1.0 Link
Welp, I'm impressed, not only at the simplicity of this patch but how it helps the users in having their own Mode 7 contents without making too much fuss. With the UberASM Tool then, it makes it infinitely easier to work with it.

Extremely good job!