nkeynes@1: /* nkeynes@1: * IP.BIN related code. Ref: http://mc.pp.se/dc/ip0000.bin.html nkeynes@1: */ nkeynes@1: #ifndef dc_ipbin_H nkeynes@1: #define dc_ipbin_H 1 nkeynes@1: nkeynes@1: #include nkeynes@1: nkeynes@1: #ifdef __cplusplus nkeynes@1: extern "C" { nkeynes@1: #if 0 nkeynes@1: } nkeynes@1: #endif nkeynes@1: #endif nkeynes@1: nkeynes@1: #define BOOTSTRAP_LOAD_ADDR 0x8C008000 nkeynes@1: #define BOOTSTRAP_SIZE 32768 nkeynes@1: nkeynes@1: typedef struct dc_bootstrap_head { nkeynes@1: char hardware_id[16]; /* must be "SEGA SEGAKATANA " */ nkeynes@1: char maker_id[16]; /* ditto, "SEGA ENTERPRISES" */ nkeynes@1: char crc[4]; nkeynes@1: char padding; /* normally ascii space */ nkeynes@1: char gdrom_id[6]; nkeynes@1: char disc_no[5]; nkeynes@1: char regions[8]; nkeynes@1: char peripherals[8]; nkeynes@1: char product_id[10]; nkeynes@1: char product_ver[6]; nkeynes@1: char product_date[16]; nkeynes@1: char boot_file[16]; nkeynes@1: char vendor_id[16]; nkeynes@1: char product_name[128]; nkeynes@1: } *dc_bootstrap_head_t; nkeynes@1: nkeynes@1: /* Expansion units */ nkeynes@1: #define DC_PERIPH_WINCE 0x0000001 nkeynes@1: #define DC_PERIPH_VGABOX 0x0000010 nkeynes@1: #define DC_PERIPH_OTHER 0x0000100 nkeynes@1: #define DC_PERIPH_PURUPURU 0x0000200 nkeynes@1: #define DC_PERIPH_MIKE 0x0000400 nkeynes@1: #define DC_PERIPH_MEMCARD 0x0000800 nkeynes@1: /* Basic requirements */ nkeynes@1: #define DC_PERIPH_BASIC 0x0001000 /* Basic controls - start, a, b, arrows */ nkeynes@1: #define DC_PERIPH_C_BUTTON 0x0002000 nkeynes@1: #define DC_PERIPH_D_BUTTON 0x0004000 nkeynes@1: #define DC_PERIPH_X_BUTTON 0x0008000 nkeynes@1: #define DC_PERIPH_Y_BUTTON 0x0010000 nkeynes@1: #define DC_PERIPH_Z_BUTTON 0x0020000 nkeynes@1: #define DC_PERIPH_EXP_DIR 0x0040000 /* Expanded direction buttons */ nkeynes@1: #define DC_PERIPH_ANALOG_R 0x0080000 /* Analog R trigger */ nkeynes@1: #define DC_PERIPH_ANALOG_L 0x0100000 /* Analog L trigger */ nkeynes@1: #define DC_PERIPH_ANALOG_H 0x0200000 /* Analog horizontal controller */ nkeynes@1: #define DC_PERIPH_ANALOG_V 0x0400000 /* Analog vertical controller */ nkeynes@1: #define DC_PERIPH_EXP_AH 0x0800000 /* Expanded analog horizontal (?) */ nkeynes@1: #define DC_PERIPH_EXP_AV 0x1000000 /* Expanded analog vertical (?) */ nkeynes@1: /* Optional peripherals */ nkeynes@1: #define DC_PERIPH_GUN 0x2000000 nkeynes@1: #define DC_PERIPH_KEYBOARD 0x4000000 nkeynes@1: #define DC_PERIPH_MOUSE 0x8000000 nkeynes@1: nkeynes@1: void parse_ipbin(char *data); nkeynes@1: nkeynes@1: #ifdef __cplusplus nkeynes@1: } nkeynes@1: #endif nkeynes@1: #endif