Icarus wrote:Awesome, good stuff. While I had a feeling that survival time played a part in rank increase (and thus the need to suicide) I wasn't aware that rank increased on a per-frame basis.
Well, if survival time is meant to affect rank, or anything in the game, then perforce there
must be a time counter. The only surprising thing is that the speed of the counter is affected by the player's actions.
I've discovered that the base rank-per-frame rate is actually determined by the region and the difficulty dipswitch setting. The value I gave of 22 is for a Japan PCB at "Normal" difficulty. Here's a complete chart:
Code: Select all
Region | Easy |Normal| Hard |Very Hard
-------+------+------+------+---------
Japan | 16 | 22 | 28 | 36
Asia | 19 | 25 | 32 | 40
Europe | 16 | 24 | 32 | 48
USA | 16 | 32 | 48 | 64
Regardless of the region, the rank-per-frame rate always increases by 1 when you power up the shot with small shot icons, and increases to 1.5x, 2x, 3x or 4x the base value when you increase your autofire rate. So on a US board on "Very Hard", rank-per-frame can become as high as 256 if you increase your autofire rate all the way to the maximum.
The difficulty setting also determines the minimum value rank will reach before it stops decreasing (remember that rank counts
down):
Code: Select all
Setting Minimum Rank
--------+-------------------
Easy | 4194304 (0x400000)
Normal | 2097152 (0x200000)
Hard | 1048576 (0x100000)
V.Hard | 524288 (0x80000)
The difficulty setting probably interacts with the rank system in other ways (a whole bunch of memory addresses change when you change the difficulty) but I haven't figured them out yet.
The initial rank value when you start the game is a bit weird, and I haven't exhaustively investigated it. First of all, although it does not vary with the difficulty setting, it does vary by region. On a Japan board, the first time you start a game after poweron, rank starts at 15728640 (0xF00000). This is the weird part:
on each successive game, the starting rank becomes slightly lower. The upshot is that the game very gradually becomes more and more difficult the more times it is played before being reset. The amount by which starting rank decreases per game varies by region, and probably by difficulty setting (it might even depend on how well the player did). I'm not sure where or whether it eventually stops--if you played thousands of games without resetting the board, would the game eventually start on full rank?
Having worked out per-frame "survival rank" to my satisfaction, the next step was to disable it in order to observe other changes to rank more easily. I created a cheat forcing the rank-per-frame to 0 and played the game with this cheat activated and with a watchpoint on rank.
Few surprises here--firing shots, destroying enemies, cancelling bullets (e.g. by flying into them while invulnerable) and collecting items all directly increase rank by various amounts, while dying decreases rank by a large amount. Merely striking enemies with shots does not increase rank until you destroy the enemy or one of its parts. Contrary to speculation that "every button you press increases rank in some way", moving your ship or rearranging your options does not increase rank.
The first rank effect I analyzed in detail was the rank for firing shots, since that has been the subject of contention recently. Each time you fire, rank increases by
20 plus the sum of the values of the shots you fired:
Code: Select all
Main shot
Normal 20
Piercing 80
Option shot
Garegga ships 20
Gain 240
Chitta 20
Miyamoto 60
Bornnam 20
Double bullets from a single muzzle flash seem to count as one bullet. The Flying Baron at shot level 2, firing two double bullets, gains 60 rank per shot, not 100. At some point I'll work out and post the exact rank-per-shot for each ship at each level so players can see what the most "rank-efficient" powerup levels are (i.e. the highest level before an increase in rank-per-shot)
Miyamoto's option shots seem to be analagous to piercing shots, since the explosion persists and can damage multiple targets or a damage a single target more than once. Each of Gain's swords seems to consist of four "piercing option shots". Notice that Gain's rank per option shot is four times Miyamoto's, and that while most ships can have four option bullets onscreen at a time per Option, Gain can only have one per Option.
I wonder--do Gain's and Miyamoto's option shots count as piercing shots for targets that score differently when destroyed by piercing as opposed to normal shots? I can't play either of these characters even semi-competently (they're much too fast for me) so I don't know...
Oh yeah, the "base" 20 rank for firing a round of shots is gained even if you "dry fire" by attempting to fire when the screen holds as many bullets as you're allowed to have (8 main shots per gun, 4 option shots per Option) For example, if you increase the autofire rate to 1/2 frames and hold the fire button, you'll fire 4 times in the first 8 frames and gain rank as usual for your ship's shot pattern and Options. In the next 8 frames you'll fire 4 times with the main shot only (since you already have 4 option bullets per option onscreen) and gain rank correspondingly. After that, if you continue to hold the button, you'll continue to gain 20 rank every second frame until some of your shots leave the screen and you actually start firing again.