If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Super Mario 3D All-Stars

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Super Mario 3D All-Stars

Also known as: Super Mario 3D Collection (JP/HK/TW/KR)
Developers: Nintendo EPD, Nintendo European Research & Development
Publisher: Nintendo
Platform: Nintendo Switch
Released internationally: September 18, 2020


DevTextIcon.png This game has hidden development-related text.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.


Celebrating the 35th anniversary of the Super Mario franchise, Super Mario 3D All-Stars attempts to do for the 3D games what Super Mario All-Stars did for the 2D ones, bundling "remasters" (read: HD re-releases) of Super Mario 64, Super Mario Sunshine, and Super Mario Galaxy (though Super Mario Galaxy 2 is absent for whatever reason).

The compilation infamously came with a six-month-long print run, and copies were only produced through March 31, 2021. Inexplicably, this also applied to the digital version. As a result, the compilation is currently unavailable for purchase digitally.

Hmmm...
To do:
  • The launcher app has some misc files from an unknown (as of release, unless you ask) 3D Mario game and maybe other games. (Update: See if it's related to Super Mario 3D World + Bowser's Fury.)
  • There's an oddity in Galaxy where the heatwave effect when in lava areas is not rescaled properly and doesn't cover the whole screen (easy to tell in the final Bowser level on the lava tube planet); perhaps this should be listed?
  • There's another oddity where some bits of goop in Sunshine on slopes aren't visible, but if Mario walks on them, he'll slide from it. Goobles can also be spawn from these as well, is this an emulator bug?

Game Changes

Each game received a fair amount of changes. Full lists can be found on the below pages:

The most important changes are summarized below:

  • Super Mario 64 is based on the 1997 Shindou Pak Taiou Version, with the text translated for non-Japanese languages and some textures being redrawn in a higher resolution. These changes are patched in on the fly as the game runs in an emulator.
    • Unlike the other games, which run in 1080p while docked and 720p in handheld, 64 runs in 720p at all times.
  • Super Mario Sunshine now runs in 16:9 widescreen, and similar to 64, the textures and cutscenes are upscaled. It is mostly emulated, but to optimize performance, the code was recompiled ahead of time. No JIT here!
    • Like 64‍ '​s updated textures, many of Sunshine‍ '​s upscaled assets are patched in on the fly. However, the disc image inside was modified; the code was recompiled to support widescreen, and the pre-rendered cutscenes (which get replaced with the upscaled versions) were blanked out to save on file size, among other things.
    • The short gameplay demo that plays after waiting at the title screen for about 40 seconds was removed.
    • Despite the Switch supporting GameCube controllers via an adapter, Sunshine lacked native support for the controller until v1.1.0 (yes, really). While a GameCube controller could still be used prior to v1.1.0, the inputs wouldn't be properly mapped.
    • To support the Switch's variety of controllers that don't have analog triggers, F.L.U.D.D.'s spray acceleration was slowed down slightly to make it easier to spray with less intensity by tapping the button for a short amount of time. This is even the case when playing with a GameCube controller.
  • Super Mario Galaxy's code was recompiled from source to actually target the Switch, unlike the other games in the collection. Audio and graphics are still emulated by the same emulator that runs Sunshine.
    • A large amount of the unused content was removed to make it fit a smaller file size.
    • Like the other games, several textures were upscaled or redone and are patched in while the game runs.

Emulators

N64 Renderers

18n64Kirby64Renderer
20n64MarioGolfRenderer
21n64MarioStoryRenderer
22n64MarioTennisRenderer
22n64PerfectDarkRenderer
22n64PokemonSnapRenderer

Leftover strings found throughout the code of the Super Mario 64 NCA. They reference the Nintendo 64 games Kirby 64: The Crystal Shards, Mario Golf, Paper Mario (by its Japanese name Mario Story), Mario Tennis, Perfect Dark, and Pokémon Snap.

Although possibly unrelated, it's worth noting that all of these games have since been released on Nintendo 64 - Nintendo Switch Online.

(Source: Dashinglb)

Unused Control Schemes

Each game has configuration files that tell the emulator how to run. In Super Mario Sunshine, there are different control schemes in the configuration file, one of which is for a computer keyboard.

"Input" : { 
			"0" : 
			{ 
				"Keyboard" : 
				{ 
					"KeyPadAxisLeftX" : "Axis(NumPad4,NumPad6)", 
					"KeyPadAxisLeftY" : "Axis(NumPad2,NumPad8)", 
					"KeyPadAxisRightX" : "Axis(NumPad9,NumPad7)", 
					"KeyPadAxisRightY" : "Axis(NumPad1,NumPad3)", 
					"KeyPadAxisTriggerLeft" : "NumPad5", 
					"KeyPadAxisTriggerRight" : "Add(E, Clamp(Z, 0.0, 0.99))", 
					"KeyPadButtonA" : "Q", 
					"KeyPadButtonB" : "S", 
					"KeyPadButtonDown" : "KeyDown", 
					"KeyPadButtonL" : "NumPad5", 
					"KeyPadButtonLeft" : "KeyLeft", 
					"KeyPadButtonR" : "E", 
					"KeyPadButtonRight" : "KeyRight", 
					"KeyPadButtonStart" : "Space", 
					"KeyPadButtonUp" : "KeyUp", 
					"KeyPadButtonX" : "X", 
					"KeyPadButtonY" : "Y", 
					"KeyPadButtonZ" : "R" 
				}, 

Project Dates

Sunshine Save File

Present in the data/saves/MarioSunshine directory is a save file that uses a different format than a traditional GameCube or emulator. Converting the save into the standard format shows that the last modification date was February 19, 2020 at 12:14:57 PM (UTC). The save file is empty and is most likely used to bypass the Memory Card file creation process that happens when Sunshine is played for the first time.

(Source: ecumber05)

Cutscene and Movie Dates

The video files in each game contain extra data of when they were created. All dates are in 2020.

  • The main launcher's video files have creation dates of around March 4-11 and a last-modification date of April 15.
  • For Super Mario Sunshine, the cutscenes were all last modified on April 7-10 with the exception of the intro video, which was modified on February 6.
  • The Super Mario Galaxy cutscenes were modified on April 11-14.

Internal Project Name

Super Mario 3D All-Stars is internally referred to as Stardust in the data of Super Mario 64, the GCM file for Super Mario Sunshine, and in strings from the launcher's executable.

Leftover Game Data

Stage Names

Inside /SystemData/MemorySystem.alsarc.zs in the launcher is a file called HeapSizeDefine.byml, which contains names for stages that don't exist, as the launcher doesn't actually have any stages. Interestingly, a good number of them mention Pikmin. The names may refer to Takeshi Hayakawa, Hirokazu Matsuda, Tatsuya Kurihara and Hiroaki Hishinuma, who are all credited in 3D Mario games.

A list of these stage names is below:

TestHayakawaVrPikmin00Stage
TestHayakawaVrPikmin01Stage
TestHayakawaVrPikmin02Stage
TestHayakawaVrPikmin03Stage
TestHayakawaVrPikmin04Stage
TestHayakawaVrPikmin05Stage
TestHayakawaVrPikmin06Stage
TestHayakawaVrPikmin07Stage
TestHayakawaVrPikmin08Stage
TestHayakawaVrPikmin09Stage
TestHayakawaVrTour001Stage
TestHayakawaVrTour003Stage
TestHayakawaVrTour005Stage
TestHayakawaVrTour006Stage
TestHayakawaVrTour007Stage
TestMatsudaBuildHouseTest000Stage
TestKurihara0000Stage
TestHishinuma000Stage
TestHishinuma003Stage

Sound Files

Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.

In the archive \Sound\Attenuation\Attenuation.baatarc.zs in the launcher is a bunch of files related to sound attenuation that includes objects from Super Mario Galaxy/2, but also includes stuff possibly cut from the aforementioned games, or possibly from other games.

A list of files in the archive is below:

Aforce01_Default.baatn
Arwing_Default.baatn
AtmosOnlineEnemy_Default.baatn
AtmosOnlineKinoko_Default.baatn
AtmosOnlinePlayer_Default.baatn
AtmosOnlineShadowRock_Defau.baatn
AtmosOnlineShadow_Default.baatn
Balloon_Default.baatn
Base.baatn
BeaconTarget_Default.baatn
BinauralTestFly_Default.baatn
BlockHard_Default.baatn
BlockSoil_Default.baatn
CannonBullet_Default.baatn
CannonEnemy_Default.baatn
CannonSequencer_Default.baatn
Cannon_Default.baatn
CheckPointFlag_Default.baatn
Chorobon_Default.baatn
CocoNut_Default.baatn
CoinRing_Default.baatn
CoinStack_Default.baatn
Coin_Default.baatn
CourseClear_Default.baatn
CrystalCage_Default.baatn
Default.baatn
DefaultVolume.baroc
DemoKinopio_Default.baatn
DemoMario_Default.baatn
DemoPeach_Default.baatn
DoorWarp_Default.baatn
EnergyCan_Default.baatn
FallBlockTest_Default.baatn
Far.baatn
Far.baroc
FlyBattery_Default.baatn
GliBird_Default.baatn
GoalBell_Default.baatn
Grass_Default.baatn
HorrorPlayer_Default.baatn
ItemHeart_Default.baatn
Jewel_Default.baatn
Kameck_Default.baatn
KariKari_Default.baatn
KoopaShip_Default.baatn
Kuribo_Default.baatn
KyoroHei_Default.baatn
LadderPlayer_Default.baatn
Lift4x4M_Default.baatn
Luigi_Default.baatn
Mario_Default.baatn
MedFar.baatn
MedFar.baroc
Medium.baatn
Medium.baroc
MedNear.baatn
MedNear.baroc
MissionAllDeadEnemyFighter_.baatn
MissionAllDeadEnemy_Default.baatn
Mummy_Default.baatn
Near.baatn
Near.baroc
NeedleTrap_Default.baatn
NetworkPlayer_Gesture.baatn
NewRollOffCurve.baroc
NinPlayer_Default.baatn
PlayerStick2D_Default.baatn
PowerStar_Default.baatn
ProwresDirector_Default.baatn
ProwresPlayer_Default.baatn
ProwresReferee_Default.baatn
RideTestWalkPlayer_Default.baatn
SceneSkyHigh_Default.baatn
SePlayArea_Default.baatn
SePlayObj_Default.baatn
SePlayRail_Default.baatn
ShootingStarTargetDust_Defa.baatn
ShootingStarTarget_Default.baatn
SkyCloudPlayer_Default.baatn
StatueMarioBig_Default.baatn
StatueMario_Default.baatn
SwimPlayer_Default.baatn
TestEnemy_Default.baatn
TestScene_Default.baatn
TestSe_Default.baatn
Test_Default.baatn
TrainingIchinoBlockBreak_De.baatn
TrainingIchinoBlock_Default.baatn
TrainingIchinoEnemy_Default.baatn
TrainingKuriharaBlock_Defau.baatn
TrainingKuriharaEnemy_Defau.baatn
TrainingMasakazeEnemy_Defau.baatn
Trampoline_Default.baatn
VeryFar.baatn
VeryFar.baroc
VolumeReductionNormal.baroc
VoxelKnuckle_Default.baatn
VoxelTreasure_Default.baatn
VrBaseballBatter_Default.baatn
VrBattleShipCannonBall_Defa.baatn
VrBattleShipCannonLauncher_.baatn
VrBattleShipEnemy_Default.baatn
VrBattleShipPlayer_Default.baatn
VrBattleShipTorpedo_Default.baatn
VrChappy_Default.baatn
VrDiveFlareBomb_Default.baatn
VrDivePlayer_Default.baatn
VrDiveSequencer_Default.baatn
VrDiveTorch_Default.baatn
VrDoor_Default.baatn
VrDungeonGhost_Default.baatn
VrDungeonPlayer_Default.baatn
VrFairy_Default.baatn
VrFlyBasabasa_Default.baatn
VrFlyBonusBall_Default.baatn
VrFlyBossBasabasa_Default.baatn
VrFlyBossBirdBall_Default.baatn
VrFlyBossBird_Default.baatn
VrFlyBossFireBall_Default.baatn
VrFlyBossFireWeakPoint_Defa.baatn
VrFlyBossFire_Default.baatn
VrFlyCage_Default.baatn
VrFlyCalcAnswer_Default.baatn
VrFlyCapsule_Default.baatn
VrFlyCrawler_Default.baatn
VrFlyFairyPrincess_Default.baatn
VrFlyGate_Default.baatn
VrFlyKameckBall_Default.baatn
VrFlyKillerMagnum_Default.baatn
VrFlyKillerMagnum_KillerMag.baatn
VrFlyKiller_Default.baatn
VrFlyKiller_Killer.baatn
VrFlyPlayerAttackBall_Defau.baatn
VrFlyPlayerClient_Default.baatn
VrFlyPlayerGodShot_Default.baatn
VrFlyPlayerGod_Default.baatn
VrFlyPlayer_Default.baatn
VrFlyRaceFairy_Default.baatn
VrFlyRaceRing_Default.baatn
VrFlyRestStep03x15_Break.baatn
VrFlyRestStep03x15_Default.baatn
VrFlyRopeSlider_Default.baatn
VrFlySequencer_Default.baatn
VrFlyShootingBall_Default.baatn
VrFlyShootingTargetBig_Defa.baatn
VrFlyShootingTarget_Default.baatn
VrFlyStepSeed_Default.baatn
VrFlyTruck_Default.baatn
VrGenieDoorPump_Default.baatn
VrGenieEnemy_Default.baatn
VrGenieHand_Default.baatn
VrGenieHeroine_Default.baatn
VrGenieMagicPot_Default.baatn
VrGenieNpc_Default.baatn
VrGenieNpc_ScaleChange.baatn
VrGeniePlayerInfo_Default.baatn
VrGeniePlayer_Default.baatn
VrGenieSunMoonEnergyBall_De.baatn
VrGenieTitanSeed_Default.baatn
VrGliderAirplane_Default.baatn
VrGliderPresentBox_Default.baatn
VrGunEnemyBullet_Default.baatn
VrGunEnemy_Default.baatn
VrGunPlayerBullet_Default.baatn
VrGunPlayer_Default.baatn
VrJetHoverPlayer_Default.baatn
VrJetHoverSequencer_Default.baatn
VrJumpPlayer_Default.baatn
VrKingPlayer_Default.baatn
VrLightEnemyArrowArrow_Defa.baatn
VrLightEnemyArrow_Default.baatn
VrLightPlayer_Default.baatn
VrLightSequencer_Default.baatn
VrLightWatchPoint_Default.baatn
VrMachPlayer_Default.baatn
VrMachRock_Default.baatn
VrMachSequencer_Default.baatn
VrMenuSequencer_Default.baatn
VrNpcGenie_Default.baatn
VrPikminShip_Default.baatn
VrPikminSnakeCrow_Default.baatn
VrPikmin_Default.baatn
VrPlanePlayer_Default.baatn
VrPlaneSequencer_Default.baatn
VrPlayerHand_Default.baatn
VrPlaySequencer_Default.baatn
VrPunchPlayer_Default.baatn
VrRaceEnemy_Default.baatn
VrRacePlayer_Default.baatn
VrRaceSequencer_Default.baatn
VrSelectPlayer_Default.baatn
VrSkyDivingPlayer_Default.baatn
VrSkyDivingSequencer_Defaul.baatn
VrStealthEnemyWalk_Default.baatn
VrStealthPlayer_Default.baatn
VrStealthTorch_Default.baatn
VrSurfPlayer_Default.baatn
VrSurroundPlayer_Default.baatn
VrTextBoard_Default.baatn
VrTextClock_Default.baatn
VrTextEnemy_Default.baatn
VrTextPlayer_Default.baatn
VrTextPresentBox_Default.baatn
VrTitanAirBubbleItem_Defaul.baatn
VrTitanTouchActor027_Defaul.baatn
VrTorch_Default.baatn
VrTourPlayer_Default.baatn
VrTourSequencer_Default.baatn
VrTourTeresa_Default.baatn
VrTrainPlayer_Default.baatn
VrUfoCage_Default.baatn
VrUfoCannonBall_Default.baatn
VrUfoCannonLauncher_Default.baatn
VrUfoFairyPrincess_Default.baatn
VrUfoPlayerBullet_Default.baatn
VrUfoPlayer_Default.baatn
VrWalkMan_Default.baatn
WoodBox_Default.baatn

Revisional Differences

Version 1.0.0

The initial version.

Version 1.0.1

Hmmm...
To do:
Document the specific changes.

Released on launch day, with the following changes:

  • Fixed/adjusted the display in Super Mario Galaxy when playing in Co-Star mode.
  • Various bugfixes.

Version 1.1.0

Released on November 16, 2020, with the following changes:

  • An inverted camera option is added for all three games.
  • Super Mario Sunshine now has native GameCube controller support, available by use of the GameCube adapter for either Wii U or Switch, complete with analog trigger support. The in-game button visuals are not changed.
  • Using the Turbo Nozzle underwater in Sunshine no longer corrupts the edges of the game's 16:9 display.
  • The debug cubes seen in secret levels in Sunshine are no longer visible, better reflecting the original release.
  • The sound effect that plays when a race starts in Sunshine now plays back properly.
  • Various bugfixes.

Version 1.1.1

Released on November 4, 2021, with the following change:

  • Super Mario 64 now has Nintendo 64 controller support, available by use of the controller made for Nintendo Switch Online's N64 service. The in-game button visuals are not changed.