If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Notes:Enforce

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Enforce.

009918: 1219                       move.b  (A1)+, D1
00991A: 6724                       beq     $9940
00991C: E549			   lsl.w   #2, D1

This is part of the code that is supposed to fetch the correct character value from a table and put it in D1. The problem comes with the multiplication operation; Each entry in the character table is 2 bytes, but the operation here multiplies by 4. The MAME code patches this to multiply the value by 2. The same coding error occurs at 0x009988 and 0x0099E8.

Additional errors occur at 0x009992 and 0x0099A0:

009992: 1083                       move.b  D3, (A0)
009994: 1144 0001                  move.b  D4, ($1,A0)

The first operation writes the current character value to VRAM. The second operation writes the character ID+1 8 pixels below the previous character. For instance, if the line above would be 00AF82, the line below would be 11BG93. The MAME code dummies this out. The same error is present at 0x0099A0, but this only affects the Function Code line.