에뮬레이터의 롬파일을 패치할때 쓰는 IPS 파일에 대한 포맷을 살펴보자.

PATCH로 시작한다.

RECORD

normal

  • Address(3 Byte): 변경하여야 할 데이터의 시작 주소
  • Length(2 Byte): 변경하여야 할 데이터의 길이
  • Data: Address에 Length만큼 변경할 데이터

RLE(Run Length Encoding)

RLE는 1바이트 변경을 여러 번 반복하기 위해 사용한다.

  • Address(3 Byte): 변경하여야 할 데이터의 시작 주소
  • 0000(2 Byte): RLE포맷임을 알린다.
  • Length(2 Byte): 몇 번을 반복하여 수정할 것인가?
  • Data(1 Byte): Address에 Length만큼 변경할 데이터

End of file

EOF를 쓴다.