User:BaviH/Dr. Mario Gravity

From TetrisWiki
< User:BaviH
Revision as of 21:23, 10 May 2020 by BaviH (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Gravity

NES Version

When the 10th (20th, 30th, and so on) vitamin capsule appears in Dr. Mario's throwing hand, a sound effect plays and the drop speed of the vitamin capsules increases slightly. This speed up can happen up to a maximum of 49 times in a level, meaning there are a total of 50 possible drop speeds for each SPEED setting (LOW, MED, or HI).

Here are technical details for the NTSC game (PRG+CHR CRC32 198C2F41) and the PAL game (PRG+CHR CRC32 9735D267):

  • A gravity table begins at memory address A795 in the NTSC game and memory address A79E in the PAL game. It consists of 81 one-byte entries (indexes decimal 0 to 80). The actual values in the memory addresses are zero-based: a value of 0 has an effect of 1 frame per row. The gravity table below shows the one-based "frames per row" values.
  • A three-byte table of the starting indexes for each SPEED setting exists at memory address A38D in the NTSC game and memory address A396 in the PAL game. The contents are the same in both versions:
LOW 15
MED 25
HI 31
  • A count of the number of times a speed up has occurred this level exists at memory address 8A (as well as having other copies at addresses A0, 30A, and 320).
  • The starting index is added to the number of speed ups, and the result is used as an index into the the gravity table.

Here is the gravity table:

Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
NTSC frames per row 70 68 66 64 62 60 58 56 54 52 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 19 18 17 16 15 14 13 12 11 10 10 9 9 8 8 7 7 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 1
PAL frames per row 57 55 54 52 50 49 47 45 44 42 40 39 37 35 34 32 30 29 27 25 24 22 20 19 17 16 15 14 13 12 11 10 10 9 8 7 7 6 6 6 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
Ranges LOW: indexes 15 to 64
MED: indexes 25 to 74
HI: indexes 31 to 80