gameboy superoptimizer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 lines
556 B

  1. from collections import defaultdict
  2. from dataclasses import dataclass, field
  3. from typing import Dict
  4. from gbso.cpu.regs import R8
  5. @dataclass
  6. class CPUState:
  7. carry: int = 0
  8. sp: int = 0
  9. reg8: Dict[R8, int] = field(default_factory=lambda: defaultdict(lambda: 0))
  10. memory: Dict[int, int] = field(default_factory=lambda: defaultdict(lambda: 0))
  11. def copy(self) -> "CPUState":
  12. return CPUState(
  13. carry=self.carry,
  14. sp=self.sp,
  15. reg8=self.reg8.copy(),
  16. memory=self.memory.copy(),
  17. )