I found some very detailed posts about other Parodius games but not this one. The biggest resource I found was this obscure video: https://www.youtube.com/watch?v=XrrCWeDj940 . I don't claim these findings as my own - most of the info comes from trying to understand this video.
Total Rank
Total Rank determines the current difficulty and it is the sum of Timer Rank + Other Factors.
From my own investigation in the JAA (arcade) version, I believe timer rank can be found at 0xc107f3 and total rank at 0xc109ab, and they are both unsigned bytes . I did not find "other factors", but it can be deduced by subtracting total - timer rank. There is also an actual timer address itself you can see ticking up but I haven't looked for this address yet.
Timer Rank
Timer Rank appears to increase at a set rate regardless of anything else. The rate decreases as timer rank increases. The above-linked video mentions it as 0~3= Very Fast, 4~7= Fast, 8~15=Little Fast, 16~31=Slow. I believe this is a departure from some of the other Parodius games, where time rank would increase faster based on your powerups and other factors. You can see in the video how the timer slows down as the player crosses these thresholds.
However, I have seen some players claiming that avoiding powerups in earlier stages makes timer rank increase more slowly. If there is evidence of the contrary or I have missed something, please chime in!
Timer rank decreases on death, apparently by -3. So the trick of suiciding on stage 2 without losing a life does help over the course of a run.
Other Factors
The "Other Factors" are everything you're probably already familiar with. It's based on how many powerups you have and other resources you have like bells and shield. It goes up when you get those things, and goes back down when you lose them (or use them in the case of consumables like bell bombs). The video I linked goes into this in much more detail in the description and a comment, but I will call out some important points.
The mode you select at the start of a run also affects it (auto +0, semi +1, manual +2). Completing a stage with mission failed increases it by 1, completing with mission succeeding increases it by 2.
Speed affects it like so:
0~1=+0
2~3=+1
4~5=+2
As noted earlier, this "Other Factors" contribution to rank doesn't change based on a timer and doesn't affect the timer-based rank increases. It is just added to the timer-based rank.
Implications
Collecting powerups early on won't make timer-based rank increase faster over the course of a game (the powerups only increase the total rank by a fixed amount).
For those who only care about survival, intentionally dying does decrease timer rank so can be a good strategy. Additionally, intentionally not completing missions will avoid the extra +1 to "Other Factors" with each stage completed. Finally, using "automatic" mode will also ensure rank is as low as possible.
Lua Script for MAME
Here's a lua script that can be used with MAME to put the rank information on screen using the -autoboot_script flag.
Code: Select all
cpu = manager.machine.devices[":maincpu"]
mem = cpu.spaces["program"]
s = manager.machine.screens[":screen"]
timer_rank_addr = 0xc107f3
total_rank_addr = 0xc109ab
function draw_overlay()
timer_rank = mem:read_u8(timer_rank_addr)
total_rank = mem:read_u8(total_rank_addr)
other_rank = total_rank - timer_rank
s:draw_text(195, 0, "Timer: " .. timer_rank)
s:draw_text(225, 0, "Other: " .. other_rank)
s:draw_text(250, 0, "Total: " .. total_rank)
end
emu.register_frame_done(draw_overlay, 'frame')