|
||||||
Views:
880,509 |
Sections: Documents
| Utilities
| ROM Hacks
| Games
| Translations
| Homebrew
| Fonts
| Community
Site: Main | Rules/FAQ | Discord | Memberlist | Latest posts | Stats | Ranks | Online users |
12-22-24 05:23 PM |
||||
Guest: Register | Login |
Main - Posts by SMB2J-2Q |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 1/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
I have just recently joined this board, and I would like to know how to hack music for Super Mario All-Stars.
For example, unlike the original NES SMB, in SMAS, in both SMB and SMB2J (or SMBLL for U.S. parlance) in world 8-4 the music does not reset between scene changes when going down pipes, a la SMB3 in some fortresses. What I would like to know exactly is how SMAS fixes the castle stage music in SMB and SMBLL so that during world 8-4 it does not reset between scene changes, in case there is anyone who wants to fix it to the old NES way (so that the music does reset between scene changes, and the return of the water music in the underwater portion in both games). ~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 2/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by Rexius55Posted by SMB2J-2Q FYI, I have been studying these three SMAS disassembly pages: Part 1 (bank 3): https://github.com/Maseya/SMAS-Disassembly/blob/master/Assembly/SMB1/code/b03/_b03.asm Part 2 (bank 4): https://github.com/Maseya/SMAS-Disassembly/blob/master/Assembly/SMB1/code/b04/_b04.asm Part 3 (bank 5): https://github.com/Maseya/SMAS-Disassembly/blob/master/Assembly/SMB1/code/b05/_b05.asm ~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 3/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Continuing from where we left off in the old RHDN website, I present to you a thread that documents all the various code changes for SMB, SMB2J (or SMBLL) and ANNSMB.
Here's the old thread at RHDN that inspired this one here. https://www.romhacking.net/forum/index.php?topic=32473.0 And here are the two threads that inspired my original RHDN thread in the first place: https://forums.nesdev.org/viewtopic.php?t=11576&hilit=sram+mario (ShaneM's bugfixed SMB1 and SMB2J) https://tcrf.net/Super_Mario_Bros. (SMB entry at The Cutting Room Floor) In Super Mario All-Stars (SMAS) for the SNES, in the AreaPointer code there appears to be another new chunk of code related to blocking out invalid worlds.
~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 4/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneM Hi Shane, Yes, this new code is in the SMAS remake of SMB2J (SMBLL) as well: https://github.com/Maseya/SMAS-Disassembly/blob/master/Assembly/SMB2J/code/b0E/_b0E.asm The area data code is also saved to the alternate AreaType address that stores the current BG palette and music ($BA). It is true about the separate data banks for the FDS original (and ANNSMB), so for SMAS the world number check has been revised to include up to World D. In addition, under 'GetAreaType' for SMBLL a check to see if the player is in world 8-4 or not has been added. Perhaps this last chunk of code might be why the music in World 8-4 doesn't reset during scene changes whenever the player enters a pipe?
~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 5/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Game: Donkey Kong
Platform: ColecoVision Requests: Freeze Timer While Intro Song Plays and When Mario Dies Same as in the NES version, I wish that the ColecoVision version of Donkey Kong would have the timer freeze (meaning timer doesn't tick and DK doesn't roll his barrels yet/no Firefoxes appearing yet on the rivets board/no moving elevators yet on the elevators board) until the intro song ends (all on-screen action does freeze whenever Mario dies). Why? In the original 24K ROM cart, at least, the bonus timer ticks for exactly one tick before the intro song finishes, while in the 16K ROM update the timer's appearance is delayed until the intro song ends. Also, whenever the timer warning plays (less than 10 seconds left on the timer), in both the 24K and 16K carts the main BG music is still heard, but what I want to do is fix it so only the warning sound is heard (same as in the arcade original and the NES version). What the later 16K version did get right was that the BG music stopped whenever Mario lost a life. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 6/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
For me, it was the numerous bugfixes in Super Mario All-Stars for the SNES that inspired me to try to apply the same fixes to the original NES release of SMB. Such bugfixes included:
* Life Max Out -- no more unintended Game Over as the lives counter stops at exactly 128 lives. * Mario's bounce rate against enemies was improved, which meant smoother stomping on Koopas against staircases for improved lives max-out. * In World 4-3, the last pulley platform no longer pulls up by itself if you had earlier broke off the second group of platforms. * In World 8-3, Hammer Brothers could now be destroyed by green Koopa shells perfectly. * No more Minus World * No more getting stuck past the goal pipe in any water level. In the original NES release it was possible to get the player stuck behind the goal pipe due to the 1-tile gap above it and then having to die via time-up; this was fixed in VsSMB, SMB2J (SMBLL), ANNSMB and SMBDX as well as the second PAL version of the NES SMB. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 7/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
I wonder if the code change under 'NoDemote' in both SMB2J (SMBLL) and ANNSMB, which adds new checks for either power-up objects or Goombas (again), was meant to fix the "Koopa Troopa Factory" glitch in the first SMB that involved turning Goombas and Spinys into Koopa shells (either green or red) when hit by bricks above when the player was small?
~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 8/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Hi Shane,
In Super Mario Bros. 3 there is a data table that lists all the sound effects to be played. It is explained in detail here (and explains why the "extended" 1-UP sound exists): I wish that we could do a similar sound effects data table check for SMB, SMB2J and ANNSMB, which would help prevent other sounds in the same three queues from overwriting each other. The reason I wish to come up with this data table like the one in SMB3 is so that I can redirect the old commands to it via a new JSR, instead of having to load for each specific routine the relevant queue first to check it for other sounds before loading the sound in question. The table in question looked like this:
~Ben |
SMB2J-2Q |
| |||||
Red Goomba Level: 9 Posts: 9/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
In SMB2J (SMBLL) there is a penalty for those who like to warp: do not allow world 9 to be activated unless the player completes all 8 worlds first.
In SMB 1 beating World 8 the first time around turns on the hard mode and world selection flags whether the player used warps or not; for those of you who wish to prevent speedrunners from gaining the hard mode too early, here is what you'd do:
~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 10/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneM Hi Shane, Time for a new hack question. In Super Mario All-Stars, in the x-4 levels, the Podoboo moves up higher than in the NES original but only up to the bottom edge of the status bar. May I ask you what I'd do to fix this, so that the Podoboo goes up high but only to the status bar's bottom edge? So far, I remember you re-coded this:
I also wanted to share this from SMAS:
UPDATE: SUCCESS! The Podoboos now rise up to the edge of the status bar before going back down, with the original unaltered attributes for MovePodoboo. In the NES SMB, both the Podoboo's Y position and high Y position were checked first and both set to $02 before the enemy interval timer was set to $01 via the LSR. But in SMAS this was changed so the Podoboo's Y position was explicitly checked first, now set to $d0 (208th pixel) before the high Y position and enemy interval timer were set, now both set to $01. Here's a screenshot of the result of this fix: ~Ben |
SMB2J-2Q |
| |||
Red Goomba Level: 9 Posts: 11/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneMPosted by SMB2J-2Q Hi Shane, I understand and thank you for the heads-up on these! BTW, I hope you enjoyed my latest SMAS discovery about the Podoboo. I also found this in SMAS:
Under SetStPos, after the player's sprite attributes are set up, X is then cleared and a JSR to BoundingBoxCore is performed. I wonder what this was supposed to do in SMAS? ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 12/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Hi Shane,
Would you happen to know about why, under ClearVRLoop, SMAS removes the JSR to GetAreaMusic but also saves #$FF to the VRAM buffer?
And here's the SMAS version of the same code for reference:
~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 13/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneMPosted by SMB2J-2Q Shane, Thank you for the update; I will discard that then. This also makes me wonder what other residual code bits there are in the SMAS versions of SMB and SMBLL that can be safely removed w/o messing up the game (and I mean besides those code chunks we already know about in the respective NES and FDS originals)? For example, the continue world code from the NES original of SMB could be removed because the world save/continue feature is different in SMAS. I also edited my last post to remove the code in question you refer to in your last paragraph, and replaced it with something else to have you check out. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 14/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Hi Shane,
I remember having played SMAS and, at one time, in either SMB or SMBLL I remember defeating Bowser in one of the x-4 levels and the victory music strangely did not play (it was silent the whole time Mario walked over to Toad, until the timer counted down). The question is: what may cause the victory music to glitch out and not cue properly when you destroy Bowser? ~Ben (SMB2J-2Q) |
SMB2J-2Q |
| |||
Red Goomba Level: 9 Posts: 15/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
In SMAS, I also found another new flag for the AutoControlPlayer routine, which is at RAM 7E:0B7A. I wonder what it was supposed to have done, please?
This new flag is also checked in the ChkStart routine:
The routine just above it, PauseRoutine, is also modified to disallow pausing during the victory mode. What makes me curious is that there are two different RTS branches here. The first one, which occurs if the player has defeated Bowser, branches to the end of the main pause routine, but all the subsequent RTS branches point to the end of the start button check routine.
~Ben (SMB2J-2Q) |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 16/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneM Shane, So far (when I NOP'ed the LDA instruction under 'ChkStart'), my test has failed, because it will not let me pause the game at all. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 17/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneM Hi Shane, Please forgive me, but I actually got it to behave the old way by also NOP'ing the BNE after it, without having to do the other things you mention. Image 1 - end of level: Image 2 - pipe intro: When I ported the new AutoCtrlPlyrFlag to the NES, it does replicate what happens in SMAS by disallowing pause, except for when the player comes OUT of a pipe. I wonder what SMAS did to disallow pause while the player comes OUT of a pipe? This was the code added in to play the pipe sound coming out:
In SMAS, there is another new address $0E4E, but again since the disassembly I am using doesn't give labels to any of these RAM addresses yet, this is why I have difficulty pinpointing exactly what they do. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 18/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneM In my case, I did assign it to a different one: $06B7, formerly used by JumpCoinMiscOffset. I will use your version of the code, though, but I was curious as to what it did. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 19/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Hi Shane,
I am curious as to the ChkGERtn routine:
Specifically, this checks the GameEngineSubroutine variable for either routine $07 (for player entrance) or $08 (for player control) in action, and to branch to exit (ExCSM) if so. However, when checking for routine $08 it then says BNE (if not equal) and also leave the routine (to ExCSM), so unless they had intended to add additional code after this, then shouldn't that also be a BEQ or else if it is supposed to be a BNE branch, then shouldn't it be to StopPlayerMove? I am going to try that to see if any anomalies happen during the pipe intro scene. UPDATE: I played the game with the change I applied and so far I have found no outstanding anomalies during Mario's automatic movement during the pipe intro scene. ~Ben |
SMB2J-2Q |
| ||
Red Goomba Level: 9 Posts: 20/39 EXP: 2707 Next: 455 Since: 08-21-24 From: Oak Grove, OR Last post: 21 days Last view: 19 days |
Posted by ShaneMPosted by SMB2J-2Q Sorry about that. I will try your optimized fix. ~Ben |
Main - Posts by SMB2J-2Q |
Acmlmboard v2.5.6+neo (2024-08-13) © 2005-2024 Acmlm, Emuz, NinCollin, et al. |
MySQL - queries: 113, rows: 471/477, time: 0.115 seconds. |