How many unique cycles are there of Hong Kong '97? I try to answer that question.
8 months ago

Hello there! Your current ending point is when the boss is killed: that's fine by me. I just simply did a deeper analysis of this game to see if there was anything else about this game with regards to the regular gameplay. Interestingly... it's a lot more consistent than you would expect.

I used the non-CM version for my pointer references.

  • There is no RNG whatsoever for the enemies (three different movement types), the cars or the powerup spawning orders or timers. I'll break down the lists I found for each one:
  • The enemy ID spawn list at $80AA55 (which has timers and object IDs attached together) loops after 30 enemies.
  • The enemy X coordinate spawn list at $80AA42 loops after 18 enemies.
  • Cars, which spawn in as the 14th and 30th enemies, have their own Y spawning coordinate index. The list, stored at $80AA2E, loops after nine cars, but it's just 3 entries duplicated 3 times.
  • Powerup drop lists, stored at $80AF2F are handled on a per-kill basis, and loop after 40 kills. The invincibility powerup (which renders you invincible for 480 frames, or 8 seconds to NTSC standards) spawns upon the 16th and 31st kills. Death "powerups" are more common, spawning upon the 2nd, 10th, 11th, 17th, 19th, 22nd, 30th, 31st, 37th and 39th kills.
  • The boss spawns after 30 kills and it is the only interruption to the regular gameflow.

The spawn and timer lists effectively reset after 90 enemies (the least common denominator of the three combined), and the only other difference is the powerup drop list, which runs on a per-kill basis and not a per-spawn basis. Divide by 30, and you effectively get three unique cycles. However, because the boss spawns after a set number of kills, you could theoretically go through all 90 enemies, not kill any of them, and loop the entire enemy spawn list that way, so I can't reasonably answer the number of cycles this game has, so to speak. The goal of getting to the boss and killing it sounds like as good of a goal for me in this particular case.

Also, I heard a rumor about the music stopping after some point in the game. That's not caused by the game: it's a combination of the internal song itself being non-looping and a song data fault. I documented the internal music format here (it uses a standard N-SPC engine, though there is a typo in the build that is used concerning a DSP register ID used during echo setup: this is never used, though). The entire song is two notes of 35,712 tempo ticks. A bug in the song data means the second note is silent. The tempo is also set to the slowest value possible. Going off of this, I estimated that it would take five hours and four minutes before it would stop playing.

brkmnly likes this
Dolnośląskie, Poland

That's a very deep analysis from your side, I'm impressed by the amount of information you managed to dig up.

I too think that the 1 cycle is good enough, because 1. the game is basically a meme, it's not meant to be taken seriously, and 2. as you said, the game seems endless, and it can go on basically forever.

Game stats
Followers
49
Runs
47
Players
33
Latest threads
Posted 4 years ago
0 replies
Posted 6 years ago
0 replies
Posted 5 years ago
1 reply
Posted 5 years ago
0 replies
Moderators