unrom.c 926 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * UNROM Mapper - The peTI-NESulator Project
  3. * unrom.h
  4. *
  5. * Created by Manoël Trapier.
  6. * Copyright (c) 2002-2019 986-Studio.
  7. *
  8. */
  9. #include "unrom.h"
  10. uint8_t unrom_load_vbank;
  11. void unrom_MapperWriteHook(uint8_t Addr, uint8_t Value);
  12. int unrom_InitMapper(NesCart *cart)
  13. {
  14. int i;
  15. set_prom_bank_16k(0xC000, 0);
  16. set_prom_bank_16k(0x8000, GETLAST16KBANK(cart)); /* Set the last one */
  17. if (Cart->VROMSize > 0)
  18. {
  19. set_vrom_bank_8k(0x0000, 0);
  20. }
  21. unrom_load_vbank = 0;
  22. /* Register the write hook */
  23. for (i = 0x80 ; i < 0x100 ; i++)
  24. {
  25. set_page_wr_hook(i, unrom_MapperWriteHook);
  26. set_page_writeable(i, true);
  27. }
  28. return 0;
  29. }
  30. void unrom_MapperWriteHook(uint8_t Addr, uint8_t Value)
  31. {
  32. set_vrom_bank_8k(0x0000, Value);
  33. unrom_load_vbank = Value;
  34. }
  35. void unrom_MapperDump(FILE *fp)
  36. {
  37. fprintf(fp, "unrom: vbank:%d\n", unrom_load_vbank);
  38. }