Super Mario All-Stars Redrawn ( Lost Levels Demo is now Available in the OP )

Started by pocket, January 10, 2020, 09:11:21 PM

Previous topic - Next topic

stratoform

#300
Here's a brickfix for Yoshifanatic's disasm of SMB1

SMB1Routine_Macros_SMB1.asm

CODE_03BFA9:
JSR.w CODE_03BFCE
LDA.b #$01     --- note_2
STA.w $03EE,x
LDA.w !RAM_SMB1_Global_SoundCh3
BNE.b CODE_03BFBB
LDA.b #!Define_SMAS_Sound0063_BreakBlock
STA.w !RAM_SMB1_Global_SoundCh3
CODE_03BFBB:
JSR.w CODE_03BFF5
LDA.b #$FE ; Glitch: This should be #$01, because this value results in Mario rising when breaking a brick.
STA.b !RAM_SMB1_Player_YSpeed  --  note_2
LDA.b #$05
STA.w $014A
JSR.w CODE_03BD5D
LDX.w $03F0
RTS

;--------------------------------------------------------------------

CODE_03BFF5:
LDA.w $0226,x  ---  note_1
STA.w $03F3,x
LDA.b #$F0
STA.b $6A,x
STA.b $6C,x
LDA.b #$FA
STA.b $AD,x
LDA.b #$FC
STA.b $AF,x
STZ.w $0449,x
STZ.w $044B,x
LDA.b $85,x
STA.b $87,x
LDA.w $0226,x  ---  dupe_1
STA.w $0228,x  ---  optimise_1
LDA.w $0244,x
CLC
ADC.b #$08
STA.w $0246,x
LDA.b #$FA
STA.b $AD,x
RTS


which we optimise to this and fits



CODE_03BFA9:
JSR.w CODE_03BFCE
LDA.b #$01
STA.w $03EE,x
STA.b !RAM_SMB1_Player_YSpeed
STA.w !RAM_SMB1_Global_SoundCh1
LDA.w !RAM_SMB1_Global_SoundCh3
BNE.b CODE_03BFBB
LDA.b #!Define_SMAS_Sound0063_BreakBlock
STA.w !RAM_SMB1_Global_SoundCh3
CODE_03BFBB:
JSR.w CODE_03BFF5
LDA.b #$05
STA.w $014A
JSR.w CODE_03BD5D
LDX.w $03F0
RTS

;--------------------------------------------------------------------

CODE_03BFF5:
LDA.w $0226,x
STA.w $03F3,x
STA.w $0228,x
LDA.b #$F0
STA.b $6A,x
STA.b $6C,x
LDA.b #$FA
STA.b $AD,x
LDA.b #$FC
STA.b $AF,x
STZ.w $0449,x
STZ.w $044B,x
LDA.b $85,x
STA.b $87,x
LDA.w $0244,x
CLC
ADC.b #$08
STA.w $0246,x
LDA.b #$FA
STA.b $AD,x
RTS


Lost Levels is basically copy-paste and not posted.

stratoform

#301
Super Mario All-Stars (USA)
-- suggested patch: brick fix

-- testers wanted:
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-10___smas_smb1_luigi.ips


Asking for opinions. This does not contain any of pocket's redraw. It's not finished either and can use some code reduction.


================================


Continual edits:
SMB3 now has 1P selectable Luigi also. IPS not made yet. Working on adding LL physics.

SMB3 cycles between 2 walk, run frames ($7C, $7E). But when idle, we can check the xspeed + yspeed and use our own frames methinks.

Luigi physics is harder but maybe something can be done. $82 frame is for fast turn so that's a clear skid.

================================

SMB3 Luigi now has Lost Levels-style physics. Not so floaty though.

================================

Interesting note. Early 2020, Lui has ported the Advance physics to World. 99.9%.
https://www.smwcentral.net/?p=viewthread&t=100361


This was cool reading material
https://www.mariowiki.com/Super_Mario_Bros.
https://www.mariowiki.com/Super_Mario_Bros.:_The_Lost_Levels
https://www.mariowiki.com/Super_Mario_Bros._2
https://www.mariowiki.com/Super_Mario_Bros._3
https://www.mariowiki.com/Super_Mario_World


SMW Luigi selection working.

================================

New test patches:
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-10___smas_luigi.ips
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-10___smasw_luigi.ips

- Adds Luigi 1P select to SMB1, SMB3, SMW
- Adds Lost Levels physics to SMB1
- Adds Lost Levels-style physics to SMB3

===============================

pocket isn't around for now. Keep spamming until I get bored of this.


SMB1: added Fake Bowser sprites (Worlds 1-7) and Real Bowser sprite [World 8]
-- pocket will have to redraw him ;)


I've almost added the additions
SMB1: Swap Peach for Daisy when Luigi is player (sprite + ending)

SMB1: Change Toad's cap colors (Worlds 1-7) -- will use palette 3
(since each world has different Toads)


All this atm will require expanded ROM, which likely conflicts with DarkSamus' Lost Levels and other gfx updates. But for now until everything gets merged, whatever.

Considering that SMW uses enough 3bpp gfx, that ROM expansion may get ugly for that game.

===============================

What a pain. But SMB1 Toad now has his own custom palette for Worlds 1-7.


Just realized DarkSamus993 posted a sample build script for TLL expansion. :falls off chair: :Ugh!:

(Wish I saw that a bit sooner. But! At least I can preview what's going to conflict ahead of time. I see some areas of interference so... I'll have to update on my end)


DarkSamus993 did some curious work but nothing major collision with my stuff thankfully. Took lot more work than I would've expected to get SMBLL to swap out graphics.


I'm (almost) sure it is possible to have Toad play the same animation in SMB1. Already have an idea to test for that. Or even remove the jumping which would be more like "classic edition". Leave SMBLL to have the fancy new upgrade stuff.

Having new color hats is already a SMB1 improvement.


SMB1 now plays Toad Castle 1-4 script for all castles.
Time to swap out SMB1 Peach (Mario) for Daisy (Luigi) next.


And something I noticed about brickfix. The SMB1 demo ends way too early now. :)

Dawdle

I tried the Luigi patch on the game without SMW using bsnes v115. In Super Mario 1, I got up world 5-1 and there were no issues. After I finished the first level and got to the map in Super Mario 3, Luigi's sprite disappeared and I couldn't move at all. All I hear is the bump sound effect when I try to move around.

stratoform

#303
Aha! Thanks for pointing it out. I'll post an update here when I solve this bug.


EDIT: Oka~y. This one is going to be harder to sort out. Not writing the map completion data correctly. Eh. Keep looking into it.

================================


SMB3 Luigi should be usable now. Loads his data when starting the overworld map.
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-14___smas_luigi.ips
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-14___smasw_luigi.ips

Dawdle

I continued my Luigi playthrough of Super Mario 1 on vanilla All Stars. I finished the first and second quests without any issues.

stratoform

#305
:cool: Thanks for testing SMB1!


Other project names?

Renaissance
Radiant
Treasure - Jewel - Gem - Ruby - Onyx - Sapphire
Revisited
Polished
One More Beer, Please!



===============================


SMB1 Luigi now has Princess Daisy replacing Toadstool with non-shared palettes. Of course, the graphics are the same until pocket comes around.

Although I'm thinking it could be possible to split some shared enemy palettes for SMB1 since Palettes 2/3 are mostly unused??

As for different Koopa shading environments (aboveground, underground, castle) I wonder if something could be done later..


Looking at the bucket list, there's still
- SMB1: remove drums from underground experiment
- SMBLL: port SMB1 changes here (Toadstool/Daisy, Toad palettes, Fake Bowser)
- SMB2: try adding new idle stances
- SMB3: whole lot here not covered by DarkSamus993
- SMW: low priority
- Misc: check wikis for regional changes, versions?


Guess I'll keep working on some things on and off while pocket's away.

Dawdle

I applied the new Luigi patch and got through world 1 of Super Mario 3 without any problems. As soon as I chose the first level in world 2, it warped me to the wand ceremony and did the same thing after selecting the first level in world 3.

stratoform

#307
Funny thing. Finished World 1. Saved and quit. Reloaded and it worked. But didn't think to save and continue. That's fixed now.
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-17___smas_luigi.ips
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-17___smasw_luigi.ips

Thanks for pointing that out!


EDIT: I'm wondering if the warp whistle has the bug too.. Nope. Seems okay.

===============================

TLL = custom Toad palettes for non-princess worlds, custom fake bowser for non-princess worlds

Bowser's Brother (Blue Bowser) I haven't gotten to yet. May take some thought.


I suppose a palette swap could work as a temp measure. Finding an injection time to swap the brother and then the real one would take some careful planning.


TLL = Luigi + Daisy replacement ending sprites now in.

===============================

Almost figured out SMB2, adding idle poses for all 4 characters. There's conveniently (??) four empty animation slots per person, of which 2 are needed for big + small.

SMB2 players now have separate idle poses.

Dawdle

Tried the new patch on Super Mario 3 and I'm happy to report that I found no issues. I went through every single level, 1up games and toad houses. Thanks for the fixes, stratoform. I really hope you guys are able to add all of the redrawn sprites to the game.

Le_Broomstick


Perhaps you could make SMB3 Bowser's jaw a little smaller (Side profile). Doesn't look right. Maybe something like this?

stratoform

Thanks for testing Dawdle! That is a relief for me. No more bugs to figure out.

When @pocket comes around, I guess he'll have some work to go on and we'll all figure out what to do from there. ;)


SMB2 has enough empty tiles in vram. I'm wondering if one could be used to swap out for angry Phanto.


Guess I'll look into some SMB3 stuff and then take a break. Nintendo code can be infuriating to figure out. :lol:
(which reminds me to publish my source code sometime)

Domino089

Thank you very much @stratoform for a long time I have made the request to be able to choose a character when you play as player one in SMB1, SMB3 and SMW it is finally real, I have found some errors in the patch for SMAS + SMW in SMB1

When you start a new game and play as Luigi, Mario's head with a green hat appears on the first screen and when you lose a life it is already displayed correctly





Some problems with the Goomba sprites are appreciated, before it appears in front of the character either playing with Mario or Luigi, a part of the sprite appears first behind and additionally the true sprite is incomplete, this happens in most of the Goomba, even the problem persists after finishing level 1





PS: Could you make a patch to be able to choose between Mario and Luigi for player one in individual SMW and update Luigi's sprites for those that appear in SMAS + SMW?

stratoform

Thanks @Domino089! Can't believe I didn't notice the Mario head with Luigi's colors. :rofl: Affects SMAS also.


The Goombas = huh. Didn't test SMAS+W as much but I'll have to get on that one. Something got damaged when I added the Fake Bowser code. Will edit a post here when I sort it out later.


Yeah, I think I could do standalone SMW Luigi selection because World was more forgiving about it than SMB1 or SMB3. And backport the new sprites to standalone..? I imagine someone must've done it already but I'll check also to be sure.

ShadowOne333

Damn strato!
I've always dreamed of being able to play as Luigi or select character in SMAS+SMW, and with your hack it is now possible!
It's amazing! Can't wait to see the SMW portion get the same treatment :)

Quick question, is the hack compatible with the Super Mario All-Stars+Super Mario World ROM? And does it need a headered or unheadered ROM?
I ask because I want to apply said changes to this:
http://www.romhacking.net/hacks/2778/

Elyos03

Quote from: stratoform on May 19, 2020, 05:45:32 PM
Thanks @Domino089! Can't believe I didn't notice the Mario head with Luigi's colors. :rofl: Affects SMAS also.


The Goombas = huh. Didn't test SMAS+W as much but I'll have to get on that one. Something got damaged when I added the Fake Bowser code. Will edit a post here when I sort it out later.


Yeah, I think I could do standalone SMW Luigi selection because World was more forgiving about it than SMB1 or SMB3. And backport the new sprites to standalone..? I imagine someone must've done it already but I'll check also to be sure.
I thought I should let you know the HUD still calls Luigi "Mario" when you go from one room to another in SMB1.

For example, it happens when:
- Entering a bonus cave/skyline
- Going underground/underwater and back to the surface
- Getting through the right pipes in World 8-4
buy mega man zero/zx legacy collection with money

Dawdle

Jesus, I can't believe I missed the green Luigi head and Mario name change. lol

Are you guys going to add the nes brick physics to the game? I really hate them here.

Elyos03

Quote from: Dawdle on May 19, 2020, 09:02:03 PM
Jesus, I can't believe I missed the green Luigi head and Mario name change. lol

Are you guys going to add the nes brick physics to the game? I really hate them here.
"Figure out how to get Brick Fix working for individual games using Yoshifanatics disasembly if above isn't possible"
Despite separate graphics for TLL ending up possible, this implies that Redrawn includes the Brick Fix.
buy mega man zero/zx legacy collection with money

stratoform

#317
I didn't include the brickfix in my test versions, but surely @pocket will add that. Fixed both versions so it should be good now.


unheadered patches = Luigi select (SMB1, SMB3, SMW) + physics (SMB1, SMB3)
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-19___smas_luigi.ips
https://github.com/stratoform/archive/raw/___notepad___/Super%20Mario%20All-Stars%20-%20Redrawn/Test/Backup/2020-05-19___smasw_luigi.ips


I think it's compatible with Redux since I do not expand rom, or have any ips patch collisions.

Oh. Redrawn is not going to play nice with Redux. The expanded rom area is doomed.



EDIT: SMW Luigi standalone is nearly done. Very similar but some key changes were made that favored SMAS. Tinkering away some more.

Dawdle

Just noticed the poll. I picked the option with Peach in the red and white dress, but I also want the princess to be Daisy if playing as Luigi. Hope it'll be possible.

niuus

Quote from: stratoform on May 19, 2020, 10:45:27 PM
I didn't include the brickfix in my test versions, but surely @pocket will add that. Fixed both versions so it should be good now.


unheadered patches = Luigi select (SMB1, SMB3, SMW) + physics (SMB1, SMB3)
https://github.com/stratoform/archive/raw/Trash/smas_luigi.ips
https://github.com/stratoform/archive/raw/Trash/smasw_luigi.ips


I think it's compatible with Redux since I do not expand rom, or have any ips patch collisions.
I combined your patch with redux and title color fix (for the SMAS+W ROM), seemed perfect in a quick test. It's pretty joyful to be able to play at will with Luigi. I have read for years that this was a request from gamers. Great job! :beer:

The only minor thing that i could spot, was that you can still select "Battle Game" when entering 1 Player (SMB3).