Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue C62002

Checksum not written to header of infix
Submitted by: Evin Robertson     Appeared in: Compiler 6.20     Fixed in: Compiler 6.21
Problem

You can make inform generate 'infix' debugging info by using the -k option. This info contains the header of the gamefile so you can check to see if things match, but inform doesn't write the checksum into the header in the infix file, like it does in game file.

Solution

In files.c (around line 180), move this code:

  if (debugfile_switch)
  {   write_debug_byte(HEADER_DBR);
      for (i=0; i<64; i++)
          write_debug_byte((int) (zmachine_paged_memory[i]));
  }

down to after this code:

  if (ferror(sf_handle))
     fatalerror("I/O failure: couldn't backtrack on story file for checksum");

  fclose(sf_handle);

And change it to this:

  if (debugfile_switch)
  {   write_debug_byte(HEADER_DBR);
      zmachine_paged_memory[0x1c] = checksum_high_byte;
      zmachine_paged_memory[0x1d] = checksum_low_byte;
      for (i=0; i<64; i++)
          write_debug_byte((int) (zmachine_paged_memory[i]));
  }


Last updated 2 May 2008. The librarian in charge of this page is Roger Firth. Please email any comments, suggestions or corrections to roger@firthworks.com.