Algunas utilidades para ROMs...

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Responder
Avatar de Usuario
España_Navarra Zup
El infierno es su lugar
El infierno es su lugar
Mensajes: 158
Registrado: 27 Ene 2019, 17:41
Ubicación: Navarra
Has thanked: 2 times
Been thanked: 65 times
Contactar:

Algunas utilidades para ROMs...

Mensaje por Zup » 31 May 2020, 12:54

Aquí van unas cuantas utilidades cutres para tratar (fundamentalmente) con ROMs. Son cosas que nunca encuentro una herramienta para hacerlas (aunque varias de las de tamaño se pueden hacer con dd), y que me han venido bien para algunas cosas que tenía en mente. Todas son para línea de comandos, ya que están pensadas para ir metidas en un script.
  • Para manipular el tamaño: pad_file, remove_header, remove_tail, cut_file, split_file y make_fill
  • Para manipular el orden de bytes: join_oddeven, split_oddeven y swap_oddeven.
  • Comprobar el contenido: is_rep.
  • (De)codificar ficheros: xorfiles, bit_scramble, bit_invert, addr_scramble, addr_invert.
Algunos ejemplos/sugerencias de uso:

Descodificar las ROMs del Amiga Forever:

Código: Seleccionar todo

@echo off
for %%z in (*.rom) do remove_header 11 %%z %%z.noheader
for %%z in (*.noheader) do xorfiles rom.key %%z %%z.decrypt
del *.noheader
(Curiosidad: las versiones viejas de Amiga Forever incluyen rom.key, las nuevas parece que no)

Crear una imagen de discquete vacío (por ejemplo, para Virtualbox):

Código: Seleccionar todo

make_fill disco.img 1440k 0
Comprobar si hay ficheros vacíos, llenos de ceros o 255 en un directorio (posiblemente ROMs inválidas):

Código: Seleccionar todo

@echo off
del resultado.temporal
dir /s /a /b /l %1 > listado.temporal
for /f "delims=" %%z in (listado.temporal) do is_rep "%%z" 255 >> resultado.temporal
type resultado.temporal | find "V:" > resultado.txt
type resultado.temporal | find "0:" >> resultado.txt
type resultado.temporal | find "I:" >> resultado.txt
del resultado.temporal
del listado.temporal
type resultado.txt
Intercambiar los bits 3 y 4 de una ROM (la ROM del Ramjet tiene estos bits intercambiados):

Código: Seleccionar todo

bit_scramble 76534210 ramjet2.rom ramjet2u.rom
Intercambiar los bytes pares e impares de una ROM (ambas alternativas funcionan):

Código: Seleccionar todo

swap_oddeven bios.rom bios.swapped

Código: Seleccionar todo

addr_invert ===============i rom.bios rom.swapped
El código es bastante cutre, pero al menos funciona sin errores (conocidos). La página web correspondiente es esta:

https://blogmeas.wordpress.com/2020/05/ ... para-roms/
Imagen I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.

Avatar de Usuario
España_Navarra Zup
El infierno es su lugar
El infierno es su lugar
Mensajes: 158
Registrado: 27 Ene 2019, 17:41
Ubicación: Navarra
Has thanked: 2 times
Been thanked: 65 times
Contactar:

Re: Algunas utilidades para ROMs...

Mensaje por Zup » 16 Jun 2020, 10:22

Actualizo las utilidades. Ahora he incluído algunas para manipular las líneas de direcciones y datos de una ROM (me ha surgido la necesidad para echar un ojo a la ROM del Ramjet).
Imagen I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.

Responder

Volver a “Proyectos de software abiertos”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado