All registers and flags reset to 0. ------------------------------------------------------------------------------- ACC is a signed 20-bit accumulator. In this documentation, it is referred to as if it was 32-bits, but it should be treated as 20 bits MSb-justified. That is, each calculation should clear the bottom 12 bits. ------------------------------------------------------------------------------- REGADDR[X] refers to an address lookup for register X. The base address is determined by the value of REGMAP and REGBASE: X &= 0xF bool bank = false; switch(REGMAP) { case 0: case 1: case 2: case 3: bank = (X & 4); case 4: bank = (X & 8); case 5: bank = !(X & 8); case 6: bank = (X & 4) && (X & 8); case 7: bank = (X & 4) || (X & 8); } addr = (X & 7) | (bank ? 0x100 : 0) | ((X & 8) ? 0x200 : 0); addr ^= REGBASE << 2; =============================================================================== Public domain 3DO chip documentation, by trap15 Last update 2020-05-09T20:10+09 Knowledge derived from FreeDO source. FreeDO Project authors: Alexander Troosh Maxim Grishin Allen Wright John Sammons Felix Lazarev