First post, by NewRisingSun
... is not properly emulated in DOSBox. It wants to detect a Tandy 1000 when FFFFE and FFFFF are both FF. A standard PC or PC/XT has FFFFE as FF and FFFFF as a checksum byte, which is not FF. DOSBox always sets FFFFF to 55 as a "signature".
In src/ints/bios.cpp, this section:
// write system BIOS date
const char* const b_date = "01/01/92";
for(Bitu i = 0; i < strlen(b_date); i++) phys_writeb(0xffff5+i,b_date[i]);
phys_writeb(0xfffff,0x55); // signature
needs to be changed to:
// write system BIOS date
const char* const b_date = "01/01/92";
for(Bitu i = 0; i < strlen(b_date); i++) phys_writeb(0xffff5+i,b_date[i]);
if (machine==MCH_TANDY)
phys_writeb(0xfffff,0xFF); // Needed for Ninja (1986)
else
phys_writeb(0xfffff,0x55); // signature
This will allow Ninja to detect that it is running on a Tandy 1000, and have it display 160x200 16-color graphics instead of 320x200x4 color graphics, without using the common patched version. I have verified that all original Tandy 1000 BIOS ROMs have these values at FFFFE and FFFFF, so it is the "correct" thing to do as well.