cnrom.c 879 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * CNROM Mapper - The peTI-NESulator Project
  3. * cnrom.c
  4. *
  5. * Created by Manoël Trapier.
  6. * Copyright (c) 2002-2019 986-Studio.
  7. *
  8. */
  9. #include "cnrom.h"
  10. uint8_t cnrom_load_bank;
  11. void cnrom_MapperWriteHook(register uint8_t Addr, register uint8_t Value);
  12. int cnrom_InitMapper(NesCart *cart)
  13. {
  14. int i;
  15. set_prom_bank_16k(0x8000, 0);
  16. set_prom_bank_16k(0xC000, GETLAST16KBANK(cart)); /* Set the last one */
  17. cnrom_load_bank = 0;
  18. /* Register the write hook */
  19. for (i = 0x80 ; i < 0x100 ; i++)
  20. {
  21. set_page_wr_hook(i, cnrom_MapperWriteHook);
  22. set_page_writeable(i, true);
  23. }
  24. return 0;
  25. }
  26. void cnrom_MapperWriteHook(register uint8_t Addr, register uint8_t Value)
  27. {
  28. set_prom_bank_16k(0x8000, Value);
  29. cnrom_load_bank = Value;
  30. }
  31. void cnrom_MapperDump(FILE *fp)
  32. {
  33. fprintf(fp, "cnrom: bank:%d\n", cnrom_load_bank);
  34. }