Sunday, January 30, 2005

Some bugs never die

Fascinating how some bugs have stayed with us for years, even if the solution was simple and obvious.

There had been two bugs plaguing emulation of The New Zealand Story:
  1. A hanging bug, which would make the game simply stop, while music was still playing. This happened randomly at some key points, typically the end of a level when you touched the cage. This was caused by a bug in the original program (a RET NZ instead of RET Z), which would cause no apparent problem on the real hardware, but could be deadly in MAME.
    This bug had been fixed for a long time, 0.91 contains a cleaner workaround but the behaviour is the same.
  2. A crashing bug, happening at different times in the three different versions of the game. For example, in the current main set, it would happen when the cannon-firing sheep was on the screen. This was caused by a known limitation in the MAME handling of banked ROM areas. It is not a big problem, and we know how to deal with it, and there was code in the driver to do that. Unfortunately, the code was copying the wrong data! It has been like this forever, and nobody ever noticed. But at last it has been discovered, so I can promise you, from 0.91u2 TNZS will no longer crash :)

3 comments:

Anonymous said...

Awesome news Nicola! Thanks a bunch! I love seeing old bugs squashed and older games fixed, as opposed to newer games added.

Anonymous said...

I have great memories of TNZS. I remember the first time I played it, I was totally amazed. The graphics, sound, gameplay, all was perfect.

Anonymous said...

Hi Nicola,
Just wanted to say it's really cool reading your blog, it's really interesting reading about solving bugs in drivers and things like that!! :-D
Cheers,
Dave (FB)