the cutting room mirror

Othello (NES, Famicom Disk System)

This article has a talk page!
view on tcrf.net

This page details bugs of Othello (NES, Famicom Disk System).

CPU Player Stack Overflow#

To do:

  • Document the stack page variables and stack depths which cause the conflict.
  • Check if effects other than immediate crashes (e.g. ACE) are possible.
  • Reverse-engineer the fixes applied in later versions and document them on the main page.
Careful, you'll lose an eye.

This page or section needs more images.
There's a whole lotta words here, but not enough pictures. Please fix this.
Specifically: Screenshot?

The FDS DV 2 and Famicom versions can crash and display garbled graphics1 if the CPU player's move search becomes too deep (not to be confused with the CPU player running out of time). Due to the deterministic nature of Othello and the CPU player, it is trivial to reproduce the bug once a sequence of moves has been found to trigger it.

Cause of the Bug#

The code handling the CPU player can nest too many subroutine calls to the point where variables located in the hardware stack page will conflict with a return address. This causes the game to overwrite and "return" to a garbage address, eventually leading to a crash. The Famicom version can also additionally clobber the CHR-ROM bank, resulting in garbled graphics from open bus.2

The FDS DV 3(?), 5 versions, the leaked Rev 1 Famicom version, and the NES version appear to have fixed this bug (or have at least reduced the likelihood of it occurring in normal play).

(Source: TakuikaNinja)

References#


  1. YouTube Video: Othello (Famicom) Level 3 CPU player crash↩︎
  2. NESdev Wiki: Mapper 185↩︎