Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

The Bugs Bunny Crazy Castle (NES)/Notes

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a Notes Page for The Bugs Bunny Crazy Castle (NES).

Stage Variables and Values

There are 64 stages. Stages 1 to 60 are normal stages. There are also 4 special stages (S1 to S4) that are entered when you touch one of the four "no carrot" signs in the normal stages.

Memory addresses hex 68 and 69 store the current stage and the maximum stage currently accessible in this play session, respectively. In these addresses, values of decimal 0 to 59 (hex 00 to 3B) represent stages 1 to 60. Values of decimal 60 to 63 (hex 3C to 3F) represent stages S3, S2, S4, and S1.

After you have beaten the first stage, any time the pre-stage title card is shown with a normal stage number, you can press up on the d-pad to select a lower stage number, or press down to select a higher stage number. (When the pre-stage title card shows a special stage number S1 to S4, you can't change the stage number.)

The password shown when you beat a stage is for the maximum stage you can access. If you go back and beat an earlier stage again, the password shown will be the same one given after the highest stage you have beaten so far.

If you die on a special stage, you are sent to the normal stage 3 stages before where the "no carrot" sign entrance to the special stage was. The "maximum stage" variable is also changed to this stage.

If you beat a special stage, you are sent to the normal stage after the stage where the "no carrot" sign entrance to the special stage was.

Password Format

The passwords are four characters long. The password entry screen lets you enter characters from A to Z or 0 to 9, a total of 36 character possibilities, but only 32 characters are actually valid. The password entry screen also uses a dash character in character positions you haven't yet entered, and lets you submit an incomplete password.

If you submit a password containing any of the 4 invalid characters (which are Q, V, 0, or 8), or if you submit an incomplete password (in other words, a password containing a dash character), the game will start on stage 1.

The right 2 characters of the password map to a byte value in a simple way. The left two characters of the password map to a byte value in a more scrambled way. The password is valid if the byte value generated from the right two characters matches the byte value generated from the left two characters. If the values match, the value is used to set the current stage and maximum stage variables. If the values don't match, the game starts on stage 1.

Each character of the password has one bit that is not used during the mapping to byte values. When a password is generated and displayed after beating a stage, the unused bit of each character is zero. When you submit a password on the password entry screen, the unused bit of each character can be any value. This means there are 16 valid passwords for each stage value.

Here are the valid password characters in order by their value:

SZWX2TPY31EH4U9IR5F6JBKGMLC7ANOD

The characters in this list are assigned values from decimal 0 to 31 (hex 00 to 1F).

Here is how the bits of the character values map to the bits of the byte value:

1st character, bit 4 (value hex 10):  unused
1st character, bit 3 (value hex 08):  byte value, bit 7 (value hex 80)
1st character, bit 2 (value hex 04):  byte value, bit 5 (value hex 20)
1st character, bit 1 (value hex 02):  byte value, bit 3 (value hex 08)
1st character, bit 0 (value hex 01):  byte value, bit 1 (value hex 02)

2nd character, bit 4 (value hex 10):  unused
2nd character, bit 3 (value hex 08):  byte value, bit 6 (value hex 40)
2nd character, bit 2 (value hex 04):  byte value, bit 4 (value hex 10)
2nd character, bit 1 (value hex 02):  byte value, bit 2 (value hex 04)
2nd character, bit 0 (value hex 01):  byte value, bit 0 (value hex 01)

3rd character, bit 4 (value hex 10):  byte value, bit 3 (value hex 08)
3rd character, bit 3 (value hex 08):  byte value, bit 2 (value hex 04)
3rd character, bit 2 (value hex 04):  byte value, bit 1 (value hex 02)
3rd character, bit 1 (value hex 02):  byte value, bit 0 (value hex 01)
3rd character, bit 0 (value hex 01):  unused

4th character, bit 4 (value hex 10):  unused
4th character, bit 3 (value hex 08):  byte value, bit 7 (value hex 80)
4th character, bit 2 (value hex 04):  byte value, bit 6 (value hex 40)
4th character, bit 1 (value hex 02):  byte value, bit 5 (value hex 20)
4th character, bit 0 (value hex 01):  byte value, bit 4 (value hex 10)

As explained earlier, for the password to be considered valid, the byte value decoded from the first two characters must match the byte value decoded from the last two characters.

Abnormal Passwords

The password can encode one byte, in other words, values from decimal 0 to 255 (hex 00 to FF). If the password decoding fails, the game starts on stage 1. If the password is successfully decoded into a byte value, this value is used to set the current stage and maximum stage variables. However, the game does not preform a check to make sure the decoded value is in a valid range, all byte values are handled, some with abnormal effects.

  • If the decoded value is decimal 0 to 59 (hex 00 to 3B), the game will begin on a normal stage 1 to 60 and behaves normally.
  • If the decoded value is decimal 60 to 63 (hex 3C to 3F), the game will begin on a special stage (S3, S2, S4, S1) and may behave abnormally.
    • If you access a special stage via a password and beat it, the game incorrectly handles it as a normal stage and simply increments the stage number. For example, if you enter a password for special stage S3 and keep beating the stages, you will proceed to stages S2, S4, S1, then a glitch stage.
    • If you access a special stage via a password and die, the game will behave as normal and go to the stage 3 stages before the stage that had the "no carrot" sign entrance to the special stage you died on, and also set the "maximum stage" variable to that stage.
  • If the decoded value is decimal 64 to 255 (hex 40 to FF), the game will begin on a "glitch stage".
    • If you access a glitch stage via a password and beat it, the game will increment the stage number.
    • If you access a glitch stage via a password and die, the game will look in a table that lists where the entrances to the special stages are, subtract 3 from the value it got from that table, then go to that stage. However, it will be accessing bytes beyond the normal end of the table, so it will send you to some unintended stage.