diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..a0c8036ee
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Changelog
+All notable changes will be documented in this file.
+
+## [Unreleased]
+### Added
+- 32bit support
+- Controller (dancepads) support
+
+## [1.0.0] - 2020-10-05
+### Added
+- Uh, everything. This the game's initial gamejam release. We put it out
\ No newline at end of file
diff --git a/Project.xml b/Project.xml
index a0e35ede9..9949b1368 100644
--- a/Project.xml
+++ b/Project.xml
@@ -29,6 +29,7 @@
+
diff --git a/source/PauseSubState.hx b/source/PauseSubState.hx
new file mode 100644
index 000000000..816eb7f54
--- /dev/null
+++ b/source/PauseSubState.hx
@@ -0,0 +1,26 @@
+package;
+
+import flixel.FlxG;
+import flixel.FlxSprite;
+import flixel.FlxSubState;
+import flixel.util.FlxColor;
+
+class PauseSubState extends FlxSubState
+{
+ public function new()
+ {
+ super();
+ var bg:FlxSprite = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK);
+ bg.alpha = 0.6;
+ bg.scrollFactor.set();
+ add(bg);
+ }
+
+ override function update(elapsed:Float)
+ {
+ super.update(elapsed);
+
+ if (FlxG.keys.justPressed.ENTER)
+ close();
+ }
+}
diff --git a/source/PlayState.hx b/source/PlayState.hx
index a05d63571..54d61a1b3 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -4,6 +4,7 @@ import flixel.FlxG;
import flixel.FlxObject;
import flixel.FlxSprite;
import flixel.FlxState;
+import flixel.FlxSubState;
import flixel.addons.display.FlxGridOverlay;
import flixel.addons.transition.FlxTransitionableState;
import flixel.graphics.atlas.FlxAtlas;
@@ -388,10 +389,46 @@ class PlayState extends FlxTransitionableState
var sectionScored:Bool = false;
+ override function openSubState(SubState:FlxSubState)
+ {
+ if (paused)
+ {
+ FlxG.sound.music.pause();
+ vocals.pause();
+ }
+
+ super.openSubState(SubState);
+ }
+
+ override function closeSubState()
+ {
+ if (paused)
+ {
+ vocals.time = FlxG.sound.music.time;
+
+ FlxG.sound.music.play();
+ vocals.play();
+ paused = false;
+ }
+
+ super.closeSubState();
+ }
+
+ private var paused:Bool = false;
+
override public function update(elapsed:Float)
{
super.update(elapsed);
+ if (FlxG.keys.justPressed.ENTER)
+ {
+ persistentUpdate = false;
+ persistentDraw = true;
+ paused = true;
+
+ openSubState(new PauseSubState());
+ }
+
healthHeads.setGraphicSize(Std.int(FlxMath.lerp(100, healthHeads.width, 0.98)));
healthHeads.x = healthBar.x + (healthBar.width * (FlxMath.remapToRange(healthBar.percent, 0, 100, 100, 0) * 0.01)) - (healthHeads.width / 2);