I am still working on this...
In the past year I actually ended up with more time to spend on this "hobby project". However, even though it was on my mind a lot, it wasn't always possible to stay motivated and productive. I did pursue some new ideas for improving the general polish of the game.
Making use of extra screen space
I had developed a "wallpaper" system some time ago, but that still just seemed like wasted space. I eventually decided that it would be nice to move status information off of the playfield area if there was extra screen space available. This seems like a logical thing to do and actually an older version of the game had this.
If the screen is in TATE mode, then that space should be utilized as well.
Additional status information
Over the past year I watched a lot of gameplay footage and periodically lurked on the forums. I was intrigued by the Garegga rev.2016 release. The screenshots and early footage showed additional details in the unused screen space. This inspired me to try adding some similar features. You can see some extra information displayed in the above screenshots.
Rank Revisions
Battle Garegga rev.2016's rank graph was interesting because I had been thinking that I still needed to adjust rank mechanics in my game. By having a rank graph I realized I could more easily see how rank changed during gameplay. This should help greatly in level design. Right away, I discovered that my rank graph was "boring". It basically just looked like a stair steps. This lead to making changes so that rank changed more continuously during gameplay. I am still working on this, but I think it will lead to more interesting gameplay.
After I felt a little better about rank calculations, I decided to build something to show information about scoring. This also proved to be helpful in that I could more easily analyze scoring mechanics. Perhaps this takes away some of the fun for players who would want to figure out these mechanics for themselves, so I may leave it as an option that can be turned off.
I added a few other types of informational displays and came up with ways to have them work in different screen orientations and in 2-player mode.
Housekeeping
I finally decided to attempt to make my code less spaghetti-like. This is something I had been putting off for a long time and somehow I got motivated to work on it. I broke up some large files and functions and hopefully made the code a little more manageable and maintainable. It meant revisiting some problem areas and long debugging sessions, but I think I reached a point where it did have some benefit. I would say that the primary benefit is that the code should be a little easier for me to work on.
SDL 1.2 to SDL 2
I decided to finally upgrade to SDL2. Moving to SDL2 was part of the inspiration for code clean-up. I think that SDL2 will provide some improvement in display compatibility and I am also interested in the new input API in SDL2. I do have a few notes on what it took to go from SDL1.2 to SDL2 if anyone is interested.
What's next
Right now I have a fairly complete input mapping scheme, but I would like to be able to have some default gamepad/controller configurations that should be possible in SDL2.
A Few notes on distribution
I've been using mxe to build a Windows exe for several years but I have had few opportunities to test the port. I will need to ask for help testing the Windows port.
I've also been researching more about how to distribute on Linux. Steam on Linux seems like a viable option and I may pursue porting to the steam runtime. I think that the Steam runtime is an interesting development in PC gaming.