📄 earthjkr.c
字号:
/******************************************************************************//* *//* 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 + -