Talk:Super Mario Bros. 2 (Famicom Disk System)
|
|
Contents
Different titles
Should the alternate name field really contain 'Super Mario Bros.: The Lost Levels (US)'? And is the article not a stub?--Hiccup (talk) 07:36, 25 August 2014 (EDT)
- Yes. --BMF54123 (talk) 07:37, 25 August 2014 (EDT)
- Yes and yes. -Einstein95 (talk) 07:38, 25 August 2014 (EDT)
- Those are virtual console rereleases of the FDS game. With the All-Stars name stuck on to the store description page and the channel text. --Hiccup (talk) 07:50, 25 August 2014 (EDT)
- Being Virtual Console releases means it's the exact same game (albeit in a different format). Adding the name of the SMB DX version (which isn't even the exact same game) is just plain idiotic. -Einstein95 (talk) 07:54, 25 August 2014 (EDT)
- Those are virtual console rereleases of the FDS game. With the All-Stars name stuck on to the store description page and the channel text. --Hiccup (talk) 07:50, 25 August 2014 (EDT)
- Yes and yes. -Einstein95 (talk) 07:38, 25 August 2014 (EDT)
Game's date
The manual's "Super Player" message was written on June 03rd, 1986 and the game was manufactured on July 23rd, 1986 but the commercial sale release date is not known. ShaneM (talk) 23:35, 26 January 2015 (EST)
- Where did you get this information? --BMF54123 (talk) 23:36, 26 January 2015 (EST)
- I own a copy of the manual (written on June 03rd, 1986). Also, FDS headers have the manufacturer's date written in BCD (in the year of Showa). So , the year minus $25. In this case, the header date is $61 (1986) $07 (July) $23 (Wednesday the 23rd). Therefore, the game had to have been released after that. --ShaneM (talk) 23:44, 26 January 2015 (EST)
- That's odd, considering even Nintendo themselves use the June 3rd release date. --From: divingkataetheweirdo (talk) 00:04, 27 January 2015 (EST)
- I own a copy of the manual (written on June 03rd, 1986). Also, FDS headers have the manufacturer's date written in BCD (in the year of Showa). So , the year minus $25. In this case, the header date is $61 (1986) $07 (July) $23 (Wednesday the 23rd). Therefore, the game had to have been released after that. --ShaneM (talk) 23:44, 26 January 2015 (EST)
The numbers don't lie. The FDS header is open to anyone wanting to check it themselves as well as the NESDev FDS source of what each byte in the header represents. If I had to make an educated guess, I would say the date would be sometime in August 1986 (going from the 07/23/86 manufacturer's date)--ShaneM (talk) 00:28, 27 January 2015 (EST)
- Not sure if this counts as compelling evidence, but this Japanese flyer has June 3 as the scheduled release date, while this earlier version of the flyer says "5月下旬", which roughly translates to "late May". This tells me that they planned on releasing the game around that particular time frame. Also, while that one page in the manual does say "June 3, 1986", I don't believe that necessarily indicates when that message was written. It looks more like that message was aimed specifically at those who bought the game the day it came out. The Japanese manual for Super Mario Bros. 3 has a similar message, with the same date as that game's Japanese release (October 23, 1988).
- I briefly tried to find that manufacturer's date in the ROM without success, even with the help of the NESdev wiki's FDS source page. Then again, I've never looked at FDS headers before, so I may have missed it somehow. The game could have been released later for all I know or care, but it still seems rather unlikely to me that it was released as late as August 1986. Onoreo (talk) 07:39, 27 January 2015 (EST)
Sigh...Look at offset 31 on the left. http://wiki.nesdev.com/w/index.php/Family_Computer_Disk_System#Disk_info_block_.28block_1.29 ShaneM (talk) 15:11, 27 January 2015 (EST)
- "About 1,350 results" for "1986年6月3日" "スーパーマリオブラザーズ2", and "about 892 results" for "1986年7月23日" "スーパーマリオブラザーズ2". I'm going to say that the internet agrees that it was released on 3rd June, 1986. As you said, "the numbers don't lie." -Einstein95 (talk) 15:40, 27 January 2015 (EST)
- The date will remain as June 3, 1986 until someone can come up with more compelling evidence than a couple of bytes in the header (something that could have easily been mistyped or otherwise erroneously calculated). If you really want to keep arguing about this, take it to Wikipedia. --BMF54123 (talk) 15:58, 27 January 2015 (EST)
- "About 1,350 results" for "1986年6月3日" "スーパーマリオブラザーズ2", and "about 892 results" for "1986年7月23日" "スーパーマリオブラザーズ2". I'm going to say that the internet agrees that it was released on 3rd June, 1986. As you said, "the numbers don't lie." -Einstein95 (talk) 15:40, 27 January 2015 (EST)
Spiny Egg Horizontal Movement
Much like the reference here, this game is also programmed with the full logic to make spiny eggs bounce off walls and be tossed at angles relative to the player's movement. This logic is bypassed by default, perhaps due to a programming logic error by one of the developers.
I'm not sure how to upload here, but here's a link to the IPS patch I made and tested to restore what may have been the original logic: SMB2J Spiny Fix
Red Piranha Plant Code in SNES
When this game was ported to the Super Nintendo Entertainment System as part of Super Mario All-Stars, the code for the Red Piranha Plant behavior had to be re-written to include specific RAM-based addresses as the original ROM-based coding for the red plants (specifically, the combined label "EnemyAttributeData+PiranhaPlant" and "ChkPlayerNearPipe+3") was FDS-specific only. The original FDS code is listed below:
;-------------------------------- ;$00 - used to store piranha plant attribute data ;$01 - used to store piranha plant range data for player InitPiranhaPlant: lda #$22 ;set default attribute and range data here sta $00 ;range data is used to detect how close player is lda #$13 ;to the piranha plant to keep it inside the pipe sta $01 ;default data makes red piranha plants lda HardWorldFlag bne PatchPP ;use default data if in worlds A-D lda WorldNumber cmp #$03 bcs PatchPP ;use default data if in worlds 4-8 dec $00 lda #$21 ;otherwise make green piranha plant instead sta $01 PatchPP: lda $00 sta EnemyAttributeData+PiranhaPlant ;patch over attribute and range data lda $01 sta ChkPlayerNearPipe+3 lda #$01 ;set initial speed ... RiseFallPiranhaPlant: sta $00 ;save vertical coordinate here lda EnemyAttributeData+PiranhaPlant cmp #$22 ;check for red piranha plants beq RedPP ;if found, skip to next part to execute code on every frame lda FrameCounter ;get frame counter lsr bcc PutinPipe ;branch to leave if d0 set (execute code every other frame) RedPP: lda TimerControl ;get master timer control bne PutinPipe ;branch to leave if set (likely not necessary) ...
Some hackers who ported the original FDS title to make it work for the NES cartridge-based format added this specific RAM address, $01A0, for the faster Piranha Plants but this merely only makes them go faster but not also turn red. What follows next is the re-programmed code from Super Mario All-Stars, which is found in the physical ROM at offset 0x6CA79 (or 08:CA79):
;-------------------------------- ;$00 - used to store piranha plant attribute data ;$01 - used to store piranha plant range data for player InitPiranhaPlant: (0x6CA79) lda #$2c ;set default attribute and range data here (was #$22 for FDS) sta $00 ;range data is used to detect how close player is lda #$13 ;to the piranha plant to keep it inside the pipe sta $01 ;default data makes red piranha plants sta RedPiranhaPlant ;new RAM address ($0f25) to replace original FDS patch code lda HardWorldFlag bne SetPPSpeed ;use default data if in worlds A-D lda WorldNumber cmp #$03 bcs SetPPSpeed ;use default data if in worlds 4-8 dec $00 dec $00 lda #$21 ;otherwise make green piranha plant instead sta $01 sta RedPiranhaPlant lda $00 sta RedPiranhaPlantOffset ;new RAM address ($0f24) to replace original FDS patch code SetPPSpeed: lda #$01 ;set initial speed ... ChkPlayerNearPipe: (0x6D79D) lda #$00 ;get saved horizontal difference cmp RedPiranhaPlant bcc PutinPipe ;if player within a certain distance, leave ... RiseFallPiranhaPlant: (0x6D7B7) sta $00 ;save vertical coordinate here lda RedPiranhaPlantOffset ;new RAM address ($0f24) to replace original FDS patch code cmp #$2c ;check for red piranha plants (was #$22 for FDS) beq RedPP ;if found, skip to next part to execute code on every frame lda FrameCounter ;get frame counter lsr bcc PutinPipe ;branch to leave if d0 set (execute code every other frame) RedPP: lda TimerControl ;get master timer control bne PutinPipe ;branch to leave if set (likely not necessary) ...
Please try to proof-read the code for any possible additions and/or corrections.
WikiPro1981X (talk) 09:54, 14 February 2023 (UTC)