Gun Frontier/Advanced Rank

From Shmups Wiki -- The Digital Library of Shooting Games
< Gun Frontier
Revision as of 05:54, 5 August 2022 by Trap15 (talk | contribs) (Created page with "<div style='text-align: center;'> ''See Gun Frontier for the main page.'' </div> __TOC__ {{clear}} == Overview == Most numbers given here are written in both decimal (b...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

See Gun Frontier for the main page.

Overview

Most numbers given here are written in both decimal (base 10) and hexadecimal (base 16) for clarity. Numbers beginning with a $ symbol are in hexadecimal, otherwise they are decimal.

The rank value is ranged from $00 (0) to $FF (255), where $00 is the easiest and $FF is the hardest. The value changes dynamically, rather than with a formula, so this page will list the conditions which modify the rank value.

DIP Switches

The difficulty setting set by DIP switches affects the starting rank value of the game. This is not a lower bounds, and so it is possible to reduce the rank value below this amount.

Setting Start Rank
A (EASY) $00 (0)
B (NORMAL) $10 (16)
C (HARD) $28 (40)
D (HARDEST) $40 (64)

Stage Limit

The stage number determines the lowest possible value for the rank. These values are not affected by the DIP switch setting. If the rank ever goes below the value for the current stage, it will be set to that value.

Stage Minimum Rank
Stage 1 $00 (0)
Stage 2 $20 (32)
Stage 3 $40 (64)
Stage 4 $80 (128)
Stage 5 $A0 (160)
Stage 6 $B0 (176)

Although a value exists for Stage 6, rank has no effect on any behavior in that stage.

Timer Rank

The rank is increased periodically every 600 frames (~10 seconds). When this period has elapsed, the rank is increased by 1 plus the number of full bombs in stock. During a multi-player game, this value is taken from the player with the most number of full bombs.

Shot Button Presses

Probably the most misunderstood and over-discussed source of rank is the rank caused by shooting and autofire. The rank increase is entirely based on number of button presses in a short time, and is neither related to the number of shots wasted, nor the number of shots that actually are fired (that is, a button press that results in no shot coming out is still counted).

When a player presses the shot button, the game will start counting the duration until the next press. If the next press occurs within 8 frames, a counter is incremented. When this counter has incremented 42 times, the rank will increase by 1, and the counter will be reset. Player 1 and Player 2 have separate counters and timers.

So long as the player does not press the button again within 8 frames of the last press, there is no effect. Thus, an autofire rate of 6.6Hz (every 9 frames) will not affect the rank. Below is an effective table of rank increase rates for each autofire rate. These rates are the autofire interval multiplied by 42.

Rate
Hz
Rate
Interval
Frames per
rank increase
30Hz 2 84
20Hz 3 126
15Hz 4 168
12Hz 5 210
10Hz 6 252
~8.6Hz 7 294
~7.5Hz 8 336
~6.6Hz
or less
9+ never

Bombing

Firing a full sized bomb increases rank by 4, as does firing a partial bomb with 6 or more fragments. Firing a partial bomb with 5 fragments or less only increases rank by 2.

Stage Clear

When a stage is cleared, the rank increases by 6 plus the number of remaining lives times 5. During a multi-player game, this value is taken from the player with the most number of remaining lives. Below is an effective table of rank increases per life count. When stage 5 is cleared, all lives are converted to score, so the rank increase for clearing stage 5 is always 6.

Lives Rank
0 $06 (6)
1 $0B (11)
2 $10 (16)
3 $15 (21)
4 $1A (26)
5 $1F (31)
6 $24 (36)
7 $29 (41)
8 $2E (46)
9 $33 (51)

Secrets

Defeating the blue medium-sized planes in stage 2 with a bomb awards 10,000 points per plane destroyed, but also raises the rank by 5 for each plane destroyed. For example, destroying 4 planes with 1 bomb awards 40,000 points, but also increases rank by 24 (5 rank * 4 planes + 4 rank * 1 bomb).

Seemingly, this is the only secret that will increase rank.

Death

Dying will lower the rank by $0D (13) for the first death in a stage, and $20 (32) for any subsequent deaths. The number of remaining lives has no effect on this change. This rank change does not apply if you will respawn in-place, such as during multi-player games or during a boss battle.

When a continue is used in a single-player game, the rank is lowered by $3A (58). A player joining in mid-game or continuing during a multi-player game will lower rank by 8.

Memory Addresses

These addresses are provided for easy reference and verification of the above information.

Value Size Base offset Player 1 Player 2
Rank WORD $107B2E (same as P1)
Player structure (composite) $107BE2 $107C20
Shot interval timer WORD +$36 $107C18 $107C56
Quick-shot counter WORD +$38 $107C1A $107C58

Functions

Behavior Address Parameters
Rank increase routine $13E66 D7 = Amount
Rank decrease routine $13E74 D7 = Amount