git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

gbdk-support/bankpack/common.h

      1 
      2 #ifndef _COMMON_H
      3 #define _COMMON_H
      4 
      5 #define QSORT_A_FIRST -1
      6 #define QSORT_A_SAME   0
      7 #define QSORT_A_AFTER  1
      8 
      9 enum {
     10     MBC_TYPE_NONE = 0,
     11     MBC_TYPE_MBC1 = 1,
     12     MBC_TYPE_MBC2 = 2,
     13     MBC_TYPE_MBC3 = 3,
     14     /* MBC4 doesn't exist */
     15     MBC_TYPE_MBC5 = 5,
     16     MBC_TYPE_MBC6 = 6,
     17     MBC_TYPE_MBC7 = 7,
     18 
     19     MBC_TYPE_MIN = MBC_TYPE_MBC1,
     20     MBC_TYPE_MAX = MBC_TYPE_MBC7,
     21     MBC_TYPE_DEFAULT =  MBC_TYPE_NONE
     22 };
     23 
     24 enum {
     25     NES_MAPPER_TYPE_NONE = 0,
     26     NES_MAPPER_TYPE_UXROM = 2,
     27     NES_MAPPER_TYPE_MAPPER30 = 30,
     28 
     29     NES_MAPPER_TYPE_MIN = NES_MAPPER_TYPE_NONE,
     30     NES_MAPPER_TYPE_MAX = NES_MAPPER_TYPE_MAPPER30,
     31     NES_MAPPER_TYPE_DEFAULT = NES_MAPPER_TYPE_MAPPER30
     32 };
     33 
     34 enum {
     35     OBJ_FILE_XL3_24BIT_ADDR = 0,
     36     OBJ_FILE_XL4_32BIT_ADDR = 1,
     37     OBJ_FILE_UNKNOWN
     38 };
     39 #define OBJ_FILE_XL3_ID "XL3"
     40 #define OBJ_FILE_XL4_ID "XL4"
     41 
     42 
     43 #define MAX_FILE_STR 2048
     44 
     45 #define BANK_NUM_UNASSIGNED   0xFFFFU
     46 #define BANK_NUM_AUTO         255
     47 #define BANK_NUM_ROM_MIN      0
     48 #define BANK_NUM_ROM_MAX      255
     49 #define BANK_NUM_ROM_DEFAULT  1
     50 #define BANK_ROM_TOTAL        256 // Banks 0-255
     51 #define BANK_ROM_CALC_MAX     512 // Banks 0-512 (>256 not supported for auto-banking right now)
     52 #define BANK_SIZE_ROM         0x4000U
     53 #define BANK_SIZE_ROM_MAX     (BANK_SIZE_ROM)
     54 
     55 #define BANK_ITEM_COUNT_MAX 0xFFFF
     56 
     57 #define BANK_NUM_ROM_MAX_MBC1  127
     58 #define BANK_NUM_ROM_MAX_MBC2  15
     59 #define BANK_NUM_ROM_MAX_MBC3  127
     60 #define BANK_NUM_ROM_MAX_MBC5  255 // 511 // TODO: support full MBC5 address range (currently 8 bit only)
     61 #define BANK_NUM_ROM_MAX_MBC7  127
     62 
     63 #define BANK_NUM_ROM_MAX_UXROM     127  // Oversize UNROM supports up to 4MB, but iNES 1.0 only supports up to 2MB. Historical UxROM boards only supported 256kB at most
     64 #define BANK_NUM_ROM_MAX_MAPPER30  31   // Mapper30 only supports up to 512kB due to other register bits being used for CHR-RAM / 1-screen mirroring control.
     65 
     66 #define STRINGIFY(x) #x
     67 #define TOSTR(x) STRINGIFY(x)
     68 
     69 #endif // _COMMON_H

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.