Broken Carols & Frankencodes
I have no progress on the story. None at all. Yesterday I celebrated my 14th anniversary so most of the week has gone into planning that epic event. It came out nicely. It's good to go all out once in a while and celebrate the important things.
Anyway, I committed myself to offering a customized version of the Christmas Carol game for an AtariAge member who will be playing it in one of those 25 hour gaming marathons for charity. It's for a children's hospital, so I thought it was very fitting. I also issued a challenge to another member participating in the event: something like pledging to donate X many dollars if he plays Y number of hours. It's all for a good cause, and I'm sure Carol Greenleaf would approve of the whole thing.
Since the event is this coming week-end, there's no time to get fancy. Therefore, this customized version will just be a simple thing, like altering the title, or mentioning the event in the opening "splash" screen.
It sounded easy enough, and with three days to go I committed to delivering the ROM by Friday. Well, you know what they say about the best laid schemes of mice and men ...
It turned out that the last revision of the mainline source code does not build in the latest version of the as1600 assembler. It did at some point, people do play that version, and the ROM is even posted for free online. Yet, I can't get it to assemble. It's important to note that I used a very old version of the build tools even for its day, back in 2012; so that "latest version of the as1600 assembler" actually involves several major revisions from the past 6 to 8 years, some of them actually breaking changes in behaviour.
Then I had a thought (yeah, here we go ...): if I have to rummage through the code to fix little things here and there, why not start from one of the special branches I created for the "Carol vs. The World" championship winners? They have tons of bug fixes and improvements that I always intended to merge back into the main game. How hard can it be, right?
I know you are rolling your eyes right now, I can hear your eyeballs creaking violently in their sockets. Well, two days later, and I am now deep in the weeds with a frankencode version of the game that does not work and is in a very unstable and brittle state.
That must be the reason why I found three prior merge attempts left unfinished from the past. It's never as easy as it seems. Yes, even my computer is rolling its electronic eyes at me.
Moreover, even if I manage to get it to compile, how can I trust that it actually works correctly when there is barely any time for testing?
Licorice sticks! like Carol would say, how I do I get myself into these pickles?
So ... back to Plan A: get the last good version of the source and just massage it until it compiles correctly with the latest version of the assembler. That should be substantially easier to do; the tool's changes which break the code are rather minor and were always for the better anyways. Besides, whatever bugs remain in the original game have always been there and are currently out in the wild -- and people seem to be able to play and enjoy the game without much trouble. I can leave the bug-fix merge for some other day. Perhaps someday I'll actually complete one of them.
Here we go, then ... wish me luck!
- carlsson likes this