Básicamente es programar con un lenguaje de bajo nivel que es el lenguaje ensamblador (un lenguaje de bajo nivel es aquel que es más cercano al lenguaje que entienden las máquinas, y por ende es más difícil de entender para el humano). En los roms de gba hay muchas cosas que están hechas con esto, entonces con asm la gente lo que hace es modificarlas para que cambie su comportamiento (por ejemplo forzar que aparezca si o si un pokémon shiny en una batalla con un pokémon salvaje), o crear sus propias nuevas.
Es algo bastante complejo que en la comunidad hispana todavía está muy verde, son muy pocos los que realmente saben y muchos los que estamos aprendiendo. Si recién estás comenzando con esto del hacking te sugiero que por ahora lo olvides y te centres en aprender todo lo básico e intermedio antes de meterte con lo complejo, que se pueden lograr excelentes hacks sin saber asm.