?? nmk.c
字號:
/******************************************************************************//* *//* NMK - NIHON MAICON KAIHATSU UPL - ??? *//* CPU: M68000 *//* SOUND: M6295x2 *//* VIDEO: VARIES [1/2 BG0; 1 OBJECT; 1 FG0] *//* *//******************************************************************************/#include "gameinc.h"#include "nmk.h"#include "taitosnd.h"#include "decode.h"#include "3812intf.h"#include "debug.h"#include "sasound.h" // sample support routines#include "mame/handlers.h"/*About: NMK is an abbreviation of "Nihon Maicon Kaihatsu". "Nihon" means "Japan", "Maicon" is an abbrev. of "Micro Computer", with a Japanese accent, "Kaihatsu" means "Development". However, NMK no longer develop videogames.Supported romsets:0 - Bomb Jack Twin - NMK [NMK] 9th Mar 1992 / Youichi Koyama1 - Hacha Mecha Fighter - NMK [NMK] 19th Sep 1991 / Youichi Koyama2 - Bio Ship Paladin - NMK [UPL] 1990 / Itsam Matarca3 - Mustang - NMK [UPL] 25th May 1990 / Youichi Koyama4 - Task Force Harrier - NMK [SAM] 1989 / ?5 - Thunder Dragon - NMK [TCM] 4th Jun 1991 / Youichi Koyama6 - Thunder Dragon Bootleg - NMK [TCM] 4th Jun 1991 / Youichi Koyama7 - Strahl - NMK [UPL] 1992 / ?8 - Macross 2 - NMK [BAN] 11th Jun 1992 / Youichi KoyamaSaboten Bombers - NMK - (c) 1992 <-- Undumped?? Saboten Bombers, Hacha Meche Fighter and Thunder Dragon all use the same Dipswitch settings. Raine reads and uses these in reverse order. Bit1 of DSW1 (bit8 in the manual) is unused _most_ of the time. - BaTTodo:Hacha Mecha Fighter is protected, has no soundBio Ship Paladin is protected, has no soundMustang is protected/broken ingame, has no soundTask Force Harrier is protected, has no soundThunder Dragon and bootleg have no soundStrahl has no sound, possible eeprom in test modeAtomic Robo Kid UPL-88013Omega Fighter UPL-89016Task Force Harrier UPL-89050USAAF Mustang UPL-90058Bio Ship Paladin UPL-90062*/#define ROM_COUNT 9static int romset;static struct DIR_INFO bio_ship_paladin_dirs[] ={ { "bio_ship_paladin", }, { "bioship", }, { "bshippal", }, { NULL, },};static struct ROM_INFO bio_ship_paladin_roms[] ={ { "1", 0x00020000, 0x820ef303, 0, 0, 0, }, { "2", 0x00020000, 0xacf56afb, 0, 0, 0, }, { "6", 0x00010000, 0x5f39a980, 0, 0, 0, }, { "7", 0x00010000, 0x2f3f5a10, 0, 0, 0, }, { "8", 0x00010000, 0x75a46fea, 0, 0, 0, }, { "9", 0x00010000, 0xd91448ee, 0, 0, 0, }, { "sbs-g.01", 0x00080000, 0x21302e78, 0, 0, 0, }, { "sbs-g.02", 0x00080000, 0xf31eb668, 0, 0, 0, }, { "sbs-g.03", 0x00080000, 0x60e00d7b, 0, 0, 0, }, { "sbs-g.04", 0x00080000, 0x7c74cc4e, 0, 0, 0, }, { "sbs-g.05", 0x00080000, 0xf0a782e3, 0, 0, 0, }, { NULL, 0, 0, 0, 0, 0, },};static struct INPUT_INFO nmk_inputs[] ={ { KB_DEF_COIN1, MSG_COIN1, 0x010000, 0x01, BIT_ACTIVE_0 }, { KB_DEF_COIN2, MSG_COIN2, 0x010000, 0x02, BIT_ACTIVE_0 }, { KB_DEF_TILT, MSG_TILT, 0x010000, 0x20, BIT_ACTIVE_0 }, { KB_DEF_SERVICE, MSG_SERVICE, 0x010000, 0x04, BIT_ACTIVE_0 }, { KB_DEF_P1_START, MSG_P1_START, 0x010000, 0x08, BIT_ACTIVE_0 }, { KB_DEF_P1_UP, MSG_P1_UP, 0x010002, 0x08, BIT_ACTIVE_0 }, { KB_DEF_P1_DOWN, MSG_P1_DOWN, 0x010002, 0x04, BIT_ACTIVE_0 }, { KB_DEF_P1_LEFT, MSG_P1_LEFT, 0x010002, 0x02, BIT_ACTIVE_0 }, { KB_DEF_P1_RIGHT, MSG_P1_RIGHT, 0x010002, 0x01, BIT_ACTIVE_0 }, { KB_DEF_P1_B1, MSG_P1_B1, 0x010002, 0x10, BIT_ACTIVE_0 }, { KB_DEF_P1_B2, MSG_P1_B2, 0x010002, 0x20, BIT_ACTIVE_0 }, { KB_DEF_P1_B3, MSG_P1_B3, 0x010002, 0x40, BIT_ACTIVE_1 }, { KB_DEF_P1_B4, MSG_P1_B4, 0x010002, 0x80, BIT_ACTIVE_1 }, { KB_DEF_P2_START, MSG_P2_START, 0x010000, 0x10, BIT_ACTIVE_0 }, { KB_DEF_P2_UP, MSG_P2_UP, 0x010003, 0x08, BIT_ACTIVE_0 }, { KB_DEF_P2_DOWN, MSG_P2_DOWN, 0x010003, 0x04, BIT_ACTIVE_0 }, { KB_DEF_P2_LEFT, MSG_P2_LEFT, 0x010003, 0x02, BIT_ACTIVE_0 }, { KB_DEF_P2_RIGHT, MSG_P2_RIGHT, 0x010003, 0x01, BIT_ACTIVE_0 }, { KB_DEF_P2_B1, MSG_P2_B1, 0x010003, 0x10, BIT_ACTIVE_0 }, { KB_DEF_P2_B2, MSG_P2_B2, 0x010003, 0x20, BIT_ACTIVE_0 }, { KB_DEF_P2_B3, MSG_P2_B3, 0x010003, 0x40, BIT_ACTIVE_1 }, { KB_DEF_P2_B4, MSG_P2_B4, 0x010003, 0x80, BIT_ACTIVE_1 }, { 0, NULL, 0, 0, 0 },};static struct DSW_DATA dsw_data_bio_ship_paladin_0[] ={ { MSG_SCREEN, 0x01, 0x02 }, { MSG_NORMAL, 0x01, 0x00 }, { MSG_INVERT, 0x00, 0x00 }, { MSG_DIFFICULTY, 0x06, 0x04 }, { MSG_NORMAL, 0x06, 0x00 }, { MSG_HARD, 0x02, 0x00 }, { MSG_HARDEST, 0x04, 0x00 }, { MSG_EASY, 0x00, 0x00 }, { MSG_TEST_MODE, 0x08, 0x02 }, { MSG_OFF, 0x08, 0x00 }, { MSG_ON, 0x00, 0x00 }, { MSG_DEMO_SOUND, 0x20, 0x02 }, { MSG_ON, 0x20, 0x00 }, { MSG_OFF, 0x00, 0x00 }, { "Lives", 0xC0, 0x04 }, { "3", 0xC0, 0x00 }, { "5", 0x40, 0x00 }, { "4", 0x80, 0x00 }, { "2", 0x00, 0x00 }, { NULL, 0, 0, },};static struct DSW_DATA dsw_data_bio_ship_paladin_1[] ={ { MSG_COIN2, 0x1C, 0x08 }, { MSG_1COIN_1PLAY, 0x1C, 0x00 }, { MSG_1COIN_2PLAY, 0x0C, 0x00 }, { MSG_1COIN_3PLAY, 0x14, 0x00 }, { MSG_1COIN_4PLAY, 0x04, 0x00 }, { MSG_2COIN_1PLAY, 0x18, 0x00 }, { MSG_3COIN_1PLAY, 0x08, 0x00 }, { MSG_4COIN_1PLAY, 0x10, 0x00 }, { MSG_5COIN_1PLAY, 0x00, 0x00 }, { MSG_COIN1, 0xE0, 0x08 }, { MSG_1COIN_1PLAY, 0xE0, 0x00 }, { MSG_1COIN_2PLAY, 0x60, 0x00 }, { MSG_1COIN_3PLAY, 0xA0, 0x00 }, { MSG_1COIN_4PLAY, 0x20, 0x00 }, { MSG_2COIN_1PLAY, 0xC0, 0x00 }, { MSG_3COIN_1PLAY, 0x40, 0x00 }, { MSG_4COIN_1PLAY, 0x80, 0x00 }, { MSG_5COIN_1PLAY, 0x00, 0x00 }, { NULL, 0, 0, },};static struct DSW_INFO bio_ship_paladin_dsw[] ={ { 0x010008, 0xFF, dsw_data_bio_ship_paladin_0 }, { 0x01000A, 0xFF, dsw_data_bio_ship_paladin_1 }, { 0, 0, NULL, },};static struct VIDEO_INFO nmk_video ={ DrawNMK, 256, 224, 32, VIDEO_ROTATE_NORMAL | VIDEO_ROTATABLE,};static struct OKIM6295interface m6295_interface ={ 2, // 2 chips { 22050, 22050 }, // rate { 0, 0 }, // rom list { 100,100 }, // unused volumes};static struct SOUND_INFO bomb_jack_twin_sound[] ={ { SOUND_M6295, &m6295_interface, }, { 0, NULL, },};struct GAME_MAIN game_bio_ship_paladin ={ bio_ship_paladin_dirs, bio_ship_paladin_roms, nmk_inputs, bio_ship_paladin_dsw, NULL, LoadBattleShipP, ClearBattleShipP, &nmk_video, ExecuteNMKFrame, "bioship", "Bio Ship Paladin", "塅拡悺娡僑儌儔", COMPANY_ID_UPL, "UPL-90062", 1990, NULL, //bomb_jack_twin_sound, GAME_SHOOT,};static struct DIR_INFO bomb_jack_twin_dirs[] ={ { "bomb_jack_twin", }, { "bjtwin", }, { "bjt", }, { NULL, },};static struct ROM_INFO bomb_jack_twin_roms[] ={ { "bjt.100", 0x00100000, 0xbb06245d, 0, 0, 0, }, { "bjt.127", 0x00100000, 0x8da67808, 0, 0, 0, }, { "bjt.130", 0x00100000, 0x372d46dd, 0, 0, 0, }, { "bjt.32", 0x00100000, 0x8a4f26d0, 0, 0, 0, }, { "bjt.35", 0x00010000, 0xaa13df7c, 0, 0, 0, }, { "bjt.76", 0x00040000, 0x7cd4e72a, 0, 0, 0, }, { "bjt.77", 0x00040000, 0x7830a465, 0, 0, 0, }, { NULL, 0, 0, 0, 0, 0, },};struct DSW_DATA dsw_data_bomb_jack_twin_0[] ={ { MSG_SCREEN, 0x01, 0x02 }, { MSG_NORMAL, 0x01, 0x00 }, { MSG_INVERT, 0x00, 0x00 }, { "Start Level", 0x0E, 0x08 }, { "Japan", 0x0E, 0x00 }, { "Nevada", 0x0C, 0x00 }, { "England", 0x0A, 0x00 }, { "Germany", 0x08, 0x00 }, { "Korea", 0x06, 0x00 }, { "Thailand", 0x04, 0x00 }, { "Hong Kong", 0x02, 0x00 }, { "China", 0x00, 0x00 }, { MSG_DIFFICULTY, 0x30, 0x04 }, { MSG_NORMAL, 0x30, 0x00 }, { MSG_EASY, 0x20, 0x00 }, { MSG_HARD, 0x10, 0x00 }, { MSG_HARDEST, 0x00, 0x00 }, { "Lives", 0xC0, 0x04 }, { "3", 0xC0, 0x00 }, { "4", 0x80, 0x00 }, { "2", 0x40, 0x00 }, { "1", 0x00, 0x00 }, { NULL, 0, 0, },};struct DSW_DATA dsw_data_bomb_jack_twin_1[] ={ { MSG_DEMO_SOUND, 0x02, 0x02 }, { MSG_OFF, 0x02, 0x00 }, { MSG_ON, 0x00, 0x00 }, { MSG_COIN2, 0x1C, 0x08 }, { MSG_1COIN_1PLAY, 0x1C, 0x00 }, { MSG_1COIN_2PLAY, 0x0C, 0x00 }, { MSG_1COIN_3PLAY, 0x14, 0x00 }, { MSG_1COIN_4PLAY, 0x04, 0x00 }, { MSG_2COIN_1PLAY, 0x18, 0x00 }, { MSG_3COIN_1PLAY, 0x08, 0x00 }, { MSG_4COIN_1PLAY, 0x10, 0x00 }, { MSG_FREE_PLAY, 0x00, 0x00 }, { MSG_COIN1, 0xE0, 0x08 }, { MSG_1COIN_1PLAY, 0xE0, 0x00 }, { MSG_1COIN_2PLAY, 0x60, 0x00 }, { MSG_1COIN_3PLAY, 0xA0, 0x00 }, { MSG_1COIN_4PLAY, 0x20, 0x00 }, { MSG_2COIN_1PLAY, 0xC0, 0x00 }, { MSG_3COIN_1PLAY, 0x40, 0x00 }, { MSG_4COIN_1PLAY, 0x80, 0x00 }, { MSG_FREE_PLAY, 0x00, 0x00 }, { NULL, 0, 0, },};static struct DSW_INFO bomb_jack_twin_dsw[] ={ { 0x010008, 0xFF, dsw_data_bomb_jack_twin_0 }, { 0x01000A, 0xFF, dsw_data_bomb_jack_twin_1 }, { 0, 0, NULL, },};static struct VIDEO_INFO bomb_jack_twin_video ={ DrawBombJackTwin, 384, 224, 32, VIDEO_ROTATE_270 | VIDEO_ROTATABLE,};struct GAME_MAIN game_bomb_jack_twin ={ bomb_jack_twin_dirs, bomb_jack_twin_roms, nmk_inputs, bomb_jack_twin_dsw, NULL, LoadBombJackTwin, ClearBombJackTwin, &bomb_jack_twin_video, ExecuteNMKFrame, "bjtwin", "Bomb Jack Twin", "儃儞僕儍僢僋僣僀儞", COMPANY_ID_NMK, NULL, 1993, bomb_jack_twin_sound, GAME_PLATFORM,};static struct DIR_INFO saboten_bombers_dirs[] ={ { "saboten_bombers", }, { "sabotenb", }, { NULL, },};static struct ROM_INFO saboten_bombers_roms[] ={ { "ic100.sb5", 0x00200000, 0xb20f166e, 0, 0, 0, }, { "ic27.sb7", 0x00100000, 0x43e33a7e, 0, 0, 0, }, { "ic30.sb6", 0x00100000, 0x288407af, 0, 0, 0, }, { "ic32.sb4", 0x00200000, 0x24c62205, 0, 0, 0, }, { "ic35.sb3", 0x00010000, 0xeb7bc99d, 0, 0, 0, }, { "ic75.sb2", 0x00040000, 0x367e87b7, 0, 0, 0, }, { "ic76.sb1", 0x00040000, 0xb2b0b2cf, 0, 0, 0, }, { NULL, 0, 0, 0, 0, 0, },};struct DSW_DATA dsw_data_saboten_bombers_0[] ={ { MSG_SCREEN, 0x01, 0x02 }, { MSG_NORMAL, 0x01, 0x00 }, { MSG_INVERT, 0x00, 0x00 }, { "Language", 0x02, 0x02 }, { "Japanese", 0x02, 0x00 }, { "English", 0x00, 0x00 }, { MSG_DIFFICULTY, 0x0c, 0x04 }, { MSG_NORMAL, 0x0c, 0x00 }, { MSG_EASY, 0x08, 0x00 }, { MSG_HARD, 0x04, 0x00 }, { MSG_HARDEST, 0x00, 0x00 }, { "Lives", 0xC0, 0x04 }, { "3", 0xC0, 0x00 }, { "2", 0x80, 0x00 }, { "4", 0x40, 0x00 }, { "1", 0x00, 0x00 }, { NULL, 0, 0, },};struct DSW_DATA dsw_data_saboten_bombers_1[] ={ { MSG_DEMO_SOUND, 0x02, 0x02 }, { MSG_OFF, 0x02, 0x00 }, { MSG_ON, 0x00, 0x00 }, { MSG_COIN1, 0xE0, 0x08 }, // Looks ugly and out of order, but it's correct! { MSG_1COIN_1PLAY, 0xE0, 0x00 }, { MSG_1COIN_2PLAY, 0xC0, 0x00 }, { MSG_1COIN_3PLAY, 0x40, 0x00 }, { MSG_1COIN_4PLAY, 0x80, 0x00 }, { MSG_2COIN_1PLAY, 0x60, 0x00 }, { MSG_3COIN_1PLAY, 0xA0, 0x00 }, { MSG_4COIN_1PLAY, 0x20, 0x00 }, { MSG_FREE_PLAY, 0x00, 0x00 }, { MSG_COIN2, 0x1C, 0x08 }, { MSG_1COIN_1PLAY, 0x1C, 0x00 }, { MSG_1COIN_2PLAY, 0x18, 0x00 }, { MSG_1COIN_3PLAY, 0x08, 0x00 }, { MSG_1COIN_4PLAY, 0x10, 0x00 }, { MSG_2COIN_1PLAY, 0x0c, 0x00 }, { MSG_3COIN_1PLAY, 0x14, 0x00 }, { MSG_4COIN_1PLAY, 0x04, 0x00 }, { MSG_FREE_PLAY, 0x00, 0x00 }, { NULL, 0, 0, },};static struct DSW_INFO saboten_bombers_dsw[] ={ { 0x010008, 0xFF, dsw_data_saboten_bombers_0 }, { 0x01000A, 0xFF, dsw_data_saboten_bombers_1 }, { 0, 0, NULL, },};static struct VIDEO_INFO saboten_bombers_video ={ DrawBombJackTwin, 384, 224, 32, VIDEO_ROTATE_NORMAL | VIDEO_ROTATABLE,};struct GAME_MAIN game_saboten_bombers ={ saboten_bombers_dirs, saboten_bombers_roms, nmk_inputs, saboten_bombers_dsw, NULL, LoadSabotenBombers, ClearBombJackTwin, &saboten_bombers_video, ExecuteNMKFrame, "sabotenb", "Saboten Bombers", "",
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -