BookinglyTech News
Software

js65, un ensamblador 6502 compatible con ca65 y pensado para parchear ROMs

El proyecto, escrito en TypeScript, busca ser casi compatible con ca65 y añade control de enlazado y seguimiento de espacio libre para homebrew, romhacks y randomizers.

2 min de lecturaLobsters0 vistas

js65 es un ensamblador para el microprocesador 6502 escrito en TypeScript. Su objetivo es ser casi compatible con ca65, el ensamblador de la cadena cc65, y añadir soporte de parcheo para ROMs. La página del proyecto lo presenta como herramienta para homebrew de NES, romhacks y randomizers, sin entrar en detalles de implementación.

ca65 es una pieza conocida de la escena retro. Forma parte de cc65, un toolchain clásico para 6502, y su sintaxis se usa en proyectos de NES, SNES, C64 y otros sistemas de 8 bits. El 6502, por su parte, es el CPU de la NES, el C64, el Apple II y buena parte de la familia Atari de 8 bits. js65 no parte de cero: quiere aceptar el mismo ensamblador que ca65, o casi, para que el código existente no haya que reescribirlo. Ahí está la promesa principal.

Qué añade sobre ca65

Para homebrew, js65 añade empaquetado automático de bancos con colocación entre bancos. En una ROM de NES con memoria mapeada por bancos, eso evita ajustar a mano qué código cae en cada ventana. Para romhacks, el ensamblador controla la colocación del enlazador y hace seguimiento del espacio libre para apretar parches donde quepa. Para randomizers, el proyecto se puede usar como biblioteca y configurar la salida por código, en vez de generar un ensamblador y llamar al binario.

Lo que no dice la página

La página no da versión, licencia, repositorio ni fecha de publicación. Tampoco hay ejemplos de rendimiento, comparativas con ca65 ni una lista de sistemas soportados. Quien quiera evaluarlo tendrá que mirar el código, si está disponible, y probar si la compatibilidad con ca65 aguanta un proyecto real. No se concreta el entorno de ejecución.

Para quien trastea con ROMs de 8 bits, un ensamblador que entienda ca65 y además se use como biblioteca puede ahorrar bastante fontanería. La escena de romhacking vive de insertar cambios en espacios libres y de no romper direcciones. Si js65 cumple lo que promete, encaja justo ahí. Si no, será otro ensamblador con buena landing.