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

📄 earthjkr.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************//*                                                                            *//*               EARTH JOKER (C) 1993 TAITO VISCO CORPORATION                 *//*                                                                            *//*                 MAZE OF FLOTT (C) 1989 TAITO CORPORATION                   *//*                                                                            *//*                    GALMEDES (C) 1992 VISCO CORPORATION                     *//*                                                                            *//******************************************************************************/#include "gameinc.h"#include "earthjkr.h"#include "tc100scn.h"#include "tc110pcr.h"#include "tc002obj.h"#include "tc220ioc.h"#include "taitosnd.h"/******************************************************************************/static struct DIR_INFO earth_joker_dirs[] ={   { "earth_joker", },   { "earthjkr", },   { NULL, },};static struct ROM_INFO earth_joker_roms[] ={   {    "ej_3b.rom", 0x00020000, 0xbdd86fc2, REGION_ROM1, 0x000000, LOAD_8_16,   },   {    "ej_3a.rom", 0x00020000, 0x9c8050c6, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "ej_30e.rom", 0x00080000, 0x49d1f77f, REGION_ROM1, 0x080000, LOAD_NORMAL, },   {     "ej_1.rom", 0x00010000, 0xcb4891db, 0, 0, 0, },   {     "ej_2.rom", 0x00010000, 0x42ba2566, 0, 0, 0, },   {     "ej_0.rom", 0x00010000, 0xb612086f, 0, 0, 0, },   {   "ej_chr.rom", 0x00080000, 0xac675297, 0, 0, 0, },   {   "ej_obj.rom", 0x00080000, 0x5f21ac47, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct INPUT_INFO earth_joker_inputs[] ={   { KB_DEF_COIN1,        MSG_COIN1,               0x01A00E, 0x04, BIT_ACTIVE_0 },   { KB_DEF_COIN2,        MSG_COIN2,               0x01A00E, 0x08, BIT_ACTIVE_0 },   { KB_DEF_TILT,         MSG_TILT,                0x01A00E, 0x01, BIT_ACTIVE_0 },   { KB_DEF_SERVICE,      MSG_SERVICE,             0x01A00E, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P1_START,     MSG_P1_START,            0x01A00E, 0x40, BIT_ACTIVE_0 },   { KB_DEF_P1_UP,        MSG_P1_UP,               0x01A004, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P1_DOWN,      MSG_P1_DOWN,             0x01A004, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P1_LEFT,      MSG_P1_LEFT,             0x01A004, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P1_RIGHT,     MSG_P1_RIGHT,            0x01A004, 0x08, BIT_ACTIVE_0 },   { KB_DEF_P1_B1,        MSG_P1_B1,               0x01A004, 0x10, BIT_ACTIVE_0 },   { KB_DEF_P1_B2,        MSG_P1_B2,               0x01A004, 0x20, BIT_ACTIVE_0 },   { KB_DEF_P2_START,     MSG_P2_START,            0x01A00E, 0x80, BIT_ACTIVE_0 },   { KB_DEF_P2_UP,        MSG_P2_UP,               0x01A006, 0x01, BIT_ACTIVE_0 },   { KB_DEF_P2_DOWN,      MSG_P2_DOWN,             0x01A006, 0x02, BIT_ACTIVE_0 },   { KB_DEF_P2_LEFT,      MSG_P2_LEFT,             0x01A006, 0x04, BIT_ACTIVE_0 },   { KB_DEF_P2_RIGHT,     MSG_P2_RIGHT,            0x01A006, 0x08, BIT_ACTIVE_0 },   { KB_DEF_P2_B1,        MSG_P2_B1,               0x01A006, 0x10, BIT_ACTIVE_0 },   { KB_DEF_P2_B2,        MSG_P2_B2,               0x01A006, 0x20, BIT_ACTIVE_0 },   { 0,                   NULL,                    0,        0,    0            },};static struct DSW_DATA dsw_data_earth_joker_0[] ={   { MSG_DSWA_BIT1,           0x01, 0x02 },   { MSG_OFF,                 0x01, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWA_BIT2,           0x02, 0x02 },   { MSG_OFF,                 0x02, 0x00 },   { MSG_ON,                  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_DSWA_BIT5,           0x10, 0x02 },   { MSG_OFF,                 0x10, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWA_BIT6,           0x20, 0x02 },   { MSG_OFF,                 0x20, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWA_BIT7,           0x40, 0x02 },   { MSG_OFF,                 0x40, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWA_BIT8,           0x80, 0x02 },   { MSG_OFF,                 0x80, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_DATA dsw_data_earth_joker_1[] ={   { MSG_DSWB_BIT1,           0x01, 0x02 },   { MSG_OFF,                 0x01, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWB_BIT2,           0x02, 0x02 },   { MSG_OFF,                 0x02, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWB_BIT3,           0x04, 0x02 },   { MSG_OFF,                 0x04, 0x00 },   { MSG_ON,                  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 },   { MSG_DSWB_BIT6,           0x20, 0x02 },   { MSG_OFF,                 0x20, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { "Romstar License",       0x40, 0x02 },   { MSG_OFF,                 0x40, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWB_BIT8,           0x80, 0x02 },   { MSG_OFF,                 0x80, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_INFO earth_joker_dsw[] ={   { 0x01A000, 0xFF, dsw_data_earth_joker_0 },   { 0x01A002, 0xFF, dsw_data_earth_joker_1 },   { 0,        0,    NULL,      },};static struct VIDEO_INFO earth_joker_video ={   DrawEarthJoker,   240,   320,   32,   VIDEO_ROTATE_NORMAL,};struct GAME_MAIN game_earth_joker ={   earth_joker_dirs,   earth_joker_roms,   earth_joker_inputs,   earth_joker_dsw,   NULL,   LoadEarthJoker,   ClearEarthJoker,   &earth_joker_video,   ExecuteEarthJokerFrame,   "earthjkr",   "Earth Joker",   "傾乕僗僕儑乕僇乕",   COMPANY_ID_VISCO,   NULL,   1993,   taito_ym2151_sound,   GAME_SHOOT,};/******************************************************************************/static struct DIR_INFO maze_of_flott_dirs[] ={   { "maze_of_flott", },   { "mofflott", },   { NULL, },};static struct ROM_INFO maze_of_flott_roms[] ={   {   "c17-09.bin", 0x00020000, 0x05ee110f, REGION_ROM1, 0x000000, LOAD_8_16,   },   {   "c17-08.bin", 0x00020000, 0xd0aacffd, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "c17-03.bin", 0x00080000, 0x27047fc3, REGION_ROM1, 0x080000, LOAD_NORMAL, },   {   "c17-06.bin", 0x00010000, 0x5c332125, 0, 0, 0, },   {   "c17-07.bin", 0x00010000, 0xcdb7bc2c, 0, 0, 0, },   {   "c17-04.bin", 0x00010000, 0xf4250410, 0, 0, 0, },   {   "c17-05.bin", 0x00010000, 0x57ac4741, 0, 0, 0, },   {   "c17-01.bin", 0x00080000, 0xe9466d42, 0, 0, 0, },   {   "c17-02.bin", 0x00080000, 0x8860a8db, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct DSW_DATA dsw_data_maze_of_flott_0[] ={   { 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_maze_of_flott_1[] ={   { MSG_DIFFICULTY,          0x03, 0x04 },   { MSG_NORMAL,              0x03, 0x00 },   { MSG_EASY,                0x02, 0x00 },   { MSG_HARD,                0x01, 0x00 },   { MSG_HARDEST,             0x00, 0x00 },   { "Bonus at",              0x0C, 0x04 },   { "20k, 50k",              0x0C, 0x00 },   { "50k, 100k",             0x08, 0x00 },   { "100k",                  0x04, 0x00 },   { "never",                 0x00, 0x00 },   { "Lives",                 0x30, 0x04 },   { "3",                     0x30, 0x00 },   { "5",                     0x20, 0x00 },   { "4",                     0x10, 0x00 },   { "2",                     0x00, 0x00 },   { NULL,                    0,    0,   },};static struct DSW_INFO maze_of_flott_dsw[] ={   { 0x01A000, 0xFF, dsw_data_maze_of_flott_0 },   { 0x01A002, 0xFF, dsw_data_maze_of_flott_1 },   { 0,        0,    NULL,      },};static struct ROMSW_DATA romsw_data_maze_of_flott_0[] ={   { "Taito Japan",           0x01 },   { "Taito Corporation",     0x02 },   { NULL,                    0    },};static struct ROMSW_INFO maze_of_flott_romsw[] ={   { 0x03FFFF, 0x01, romsw_data_maze_of_flott_0 },   { 0,        0,    NULL },};struct GAME_MAIN game_maze_of_flott ={   maze_of_flott_dirs,   maze_of_flott_roms,   earth_joker_inputs,   maze_of_flott_dsw,   maze_of_flott_romsw,   LoadMazeOfFlott,   ClearMazeOfFlott,   &earth_joker_video,   ExecuteEarthJokerFrame,   "mofflott",   "Maze of Flott",   "儊僀僘僆僽僼儘僢僩",   COMPANY_ID_TAITO,   "C17",   1989,   taito_ym2151_sound,   GAME_RACE,};/******************************************************************************/static struct DIR_INFO galmedes_dirs[] ={   { "galmedes", },   { NULL, },};static struct ROM_INFO galmedes_roms[] ={   {  "gm-prg1.bin", 0x00020000, 0x32a70753, REGION_ROM1, 0x000000, LOAD_8_16,   },   {  "gm-prg0.bin", 0x00020000, 0xfae546a4, REGION_ROM1, 0x000001, LOAD_8_16,   },   {   "gm-m30.fix", 0x00080000, 0x4da2a407, REGION_ROM1, 0x080000, LOAD_NORMAL, },   {   "gm-obj.bin", 0x00080000, 0x7a4a1315, 0, 0, 0, },   {   "gm-scn.bin", 0x00080000, 0x3bab0581, 0, 0, 0, },   {   "gm-snd.bin", 0x00010000, 0xd6f56c21, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct DSW_DATA dsw_data_galmedes_0[] ={   { MSG_DSWA_BIT1,           0x01, 0x02 },   { MSG_OFF,                 0x01, 0x00 },   { MSG_ON,                  0x00, 0x00 },   { MSG_DSWA_BIT2,           0x02, 0x02 },   { MSG_OFF,                 0x02, 0x00 },   { MSG_ON,                  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_INFO galmedes_dsw[] ={   { 0x01A000, 0xFF, dsw_data_galmedes_0 },   { 0x01A002, 0xFF, dsw_data_default_1 },   { 0,        0,    NULL,      },};struct GAME_MAIN game_galmedes ={   galmedes_dirs,   galmedes_roms,   earth_joker_inputs,   galmedes_dsw,   NULL,   LoadGalmedes,   ClearGalmedes,   &earth_joker_video,   ExecuteEarthJokerFrame,   "galmedes",   "Galmedes",   "僈儖儊僨僗",   COMPANY_ID_VISCO,   NULL,   1992,   taito_ym2151_sound,   GAME_SHOOT,};/******************************************************************************/static UINT8 *RAM_VIDEO;static UINT8 *RAM_SCROLL;static UINT8 *RAM_OBJECT;static UINT8 *RAM_INPUT;static UINT8 *GFX_BG0;static UINT8 *GFX_BG0_SOLID;static UINT8 *GFX_SPR;static UINT8 *GFX_SPR_SOLID;static int romset;/*Supported romsets:0 - Earth Joker1 - Maze of Flott2 - GalmedesProblems:- Maze of Flott MSM5205 is missing- Some parts use background layer line-line scroll*/void AddEarthJoker68k(void){   // Init tc0220ioc emulation   // ------------------------   tc0220ioc.RAM  = RAM_INPUT;   tc0220ioc.ctrl = 0;		//TC0220_STOPCPU;   reset_tc0220ioc();   // Init tc0002obj emulation   // ------------------------   tc0002obj.RAM	= RAM_OBJECT;   tc0002obj.GFX	= GFX_SPR;   tc0002obj.MASK	= GFX_SPR_SOLID;   tc0002obj.bmp_x	= 32;   tc0002obj.bmp_y	= 32;   tc0002obj.bmp_w	= 240;   tc0002obj.bmp_h	= 320;   tc0002obj.mapper	= &Map_15bit_xBGR;   tc0002obj.tile_mask	= 0x1FFF;   tc0002obj.ofs_x	= -8;   tc0002obj.ofs_y	= 0;   // Init tc0100scn emulation   // ------------------------   tc0100scn[0].layer[0].RAM	=RAM_VIDEO+0x0000;   tc0100scn[0].layer[0].GFX	=GFX_BG0;   tc0100scn[0].layer[0].MASK	=GFX_BG0_SOLID;   tc0100scn[0].layer[0].SCR	=RAM_SCROLL+0;   tc0100scn[0].layer[0].type	=0;   tc0100scn[0].layer[0].bmp_x	=32;   tc0100scn[0].layer[0].bmp_y	=32;   tc0100scn[0].layer[0].bmp_w	=240;

⌨️ 快捷键说明

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