⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsystem1.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************//*                                                                            *//*                   BALLOON BROS (C) 1992 EAST TECHNOLOGY                    *//*                                                                            *//*                     SUPERMAN (C) 1988 TAITO CORPORATION                    *//*                                                                            *//*                     DAISENPU (C) 1989 TAITO CORPORATION                    *//*                                                                            *//******************************************************************************/#include "gameinc.h"#include "xsystem1.h"#include "taitosnd.h"#include "setax1.h"#include "sasound.h"		// sample support routinesstatic struct DIR_INFO balloon_bros_dirs[] ={   { "balloon_brothers", },   { "balloon_bros", },   { "ballbros", },   { "balloonb", },   { NULL, },};static struct ROM_INFO balloon_bros_roms[] ={   {            "0", 0x00020000, 0x1cc584e5, 0, 0, 0, },   {            "1", 0x00020000, 0x8196d624, 0, 0, 0, },   {            "2", 0x00020000, 0xbb441717, 0, 0, 0, },   {            "3", 0x00020000, 0xec3e0537, 0, 0, 0, },   {          "10a", 0x00020000, 0x4af0e858, 0, 0, 0, },   {           "5a", 0x00020000, 0x0b983a69, 0, 0, 0, },   {           "8d", 0x00010000, 0xd1c515af, 0, 0, 0, },   {      "east-10", 0x00080000, 0xca0ac419, 0, 0, 0, },   {      "east-11", 0x00080000, 0x92111f96, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct INPUT_INFO x_system_inputs[] ={   { KB_DEF_COIN1,        MSG_COIN1,               0x020005, 0x01, BIT_ACTIVE_0 },   { KB_DEF_COIN2,        MSG_COIN2,               0x020005, 0x02, BIT_ACTIVE_0 },   { KB_DEF_TILT,         MSG_TILT,                0x020005, 0x08, BIT_ACTIVE_0 },   { KB_DEF_SERVICE,      MSG_SERVICE,             0x020005, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P1_START,     MSG_P1_START,            0x020001, 0x80, BIT_ACTIVE_0 },   { KB_DEF_P1_UP,        MSG_P1_UP,               0x020001, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P1_DOWN,      MSG_P1_DOWN,             0x020001, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P1_LEFT,      MSG_P1_LEFT,             0x020001, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P1_RIGHT,     MSG_P1_RIGHT,            0x020001, 0x08, BIT_ACTIVE_0 },   { KB_DEF_P1_B1,        MSG_P1_B1,               0x020001, 0x10, BIT_ACTIVE_0 },   { KB_DEF_P1_B2,        MSG_P1_B2,               0x020001, 0x20, BIT_ACTIVE_0 },   { KB_DEF_P1_B3,        MSG_P1_B3,               0x020001, 0x40, BIT_ACTIVE_0 },   { KB_DEF_P2_START,     MSG_P2_START,            0x020003, 0x80, BIT_ACTIVE_0 },   { KB_DEF_P2_UP,        MSG_P2_UP,               0x020003, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P2_DOWN,      MSG_P2_DOWN,             0x020003, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P2_LEFT,      MSG_P2_LEFT,             0x020003, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P2_RIGHT,     MSG_P2_RIGHT,            0x020003, 0x08, BIT_ACTIVE_0 },   { KB_DEF_P2_B1,        MSG_P2_B1,               0x020003, 0x10, BIT_ACTIVE_0 },   { KB_DEF_P2_B2,        MSG_P2_B2,               0x020003, 0x20, BIT_ACTIVE_0 },   { KB_DEF_P2_B3,        MSG_P2_B3,               0x020003, 0x40, BIT_ACTIVE_0 },   { 0,                   NULL,                    0,        0,    0            },};struct DSW_DATA dsw_data_balloon_bros_0[] ={   { MSG_COIN1,               0x03, 0x04 },   { MSG_1COIN_1PLAY,         0x03, 0x00 },   { MSG_1COIN_2PLAY,         0x02, 0x00 },   { MSG_2COIN_1PLAY,         0x01, 0x00 },   { MSG_2COIN_3PLAY,         0x00, 0x00 },   { MSG_COIN2,               0x04, 0x02 },   { MSG_1COIN_1PLAY,         0x04, 0x00 },   { MSG_1COIN_2PLAY,         0x00, 0x00 },   { MSG_DSWA_BIT4,           0x08, 0x02 },   { MSG_OFF,                 0x08, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWA_BIT5,           0x10, 0x02 },   { MSG_OFF,                 0x10, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DIFFICULTY,          0x60, 0x04 },   { MSG_EASY,                0x60, 0x00 },   { MSG_NORMAL,              0x40, 0x00 },   { MSG_HARD,                0x20, 0x00 },   { MSG_HARDEST,             0x00, 0x00 },   { MSG_DSWA_BIT8,           0x80, 0x02 },   { MSG_OFF,                 0x80, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { NULL,                    0,    0,   },};struct DSW_DATA dsw_data_balloon_bros_1[] ={   { MSG_DEMO_SOUND,          0x01, 0x02 },   { MSG_OFF,                 0x01, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_SCREEN,              0x02, 0x02 },   { MSG_INVERT,              0x02, 0x00 },   { MSG_NORMAL,              0x00, 0x00 },   { MSG_CONTINUE_PLAY,       0x04, 0x02 },   { MSG_ON,                  0x04, 0x00 },   { MSG_OFF,                 0x00, 0x00 },   { MSG_DSWB_BIT4,           0x08, 0x02 },   { MSG_OFF,                 0x08, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWB_BIT5,           0x10, 0x02 },   { MSG_OFF,                 0x10, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { "Language",              0x20, 0x02 },   { "Japanese",              0x20, 0x00 },   { "English",               0x00, 0x00 },   { MSG_DSWB_BIT7,           0x40, 0x02 },   { MSG_OFF,                 0x40, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_TEST_MODE,           0x80, 0x02 },   { MSG_OFF,                 0x80, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_INFO balloon_bros_dsw[] ={   { 0x020100, 0xDF, dsw_data_balloon_bros_0 },   { 0x020102, 0xDE, dsw_data_balloon_bros_1 },   { 0,        0,    NULL,      },};static struct VIDEO_INFO x_system_video ={   draw_x_system,   352,   240,   32,   VIDEO_ROTATE_NORMAL |   VIDEO_ROTATABLE,};static struct VIDEO_INFO x_system_video_r270 ={   draw_x_system,   384,   224,   32,   VIDEO_ROTATE_270 |   VIDEO_ROTATABLE,};struct GAME_MAIN game_balloon_bros ={   balloon_bros_dirs,   balloon_bros_roms,   x_system_inputs,   balloon_bros_dsw,   NULL,   load_balloon_bros,   clear_balloon_bros,   &x_system_video,   execute_x_system_frame,   "ballbros",   "Balloon Brothers",   "僶儖乕儞僽儔僓乕僘",   COMPANY_ID_EAST_TECHNOLOGY,   NULL,   1992,   taito_ym2610_sound,   GAME_PUZZLE,};static struct DIR_INFO superman_dirs[] ={   { "superman", },   { NULL, },};static struct ROM_INFO superman_roms[] ={   {   "a10_09.bin", 0x00020000, 0x640f1d58, 0, 0, 0, },   {   "a08_08.bin", 0x00020000, 0x79fc028e, 0, 0, 0, },   {   "a05_07.bin", 0x00020000, 0xfddb9953, 0, 0, 0, },   {   "a03_13.bin", 0x00020000, 0x9f446a44, 0, 0, 0, },   {   "d18_10.bin", 0x00010000, 0x6efe79e8, 0, 0, 0, },   {   "e18_01.bin", 0x00080000, 0x3cf99786, 0, 0, 0, },   {   "f01_14.bin", 0x00080000, 0x89368c3e, 0, 0, 0, },   {   "h01_15.bin", 0x00080000, 0x910cc4f9, 0, 0, 0, },   {   "j01_16.bin", 0x00080000, 0x3622ed2f, 0, 0, 0, },   {   "k01_17.bin", 0x00080000, 0xc34f27e0, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct DSW_DATA dsw_data_superman_0[] ={   { MSG_SCREEN,              0x02, 0x02 },   { MSG_NORMAL,              0x02, 0x00 },   { MSG_INVERT,              0x00, 0x00 },   { MSG_TEST_MODE,           0x04, 0x02 },   { MSG_OFF,                 0x04, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DEMO_SOUND,          0x08, 0x02 },   { MSG_ON,                  0x08, 0x00 },   { MSG_OFF,                 0x00, 0x00 },   { MSG_COIN1,               0x30, 0x04 },   { MSG_1COIN_1PLAY,         0x30, 0x00 },   { MSG_1COIN_2PLAY,         0x20, 0x00 },   { MSG_2COIN_1PLAY,         0x10, 0x00 },   { MSG_2COIN_3PLAY,         0x00, 0x00 },   { MSG_COIN2,               0xC0, 0x04 },   { MSG_1COIN_1PLAY,         0xC0, 0x00 },   { MSG_1COIN_2PLAY,         0x80, 0x00 },   { MSG_2COIN_1PLAY,         0x40, 0x00 },   { MSG_2COIN_3PLAY,         0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_DATA dsw_data_superman_1[] ={   { MSG_DIFFICULTY,          0x03, 0x04 },   { MSG_NORMAL,              0x03, 0x00 },   { MSG_EASY,                0x02, 0x00 },   { MSG_HARD,                0x01, 0x00 },   { MSG_HARDEST,             0x00, 0x00 },   { "Bonus",                 0x0C, 0x04 },   { "50k",                   0x0C, 0x00 },   { "Every 50k",             0x08, 0x00 },   { "150k",                  0x04, 0x00 },   { "None",                  0x00, 0x00 },   { "Lives",                 0x30, 0x04 },   { "3",                     0x30, 0x00 },   { "2",                     0x20, 0x00 },   { "4",                     0x10, 0x00 },   { "5",                     0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_INFO superman_dsw[] ={   { 0x040100, 0xFF, dsw_data_superman_0 },   { 0x040102, 0xFF, dsw_data_superman_1 },   { 0,        0,    NULL,      },};static struct ROMSW_DATA romsw_data_superman_0[] ={   { "Taito Worldwide",       0x02 },   { NULL,                    0    },};static struct ROMSW_INFO superman_romsw[] ={   { 0x07FFFF, 0x02, romsw_data_superman_0 },   { 0,        0,    NULL },};struct GAME_MAIN game_superman ={   superman_dirs,   superman_roms,   x_system_inputs,   superman_dsw,   superman_romsw,   load_superman,   clear_superman,   &x_system_video,   execute_x_system_frame,   "superman",   "Superman",   "僗乕僷乕儅儞",   COMPANY_ID_TAITO,   "B61",   1988,   taito_ym2610_sound,   GAME_BEAT | GAME_SHOOT,};static struct DIR_INFO daisenpu_dirs[] ={   { "daisenpu", },   { NULL, },};static struct ROM_INFO daisenpu_roms[] ={   {       "b87-01", 0x00080000, 0x81e82ae1, 0, 0, 0, },   {       "b87-02", 0x00080000, 0x89ad43a0, 0, 0, 0, },   {       "b87-03", 0x00080000, 0xce155ae0, 0, 0, 0, },   {       "b87-04", 0x00080000, 0x958434b6, 0, 0, 0, },   {       "b87-05", 0x00020000, 0x7f15edc7, 0, 0, 0, },   {       "b87-06", 0x00020000, 0xcf236100, 0, 0, 0, },   {       "b87-07", 0x00008000, 0xe2e0efa0, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct DSW_DATA dsw_data_daisenpu_0[] ={   { "Cabinet",               0x01, 0x02 },   { "Table",                 0x01, 0x00 },   { "Upright",               0x00, 0x00 },   { MSG_SCREEN,              0x02, 0x02 },   { MSG_NORMAL,              0x02, 0x00 },   { MSG_INVERT,              0x00, 0x00 },   { MSG_TEST_MODE,           0x04, 0x02 },   { MSG_OFF,                 0x04, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DEMO_SOUND,          0x08, 0x02 },   { MSG_ON,                  0x08, 0x00 },   { MSG_OFF,                 0x00, 0x00 },   { MSG_COIN1,               0x30, 0x04 },   { MSG_1COIN_1PLAY,         0x30, 0x00 },   { MSG_1COIN_2PLAY,         0x20, 0x00 },   { MSG_2COIN_1PLAY,         0x10, 0x00 },   { MSG_2COIN_3PLAY,         0x00, 0x00 },   { MSG_COIN2,               0xC0, 0x04 },   { MSG_1COIN_1PLAY,         0xC0, 0x00 },   { MSG_1COIN_2PLAY,         0x80, 0x00 },   { MSG_2COIN_1PLAY,         0x40, 0x00 },   { MSG_2COIN_3PLAY,         0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_DATA dsw_data_daisenpu_1[] ={   { MSG_DIFFICULTY,          0x03, 0x04 },   { MSG_NORMAL,              0x03, 0x00 },   { MSG_EASY,                0x02, 0x00 },   { MSG_HARD,                0x01, 0x00 },   { MSG_HARDEST,             0x00, 0x00 },   { "Bonus",                 0x0C, 0x04 },   { "70k 270k 470k",         0x0C, 0x00 },   { "50k 200k 350k",         0x08, 0x00 },   { "100k",                  0x04, 0x00 },   { "None",                  0x00, 0x00 },   { "Lives",                 0x30, 0x04 },   { "3",                     0x30, 0x00 },   { "5",                     0x20, 0x00 },   { "4",                     0x10, 0x00 },   { "2",                     0x00, 0x00 },   { "Continue Play",         0x80, 0x02 },   { MSG_OFF,                 0x80, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_INFO daisenpu_dsw[] ={   { 0x040100, 0xFF, dsw_data_daisenpu_0 },   { 0x040102, 0x7F, dsw_data_daisenpu_1 },   { 0,        0,    NULL,      },};struct GAME_MAIN game_daisenpu ={   daisenpu_dirs,   daisenpu_roms,   x_system_inputs,   daisenpu_dsw,   NULL,   load_daisenpu,   clear_daisenpu,   &x_system_video_r270,   execute_x_system_frame,   "daisenpu",   "Daisenpu",   "靛慁晽",   COMPANY_ID_TAITO,   "B87",   1989,   taito_ym2151_sound,   GAME_SHOOT,};static UINT32 romset;static UINT32 tile_mask;static UINT8 cchip_bank;static UINT8 balloonb_cchip_rb(UINT32 address){   switch(address & 0xFFF){      case 0x803:         return 0x01;      break;      case 0xC01:         return cchip_bank;      break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -