It is currently Fri Nov 17, 2017 2:32 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 168 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 12  Next
Author Message
PostPosted: Tue Sep 09, 2014 3:30 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
I ran out of room to fix a Nintendo original glitch that I found. This is BS how limited FDS PRG is... Here is the fix to correct if the player went down a pipe and a hammer was thrown at the player at the same time they'd take damage and "fall" through the side of the pipe. http://www.mariowiki.com/List_of_Super_Mario_Bros.:_The_Lost_Levels_glitches#Hammer_through_the_Pipe This fixes it, so I'm giving the fix to anyone who wants to add it to their hack. I'm a little pissed that I ran out of room. If I find something that I can optimize I will add this in:

Code:
;In the routine "HandlePipeEntry:", add this code right after the "sta GameEngineSubroutine"

lda #$01      ;what we want to do is set the Injury Timer flag
sta InjuryTimer ;to avoid collision with enemies or hammers when
jsr InjurePlayer ;going down pipes
;so flag Z will now be cleared and we will branch off to "ExInjColRoutines"
;and then RTS


This fix takes up exactly 8 bytes...sigh. :x


Top
 Profile  
 
PostPosted: Tue Sep 09, 2014 8:20 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
I did it!

I also optimized the code to correct the hammer glitch listed above. Turns out I had the code in the wrong place; use this code to add it to your hacks. Also, my patch should be 100% stable. ASM truly is the holy grail of hacking. ^^

Code:
;In "VerticalPipeEntry:", add the following line of code to fix the hammer ;collision glitch
sta InjuryTimer ;add this right after the lda #$01 that's there


SMB2J original ROM (65,000 bytes) CRC16 = BA55
My hacked SMB game CRC16 = D835


Last edited by ShaneM on Sun Jan 25, 2015 10:05 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Sat Sep 13, 2014 7:29 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
I have just fixed the mother of all original SMB glitches. *Drum rolls*

I have fixed Small Fiery Mario (https://www.youtube.com/watch?v=KxMUM1FRym4)! This glitch has got to be the hardest one to fix in the history of glitches. Originally, I had no idea what caused the glitch, as I knew there were two flags (one for player size and the other for player form) but I didn't know what was causing the glitch. It was not until I hacked the SNES version of Allstars (yeah, 65c816 is VERY similar and the code is almost verbatim) that I found the glitch actually had to do with the axe code and how it was erased. (Yes, Allstars fixes it.) The thing was, on the SNES version it took 56 bytes to fix it (0.o); space I just didn't have. But since I located the problem I knew what to do and how I could optimize enough code to create my own custom routine to fix this. So, here it is; fixed on BOTH SMB1 and SMB2J. Enjoy. There is absolutely nothing more to fix/correct on these games as I pretty much fixed every known glitch. My versions are now the most sublime versions of SMB1 and SMB2J. More sublime than the SNES, GBC etc. versions. If you find a bug (not impossible) you can report it to me.

I am the first person in NES hacking history of hacking to fix this. If you borrow the fix, credit me. --ShaneM

SMB2J original ROM (65,000 bytes) CRC16 = BA55
My hacked SMB game CRC16 = 846A


Last edited by ShaneM on Sun Jan 25, 2015 10:06 pm, edited 4 times in total.

Top
 Profile  
 
PostPosted: Sat Sep 13, 2014 11:33 pm 
Offline

Joined: Sun Mar 19, 2006 9:44 pm
Posts: 919
Location: Japan
So, maybe nobody has asked this yet: Why are almost all the colours in your screenshots dark and murky? Did you hack the palette to make it that way? If you did I must say it's really visually unappealing.

_________________
http://www.chrismcovell.com


Top
 Profile  
 
PostPosted: Sun Sep 14, 2014 4:33 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
ccovell wrote:
So, maybe nobody has asked this yet: Why are almost all the colours in your screenshots dark and murky? Did you hack the palette to make it that way? If you did I must say it's really visually unappealing.



No. Those came from the .pal file included. The NES palettes for the most part are the same. I chose what palettes to change on the .pal file based on what I like as a preference. What's "unappealing" to one is "beauty" to another. :P ^_^


Top
 Profile  
 
PostPosted: Tue Sep 16, 2014 7:32 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
I just reviewed the original SMB2J's code after work today and I realized something else that I could do to improve this game so I did.

When Kasumi worked on this game, I paid him to make it stop counting lives after 128. But really, after looking at the original code, I realize that nothing was meant to go above 19 lives. After 9 lives, the game would replace with Crown lives. (The SNES version went with 128 lives because it also saved lives count to SRAM for later. On the NES this was not needed as level saving was not an option. Also, to account for the fact that the Player will be awarded 100,000 pts. for every life left at the end causing an overflow with the score and strange tiles being loaded for lives.)

So I fixed it. I made a small routine to make it stop counting lives at Crown 9, like it was intended to be. That fixes BOTH issues with score overflow as well as strange tiles being loaded. Now, I found a routine that I can potentially optimize to get me another 56 bytes. If I do it, I may also add water sprite animation cycles. But I need to figure out how to go about it. For right now, here is the 'supposed' final version with lives fix. (This fix was made to both SMB1 and SMB2J.) Here is my code first:

Code:
lda numberoflives   
cmp #$12       
bcs end               
inc numberoflives
end:rts


SMB2J original ROM (65,000 bytes) CRC16 = BA55
My hacked SMB game CRC16 = A7AB


Attachments:
Super Mario Bros. 1 & 2 Plus (Japan)_004.png
Super Mario Bros. 1 & 2 Plus (Japan)_004.png [ 1.52 KiB | Viewed 2677 times ]


Last edited by ShaneM on Sun Jan 25, 2015 10:06 pm, edited 1 time in total.
Top
 Profile  
 
PostPosted: Fri Sep 19, 2014 8:20 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
I still have 56 free bytes but it is impossible for me to make animated waves with it because I cannot create additional free CHR RAM space with it. But, I optimized more code to create an even better Hard Mode when the player accumulates 8 stars (SMB2J on Side B is unchanged from the lives fix):

*Red Piranha Plants replace Green ones from 1-1
*Aggressive Hammer Bros. replace regular ones
*Hammer Bowser starts at World 1

(In non-Hard Mode = less than 8 stars, Red Piranhas still start at 4-1, Hammer Bowser at World 6 and Aggressive Hammer Bros. at World 7 as usual.)

This is the final version of this game as I cannot do anymore with it as it is as good as it can possibly be.

SMB2J original ROM (65,000 bytes) CRC16 = BA55
My hacked SMB game CRC16 = 56A7


Attachments:
Super Mario Bros. 1 & 2 Plus (Japan) (4)_002.png
Super Mario Bros. 1 & 2 Plus (Japan) (4)_002.png [ 3.81 KiB | Viewed 2633 times ]
Super Mario Bros. 1 & 2 Plus (Japan) (4)_001.png
Super Mario Bros. 1 & 2 Plus (Japan) (4)_001.png [ 3.67 KiB | Viewed 2633 times ]
Super Mario Bros. 1 & 2 Plus (Japan) - Copy (3)_001.png
Super Mario Bros. 1 & 2 Plus (Japan) - Copy (3)_001.png [ 3.34 KiB | Viewed 2633 times ]


Last edited by ShaneM on Sun Jan 25, 2015 10:06 pm, edited 1 time in total.
Top
 Profile  
 
PostPosted: Tue Sep 23, 2014 12:07 am 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
ShaneM wrote:
This is the final version of this game as I cannot do anymore with it as it is as good as it can possibly be.


I stand corrected. There IS one last thing that I can and did fix:

Mario_Wiki wrote:
This works in World 1-1. Mario or Luigi must hit the block with the Star inside, then they must go to the bit with the half pyramid with 10 blocks on each half, without touching the Star. Then they let the Star touch them, and as quickly as possible, the player must run to the flagpole. If done correctly, when the invincibility wears off, the music from the level will play instead of the usual flagpole fanfare.


Here's a video: https://www.youtube.com/watch?v=DiFJityZiH4

The code I created to fix it:

Code:
;In the routine "NoWind"
lda FlagpoleMusicFlag ;is the flag music playing?
bne NoChgMus ;if so, branch to original code
jsr GetAreaMusic ;otherwise reload area music (this line is original code)


If you borrow this code please credit me or I will be pissed. Thanks. (^_^)" (And I know quite a few people and whether or not you know ASM and I will check the code to see if it's mine and call your bluff, too. So save yourself the embarrassment and just credit me if you use it because it took me time and effort to trace the code. [...Credit me for any/all my glitch fixes, too, since I notoriously fixed every known one.])

Since I made SMB1's code "my bitch" (street slang), I've mastered ASM and the game's code. So, I still have like...say.. 49(?) or so more free bytes from the Cheep-Cheep optimization, so if you have any more original glitches that you want me to fix, NOW is the time to link me to it/them.

SMB2J original ROM (65,000 bytes) CRC16 = BA55
My hacked SMB game CRC16 = D8A4


Last edited by ShaneM on Sun Jan 25, 2015 10:07 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 12:30 am 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 746
Location: Shelton, Washington.
A fix I created for the SMB2j ending to make the status bar's coin counter graphic gold like it should be:

Code:
PrincessPeachsRoom:
    .db $20, $80, $60, $5e ;Nintendo's original data
    .db $20, $a0, $60, $5d
    .db $23, $40, $60, $5e
    .db $23, $60, $60, $5d
    .db $23, $80, $60, $5e
    .db $23, $a0, $60, $5d
    .db $23, $c0, $50, $55
    .db $23, $f0, $50, $55
    .db $23, $c2, $01, $d5 ;H126-fix: added for coin icon in status bar
    .db $00


It works, but needs more testing (works when playing worlds 1-8, dunno about 9 or A-D)!

_________________
AKA SmilyMZX/AtariHacker.


Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 1:36 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
Hamtaro126 wrote:
A fix I created for the SMB2j ending to make the status bar's coin counter graphic gold like it should be:

Code:
PrincessPeachsRoom:
    .db $20, $80, $60, $5e ;Nintendo's original data
    .db $20, $a0, $60, $5d
    .db $23, $40, $60, $5e
    .db $23, $60, $60, $5d
    .db $23, $80, $60, $5e
    .db $23, $a0, $60, $5d
    .db $23, $c0, $50, $55
    .db $23, $f0, $50, $55
    .db $23, $c2, $01, $d5 ;H126-fix: added for coin icon in status bar
    .db $00


It works, but needs more testing (works when playing worlds 1-8, dunno about 9 or A-D)!


I wasn't aware of any such issue. I will take a look at it. Victory mode data is found in bank $02, meaning it's loaded with World 8 & D's ending, as well as the whole World 9. It is NOT loaded anytime else, so please be weary of that. If you want it to always be loaded, add it to bank $00. (If I were you, I'd generate a .lst file to assist you.)

Thanks for giving me something else to work on. Will look into it. For bank $02, I have almost 200 free bytes left, so more than enough to work with if I need to fix that. (I have 49 or so bytes left from the Cheep-Cheep optimization in bank $00.) Thanks. --ShaneM

EDIT: Save me some time; what exactly does your line of data fix?


Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 3:33 pm 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 746
Location: Shelton, Washington.
The Status Bar Coin Icon's Gold coloring turns White due to the ending doing a revamp of the whole nametable while the ending loads, but Nintendo forgot to fix that issue due to a possible rush or such, my line fixes that...

_________________
AKA SmilyMZX/AtariHacker.


Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 6:47 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
Hamtaro126 wrote:
Code:
PrincessPeachsRoom:
    .db $20, $80, $60, $5e ;Nintendo's original data
    .db $20, $a0, $60, $5d
    .db $23, $40, $60, $5e
    .db $23, $60, $60, $5d
    .db $23, $80, $60, $5e
    .db $23, $a0, $60, $5d
    .db $23, $c0, $50, $55
    .db $23, $f0, $50, $55
    .db $23, $c2, $01, $d5 ;H126-fix: added for coin icon in status bar
    .db $00



If there's one thing I abhor it's a liar. That data is already very well there that you "created":

Code:
UnusedAttribData:
    .db $23, $c0, $48, $55
    .db $23, $c2, $01, $d5 ;hmm, looks familiar
    .db $00 


Next time, why not try learning some ASM and actually creating something on your own. It would have been fine if you were like: "Hey ShaneM, I found that the 'UnusedAttributeData' fixes the color of the coin. I'm not sure it's broken as data EXISTS for it."

No credit goes to you if I decide to implement this because you were dishonest.

EDIT: BTW, you didn't even do it right. The unused fix needs to be above the $F0 line and the $50 on the line above that needs to be changed to $48.


Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 7:34 pm 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 746
Location: Shelton, Washington.
I did not mean to lie, I was just trying to make a quick fix for that graphical error, and I forgot to compare it to UnusedAttribData too, so it may be the original lost status bar data.

I guess I will keep it to myself then if you are not satisfied with it, I should have not given help to you...

_________________
AKA SmilyMZX/AtariHacker.


Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 8:09 pm 
Offline
User avatar

Joined: Wed Apr 04, 2012 4:15 pm
Posts: 353
Location: United States of America (USA)
Hamtaro126 wrote:
I did not mean to lie, I was just trying to make a quick fix for that graphical error, and I forgot to compare it to UnusedAttribData too, so it may be the original lost status bar data.

I guess I will keep it to myself then if you are not satisfied with it, I should have not given help to you...



Bottom line: I don't play games with people. You know what you did and are trying to twist it. Just stop. Period.


Top
 Profile  
 
PostPosted: Thu Sep 25, 2014 8:21 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19221
Location: NE Indiana, USA (NTSC)
ShaneM wrote:
Bottom line: I don't play games with people.

So let me guess: You'd be unwilling to help test a 2-player NES game using an emulator that supports netplay.

Quote:
You know what you did and are trying to twist it. Just stop. Period.

This sort of tone would drive off even legitimate contributors.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 168 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 12  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group