Notes:Enforce
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.