cnrom.c 973 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * CNROM Mapper - The peTI-NESulator Project
  3. * cnrom.c
  4. *
  5. * Created by Manoel TRAPIER.
  6. * Copyright (c) 2003-2018 986-Studio. All rights reserved.
  7. *
  8. * $LastChangedDate$
  9. * $Author$
  10. * $HeadURL$
  11. * $Revision$
  12. *
  13. */
  14. #include "cnrom.h"
  15. unsigned char cnrom_load_bank;
  16. void cnrom_MapperWriteHook(register byte Addr, register byte Value);
  17. int cnrom_InitMapper(NesCart * cart)
  18. {
  19. int i;
  20. set_prom_bank_16k(0x8000, 0);
  21. set_prom_bank_16k(0xC000, GETLAST16KBANK(cart)); /* Set the last one */
  22. cnrom_load_bank = 0;
  23. /* Register the write hook */
  24. for (i = 0x80; i < 0x100; i++)
  25. {
  26. set_page_wr_hook(i, cnrom_MapperWriteHook);
  27. set_page_writeable(i, true);
  28. }
  29. return 0;
  30. }
  31. void cnrom_MapperWriteHook(register byte Addr, register byte Value)
  32. {
  33. set_prom_bank_16k(0x8000,Value);
  34. cnrom_load_bank = Value;
  35. }
  36. void cnrom_MapperDump(FILE *fp)
  37. {
  38. fprintf(fp,"cnrom: bank:%d\n",cnrom_load_bank);
  39. }