Hey,
For some time I've been reversing Super Bomberman 1 – investigating the code, level formats, how enemies work and so on. One of the things I've learned is how secret bonuses work in the game. During the investigation of the level formats, I've learned that every level has a list of initialization functions, and some levels include a function that takes 2 parameters – a condition (0x00-0x0B) and a bonus (0x0E, 0x11-0x18).
The conditions are:
Condition 0x00: Reach 0 lives.
Condition 0x01: Do not move for 500 frames (21.333 seconds)
Condition 0x02: Stand on the exit for 500 frames (21.333 seconds)
Condition 0x03: Pause the game
Condition 0x04: Place bombs in all 4 corner
Condition 0x05: Leave all bonuses, including the exit, visible
Condition 0x06: Killing 3 enemies with a single bomb or bomb chain, or killing 3 enemies straight using kicked bomb.
Condition 0x07: Bomb the exit
Condition 0x08: Use the Punching Glove 5 times
Condition 0x09: Drop a bomb on the other player or yourself
Condition 0x0A: Have 6 bombs on the field
Condition 0x0B: Have a player's score end with 20
The bonuses can be actually anything from 0x00 to 0x18, but they're practically only the Heart bonus, Question Mark bonus (Selects a random bonus. If the selected bonus is the exit, poison or question mark bonus it defaults to extra life) and the score-only bonuses. The exit is considered a bonus with ID 0x10.
The bonuses are:
0x01: Extra Bomb
0x02: Extra Fire
0x03: Remote Control
0x04: Extra Speed
0x05: Shield
0x06 Extra Life
0x07: Pass through bombs
0x08: Pass through walls
0x09: Extra Time
0x0A: Full Fire
0x0B: Red Bombs
0x0C: Kick
0x0D: Punch
0x0E: Onigiri
0x0F: Poison
0x10: Exit
0x11: Heart
0x12: Cake
0x13: Question Mark
0x14: Hammer
0x15: Apple
0x16: Fire Extinguisher
0x17: Popsicle
0x18: Ice cream
I uploaded a video demonstrating these conditions, I hope you'll enjoy it! :)
http://www.youtube.com/watch?v=OrKehQ3DXAY
I'll post more of the stuff I've been doing in the Mods section later. :)