I've never played any of the Mario games, so am unfamiliar with how accurate the movement is to the original basic Mario game, but using the "\test level.sml" for game play there are cases where two enemies are exactly overlaid on one another, or extremely close to one another.
The collision detection in the enemy draw routine is based on Mario having jumped and descending (dvy > 0).
If you collide with the enemy in this scenario, your Y velocity is immediately reversed and amplified (dvy = -dvy * 1.5).
The problem is that Mario is still within the collision zone for that block height and enemy size, and will be immediately killed by collision with the second enemy in that space.
There is no way to get past two enemies in the same spot.
When there is a collision detected, Mario's Y position should be "backed out" of the collision intersection so that Mario won't instantly collide and be killed by another enemy sharing the same space.
So, basically used the difference between Mario's bottom and the enemy's top (used in the collision detection condition) to move mario above the collision point.
Code:
'
If MarioY + MarioHeight > (EnemysInFieldX(i).Y + 1) * 14 - Enemy.Height(EnemysInFieldX(i).F) Then
If dvy > 0 And Jumping Then
'You kill an enemy
EnemysInFieldX(i).Dead = True
dvy = -dvy * 1.5
'*** New Line to back out of collision zone ***
MarioY = MarioY - (MarioY + MarioHeight - ((EnemysInFieldX(i).Y + 1) * 14 - Enemy.Height(EnemysInFieldX(i).F)) + 1) 'passel
Else
'Enemy Kills you
'....