After some holiday polish Lolife is now content complete and ready for more playtesting by new players. Blind playtesting really is invaluable in highlighting problems I've overlooked because I'm too close to and familiar with the game!
In the meantime here is a quick "menu tour" showing off all of the options on the game's title screen. I'm generally very happy with the UX I've wrangled out of Pulp, especially with the look of the enemy codex and the in-game achievements ("awards").

One bit of polish I'm particularly proud of is how you can use the crank to rotate the enemies in the codex (shown here with a bull) and press A to play their attack animation.
Getting the attack animation to play nicely was quite fiddly in this case. In-game I simply use play which is short and simple, but here I am drawing the menu to the screen with window, label, etc. so using play isn't possible - the tile would be hidden beneath the drawn elements.
Instead I'm using draw to display the enemy sprite. The problem with that is you can't specify a frame when drawing a tile (and the tile has a non-zero FPS regardless) and unlike with play the tile won't animate from it's first frame - it is always looping based on an internal frame count inside Pulp.
One relatively simple solution would be to duplicate all of the enemy attacking sprites and use edited versions for the codex. I didn't like the idea of adding all those extra tiles though, so I tried to be smarter!
In order to synchronise the attack animation so the correct frames are displayed on pressing A, I made a single new tile with the appearance of a basic black tile but at 20 fps and with the number of frames enough to match the length of the enemy attacking tiles. This means its animation and frame count is in sync with the enemy attacking tiles.
That black attacking tile is placed in the corner of the title screen, and when the player presses A I call ignore and set a flag. That flag is checked every game frame and when set I use frame to check the frame count of the black attacking tile. On the game frame it equals 0 I know the attacking animation will be starting, so that's when I start drawing the attacking sprite to screen. After the known duration of the attacking animation I stop drawing it and call listen.
The end result is that the attack animation plays correctly on pressing A, albeit with a slight and variable delay from pressing the button to it actually playing. At worst it's still a short delay and in most instances the player won't notice!