Skip to content

Releases: Coolcord/Level-Headed

Exportable Config Files

19 Aug 00:09
Compare
Choose a tag to compare

Github releases (by release)

Download v0.3.10 for Windows

This is a very minor update, mostly to test the move to 64-bit and Qt6. Please open a GitHub issue or contact me via email if you experience issues with this update. Short of a few small bug fixes, gameplay won't be any different in this version.

Exportable Config Files

Configuration settings can now be easily shared! Under the "About" tab, click "Save Config" to save your configuration. This .lcfg config file can then be given to another player and loaded in for the same configuration settings. For sharing generated games without sharing the generated ROM, it is still recommended to use a tool like Hexagon.

Other Minor Changes

  • Added the option to always start a new game from the last played world
  • Fixed an incompatibility with spiny eggs explode into flames that could cause the game to crash
  • Sonic's name is now included in the Sonic sprite patch file once again
  • Dropped swimming mushroom going forward (it was very buggy and had many compatibility issues)

Changes Under the Hood

  • Binaries will now be 64-bit going forward. Previous 32-bit installs will now be automatically uninstalled when the setup is initially run.
  • Updated framework to Qt6 (v6.5.2 LTS)
  • Build system has been switched to cmake
  • 7zip files will be used instead of zip going forward for those who do not want to run an exe installer
  • There is now a deploy script, so future releases will be much easier to make

More significant updates will be in the works when time allows. Focus will be shifting to v0.4.x and the level generator. Stay tuned.

Stability Update

09 May 10:17
Compare
Choose a tag to compare

Github releases (by release)

Download v0.3.9 for Windows

Minor Changes

  • Added very rare and mythic commonalities. Both of these are never guaranteed to be included in a new game.
  • Added a new pass to the level generator that removes all ground level Bullet Bill Cannons that are on the first page or midpoint page
  • Swimming Mushroom is now a complimentary hack
  • Reduced the max possible level length in Random difficulty
  • Peach and Toad sprites that rely on a black border will no longer be combined
  • Fixed a bug that was causing Bowser to not behave properly in the Co-op ROM
  • Fixed corrupted text when Luigi saves Princess Peach in some situations
  • Fixed corrupted Princess rescued music in "Snoop Dogg by Sky Yoshi"
  • Fixed the broken castle music in Final Strikyu (by DASTARD)
  • Fixed the castle red color palette in Super Mario S (by Shogun)
  • Fixed the background colors in Toad's Adventure (by Omniverse)
  • Fixed the Peach sprite in Super Duper Mario Bros. (by Tabmok99)
  • Fixed the Peach sprite in Paradyce with SMB2 Enemies (by Insectduel)
  • Fixed the Peach sprite in Super Mario S (by Sogun)
  • Added Graphics (SMB1 Resprited by Hellfire)
  • Numerous other bug fixes

Second Quest (Patch 2)

09 Jun 08:24
Compare
Choose a tag to compare

Github releases (by release)

Download v0.3.8-2 for Windows

Fixed in v0.3.8-2

  • Fixed a bug that caused midpoints to sometimes be placed too soon
  • The installer now installs the Text archive properly
  • Auto Scroll + Flying Cheep-Cheeps is now disabled in partial support mode
  • Added a Basic Settings present
  • Randomly generated player sprite palettes have been improved

Fixed in v0.3.8-1

  • Fixed corrupted Princess rescued music in "Snoop Dogg by Sky Yoshi"

Second Quest

Previously known as Use Level Scripts, the Create Second Quest option allows users to take premade levels or randomly generated levels and play them again with different enemy and powerup placements. This mode is similar to how most randomizers work, but it has the added benefit of supporting randomly generated levels as well as any additional level packs that get added in future. All the level scripting features still exist, and the name change was simply done for clarity.

  • Redistribute Powerups: This option will remove all powerups, 10 coin blocks, stars, and 1-ups from the levels, and redistribute them to random blocks in the level. This works by using the random level generator's powerup distributor that was introduced in v0.3.6.

  • Randomize Warp Zones: With this option enabled, using warp zones will now be risky. They can now take the player all the way back to world 1, or they could go all the way to the last world of the game. To add further risk, the world number is no longer listed above the pipes. Bear in mind that randomly generated levels still don't use warp zones, and there is still no plans for the random level generator to include them.

  • Randomize Enemies

    • Random: This option will randomly choose between Chaotic Swap, Redistributed or Redistributed + Chaotic Swap.
    • Original: This option will use the enemies specified in the level pack without modifying anything.
    • Chaotic Swap: This option will go through each enemy swap out the enemy in its place with a completely random enemy without any regard for current level difficulty. This is the same as the feature introduced in v0.3.4. For now, Chaotic Swap works the best for original levels. Chaotic Swap also works great for randomly generated levels.
    • Redistributed: This option will remove all enemies from the level and use the random level generator's enemy spawner to find new places to put new enemies. The results of Redistributed tend to be easier than Chaotic Swap. Redistributed also works great for randomly generated levels. For now, it isn't recommended for the original levels.
    • Redistributed + Chaotic Swap: This option will combine the effects of Redistributed and Chaotic Swap for some more interesting results.

Random Text

The words princess and castle are now swapped out with random nouns in the message But our princess is in another castle!. The Thank you text is also randomized. The full list of possible words can be seen here. I'm open to suggestions for words to add/remove, as the word list still hasn't been fully curated, but please keep any new suggestions family friendly!

Fewer Auto Scrolling Levels

Based upon feedback from the community, auto scrolling levels have been toned back a bit.

  • No Auto Scrolling Levels Option: This option can now be found under the level generator tab. It forces auto scrollers to be disabled regardless of what the difficulty settings specify. It is off by default.
  • Reduced Auto Scrolling Chance: When auto scrollers are enabled, they now only spawn 20% of the time instead of 25% on Easy, Normal, and Hard difficulties.
  • Auto Scroll + Flying Cheep-Cheeps Difficulty Setting: This option prevents Flying Cheep-Cheeps from spawning on an auto scrolling level. If the difficulty requirement is not met and Flying Cheep-Cheeps are requested, they will be replaced with Bullet Bills. This should help prevent early auto scrolling levels from being too difficult. Currently, Flying Cheep-Cheeps will now only show up in auto scrolling levels on Hard, Very Hard, and Brutal difficulties.

2 New Powerups

  • Snowballs: This is a very weak powerup with a short throw range. However, it can kill Buzzy Beetles and fire based enemies. It is based on Darkdata-Systemlogoff's powerup from Toad's Christmas Adventure.
  • Pyro Spark Wand: This is an overpowered powerup that shoots a spark. The spark moves quickly on the ground and through objects and enemies. Even though it can shoot only one shot at a time, one shot can kill multiple enemies. However, the Pyro Spark Wand is still a fire-based powerup, so it cannot kill anything that is immune to fire damage.

Basic Settings Present

Found on the Base Game tab, the Use Basic Settings button works similar to the Use Original Settings button. It acts as a present that focuses on relying mostly on the original games assets with some changes. The differences between Basic Settings and Original Settings include random graphics palettes, random player sprite palettes, random music tones, random text, and random animations. The player sprite is also randomized, but only between either the original sprite or SMB1 Modern.

Additional Minor Changes

  • Added a setting that prevents Hammer Time from spawning two Hammer Bros in a row. This setting is on for all difficulties except Brutal and Random
  • Red Koopas will no longer be placed unless the platform they are on is 3 or more blocks in size
  • The Powerup option has been moved to the difficulty tab
  • The Secondary Mushroom option has been incorporated into the difficulty settings. It can still be manually set by creating a custom difficulty
  • Added 3 new tone colors for music

Second Quest (Patch 1)

07 Jun 11:46
Compare
Choose a tag to compare

Improved Level Type Distribution

29 Apr 04:42
Compare
Choose a tag to compare

Github releases (by release)

Ever since the first public release of Level-Headed (v0.1.0) back in 2014, users have had the option of setting the commonality for each level type before generating a game. While most people seemed to like this concept, people never seemed too happy with the results. This was mostly due to how Level-Headed used to handle level distribution. Originally, when Level-Headed went to generate a new level, it did not care about what came before or after. This meant that even with a level type being set to Rare, it was possible (though very unlikely) to get an entire game of just that level type. As of v0.3.7, the level distribution algorithm has been completely rewritten. Users now have a choice between "Standard" level distribution and "Random" level distribution.

Standard Level Distribution

This mode is the default and the recommended way of using Level-Headed. It works in one of two ways depending on how large of a game is being generated.

If it is a larger game (currently about 10+ levels), the weights of each level type will be compared against the total number of levels. A maximum number of levels for each level type will then be allocated and distributed in a random order. Level-Headed will also try to prevent level types that are not Very Common from spawning three times or more in a row.

If it is a smaller game, level types will be chosen at random with weighted favor given to levels with higher commonality. A few additonal rules will also be used. For example, Rare levels will only be able to spawn once per game. Uncommon levels will only be able to spawn twice per game. Level-Headed will also try to prevent Common levels from spawning three times or more in a row.

Random Level Distribution

This mode effectively works the same as setting everything to "Very Common" in v0.3.6 and prior. Every level has an equal chance of spawning. In this mode, Level-Headed does not care what came before or what will come after. It will be completely possible to get an entire game of just Underground levels or just Underwater levels. No restrictions have been placed on the level distributor in this mode.

Additional Minor Changes

  • Large Fire Bars now spawn a minimum of 24 blocks apart
  • Added an option to disable Hammer Bros. jumping
  • Fire Bowser now throws a ludicrous amount of fireballs on Brutal difficulty, just like in v0.3.5 and prior
  • Nerfed Hammer Bros. throw rate on higher difficulties to reduce lag
  • Speedy leaping paratroopas and starmen now jump lower, but move faster. This will help prevent speedy paratroopas from getting stuck in blocks.
  • Added an option to set the Leaping Paratroopa speed. This stacks with the speedy objects and enemies patch.
  • The update checker now uses OpenSSL instead of Git

Improved Powerup Distribution (Patch 1)

22 Apr 10:27
Compare
Choose a tag to compare

Github releases (by release)

Fixed in v0.3.6-1

  • Fixed an app crash that would occasionally occur when the enemy spawner attempted to use page changes

Powerup Distributor

In previous versions of Level-Headed, levels were generated in two passes. The first pass (called the object pass) creates the level by pulling from a pool of patterns. These patterns are effectively recipes that are used to build the level in pieces. The second pass (called the enemy pass) scans the level to find ground to place enemies upon and distributes enemies throughout the level. In this old approach, powerups were placed at random and only if the used patterns potentially included them. In turn, this meant that powerups could be very common or very scarce. Other items such as starmen and 1-Ups were extremely rare to find and often didn't show up in games at all.

As of v0.3.6-1, Level-Headed now generates levels with three passes: objects, powerups, and enemies. This new powerup pass scans the level for hittable blocks that are safe for powerups and distributes items randomly amoungst them. This means that powerups and items should now be found more consistently in games. Expect to see (on average) 2 powerups in question blocks in earlier levels and 1 powerup in question blocks in later levels. 1-Ups and Starmen should now also be more common. As of now, the powerup distribution is the same across all difficulties (including the random difficulty), but this could change in the future. These numbers can be modified to an extent by creating a custom difficulty.

It's worth noting that this update doesn't completely solve the powerup issue. As of now, if the level does not generate any hittable blocks in the object pass, the powerup distributor will have no place to put its powerups. This means that there can still be levels without powerups. This issue will be addressed at some point in the future.

Additional Minor Changes

  • Fire Bros. can now be seen in Normal difficulty games
  • Fire Bros. throw rate has been nerfed
  • Bowser's fireball throw rate has been nerfed
  • Underwater levels are no longer used for the first level when possible (this can be disabled by creating a custom difficulty)
  • Reworked Purist Difficulties: Three different variants each with their own Easy, Normal, and Hard options for a total of nine Purist difficulties.
  • Flying cheep-cheeps should now jump at their original jump height on purist difficulties
  • Random All is now the default Mario sprite option for Random
  • Random All is now the default for secondary mushrooms for Random
  • Remove Vertical Object Limit Patch is now only applied when needed
  • 1-Up coin limit for hidden blocks has been removed. This effictively only applies to level scripts as no patterns in the generator use hidden blocks.
  • Added Graphics (Fuji Mario Bros. by JY Co.)
  • Added Graphics by Josiah Winslow
  • Numerous bug fixes

Improved Powerup Distribution

21 Apr 23:44
Compare
Choose a tag to compare

Original Levels 7-2 Fix

05 Jan 06:56
Compare
Choose a tag to compare

Github releases (by release)

  • Fixed the broken pipe pointer in 7-2 in the original levels so that it is now completable
  • Bowser's "True" form (enemy death animation) is now randomized
  • Blooper swim height can now be set to the European version (Super Mario can be hit by Bloopers when standing on the sea floor)
  • Podoboos in castles are no longer limited to the left side of holes
  • Mario now jumps at the title screen when the vertical object limit patch is applied
  • 2 new Mario sprite color palettes (Hyper and MCB)
  • Added a Bonus Player Sprite (Sonic by Kengen)
  • Added Music (Bad Apple)
  • Added Music (Music 11)
  • Numerous Bug Fixes

Graphical Wrap-up

15 Dec 03:26
Compare
Choose a tag to compare

Github releases (by release)

Original Levels

Level-Headed can now be used as a randomizer with the levels from the original game. To do this, go to the "Level Generator" tab, select "Use Level Scripts", then select "Super Mario Bros. 1 (Original Levels without Castle Loops)". Note that since Level-Headed does not support castle loop mazes, the levels that originally used them have been slightly altered. With this feature, the original levels can now be experienced with different graphics, music, colors, gameplay changes, as well as different enemies with the new "Random Enemies in Level Scripts" feature.

Random Enemies in Level Scripts

This feature can be used to swap out enemies in the original levels as well as other level scripts (including previously generated games). When enabled, the selected difficulty will affect what the enemies can be changed to, such as preventing Hammer Bros. from spawning in groups or preventing Lakitus from being used in normal levels. These limitations can be adjusted manually by creating a custom difficulty. To enable this feature, click the "Random Enemies" checkbox under the "Level Generator" tab.

Random Color Palettes

Colors of the blocks, coins, sky, pipes, backgrounds, and more can all be changed. The intensity of how much is changed can be set from 1 of 10 different values ranging from "Original" (no changes) to "No Limits" where all color rules will be ignored. Choosing "Random" will limit the color generator to a max of "Excessive", which will prevent significant color changes to the red and green color groups as well as limit the sky color to a more reasonable color set.

Graphics Pack Combiner

Certain compatible elements from other graphics packs can now be applied over existing graphics packs. For example, when using the "Super Mario Bros. DX v3.4 (by flamepanther)", the overworld block could be ripped from another graphics pack, such as "Pocket Edition (by Fantendo)" while the underwater block could be ripped from "Mario 2001". The graphics combiner can also be used with the original graphics.

New Mario Sprites

Mario's sprite can now be selected independently from the graphics pack. 7 Mario sprites have been included. An additional 6 bonus player sprites have also been added, including Link, Luigi, Peach, Toad, Wario, and Yoshi. By default, only Mario player sprites will be used, but the bonus player sprites can be accessed either by choosing "Random All" or selecting them manually.

Additional Minor Changes

  • Invalid ROM headers will now be ignored when installing a new ROM
  • Hammer Bros no longer spawn underwater when playing on Normal, Easy, and Very Easy difficulties
  • 5 new Mario sprite color palettes that can be set independently from the graphics packs (SMB1, SMB2 (SMW), SMB3 (Black Overalls), and SMB3 (Blue Overalls))
  • Added the option for randomly generated player color palettes
  • 4 new graphics packs
  • Numerous bug fixes

This will be the last update to focus on graphical features. Focus will now shift back to the level generator and wrapping up the v0.3.x series.

Gameplay Wrap-up

06 Sep 04:13
Compare
Choose a tag to compare

Github releases (by release)

Major Changes

  • Midpoints are always used regardless of how many levels there are per world
  • Added 4 new Spiny Egg behaviors (Chase Mario, Don't Break, Explode Into Flames, and No Eggs)
  • Added 4 new powerups (Bone Caster, Coin Flinger, Luigi's Fire Flower, and Pink Fury)

Minor Changes

  • Added support for Infinite Lives and Permadeath in partially supported games
  • Flying Cheep-Cheep jump height now lower on Normal, Easy, and Very Easy difficulties
  • The amount of hammers the Hammer Bros. throw is based on the difficulty
  • Basic enemy speed is now slower on Easy and Very Easy difficulties
  • Bowser Flames are now fired less frequently on Very Easy and more frequently on Brutal
  • Enemy revival speed is now modified on Random difficulty
  • Fire Bars are now shorter on Easy and Very Easy difficulties
  • Long Fire Bars are now shorter on Normal, Easy, and Very Easy difficulties
  • Piranha Plants are now on the first level on Brutal difficulty
  • Fewer Piranha Plants spawn on Easy and Very Easy difficulties
  • Coin bounce animation, brick break animation, death animation, and Bowser bridge destruction animation can now be randomized
  • Added the remove vertical object limit patch by Chacky that can allow for more than 3 objects to be placed at one x coordinate. Currently, this patch is used to fix a few rare bugs, but future versions of the level generator will make heavier use of this patch.
  • Intro demos are disabled due to a compatibility issue with the new remove vertical object limit patch
  • Worlds can only be a max of 8 levels long instead of 9
  • Partially supported games are limited to 35 starting lives to help prevent graphical glitches
  • Numerous bug fixes

This will be the last update to focus on gameplay changes. Focus will now shift towards wrapping up the graphical features.