An emulator, assembler, and disassembler for the Sega Game Gear
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

123456789101112131415161718192021222324252627282930
  1. /* Copyright (C) 2014-2015 Ben Kurtovic <ben.kurtovic@gmail.com>
  2. Released under the terms of the MIT License. See LICENSE for details. */
  3. #pragma once
  4. #include <stdbool.h>
  5. #include <stddef.h>
  6. #include <stdint.h>
  7. #define MMU_NUM_SLOTS (3)
  8. #define MMU_NUM_ROM_BANKS (64)
  9. #define MMU_ROM_BANK_SIZE (16 * 1024)
  10. #define MMU_SYSTEM_RAM_SIZE (8 * 1024)
  11. /* Structs */
  12. typedef struct {
  13. uint8_t *system_ram;
  14. const uint8_t *map_slots[MMU_NUM_SLOTS];
  15. const uint8_t *rom_banks[MMU_NUM_ROM_BANKS];
  16. } MMU;
  17. /* Functions */
  18. void mmu_init(MMU*);
  19. void mmu_free(MMU*);
  20. void mmu_load_rom(MMU*, const uint8_t*, size_t);
  21. void mmu_power(MMU*);
  22. uint8_t mmu_read_byte(MMU*, uint16_t);
  23. bool mmu_write_byte(MMU*, uint16_t, uint8_t);