Cosmic Collapse Level After Sun

A few days we linked to Cosmic Collapse, a Pico-8 Suika Game clone that, I claim, is better than the original, or its many many other clones. Its graphics are less cloying, its music is much better, its physics are livelier which adds a greater element of skill, and it has missiles awarded at different score levels that can be used to destroy individual planets.

Cosmic Collapse’s bin is slightly smaller than Suika Game’s, and to compensate a bit for that its “winning” “planet,” The Sun, is only the 10th item in the game, unlike of Suika Game’s Watermelon, which is the 11th of its orbular objects. Nether game really ends at that point, it’s the kind of game that continues until you lose, but it serves as a thematic success point.

But as it turns out, as revealed by a comment by creator Johan Peltz on its itch.io page, Cosmic Collapse has two levels beyond sun. The first is a rather striking animated Black Hole object! After a lot of playing I finally managed to get to it. Here is a screenshot:

Pretty neat! The comment from the game’s creator mentions that there is a level past it, but that they don’t think it’s possible to reach. I don’t think it is either: to get to the Black Hole you have to have two Suns, and to get to that you have to have one Sun plus one Jupiter, Saturn, Neptune, Uranus, Earth, Mars, Mercury and Pluto. (I think it’s Pluto. What would it be if it wasn’t Pluto? Ceres?)

So, to get to the last object, you’d have to have a Black Hole plus a Sun, Jupiter, Saturn, Neptune, Uranus, Earth, Mars, Mercury and assumed-Pluto, which probably won’t all fit in one bin. My guess is it’s a guest appearance by some galaxy or something. Maybe someone can look at the game’s resources and find out what.

In addition to playing to get to Sun/Black Hole/Whatever Follows, it’s also possible to play Cosmic Collapse for score. The best way I’ve found to do that is to use missiles to destroy the largest objects when it becomes evident that you can’t do anything more with them. My highest score is nearly 15K. Indefinite play doesn’t seem quite possible, as missile awards come less frequently at higher scores, but it’s still fun to see how high one can get. (That’s not meant as a drug-inspired euphemism. Or a Donkey Kong-inspired one, either.)

Addendum: After writing this, I managed to get to Black Hole again, and got video of what it looks like in motion, which is pretty cool:

Sundry Sunday: Stop-Motion Promo for Metal Slug Awakening

Sundry Sunday is our weekly feature of fun gaming culture finds and videos, from across the years and even decades.

I’ve always been a little ambivalent about Metal Slug. Not about its gameplay, which is excellent, but about its theme. It’s been said that it is impossible to depict warfare without glorifying it in some way. I think there is some truth to that, and there is no question that the Metal Slug games depict the hell out of it.

I think the Metal Slug makers recognize a bit of that, because of how humanely the enemy soldiers are depicted. They’re all trying to kill you, but they’re far from snarling villains. When not actively trying to bring about the end of Marco and Tarma (and Fio and Eri)’s lives, they’re chatting with each other, having a meal, sunning themselves on the deck of a ship, using the toilet or just hanging out. When they spot the invading players, they often react in terror. Sometimes you don’t want to shoot them, even when they’re climbing on your Slug and trying to throw a grenade in the hatch. Even their leader, General Morden, is not the typical villain. His backstory says that dissatisfaction with corruption in the Regular Army’s ranks, along with the loss of his wife and daughter due to an act of terrorism, was what caused him to launch his rebellion, and his solders admire his leadership.

It’s almost enough to make one want to overlook the questionable aspects of his army’s symbology, for which I can only thank my lucky frog the usual suspects haven’t latched onto. Morden is rehabilitated a bit in the endings of Metal Slugs 2 and 3, where he’s betrayed by the Martians he joined forces with, and helps the player’s commandos defeat, but its true that he’s always the antagonist at the start of each later game. Metal Slug, for all its sci-fi, zombie, magic and other trappings, is still a game about depicting conventional warfare, no matter how one-sided and improbable it may be.

Ah, as is often my habit, I used the subject of the post to write a short essay on some aspect of gaming. I hope you don’t mind. Here is the video, a stop-motion recreation of a typical Metal Slug scene, made by official entities to promote a mobile game. It seems appropriate to the subject.

Metal Slug: Awakening | Full Stop Motion Video (Youtube, 1 1/2 minutes)

Mario Paint Data Overflow Error

There is a subtle flaw in SNES art creation tool Mario Paint. It has 32K of Save RAM, which is not technically enough to save an entire project, normal and animation canvases included. The program uses data compression to get everything to fit, and the compression is good enough that most of the time everything can be squeezed in, but such is the nature of data compression that it is not guaranteed to work on all possible data.

What happens when Mario Paint can’t fit everything into its save file? This:

A comment on the video gives purpose to the numbers the robot displays as it counts down. 100-25 is compressing the image; 25-12 is erasing the save RAM, and 12-0 is copying the data into save RAM.

On Super Mario World’s Score Display

Awesome Mario trivia blog Supper Mario Broth noted on Mastodon that Super Mario World is extremely inefficient in displaying Mario’s score.

There is more information on SWMspeedruns.com, but in brief, SMW stores the player’s score as a 24-bit value as hexadecimal digits, and converts that value to decimal when it’s time to display it. There is no good way to do that that doesn’t involve figuring out the entire arithmetic, but Super Mario World does it particularly slowly: it starts with a copy of the score, then sees if it’s over 1,000,000. If it is, it increases the millions digit of the displayed score by 1, subtracts a million from the work value, then repeats. When it runs out of millions it repeats with the hundred-thousands, and repeats until it finishes with the tens. At least it doesn’t try it with the 1s, seeing as how nothing in the game awards single points!

In a worse-case scenario, with a score of 9,999,990, the code goes through this whole process every frame, consuming up to 8% of the time available for game logic.

What could the game have done to accomplish this better? It could have found out how many of each digit there was once instead of looping and incrementing. It could only figure out the score when the value changes. Or it could save the value as the digits themselves in decimal, just increment them by the right values when its needed, and then copy that figure to the screen. That’s largely what 8-bit games would do.

Even worse, if Luigi is the active character, the game does this twice: it figures out and prints Mario’s score, then it does it again for Luigi’s score, placing it onscreen in the same place.

While printing the score is just one thing the game does each frame, the effect is great enough that complex scores can lag the game, enough that speedrunners take the score into account to avoid it.

This adds to the evidence that Super Mario World development was rushed. It’s already known that a lot of the code in SMW is buggy, allowing for some truly heroic exploits like programming a text editor in SRAM purely by manipulating objects in an early level.

The “No Fire” Trick in Galaga

Arcade Galaga has an interesting bug that’s been known of for a long time, that can be taken advantage of to cause the enemies to stop firing. The inner workings of the bug are explained on its page on the website Computer Archeology, but here it is in brief: on the first level, if you leave the bugs at the far left or right sides of the formation alive and wait long enough, 10 to 15 minutes, just surviving their attacks, then eventually the enemies will stop firing all together, and will never fire again for the rest of the game.

Why does this happen? Galaga reserves eight hardware sprites for the shots of the enemy bugs. Galaga’s graphics hardware has no way to disable the displaying of a sprite, so if something isn’t supposed to be visible it’s kept off screen, at horizontal coordinate zero. A shot sprite at that coordinate is never updated, and never moves. This is in addition to the game’s internal records of which shots are in use. When a bug wants to fire a shot, the game looks at which shots are available, and if one isn’t in use, it puts it at the proper place, and sets its velocity (X and Y deltas). From then until it leaves the screen, it’ll be updated every frame. When it is detected as having gone off-screen, it’ll be marked as out of play, and its X coordinate will be set to 0. Shots at X=0 are never updated.

The problem is, it’s possible for bugs to fire shots while they are at X position 0. This happens most commonly when bugs at the far left and right extremes of the board attack. The shot is marked as in-use, but it’ll never be updated, and so it’ll never be cleaned up and set back to be available for firing. When all eight possible shots are in this limbo, the bugs can’t fire any more. The machine resets the shots at the end of a game, so the problem won’t affect subsequent plays.

Ben Golden Diamond performed the trick in a Youtube video, and he manages to get it to happen in around seven minutes. He doesn’t explain the precise criteria for doing the trick, but his description will still work, it just has unnecessary steps. It will work on any level, but it’s easiest to do on the first. In the video, sometimes the bugs fire wraparound shots from off-screen. That’s a good indication that the bugs are sometimes firing from the 0 coordinate.

Keep in mind, performing the trick on purpose will disqualify a score for world records. The scoreboard on a local Galaga machine probably won’t care, though.