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

📄 snowbros.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************//*                                                                            *//*                  SNOW BROS/WINTER BOBBLE (C) 1990 TOAPLAN                  *//*                                                                            *//******************************************************************************/#include "gameinc.h"#include "snowbros.h"#include "3812intf.h"#include "sasound.h"		// sample support routines#ifdef RAINE_DEBUG#include "debug.h"#endifstatic struct DIR_INFO snow_bros_dirs[] ={   { "snow_bros", },   { "snowbros", },   { NULL, },};static struct ROM_INFO snow_bros_roms[] ={   {      "sn6.bin", 0x00020000, 0x4899ddcf, REGION_ROM1, 0x000000, LOAD_8_16,   },   {      "sn5.bin", 0x00020000, 0xad310d3f, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "snowbros.4", 0x00008000, 0xe6eab4e4, REGION_ROM2, 0x000000, LOAD_NORMAL, },   {          "ch0", 0x00020000, 0x36d84dfe, REGION_GFX1, 0x000000, LOAD_NORMAL, },   {          "ch1", 0x00020000, 0x76347256, REGION_GFX1, 0x020000, LOAD_NORMAL, },   {          "ch2", 0x00020000, 0xfdaa634c, REGION_GFX1, 0x040000, LOAD_NORMAL, },   {          "ch3", 0x00020000, 0x34024aef, REGION_GFX1, 0x060000, LOAD_NORMAL, },   {           NULL,          0,          0,           0,        0,           0, },};static struct INPUT_INFO snow_bros_inputs[] ={   { KB_DEF_COIN1,        MSG_COIN1,               0x006405, 0x04, BIT_ACTIVE_0 },   { KB_DEF_COIN2,        MSG_COIN2,               0x006405, 0x08, BIT_ACTIVE_0 },   { KB_DEF_TILT,         MSG_TILT,                0x006405, 0x20, BIT_ACTIVE_0 },   { KB_DEF_P1_START,     MSG_P1_START,            0x006405, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P1_UP,        MSG_P1_UP,               0x006401, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P1_DOWN,      MSG_P1_DOWN,             0x006401, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P1_LEFT,      MSG_P1_LEFT,             0x006401, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P1_RIGHT,     MSG_P1_RIGHT,            0x006401, 0x08, BIT_ACTIVE_0 },   { KB_DEF_P1_B1,        MSG_P1_B1,               0x006401, 0x10, BIT_ACTIVE_0 },   { KB_DEF_P1_B2,        MSG_P1_B2,               0x006401, 0x20, BIT_ACTIVE_0 },   { KB_DEF_P2_START,     MSG_P2_START,            0x006405, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P2_UP,        MSG_P2_UP,               0x006403, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P2_DOWN,      MSG_P2_DOWN,             0x006403, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P2_LEFT,      MSG_P2_LEFT,             0x006403, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P2_RIGHT,     MSG_P2_RIGHT,            0x006403, 0x08, BIT_ACTIVE_0 },   { KB_DEF_P2_B1,        MSG_P2_B1,               0x006403, 0x10, BIT_ACTIVE_0 },   { KB_DEF_P2_B2,        MSG_P2_B2,               0x006403, 0x20, BIT_ACTIVE_0 },   { 0,                   NULL,                    0,        0,    0            },};static struct DSW_DATA dsw_data_snow_bros_0[] ={   { "Country",               0x01, 0x02 },   { "America",               0x01, 0x00 },   { "Europe",                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 },   { "1/1",                   0x30, 0x00 },   { "1/2; 2/1",              0x20, 0x00 },   { "2/1; 3/1",              0x10, 0x00 },   { "2/3; 4/1",              0x00, 0x00 },   { MSG_COIN2,               0xC0, 0x04 },   { "1/1",                   0xC0, 0x00 },   { "1/2; 1/3",              0x80, 0x00 },   { "2/1; 1/4",              0x40, 0x00 },   { "2/3; 1/6",              0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_DATA dsw_data_snow_bros_1[] ={   { MSG_DIFFICULTY,          0x03, 0x04 },   { MSG_NORMAL,              0x03, 0x00 },   { MSG_EASY,                0x02, 0x00 },   { MSG_HARD,                0x01, 0x00 },   { MSG_HARDEST,             0x00, 0x00 },   { "Extra Life at",         0x0C, 0x04 },   { "100k",                  0x0C, 0x00 },   { "200k",                  0x08, 0x00 },   { "100k 200k",             0x04, 0x00 },   { "Nothing",               0x00, 0x00 },   { "Lives",                 0x30, 0x04 },   { "3",                     0x30, 0x00 },   { "1",                     0x20, 0x00 },   { "4",                     0x10, 0x00 },   { "2",                     0x00, 0x00 },   { "Cheat",                 0x40, 0x02 },   { MSG_OFF,                 0x40, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { "Continue",              0x80, 0x02 },   { MSG_ON,                  0x80, 0x00 },   { MSG_OFF,                 0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_INFO snow_bros_dsw[] ={   { 0x006400, 0xFF, dsw_data_snow_bros_0 },   { 0x006402, 0xFF, dsw_data_snow_bros_1 },   { 0,        0,    NULL,      },};static struct GFX_LAYOUT snow_bros_object ={   16, 16,   RGN_FRAC(1,1),   4,   { 0, 1, 2, 3 },   { STEP8(0, 4 ), STEP8(8*32,  4 ) },   { STEP8(0, 32), STEP8(16*32, 32) },   32*32,};static struct GFX_LIST snow_bros_gfx[] ={   { REGION_GFX1, &snow_bros_object, },   { 0,           NULL,              },};static struct VIDEO_INFO snow_bros_video ={   draw_snow_bros,   256,   224,   32,   VIDEO_ROTATE_NORMAL |   VIDEO_ROTATABLE,   snow_bros_gfx,};static struct YM3812interface ym3812_interface ={   1,              // 1 chip   3600000,        // 3.6 MHz   { 255 },        // Volume (emu only)   { NULL }};static struct SOUND_INFO snow_bros_sound[] ={   { SOUND_YM3812,  &ym3812_interface,    },   { 0,             NULL,                 },};struct GAME_MAIN game_snow_bros ={   snow_bros_dirs,   snow_bros_roms,   snow_bros_inputs,   snow_bros_dsw,   NULL,   load_snow_bros,   clear_snow_bros,   &snow_bros_video,   execute_snow_bros_frame,   "snowbros",   "Snow Bros",   "僗僲乕僽儔僓乕僘 American",   COMPANY_ID_TOAPLAN,   NULL,   1990,   snow_bros_sound,   GAME_PLATFORM,};static struct DIR_INFO snow_bros_alt_dirs[] ={   { "snow_bros_alt", },   { "snowbroa", },   { ROMOF("snowbros"), },   { CLONEOF("snowbros"), },   { NULL, },};static struct ROM_INFO snow_bros_alt_roms[] ={   {  "snowbros.3a", 0x00020000, 0x10cb37e1, REGION_ROM1, 0x000000, LOAD_8_16,   },   {  "snowbros.2a", 0x00020000, 0xab91cc1e, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "snowbros.4", 0x00008000, 0xe6eab4e4, REGION_ROM2, 0x000000, LOAD_NORMAL, },   {          "ch0", 0x00020000, 0x36d84dfe, REGION_GFX1, 0x000000, LOAD_NORMAL, },   {          "ch1", 0x00020000, 0x76347256, REGION_GFX1, 0x020000, LOAD_NORMAL, },   {          "ch2", 0x00020000, 0xfdaa634c, REGION_GFX1, 0x040000, LOAD_NORMAL, },   {          "ch3", 0x00020000, 0x34024aef, REGION_GFX1, 0x060000, LOAD_NORMAL, },   {           NULL,          0,          0,           0,        0,           0, },};struct GAME_MAIN game_snow_bros_alt ={   snow_bros_alt_dirs,   snow_bros_alt_roms,   snow_bros_inputs,   snow_bros_dsw,   NULL,   load_snow_bros,   clear_snow_bros,   &snow_bros_video,   execute_snow_bros_frame,   "snowbroa",   "Snow Bros (alternate)",   "僗僲乕僽儔僓乕僘 (alternate)",   COMPANY_ID_TOAPLAN,   NULL,   1990,   snow_bros_sound,   GAME_PLATFORM,};static struct DIR_INFO snow_bros_japanese_dirs[] ={   { "snow_bros_japanese", },   { "snowbroj", },   { ROMOF("snowbros"), },   { CLONEOF("snowbros"), },   { NULL, },};static struct ROM_INFO snow_bros_japanese_roms[] ={   {   "snowbros.3", 0x00020000, 0x3f504f9e, REGION_ROM1, 0x000000, LOAD_8_16,   },   {   "snowbros.2", 0x00020000, 0x854b02bc, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "snowbros.4", 0x00008000, 0xe6eab4e4, REGION_ROM2, 0x000000, LOAD_NORMAL, },   {          "ch0", 0x00020000, 0x36d84dfe, REGION_GFX1, 0x000000, LOAD_NORMAL, },   {          "ch1", 0x00020000, 0x76347256, REGION_GFX1, 0x020000, LOAD_NORMAL, },   {          "ch2", 0x00020000, 0xfdaa634c, REGION_GFX1, 0x040000, LOAD_NORMAL, },   {          "ch3", 0x00020000, 0x34024aef, REGION_GFX1, 0x060000, LOAD_NORMAL, },   {           NULL,          0,          0,           0,        0,           0, },};struct GAME_MAIN game_snow_bros_japanese ={   snow_bros_japanese_dirs,   snow_bros_japanese_roms,   snow_bros_inputs,   snow_bros_dsw,   NULL,   load_snow_bros,   clear_snow_bros,   &snow_bros_video,   execute_snow_bros_frame,   "snowbroj",   "Snow Bros (Japanese)",   "僗僲乕僽儔僓乕僘",   COMPANY_ID_TOAPLAN,   NULL,   1990,   snow_bros_sound,   GAME_PLATFORM,};static struct DIR_INFO snow_bros_alt_2_dirs[] ={   { "snow_bros_alt_2", },   { "snowbra2", },   { "snowbrob", },   { ROMOF("snowbros"), },   { CLONEOF("snowbros"), },   { NULL, },};static struct ROM_INFO snow_bros_alt_2_roms[] ={   {     "sbros3-a", 0x00020000, 0x301627d6, REGION_ROM1, 0x000000, LOAD_8_16,   },   {     "sbros2-a", 0x00020000, 0xf6689f41, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "snowbros.4", 0x00008000, 0xe6eab4e4, REGION_ROM2, 0x000000, LOAD_NORMAL, },   {          "ch0", 0x00020000, 0x36d84dfe, REGION_GFX1, 0x000000, LOAD_NORMAL, },   {          "ch1", 0x00020000, 0x76347256, REGION_GFX1, 0x020000, LOAD_NORMAL, },   {          "ch2", 0x00020000, 0xfdaa634c, REGION_GFX1, 0x040000, LOAD_NORMAL, },   {          "ch3", 0x00020000, 0x34024aef, REGION_GFX1, 0x060000, LOAD_NORMAL, },   {           NULL,          0,          0, 0, 0, 0, },};struct GAME_MAIN game_snow_bros_alt_2 ={   snow_bros_alt_2_dirs,   snow_bros_alt_2_roms,   snow_bros_inputs,   snow_bros_dsw,   NULL,   load_snow_bros,   clear_snow_bros,   &snow_bros_video,   execute_snow_bros_frame,   "snowbrob",   "Snow Bros (alternate 2)",   "僗僲乕僽儔僓乕僘 (alternate 2)",   COMPANY_ID_TOAPLAN,   "MIN16-02",   1990,   snow_bros_sound,   GAME_PLATFORM,};static struct DIR_INFO winter_bobble_dirs[] ={   { "winter_bobble", },   { "wintbob", },   { ROMOF("snowbros"), },   { CLONEOF("snowbros"), },   { NULL, },};static struct ROM_INFO winter_bobble_roms[] ={   {     "wb03.bin", 0x00010000, 0xdf56e168, REGION_ROM1, 0x000000, LOAD_8_16,   },   {     "wb01.bin", 0x00010000, 0x05722f17, REGION_ROM1, 0x000001, LOAD_8_16,   },   {     "wb04.bin", 0x00010000, 0x53be758d, REGION_ROM1, 0x020000, LOAD_8_16,   },   {     "wb02.bin", 0x00010000, 0xfc8e292e, REGION_ROM1, 0x020001, LOAD_8_16,   },   {     "wb05.bin", 0x00010000, 0x53fe59df, REGION_ROM2, 0x000000, LOAD_NORMAL, },   {     "wb06.bin", 0x00010000, 0x68204937, REGION_GFX1, 0x000001, LOAD_8_16,   },   {     "wb07.bin", 0x00010000, 0x53f40978, REGION_GFX1, 0x020001, LOAD_8_16,   },   {     "wb08.bin", 0x00010000, 0x9497b88c, REGION_GFX1, 0x040001, LOAD_8_16,   },   {     "wb09.bin", 0x00010000, 0x9be718ca, REGION_GFX1, 0x060001, LOAD_8_16,   },   {     "wb10.bin", 0x00010000, 0x5fa22b1e, REGION_GFX1, 0x060000, LOAD_8_16,   },   {     "wb11.bin", 0x00010000, 0x41cb4563, REGION_GFX1, 0x040000, LOAD_8_16,   },   {     "wb12.bin", 0x00010000, 0xef4e04c7, REGION_GFX1, 0x020000, LOAD_8_16,   },   {     "wb13.bin", 0x00010000, 0x426921de, REGION_GFX1, 0x000000, LOAD_8_16,   },   {           NULL,          0,          0,           0,        0,         0,   },};static struct GFX_LAYOUT winter_bobble_object ={   16,16,   RGN_FRAC(1,1),   4,   { 0, 1, 2, 3 },   { STEP4(3*4,-4), STEP4(7*4,-4), STEP4(11*4,-4), STEP4(15*4,-4) },   { STEP16(0,64) },   16*64};static struct GFX_LIST winter_bobble_gfx[] ={   { REGION_GFX1, &winter_bobble_object, },   { 0,           NULL,                  },};static struct VIDEO_INFO winter_bobble_video ={   draw_snow_bros,   256,

⌨️ 快捷键说明

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