Anyone Interested in Doing "SMB Special" for NES?

Started by SMB2J-2Q, February 06, 2008, 11:26:50 AM

Previous topic - Next topic

frantik

You can hit it if you run and jump, maybe you need to be small. 

shanem

#821
Quote from: tymime on July 29, 2021, 10:27:28 AM

Is there a way of reaching this ? block or was Hudson just being weird here?



This can be done with big Mario as well. Requires some Lost Levels type skill as big Mario: Duck jumping

Start from the rightmost on top of the pipe next to big Mario, pick up speed running off the pipe onto the block (right to left) and as Mario is about to fall to the ground, crouch (duck) and jump! The duck jump with acceleration has to be almost pixel perfect at the leftmost of the blocks.

PowerPanda

On the treetop courses, like 1-3, the part of the leaf platform that blends in with the trunk is colored incorrectly, in both palettes. Was this intentional?

frantik

#823
What exactly are you referencing?  The trees should  be identical to the SMB trees

PowerPanda

Quote from: frantik on August 01, 2021, 01:07:39 AM
What exactly are you referencing?  The trees should  be identical to the SMB trees

Silly me. Would you believe that I've never played the original SMB on anything except a CRT TV or a handheld? I had never noticed that color mismatch before.

TRIFORCE89

#825
removed by request of the author

shanem

Frantik, there's a glitch on 7-4 where when you go through the bonus pipe Mario exits too high.

On Cosmic's video, it can be found at 26: 55  https://youtu.be/Bpmfevlk1Ck

frantik

Quote from: shanem on August 20, 2021, 05:41:28 PM
Frantik, there's a glitch on 7-4 where when you go through the bonus pipe Mario exits too high.

On Cosmic's video, it can be found at 26: 55  https://youtu.be/Bpmfevlk1Ck

I saw that, but to cause the glitch you have to clip through the wall.  If you go the proper way the pipe works correctly.  Kosmic's always trying to break stuff  :crazy:

PowerPanda

Quote from: frantik on August 30, 2021, 06:33:09 AM
Kosmic's always trying to break succeeding at breaking stuff  :crazy:

I fixed it for you.

powerup_retro

Just wonder, is the latest version 1.3, do we add the wing power up? I don't see any where mentioned.

September 05, 2021, 09:10:54 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Oh, sorry for the question above. I found it here: https://www.youtube.com/watch?v=jNpJmNZUtTs -- very cool, we got the wing as well. Amazing!

SMB2J-2Q

I have been enjoying the 35th Anniversary release of this hack, and my questions about it are:

World 2-3 goal area:
Both the PC-88 and Sharp X1 versions use the normal ground music instead of the underground music, despite using the underground palette.

World 6-2 coin rooms:
#1: On the PC-88 and Sharp X1 versions, the normal ground music is heard instead of the underground music, again despite using the underground palette.

#2: For the water-filled version, on the PC-88 and Sharp X1 versions the water music is of course heard, but it still uses the normal underground palette and tileset.

I wonder if, for this version of the NES hack, the rooms in these two levels I mention can be fixed to look like the original PC-88 and Sharp X1 versions, with the correct respective music?

Thank you,



Ben

frantik

Quote from: SMB2J-2Q on January 12, 2022, 01:40:06 AM
#2: For the water-filled version, on the PC-88 and Sharp X1 versions the water music is of course heard, but it still uses the normal underground palette and tileset.

There are two water coin rooms in this level, one uses the underground palette and the other uses the standard water palette.  To me they look correct based on this map

I might go back and fix the music in those two spots.  I found another minor minor glitch where the wrong sprite bank shows for one frame when you collect the wing so there's a reason to make a new release

SMB2J-2Q

#832
Quote from: frantik on January 18, 2022, 08:30:36 PM
There are two water coin rooms in this level, one uses the underground palette and the other uses the standard water palette.  To me they look correct based on this map

I might go back and fix the music in those two spots.  I found another minor minor glitch where the wrong sprite bank shows for one frame when you collect the wing so there's a reason to make a new release
I didn't know World 6-2 had three coin rooms! The first with the underground palette, as I said before, uses the ground level theme (just like the 2-3 goal area), while the second had water mixed with the standard underground tileset and water theme. Then thanks to you, there was indeed a third one with the standard water tileset and theme.

I wonder exactly how we can get the ground level theme to play in the 2-3 goal area and the first coin room in 6-2? While we know any level bearing the underground palette would normally use the underground level theme, what I want to do is make an exception somewhere in the program code just for these two occasions.

~Ben

frantik

Quote from: SMB2J-2Q on January 18, 2022, 09:32:38 PM
I wonder exactly how we can get the ground level theme to play in the 2-3 goal area and the first coin room in 6-2? While we know any level bearing the underground palette would normally use the underground level theme, what I want to do is make an exception somewhere in the program code just for these two occasions.

yes there would have to be an exception made in the code to account for these.  it's not a high priority to me to fix it but I don't see why it shouldn't be as accurate as possible

SMB2J-2Q

#834
Quote from: frantik on January 18, 2022, 10:12:42 PM
yes there would have to be an exception made in the code to account for these.  it's not a high priority to me to fix it but I don't see why it shouldn't be as accurate as possible

Here is how the code was written for the area music selection by level type:

MusicSelectData:
.db WaterMusic ($02)
.db GroundMusic ($01)
.db UndergroundMusic ($04)
.db CastleMusic ($08)
.db CloudMusic ($10)
.db PipeIntroMusic ($20)

GetAreaMusic:
             lda OperMode ;if in title screen mode, leave
             beq ExitGetM
             lda AltEntranceControl ;check for specific alternate mode of entry
             cmp #$02 ;if found, branch without checking starting position
             beq ChkAreaType ;from area object data header
             ldy #PipeIntroMusic ;select music for pipe intro scene by default
             lda PlayerEntranceCtrl ;check value from level header for certain values
             cmp #$06
             beq StoreMusic ;load music for pipe intro scene if header
             cmp #$07 ;start position either value $06 or $07
             beq StoreMusic
ChkAreaType: ldy AreaType ;load area type as offset for music bit
             lda CloudTypeOverride
             beq StoreMusic ;check for cloud type override
             ldy #CloudMusic ;select music for cloud type level if found
             lda MusicSelectData,y ;otherwise select appropriate music for level type
             sta AreaMusicQueue ;store in queue and leave
ExitGetM:    rts


This, again, would need to be re-written in order to allow for the two exceptions I mention. This would also mean having to rewrite other sections of the program code to remove (if necessary) these particular checks that applied to the original written coding (or parts of it) above (via branches, jumps and jump-to-subroutines, if any) in favor of the newer ones which also suit the two exceptions mentioned.

For example, we could create a check to determine: are we in underground room $XA or $XB (example of the special room codes for 2-3 and 6-2)? If so, play #GroundMusic, otherwise #UndergroundMusic.

~Ben

SMB2J-2Q

#835
I am wondering if you folks might incorporate other bug fixes into this game in the future, including the following from the second PAL version of the NES Super Mario 1:
* A check to stop the springboard sprite from loading into memory normally reserved for loading power-ups or the flagpole at the end of each x-1 to x-3 level. In the NTSC version, this bug occurs whenever there are a lot of enemies onscreen, which allowed the springboard sprite to overwrite into memory reserved for sprites representing the power-ups or the flagpole.
* The value for the injury timer is now explicitly written, instead of as an arithmetic shift left (ASL) argument.
* Mario's/Luigi's initial downward acceleration at the start of each level is higher.
* Mario's/Luigi's vertical acceleration on springs is now defined.
* Mario's/Luigi's vertical speed is set to zero after nullifying when in water levels.
* The lowest position a Blooper can reach has been lowered by four pixels from 12 to eight, allowing it to hit Mario/Luigi when standing on the ground in Super or Fire form.
* The movement of the Cheep Cheeps has been greatly simplified.
* Some enemies (i.e. Goombas, Piranha Plants, Bullet Bills, Cheep Cheeps and Spinys) have a larger hit box.
* The vertical difference which decides whether Mario/Luigi stomped or got hit by an enemy depends on the enemy.
* In the NTSC version, the branch of an enemy object would add 12 pixels to the player's position, but for the PAL version it instead takes the form of deciding whether Mario/Luigi stomped or got hit depending on the enemy branch of the enemy object.

~Ben

SMB2J-2Q

#836
Quote from: frantik on January 18, 2022, 08:30:36 PMThere are two water coin rooms in this level, one uses the underground palette and the other uses the standard water palette.  To me they look correct based on this map

I might go back and fix the music in those two spots.  I found another minor minor glitch where the wrong sprite bank shows for one frame when you collect the wing so there's a reason to make a new release
May I please have you find out how the music and graphics came to be in these specific rooms I refer to?

That is, you'd have to investigate the specific parts of the code for this game, and then if possible to convert it from Z80 logic to 6502 logic for the NES equivalents.

In the meantime, I wonder if we could add something within the GetAreaMusic instruction, something like this...
NotWorld1-2or4-2:
    lda #$43          ;World 2-3 goal area
    beq StoreMusic
    lda #$44          ;World 6-2 first coin room
    beq StoreMusic
    ldy #GroundMusic          ;play ground level theme in these areas instead

~Ben

tygerbug

This is probably the most interesting Super Mario Bros hack I've seen ... it captures the spirit of the Hudson PC games, and adds some unusual functionality to the familiar game.

The "new" elements stand out and I'd have liked to see more from the "new" powerups.

This might be off topic, and sorry to derail the thread, but I'm wondering if this code could be used for a version of Super Mario Bros which is expanded in other ways, or just in general.




Here are some unused Mario sprites from SMB1, recreated. Two non-mirrored idle stances, and also crossing his arms and thinking, which might have been an idle stance triggered after a few seconds. (There are sketches of another pose similar to his standing pose but with arms crossed.) Also what looks like a two-frame death animation- either that or he's trying to get our attention.



The Family BASIC sprites and backgrounds mixed ideas from Mario Bros and Donkey Kong games with Pinball and other ideas. There are some enemies in Family BASIC which don't really appear elsewhere.

Mario and Pauline have a dirt effect on their skidding sprite, which was also intended for Super Mario Bros at that point.

There is evidence that the Mario Bros enemies were intended for Super Mario Bros at one point, and do turn up in the "Special" PC games and this hack. There are some unused enemies and objects in the code, two of which seem to translate to Sidestepper and Fighter Fly. Some code was commented out but turned up in an "All Stars" code leak that we don't talk about.

https://tcrf.net/Prerelease:Super_Mario_Bros.
https://tcrf.net/Super_Mario_Bros.

Mario Bros/Donkey Kong enemies added to this hack:
Sidestepper / Chockichoki
Fighter Fly / Makaji
Icicle / Tarusaur
Fireball / Sigebo
Barrel / Tsurara

Unused enemies include a Koopa who mans a cannon. The Koopa Troopa was also supposed to come out of his shell when hit, wearing a white t-shirt. This behavior exists in Mario Bros in the arcade, and to an extent on NES, and in Super Mario World.

https://www.spriters-resource.com/arcade/mariobros/sheet/93677/
https://www.spriters-resource.com/nes/mariobros/sheet/64512/

The game would also have had side-scrolling space shooter sequences, similar to the vehicle shooter scenes in Super Mario Land. Here, Mario would ride a cloud and hurl fireballs at enemies in the clouds.

There is one image which might be Mario's cloud, but also resembles Bowser's flame, as seen in the final game. The graphics could actually be reused.

A rideable Yoshi was considered for the game, but was too complex to do in a 1985 NROM NES game, where graphics space is tight. (A bootleg of Super Mario World features the character.)

Podoboo fireballs would have had eyeballs, as in Super Mario World.

Powerups added to this hack:
Hachisuke - The bee from the Hudson Soft logo, gives 8000 points
Hammer - Hammer from Donkey Kong, kills enemies it touches
Clock - Adds 100 ticks to the game clock
Wing - Gives Mario the ability to fly
Lucky Star - Kills all enemies on the screen

There's also the matter of all the unusual properties of Super Mario Bros 2 (Japan), AKA The Lost Levels, which had graphical changes, an extended ending, wind, poison mushrooms, and a higher difficulty.

It would be interesting to "expand" Super Mario Bros more so that more enemies and ideas could be played with.

Super Mario Bros only has two CHR graphics banks, and does a lot with very little space.

You could free up about five tiles pretty easily. More than that is difficult.

(The Piranha Plant stem is duplicated, and the Goomba's head. SMB2J has a mirrored Princess, which saves two tiles. There's a blank tile which may be there for code reasons. Toad and Princess Peach could be moved to the background tile section. The scoring system sprites could be removed.)

That's not much space. So how does one free up space?

In this hack, the two CHR banks are expanded to eight. Three slightly different CHRs are used for sprites. Among other things, the space normally used for Bowser (and his fireballs), Toad and Peach is given to new enemies and items, with the pages swapped as necessary.

Arguably, a lot of space could be freed up by just having two more CHR banks (CNROM).

One background bank could have the title screen and water-level elements. Another wouldn't, and might feature Toad and the Princess as background, as well as the backgrounds from Family BASIC (Donkey Kong Jr elements and so on).

You could move Bowser and his fireballs (along with Toad and the Princess) to a different sprite sheet. You could also move water-level sprite elements including the swimming sprites which are rarely used above ground.

You could also swap back and forth between "old" and "new" enemies depending on the level.

It would be interesting to try to set up an expanded framework for Super Mario Bros, with elements from Mario Bros, Family Basic, Pinball, Donkey Kong, Donkey Kong Jr, The Lost Levels, and Super Mario Land, and see what people can do with it.

NesDraug

The thing I would be most interested in is using the new powerups for something cool in a completely new hack, rather than just hiding them.

Hammer - Hammer from Donkey Kong - Could use it in a Donkey Kong themed level
Clock - Adds 100 ticks to the game clock - Could use it in a long level where you need to find these
Wing - Gives Mario the ability to fly - Could be used on special levels where you need to fly to progress
Lucky Star - Kills all enemies on the screen - Could be used to turn off firebars that blocks the way
✍️ Blog: https://www.tumblr.com/blog/nesdraug

💀 Join my crypt on discord:
https://discord.gg/Eb4HTSNzeg

tygerbug

The Mario Memories hack includes a huge amount of new powerups and features, generally expressed through a palette change.
https://www.romhacking.net/forum/index.php?topic=31937.0

Here are some other space saving ideas:

QuoteP-Tux7 writes:
— A couple more graphical optimization ideas;
-Hammers using 2 tiles in a "diagonal" arrangement, instead of the 4 cardinal directions (2 tiles)
-Spiny Eggs merely horizontally flipping as animation (2 tiles)
-Shaking Koopa shell like Buzzy shell - no legs (1 tile)
-Recycled 1st and 2nd frame of springboard (1 tile)
-Merging the squished Springboard and Platform tiles (1 tile)
-Replacing the Coin Heaven platform with the normal platform or the first frame of the fireball explosion, recoloured white to be "clouds" (1 tile, 2 tiles if combined with the above)
-Removal of air bubbles (1 tile)
-2-frame coin bump sprite (2 tiles)
-Making Lakitu symmetrical like SMB3 (1 tile)
(Hmm... the fireball explosions's first frame would need to be centered, though)
Oh you know, as for tile... tiles, possibly getting rid of the unused letters of the alphabet.