shmups.system11.org

Shmups Forum
 
* FAQ    * Search
 * Register  * Login 
It is currently Sat Aug 19, 2017 10:21 pm View unanswered posts
View active topics



Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: GD: Parodius Da Rank System
PostPosted: Wed Dec 21, 2011 3:59 am 


User avatar

Joined: 24 Jan 2010
Posts: 188
This guide was written to explain the rank system of Parodius Da.
This guide is written specifically for the ARCADE version of Parodius Da, all ports have their rank systems modified.

Parodius Da Rank System

The following information was discovered by watching the game's memory using MAME's debugger.

The rank system consists of two main components: the actual rank value, and a weapons counter.

The rank value is a 1 byte value stored at 0x1800 in the main cpu memory.
The weapons counter is a 1 byte value stored at 0x1802 in the main cpu memory.

The higher the rank value, the more difficult the game is.

At the game start, the rank value is initialized depending on the machine's difficulty setting on the DIP switches:
Easy - 0
Normal - 2
Hard - 4
Very Hard - 6

The weapons counter is started at 0x00 at game start in all cases.
The weapons counter is always increasing during gameplay. It's rate of increase depends on your current power up status and whatever bells you are holding.
When it rolls over 0xFF, the rank value is incremented by 1.
The byte at 0x1801 is also incremented by 1. When this value reaches 0x0F, the weapons counter is turned off and no longer increments.

Things that affect the rank value directly:
Weapons counter rolling over 0xFF: +1
Entering the next stage defeating a boss: +1
Options: +1 for each, UNLESS you do not have missile, double, laser, or shield activated, in this case there is no penalty. When you activate any of the aforementioned the penalty for all options is applied all at once.
-1 for each lost on death or to !? power down
Shield: +1 while active
Blue Bell: +1 for each picked up, -1 for each blast, -1 for each bell being held on death
Red Bell: +1 for each blocker (red bells give you three), -1 for each blocker used, -1 for each blocker lost on death
Death: -2 most of the time, dying at bosses produces some strange effects, such as -1 on death, and then -2 more when you enter the next stage instead of the usual +1 penalty

Things that affect the weapons counter:
Speed Up:
1 speedup - no penalty
Penalty for each speedup after
Getting speedups is easily the biggest cause of rank increase in the entire game.
Shield - penalty while shield is active
Green bell - penalty while invincibility is active
White bell - penalty while megaphone is displayed


So where are missile, double and laser in all this?
That's right. Unbelievably, aside from enabling the option rank increase, there is no penalty for having missile, double, or laser power active, they don't affect the rank or weapons counter at all. Speedups have a bigger effect on the rank than your weapons, how wierd is that?

Special rules for the final stage
The final stage has some special rules regarding the rank.
First off, when you enter the intermission, the rank penalty is +2 instead of +1.
Next, the rank system will *pretend* you have four options and add a penalty of up to +4 for each option you don't have. So equipping options on this stage doesn't affect the rank. If you don't have missile, double, laser, or shield, this penalty will not be applied due to the rule, but really, you are probably going to have at least one of them by this point.

Bell penalties for affected on the final stage.
Green Bell - Rank penalty is +2 while active. Pointless because you are invincible.
White Bell - Rank penalty is +2 while active.
Red Bell - Still +1 for each blocker. However, also add +2 while a blocker field is active.

Blue bells are unaffected.


I think I covered all of the information I have, if anything is unclear let me know.
I may convert this to an ST when I beat the game.


Top
 Offline Profile  
 
 Post subject: Re: GD: Parodius Da Rank System
PostPosted: Wed Jan 25, 2017 10:31 am 


User avatar

Joined: 13 Dec 2014
Posts: 2434
Location: Singin' in the rain of extends
I've been trying to reproduce the findings documented here but without much success (MAMEPlus 0.160, if it matters). When I examine the values at 0x1800 and 0x1802 I just see constantly fluctuating gibberish. Am I doing something wrong or is that just how it is now?

Granted, the only really important thing to know about rank, it seems, is that getting more than one speed up makes rank shoot up way more quickly, and that's abundantly clear even without any reverse engineering or memory watching. I've been considering putting together an ST, though, and if I were to do that I would want a more concrete picture of the rank system.
_________________
NTSC-J wrote:
You know STGs are in trouble when you have threads on how to introduce them to a wider audience and get more people playing followed by threads on how to get its hardcore fan base to play them, too.

1cc list | Twitch | YouTube


Top
 Offline Profile  
 
 Post subject: Re: GD: Parodius Da Rank System
PostPosted: Thu Jan 26, 2017 7:44 pm 


User avatar

Joined: 01 Aug 2016
Posts: 43
2011 Image

Are you sure you've selected the main cpu memory, because I'm not sure if there would be anything relevant at an address like that. IIRC in that game the actual ram contents are mapped to some other base address like 0x00100000 so it might be 0x00101800
_________________
I forgot my password


Top
 Offline Profile  
 
 Post subject: Re: GD: Parodius Da Rank System
PostPosted: Fri Jan 27, 2017 8:06 am 


User avatar

Joined: 13 Dec 2014
Posts: 2434
Location: Singin' in the rain of extends
I'm looking at "KONAMI CPU ':maincpu' program space memory":
Image
The memory only goes up to 0xFFFF.
_________________
NTSC-J wrote:
You know STGs are in trouble when you have threads on how to introduce them to a wider audience and get more people playing followed by threads on how to get its hardcore fan base to play them, too.

1cc list | Twitch | YouTube


Top
 Offline Profile  
 
 Post subject: Re: GD: Parodius Da Rank System
PostPosted: Fri Jan 27, 2017 8:19 am 


User avatar

Joined: 31 Aug 2009
Posts: 7179
Location: San Jose, California, USA
Looks to me like everything is based at 0x1880, not 0x1800.
_________________
@trap0xf | daifukkat.su/blog | scores | FIRE LANCER
<S.Yagawa> I like the challenge of "doing the impossible" with older hardware, and pushing it as far as it can go.
<Shepardus> whoever reached the fourth loop in zing zing zip is the modern day sisyphus


Top
 Offline Profile  
 
 Post subject: Re: GD: Parodius Da Rank System
PostPosted: Fri Jan 27, 2017 8:43 am 


User avatar

Joined: 13 Dec 2014
Posts: 2434
Location: Singin' in the rain of extends
trap15 wrote:
Looks to me like everything is based at 0x1880, not 0x1800.

Thanks! I'm surprised I didn't notice that since it was so close. I was even looking at the surrounding memory addresses but I must have stopped just short of 0x1880...

Edit: Holy hell the rank penalty for speed ups is hilarious :lol:

Anyway, here's a MAME cheat file to watch the rank and set it:
Code:
<mamecheat version="1">
  <cheat desc="Watch Game Rank">
    <script state="run">
      <output line="1" format="Total Rank: %x">
        <argument>maincpu.pb@(1880)</argument>
      </output>
     <output line="2" format="Survival Rank: %x">
        <argument>maincpu.pb@(1881)</argument>
      </output>
      <output line="3" format="Counter: %x">
        <argument>maincpu.pb@(1882)</argument>
      </output>
    </script>
  </cheat>

  <cheat desc="Set Survival Rank">
    <comment>Sets survival rank, not the total rank which includes difficulty dipswitches, upgrade status, etc.</comment>
    <parameter min="0x00" max="0x0F" step="0x01"/>
    <script state="change">
      <action>maincpu.pb@(1881)=(param)</action>
    </script>
  </cheat>

  <cheat desc="Set Counter">
    <parameter min="0x00" max="0xFF" step="0x01"/>
    <script state="change">
      <action>maincpu.pb@(1882)=(param)</action>
    </script>
  </cheat>
</mamecheat>


I'm rewatching my two clears with the rank counter turned on, and it's raising more questions than it's answering...
For starters, rank seems to increase after certain bosses but decrease after others (namely the stage 4 boss). The effect of shield on the rate at which weapon counter/rank increases is a lot more significant than I expected. Also Octopus's shield adds 2 to rank when active but Twinbee's adds 1. I think suicide bullets start when survival rank (not total rank!) reaches 0xC. Yellow bells do not have any immediate effect on rank, and probably no effect at all (this contrasts with Gokujou Parodius where it clearly does increase rank). Continuing resets rank. Going to the second loop doesn't do anything to rank.

The value at 0x1800 is actually derived from the value at 0x1801 and your upgrade/bell status - even if you force it to a different value it'll be forced back. So if you want to experiment with rank, set the value at 0x1801 and not the one at 0x1800. I think it's easier to think of the rank as a 16-bit value spanning 0x1801 and 0x1802, starting at 0x0000 and maxing at 0x0F00, which is adjusted by the difficulty dipswitches and your upgrades/bells to produce the "final" rank. I'll confirm this later and edit the MAME cheat above to reflect this if need be.
EDIT 2: Updated MAME cheat.

EDIT 3: Table of # of frames per counter increase:

As you can see, shield literally doubles the rate of rank increase. So do the second and third speedups, but not the first, and not the fourth and fifth either (not that you should be getting that many speedups anyway).

I'm pretty sure the part about missile/double/laser not adding to rank except by enabling the rank increase from options is wrong, it seems to behave like what Seahawk describes for Gokujou Parodius but there are still some details to be ironed out. For example, it seems that laser adds more to rank than double in certain cases - switching from laser to double can decrease rank, and switching from double to laser can increase rank. It's a relatively minor detail compared to speedups and shields though.

Note that dying lowers survival rank, so if you're already at minimum survival rank, dying will not lower rank (other than the decrease from losing your powerups). This means you cannot get rid of the rank given to you at the end of each stage; rank will inevitably rise to some extent as you progress through the game. Since you can't interact with this part of the rank progression in any way, it's essentially a static difficulty increase that didn't necessarily have to be done through rank but was convenient to do that way. Suicide bullets are based on survival rank and so is the rank cap, so the rank increase from stage progression also doesn't affect these.

EDIT 4: Here's a CSV of all the different weapon combos for Vic Viper with no speed ups. I'm just going to assume it's the same for the other characters. I haven't figured out the logic to this...
Code:
Options,Weapon,Missile/Shield,Weapon rank w/ 0 options,1 option,2 options,3 options,4 options
0,Shot,0,0,0,0,1,1
0,Shot,1,0,1,1,2,2
0,Shot,2,0,1,2,3,3
0,Double,0,0,0,1,1,1
0,Double,1,0,1,1,2,3
0,Double,2,0,1,2,3,4
0,Laser,0,0,1,1,2,2
0,Laser,1,0,1,2,3,3
0,Laser,2,1,2,3,4,5
_________________
NTSC-J wrote:
You know STGs are in trouble when you have threads on how to introduce them to a wider audience and get more people playing followed by threads on how to get its hardcore fan base to play them, too.

1cc list | Twitch | YouTube


Top
 Offline Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Space Pilot 3K template by Jakob Persson
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group