Solo para confirmar, el motodo que usaste en tu sistema de obediencia es este?
.obeylevel
ld hl, JohtoBadges
ld b, 2
call CountSetBits
ld e, a
ld d, 0
ld hl, BadgeLevels
add hl, de
ld a, [hl]
ld b, a
call BattleRandom
and 3
add b
.getlevel
...
BadgeLevels:
db 20 ; no badges
db 30, 38, 45, 54, 60, 63, 73, 84
db 86, 88, 90, 92, 94, 96, 98, 101