summaryrefslogtreecommitdiffstatshomepage
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/autofire/autofire_menu.lua299
-rw-r--r--plugins/autofire/autofire_save.lua55
-rw-r--r--plugins/autofire/init.lua116
-rw-r--r--plugins/autofire/plugin.json16
-rw-r--r--plugins/boot.lua28
-rw-r--r--plugins/cheat/cheat_simple.lua17
-rw-r--r--plugins/cheat/cheat_xml.lua33
-rw-r--r--plugins/cheat/init.lua456
-rw-r--r--plugins/cheatfind/init.lua383
-rw-r--r--plugins/commonui/init.lua216
-rw-r--r--plugins/commonui/plugin.json9
-rw-r--r--plugins/console/init.lua145
-rw-r--r--plugins/data/button_char.lua6
-rw-r--r--plugins/data/data_command.lua18
-rw-r--r--plugins/data/data_gameinit.lua10
-rw-r--r--plugins/data/data_hiscore.lua674
-rw-r--r--plugins/data/data_history.lua208
-rw-r--r--plugins/data/data_mameinfo.lua20
-rw-r--r--plugins/data/data_marp.lua186
-rw-r--r--plugins/data/data_messinfo.lua19
-rw-r--r--plugins/data/data_story.lua20
-rw-r--r--plugins/data/data_sysinfo.lua9
-rw-r--r--plugins/data/database.lua170
-rw-r--r--plugins/data/init.lua126
-rw-r--r--plugins/data/load_dat.lua339
-rw-r--r--plugins/discord/init.lua39
-rw-r--r--plugins/dummy/init.lua32
-rw-r--r--plugins/gdbstub/init.lua50
-rw-r--r--plugins/hiscore/hiscore.dat20923
-rw-r--r--plugins/hiscore/init.lua177
-rw-r--r--plugins/hiscore/plugin.json2
-rw-r--r--plugins/inputmacro/init.lua140
-rw-r--r--plugins/inputmacro/inputmacro_menu.lua624
-rw-r--r--plugins/inputmacro/inputmacro_persist.lua155
-rw-r--r--plugins/inputmacro/plugin.json10
-rw-r--r--plugins/layout/init.lua70
-rw-r--r--plugins/layout/plugin.json2
-rw-r--r--plugins/plugin.schema35
-rw-r--r--plugins/portname/init.lua32
-rw-r--r--plugins/timecode/init.lua350
-rw-r--r--plugins/timecode/plugin.json10
-rw-r--r--plugins/timer/init.lua140
-rw-r--r--plugins/timer/plugin.json16
-rw-r--r--plugins/timer/timer_persist.lua249
-rw-r--r--plugins/xml/LICENSE.txt7
-rw-r--r--plugins/xml/init.lua401
-rw-r--r--plugins/xml/plugin.json9
47 files changed, 15596 insertions, 11455 deletions
diff --git a/plugins/autofire/autofire_menu.lua b/plugins/autofire/autofire_menu.lua
index 1533465105f..c53dd711f53 100644
--- a/plugins/autofire/autofire_menu.lua
+++ b/plugins/autofire/autofire_menu.lua
@@ -1,5 +1,8 @@
local lib = {}
+-- Common UI helper library
+local commonui
+
-- Set of all menus
local MENU_TYPES = { MAIN = 0, EDIT = 1, ADD = 2, BUTTON = 3 }
@@ -15,11 +18,29 @@ local content_height = 0
-- Stack of menus (see MENU_TYPES)
local menu_stack = { MENU_TYPES.MAIN }
+-- Button to select when showing the main menu (so newly added button can be selected)
+local initial_button
+
+-- Saved selection on main menu (to restore after configure menu is dismissed)
+local main_selection_save
+
+-- Whether configure menu is active (so first item can be selected initially)
+local configure_menu_active = false
+
+-- Saved selection on configure menu (to restore after button menu is dismissed)
+local configure_selection_save
+
+-- Helper for polling for hotkeys
+local hotkey_poller
+
-- Button being created/edited
local current_button = {}
--- Inputs that can be autofired (to list in BUTTON menu)
-local inputs = {}
+-- Initial button to select when opening buttons menu
+local initial_input
+
+-- Handler for BUTTON menu
+local input_menu
-- Returns the section (from MENU_SECTIONS) and the index within that section
local function menu_section(index)
@@ -41,51 +62,76 @@ local function create_new_button()
end
local function is_button_complete(button)
- return button.port and button.field and button.key and button.on_frames and button.off_frames and button.button and button.counter
-end
-
-local function is_supported_input(ioport_field)
- -- IPT_BUTTON1 through IPT_BUTTON16 in ioport_type enum (ioport.h)
- return ioport_field.type >= 64 and ioport_field.type <= 79
+ return button.port and button.mask and button.type and button.key and button.on_frames and button.off_frames and button.button and button.counter
end
-- Main menu
local function populate_main_menu(buttons)
+ local ioport = manager.machine.ioport
+ local input = manager.machine.input
local menu = {}
- menu[#menu + 1] = {_('Autofire buttons'), '', 'off'}
- menu[#menu + 1] = {'---', '', ''}
+ table.insert(menu, {_p('plugin-autofire', 'Autofire buttons'), '', 'off'})
+ table.insert(menu, {string.format(_p('plugin-autofire', 'Press %s to delete'), manager.ui:get_general_input_setting(ioport:token_to_input_type('UI_CLEAR'))), '', 'off'})
+ table.insert(menu, {'---', '', ''})
header_height = #menu
- for index, button in ipairs(buttons) do
- -- Assume refresh rate of 60 Hz; maybe better to use screen_device refresh()?
- local rate = 60 / (button.on_frames + button.off_frames)
- -- Round to two decimal places
- rate = math.floor(rate * 100) / 100
- local text = button.button.name .. ' [' .. rate .. ' Hz]'
- local subtext = manager:machine():input():code_name(button.key)
- menu[#menu + 1] = {text, subtext, ''}
+ -- Use frame rate of first screen or 60Hz if no screens
+ local freq = 60
+ local screen = manager.machine.screens:at(1)
+ if screen then
+ freq = 1 / screen.frame_period
end
+
+ if #buttons > 0 then
+ for index, button in ipairs(buttons) do
+ -- Round rate to two decimal places
+ local rate = freq / (button.on_frames + button.off_frames)
+ rate = math.floor(rate * 100) / 100
+ local text
+ if button.button then
+ text = string.format(_p('plugin-autofire', '%s [%g Hz]'), button.button.name, rate)
+ else
+ text = string.format(_p('plugin-autofire', 'n/a [%g Hz]'), rate)
+ end
+ table.insert(menu, {text, input:seq_name(button.key), ''})
+ if index == initial_button then
+ main_selection_save = #menu
+ end
+ end
+ else
+ table.insert(menu, {_p('plugin-autofire', '[no autofire buttons]'), '', 'off'})
+ end
+ initial_button = nil
content_height = #menu
- menu[#menu + 1] = {'---', '', ''}
- menu[#menu + 1] = {_('Add autofire button'), '', ''}
- return menu
+ table.insert(menu, {'---', '', ''})
+ table.insert(menu, {_p('plugin-autofire', 'Add autofire button'), '', ''})
+
+ local selection = main_selection_save
+ main_selection_save = nil
+ return menu, selection
end
local function handle_main_menu(index, event, buttons)
local section, adjusted_index = menu_section(index)
if section == MENU_SECTIONS.CONTENT then
if event == 'select' then
+ main_selection_save = index
current_button = buttons[adjusted_index]
table.insert(menu_stack, MENU_TYPES.EDIT)
return true
elseif event == 'clear' then
table.remove(buttons, adjusted_index)
+ main_selection_save = index
+ if adjusted_index > #buttons then
+ main_selection_save = main_selection_save - 1
+ end
return true
end
elseif section == MENU_SECTIONS.FOOTER then
if event == 'select' then
+ main_selection_save = index
current_button = create_new_button()
table.insert(menu_stack, MENU_TYPES.ADD)
return true
@@ -97,132 +143,158 @@ end
-- Add/edit menus (mostly identical)
local function populate_configure_menu(menu)
- local button_name = current_button.button and current_button.button.name or _('NOT SET')
- local key_name = current_button.key and manager:machine():input():code_name(current_button.key) or _('NOT SET')
- menu[#menu + 1] = {_('Input'), button_name, ''}
- menu[#menu + 1] = {_('Hotkey'), key_name, ''}
- menu[#menu + 1] = {_('On frames'), current_button.on_frames, current_button.on_frames > 1 and 'lr' or 'r'}
- menu[#menu + 1] = {_('Off frames'), current_button.off_frames, current_button.off_frames > 1 and 'lr' or 'r'}
-end
-
--- Borrowed from the cheat plugin
-local function poll_for_hotkey()
- local input = manager:machine():input()
- manager:machine():popmessage(_('Press button for hotkey or wait to leave unchanged'))
- manager:machine():video():frame_update(true)
- input:seq_poll_start('switch')
- local time = os.clock()
- while (not input:seq_poll()) and (os.clock() < time + 1) do end
- local tokens = input:seq_to_tokens(input:seq_poll_final())
- manager:machine():popmessage()
- manager:machine():video():frame_update(true)
-
- local final_token = nil
- for token in tokens:gmatch('%S+') do
- final_token = token
+ local button_name
+ if current_button.button then
+ button_name = current_button.button.name
+ elseif current_button.port then
+ button_name = _p('plugin-autofire', 'n/a')
+ else
+ button_name = _p('plugin-autofire', '[not set]')
+ end
+ local key_name = current_button.key and manager.machine.input:seq_name(current_button.key) or _p('plugin-autofire', '[not set]')
+ table.insert(menu, {_p('plugin-autofire', 'Input'), button_name, ''})
+ if not (configure_menu_active or configure_selection_save) then
+ configure_selection_save = #menu
end
- return final_token and input:code_from_token(final_token) or nil
+ table.insert(menu, {_p('plugin-autofire', 'Hotkey'), key_name, hotkey_poller and 'lr' or ''})
+ table.insert(menu, {_p('plugin-autofire', 'On frames'), tostring(current_button.on_frames), current_button.on_frames > 1 and 'lr' or 'r'})
+ table.insert(menu, {_p('plugin-autofire', 'Off frames'), tostring(current_button.off_frames), current_button.off_frames > 1 and 'lr' or 'r'})
+ configure_menu_active = true
end
local function handle_configure_menu(index, event)
- -- Input
+ if hotkey_poller then
+ -- special handling for polling for hotkey
+ if hotkey_poller:poll() then
+ if hotkey_poller.sequence then
+ current_button.key = hotkey_poller.sequence
+ current_button.key_cfg = manager.machine.input:seq_to_tokens(hotkey_poller.sequence)
+ end
+ hotkey_poller = nil
+ return true
+ end
+ return false
+ end
+
if index == 1 then
+ -- Input
if event == 'select' then
+ configure_selection_save = header_height + index
table.insert(menu_stack, MENU_TYPES.BUTTON)
+ if current_button.port and current_button.button then
+ initial_input = current_button.button
+ end
return true
- else
- return false
end
- -- Hotkey
elseif index == 2 then
+ -- Hotkey
if event == 'select' then
- local keycode = poll_for_hotkey()
- if keycode then
- current_button.key = keycode
- return true
- else
- return false
+ if not commonui then
+ commonui = require('commonui')
end
- else
- return false
+ hotkey_poller = commonui.switch_polling_helper()
+ return true
end
- -- On frames
elseif index == 3 then
- manager:machine():popmessage(_('Number of frames button will be pressed'))
+ -- On frames
+ manager.machine:popmessage(_p('plugin-autofire', 'Number of frames button will be pressed'))
if event == 'left' then
current_button.on_frames = current_button.on_frames - 1
+ return true
elseif event == 'right' then
current_button.on_frames = current_button.on_frames + 1
+ return true
+ elseif event == 'clear' then
+ current_button.on_frames = 1
+ return true
end
- -- Off frames
elseif index == 4 then
- manager:machine():popmessage(_('Number of frames button will be released'))
+ -- Off frames
+ manager.machine:popmessage(_p('plugin-autofire', 'Number of frames button will be released'))
if event == 'left' then
current_button.off_frames = current_button.off_frames - 1
+ return true
elseif event == 'right' then
current_button.off_frames = current_button.off_frames + 1
+ return true
+ elseif event == 'clear' then
+ current_button.off_frames = 1
+ return true
end
end
- return true
+ return false
end
local function populate_edit_menu()
local menu = {}
- menu[#menu + 1] = {_('Edit autofire button'), '', 'off'}
- menu[#menu + 1] = {'---', '', ''}
+ table.insert(menu, {_p('plugin-autofire', 'Edit autofire button'), '', 'off'})
+ table.insert(menu, {'---', '', ''})
header_height = #menu
populate_configure_menu(menu)
content_height = #menu
- menu[#menu + 1] = {'---', '', ''}
- menu[#menu + 1] = {_('Done'), '', ''}
- return menu
+ table.insert(menu, {'---', '', ''})
+ table.insert(menu, {_p('plugin-autofire', 'Done'), '', ''})
+
+ local selection = configure_selection_save
+ configure_selection_save = nil
+ if hotkey_poller then
+ return hotkey_poller:overlay(menu, selection, 'lrrepeat')
+ else
+ return menu, selection, 'lrrepeat'
+ end
end
local function handle_edit_menu(index, event, buttons)
local section, adjusted_index = menu_section(index)
- if section == MENU_SECTIONS.CONTENT then
+ if ((section == MENU_SECTIONS.FOOTER) and (event == 'select')) or (event == 'back') then
+ configure_menu_active = false
+ table.remove(menu_stack)
+ return true
+ elseif section == MENU_SECTIONS.CONTENT then
return handle_configure_menu(adjusted_index, event)
- elseif section == MENU_SECTIONS.FOOTER then
- if event == 'select' then
- table.remove(menu_stack)
- return true
- end
end
return false
end
local function populate_add_menu()
local menu = {}
- menu[#menu + 1] = {_('Add autofire button'), '', 'off'}
- menu[#menu + 1] = {'---', '', ''}
+ table.insert(menu, {_p('plugin-autofire', 'Add autofire button'), '', 'off'})
+ table.insert(menu, {'---', '', ''})
header_height = #menu
populate_configure_menu(menu)
content_height = #menu
- menu[#menu + 1] = {'---', '', ''}
+ table.insert(menu, {'---', '', ''})
if is_button_complete(current_button) then
- menu[#menu + 1] = {_('Create'), '', ''}
+ table.insert(menu, {_p('plugin-autofire', 'Create'), '', ''})
else
- menu[#menu + 1] = {_('Cancel'), '', ''}
+ table.insert(menu, {_p('plugin-autofire', 'Cancel'), '', ''})
+ end
+
+ local selection = configure_selection_save
+ configure_selection_save = nil
+ if hotkey_poller then
+ return hotkey_poller:overlay(menu, selection, 'lrrepeat')
+ else
+ return menu, selection, 'lrrepeat'
end
- return menu
end
local function handle_add_menu(index, event, buttons)
local section, adjusted_index = menu_section(index)
- if section == MENU_SECTIONS.CONTENT then
- return handle_configure_menu(adjusted_index, event)
- elseif section == MENU_SECTIONS.FOOTER then
- if event == 'select' then
- table.remove(menu_stack)
- if is_button_complete(current_button) then
- buttons[#buttons + 1] = current_button
- end
- return true
+ if ((section == MENU_SECTIONS.FOOTER) and (event == 'select')) or (event == 'back') then
+ configure_menu_active = false
+ table.remove(menu_stack)
+ if is_button_complete(current_button) and (event == 'select') then
+ table.insert(buttons, current_button)
+ initial_button = #buttons
end
+ return true
+ elseif section == MENU_SECTIONS.CONTENT then
+ return handle_configure_menu(adjusted_index, event)
end
return false
end
@@ -230,39 +302,32 @@ end
-- Button selection menu
local function populate_button_menu()
- menu = {}
- inputs = {}
- menu[#menu + 1] = {_('Select an input for autofire'), '', 'off'}
- menu[#menu + 1] = {'---', '', ''}
- header_height = #menu
+ local function is_supported_input(ioport_field)
+ -- IPT_BUTTON1 through IPT_BUTTON16 in ioport_type enum (ioport.h)
+ return ioport_field.type >= 64 and ioport_field.type <= 79
+ end
- for port_key, port in pairs(manager:machine():ioport().ports) do
- for field_key, field in pairs(port.fields) do
- if is_supported_input(field) then
- menu[#menu + 1] = {field.name, '', ''}
- inputs[#inputs + 1] = {
- port_name = port_key,
- field_name = field_key,
- ioport_field = field
- }
- end
+ local function action(field)
+ if field then
+ current_button.port = field.port.tag
+ current_button.mask = field.mask
+ current_button.type = field.type
+ current_button.button = field
end
+ initial_input = nil
+ input_menu = nil
+ table.remove(menu_stack)
end
- content_height = #menu
- return menu
+
+ if not commonui then
+ commonui = require('commonui')
+ end
+ input_menu = commonui.input_selection_menu(action, _p('plugin-autofire', 'Select an input for autofire'), is_supported_input)
+ return input_menu:populate(initial_input)
end
local function handle_button_menu(index, event)
- local section, adjusted_index = menu_section(index)
- if section == MENU_SECTIONS.CONTENT and event == 'select' then
- local selected_input = inputs[adjusted_index]
- current_button.port = selected_input.port_name
- current_button.field = selected_input.field_name
- current_button.button = selected_input.ioport_field
- table.remove(menu_stack)
- return true
- end
- return false
+ return input_menu:handle(index, event)
end
function lib:init_menu(buttons)
@@ -270,7 +335,7 @@ function lib:init_menu(buttons)
content_height = 0
menu_stack = { MENU_TYPES.MAIN }
current_button = {}
- inputs = {}
+ input_menu = nil
end
function lib:populate_menu(buttons)
@@ -287,7 +352,7 @@ function lib:populate_menu(buttons)
end
function lib:handle_menu_event(index, event, buttons)
- manager:machine():popmessage()
+ manager.machine:popmessage()
local current_menu = menu_stack[#menu_stack]
if current_menu == MENU_TYPES.MAIN then
return handle_main_menu(index, event, buttons)
diff --git a/plugins/autofire/autofire_save.lua b/plugins/autofire/autofire_save.lua
index 2f353417e3e..f863b003f4d 100644
--- a/plugins/autofire/autofire_save.lua
+++ b/plugins/autofire/autofire_save.lua
@@ -1,7 +1,7 @@
local lib = {}
local function get_settings_path()
- return lfs.env_replace(manager:machine():options().entries.homepath:value():match('([^;]+)')) .. '/autofire/'
+ return manager.machine.options.entries.homepath:value():match('([^;]+)') .. '/autofire'
end
local function get_settings_filename()
@@ -9,23 +9,26 @@ local function get_settings_filename()
end
local function initialize_button(settings)
- if settings.port and settings.field and settings.key and settings.on_frames and settings.off_frames then
+ if settings.port and settings.mask and settings.type and settings.key and settings.on_frames and settings.off_frames then
+ local ioport = manager.machine.ioport
local new_button = {
port = settings.port,
- field = settings.field,
- key = manager:machine():input():code_from_token(settings.key),
+ mask = settings.mask,
+ type = ioport:token_to_input_type(settings.type),
+ key = manager.machine.input:seq_from_tokens(settings.key),
+ key_cfg = settings.key,
on_frames = settings.on_frames,
off_frames = settings.off_frames,
counter = 0
}
- local port = manager:machine():ioport().ports[settings.port]
+ local port = ioport.ports[settings.port]
if port then
- local field = port.fields[settings.field]
- if field then
+ local field = port:field(settings.mask)
+ if field and (field.type == new_button.type) then
new_button.button = field
- return new_button
end
end
+ return new_button
end
return nil
end
@@ -33,14 +36,15 @@ end
local function serialize_settings(button_list)
local settings = {}
for index, button in ipairs(button_list) do
- setting = {
+ local setting = {
port = button.port,
- field = button.field,
- key = manager:machine():input():code_to_token(button.key),
+ mask = button.mask,
+ type = manager.machine.ioport:input_type_to_token(button.type),
+ key = button.key_cfg,
on_frames = button.on_frames,
off_frames = button.off_frames
}
- settings[#settings + 1] = setting
+ table.insert(settings, setting)
end
return settings
end
@@ -48,13 +52,15 @@ end
function lib:load_settings()
local buttons = {}
local json = require('json')
- local file = io.open(get_settings_path() .. get_settings_filename(), 'r')
+ local filename = get_settings_path() .. '/' .. get_settings_filename()
+ local file = io.open(filename, 'r')
if not file then
return buttons
end
local loaded_settings = json.parse(file:read('a'))
file:close()
if not loaded_settings then
+ emu.print_error(string.format('Error loading autofire settings: error parsing file "%s" as JSON', filename))
return buttons
end
for index, button_settings in ipairs(loaded_settings) do
@@ -69,18 +75,27 @@ end
function lib:save_settings(buttons)
local path = get_settings_path()
local attr = lfs.attributes(path)
- if not attr then
- lfs.mkdir(path)
- elseif attr.mode ~= 'directory' then
+ if attr and (attr.mode ~= 'directory') then
+ emu.print_error(string.format('Error saving autofire settings: "%s" is not a directory', path))
+ return
+ end
+ local filename = path .. '/' .. get_settings_filename()
+ if #buttons == 0 then
+ os.remove(filename)
return
+ elseif not attr then
+ lfs.mkdir(path)
end
local json = require('json')
local settings = serialize_settings(buttons)
- local file = io.open(path .. get_settings_filename(), 'w')
- if file then
- file:write(json.stringify(settings, {indent = true}))
- file:close()
+ local data = json.stringify(settings, {indent = true})
+ local file = io.open(filename, 'w')
+ if not file then
+ emu.print_error(string.format('Error saving autofire settings: error opening file "%s" for writing', filename))
+ return
end
+ file:write(data)
+ file:close()
end
return lib
diff --git a/plugins/autofire/init.lua b/plugins/autofire/init.lua
index 1eb8627b494..35d37e69592 100644
--- a/plugins/autofire/init.lua
+++ b/plugins/autofire/init.lua
@@ -1,82 +1,73 @@
-- license:BSD-3-Clause
-- copyright-holders:Jack Li
-local exports = {}
-exports.name = 'autofire'
-exports.version = '0.0.3'
-exports.description = 'Autofire plugin'
-exports.license = 'The BSD 3-Clause License'
-exports.author = { name = 'Jack Li' }
+local exports = {
+ name = 'autofire',
+ version = '0.0.4',
+ description = 'Autofire plugin',
+ license = 'BSD-3-Clause',
+ author = { name = 'Jack Li' } }
local autofire = exports
+local frame_subscription, stop_subscription
+
function autofire.startplugin()
-- List of autofire buttons, each being a table with keys:
-- 'port' - port name of the button being autofired
- -- 'field' - field name of the button being autofired
- -- 'key' - input_code of the keybinding
+ -- 'mask' - mask of the button field being autofired
+ -- 'type' - input type of the button being autofired
+ -- 'key' - input_seq of the keybinding
+ -- 'key_cfg' - configuration string for the keybinding
-- 'on_frames' - number of frames button is pressed
-- 'off_frames' - number of frames button is released
-- 'button' - reference to ioport_field
-- 'counter' - position in autofire cycle
local buttons = {}
- local current_rom = nil
+ local input_manager
+ local menu_handler
- local function process_button(button)
- local pressed = manager:machine():input():code_pressed(button.key)
- if pressed then
- local state = button.counter < button.on_frames and 1 or 0
- button.counter = (button.counter + 1) % (button.on_frames + button.off_frames)
- return state
- else
- button.counter = 0
- return 0
+ local function process_frame()
+ local function process_button(button)
+ local pressed = input_manager:seq_pressed(button.key)
+ if pressed then
+ local state = button.counter < button.on_frames and 1 or 0
+ button.counter = (button.counter + 1) % (button.on_frames + button.off_frames)
+ return state
+ else
+ button.counter = 0
+ return 0
+ end
end
- end
-
- local function button_states_key(button)
- return button.port .. '\0' .. button.field
- end
- local function process_frame()
-- Resolves conflicts between multiple autofire keybindings for the same button.
local button_states = {}
for i, button in ipairs(buttons) do
- local state = button_states[button_states_key(button)]
- if not state then
- state = 0
+ if button.button then
+ local key = button.port .. '\0' .. button.mask .. '.' .. button.type
+ local state = button_states[key] or {0, button.button}
+ state[1] = process_button(button) | state[1]
+ button_states[key] = state
end
- state = process_button(button) | state
- button_states[button_states_key(button)] = state
- end
- for i, button in ipairs(buttons) do
- button.button:set_value(button_states[button_states_key(button)])
end
- end
-
- local function reinit_buttons()
- for i, button in ipairs(buttons) do
- button.counter = 0
- button.button = manager:machine():ioport().ports[button.port].fields[button.field]
+ for i, state in pairs(button_states) do
+ if state[1] ~= 0 then
+ state[2]:set_value(state[1])
+ else
+ state[2]:clear_value()
+ end
end
end
local function load_settings()
- if current_rom == emu.romname() then
- reinit_buttons()
- else
- local loader = require('autofire/autofire_save')
- if loader then
- buttons = loader:load_settings()
- end
- end
- current_rom = emu.romname()
- local menu_handler = require('autofire/autofire_menu')
- if menu_handler then
- menu_handler:init_menu(buttons)
+ local loader = require('autofire/autofire_save')
+ if loader then
+ buttons = loader:load_settings()
end
+
+ input_manager = manager.machine.input
end
local function save_settings()
@@ -84,10 +75,13 @@ function autofire.startplugin()
if saver then
saver:save_settings(buttons)
end
+
+ menu_handler = nil
+ input_manager = nil
+ buttons = {}
end
local function menu_callback(index, event)
- local menu_handler = require('autofire/autofire_menu')
if menu_handler then
return menu_handler:handle_menu_event(index, event, buttons)
else
@@ -96,18 +90,26 @@ function autofire.startplugin()
end
local function menu_populate()
- local menu_handler = require('autofire/autofire_menu')
+ if not menu_handler then
+ local status, msg = pcall(function () menu_handler = require('autofire/autofire_menu') end)
+ if not status then
+ emu.print_error(string.format('Error loading autofire menu: %s', msg))
+ end
+ if menu_handler then
+ menu_handler:init_menu(buttons)
+ end
+ end
if menu_handler then
return menu_handler:populate_menu(buttons)
else
- return {{_('Failed to load autofire menu'), '', ''}}
+ return {{_p('plugin-autofire', 'Failed to load autofire menu'), '', 'off'}}
end
end
- emu.register_frame_done(process_frame)
- emu.register_start(load_settings)
- emu.register_stop(save_settings)
- emu.register_menu(menu_callback, menu_populate, _('Autofire'))
+ frame_subscription = emu.add_machine_frame_notifier(process_frame)
+ emu.register_prestart(load_settings)
+ stop_subscription = emu.add_machine_stop_notifier(save_settings)
+ emu.register_menu(menu_callback, menu_populate, _p('plugin-autofire', 'Autofire'))
end
return exports
diff --git a/plugins/autofire/plugin.json b/plugins/autofire/plugin.json
index a803c8be09e..20ef5e29a15 100644
--- a/plugins/autofire/plugin.json
+++ b/plugins/autofire/plugin.json
@@ -1,10 +1,10 @@
{
- "plugin": {
- "name": "autofire",
- "description": "Autofire plugin",
- "version": "0.0.3",
- "author": "Jack Li",
- "type": "plugin",
- "start": "false"
- }
+ "plugin": {
+ "name": "autofire",
+ "description": "Autofire plugin",
+ "version": "0.0.4",
+ "author": "Jack Li",
+ "type": "plugin",
+ "start": "false"
+ }
}
diff --git a/plugins/boot.lua b/plugins/boot.lua
index 858e1a5b4db..390ce652ff6 100644
--- a/plugins/boot.lua
+++ b/plugins/boot.lua
@@ -2,29 +2,13 @@
-- copyright-holders:Miodrag Milanovic
require('lfs')
--- add helper to lfs for plugins to use
-function lfs.env_replace(str)
- local pathsep = package.config:sub(1,1)
- local function dorep(val)
- ret = os.getenv(val)
- if ret then
- return ret
- end
- return val
- end
-
- if pathsep == '\\' then
- str = str:gsub("%%(%w+)%%", dorep)
- else
- str = str:gsub("%$(%w+)", dorep)
- end
- return str
-end
-
_G._ = emu.lang_translate
-
+_G._p = emu.lang_translate
+_G.N_ = function (message) return message end
+_G.N_p = function (context, message) return message end
+_G.emu.plugin = {} -- table to contain plugin interfaces
-- substitute environment variables in the plugins path from options
-local dirs = lfs.env_replace(manager:options().entries.pluginspath:value())
+local dirs = manager.options.entries.pluginspath:value()
-- and split the paths apart and make them suitable for package.path
package.path = ""
@@ -35,7 +19,7 @@ for dir in string.gmatch(dirs, "([^;]+)") do
package.path = package.path .. dir .. "/?.lua;" .. dir .. "/?/init.lua"
end
-for _,entry in pairs(manager:plugins()) do
+for _,entry in pairs(manager.plugins) do
if (entry.type == "plugin" and entry.start) then
emu.print_verbose("Starting plugin " .. entry.name .. "...")
plugin = require(entry.name)
diff --git a/plugins/cheat/cheat_simple.lua b/plugins/cheat/cheat_simple.lua
index 11c63e6e642..f65cc9e46b7 100644
--- a/plugins/cheat/cheat_simple.lua
+++ b/plugins/cheat/cheat_simple.lua
@@ -48,7 +48,7 @@ local function prepare_rom_cheat(desc, region, addr, val, size, banksize, comp)
end
if banksize and comp then
- local rom = manager:machine():memory().regions[region]
+ local rom = manager.machine.memory.regions[region]
local bankaddr = addr & (banksize - 1)
addr = nil
if not rom then
@@ -92,13 +92,20 @@ function codefuncs.nes_gg(desc, code)
if #code == 6 then
addr = ((value >> 4) & 7) | ((value >> 8) & 0x78) | ((value >> 12) & 0x80) | ((value << 8) & 0x700) | ((value << 4) & 0x7800)
newval = ((value >> 20) & 7) | (value & 8) | ((value >> 12) & 0x70) | ((value >> 16) & 0x80)
+ if manager.machine.memory.regions[":nes_slot:cart:prg_rom"].size > 32768 then
+ emu.print_verbose("warning: gamegenie 6 char code with banked rom " .. desc)
+ end
return prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8)
elseif #code == 8 then
addr = ((value >> 12) & 7) | ((value >> 16) & 0x78) | ((value >> 20) & 0x80) | (value & 0x700) | ((value >> 4) & 0x7800)
newval = ((value >> 28) & 7) | (value & 8) | ((value >> 20) & 0x70) | ((value >> 24) & 0x80)
comp = ((value >> 4) & 7) | ((value >> 8) & 8) | ((value << 4) & 0x70) | (value & 0x80)
- -- assume 8K banks, 32K also common but is an easy multiple of 8K
- return prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8, 8192, comp)
+ -- try 32K banks then 8K
+ local status, cheat = pcall(prepare_rom_cheat, desc, ":nes_slot:cart:prg_rom", addr, newval, 8, 32768, comp)
+ if not status then
+ cheat = prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8, 8192, comp)
+ end
+ return cheat
else
error("error game genie cheat incorrect length " .. desc)
end
@@ -123,7 +130,7 @@ local function snes_prepare_cheat(desc, addr, val)
if ((bank <= 0x3f) and (offset < 0x2000)) or ((bank & 0xfe) == 0x7e) then
return prepare_ram_cheat(desc, ":maincpu", addr, val, 8)
end
- if (manager:machine().devices[":maincpu"].spaces["program"]:read_u8(0xffd5) & 1) == 1 then --hirom
+ if (manager.machine.devices[":maincpu"].spaces["program"]:read_u8(0xffd5) & 1) == 1 then --hirom
if (bank & 0x7f) <= 0x3f and offset >= 0x8000 then
-- direct map
elseif (bank & 0x7f) >= 0x40 and (bank & 0x7f) <= 0x7d then
@@ -302,7 +309,7 @@ function simple.conv_cheat(data)
end
offset = tonumber(offset, 16)
val = tonumber(val, 16)
- if manager:machine().devices[cputag] then
+ if manager.machine.devices[cputag] then
cheat = prepare_ram_cheat(desc, cputag, offset, val, size)
else
cheat = prepare_rom_cheat(desc, cputag, offset, val, size)
diff --git a/plugins/cheat/cheat_xml.lua b/plugins/cheat/cheat_xml.lua
index 990e5fe64d8..07816859cdf 100644
--- a/plugins/cheat/cheat_xml.lua
+++ b/plugins/cheat/cheat_xml.lua
@@ -59,7 +59,7 @@ function xml.conv_cheat(data)
data = xml_parse(data)
local cpu_spaces = {}
- for tag, device in pairs(manager:machine().devices) do
+ for tag, device in pairs(manager.machine.devices) do
local sp
for name, space in pairs(device.spaces) do
if not sp then
@@ -76,11 +76,15 @@ function xml.conv_cheat(data)
local function convert_memref(cpu, phys, space, width, addr, rw)
-- debug expressions address spaces by index not by name
local function get_space_name(index)
- return cpu_spaces[":" .. cpu][index]
+ local prefix = cpu:sub(1, 1)
+ if prefix == ":" then
+ return cpu_spaces[cpu][index]
+ else
+ return cpu_spaces[":" .. cpu][index]
+ end
end
local mod = ""
- local count
if space == "p" then
fullspace = get_space_name(0)
elseif space == "d" then
@@ -89,11 +93,11 @@ function xml.conv_cheat(data)
fullspace = get_space_name(2)
elseif space == "r" then
fullspace = get_space_name(0)
- mod = "direct_"
+ mod = "_direct"
space = "p"
elseif space == "o" then
fullspace = get_space_name(3)
- mod = "direct_"
+ mod = "_direct"
space = "o"
end
if width == "b" then
@@ -105,20 +109,27 @@ function xml.conv_cheat(data)
elseif width == "q" then
width = "u64"
end
+
+ local prefix = cpu:sub(1,1)
+ if prefix == ":" then
+ cpu = cpu:sub(2,cpu:len())
+ end
+
local cpuname = cpu:gsub(":", "_")
if space == "m" then
regions[cpuname .. space] = ":" .. cpu
else
spaces[cpuname .. space] = { tag = ":" .. cpu, type = fullspace }
if phys ~= "p" and mod == "" then
- mod = "log_"
+ mod = "v"
end
end
+ local ret
if rw == "=" then
write = true
- ret = cpuname .. space .. ":" .. "write_" .. mod .. width .. "(" .. addr .. ","
+ ret = string.format("%s%s:write%s_%s(%s,", cpuname, space, mod, width, addr)
else
- ret = cpuname .. space .. ":" .. "read_" .. mod .. width .. "(" .. addr .. ")"
+ ret = string.format("%s%s:read%s_%s(%s)", cpuname, space, mod, width, addr)
end
if rw == "==" then
ret = ret .. "=="
@@ -150,6 +161,7 @@ function xml.conv_cheat(data)
data = data:gsub("%f[%w](%x+)%f[%W]", "0x%1")
-- 0?x? avoids an issue where db (data region byte) is interepeted as a hex number
data = data:gsub("([%w_:]-)%.(p?)0?x?([pmrodi3])([bwdq])@(%w+) *(=*)", convert_memref)
+ local count
repeat
data, count = data:gsub("([%w_:]-)%.(p?)0?x?([pmrodi3])([bwdq])@(%b()) *(=*)", convert_memref)
until count == 0
@@ -160,7 +172,7 @@ function xml.conv_cheat(data)
end
local function convert_output(data)
- local str = "draw_text(screen,"
+ local str = "draw_text(ui,"
if data["align"] then
str = str .. data["align"]
else
@@ -252,20 +264,19 @@ function xml.conv_cheat(data)
if next(spaces) then
data["cheat"][count]["space"] = {}
for name, space in pairs(spaces) do
- data["cheat"][count]["space"] = {}
data["cheat"][count]["space"][name] = { type = space["type"], tag = space["tag"] }
end
end
if next(regions) then
data["cheat"][count]["region"] = {}
for name, region in pairs(regions) do
- data["cheat"][count]["region"] = {}
data["cheat"][count]["region"][name] = region
end
end
if output then
data["cheat"][count]["screen"] = {}
data["cheat"][count]["screen"]["screen"] = ":screen"
+ data["cheat"][count]["screen"]["ui"] = "ui"
end
end
return data["cheat"]
diff --git a/plugins/cheat/init.lua b/plugins/cheat/init.lua
index 21824626977..302b86beeed 100644
--- a/plugins/cheat/init.lua
+++ b/plugins/cheat/init.lua
@@ -68,11 +68,13 @@ local exports = {}
exports.name = "cheat"
exports.version = "0.0.1"
exports.description = "Cheat plugin"
-exports.license = "The BSD 3-Clause License"
+exports.license = "BSD-3-Clause"
exports.author = { name = "Carl" }
local cheat = exports
+local reset_subscription, stop_subscription, frame_subscription
+
function cheat.set_folder(path)
cheat.path = path
end
@@ -94,18 +96,14 @@ function cheat.startplugin()
local function load_cheats()
local filename = emu.romname()
local newcheats = {}
- local file = emu.file(manager:machine():options().entries.cheatpath:value():gsub("([^;]+)", "%1;%1/cheat") , 1)
- if emu.softname() ~= "" then
- if emu.softname():find(":") then
- filename = emu.softname():gsub(":", "/")
- else
- for name, image in pairs(manager:machine().images) do
- if image:exists() and image:software_list_name() ~= "" then
- filename = image:software_list_name() .. "/" .. emu.softname()
- end
- end
+ local file = emu.file(manager.machine.options.entries.cheatpath:value():gsub("([^;]+)", "%1;%1/cheat") , 1)
+
+ for name, image in pairs(manager.machine.images) do
+ if image.exists and image.software_list_name ~= "" then
+ filename = image.software_list_name .. "/" .. image.filename
end
end
+
cheatname = filename
local function add(addcheats)
if not next(newcheats) then
@@ -134,7 +132,7 @@ function cheat.startplugin()
local function load_hotkeys()
local json = require("json")
- local file = io.open(lfs.env_replace(manager:machine():options().entries.cheatpath:value():match("([^;]+)")) .. "/" .. cheatname .. "_hotkeys.json", "r")
+ local file = io.open(manager.machine.options.entries.cheatpath:value():match("([^;]+)") .. "/" .. cheatname .. "_hotkeys.json", "r")
if not file then
return
end
@@ -142,7 +140,7 @@ function cheat.startplugin()
for num, val in ipairs(hotkeys) do
for num, cheat in pairs(cheats) do
if val.desc == cheat.desc then
- cheat.hotkeys = {pressed = false, keys = manager:machine():input():seq_from_tokens(val.keys)}
+ cheat.hotkeys = {pressed = false, keys = manager.machine.input:seq_from_tokens(val.keys)}
end
end
end
@@ -152,15 +150,16 @@ function cheat.startplugin()
local hotkeys = {}
for num, cheat in ipairs(cheats) do
if cheat.hotkeys then
- local hotkey = {desc = cheat.desc, keys = manager:machine():input():seq_to_tokens(cheat.hotkeys.keys)}
+ local hotkey = {desc = cheat.desc, keys = manager.machine.input:seq_to_tokens(cheat.hotkeys.keys)}
if hotkey.keys ~= "" then
hotkeys[#hotkeys + 1] = hotkey
end
end
end
+ local path = manager.machine.options.entries.cheatpath:value():match("([^;]+)")
+ local filepath = path .. "/" .. cheatname .. "_hotkeys.json"
if #hotkeys > 0 then
local json = require("json")
- local path = lfs.env_replace(manager:machine():options().entries.cheatpath:value():match("([^;]+)"))
local attr = lfs.attributes(path)
if not attr then
lfs.mkdir(path)
@@ -169,7 +168,7 @@ function cheat.startplugin()
end
if cheatname:find("/", 1, true) then
local softpath = path .. "/" .. cheatname:match("([^/]+)")
- local attr = lfs.attributes(softpath)
+ attr = lfs.attributes(softpath)
if not attr then
lfs.mkdir(softpath)
elseif attr.mode ~= "directory" then -- uhhh?
@@ -177,11 +176,21 @@ function cheat.startplugin()
end
end
- local file = io.open(path .. "/" .. cheatname .. "_hotkeys.json", "w+")
+ local file = io.open(filepath, "w+")
if file then
file:write(json.stringify(hotkeys, {indent = true}))
file:close()
end
+ else
+ local attr = lfs.attributes(filepath)
+ if attr and (attr.mode == "file") then
+ local json = require("json")
+ local file = io.open(filepath, "w+")
+ if file then
+ file:write(json.stringify(hotkeys, {indent = true}))
+ file:close()
+ end
+ end
end
end
@@ -193,8 +202,6 @@ function cheat.startplugin()
return
end
- local function is_oneshot(cheat) return cheat.script and not cheat.script.run and not cheat.script.off end
-
local function run_if(cheat, func)
if func then
local stat, err = pcall(func)
@@ -217,7 +224,7 @@ function cheat.startplugin()
return
end
if type(x) == "string" then
- y = y * mame_manager:ui():get_line_height()
+ y = y * mame_manager.ui.line_height
end
output[#output + 1] = { type = "text", scr = screen, x = x, y = y, str = str, color = color }
end
@@ -280,29 +287,29 @@ function cheat.startplugin()
run_if(wp.cheat, wp.func)
-- go in case a debugger other than "none" is enabled
-- don't use an b/wpset action because that will supress the b/wp index
- manager:machine():debugger().execution_state = "run"
+ manager.machine.debugger.execution_state = "run"
end
else
local bp = breaks[point]
if bp then
run_if(bp.cheat, bp.func)
- manager:machine():debugger().execution_state = "run"
+ manager.machine.debugger.execution_state = "run"
end
end
end
end
local function bpset(cheat, dev, addr, func)
- if is_oneshot(cheat) then
+ if cheat.is_oneshot then
error("bpset not permitted in oneshot cheat")
return
end
- local idx = dev:debug():bpset(addr)
+ local idx = dev.debug:bpset(addr)
breaks[idx] = {cheat = cheat, func = func, dev = dev}
end
local function wpset(cheat, dev, space, wptype, addr, len, func)
- if is_oneshot(cheat) then
+ if cheat.is_oneshot then
error("wpset not permitted in oneshot cheat")
return
end
@@ -310,22 +317,22 @@ function cheat.startplugin()
error("bad space in wpset")
return
end
- local idx = dev.debug():wpset(space, wptype, addr, len)
+ local idx = dev.debug:wpset(space, wptype, addr, len)
watches[idx] = {cheat = cheat, func = func, dev = dev}
end
local function bwpclr(cheat)
- if not manager:machine():debugger() then
+ if not manager.machine.debugger then
return
end
for num, bp in pairs(breaks) do
if cheat == bp.cheat then
- bp.dev.debug():bpclr(num)
+ bp.dev.debug:bpclr(num)
end
end
for num, wp in pairs(watches) do
if cheat == wp.cheat then
- wp.dev.debug():wpclr(num)
+ wp.dev.debug:wpclr(num)
end
end
end
@@ -333,7 +340,7 @@ function cheat.startplugin()
local function input_trans(list)
local xlate = { start = {}, stop = {}, last = 0 }
local function errout(port, field)
- cheat.enabled = false
+ cheat:set_enabled(false)
error(port .. field .. " not found")
return
end
@@ -342,7 +349,7 @@ function cheat.startplugin()
if entry.port:sub(1, 1) ~= ":" then
entry.port = ":" .. entry.port
end
- local port = manager:machine():ioport().ports[entry.port]
+ local port = manager.machine.ioport.ports[entry.port]
if not port then
errout(entry.port, entry.field)
end
@@ -369,33 +376,103 @@ function cheat.startplugin()
end
local function input_run(cheat, list)
- if not is_oneshot(cheat) then
+ if not cheat.is_oneshot then
cheat.enabled = false
error("input_run only allowed in one shot cheats")
return
end
- local _, screen = next(manager:machine().screens)
+ local _, screen = next(manager.machine.screens)
list.begin = screen:frame_number()
inputs[#inputs + 1] = list
end
+ local function param_calc(param)
+ if param.item then
+ if not param.item[param.index] then -- uh oh
+ param.index = 1
+ end
+ param.value = param.item[param.index].value
+ return
+ end
+ param.value = param.min + (param.step * (param.index - 1))
+ if param.value > param.max then
+ param.value = param.max
+ end
+ end
+
+ -- return is current state, ui change
+ local function set_enabled(cheat, state)
+ if cheat.is_oneshot then
+ if state then
+ if cheat.parameter and cheat.script.change and cheat.parameter.index ~= 0 then
+ param_calc(cheat.parameter)
+ cheat.cheat_env.param = cheat.parameter.value
+ cheat.script.change()
+ elseif not cheat.parameter and cheat.script.on then
+ cheat.script.on()
+ end
+ end
+ return false, false
+ end
+ if cheat.enabled == state then
+ return state, false
+ end
+ if not state then
+ cheat.enabled = false
+ run_if(cheat, cheat.script.off)
+ bwpclr(cheat)
+ else
+ cheat.enabled = true
+ run_if(cheat, cheat.script.on)
+ end
+ return state, true
+ end
+
+ -- return is current index, ui change
+ local function set_index(cheat, index)
+ local param = cheat.parameter
+ local oldindex = param.index
+ if (index < 0) or (index > param.last) or (param.index == index) then
+ return param.index, false
+ end
+ param.index = index
+ if index == 0 then
+ cheat.cheat_env.param = param.min
+ cheat:set_enabled(false)
+ else
+ if oldindex == 0 then
+ cheat:set_enabled(true)
+ end
+ param_calc(param)
+ cheat.cheat_env.param = param.value
+ if not cheat.is_oneshot then
+ run_if(cheat, cheat.script.change)
+ end
+ end
+ return index, true
+ end
+
local function parse_cheat(cheat)
- cheat.cheat_env = { draw_text = draw_text,
- draw_line = draw_line,
- draw_box = draw_box,
- tobcd = tobcd,
- frombcd = frombcd,
- pairs = pairs,
- ipairs = ipairs,
- outputs = manager:machine():outputs(),
- time = time,
- input_trans = input_trans,
- input_run = function(list) input_run(cheat, list) end,
- os = { time = os.time, date = os.date, difftime = os.difftime },
- table =
- { insert = table.insert,
- remove = table.remove } }
+ cheat.cheat_env = {
+ draw_text = draw_text,
+ draw_line = draw_line,
+ draw_box = draw_box,
+ tobcd = tobcd,
+ frombcd = frombcd,
+ pairs = pairs,
+ ipairs = ipairs,
+ outputs = manager.machine.output,
+ time = time,
+ input_trans = input_trans,
+ input_run = function(list) input_run(cheat, list) end,
+ os = { time = os.time, date = os.date, difftime = os.difftime },
+ table = { insert = table.insert, remove = table.remove },
+ string = { format = string.format, char = string.char }
+ }
cheat.enabled = false
+ cheat.set_enabled = set_enabled;
+ cheat.get_enabled = function(cheat) return cheat.enabled end
+ cheat.is_oneshot = cheat.script and not cheat.script.run and not cheat.script.off
-- verify scripts are valid first
if not cheat.script then
@@ -416,9 +493,9 @@ function cheat.startplugin()
if cheat.cpu then
cheat.cpudev = {}
for name, tag in pairs(cheat.cpu) do
- if manager:machine():debugger() then
- local dev = manager:machine().devices[tag]
- if not dev or not dev:debug() then
+ if manager.machine.debugger then
+ local dev = manager.machine.devices[tag]
+ if not dev or not dev.debug then
cheat_error(cheat, "missing or invalid device " .. tag)
return
end
@@ -438,7 +515,7 @@ function cheat.startplugin()
if cheat.space then
for name, space in pairs(cheat.space) do
local cpu, mem
- cpu = manager:machine().devices[space.tag]
+ cpu = manager.machine.devices[space.tag]
if not cpu then
cheat_error(cheat, "missing device " .. space.tag)
return
@@ -458,17 +535,20 @@ function cheat.startplugin()
end
if cheat.screen then
for name, screen in pairs(cheat.screen) do
- local scr = manager:machine().screens[screen]
- if not scr then
+ local scr = manager.machine.screens[screen]
+ if screen == "ui" then
+ scr = manager.machine.render.ui_container
+ elseif not scr then
local tag
- tag, scr = next(manager:machine().screens) -- get any screen
+ local nxt, coll = manager.machine.screens:pairs()
+ tag, scr = nxt(coll) -- get any screen
end
cheat.cheat_env[name] = scr
end
end
if cheat.region then
for name, region in pairs(cheat.region) do
- local mem = manager:machine():memory().regions[region]
+ local mem = manager.machine.memory.regions[region]
if not mem then
cheat_error(cheat, "missing region " .. region)
return
@@ -478,7 +558,7 @@ function cheat.startplugin()
end
if cheat.ram then
for name, tag in pairs(cheat.ram) do
- local ram = manager:machine().devices[tag]
+ local ram = manager.machine.devices[tag]
if not ram then
cheat_error(cheat, "missing ram device " .. tag)
return
@@ -488,7 +568,7 @@ function cheat.startplugin()
end
if cheat.share then
for name, tag in pairs(cheat.share) do
- local share = manager:machine():memory().shares[tag]
+ local share = manager.machine.memory.shares[tag]
if not share then
cheat_error(cheat, "missing share " .. share)
return
@@ -500,6 +580,17 @@ function cheat.startplugin()
if not param then
return
end
+ cheat.set_index = set_index;
+ cheat.set_value = function(cheat, value)
+ local idx = ((value - cheat.parameter.min) / cheat.parameter.step) + 1
+ local chg = false
+ if math.integer(idx) == idx then
+ idx, chg = cheat:set_index(idx)
+ end
+ return cheat.parameter.value, chg
+ end
+ cheat.get_index = function(cheat) return cheat.parameter.index end
+ cheat.get_value = function(cheat) return cheat.parameter.value end
param.min = tonumber(param.min) or 0
param.max = tonumber(param.max) or #param.item
param.step = tonumber(param.step) or 1
@@ -508,7 +599,7 @@ function cheat.startplugin()
if not item.value then
item.value = (count * param.step) + param.min
else
- item.value = tonumber(item.value)
+ item.value = tonumber(item.value)
end
end
param.last = #param.item
@@ -522,35 +613,56 @@ function cheat.startplugin()
local hotkeymenu = false
local hotkeylist = {}
+ local commonui
+ local poller
local function menu_populate()
local menu = {}
if hotkeymenu then
+ local ioport = manager.machine.ioport
+ local input = manager.machine.input
+
menu[1] = {_("Select cheat to set hotkey"), "", "off"}
- menu[2] = {"---", "", "off"}
+ menu[2] = {string.format(_("Press %s to clear hotkey"), manager.ui:get_general_input_setting(ioport:token_to_input_type("UI_CLEAR"))), "", "off"}
+ menu[3] = {"---", "", "off"}
hotkeylist = {}
- local function hkcbfunc(cheat)
- local input = manager:machine():input()
- manager:machine():popmessage(_("Press button for hotkey or wait to clear"))
- manager:machine():video():frame_update(true)
- input:seq_poll_start("switch")
- local time = os.clock()
- while (not input:seq_poll()) and (os.clock() < time + 1) do end
- cheat.hotkeys = {pressed = false, keys = input:seq_poll_final()}
- manager:machine():popmessage()
- manager:machine():video():frame_update(true)
+ local function hkcbfunc(cheat, event)
+ if poller then
+ if poller:poll() then
+ if poller.sequence then
+ cheat.hotkeys = { pressed = false, keys = poller.sequence }
+ end
+ poller = nil
+ return true
+ end
+ elseif event == "clear" then
+ cheat.hotkeys = nil
+ return true
+ elseif event == "select" then
+ if not commonui then
+ commonui = require('commonui')
+ end
+ poller = commonui.switch_polling_helper()
+ return true
+ end
+ return false
end
for num, cheat in ipairs(cheats) do
if cheat.script then
- menu[#menu + 1] = {cheat.desc, cheat.hotkeys and manager:machine():input():seq_name(cheat.hotkeys.keys) or _("None"), ""}
- hotkeylist[#hotkeylist + 1] = function() return hkcbfunc(cheat) end
+ local setting = cheat.hotkeys and input:seq_name(cheat.hotkeys.keys) or _("None")
+ menu[#menu + 1] = {cheat.desc, setting, ""}
+ hotkeylist[#hotkeylist + 1] = function(event) return hkcbfunc(cheat, event) end
end
end
menu[#menu + 1] = {"---", "", ""}
menu[#menu + 1] = {_("Done"), "", ""}
- return menu
+ if poller then
+ return poller:overlay(menu)
+ else
+ return menu
+ end
end
for num, cheat in ipairs(cheats) do
menu[num] = {}
@@ -562,9 +674,9 @@ function cheat.startplugin()
end
menu[num][2] = ""
menu[num][3] = "off"
- elseif is_oneshot(cheat) then
+ elseif cheat.is_oneshot then
menu[num][2] = _("Set")
- menu[num][3] = 0
+ menu[num][3] = ""
else
if cheat.enabled then
menu[num][2] = _("On")
@@ -576,7 +688,7 @@ function cheat.startplugin()
end
else
if cheat.parameter.index == 0 then
- if is_oneshot(cheat) then
+ if cheat.is_oneshot then
menu[num][2] = _("Set")
else
menu[num][2] = _("Off")
@@ -595,22 +707,25 @@ function cheat.startplugin()
end
end
end
- menu[#menu + 1] = {"---", "", 0}
- menu[#menu + 1] = {_("Set hotkeys"), "", 0}
- menu[#menu + 1] = {_("Reset All"), "", 0}
- menu[#menu + 1] = {_("Reload All"), "", 0}
+ menu[#menu + 1] = {"---", "", ""}
+ menu[#menu + 1] = {_("Set hotkeys"), "", ""}
+ menu[#menu + 1] = {_("Reset All"), "", ""}
+ menu[#menu + 1] = {_("Reload All"), "", ""}
return menu
end
local function menu_callback(index, event)
- manager:machine():popmessage()
+ manager.machine:popmessage()
if hotkeymenu then
- if event == "select" then
- index = index - 2
+ if event == "back" then
+ hotkeymenu = false
+ return true
+ else
+ index = index - 3
if index >= 1 and index <= #hotkeylist then
- hotkeylist[index]()
+ hotkeylist[index](event)
return true
- elseif index == #hotkeylist + 2 then
+ elseif index == #hotkeylist + 2 and event == "select" then
hotkeymenu = false
return true
end
@@ -623,22 +738,14 @@ function cheat.startplugin()
hotkeymenu = true
elseif index == 3 then
for num, cheat in pairs(cheats) do
- if cheat.enabled then
- run_if(cheat, cheat.script.off)
- bwpclr(cheat)
- end
- cheat.enabled = false
+ cheat:set_enabled(false)
if cheat.parameter then
- cheat.parameter.value = cheat.parameter.min
- cheat.parameter.index = 0
+ cheat:set_index(0)
end
end
elseif index == 4 then
for num, cheat in pairs(cheats) do
- if cheat.enabled then
- run_if(cheat, cheat.script.off)
- bwpclr(cheat)
- end
+ cheat:set_enabled(false)
end
cheats = load_cheats()
for num, cheat in pairs(cheats) do
@@ -649,97 +756,49 @@ function cheat.startplugin()
return true
end
- local function param_calc(param)
- if param.item then
- if not param.item[param.index] then -- uh oh
- param.index = 1
- end
- param.value = param.item[param.index].value
- return
- end
- param.value = param.min + (param.step * (param.index - 1))
- if param.value > param.max then
- param.value = param.max
- end
- end
-
local cheat = cheats[index]
if not cheat then
return false
end
if event == "up" or event == "down" or event == "comment" then
if cheat.comment then
- manager:machine():popmessage(string.format(_("Cheat Comment:\n%s"), cheat.comment))
+ manager.machine:popmessage(string.format(_("Cheat Comment:\n%s"), cheat.comment))
end
elseif event == "left" then
if cheat.parameter then
- local param = cheat.parameter
- if param.index == 1 then
- param.index = 0
- cheat.enabled = false
- cheat.cheat_env.param = param.min
- run_if(cheat, cheat.script.off)
- bwpclr(cheat)
- return true
- elseif param.index == 0 then
- return false
- end
- param.index = param.index - 1
- param_calc(param)
- cheat.cheat_env.param = param.value
- if not is_oneshot(cheat) then
- run_if(cheat, cheat.script.change)
- end
- return true
+ local idx, chg = cheat:set_index(cheat:get_index() - 1)
+ return chg
else
- if cheat.enabled and not is_oneshot(cheat) then
- cheat.enabled = false
- run_if(cheat, cheat.script.off)
- bwpclr(cheat)
- return true
+ if not cheat.is_oneshot then
+ local state, chg = cheat:set_enabled(false)
+ return chg
end
return false
end
elseif event == "right" then
if cheat.parameter then
- local param = cheat.parameter
- if param.index == 0 then
- cheat.enabled = true
- run_if(cheat, cheat.script.on)
- elseif param.index == param.last then
- return false
- end
- param.index = param.index + 1
- param_calc(param)
- cheat.cheat_env.param = param.value
- if not is_oneshot(cheat) then
- run_if(cheat, cheat.script.change)
- end
- return true
+ local idx, chg = cheat:set_index(cheat:get_index() + 1)
+ return chg
else
- if not cheat.enabled and not is_oneshot(cheat) then
- cheat.enabled = true
- run_if(cheat, cheat.script.on)
- return true
+ if not cheat.is_oneshot then
+ local state, chg = cheat:set_enabled(true)
+ return chg
end
return false
end
elseif event == "select" then
- if is_oneshot(cheat) then
- if cheat.parameter and cheat.script.change and cheat.parameter.index ~= 0 then
- param_calc(cheat.parameter)
- cheat.cheat_env.param = cheat.parameter.value
- cheat.script.change()
- local subtext
+ if cheat.is_oneshot then
+ cheat:set_enabled(true)
+ if cheat.parameter and cheat.script.change and cheat:get_index() ~= 0 then
+ local itemtext
if cheat.parameter.item then
- subtext = cheat.parameter.item[cheat.parameter.index]
+ itemtext = cheat.parameter.item[cheat.parameter.index].text
else
- subtext = cheat.parameter.value
+ itemtext = cheat.parameter.value
end
- manager:machine():popmessage(string.format(_("Activated: %s = %s"), cheat.desc, subtext))
+ manager.machine:popmessage(string.format(_("Activated: %s = %s"), cheat.desc, itemtext))
elseif not cheat.parameter and cheat.script.on then
- cheat.script.on()
- manager:machine():popmessage(string.format(_("Activated: %s"), cheat.desc))
+ manager.machine:popmessage(string.format(_("Activated: %s"), cheat.desc))
end
end
end
@@ -753,7 +812,7 @@ function cheat.startplugin()
return menu_populate()
end, _("Cheat"))
- emu.register_start(function()
+ reset_subscription = emu.add_machine_reset_notifier(function ()
if not stop then
return
end
@@ -761,7 +820,7 @@ function cheat.startplugin()
start_time = emu.time()
cheats = load_cheats()
local json = require("json")
- local file = io.open(manager:machine():options().entries.cheatpath:value():match("([^;]+)") .. "/output.json", "w")
+ local file = io.open(manager.machine.options.entries.cheatpath:value():match("([^;]+)") .. "/output.json", "w")
if file then
file:write(json.stringify(cheats, {indent = true}))
file:close()
@@ -770,19 +829,19 @@ function cheat.startplugin()
parse_cheat(cheat)
end
load_hotkeys()
- if manager:machine():debugger() then
- consolelog = manager:machine():debugger().consolelog
+ if manager.machine.debugger then
+ consolelog = manager.machine.debugger.consolelog
consolelast = 0
end
end)
- emu.register_stop(function()
+ stop_subscription = emu.add_machine_stop_notifier(function ()
stop = true
consolelog = nil
save_hotkeys()
end)
- emu.register_frame(function()
+ frame_subscription = emu.add_machine_frame_notifier(function ()
if stop then
return
end
@@ -791,22 +850,22 @@ function cheat.startplugin()
run_if(cheat, cheat.script.run)
end
if cheat.hotkeys and cheat.hotkeys.keys then
- if manager:machine():input():seq_pressed(cheat.hotkeys.keys) then
+ if manager.machine.input:seq_pressed(cheat.hotkeys.keys) then
if not cheat.hotkeys.pressed then
- if is_oneshot(cheat) then
+ if cheat.is_oneshot then
if not run_if(cheat, cheat.script.change) then
run_if(cheat, cheat.script.on)
end
- manager:machine():popmessage(string.format(_("Activated: %s"), cheat.desc))
+ manager.machine:popmessage(string.format(_("Activated: %s"), cheat.desc))
elseif not cheat.enabled then
cheat.enabled = true
run_if(cheat, cheat.script.on)
- manager:machine():popmessage(string.format(_("Enabled: %s"), cheat.desc))
+ manager.machine:popmessage(string.format(_("Enabled: %s"), cheat.desc))
else
cheat.enabled = false
run_if(cheat, cheat.script.off)
bwpclr(cheat)
- manager:machine():popmessage(string.format(_("Disabled: %s"), cheat.desc))
+ manager.machine:popmessage(string.format(_("Disabled: %s"), cheat.desc))
end
end
cheat.hotkeys.pressed = true
@@ -816,7 +875,7 @@ function cheat.startplugin()
end
end
for num, input in pairs(inputs) do
- local _, screen = next(manager:machine().screens)
+ local _, screen = next(manager.machine.screens)
local framenum = screen:frame_number() - input.begin
local enttab = input.start[framenum]
if enttab then
@@ -853,7 +912,7 @@ function cheat.startplugin()
elseif draw.type == "line" then
draw.scr:draw_line(draw.x1, draw.y1, draw.x2, draw.y2, draw.color)
elseif draw.type == "box" then
- draw.scr:draw_box(draw.x1, draw.y1, draw.x2, draw.y2, draw.bgcolor, draw.linecolor)
+ draw.scr:draw_box(draw.x1, draw.y1, draw.x2, draw.y2, draw.linecolor, draw.bgcolor)
end
end
output = {}
@@ -865,11 +924,50 @@ function cheat.startplugin()
function ce.inject(newcheat)
cheats[#cheats + 1] = newcheat
parse_cheat(newcheat)
- manager:machine():popmessage(string.format(_("%s added"), newcheat.desc))
+ manager.machine:popmessage(string.format(_("%s added"), newcheat.desc))
end
function ce.get(index)
- return cheats[index]
+ local cheat = cheats[index]
+ if not cheat then
+ return nil
+ end
+ local intf = {
+ get_enabled = function() return cheat:get_enabled() end,
+ set_enabled = function(status) return cheat:set_enabled(status) end,
+ desc = cheat.desc,
+ is_oneshot = cheat.is_oneshot,
+ comment = cheat.comment,
+ get_hotkeys = function() if cheat.hotkeys then return cheat.hotkeys.keys end return nil end,
+ set_hotkeys = function(seq) cheat.hotkeys = { pressed = false, keys = manager.machine.input:seq_clean(seq) } end
+ }
+ if cheat.script then
+ intf.script = {}
+ if cheat.script.on then intf.script.on = true end
+ if cheat.script.off then intf.script.off = true end
+ if cheat.script.run then intf.script.run = true end
+ if cheat.script.change then intf.script.change = true end
+ end
+
+ if cheat.parameter then
+ intf.parameter = {}
+ intf.get_value = function() return cheat:get_value() end
+ intf.set_value = function(value) return cheat:set_value(value) end
+ intf.get_index = function() return cheat:get_index() end
+ intf.set_index = function(index) return cheat:set_index(index) end
+ intf.parameter.min = cheat.parameter.min
+ intf.parameter.max = cheat.parameter.max
+ intf.parameter.step = cheat.parameter.step
+ if cheat.parameter.item then
+ intf.parameter.item = {}
+ for idx, item in pairs(cheat.parameter.item) do
+ intf.parameter.item[idx] = {}
+ intf.parameter.item[idx].text = cheat.parameter.item[idx].text
+ intf.parameter.item[idx].value = cheat.parameter.item[idx].value
+ end
+ end
+ end
+ return intf
end
function ce.list()
@@ -880,7 +978,7 @@ function cheat.startplugin()
return list
end
- _G.ce = ce
+ _G.emu.plugin.cheat = ce
end
diff --git a/plugins/cheatfind/init.lua b/plugins/cheatfind/init.lua
index 276193acc13..f36b4f5b2d5 100644
--- a/plugins/cheatfind/init.lua
+++ b/plugins/cheatfind/init.lua
@@ -5,18 +5,20 @@ local exports = {}
exports.name = "cheatfind"
exports.version = "0.0.1"
exports.description = "Cheat finder helper library"
-exports.license = "The BSD 3-Clause License"
+exports.license = "BSD-3-Clause"
exports.author = { name = "Carl" }
local cheatfind = exports
+local reset_subscription
+
function cheatfind.startplugin()
local cheat = {}
-- return table of devices and spaces
function cheat.getspaces()
local spaces = {}
- for tag, device in pairs(manager:machine().devices) do
+ for tag, device in pairs(manager.machine.devices) do
if device.spaces then
spaces[tag] = {}
for name, space in pairs(device.spaces) do
@@ -30,8 +32,8 @@ function cheatfind.startplugin()
-- return table of ram devices
function cheat.getram()
local ram = {}
- for tag, device in pairs(manager:machine().devices) do
- if device:shortname() == "ram" then
+ for tag, device in pairs(manager.machine.devices) do
+ if device.shortname == "ram" then
ram[tag] = {}
ram[tag].dev = device
ram[tag].size = emu.item(device.items["0/m_size"]):read(0)
@@ -43,7 +45,7 @@ function cheatfind.startplugin()
-- return table of share regions
function cheat.getshares()
local shares = {}
- for tag, share in pairs(manager:machine():memory().shares) do
+ for tag, share in pairs(manager.machine.memory.shares) do
shares[tag] = share
end
return shares
@@ -56,7 +58,7 @@ function cheatfind.startplugin()
data.shift = space.shift
end
if getmetatable(space).__name:match("device_t") then
- if space:shortname() == "ram" then
+ if space.shortname == "ram" then
data.block = emu.item(space.items["0/m_pointer"]):read_block(start, size)
if not data.block then
return nil
@@ -144,7 +146,6 @@ function cheatfind.startplugin()
end
end
-
local function check_bcd(val)
local a = val + 0x0666666666666666
a = a ~ val
@@ -240,7 +241,6 @@ function cheatfind.startplugin()
return resort
end
-
-- compare a data block to the current state
function cheat.compcur(olddata, oper, format, val, bcd, step)
local newdata = cheat.save(olddata.space, olddata.start, olddata.size, olddata.space)
@@ -253,23 +253,14 @@ function cheatfind.startplugin()
return cheat.compnext(newdata, olddata, oldmatch, oper, format, val, bcd, step)
end
-
- _G.cf = cheat
-
+ _G.emu.plugin.cheatfind = cheat
local devtable = {}
local devsel = 1
local devcur = 1
-
-
- --local formtable = { " I1", " i1", "<I2", ">I2", "<i2", ">i2", "<I4", ">I4", "<i4", ">i4", "<I8", ">I8", "<i8", ">i8", }-- " <f", " >f", " <d", " >d" }
- --local formname = { "u8", "s8", "little u16", "big u16", "little s16", "big s16",
- -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", }
- -- -- "little float", "big float", "little double", "big double" }
- -- Reordered into likelyhood of use order: unsigned byte by big endian unsigned by little endian unsigned then unsigned in same order
- local formtable = { " I1", ">I2", ">I4", ">I8", "<I2", "<I4", "<I8", " i1", ">i2", ">i4", ">i8", "<i2", "<i4", "<i8", }-- " <f", " >f", " <d", " >d" }
local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32",
- "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", }
-
+ "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", }
+ local formtable = { " I1", ">I2", ">I4", ">I8", "<I2", "<I4", "<I8", " i1", ">i2", ">i4", ">i8", "<i2", "<i4", "<i8", }
+ -- " <f", " >f", " <d", " >d" }
local width = 1
local bcd = 0
local align = 0
@@ -278,27 +269,20 @@ function cheatfind.startplugin()
local value = 0
local leftop = 1
local rightop = 1
- local leftop_text = "Slot 1"
- local rightop_text = "Slot 1"
local value_text = ""
- local expression_text = "Slot 1 < Slot 1"
- local pausetable = { "Automatic", "Manual" }
local pausesel = 1
- local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)",
- "0xFF (Decimal 255)" , "0x3E7 (Decimal 999)", "0x999 (BCD 999)", "0x270F (Decimal 9999)", "0x9999 (BCD 9999)", "0xFFFF (Decimal 65535)" }
local pokevalsel = 1
-
local matches = {}
local matchsel = 0
local matchpg = 0
local menu_blocks = {}
local watches = {}
local menu_func
-
local cheat_save
local name = 1
local name_player = 1
local name_type = 1
+ local name_other = ""
local function start()
devtable = {}
@@ -320,9 +304,11 @@ function cheatfind.startplugin()
for tag, list in pairs(space_table) do
for name, space in pairs(list) do
local ram = {}
- for num, entry in pairs(space.map) do
- if entry.writetype == "ram" then
- ram[#ram + 1] = { offset = entry.offset, size = entry.endoff - entry.offset }
+ for num, entry in pairs(space.map.entries) do
+ if entry.write.handlertype == "ram" then
+ ram[#ram + 1] = {
+ offset = entry.address_start & space.address_mask,
+ size = (entry.address_end & space.address_mask) - (entry.address_start & space.address_mask) }
if space.shift > 0 then
ram[#ram].size = ram[#ram].size >> space.shift
elseif space.shift < 0 then
@@ -349,7 +335,7 @@ function cheatfind.startplugin()
end
end
- emu.register_start(start)
+ reset_subscription = emu.add_machine_reset_notifier(start)
local menu_is_showing = false
local tabbed_out = false
@@ -367,7 +353,7 @@ function cheatfind.startplugin()
for num, func in ipairs(menu) do
local item, f = func()
if item then
- menu_list[#menu_list + 1] = item
+ table.insert(menu_list, item)
menu_func[#menu_list] = f
end
end
@@ -376,7 +362,7 @@ function cheatfind.startplugin()
local function menu_lim(val, min, max, menuitem)
if min == max then
- menuitem[3] = 0
+ menuitem[3] = "on"
elseif val == min then
menuitem[3] = "r"
elseif val == max then
@@ -387,7 +373,7 @@ function cheatfind.startplugin()
end
local function incdec(event, val, min, max)
- local ret
+ local ret = false
if event == "left" and val ~= min then
val = val - 1
ret = true
@@ -400,18 +386,18 @@ function cheatfind.startplugin()
if cheat_save then
local cplayer = { "All", "P1", "P2", "P3", "P4" }
- local ctype = { "Infinite Credits", "Infinite Time", "Infinite Lives", "Infinite Energy", "Infinite Ammo", "Infinite Bombs", "Invincibility" }
+ local ctype = { "Infinite Credits", "Infinite Time", "Infinite Lives", "Infinite Energy", "Infinite Ammo", "Infinite Bombs", "Invincibility", _("Other: ") }
menu[#menu + 1] = function() return { _("Save Cheat"), "", "off" }, nil end
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
local c = { _("Default"), _("Custom") }
- local m = { _("Cheat Name"), c[name], 0 }
+ local m = { _("Cheat Name"), c[name], "on" }
menu_lim(name, 1, #c, m)
local function f(event)
local r
name, r = incdec(event, name, 1, #c)
if (event == "select" or event == "comment") and name == 1 then
- manager:machine():popmessage(string.format(_("Default name is %s"), cheat_save.name))
+ manager.machine:popmessage(string.format(_("Default name is %s"), cheat_save.name))
end
return r
end
@@ -419,27 +405,49 @@ function cheatfind.startplugin()
end
if name == 2 then
menu[#menu + 1] = function()
- local m = { _("Player"), cplayer[name_player], 0 }
+ local m = { _("Player"), cplayer[name_player], "on" }
menu_lim(name_player, 1, #cplayer, m)
return m, function(event) local r name_player, r = incdec(event, name_player, 1, #cplayer) return r end
end
menu[#menu + 1] = function()
- local m = { _("Type"), ctype[name_type], 0 }
+ local m = { _("Type"), ctype[name_type] .. (name_type == #ctype and (#name_other ~= 0 and name_other or _("(empty)")) or ""), "on" }
menu_lim(name_type, 1, #ctype, m)
- return m, function(event) local r name_type, r = incdec(event, name_type, 1, #ctype) return r end
+ local function f(event)
+ local r
+ name_type, r = incdec(event, name_type, 1, #ctype)
+ if name_type == #ctype then
+ local char = tonumber(event)
+ if char then
+ if #name_other > 0 and (char == 8 or char == 0x7f) then
+ name_other = name_other:sub(1, utf8.offset(name_other, -1) - 1)
+ r = true
+ elseif char > 0x1f and (char & ~0x7f) ~= 0x80 and (char & ~0xf) ~= 0xfdd0 and (char & ~0xfffe) ~= 0xfffe then
+ name_other = name_other .. utf8.char(char)
+ r = true
+ end
+ elseif event == "select" or event == "comment" or event == "right" then
+ manager.machine:popmessage(_("You can enter any type name"))
+ end
+ end
+ return r
+ end
+ return m, f
end
end
menu[#menu + 1] = function()
- local m = { _("Save"), "", 0 }
+ local m = { _("Save"), "", "on" }
local function f(event)
if event == "select" then
local desc
local written = false
if name == 2 then
- if cplayer[name_player] == "All" then
- desc = ctype[name_type]
- else
- desc = cplayer[name_player] .. " " .. ctype[name_type]
+ desc = name_type ~= #ctype and ctype[name_type] or name_other
+ if #desc == 0 then
+ manager.machine:popmessage(_("Type name is empty"))
+ return
+ end
+ if cplayer[name_player] ~= "All" then
+ desc = cplayer[name_player] .. " " .. desc
end
else
desc = cheat_save.name
@@ -459,7 +467,7 @@ function cheatfind.startplugin()
-- old cheat .dat format, write support only (for cheat forum posting of new cheats if posted in simple format)
file:write(string.format(cheat_save.dat, desc))
file:close()
- manager:machine():popmessage(string.format(_("Cheat written to %s and added to cheat.simple"), filename))
+ manager.machine:popmessage(string.format(_("Cheat written to %s and added to cheat.simple"), filename))
end
written = true
elseif not getmetatable(devtable[devcur].space).__name:match("device_t") and devtable[devcur].sname == "program" then
@@ -469,12 +477,12 @@ function cheatfind.startplugin()
-- old cheat .dat format, write support only (for cheat forum posting of new cheats if posted in simple format)
file:write(string.format(cheat_save.dat, desc))
file:close()
- manager:machine():popmessage(_("Cheat added to cheat.simple"))
+ manager.machine:popmessage(_("Cheat added to cheat.simple"))
written = true
end
end
if not written then
- manager:machine():popmessage(_("Unable to write file\nEnsure that cheatpath folder exists"))
+ manager.machine:popmessage(_("Unable to write file\nEnsure that cheatpath folder exists"))
end
cheat_save = nil
return true
@@ -483,45 +491,46 @@ function cheatfind.startplugin()
end
return m, f
end
- menu[#menu + 1] = function() return { _("Cancel"), "", 0 }, function(event) if event == "select" then cheat_save = nil return true end end end
+ menu[#menu + 1] = function() return { _("Cancel"), "", "on" }, function(event) if event == "select" then cheat_save = nil return true end end end
return menu_prepare()
end
menu[#menu + 1] = function()
- local m = { _("CPU or RAM"), devtable[devsel].name, 0 }
+ local m = { _("CPU or RAM"), devtable[devsel].name, "on" }
menu_lim(devsel, 1, #devtable, m)
local function f(event)
if (event == "left" or event == "right") and #menu_blocks ~= 0 then
- manager:machine():popmessage(_("Changes to this only take effect when \"Start new search\" is selected"))
+ manager.machine:popmessage(_("Changes to this only take effect when \"Start new search\" is selected"))
end
- devsel = incdec(event, devsel, 1, #devtable)
- return true
+ local r
+ devsel, r = incdec(event, devsel, 1, #devtable)
+ return r
end
return m, f
end
menu[#menu + 1] = function()
- local m = { _("Pause Mode"), pausetable[pausesel], 0 }
+ local pausetable = { _("Automatic"), _("Manual") }
+ local m = { _("Pause Mode"), pausetable[pausesel], "on" }
menu_lim(pausesel, 1, pausetable, m)
local function f(event)
if (event == "left" or event == "right") then
if pausesel == 1 then
pausesel = 2
menu_is_showing = false
- manager:machine():popmessage(_("Manually pause & unpause the game when needed with the pause hotkey"))
+ manager.machine:popmessage(_("Manually toggle pause when needed"))
else
pausesel = 1
+ manager.machine:popmessage(_("Automatically toggle pause with on-screen menus"))
emu.pause()
end
+ return true
end
-
- return true
+ return false
end
return m, f
end
-
-
menu[#menu + 1] = function()
local function f(event)
local ret = false
@@ -533,26 +542,21 @@ function cheatfind.startplugin()
menu_blocks[num] = {}
menu_blocks[num][1] = cheat.save(devtable[devcur].space, region.offset, region.size)
end
- manager:machine():popmessage(_("All slots cleared and current state saved to Slot 1"))
+ manager.machine:popmessage(_("All slots cleared and current state saved to Slot 1"))
watches = {}
opsel = 1
value = 0
leftop = 1
rightop = 1
- leftop_text = "Slot 1"
- rightop_text = "Slot 1"
value_text = ""
- expression_text = "Slot 1 < Slot 1"
matchsel = 0
return true
end
end
- local opsel = 1
- return { _("Start new search"), "", 0 }, f
+ local opsel = 1
+ return { _("Start new search"), "", "on" }, f
end
-
-
if #menu_blocks ~= 0 then
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
@@ -561,8 +565,7 @@ function cheatfind.startplugin()
for num, region in ipairs(devtable[devcur].ram) do
menu_blocks[num][#menu_blocks[num] + 1] = cheat.save(devtable[devcur].space, region.offset, region.size)
end
- manager:machine():popmessage(string.format(_("Memory State saved to Slot %d"), #menu_blocks[1]))
-
+ manager.machine:popmessage(string.format(_("Memory state saved to Slot %d"), #menu_blocks[1]))
if (leftop == #menu_blocks[1] - 1 and rightop == #menu_blocks[1] - 2 ) then
leftop = #menu_blocks[1]
rightop = #menu_blocks[1]-1
@@ -574,13 +577,12 @@ function cheatfind.startplugin()
elseif (rightop == #menu_blocks[1] - 1) then
rightop = #menu_blocks[1]
end
- leftop_text = string.format("Slot %d", leftop)
- rightop_text = string.format("Slot %d", rightop)
devsel = devcur
return true
end
+ return false
end
- return { _("Save Current Memory State to Slot ") .. #menu_blocks[1] + 1, "", 0 }, f
+ return { string.format(_("Save current memory state to Slot %d"), #menu_blocks[1] + 1), "", "on" }, f
end
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
@@ -611,83 +613,89 @@ function cheatfind.startplugin()
count = count + #matches[#matches][num]
end
end
- manager:machine():popmessage(string.format(_("%d total matches found"), count))
+ manager.machine:popmessage(string.format(_("%d total matches found"), count))
matches[#matches].count = count
matchpg = 0
devsel = devcur
return true
end
+ return false
end
+ local slot_slot_comp = _("Perform Compare : Slot %d %s Slot %d")
+ local slot_slot_val_comp = _("Perform Compare : Slot %d %s Slot %d %s %d")
+ local slot_slot_bit_comp = _("Perform Compare : Slot %d BITWISE%s Slot %d")
+ local slot_val_comp = _("Perform Compare : Slot %d %s %d")
+ local expression_text
if optable[opsel] == "lt" then
if (value == 0 ) then
- expression_text = string.format("%s < %s", leftop_text, rightop_text)
+ expression_text = string.format(slot_slot_comp, leftop, "<", rightop)
else
- expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value)
+ expression_text = string.format(slot_slot_val_comp, leftop, "==", rightop, "-", value)
end
elseif optable[opsel] == "gt" then
if (value == 0 ) then
- expression_text = string.format("%s > %s", leftop_text, rightop_text)
+ expression_text = string.format(slot_slot_comp, leftop, ">", rightop)
else
- expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value)
+ expression_text = string.format(slot_slot_val_comp, leftop, "==", rightop, "+", value)
end
elseif optable[opsel] == "eq" then
- expression_text = string.format("%s == %s", leftop_text, rightop_text)
+ expression_text = string.format(slot_slot_comp, leftop, "==", rightop)
elseif optable[opsel] == "ne" then
if (value == 0 ) then
- expression_text = string.format("%s != %s", leftop_text, rightop_text)
+ expression_text = string.format(slot_slot_comp, leftop, "!=", rightop)
else
- expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value)
+ expression_text = string.format(slot_slot_val_comp, leftop, "==", rightop, "+/-", value)
end
elseif optable[opsel] == "beq" then
- expression_text = string.format("%s BITWISE== %s", leftop_text, rightop_text)
+ expression_text = string.format(slot_slot_bit_comp, leftop, "==", rightop)
elseif optable[opsel] == "bne" then
- expression_text = string.format("%s BITWISE!= %s", leftop_text, rightop_text)
+ expression_text = string.format(slot_slot_bit_comp, leftop, "!=", rightop)
elseif optable[opsel] == "ltv" then
- expression_text = string.format("%s < %d", leftop_text, value)
+ expression_text = string.format(slot_val_comp, leftop, "<", value)
elseif optable[opsel] == "gtv" then
- expression_text = string.format("%s > %d", leftop_text, value)
+ expression_text = string.format(slot_val_comp, leftop, ">", value)
elseif optable[opsel] == "eqv" then
- expression_text = string.format("%s == %d", leftop_text, value)
+ expression_text = string.format(slot_val_comp, leftop, "==", value)
elseif optable[opsel] == "nev" then
- string.format("%s != %d", leftop_text, value)
+ expression_text = string.format(slot_val_comp, leftop, "!=", value)
end
- return { _("Perform Compare : ") .. expression_text, "", 0 }, f
+ return { expression_text, "", "on" }, f
end
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
- local m = { _(leftop), "", 0 }
+ local m = { string.format("%d", leftop), "", "on" }
menu_lim(leftop, 1, #menu_blocks[1], m)
- m[1] = string.format("Slot %d", leftop)
- return m, function(event) local r leftop, r = incdec(event, leftop, 1, #menu_blocks[1]) leftop_text = "Slot " .. leftop return r end
+ m[1] = string.format(_("Slot %d"), leftop)
+ return m, function(event) local r leftop, r = incdec(event, leftop, 1, #menu_blocks[1]) return r end
end
menu[#menu + 1] = function()
- local m = { _(optable[opsel]), "", 0 }
+ local m = { _(optable[opsel]), "", "on" }
menu_lim(opsel, 1, #optable, m)
local function f(event)
local r
opsel, r = incdec(event, opsel, 1, #optable)
if event == "left" or event == "right" or event == "comment" then
if optable[opsel] == "lt" then
- manager:machine():popmessage(_("Left less than right"))
+ manager.machine:popmessage(_("Left less than right"))
elseif optable[opsel] == "gt" then
- manager:machine():popmessage(_("Left greater than right"))
+ manager.machine:popmessage(_("Left greater than right"))
elseif optable[opsel] == "eq" then
- manager:machine():popmessage(_("Left equal to right"))
+ manager.machine:popmessage(_("Left equal to right"))
elseif optable[opsel] == "ne" then
- manager:machine():popmessage(_("Left not equal to right"))
+ manager.machine:popmessage(_("Left not equal to right"))
elseif optable[opsel] == "beq" then
- manager:machine():popmessage(_("Left equal to right with bitmask"))
+ manager.machine:popmessage(_("Left equal to right with bitmask"))
elseif optable[opsel] == "bne" then
- manager:machine():popmessage(_("Left not equal to right with bitmask"))
+ manager.machine:popmessage(_("Left not equal to right with bitmask"))
elseif optable[opsel] == "ltv" then
- manager:machine():popmessage(_("Left less than value"))
+ manager.machine:popmessage(_("Left less than value"))
elseif optable[opsel] == "gtv" then
- manager:machine():popmessage(_("Left greater than value"))
+ manager.machine:popmessage(_("Left greater than value"))
elseif optable[opsel] == "eqv" then
- manager:machine():popmessage(_("Left equal to value"))
+ manager.machine:popmessage(_("Left equal to value"))
elseif optable[opsel] == "nev" then
- manager:machine():popmessage(_("Left not equal to value"))
+ manager.machine:popmessage(_("Left not equal to value"))
end
end
return r
@@ -698,10 +706,10 @@ function cheatfind.startplugin()
if optable[opsel]:sub(3, 3) == "v" then
return nil
end
- local m = { _(rightop), "", 0 }
+ local m = { string.format("%d", rightop), "", "on" }
menu_lim(rightop, 1, #menu_blocks[1], m)
- m[1] = string.format("Slot %d", rightop)
- return m, function(event) local r rightop, r = incdec(event, rightop, 1, #menu_blocks[1]) rightop_text = "Slot " .. rightop return r end
+ m[1] = string.format(_("Slot %d"), rightop)
+ return m, function(event) local r rightop, r = incdec(event, rightop, 1, #menu_blocks[1]) return r end
end
menu[#menu + 1] = function()
if optable[opsel] == "bne" or optable[opsel] == "beq" or optable[opsel] == "eq" then
@@ -709,9 +717,9 @@ function cheatfind.startplugin()
end
local m
if optable[opsel] == "ltv" or optable[opsel] == "gtv" or optable[opsel] == "eqv" or optable[opsel] == "nev" then
- m = { _("Value"), value, "" }
+ m = { _("Value"), tostring(value), "" }
else
- m = { _("Difference"), value, "" }
+ m = { _("Difference"), tostring(value), "" }
end
local max = 100 -- max value?
menu_lim(value, 0, max, m)
@@ -722,58 +730,27 @@ function cheatfind.startplugin()
end
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
- local m = { _("Data Format"), formname[width], 0 }
+ local m = { _("Data Format"), formname[width], "on" }
menu_lim(width, 1, #formtable, m)
return m, function(event) local r width, r = incdec(event, width, 1, #formtable) return r end
end
menu[#menu + 1] = function()
- local m = { _("Test/Write Poke Value"), pokevaltable[pokevalsel], 0 }
+ local pokevaltable = { _("Slot 1 Value"), _("Last Slot Value"), "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06",
+ "0x07", "0x08", "0x09", "0x63 (99)", "0x99", "0xFF (255)" , "0x3E7 (999)", "0x999", "0x270F (9999)",
+ "0x9999", "0xFFFF (65535)" }
+ local m = { _("Test/Write Poke Value"), pokevaltable[pokevalsel], "on" }
menu_lim(pokevalsel, 1, #pokevaltable, m)
local function f(event)
local r
pokevalsel, r = incdec(event, pokevalsel, 1, #pokevaltable)
if event == "left" or event == "right" or event == "comment" then
if pokevalsel == 1 then
- manager:machine():popmessage(_("Use this if you want to poke the Slot 1 value (eg. You started with something but lost it)"))
+ manager.machine:popmessage(_("Use this if you want to poke the Slot 1 value (eg. You started with something but lost it)"))
elseif pokevalsel == 2 then
- manager:machine():popmessage(_("Use this if you want to poke the Last Slot value (eg. You started without an item but finally got it)"))
- elseif pokevalsel == 3 then
- manager:machine():popmessage(_("Use this if you want to poke 0x00"))
- elseif pokevalsel == 4 then
- manager:machine():popmessage(_("Use this if you want to poke 0x01"))
- elseif pokevalsel == 5 then
- manager:machine():popmessage(_("Use this if you want to poke 0x02"))
- elseif pokevalsel == 6 then
- manager:machine():popmessage(_("Use this if you want to poke 0x03"))
- elseif pokevalsel == 7 then
- manager:machine():popmessage(_("Use this if you want to poke 0x04"))
- elseif pokevalsel == 8 then
- manager:machine():popmessage(_("Use this if you want to poke 0x05"))
- elseif pokevalsel == 9 then
- manager:machine():popmessage(_("Use this if you want to poke 0x06"))
- elseif pokevalsel == 10 then
- manager:machine():popmessage(_("Use this if you want to poke 0x07"))
- elseif pokevalsel == 11 then
- manager:machine():popmessage(_("Use this if you want to poke 0x08"))
- elseif pokevalsel == 12 then
- manager:machine():popmessage(_("Use this if you want to poke 0x09"))
- elseif pokevalsel == 13 then
- manager:machine():popmessage(_("Use this if you want to poke 0x63 (Decimal 99)"))
- elseif pokevalsel == 14 then
- manager:machine():popmessage(_("Use this if you want to poke 0x99 (BCD 99)"))
- elseif pokevalsel == 15 then
- manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)"))
- elseif pokevalsel == 16 then
- manager:machine():popmessage(_("Use this if you want to poke 0x3E7 (Decimal 999)"))
- elseif pokevalsel == 17 then
- manager:machine():popmessage(_("Use this if you want to poke 0x999 (BCD 999)"))
- elseif pokevalsel == 18 then
- manager:machine():popmessage(_("Use this if you want to poke 0x270F (Decimal 9999)"))
- elseif pokevalsel == 19 then
- manager:machine():popmessage(_("Use this if you want to poke 0x9999 (BCD 9999)"))
- elseif pokevalsel == 20 then
- manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)"))
+ manager.machine:popmessage(_("Use this if you want to poke the Last Slot value (eg. You started without an item but finally got it)"))
+ else
+ manager.machine:popmessage(string.format(_("Use this if you want to poke %s"), pokevaltable[pokevalsel]))
end
end
return r
@@ -781,12 +758,11 @@ function cheatfind.startplugin()
return m, f
end
-
menu[#menu + 1] = function()
if optable[opsel] == "bne" or optable[opsel] == "beq" then
return nil
end
- local m = { "BCD", _("Off"), 0 }
+ local m = { "BCD", _("Off"), "on" }
menu_lim(bcd, 0, 1, m)
if bcd == 1 then
m[2] = _("On")
@@ -797,7 +773,7 @@ function cheatfind.startplugin()
if formtable[width]:sub(3, 3) == "1" then
return nil
end
- local m = { "Aligned only", _("Off"), 0 }
+ local m = { _("Aligned only"), _("Off"), "on" }
menu_lim(align, 0, 1, m)
if align == 1 then
m[2] = _("On")
@@ -812,12 +788,13 @@ function cheatfind.startplugin()
matchpg = 0
return true
end
+ return false
end
- return { _("Undo last search -- #") .. #matches, "", 0 }, f
+ return { _("Undo last search -- #") .. #matches, "", "on" }, f
end
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
- local m = { _("Match block"), matchsel, "" }
+ local m = { _("Match block"), tostring(matchsel), "" }
menu_lim(matchsel, 0, #matches[#matches], m)
if matchsel == 0 then
m[2] = _("All")
@@ -873,65 +850,63 @@ function cheatfind.startplugin()
local function match_exec(match)
local dev = devtable[devcur]
-
local wid = formtable[width]:sub(3, 3)
local widchar
local pokevalue
local form
-
- if pokevalsel == 1 then
+ if pokevalsel == 1 then
pokevalue = match.oldval
- elseif pokevalsel == 2 then
+ elseif pokevalsel == 2 then
pokevalue = match.newval
- elseif pokevalsel == 3 then
+ elseif pokevalsel == 3 then
pokevalue = 0
- elseif pokevalsel == 4 then
+ elseif pokevalsel == 4 then
pokevalue = 1
- elseif pokevalsel == 5 then
+ elseif pokevalsel == 5 then
pokevalue = 2
- elseif pokevalsel == 6 then
+ elseif pokevalsel == 6 then
pokevalue = 3
- elseif pokevalsel == 7 then
+ elseif pokevalsel == 7 then
pokevalue = 4
- elseif pokevalsel == 8 then
+ elseif pokevalsel == 8 then
pokevalue = 5
- elseif pokevalsel == 9 then
+ elseif pokevalsel == 9 then
pokevalue = 6
- elseif pokevalsel == 10 then
+ elseif pokevalsel == 10 then
pokevalue = 7
- elseif pokevalsel == 11 then
+ elseif pokevalsel == 11 then
pokevalue = 8
- elseif pokevalsel == 12 then
+ elseif pokevalsel == 12 then
pokevalue = 9
- elseif pokevalsel == 13 then
+ elseif pokevalsel == 13 then
pokevalue = 99
- elseif pokevalsel == 14 then
+ elseif pokevalsel == 14 then
pokevalue = 153
- elseif pokevalsel == 15 then
+ elseif pokevalsel == 15 then
pokevalue = 255
- elseif pokevalsel == 16 and wid == "1" then
+ elseif pokevalsel == 16 and wid == "1" then
pokevalue = 99
- elseif pokevalsel == 17 and wid == "1" then
+ elseif pokevalsel == 17 and wid == "1" then
pokevalue = 153
- elseif pokevalsel == 18 and wid == "1" then
+ elseif pokevalsel == 18 and wid == "1" then
pokevalue = 99
- elseif pokevalsel == 19 and wid == "1" then
+ elseif pokevalsel == 19 and wid == "1" then
pokevalue = 153
- elseif pokevalsel == 20 and wid == "1" then
+ elseif pokevalsel == 20 and wid == "1" then
pokevalue = 255
- elseif pokevalsel == 16 then
+ elseif pokevalsel == 16 then
pokevalue = 999
- elseif pokevalsel == 17 then
+ elseif pokevalsel == 17 then
pokevalue = 2457
- elseif pokevalsel == 18 then
+ elseif pokevalsel == 18 then
pokevalue = 9999
- elseif pokevalsel == 19 then
+ elseif pokevalsel == 19 then
pokevalue = 39321
- elseif pokevalsel == 20 then
+ elseif pokevalsel == 20 then
pokevalue = 65535
end
- local cheat = { desc = string.format(_("Test Cheat %08X:%02X"), match.addr, pokevalue), script = {} }
+ local cheat = { desc = string.format(_("Test Cheat %08X_%02X"), match.addr, pokevalue), script = {} }
if wid == "2" then
wid = "u16"
@@ -970,10 +945,10 @@ function cheatfind.startplugin()
cheat.script.run = "cpu:write_" .. wid .. "(" .. match.addr .. "," .. pokevalue .. ")"
end
if match.mode == 1 then
- if not _G.ce then
- manager:machine():popmessage(_("Cheat engine not available"))
+ if not emu.plugin.cheat then
+ manager.machine:popmessage(_("Cheat engine not available"))
else
- _G.ce.inject(cheat)
+ emu.plugin.cheat.inject(cheat)
end
elseif match.mode == 2 then
cheat_save = {}
@@ -983,17 +958,16 @@ function cheatfind.startplugin()
local setname = emu.romname()
if emu.softname() ~= "" then
if emu.softname():find(":") then
- filename = emu.softname():gsub(":", "/")
+ setname = emu.softname():gsub(":", "/")
else
- for name, image in pairs(manager:machine().images) do
- if image:exists() and image:software_list_name() ~= "" then
- setname = image:software_list_name() .. "/" .. emu.softname()
+ for name, image in pairs(manager.machine.images) do
+ if image.exists and image.software_list_name ~= "" then
+ setname = image.software_list_name .. "/" .. emu.softname()
end
end
end
end
- -- lfs.env_replace is defined in boot.lua
- cheat_save.path = lfs.env_replace(manager:machine():options().entries.cheatpath:value()):match("([^;]+)")
+ cheat_save.path = manager.machine.options.entries.cheatpath:value():match("([^;]+)")
cheat_save.filename = string.format("%s/%s", cheat_save.path, setname)
cheat_save.name = cheat.desc
local json = require("json")
@@ -1001,14 +975,17 @@ function cheatfind.startplugin()
cheat_save.json = json.stringify({[1] = cheat}, {indent = true})
cheat_save.xml = string.format("<mamecheat version=\"1\">\n <cheat desc=\"%%s\">\n <script state=\"run\">\n <action>%s.pp%s@%X=%X</action>\n </script>\n </cheat>\n</mamecheat>", dev.tag:sub(2), widchar, match.addr, match.newval)
cheat_save.simple = string.format("%s,%s,%X,%s,%X,%%s\n", setname, dev.tag, match.addr, widchar, pokevalue)
- cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue)
- manager:machine():popmessage(string.format(_("Default name is %s"), cheat_save.name))
+ cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue)
+ manager.machine:popmessage(string.format(_("Default name is %s"), cheat_save.name))
return true
else
local func = "return space:read"
- local env = { space = devtable[devcur].space }
+ local env = {}
if not getmetatable(dev.space).__name:match("device_t") then
+ env.space = devtable[devcur].space;
func = func .. "_" .. wid
+ else
+ env.space = emu.item(dev.space.items["0/m_pointer"])
end
func = func .. "(" .. match.addr .. ")"
watches[#watches + 1] = { addr = match.addr, func = load(func, func, "t", env), format = form }
@@ -1027,7 +1004,7 @@ function cheatfind.startplugin()
end
local modes = { _("Test"), _("Write"), _("Watch") }
local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval,
- match.newval), modes[match.mode], 0 }
+ match.newval), modes[match.mode], "on" }
menu_lim(match.mode, 1, #modes, m)
local function f(event)
local r
@@ -1042,7 +1019,7 @@ function cheatfind.startplugin()
end
if matches[#matches].count > 100 then
menu[#menu + 1] = function()
- local m = { _("Page"), matchpg, 0 }
+ local m = { _("Page"), tostring(matchpg), "on" }
local max
if matchsel == 0 then
max = math.ceil(matches[#matches].count / 100) - 1
@@ -1051,6 +1028,7 @@ function cheatfind.startplugin()
end
menu_lim(matchpg, 0, max, m)
local function f(event)
+ local r
matchpg, r = incdec(event, matchpg, 0, max)
return r
end
@@ -1060,7 +1038,7 @@ function cheatfind.startplugin()
end
if #watches ~= 0 then
menu[#menu + 1] = function()
- return { _("Clear Watches"), "", 0 }, function(event) if event == "select" then watches = {} return true end end
+ return { _("Clear Watches"), "", "on" }, function(event) if event == "select" then watches = {} return true end end
end
end
end
@@ -1068,28 +1046,29 @@ function cheatfind.startplugin()
end
local function menu_callback(index, event)
- if event == "cancel" and pausesel == 1 then
+ if event == "back" and pausesel == 1 then
emu.unpause()
menu_is_showing = false
- return {0,0,0}
+ return false -- return false so menu will be popped off the stack
end
+ if index == 0 then return false end
return menu_func[index](event)
end
emu.register_menu(menu_callback, menu_populate, _("Cheat Finder"))
emu.register_frame_done(function ()
- local tag, screen = next(manager:machine().screens)
- local height = mame_manager:ui():get_line_height()
+ local screen = manager.machine.render.ui_container
+ local height = mame_manager.ui.line_height
for num, watch in ipairs(watches) do
screen:draw_text("left", num * height, string.format(watch.format, watch.addr, watch.func()))
end
- if tabbed_out and manager:ui():is_menu_active() then
+ if tabbed_out and manager.ui.menu_active then
emu.pause()
menu_is_showing = true
tabbed_out = false
end
end)
emu.register_periodic(function ()
- if menu_is_showing and not manager:ui():is_menu_active() then
+ if menu_is_showing and not manager.ui.menu_active then
emu.unpause()
menu_is_showing = false
tabbed_out = true
diff --git a/plugins/commonui/init.lua b/plugins/commonui/init.lua
new file mode 100644
index 00000000000..5219e7dbb9e
--- /dev/null
+++ b/plugins/commonui/init.lua
@@ -0,0 +1,216 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Vas Crabb
+local exports = {
+ name = 'commonui',
+ version = '0.0.1',
+ description = 'Common plugin UI helpers',
+ license = 'BSD-3-Clause',
+ author = { name = 'Vas Crabb' } }
+
+
+local commonui = exports
+
+
+function commonui.input_selection_menu(action, title, filter)
+ menu = { }
+
+ local choices
+ local index_first_choice
+ local index_cancel
+
+ local function populate_choices()
+ local ioport = manager.machine.ioport
+
+ local function compare(a, b)
+ if a.device.tag < b.device.tag then
+ return true
+ elseif a.device.tag > b.device.tag then
+ return false
+ end
+ groupa = ioport:type_group(a.type, a.player)
+ groupb = ioport:type_group(b.type, b.player)
+ if groupa < groupb then
+ return true
+ elseif groupa > groupb then
+ return false
+ elseif a.type < b.type then
+ return true
+ elseif a.type > b.type then
+ return false
+ else
+ return a.name < b.name
+ end
+ end
+
+ choices = { }
+ for tag, port in pairs(manager.machine.ioport.ports) do
+ for name, field in pairs(port.fields) do
+ if (not filter) or filter(field) then
+ table.insert(choices, field)
+ end
+ end
+ end
+ table.sort(choices, compare)
+
+ local index = 1
+ local prev
+ while index <= #choices do
+ local current = choices[index]
+ if (not prev) or (prev.device.tag ~= current.device.tag) then
+ table.insert(choices, index, false)
+ index = index + 2
+ else
+ index = index + 1
+ end
+ prev = current
+ end
+ end
+
+ function menu:populate(initial_selection)
+ if not choices then
+ populate_choices()
+ end
+
+ local items = { }
+
+ if title then
+ table.insert(items, { title, '', 'off' })
+ table.insert(items, { '---', '', '' })
+ end
+
+ index_first_choice = #items + 1
+ local selection = index_first_choice
+ for index, field in ipairs(choices) do
+ if field then
+ table.insert(items, { field.name, '', '' })
+ if initial_selection and (field.port.tag == initial_selection.port.tag) and (field.mask == initial_selection.mask) and (field.type == initial_selection.type) then
+ selection = #items
+ initial_selection = nil
+ end
+ else
+ local device = choices[index + 1].device
+ if device.owner then
+ table.insert(items, { string.format(_p('plugin-commonui', '%s [root%s]'), device.name, device.tag), '', 'heading' })
+ else
+ table.insert(items, { string.format(_p('plugin-commonui', '[root%s]'), device.tag), '', 'heading' })
+ end
+ end
+ end
+
+ table.insert(items, { '---', '', '' })
+ table.insert(items, { _p('plugin-commonui', 'Cancel'), '', '' })
+ index_cancel = #items
+
+ return items, selection
+ end
+
+ function menu:handle(index, event)
+ local selection
+ if (event == 'back') or ((index == input_item_cancel) and (event == 'select')) then
+ action(nil)
+ return true
+ elseif event == 'select' then
+ local field = choices[index - index_first_choice + 1]
+ if field then
+ action(field)
+ return true
+ end
+ elseif event == 'prevgroup' then
+ local found_break = false
+ while (index > index_first_choice) and (not selection) do
+ index = index - 1
+ if not choices[index - index_first_choice + 1] then
+ if found_break then
+ selection = index + 1
+ else
+ found_break = true
+ end
+ end
+ end
+ elseif event == 'nextgroup' then
+ while ((index - index_first_choice + 2) < #choices) and (not selection) do
+ index = index + 1
+ if not choices[index - index_first_choice + 1] then
+ selection = index + 1
+ end
+ end
+ end
+ return false, selection
+ end
+
+ return menu
+end
+
+
+function commonui.switch_polling_helper(starting_sequence)
+ helper = { }
+
+ local machine = manager.machine
+ local cancel = machine.ioport:token_to_input_type('UI_CANCEL')
+ local cancel_prompt = manager.ui:get_general_input_setting(cancel)
+ local input = machine.input
+ local uiinput = machine.uiinput
+ local poller = input:switch_sequence_poller()
+ local modified_ticks = 0
+
+ if starting_sequence then
+ poller:start(starting_sequence)
+ else
+ poller:start()
+ end
+
+ function helper:overlay(items, selection, flags)
+ if flags then
+ flags = flags .. " nokeys"
+ else
+ flags = "nokeys"
+ end
+ return items, selection, flags
+ end
+
+ function helper:poll()
+ -- prevent race condition between uiinput:pressed() and poll()
+ if (modified_ticks == 0) and poller.modified then
+ modified_ticks = emu.osd_ticks()
+ end
+
+ if uiinput:pressed(cancel) then
+ -- UI_CANCEL pressed, abort
+ machine:popmessage()
+ uiinput:reset()
+ if (not poller.modified) or (modified_ticks == emu.osd_ticks()) then
+ -- cancelled immediately
+ self.sequence = nil -- TODO: communicate this better?
+ return true
+ else
+ -- entered something before cancelling
+ self.sequence = nil
+ return true
+ end
+ elseif poller:poll() then
+ uiinput:reset()
+ if poller.valid then
+ -- valid sequence entered
+ machine:popmessage()
+ self.sequence = poller.sequence
+ return true
+ else
+ -- invalid sequence entered
+ machine:popmessage(_p('plugin-commonui', 'Invalid combination entered'))
+ self.sequence = nil
+ return true
+ end
+ else
+ machine:popmessage(string.format(
+ _p('plugin-commonui', 'Enter combination or press %s to cancel\n%s'),
+ cancel_prompt,
+ input:seq_name(poller.sequence)))
+ return false
+ end
+ end
+
+ return helper
+end
+
+
+return exports
diff --git a/plugins/commonui/plugin.json b/plugins/commonui/plugin.json
new file mode 100644
index 00000000000..b826f11f864
--- /dev/null
+++ b/plugins/commonui/plugin.json
@@ -0,0 +1,9 @@
+{
+ "plugin": {
+ "name": "commonui",
+ "description": "Common plugin UI helpers",
+ "version": "0.0.1",
+ "author": "Vas Crabb",
+ "type": "library"
+ }
+}
diff --git a/plugins/console/init.lua b/plugins/console/init.lua
index 52d54fdcc1a..a9835ae4ad4 100644
--- a/plugins/console/init.lua
+++ b/plugins/console/init.lua
@@ -5,34 +5,36 @@ local exports = {}
exports.name = "console"
exports.version = "0.0.1"
exports.description = "Console plugin"
-exports.license = "The BSD 3-Clause License"
+exports.license = "BSD-3-Clause"
exports.author = { name = "Carl" }
local console = exports
+local history_file = "console_history"
+
+local history_fullpath = nil
+
+local reset_subscription, stop_subscription
function console.startplugin()
local conth = emu.thread()
+ local ln_started = false
local started = false
+ local stopped = false
local ln = require("linenoise")
local preload = false
local matches = {}
local lastindex = 0
local consolebuf
- _G.history = function (index)
- local history = ln.historyget()
- if index then
- ln.preload(history[index])
- return
- end
- for num, line in ipairs(history) do
- print(num, line)
- end
- end
- print(" _/ _/ _/_/ _/ _/ _/_/_/_/");
- print(" _/_/ _/_/ _/ _/ _/_/ _/_/ _/ ");
- print(" _/ _/ _/ _/_/_/_/ _/ _/ _/ _/_/_/ ");
- print(" _/ _/ _/ _/ _/ _/ _/ ");
- print("_/ _/ _/ _/ _/ _/ _/_/_/_/ \n");
+ print(" /| /| /| /| /| _______")
+ print(" / | / | / | / | / | / /")
+ print(" / |/ | / | / |/ | / ____/ ")
+ print(" / | / | / | / /_ ")
+ print(" / |/ | / |/ __/ ")
+ print(" / /| /| /| |/ /| /| /____ ")
+ print(" / / | / | / | / | / | / ")
+ print("/ _/ |/ / / |___/ |/ /_______/ ")
+ print(" / / ")
+ print(" / _/ \n")
print(emu.app_name() .. " " .. emu.app_version(), "\nCopyright (C) Nicola Salmoria and the MAME team\n");
print(_VERSION, "\nCopyright (C) Lua.org, PUC-Rio\n");
-- linenoise isn't thread safe but that means history can handled here
@@ -40,14 +42,21 @@ function console.startplugin()
-- especially the completion callback
ln.historysetmaxlen(50)
local scr = [[
-local ln = require('linenoise')
-ln.setcompletion(function(c, str, pos)
- status = str .. "\x01" .. tostring(pos)
- yield()
- ln.addcompletion(c, status:match("([^\x01]*)\x01(.*)"))
-end)
-return ln.linenoise('$PROMPT')
-]]
+ local ln = require('linenoise')
+ ln.setcompletion(
+ function(c, str)
+ status = str
+ yield()
+ for candidate in status:gmatch('([^\001]+)') do
+ ln.addcompletion(c, candidate)
+ end
+ end)
+ local ret = ln.linenoise('$PROMPT')
+ if ret == nil then
+ return "\n"
+ end
+ return ret
+ ]]
local keywords = {
'and', 'break', 'do', 'else', 'elseif', 'end', 'false', 'for',
'function', 'if', 'in', 'local', 'nil', 'not', 'or', 'repeat',
@@ -58,7 +67,7 @@ return ln.linenoise('$PROMPT')
-- Main completion function. It evaluates the current sub-expression
-- to determine its type. Currently supports tables fields, global
-- variables and function prototype completion.
- local function contextual_list(expr, sep, str, word)
+ local function contextual_list(expr, sep, str, word, strs)
local function add(value)
value = tostring(value)
if value:match("^" .. word) then
@@ -78,7 +87,7 @@ return ln.linenoise('$PROMPT')
end
if expr and expr ~= "" then
- local v = loadstring("return " .. expr)
+ local v = load("local STRING = {'" .. table.concat(strs,"','") .. "'} return " .. expr)
if v then
err, v = pcall(v)
if (not err) or (not v) then
@@ -144,6 +153,7 @@ return ln.linenoise('$PROMPT')
-- separator item ( '.', ':', '[', '(' ) and the current string in case
-- of an unfinished string literal.
local function simplify_expression(expr, word)
+ local strs = {}
-- Replace annoying sequences \' and \" inside literal strings
expr = expr:gsub("\\(['\"])", function (c)
return string.format("\\%03d", string.byte(c))
@@ -163,7 +173,10 @@ return ln.linenoise('$PROMPT')
idx, startpat, endpat = idx2, sign, sign
end
if expr:sub(idx):find("^" .. startpat .. ".-" .. endpat) then
- expr = expr:gsub(startpat .. "(.-)" .. endpat, " STRING ")
+ expr = expr:gsub(startpat .. "(.-)" .. endpat, function (str)
+ strs[#strs + 1] = str
+ return " STRING[" .. #strs .. "] "
+ end)
else
expr = expr:gsub(startpat .. "(.*)", function (str)
curstring = str
@@ -180,14 +193,11 @@ return ln.linenoise('$PROMPT')
expr = expr:gsub("(%w)%s+(%w)","%1|%2")
expr = expr:gsub("%s+", "") -- Remove now useless spaces
-- This main regular expression looks for table indexes and function calls.
- return curstring, expr:match("([%.:%w%(%)%[%]_]-)([:%.%[%(])" .. word .. "$")
+ return curstring, strs, expr:match("([%.:%w%(%)%[%]_]-)([:%.%[%(])" .. word .. "$")
end
- local function get_completions(line, endpos)
+ local function get_completions(line)
matches = {}
- local endstr = line:sub(endpos + 1, -1)
- line = line:sub(1, endpos)
- endstr = endstr or ""
local start, word = line:match("^(.*[ \t\n\"\\'><=;:%+%-%*/%%^~#{}%(%)%[%].,])(.-)$")
if not start then
start = ""
@@ -196,30 +206,44 @@ return ln.linenoise('$PROMPT')
word = word or ""
end
- local str, expr, sep = simplify_expression(line, word)
- contextual_list(expr, sep, str, word)
- if #matches > 1 then
- print("\n")
- for k, v in pairs(matches) do
- print(v)
- end
- return "\x01" .. "-1"
+ local str, strs, expr, sep = simplify_expression(line, word)
+ contextual_list(expr, sep, str, word, strs)
+ if #matches == 0 then
+ return line
elseif #matches == 1 then
- return start .. matches[1] .. endstr .. "\x01" .. (#start + #matches[1])
+ return start .. matches[1]
+ end
+ print("")
+ result = { }
+ for k, v in pairs(matches) do
+ print(v)
+ table.insert(result, start .. v)
end
- return "\x01" .. "-1"
+ return table.concat(result, '\001')
end
- emu.register_start(function()
- if not consolebuf and manager:machine():debugger() then
- consolebuf = manager:machine():debugger().consolelog
+ reset_subscription = emu.add_machine_reset_notifier(function ()
+ if not consolebuf and manager.machine.debugger then
+ consolebuf = manager.machine.debugger.consolelog
lastindex = 0
end
end)
- emu.register_stop(function() consolebuf = nil end)
+ stop_subscription = emu.add_machine_stop_notifier(function ()
+ consolebuf = nil
+ end)
- emu.register_periodic(function()
+ emu.register_periodic(function ()
+ if stopped then
+ return
+ end
+ if (not started) then
+ -- options are not available in startplugin, so we load the history here
+ local homepath = manager.options.entries.homepath:value():match("([^;]+)")
+ history_fullpath = homepath .. '/' .. history_file
+ ln.loadhistory(history_fullpath)
+ started = true
+ end
local prompt = "\x1b[1;36m[MAME]\x1b[0m> "
if consolebuf and (#consolebuf > lastindex) then
local last = #consolebuf
@@ -228,22 +252,26 @@ return ln.linenoise('$PROMPT')
lastindex = lastindex + 1
print(consolebuf[lastindex])
end
- ln.refresh()
+ -- ln.refresh() FIXME: how to replicate this now that the API has been removed?
end
if conth.yield then
- conth:continue(get_completions(conth.result:match("([^\x01]*)\x01(.*)")))
+ conth:continue(get_completions(conth.result))
return
elseif conth.busy then
return
- elseif started then
+ elseif ln_started then
local cmd = conth.result
- if cmd == "" then
+ if cmd == "\n" then
+ stopped = true
+ return
+ elseif cmd == "" then
if cmdbuf ~= "" then
print("Incomplete command")
cmdbuf = ""
end
else
cmdbuf = cmdbuf .. "\n" .. cmd
+ ln.historyadd(cmd)
local func, err = load(cmdbuf)
if not func then
if err:match("<eof>") then
@@ -253,19 +281,28 @@ return ln.linenoise('$PROMPT')
cmdbuf = ""
end
else
+ cmdbuf = ""
+ stopped = true
local status
status, err = pcall(func)
if not status then
print("error: ", err)
end
- cmdbuf = ""
+ stopped = false
end
- ln.historyadd(cmd)
end
end
conth:start(scr:gsub("$PROMPT", prompt))
- started = true
+ ln_started = true
end)
end
+setmetatable(console, {
+ __gc = function ()
+ if history_fullpath then
+ local ln = require("linenoise")
+ ln.savehistory(history_fullpath)
+ end
+end})
+
return exports
diff --git a/plugins/data/button_char.lua b/plugins/data/button_char.lua
index cee756c2603..02c64d9673c 100644
--- a/plugins/data/button_char.lua
+++ b/plugins/data/button_char.lua
@@ -236,9 +236,9 @@ local convert_text =
}
local function convert_char(str)
- str = str:gsub("@([a-zA-Z%-]+)", function(s) if convert_text[s] then return utf8.char(convert_text[s] + 0xe000) end return s end)
- str = str:gsub("_(.)", function(s) if default_text[s] then return utf8.char(default_text[s] + 0xe000) end return s end)
- str = str:gsub("%^(.)", function(s) if expand_text[s] then return utf8.char(expand_text[s] + 0xe000) end return s end)
+ str = str:gsub("@(%g+)", function(s) if convert_text[s] then return utf8.char(convert_text[s] + 0xe000) end return s end)
+ str = str:gsub("_(%g)", function(s) if default_text[s] then return utf8.char(default_text[s] + 0xe000) end return s end)
+ str = str:gsub("%^(%g)", function(s) if expand_text[s] then return utf8.char(expand_text[s] + 0xe000) end return s end)
return str
end
diff --git a/plugins/data/data_command.lua b/plugins/data/data_command.lua
index e85533d152c..910a20beadc 100644
--- a/plugins/data/data_command.lua
+++ b/plugins/data/data_command.lua
@@ -1,9 +1,16 @@
local dat = {}
+
local info, ver
-local datread = require("data/load_dat")
+local datread = require('data/load_dat')
do
- local convert = require("data/button_char")
- datread, ver = datread.open("command.dat", "# Command List%-.+hand", convert)
+ local buttonchar
+ local function convert(str)
+ if not buttonchar then
+ buttonchar = require("data/button_char")
+ end
+ return buttonchar(str)
+ end
+ datread, ver = datread.open('command.dat', '#[^V]*Ver[^.:]*[.:]', convert)
end
function dat.check(set, softlist)
@@ -11,12 +18,11 @@ function dat.check(set, softlist)
return nil
end
local status
- status, info = pcall(datread, "cmd", "info", set)
+ status, info = pcall(datread, 'cmd', 'info', set)
if not status or not info then
return nil
end
- info = "#jf\n" .. info
- return _("Command")
+ return _p('plugin-data', 'Command')
end
function dat.get()
diff --git a/plugins/data/data_gameinit.lua b/plugins/data/data_gameinit.lua
index 7b93334e2ce..f6856629bb8 100644
--- a/plugins/data/data_gameinit.lua
+++ b/plugins/data/data_gameinit.lua
@@ -1,19 +1,19 @@
local dat = {}
-local ver, info
-local datread = require("data/load_dat")
-datread, ver = datread.open("gameinit.dat", "# .-GAMEINIT.DAT")
+local ver, info
+local datread = require('data/load_dat')
+datread, ver = datread.open('gameinit.dat', '# .-GAMEINIT.DAT')
function dat.check(set, softlist)
if softlist or not datread then
return nil
end
local status
- status, info = pcall(datread, "mame", "info", set)
+ status, info = pcall(datread, 'mame', 'info', set)
if not status or not info then
return nil
end
- return _("Gameinit")
+ return _p('plugin-data', 'Gameinit')
end
function dat.get()
diff --git a/plugins/data/data_hiscore.lua b/plugins/data/data_hiscore.lua
index 9c888ddffdf..f05e4ddd173 100644
--- a/plugins/data/data_hiscore.lua
+++ b/plugins/data/data_hiscore.lua
@@ -1,15 +1,361 @@
--- to use this get the package from http://greatstone.free.fr/hi2txt/
+-- to use this get the package from https://greatstoneex.github.io/hi2txt-doc/
-- extract the hi2txt.zip and place it in your history path
local dat = {}
local env = {}
local output
local curset
+local path = mame_manager.ui.options.entries.historypath:value():gsub("([^;]+)", "%1/hi2txt")
+local htmlentites = {
+ ["amp"] = "&",
+ ["quot"] = utf8.char(34),
+ ["big-mid-dot"] = utf8.char(149),
+ ["copyright"] = utf8.char(169),
+ ["mid-dot"] = utf8.char(183),
+ ["one-on-two"] = utf8.char(189),
+ ["ring"] = utf8.char(214),
+ ["acute"] = utf8.char(225),
+ ["y-strike"] = utf8.char(590),
+ ["bridge1"] = utf8.char(761),
+ ["bridge2"] = utf8.char(765),
+ ["bridge3"] = utf8.char(766),
+ ["alpha"] = utf8.char(945),
+ ["beta"] = utf8.char(946),
+ ["gamma"] = utf8.char(947),
+ ["delta"] = utf8.char(948),
+ ["epsilon"] = utf8.char(949),
+ ["zeta"] = utf8.char(950),
+ ["eta"] = utf8.char(951),
+ ["theta"] = utf8.char(952),
+ ["iota"] = utf8.char(953),
+ ["kappa"] = utf8.char(954),
+ ["lambda"] = utf8.char(955),
+ ["mu"] = utf8.char(956),
+ ["nu"] = utf8.char(957),
+ ["xi"] = utf8.char(958),
+ ["omicron"] = utf8.char(959),
+ ["pi"] = utf8.char(960),
+ ["rho"] = utf8.char(961),
+ ["sigmaf"] = utf8.char(962),
+ ["sigma"] = utf8.char(963),
+ ["tau"] = utf8.char(964),
+ ["upsilon"] = utf8.char(965),
+ ["phi"] = utf8.char(966),
+ ["chi"] = utf8.char(967),
+ ["psi"] = utf8.char(968),
+ ["omega"] = utf8.char(969),
+ ["circle-line"] = utf8.char(984),
+ ["two-dots"] = utf8.char(1417),
+ ["inverted-question"] = utf8.char(1567),
+ ["rdquo"] = utf8.char(8221),
+ ["big-dot"] = utf8.char(8226),
+ ["three-dots"] = utf8.char(8230),
+ ["two-exclamations"] = utf8.char(8252),
+ ["broken-question"] = utf8.char(8253),
+ ["asterism"] = utf8.char(8258),
+ ["w-double-strike"] = utf8.char(8361),
+ ["square-2"] = utf8.char(8414),
+ ["roman-numeral-1"] = utf8.char(8544),
+ ["roman-numeral-2"] = utf8.char(8545),
+ ["roman-numeral-3"] = utf8.char(8546),
+ ["roman-numeral-4"] = utf8.char(8547),
+ ["roman-numeral-5"] = utf8.char(8548),
+ ["roman-numeral-6"] = utf8.char(8549),
+ ["roman-numeral-7"] = utf8.char(8550),
+ ["roman-numeral-8"] = utf8.char(8551),
+ ["roman-numeral-9"] = utf8.char(8552),
+ ["roman-numeral-10"] = utf8.char(8553),
+ ["roman-numeral-11"] = utf8.char(8554),
+ ["roman-numeral-12"] = utf8.char(8555),
+ ["small-roman-numeral-1"] = utf8.char(8560),
+ ["small-roman-numeral-2"] = utf8.char(8561),
+ ["small-roman-numeral-3"] = utf8.char(8562),
+ ["small-roman-numeral-4"] = utf8.char(8563),
+ ["small-roman-numeral-5"] = utf8.char(8564),
+ ["small-roman-numeral-6"] = utf8.char(8565),
+ ["small-roman-numeral-7"] = utf8.char(8566),
+ ["small-roman-numeral-8"] = utf8.char(8567),
+ ["small-roman-numeral-9"] = utf8.char(8568),
+ ["small-roman-numeral-10"] = utf8.char(8569),
+ ["small-roman-numeral-11"] = utf8.char(8570),
+ ["small-roman-numeral-12"] = utf8.char(8571),
+ ["left-arrow"] = utf8.char(8592),
+ ["right-double-arrow"] = utf8.char(8658),
+ ["four-lines"] = utf8.char(8803),
+ ["three-mid-dots"] = utf8.char(8943),
+ ["left-foot"] = utf8.char(8968),
+ ["right-foot"] = utf8.char(8968),
+ ["round-7"] = utf8.char(9318),
+ ["square"] = utf8.char(9633),
+ ["dot-in-square"] = utf8.char(9635),
+ ["h-lines-in-square"] = utf8.char(9636),
+ ["v-lines-in-square"] = utf8.char(9637),
+ ["slash-in-square"] = utf8.char(9639),
+ ["antislash-in-square"] = utf8.char(9640),
+ ["black-triangle-right"] = utf8.char(9658),
+ ["black-triangle-down"] = utf8.char(9660),
+ ["two-cubes"] = utf8.char(9707) ,
+ ["umbrella"] = utf8.char(9730),
+ ["snowman"] = utf8.char(9731) ,
+ ["black-star"] = utf8.char(9733),
+ ["star"] = utf8.char(9734),
+ ["headset"] = utf8.char(9738),
+ ["phone"] = utf8.char(9742),
+ ["hot-beverage"] = utf8.char(9749),
+ ["skull"] = utf8.char(9760),
+ ["ankh"] = utf8.char(9765),
+ ["cross-of-lorraine"] = utf8.char(9768),
+ ["cross-of-jerusalem"] = utf8.char(9769),
+ ["peace"] = utf8.char(9774),
+ ["angry-face"] = utf8.char(9785),
+ ["smiley"] = utf8.char(9786),
+ ["black-smiley"] = utf8.char(9787),
+ ["sun"] = utf8.char(9788),
+ ["moon"] = utf8.char(9789),
+ ["crescent-moon"] = utf8.char(9790),
+ ["woman"] = utf8.char(9792),
+ ["man"] = utf8.char(9794),
+ ["spaceship"] = utf8.char(9798),
+ ["aries"] = utf8.char(9800),
+ ["taurus"] = utf8.char(9801),
+ ["gemini"] = utf8.char(9802),
+ ["cancer"] = utf8.char(9803),
+ ["leo"] = utf8.char(9804),
+ ["virgo"] = utf8.char(9805),
+ ["libra"] = utf8.char(9806),
+ ["scorpio"] = utf8.char(9807),
+ ["sagitarius"] = utf8.char(9808),
+ ["capricorn"] = utf8.char(9809),
+ ["aquarius"] = utf8.char(9810),
+ ["pisces"] = utf8.char(9811),
+ ["amber"] = utf8.char(9816) ,
+ ["black-spade"] = utf8.char(9824) ,
+ ["heart"] = utf8.char(9825) ,
+ ["black-club"] = utf8.char(9827) ,
+ ["black-heart"] = utf8.char(9829) ,
+ ["black-diamond"] = utf8.char(9830) ,
+ ["single-music-note"] = utf8.char(9834),
+ ["double-music-note"] = utf8.char(9835),
+ ["crossed-swords"] = utf8.char(9876),
+ ["baseball"] = utf8.char(9918),
+ ["boat"] = utf8.char(9973),
+ ["scissors"] = utf8.char(9988),
+ ["airplane"] = utf8.char(9992),
+ ["multiplication"] = utf8.char(10005),
+ ["big-exclamation"] = utf8.char(10082),
+ ["left-black-heart"] = utf8.char(10085),
+ ["black-right-arrow-large"] = utf8.char(10152),
+ ["up-arrow-with-stroke"] = utf8.char(10505),
+ ["jp-h-a-small"] = utf8.char(12353),
+ ["jp-h-a"] = utf8.char(12354),
+ ["jp-h-i-small"] = utf8.char(12355),
+ ["jp-h-i"] = utf8.char(12356),
+ ["jp-h-u-small"] = utf8.char(12357),
+ ["jp-h-u"] = utf8.char(12358),
+ ["jp-h-e-small"] = utf8.char(12359),
+ ["jp-h-e"] = utf8.char(12360),
+ ["jp-h-o-small"] = utf8.char(12361),
+ ["jp-h-o"] = utf8.char(12362),
+ ["jp-h-ka"] = utf8.char(12363),
+ ["jp-h-ga"] = utf8.char(12364),
+ ["jp-h-ki"] = utf8.char(12365),
+ ["jp-h-gi"] = utf8.char(12366),
+ ["jp-h-ku"] = utf8.char(12367),
+ ["jp-h-gu"] = utf8.char(12368),
+ ["jp-h-ke"] = utf8.char(12369),
+ ["jp-h-ge"] = utf8.char(12370),
+ ["jp-h-ko"] = utf8.char(12371),
+ ["jp-h-go"] = utf8.char(12372),
+ ["jp-h-sa"] = utf8.char(12373),
+ ["jp-h-za"] = utf8.char(12374),
+ ["jp-h-si"] = utf8.char(12375),
+ ["jp-h-zi"] = utf8.char(12376),
+ ["jp-h-su"] = utf8.char(12377),
+ ["jp-h-zu"] = utf8.char(12378),
+ ["jp-h-se"] = utf8.char(12379),
+ ["jp-h-ze"] = utf8.char(12380),
+ ["jp-h-so"] = utf8.char(12381),
+ ["jp-h-zo"] = utf8.char(12382),
+ ["jp-h-ta"] = utf8.char(12383),
+ ["jp-h-da"] = utf8.char(12384),
+ ["jp-h-ti"] = utf8.char(12385),
+ ["jp-h-di"] = utf8.char(12386),
+ ["jp-h-tu-small"] = utf8.char(12387),
+ ["jp-h-sokuon"] = utf8.char(12387),
+ ["jp-h-tu"] = utf8.char(12388),
+ ["jp-h-du"] = utf8.char(12389),
+ ["jp-h-te"] = utf8.char(12390),
+ ["jp-h-de"] = utf8.char(12391),
+ ["jp-h-to"] = utf8.char(12392),
+ ["jp-h-do"] = utf8.char(12393),
+ ["jp-h-na"] = utf8.char(12394),
+ ["jp-h-ni"] = utf8.char(12395),
+ ["jp-h-nu"] = utf8.char(12396),
+ ["jp-h-ne"] = utf8.char(12397),
+ ["jp-h-no"] = utf8.char(12398),
+ ["jp-h-ha"] = utf8.char(12399),
+ ["jp-h-ba"] = utf8.char(12400),
+ ["jp-h-pa"] = utf8.char(12401),
+ ["jp-h-hi"] = utf8.char(12402),
+ ["jp-h-bi"] = utf8.char(12403),
+ ["jp-h-pi"] = utf8.char(12404),
+ ["jp-h-hu"] = utf8.char(12405),
+ ["jp-h-bu"] = utf8.char(12406),
+ ["jp-h-pu"] = utf8.char(12407),
+ ["jp-h-he"] = utf8.char(12408),
+ ["jp-h-be"] = utf8.char(12409),
+ ["jp-h-pe"] = utf8.char(12410),
+ ["jp-h-ho"] = utf8.char(12411),
+ ["jp-h-bo"] = utf8.char(12412),
+ ["jp-h-po"] = utf8.char(12413),
+ ["jp-h-ma"] = utf8.char(12414),
+ ["jp-h-mi"] = utf8.char(12415),
+ ["jp-h-mu"] = utf8.char(12416),
+ ["jp-h-me"] = utf8.char(12417),
+ ["jp-h-mo"] = utf8.char(12418),
+ ["jp-h-ya-small"] = utf8.char(12419),
+ ["jp-h-youon-a"] = utf8.char(12419),
+ ["jp-h-ya"] = utf8.char(12420),
+ ["jp-h-yu-small"] = utf8.char(12421),
+ ["jp-h-youon-u"] = utf8.char(12421),
+ ["jp-h-yu"] = utf8.char(12422),
+ ["jp-h-yo-small"] = utf8.char(12423),
+ ["jp-h-youon-o"] = utf8.char(12423),
+ ["jp-h-yo"] = utf8.char(12424),
+ ["jp-h-ra"] = utf8.char(12425),
+ ["jp-h-ri"] = utf8.char(12426),
+ ["jp-h-ru"] = utf8.char(12427),
+ ["jp-h-re"] = utf8.char(12428),
+ ["jp-h-ro"] = utf8.char(12429),
+ ["jp-h-wa-small"] = utf8.char(12430),
+ ["jp-h-wa"] = utf8.char(12431),
+ ["jp-h-wi"] = utf8.char(12432),
+ ["jp-h-we"] = utf8.char(12433),
+ ["jp-h-wo"] = utf8.char(12434),
+ ["jp-h-n"] = utf8.char(12435),
+ ["jp-h-vu"] = utf8.char(12436),
+ ["jp-h-ka-small"] = utf8.char(12437),
+ ["jp-h-ke-small"] = utf8.char(12438),
+ ["jp-h-dakuten"] = utf8.char(12443),
+ ["jp-h-handakuten"] = utf8.char(12444),
+ ["jp-k-a-small"] = utf8.char(12449),
+ ["jp-k-a"] = utf8.char(12450),
+ ["jp-k-i-small"] = utf8.char(12451),
+ ["jp-k-i"] = utf8.char(12452),
+ ["jp-k-u-small"] = utf8.char(12453),
+ ["jp-k-u"] = utf8.char(12454),
+ ["jp-k-e-small"] = utf8.char(12455),
+ ["jp-k-e"] = utf8.char(12456),
+ ["jp-k-o-small"] = utf8.char(12457),
+ ["jp-k-o"] = utf8.char(12458),
+ ["jp-k-ka"] = utf8.char(12459),
+ ["jp-k-ga"] = utf8.char(12460),
+ ["jp-k-ki"] = utf8.char(12461),
+ ["jp-k-gi"] = utf8.char(12462),
+ ["jp-k-ku"] = utf8.char(12463),
+ ["jp-k-gu"] = utf8.char(12464),
+ ["jp-k-ke"] = utf8.char(12465),
+ ["jp-k-ge"] = utf8.char(12466),
+ ["jp-k-ko"] = utf8.char(12467),
+ ["jp-k-go"] = utf8.char(12468),
+ ["jp-k-sa"] = utf8.char(12469),
+ ["jp-k-za"] = utf8.char(12470),
+ ["jp-k-si"] = utf8.char(12471),
+ ["jp-k-zi"] = utf8.char(12472),
+ ["jp-k-su"] = utf8.char(12473),
+ ["jp-k-zu"] = utf8.char(12474),
+ ["jp-k-se"] = utf8.char(12475),
+ ["jp-k-ze"] = utf8.char(12476),
+ ["jp-k-so"] = utf8.char(12477),
+ ["jp-k-zo"] = utf8.char(12478),
+ ["jp-k-ta"] = utf8.char(12479),
+ ["jp-k-da"] = utf8.char(12480),
+ ["jp-k-ti"] = utf8.char(12481),
+ ["jp-k-di"] = utf8.char(12482),
+ ["jp-k-tu-small"] = utf8.char(12483),
+ ["jp-k-tu"] = utf8.char(12484),
+ ["jp-k-du"] = utf8.char(12485),
+ ["jp-k-te"] = utf8.char(12486),
+ ["jp-k-de"] = utf8.char(12487),
+ ["jp-k-to"] = utf8.char(12488),
+ ["jp-k-do"] = utf8.char(12489),
+ ["jp-k-na"] = utf8.char(12490),
+ ["jp-k-ni"] = utf8.char(12491),
+ ["jp-k-nu"] = utf8.char(12492),
+ ["jp-k-ne"] = utf8.char(12493),
+ ["jp-k-no"] = utf8.char(12494),
+ ["jp-k-ha"] = utf8.char(12495),
+ ["jp-k-ba"] = utf8.char(12496),
+ ["jp-k-pa"] = utf8.char(12497),
+ ["jp-k-hi"] = utf8.char(12498),
+ ["jp-k-bi"] = utf8.char(12499),
+ ["jp-k-pi"] = utf8.char(12500),
+ ["jp-k-hu"] = utf8.char(12501),
+ ["jp-k-bu"] = utf8.char(12502),
+ ["jp-k-pu"] = utf8.char(12503),
+ ["jp-k-he"] = utf8.char(12504),
+ ["jp-k-be"] = utf8.char(12505),
+ ["jp-k-pe"] = utf8.char(12506),
+ ["jp-k-ho"] = utf8.char(12507),
+ ["jp-k-bo"] = utf8.char(12508),
+ ["jp-k-po"] = utf8.char(12509),
+ ["jp-k-ma"] = utf8.char(12510),
+ ["jp-k-mi"] = utf8.char(12511),
+ ["jp-k-mu"] = utf8.char(12512),
+ ["jp-k-me"] = utf8.char(12513),
+ ["jp-k-mo"] = utf8.char(12514),
+ ["jp-k-ya-small"] = utf8.char(12515),
+ ["jp-k-ya"] = utf8.char(12516),
+ ["jp-k-yu-small"] = utf8.char(12517),
+ ["jp-k-yu"] = utf8.char(12518),
+ ["jp-k-yo-small"] = utf8.char(12519),
+ ["jp-k-yo"] = utf8.char(12520),
+ ["jp-k-ra"] = utf8.char(12521),
+ ["jp-k-ri"] = utf8.char(12522),
+ ["jp-k-ru"] = utf8.char(12523),
+ ["jp-k-re"] = utf8.char(12524),
+ ["jp-k-ro"] = utf8.char(12525),
+ ["jp-k-wa-small"] = utf8.char(12526),
+ ["jp-k-wa"] = utf8.char(12527),
+ ["jp-k-wi"] = utf8.char(12528),
+ ["jp-k-we"] = utf8.char(12529),
+ ["jp-k-wo"] = utf8.char(12530),
+ ["jp-k-n"] = utf8.char(12531),
+ ["jp-k-vu"] = utf8.char(12532),
+ ["jp-k-ka-small"] = utf8.char(12533),
+ ["jp-k-ke-small"] = utf8.char(12534),
+ ["jp-k-va"] = utf8.char(12535),
+ ["jp-k-vi"] = utf8.char(12536),
+ ["jp-k-ve"] = utf8.char(12537),
+ ["jp-k-vo"] = utf8.char(12538),
+ ["jp-k-zero"] = utf8.char(38646),
+ ["jp-k-one"] = utf8.char(19968),
+ ["jp-k-two"] = utf8.char(20108),
+ ["jp-k-three"] = utf8.char(19977),
+ ["jp-k-four"] = utf8.char(22235),
+ ["jp-k-five"] = utf8.char(20116),
+ ["jp-k-six"] = utf8.char(20845),
+ ["jp-k-seven"] = utf8.char(19971),
+ ["jp-k-height"] = utf8.char(20843),
+ ["jp-k-nine"] = utf8.char(20061),
+ ["lama"] = "lama",
+ ["cat-face"] = utf8.char(9786) ,
+ ["whale"] = "whale",
+ ["thumbs-up"] = utf8.char(8730) ,
+ ["shoe"] = "shoe",
+ ["kiss"] = utf8.char(9786),
+ ["heart-with-arrow"] = utf8.char(9829),
+ ["car-side"] = utf8.char(9936),
+ ["car-front"] = utf8.char(9936),
+ ["mens-symbol"] = utf8.char(9794),
+ ["womens-symbol"] = utf8.char(9792),
+ ["feet"] = utf8.char(128062)
+}
-function env.open(file, size)
+function env.open(file, size, swap)
if file == ".hi" then
local path = "hi"
- local ini = emu.file(lfs.env_replace(manager:options().entries.inipath:value()), 1)
+ local ini = emu.file(manager.options.entries.inipath:value(), 1)
local ret = ini:open("hiscore.ini")
if not ret then
local inifile = ini:read(ini:size())
@@ -23,7 +369,7 @@ function env.open(file, size)
end
file = path .. "/" .. curset .. ".hi"
else
- file = lfs.env_replace(manager:options().entries.nvram_directory:value()) .. "/" .. curset .. "/" .. file
+ file = manager.options.entries.nvram_directory:value() .. "/" .. curset .. "/" .. file
end
local f = io.open(file, "rb")
local content = f:read("*all")
@@ -31,6 +377,16 @@ function env.open(file, size)
if #content < size then
content = content .. string.rep("\0", size - #content)
end
+ if swap then
+ if swap == 2 then
+ content = content:gsub("(.)(.)", function(c1, c2) return c2 .. c1 end)
+ elseif swap == 4 then
+ content = content:gsub("(.)(.)(.)(.)", function(c1, c2, c3, c4) return c4 .. c3 .. c2 .. c1 end)
+ else
+ emu.print_verbose("swap " .. swap .. " not supported")
+ end
+ end
+
return content
end
@@ -86,8 +442,9 @@ end
function env.byte_trim(bytes, val)
val = tonumber(val)
- for i = 1, #bytes do
- if bytes[i] ~= val then
+ len = #bytes
+ for i = 1, len do
+ if bytes[1] ~= val then
return bytes
end
table.remove(bytes, 1)
@@ -95,6 +452,19 @@ function env.byte_trim(bytes, val)
return bytes
end
+function env.byte_trunc(bytes, val)
+ val = tonumber(val)
+ for i = 1, #bytes do
+ if bytes[i] == val then
+ break
+ end
+ end
+ while #bytes >= i do
+ table.remove(bytes)
+ end
+ return bytes
+end
+
function env.byte_swap(bytes, val)
local newbytes = {}
val = tonumber(val)
@@ -136,20 +506,19 @@ function env.bit_swap(bytes, swap)
return bytes
end
-function env.bitmask(bytes, mask)
- local newbytes = 0
- bytes = string.unpack(">I" .. #bytes, table.concat(bytes))
- for i = 1, #mask do
- newbytes = newbytes | (((bytes >> mask.ishift) & mask.mask) << mask.oshift)
- end
- bytes = {}
- while newbytes ~= 0 do
- bytes[#bytes + 1] = newbytes & 0xff
- newbytes = newbytes >> 8
- end
- newbytes = {}
- for i = 1, #bytes do
- newbytes[i] = string.char(bytes[#bytes + 1 - i])
+function env.bitmask(bytes, masks)
+ local newbytes = {}
+ bytes = table.concat(bytes)
+ bytes = table.pack(string.unpack(string.rep("c1", #bytes), bytes))
+ bytes[#bytes] = nil
+ for num, mask in ipairs(masks) do
+ newbytes[#newbytes + 1] = ""
+ for num2, bytemask in ipairs(mask.mask) do
+ local val = bytes[num2]:byte() & bytemask
+ if val ~= 0 then
+ newbytes[#newbytes] = newbytes[#newbytes] .. string.char(val)
+ end
+ end
end
return newbytes
end
@@ -166,24 +535,42 @@ function env.frombcd(val)
end
function env.basechar(bytes, base)
- emu.print_verbose("data_hiscore: basechar " .. base .. " unimplemented\n")
- if base == "32" then
- elseif base == "40" then
+ if base == 32 or base == 40 then
+ local newbytes = {}
+ for num, char in ipairs(bytes) do
+ local nchar = (char:byte(1) << 8) + char:byte(2)
+ local pos = #newbytes
+ for i = 1, 3 do
+ table.insert(newbytes, pos + 1, string.char(nchar % base))
+ nchar = nchar // base
+ end
+ end
+ return newbytes
end
+ emu.print_verbose("data_hiscore: basechar " .. base .. " unimplemented")
return bytes
end
-function env.charset_conv(bytes, charset)
+function env.charset_conv(bytes, charset, aoffset)
+ if not aoffset then aoffset = 0 end
if type(charset) == "string" then
local chartype, offset, delta = charset:match("CS_(%w*)%[?(%-?%d?%d?),?(%d?%d?)%]?")
+ if offset then offset = tonumber(offset) else offset = 0 end
+ if delta then delta = tonumber(delta) else delta = 1 end
if chartype == "NUMBER" then
-
+ for num, char in ipairs(bytes) do
+ char = char:byte() - aoffset - offset
+ if char >= 48 and char <= 57 then
+ bytes[num] = string.char(char)
+ end
+ end
+ return bytes
end
- emu.print_verbose("data_hiscore: charset " .. chartype .. " unimplemented\n")
+ emu.print_verbose("data_hiscore: charset " .. chartype .. " unimplemented")
return bytes
end
for num, char in ipairs(bytes) do
- char = string.byte(char)
+ char = char:byte() - aoffset
if charset[char] then
bytes[num] = charset[char]
elseif charset.default then
@@ -207,6 +594,15 @@ function env.ascii_offset(bytes, offset)
return bytes
end
+function env.index_from_value(col, index)
+ for i = 0, #col - 1 do
+ if col[i].val == index then
+ return i
+ end
+ end
+ return index
+end
+
env.tostring = tostring
env.type = type
env.table = { pack = table.pack, concat = table.concat }
@@ -228,10 +624,8 @@ function dat.check(set, softlist)
if softlist then
return nil
end
- local datpath
local function xml_parse(file)
local table
- datpath = file:fullpath():gsub(".zip", "/")
local data = file:read(file:size())
data = data:match("<hi2txt.->(.*)</ *hi2txt>")
local function get_tags(str, parent)
@@ -284,29 +678,23 @@ function dat.check(set, softlist)
local function parse_table(xml)
local total_size = 0
- local s = { "local data = open('" .. xml.structure[1].file .. "', size)\nlocal offset = 1\nlocal arr = {}",
- "local elem, bytes, offset, value, lastindex, output"}
+ local s = { "local data = open('" .. xml.structure[1].file .. "', size, " .. (xml.structure[1]['byte-swap'] or "nil") .. ")\nlocal offset = 1\nlocal arr = {}",
+ "local elem, bytes, offset, value, index, output"}
local fparam = {}
if xml.bitmask then
- local bitmask = "local bitmask = {"
+ local bitmask = "local bitmasks = {"
for id, masks in pairs(xml.bitmask) do
bitmask = bitmask .. "['" .. id .. "'] = {"
for num, mask in ipairs(masks.character) do
- mask = mask:gsub("( )", "")
- local newmask = tonumber(mask, 2)
- local shift = 0
- local count = 8
- while (newmask & 1) == 0 do
- newmask = newmask >> 1
- shift = shift + 1
- end
- if masks.byte-completion and masks.byte-completion == "no" then
- count = 0
- while (newmask >> count) & 1 == 1 do
- count = count + 1
+ local bytemasks = {}
+ mask.mask:gsub("[01]*", function(s)
+ local bytemask = 0
+ for i = 1, 8 do
+ bytemask = bytemask | (tonumber(s:sub(i, i)) << (8 - i))
end
- end
- bitmask = bitmask .. "{ mask = " .. newmask .. ", ishift = " .. shift .. ", oshift = " .. count .. "},"
+ bytemasks[#bytemasks + 1] = bytemask
+ end)
+ bitmask = bitmask .. "{ mask = {" .. table.concat(bytemasks, ", ") .. "}, complete = \"" .. (mask['byte-completion'] or "yes") .. "\"}"
end
bitmask = bitmask .. "},"
end
@@ -318,10 +706,19 @@ function dat.check(set, softlist)
local default
charset = charset .. "['" .. id .. "'] = {"
for src, char in pairs(set.char) do
+ local subchar = char.dst:gsub("&([^;]*);", function(s)
+ if htmlentites[s] then
+ return htmlentites[s]
+ elseif s[1] == "#" then
+ return utf8.char(tonumber(s:sub(2)))
+ else
+ return s
+ end
+ end)
if char.default and char.default == "yes" then
- default = char.dst
+ default = subchar
end
- charset = charset .. "[" .. src .. "]" .. " = '" .. char.dst .. "',"
+ charset = charset .. "[" .. src .. "]" .. " = '" .. subchar .. "',"
end
if default then
charset = charset .. "default = " .. default
@@ -386,7 +783,7 @@ function dat.check(set, softlist)
elseif first == "S" then
local suffix = rest:match("uffix(.*)")
if suffix then
- oper = " val = val .. '" .. rest .. "'"
+ oper = " val = val .. '" .. suffix .. "'"
end
elseif (first == "h" and rest == "exadecimal_string") or (first == "0" and rest == "x") then
oper = " val = string.format('0x%x', val)"
@@ -396,7 +793,11 @@ function dat.check(set, softlist)
if not oper then
oper = " val = format['" .. form .. "'](val, {"
for num1, colpar in ipairs(fparam[form]) do
- oper = oper .. "arr['" .. colpar .. "'][i].val or arr['" .. colpar .. "'][1].val,"
+ if fparam[form].full then
+ oper = oper .. "arr['" .. colpar .. "'],"
+ else
+ oper = oper .. "arr['" .. colpar .. "'][i].val or arr['" .. colpar .. "'][0].val,"
+ end
end
oper = oper .. "})"
end
@@ -406,15 +807,10 @@ function dat.check(set, softlist)
end
if xml.format then
- local format = { "local format = {" }
+ local format = { "local format = {}" }
for num, form in ipairs(xml.format) do
local param = {}
- format[#format + 1] = "['" .. form["id"] .. "'] = "
- if form["input-as-subcolumns-input"] then
- --format[#format + 1] = "input_as_subcolumns_input = '" .. form["input-as-subcolumns-input"] .. "',"
- emu.print_verbose("data_hiscore: input-as-subcolumns-input unimplemented\n")
- end
- format[#format + 1] = "function(val, param) "
+ format[#format + 1] = "format['" .. form["id"] .. "'] = function(val, param)"
if form["formatter"] then
format[#format + 1] = "local function tempform(val) "
end
@@ -432,16 +828,34 @@ function dat.check(set, softlist)
elseif op.tag == "multiply" then
format[#format + 1] = "val = val * " .. op.text
elseif op.tag == "divide" then
- format[#format + 1] = "val = val / " .. op.text
+ if op.text then
+ format[#format + 1] = "val = val / " .. op.text
+ elseif op.field then
+ if op.field[1].format then
+ local fform = check_format(op.field[1].format)
+ format[#format + 1] = fform .. " val = val / tempform(val)"
+ end
+ else
+ format[#format + 1] = "val = 0"
+ for num2, col in ipairs(op) do
+ param[#param + 1] = col["id"]
+ if col["format"] then
+ local colform = check_format(col["format"])
+ format[#format + 1] = colform .. " val = val / tempform(val)"
+ else
+ format[#format + 1] = "val = val / param[" .. #param .. "]"
+ end
+ end
+ end
elseif op.tag == "sum" then
format[#format + 1] = "val = 0"
- for num2, col in ipairs(op) do
+ param.full = true
+ for num2, col in ipairs(op.column) do
param[#param + 1] = col["id"]
+ format[#format + 1] = "for i = 0, #param[" .. #param .. "] do val = val + param[" .. #param .. "][i].val end"
if col["format"] then
local colform = check_format(col["format"])
format[#format + 1] = colform .. " val = val + tempform(val)"
- else
- format[#format + 1] = "val = val + param[" .. #param .. "]"
end
end
elseif op.tag == "concat" then
@@ -450,9 +864,13 @@ function dat.check(set, softlist)
if col["tag"] == "txt" then
format[#format + 1] = "val = val .. '" .. col["text"] .. "'"
elseif col["format"] then
- param[#param + 1] = col["id"]
- local n = #param
- format[#format + 1] = function() return " " .. check_format(col["format"]) .. " val = val .. tempform(param[" .. n .. "])" end
+ if col["id"] then
+ param[#param + 1] = col["id"]
+ local n = #param
+ format[#format + 1] = function() return " " .. check_format(col["format"]) .. " val = val .. tempform(param[" .. n .. "])" end
+ else
+ format[#format + 1] = function() return " " .. check_format(col["format"]) .. " val = val .. tempform(temp)" end
+ end
else
param[#param + 1] = col["id"]
format[#format + 1] = "val = val .. param[" .. #param .. "]"
@@ -514,10 +932,10 @@ function dat.check(set, softlist)
elseif op.tag == "case" then
format[#format + 1] = "val = temp"
if not tonumber(op["src"]) then
- op["src"] = "'" .. op["src"] .. "'"
+ op["src"] = "'" .. op["src"]:gsub("'", "\\'") .. "'"
end
if not tonumber(op["dst"]) then
- op["dst"] = "'" .. op["dst"] .. "'"
+ op["dst"] = "'" .. op["dst"]:gsub("'", "\\'") .. "'"
end
if op["default"] == "yes" then
format[#format + 1] = "local default = " .. op["dst"]
@@ -531,7 +949,11 @@ function dat.check(set, softlist)
op["operator"] = op["operator"]:gsub("&lt;", "<")
op["operator"] = op["operator"]:gsub("&gt;", ">")
end
- format[#format + 1] = "if val " .. op["operator"] .. " " .. op["src"] .. " then"
+ if form["apply-to"] == "char" then
+ format[#format + 1] = "if val:byte() " .. op["operator"] .. " " .. op["src"] .. " then"
+ else
+ format[#format + 1] = "if val " .. op["operator"] .. " " .. op["src"] .. " then"
+ end
format[#format + 1] = "val = " .. op["dst"]
if op["format"] then
format[#format + 1] = function() return " val = ".. check_format(col["operator-format"]) end
@@ -549,7 +971,6 @@ function dat.check(set, softlist)
if form["formatter"] then
format[#format + 1] = "return string.format('" .. form["formatter"] .. "', tempform(val))\nend"
end
- format[#format + 1] = ","
end
for num, line in ipairs(format) do
if type(line) == "string" then
@@ -558,7 +979,6 @@ function dat.check(set, softlist)
s[#s + 1] = line()
end
end
- s[#s + 1] = "}"
end
local function parse_elem(elem, loopelem)
local ret = 0
@@ -566,23 +986,15 @@ function dat.check(set, softlist)
if elem["skip-first-bytes"] then
s[#s + 1] = "offset = offset + " .. elem["skip-first-bytes"]
end
- s[#s + 1] = "for i = 1, " .. elem["count"] .. " do"
+ s[#s + 1] = "for i = 0, " .. elem["count"] - 1 .. " do"
for num, elt in ipairs(elem) do
- index = parse_elem(elt, elem)
+ parse_elem(elt, elem)
end
s[#s + 1] = "end"
if elem["skip-last-bytes"] then
s[#s + 1] = "offset = offset + " .. elem["skip-last-bytes"]
end
elseif elem["tag"] == "elt" then
- s[#s + 1] = "if not arr['" .. elem["id"] .. "'] then arr['" .. elem["id"] .. "'] = {} end\nelem = {}"
- s[#s + 1] = "bytes = table.pack(string.unpack('" .. string.rep("c1", elem["size"]) .. "', data, offset))"
- if loopelem then
- total_size = total_size + elem["size"] * loopelem["count"]
- else
- total_size = total_size + elem["size"]
- end
- s[#s + 1] = "offset = bytes[#bytes]\nbytes[#bytes] = nil"
if elem["decoding-profile"] then
if elem["decoding-profile"] == "base-40" then
elem["src-unit-size"] = 16
@@ -604,6 +1016,23 @@ function dat.check(set, softlist)
elem["base"] = "16"
end
end
+ local unitsize = 1
+ if elem["src-unit-size"] then
+ local size = elem["src-unit-size"] / 8
+ if size ~= math.floor(size) then
+ emu.print_verbose("src-unit-size " .. elem["src-unit-size"] .. " not suppoted)")
+ else
+ unitsize = math.floor(size)
+ end
+ end
+ s[#s + 1] = "if not arr['" .. elem["id"] .. "'] then arr['" .. elem["id"] .. "'] = {} end\nelem = {}"
+ s[#s + 1] = "bytes = table.pack(string.unpack('" .. string.rep("c" .. unitsize, elem["size"] / unitsize) .. "', data, offset))"
+ if loopelem then
+ total_size = total_size + elem["size"] * loopelem["count"]
+ else
+ total_size = total_size + elem["size"]
+ end
+ s[#s + 1] = "offset = bytes[#bytes]\nbytes[#bytes] = nil"
local bytedec = elem["swap-skip-order"] or "byte-swap;bit-swap;byte-skip;endianness;byte-trim;nibble-skip;bitmask"
local bytedecl = {}
bytedec:gsub("([^;]*)", function(c) bytedecl[#bytedecl + 1] = c end)
@@ -611,7 +1040,7 @@ function dat.check(set, softlist)
if elem[func] then
fixfunc = func:gsub("-", "_")
if func == "bitmask" then
- s[#s + 1] = "bytes = " .. fixfunc .. "(bytes, bitmask['" .. elem[func] .. "'])"
+ s[#s + 1] = "bytes = " .. fixfunc .. "(bytes, bitmasks['" .. elem[func] .. "'])"
else
s[#s + 1] = "bytes = " .. fixfunc .. "(bytes, '" .. elem[func] .. "')"
end
@@ -623,29 +1052,41 @@ function dat.check(set, softlist)
if elem["base"] == "16" then
s[#s + 1] = "value = frombcd(value)"
end
+ if elem["format"] then
+ s[#s + 1] = check_format(elem["format"])
+ s[#s + 1] = "value = tempform(value)"
+ end
s[#s + 1] = "elem.val = value"
elseif elem["type"] == "text" then
+ if elem["base"] then
+ s[#s + 1] = "bytes = basechar(bytes, " .. elem["base"] .. ")"
+ end
if elem["ascii-step"] then
s[#s + 1] = "bytes = ascii_step(bytes, " .. elem["ascii-step"] .. ")"
end
if elem["ascii-offset"] then
s[#s + 1] = "bytes = ascii_offset(bytes, " .. elem["ascii-offset"] .. ")"
end
- if elem["base"] then
- s[#s + 1] = "bytes = basechar(bytes, " .. elem["base"] .. ")"
- end
if elem["charset"] then
local charsets = {}
elem["charset"]:gsub("([^;]*)", function(s) charsets[#charsets + 1] = s return "" end)
for num, charset in pairs(charsets) do
if charset:match("^CS_") then
- s[#s + 1] = "bytes = charset_conv(bytes, " .. charset .. ")"
+ s[#s + 1] = "bytes = charset_conv(bytes, \"" .. charset .. "\""
elseif charset ~= "" then
- s[#s + 1] = "bytes = charset_conv(bytes, charset['" .. charset .. "'])"
+ s[#s + 1] = "bytes = charset_conv(bytes, charset['" .. charset .. "']"
+ end
+ if elem["ascii-offset"] then
+ s[#s] = s[#s] .. ", " .. elem["ascii-offset"]
end
+ s[#s] = s[#s] .. ")"
end
end
s[#s + 1] = "elem.val = table.concat(bytes)"
+ if elem["format"] then
+ s[#s + 1] = check_format(elem["format"])
+ s[#s + 1] = "elem.val = tempform(elem.val)"
+ end
end
local index
if elem["table-index"] then
@@ -657,27 +1098,31 @@ function dat.check(set, softlist)
local step = loopelem["step"] or 1
local ref, reftype
if elem["table-index"] then
- elem["table-index"]:match("([%w ]*):([%a_]*)")
+ ref, reftype = elem["table-index"]:match("([%w ]*):([%a_]*)")
end
if not elem["table-index"] or elem["table-index"] == "loop_index" then
- index = "(i - 1) * " .. step .. " + " .. start
+ index = "i * " .. step .. " + " .. start
elseif elem["table-index"] == "loop_reverse_index" then
- index = "(" .. total .. "- i) * " .. step .. " + " .. start
+ index = "(" .. total .. "- i - 1) * " .. step .. " + " .. start
elseif elem["table-index"] == "itself" then
index = "value"
- elseif elem["table-index"] == "last" then
- index = "lastindex"
elseif reftype then
- index = reftype .. "(arr, '" .. ref .. "')"
+ index = reftype .. "(arr['" .. ref .. "'], i)"
end
end
- if index then
- s[#s + 1] = "elem.index = " .. index
- s[#s + 1] = "lastindex = elem.index"
+ if elem["table-index-format"] and index then
+ s[#s + 1] = check_format(elem["table-index-format"])
+ index = "tempform(" .. index .. ")"
+ end
+ if loopelem then
+ if index then
+ s[#s + 1] = "index = " .. index
+ end
+ s[#s + 1] = "arr['" .. elem["id"] .. "'][index] = elem"
+ else
+ s[#s + 1] = "arr['" .. elem["id"] .. "'] = elem"
end
- s[#s + 1] = "arr['" .. elem["id"] .. "'][#arr['" .. elem["id"] .. "'] + 1] = elem"
end
- return index
end
for num, elem in ipairs(xml.structure[1]) do
if elem["tag"] == "loop" or elem["tag"] == "elt" then
@@ -705,6 +1150,7 @@ function dat.check(set, softlist)
local head = {}
local dat = {}
local loopcnt
+ local cols = 0
local igncol, ignval
if fld["line-ignore"] then
igncol, ignval = fld["line-ignore"]:match("([^:]*):(.*)")
@@ -717,15 +1163,16 @@ function dat.check(set, softlist)
if not col["src"] then
col["src"] = col["id"]
end
- if not loopcnt and col["src"] ~= "index" then
- table.insert(dat, 1, "for i = 1, #arr['" .. col["src"] .. "'] do")
- table.insert(dat, 2, "local index = arr['" .. col["src"] .. "'][i].index or i - 1")
- table.insert(dat, 3, "local line = ''")
+ if not loopcnt and col["src"] ~= "index" and col["src"] ~= "unsorted_index" then
+ table.insert(dat, 1, "for i = 0, #arr['" .. col["src"] .. "'] do")
+ table.insert(dat, 2, "local line = ''")
loopcnt = true
end
head[#head + 1] = "output = output .. '" .. col["id"] .. "\\t'"
if col["src"] == "index" then
- dat[#dat + 1] = "value = index"
+ dat[#dat + 1] = "value = i"
+ elseif col["src"] == "unsorted_index" then
+ dat[#dat + 1] = "value = i"
else
dat[#dat + 1] = "if arr['" .. col["src"] .. "'] then value = arr['" .. col["src"] .. "'][i].val end"
end
@@ -737,15 +1184,18 @@ function dat.check(set, softlist)
dat[#dat + 1] = "local checkval = value"
end
dat[#dat + 1] = "line = line .. value .. '\\t'"
+ cols = cols + 1
end
end
- if igncol then
- dat[#dat + 1] = "if checkval ~= " .. ignval .. " then output = output .. line .. '\\n' end\nend"
- else
- dat[#dat + 1] = "output = output .. line .. '\\n'\nend"
+ if cols > 0 then
+ if igncol then
+ dat[#dat + 1] = "if checkval ~= " .. ignval .. " then output = output .. line .. '\\n' end\nend"
+ else
+ dat[#dat + 1] = "output = output .. line .. '\\n'\nend"
+ end
+ s[#s + 1] = table.concat(head, "\n") .. "\noutput = output .. '\\n'"
+ s[#s + 1] = table.concat(dat, "\n")
end
- s[#s + 1] = table.concat(head, "\n") .. "\noutput = output .. '\\n'"
- s[#s + 1] = table.concat(dat, "\n")
end
end
end
@@ -753,7 +1203,7 @@ function dat.check(set, softlist)
-- cache script
local script = table.concat(s, "\n")
- local scrpath = datpath .. "/"
+ local scrpath = path:match("[^;]*") .. "/"
local scrfile = io.open(scrpath .. set .. ".lua", "w+")
if not scrfile then
lfs.mkdir(scrpath)
@@ -767,7 +1217,7 @@ function dat.check(set, softlist)
if curset == set then
if output then
- return _("High Scores")
+ return _p("plugin-data", "High Scores")
else
return nil
end
@@ -775,12 +1225,12 @@ function dat.check(set, softlist)
output = nil
curset = set
- local scrfile = emu.file(lfs.env_replace(mame_manager:ui():options().entries.historypath:value():gsub("([^;]+)", "%1/hi2txt")), 1)
+ local scrfile = emu.file(path, 1)
local ret = scrfile:open(set .. ".lua")
local script
if ret then
function get_xml_table(fileset)
- local file = emu.file(lfs.env_replace(mame_manager:ui():options().entries.historypath:value():gsub("([^;]+)", "%1/hi2txt")), 1)
+ local file = emu.file(path, 1)
local ret = file:open(fileset .. ".xml")
if ret then
return nil
@@ -815,7 +1265,7 @@ function dat.check(set, softlist)
end
end
if output then
- return _("High Scores")
+ return _p("plugin-data", "High Scores")
else
return nil
end
diff --git a/plugins/data/data_history.lua b/plugins/data/data_history.lua
index 331243b57bf..b233405e984 100644
--- a/plugins/data/data_history.lua
+++ b/plugins/data/data_history.lua
@@ -1,18 +1,210 @@
local dat = {}
+
+local db = require('data/database')
local ver, info
-local datread = require("data/load_dat")
-datread, ver = datread.open("history.dat", "## REVISION:")
+local file = 'history.xml'
+local tablename
+
+local function init()
+ -- check for old history table
+ if db.get_version('history.dat') then
+ db.exec([[DROP TABLE "history.dat";]])
+ db.exec([[DROP TABLE "history.dat_idx";]])
+ db.set_version('history.dat', nil)
+ end
+
+ local fh, filepath, dbver
+ fh, filepath, tablename, dbver = db.open_data_file(file)
+ if not fh then
+ if dbver then
+ -- data in database but missing file, just use what we have
+ ver = dbver
+ end
+ return
+ end
+
+ -- scan file for version
+ for line in fh:lines() do
+ local match = line:match('<history([^>]*)>')
+ if match then
+ match = match:match('version="([^"]*)"')
+ if match then
+ ver = match
+ break
+ end
+ end
+ end
+ if (not ver) or (ver == dbver) then
+ fh:close()
+ ver = dbver
+ return
+ end
+
+ if not dbver then
+ db.exec(
+ string.format(
+ [[CREATE TABLE "%s_idx" (
+ name VARCHAR NOT NULL,
+ list VARCHAR NOT NULL,
+ data INTEGER NOT NULL);]],
+ tablename))
+ db.check(string.format('creating %s index table', file))
+ db.exec(string.format([[CREATE TABLE "%s" (data CLOB NOT NULL);]], tablename))
+ db.check(string.format('creating %s data table', file))
+ db.exec(
+ string.format(
+ [[CREATE INDEX "namelist_%s" ON "%s_idx" (name, list);]],
+ tablename, tablename))
+ db.check(string.format('creating %s name/list index', file))
+ end
+
+ local slaxml = require('xml')
+
+ db.exec([[BEGIN TRANSACTION;]])
+ if not db.check(string.format('starting %s transaction', file)) then
+ fh:close()
+ ver = dbver
+ return
+ end
+
+ -- clean out previous data and update the version
+ if dbver then
+ db.exec(string.format([[DELETE FROM "%s";]], tablename))
+ if not db.check(string.format('deleting previous %s data', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ ver = dbver
+ return
+ end
+ db.exec(string.format([[DELETE FROM "%s_idx";]], tablename))
+ if not db.check(string.format('deleting previous %s data', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ ver = dbver
+ return
+ end
+ end
+ db.set_version(file, ver)
+ if not db.check(string.format('updating %s version', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ ver = dbver
+ return
+ end
+
+ fh:seek('set')
+ local buffer = fh:read('a')
+
+ local lasttag
+ local entry = {}
+ local rowid
+
+ local dataquery = db.prepare(
+ string.format([[INSERT INTO "%s" (data) VALUES (?);]], tablename))
+ local indexquery = db.prepare(
+ string.format([[INSERT INTO "%s_idx" (name, list, data) VALUES (?, ?, ?);]], tablename))
+
+ local parser = slaxml:parser{
+ startElement = function(name)
+ lasttag = name
+ if name == 'entry' then
+ entry = {}
+ rowid = nil
+ elseif (name == 'system') or (name == 'item') then
+ table.insert(entry, {})
+ end
+ end,
+ attribute = function(name, value)
+ if (name == 'name') or (name == 'list') then
+ entry[#entry][name] = value
+ end
+ end,
+ text = function(text, cdata)
+ if lasttag == 'text' then
+ text = text:gsub('\r', '') -- strip carriage returns
+ dataquery:bind_values(text)
+ while true do
+ local status = dataquery:step()
+ if status == db.DONE then
+ rowid = dataquery:last_insert_rowid();
+ break
+ elseif result == db.BUSY then
+ emu.print_error(string.format('Database busy: inserting %s data', file))
+ -- FIXME: how to abort parse and roll back?
+ break
+ elseif result ~= db.ROW then
+ db.check(string.format('inserting %s data', file))
+ break
+ end
+ end
+ dataquery:reset()
+ end
+ end,
+ closeElement = function(name)
+ if (name == 'entry') and rowid then
+ for num, entry in pairs(entry) do
+ indexquery:bind_values(entry.name, entry.list or '', rowid)
+ while true do
+ local status = indexquery:step()
+ if status == db.DONE then
+ break
+ elseif status == db.BUSY then
+ emu.print_error(string.format('Database busy: inserting %s data', file))
+ -- FIXME: how to abort parse and roll back?
+ break
+ elseif result ~= db.ROW then
+ db.check(string.format('inserting %s data', file))
+ break
+ end
+ end
+ indexquery:reset()
+ end
+ end
+ end
+ }
+
+ parser:parse(buffer, { stripWhitespace = true })
+ dataquery:finalize()
+ indexquery:finalize()
+ fh:close()
+
+ db.exec([[COMMIT TRANSACTION;]])
+ if not db.check(string.format('committing %s transaction', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ ver = dbver
+ end
+end
+
+if db then
+ init()
+end
function dat.check(set, softlist)
- if not datread then
+ if not ver then
return nil
end
- local status
- status, info = pcall(datread, "bio", softlist or "info", set)
- if not status or not info then
- return nil
+
+ info = nil
+ local query = db.prepare(
+ string.format(
+ [[SELECT f.data
+ FROM "%s_idx" AS fi LEFT JOIN "%s" AS f ON fi.data = f.rowid
+ WHERE fi.name = ? AND fi.list = ?;]],
+ tablename, tablename))
+ query:bind_values(set, softlist or '')
+ while not info do
+ local status = query:step()
+ if status == db.ROW then
+ info = query:get_value(0)
+ elseif status == db.DONE then
+ break
+ elseif status ~= db.BUSY then
+ db.check(string.format('reading %s data', file))
+ break
+ end
end
- return _("History")
+ query:finalize()
+ return info and _p('plugin-data', 'History') or nil
end
function dat.get()
diff --git a/plugins/data/data_mameinfo.lua b/plugins/data/data_mameinfo.lua
index 4ace7ba3f2a..0e77e328cef 100644
--- a/plugins/data/data_mameinfo.lua
+++ b/plugins/data/data_mameinfo.lua
@@ -1,23 +1,27 @@
local dat = {}
-local ver, info
-local datread = require("data/load_dat")
-datread, ver = datread.open("mameinfo.dat", "# MAMEINFO.DAT", function(str) return str:gsub("\n\n", "\n") end)
+
+local info, ver
+local datread = require('data/load_dat')
+datread, ver = datread.open(
+ 'mameinfo.dat',
+ '# MAMEINFO.DAT',
+ function (str) return str:gsub('\n\n', '\n') end)
function dat.check(set, softlist)
if softlist or not datread then
return nil
end
local status, drvinfo
- status, info = pcall(datread, "mame", "info", set)
+ status, info = pcall(datread, 'mame', 'info', set)
if not status or not info then
return nil
end
- local sourcefile = emu.driver_find(set).source_file:match("[^/\\]*$")
- status, drvinfo = pcall(datread, "drv", "info", sourcefile)
+ local sourcefile = emu.driver_find(set).source_file:match('[^/\\]*$')
+ status, drvinfo = pcall(datread, 'drv', 'info', sourcefile)
if drvinfo then
- info = info .. _("\n\n--- DRIVER INFO ---\nDriver: ") .. sourcefile .. "\n\n" .. drvinfo
+ info = info .. _p('plugin-data', '\n\n--- DRIVER INFO ---\nDriver: ') .. sourcefile .. '\n\n' .. drvinfo
end
- return _("MAMEinfo")
+ return _p('plugin-data', 'MAMEinfo')
end
function dat.get()
diff --git a/plugins/data/data_marp.lua b/plugins/data/data_marp.lua
index ed077a8c5bd..09fddf11ef9 100644
--- a/plugins/data/data_marp.lua
+++ b/plugins/data/data_marp.lua
@@ -1,124 +1,144 @@
-- get marp high score file from http://replay.marpirc.net/txt/scores3.htm
local dat = {}
+
local db = require("data/database")
local ver, info
local function init()
- local filepath
- local dbver
- local fh
- local file = "scores3.htm"
-
- for path in mame_manager:ui():options().entries.historypath:value():gmatch("([^;]+)") do
- filepath = lfs.env_replace(path) .. "/" .. file
- fh = io.open(filepath, "r")
- if fh then
- break
- end
- end
+ local file = 'scores3.htm'
- local stmt = db.prepare("SELECT version FROM version WHERE datfile = ?")
- db.check("reading marp version")
- stmt:bind_values(file)
- if stmt:step() == db.ROW then
- dbver = stmt:get_value(0)
- end
- stmt:finalize()
-
- if not fh and dbver then
- -- data in database but missing file, just use what we have
- ver = dbver
- return
- elseif not fh then
+ local fh, filepath, tablename, dbver = db.open_data_file(file)
+ if not fh then
+ if dbver then
+ -- data in database but missing file, just use what we have
+ ver = dbver
+ end
return
- elseif not dbver then
- db.exec("CREATE TABLE \"" .. file .. [[" (
- romset VARCHAR NOT NULL,
- data CLOB NOT NULL)]])
- db.check("creating marp table")
- db.exec("CREATE INDEX \"romset_" .. file .. "\" ON \"" .. file .. "_idx\"(romset)")
- db.check("creating marp index")
end
+ -- scan file for version
for line in fh:lines() do
- local match = line:match("Top Scores from the MAME Action Replay Page %(([%w :]+)%)")
+ local match = line:match('Top Scores from the MAME Action Replay Page %(([%w :]+)%)')
if match then
ver = match
break
end
end
-
- if not ver then
+ if (not ver) or (ver == dbver) then
fh:close()
+ ver = dbver
return
end
- if ver == dbver then
+ if not dbver then
+ db.exec(
+ string.format(
+ [[CREATE TABLE "%s" (
+ romset VARCHAR NOT NULL,
+ data CLOB NOT NULL,
+ PRIMARY KEY(romset));]],
+ tablename))
+ db.check('creating MARP table')
+ end
+
+ db.exec([[BEGIN TRANSACTION;]])
+ if not db.check('starting MARP transaction') then
fh:close()
+ ver = dbver
return
end
+ -- clean out previous data and update the version
if dbver then
- db.exec("DELETE FROM \"" .. file .. "\"")
- db.check("deleting marp")
- db.exec("DELETE FROM \"" .. file .. "_idx\"")
- db.check("deleting marp index")
- stmt = db.prepare("UPDATE version SET version = ? WHERE datfile = ?")
- db.check("updating marp version")
- else
- stmt = db.prepare("INSERT INTO version VALUES (?, ?)")
- db.check("inserting marp version")
+ db.exec(string.format([[DELETE FROM "%s";]], tablename))
+ if not db.check('deleting previous MARP data') then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ ver = dbver
+ return
+ end
+ end
+ if not db.set_version(file, ver) then
+ db.check('updating MARP version')
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ ver = dbver
+ return
end
- stmt:bind_values(ver, file)
- stmt:step()
- stmt:finalize()
- fh:seek("set")
- local buffer = fh:read("a")
- db.exec("BEGIN TRANSACTION")
- db.check("beginning marp transation")
+ fh:seek('set')
+ local buffer = fh:read('a')
local function gmatchpos()
local pos = 1
- local set, data = ""
+ local set = ''
+ local data = ''
local function iter()
local lastset = set
while true do
local spos, scr, plyr, stype, ltype
- local url = ""
- spos, pos, set, stype, scr, plyr, ltype = buffer:find("\n%s*([%w_]*)%-?(%w-) :%s*(%d+) [;:] ([^:]+): [^%[\n]*%[?([%w ]*)[^\n]*", pos)
+ spos, pos, set, stype, scr, plyr, ltype = buffer:find('\n%s*([%w_]*)%-?(%w-) :%s*(%d+) [;:] ([^:]+): [^%[\n]*%[?([%w ]*)[^\n]*', pos)
if not spos then
return nil
end
- if set ~= "" then
- if ltype ~= "" then
- url = ltype .. "\t\n"
- else
- url = ""
+
+ local url = ''
+ if set ~= '' then
+ if ltype ~= '' then
+ url = ltype .. '\t\n'
+ end
+ url = url .. 'http://replay.marpirc.net/r/' .. set
+ if stype ~= '' then
+ url = url .. '-' .. stype
end
- url = url .. "http://replay.marpirc.net/r/" .. set .. ((stype ~= "") and ("-" .. stype) or "") .. "\t\n"
+ url = url .. '\t\n'
end
- if set ~= "" and lastset and lastset ~= set then
+
+ if (set ~= '') and (lastset ~= set) then
local lastdata = data
- data = url .. plyr .. "\t" .. scr .. "\n"
+ data = url .. plyr .. '\t' .. scr .. '\n'
return lastset, lastdata
end
- data = data .. ((url ~= "") and ("\n" .. url) or "") .. plyr .. "\t" .. scr .. "\n"
+
+ if url ~= '' then
+ data = data .. '\n' .. url
+ end
+ data = data .. plyr .. '\t' .. scr .. '\n'
end
end
return iter
end
+ local query = db.prepare(
+ string.format([[INSERT INTO "%s" (romset, data) VALUES (?, ?)]], tablename))
for set, data in gmatchpos() do
- stmt = db.prepare("INSERT INTO \"" .. file .. "\" VALUES (?, ?)")
- db.check("inserting marp values")
- stmt:bind_values(set, data)
- stmt:step()
- stmt:finalize()
+ query:bind_values(set, data)
+ while true do
+ local status = query:step()
+ if status == db.DONE then
+ break
+ elseif status == db.BUSY then
+ emu.print_error('Database busy: inserting MARP data')
+ query:finalize()
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ ver = dbver
+ return
+ elseif result ~= db.ROW then
+ db.check('inserting MARP data')
+ break
+ end
+ end
+ query:reset()
end
+ query:finalize()
+
fh:close()
- db.exec("END TRANSACTION")
- db.check("ending marp transation")
+ db.exec([[COMMIT TRANSACTION;]])
+ if not db.check('committing MARP transaction') then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ ver = dbver
+ end
end
if db then
@@ -126,18 +146,26 @@ if db then
end
function dat.check(set, softlist)
- if softlist or not ver or not db then
+ if softlist or (not ver) then
return nil
end
+
info = nil
- local stmt = db.prepare("SELECT data FROM \"scores3.htm\" AS f WHERE romset = ?")
- db.check("reading marp data")
- stmt:bind_values(set)
- if stmt:step() == db.ROW then
- info = "#j2\n" .. stmt:get_value(0)
+ local query = db.prepare([[SELECT data FROM "scores3.htm" WHERE romset = ?;]])
+ query:bind_values(set)
+ while not info do
+ local status = query:step()
+ if status == db.ROW then
+ info = '#j2\n' .. query:get_value(0)
+ elseif status == db.DONE then
+ break
+ elseif status ~= db.BUSY then
+ db.check('reading MARP data')
+ break
+ end
end
- stmt:finalize()
- return info and _("MARPScore") or nil
+ query:finalize()
+ return info and _p('plugin-data', 'MARPScore') or nil
end
function dat.get()
diff --git a/plugins/data/data_messinfo.lua b/plugins/data/data_messinfo.lua
index b679763d940..3c94322474f 100644
--- a/plugins/data/data_messinfo.lua
+++ b/plugins/data/data_messinfo.lua
@@ -1,24 +1,27 @@
local dat = {}
-local ver, info
-local datread = require("data/load_dat")
-datread, ver = datread.open("messinfo.dat", "# MESSINFO.DAT", function(str) return str:gsub("\n\n", "\n") end)
+local ver, info
+local datread = require('data/load_dat')
+datread, ver = datread.open(
+ 'messinfo.dat',
+ '# MESSINFO.DAT',
+ function (str) return str:gsub('\n\n', '\n') end)
function dat.check(set, softlist)
if softlist or not datread then
return nil
end
local status, drvinfo
- status, info = pcall(datread, "mame", "info", set)
+ status, info = pcall(datread, 'mame', 'info', set)
if not status or not info then
return nil
end
- local sourcefile = emu.driver_find(set).source_file:match("[^/\\]*$")
- status, drvinfo = pcall(datread, "drv", "info", sourcefile)
+ local sourcefile = emu.driver_find(set).source_file:match('[^/\\]*$')
+ status, drvinfo = pcall(datread, 'drv', 'info', sourcefile)
if drvinfo then
- info = info .. _("\n\n--- DRIVER INFO ---\nDriver: ") .. sourcefile .. "\n\n" .. drvinfo
+ info = info .. _p('plugin-data', '\n\n--- DRIVER INFO ---\nDriver: ') .. sourcefile .. '\n\n' .. drvinfo
end
- return _("MESSinfo")
+ return _p('plugin-data', 'MESSinfo')
end
function dat.get()
diff --git a/plugins/data/data_story.lua b/plugins/data/data_story.lua
index 92b579f9ecb..2e7b40c74f9 100644
--- a/plugins/data/data_story.lua
+++ b/plugins/data/data_story.lua
@@ -1,25 +1,27 @@
local dat = {}
+
local ver, info
-local datread = require("data/load_dat")
-datread, ver = datread.open("story.dat", "# version")
+local datread = require('data/load_dat')
+datread, ver = datread.open('story.dat', '# version')
function dat.check(set, softlist)
if softlist or not datread then
return nil
end
- local status, data = pcall(datread, "story", "info", set)
+ local status, data = pcall(datread, 'story', 'info', set)
if not status or not data then
return nil
end
local lines = {}
- data = data:gsub("MAMESCORE records : ([^\n]+)", "MAMESCORE records :\t\n%1", 1)
- for line in data:gmatch("[^\n]*") do
- if not (#lines == 0 and line == "") and not (lines[#lines] == "" and line == "") then
- lines[#lines + 1] = line:gsub("^(.-)_+([0-9.]+)$", "%1\t%2")
+ data = data:gsub('MAMESCORE records : ([^\n]+)', 'MAMESCORE records :\t\n%1', 1)
+ for line in data:gmatch('[^\n]*') do
+ if (line ~= '') or ((#lines ~= 0) and (lines[#lines] ~= '')) then
+ line = line:gsub('^(.-)_+([0-9.]+)$', '%1\t%2')
+ table.insert(lines, line)
end
end
- info = "#j2\n" .. table.concat(lines, "\n")
- return _("Mamescore")
+ info = '#j2\n' .. table.concat(lines, '\n')
+ return _p('plugin-data', 'Mamescore')
end
function dat.get()
diff --git a/plugins/data/data_sysinfo.lua b/plugins/data/data_sysinfo.lua
index 8010ff854e0..1ba13605821 100644
--- a/plugins/data/data_sysinfo.lua
+++ b/plugins/data/data_sysinfo.lua
@@ -1,18 +1,19 @@
local dat = {}
+
local ver, info
-local datread = require("data/load_dat")
-datread, ver = datread.open("sysinfo.dat", "# This file was generated on")
+local datread = require('data/load_dat')
+datread, ver = datread.open('sysinfo.dat', '# This file was generated on')
function dat.check(set, softlist)
if softlist or not datread then
return nil
end
local status
- status, info = pcall(datread, "bio", "info", set)
+ status, info = pcall(datread, 'bio', 'info', set)
if not status or not info then
return nil
end
- return _("Sysinfo")
+ return _p('plugin-data', 'Sysinfo')
end
function dat.get()
diff --git a/plugins/data/database.lua b/plugins/data/database.lua
index 6eda6ab1507..fe2b9ce84bb 100644
--- a/plugins/data/database.lua
+++ b/plugins/data/database.lua
@@ -1,41 +1,159 @@
-local sql = require("lsqlite3")
-local datfile = {}
+local sql = require('lsqlite3')
local db
-local function check_db(msg)
+local function check_db_result(msg)
if db:errcode() > sql.OK then
- emu.print_error("Error: " .. msg .. " (" .. db:errcode() .. " - " .. db:errmsg() .. ")\n")
+ emu.print_error(string.format('Error: %s (%s - %s)', msg, db:errcode(), db:errmsg()))
+ return false
end
+ return true
end
-do
- local dbpath = lfs.env_replace(mame_manager:ui():options().entries.historypath:value():match("([^;]+)"))
- db = sql.open(dbpath .. "/history.db")
- if not db then
- lfs.mkdir(dbpath)
- db = sql.open(dbpath .. "/history.db")
+local function settings_path()
+ return manager.machine.options.entries.homepath:value():match('([^;]+)') .. '/data'
+end
+
+local function check_version_table()
+ local found = false
+ db:exec(
+ [[SELECT COUNT(*) FROM sqlite_master WHERE name = 'version' AND type = 'table';]],
+ function (udata, cols, values, names)
+ found = tonumber(values[1]) > 0
+ return 0
+ end)
+ if check_db_result('checking for "version" table') and (not found) then
+ db:exec(
+ [[CREATE TABLE version (
+ datfile VARCHAR NOT NULL,
+ version VARCHAR NOT NULL,
+ PRIMARY KEY (datfile));]])
+ found = check_db_result('creating "version" table')
+ end
+ if not found then
+ db:close()
+ db = nil
+ end
+end
+
+local function open_existing()
+ db = sql.open(settings_path() .. '/history.db', sql.OPEN_READWRITE)
+ if db then
+ check_version_table()
+ end
+ return db
+end
+
+local function open_create()
+ -- first try to create settings directory
+ local dir = settings_path()
+ local attr = lfs.attributes(dir)
+ if (not attr) and (not lfs.mkdir(dir)) then
+ emu.print_error(string.format('Error creating data plugin settings directory "%s"', dir))
+ elseif attr and (attr.mode ~= 'directory') then
+ emu.print_error(string.format('Error opening data plugin database: "%s" is not a directory', dir))
+ else
+ -- now try to open the database
+ local dbpath = dir .. '/history.db'
+ db = sql.open(dbpath, sql.OPEN_READWRITE | sql.OPEN_CREATE)
if not db then
- emu.print_error("Unable to create history.db\n")
- return false
+ emu.print_error(string.format('Error opening data plugin database "%s"', dbpath))
+ else
+ check_version_table()
end
- check_db("opening database")
end
+ return db
end
-if db then
- local found = false
- db:exec("select * from sqlite_master where name = 'version'", function() found = true return 0 end)
- check_db("checking for 'version' table")
- if not found then
- db:exec([[
- CREATE TABLE version (
- version VARCHAR NOT NULL,
- datfile VARCHAR UNIQUE NOT NULL)]])
- check_db("creating 'version' table")
+
+local dbtable = {
+ ROW = sql.ROW,
+ BUSY = sql.BUSY,
+ DONE = sql.DONE,
+ check = check_db_result }
+
+function dbtable.sanitize_name(name)
+ return name:gsub('[^%w%."]', '_')
+end
+
+function dbtable.get_version(filename)
+ -- don't try to create the database here, just return nil if it doesn't exist
+ if (not db) and (not open_existing()) then
+ return nil
+ end
+ local query = db:prepare([[SELECT version FROM version WHERE datfile = ?;]])
+ query:bind_values(filename)
+ local result
+ while result == nil do
+ local status = query:step()
+ if status == sql.ROW then
+ result = query:get_value(0)
+ elseif status ~= sql.BUSY then
+ break
+ end
+ end
+ query:finalize()
+ return result
+end
+
+function dbtable.set_version(filename, version)
+ if (not db) and (not open_create()) then
+ return nil
+ end
+ local query
+ if version ~= nil then
+ query = db:prepare(
+ [[INSERT INTO version (datfile, version) VALUES (?1, ?2)
+ ON CONFLICT(datfile) DO UPDATE set version = ?2;]])
+ query:bind_values(filename, version)
+ else
+ query = db:prepare([[DELETE FROM version WHERE datfile = ?1;]])
+ query:bind_values(filename)
+ end
+ local result
+ while result == nil do
+ local status = query:step()
+ if status == sql.DONE then
+ result = true
+ elseif result ~= sql.ROW then
+ result = false
+ end
+ end
+ query:finalize()
+ return result
+end
+
+function dbtable.prepare(...)
+ if (not db) and open_create() then
+ dbtable.prepare = function (...) return db:prepare(...) end
+ end
+ if db then
+ return db:prepare(...)
+ else
+ return nil
end
end
-local dbtable = { prepare = function(...) return db:prepare(...) end,
- exec = function(...) return db:exec(...) end, ROW = sql.ROW, check = check_db }
+function dbtable.exec(...)
+ if (not db) and open_create() then
+ dbtable.exec = function (...) return db:exec(...) end
+ end
+ if db then
+ return db:exec(...)
+ else
+ return nil
+ end
+end
+
+function dbtable.open_data_file(file)
+ local fh, filepath
+ for path in mame_manager.ui.options.entries.historypath:value():gmatch('([^;]+)') do
+ filepath = path .. '/' .. file
+ fh = io.open(filepath, 'r')
+ if fh then
+ break
+ end
+ end
+ return fh, filepath, dbtable.sanitize_name(file), dbtable.get_version(file)
+end
-return db and dbtable or false
+return dbtable
diff --git a/plugins/data/init.lua b/plugins/data/init.lua
index 4ef3675968f..0ce3dfa4631 100644
--- a/plugins/data/init.lua
+++ b/plugins/data/init.lua
@@ -4,17 +4,21 @@
-- heading if it supports the set otherwise nil and get which returns the data
-- the script should be named data_<name>.lua
-- this is set default on in the plugin.json
-local exports = {}
-exports.name = "data"
-exports.version = "0.0.1"
-exports.description = "Data plugin"
-exports.license = "The BSD 3-Clause License"
-exports.author = { name = "Carl" }
+local exports = {
+ name = 'data',
+ version = '0.0.2',
+ description = 'Data plugin',
+ license = 'BSD-3-Clause',
+ author = { name = 'Carl' } }
local data = exports
+local plugindir
+
+local reset_subscription
+
function data.set_folder(path)
- data.path = path
+ plugindir = path
end
function data.startplugin()
@@ -22,60 +26,66 @@ function data.startplugin()
local valid_lst = {}
local cur_set
local cur_list
- emu.register_start(function()
- data_scr = {}
- for file in lfs.dir(data.path) do
- local name = string.match(file, "^(data_.*).lua$")
- if name then
- local script = require("data/" .. name)
- if script then
- data_scr[#data_scr + 1] = script
+
+ reset_subscription = emu.add_machine_reset_notifier(
+ function ()
+ data_scr = {}
+ for file in lfs.dir(plugindir) do
+ local name = string.match(file, '^(data_.*).lua$')
+ if name then
+ local script = require('data/' .. name)
+ if script then
+ table.insert(data_scr, script)
+ end
+ end
end
- end
- end
- end)
- emu.register_callback(function(set)
- local ret = {}
- if set == "" then
- set = emu.romname()
- end
- if set == cur_set then
- return cur_list
- end
- cur_set = set
- if not set then
- return nil
- end
- valid_lst = {}
- for num, scr in ipairs(data_scr) do
- local setname, softname = set:match("^([^,]+),?(.*)$")
- if softname == "" then
- softname = nil
- end
- local name = scr.check(setname, softname)
- if name then
- ret[#ret + 1] = name
- valid_lst[#valid_lst + 1] = scr
- end
- end
- cur_list = ret
- return ret
- end, "data_list")
+ end)
- emu.register_callback(function(num)
- return valid_lst[num + 1].get()
- end, "data")
+ emu.register_callback(
+ function (set)
+ local ret = {}
+ if set == '' then
+ set = emu.romname()
+ end
+ if set == cur_set then
+ return cur_list
+ end
+ cur_set = set
+ if not set then
+ return nil
+ end
+ valid_lst = {}
+ for num, scr in ipairs(data_scr) do
+ local setname, softname = set:match('^([^,]+),?(.*)$')
+ if softname == '' then
+ softname = nil
+ end
+ local name = scr.check(setname, softname)
+ if name then
+ table.insert(ret, name)
+ table.insert(valid_lst, scr)
+ end
+ end
+ cur_list = ret
+ return ret
+ end,
+ 'data_list')
- emu.register_callback(function(num)
- local ver
- if valid_lst[num + 1].ver then
- ver = valid_lst[num + 1].ver()
- end
- if ver then
- return ver
- end
- return ""
- end, "data_version")
+ emu.register_callback(
+ function (num)
+ return valid_lst[num + 1].get()
+ end,
+ 'data')
+
+ emu.register_callback(
+ function (num)
+ local ver
+ if valid_lst[num + 1].ver then
+ ver = valid_lst[num + 1].ver()
+ end
+ return ver or ''
+ end,
+ 'data_version')
end
return exports
diff --git a/plugins/data/load_dat.lua b/plugins/data/load_dat.lua
index ce4ffed5c80..0438c5499ba 100644
--- a/plugins/data/load_dat.lua
+++ b/plugins/data/load_dat.lua
@@ -1,66 +1,55 @@
local datfile = {}
-local db = require("data/database")
-function datfile.open(file, vertag, fixupcb)
- if not db then
- return nil
- end
- local function read(tag1, tag2, set)
+local db = require('data/database')
+
+local function readret(file, tablename)
+ local query = db.prepare(
+ string.format(
+ [[SELECT f.data
+ FROM "%s_idx" AS fi LEFT JOIN "%s" AS f ON fi.data = f.rowid
+ WHERE fi.type = ? AND fi.val = ? AND fi.romset = ?;]],
+ tablename, tablename))
+ local function read(tag, val, set)
+ query:bind_values(tag, val, set)
local data
- local stmt = db.prepare("SELECT f.data FROM \"" .. file .. "_idx\" AS fi, \"" .. file .. [["
- AS f WHERE fi.type = ? AND fi.val = ? AND fi.romset = ? AND f.rowid = fi.data]])
- db.check("reading " .. tag1 .. " - " .. tag2 .. " - " .. set)
- stmt:bind_values(tag1, tag2, set)
- if stmt:step() == db.ROW then
- data = stmt:get_value(0)
+ while not data do
+ local status = query:step()
+ if status == db.ROW then
+ data = query:get_value(0)
+ elseif status == db.DONE then
+ break
+ elseif status ~= db.BUSY then
+ db.check(string.format('reading %s data', file))
+ break
+ end
end
- stmt:finalize()
+ query:reset()
return data
end
+ return read
+end
- local ver, dbver
- local filepath
- local fh
- for path in mame_manager:ui():options().entries.historypath:value():gmatch("([^;]+)") do
- filepath = lfs.env_replace(path) .. "/" .. file
- fh = io.open(filepath, "r")
- if fh then
- break
- end
- end
- -- remove unsafe chars from file for use in sql statement
- file = file:gsub("[^%w%._]", "")
-
- local stmt = db.prepare("SELECT version FROM version WHERE datfile = ?")
- db.check("reading version")
- stmt:bind_values(file)
- if stmt:step() == db.ROW then
- dbver = stmt:get_value(0)
+function datfile.open(file, vertag, fixupcb)
+ if not db then
+ return nil
end
- stmt:finalize()
- if not fh and dbver then
- -- data in database but missing file, just use what we have
- return read, dbver
- elseif not fh then
- return nil
- elseif not dbver then
- db.exec("CREATE TABLE \"" .. file .. [[_idx" (
- type VARCHAR NOT NULL,
- val VARCHAR NOT NULL,
- romset VARCHAR NOT NULL,
- data INTEGER NOT NULL)]])
- db.check("creating index")
- db.exec("CREATE TABLE \"" .. file .. "\" (data CLOB NOT NULL)")
- db.check("creating table")
- db.exec("CREATE INDEX \"typeval_" .. file .. "\" ON \"" .. file .. "_idx\"(type, val)")
- db.check("creating typeval index")
+ local fh, filepath, tablename, dbver = db.open_data_file(file)
+ if not fh then
+ if dbver then
+ -- data in database but missing file, just use what we have
+ return readret(file, tablename), dbver
+ else
+ return nil
+ end
end
+ local ver
if vertag then
+ -- scan file for version
for line in fh:lines() do
- local match = line:match(vertag .. "%s*([^%s]+)")
+ local match = line:match(vertag .. '%s*(%S+)')
if match then
ver = match
break
@@ -68,102 +57,204 @@ function datfile.open(file, vertag, fixupcb)
end
end
if not ver then
- -- use file ctime for version
- ver = tostring(lfs.attributes(filepath, "change"))
+ -- fall back to file modification time for version
+ ver = tostring(lfs.attributes(filepath, 'change'))
end
if ver == dbver then
fh:close()
- return read, dbver
+ return readret(file, tablename), dbver
+ end
+
+ if not dbver then
+ db.exec(
+ string.format(
+ [[CREATE TABLE "%s_idx" (
+ type VARCHAR NOT NULL,
+ val VARCHAR NOT NULL,
+ romset VARCHAR NOT NULL,
+ data INTEGER NOT NULL);]],
+ tablename))
+ db.check(string.format('creating %s index table', file))
+ db.exec(string.format([[CREATE TABLE "%s" (data CLOB NOT NULL);]], tablename))
+ db.check(string.format('creating %s data table', file))
+ db.exec(
+ string.format(
+ [[CREATE INDEX "typeval_%s" ON "%s_idx" (type, val, romset);]],
+ tablename, tablename))
+ db.check(string.format('creating %s type/value index', file))
end
+ db.exec([[BEGIN TRANSACTION;]])
+ if not db.check(string.format('starting %s transaction', file)) then
+ fh:close()
+ if dbver then
+ return readret(file, tablename), dbver
+ else
+ return nil
+ end
+ end
+
+ -- clean out previous data and update the version
if dbver then
- db.exec("DELETE FROM \"" .. file .. "\"")
- db.check("deleting")
- db.exec("DELETE FROM \"" .. file .. "_idx\"")
- db.check("deleting index")
- stmt = db.prepare("UPDATE version SET version = ? WHERE datfile = ?")
- db.check("updating version")
- else
- stmt = db.prepare("INSERT INTO version VALUES (?, ?)")
- db.check("inserting version")
+ db.exec(string.format([[DELETE FROM "%s";]], tablename))
+ if not db.check(string.format('deleting previous %s data', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ return readret(file, tablename), dbver
+ end
+ db.exec(string.format([[DELETE FROM "%s_idx";]], tablename))
+ if not db.check(string.format('deleting previous %s data', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ return readret(file, tablename), dbver
+ end
end
- stmt:bind_values(ver, file)
- stmt:step()
- stmt:finalize()
-
- do
- local inblock = false
- fh:seek("set")
- local buffer = fh:read("a")
- db.exec("BEGIN TRANSACTION")
- db.check("beginning transaction")
- local function gmatchpos()
- local pos = 1
- local function iter()
- local tag1, tag2, data, start, inblock = false
- while not data do
- local spos, epos, match = buffer:find("\n($[^\n\r]*)", pos)
- if not spos then
- return nil
- end
- if match ~= "$end" and not inblock then
- if not tag1 then
- tag1 = match
- else
- tag2 = match
- start = epos + 1
- inblock = true
- end
- elseif inblock == true then
- data = buffer:sub(start, spos)
- inblock = false
+ db.set_version(file, ver)
+ if not db.check(string.format('updating %s version', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ if dbver then
+ return readret(file, tablename), dbver
+ else
+ return nil
+ end
+ end
+
+ local dataquery = db.prepare(
+ string.format([[INSERT INTO "%s" (data) VALUES (?);]], tablename))
+ local indexquery = db.prepare(
+ string.format(
+ [[INSERT INTO "%s_idx" (type, val, romset, data) VALUES (?, ?, ?, ?)]],
+ tablename))
+
+ fh:seek('set')
+ local buffer = fh:read('a')
+
+ local function gmatchpos()
+ local pos = 1
+ local function iter()
+ local tags, data
+ while not data do
+ local npos
+ local spos, epos = buffer:find('[\n\r]$[^=\n\r]*=[^\n\r]*', pos)
+ if not spos then
+ return nil
+ end
+ npos, epos = buffer:find('[\n\r]$%w+%s*[\n\r]+', epos)
+ if not npos then
+ return nil
+ end
+ tags = buffer:sub(spos, epos)
+ spos, npos = buffer:find('[\n\r]$[^=\n\r]*=[^\n\r]*', epos)
+ if not spos then
+ return nil
+ end
+ data = buffer:sub(epos, spos)
+ pos = spos
+ end
+ return tags, data
+ end
+ return iter
+ end
+
+ for info, data in gmatchpos() do
+ local tags = {}
+ local infotype
+ info = info:gsub(utf8.char(0xfeff), '') -- remove byte order marks
+ data = data:gsub(utf8.char(0xfeff), '')
+ for s in info:gmatch('[\n\r]$([^\n\r]*)') do
+ if s:find('=', 1, true) then
+ local m1, m2 = s:match('([^=]*)=(.*)')
+ for tag in m1:gmatch('[^,]+') do
+ for set in m2:gmatch('[^,]+') do
+ table.insert(tags, { tag = tag, set = set })
end
- pos = epos
end
- return tag1, tag2, data
+ else
+ infotype = s
+ break
end
- return iter
end
- for info1, info2, data in gmatchpos() do
- local tag, set = info1:match("^%$([^%s=]+)=?([^%s]*)")
- if set and set ~= "" then
- local tags = {}
- local sets = {}
- tag:gsub("([^,]+)", function(s) tags[#tags + 1] = s end)
- set:gsub("([^,]+)", function(s) sets[#sets + 1] = s end)
- if #tags > 0 and #sets > 0 then
- local tag1 = info2:match("^$([^%s]*)")
- data = data:gsub("\r", "") -- strip crs
- if fixupcb then
- data = fixupcb(data)
+
+ data = data:gsub('[\n\r]$end%s*[\n\r]$%w+%s*[\n\r]', '\n')
+ data = data:gsub('[\n\r]$end%s*[\n\r].-[\n\r]$%w+%s*[\n\r]', '\n')
+ data = data:gsub('[\n\r]$end%s*[\n\r].*', '')
+
+ if (#tags > 0) and infotype then
+ data = data:gsub('\r', '') -- strip carriage returns
+ if fixupcb then
+ data = fixupcb(data)
+ end
+
+ dataquery:bind_values(data)
+ local row
+ while true do
+ local status = dataquery:step()
+ if status == db.DONE then
+ row = dataquery:last_insert_rowid();
+ break
+ elseif status == db.BUSY then
+ emu.print_error(string.format('Database busy: inserting %s data', file))
+ dataquery:finalize()
+ indexquery:finalize()
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ if dbver then
+ return readret(file, tablename), dbver
+ else
+ return nil
end
- stmt = db.prepare("INSERT INTO \"" .. file .. "\" VALUES (?)")
- db.check("inserting values")
- stmt:bind_values(data)
- stmt:step()
- local row = stmt:last_insert_rowid()
- stmt:finalize()
- for num1, tag2 in pairs(tags) do
- for num2, set in pairs(sets) do
- if fixupcb then
- fixupcb(data)
+ elseif result ~= db.ROW then
+ db.check(string.format('inserting %s data', file))
+ break
+ end
+ end
+ dataquery:reset()
+
+ if row then
+ for num, tag in pairs(tags) do
+ indexquery:bind_values(infotype, tag.tag, tag.set, row)
+ while true do
+ local status = indexquery:step()
+ if status == db.DONE then
+ break
+ elseif status == db.BUSY then
+ emu.print_error(string.format('Database busy: inserting %s data', file))
+ dataquery:finalize()
+ indexquery:finalize()
+ db.exec([[ROLLBACK TRANSACTION;]])
+ fh:close()
+ if dbver then
+ return readret(file, tablename), dbver
+ else
+ return nil
end
- stmt = db.prepare("INSERT INTO \"" .. file .. "_idx\" VALUES (?, ?, ?, ?)")
- db.check("inserting into index")
- stmt:bind_values(tag1, tag2, set, row)
- stmt:step()
- stmt:finalize()
+ elseif result ~= db.ROW then
+ db.check(string.format('inserting %s data', file))
+ break
end
end
+ indexquery:reset()
end
end
end
- db.exec("END TRANSACTION")
- db.check("ending transaction")
end
+
+ dataquery:finalize()
+ indexquery:finalize()
+
fh:close()
+ db.exec([[COMMIT TRANSACTION;]])
+ if not db.check(string.format('committing %s transaction', file)) then
+ db.exec([[ROLLBACK TRANSACTION;]])
+ if dbver then
+ return readret(file, tablename), dbver
+ else
+ return nil
+ end
+ end
- return read, ver
+ return readret(file, tablename), ver
end
return datfile
diff --git a/plugins/discord/init.lua b/plugins/discord/init.lua
index 21ec88ec79a..9e077f5d656 100644
--- a/plugins/discord/init.lua
+++ b/plugins/discord/init.lua
@@ -1,14 +1,16 @@
-- license:BSD-3-Clause
-- copyright-holders:Carl
-local exports = {}
-exports.name = "discord"
-exports.version = "0.0.1"
-exports.description = "Discord presence"
-exports.license = "The BSD 3-Clause License"
-exports.author = { name = "Carl" }
+local exports = {
+ name = "discord",
+ version = "0.0.1",
+ description = "Discord presence",
+ license = "BSD-3-Clause",
+ author = { name = "Carl" } }
local discord = exports
+local reset_subscription, pause_subscription, resume_subscription
+
function discord.startplugin()
local pipe = emu.file("rw")
local json = require("json")
@@ -40,16 +42,20 @@ function discord.startplugin()
if data:find("code", 1, true) then
error("discord: bad RPC reply, " .. data:sub(8) .. "\n")
end
+ if #data == 0 then
+ error("discord: timed out waiting for response\n");
+ end
end
local function update(status)
+ if not pipe then return end
local running = emu.romname() ~= "___empty"
local state = not running and "In menu" or status
- local details = running and manager:machine():system().description or nil
+ local details = running and manager.machine.system.description or nil
if emu.softname() ~= "" then
- for name, dev in pairs(manager:machine().images) do
- if dev:longname() then
- details = details .. " (" .. dev:longname() .. ")"
+ for name, dev in pairs(manager.machine.images) do
+ if dev.software_longname then
+ details = details .. " (" .. dev.software_longname .. ")"
break
end
end
@@ -78,27 +84,32 @@ function discord.startplugin()
local res = pipe:read(100)
data = data .. res
until #res == 0 and #data > 0 or time + 1 < os.time()
+ if #data == 0 then
+ emu.print_verbose("discord: timed out waiting for response, closing connection");
+ pipe = nil
+ end
--print(data)
end
do
local stat, err = pcall(init)
if not stat then
- emu.print_error(err)
+ emu.print_verbose(err)
+ pipe = nil
return
end
end
- emu.register_start(function()
+ reset_subscription = emu.add_machine_reset_notifier(function ()
starttime = os.time()
update("Playing")
end)
- emu.register_pause(function()
+ pause_subscription = emu.add_machine_pause_notifier(function ()
update("Paused")
end)
- emu.register_resume(function()
+ resume_subscription = emu.add_machine_resume_notifier(function ()
update("Playing")
end)
end
diff --git a/plugins/dummy/init.lua b/plugins/dummy/init.lua
index 89ba95a7f86..54d4f3d7fef 100644
--- a/plugins/dummy/init.lua
+++ b/plugins/dummy/init.lua
@@ -1,29 +1,33 @@
-- license:BSD-3-Clause
-- copyright-holders:Miodrag Milanovic
-local exports = {}
-exports.name = "dummy"
-exports.version = "0.0.1"
-exports.description = "A dummy example"
-exports.license = "The BSD 3-Clause License"
-exports.author = { name = "Miodrag Milanovic" }
+local exports = {
+ name = "dummy",
+ version = "0.0.1",
+ description = "A dummy example",
+ license = "BSD-3-Clause",
+ author = { name = "Miodrag Milanovic" }}
local dummy = exports
+local reset_subscription, stop_subscription
+
function dummy.startplugin()
- emu.register_start(function()
- emu.print_verbose("Starting " .. emu.gamename())
- end)
+ reset_subscription = emu.add_machine_reset_notifier(
+ function ()
+ emu.print_info("Starting " .. emu.gamename())
+ end)
- emu.register_stop(function()
- emu.print_verbose("Exiting " .. emu.gamename())
- end)
+ stop_subscription = emu.add_machine_stop_notifier(
+ function ()
+ emu.print_info("Exiting " .. emu.gamename())
+ end)
local function menu_populate()
- return {{ "This is a", "test", "off" }, { "Also a", "test", 0 }}
+ return {{ "This is a", "test", "off" }, { "Also a", "test", "" }}
end
local function menu_callback(index, event)
- emu.print_verbose("index: " .. index .. " event: " .. event)
+ emu.print_info("index: " .. index .. " event: " .. event)
return false
end
diff --git a/plugins/gdbstub/init.lua b/plugins/gdbstub/init.lua
index e34b0dcfb5d..1d358518965 100644
--- a/plugins/gdbstub/init.lua
+++ b/plugins/gdbstub/init.lua
@@ -1,11 +1,11 @@
-- license:BSD-3-Clause
-- copyright-holders: Carl
-local exports = {}
-exports.name = "gdbstub"
-exports.version = "0.0.1"
-exports.description = "GDB stub plugin"
-exports.license = "The BSD 3-Clause License"
-exports.author = { name = "Carl" }
+local exports = {
+ name = "gdbstub",
+ version = "0.0.1",
+ description = "GDB stub plugin",
+ license = "BSD-3-Clause",
+ author = { name = "Carl" } }
local gdbstub = exports
@@ -25,6 +25,8 @@ local regmaps = {
regmaps.i486 = regmaps.i386
regmaps.pentium = regmaps.i386
+local reset_subscription, stop_subscription
+
function gdbstub.startplugin()
local debugger
local debug
@@ -35,18 +37,18 @@ function gdbstub.startplugin()
local consolelast
local running
- emu.register_start(function ()
- debugger = manager:machine():debugger()
+ reset_subscription = emu.add_machine_reset_notifier(function ()
+ debugger = manager.machine.debugger
if not debugger then
print("gdbstub: debugger not enabled")
return
end
- cpu = manager:machine().devices[":maincpu"]
+ cpu = manager.machine.devices[":maincpu"]
if not cpu then
print("gdbstub: maincpu not found")
end
- if not regmaps[cpu:shortname()] then
- print("gdbstub: no register map for cpu " .. cpu:shortname())
+ if not regmaps[cpu.shortname] then
+ print("gdbstub: no register map for cpu " .. cpu.shortname)
cpu = nil
end
consolelog = debugger.consolelog
@@ -56,7 +58,7 @@ function gdbstub.startplugin()
running = false
end)
- emu.register_stop(function()
+ stop_subscription = emu.add_machine_stop_notifier(function ()
consolelog = nil
cpu = nil
debug = nil
@@ -98,7 +100,7 @@ function gdbstub.startplugin()
consolelast = #consolelog
if #consolelog > last and msg:find("Stopped at", 1, true) then
local point = tonumber(msg:match("Stopped at breakpoint ([0-9]+)"))
- local map = regmaps[cpu:shortname()]
+ local map = regmaps[cpu.shortname]
running = false
if not point then
point = tonumber(msg:match("Stopped at watchpoint ([0-9]+"))
@@ -152,7 +154,7 @@ function gdbstub.startplugin()
if packet then
packet:gsub("}(.)", function(s) return string.char(string.byte(s) ~ 0x20) end)
local cmd = packet:sub(1, 1)
- local map = regmaps[cpu:shortname()]
+ local map = regmaps[cpu.shortname]
if cmd == "g" then
local regs = {}
for reg, idx in pairs(map.togdb) do
@@ -175,7 +177,7 @@ function gdbstub.startplugin()
local data = ""
local space = cpu.spaces["program"]
for count = 1, len do
- data = data .. string.format("%.2x", space:read_log_u8(addr))
+ data = data .. string.format("%.2x", space:readv_u8(addr))
addr = addr + 1
end
socket:write("+$" .. data .. "#" .. chksum(data))
@@ -188,14 +190,14 @@ function gdbstub.startplugin()
if addr and len and data then
addr = tonumber(addr, 16)
local space = cpu.spaces["program"]
- data:gsub("%x%x", function(s) space:write_log_u8(addr + count, tonumber(s, 16)) count = count + 1 end)
+ data:gsub("%x%x", function(s) space:writev_u8(addr + count, tonumber(s, 16)) count = count + 1 end)
socket:write("+$OK#9a")
else
socket:write("+$E00#a5")
end
elseif cmd == "s" then
if #packet == 1 then
- cpu:debug():step()
+ cpu.debug:step()
socket:write("+$OK#9a")
socket:write("$S05#B8")
running = false
@@ -204,7 +206,7 @@ function gdbstub.startplugin()
end
elseif cmd == "c" then
if #packet == 1 then
- cpu:debug():go()
+ cpu.debug:go()
socket:write("+$OK#9a")
else
socket:write("+$E00#a5")
@@ -219,7 +221,7 @@ function gdbstub.startplugin()
socket:write("+$E00#a5")
return
end
- local idx = cpu:debug():bpset(addr)
+ local idx = cpu.debug:bpset(addr)
breaks.byaddr[addr] = idx
breaks.byidx[idx] = addr
socket:write("+$OK#9a")
@@ -228,7 +230,7 @@ function gdbstub.startplugin()
socket:write("+$E00#a5")
return
end
- local idx = cpu:debug():wpset(cpu.spaces["program"], "w", addr, 1)
+ local idx = cpu.debug:wpset(cpu.spaces["program"], "w", addr, 1)
watches.byaddr[addr] = idx
watches.byidx[idx] = {addr = addr, type = "watch"}
socket:write("+$OK#9a")
@@ -237,7 +239,7 @@ function gdbstub.startplugin()
socket:write("+$E00#a5")
return
end
- local idx = cpu:debug():wpset(cpu.spaces["program"], "r", addr, 1)
+ local idx = cpu.debug:wpset(cpu.spaces["program"], "r", addr, 1)
watches.byaddr[addr] = idx
watches.byidx[idx] = {addr = addr, type = "rwatch"}
socket:write("+$OK#9a")
@@ -246,7 +248,7 @@ function gdbstub.startplugin()
socket:write("+$E00#a5")
return
end
- local idx = cpu:debug():wpset(cpu.spaces["program"], "rw", addr, 1)
+ local idx = cpu.debug:wpset(cpu.spaces["program"], "rw", addr, 1)
watches.byaddr[addr] = idx
watches.byidx[idx] = {addr = addr, type = "awatch"}
socket:write("+$OK#9a")
@@ -262,7 +264,7 @@ function gdbstub.startplugin()
return
end
local idx = breaks.byaddr[addr]
- cpu:debug():bpclr(idx)
+ cpu.debug:bpclr(idx)
breaks.byaddr[addr] = nil
breaks.byidx[idx] = nil
socket:write("+$OK#9a")
@@ -272,7 +274,7 @@ function gdbstub.startplugin()
return
end
local idx = watches.byaddr[addr]
- cpu:debug():wpclr(idx)
+ cpu.debug:wpclr(idx)
watches.byaddr[addr] = nil
watches.byidx[idx] = nil
socket:write("+$OK#9a")
diff --git a/plugins/hiscore/hiscore.dat b/plugins/hiscore/hiscore.dat
index 02eda7ef815..3147886e1b0 100644
--- a/plugins/hiscore/hiscore.dat
+++ b/plugins/hiscore/hiscore.dat
@@ -22,596 +22,62 @@
; This hiscore.dat is only usable with lua enabled versions of mame since 0.172
; For examples of @delay & shared memory see: Gorf/Missile Command (share) & blastoff (@delay)
-;@s:1942.cpp
+;@s:acorn/ertictac.cpp
-;1942w:******1942 (Williams Electronics license)
-1942:
-1942a:
-1942abl:
-1942b:
-1942p:
-1942w:
-@:maincpu,program,e800,190,00,00
-@:maincpu,program,e9c0,1,1e,1e
-@:maincpu,program,e040,8,00,00
-@:maincpu,program,e028,1,01,01
-
-
-;@s:1943.cpp
-
-1943b:
-1943j:
-1943ja:
-1943jah:
-1943kai:
-@:maincpu,program,e600,60,00,00
-@:maincpu,program,e110,8,00,00
-@:maincpu,program,d1be,1,24,24
-@:maincpu,program,d1de,1,02,02
-@:maincpu,program,d1fe,1,00,00
-@:maincpu,program,d21e,1,00,00
-@:maincpu,program,d23e,1,00,00
-@:maincpu,program,d25e,1,00,00
-@:maincpu,program,d27e,1,00,00
-
-
-1943:
-1943mii:
-1943u:
-@:maincpu,program,e600,60,00,00
-@:maincpu,program,e110,8,00,00
-@:maincpu,program,d1be,1,24,24
-@:maincpu,program,d1de,1,24,24
-@:maincpu,program,d1fe,1,02,02
-@:maincpu,program,d21e,1,00,00
-@:maincpu,program,d23e,1,00,00
-@:maincpu,program,d25e,1,00,00
-@:maincpu,program,d27e,1,00,00
-
-
-;@s:1945kiii.cpp
-
-;*******1945k III
-1945kiii:
-1945kiiin:
-1945kiiio:
-@:maincpu,program,100a2d,63,03,88
-
-
-;@s:40love.cpp
-
-;********(field day and clone)
-fieldday:
-undoukai:
-@:maincpu,program,c00d,536,48,11
-@:maincpu,program,a190,1,03,03
-
-
-;@s:4enraya.cpp
-
-4enrayaa:
-@:maincpu,program,c13e,6c,01,0c
-
-
-;********(4 en raya)
-4enraya:
-@:maincpu,program,c152,6c,01,0c
-
-
-;@s:8080bw.cpp
-
-searthie:
-supinvsion:
-@:maincpu,program,20f4,02,00,50
-
-
-alieninvp2:
-cosmicin:
-galmonst:
-invader4:
-invaders:
-invadersem:
-invadrmr:
-invasion:
-invasiona:
-invasiona2:
-invasionb:
-invasionrz:
-invasionrza:
-searthin:
-searthina:
-sicv:
-sicv1:
-sinvemag:
-sinvzen:
-sisv:
-sisv1:
-sisv2:
-sisv3:
-sitv:
-sitv1:
-spaceat2:
-spaceatt:
-spaceatt2k:
-spaceattbp:
-spacecom:
-spacerng:
-spceking:
-superinv:
-ultrainv:
-@:maincpu,program,20f4,02,00,00
-
-
-crashrd:
-@:maincpu,program,233f,03,01,00
-@:maincpu,program,2244,0a,02,1b
-
-
-invadernc:
-@:maincpu,program,20e0,3,00,00
-
-
-;****** space invaders clones fixes (i didn't realise you could enter your initials !!)
-spacewr3:
-spcewarla:
-spcewars:
-swipeout:
-@:maincpu,program,20f4,02,00,00
-@:maincpu,program,2e3e,1,7f,7f
-@:maincpu,program,2e5e,1,08,08
-@:maincpu,program,2e7e,1,08,08
-@:maincpu,program,2e9e,1,08,08
-@:maincpu,program,2ebe,1,7f,7f
-@:maincpu,program,2f3e,1,00,00
-@:maincpu,program,2f5e,1,41,41
-@:maincpu,program,2f7e,1,7f,7f
-@:maincpu,program,2f9e,1,41,41
-@:maincpu,program,2fbe,1,00,00
-@:maincpu,program,303e,1,08,08
-@:maincpu,program,305e,1,08,08
-@:maincpu,program,307e,1,08,08
-@:maincpu,program,309e,1,08,08
-@:maincpu,program,30be,1,08,08
-@:maincpu,program,313e,1,32,32
-@:maincpu,program,315e,1,49,49
-@:maincpu,program,317e,1,49,49
-@:maincpu,program,319e,1,49,49
-@:maincpu,program,31be,1,26,26
-@:maincpu,program,323e,1,3e,3e
-@:maincpu,program,325e,1,41,41
-@:maincpu,program,327e,1,41,41
-@:maincpu,program,329e,1,41,41
-@:maincpu,program,32be,1,22,22
-@:maincpu,program,333e,1,3e,3e
-@:maincpu,program,335e,1,41,41
-@:maincpu,program,337e,1,41,41
-@:maincpu,program,339e,1,41,41
-@:maincpu,program,33be,1,3e,3e
-@:maincpu,program,343e,1,7f,7f
-@:maincpu,program,345e,1,48,48
-@:maincpu,program,347e,1,4c,4c
-@:maincpu,program,349e,1,4a,4a
-@:maincpu,program,34be,1,31,31
-@:maincpu,program,353e,1,7f,7f
-@:maincpu,program,355e,1,49,49
-@:maincpu,program,357e,1,49,49
-@:maincpu,program,359e,1,49,49
-@:maincpu,program,35be,1,41,41
-
-
-ozmawarsmr:
-@:maincpu,program,2043,02,00,00
-@:maincpu,program,2023,01,01,01
-
-
-;updated when start a game
-;updated when start a game
-desterth:
-escmars:
-lrescue:
-lrescuem:
-lrescuem2:
-@:maincpu,program,20db,1,0a,0a
-@:maincpu,program,20cf,a,1b,1b
-@:maincpu,program,20f4,2,00,05
-
-
-darthvdr:
-@:maincpu,program,1c08,2,00,00
-
-
-polarisa:
-polarisbr:
-@:maincpu,program,2150,14,00,00
-@:maincpu,program,2165,1e,2a,2a
-@:maincpu,program,2314,02,00,00
-
-
-polaris:
-@:maincpu,program,2314,02,00,00
-
-
-attackfc:
-@:maincpu,program,2080,60,00,24
-@:maincpu,program,2047,2,00,00
-
-
-;******Cosmic Monsters 2
-;cosmicmo:******cosmic monsters (*)
-cosmicm2:
-cosmicmo:
-@:maincpu,program,20f4,03,00,00
-
-
-rollingc:
-@:maincpu,program,2302,0f,00,00
-
-
-;indianbt:******Indian Battle
-indianbt:
-indianbtbr:
-@:maincpu,program,2314,2,00,00
-
-
-galactic:
-spacmiss:
-@:maincpu,program,20a8,3,00,00
-
-
-;yosakdona:******yokasu to donbei (set 2)
-yosakdon:
-yosakdona:
-@:maincpu,program,23ab,3,00,00
-
-
-ballbomb:
-lupin3:
-@:maincpu,program,20dc,03,00,00
-
-
-invrvnge:
-invrvngea:
-invrvngeb:
-invrvngedu:
-invrvngegw:
-@:maincpu,program,2019,3,00,00
-
-
-;shuttlei:******shuttle invader
-shuttlei:
-@:maincpu,program,4008,3,00,00
-
-
-moonbase:
-moonbasea:
-@:maincpu,program,2340,a,0d,14
-@:maincpu,program,20f4,2,00,05
-
-
-galxwars:
-galxwars2:
-galxwarst:
-galxwarst2:
-starw:
-starw1:
-@:maincpu,program,2005,06,00,00
-
-
-invaddlx:
-invadpt2:
-@:maincpu,program,20f4,2,00,05
-@:maincpu,program,2340,a,1b,1b
-
-
-;(space laser) and clones (by GeoMan)
-intruder:
-laser:
-spcewarl:
-spclaser:
-@:maincpu,program,2034,2,0,0
-@:maincpu,program,205b,1,3d,3d
-@:maincpu,program,2e70,4a1,0,0
-@:maincpu,program,2034,2,0,0
-@:maincpu,program,2058,1,9,9
-@:maincpu,program,2e70,4a1,0,0
-
-
-schasercv:
-@:maincpu,program,233d,03,01,00
-
-
-;mlander:******Moon Lander (bootleg of Lunar Rescue)
-mlander:
-@:maincpu,program,20c0,1,0a,0a
-@:maincpu,program,20cf,a,1b,1b
-@:maincpu,program,20f4,2,00,05
-
-
-invaderl:
-@:maincpu,program,20e0,03,00,00
-
-
-jspecter:
-jspecter2:
-@:maincpu,program,20f4,2,00,00
-@:maincpu,program,2300,2,00,00
-
-
-alieninv:
-@:maincpu,program,20f4,2,00,50
-
-
-schaser:
-schasera:
-schaserb:
-schaserc:
-@:maincpu,program,2244,0a,1b,1b
-@:maincpu,program,233f,03,01,00
-
-
-;*******cosmo
-cosmo:
-@:maincpu,program,2038,3,00,00
-@:maincpu,program,2e22,1,7c,7c
-@:maincpu,program,2e42,1,82,82
-@:maincpu,program,2e62,1,82,82
-@:maincpu,program,2e82,1,82,82
-@:maincpu,program,2ea2,1,7c,7c
-@:maincpu,program,2f22,1,00,00
-@:maincpu,program,2f42,1,00,00
-@:maincpu,program,2f62,1,00,00
-@:maincpu,program,2f82,1,00,00
-@:maincpu,program,2fa2,1,00,00
-@:maincpu,program,3022,1,00,00
-@:maincpu,program,3042,1,00,00
-@:maincpu,program,3062,1,00,00
-@:maincpu,program,3082,1,00,00
-@:maincpu,program,30a2,1,00,00
-@:maincpu,program,3122,1,00,00
-@:maincpu,program,3142,1,00,00
-@:maincpu,program,3162,1,00,00
-@:maincpu,program,3182,1,00,00
-@:maincpu,program,31a2,1,00,00
-@:maincpu,program,3222,1,00,00
-@:maincpu,program,3242,1,00,00
-@:maincpu,program,3262,1,00,00
-@:maincpu,program,3282,1,00,00
-@:maincpu,program,32a2,1,00,00
-@:maincpu,program,3322,1,00,00
-@:maincpu,program,3342,1,00,00
-@:maincpu,program,3362,1,00,00
-@:maincpu,program,3382,1,00,00
-@:maincpu,program,33a2,1,00,00
-@:maincpu,program,3422,1,00,00
-@:maincpu,program,3442,1,00,00
-@:maincpu,program,3462,1,00,00
-@:maincpu,program,3482,1,00,00
-@:maincpu,program,34a2,1,00,00
-
-
-;skylove:******Sky Love
-skylove:
-@:maincpu,program,414b,3,00,00
-@:maincpu,program,297d,2,0f,fc
-@:maincpu,program,299d,2,0f,fc
-@:maincpu,program,29bd,2,0c,0c
-@:maincpu,program,29dd,2,0c,0c
-@:maincpu,program,29fd,2,0c,0c
-@:maincpu,program,2a1d,2,0f,fc
-@:maincpu,program,2a3d,2,0f,fc
-@:maincpu,program,2a9d,2,0f,fc
-@:maincpu,program,2abd,2,0f,fc
-@:maincpu,program,2add,2,0c,0c
-@:maincpu,program,2afd,2,0c,0c
-@:maincpu,program,2b1d,2,0c,0c
-@:maincpu,program,2b3d,2,0f,fc
-@:maincpu,program,2b5d,2,0f,fc
-@:maincpu,program,2bbd,2,0f,fc
-@:maincpu,program,2bdd,2,0f,fc
-@:maincpu,program,2bfd,2,0c,0c
-@:maincpu,program,2c1d,2,0c,0c
-@:maincpu,program,2c3d,2,0c,0c
-@:maincpu,program,2c5d,2,0f,fc
-@:maincpu,program,2c7d,2,0f,fc
-@:maincpu,program,2cdd,2,0f,fc
-@:maincpu,program,2cfd,2,0f,fc
-@:maincpu,program,2d1d,2,0c,0c
-@:maincpu,program,2d3d,2,0c,0c
-@:maincpu,program,2d5d,2,0c,0c
-@:maincpu,program,2d7d,2,0f,fc
-@:maincpu,program,2d9d,2,0f,fc
-@:maincpu,program,2dfd,2,0f,fc
-@:maincpu,program,2e1d,2,0f,fc
-@:maincpu,program,2e3d,2,0c,0c
-@:maincpu,program,2e5d,2,0c,0c
-@:maincpu,program,2e7d,2,0c,0c
-@:maincpu,program,2e9d,2,0f,fc
-@:maincpu,program,2ebd,2,0f,fc
-
-
-;*******steelwkr
-steelwkr:
-@:maincpu,program,200a,06,00,00
-
-
-ozmawars:
-ozmawars2:
-solfight:
-spaceph:
-@:maincpu,program,2043,02,00,00
-
-
-;*******straight flush
-;** gotta love those early videoram games !! **
-sflush:
-@:maincpu,program,215,3,00,00
-@:maincpu,program,4e3d,1,00,00
-@:maincpu,program,4e5d,1,00,00
-@:maincpu,program,4e7d,1,00,00
-@:maincpu,program,4e9d,1,00,00
-@:maincpu,program,4ebd,1,00,00
-@:maincpu,program,4f3d,1,00,00
-@:maincpu,program,4f5d,1,00,00
-@:maincpu,program,4f7d,1,00,00
-@:maincpu,program,4f9d,1,00,00
-@:maincpu,program,4fbd,1,00,00
-@:maincpu,program,503d,1,00,00
-@:maincpu,program,505d,1,00,00
-@:maincpu,program,507d,1,00,00
-@:maincpu,program,509d,1,00,00
-@:maincpu,program,50bd,1,00,00
-@:maincpu,program,513d,1,3e,3e
-@:maincpu,program,515d,1,45,45
-@:maincpu,program,517d,1,49,49
-@:maincpu,program,519d,1,51,51
-@:maincpu,program,51bd,1,3e,3e
-@:maincpu,program,523d,1,3e,3e
-@:maincpu,program,525d,1,45,45
-@:maincpu,program,527d,1,49,49
-@:maincpu,program,529d,1,51,51
-@:maincpu,program,52bd,1,3e,3e
-@:maincpu,program,533d,1,00,00
-@:maincpu,program,535d,1,00,00
-@:maincpu,program,537d,1,00,00
-@:maincpu,program,539d,1,00,00
-@:maincpu,program,53bd,1,00,00
-
-
-;@s:actfancr.cpp
-
-actfancr:
-actfancr1:
-actfancr2:
-actfancrj:
-@:maincpu,program,1f0ce6,1e,05,45
-@:maincpu,program,1f00be,3,00,00
-
-
-;triothep:******Trio The Punch - Never Forget Me... (World)
-triothep:
-triothepj:
-@:maincpu,program,1f1a58,41,41,4d
-
-
-;@s:aeroboto.cpp
-
-;(formation z) and clones (by GeoMan)
-aeroboto:
-formatz:
-@:maincpu,program,430,138,00,0f
-@:maincpu,program,600,14,00,40
-
-
-;@s:aerofgt.cpp
-
-;(karate blazers (world? & us))
-;karatblzj:******Karate Blazers (Japan)
-karatblz:
-karatblzj:
-karatblzt:
-karatblzu:
-@:maincpu,program,c5ba7,31,00,20
-
-
-;(turbo force)
-turbofrc:
-turbofrco:
-turbofrcu:
-@:maincpu,program,c221b,4e,04,54
-
-
-kickball:
-pspikesc:
-pspikesk:
-@:maincpu,program,1023f1,4d,00,07
-
-
-aerofgt:
-@:maincpu,program,ffc1af,97,0b,64
-
-
-pspikesu:
-@:maincpu,program,1023f1,4d,00,06
-
-
-;******Aero Fighters (bootleg)
-;aerofgtb:******aero fighters (turbo force hardware set 1)
-;aerofgtc:******aero fighters (turbo force hardware set 2)
-aerfboo2:
-aerfboot:
-aerofgtb:
-aerofgtc:
-@:maincpu,program,cc1af,97,0b,64
-
-
-;******Beach Festival World Championship 1997
-wbbc97:
-@:maincpu,program,5023f1,6d,00,02
+ertictaca:
+ertictacb:
+@:maincpu,program,b184,2e,46,c1
-;*******(power spikes (world))
-pspikes:
-pspikesb:
-spikes91:
-spikes91b:
-svolly91:
-@:maincpu,program,1023f1,4d,00,03
+ertictac:
+@:maincpu,program,bb1c,2e,46,ca
-;*********(Sonic Wings (Japan))
-sonicwi:
-@:maincpu,program,cc1af,a0,0b,00
+;@s:alliedleisure/clayshoo.cpp
+;(clay shoot) (by GeoMan)
+clayshoo:
+@:maincpu,program,2140,8,be,00
-;(spinal breakers (world)) and clones (by GeoMan)
-spinlbrk:
-spinlbrkj:
-spinlbrku:
-@:maincpu,program,ffac76,8c,00,50
-@:maincpu,program,ffacce,8c,00,50
+;@s:alliedleisure/killcom.cpp
-;@s:airbustr.cpp
+;(megatack) (by GeoMan)
+megatack:
+megatacka:
+@:maincpu,program,00c4,f,00,1a
-;airbustrj:******Air Buster: Trouble Specialty Raid Unit (japan)
-;airbustrb:******Air Buster: Trouble Specialty Raid Unit (bootleg)
-airbustr:
-airbustrb:
-airbustrj:
-@:master,program,e160,40,01,01
-@:master,program,e19e,01,4f,4f
+;*******pirate treasure
+piratetr:
+@:maincpu,program,2dc,4f,55,44
-;@s:ajax.cpp
-;(typhoon)
-ajax:
-ajaxj:
-typhoon:
-@:maincpu,program,2100,50,1a,00
-@:maincpu,program,2050,4,00,00
+;(kaos) (by GeoMan)
+kaos:
+@:maincpu,program,03c8,30,84,44
-;@s:aliens.cpp
+;(leprechaun) and clones (by GeoMan)
+;** let game display hiscore table a few times in attract mode before **
+;** starting a game **
+leprechn:
+leprechna:
+potogold:
+@:maincpu,program,02ca,50,55,00
-;aliensa:******Aliens (Asia)
-aliens:
-aliens2:
-aliens3:
-aliensa:
-aliensj:
-aliensj2:
-aliensu:
-@:maincpu,program,1e30,38,00,48
+;(killer comet)
+killcom:
+@:maincpu,program,88,2,47,00
-;@s:alinvade.cpp
-alinvade:
-@:maincpu,program,9f,3,00,00
+;(challenger)
+challeng:
+@:maincpu,program,cc,f,00,1f
-;@s:alpha68k.cpp
+;@s:alpha/alpha68k.cpp
;(time soldiers (us rev 3))
;** ignore first highscore screen, updates on next highscore show !! **
@@ -637,30 +103,6 @@ btlfieldb:
@:maincpu,program,204101,bf,00,0c
-;(paddle mania) (by GeoMan)
-paddlema:
-@:maincpu,program,801a8,28,02,03
-@:maincpu,program,82108,a0,00,20
-
-
-;(kyros) (by GeoMan)
-kyros:
-kyrosj:
-@:maincpu,program,20e00,ae,01,02
-@:maincpu,program,20020,4,00,00
-
-
-tnextspcj:
-@:maincpu,program,72b40,4f,00,43
-@:maincpu,program,70016,4,00,00
-
-
-tnextspc:
-tnextspc2:
-@:maincpu,program,72b40,4f,00,4b
-@:maincpu,program,70016,4,00,00
-
-
;(sky soldiers)
skysoldr:
skysoldrbl:
@@ -668,12 +110,6 @@ skysoldrbl:
@:maincpu,program,40030,4,00,00
-;(super stingray) (by GeoMan)
-sstingry:
-@:maincpu,program,20028,4,00,73
-@:maincpu,program,20770,90,00,00
-
-
gangwars:
gangwarsb:
gangwarsj:
@@ -694,222 +130,167 @@ goldmedla:
@:maincpu,program,40b20,2,00,01
-;@s:ambush.cpp
-
-;ambush:******ambush (tecfry)
-;ambushv:******ambush (Volt Elec co-ltd)
-ambush:
-ambushh:
-ambushj:
-ambushv:
-@:maincpu,program,8050,3,00,00
-@:maincpu,program,800f,24,00,3a
-
-
-;@s:amspdwy.cpp
-
-;(american speedway (set 1)) and clones (by GeoMan)- * UNDER TEST *
-amspdwy:
-amspdwya:
-@:maincpu,program,e402,190,50,00
-@:maincpu,program,e602,190,50,00
-@:maincpu,program,e3de,23,00,5c
-
-
-;@s:angelkds.cpp
-
-;(angel kids (japan)) (by GeoMan)
-angelkds:
-@:maincpu,program,c101,3,01,00
-@:maincpu,program,c11b,118,01,20
-
-
-;******space position (japan)
-spcpostn:
-@:maincpu,program,c000,172,00,02
-@:maincpu,program,cfe9,64,ff,ff
-
-
-;@s:appoooh.cpp
-
-;*******Robo Wres 2001 & bootleg
-robowres:
-robowresb:
-@:maincpu,program,e01a,7,00,00
-@:maincpu,program,e370,73,00,00
-
-
-appoooh:
-@:maincpu,program,e029,3,53,4d
-@:maincpu,program,e017,6,00,00
-@:maincpu,program,e018,1,01,01
-@:maincpu,program,e400,dc,53,00
-
-
-;@s:aquarium.cpp
-
-;********(aquarium (japan))
-aquarium:
-@:maincpu,program,ff904c,28,49,e8
-
-
-;@s:arabian.cpp
-
-;********arabian (fixed)
-arabian:
-arabiana:
-@:maincpu,program,d384,3c,00,00
-@:maincpu,program,d3bd,1,01,01
+;@s:alpha/alpha68k_i.cpp
+;(paddle mania) (by GeoMan)
+paddlema:
+@:maincpu,program,801a8,28,02,03
+@:maincpu,program,82108,a0,00,20
-;@s:arcadecl.cpp
-;*******arcade classics (prototype)
-;** this entry saves all but the top 4 scores, nvram does the rest **
-arcadecl:
-@:maincpu,program,3eee41,32,00,11
-@:maincpu,program,3eedf6,32,00,10
+tnextspcj:
+@:maincpu,program,72b40,4f,00,43
+@:maincpu,program,70016,4,00,00
-;@s:argus.cpp
+tnextspc:
+tnextspc2:
+@:maincpu,program,72b40,4f,00,4b
+@:maincpu,program,70016,4,00,00
-argus:
-@:maincpu,program,fb80,40,00,00
-@:maincpu,program,e039,7,00,00
-@:maincpu,program,e03d,1,07,07
+;@s:alpha/alpha68k_n.cpp
-;(butasan (japan))
-butasan:
-butasanj:
-@:maincpu,program,fab0,110,00,07
-@:maincpu,program,fca0,5,00,00
-@:maincpu,program,fca2,1,02,02
+;(kyros) (by GeoMan)
+kyros:
+kyrosj:
+@:maincpu,program,20e00,ae,01,02
+@:maincpu,program,20020,4,00,00
-valtric:
-@:maincpu,program,fca0,28,00,53
-@:maincpu,program,fc38,4,00,00
+;(super stingray) (by GeoMan)
+sstingry:
+@:maincpu,program,20028,4,00,73
+@:maincpu,program,20770,90,00,00
-;@s:arkanoid.cpp
+;@s:alpha/champbas.cpp
-;**** let game run for about 5 seconds before playing ****
-tetrsark:
-tetrsark2:
-@:maincpu,program,c539,1,00,00
-@delay=4
+exctsccr:
+exctsccra:
+exctsccrj:
+exctsccrjo:
+exctsccru:
+@:maincpu,program,7c90,30,4d,00
+@:maincpu,program,7c60,3,02,00
-;arkanoid:[Special thanks to Cananas for enhancing this entry]
-ark1ball:
-arkangc:
-arkangc2:
-arkanoid:
-arkanoidj:
-arkanoidja:
-arkanoidjb:
-arkanoidjbl:
-arkanoidjbl2:
-arkanoidu:
-arkanoiduo:
-arkatayt:
-arkbloc2:
-arkbloc3:
-arkblock:
-arkgcbl:
-arkgcbla:
-paddle2:
-@:maincpu,program,ef79,23,00,52
-@:maincpu,program,c4df,03,00,00
+;(champion baseball (fix))
+champbas:
+@:maincpu,program,8c30,2f,40,00
+@:maincpu,program,8c5c,1,05,05
-arktayt2:
-@:maincpu,program,ef79,23,00,42
-@:maincpu,program,c4df,03,00,00
+exctsccrb:
+@:maincpu,program,8c90,30,4d,00
+@:maincpu,program,8c60,3,02,00
-block2:
-@:maincpu,program,ef79,23,00,4a
-@:maincpu,program,c4df,03,00,00
+;@s:alpha/equites.cpp
+;(bull fighter) (by GeoMan)
+;bullfgtrs:******Bull Fighter (Sega)
+bullfgtr:
+bullfgtrs:
+@:maincpu,program,40700,40,41,00
+@:maincpu,program,40012,6,00,00
+@:maincpu,program,800b0,1c,00,11
-hexa:
-hexaa:
-@:maincpu,program,c709,2,00,00
+;(equites) and clones (by GeoMan)
+equites:
+equitess:
+@:maincpu,program,40020,4,0,0
+@:maincpu,program,40a30,a0,00,09
-arkatour:
-@:maincpu,program,ef7c,23,00,52
-@:maincpu,program,c4df,03,00,00
+;(koukouyakyuh, the) (by GeoMan)
+kouyakyu:
+@:maincpu,program,40a01,70,0,0
+@:maincpu,program,40010,4,0,0
+@:maincpu,program,8070d,1,20,20
+@:maincpu,program,8078d,1,20,20
+@:maincpu,program,8080d,1,2,2
+@:maincpu,program,8088d,1,0,0
+@:maincpu,program,8090d,1,0,0
+@:maincpu,program,8098d,1,0,0
+@:maincpu,program,80a0d,1,0,0
-;@s:armedf.cpp
-terraf:
-terrafb:
-terrafj:
-terrafjb:
-terrafu:
-@:maincpu,program,6066e,3c,00,4a
-@:maincpu,program,606b2,4,00,00
+;@s:alpha/splendor.cpp
+;*** Splendor Blast II - you must exit game with top score on screen for save to work ***
+splndrbt2:
+@:maincpu,program,40020,3,01,00
+@:maincpu,program,40840,168,53,01
+@:maincpu,program,201611,1,20,20
+@:maincpu,program,201691,1,01,01
+@:maincpu,program,201711,1,00,00
+@:maincpu,program,201791,1,00,00
+@:maincpu,program,201811,1,00,00
+@:maincpu,program,201891,1,00,00
+@:maincpu,program,201911,1,00,00
+@:maincpu,program,201921,1,20,20
-;******Crazy Climber 2 (Japan Harder)
-cclimbr2:
-cclimbr2a:
-@:maincpu,program,612a7,49,10,00
-@:maincpu,program,612f2,1,50,50
+;(splendor blast) (by GeoMan)
+splndrbt:
+splndrbta:
+splndrbtb:
+@:maincpu,program,40840,168,53,01
+@:maincpu,program,40020,3,01,00
-armedf:
-armedff:
-@:maincpu,program,611b6,4f,00,4a
-@:maincpu,program,61206,4,00,00
+;(high voltage) (by GeoMan) - For the hiscore to display correctly in the opening screen always quit the game when opening screen is displayed!
+hvoltage:
+@:maincpu,program,40d20,1e0,4c,00
+@:maincpu,program,40020,3,01,00
+@:maincpu,program,201615,1,20,20
+@:maincpu,program,201695,1,01,01
+@:maincpu,program,201715,1,0,0
+@:maincpu,program,201795,1,0,0
+@:maincpu,program,201815,1,0,0
+@:maincpu,program,201895,1,0,0
+@:maincpu,program,201915,1,0,0
-;********(legion(ver 2.03 & 1.05))
-legion:
-@:maincpu,program,62e8e,27,00,29
-@:maincpu,program,62fde,4,00,00
+;@s:amiga/upscope.cpp
-legionj:
-legionjb:
-@:maincpu,program,62e8c,27,00,29
-@:maincpu,program,62fdc,4,00,00
+;upscope:******Up Scope
+upscope:
+@:maincpu,program,3e4f6,1e,43,45
+@:maincpu,program,3e5fc,28,00,98
-;(kodure ookami (japan)) (by GeoMan)
-kozure:
-@:maincpu,program,637c0,4,00,00
-@:maincpu,program,635b4,28,00,00
+;@s:atari/arcadecl.cpp
+;*******arcade classics (prototype)
+;** this entry saves all but the top 4 scores, nvram does the rest **
+arcadecl:
+@:maincpu,program,3eee41,32,00,11
+@:maincpu,program,3eedf6,32,00,10
-;@s:asterix.cpp
-asterix:
-asterixaad:
-asterixeaa:
-asterixeac:
-asterixj:
-@:maincpu,program,107800,50,00,01
+;@s:atari/asteroid.cpp
+asteroidb2:
+@:maincpu,program,001c,35,00,00
+@delay=5
-;@s:asteroid.cpp
;******* LET SCORES DISPLAY BEFORE PLAYING ******
-;*******asterock
-asterock:
-asterockv:
-hyperspc:
-@:maincpu,program,1c,35,00,00
+aerolitos:
+asteroid:
+asteroid2:
+asteroidb1:
+@:maincpu,program,001d,35,00,00
@:maincpu,program,4030,01,01,01
;******* LET SCORES DISPLAY BEFORE PLAYING ******
;meteorts:******Meteorites
asteroid1:
+meteorbl:
meteorho:
meteorite:
meteorts:
@@ -918,11 +299,11 @@ meteorts:
;******* LET SCORES DISPLAY BEFORE PLAYING ******
-aerolitos:
-asteroid:
-asteroid2:
-asteroidb:
-@:maincpu,program,001d,35,00,00
+;*******asterock
+asterock:
+asterockv:
+hyperspc:
+@:maincpu,program,1c,35,00,00
@:maincpu,program,4030,01,01,01
@@ -935,236 +316,7 @@ astdelux2:
@:maincpu,program,76,01,4d,4d
-;@s:astinvad.cpp
-
-;kosmokil:******Kosmo Killer
-kosmokil:
-@:maincpu,program,1fc4,14,00,00
-@:maincpu,program,2f1d,1,3e,3e
-@:maincpu,program,2f3d,1,41,41
-@:maincpu,program,2f5d,1,41,41
-@:maincpu,program,2f7d,1,41,41
-@:maincpu,program,2f9d,1,3e,3e
-@:maincpu,program,301d,1,3e,3e
-@:maincpu,program,303d,1,41,41
-@:maincpu,program,305d,1,41,41
-@:maincpu,program,307d,1,41,41
-@:maincpu,program,309d,1,3e,3e
-@:maincpu,program,311d,1,3e,3e
-@:maincpu,program,313d,1,41,41
-@:maincpu,program,315d,1,41,41
-@:maincpu,program,317d,1,41,41
-@:maincpu,program,319d,1,3e,3e
-@:maincpu,program,321d,1,3e,3e
-@:maincpu,program,323d,1,41,41
-@:maincpu,program,325d,1,41,41
-@:maincpu,program,327d,1,41,41
-@:maincpu,program,329d,1,3e,3e
-@:maincpu,program,331d,1,3e,3e
-@:maincpu,program,333d,1,41,41
-@:maincpu,program,335d,1,41,41
-@:maincpu,program,337d,1,41,41
-@:maincpu,program,339d,1,3e,3e
-
-
-;spaceintj:******Space Intruder (Japan)
-spaceint:
-spaceintj:
-@:maincpu,program,2000,3,0,0
-
-
-;(astro invader)
-;** god, the things i do to give y`all these hiscore saves !! **
-;** is this the longest hiscore.data yet ? **
-astinvad:
-@:maincpu,program,1fca,14,00,00
-@:maincpu,program,2f1d,1,3e,3e
-@:maincpu,program,2f3d,1,41,41
-@:maincpu,program,2f5d,1,41,41
-@:maincpu,program,2f7d,1,41,41
-@:maincpu,program,2f9d,1,3e,3e
-@:maincpu,program,301d,1,3e,3e
-@:maincpu,program,303d,1,41,41
-@:maincpu,program,305d,1,41,41
-@:maincpu,program,307d,1,41,41
-@:maincpu,program,309d,1,3e,3e
-@:maincpu,program,311d,1,3e,3e
-@:maincpu,program,313d,1,41,41
-@:maincpu,program,315d,1,41,41
-@:maincpu,program,317d,1,41,41
-@:maincpu,program,319d,1,3e,3e
-@:maincpu,program,321d,1,3e,3e
-@:maincpu,program,323d,1,41,41
-@:maincpu,program,325d,1,41,41
-@:maincpu,program,327d,1,41,41
-@:maincpu,program,329d,1,3e,3e
-@:maincpu,program,331d,1,3e,3e
-@:maincpu,program,333d,1,41,41
-@:maincpu,program,335d,1,41,41
-@:maincpu,program,337d,1,41,41
-@:maincpu,program,339d,1,3e,3e
-
-
-;(space king 2) (by GeoMan)
-spcking2:
-@:maincpu,program,1cf4,2,0,0
-
-
-kamikaze:
-@:maincpu,program,1fc5,14,00,00
-@:maincpu,program,2f1d,1,3e,3e
-@:maincpu,program,2f3d,1,41,41
-@:maincpu,program,2f5d,1,41,41
-@:maincpu,program,2f7d,1,41,41
-@:maincpu,program,2f9d,1,3e,3e
-@:maincpu,program,301d,1,3e,3e
-@:maincpu,program,303d,1,41,41
-@:maincpu,program,305d,1,41,41
-@:maincpu,program,307d,1,41,41
-@:maincpu,program,309d,1,3e,3e
-@:maincpu,program,311d,1,3e,3e
-@:maincpu,program,313d,1,41,41
-@:maincpu,program,315d,1,41,41
-@:maincpu,program,317d,1,41,41
-@:maincpu,program,319d,1,3e,3e
-@:maincpu,program,321d,1,3e,3e
-@:maincpu,program,323d,1,41,41
-@:maincpu,program,325d,1,41,41
-@:maincpu,program,327d,1,41,41
-@:maincpu,program,329d,1,3e,3e
-@:maincpu,program,331d,1,3e,3e
-@:maincpu,program,333d,1,41,41
-@:maincpu,program,335d,1,41,41
-@:maincpu,program,337d,1,41,41
-@:maincpu,program,339d,1,3e,3e
-
-
-;@s:astrocde.cpp
-
-spacezap:
-@:maincpu,program,d041,6,0,0
-@:maincpu,:protected_ram/share,001d,6,00,00
-@:maincpu,:protected_ram/share,000f,1,ff,ff
-
-
-;gorf:* resetting screws up 2 scores and top score
-gorf:
-gorfpgm1:
-gorfpgm1g:
-@:maincpu,:protected_ram/share,0010,22,00,00
-
-
-robby:
-@:maincpu,program,e1c7,21,4a,4b
-@:maincpu,program,e161,1e,50,58
-@:maincpu,program,e19d,2a,9e,47
-@:maincpu,program,e13b,26,10,17
-@:maincpu,program,e3c7,21,4a,4b
-@:maincpu,program,e361,1e,50,58
-@:maincpu,program,e39d,2a,9e,47
-@:maincpu,program,e33b,26,10,17
-
-
-;seawolf2:*loading score seems to auto start a game?
-seawolf2:
-@:maincpu,program,c208,2,00,00
-
-
-;wow:*resetting screws up the 1st score
-wow:
-wowg:
-@:maincpu,program,d004,14,00,00
-@:maincpu,program,d304,14,00,00
-
-
-;@s:astrof.cpp
-
-;sstarbtl:******Super Star Battle
-abattle:
-abattle2:
-acombat:
-acombat3:
-acombato:
-afire:
-astrof:
-astrof2:
-astrof3:
-sstarbtl:
-strfight:
-@:maincpu,program,0084,2,00,00
-@:maincpu,program,4268,5,c1,c1
-@:maincpu,program,4270,5,c1,c1
-@:maincpu,program,4278,5,c1,c1
-@:maincpu,program,4280,5,c1,c1
-@:maincpu,program,4288,5,c1,c1
-
-
-tomahawk:
-tomahawk1:
-@:maincpu,program,000d,2,00,00
-@:maincpu,program,4251,25,3c,3c
-
-
-;@s:asuka.cpp
-
-cadash:
-cadashf:
-cadashg:
-cadashi:
-cadashs:
-cadashu:
-@:maincpu,program,103646,185,00,4d
-
-
-mofflott:
-@:maincpu,program,100aad,75,00,31
-
-
-asuka:
-asukaj:
-@:maincpu,program,103458,66,41,01
-@:maincpu,program,1033c4,4,00,20
-
-
-;bonzeadvo:******Bonze Adventure (World, Older)
-;bonzeadvu:******Bonze Adventure (us)
-bonzeadv:
-bonzeadvo:
-bonzeadvu:
-jigkmgri:
-@:maincpu,program,10d554,32,00,2a
-@:maincpu,program,10d52a,4,00,00
-@:maincpu,program,10d52b,1,05,05
-
-
-cadashj:
-cadashj1:
-cadashjo:
-@:maincpu,program,103646,18a,00,65
-
-
-bonzeadvp:
-@:maincpu,program,10d552,32,00,2a
-@:maincpu,program,10d528,4,00,00
-@:maincpu,program,10d529,1,05,05
-
-
-galmedes:
-@:maincpu,program,1031a0,4c,00,64
-
-
-;********(kokontouzai eto monogatari (japan))
-eto:
-@:maincpu,program,202d08,30,37,d0
-
-
-earthjkr:
-earthjkra:
-earthjkrp:
-@:maincpu,program,103204,2f,00,42
-
-
-;@s:atarisy1.cpp
+;@s:atari/atarisy1.cpp
;(road runner)
roadrunn:
@@ -1193,7 +345,7 @@ indytempd:
@:maincpu,program,400fbe,32,01,16
-;@s:atarisy2.cpp
+;@s:atari/atarisy2.cpp
apb1:
apb2:
@@ -1210,7 +362,7 @@ apb6:
@:maincpu,program,f42,9b,00,4d
-;@s:atetris.cpp
+;@s:atari/atetris.cpp
;0,979,90,30,52
atetb3482:
@@ -1219,22 +371,13 @@ atetrisa:
atetrisb:
atetrisb2:
atetrisb3:
+atetrisb4:
atetrisc:
atetrisc2:
@:maincpu,program,99d,6c,30,52
-;@s:attckufo.cpp
-
-attckufo:
-@:maincpu,program,ca,2,00,00
-@:maincpu,program,2e3,1,a0,a0
-@:maincpu,program,2fa,1,a0,a0
-@:maincpu,program,311,1,a0,a0
-@:maincpu,program,328,1,a0,a0
-
-
-;@s:avalnche.cpp
+;@s:atari/avalnche.cpp
;cascade:******Cascade
avalnche:
@@ -1242,886 +385,367 @@ cascade:
@:maincpu,program,009b,2,00,00
-;@s:backfire.cpp
-
-;backfire:******backfire!
-;backfirea:******backfire! (set 2)
-backfire:
-backfirea:
-@:maincpu,program,170300,1b0,13,11
-
-
-;@s:badlands.cpp
+;@s:atari/badlands.cpp
badlands:
@:maincpu,program,fffe96,4f,00,9a
-;@s:bagman.cpp
-
-botanic2:
-@:maincpu,program,620a,46,18,10
-@:maincpu,program,600a,1e,00,00
-@:maincpu,program,6233,1,23,23
-
-
-;bagman:[Special thanks to Cananas for enhancing this entry]
-bagman:
-bagmanf:
-bagmanj:
-bagmanm2:
-bagmanmc:
-bagmans:
-bagmans2:
-bagnard:
-bagnarda:
-bagnardi:
-sbagman:
-sbagmani:
-sbagmans:
-@:maincpu,program,6217,50,00,10
-
-
-;******botanic
-botanic:
-botanicf:
-@:maincpu,program,720a,46,18,10
-@:maincpu,program,700a,1e,00,00
-@:maincpu,program,7233,1,23,23
-
-
-pickin:
-@:maincpu,program,719a,50,00,10
-
-
-;@s:bankp.cpp
-
-bankp:
-@:maincpu,program,e590,a0,00,00
-@:maincpu,program,e018,7,00,00
-
-
-;@s:baraduke.cpp
-
-;(baraduke)
-aliensec:
-baraduke:
-@:maincpu,program,280,49,00,20
-@:maincpu,program,74,3,00,65
-
-
-;metrocrs:******metro-cross (set 1)
-;metrocrsa:******metro-cross (set 2)
-metrocrs:
-metrocrsa:
-@:maincpu,program,1471,7b,2b,0e
-@:maincpu,program,1423,3,00,00
-@:maincpu,program,486c,7,2d,00
-
-
-;@s:batman.cpp
+;@s:atari/batman.cpp
batman:
@:maincpu,program,10f23e,50,00,35
-;@s:battlane.cpp
-
-battlane:
-battlane2:
-battlane3:
-@:maincpu,program,0ca5,28,00,1a
-@:maincpu,program,005f,3,00,00
-
-
-;@s:battlera.cpp
-
-;(battle rangers (world))
-battlera:
-bldwolf:
-bldwolfj:
-@:maincpu,program,1f0220,8a,41,00
-@:maincpu,program,1f000e,4,00,00
-@:maincpu,program,1f000f,1,10,10
-
-
-;@s:battlex.cpp
-
-dodgeman:
-@:maincpu,program,a0f3,22,00,00
-@:maincpu,program,a024,3,00,00
-
-
-;(battle cross) (by GeoMan)
-battlex:
-@:maincpu,program,a036,3,0,0
-@:maincpu,program,a266,23,0,0
-
-
-;@s:battlnts.cpp
-
-;(battlantis) (battlantis (japan)) (by GeoMan)
-battlnts:
-battlntsa:
-battlntsj:
-@:maincpu,program,1050,4,0,0
-@:maincpu,program,1100,50,00,52
-
-
-;@s:bbusters.cpp
-
-bbusters:
-bbustersj:
-bbustersja:
-bbustersu:
-bbustersua:
-@:maincpu,program,8a579,9b,02,01
-
-
-mechattu1:
-@:maincpu,program,7f943,3,00,15
-@:maincpu,program,7f9bb,99,00,2e
-
-
-;mechattu:******Mechanized Attack (US)
-mechatt:
-mechattj:
-mechattu:
-@:maincpu,program,7f943,3,02,54
-@:maincpu,program,7f9bb,99,02,14
-
-
-;@s:beaminv.cpp
-
-;********(beam invader)
-beaminv:
-pacominv:
-@:maincpu,program,1833,3,00,00
-
-
-;@s:beezer.cpp
-
-;(beezer (set2)) clone - modified hiscore save (by GeoMan)
-beezer1:
-@:maincpu,program,0503,50,55,00
-
-
-;(beezer (set1)) (by GeoMan)
-beezer:
-@:maincpu,program,0507,50,55,00
-
-
-;@s:berzerk.cpp
-
-berzerk:
-berzerk1:
-berzerkf:
-berzerkg:
-berzerks:
-@:maincpu,program,4302,3c,00,00
-@:maincpu,program,4301,1,42,42
-
-
-frenzy:
-@:maincpu,program,406e,3c,00,00
-@:maincpu,program,405e,1,ff,ff
-
-
-;@s:bigstrkb.cpp
-
-bestleag:
-bestleaw:
-bigstrik:
-bigstrkb:
-@:maincpu,program,ff890b,49,08,78
-
-
-bigstrkba:
-@:maincpu,program,ff890b,49,00,78
-
-
-;@s:bionicc.cpp
-
-bionicc:
-bionicc1:
-bionicc2:
-bioniccbl:
-bioniccbl2:
-topsecrt:
-topsecrt2:
-@:maincpu,program,fff9e2,4f,00,4d
-@:maincpu,program,ffc57a,4,00,00
-@:maincpu,program,fec0d9,1,20,20
-@:maincpu,program,fec0db,1,20,20
-@:maincpu,program,fec0dd,1,20,20
-@:maincpu,program,fec0df,1,02,02
-@:maincpu,program,fec0e1,1,00,00
-@:maincpu,program,fec0e3,1,00,00
-@:maincpu,program,fec0e5,1,00,00
-@:maincpu,program,fec0e7,1,00,00
-
-
-;@s:bking.cpp
-
-;(birdie king) (by GeoMan)
-bking:
-@:main_cpu,program,8161,9,0,0
-@:main_cpu,program,8175,1,0,0
-
-
-;*******(birdie king 2)(By Firebrand)
-bking2:
-@:main_cpu,program,8166,9,0,0
-@:main_cpu,program,8187,1,0,0
-
-
-;@s:bladestl.cpp
-
-;(blades of steel (version t))
-bladestl:
-bladestle:
-bladestll:
-@:maincpu,program,4170,82,23,15
-
-
-;@s:blktiger.cpp
-
-blkdrgon:
-blkdrgonb:
-@:maincpu,program,e200,50,00,26
-@:maincpu,program,e1e0,8,00,00
-
-
-;blktigerb2:******Black Tiger (bootleg set 2)
-blktiger:
-blktigera:
-blktigerb1:
-blktigerb2:
-blktigerb3:
-@:maincpu,program,e200,50,00,20
-@:maincpu,program,e1e0,8,00,00
-
-
-;@s:blmbycar.cpp
-
-;watrball:******Water Balls
-watrball:
-@:maincpu,program,fed53c,4a,4e,00
-
-
-;(blomby car)
-;** highscore only saves , other course highscores are not possible **
-;** as they don`t load in until you finish a course **
-blmbycar:
-blmbycaru:
-@:maincpu,program,fecdbc,117,4e,08
-
-
-;@s:blockade.cpp
-
-;*******(blasto)
-blasto:
-@:maincpu,program,ff3a,5,30,30
+;@s:atari/blstroid.cpp
+blstroid:
+blstroid2:
+blstroid3:
+blstroidg:
+blstroidh:
+@:maincpu,program,ffff42,32,06,16
-;@s:blockhl.cpp
-;(block hole) and clones (by GeoMan)
-blockhl:
-quarth:
-@:maincpu,program,4163,44,00,05
+;@s:atari/bwidow.cpp
+bwidowp:
+@:maincpu,program,32b,31,00,00
-;@s:blockout.cpp
-blockout:
-@:maincpu,program,1d5fa4,78,32,05
-@:maincpu,program,1d5ece,4,00,00
+spacduel:
+spacduel0:
+spacduel1:
+@:maincpu,program,dd,3c,00,00
+@:maincpu,program,119,4b,00,1c
-;agress:*
-;agressb:******Agress (English bootleg)
-agress:
-agressb:
-@:maincpu,program,1d5c0a,4,00,00
-@:maincpu,program,1d5c81,1,1d,1d
+;******black widow
+bwidow:
+@:maincpu,program,302,24,20,db
+@:maincpu,program,326,76,1b,11
-blockout2:
-blockoutj:
-@:maincpu,program,1d5fa2,78,32,05
-@:maincpu,program,1d5ece,4,00,00
+;******lunar battle (prototype,later)
+lunarbat:
+@:maincpu,program,42b,2d,50,03
-;@s:bloodbro.cpp
+gravitar:
+gravitar1:
+gravitar2:
+@:maincpu,program,41e,30,50,05
-;bloodbroa:******Blood Bros. (set 2)
-bloodbro:
-bloodbroj:
-bloodbroja:
-bloodbrou:
-weststry:
-weststrya:
-@:maincpu,program,85b1f,f9,30,00
-@:maincpu,program,85c15,1,02,02
+;@s:atari/bzone.cpp
-;(sky smasher)
-skysmash:
-@:maincpu,program,8925e,50,53,00
-@:maincpu,program,80008,4,00,00
-@:maincpu,program,80009,1,02,02
+bzone:
+bzonea:
+bzonec:
+@:maincpu,program,0300,3c,05,38
-;@s:blstroid.cpp
+;*note top score updates after a few seconds
+redbaron:
+redbarona:
+@:maincpu,program,155,23,0,0
+@:maincpu,program,178,1,d4,d4
-blstroid:
-blstroid2:
-blstroid3:
-blstroidg:
-blstroidh:
-@:maincpu,program,ffff42,32,06,16
+;@s:atari/canyon.cpp
-;@s:blueprnt.cpp
+canyon:
+canyonp:
+@:maincpu,program,0037,4,00,00
-saturnzi:
-@:maincpu,program,8380,28,00,2d
+;@s:atari/ccastles.cpp
-blueprnt:
-blueprntj:
-@:maincpu,program,8100,3e,00,90
+ccastles:
+ccastles1:
+ccastles2:
+ccastles3:
+ccastlesf:
+ccastlesg:
+ccastlesj:
+ccastlesp:
+@:maincpu,program,474,5dd,00,55
+@:maincpu,program,d2,1,03,03
-;@s:bogeyman.cpp
+;@s:atari/centiped.cpp
-;(bogey manor) (by GeoMan)
-bogeyman:
-@:maincpu,program,0021,3,00,01
-@:maincpu,program,13e0,29,00,1e
-@:maincpu,program,1409,27,0f,00
+;centipdd:******Centipede Dux (hack)
+centipdb:
+centipdb2:
+centipdd:
+centiped:
+centiped1:
+centiped2:
+centiped3:
+centipedj:
+@:maincpu,program,000b,0f,10,01
+@:maincpu,program,0023,0f,04,12
-;@s:bombjack.cpp
+;*******caterpillar:
+caterplr:
+@:maincpu,program,02,18,57,01
+@:maincpu,program,1a,18,01,14
-bombjack:
-bombjack2:
-bombjackt:
-@:maincpu,program,905f,1,30,30
-@:maincpu,program,907f,1,30,30
-@:maincpu,program,909f,1,30,30
-@:maincpu,program,90bf,1,30,30
-@:maincpu,program,90de,3,53,24
-@:maincpu,program,90fe,3,2d,24
-@:maincpu,program,911f,1,00,00
-@:maincpu,program,913f,1,00,00
-@:maincpu,program,80e2,4,00,00
-@:maincpu,program,8100,96,00,ff
+millpac:
+@:maincpu,program,0002,2a,90,17
-;@s:boogwing.cpp
-boogwing:
-boogwinga:
-boogwingu:
-ragtime:
-ragtimea:
-@:maincpu,program,200f4a,27,00,0b
+millipdd:
+milliped:
+@:maincpu,program,85,f,05,17
+@:maincpu,program,6d,f,20,04
+@:maincpu,program,24,1,a0,a0
-;@s:bottom9.cpp
+;(warlord)
+warlords:
+@:maincpu,program,f3,9,4d,61
+@:maincpu,program,126,2,75,75
+@:maincpu,program,12d,2,13,26
+@:maincpu,program,13a,2,00,00
-;(bottom of the ninth (version t)) and clones (by GeoMan)
-bottom9:
-bottom9n:
-mstadium:
-@:maincpu,program,4176,82,41,70
+magworm:
+@:maincpu,program,0002,30,52,1a
-;@s:brkthru.cpp
-darwin:
-@:maincpu,program,1b93,9,8b,89
-@:maincpu,program,1b6c,10,00,70
+;@s:atari/cloak.cpp
+;(cloak & dagger)
+cloak:
+cloakfr:
+cloakgr:
+cloaksp:
+@:maincpu,program,f35,a0,11,58
-;forcebrk:******Force Break (Japan)
-brkthru:
-brkthruj:
-forcebrk:
-@:maincpu,program,0531,27,00,32
-@:maincpu,program,0402,3,00,50
+;@s:atari/destroyr.cpp
-;@s:btime.cpp
+;(destroyer)
+;** hiscore updates once first game is over **
+destroyr:
+@:maincpu,program,dd,2,00,00
+@:maincpu,program,e0,1,00,00
-;(cassette: pro tennis & world tennis)
-cptennis:
-cptennisj:
-wtennis:
-@:maincpu,program,db,3,00,00
-@:maincpu,program,b2,1,da,da
+;@s:atari/eprom.cpp
-btime:
-btime2:
-btime3:
-btimem:
-@:maincpu,program,0033,27,00,ff
+;guts:******Guts n' Glory (prototype)
+guts:
+@:maincpu,program,fffdd4,c8,00,a4
-;discof:******disco no.1 (rev f)
-disco:
-discof:
-@:maincpu,program,0400,24,00,00
-@:maincpu,program,0006,3,00,00
+eprom2:
+@:maincpu,program,3f7dc0,c8,00,98
-zoar:
-@:maincpu,program,02dd,3,00,00
-@:maincpu,program,02e5,f,00,00
-@:maincpu,program,034b,3,20,20
-@:maincpu,program,0356,3,20,20
-@:maincpu,program,0361,3,20,20
-@:maincpu,program,036c,3,20,20
-@:maincpu,program,0377,3,20,20
+eprom:
+@:maincpu,program,3f7de8,c8,00,98
-bnj:
-bnjm:
-brubber:
-@:maincpu,program,000a,3,12,01
-@:maincpu,program,500,26c,01,00
-@:maincpu,program,640,1,4d,4d
+;@s:atari/firetrk.cpp
+;********(monte carlo)
+montecar:
+@:maincpu,program,b6,1,00,00
-mmonkey:
-@:maincpu,program,df,f,00,00
-@:maincpu,program,32,3,00,02
-@:maincpu,program,310,f,2e,2f
-@:maincpu,program,3c4a,6,00,01
+;(super bug) (by GeoMan)
+superbug:
+@:maincpu,program,c,1,0,0
-cookrace:
-@:maincpu,program,0032,24,00,18
+;(fire truck)
+firetrk:
+@:maincpu,program,28,1,06,06
-caractn:
-caractn2:
-@:maincpu,program,0500,f,01,82
-@:maincpu,program,0640,f,42,53
-@:maincpu,program,000a,3,12,01
+;@s:atari/foodf.cpp
-lnc:
-@:maincpu,program,0008,3,00,00
-@:maincpu,program,0294,f,00,00
-@:maincpu,program,02a6,f,00,00
-@:maincpu,program,3c4d,6,00,01
+;(food fight)
+foodf:
+foodf1:
+foodf2:
+foodfc:
+@:maincpu,program,17ba8,2d,4a,45
+@:maincpu,program,17f64,3c,00,2f
+@:maincpu,program,1860e,7,35,a5
-;sdtennis:[Special thanks to Cananas for enhancing this entry]
-sdtennis:
-@:maincpu,program,0200,3c,01,15
-@:maincpu,program,0250,3c,3b,43
-@:maincpu,program,002c,03,88,01
+;@s:atari/mhavoc.cpp
+;(major havoc (rev 3))
+mhavoc:
+@:alpha,program,184,46,0b,00
+@:alpha,program,95,1,02,02
-;@s:bublbobl.cpp
-bbredux:
-sboblbobla:
-sboblboblb:
-sboblbobld:
-sboblboble:
-sboblboblf:
-@:maincpu,program,e654,23,00,48
-@:maincpu,program,e67b,3,1f,13
-@:maincpu,program,e64c,3,00,00
-@:maincpu,program,cfc6,1,60,60
-@:maincpu,program,d006,1,60,60
-@:maincpu,program,d046,1,60,60
-@:maincpu,program,d086,1,7e,7e
-@:maincpu,program,d0c6,1,7b,7b
-@:maincpu,program,d106,1,7b,7b
-@:maincpu,program,d146,1,7b,7b
-@:maincpu,program,d186,1,7b,7b
-@:maincpu,program,e5df,1,00,00
-@:maincpu,program,e5e0,1,00,00
-@:maincpu,program,e5e4,1,00,00
-@:maincpu,program,e5e6,1,00,00
-@:maincpu,program,e5e1,1,00,00
-@:maincpu,program,e5e2,1,00,00
-@:maincpu,program,e5e3,1,00,00
-@:maincpu,program,e5e7,1,00,00
-@:maincpu,program,e5e8,1,00,00
-@:maincpu,program,e5e9,1,00,00
-@:maincpu,program,e5ea,1,00,00
-@:maincpu,program,e5eb,1,00,00
-@:maincpu,program,e5f6,1,00,00
-@:maincpu,program,e5f7,1,00,00
-@:maincpu,program,e5ee,1,00,00
-@:maincpu,program,e5ef,1,00,00
-@:maincpu,program,e5f0,1,00,00
-@:maincpu,program,e5ec,1,00,00
-@:maincpu,program,e5ed,1,00,00
-@:maincpu,program,e5f3,1,00,00
-@:maincpu,program,e5f4,1,00,00
-@:maincpu,program,e5d9,1,00,00
-@:maincpu,program,e5da,1,00,00
-@:maincpu,program,f457,1,00,00
-@:maincpu,program,f458,1,00,00
-@:maincpu,program,e601,1,00,00
-@:maincpu,program,e602,1,00,00
-@:maincpu,program,e600,1,00,00
-@:maincpu,program,e5ff,1,00,00
-@:maincpu,program,e5fd,1,00,00
-@:maincpu,program,e5fc,1,00,00
-@:maincpu,program,e5fb,1,00,00
-@:maincpu,program,e5fa,1,00,00
-@:maincpu,program,e5f9,1,00,00
-@:maincpu,program,e5f8,1,00,00
-@:maincpu,program,e5fe,1,00,00
-@:maincpu,program,e604,1,00,00
-@:maincpu,program,e605,1,00,00
-@:maincpu,program,e606,1,00,00
-@:maincpu,program,e607,1,00,00
-@:maincpu,program,e609,1,00,00
-@:maincpu,program,e60a,1,00,00
-@:maincpu,program,e611,1,00,00
-@:maincpu,program,e60b,2,00,00
+;@s:atari/missile.cpp
+;(missile command (set 2)) clone (by GeoMan) - modified hiscore save
+missile1:
+missilea:
+@:maincpu,program,002c,30,4d,00
-bublboblp:
-@:maincpu,program,e626,23,00,48
-@:maincpu,program,e64d,3,1f,13
-@:maincpu,program,e623,3,00,00
-@:maincpu,program,e5ef,1,00,00
-@:maincpu,program,e5f0,1,00,00
-@:maincpu,program,e5f2,1,00,00
-@:maincpu,program,e5f3,1,00,00
-@:maincpu,program,e5f4,1,00,00
-@:maincpu,program,e5f5,1,00,00
-@:maincpu,program,e5f6,1,00,00
-@:maincpu,program,e5f7,1,00,00
-@:maincpu,program,e5f8,1,00,00
-@:maincpu,program,e5f9,1,00,00
-@:maincpu,program,e5fa,1,00,00
-@:maincpu,program,e5fb,1,00,00
-@:maincpu,program,e5fc,1,00,00
-@:maincpu,program,e5fd,1,00,00
-@:maincpu,program,e5fe,1,00,00
-@:maincpu,program,e5ff,1,00,00
-@:maincpu,program,e600,1,00,00
-@:maincpu,program,e601,1,00,00
-@:maincpu,program,e602,1,00,00
-@:maincpu,program,e603,1,00,00
-@:maincpu,program,e606,1,00,00
-@:maincpu,program,e607,1,00,00
-@:maincpu,program,e609,1,00,00
-@:maincpu,program,e60a,1,00,00
-@:maincpu,program,cfc6,1,60,60
-@:maincpu,program,d006,1,60,60
-@:maincpu,program,d046,1,60,60
-@:maincpu,program,d086,1,7e,7e
-@:maincpu,program,d0c6,1,7b,7b
-@:maincpu,program,d106,1,7b,7b
-@:maincpu,program,d146,1,7b,7b
-@:maincpu,program,d186,1,7b,7b
+;suprmatkd:******super missile attack (not encrypted)
+missile:
+missile2:
+suprmatk:
+suprmatkd:
+@:maincpu,:videoram/share,002c,30,47,00
-;**** now saves all hiscore data and special item counters ****
-boblbobl:
-bub68705:
-bublbobl:
-bublbobl1:
-bublboblb:
-bublboblr:
-bublboblr1:
-bublcave10:
-bublcave11:
-sboblbobl:
-@:maincpu,program,e654,23,00,48
-@:maincpu,program,e67b,3,1f,13
-@:maincpu,program,e64c,3,00,00
-@:maincpu,program,e5df,1,00,00
-@:maincpu,program,e5e0,1,00,00
-@:maincpu,program,e5e4,1,00,00
-@:maincpu,program,e5e6,1,00,00
-@:maincpu,program,e5e1,1,00,00
-@:maincpu,program,e5e2,1,00,00
-@:maincpu,program,e5e3,1,00,00
-@:maincpu,program,e5e7,1,00,00
-@:maincpu,program,e5e8,1,00,00
-@:maincpu,program,e5e9,1,00,00
-@:maincpu,program,e5ea,1,00,00
-@:maincpu,program,e5eb,1,00,00
-@:maincpu,program,e5f6,1,00,00
-@:maincpu,program,e5f7,1,00,00
-@:maincpu,program,e5ee,1,00,00
-@:maincpu,program,e5ef,1,00,00
-@:maincpu,program,e5f0,1,00,00
-@:maincpu,program,e5ec,1,00,00
-@:maincpu,program,e5ed,1,00,00
-@:maincpu,program,e5f3,1,00,00
-@:maincpu,program,e5f4,1,00,00
-@:maincpu,program,e5d9,1,00,00
-@:maincpu,program,e5da,1,00,00
-@:maincpu,program,f457,1,00,00
-@:maincpu,program,f458,1,00,00
-@:maincpu,program,e601,1,00,00
-@:maincpu,program,e602,1,00,00
-@:maincpu,program,e600,1,00,00
-@:maincpu,program,e5ff,1,00,00
-@:maincpu,program,e5fd,1,00,00
-@:maincpu,program,e5fc,1,00,00
-@:maincpu,program,e5fb,1,00,00
-@:maincpu,program,e5fa,1,00,00
-@:maincpu,program,e5f9,1,00,00
-@:maincpu,program,e5f8,1,00,00
-@:maincpu,program,e5fe,1,00,00
-@:maincpu,program,e604,1,00,00
-@:maincpu,program,e605,1,00,00
-@:maincpu,program,e606,1,00,00
-@:maincpu,program,e607,1,00,00
-@:maincpu,program,e609,1,00,00
-@:maincpu,program,e60a,1,00,00
-@:maincpu,program,e611,1,00,00
-@:maincpu,program,e60b,2,00,00
+;@s:atari/nitedrvr.cpp
-boblcave:
-bublcave:
-@:maincpu,program,e654,23,00,4e
-@:maincpu,program,e67b,3,1f,13
-@:maincpu,program,e64c,3,00,00
-@:maincpu,program,e5df,1,00,00
-@:maincpu,program,e5e0,1,00,00
-@:maincpu,program,e5e4,1,00,00
-@:maincpu,program,e5e6,1,00,00
-@:maincpu,program,e5e1,1,00,00
-@:maincpu,program,e5e2,1,00,00
-@:maincpu,program,e5e3,1,00,00
-@:maincpu,program,e5e7,1,00,00
-@:maincpu,program,e5e8,1,00,00
-@:maincpu,program,e5e9,1,00,00
-@:maincpu,program,e5ea,1,00,00
-@:maincpu,program,e5eb,1,00,00
-@:maincpu,program,e5f6,1,00,00
-@:maincpu,program,e5f7,1,00,00
-@:maincpu,program,e5ee,1,00,00
-@:maincpu,program,e5ef,1,00,00
-@:maincpu,program,e5f0,1,00,00
-@:maincpu,program,e5ec,1,00,00
-@:maincpu,program,e5ed,1,00,00
-@:maincpu,program,e5f3,1,00,00
-@:maincpu,program,e5f4,1,00,00
-@:maincpu,program,e5d9,1,00,00
-@:maincpu,program,e5da,1,00,00
-@:maincpu,program,f457,1,00,00
-@:maincpu,program,f458,1,00,00
-@:maincpu,program,e601,1,00,00
-@:maincpu,program,e602,1,00,00
-@:maincpu,program,e600,1,00,00
-@:maincpu,program,e5ff,1,00,00
-@:maincpu,program,e5fd,1,00,00
-@:maincpu,program,e5fc,1,00,00
-@:maincpu,program,e5fb,1,00,00
-@:maincpu,program,e5fa,1,00,00
-@:maincpu,program,e5f9,1,00,00
-@:maincpu,program,e5f8,1,00,00
-@:maincpu,program,e5fe,1,00,00
-@:maincpu,program,e604,1,00,00
-@:maincpu,program,e605,1,00,00
-@:maincpu,program,e606,1,00,00
-@:maincpu,program,e607,1,00,00
-@:maincpu,program,e609,1,00,00
-@:maincpu,program,e60a,1,00,00
-@:maincpu,program,e611,1,00,00
-@:maincpu,program,e60b,2,00,00
+;(night driver) (by GeoMan) - Hiscore is updated when new game starts!
+nitedrvr:
+@:maincpu,program,a0,c,0,0
+@:maincpu,program,130,1,52,52
-;(tokio/scramble formation(bootleg)) clone (by GeoMan)
-tokiob:
-@:maincpu,program,f4bf,4,00,00
-@:maincpu,program,c858,f,00,2a
+;@s:atari/offtwall.cpp
+;*******off the wall (2/3 player upright))
+offtwall:
+offtwallc:
+@:maincpu,program,3fee2e,37,00,49
-;tokio:******Tokio / Scramble Formation
-;tokiou:******Tokio / Scramble Formation (us)
-tokio:
-tokioo:
-tokiou:
-@:maincpu,program,c858,f,00,2a
-@:maincpu,program,c85c,1,01,01
-@:maincpu,program,f4c0,3,61,00
+;@s:atari/quantum.cpp
-;dland:******dream land/super dream land
-dland:
-@:maincpu,program,e654,23,00,4f
-@:maincpu,program,e67b,3,1f,13
-@:maincpu,program,e64c,3,00,00
-@:maincpu,program,e5df,1,00,00
-@:maincpu,program,e5e0,1,00,00
-@:maincpu,program,e5e4,1,00,00
-@:maincpu,program,e5e6,1,00,00
-@:maincpu,program,e5e1,1,00,00
-@:maincpu,program,e5e2,1,00,00
-@:maincpu,program,e5e3,1,00,00
-@:maincpu,program,e5e7,1,00,00
-@:maincpu,program,e5e8,1,00,00
-@:maincpu,program,e5e9,1,00,00
-@:maincpu,program,e5ea,1,00,00
-@:maincpu,program,e5eb,1,00,00
-@:maincpu,program,e5f6,1,00,00
-@:maincpu,program,e5f7,1,00,00
-@:maincpu,program,e5ee,1,00,00
-@:maincpu,program,e5ef,1,00,00
-@:maincpu,program,e5f0,1,00,00
-@:maincpu,program,e5ec,1,00,00
-@:maincpu,program,e5ed,1,00,00
-@:maincpu,program,e5f3,1,00,00
-@:maincpu,program,e5f4,1,00,00
-@:maincpu,program,e5d9,1,00,00
-@:maincpu,program,e5da,1,00,00
-@:maincpu,program,f457,1,00,00
-@:maincpu,program,f458,1,00,00
-@:maincpu,program,e601,1,00,00
-@:maincpu,program,e602,1,00,00
-@:maincpu,program,e600,1,00,00
-@:maincpu,program,e5ff,1,00,00
-@:maincpu,program,e5fd,1,00,00
-@:maincpu,program,e5fc,1,00,00
-@:maincpu,program,e5fb,1,00,00
-@:maincpu,program,e5fa,1,00,00
-@:maincpu,program,e5f9,1,00,00
-@:maincpu,program,e5f8,1,00,00
-@:maincpu,program,e5fe,1,00,00
-@:maincpu,program,e604,1,00,00
-@:maincpu,program,e605,1,00,00
-@:maincpu,program,e606,1,00,00
-@:maincpu,program,e607,1,00,00
-@:maincpu,program,e609,1,00,00
-@:maincpu,program,e60a,1,00,00
-@:maincpu,program,e611,1,00,00
-@:maincpu,program,e60b,2,00,00
+;(quantum)
+;* signiture is screwed up (other scores ok) *
+quantum:
+quantum1:
+quantump:
+@:maincpu,program,1b5aa,1254,00,54
-;@s:buggychl.cpp
+;@s:atari/runaway.cpp
-;(buggy challenge)
-buggychl:
-buggychlt:
-@:maincpu,program,8814,4ec,04,00
-@:maincpu,program,80e1,1,04,04
+qwak:
+@:maincpu,program,0045,3,00,00
+@:maincpu,program,0108,3,4d,43
-;@s:bwidow.cpp
+;@s:atari/sbrkout.cpp
-bwidowp:
-@:maincpu,program,32b,31,00,00
+;(super breakout(fix))
+sbrkout:
+sbrkout3:
+sbrkoutc:
+sbrkoutct:
+@:maincpu,program,22,08,00,00
-spacduel:
-spacduel0:
-spacduel1:
-@:maincpu,program,dd,3c,00,00
-@:maincpu,program,119,4b,00,1c
+;@s:atari/skydiver.cpp
+;(sky diver)
+;** note highscore must be displaying new top score to save properly **
+;** so start a new game after a new highscore and kill man 3 times **
+;** untill new highscore is displayed. **
+skydiver:
+@:maincpu,program,af,3,00,00
-;******black widow
-bwidow:
-@:maincpu,program,302,24,20,db
-@:maincpu,program,326,76,1b,11
+;@s:atari/skyraid.cpp
-;******lunar battle (prototype,later)
-lunarbat:
-@:maincpu,program,42b,2d,50,03
+;********(sky raider)
+skyraid:
+@:maincpu,program,a,2,00,00
-gravitar:
-gravitar1:
-gravitar2:
-@:maincpu,program,41e,30,50,05
+;@s:atari/sprint2.cpp
+;(sprint 1)
+sprint1:
+@:maincpu,program,57,3,30,30
-;@s:bwing.cpp
-;fixes thanks to takasaki
-zaviga:
-zavigaj:
-@:maincpu,program,0d00,f0,34,20
-@:maincpu,program,1024,7,0,10
+;@s:atari/starwars.cpp
+;esb fixed thanks to thomas busse
+esb:
+@:maincpu,program,4b85,69,00,90
-bwingsa:
-bwingso:
-@:maincpu,program,0d,3,00,04
-@:maincpu,program,d00,f0,34,20
+;@s:atari/tempest.cpp
-bwings:
-@:maincpu,program,0d,3,00,04
-@:maincpu,program,d00,8c,34,20
+;** this saves scores 4 - 98 , the nvram file saves scores 1 - 3 **
+;tempest:******tempest (rev 3) *
+;tempest1:******tempest (rev 1) *
+;tempest2:******tempest (rev 2) *
+;temptube:******tempest tubes *
+;tempest3:******tempest (rev ?) *
+tempest:
+tempest1:
+tempest2:
+tempest3:
+temptube:
+@:maincpu,program,1d,1,03,03
+@:maincpu,program,605,11a,14,00
-;@s:bzone.cpp
+;@s:atari/thunderj.cpp
-bzone:
-bzonea:
-bzonec:
-@:maincpu,program,0300,3c,05,38
+;*******thunderjaws
+thunderj:
+thunderja:
+@:maincpu,program,3ffd9c,64,00,95
-;*note top score updates after a few seconds
-redbaron:
-redbarona:
-@:maincpu,program,155,23,0,0
-@:maincpu,program,178,1,d4,d4
+;@s:atari/toobin.cpp
+;(toobin` (version 3))
+toobin:
+@:maincpu,program,ffff40,32,01,ef
-;@s:cabal.cpp
-;cabalbl2:******Cabal (bootleg of Joystick version, set 2)
-cabal:
-cabala:
-cabalbl:
-cabalbl2:
-cabalukj:
-cabalus:
-cabalus2:
-@:maincpu,program,42167,63,44,00
+;@s:atari/tunhunt.cpp
+;(tunnel hunt)
+tunhunt:
+tunhuntc:
+@:maincpu,program,300,20,00,44
+@:maincpu,program,b0,1,03,03
-;@s:calorie.cpp
-;******calorie kun vs moguranian
-;calorieb:******calorie kun vs moguranian (bootleg)
-calorie:
-calorieb:
-@:maincpu,program,cd11,78,00,49
-@:maincpu,program,c418,3,00,01
+;@s:atari/videopin.cpp
+;*******(video pinball)
+videopin:
+videopina:
+@:maincpu,program,37,1,00,00
+@:maincpu,program,3c,1,00,00
+@:maincpu,program,41,1,00,00
-;@s:canyon.cpp
-canyon:
-canyonp:
-@:maincpu,program,0037,4,00,00
+;@s:atari/xybots.cpp
+xybots:
+@:maincpu,program,ffac22,ca,00,a4
-;@s:carjmbre.cpp
-;(car jamboree)
-carjmbre:
-@:maincpu,program,820a,a0,00,45
-@:maincpu,program,8217,1,30,30
+;@s:atlus/cave.cpp
+;(donpachi)
+donpachi:
+donpachihk:
+donpachij:
+donpachijs:
+donpachikr:
+@:maincpu,program,101782,4,00,00
+@:maincpu,program,101846,5a,00,01
-;@s:cave.cpp
;(pretty soldier sailer moon)
sailormn:
@@ -2214,15 +838,6 @@ guwange:
@:maincpu,program,2024ac,4,00,00
-;(donpachi)
-donpachi:
-donpachihk:
-donpachij:
-donpachikr:
-@:maincpu,program,101782,4,00,00
-@:maincpu,program,101846,5a,00,01
-
-
nmaster:
@:maincpu,program,f08100,e0,30,01
@@ -2243,513 +858,115 @@ feversos:
@:maincpu,program,103eb4,16d,02,07
-;@s:cbuster.cpp
-
-;(crude buster (world fx version)) and clones (by GeoMan)
-cbuster:
-cbusterj:
-cbusterw:
-twocrude:
-twocrudea:
-@:maincpu,program,80080,28,01,00
-@:maincpu,program,80080,28,01,00
-@:maincpu,program,800c0,28,41,00
-
-
-;@s:ccastles.cpp
-
-ccastles:
-ccastles1:
-ccastles2:
-ccastles3:
-ccastlesf:
-ccastlesg:
-ccastlesj:
-ccastlesp:
-@:maincpu,program,474,5dd,00,55
-@:maincpu,program,d2,1,03,03
-
-
-;@s:cchasm.cpp
-
-cchasm:
-cchasm1:
-@:maincpu,program,fff4b8,78,72,10
-
-
-;@s:cclimber.cpp
-
-;rpatrol:******River Patrol (Orca)
-rpatrol:
-rpatroln:
-@:maincpu,program,919b,4,18,0a
-@:maincpu,program,91ba,6,00,00
-@:maincpu,program,921b,4,18,0a
-@:maincpu,program,923a,6,00,00
-@:maincpu,program,929b,4,18,0a
-@:maincpu,program,92ba,6,00,00
-
-
-;cclimber:[Special thanks to Cananas for enhancing this entry]
-ccboot:
-cclimber:
-cclimbera:
-cclimberj:
-cclimbroper:
-@:maincpu,program,8083,03,02,00
-@:maincpu,program,8095,0a,30,52
-@:maincpu,program,8086,03,02,00
-@:maincpu,program,80a3,0a,30,52
-@:maincpu,program,8089,03,02,00
-@:maincpu,program,80b1,0a,30,52
-@:maincpu,program,808c,03,02,00
-@:maincpu,program,80bf,0a,30,52
-@:maincpu,program,808f,03,02,00
-@:maincpu,program,80cd,0a,30,52
-
-
-;ckongpt2j:******Crazy Kong Part II (Japan)
-ckong:
-ckongalc:
-ckongdks:
-ckongg:
-ckonggx:
-ckongmc:
-ckongo:
-ckongpt2:
-ckongpt2a:
-ckongpt2b:
-ckongpt2j:
-ckongpt2jeu:
-ckongs:
-dking:
-monkeyd:
-@:maincpu,program,6100,aa,94,92
-@:maincpu,program,60b8,3,50,00
-
-
-ccbootmr:
-@:maincpu,program,8083,54,02,52
-@:maincpu,program,808f,1,02,02
-
-
-cannonb:
-cannonb2:
-cannonb3:
-@:maincpu,program,6180,d4,00,01
-@:maincpu,program,665c,3,00,01
-
-
-ccboot2:
-@:maincpu,program,8083,03,02,00
-@:maincpu,program,8095,0a,15,52
-@:maincpu,program,8086,03,02,00
-@:maincpu,program,80a3,0a,15,52
-@:maincpu,program,8089,03,02,00
-@:maincpu,program,80b1,0a,15,52
-@:maincpu,program,808c,03,02,00
-@:maincpu,program,80bf,0a,15,52
-@:maincpu,program,808f,03,02,00
-@:maincpu,program,80cd,0a,15,52
-
-
-;(yamato (set 1)) and clones (by GeoMan)
-yamato:
-yamato2:
-@:maincpu,program,6100,50,00,ff
-@:maincpu,program,6038,3,00,00
-
-
-;******Big Kong
-bigkong:
-@:maincpu,program,6109,a1,00,92
-@:maincpu,program,60b8,3,50,00
-
-
-;(guzzler) (by GeoMan)
-guzzler:
-guzzlers:
-@:maincpu,program,8584,50,00,55
-@:maincpu,program,8007,6,00,00
-
-
-;(swimmer)
-swimmer:
-swimmera:
-swimmerb:
-@:maincpu,program,84e0,2d,00,48
-@:maincpu,program,8577,6,00,00
-
-
-;(river patrol (bootleg))
-rpatrolb:
-@:maincpu,program,919b,4,11,18
-@:maincpu,program,91ba,6,00,00
-@:maincpu,program,921b,4,11,18
-@:maincpu,program,923a,6,00,00
-@:maincpu,program,929b,4,11,18
-@:maincpu,program,92ba,6,00,00
-
-
-silvland:
-@:maincpu,program,919b,4,0f,26
-@:maincpu,program,91ba,6,00,00
-@:maincpu,program,921b,4,0c,26
-@:maincpu,program,923a,6,00,00
-@:maincpu,program,929b,4,15,26
-@:maincpu,program,92ba,6,00,00
-
-
-;@s:centiped.cpp
-
-;*******caterpillar:
-caterplr:
-@:maincpu,program,02,18,57,01
-@:maincpu,program,1a,18,01,14
-
-
-millpac:
-@:maincpu,program,0002,2a,90,17
-
-
-millipdd:
-milliped:
-@:maincpu,program,85,f,05,17
-@:maincpu,program,6d,f,20,04
-@:maincpu,program,24,1,a0,a0
-
-
-;(warlord)
-warlords:
-@:maincpu,program,f3,9,4d,61
-@:maincpu,program,126,2,75,75
-@:maincpu,program,12d,2,13,26
-@:maincpu,program,13a,2,00,00
-
-
-;centipdd:******Centipede Dux (hack)
-centipdb:
-centipdb2:
-centipdd:
-centiped:
-centiped2:
-centiped3:
-centipedj:
-@:maincpu,program,000b,0f,10,01
-@:maincpu,program,0023,0f,04,12
-
-
-magworm:
-@:maincpu,program,0002,30,52,1a
-
-
-;@s:chaknpop.cpp
-
-;*******chack`n pop
-chaknpop:
-@:maincpu,program,8449,1f,04,00
-@:maincpu,program,8466,1,14,14
-
-
-;@s:champbas.cpp
-
-exctsccr:
-exctsccra:
-exctsccrj:
-exctsccrjo:
-exctsccru:
-@:maincpu,program,7c90,30,4d,00
-@:maincpu,program,7c60,3,02,00
-
-
-;(champion baseball (fix))
-champbas:
-@:maincpu,program,8c30,2f,40,00
-@:maincpu,program,8c5c,1,05,05
-
-
-exctsccrb:
-@:maincpu,program,8c90,30,4d,00
-@:maincpu,program,8c60,3,02,00
-
-
-;@s:cheekyms.cpp
-
-;(cheeky mouse)
-cheekyms:
-@:maincpu,program,3009,9,00,00
-@:maincpu,program,3014,1,36,36
-
-
-;@s:chinagat.cpp
-
-;(china gate (us))
-chinagat:
-saiyugou:
-saiyugoub1:
-saiyugoub2:
-@:maincpu,program,c83,23,00,21
-
-
-;@s:chqflag.cpp
-
-;(chequered flag)
-chqflag:
-@:maincpu,program,1f08,dd,30,42
-
-
-;@s:cidelsa.cpp
-
-destryer:
-@:cdp1802,program,20e5,2,ff,ff
-
-
-altair:
-@:cdp1802,program,30e5,2,00,00
-@:cdp1802,program,3008,1,58,58
-
-
-;@s:cinemat.cpp
-
-;demon:[Special thanks to Cananas for making this entry work]
-demon:
-@:maincpu,data,01c0,1e,00,10
-@:maincpu,data,00b6,0a,00,01
-@:maincpu,data,0000,0a,01,00
-
-
-;sundance:[Special thanks to Cananas for creating this entry]
-sundance:
-@:maincpu,data,0151,01,12,12
-@:maincpu,data,014e,02,00,00
-
-
-;(solar quest)
-solarq:
-@:maincpu,data,e0,50,08,00
-
-
-ripoff:
-@:maincpu,data,e0,8,00,00
-
-
-;qb3:[Special thanks to Cananas for creating this entry]
-qb3:
-@:maincpu,data,01a1,01,11,11
-@:maincpu,data,01a0,32,00,00
-
-
-;barrier:[Special thanks to Cananas for making this entry work]
-barrier:
-@:maincpu,data,0074,04,00,00
-@:maincpu,data,00c0,06,00,00
-
-
-armora:
-armorap:
-armorar:
-@:maincpu,data,a2,4,00,00
-
-
-;wotw:[Special thanks to Cananas for enhancing this entry]
-wotw:
-wotwc:
-@:maincpu,data,01f0,04,00,00
-@:maincpu,data,012a,06,00,1e
-
-
-;(boxing bugs)
-boxingb:
-@:maincpu,data,e0,30,00,f4
-
-
-;(tailgunner) (by GeoMan)
-tailg:
-@:maincpu,data,d8,4,0,0
-
-
-;(speed freak) (by GeoMan)
-speedfrk:
-@:maincpu,data,128,2,0,0
-
-
-;@s:circus.cpp
-
-crash:
-crasha:
-smash:
-@:maincpu,program,000f,2,00,00
-
-
-;(rip cord) (by GeoMan)
-ripcord:
-@:maincpu,program,36,2,0,0
-
-
-circus:
-springbd:
-@:maincpu,program,0036,2,00,00
-
-
-;@s:circusc.cpp
-
-;circusc3:******circus charlie (no level select)*
-circusc:
-circusc2:
-circusc3:
-circusc4:
-circuscc:
-circusce:
-@:maincpu,program,2160,32,01,fe
-@:maincpu,program,20a6,3,01,30
-@:maincpu,program,35a7,1,00,00
-@:maincpu,program,35c7,1,03,03
-@:maincpu,program,35e7,1,08,08
-@:maincpu,program,3607,1,09,09
-@:maincpu,program,3627,1,01,01
-@:maincpu,program,3647,1,10,10
-
-
-;@s:cischeat.cpp
-
-f1gpstar:
-f1gpstar2:
-f1gpstar3:
-@:cpu1,program,f2803,5e3,04,4d
-
-
-;(big run (11th rallye version))
-bigrun:
-@:cpu1,program,f61da,2bc,50,05
-
-
-;(scud hammer) (by GeoMan)
-scudhamm:
-@:maincpu,program,fd1ea,3c,00,01
-
-
-;(cisco heat)
-cischeat:
-@:cpu1,program,f0c00,24f,00,00
-@:cpu1,program,f0e42,1,49,49
-@:cpu1,program,f0b00,28,00,00
-
-
-;@s:citycon.cpp
-
-citycon:
-citycona:
-cruisin:
-@:maincpu,program,0055,3,00,13
-@:maincpu,program,0043,3,00,02
-@:maincpu,program,0900,f0,53,90
-
-
-;@s:clayshoo.cpp
-
-;(clay shoot) (by GeoMan)
-clayshoo:
-@:maincpu,program,2140,8,be,00
-
-
-;@s:cloak.cpp
-
-;(cloak & dagger)
-cloak:
-cloakfr:
-cloakgr:
-cloaksp:
-@:maincpu,program,f35,a0,11,58
+;@s:atlus/ohmygod.cpp
+naname:
+@:maincpu,program,70e810,4f,4e,00
-;@s:clshroad.cpp
-;(clash road)
-;clshroads:******Clash-Road (Status license)
-clshroad:
-clshroadd:
-clshroads:
-@:maincpu,program,8000,3c,4d,00
-@:maincpu,program,803a,1,40,40
+ohmygod:
+@:maincpu,program,704440,e8,01,00
+@:maincpu,program,705900,4,00,00
-;*******fire battle
-firebatl:
-@:maincpu,program,8000,21,54,00
-@:maincpu,program,801f,1,70,70
+;@s:bmc/popobear.cpp
+popobear:
+@:maincpu,program,210c42,27c,00,01
-;@s:cninja.cpp
-;(robocop 2)
-robocop2:
-robocop2j:
-robocop2u:
-robocop2ua:
-@:maincpu,program,1b8300,27,4e,21
-@:maincpu,program,1b8200,28,00,00
-@:maincpu,program,1b8020,4,00,00
+;@s:capcom/1942.cpp
+;1942w:******1942 (Williams Electronics license)
+1942:
+1942a:
+1942abl:
+1942b:
+1942p:
+1942w:
+@:maincpu,program,e800,190,00,00
+@:maincpu,program,e9c0,1,1e,1e
+@:maincpu,program,e040,8,00,00
+@:maincpu,program,e028,1,01,01
-cninja1:
-cninjabl:
-stoneage:
-@:maincpu,program,1877f7,1,30,30
-@:maincpu,program,1877f6,ae,00,00
+;@s:capcom/1943.cpp
-cninja:
-cninjau:
-joemac:
-@:maincpu,program,1877fb,1,30,30
-@:maincpu,program,1877fa,ae,00,00
+1943b:
+1943j:
+1943ja:
+1943jah:
+1943kai:
+@:maincpu,program,e600,60,00,00
+@:maincpu,program,e110,8,00,00
+@:maincpu,program,d1be,1,24,24
+@:maincpu,program,d1de,1,02,02
+@:maincpu,program,d1fe,1,00,00
+@:maincpu,program,d21e,1,00,00
+@:maincpu,program,d23e,1,00,00
+@:maincpu,program,d25e,1,00,00
+@:maincpu,program,d27e,1,00,00
-;********the cliffhanger - edward randy (world revision 2))
-edrandy:
-edrandy1:
-edrandy2:
-edrandyj:
-@:maincpu,program,194080,80,4d,02
+1943:
+1943mii:
+1943u:
+@:maincpu,program,e600,60,00,00
+@:maincpu,program,e110,8,00,00
+@:maincpu,program,d1be,1,24,24
+@:maincpu,program,d1de,1,24,24
+@:maincpu,program,d1fe,1,02,02
+@:maincpu,program,d21e,1,00,00
+@:maincpu,program,d23e,1,00,00
+@:maincpu,program,d25e,1,00,00
+@:maincpu,program,d27e,1,00,00
-;********mutant fighter (world rev 4 em-5)
-deathbrd:
-mutantf:
-mutantf2:
-mutantf3:
-mutantf4:
-@:maincpu,program,1000fc,32,01,00
-@:maincpu,program,10012c,1,01,01
+;@s:capcom/bionicc.cpp
+bionicc:
+bionicc1:
+bionicc2:
+bioniccbl:
+bioniccbl2:
+topsecrt:
+topsecrt2:
+@:maincpu,program,fff9e2,4f,00,4d
+@:maincpu,program,ffc57a,4,00,00
+@:maincpu,program,fec0d9,1,20,20
+@:maincpu,program,fec0db,1,20,20
+@:maincpu,program,fec0dd,1,20,20
+@:maincpu,program,fec0df,1,02,02
+@:maincpu,program,fec0e1,1,00,00
+@:maincpu,program,fec0e3,1,00,00
+@:maincpu,program,fec0e5,1,00,00
+@:maincpu,program,fec0e7,1,00,00
-;@s:cocoloco.cpp
-cocoloco:
-cocolocoa:
-cocolocob:
-@:maincpu,program,53,02,00,00
-@:maincpu,program,2170,25,3e,3e
+;@s:capcom/blktiger.cpp
+blkdrgon:
+blkdrgonb:
+@:maincpu,program,e200,50,00,26
+@:maincpu,program,e1e0,8,00,00
-;@s:combatsc.cpp
-;by (GoKu)
-bootcamp:
-bootcampa:
-combatsc:
-combatscb:
-combatscj:
-combatsct:
-@:maincpu,program,1320,46,02,07
-@:maincpu,program,826,3,00,10
+;blktigerb2:******Black Tiger (bootleg set 2)
+blktiger:
+blktigera:
+blktigerb1:
+blktigerb2:
+blktigerb3:
+@:maincpu,program,e200,50,00,20
+@:maincpu,program,e1e0,8,00,00
-;@s:commando.cpp
+;@s:capcom/commando.cpp
commando:
commandob:
commandob2:
+commandob3:
commandoj:
commandou:
commandou2:
@@ -2759,163 +976,47 @@ sinvasnb:
@:maincpu,program,ee97,3,00,00
-;@s:contra.cpp
-
-contra:
-contra1:
-contrab:
-contrabj:
-contrabj1:
-contrae:
-contraj:
-contraj1:
-gryzor:
-gryzor1:
-@:maincpu,program,1120,40,1b,00
-@:maincpu,program,1118,4,00,00
-
-
-;@s:cop01.cpp
-
-cop01a:
-@:maincpu,program,c46e,28,00,01
-
-
-cop01:
-@:maincpu,program,c46d,28,00,01
-
-
-;(mighty guy) (by GeoMan)
-mightguy:
-@:maincpu,program,c055,75,00,41
-
-
-;@s:cosmic.cpp
-
-;(no man's land) (by GeoMan)
-nomnlnd:
-nomnlndg:
-@:maincpu,program,6004,3,00,00
-@:maincpu,program,6c5d,6c0,ff,00
-
-
-;(magical spot ii) (by GeoMan)
-magspot2:
-@:maincpu,program,6007,2,00,20
-@:maincpu,program,6009,1,00,00
-
-
-;(devil zone) (by GeoMan)
-devzone:
-devzone2:
-@:maincpu,program,7ec0,5b,1e,26
-@:maincpu,program,6007,3,0,0
-
-
-panic:
-panic2:
-panic3:
-panicger:
-panich:
-@:maincpu,program,40c1,5,00,00
-@:maincpu,program,5c00,c,09,15
-@:maincpu,program,4004,2,00,00
-
-
-;cosmicgi:****** fixed ******
-cosmicg:
-cosmicgi:
-@:maincpu,program,3c10,04,00,00
-@:maincpu,program,2d5d,01,00,00
-@:maincpu,program,2d7d,01,00,00
-@:maincpu,program,2d9d,01,00,00
-@:maincpu,program,2dbd,01,00,00
-@:maincpu,program,2ddd,01,00,00
-@:maincpu,program,2e5d,01,00,00
-@:maincpu,program,2e7d,01,00,00
-@:maincpu,program,2e9d,01,00,00
-@:maincpu,program,2ebd,01,00,00
-@:maincpu,program,2edd,01,00,00
-@:maincpu,program,2f5d,01,00,00
-@:maincpu,program,2f7d,01,00,00
-@:maincpu,program,2f9d,01,00,00
-@:maincpu,program,2fad,01,00,00
-@:maincpu,program,2fbd,01,00,00
-@:maincpu,program,2fdd,01,00,00
-@:maincpu,program,305d,01,00,00
-@:maincpu,program,307d,01,00,00
-@:maincpu,program,309d,01,00,00
-@:maincpu,program,30bd,01,00,00
-@:maincpu,program,30dd,01,00,00
-@:maincpu,program,315d,01,00,00
-@:maincpu,program,317d,01,00,00
-@:maincpu,program,319d,01,00,00
-@:maincpu,program,31bd,01,00,00
-@:maincpu,program,31dd,01,00,00
-@:maincpu,program,325d,01,7c,7c
-@:maincpu,program,327d,01,82,82
-@:maincpu,program,329d,01,82,82
-@:maincpu,program,32bd,01,82,82
-@:maincpu,program,32dd,01,7c,7c
+;@s:capcom/cps1.cpp
+;varthr1:******varth - operation thunderstorm (world 920612)
+varth:
+varthb:
+varthb2:
+varthb3:
+varthj:
+varthjr:
+varthr1:
+varthu:
+@:maincpu,program,fff9ea,50,00,01
+@:maincpu,program,fffa42,04,00,00
-;******magical spot
-magspot:
-@:maincpu,program,6007,3,00,00
-@:maincpu,program,6008,1,20,20
+pang3:
+pang3b:
+pang3b2:
+pang3b3:
+pang3b4:
+pang3b5:
+pang3j:
+pang3r1:
+@:maincpu,program,ff9726,8c,00,09
-cosmica:
-cosmica1:
-cosmica2:
-@:maincpu,program,400e,3,00,00
+megaman:
+megamana:
+mmancp2u:
+mmancp2ur1:
+mmancp2ur2:
+rmancp2j:
+rockmanj:
+@:maincpu,program,ffeed0,28,00,00
+@:maincpu,program,ffef10,28,00,02
-;@s:cps1.cpp
-sf2yyc:
-@:maincpu,program,ffd276,28,02,20
+sf2mkot:
+@:maincpu,program,ffd276,30,00,20
@:maincpu,program,ffd2c6,14,ff,96
-@:maincpu,program,ffd2ee,04,02,53
-
-
-;street fighter 2 (US 910318)(clone)(by tamphax)
-sf2:
-sf2b:
-sf2ea:
-sf2eb:
-sf2ebbl:
-sf2ebbl2:
-sf2ebbl3:
-sf2ed:
-sf2ee:
-sf2em:
-sf2en:
-sf2j:
-sf2j17:
-sf2ja:
-sf2jc:
-sf2jf:
-sf2jh:
-sf2jl:
-sf2qp1:
-sf2qp2:
-sf2rk:
-sf2stt:
-sf2thndr:
-sf2thndr2:
-sf2ua:
-sf2ub:
-sf2uc:
-sf2ud:
-sf2ue:
-sf2uf:
-sf2ug:
-sf2uh:
-sf2ui:
-sf2uk:
-@:maincpu,program,ffd28a,30,00,20
-@:maincpu,program,ffd302,04,00,00
+@:maincpu,program,ffd2ee,04,00,00
;******Street Fighter II' - Hyper Fighting (World 921209)
@@ -2923,10 +1024,16 @@ sf2acc:
sf2acca:
sf2amf:
sf2amf2:
+sf2amf3:
sf2bhh:
sf2ce:
sf2ceb:
+sf2ceb2:
+sf2ceb3:
+sf2ceb4:
+sf2ceb5:
sf2ceblp:
+sf2ceds6:
sf2ceea:
sf2ceja:
sf2cejb:
@@ -2960,11 +1067,162 @@ sf2mdtb:
sf2rb:
sf2rb2:
sf2rb3:
+sf2re:
@:maincpu,program,ffd276,28,00,20
@:maincpu,program,ffd2c6,14,ff,96
@:maincpu,program,ffd2ee,04,00,00
+forgottn:
+forgottnj:
+forgottnu:
+forgottnua:
+forgottnuaa:
+forgottnuc:
+forgottnue:
+lostwrld:
+lostwrldo:
+@:maincpu,program,ffe142,50,00,20
+@:maincpu,program,ffb2a0,04,00,00
+
+
+;wofhfh:******Sangokushi II: Huo Fenghuang (Chinese bootleg)
+wof:
+wofa:
+wofabl:
+wofhfh:
+wofj:
+wofpic:
+wofr1:
+wofr1bl:
+wofu:
+@:maincpu,program,ff6368,0a,00,00
+@:maincpu,program,ff77d8,78,ff,10
+@:maincpu,program,ff63d4,04,00,00
+
+
+;street fighter 2 (US 910318)(clone)(by tamphax)
+sf2:
+sf2b:
+sf2ea:
+sf2eb:
+sf2ebbl:
+sf2ebbl2:
+sf2ebbl3:
+sf2ed:
+sf2ee:
+sf2ef:
+sf2em:
+sf2en:
+sf2j:
+sf2j17:
+sf2ja:
+sf2jc:
+sf2jf:
+sf2jh:
+sf2jl:
+sf2qp1:
+sf2qp2:
+sf2rk:
+sf2stt:
+sf2thndr:
+sf2thndr2:
+sf2ua:
+sf2ub:
+sf2uc:
+sf2ud:
+sf2ue:
+sf2uf:
+sf2ug:
+sf2uh:
+sf2ui:
+sf2uk:
+sf2um:
+@:maincpu,program,ffd28a,30,00,20
+@:maincpu,program,ffd302,04,00,00
+
+
+gulunpa:
+@:maincpu,program,ff85eb,aa,00,01
+@:maincpu,program,ffc763,3,00,88
+
+
+ffight:
+ffightbl:
+ffightblb:
+ffightj:
+ffightjh:
+@:maincpu,program,ff850c,3c,ff,00
+@:maincpu,program,ff80a0,04,00,00
+
+
+ffightu:
+@:maincpu,program,ff850e,39,85,50
+@:maincpu,program,ff80a0,4,00,00
+
+
+ffightj1:
+ffightua:
+@:maincpu,program,ff850e,39,85,50
+@:maincpu,program,ff80a0,4,00,01
+
+
+ffightj2:
+@:maincpu,program,ff850e,39,85,50
+@:maincpu,program,ff80a0,4,00,02
+
+
+ffightj4:
+ffightub:
+ffightuc:
+@:maincpu,program,ff850e,39,85,50
+@:maincpu,program,ff80a0,4,00,03
+
+
+ffighta:
+ffightu1:
+@:maincpu,program,ff850c,3b,ff,50
+@:maincpu,program,ff80a0,4,00,00
+
+
+ffightj3:
+@:maincpu,program,ff850c,3c,ff,00
+@:maincpu,program,ff80a0,04,00,03
+
+
+;*******Knights of the Round (world 911127 & clones))
+knights:
+knightsb:
+knightsb2:
+knightsb3:
+knightsj:
+knightsja:
+knightsu:
+@:maincpu,program,ffe53a,257,00,00
+@:maincpu,program,ffe78f,1,05,05
+@:maincpu,program,ffe7ca,1,02,02
+@:maincpu,program,ffa4b6,4,00,00
+
+
+;captcommb:******Captain Commando (bootleg)
+captcomm:
+captcommb:
+captcommb2:
+captcommj:
+captcommjr1:
+captcommr1:
+captcommu:
+@:maincpu,program,ff0000,190,08,00
+@:maincpu,program,ff018d,1,01,01
+@:maincpu,program,ffa8c2,04,00,00
+
+
+sf2yyc:
+@:maincpu,program,ffd276,28,02,20
+@:maincpu,program,ffd2c6,14,ff,96
+@:maincpu,program,ffd2ee,04,02,53
+
+
sf2b2:
sf2rules:
@:maincpu,program,ffd28a,30,00,20
@@ -3013,15 +1271,6 @@ cawingur1:
@:maincpu,program,ffda2c,04,00,00
-dino:
-dinoa:
-dinohunt:
-dinoj:
-dinou:
-@:maincpu,program,fff03e,310,00,00
-@:maincpu,program,fff34e,010,99,00
-
-
qad:
@:maincpu,program,ffe96e,3c,00,70
@@ -3035,51 +1284,11 @@ punisheru:
@:maincpu,program,ff5b92,004,01,00
-;wofhfh:******Sangokushi II: Huo Fenghuang (Chinese bootleg)
-wof:
-wofa:
-wofhfh:
-wofj:
-wofr1:
-wofu:
-@:maincpu,program,ff6368,0a,00,00
-@:maincpu,program,ff77d8,78,ff,10
-@:maincpu,program,ff63d4,04,00,00
-
-
-;captcommb:******Captain Commando (bootleg)
-captcomm:
-captcommb:
-captcommj:
-captcommjr1:
-captcommr1:
-captcommu:
-@:maincpu,program,ff0000,190,08,00
-@:maincpu,program,ff018d,1,01,01
-@:maincpu,program,ffa8c2,04,00,00
-
-
sf2accp2:
@:maincpu,program,ffd276,27,00,4b
@:maincpu,program,ffd2ee,4,00,00
-;ffightj2:******Final Fight (Japan 900112)
-ffighta:
-ffightj1:
-ffightj2:
-ffightu:
-ffightu1:
-ffightua:
-ffightub:
-@:maincpu,program,ff8520,27,00,50
-@:maincpu,program,ff80a0,4,00,01
-@:maincpu,program,ff8520,27,00,50
-@:maincpu,program,ff80a0,4,00,03
-@:maincpu,program,ff850c,3b,ff,50
-@:maincpu,program,ff80a0,4,00,00
-
-
;dynwara:******Dynasty Wars (US set 2)
dynwar:
dynwara:
@@ -3094,34 +1303,12 @@ sf2red:
@:maincpu,program,ffd2ee,04,02,53
-ffightj3:
-ffightj4:
-@:maincpu,program,ff850c,3c,ff,00
-@:maincpu,program,ff80a0,04,00,03
-
-
mbombrd:
mbombrdj:
@:maincpu,program,ffa0cc,02,00,10
@:maincpu,program,ffa0ce,ae,00,00
-ffight:
-ffightbl:
-ffightj:
-ffightjh:
-@:maincpu,program,ff850c,3c,ff,00
-@:maincpu,program,ff80a0,04,00,00
-
-
-;Saturday Night Slam Masters clones
-mbomberj:
-slammast:
-slammastu:
-@:maincpu,program,ffa138,02,00,10
-@:maincpu,program,ffa13a,ae,00,00
-
-
;willow (japan, english)(clone)(by tamphax)
willow:
willowj:
@@ -3192,36 +1379,6 @@ strideruc:
@:maincpu,program,ff0ca4,04,00,00
-;varthr1:******varth - operation thunderstorm (world 920612)
-varth:
-varthb:
-varthj:
-varthjr:
-varthr1:
-varthu:
-@:maincpu,program,fff9ea,50,00,01
-@:maincpu,program,fffa42,04,00,00
-
-
-pang3:
-pang3b:
-pang3j:
-pang3r1:
-@:maincpu,program,ff9726,8c,00,09
-
-
-;*******Knights of the Round (world 911127 & clones))
-knights:
-knightsb:
-knightsj:
-knightsja:
-knightsu:
-@:maincpu,program,ffe53a,257,00,00
-@:maincpu,program,ffe78f,1,05,05
-@:maincpu,program,ffe7ca,1,02,02
-@:maincpu,program,ffa4b6,4,00,00
-
-
nemo:
nemoj:
nemor1:
@@ -3263,29 +1420,124 @@ unsquad:
@:maincpu,program,ff107c,08,00,00
-megaman:
-megamana:
-mmancp2u:
-mmancp2ur1:
-rmancp2j:
-rockmanj:
-@:maincpu,program,ffeed0,28,00,00
-@:maincpu,program,ffef10,28,00,02
+;@s:capcom/cps1bl_pic.cpp
+dino:
+dinoa:
+dinohunt:
+dinoj:
+dinou:
+jurassic99:
+@:maincpu,program,fff03e,310,00,00
+@:maincpu,program,fff34e,010,99,00
-forgottn:
-forgottnu:
-forgottnua:
-forgottnuaa:
-forgottnuc:
-forgottnue:
-lostwrld:
-lostwrldo:
-@:maincpu,program,ffe142,50,00,20
-@:maincpu,program,ffb2a0,04,00,00
+;Saturday Night Slam Masters clones
+mbomberj:
+slammast:
+slammastu:
+slampic:
+slampic2:
+@:maincpu,program,ffa138,02,00,10
+@:maincpu,program,ffa13a,ae,00,00
+
+
+;@s:capcom/cps2.cpp
+
+ssf2:
+ssf2a:
+ssf2ar1:
+ssf2j:
+ssf2jr1:
+ssf2jr2:
+ssf2r1:
+ssf2tb:
+ssf2tba:
+ssf2tbd:
+ssf2tbj:
+ssf2tbr1:
+ssf2tbu:
+ssf2u:
+ssf2ud:
+ssf2us2:
+@:maincpu,program,ffd5a2,30,00,20
+@:maincpu,program,ffd61a,4,00,00
+
+
+sfa2:
+sfa2u:
+sfa2ur1:
+sfz2a:
+sfz2ad:
+sfz2al:
+sfz2alb:
+sfz2ald:
+sfz2alh:
+sfz2alj:
+sfz2alr1:
+sfz2b:
+sfz2br1:
+sfz2h:
+sfz2j:
+sfz2jd:
+sfz2jr1:
+sfz2n:
+@:maincpu,program,ffdf6a,ad,00,01
+
+
+;mars matrix (usa/japan)(by tamphax)
+mmatrix:
+mmatrixa:
+mmatrixd:
+mmatrixj:
+@:maincpu,program,ff0104,140,43,00
+@:maincpu,program,ff4988,6,00,90
+
+
+;1944d:******1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)
+1944:
+1944d:
+1944j:
+1944u:
+@:maincpu,program,921d90,b8,01,18
+
+
+mpang:
+mpanga:
+mpangj:
+mpangr1:
+mpangu:
+@:maincpu,program,ff817c,1e0,00,01
+
+
+;vsavd:******Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)
+vhunt2:
+vhunt2d:
+vhunt2r1:
+vsav:
+vsava:
+vsavb:
+vsavd:
+vsavh:
+vsavj:
+vsavu:
+@:maincpu,program,fff426,ad,00,02
+
+
+;19xxd:******19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)
+19xx:
+19xxa:
+19xxar1:
+19xxb:
+19xxd:
+19xxh:
+19xxj:
+19xxjr1:
+19xxjr2:
+19xxu:
+@:maincpu,program,ff4dca,4,00,00
+@:maincpu,program,ff0443,9f,14,70
-;@s:cps2.cpp
;pzloop2:******puzz loop 2 (euro 010302)
;** stage scores not right ** ** you must wait untill the hiscore table has displayed **
@@ -3317,25 +1569,6 @@ xmcotau:
@:maincpu,program,ffec8e,3c,00,01
-ssf2:
-ssf2a:
-ssf2ar1:
-ssf2j:
-ssf2jr1:
-ssf2jr2:
-ssf2r1:
-ssf2tb:
-ssf2tba:
-ssf2tbd:
-ssf2tbj:
-ssf2tbr1:
-ssf2tbu:
-ssf2u:
-ssf2ud:
-@:maincpu,program,ffd5a2,30,00,20
-@:maincpu,program,ffd61a,4,00,00
-
-
;ddsomud:******Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)
ddsom:
ddsoma:
@@ -3373,6 +1606,7 @@ mshvsfu1d:
;megamn2d:******Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)
megaman2:
megaman2a:
+megaman2h:
megamn2d:
rockman2j:
@:maincpu,program,ffefc0,118,00,02
@@ -3425,26 +1659,6 @@ sfzjr2:
@:maincpu,program,ffaea0,9f,01,16
-sfa2:
-sfa2u:
-sfa2ur1:
-sfz2a:
-sfz2ad:
-sfz2al:
-sfz2alb:
-sfz2ald:
-sfz2alh:
-sfz2alj:
-sfz2b:
-sfz2br1:
-sfz2h:
-sfz2j:
-sfz2jd:
-sfz2jr1:
-sfz2n:
-@:maincpu,program,ffdf6a,ad,00,01
-
-
;xmvsfu1d:******X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)
xmvsf:
xmvsfa:
@@ -3463,19 +1677,6 @@ xmvsfur1:
@:maincpu,program,ff256e,63,00,05
-;vsavd:******Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)
-vhunt2:
-vhunt2d:
-vhunt2r1:
-vsav:
-vsava:
-vsavd:
-vsavh:
-vsavj:
-vsavu:
-@:maincpu,program,fff426,ad,00,02
-
-
;(capcom sports club (japan 970722)) and clones (by GeoMan)
csclub:
csclub1:
@@ -3520,14 +1721,6 @@ gmahou:
@:maincpu,program,928586,3c,00,40
-;mars matrix (usa/japan)(by tamphax)
-mmatrix:
-mmatrixd:
-mmatrixj:
-@:maincpu,program,ff0104,140,43,00
-@:maincpu,program,ff4988,6,00,90
-
-
spf2t:
spf2ta:
spf2td:
@@ -3597,13 +1790,6 @@ progearud:
@:maincpu,program,ff3dcf,e5,20,04
-;1944d:******1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)
-1944:
-1944d:
-1944j:
-@:maincpu,program,921d90,b8,01,18
-
-
;mshud:******Marvel Super Heroes (US 951024 Phoenix Edition) (bootleg)
msh:
msha:
@@ -3617,13 +1803,6 @@ mshud:
@:maincpu,program,ff2720,9f,00,0b
-mpang:
-mpangj:
-mpangr1:
-mpangu:
-@:maincpu,program,ff817c,1e0,00,01
-
-
;(eco fighters (world 931203)) (by GeoMan)
ecofghtr:
ecofghtra:
@@ -3646,20 +1825,6 @@ avspu:
@:maincpu,program,ffedda,1,44,44
-;19xxd:******19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)
-19xx:
-19xxa:
-19xxar1:
-19xxb:
-19xxd:
-19xxh:
-19xxj:
-19xxjr1:
-19xxjr2:
-@:maincpu,program,ff4dca,4,00,00
-@:maincpu,program,ff0443,9f,14,70
-
-
;(cyberbots: fullmetal madness (japan 950420)) (by GeoMan)
cybots:
cybotsj:
@@ -3731,7 +1896,7 @@ vampjr1:
@:maincpu,program,ffe976,4,00,00
-;@s:cps3.cpp
+;@s:capcom/cps3.cpp
;sfiii3:******street fighter III 3rd strike: fight for the future (usa, 990608)
;sfiii3nr1:******street fighter III 3rd strike: fight for the future (japan, 990512 no cd)
@@ -3763,50 +1928,366 @@ sfiiiu:
@:maincpu,program,201381c,90,1c,02
-;@s:crbaloon.cpp
+;@s:capcom/egghunt.cpp
-crbaloon:
-crbaloon2:
-@:maincpu,program,4016,03,00,00
-@:maincpu,program,417f,0a,11,00
+;egghunt:******Egg Hunt
+egghunt:
+@:maincpu,program,f000,70,45,00
+@:maincpu,program,f06b,1,03,03
-;@s:crgolf.cpp
+;@s:capcom/exedexes.cpp
-;*******(crowns golf (set 1))
-crgolf:
-@:maincpu,program,4001,10c,04,00
-@:maincpu,program,411a,1,0a,0a
+exedexes:
+@:maincpu,program,e680,50,00,19
+@:maincpu,program,e600,8,00,00
+
+
+savgbees:
+@:maincpu,program,e680,50,00,24
+@:maincpu,program,e600,8,00,00
-;@s:crimfght.cpp
+;@s:capcom/fcrash.cpp
-crimfght:
-crimfghtj:
-@:maincpu,program,1a40,46,00,19
+ffightbla:
+@:maincpu,program,ff850e,39,85,50
+@:maincpu,program,ff80a0,4,00,00
+@delay=5
-;@s:crospang.cpp
+;*******(mega twins [updated])
+chikij:
+mtwins:
+mtwinsb:
+@:maincpu,program,ff12c8,190,00,00
+@:maincpu,program,ff9168,28,02,5b
+@:maincpu,program,ffe006,04,00,00
-pitapat:
-@:maincpu,program,301c6f,51,06,44
+;fcrash:******Final Crash (World, bootleg)
+fcrash:
+@:maincpu,program,ff850c,3c,ff,00
+@:maincpu,program,ff80a0,4,00,00
-;@s:crshrace.cpp
-;(lethal crash race (set 1)) and clones (by GeoMan)
-crshrace:
-crshrace2:
-@:maincpu,program,fe21b6,80,41,00
+;@s:capcom/gng.cpp
+gngprot:
+@:maincpu,program,1508,5a,15,72
+@:maincpu,program,00d0,4,00,00
-;@s:cv1k.cpp
-;***** saves todays top scores (others are saved in nvram) ******
-akatana:
-@:maincpu,program,cb2fa9c,343,00,52
-@:maincpu,program,cb30e4c,343,00,4a
-@:maincpu,program,cb30474,343,00,44
+diamrun:
+@:maincpu,program,1200,80,4b,00
+
+
+gng:
+gnga:
+gngbl:
+gngblita:
+gngc:
+gngt:
+makaimur:
+makaimurc:
+makaimurg:
+@:maincpu,program,1518,5a,15,72
+@:maincpu,program,00d0,4,00,00
+
+
+;@s:capcom/gunsmoke.cpp
+
+gunsmoke:
+gunsmokeb:
+gunsmokeg:
+gunsmokeu:
+gunsmokeua:
+@:maincpu,program,e680,50,00,14
+@:maincpu,program,e600,8,00,00
+
+
+gunsmokej:
+@:maincpu,program,e680,50,00,18
+@:maincpu,program,e600,8,00,00
+
+
+;@s:capcom/higemaru.cpp
+
+;********higemaru (pirate ship higemaru)
+higemaru:
+@:maincpu,program,ee00,82,00,4f
+@:maincpu,program,ee97,3,00,00
+@:maincpu,program,d04e,7,20,30
+
+
+;@s:capcom/lastduel.cpp
+
+leds2011:
+leds2011u:
+@:maincpu,program,ff8890,78,00,00
+@:maincpu,program,ffcb76,23,41,01
+@:maincpu,program,ff87c9,1,d2,d2
+
+
+leds2011p:
+@:maincpu,program,ff8852,78,00,00
+@:maincpu,program,ffc936,23,41,01
+@:maincpu,program,ff87c9,1,d2,d2
+
+
+lastduel:
+lastduelb:
+lastduelo:
+@:maincpu,program,ff87e2,4,00,00
+@:maincpu,program,ffc6f2,68,c7,00
+@:maincpu,program,fcc76d,1,20,20
+@:maincpu,program,fcc7ed,1,20,20
+@:maincpu,program,fcc86d,1,20,20
+@:maincpu,program,fcc8ed,1,02,02
+@:maincpu,program,fcc96d,1,00,00
+@:maincpu,program,fcc9ed,1,00,00
+@:maincpu,program,fcca6d,1,00,00
+@:maincpu,program,fccaed,1,00,00
+
+
+ledstorm:
+madgear:
+madgearj:
+@:maincpu,program,ff8890,78,00,00
+@:maincpu,program,ffcb76,23,02,00
+@:maincpu,program,ff87c9,1,d2,d2
+
+
+;@s:capcom/lwings.cpp
+
+avengers:
+avengersa:
+avengersb:
+avengersc:
+@:maincpu,program,ce00,54,00,47
+@:maincpu,program,ce97,3,00,60
+
+
+lwings:
+lwingsa:
+lwingsb:
+lwingsj:
+lwingsja:
+@:maincpu,program,ce00,5b,00,2e
+@:maincpu,program,ce97,d,00,00
+
+
+fball:
+@:maincpu,program,d840,69,00,48
+
+
+buraiken:
+trojan:
+trojana:
+trojanb:
+trojanj:
+trojanr:
+@:maincpu,program,ce00,5b,00,2e
+@:maincpu,program,ce97,3,00,60
+
+
+;(section z)
+sectionz:
+sectionza:
+@:maincpu,program,ce00,51,00,00
+@:maincpu,program,ce97,3,00,00
+@:maincpu,program,ce4f,1,08,08
+
+
+;@s:capcom/mitchell.cpp
+
+;mstworld:******monsters world
+mstworld:
+mstworld2:
+@:maincpu,program,fc01,9e,00,07
+@:maincpu,program,e154,3,00,00
+
+
+pangbb:
+pangbc:
+@:maincpu,program,f9e3,97,01,03
+@:maincpu,program,e00d,3,01,00
+
+
+block:
+blockbl:
+blockj:
+blockr1:
+@:maincpu,program,e0f0,50,54,85
+
+
+sbbros:
+spang:
+spangbl:
+spangj:
+@:maincpu,program,fc01,9e,00,07
+@:maincpu,program,e158,4,00,00
+
+
+;pangba:******Pang (bootleg, set 3)
+bbros:
+pang:
+pangb:
+pangb2:
+pangba:
+pangbold:
+pompingw:
+@:maincpu,program,f9e3,9a,01,00
+@:maincpu,program,e00d,3,01,00
+
+
+;*********(Quiz Sangokushi (Japan))
+qsangoku:
+@:maincpu,program,e815,4b,00,00
+@:maincpu,program,e860,03,01,00
+
+
+;@s:capcom/sf.cpp
+
+sf:
+sfj:
+sfjbl:
+sfua:
+sfw:
+@:maincpu,program,ff8e72,9c,00,12
+@:maincpu,program,ffc012,8,00,00
+
+
+;sf: ;******street fighter (world)
+sfan:
+sfjan:
+@:maincpu,program,ff94f2,9c,00,12
+@:maincpu,program,ff8732,8,00,00
+
+
+sfp:
+@:maincpu,program,ff9498,9c,00,12
+@:maincpu,program,ff8d18,8,00,00
+
+
+;@s:capcom/sidearms.cpp
+
+;*******(sidearms & clones)
+sidearms:
+sidearmsj:
+sidearmsur1:
+@:maincpu,program,e682,4e,00,00
+@:maincpu,program,e601,7,00,00
+@:maincpu,program,e6ce,1,3b,3b
+
+
+;*******Twin Falcons
+twinfalc:
+@:maincpu,program,e680,50,00,3b
+@:maincpu,program,e600,08,00,00
+
+
+;turtshipj:******turtle ship (japan)
+turtship:
+turtshipj:
+turtshipk:
+turtshipkn:
+turtshipko:
+@:maincpu,program,c504,96,00,0a
+@:maincpu,program,c202,2,00,1e
+
+
+dyger:
+dygera:
+@:maincpu,program,c0d0,23,37,06
+@:maincpu,program,c086,2,37,37
+
+
+sidearmsu:
+@:maincpu,program,e682,4e,00,03
+@:maincpu,program,e601,7,00,00
+@:maincpu,program,e6ce,1,01,01
+
+
+;@s:capcom/sonson.cpp
+
+sonson:
+sonsonj:
+@:maincpu,program,d8,4,00,00
+@:maincpu,program,300,64,00,1d
+
+
+;@s:capcom/srumbler.cpp
+
+;srumbler:[Special thanks to Wob for enhancing this entry]
+rushcrsh:
+srumbler:
+srumbler2:
+srumbler3:
+@:maincpu,program,1c94,70,54,f2
+@:maincpu,program,aa,4,00,00
+
+
+;@s:capcom/supduck.cpp
+
+supduck:
+@:maincpu,program,ffc332,30,41,00
+@:maincpu,program,ffc360,1,10,10
+
+
+;@s:capcom/tigeroad.cpp
+
+;pushmana:******Pushman (Korea, set 2)
+pushman:
+pushmana:
+pushmans:
+pushmant:
+@:maincpu,program,ffc690,50,00,41
+@:maincpu,program,ffcc2a,4,00,00
+
+
+;tigeroadb:******Tiger Road (us bootleg)
+tigeroad:
+tigeroadb:
+tigeroadu:
+toramich:
+@:maincpu,program,ffec70,64,59,bc
+@:maincpu,program,ffc092,4,00,00
+
+
+;*****(f-1 dream)
+f1dream:
+f1dreamb:
+@:maincpu,program,fff132,60,59,01
+@:maincpu,program,fff2e9,5f,01,34
+
+
+;********(bouncing balls)
+bballs:
+bballsa:
+@:maincpu,program,fc688,31,90,90
+@:maincpu,program,fc687,1,00,00
+
+
+;@s:capcom/vulgus.cpp
+
+mach9:
+vulgus:
+vulgusj:
+@:maincpu,program,ee00,41,00,2e
+@:maincpu,program,ee47,03,00,00
+
+
+vulgusa:
+@:maincpu,program,ee00,41,00,20
+@:maincpu,program,ee47,03,00,00
+
+
+;@s:cave/cv1k.cpp
+
+espgal2:
+espgal2a:
+@:maincpu,program,c43e064,ed,00,4d
dfkbl:
@@ -3825,10 +2306,6 @@ mushisam:
@:maincpu,program,c244d8c,ed,00,4d
-espgal2:
-@:maincpu,program,c43e064,ed,00,4d
-
-
mushisamb:
@:maincpu,program,c244dec,9d,00,4e
@@ -3862,341 +2339,489 @@ ddpdfk10:
@:maincpu,program,c88877c,2cff,06,4e
-;@s:cvs.cpp
+;@s:cinematronics/cchasm.cpp
-;(logger fixed)
-logger:
-loggerr2:
-@:maincpu,program,3c09,68,00,00
+cchasm:
+cchasm1:
+@:maincpu,program,fff4b8,78,72,10
-;(radar zone - Fixed)
-outline:
-radarzon:
-radarzon1:
-radarzont:
-@:maincpu,program,1c08,67,00,00
+;@s:cinematronics/cinemat.cpp
+;demon:[Special thanks to Cananas for making this entry work]
+demon:
+@:maincpu,data,01c0,1e,00,10
+@:maincpu,data,00b6,0a,00,01
+@:maincpu,data,0000,0a,01,00
-;(gold bug)
-goldbug:
-@:maincpu,program,3d09,1e,00,00
+;sundance:[Special thanks to Cananas for creating this entry]
+sundance:
+@:maincpu,data,0151,01,12,12
+@:maincpu,data,014e,02,00,00
-;(space fortress) (by GeoMan)
-spacefrt:
-@:maincpu,program,1c00,10,00,1b
-@:maincpu,program,1c18,44,1b,00
+;(solar quest)
+solarq:
+@:maincpu,data,e0,50,08,00
-;*******digger (cvs)
-diggerc:
-@:maincpu,program,1cf8,2e,00,00
-@:maincpu,program,1c01,1,a2,a2
+ripoff:
+@:maincpu,data,e0,8,00,00
-cosmos:
-@:maincpu,program,3c00,52,00,00
+;qb3:[Special thanks to Cananas for creating this entry]
+qb3:
+@:maincpu,data,01a1,01,11,11
+@:maincpu,data,01a0,32,00,00
-;(dark warrior) (by GeoMan)
-darkwar:
-@:maincpu,program,1e3e,20,0,0
-@:maincpu,program,1e5e,3c,0,0
-@:maincpu,program,1e9a,a,0,0
+;barrier:[Special thanks to Cananas for making this entry work]
+barrier:
+@:maincpu,data,0074,04,00,00
+@:maincpu,data,00c0,06,00,00
-;hunchbaka:******Hunchback (set 2)
-hunchbak:
-hunchbaka:
-@:maincpu,program,1c07,68,00,00
-@:maincpu,program,1c34,1,20,20
+armora:
+armorap:
+armorar:
+@:maincpu,data,a2,4,00,00
-;(wall street) (by GeoMan)
-wallst:
-@:maincpu,program,1c19,1e,00,00
+;wotw:[Special thanks to Cananas for enhancing this entry]
+wotw:
+wotwc:
+@:maincpu,data,01f0,04,00,00
+@:maincpu,data,012a,06,00,1e
-hero:
-@:maincpu,program,3c00,27,00,30
+;(boxing bugs)
+boxingb:
+@:maincpu,data,e0,30,00,f4
-;(superbike) (by GeoMan)
-superbik:
-@:maincpu,program,1c08,1e,00,30
+;(tailgunner) (by GeoMan)
+tailg:
+@:maincpu,data,d8,4,0,0
+@delay=5
-;(heart attack)
-heartatk:
-@:maincpu,program,3c00,27,01,1b
+;(speed freak) (by GeoMan)
+speedfrk:
+@:maincpu,data,128,2,0,0
-raiders:
-raidersr3:
-@:maincpu,program,1c08,40,00,00
-@:maincpu,program,1c21,1,31,31
-@:maincpu,program,1c0e,1,00,00
+;@s:cinematronics/jack.cpp
-;hncholms:******Hunchback Olympic (Scramble hardware)
-hncholms:
-huncholy:
-@:maincpu,program,3c08,12,00,30
+;loverboy:******loverboy
+loverboy:
+@:maincpu,program,8026,3c,04,13
-;(dazzler)
-;** udates highscore at end of 1st game **
-;** or after 2nd attract mode **
-dazzler:
-@:maincpu,program,3cea,20,00,1b
-@:maincpu,program,3d11,2b,00,00
+;(freeze) (by GeoMan)
+freeze:
+@:maincpu,program,4b90,50,f4,00
-;(video 8 ball)
-8ball:
-8ball1:
-@:maincpu,program,3c0c,38,00,00
+jack:
+jack2:
+jack3:
+treahunt:
+@:maincpu,program,4500,5a,00,41
-;@s:cyclemb.cpp
+;******joinem
+joinem:
+@:maincpu,program,8bad,5a,00,43
-skydest:
-@:maincpu,program,b801,6c,4b,00
-@:maincpu,program,b86b,1,10,10
+unclepoo:
+@:maincpu,program,9447,5a,00,43
-;@s:dacholer.cpp
-itaten:
-@:maincpu,program,a266,1e,56,4b
-@:maincpu,program,a02c,1,54,54
+;(brix / zzyzzyxx set 1&2)
+brix:
+zzyzzyxx:
+zzyzzyxx2:
+@:maincpu,program,5100,28,00,00
+@:maincpu,program,5400,1e,9d,a3
+@:maincpu,program,5126,1,50,50
-;******Kick Boy
-kickboy:
-@:maincpu,program,9338,3,88,02
-@:maincpu,program,9340,23,88,54
+;@s:cinematronics/leland.cpp
+;(cerberus)
+;** only seems to save top score **
+cerberus:
+@:master,program,e83b,ba,27,00
+@:master,program,e004,1,1b,1b
-;******Dacholer
-dacholer:
-@:maincpu,program,933c,23,88,54
-@:maincpu,program,9334,3,88,02
+;(danger zone)
+dangerz:
+@:slave,program,e908,12e,52,14
-;@s:darius.cpp
-darius:
-dariuse:
-dariusu:
-@:maincpu,program,822f2,729,00,2e
+;*******mayhem 2002(By Firebrand)
+; - Only works if you delete the nvram after you turn off the game. Making
+;the nvram read-only will not work.
+mayhem:
+@:master,program,e081,ba,10,45
-dariusj:
-dariuso:
-@:maincpu,program,822ec,729,00,00
-@:maincpu,program,82666,1,41,41
+;@s:comad/funybubl.cpp
+;funybublc:******Funny Bubble (Comad version)
+funybubl:
+funybublc:
+@:maincpu,program,e005,99,4c,00
+@:maincpu,program,e09a,1,05,05
-;@s:darkmist.cpp
-;darkmist:******The Lost Castle In Darkmist
-darkmist:
-@:maincpu,program,e01d,8c,00,20
+;@s:comad/galspnbl.cpp
+;(hot pinball)
+hotpinbl:
+@:maincpu,program,801780,30,00,09
+@:maincpu,program,800007,1,03,03
-;@s:darkseal.cpp
-darkseal:
-darkseal1:
-darksealj:
-gatedoom:
-gatedoom1:
-@:maincpu,program,103e00,37,00,4d
+galspnbl:
+@:maincpu,program,701780,32,00,00
+@:maincpu,program,700007,1,a3,a3
-;@s:dassault.cpp
+;@s:comad/zerozone.cpp
-;*******thunder zone(world)(By Firebrand)
-thndzone:
-thndzonea:
-@:maincpu,program,3f8040,1a,10,10
+zerozone:
+@:maincpu,program,c17cd,77,53,00
+@:maincpu,program,c23da,6,00,00
-thndzonej:
-@:maincpu,program,3f8038,1a,10,10
+;*******las vegas girl (girl`94)
+lvgirl94:
+@:maincpu,program,c17cd,77,53,00
+@:maincpu,program,c1840,1,07,07
+@:maincpu,program,c23da,6,00,00
-dassault4:
-thndzone4:
-@:maincpu,program,3f803c,1e,19,01
+;@s:dataeast/actfancr.cpp
+actfancr:
+actfancr1:
+actfancr2:
+actfancrj:
+@:maincpu,program,1f0ce6,1e,05,45
+@:maincpu,program,1f00be,3,00,00
-dassault:
-@:maincpu,program,3f803c,1e,19,10
+;triothep:******Trio The Punch - Never Forget Me... (World)
+triothep:
+triothepj:
+@:maincpu,program,1f1a58,41,41,4d
-;@s:dbz.cpp
-;(dragonball z 2 super battle) (by GeoMan)
-dbz2:
-@:maincpu,program,48772a,2,00,02
-@:maincpu,program,48772c,2,00,00
+;@s:dataeast/astrof.cpp
+;sstarbtl:******Super Star Battle
+abattle:
+abattle2:
+acombat:
+acombat3:
+acombato:
+afire:
+asterion:
+astrof:
+astrof2:
+astrof3:
+astroff:
+astroff2:
+sstarbtl:
+strfight:
+@:maincpu,program,0084,2,00,00
+@:maincpu,program,4268,5,c1,c1
+@:maincpu,program,4270,5,c1,c1
+@:maincpu,program,4278,5,c1,c1
+@:maincpu,program,4280,5,c1,c1
+@:maincpu,program,4288,5,c1,c1
-dbza:
-@:maincpu,program,48665c,54,00,1e
-@:maincpu,program,4863f2,4,00,00
+tomahawk:
+tomahawk1:
+@:maincpu,program,000d,2,00,00
+@:maincpu,program,4251,25,3c,3c
-dbz:
-@:maincpu,program,486660,54,00,1e
-@:maincpu,program,4863f2,4,00,00
+;@s:dataeast/backfire.cpp
-;@s:dcon.cpp
+;backfire:******backfire!
+;backfirea:******backfire! (set 2)
+backfire:
+backfirea:
+@:maincpu,program,170300,1b0,13,11
-;(d-con)
-dcon:
-@:maincpu,program,83138,64,53,10
+;@s:dataeast/battlera.cpp
-;(sd gundam psycho salamander no kyoui)
-;** for some reason you have to press key 9 to insert credits **
-;** game (driver ??) related problem - not hiscore.dat **
-sdgndmps:
-@:maincpu,program,8b600,9c,00,1a
+;(battle rangers (world))
+battlera:
+bldwolf:
+bldwolfj:
+@:maincpu,program,1f0220,8a,41,00
+@:maincpu,program,1f000e,4,00,00
+@:maincpu,program,1f000f,1,10,10
-;@s:dday.cpp
+;@s:dataeast/boogwing.cpp
-dday:
-ddayc:
-@:maincpu,program,6237,3,00,00
-@:maincpu,program,5379,5,20,20
+boogwing:
+boogwinga:
+boogwingu:
+ragtime:
+ragtimea:
+@:maincpu,program,200f4a,27,00,0b
-;@s:ddenlovr.cpp
+;@s:dataeast/brkthru.cpp
-;rongrong:******puzzle game rong rong (europe)
-rongrong:
-@:maincpu,program,614f,ea,f4,01
-@:maincpu,program,619c,1,01,01
+;forcebrk:******Force Break (Japan)
+brkthru:
+brkthrubl:
+brkthruj:
+forcebrk:
+@:maincpu,program,0531,27,00,32
+@:maincpu,program,0402,3,00,50
-;******Animalandia Jr.
-animaljr:
-@:maincpu,program,67a3,a,00,22
-@:maincpu,program,6b63,1,08,08
+darwin:
+@:maincpu,program,1b93,9,8b,89
+@:maincpu,program,1b6c,10,00,70
-;rongrongg:******puzzle game rong rong (germany)
-;rongrongj:******puzzle game rong rong (japan)
-rongrongg:
-rongrongj:
-@:maincpu,program,614e,ea,f4,01
-@:maincpu,program,619b,1,01,01
+;@s:dataeast/btime.cpp
+protenn:
+@:maincpu,program,db,3,00,00
+@delay=3
-;ddenlovr:******don den lover vol.1 (hong Kong)
-ddenlovr:
-@:maincpu,program,ff853a,74,82,3c
+;(cassette: pro tennis & world tennis)
+cptennis:
+cptennisj:
+wtennis:
+@:maincpu,program,db,3,00,00
+@:maincpu,program,b2,1,da,da
-;@s:ddragon.cpp
-;Double Dragon 2 clones
-ddragon2:
-ddragon2u:
-@:maincpu,program,0f91,1e,02,23
-@:maincpu,program,0023,3,02,00
+btime:
+btime2:
+btime3:
+btimem:
+@:maincpu,program,0033,27,00,ff
-;ddragonb2:******Double Dragon (bootleg)
-ddragon:
-ddragonb:
-ddragonb2:
-ddragonba:
-ddragonu:
-ddragonua:
-ddragonub:
-ddragonw:
-ddragonw1:
-@:maincpu,program,0e73,1e,02,2c
-@:maincpu,program,0023,3,02,00
+;discof:******disco no.1 (rev f)
+disco:
+discof:
+@:maincpu,program,0400,24,00,00
+@:maincpu,program,0006,3,00,00
-;tstrike:******Thunder Strike (Newer)
-;tstrikea:******Thunder Strike (older)
-tstrike:
-tstrikea:
-@:maincpu,program,cf5,55,42,30
+zoar:
+@:maincpu,program,02dd,3,00,00
+@:maincpu,program,02e5,f,00,00
+@:maincpu,program,034b,3,20,20
+@:maincpu,program,0356,3,20,20
+@:maincpu,program,0361,3,20,20
+@:maincpu,program,036c,3,20,20
+@:maincpu,program,0377,3,20,20
-;(toffy) (by GeoMan)
-toffy:
-@:maincpu,program,913,a0,20,ff
+bnj:
+bnjm:
+brubber:
+@:maincpu,program,000a,3,12,01
+@:maincpu,program,500,26c,01,00
+@:maincpu,program,640,1,4d,4d
-;*******dangerous dungeons
-ddungeon:
-ddungeone:
-@:maincpu,program,915,9c,4b,30
+mmonkey:
+mmonkeyj:
+@:maincpu,program,df,f,00,00
+@:maincpu,program,32,3,00,02
+@:maincpu,program,310,f,2e,2f
+@:maincpu,program,3c4a,6,00,01
-;*******dark tower
-darktowr:
-@:maincpu,program,a82,9c,4b,30
+cookrace:
+@:maincpu,program,0032,24,00,18
-;(super toffy) (by GeoMan)
-stoffy:
-stoffyu:
-@:maincpu,program,833,e0,00,f2
-@:maincpu,program,913,f0,20,00
+caractn:
+caractn2:
+@:maincpu,program,0500,f,01,82
+@:maincpu,program,0640,f,42,53
+@:maincpu,program,000a,3,12,01
-;@s:ddragon3.cpp
+lnc:
+@:maincpu,program,0008,3,00,00
+@:maincpu,program,0294,f,00,00
+@:maincpu,program,02a6,f,00,00
+@:maincpu,program,3c4d,6,00,01
-;(wwf wrestlefest (us))
-;wwfwfestj:******www wrestlefest (japan)
-;wwfwfestb:******www wrestlefest (us bootleg)
-;wwfwfesta:******www wrestlefest (us tecmo)
-wwfwfest:
-wwfwfestj:
-wwfwfestu:
-wwfwfestu1:
-wwfwfestub:
-@:maincpu,program,1c00c2,84,08,01
+;sdtennis:[Special thanks to Cananas for enhancing this entry]
+sdtennis:
+@:maincpu,program,0200,3c,01,15
+@:maincpu,program,0250,3c,3b,43
+@:maincpu,program,002c,03,88,01
-;@s:ddribble.cpp
-ddribble:
-ddribblep:
-@:maincpu,program,4800,70,1d,03
+;@s:dataeast/bwing.cpp
+;fixes thanks to takasaki
+zaviga:
+zavigaj:
+@:maincpu,program,0d00,f0,34,20
+@:maincpu,program,1024,7,0,10
-;@s:deadang.cpp
-ghunter:
-@:maincpu,program,1482,bd,50,00
-@:maincpu,program,1539,1,2a,2a
+bwingsa:
+bwingso:
+@:maincpu,program,0d,3,00,04
+@:maincpu,program,d00,f0,34,20
-leadang:
-@:maincpu,program,1542,bd,50,00
-@:maincpu,program,15f9,1,2a,2a
+bwings:
+@:maincpu,program,0d,3,00,04
+@:maincpu,program,d00,8c,34,20
-;*******dead angle
-deadang:
-@:maincpu,program,1442,bd,50,00
-@:maincpu,program,14f9,1,2a,2a
+;@s:dataeast/cbuster.cpp
+
+;(crude buster (world fx version)) and clones (by GeoMan)
+cbuster:
+cbusterj:
+cbusterw:
+@:maincpu,program,80080,28,01,00
+
+
+twocrude:
+twocrudea:
+@:maincpu,program,80080,28,01,00
+@:maincpu,program,800c0,28,41,00
+
+
+;@s:dataeast/cninja.cpp
+
+;(robocop 2)
+robocop2:
+robocop2j:
+robocop2u:
+robocop2ua:
+@:maincpu,program,1b8300,27,4e,21
+@:maincpu,program,1b8200,28,00,00
+@:maincpu,program,1b8020,4,00,00
+
+
+cninja1:
+cninjabl:
+stoneage:
+@:maincpu,program,1877f7,1,30,30
+@:maincpu,program,1877f6,ae,00,00
+
+
+cninja:
+cninjau:
+joemac:
+@:maincpu,program,1877fb,1,30,30
+@:maincpu,program,1877fa,ae,00,00
+
+
+;********the cliffhanger - edward randy (world revision 2))
+edrandy:
+edrandy1:
+edrandy2:
+edrandyj:
+@:maincpu,program,194080,80,4d,02
+
+
+;********mutant fighter (world rev 4 em-5)
+deathbrd:
+mutantf:
+mutantf2:
+mutantf3:
+mutantf4:
+@:maincpu,program,1000fc,32,01,00
+@:maincpu,program,10012c,1,01,01
+
+
+;@s:dataeast/darkseal.cpp
+
+darkseal:
+darkseal1:
+darksealj:
+gatedoom:
+gatedoom1:
+@:maincpu,program,103e00,37,00,4d
+
+
+;@s:dataeast/dassault.cpp
+
+;*******thunder zone(world)(By Firebrand)
+thndzone:
+thndzonea:
+@:maincpu,program,3f8040,1a,10,10
+
+
+thndzonej:
+@:maincpu,program,3f8038,1a,10,10
+
+
+dassault4:
+thndzone4:
+@:maincpu,program,3f803c,1e,19,01
+
+
+dassault:
+@:maincpu,program,3f803c,1e,19,10
+
+
+;@s:dataeast/dblewing.cpp
+
+dblewing:
+dblewinga:
+dblewingb:
+@:maincpu,program,ff3b01,f7,2d,00
+@:maincpu,program,ff3ac1,03,00,00
+@delay=2.5
+
+;@s:dataeast/dec0.cpp
+
+birdtryb:
+@:maincpu,program,ff8394,31a,01,40
+
+
+;(midnight resistance (world & us))
+midres:
+midresb:
+midresbj:
+midresu:
+@:maincpu,program,1026ea,50,00,26
+@:maincpu,program,102710,1,78,78
+
+
+midres2:
+midresj:
+@:maincpu,program,1026ec,50,00,26
+@:maincpu,program,102712,1,78,78
+
+
+hbarrelu:
+@:maincpu,program,ffbe9c,58,00,26
-;@s:dec0.cpp
bandit:
@:maincpu,program,ffaa14,50,42,86
@@ -4226,11 +2851,6 @@ hbarrel:
@:maincpu,program,ffbe78,58,00,26
-midresj:
-@:maincpu,program,1026ec,50,00,26
-@:maincpu,program,102712,1,78,78
-
-
;(boulder dash/boulder dash part 2 (world))
; ** top score updates at start of first game **
bouldash:
@@ -4238,14 +2858,6 @@ bouldash:
@:maincpu,program,306aa1,3,00,00
-;(midnight resistance (world & us))
-midres:
-midresb:
-midresu:
-@:maincpu,program,1026ea,50,00,26
-@:maincpu,program,102710,1,78,78
-
-
;(sly spy (us revision 3))
secretag:
slyspy:
@@ -4255,10 +2867,6 @@ slyspy2:
@:maincpu,program,306add,1,30,30
-hbarrelu:
-@:maincpu,program,ffbe9c,58,00,26
-
-
;Robocop clones
;(robocop (world revision 4))
robocop:
@@ -4273,6 +2881,7 @@ robocopw:
;*******(birdy try (japan))
birdtry:
+birdtrya:
@:maincpu,program,ff8530,31a,01,40
@@ -4290,7 +2899,7 @@ secretagj:
@:maincpu,program,306c17,1,30,30
-;@s:dec8.cpp
+;@s:dataeast/dec8.cpp
csilver:
csilverj:
@@ -4348,7 +2957,7 @@ breywood:
;meikyuha:******Meikyuu Hunter G (Japan, set 2)
;meikyuh:******Meikyuu Hunter G (Japan, set 1)
meikyuh:
-meikyuha:
+meikyuhbl:
@:maincpu,program,190,50,01,20
@@ -4367,7 +2976,7 @@ ghostb2a:
@:maincpu,program,01c0,76,01,10
-;@s:deco156.cpp
+;@s:dataeast/deco156.cpp
;hvysmsh:[Special thanks to Cananas for enhancing this entry]
hvysmsh:
@@ -4377,7 +2986,7 @@ hvysmshj:
@:maincpu,program,10000c,04,00,00
-;@s:deco32.cpp
+;@s:dataeast/deco32.cpp
;nslashers:******Night Slashers (Over Sea Rev 1.2)
nslasher:
@@ -4430,7 +3039,7 @@ lockload:
@:maincpu,program,102703,f6,20,1e
-;@s:deco_mlc.cpp
+;@s:dataeast/deco_mlc.cpp
;skullfng:******skull fang (japan)
skullfng:
@@ -4447,7 +3056,11 @@ avengrgsj:
@:maincpu,program,108909,4e,01,52
-;@s:decocass.cpp
+;@s:dataeast/decocass.cpp
+
+ctower:
+@:maincpu,program,24ec,60,00,24
+
;(cassette: lock'n'chase) (by GeoMan)
clocknch:
@@ -4549,9 +3162,11 @@ castfant:
;(cassette: scrum try (set 1)) and clones (by GeoMan)
cscrtry:
-cscrtry2:
@:maincpu,program,400,21,01,15
@:maincpu,program,a,3,10,01
+
+
+cscrtry2:
@:maincpu,program,400,24,0,2b
@:maincpu,program,a,3,0,0
@:maincpu,program,ca41,1,1,1
@@ -4600,38 +3215,7 @@ chamburger:
@:maincpu,program,32,24,00,12
-;@s:deniam.cpp
-
-;(karian cross)
-karianx:
-@:maincpu,program,ff069c,68,4b,30
-
-
-croquis:
-logicpro:
-@:maincpu,program,ff0658,28,53,00
-
-
-logicpr2:
-@:maincpu,program,ff70e6,46,0a,d0
-
-
-;@s:destroyr.cpp
-
-;(destroyer)
-;** hiscore updates once first game is over **
-destroyr:
-@:maincpu,program,dd,2,00,00
-@:maincpu,program,e0,1,00,00
-
-
-;@s:dfruit.cpp
-
-gemcrush:
-@:maincpu,program,8fc3,3c,47,12
-
-
-;@s:dietgo.cpp
+;@s:dataeast/dietgo.cpp
;******diet go go (euro v1.1 1992.09.26)
;dietgoe:******(euro v1.1 1992.08.04)
@@ -4639,6 +3223,7 @@ gemcrush:
;dietgou:******(usa v1.1 1992.09.26)
dietgo:
dietgoe:
+dietgoea:
dietgoj:
dietgou:
@:maincpu,program,3801f8,4,00,00
@@ -4646,820 +3231,573 @@ dietgou:
@:maincpu,program,3801f9,1,35,35
-;@s:discoboy.cpp
-
-discoboy:
-discoboyp:
-@:maincpu,program,f800,80,00,2e
-
-
-;@s:divebomb.cpp
-
-divebomb:
-@:fgcpu,program,e0fa,4c,00,53
-@:fgcpu,program,e040,4,00,00
-
-
-;@s:diverboy.cpp
-
-;********(diver boy)
-diverboy:
-@:maincpu,program,44715,b1,31,e9
-
-
-;@s:djboy.cpp
-
-;djboy:******dj boy (set 1)
-;djboya:******dj boy (set 2)
-;djboyj:******dj boy (japan)
-djboy:
-djboyj:
-djboyja:
-djboyua:
-@:mastercpu,program,b16a,2d,01,12
-
-
-;@s:dkong.cpp
-
-;dkongf:******Donkey Kong Foundry (hack)
-dkong:
-dkongf:
-dkonghrd:
-dkongj:
-dkongjo:
-dkongjo1:
-dkongo:
-dkongpe:
-@:maincpu,program,6100,aa,94,76
-@:maincpu,program,60b8,03,50,00
-@:maincpu,program,7641,01,00,00
-@:maincpu,program,7621,01,00,00
-@:maincpu,program,7601,01,07,07
-@:maincpu,program,75e1,01,06,06
-@:maincpu,program,75c1,01,05,05
-@:maincpu,program,75a1,01,00,00
-
-
-;*******street heat - cardinal amusements
-strtheat:
-strtheata:
-@:maincpu,program,6270,a7,01,20
-
-
-;dkongjnrj:******donkey kong jr. (japan?)
-;dkongjr:******donkey kong jr. (us)
-dkongjnrj:
-dkongjr:
-dkongjr2:
-dkongjre:
-dkongjrpb:
-@:maincpu,program,6105,9e,10,10
-@:maincpu,program,60b8,3,50,00
-@:maincpu,program,7661,1,10,10
-@:maincpu,program,7641,1,00,00
-@:maincpu,program,7621,1,00,00
-@:maincpu,program,7601,1,07,07
-@:maincpu,program,75e1,1,06,06
-@:maincpu,program,75c1,1,05,05
-@:maincpu,program,75a1,1,00,00
-
-
-;dkongjrb:******donkey kong jr. (bootleg)
-;dkongjrj:******donkey kong jr. (japan)
-;jrking:******Junior King (bootleg of Donkey Kong Jr.)
-dkingjr:
-dkongjrb:
-dkongjrj:
-jrking:
-maguila:
-@:maincpu,program,6105,9e,10,10
-@:maincpu,program,60b8,3,00,01
-@:maincpu,program,7661,1,10,10
-@:maincpu,program,7641,1,00,00
-@:maincpu,program,7621,1,01,01
-@:maincpu,program,7601,1,01,01
-@:maincpu,program,75e1,1,08,08
-@:maincpu,program,75c1,1,00,00
-@:maincpu,program,75a1,1,00,00
-
-
-;***** 8ballact / 8ballact2 / 8bpm fixes *******
-8ballact:
-8ballact2:
-@:maincpu,program,1d28,06,00,1b
-@:maincpu,program,1d46,0a,00,00
-@:maincpu,program,1d2e,06,00,1b
-@:maincpu,program,1d50,0a,00,00
-@:maincpu,program,1d34,06,00,1b
-@:maincpu,program,1d5a,0a,00,00
-@:maincpu,program,1d3a,06,00,1b
-@:maincpu,program,1d64,0a,00,00
-@:maincpu,program,1d40,06,00,1b
-@:maincpu,program,1d6e,0a,00,00
-
-
-;******special forces II(By Firebrand)
-;******special forces(By Firebrand)
-spcfrcii:
-spclforc:
-@:maincpu,program,1a22,1,33,33
-@:maincpu,program,1a27,5,30,30
-
-
-hunchbkd:
-@:maincpu,program,1c23,4f,1b,00
-@:maincpu,program,1c73,1,01,01
-
-
-herodk:
-herodku:
-@:maincpu,program,3c44,50,00,00
-@:maincpu,program,3c94,1,23,23
-
-
-;*******drakton
-drakton:
-drktnjr:
-@:maincpu,program,6449,118,00,00
-@:maincpu,program,655d,1,20,20
-
-
-radarscp:
-radarscp1:
-@:maincpu,program,6307,a2,00,fc
-@:maincpu,program,60a8,3,50,00
-@:maincpu,program,7641,1,00,00
-@:maincpu,program,7621,1,00,00
-@:maincpu,program,7601,1,07,07
-@:maincpu,program,75e1,1,06,06
-@:maincpu,program,75c1,1,05,05
-@:maincpu,program,75a1,1,00,00
-
-
-herbiedk:
-@:maincpu,program,3c22,1b,00,00
-@:maincpu,program,3c20,1,18,18
-
-
-dkong3:
-dkong3b:
-dkong3j:
-@:maincpu,program,6b00,aa,f3,76
-@:maincpu,program,6c20,40,00,00
-@:maincpu,program,6c16,04,00,00
-@:maincpu,program,68f3,03,01,00
-
-
-;@s:docastle.cpp
-
-dorunrun:
-dorunrun2:
-@:maincpu,program,2010,190,00,50
-
-
-spiero:
-@:maincpu,program,2010,3,00,00
-@:maincpu,program,2011,1,10,10
-
-
-;dorunrunca:******Do! Run Run (Do's Castle hardware, set 2)
-;dorunrunc:******Do! Run Run (Do's Castle hardware, set 1)
-dorunrunc:
-dorunrunca:
-@:maincpu,program,8010,190,00,50
-
-
-dowild:
-jjack:
-kickridr:
-@:maincpu,program,2020,50,01,00
-
-
-docastle:
-docastle2:
-docastleo:
-douni:
-@:maincpu,program,8020,50,01,00
-
-
-;@s:dogfgt.cpp
-
-;dogfgt:******acrobatic dog-fight
-;dogfgtj:******acrobatic dog-fight (japan)
-dogfgt:
-dogfgtj:
-dogfgtu:
-@:maincpu,program,607,4f,00,0b
-@:maincpu,program,609,1,01,01
-
-
-;@s:dominob.cpp
-
-;dominob:******Domino Block
-dominob:
-@:maincpu,program,ef79,23,03,4b
-@:maincpu,program,c4df,3,03,00
-
-
-;@s:dooyong.cpp
-
-;(gulf storm) and clones (by GeoMan)
-gulfstrm:
-gulfstrma:
-gulfstrmb:
-gulfstrmk:
-gulfstrmm:
-@:maincpu,program,c580,80,00,2e
-@:maincpu,program,c618,4,00,00
-
-
-;******Pop Bingo
-;** you cant tenter any names into hiscore table yet, driver problem ??? **
-popbingo:
-@:maincpu,program,41001,7f,10,40
-
-
-ddaydoo:
-lastday:
-lastdaya:
-@:maincpu,program,d6ca,b,20,30
-@:maincpu,program,e07e,6e,00,1b
-@:maincpu,program,e138,7,00,00
+;@s:dataeast/exprraid.cpp
+;exprraid:******Express Raider (US set 2)
+exprraid:
+exprraidi:
+@:maincpu,program,0240,50,20,00
-bluehawk:
-bluehawkn:
-@:maincpu,program,f0b6,32,03,06
+exprraidu:
+@:maincpu,program,05fd,3,15,00
+@:maincpu,program,0240,50,20,00
-;******super-x (ntc & mitchell)
-superx:
-superxm:
-@:maincpu,program,d07c0,68,32,20
+wexpress:
+wexpressb1:
+wexpressb2:
+wexpressb3:
+@:maincpu,program,0245,3,15,00
+@:maincpu,program,0240,50,20,00
-;(sadari) (by GeoMan)
-sadari:
-@:maincpu,program,c31d,3c,3a,01
+;@s:dataeast/firetrap.cpp
-;(r-shark)
-rshark:
-@:maincpu,program,340382,4e,4e,41
+firetrapbl:
+firetrapj:
+@:maincpu,program,ca47,5d,02,18
-;polluxa:******pollux (set 2)
-;polluxa2:******Pollux (set 3)
-pollux:
-polluxa:
-polluxa2:
-polluxn:
-@:maincpu,program,c082,9f,88,2e
+firetrap:
+firetrapa:
+@:maincpu,program,ca47,5d,02,25
-;(gun dealer `94)
-gundl94:
-primella:
-@:maincpu,program,c322,3a,41,01
+;@s:dataeast/funkyjet.cpp
+;funkyjetj:******Funky Jet (Japan)
+funkyjet:
+funkyjeta:
+funkyjeta2:
+funkyjetb:
+funkyjetj:
+@:maincpu,program,143a01,20,00,10
+@:maincpu,program,143a21,140,12,00
-;******Flying Tiger
-flytiger:
-flytigera:
-@:maincpu,program,d244,34,88,48
-@:maincpu,program,d235,1,03,03
+;(sotsugyo shousho) (by GeoMan)
+sotsugyo:
+@:maincpu,program,14269c,10,00,32
+@:maincpu,program,1426ac,50,04,00
-;@s:dorachan.cpp
-;********dorachan
-dorachan:
-@:maincpu,program,1815,5,00,00
-@:maincpu,program,5d70,1,7c,7c
-@:maincpu,program,5d71,1,8a,8a
-@:maincpu,program,5d72,1,92,92
-@:maincpu,program,5d73,1,a2,a2
-@:maincpu,program,5d74,1,7c,7c
-@:maincpu,program,5d78,1,7c,7c
-@:maincpu,program,5d79,1,8a,8a
-@:maincpu,program,5d7a,1,92,92
-@:maincpu,program,5d7b,1,a2,a2
-@:maincpu,program,5d7c,1,7c,7c
-@:maincpu,program,5d80,1,7c,7c
-@:maincpu,program,5d81,1,8a,8a
-@:maincpu,program,5d82,1,92,92
-@:maincpu,program,5d83,1,a2,a2
-@:maincpu,program,5d84,1,7c,7c
-@:maincpu,program,5d88,1,7c,7c
-@:maincpu,program,5d89,1,8a,8a
-@:maincpu,program,5d8a,1,92,92
-@:maincpu,program,5d8b,1,a2,a2
-@:maincpu,program,5d8c,1,7c,7c
-@:maincpu,program,5d90,1,7c,7c
-@:maincpu,program,5d91,1,8a,8a
-@:maincpu,program,5d92,1,92,92
-@:maincpu,program,5d93,1,a2,a2
-@:maincpu,program,5d94,1,7c,7c
+;@s:dataeast/karnov.cpp
+;(wonder planet (japan))
+wndrplnt:
+@:maincpu,program,60048,ac,00,01
+@:maincpu,program,600dd,1,4d,4d
-;@s:dreamwld.cpp
-baryon:
-@:maincpu,program,fe37dc,78,4b,f8
+;(chelnov - atomic runner (us))
+chelnov:
+chelnovj:
+chelnovjbl:
+chelnovjbla:
+chelnovu:
+@:maincpu,program,060048,04,00,00
+@:maincpu,program,060080,2c,00,00
+@:maincpu,program,0600c0,2c,41,00
-baryona:
-@:maincpu,program,fe37de,78,4b,f8
+karnov:
+karnova:
+karnovj:
+@:maincpu,program,06000a,04,00,00
+@:maincpu,program,063c00,28,00,00
+@:maincpu,program,063d00,28,00,4a
-rolcrush:
-@:maincpu,program,fede76,76,41,01
+;@s:dataeast/kchamp.cpp
+karateda:
+karatedo:
+karatevs:
+kchamp:
+kchamptec:
+kchampvs:
+kchampvs2:
+kchampvs3:
+kchampvs4:
+@:maincpu,program,c040,6c,02,01
+@:maincpu,program,c0c0,3,02,00
-;@s:drgnmst.cpp
-;*******dragon master
-drgnmst:
-drgnmst2:
-@:maincpu,program,ff84f0,4,00,00
-@:maincpu,program,ff8450,6c,00,01
+;@s:dataeast/kingobox.cpp
+kingofb:
+kingofbj:
+@:maincpu,program,c22a,04,00,05
+@:video,program,8048,8c,00,12
-;@s:drmicro.cpp
-;*******(dr.micro)
-drmicro:
-@:maincpu,program,c000,1,01,01
-@:maincpu,program,c800,10e,00,00
-@:maincpu,program,c017,6,00,00
+;******Ring King (US, Woodplace license)
+ringkingw:
+@:video,program,8048,8c,00,12
+@:maincpu,program,c22a,04,00,05
-;@s:drtomy.cpp
+ringking:
+ringking2:
+@:video,program,8049,8c,00,12
+@:maincpu,program,c23b,04,00,05
-;******Dr. Tomy
-drtomy:
-@:maincpu,program,ffee00,c0,20,30
+ringking3:
+@:video,program,8048,8c,00,12
+@:maincpu,program,c234,04,00,05
-;@s:dynax.cpp
-;*******maya & inca
-inca:
-maya:
-mayaa:
-@:maincpu,program,7500,22,41,00
-@:maincpu,program,7741,2,fa,00
+;@s:dataeast/lemmings.cpp
+;(lemmings (us prototype))
+lemmings:
+@:maincpu,program,10a402,50,44,01
-;(sports match) (by GeoMan)
-sprtmtch:
-@:maincpu,program,7500,30,4a,00
-@:maincpu,program,7743,2,00,00
+;@s:dataeast/liberate.cpp
-cdracula:
-@:maincpu,program,c39f,6a,43,00
-@:maincpu,program,c406,1,13,13
-@:maincpu,program,cc2b,4,50,00
+;*******Yellow Cab (bootleg)
+;** you must exit this game when either the main title page is showing **
+;** (the screen with the game name and copyright displaying) or when the hiscore **
+;** is being displayed in attract mode, or the save will not work **
+;yellowcbj:******Yellow Cab (Japan)
+kamikcab:
+yellowcbb:
+yellowcbj:
+@:maincpu,program,636b,7c,00,20
-;@s:dynduke.cpp
+;*******(boomer rang`r / genesis)
+;** you must let this game display the hiscore table before starting game and **
+;** this game only saves properly if you exit the game when the hiscore is scrolling **
+;** up the screen during attract mode, you have to be quick, you only get about 4-5 seconds **
+;** to do this...**
+boomrang:
+boomranga:
+@:maincpu,program,10,3,07,00
+@:maincpu,program,62a2,3f,07,89
-;(dynamite duke) and clones (by GeoMan)
-dynduke:
-dyndukej:
-dyndukeja:
-dyndukeu:
-@:maincpu,program,1346,77,50,2a
+;liberation (by tamphax)
+dualaslt:
+liberate:
+liberateb:
+@:maincpu,program,41,3,05,00
+@:maincpu,program,6304,6e,20,60
-dbldynj:
-dbldynu:
-@:maincpu,program,155c,8c,50,00
+;@s:dataeast/madalien.cpp
-;@s:efdt.cpp
+;** only top score saved properly, although all other scores do save **
+;** they go in the wrong order ???? **
+;madaliena:******Mad Alien (Highway Chase)
+madalien:
+madaliena:
+madalienb:
+@:maincpu,program,000b,2,00,00
+@:maincpu,program,6ef0,d6,00,00
+@:maincpu,program,300,c,00,00
+@:maincpu,program,604d,5,01,01
+@:maincpu,program,6050,1,01,01
-efdt:
-@:maincpu,program,80a5,21,01,fe
+;@s:dataeast/metlclsh.cpp
-;@s:egghunt.cpp
+;*******metal clash (japan)
+metlclsh:
+@:maincpu,program,802f,8c,47,40
+@:maincpu,program,800a,3,30,05
-;egghunt:******Egg Hunt
-egghunt:
-@:maincpu,program,f000,70,45,00
-@:maincpu,program,f06b,1,03,03
+;@s:dataeast/pcktgal.cpp
-;@s:enigma2.cpp
+;(pocket gal (japan)) and clones (by GeoMan)
+pcktgal:
+pcktgal2:
+pcktgal2j:
+pcktgalb:
+spool3:
+spool3i:
+@:maincpu,program,0467,2,64,00
-;*******enigma 2
-enigma2:
-enigma2a:
-enigma2b:
-@:maincpu,program,20af,3,00,00
-@:maincpu,program,20c1,3,24,24
+;@s:dataeast/rohga.cpp
-;@s:eolith.cpp
+;*******nitroball (us)
+gunball:
+nitrobal:
+nitrobala:
+nitrobalb:
+@:maincpu,program,ff9deb,14b,54,00
+@:maincpu,program,ff803a,4,00,00
+@:maincpu,program,ff803b,1,10,10
-landbrka:
-@:maincpu,program,400293f5,4b,00,20
+;******Schmeiser Robo (japan)
+schmeisr:
+@:maincpu,program,ff5a20,79,00,4c
-landbrk:
-@:maincpu,program,400284fd,4b,00,20
+;rohga1:******rohga armour force (asia/europe v3.0 set 1)
+;rohga2:******rohga armour force (asia/europe v3.0 set 2)
+rohga:
+rohga1:
+rohga2:
+rohgah:
+rohgau:
+wolffang:
+@:maincpu,program,3f0200,50,00,09
-landbrkb:
-@:maincpu,program,40028ab1,4b,00,20
+darkseal2:
+wizdfire:
+wizdfireu:
+@:maincpu,program,fdc034,28,0b,00
+@:maincpu,program,fdc059,1,01,01
-ironfort:
-@:maincpu,program,400177c0,24,43,20
-@:maincpu,program,4002852c,14,00,10
-@:maincpu,program,40028578,4,00,30
+;@s:dataeast/scregg.cpp
-ironfortc:
-@:maincpu,program,40016338,24,43,20
-@:maincpu,program,40027d20,14,00,10
-@:maincpu,program,40027d6c,4,00,30
+;(dommy)
+dommy:
+@:maincpu,program,1a,3,00,05
-;candy:** you must wait untill hiscore table has displayed before starting a game **
-candy:
-@:maincpu,program,40025660,f0,41,02
+;(scrambled egg) and clones (by GeoMan)
+eggs:
+scregg:
+@:maincpu,program,400,1e,17,00
+@:maincpu,program,015,3,00,03
-;@s:epos.cpp
+;@s:dataeast/shootout.cpp
-;beastf:******beastie feastie (fixed)
-beastf:
-@:maincpu,program,7010,f0,00,00
-@:maincpu,program,798a,1,fc,fc
+;(shoot out (us))
+shootout:
+@:maincpu,program,24a,4e,44,60
+@:maincpu,program,53,3,05,00
+@:maincpu,program,54,1,80,80
-;suprglob:******super glob *
-suprglob:
-@:maincpu,program,7c20,3c,00,00
-@:maincpu,program,7ca4,1,d8,d8
-@:maincpu,program,7c72,1,01,01
+shootoutb:
+shootoutj:
+@:maincpu,program,24a,4e,44,60
+@:maincpu,program,5f,3,05,00
+@:maincpu,program,60,1,80,80
-;********(megadon)
-;** only saves top score ???? don`t know why ???? anyone fix this ?? **
-megadon:
-@:maincpu,program,7a01,48,00,00
-@:maincpu,program,7a6e,2,01,00
-@:maincpu,program,7862,1,f4,f4
+;@s:dataeast/sidepckt.cpp
+sidepckt:
+sidepcktb:
+sidepcktj:
+@:maincpu,program,a0e,32,11,54
-;(igmo)
-;** only saves top score **
-igmo:
-@:maincpu,program,784a,3c,10,00
-@:maincpu,program,7805,1,f4,f4
+;@s:dataeast/simpl156.cpp
-;theglob:******the glob *
-;theglob2:******the glob (earlier)*
-theglob:
-theglob2:
-@:maincpu,program,7bf9,3c,00,00
-@:maincpu,program,7c4b,1,01,01
-@:maincpu,program,7c51,1,80,80
+charlien:
+@:maincpu,program,184a80,ae,00,00
+@:maincpu,program,182200,01,e6,e6
-;theglob3:******the glob (set 3)
-theglob3:
-@:maincpu,program,7a5f,3c,00,00
-@:maincpu,program,7ab1,1,01,01
-@:maincpu,program,7ab7,1,80,80
+;osman:******osman (world)
+;candance:******cannon dancer (japan)
+candance:
+osman:
+@:maincpu,program,186f80,ee,93,00
+@:maincpu,program,187068,1,01,01
-;@s:eprom.cpp
+;magdrop:******Magical Drop (japan, version 1.1 1995.06.21)
+magdrop:
+@:maincpu,program,3800c4,45,00,41
+@:maincpu,program,380920,a,54,00
-;guts:******Guts n' Glory (prototype)
-guts:
-@:maincpu,program,fffdd4,c8,00,a4
+;magdropp:******magical drop plus 1 (japan, version 2.1 1995.09.12)
+magdropp:
+@:maincpu,program,6800c4,45,00,41
+@:maincpu,program,680920,a,54,00
-eprom2:
-@:maincpu,program,3f7dc0,c8,00,98
+;chainrec:******Chain Reaction (world, version 2.2 1995.09.25)
+chainrec:
+@:maincpu,program,4000c0,4d,00,41
+@:maincpu,program,400920,a,54,00
-eprom:
-@:maincpu,program,3f7de8,c8,00,98
+;prtytime:******Party Time: Gonta the Diver II
+;gangonta:******Ganbare! Gonta!! 2
+gangonta:
+prtytime:
+@:maincpu,program,185c24,4d,00,18
+@:maincpu,program,201bd0,27,32,00
+@:maincpu,program,201bf4,1,05,05
-;@s:equites.cpp
-;*** Splendor Blast II - you must exit game with top score on screen for save to work ***
-splndrbt2:
-@:maincpu,program,40020,3,01,00
-@:maincpu,program,40840,168,53,01
-@:maincpu,program,201611,1,20,20
-@:maincpu,program,201691,1,01,01
-@:maincpu,program,201711,1,00,00
-@:maincpu,program,201791,1,00,00
-@:maincpu,program,201811,1,00,00
-@:maincpu,program,201891,1,00,00
-@:maincpu,program,201911,1,00,00
-@:maincpu,program,201921,1,20,20
+;@s:dataeast/sshangha.cpp
+;********(super shanghai dragon`s eye (world,bootleg))
+sshangha:
+sshanghab:
+sshanghaj:
+sshanghak:
+@:maincpu,program,fec478,13f,00,1c
-;(splendor blast) (by GeoMan)
-splndrbt:
-splndrbta:
-splndrbtb:
-@:maincpu,program,40840,168,53,01
-@:maincpu,program,40020,3,01,00
+;@s:dataeast/supbtime.cpp
-;(high voltage) (by GeoMan) - For the hiscore to display correctly in the opening screen always quit the game when opening screen is displayed!
-hvoltage:
-@:maincpu,program,40d20,1e0,4c,00
-@:maincpu,program,40020,3,01,00
-@:maincpu,program,201615,1,20,20
-@:maincpu,program,201695,1,01,01
-@:maincpu,program,201715,1,0,0
-@:maincpu,program,201795,1,0,0
-@:maincpu,program,201815,1,0,0
-@:maincpu,program,201895,1,0,0
-@:maincpu,program,201915,1,0,0
+supbtime:
+supbtimea:
+supbtimej:
+@:maincpu,program,10002c,50,00,4f
-;(bull fighter) (by GeoMan)
-;bullfgtrs:******Bull Fighter (Sega)
-bullfgtr:
-bullfgtrs:
-@:maincpu,program,40700,40,41,00
-@:maincpu,program,40012,6,00,00
-@:maincpu,program,800b0,1c,00,11
+;(china town (japan))
+chinatwn:
+@:maincpu,program,1a3e00,50,00,2e
-;(equites) and clones (by GeoMan)
-equites:
-equitess:
-@:maincpu,program,40020,4,0,0
-@:maincpu,program,40a30,a0,00,09
+tumbleb:
+tumbleb2:
+tumblep:
+tumblepba:
+tumblepj:
+@:maincpu,program,123c10,a0,44,50
+@:maincpu,program,123c01,3,00,00
-;(koukouyakyuh, the) (by GeoMan)
-kouyakyu:
-@:maincpu,program,40a01,70,0,0
-@:maincpu,program,40010,4,0,0
-@:maincpu,program,8070d,1,20,20
-@:maincpu,program,8078d,1,20,20
-@:maincpu,program,8080d,1,2,2
-@:maincpu,program,8088d,1,0,0
-@:maincpu,program,8090d,1,0,0
-@:maincpu,program,8098d,1,0,0
-@:maincpu,program,80a0d,1,0,0
+;@s:dataeast/thedeep.cpp
+;*******the deep (japan)
+rundeep:
+thedeep:
+@:maincpu,program,c256,3c,04,04
-;@s:ertictac.cpp
-ertictaca:
-ertictacb:
-@:maincpu,program,b184,2e,46,c1
+;@s:dataeast/tryout.cpp
+;tryout:******pro baseball skill tryout (japan)
+tryout:
+@:maincpu,program,319,29,90,00
+@:maincpu,program,33d,1,01,01
+@:maincpu,program,13,3,07,90
-ertictac:
-@:maincpu,program,bb1c,2e,46,ca
+;@s:dataeast/tumbleb.cpp
-;@s:esd16.cpp
+magipur:
+@:maincpu,program,4eda,ac,00,20
-;*******head panic(Korea?)(By Firebrand)
-hedpanic:
-hedpanica:
-hedpanicf:
-hedpanico:
-@:maincpu,program,10a840,28,00,40
+;******Super Trio Thanks to Mr Valtric for this addition ******
+suprtrio:
+@:maincpu,program,f03308,5a,01,4e
-;******Multi Champ Deluxe
-;mchampdxa:******Multi Champ Deluxe (ver. 1126, 26/11/1999)
-mchampdx:
-mchampdxa:
-@:maincpu,program,20a900,200,00,40
+;(jump kids) (by GeoMan)
+jumpkids:
+@:maincpu,program,123c10,a0,50,50
+@:maincpu,program,123c01,3,0,0
-;*******Jumping Pop
-jumppop:
-jumppope:
-@:maincpu,program,123c10,a0,45,50
-@:maincpu,program,123c01,3,00,00
+;htchctch:******hatch catch
+htchctch:
+@:maincpu,program,120faa,27,00,45
-;tangtang:******tang tang (ver.0526,26/05/2000)
-tangtang:
-@:maincpu,program,70a840,40,00,40
+;********(fancy world - earth of crisis)
+fncywld:
+@:maincpu,program,ff8311,ae,05,56
-;multchmpk:******multi champ (korea)
-multchmp:
-multchmpk:
-@:maincpu,program,10a841,3f,10,40
+;pangpang:******Pang Pang
+pangpang:
+@:maincpu,program,123c10,a0,44,50
-;@s:espial.cpp
-espial:
-espialu:
-@:maincpu,program,5842,78,00,27
+;metlsavr:******Metal Saver
+metlsavr:
+@:maincpu,program,341600,63,03,44
-;(net wars) (by GeoMan)
-netwars:
-@:maincpu,program,5890,6,00,00
-@:maincpu,program,8040,1,24,24
-@:maincpu,program,8060,1,0,0
-@:maincpu,program,8080,1,0,0
-@:maincpu,program,80a0,1,0,0
-@:maincpu,program,80c0,1,0,0
-@:maincpu,program,80e0,1,1,1
-@:maincpu,program,8100,1,24,24
-@:maincpu,program,8110,1,24,24
+carket:
+@:maincpu,program,120e79,2e,00,41
-;@s:exedexes.cpp
+;sdfight:******SD Fighter (Korea)
+sdfight:
+@:maincpu,program,121efa,4f,00,4d
-exedexes:
-@:maincpu,program,e680,50,00,19
-@:maincpu,program,e600,8,00,00
+;******Cookie & Bibi
+cookbib:
+cookbiba:
+@:maincpu,program,121cca,aa,20,64
-savgbees:
-@:maincpu,program,e680,50,00,24
-@:maincpu,program,e600,8,00,00
+;@s:dataeast/vaportra.cpp
-;@s:exerion.cpp
+kuhga:
+vaportra:
+vaportra3:
+vaportrau:
+@:maincpu,program,fff5d4,78,2e,00
+@:maincpu,program,ffc024,4,00,00
-exerion:
-exerionb:
-exeriont:
-irion:
-@:maincpu,program,6600,c8,00,00
-@:maincpu,program,6700,28,00,00
+;@s:dooyong/dooyong.cpp
-;@s:exidy.cpp
+;(gulf storm) and clones (by GeoMan)
+gulfstrm:
+gulfstrma:
+gulfstrmb:
+gulfstrmk:
+gulfstrmm:
+@:maincpu,program,c580,80,00,2e
+@:maincpu,program,c618,4,00,00
-panzer:
-phantom:
-phantoma:
-rallys:
-rallysa:
-spectar:
-spectar1:
-spectarrf:
-targ:
-@:maincpu,program,00ae,2,00,10
+;******Pop Bingo
+;** you cant tenter any names into hiscore table yet, driver problem ??? **
+popbingo:
+@:maincpu,program,41001,7f,10,40
-mtrap:
-mtrap2:
-mtrap3:
-mtrap4:
-mtrapb:
-mtrapb2:
-@:maincpu,program,0380,23,00,48
+ddaydoo:
+lastday:
+lastdaya:
+@:maincpu,program,d6ca,b,20,30
+@:maincpu,program,e07e,6e,00,1b
+@:maincpu,program,e138,7,00,00
-hardhat:
-pepper2:
-pepper27:
-@:maincpu,program,0360,23,00,11
+bluehawk:
+bluehawkn:
+@:maincpu,program,f0b6,32,03,06
-sidetrac:
-@:maincpu,program,000f,2,00,00
+;******super-x (ntc & mitchell)
+superx:
+superxm:
+@:maincpu,program,d07c0,68,32,20
-venture:
-venture2:
-venture4:
-@:maincpu,program,0380,23,00,53
+;(sadari) (by GeoMan)
+sadari:
+@:maincpu,program,c31d,3c,3a,01
-;*******fax & fax (alt questions)
-fax:
-fax2:
-@:maincpu,program,02b4,15e,00,00
+;(r-shark)
+rshark:
+@:maincpu,program,340382,4e,4e,41
-;@s:expro02.cpp
-missw02:
-@:maincpu,program,f825b6,63,30,20
+;polluxa:******pollux (set 2)
+;polluxa2:******Pollux (set 3)
+pollux:
+polluxa:
+polluxa2:
+polluxn:
+@:maincpu,program,c082,9f,88,2e
-smissw:
-@:maincpu,program,c025b6,63,30,20
+;(gun dealer `94)
+gundl94:
+primella:
+@:maincpu,program,c322,3a,41,01
-;(new fantasia)
-newfant:
-newfanta:
-@:maincpu,program,c825b7,62,30,20
+;******Flying Tiger
+flytiger:
+flytigera:
+@:maincpu,program,d244,34,88,48
+@delay=1.5
-;*******(fantasy `95)
-;supmodel:******super model
-fantasia:
-fantasiaa:
-fantasiab:
-fantasian:
-fantsy95:
-supmodel:
-@:maincpu,program,c825b6,63,30,20
+;@s:dooyong/gundealr.cpp
+;(yam! yam!?)
+wiseguy:
+yamyam:
+yamyamk:
+@:maincpu,program,eba8,3f,00,4d
-;missmw96:******Miss Mister World '96 Nude
-missmw96:
-missw96:
-missw96a:
-missw96b:
-@:maincpu,program,c025b6,1d,30,53
+;@s:dynax/ddenlovr.cpp
-;fantsia2a:******Fantasia II (set 2, less explicit)
-fantsia2:
-fantsia2a:
-fantsia2n:
-@:maincpu,program,f825b6,64,30,00
+;rongrong:******puzzle game rong rong (europe)
+rongrong:
+@:maincpu,program,614f,ea,f4,01
+@:maincpu,program,619c,1,01,01
-;zipzap:******Zip & Zap
-zipzap:
-@:maincpu,program,c80502,4e,4e,41
+;******Animalandia Jr.
+animaljr:
+@:maincpu,program,67a3,a,00,22
+@:maincpu,program,6b63,1,08,08
-galsnew:
-galsnewa:
-galsnewj:
-galsnewk:
-@:maincpu,program,c825b6,64,30,31
+;rongrongg:******puzzle game rong rong (germany)
+;rongrongj:******puzzle game rong rong (japan)
+rongrongg:
+rongrongj:
+@:maincpu,program,614e,ea,f4,01
+@:maincpu,program,619b,1,01,01
-;@s:exprraid.cpp
+;ddenlovr:******don den lover vol.1 (hong Kong)
+ddenlovr:
+@:maincpu,program,ff853a,74,82,3c
-;exprraid:******Express Raider (US set 2)
-exprraid:
-exprraidi:
-@:maincpu,program,0240,50,20,00
+;@s:dynax/dynax.cpp
-exprraidu:
-@:maincpu,program,05fd,3,15,00
-@:maincpu,program,0240,50,20,00
+;*******maya & inca
+inca:
+maya:
+mayaa:
+@:maincpu,program,7500,22,41,00
+@:maincpu,program,7741,2,fa,00
-wexpress:
-wexpressb1:
-wexpressb2:
-wexpressb3:
-@:maincpu,program,0245,3,15,00
-@:maincpu,program,0240,50,20,00
+;(sports match) (by GeoMan)
+sprtmtch:
+@:maincpu,program,7500,30,4a,00
+@:maincpu,program,7743,2,00,00
-;@s:exzisus.cpp
+cdracula:
+@:maincpu,program,c39f,6a,43,00
+@:maincpu,program,c406,1,13,13
+@:maincpu,program,cc2b,4,50,00
-;(exzisus (japan))
-;0,c9c6,1,20,20
-;0,c9ca,1,20,20
-;0,c9ce,1,05,05
-;0,c9d2,1,02,02
-;0,c9d6,1,02,02
-;0,c9da,1,05,05
-exzisus:
-exzisusa:
-exzisust:
-@:cpua,program,f840,3c,00,4f
+;@s:dynax/realbrk.cpp
-;@s:f1gp.cpp
+;realbrkk:******Billiard Academy Real Break (Korea)
+realbrk:
+realbrkj:
+realbrkk:
+realbrko:
+@:maincpu,program,ff84da,44,52,f8
-;*******(F-1 grand prix part II)
-f1gp2:
-@:maincpu,program,ff91c2,2ee,14,50
-@:maincpu,program,ffa617,3f,59,49
+;@s:edevices/diverboy.cpp
-;(f1 - grand prix) (by GeoMan)
-f1gp:
-@:maincpu,program,ff917a,2f0,14,00
+;********(diver boy)
+diverboy:
+@:maincpu,program,44715,b1,31,e9
-;@s:fantland.cpp
+;@s:edevices/fantland.cpp
;******born to fight
borntofi:
+borntofiv:
@:maincpu,program,166,8b,50,0b
@@ -5476,289 +3814,226 @@ galaxygnh:
@:maincpu,program,0202a,1,0a,0a
-;@s:fastfred.cpp
-
-;*******jump coaster
-;jumpcoast:******Jump Coaster (Taito)
-jumpcoas:
-jumpcoasa:
-jumpcoast:
-@:maincpu,program,c400,3f,00,11
-@:maincpu,program,c04b,3,00,00
-@:maincpu,program,c41c,1,05,05
-
-
-boggy84:
-boggy84b:
-@:maincpu,program,c400,45,00,11
-@:maincpu,program,c044,6,10,10
-@:maincpu,program,c04b,3,00,00
-
-
-;********(red robin)
-redrobin:
-@:maincpu,program,c743,3b,1b,00
-@:maincpu,program,c6e6,3,01,00
-
-
-fastfred:
-@:maincpu,program,c04b,3,00,00
-@:maincpu,program,c400,3f,00,11
-
-
-flyboy:
-flyboyb:
-@:maincpu,program,c400,1e,00,00
-@:maincpu,program,c430,64,1b,10
-@:maincpu,program,c04b,3,00,00
-
-
-imago:
-imagoa:
-@:maincpu,program,c521,4a,00,00
-@:maincpu,program,c565,1,01,01
+;@s:edevices/mugsmash.cpp
+;(mug smashers)
+mugsmash:
+@:maincpu,program,1c01c4,e,03,d2
+@:maincpu,program,1c00b4,4f,2e,20
-;@s:fastlane.cpp
-;(fast lane) (by GeoMan)
-fastlane:
-@:maincpu,program,32a0,50,00,00
-@:maincpu,program,3309,3,02,00
+;@s:edevices/mwarr.cpp
+;******mighty warriors
+mwarr:
+@:maincpu,program,112002,3d,00,4e
-;@s:fcombat.cpp
-;******field combat
-fcombat:
-@:maincpu,program,c600,a,00,00
-@:maincpu,program,c700,23,00,00
+;@s:edevices/pzletime.cpp
+;pzletime:******Puzzle Time (Prototype)
+pzletime:
+@:maincpu,program,f03804,3b,00,4e
-;@s:fcrash.cpp
-
-;*******(mega twins [updated])
-chikij:
-mtwins:
-mtwinsb:
-@:maincpu,program,ff12c8,190,00,00
-@:maincpu,program,ff9168,28,02,5b
-@:maincpu,program,ffe006,04,00,00
+;@s:edevices/stlforce.cpp
-;fcrash:******Final Crash (World, bootleg)
-fcrash:
-@:maincpu,program,ff850c,3c,ff,00
-@:maincpu,program,ff80a0,4,00,00
+twinbrat:
+twinbrata:
+twinbratb:
+@:maincpu,program,11200f,3a,00,4e
-;@s:fgoal.cpp
+;(steel force)
+stlforce:
+@:maincpu,program,105772,32,4e,00
+@:maincpu,program,105784,1,02,02
-;*******Field Goal
-fgoal:
-fgoala:
-@:maincpu,program,89,9,00,00
+;@s:edevices/twins.cpp
-;@s:finalizr.cpp
+;******twins
+twinsed1:
+@:maincpu,program,4cc0,60,09,00
+@:maincpu,program,4d1d,1,01,01
-finalizra:
-finalizrb:
-@:maincpu,program,3c08,1,00,00
-@:maincpu,program,3c09,1,02,02
-@:maincpu,program,3c0a,2,00,00
-@:maincpu,program,3bc0,27,00,12
+spider:
+@:maincpu,program,6f6c,13,50,00
+@:maincpu,program,e07c,2c,41,00
+@:maincpu,program,e542,b,01,01
+@:maincpu,program,6f7d,1,27,27
-finalizr:
-@:maincpu,program,3c08,1,00,00
-@:maincpu,program,3c09,1,03,03
-@:maincpu,program,3c0a,2,00,00
-@:maincpu,program,3bc0,27,00,12
+;@s:efo/cidelsa.cpp
-;@s:firetrap.cpp
+destryer:
+@:cdp1802,program,20e5,2,ff,ff
-firetrapbl:
-firetrapj:
-@:maincpu,program,ca47,5d,02,18
+altair:
+@:cdp1802,program,30e5,2,00,00
+@:cdp1802,program,3008,1,58,58
-firetrap:
-firetrapa:
-@:maincpu,program,ca47,5d,02,25
+;@s:eolith/eolith.cpp
-;@s:firetrk.cpp
+landbrka:
+@:maincpu,program,400293f5,4b,00,20
-;********(monte carlo)
-montecar:
-@:maincpu,program,b6,1,00,00
+landbrk:
+@:maincpu,program,400284fd,4b,00,20
-;(super bug) (by GeoMan)
-superbug:
-@:maincpu,program,c,1,0,0
+landbrkb:
+@:maincpu,program,40028ab1,4b,00,20
-;(fire truck)
-firetrk:
-@:maincpu,program,28,1,06,06
+ironfort:
+@:maincpu,program,400177c0,24,43,20
+@:maincpu,program,4002852c,14,00,10
+@:maincpu,program,40028578,4,00,30
-;@s:fitfight.cpp
-;******(the history of martial arts)
-histryma:
-@:maincpu,program,e02be0,28,41,10
+ironfortc:
+@:maincpu,program,40016338,24,43,20
+@:maincpu,program,40027d20,14,00,10
+@:maincpu,program,40027d6c,4,00,30
-;@s:flipjack.cpp
+;candy:** you must wait untill hiscore table has displayed before starting a game **
+candy:
+@:maincpu,program,40025660,f0,41,02
-flipjack:
-@:maincpu,program,6500,f0,00,4f
-@:maincpu,program,6061,6,00,00
+;@s:excellent/aquarium.cpp
-;@s:flkatck.cpp
+;********(aquarium (japan))
+aquarium:
+@:maincpu,program,ff904c,28,49,e8
-;(ka)
-flkatck:
-flkatcka:
-mx5000:
-@:maincpu,program,3a00,50,00,14
-@:maincpu,program,395e,3,00,90
+;@s:excellent/gcpinbal.cpp
-;@s:flower.cpp
+pwrflip:
+@:maincpu,program,ff231a,6c,00,00
+@:maincpu,program,ff000e,6d,00,00
+@:maincpu,program,ff2384,1,4f,4f
+@:maincpu,program,ff0079,1,4f,4f
-flower:
-flowerj:
-@:mastercpu,program,d060,37,00,20
-@:mastercpu,program,c00f,3,00,00
-@:mastercpu,program,c010,1,30,30
+;(grand cross) (by GeoMan)
+gcpinbal:
+@:maincpu,program,ff2318,2,00,02
+@:maincpu,program,ff231a,6e,81,00
+@:maincpu,program,ff000e,70,00,00
-;@s:flstory.cpp
-;(fairyland story)
-flstory:
-flstoryj:
-@:maincpu,program,e74e,23,00,44
+;@s:exidy/circus.cpp
+circus:
+circuso:
+springbd:
+@:maincpu,program,0036,2,00,00
-;(onna sansirou - typhoon gal (set 1)) and clones (by GeoMan)
-onna34ro:
-onna34roa:
-@:maincpu,program,e1d7,82,00,65
-@:maincpu,program,e188,3,00,01
+crash:
+crasha:
+smash:
+@:maincpu,program,000f,2,00,00
-;rumba:****** not working - mame 040u3 debug prob ???
-rumba:
-@:maincpu,program,e18a,3,40,01
-@:maincpu,program,c37c,1,20,20
-@:maincpu,program,c3bc,1,31,31
-@:maincpu,program,c3fc,1,32,32
-@:maincpu,program,c43c,1,33,33
-@:maincpu,program,c47c,1,34,34
-@:maincpu,program,c4bc,1,30,30
-@:maincpu,program,e005,1,5d,5d
+;(rip cord) (by GeoMan)
+ripcord:
+@:maincpu,program,36,2,0,0
-;@s:foodf.cpp
-;(food fight)
-foodf:
-foodf1:
-foodf2:
-foodfc:
-@:maincpu,program,17ba8,2d,4a,45
-@:maincpu,program,17f64,3c,00,2f
-@:maincpu,program,1860e,7,35,a5
+;@s:exidy/exidy.cpp
+mtrap:
+mtrap2:
+mtrap3:
+mtrap4:
+mtrap4g:
+mtrapb:
+mtrapb2:
+@:maincpu,program,0380,23,00,48
-;@s:freekick.cpp
-;*******(gigas mark II)(bootleg)(By Firebrand)
-gigasm2:
-gigasm2b:
-@:maincpu,program,c0a0,4d,00,20
+venture:
+venture4:
+venture5a:
+venture5b:
+@:maincpu,program,0380,23,00,53
-;*******counter Run (bootleg set 1)
-countrunb:
-@:maincpu,program,d0d8,127,00,48
+panzer:
+phantom:
+phantoma:
+rallys:
+rallysa:
+spectar:
+spectar1:
+spectarrf:
+targ:
+@:maincpu,program,00ae,2,00,10
-;perfect billiards (by GeoMan)
-pbillrd:
-pbillrds:
-pbillrdsa:
-@:maincpu,program,c940,a0,00,40
+hardhat:
+pepper2:
+pepper27:
+@:maincpu,program,0360,23,00,11
-;******free kick (bootleg)
-freekick:
-freekicka:
-freekickb1:
-freekickb2:
-@:maincpu,program,d100,4d,00,21
+sidetrac:
+@:maincpu,program,000f,2,00,00
-;gigas:******Gigas
-gigas:
-gigasb:
-@:maincpu,program,cb10,4d,80,20
+;*******fax & fax (alt questions)
+fax:
+fax2:
+@:maincpu,program,02b4,15e,00,00
-oigas:
-@:maincpu,program,cb10,4d,90,59
+;@s:exidy/starfire.cpp
+;******star fire (set 2)
+starfirea:
+@:maincpu,program,82ba,aa,00,00
-;@s:funkybee.cpp
-;(sky lancer) (by GeoMan)
-;skylancre:******sky lancer (esco trading co licence)
-skylancr:
-skylancre:
-@:maincpu,program,82e3,2,00,01
-@:maincpu,program,82e5,22,00,00
+;(fire one) (by GeoMan)
+fireone:
+@:maincpu,program,831a,5a,00,24
-;(funky bee) (by GeoMan)
-funkybee:
-funkybeeb:
-@:maincpu,program,828b,2d,00,0c
+;******Star Fire 2
+starfir2:
+@:maincpu,program,82a9,6a,00,00
-;@s:funkyjet.cpp
+;(star fire)
+starfire:
+@:maincpu,program,82ba,a5,00,00
-;funkyjetj:******Funky Jet (Japan)
-funkyjet:
-funkyjeta:
-funkyjetb:
-funkyjetj:
-@:maincpu,program,143a01,20,00,10
-@:maincpu,program,143a21,140,12,00
+;@s:exidy/victory.cpp
-;(sotsugyo shousho) (by GeoMan)
-sotsugyo:
-@:maincpu,program,14269c,10,00,32
-@:maincpu,program,1426ac,50,04,00
+;**** this saves victorys top 10 todays scores (nvram takes care of the rest)
+victorba:
+victory:
+@:maincpu,program,f01a,46,56,00
+@:maincpu,program,f05b,1,54,54
-;@s:funybubl.cpp
+;@s:f32/crospang.cpp
-;funybublc:******Funny Bubble (Comad version)
-funybubl:
-funybublc:
-@:maincpu,program,e005,99,4c,00
-@:maincpu,program,e09a,1,05,05
+pitapat:
+@:maincpu,program,301c6f,51,06,44
-;@s:fuukifg2.cpp
+;@s:fuuki/fuukifg2.cpp
;(go go! mile smile)
gogomile:
@@ -5773,7 +4048,15 @@ pbancho:
@:maincpu,program,400b41,3,05,32
-;@s:fuukifg3.cpp
+;@s:fuuki/fuukifg3.cpp
+
+;asurabus:******Asura Buster - Eternal Warriors (Japan)
+asurabus:
+asurabusj:
+asurabusja:
+asurabusjr:
+@:maincpu,program,40326d,132,05,14
+
;*******asura blade - sword of dynasty (japan)
asurabld:
@@ -5785,13 +4068,22 @@ asurabld:
@:maincpu,program,4036aa,4,00,00
-;asurabus:******Asura Buster - Eternal Warriors (Japan)
-asurabus:
-asurabusa:
-@:maincpu,program,40326d,132,05,14
+;@s:gaelco/blmbycar.cpp
+;watrball:******Water Balls
+watrball:
+@:maincpu,program,fed53c,4a,4e,00
+
+
+;(blomby car)
+;** highscore only saves , other course highscores are not possible **
+;** as they don`t load in until you finish a course **
+blmbycar:
+blmbycaru:
+@:maincpu,program,fecdbc,117,4e,08
-;@s:gaelco.cpp
+
+;@s:gaelco/gaelco.cpp
;(biomechanical toy (unprotected))
;** you must let the highscore display in attract mode before starting a game **
@@ -5823,7 +4115,7 @@ maniacsp:
@:maincpu,program,ff713e,64,50,00
-;@s:gaelco2.cpp
+;@s:gaelco/gaelco2.cpp
;*******(world rally 2: twin racing)(By Firebrand)
wrally2:
@@ -5856,130 +4148,108 @@ bangj:
@:maincpu,program,fe5a50,f0,30,01
-;@s:gaiden.cpp
+;@s:gaelco/splash.cpp
-;fixes thanks to takasaki
-raiga:
-stratof:
-@:maincpu,program,060082,8c,00,20
-@:maincpu,program,060110,4,00,00
-
-
-;(ninja gaiden (world)) clones
-gaiden:
-mastninj:
-ryukendn:
-ryukendna:
-shadoww:
-shadowwa:
-@:maincpu,program,62e34,d0,2e,00
-@:maincpu,program,62e47,1,09,09
+;splash10:******Splash! (Ver. 1.0 World)
+;******Painted Lady (Splash) (Ver 1.3 US)
+paintlad:
+splash:
+splash10:
+@:maincpu,program,ffca10,50,00,00
+@:maincpu,program,ffca5e,1,27,27
-;(tecmo knight) and clones (by GeoMan)- hiscores update after hiscore table is displayed in attract mode
-tknight:
-wildfang:
-wildfangs:
-@:maincpu,program,609ce,28,00,1a
+;*******The Return of Lady Frog & The Return of Lady Frog (set 2)
+roldfrog:
+roldfroga:
+@:maincpu,program,ffca10,50,00,00
+@:maincpu,program,ffca5b,1,0f,0f
-;@s:galaga.cpp
+;@s:gaelco/thoop2.cpp
-battles2:
-@:maincpu,program,8510,4d,00,50
-@:maincpu,program,8024,3,00,00
-@:maincpu,program,8025,1,40,40
+thoop2:
+thoop2a:
+@:maincpu,program,fee1fa,9a,00,44
-;digdugat1:******dig dug (atari, rev1)
-digdug:
-digdug1:
-digdugat:
-digdugat1:
-dzigzag:
-@:maincpu,program,89a0,25,01,01
+;@s:gaelco/wrally.cpp
+;wrally:******world rally (set1)
+;wrallya:******world rally (set 2)
+;wrallyb:******world rally (us, 930217)
+wrally:
+wrallya:
+wrallyb:
+@:maincpu,program,fef558,288,5a,ff
-gatsbee:
-nebulbee:
-@:maincpu,program,8a20,2d,00,0e
-@:maincpu,program,83ed,6,00,24
+;@s:galaxian/fastfred.cpp
-xeviousb:
-xeviousc:
-@:maincpu,program,8510,46,00,14
-@:maincpu,program,8024,3,00,00
-@:maincpu,program,8025,1,40,40
+;*******jump coaster
+;jumpcoast:******Jump Coaster (Taito)
+jumpcoas:
+jumpcoasa:
+jumpcoast:
+@:maincpu,program,c400,3f,00,11
+@:maincpu,program,c04b,3,00,00
+@:maincpu,program,c41c,1,05,05
-galaga:
-galaga84: ; missing
-galagab2: ; missing
-galagads: ; missing
-galagamf:
-galagamk:
-galagamw:
-galagao:
-gallag:
-@:maincpu,program,8a20,2d,00,18
-@:maincpu,program,83ed,6,00,24
+boggy84:
+boggy84b:
+@:maincpu,program,c400,45,00,11
+@:maincpu,program,c044,6,10,10
+@:maincpu,program,c04b,3,00,00
-;sxeviousj:******Super Xevious (Japan)
-battles:
-sxevious:
-sxeviousj:
-xevios:
-xevious:
-xeviousa:
-@:maincpu,program,8510,4d,00,24
-@:maincpu,program,8024,3,00,00
-@:maincpu,program,8025,1,40,40
+;********(red robin)
+redrobin:
+@:maincpu,program,c743,3b,1b,00
+@:maincpu,program,c6e6,3,01,00
-;(bosconian)
-; ** highscore beaten at 20,000 every time **
-; ** no way around this **
-; ** highscore table ok though !! ,0) **
-bosco:
-boscomd:
-boscomdo:
-boscoo:
-boscoo2:
-@:maincpu,program,8bc5,f,17,18
-@:maincpu,program,8be4,10,00,00
-@:maincpu,program,885c,4,00,00
-@:maincpu,program,8060,8,00,02
+fastfred:
+@:maincpu,program,c04b,3,00,00
+@:maincpu,program,c400,3f,00,11
-;@s:galastrm.cpp
+flyboy:
+flyboyb:
+@:maincpu,program,c400,1e,00,00
+@:maincpu,program,c430,64,1b,10
+@:maincpu,program,c04b,3,00,00
-;galastrm:******Galactic Storm (Japan)
-galastrm:
-@:maincpu,program,202100,190,01,61
+imago:
+imagoa:
+@:maincpu,program,c521,4a,00,00
+@:maincpu,program,c565,1,01,01
-;@s:galaxia.cpp
-galaxia:
-galaxiaa:
-galaxiab:
-galaxiac:
-@:maincpu,program,1d1d,3,00,00
-@:maincpu,program,1c91,1,55,55
+;@s:galaxian/galaxian.cpp
+;******Big Kong
+bigkong:
+bigkonggx:
+@:maincpu,program,6109,a1,00,92
+@:maincpu,program,60b8,3,50,00
-;@s:galaxian.cpp
;mooncmw:******Moon War (Moon Cresta bootleg)
+ataqandr:
eagle:
eagle2:
eagle3:
fantazia:
+floritas:
+floritasm:
+meteora:
mooncmw:
mooncptc:
+mooncrecm:
mooncreg:
+mooncreg2:
mooncrs2:
mooncrs3:
mooncrs4:
@@ -5990,64 +4260,49 @@ mooncrst:
mooncrstu:
mooncrstuk:
mooncrstuku:
+mooncrstuu:
+mouncrst:
+sirio2:
smooncrs:
spcdrag:
-spcdraga:
sstarcrs:
starfgmc:
stera:
@:maincpu,program,8042,54,00,24
-;amidar:[Special thanks to Cananas for enhancing this entry]
-amidar:
-amidar1:
-amidarb:
-amidaro:
-amidaru:
-amigo:
-amigo2:
-scobra:
-scobrab:
-scobrae2:
-scobrag:
-scobraggi:
-scobras:
-scobrase:
-@:maincpu,program,8200,1e,00,01
-@:maincpu,program,80a8,03,00,01
-
-
-;(omega)
-omega:
-omegaa:
-omegab:
-theend:
-theends:
-@:maincpu,program,c060,4d,00,20
-
-
;(zero time)
+;(devil fish) parent
asideral:
astrians:
-devilfsg:
+devilfsh:
+devilfshg:
+devilfshgb:
+galaktron:
galap1:
galap4:
galapx:
+galartic:
galaxbsf:
galaxbsf2:
+galaxcirsa:
galaxian:
galaxiana:
galaxianbl:
galaxianbl2:
+galaxianbl3:
+galaxianem:
galaxiani:
galaxianm:
galaxianmo:
+galaxianrp:
galaxiant:
galaxrcgg:
galaxrf:
galaxrfgg:
+galaxyx:
galemp:
+galkamika:
galturbo:
gteikoku:
gteikokub:
@@ -6058,39 +4313,175 @@ pajaroes:
redufo:
redufob:
redufob2:
+redufob3:
skyraidr:
spacbat2:
spacbatt:
spacempr:
superg:
+supergs:
swarm:
uniwars:
uniwarsa:
zerotime:
+zerotimea:
zerotimed:
zerotimemc:
@:maincpu,program,40a8,3,00,00
-pacmanblv:
+;amidar:[Special thanks to Cananas for enhancing this entry]
+amidar:
+amidar1:
+amidarb:
+amidaro:
+amidaru:
+amigo:
+amigo2:
+mandinka:
+scobra:
+scobrab:
+scobrae2:
+scobrag:
+scobraggi:
+scobras:
+scobrase:
+@:maincpu,program,8200,1e,00,01
+@:maincpu,program,80a8,03,00,01
+
+
+frogger:
+froggeram:
+froggermc:
+froggers1:
+froggers2:
+froggers3:
+froggert:
+quaak:
+@:maincpu,program,83f1,a,63,01
+@:maincpu,program,83ef,2,63,04
+
+
+sbhoei:
+sbhoeia:
+@:maincpu,program,8409,09,00,00
+@:maincpu,program,91a1,01,00,00
+@:maincpu,program,91c1,01,00,00
+@:maincpu,program,91e1,01,00,00
+@:maincpu,program,9201,01,00,00
+@:maincpu,program,9221,01,00,00
+@:maincpu,program,9241,01,00,00
+@delay=0.5
+
+
+monsterz:
+monsterza:
+@:maincpu,program,40a8,03,00,00
+@:maincpu,program,49a3,01,00,00
+@:maincpu,program,49c3,01,00,00
+@:maincpu,program,49e3,01,10,10
+@:maincpu,program,4a03,01,10,10
+@:maincpu,program,4a23,01,10,10
+@:maincpu,program,4a43,01,10,10
+
+
+pacmanblci:
+@:maincpu,program,4288,3,70,01
+@:maincpu,program,5180,1,40,40
+@:maincpu,program,51a0,1,40,40
+@:maincpu,program,51c0,1,40,40
+@:maincpu,program,51e0,1,40,40
+@:maincpu,program,5200,1,40,40
+@:maincpu,program,5220,1,40,40
+@:maincpu,program,4087,1,01,01
+
+
+ghostmun:
+komemokos:
+@:maincpu,program,4288,3,00,00
+@:maincpu,program,5180,1,40,40
+@:maincpu,program,51a0,1,40,40
+@:maincpu,program,51c0,1,40,40
+@:maincpu,program,51e0,1,40,40
+@:maincpu,program,5200,1,40,40
+@:maincpu,program,5220,1,40,40
+@:maincpu,program,4087,1,01,01
+
+
+guttangt:
+guttangts3:
+@:maincpu,program,4700,78,00,3e
+@:maincpu,program,41c6,3,00,01
+
+
+jumpbug:
+jumpbugb:
+olibug:
+@:maincpu,program,4222,15,00,97
+@:maincpu,program,4208,6,00,00
+
+
+namenayo:
+@:maincpu,program,d0ba,6,00,00
+
+
+pacmanblc:
@:maincpu,program,4288,03,00,00
-@:maincpu,program,426c,01,06,06
@:maincpu,program,5180,01,40,40
@:maincpu,program,51a0,01,40,40
@:maincpu,program,51c0,01,40,40
@:maincpu,program,51e0,01,40,40
@:maincpu,program,5200,01,40,40
@:maincpu,program,5220,01,40,40
+@delay=1.5
+
+
+theend:
+theends:
+@:maincpu,program,43c0,0f,00,00
+@:maincpu,program,40a8,03,00,00
+@:maincpu,program,4da1,01,00,00
+@:maincpu,program,4dc1,01,00,00
+@:maincpu,program,4de1,01,10,10
+@:maincpu,program,4e01,01,10,10
+@:maincpu,program,4e21,01,10,10
+@:maincpu,program,4e41,01,10,10
+@delay=3.5
+
+
+;(omega)
+omega:
+omegaa:
+omegab:
+@:maincpu,program,c060,4d,00,20
+
+
+theendss:
+@:maincpu,program,43c0,f,00,00
+@:maincpu,program,40a8,3,00,00
amidars:
mandinga:
mandingac:
+mandingaeg:
mandingarf:
+olmandingo:
@:maincpu,program,4200,1e,00,01
@:maincpu,program,40a8,03,00,01
+pacmanblv:
+@:maincpu,program,4288,03,00,00
+@:maincpu,program,426c,01,06,06
+@:maincpu,program,5180,01,40,40
+@:maincpu,program,51a0,01,40,40
+@:maincpu,program,51c0,01,40,40
+@:maincpu,program,51e0,01,40,40
+@:maincpu,program,5200,01,40,40
+@:maincpu,program,5220,01,40,40
+
+
froggervd:
@:maincpu,program,43ef,0d,63,05
@@ -6145,17 +4536,6 @@ losttombh:
@:maincpu,program,8110,50,03,00
-ghostmun:
-@:maincpu,program,4288,3,00,00
-@:maincpu,program,5180,1,40,40
-@:maincpu,program,51a0,1,40,40
-@:maincpu,program,51c0,1,40,40
-@:maincpu,program,51e0,1,40,40
-@:maincpu,program,5200,1,40,40
-@:maincpu,program,5220,1,40,40
-@:maincpu,program,4087,1,01,01
-
-
;(sky base)
;** if you beat the top score don`t exit game until it is displaying in **
;** the top centre of the screen **
@@ -6259,12 +4639,6 @@ anteater:
@:maincpu,program,80ef,3c,01,4c
-jumpbug:
-jumpbugb:
-@:maincpu,program,4222,15,00,97
-@:maincpu,program,4208,6,00,00
-
-
moonal2:
moonal2b:
@:maincpu,program,80a8,3,00,00
@@ -6425,16 +4799,6 @@ exodus:
@:maincpu,program,55e1,1,10,10
-frogger:
-froggeram:
-froggermc:
-froggers1:
-froggers2:
-quaak:
-@:maincpu,program,83f1,a,63,01
-@:maincpu,program,83ef,2,63,04
-
-
explorer:
@:maincpu,program,4200,1e,49,01
@:maincpu,program,40a8,03,00,01
@@ -6484,7 +4848,92 @@ ladybugg:
@:maincpu,program,5884,64,01,47
-;@s:galaxold.cpp
+;******bongo
+bongo:
+@:maincpu,program,8300,11,0,15
+@:maincpu,program,8301,1,05,05
+
+
+;*******ozon1
+ozon1:
+@:maincpu,program,4047,3,00,00
+@:maincpu,program,4300,4e,01,10
+
+
+;******mighty monkey
+;mimonsco:******mighty monkey (bootleg on super cobra hardware)
+mimonkey:
+mimonkeyug:
+mimonsco:
+@:maincpu,program,84a1,2,d0,07
+@:maincpu,program,8981,1,00,00
+@:maincpu,program,89a1,1,00,00
+@:maincpu,program,89c1,1,00,00
+@:maincpu,program,89e1,1,00,00
+@:maincpu,program,8a01,1,02,02
+@:maincpu,program,8a21,1,10,10
+@:maincpu,program,8a41,1,10,10
+@:maincpu,program,8920,1,10,10
+@:maincpu,program,8940,1,10,10
+@:maincpu,program,8960,1,15,15
+@:maincpu,program,8980,1,22,22
+@:maincpu,program,89a0,1,1f,1f
+@:maincpu,program,89c0,1,13,13
+@:maincpu,program,89e0,1,23,23
+@:maincpu,program,8a00,1,10,10
+@:maincpu,program,8a20,1,18,18
+@:maincpu,program,8a40,1,17,17
+@:maincpu,program,8a60,1,19,19
+@:maincpu,program,8a80,1,18,18
+@:maincpu,program,8aa0,1,10,10
+@:maincpu,program,8ac0,1,10,10
+@:maincpu,program,8ae0,1,10,10
+
+
+;******mighty monkey (bootleg on scramble hardware)
+;** very dodgy hiscore saving, possibly because of it been a **
+;** poorly put together bootleg **
+mimonscr:
+@:maincpu,program,44a1,2,d0,07
+@:maincpu,program,4981,1,00,00
+@:maincpu,program,49a1,1,00,00
+@:maincpu,program,49c1,1,00,00
+@:maincpu,program,49e1,1,00,00
+@:maincpu,program,4a01,1,02,02
+@:maincpu,program,4a21,1,10,10
+@:maincpu,program,4a41,1,10,10
+@:maincpu,program,4920,1,10,10
+@:maincpu,program,4940,1,10,10
+@:maincpu,program,4960,1,15,15
+@:maincpu,program,4980,1,22,22
+@:maincpu,program,49a0,1,1f,1f
+@:maincpu,program,49c0,1,13,13
+@:maincpu,program,49e0,1,23,23
+@:maincpu,program,4a00,1,10,10
+@:maincpu,program,4a20,1,18,18
+@:maincpu,program,4a40,1,17,17
+@:maincpu,program,4a60,1,19,19
+@:maincpu,program,4a80,1,18,18
+@:maincpu,program,4aa0,1,10,10
+@:maincpu,program,4ac0,1,10,10
+@:maincpu,program,4ae0,1,10,10
+
+
+;@s:galaxian/galaxian_rockclim.cpp
+
+;*******rock climber
+rockclim:
+@:maincpu,program,80d9,15,03,00
+@:maincpu,program,80eb,1,03,03
+
+
+;@s:galaxian/galaxold.cpp
+
+hunchbkg:
+@:maincpu,program,1c0a,50,1b,00
+@:maincpu,program,1c0f,1,00,00
+@:maincpu,program,1c0d,1,20,20
+
;(tazz-mania)
;tazzmang:******Tazz-Mania (Galaxian Hardware)
@@ -6512,28 +4961,11 @@ dkongjrmc:
@:maincpu,program,60b8,3,00,01
-hunchbkg:
-@:maincpu,program,1c0a,4f,1b,00
-@:maincpu,program,1c0f,1,00,00
-@:maincpu,program,1c0d,1,20,20
-
-
froggerv:
@:maincpu,program,83f1,0a,42,01
@:maincpu,program,83ef,2,42,04
-guttangt:
-@:maincpu,program,4700,78,00,3e
-@:maincpu,program,41c6,3,00,01
-
-
-;******bongo
-bongo:
-@:maincpu,program,8300,11,0,15
-@:maincpu,program,8301,1,05,05
-
-
;Video Hustler and clones (by GeoMan)
billiard:
hustlerb:
@@ -6576,669 +5008,1352 @@ hexpoola:
@:maincpu,program,1db8,45,1d,13
-;*******ozon1
-ozon1:
-@:maincpu,program,4047,3,00,00
-@:maincpu,program,4300,4e,01,10
+;@s:galaxian/scobra.cpp
+;(video hustler)
+hustler:
+hustlerb3:
+hustlerb4:
+hustlerb5:
+@:maincpu,program,84c0,f,00,00
+@:maincpu,program,80a8,3,00,02
+@:maincpu,program,8003,1,0a,0a
-;*******rock climber
-rockclim:
-@:maincpu,program,80d9,15,03,00
-@:maincpu,program,80eb,1,03,03
+aponow:
+rescue:
+@:maincpu,program,80f3,3c,01,4d
-;@s:galivan.cpp
-galivan:
-galivan2:
-galivan3:
-@:maincpu,program,e14f,82,00,20
-@:maincpu,program,e28e,3,00,00
+;(minefield) (by GeoMan)
+minefld:
+@:maincpu,program,80f3,3c,01,43
-ninjemak:
-@:maincpu,program,e469,41,00,20
-@:maincpu,program,e4ac,3,00,00
+stratgys:
+stratgyx:
+strongx:
+@:maincpu,program,80a8,3,00,00
+@:maincpu,program,81c0,1e,00,00
+@:maincpu,program,81dc,1,13,13
-dangar:
-dangara:
-dangarb:
-dangarj:
-@:maincpu,program,e209,82,00,20
-@:maincpu,program,e394,3,00,00
+;(dark planet) (by GeoMan)
+darkplnt:
+@:maincpu,program,80b8,1e,00,4a
+@:maincpu,program,80f4,1e,00,51
-youma:
-youma2:
-youmab:
-youmab2:
-@:maincpu,program,e469,41,00,3f
-@:maincpu,program,e4ac,3,00,00
+;@s:galaxian/scramble.cpp
+;scramb2:******Scramble (bootleg)
+;scramble:[Special thanks to Cananas for enhancing this entry]
+800fath:
+800fatha:
+astroamb:
+bomber:
+kamikazesp:
+knockout:
+knockoutb:
+knockoutc:
+mariner:
+offensiv:
+scramb2:
+scramb3:
+scramblb:
+scramble:
+scramblebb:
+scramblebf:
+scrambleo:
+scrambler:
+scrambles:
+scrambles2:
+scrambp:
+scramce:
+scrampt:
+scramrf:
+spcmission:
+spctrek:
+strfbomb:
+triplep:
+triplepa:
+@:maincpu,program,4200,1e,00,01
+@:maincpu,program,40a8,03,00,01
-;@s:galpanic.cpp
-galpanicb:
-@:maincpu,program,53e5b2,64,30,31
+mars:
+marsarf:
+@:maincpu,program,4200,12,00,01
+@:maincpu,program,40a8,3,00,01
+@:maincpu,program,4a41,1,10,10
+@:maincpu,program,4a21,1,01,01
+@:maincpu,program,4a01,1,00,00
+@:maincpu,program,49e1,1,00,00
+@:maincpu,program,49c1,1,00,00
+@:maincpu,program,49a1,1,00,00
-;*******Gals Panic (set 3)
-galpanica:
-@:maincpu,program,c825b6,64,30,31
+hunchbgb:
+hunchbks:
+hunchbks2:
+@:maincpu,program,3c0a,50,1b,00
+@:maincpu,program,3c25,1,20,20
-galpanic:
-@:maincpu,program,53e728,50,30,31
+hotshock:
+hotshockb:
+@:maincpu,program,40a8,3,00,05
+@:maincpu,program,4200,1e,0a,02
-;@s:galspnbl.cpp
+cavelon:
+@:maincpu,program,42ff,4,00,00
+@:maincpu,program,4304,0d,00,15
-;(hot pinball)
-hotpinbl:
-@:maincpu,program,801780,30,00,09
-@:maincpu,program,800007,1,03,03
+;(new sinbad 7) (by GeoMan)
+newsin7:
+@:maincpu,program,43d3,48,00,10
+@:maincpu,program,413d,3,0,0
-galspnbl:
-@:maincpu,program,701780,32,00,00
-@:maincpu,program,700007,1,a3,a3
+;mrkougb2:******Mr. Kougar (bootleg Set 2)
+;mrkougar2:******mr.kougar (earlier)
+mrkougar:
+mrkougar2:
+mrkougb:
+mrkougb2:
+@:maincpu,program,40a6,12,00,00
+@:maincpu,program,4a61,1,10,10
+@:maincpu,program,4a41,1,10,10
+@:maincpu,program,4a21,1,10,10
+@:maincpu,program,4a01,1,10,10
+@:maincpu,program,49e1,1,10,10
+@:maincpu,program,49c1,1,10,10
-;@s:gameplan.cpp
-;(megatack) (by GeoMan)
-megatack:
-megatacka:
-@:maincpu,program,00c4,f,00,1a
+;******a.d. 2083
+ad2083:
+@:maincpu,program,4600,64,0a,04
+@:maincpu,program,40a8,3,00,06
-;*******pirate treasure
-piratetr:
-@:maincpu,program,2dc,4f,55,44
+;@s:gametron/gotya.cpp
+;(got-ya (12/241981,prototype ?)) - ADDED CLONE
+gotya:
+thehand:
+@:maincpu,program,5021,3,00,01
-;(kaos) (by GeoMan)
-kaos:
-@:maincpu,program,03c8,30,84,44
+;@s:gottlieb/gottlieb.cpp
-;(leprechaun) and clones (by GeoMan)
-;** let game display hiscore table a few times in attract mode before **
-;** starting a game **
-leprechn:
-leprechp:
-potogold:
-@:maincpu,program,02ca,50,55,00
+;*** daily scores saved, others saved in nvram !!! Don't Reset game (F3) !!! ***
+krull:
+@:maincpu,program,b3d,103,7f,00
+@delay=4
-;(killer comet)
-killcom:
-@:maincpu,program,88,2,47,00
+reactor:
+@:maincpu,program,04d8,80,0a,00
+@:maincpu,program,05bc,80,12,00
-;(challenger)
-challeng:
-@:maincpu,program,cc,f,00,1f
+;@s:handheld/hh_sm510.cpp
+tkarnov:
+@:maincpu,data,e,2,0,0,f
-;@s:gaplus.cpp
-galaga3:
-galaga3a:
-galaga3b:
-galaga3c:
-galaga3m:
-gaplus:
-gaplusa:
-gaplusd:
-gaplust:
-@:maincpu,program,03ed,08,30,20
-@:maincpu,program,0900,a0,20,00
-@:maincpu,program,09b6,03,00,00
+tbatman:
+@:maincpu,data,1d,3,0,0,f
-;@s:gauntlet.cpp
+tvindictr:
+@:maincpu,data,56,3,0,0,f
-; note saves last level completed and high scores
-gauntlet:
-gauntlet2p:
-gauntletr4:
-gauntletr5:
-gauntletr7:
-gauntletr9:
-gauntlets:
-@:maincpu,program,904010,2,0,7
-@:maincpu,program,904de8,c8,00,50
+;Donkey Kong Jr (New Wide Screen)
+gnw_dkjr:
+@:maincpu,data,11,6,0,0
+@:maincpu,data,51,6,0,0
-; note saves last level completed and high scores
-gaunt2:
-@:maincpu,program,904010,2,0,5
-@:maincpu,program,904de8,c8,00,e3
+;@s:igs/igs011.cpp
-;@s:gb.cpp
+;vbowlj:******Virtua Bowling (Japan, V100JCM)
+vbowl:
+vbowlj:
+@:maincpu,program,101c32,44,00,2e
-gameboy,tetris:
-@:maincpu,program,d654,32,0,0,ff
+;@s:igs/iqblock.cpp
-;@s:gberet.cpp
+;(iq-block)
+iqblock:
+@:maincpu,program,f149,27,41,00
+@:maincpu,program,f1a4,3,00,00
+@:maincpu,program,f16e,1,13,13
-gberet:
-gberetb:
-mrgoemon:
-rushatck:
-@:maincpu,program,d900,3c,03,13
-@:maincpu,program,db06,03,03,00
+;*******grand tour
+grndtour:
+@:maincpu,program,f182,29,41,00
+@:maincpu,program,f1dd,4,00,00
-;@s:gcpinbal.cpp
-pwrflip:
-@:maincpu,program,ff231a,6c,00,00
-@:maincpu,program,ff000e,6d,00,00
-@:maincpu,program,ff2384,1,4f,4f
-@:maincpu,program,ff0079,1,4f,4f
+;@s:igs/pgm.cpp
+;DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver)
+; new version default, for old version swap the ; below
+;@:maincpu,program,803824,8c,00,02
+;dodonpachi dai-ou-jou (black label) -- new version game is the default hiscore.dat version !!
+;ddpdojblk:**** you choose between old/new game on startup swap the ; on the version you want. ****
+;*** new version (default) - if you use other version you must delete .hi file
+;0,803824,8c,00,02 ;*** old version - if you use other version you must delete .hi file
+ddpdojblk:
+ddpdojblka:
+ddpdojblkb:
+@:maincpu,program,803824,8c,01,06
-;(grand cross) (by GeoMan)
-gcpinbal:
-@:maincpu,program,ff2318,2,00,02
-@:maincpu,program,ff231a,6e,81,00
-@:maincpu,program,ff000e,70,00,00
+ddp3:
+ddpdoj:
+ddpdoja:
+ddpdojb:
+ddpdojp:
+@:maincpu,program,80381a,8c,00,02
-;@s:gijoe.cpp
-gijoe:
-gijoea:
-gijoeea:
-gijoej:
-gijoeu:
-@:maincpu,program,18f900,f8,41,01
+orlegend111c:
+orlegend111t:
+@:maincpu,program,81191e,d4,49,b0
-;@s:ginganin.cpp
+ket:
+keta:
+ketb:
+@:maincpu,program,80101c,80,00,00
+@:maincpu,program,801093,1,30,30
-;(ginga ninkyouden) (by GeoMan)
-;ginganina:******Ginga NinkyouDen (set 2)
-ginganin:
-ginganina:
-@:maincpu,program,20291,50,00,59
-@:maincpu,program,202e1,83,20,09
-@:maincpu,program,2011d,3,00,00
+photoy2k102j:
+photoy2k104:
+@:maincpu,program,80a306,1,12,12
+@:maincpu,program,813452,78,49,40
+@:maincpu,program,833452,78,49,40
+@:maincpu,program,853452,78,49,40
+@:maincpu,program,873452,78,49,40
+@:maincpu,program,893452,78,49,40
+@:maincpu,program,8b3452,78,49,40
+@:maincpu,program,8d3452,78,49,40
+@:maincpu,program,8f3452,78,49,40
-;@s:gng.cpp
-gngprot:
-@:maincpu,program,1508,5a,15,72
-@:maincpu,program,00d0,4,00,00
+espgal:
+@:maincpu,program,80107e,80,00,00
+@:maincpu,program,8010f5,1,30,30
-diamond:
-@:maincpu,program,1200,80,4b,00
+;********(oriental legend)
+orlegend:
+orlegendc:
+orlegende:
+@:maincpu,program,811946,d4,49,b0
-gng:
-gnga:
-gngbl:
-gngblita:
-gngc:
-gngt:
-makaimur:
-makaimurc:
-makaimurg:
-@:maincpu,program,1518,5a,15,72
-@:maincpu,program,00d0,4,00,00
+orlegend105k:
+@:maincpu,program,811918,d4,49,b0
-;@s:goal92.cpp
+;********Dragon World II (ver. 110X, Export)
+drgw2:
+drgw2100x:
+@:maincpu,program,80caf8,46,49,40
-;*******goal `92
-goal92:
-@:maincpu,program,109f57,99,28,01
+drgw2100hk:
+@:maincpu,program,80f13a,46,49,40
-;@s:goindol.cpp
-;(goindol) and clones (by GeoMan)
-goindol:
-goindolj:
-goindolu:
-homo:
-@:maincpu,program,c0d8,2,05,00
-@:maincpu,program,c076,50,05,59
+;@s:irem/m10.cpp
+;** does not save in game top score, only hiscore table saves **
+headoni:
+@:maincpu,program,0e,f,00,00
-;@s:gottlieb.cpp
-;*** daily scores saved, others saved in nvram !!! Don't Reset game (F3) !!! ***
-krull:
-@:maincpu,program,b3d,103,7f,00
-@delay=4
+;********(ipm invader)
+ipminvad:
+@:maincpu,program,c0,a,00,00
-reactor:
-@:maincpu,program,04d8,80,0a,00
-@:maincpu,program,05bc,80,12,00
+;(sky chuter) (by GeoMan) - Hiscores are updated when game enters attract mode!
+skychut:
+@:maincpu,program,7b,f,0,0
+@:maincpu,program,406d,6,40,40
-;@s:gotya.cpp
+;(space beam) (by GeoMan)
+spacbeam:
+@:maincpu,program,c6,b,0,0
+@:maincpu,program,0e,f,0,0
-;(got-ya (12/241981,prototype ?)) - ADDED CLONE
-gotya:
-thehand:
-@:maincpu,program,5021,3,00,01
+;@s:irem/m107.cpp
-;@s:gradius3.cpp
+airass:
+firebarr:
+@:maincpu,program,e3252,8c,00,20
-gradius3:
-gradius3a:
-gradius3j:
-gradius3js:
-@:maincpu,program,43f00,64,00,08
-@:maincpu,program,40058,4,00,00
-@:maincpu,program,4005a,1,73,73
+;(dream soccer '94) and clones (by GeoMan)
+dsoccr94:
+@:maincpu,program,eb57b,80,10,04
-;@s:grchamp.cpp
-;(grand champion) (by GeoMan)
-grchamp:
-@:maincpu,program,4215,f,0,0
+dsoccr94k:
+@:maincpu,program,eb7a1,80,10,04
-;@s:gstriker.cpp
+;@s:irem/m52.cpp
-gstrikerj:
-@:maincpu,program,ffe349,43,0f,01
+mpatrol:
+mpatrolw:
+mranger:
+@:maincpu,program,e008,2c,00,00
-;*******(grand striker)(By Firebrand)
-gstriker:
-gstrikera:
-@:maincpu,program,ffe357,43,0f,01
+;@s:irem/m57.cpp
+;newtangl:******New Tropical Angel
+newtangl:
+troangel:
+@:maincpu,program,e780,1e,02,4e
+@:maincpu,program,e0d3,3,02,00
-twcup94:
-@:maincpu,program,ffe5e3,58,47,0d
+;@s:irem/m58.cpp
-;@s:gsword.cpp
+10yard:
+10yard85:
+10yardj:
+vs10yard:
+vs10yardj:
+vs10yardu:
+@:maincpu,program,e600,8a,00,4a
+@:maincpu,program,e008,3,00,03
-;gsword:******Great Swordsman (Japan?)
-;gsword2:******Great Swordsman (world?)
-gsword:
-gsword2:
-@:maincpu,program,9c00,1e,00,00
-@:maincpu,program,9c78,3c,34,00
+;@s:irem/m62.cpp
-;@s:gumbo.cpp
+kidnikib:
+yanchamr:
+@:maincpu,program,e062,6e,00,20
+@:maincpu,program,e02b,3,00,00
-;******miss bingo
-msbingo:
-@:maincpu,program,101288,a,09,30
-@:maincpu,program,1000c2,31,4d,20
+;*******horizon(By Firebrand)
+horizon:
+@:maincpu,program,e801,96,28,23
+@:maincpu,program,e03c,2,28,06
-;******miss puzzle
-mspuzzle:
-@:maincpu,program,100ff4,c,0b,f4
-@:maincpu,program,100608,2f,4d,20
+;******Little Hero
+lithero:
+@:maincpu,program,e062,6e,00,44
+@:maincpu,program,e02b,3,00,00
-;*******(gumbo)
-;** this hiscore seems broken, think its a driver problem **
-gumbo:
-mspuzzleg:
-@:maincpu,program,80000,30,4b,50
-@:maincpu,program,815d2,12,0b,0a
+lotlot:
+@:maincpu,program,e96b,226,02,00
+@:maincpu,program,e956,3,02,17
-;@s:gunbustr.cpp
-;(gunbuster (japan)) (by GeoMan)
-gunbustr:
-gunbustrj:
-gunbustru:
-@:maincpu,program,2032a0,2,00,21
-@:maincpu,program,2032a2,9e,13,00
+;(spelunker)
+spelunkr:
+spelunkrj:
+@:maincpu,program,e052,64,39,3f
+@:maincpu,program,e03b,2,39,08
-;@s:gundealr.cpp
+ldrun2:
+ldrun3:
+ldrun3j:
+@:maincpu,program,e6bd,c8,00,05
+@:maincpu,program,e672,3,00,80
-;(yam! yam!?)
-wiseguy:
-yamyam:
-yamyamk:
-@:maincpu,program,eba8,3f,00,4d
+;Youjyudn (Japan) (by GeoMan)
+youjyudn:
+@:maincpu,program,e565,37,70,4e
-;@s:gunsmoke.cpp
-gunsmoke:
-gunsmokeb:
-gunsmokeu:
-gunsmokeua:
-@:maincpu,program,e680,50,00,14
-@:maincpu,program,e600,8,00,00
+ldrun:
+ldruna:
+@:maincpu,program,e5e5,c8,01,04
+@:maincpu,program,e59a,3,04,40
-gunsmokej:
-@:maincpu,program,e680,50,00,18
-@:maincpu,program,e600,8,00,00
+spelunk2:
+@:maincpu,program,e066,64,99,3f
+@:maincpu,program,e04f,2,99,11
-;@s:gyruss.cpp
+ldrun4:
+@:maincpu,program,e735,c8,00,06
+@:maincpu,program,e6ea,3,00,70
-gyruss:
-gyrussb:
-gyrussce:
-@:maincpu,program,9488,28,00,83
-@:maincpu,program,940b,03,00,01
+kungfub:
+kungfub2:
+kungfum:
+kungfumd:
+spartanx:
+@:maincpu,program,ea06,78,00,41
+@:maincpu,program,e980,3,52,00
-;venus:******venus
-venus:
-@:maincpu,program,9489,26,00,d3
-@:maincpu,program,940b,3,00,01
+battroad:
+@:maincpu,program,ed50,b0,00,08
-;@s:halleys.cpp
-halleysc87:
-@:maincpu,program,fc5a,23,02,54
-@:maincpu,program,fc3f,3,02,00
+;kidnikiu:******Kid Niki - Radical Ninja (us)
+kidniki:
+kidnikiu:
+@:maincpu,program,e062,69,00,2e
+@:maincpu,program,e02b,3,00,00
-;*******(halley's comet)(By Firebrand)
-halleysc:
-halleyscj:
-halleyscja:
-@:maincpu,program,fc3c,23,02,54
-@:maincpu,program,fc21,3,02,00
+;@s:irem/m63.cpp
+atomboy:
+atomboya:
+wilytowr:
+@:maincpu,program,dd00,4,00,05
+@:maincpu,program,dd04,ac,0,0
+@:maincpu,program,e78d,6,ff,ff
-halleyscjp:
-@:maincpu,program,fc3c,23,02,2e
-@:maincpu,program,fc21,3,02,00
+;*******Fighting Basketball
+fghtbskt:
+@:maincpu,program,c0c0,28,03,dd
-;*******ben bero beh (japan)
-benberob:
-@:maincpu,program,fa4d,3,00,96
+;@s:irem/m72.cpp
-;@s:hcastle.cpp
+airdueljm72:
+airduelm72:
+@:maincpu,program,a3d4e,82,15,20
-akumajou:
-akumajoun:
-hcastle:
-hcastlee:
-hcastlek:
-@:maincpu,program,1940,3c,05,1a
+hharryb:
+@:maincpu,program,e09a0,9f,40,20
+@:maincpu,program,e0a40,03,40,02
-;@s:headonb.cpp
-headonb:
-@:maincpu,program,ff06,4,00,00
+airduel:
+airduelu:
+@:maincpu,program,d3d4e,82,15,20
-;@s:hexion.cpp
+;dbreed:******Dragon Breed (M81 pcb version)
+dbreed:
+@:maincpu,program,88990,82,58,2e
+@:maincpu,program,8896a,3,58,00
+@:maincpu,program,88959,1,2b,2b
-;(hexion (japan)) (by GeoMan)
-hexion:
-hexionb:
-@:maincpu,program,a740,3,00,10
-@:maincpu,program,a743,27d,00,00
+;dbreedm72:******dragon breed (m72 pcb version)
+dbreedjm72:
+dbreedm72:
+@:maincpu,program,9096a,03,58,00
+@:maincpu,program,90990,82,58,2e
+@:maincpu,program,90950,01,06,06
-;@s:hh_sm510.cpp
-tkarnov:
-@:maincpu,data,e,2,0,0,f
+dkgensan:
+dkgensanm82:
+@:maincpu,program,e09a0,9f,40,20
+@:maincpu,program,e0a40,3,40,02
-tbatman:
-@:maincpu,data,1d,3,0,0,f
+;rtypeb:******R-Type (World bootleg)
+rtype:
+rtypeb:
+rtypej:
+rtypeu:
+@:maincpu,program,42f4e,71,45,20
-tvindictr:
-@:maincpu,data,56,3,0,0,f
+gallop:
+@:maincpu,program,a3d00,6e,10,41
+@:maincpu,program,a3e14,03,10,06
+@:maincpu,program,a3dba,3c,00,5a
-;@s:higemaru.cpp
+;********cosmic cop(world)(by Firebrand)
+cosmccop:
+@:maincpu,program,e3c5e,6e,10,41
+@:maincpu,program,e3d72,03,10,06
+@:maincpu,program,e3d18,3c,00,5a
+
-;********higemaru (pirate ship higemaru)
-higemaru:
-@:maincpu,program,ee00,82,00,4f
-@:maincpu,program,ee97,3,00,00
-@:maincpu,program,d04e,7,20,30
+;(ken-go) (by GeoMan)
+kengo:
+@:maincpu,program,e09f2,82,10,20
-;@s:holeland.cpp
+rtypejp:
+@:maincpu,program,42f4a,71,45,20
-crzrallyrf:
-@:maincpu,program,c000,36,00,41
+loht:
+lohtb2:
+lohtb3:
+lohtj:
+@:maincpu,program,a3af4,32,36,20
+@:maincpu,program,a3adc,02,36,11
-;holeland:******Hole Land (by Jose Juan Iglesias)
-holeland:
-@:maincpu,program,86c7,18,00,11
-@:maincpu,program,86d0,3,00,03
+xmultiplm72:
+@:maincpu,program,8099e,43,50,00
+@:maincpu,program,80998,06,00,00
-;(crazy rally)
-;crzrallyg:******Crazy Rally (Gecas license)
-crzrally:
-crzrallya:
-crzrallyg:
-@:maincpu,program,c000,38,00,41
+xmultipl:
+@:maincpu,program,9c998,4,00,00
+@:maincpu,program,9c99d,44,00,00
+@:maincpu,program,9c9da,1,62,62
-;@s:homedata.cpp
-;battlcry:[Special thanks to Cananas for making this entry work]
-battlcry:
-battlcryc:
-battlcryp:
-@:maincpu,program,4449,2a,48,00
+bchopper:
+mrheli:
+@:maincpu,program,a37c0,78,63,60
+@:maincpu,program,a37ba,03,63,01
-;(reikai doushi (japan))
-reikaids:
-@:maincpu,program,43ca,1e,00,e8
-@:maincpu,program,40df,2,13,88
+hharry:
+@:maincpu,program,a09a0,9f,00,20
+@:maincpu,program,a0a40,03,00,00
-;@s:hornet.cpp
+imgfight:
+imgfightj:
+@:maincpu,program,a334f,78,09,20
-gradius4:
-@:maincpu,program,2878,50,00,84
-@:maincpu,program,48fc,04,00,d4
+rtype2:
+rtype2j:
+rtype2jc:
+@:maincpu,program,e3834,82,00,41
+@:maincpu,program,e38c2,7,f3,30
+@:maincpu,program,d0178,1,f3,f3
+@:maincpu,program,d017c,1,31,31
+@:maincpu,program,d0180,1,37,37
+@:maincpu,program,d0184,1,34,34
+@:maincpu,program,d0188,1,35,35
+@:maincpu,program,d018c,1,30,30
+@:maincpu,program,d0190,1,30,30
-;@s:hvyunit.cpp
-hvyunit:
-hvyunitj:
-hvyunitjo:
-hvyunitu:
-@:master,program,e190,28,00,50
+poundfor:
+poundforj:
+poundforu:
+@:maincpu,program,e2502,28,10,00
+@:maincpu,program,e252a,28,35,00
+@:maincpu,program,e2552,28,42,00
+@:maincpu,program,e257a,28,00,00
+@:maincpu,program,e25a2,28,11,00
+@:maincpu,program,e25ca,28,59,00
+@:maincpu,program,e25f2,28,68,00
+@:maincpu,program,e261a,28,70,00
+@:maincpu,program,e2642,28,57,00
+@:maincpu,program,e266a,28,41,00
-;@s:hyperspt.cpp
+nspirit:
+nspiritj:
+@:maincpu,program,a3930,78,45,4f
+@:maincpu,program,a39ba,03,45,00
-roadf:
-roadf2:
-roadf3:
-@:maincpu,program,3bd0,10a,01,01
-@:maincpu,program,3066,3,01,00
+majtitle:
+majtitlej:
+@:maincpu,program,d2ba4,9b,4b,17
-;@s:hyprduel.cpp
-;hyprduel:******hyper duel (japan set 1)
-hyprduel:
-hyprduel2:
-@:maincpu,program,fff2a2,3c,00,01
-@:maincpu,program,fff2e2,1,ff,ff
+;(hammerin' harry (world)) clones (by GeoMan)
+dkgensanm72:
+@:maincpu,program,a09a0,9f,40,20
+@:maincpu,program,a0a40,03,40,02
-;@s:igs011.cpp
+hharryu:
+@:maincpu,program,e09a0,9f,00,20
+@:maincpu,program,e0a40,03,00,00
-;vbowlj:******Virtua Bowling (Japan, V100JCM)
-vbowl:
-vbowlj:
-@:maincpu,program,101c32,44,00,2e
+;@s:irem/m80.cpp
+
+;matchit:******match it
+matchit:
+shisen:
+sichuan2:
+sichuan2a:
+@:maincpu,program,fcae,52,50,01
-;@s:ikki.cpp
-;(ikki (japan)) (by GeoMan)
-;farmer:*****Farmers Rebellion
-farmer:
-ikki:
-@:maincpu,program,c010,1e,22,00
-@:maincpu,program,d61b,1,2a,2a
-@:maincpu,program,d65b,1,04,04
-@:maincpu,program,d69b,1,00,00
-@:maincpu,program,d6db,1,00,00
-@:maincpu,program,d71b,1,00,00
-@:maincpu,program,d75b,1,00,00
+;@s:irem/m90.cpp
+dicegame:
+@:maincpu,program,a333a,70,53,00
+@:maincpu,program,a2e40,08,00,00
+@delay=4
-;@s:iqblock.cpp
-;(iq-block)
-iqblock:
-@:maincpu,program,f149,27,41,00
-@:maincpu,program,f1a4,3,00,00
-@:maincpu,program,f16e,1,13,13
+;atompunk:******atomic punk (us)
+atompunk:
+dynablst:
+dynablstb:
+dynablstb2:
+dynablstb3:
+@:maincpu,program,a0b2c,8f,03,03
+@:maincpu,program,a0c0f,3,40,00
-;*******grand tour
-grndtour:
-@:maincpu,program,f182,29,41,00
-@:maincpu,program,f1dd,4,00,00
+;riskchal:******risky challenge
+gussun:
+riskchal:
+@:maincpu,program,a3c6b,1ba,00,18
-;@s:ironhors.cpp
+;bbmanwj:**** top score not working ?????
+bbmanw:
+bbmanwj:
+bbmanwja:
+bomblord:
+@:maincpu,program,a0b36,6a,02,2e
-dairesya:
-farwest:
-ironhors:
-ironhorsh:
-@:maincpu,program,32f1,3,02,00
-@:maincpu,program,3300,40,23,00
+
+bombrman:
+@:maincpu,program,a0b1b,8c,03,63
+@:maincpu,program,a0bfe,3,40,00
+
+
+;(hasamu (japan)) (by GeoMan)
+hasamu:
+@:maincpu,program,a3115,105,00,04
+
+
+;@s:irem/m92.cpp
+
+uccopsaru:
+@:maincpu,program,e3e78,49,30,01
+
+
+dsoccr94j:
+@:maincpu,program,ead6d,80,10,04
+
+
+;blade master and cross blades (thanks to takasaki)
+bmaster:
+crossbld:
+@:maincpu,program,e750e,80,d3,00
+
+
+uccopsar:
+uccopsj:
+@:maincpu,program,e3e7c,49,30,01
+
+
+;(mystic raiders (world)) and clones (by GeoMan)
+gunhohki:
+mysticri:
+@:maincpu,program,e8af8,38,00,4d
+@:maincpu,program,e8b30,94,2e,00
+
+
+majtitl2j:
+@:maincpu,program,ed542,140,4b,00
+
+
+;******Hook (Japan)
+hookj:
+@:maincpu,program,ea6b7,ec,00,4f
+
+
+;(undercover cops (world))
+uccops:
+uccopsu:
+@:maincpu,program,e3e9a,49,30,01
+
+
+;(in the hunt (world)) and clones (by GeoMan) - FIXED ENTRY!
+inthunt:
+inthuntu:
+kaiteids:
+@:maincpu,program,e0180,d8,00,02
+
+
+;(lethal thunder)
+lethalth:
+thndblst:
+@:maincpu,program,e0086,b7,00,08
+
+
+;(gunforce 2)
+geostorm:
+gunforc2:
+@:maincpu,program,ea5ae,4b,00,a6
+
+
+;(ninja baseball batman (us))
+leaguemn:
+nbbatman:
+nbbatmanu:
+@:maincpu,program,e25d4,4f,00,03
+
+
+;*******(perfect soldiers (japan))
+psoldier:
+ssoldier:
+@:maincpu,program,e1b0f,31,10,31
+@:maincpu,program,e0032,1,06,06
+
+
+gunforcej:
+@:maincpu,program,e6633,40,44,4f
+
+
+;(gunforce - battle fire engulfed terror island (world))
+gunforce:
+gunforceu:
+@:maincpu,program,e6633,40,44,20
+
+
+hook:
+hooku:
+@:maincpu,program,ea6ad,ec,00,4f
+
+
+rtypeleo:
+rtypeleoj:
+@:maincpu,program,e221e,38,40,20
+@:maincpu,program,e2256,3,40,01
+@:maincpu,program,dc148,1,20,20
+@:maincpu,program,dc14c,1,31,31
+@:maincpu,program,dc150,1,32,32
+@:maincpu,program,dc154,1,38,38
+@:maincpu,program,dc158,1,34,34
+@:maincpu,program,dc15c,1,30,30
+@:maincpu,program,dc160,1,30,30
+
+
+;(major title 2 (world)) and clones (by GeoMan)
+majtitl2:
+skingame:
+skingame2:
+@:maincpu,program,ed542,140,4d,00
+
+
+;@s:irem/olibochu.cpp
+
+;*******(oli-boo-chi)
+;** game updates saved hiscore as soon as you insert a coin **
+olibochu:
+@:maincpu,program,f84c,5,00,00
+@:maincpu,program,f84e,1,05,05
+@:maincpu,program,81bd,1,60,60
+@:maincpu,program,81dd,1,60,60
+@:maincpu,program,81fd,1,05,05
+@:maincpu,program,821d,1,00,00
+@:maincpu,program,823d,1,00,00
+@:maincpu,program,825d,1,00,00
+@:maincpu,program,814f,1,18,18
+
+
+;@s:irem/redalert.cpp
+
+;(red alert) (by GeoMan)
+redalert:
+@:maincpu,program,301,f,0,0
+
+
+;*******demoneye-x
+demoneye:
+@:maincpu,program,128,b,00,00
+
+
+;@s:irem/travrusa.cpp
+
+motorace:
+mototour:
+travrusa:
+travrusab:
+travrusab2:
+@:maincpu,program,e07c,4b,00,15
+@:maincpu,program,e008,3,00,03
+
+
+;shot rider (by tamphax)
+;shtridera:******shot rider (sigma license)
+shtrider:
+shtridera:
+shtriderb:
+@:maincpu,program,e013,2d,00,4d
+
+
+;@s:irem/vigilant.cpp
+
+bowmen:
+@:maincpu,program,e2a4,9f,4a,09
+@delay=3.5
+
+
+;kikcubicb:******Kickle Cubele
+kikcubic:
+kikcubicb:
+@:maincpu,program,fe30,c8,07,04
+@:maincpu,program,fef8,3,07,35
+
+
+;buccanrs:******Buccaneers (set 1)
+buccanrs:
+@:maincpu,program,e36e,46,20,4f
-;@s:itech8.cpp
+;vigilantd:[Clone added by Wob]
+;vigilanto:[Clone added by Wob]
+vigilant:
+vigilanta:
+vigilantb:
+vigilantbl:
+vigilantc:
+vigilantd:
+vigilantg:
+vigilanto:
+@:maincpu,program,e048,3f,00,48
+
+
+;******Buccaneers (set 2)
+buccanrsa:
+@:maincpu,program,e36d,46,20,4f
+
+
+;@s:itech/itech8.cpp
ninclown:
@:maincpu,program,8d,4e,00,44
-;@s:jack.cpp
+;@s:jaleco/aeroboto.cpp
-;loverboy:******loverboy
-loverboy:
-@:maincpu,program,8026,3c,04,13
+;(formation z) and clones (by GeoMan)
+aeroboto:
+formatz:
+@:maincpu,program,430,138,00,0f
+@:maincpu,program,600,14,00,40
-;(freeze) (by GeoMan)
-freeze:
-@:maincpu,program,4b90,50,f4,00
+;@s:jaleco/argus.cpp
+argus:
+@:maincpu,program,fb80,40,00,00
+@:maincpu,program,e039,7,00,00
+@:maincpu,program,e03d,1,07,07
-jack:
-jack2:
-jack3:
-treahunt:
-@:maincpu,program,4500,5a,00,41
+;(butasan (japan))
+butasan:
+butasanj:
+@:maincpu,program,fab0,110,00,07
+@:maincpu,program,fca0,5,00,00
+@:maincpu,program,fca2,1,02,02
-;******joinem
-joinem:
-@:maincpu,program,8bad,5a,00,43
+valtric:
+@:maincpu,program,fca0,28,00,53
+@:maincpu,program,fc38,4,00,00
-unclepoo:
-@:maincpu,program,9447,5a,00,43
+;@s:jaleco/bigstrkb.cpp
-;(brix / zzyzzyxx set 1&2)
-brix:
-zzyzzyxx:
-zzyzzyxx2:
-@:maincpu,program,5100,28,00,00
-@:maincpu,program,5400,1e,9d,a3
-@:maincpu,program,5126,1,50,50
+bestleag:
+bestleaw:
+bigstrik:
+bigstrkb:
+@:maincpu,program,ff890b,49,08,78
-;@s:jackal.cpp
+bigstrkba:
+@:maincpu,program,ff890b,49,00,78
-;*********(jackal (world)& top gunner (us)& top gunner (bootleg) & tokughu butai jackal (japan)
-jackal:
-jackalbl:
-jackalj:
-jackalr:
-topgunbl:
-topgunr:
-@:slave,program,72f8,27,00,1d
-@:slave,program,7340,3,00,00
-@:slave,program,7341,1,02,02
+;@s:jaleco/blueprnt.cpp
-;@s:jailbrek.cpp
+saturnzi:
+@:maincpu,program,8380,28,00,2d
-jailbrek:
-jailbrekb:
-manhatan:
-@:maincpu,program,1620,50,00,11
-@:maincpu,program,157e,3,00,30
+blueprnt:
+blueprntj:
+@:maincpu,program,8100,3e,00,90
-;@s:jollyjgr.cpp
-fspiderb:
-@:maincpu,program,8066,45,00,19
+;@s:jaleco/cischeat.cpp
+;(big run (11th rallye version))
+bigrun:
+bigrunu:
+@:cpu1,program,f61da,2bc,50,05
-;jollyjgr:******Jolly Jogger
-;** hiscore updates when you start your first game **
-jollyjgr:
-@:maincpu,program,85c8,3,00,00
-@:maincpu,program,85c9,1,50,50
+f1gpstar:
+f1gpstar2:
+f1gpstar3:
+@:cpu1,program,f2803,5e3,04,4d
-;@s:jrpacman.cpp
-jrhearts: ; missing
-jrpacad: ; missing
-jrpacman:
-jrpacmanf:
-jrvectr: ; missing
-@:maincpu,program,4751,01,48,48
-@:maincpu,program,476d,06,40,40
-@:maincpu,program,4e88,03,00,00
+;(scud hammer) (by GeoMan)
+scudhamm:
+@:maincpu,program,fd1ea,3c,00,01
-;@s:junofrst.cpp
+;(cisco heat)
+cischeat:
+@:cpu1,program,f0c00,24f,00,00
+@:cpu1,program,f0e42,1,49,49
+@:cpu1,program,f0b00,28,00,00
-junofrst:
-junofrstg:
-@:maincpu,program,8100,a0,01,3f
+
+;@s:jaleco/citycon.cpp
+
+citycon:
+citycona:
+cruisin:
+@:maincpu,program,0055,3,00,13
+@:maincpu,program,0043,3,00,02
+@:maincpu,program,0900,f0,53,90
+
+
+;@s:jaleco/exerion.cpp
+
+exerion:
+exerionb:
+exerionb2:
+exerionba:
+exeriont:
+irion:
+@:maincpu,program,6600,c8,00,00
+@:maincpu,program,6700,28,00,00
+
+
+;@s:jaleco/fcombat.cpp
+
+;******field combat
+fcombat:
+@:maincpu,program,c600,a,00,00
+@:maincpu,program,c700,23,00,00
+
+
+;@s:jaleco/ginganin.cpp
+
+;(ginga ninkyouden) (by GeoMan)
+;ginganina:******Ginga NinkyouDen (set 2)
+ginganin:
+ginganina:
+@:maincpu,program,20291,50,00,59
+@:maincpu,program,202e1,83,20,09
+@:maincpu,program,2011d,3,00,00
+
+
+;@s:jaleco/megasys1.cpp
+
+monkelf:
+@:maincpu,program,79df6,4f,00,54
+
+
+rodlandjb2:
+@:maincpu,program,f60fa,226,00,01
+@delay=7
+
+
+;(the astyanax)
+astyanax:
+astyanaxa:
+@:maincpu,program,f8909,97,00,4e
+@:maincpu,program,f885d,f,00,00
+@:maincpu,program,f8863,1,02,02
+@:maincpu,program,98347,1,00,00
+@:maincpu,program,98387,1,31,31
+@:maincpu,program,983c7,1,32,32
+@:maincpu,program,98407,1,30,30
+@:maincpu,program,98447,1,30,30
+@:maincpu,program,98487,1,30,30
+@:maincpu,program,984c7,1,30,30
+
+
+p47:
+p47bl:
+p47j:
+p47je:
+@:maincpu,program,f1800,78,00,4f
+
+
+;(saint dragon)
+stdragon:
+stdragona:
+@:maincpu,:ram/share,8d00,7c,00,d3
+
+
+;(iga ninjyutsuden (japan))
+iganinju:
+@:maincpu,program,f0004,4,00,00
+@:maincpu,program,f4001,97,20,ac
+@:maincpu,program,f0010,8,30,30
+
+
+;(peek-a-boo!) (by GeoMan)
+peekaboo:
+peekaboou:
+@:maincpu,program,1f0278,60,00,fa
+@:maincpu,program,1f0380,4,00,00
+
+
+;(legend of makai (world)) and clones (by GeoMan)
+;names don't seems to save correctly even without the plugin
+lomakai:
+makaiden:
+@:maincpu,:ram/share,f000,2,00,03
+@:maincpu,:ram/share,f002,7e,00,00
+@:maincpu,:ram/share,e060,4,00,00
+
+
+;(takeda shingen (japan))
+tshingen:
+tshingena:
+@:maincpu,program,f0f00,3a,00,4e
+
+
+;(hachoo)
+hachoo:
+@:maincpu,program,f0072,100,00,59
+@:maincpu,program,f017e,4,00,00
+@:maincpu,program,f0073,1,05,05
+
+
+;kazan:******Ninja Kazan (World)
+kazan:
+@:maincpu,program,f4001,97,20,ac
+@:maincpu,program,f0004,4,00,00
+@:maincpu,program,f0010,08,30,30
+
+
+;edfu:******E.D.F. : Earth Defense Force (North America)
+edf:
+edfa:
+edfbl:
+edfu:
+@:maincpu,program,64c17,107,01,00
+@:maincpu,program,61d3e,4,00,00
+@:maincpu,program,64ccb,1,09,09
+
+
+;** top score updates when first game starts **
+lordofk:
+lordofkb:
+lordofkbp:
+@:maincpu,program,f8921,97,00,4e
+@:maincpu,program,f8875,f,00,00
+@:maincpu,program,f887b,1,02,02
+
+
+;(soldam (japan))
+;** you must let the game display the highscore in attract mode before **
+;** starting a game - just like in star force **
+soldam:
+soldamj:
+@:maincpu,program,1f00ba,8,00,00
+@:maincpu,program,1f3fbe,24a,00,81
+
+
+;(cybattler)
+cybattlr:
+@:maincpu,program,1f0101,ed,02,20
+
+
+avspirit:
+@:maincpu,program,79df2,53,00,54
+
+
+64street:
+64streetj:
+@:maincpu,program,ff8843,74,00,43
+
+
+phantasm:
+@:maincpu,program,ff9dee,53,00,54
+
+
+chimerab:
+@:maincpu,program,ff8850,a7,00,00
+
+
+rodlandj:
+rodlandjb:
+@:maincpu,program,f60fa,226,00,01
+@:maincpu,program,f302e,13,00,00
+
+
+rodland:
+rodlanda:
+@:maincpu,program,f60fc,226,00,01
+@:maincpu,program,f3030,14,00,00
+
+
+plusalph:
+@:maincpu,program,f2f36,168,00,43
+
+
+;@s:jaleco/momoko.cpp
+
+;(momoko 120%)
+momoko:
+momokob:
+momokoe:
+@:maincpu,program,ce01,9f,20,20
+@:maincpu,program,c049,7,20,30
+
+
+;@s:jaleco/ms32.cpp
+
+;*******(p-47 aces)
+p47aces:
+p47acesa:
+@:maincpu,program,fee1b04c,78,10,03
+
+
+;******(tetris plus)
+tetrisp:
+@:maincpu,program,fee184a0,135,10,1e
+@:maincpu,program,fee00010,31e,5a,ea
+
+
+;******(gratia - second earth)
+gratia:
+gratiaa:
+@:maincpu,program,fee1bc2c,a0,c8,43
+
+
+;********(best bout boxing)
+bbbxing:
+@:maincpu,program,fee0f45c,d7,a0,53
+
+
+;******(desert war)
+desertwr:
+@:maincpu,program,fee1b028,eb,94,24
+
+
+;********the game paradise - master of shooting
+gametngk:
+@:maincpu,program,fee0021e,4,40,00
+@:maincpu,program,fc000450,15cd,47,20
+@:maincpu,program,fee16000,44d,47,00
+@:maincpu,program,fee16448,1,01,01
+
+
+;@s:jaleco/psychic5.cpp
+
+psychic5:
+psychic5j:
+@:maincpu,program,fd00,30,00,59
+@:maincpu,program,fc84,3,00,53
+
+
+;@s:jaleco/skyfox.cpp
+
+skyfox:
+@:maincpu,program,de00,a,00,00
+@:maincpu,program,df00,28,00,00
+@:maincpu,program,c01a,01,79,79
+
+
+exerizer:
+exerizerb:
+@:maincpu,program,de00,a,00,00
+@:maincpu,program,df00,28,00,00
+@:maincpu,program,d356,1,a0,a0
+@:maincpu,program,d35a,1,a0,a0
+@:maincpu,program,d35e,1,a0,a0
+@:maincpu,program,d362,1,a0,a0
+@:maincpu,program,d366,1,00,00
+@:maincpu,program,d36a,1,00,00
+
+
+;@s:jaleco/tetrisp2.cpp
+
+;(tetris plus 2(JAPAN))
+tetrisp2:
+tetrisp2a:
+tetrisp2j:
+tetrisp2ja:
+@:maincpu,program,10dfb7,b3,01,00
+@:maincpu,program,10e065,1,01,01
+@:maincpu,program,10b0f2,460,03,09
+
+
+;rocknms:******Rock'n MegaSession (Japan, bootleg)
+rocknms:
+@:maincpu,program,1043bd,14d,3d,00
+@:maincpu,program,104507,1,18,18
+
+
+;rockna:******Rock'n Tread 1 (Japan, bootleg)
+;rockn:******Rock'n Tread (Japan)
+rockn:
+rockna:
+@:maincpu,program,104351,3b,3d,06
+@:maincpu,program,1043c9,3b,3d,06
+
+
+;rockn4:******Rock'n 4 (Japan, prototype, bootleg)
+rockn4:
+@:maincpu,program,1043bf,13b,3d,06
+
+
+;rockn3:******Rock'n 3 (Japan, bootleg)
+rockn3:
+@:maincpu,program,1043b1,13b,3d,06
+
+
+;rockn2:******Rock'n Tread 2 (Japan, bootleg)
+rockn2:
+@:maincpu,program,104383,13b,3d,06
+
+
+;@s:kaneko/airbustr.cpp
+
+;airbustrj:******Air Buster: Trouble Specialty Raid Unit (japan)
+;airbustrb:******Air Buster: Trouble Specialty Raid Unit (bootleg)
+airbustr:
+airbustrb:
+airbustrj:
+@:master,program,e160,40,01,01
+@:master,program,e19e,01,4f,4f
+
+
+;@s:kaneko/djboy.cpp
+
+;djboy:******dj boy (set 1)
+;djboya:******dj boy (set 2)
+;djboyj:******dj boy (japan)
+djboy:
+djboyj:
+djboyja:
+djboyua:
+@:mastercpu,program,b16a,2d,01,12
+
+
+;@s:kaneko/expro02.cpp
+
+missw02:
+supmodl2:
+@:maincpu,program,f825b6,63,30,20
+
+
+galsnew:
+galsnewj:
+galsnewk:
+galsnewt:
+galsnewu:
+@:maincpu,program,c825b6,64,30,31
+
+
+;zipzap:******Zip & Zap
+zipzap:
+zipzapa:
+@:maincpu,program,c80502,4e,4e,41
+
+
+smissw:
+@:maincpu,program,c025b6,63,30,20
+
+
+;(new fantasia)
+newfant:
+newfanta:
+@:maincpu,program,c825b7,62,30,20
+
+
+;*******(fantasy `95)
+;supmodel:******super model
+fantasia:
+fantasiaa:
+fantasiab:
+fantasian:
+fantsy95:
+supmodel:
+@:maincpu,program,c825b6,63,30,20
+
+
+;missmw96:******Miss Mister World '96 Nude
+missmw96:
+missw96:
+missw96a:
+missw96b:
+@:maincpu,program,c025b6,1d,30,53
+
+
+;fantsia2a:******Fantasia II (set 2, less explicit)
+fantsia2:
+fantsia2a:
+fantsia2n:
+@:maincpu,program,f825b6,64,30,00
+
+
+;@s:kaneko/galpanic.cpp
+
+galpanicb:
+@:maincpu,program,53e5b2,64,30,31
+
+
+;*******Gals Panic (set 3)
+galpanica:
+@:maincpu,program,c825b6,64,30,31
+
+
+galpanic:
+@:maincpu,program,53e728,50,30,31
-;@s:kaneko16.cpp
+;@s:kaneko/hvyunit.cpp
+
+hvyunit:
+hvyunitj:
+hvyunitja:
+hvyunitjo:
+hvyunitu:
+@:master,program,e190,28,00,50
+
+
+;@s:kaneko/kaneko16.cpp
+
+;brapboys:hiscore broken in game brapboys games ??
+brapboys:
+brapboysp:
+brapboysp2:
+brapboyspj:
+brapboyspu:
+@:maincpu,program,1030c5,31,00,4a
+
+
+bloodwar:
+oedfight:
+oedfighta:
+@:maincpu,program,106862,27,00,4b
+
;(Blaze On) (by tamphax)
blazeon:
@@ -7255,14 +6370,6 @@ explbrkrk:
@:maincpu,program,10c01a,63,00,4e
-;brapboys:hiscore broken in game brapboys games ??
-brapboys:
-brapboysp:
-brapboyspj:
-brapboyspu:
-@:maincpu,program,1030c5,31,00,4a
-
-
wingforc:
@:maincpu,program,30d7e7,13f,00,35
@@ -7280,14 +6387,14 @@ shogwarru:
;mgcrystlo:******Magical Crystals (World, 91/12/10)
-mgcrystl:
-mgcrystlj:
mgcrystlo:
@:maincpu,program,30047a,7a,00,00
@:maincpu,program,3004f1,1,46,46
@:maincpu,program,30047b,1,09,09
-@:maincpu,program,300478,4,00,09
-@:maincpu,program,30047c,7c,00,00
+
+
+mgcrystl:
+mgcrystlj:
@:maincpu,program,300488,4,00,00
@:maincpu,program,30048c,7c,41,00
@@ -7317,114 +6424,480 @@ gtmra:
@:maincpu,program,102df2,19e,59,80
+;******1000 Miglia: Great 1000 Miles Rally (94/05/..)
+gtmrb:
+gtmro:
+@:maincpu,program,102dee,1a0,59,01
+
+
gtmre:
gtmrusa:
@:maincpu,program,1035fa,19e,59,80
-;@s:kangaroo.cpp
+;@s:kaneko/sandscrp.cpp
-kangaroo:
-kangarooa:
-kangaroob:
-@:maincpu,program,e1a0,3c,00,00
-@:maincpu,program,e1da,1,50,50
+;sandscrpa:******Sand Scorpion (set 2)
+sandscrp:
+sandscrpa:
+sandscrpb:
+@:maincpu,program,702014,50,00,1b
+@:maincpu,program,700048,4,00,00
-;(funky fish) (by GeoMan)
-fnkyfish:
-@:maincpu,program,e030,9,0,0
+;@s:kaneko/snowbros.cpp
+;******cookie & bibi 2
+cookbib2:
+cookbib2a:
+cookbib2b:
+cookbib2c:
+@:maincpu,program,1026a2,28,4b,00
+@:maincpu,program,1026c4,1,4d,4d
-;@s:karnov.cpp
-;(wonder planet (japan))
-wndrplnt:
-@:maincpu,program,60048,ac,00,01
-@:maincpu,program,600dd,1,4d,4d
+ballboy3p:
+@:maincpu,program,1001ca,40,00,4f
-;(chelnov - atomic runner (us))
-chelnov:
-chelnovj:
-chelnovjbl:
-chelnovjbla:
-chelnovu:
-@:maincpu,program,060048,04,00,00
-@:maincpu,program,060080,2c,00,00
-@:maincpu,program,0600c0,2c,41,00
+pzlbreaka:
+@:maincpu,program,102d9e,32,50,32
+@:maincpu,program,102e0d,3,00,00
-karnov:
-karnova:
-karnovj:
-@:maincpu,program,06000a,04,00,00
-@:maincpu,program,063c00,28,00,00
-@:maincpu,program,063d00,28,00,4a
+;*******hyper pacman
+hyperpac:
+@:maincpu,program,10315c,28,50,00
-;@s:kchamp.cpp
+;** top score updates as soon as a game is started **
+ballboy:
+snowbro3:
+snowbros:
+snowbrosa:
+snowbrosb:
+snowbrosc:
+snowbrosd:
+snowbrosj:
+snowbroswb:
+toto:
+wintbob:
+@:maincpu,program,1001ca,40,00,4f
+@:maincpu,program,1014ad,1,1f,1f
+@:maincpu,program,1014b7,1,1f,1f
+@:maincpu,program,1014c1,1,08,08
+@:maincpu,program,1014cb,1,04,04
+@:maincpu,program,1014d5,1,04,04
+@:maincpu,program,1014df,1,04,04
+@:maincpu,program,1014e9,1,04,04
-karatedo:
-karatevs:
-kchamp:
-kchampvs:
-kchampvs2:
-kchampvs3:
-kchampvs4:
-@:maincpu,program,c040,6c,02,01
-@:maincpu,program,c0c0,3,02,00
+
+;toppyrap:******toppy & rappy
+toppyrap:
+@:maincpu,program,10372f,42,00,45
-;@s:kickgoal.cpp
+mcheonru:
+@:maincpu,program,1090dc,11f,00,06
-;******action hollywood
-actionhw:
-@:maincpu,program,ff5a2a,28,4a,01
+;********(hyper pacman (bootleg))
+hyperpacb:
+@:maincpu,program,10535c,28,50,00
+@:maincpu,program,10537e,1,43,43
-;@s:kingobox.cpp
-kingofb:
-kingofbj:
-@:maincpu,program,c22a,04,00,05
-@:video,program,8048,8c,00,12
+pzlbreak:
+@:maincpu,program,102d9c,32,50,32
+@:maincpu,program,102e0b,3,00,00
-;******Ring King (US, Woodplace license)
-ringkingw:
-@:video,program,8048,8c,00,12
-@:maincpu,program,c22a,04,00,05
+;@s:kaneko/suprnova.cpp
+puzzloopj:
+@:maincpu,program,609d1a8,41,00,30
+@:maincpu,program,609d080,41,00,31
-ringking:
-ringking2:
-@:video,program,8049,8c,00,12
-@:maincpu,program,c23b,04,00,05
+puzzloopk:
+puzzloopu:
+@:maincpu,program,609c700,41,00,30
+@:maincpu,program,609c5d8,41,00,31
-ringking3:
-@:video,program,8048,8c,00,12
-@:maincpu,program,c234,04,00,05
+
+;********(sengeki striker)
+;** the nvram in this game is about as reliable as the english cricket team, hence **
+;** the top score is sometimes wrong.... but nevermine eh...?? **
+;** the todays top ten hi table saves fine though... **
+sengekis:
+sengekisj:
+@:maincpu,program,60b1de8,78,53,00
+@:maincpu,program,60b1e47,1,01,01
-;@s:kncljoe.cpp
+puzzloopa:
+@:maincpu,program,609c4b8,41,00,31
+@:maincpu,program,609c5e0,41,00,30
-;(knuckle joe (set 1)) and clones (by GeoMan)
-bcrusher:
-kncljoe:
-kncljoea:
-@:maincpu,program,f01a,2d,00,43
+
+;vblokbrk:******vs block breaker (asia)
+sarukani:
+vblokbrk:
+vblokbrka:
+@:maincpu,program,6027cb8,80,00,2e
+
+
+;******(puzz loop (europe))
+puzzloop:
+puzzloope:
+@:maincpu,program,60985ac,41,00,31
+@:maincpu,program,60986d4,41,00,30
+
+
+;@s:kiwako/mrjong.cpp
+
+blkbustr:
+crazyblk:
+@:maincpu,program,8401,a9,00,0a
+@:maincpu,program,a013,6,00,00
+
+
+mrjong:
+@:maincpu,program,8401,98,00,09
+@:maincpu,program,a013,6,00,00
+
+
+;@s:konami/ajax.cpp
+
+;(typhoon)
+ajax:
+ajaxj:
+typhoon:
+@:maincpu,program,2100,50,1a,00
+@:maincpu,program,2050,4,00,00
+
+
+;@s:konami/aliens.cpp
+
+;aliensa:******Aliens (Asia)
+aliens:
+aliens2:
+aliens3:
+aliens4:
+aliensa:
+aliensj:
+aliensj2:
+aliensu:
+@:maincpu,program,1e30,38,00,48
+
+
+;@s:konami/asterix.cpp
+
+asterix:
+asterixaad:
+asterixeaa:
+asterixeac:
+asterixj:
+@:maincpu,program,107800,50,00,01
+
+
+;@s:konami/battlnts.cpp
+
+;(battlantis) (battlantis (japan)) (by GeoMan)
+battlnts:
+battlntsa:
+battlntsj:
+@:maincpu,program,1050,4,0,0
+@:maincpu,program,1100,50,00,52
+
+
+;@s:konami/bladestl.cpp
+
+;(blades of steel (version t))
+bladestl:
+bladestle:
+bladestll:
+@:maincpu,program,4170,82,23,15
+
+
+;@s:konami/blockhl.cpp
+
+;(block hole) and clones (by GeoMan)
+blockhl:
+quarth:
+@:maincpu,program,4163,44,00,05
+
+
+;@s:konami/bottom9.cpp
+
+;(bottom of the ninth (version t)) and clones (by GeoMan)
+bottom9:
+bottom9n:
+mstadium:
+@:maincpu,program,4176,82,41,70
+
+
+;@s:konami/chqflag.cpp
+
+;(chequered flag)
+chqflag:
+@:maincpu,program,1f08,dd,30,42
+
+
+;@s:konami/circusc.cpp
+
+;circusc3:******circus charlie (no level select)*
+circusc:
+circusc2:
+circusc3:
+circusc4:
+circuscc:
+circusce:
+@:maincpu,program,2160,32,01,fe
+@:maincpu,program,20a6,3,01,30
+@:maincpu,program,35a7,1,00,00
+@:maincpu,program,35c7,1,03,03
+@:maincpu,program,35e7,1,08,08
+@:maincpu,program,3607,1,09,09
+@:maincpu,program,3627,1,01,01
+@:maincpu,program,3647,1,10,10
+
+
+;@s:konami/combatsc.cpp
+
+;by (GoKu)
+bootcamp:
+bootcampa:
+combatsc:
+combatscb:
+combatscj:
+combatsct:
+@:maincpu,program,1320,46,02,07
+@:maincpu,program,826,3,00,10
+
+
+;@s:konami/contra.cpp
+
+contra:
+contra1:
+contrab:
+contrabj:
+contrabj1:
+contrae:
+contraj:
+contraj1:
+gryzor:
+gryzor1:
+@:maincpu,program,1120,40,1b,00
+@:maincpu,program,1118,4,00,00
+
+
+;@s:konami/crimfght.cpp
+
+crimfght:
+crimfghtj:
+crimfghtu:
+@:maincpu,program,1a40,46,00,19
+
+
+;@s:konami/dbz.cpp
+
+;(dragonball z 2 super battle) (by GeoMan)
+dbz2:
+@:maincpu,program,48772a,2,00,02
+@:maincpu,program,48772c,2,00,00
+
+
+dbza:
+@:maincpu,program,48665c,54,00,1e
+@:maincpu,program,4863f2,4,00,00
+
+
+dbz:
+@:maincpu,program,486660,54,00,1e
+@:maincpu,program,4863f2,4,00,00
+
+
+;@s:konami/ddribble.cpp
+
+ddribble:
+ddribblep:
+@:maincpu,program,4800,70,1d,03
+
+
+;@s:konami/divebomb.cpp
+
+divebomb:
+@:fgcpu,program,e0fa,4c,00,53
+@:fgcpu,program,e040,4,00,00
+
+
+;@s:konami/fastlane.cpp
+
+;(fast lane) (by GeoMan)
+fastlane:
+@:maincpu,program,32a0,50,00,00
+@:maincpu,program,3309,3,02,00
+
+
+;@s:konami/finalizr.cpp
+
+finalizra:
+finalizrb:
+@:maincpu,program,3c08,1,00,00
+@:maincpu,program,3c09,1,02,02
+@:maincpu,program,3c0a,2,00,00
+@:maincpu,program,3bc0,27,00,12
+
+
+finalizr:
+@:maincpu,program,3c08,1,00,00
+@:maincpu,program,3c09,1,03,03
+@:maincpu,program,3c0a,2,00,00
+@:maincpu,program,3bc0,27,00,12
+
+
+;@s:konami/flkatck.cpp
+
+;(ka)
+flkatck:
+flkatcka:
+mx5000:
+@:maincpu,program,3a00,50,00,14
+@:maincpu,program,395e,3,00,90
+
+
+;@s:konami/gberet.cpp
+
+gberet:
+gberetb:
+mrgoemon:
+rushatck:
+@:maincpu,program,d900,3c,03,13
+@:maincpu,program,db06,03,03,00
+
+
+;@s:konami/gijoe.cpp
+
+gijoe:
+gijoea:
+gijoeea:
+gijoej:
+gijoeu:
+gijoeua:
+@:maincpu,program,18f900,f8,41,01
+
+
+;@s:konami/gradius3.cpp
+
+gradius3:
+gradius3a:
+gradius3j:
+gradius3jas:
+@:maincpu,program,43f00,64,00,08
+@:maincpu,program,40058,4,00,00
+@:maincpu,program,4005a,1,73,73
+
+
+;@s:konami/gyruss.cpp
+
+gyruss:
+gyrussb:
+gyrussce:
+@:maincpu,program,9488,28,00,83
+@:maincpu,program,940b,03,00,01
+
+
+;venus:******venus
+venus:
+@:maincpu,program,9489,26,00,d3
+@:maincpu,program,940b,3,00,01
+
+
+;@s:konami/hcastle.cpp
+
+akumajou:
+akumajoun:
+hcastle:
+hcastlee:
+hcastlek:
+@:maincpu,program,1940,3c,05,1a
+
+
+;@s:konami/hexion.cpp
+
+;(hexion (japan)) (by GeoMan)
+hexion:
+hexionb:
+@:maincpu,program,a740,3,00,10
+@:maincpu,program,a743,27d,00,00
+
+
+;@s:konami/hornet.cpp
+
+gradius4:
+@:maincpu,program,2878,50,00,84
+@:maincpu,program,48fc,04,00,d4
+
+
+;@s:konami/hyperspt.cpp
+
+roadf:
+roadf2:
+roadfh:
+roadfu:
+@:maincpu,program,3bd0,10a,01,01
+@:maincpu,program,3066,3,01,00
+
+
+;@s:konami/ironhors.cpp
+
+dairesya:
+farwest:
+ironhors:
+ironhorsh:
+@:maincpu,program,32f1,3,02,00
+@:maincpu,program,3300,40,23,00
-;@s:konamigq.cpp
+;@s:konami/jackal.cpp
+
+;*********(jackal (world)& top gunner (us)& top gunner (bootleg) & tokughu butai jackal (japan)
+jackal:
+jackalbl:
+jackalj:
+jackalr:
+topgunbl:
+topgunr:
+@:slave,program,72f8,27,00,1d
+@:slave,program,7340,3,00,00
+@:slave,program,7341,1,02,02
+
+
+;@s:konami/jailbrek.cpp
+
+jailbrek:
+jailbrekb:
+manhatan:
+@:maincpu,program,1620,50,00,11
+@:maincpu,program,157e,3,00,30
+
+
+;@s:konami/junofrst.cpp
+
+junofrst:
+junofrstg:
+@:maincpu,program,8100,a0,01,3f
+
+
+;@s:konami/konamigq.cpp
;******Crypt Killer (konamigq.c) (by GreatStone)
cryptklr:
@:maincpu,program,237dc0,50,40,00
-;@s:konamigx.cpp
+;@s:konami/konamigx.cpp
;*******lethal enforcers II - gun fighters (ver eaa)
le2:
@@ -7474,1088 +6947,1356 @@ tbyahhoo:
@:maincpu,program,c0fb43,1,57,57
-;@s:kyugo.cpp
+;@s:konami/labyrunr.cpp
-;(flash gal) (by GeoMan)
-flashgal:
-flashgala:
-flashgalk:
-@:maincpu,program,f690,5e,00,40
+;(trick trap (world?)) and clones (by GeoMan)
+labyrunr:
+labyrunrk:
+tricktrp:
+@:maincpu,program,22a0,40,00,53
+@:maincpu,program,2308,4,0,0
-;99lstwark:******'99: The Last War (Kyugo)
-99lstwar:
-99lstwara:
-99lstwarb:
-99lstwark:
-repulse:
-sonofphx:
-@:maincpu,program,f660,5f,00,ff
+;@s:konami/lethal.cpp
+;******lethal enforcers (us ver uae)
+lethalen:
+lethalenead:
+lethalenub:
+@:maincpu,program,3390,50,41,00
+@:maincpu,program,33de,1,70,70
-buzzard:
-gyrodine:
-gyrodinet:
-@:maincpu,program,f300,45,00,0b
-@:maincpu,program,94e2,1,01,01
-@:maincpu,program,94a2,1,01,01
-@:maincpu,program,9462,1,03,03
-@:maincpu,program,9422,1,06,06
-@:maincpu,program,93e2,1,04,04
-@:maincpu,program,93a2,1,00,00
-@:maincpu,program,9362,1,00,00
-@:maincpu,program,9322,1,00,00
+;@s:konami/mainevt.cpp
-;(s.r.d. mission) (by GeoMan)
-fx:
-srdmissn:
-@:maincpu,program,e6ef,5f,00,ff
+;Devastators clones
+devstors:
+devstors2:
+devstorsv:
+devstorsx:
+garuka:
+@:maincpu,program,41c4,2e,01,01
-;airwolfa:******Airwolf (US)
-airwolf:
-airwolfa:
-skywolf:
-skywolf2:
-skywolf3:
-@:maincpu,program,e71a,5f,00,ff
+;Main Event (by GeoMan)
+mainevt:
+mainevt2p:
+mainevto:
+ringohja:
+@:maincpu,program,415d,45,ae,77
-;********(legend)
-legend:
-legendb:
-@:maincpu,program,e70c,5d,00,40
+;@s:konami/megazone.cpp
+megazone:
+megazonea:
+megazoneb:
+megazoneh:
+megazonei:
+megazonej:
+@:maincpu,program,2446,89,00,55
+@:maincpu,program,3b08,4,00,00
-;@s:labyrunr.cpp
-;(trick trap (world?)) and clones (by GeoMan)
-labyrunr:
-labyrunrk:
-tricktrp:
-@:maincpu,program,22a0,40,00,53
-@:maincpu,program,2308,4,0,0
+;@s:konami/mikie.cpp
+mikie:
+mikiehs:
+mikiej:
+mikiek:
+@:maincpu,program,2a00,01,1d,1d
+@:maincpu,program,2a01,01,2c,2c
+@:maincpu,program,2a02,01,1f,1f
+@:maincpu,program,2a03,01,00,00
+@:maincpu,program,2a04,01,01,01
+@:maincpu,program,2a05,28,00,00
+@:maincpu,program,29f0,04,00,00
+@:maincpu,program,297c,04,00,00
-;@s:ladybug.cpp
-;*******dorodon (set 1)
-dorodon:
-dorodon2:
-@:maincpu,program,6073,1b,01,00
-@:maincpu,program,d381,46,0f,17
+;@s:konami/moo.cpp
+;(bucky o'hare (world version ea) and clones (by GeoMan)
+bucky:
+buckyaa:
+buckyaab:
+buckyea:
+buckyjaa:
+buckyuab:
+@:maincpu,program,801e0,50,00,04
-cavenger:
-@:maincpu,program,6025,41,00,28
+;moomesaaab:******Wild West C.O.W.-Boys of Moo Mesa (ver AA)
+;moomesauab:******Wild West C.O.W.-Boys of Moo Mesa (ver ua)
+moomesa:
+moomesaaab:
+moomesabl:
+moomesauab:
+@:maincpu,program,1801e0,97,00,1a
-snapjack:
-@:maincpu,program,6a94,41,01,24
+;@s:konami/mystwarr.cpp
-;ladybgb2:******Lady Bug (bootleg Set 2)
-ladybug:
-ladybugb:
-ladybugb2:
-@:maincpu,program,6073,1b,01,00
-@:maincpu,program,d380,75,ff,ff
+viostorm:
+viostorma:
+viostormab:
+viostormabbl:
+viostormeb:
+viostormj:
+viostormu:
+viostormub:
+@:maincpu,program,20dc00,139,00,07
+@:maincpu,program,200138,8,00,45
-;******Space Raider
-sraider:
-@:maincpu,program,6010,9f,00,21
+;******monster maulers (Europe ver EAA)& kyukyoku sentai dadandarn (japan ver jaa)
+dadandrn:
+mmaulers:
+@:maincpu,program,600701,99,02,e8
-;@s:ladyfrog.cpp
+gaiapols:
+gaiapolsj:
+gaiapolsu:
+@:maincpu,program,60f801,99,00,00
+@:maincpu,program,60f896,1,29,29
-;*******lady frog
-ladyfrog:
-@:maincpu,program,eb44,8f,dc,00
-@:maincpu,program,ebd1,1,20,20
+;** these are untested as the dont work in this version of mame (mame v0.96u1) **
+;mtlchamp1:******martial champion (ver eaa)
+mtlchamp:
+mtlchamp1:
+mtlchampa:
+mtlchampj:
+mtlchampu:
+mtlchampu1:
+@:maincpu,program,100300,61,00,44
-;@s:laserbat.cpp
-;lazarian:******lazarian
-lazarian:
-@:maincpu,program,1f07,1e,00,d4
+;metamrphj:******Metamorphic Force (ver jaa)
+;metamrphu:******Metamorphic Force (ver uaa)
+metamrph:
+metamrpha:
+metamrphe:
+metamrphj:
+metamrphu:
+@:maincpu,program,203240,35,00,5a
-;laserbat:******laser battle
-laserbat:
-@:maincpu,program,1cf1,1e,cb,00
-@:maincpu,program,1d0d,1,60,60
+;*******mystic warriors (world ver eaa)
+mystwarr:
+mystwarra:
+mystwarrj:
+mystwarru:
+@:maincpu,program,200400,4e,48,01
+@:maincpu,program,200170,4,00,00
+@:maincpu,program,200171,1,10,10
-;catnmous:******Cat and Mouse (set 1)
-catnmous:
-@:maincpu,program,1f0a,1e,cb,00
-@:maincpu,program,1f24,1,d4,d4
+;@s:konami/nemesis.cpp
+;(twinbee)
+twinbee:
+twinbeeb:
+@:maincpu,program,1f580,58,00,0a
+@:maincpu,program,1eba0,4,00,00
-;@s:lasso.cpp
-lasso:
-@:maincpu,program,0220,70,11,30
-@:maincpu,program,001c,3,00,00
+gradius:
+gradiusb:
+@:maincpu,program,195f0,8c,00,00
+@:maincpu,program,70098,4,00,00
+@:maincpu,program,7009a,1,73,73
-;(chameleon)
-chameleo:
-@:maincpu,program,4f,4,00,00
-@:maincpu,program,120,6e,26,00
-@:maincpu,program,50,1,50,50
+citybomb:
+citybombj:
+@:maincpu,program,80700,50,00,22
+@:maincpu,program,8005c,4,00,00
+@:maincpu,program,80156,2e,01,50
-;(wai wai jockey gate-in!) (by GeoMan)
-wwjgtin:
-@:maincpu,program,0220,70,24,24
-@:maincpu,program,001c,3,00,00
+;* top score not saved
+nyanpani:
+@:maincpu,program,42800,28,00,10
-;(pinbo & pinbo (strike))
-;pinboa:******Pinbo (set 2)
-pinbo:
-pinboa:
-pinbos:
-@:maincpu,program,120,6e,24,00
-@:maincpu,program,43,3,00,00
-@:maincpu,program,44,1,50,50
+konamigt:
+@:maincpu,program,60105,1,00,00
+@:maincpu,program,60106,2,10,00
+@:maincpu,program,61480,328,4a,01
-;@s:lastduel.cpp
+nemesis:
+nemesisuk:
+@:maincpu,program,06509a,1,76,76
+@:maincpu,program,065010,8c,00,00
+@:maincpu,program,060098,4,00,00
+@:maincpu,program,06009a,1,73,73
-leds2011:
-leds2011u:
-@:maincpu,program,ff8890,78,00,00
-@:maincpu,program,ffcb76,23,41,01
-@:maincpu,program,ff87c9,1,d2,d2
+;(galactic warriors) (by GeoMan)
+gwarrior:
+@:maincpu,program,1a4f6,50,00,01
+@:maincpu,program,1f72f,3,00,85
-leds2011p:
-@:maincpu,program,ff8852,78,00,00
-@:maincpu,program,ffc936,23,41,01
-@:maincpu,program,ff87c9,1,d2,d2
+lifefrce:
+lifefrcej:
+salamand:
+salamandj:
+@:maincpu,program,085000,64,00,16
+@:maincpu,program,08005a,4,00,00
-lastduel:
-lastduelb:
-lastduelo:
-@:maincpu,program,ff87e2,4,00,00
-@:maincpu,program,ffc6f2,68,c7,00
-@:maincpu,program,fcc76d,1,20,20
-@:maincpu,program,fcc7ed,1,20,20
-@:maincpu,program,fcc86d,1,20,20
-@:maincpu,program,fcc8ed,1,02,02
-@:maincpu,program,fcc96d,1,00,00
-@:maincpu,program,fcc9ed,1,00,00
-@:maincpu,program,fcca6d,1,00,00
-@:maincpu,program,fccaed,1,00,00
+;(black panther)
+blkpnthr:
+@:maincpu,program,90400,99,00,59
+@:maincpu,program,90300,4,00,00
-ledstorm:
-madgear:
-madgearj:
-@:maincpu,program,ff8890,78,00,00
-@:maincpu,program,ffcb76,23,02,00
-@:maincpu,program,ff87c9,1,d2,d2
+;(kitten kaboodle)
+kittenk:
+@:maincpu,program,4005a,4,00,00
+@:maincpu,program,42800,28,00,10
-;@s:legionna.cpp
-;heatbrl:******Heated Barrel (World version 3)
-;heatbrlu:******Heated Barrel (us)
-;heatbrlo:******Heated Barrel (world old version)
-;heatbrl2:******Heated Barrel (world version 2)
-heatbrl:
-heatbrl2:
-heatbrl3:
-heatbrle:
-heatbrlo:
-heatbrlu:
-@:maincpu,program,108296,63,4b,01
-@:maincpu,program,108036,4,00,00
+;******hyper crash (version d)
+;hcrashc:******Hyper Crash (version C)
+hcrash:
+hcrashc:
+@:maincpu,program,81900,ac5,00,10
+@:maincpu,program,80e88,4,00,70
+@:maincpu,program,80e94,4,00,70
+@:maincpu,program,80c64,1,20,20
-legionna:
-legionnaj:
-legionnau:
-@:maincpu,program,109530,44,08,02
-@:maincpu,program,109203,03,08,00
+;@s:konami/pandoras.cpp
+;(pandoras palace)
+pandoras:
+@:maincpu,program,6100,2d,18,20
+@:maincpu,program,60d0,4,00,50
-;@s:leland.cpp
-;(cerberus)
-;** only seems to save top score **
-cerberus:
-@:master,program,e83b,ba,27,00
-@:master,program,e004,1,1b,1b
+;@s:konami/parodius.cpp
+;(parodius da! (japan))
+parodius:
+parodiusa:
+parodiuse:
+parodiusj:
+@:maincpu,program,1f50,5e,00,00
+@:maincpu,program,1f51,1,05,05
-;(danger zone)
-dangerz:
-@:slave,program,e908,12e,52,14
+;@s:konami/pingpong.cpp
-;*******mayhem 2002(By Firebrand)
-; - Only works if you delete the nvram after you turn off the game. Making
-;the nvram read-only will not work.
-mayhem:
-@:master,program,e081,ba,10,45
+pingpong:
+@:maincpu,program,94b1,3c,02,23
+@:maincpu,program,949e,3,02,00
+@:maincpu,program,846d,6,10,00
-;@s:lemmings.cpp
+;@s:konami/pooyan.cpp
-;(lemmings (us prototype))
-lemmings:
-@:maincpu,program,10a402,50,44,01
+pootan:
+pooyan:
+pooyans:
+@:maincpu,program,89c0,1e,00,00
+@:maincpu,program,8a00,1e,00,01
+@:maincpu,program,8e00,1e,00,00
+@:maincpu,program,88a8,3,00,01
-;@s:lethal.cpp
+;@s:konami/rockrage.cpp
-;******lethal enforcers (us ver uae)
-lethalen:
-lethalenead:
-lethalenub:
-@:maincpu,program,3390,50,41,00
-@:maincpu,program,33de,1,70,70
+;(rock `n rage (world?)
+rockrage:
+rockragej:
+@:maincpu,program,4980,4e,01,53
+@:maincpu,program,48be,3,01,80
+@:maincpu,program,4fc8,1,54,54
-;@s:liberate.cpp
+;******Rock 'n Rage (Prototype?)
+rockragea:
+@:maincpu,program,4980,4e,01,53
+@:maincpu,program,48be,3,01,80
+@:maincpu,program,4866,1,03,03
-;*******Yellow Cab (bootleg)
-;** you must exit this game when either the main title page is showing **
-;** (the screen with the game name and copyright displaying) or when the hiscore **
-;** is being displayed in attract mode, or the save will not work **
-;yellowcbj:******Yellow Cab (Japan)
-kamikcab:
-yellowcbb:
-yellowcbj:
-@:maincpu,program,636b,7c,00,20
+;@s:konami/rocnrope.cpp
-;*******(boomer rang`r / genesis)
-;** you must let this game display the hiscore table before starting game and **
-;** this game only saves properly if you exit the game when the hiscore is scrolling **
-;** up the screen during attract mode, you have to be quick, you only get about 4-5 seconds **
-;** to do this...**
-boomrang:
-boomranga:
-@:maincpu,program,10,3,07,00
-@:maincpu,program,62a2,3f,07,89
+rocnrope:
+rocnropek:
+ropeman:
+@:maincpu,program,5160,40,01,00
+@:maincpu,program,50a6,03,01,00
-;liberation (by tamphax)
-dualaslt:
-liberate:
-liberateb:
-@:maincpu,program,41,3,05,00
-@:maincpu,program,6304,6e,20,60
+;@s:konami/rollerg.cpp
+;(rollergames (us))
+;** untested - no good at this game !! **
+rollerg:
+rollergj:
+@:maincpu,program,2a80,28,08,06
-;@s:limenko.cpp
-;dynabomb:******Dynamite Bomber (Korea) (Rev 1.5)
-dynabomb:
-@:maincpu,program,c7908,60,00,01
-@:maincpu,program,c7e43,1,03,03
+;@s:konami/rungun.cpp
+;******run and gun(By Firebrand)
+rungun:
+@:maincpu,program,380c80,4b,4b,40
-;@s:littlerb.cpp
-littlerb:
-@:maincpu,program,20202e,9f,11,30
-@:maincpu,program,20203d,1,e8,e8
+;@s:konami/sbasketb.cpp
+;(super basketball)(fix)
+sbasketb:
+@:maincpu,program,2a26,194,ef,14
+@:maincpu,program,20ac,3,00,00
+@:maincpu,program,3521,1,10,10
+@:maincpu,program,3501,1,10,10
+@:maincpu,program,34e1,1,10,10
+@:maincpu,program,34c1,1,10,10
+@:maincpu,program,34a1,1,10,10
+@:maincpu,program,3481,1,00,00
+@:maincpu,program,3461,1,00,00
-;@s:lkage.cpp
-;bygone:***** GAME NOT 100% working yet !! *****
-bygone:
-@:maincpu,program,e0c0,3c,00,47
-@:maincpu,program,e076,6,00,00
-@:maincpu,program,e002,1,0a,0a
-@:maincpu,program,f42d,6,3c,3c
+;@s:konami/scotrsht.cpp
+;*******scooter shooter
+scotrsht:
+@:maincpu,program,1ca0,46,01,1d
+@:maincpu,program,199c,3,01,40
-;lkageoo:******The Legend of Kage (oldest)
-lkage:
-lkageb:
-lkageb2:
-lkageb3:
-lkageo:
-lkageoo:
-@:maincpu,program,e25f,85,00,52
-@:maincpu,program,e188,3,00,00
+;@s:konami/shaolins.cpp
-;@s:lsasquad.cpp
+kicker:
+shaolinb:
+shaolins:
+@:maincpu,program,2af1,2,02,58
+@:maincpu,program,2af3,1,00,00
+@:maincpu,program,2b00,3e,1d,01
+@:maincpu,program,2b3e,2,00,00
-;******Daikaiju no Gyakushu
-daikaiju:
-@:maincpu,program,bf00,a0,00,33
-@:maincpu,program,a007,3,00,05
-@:maincpu,program,a027,1,23,23
-@:maincpu,program,d798,b,30,30
+;@s:konami/simpsons.cpp
-storming:
-@:maincpu,program,a814,3,00,01
-@:maincpu,program,a46c,70,69,00
-@:maincpu,program,d754,d,20,30
+;simpsons4pa:******The Simpsons (4 Players alt)
+;simpsons2p2:******the simpsons (2 player alt)
+simpsons:
+simpsons2p:
+simpsons2p2:
+simpsons2p3:
+simpsons2pa:
+simpsons2pj:
+simpsons4pa:
+simpsons4pe:
+@:maincpu,program,4980,50,42,00
-;(land sea air squad / riku kai kuu saizensen)
-lsasquad:
-@:maincpu,program,a814,3,00,01
-@:maincpu,program,a46c,70,68,00
-@:maincpu,program,d754,d,20,30
+;@s:konami/spy.cpp
+;(s.p.y. - special project y (us)) (by GeoMan)
+spy:
+spyu:
+@:maincpu,program,9a0,50,11,00
+@:maincpu,program,836,4,00,00
-;@s:lwings.cpp
-lwings:
-lwings2:
-lwingsb:
-lwingsj:
-lwingsja:
-@:maincpu,program,ce00,5b,00,2e
-@:maincpu,program,ce97,d,00,00
+;@s:konami/surpratk.cpp
+;******Surprise Attack (Asia ver. L)
+suratk:
+suratka:
+suratkj:
+@:maincpu,program,b00,5a,11,31
+@:maincpu,program,5981,3,10,00
+@:maincpu,program,609e,6,01,00
-fball:
-@:maincpu,program,d840,69,00,48
+;@s:konami/thunderx.cpp
-avengers:
-avengers2:
-@:maincpu,program,ce00,54,00,47
-@:maincpu,program,ce97,3,00,60
+scontra:
+scontraa:
+scontraj:
+@:maincpu,program,4100,50,11,00
+@:maincpu,program,4050,1,00,00
+@:maincpu,program,4051,3,01,00
-buraiken:
-trojan:
-trojana:
-trojanb:
-trojanj:
-trojanr:
-@:maincpu,program,ce00,5b,00,2e
-@:maincpu,program,ce97,3,00,60
+;thunderxa:******thunder cross (set 2)
+;thunderxb:******thunder cross (set 3)
+thunderx:
+thunderxa:
+thunderxb:
+thunderxj:
+@:maincpu,program,4050,4,00,00
+@:maincpu,program,4100,50,11,00
+@:maincpu,program,414e,1,10,10
-;(section z)
-sectionz:
-sectionza:
-@:maincpu,program,ce00,51,00,00
-@:maincpu,program,ce97,3,00,00
-@:maincpu,program,ce4f,1,08,08
+crazycop:
+gbusters:
+gbustersa:
+@:maincpu,program,4100,38,19,00
+@:maincpu,program,4050,4,00,00
-;@s:m10.cpp
+;@s:konami/timeplt.cpp
-;** does not save in game top score, only hiscore table saves **
-headoni:
-@:maincpu,program,0e,f,00,00
+spaceplt:
+spaceplta:
+timeplt:
+timeplta:
+timepltc:
+@:maincpu,program,ab08,28,00,f1
+@:maincpu,program,a98b,3,00,01
-;********(ipm invader)
-ipminvad:
-@:maincpu,program,c0,a,00,00
+;(power surge) (by GeoMan) - Hiscores appear correctly after game enters attract mode!
+psurge:
+@:maincpu,program,a86c,6,20,30
+@:maincpu,program,b080,50,31,ff
-;(sky chuter) (by GeoMan) - Hiscores are updated when game enters attract mode!
-skychut:
-@:maincpu,program,7b,f,0,0
-@:maincpu,program,406d,6,40,40
+;@s:konami/tmnt.cpp
+;Teenage Mutant Ninja Turtles (US & clones)
+tmht:
+tmht2p:
+tmht2pa:
+tmhta:
+tmhtb:
+tmnt:
+tmnt2pj:
+tmnt2po:
+tmnta:
+tmntj:
+tmntu:
+tmntua:
+tmntub:
+tmntuc:
+tmntucbl:
+@:maincpu,program,63500,f3,03,41
-;(space beam) (by GeoMan)
-spacbeam:
-@:maincpu,program,c6,b,0,0
-@:maincpu,program,0e,f,0,0
+;@s:konami/tmnt2.cpp
-;@s:m107.cpp
+;********(golfing greats)
+glfgreat:
+glfgreatj:
+glfgreatu:
+@:maincpu,program,100320,50,41,9
+@:maincpu,program,100400,50,41,9
-airass:
-firebarr:
-@:maincpu,program,e3252,8c,00,20
+tmht22pe:
+tmnt2:
+tmnt22pu:
+tmnt24pu:
+tmnt2a:
+@:maincpu,program,107600,14,03,01
+@:maincpu,program,1076c8,27,47,45
-;(dream soccer '94) and clones (by GeoMan)
-dsoccr94:
-dsoccr94j:
-dsoccr94k:
-@:maincpu,program,eb57b,80,10,04
-@:maincpu,program,ead6d,80,10,04
-@:maincpu,program,eb7a1,80,10,04
+tmht24pe:
+@:maincpu,program,107600,f3,03,41
-;@s:m52.cpp
-mpatrol:
-mpatrolw:
-mranger:
-@:maincpu,program,e008,2c,00,00
+blswhstl:
+blswhstla:
+detatwin:
+@:maincpu,program,207000,50,00,2e
+@:maincpu,program,204049,3,00,30
-;@s:m57.cpp
+prmrsocr:
+prmrsocrj:
+@:maincpu,program,100364,4c,59,40
+
-;newtangl:******New Tropical Angel
-newtangl:
-troangel:
-@:maincpu,program,e780,1e,02,4e
-@:maincpu,program,e0d3,3,02,00
+;(thunder cross 2)
+thndrx2:
+thndrx2a:
+thndrx2j:
+@:maincpu,program,1002f0,50,00,40
-;@s:m58.cpp
+;lgtnfghtu:******lightning fighters (us)
+lgtnfght:
+lgtnfghta:
+lgtnfghtu:
+trigon:
+@:maincpu,program,90400,50,41,50
+@:maincpu,program,90120,4,00,60
-10yard:
-10yard85:
-10yardj:
-vs10yard:
-vs10yardj:
-vs10yardu:
-@:maincpu,program,e600,8a,00,4a
-@:maincpu,program,e008,3,00,03
+;ssriderseaa:******Sunset Riders (4 Players ver EAA)
+ssriders:
+ssridersabd:
+ssriderseaa:
+ssridersebc:
+ssridersebd:
+ssridersjac:
+ssridersjbd:
+ssridersuab:
+ssridersuac:
+ssridersubc:
+ssridersuda:
+@:maincpu,program,104400,50,4b,00
+@:maincpu,program,104120,4,00,00
-;@s:m62.cpp
-kidnikib:
-yanchamr:
-@:maincpu,program,e062,6e,00,20
-@:maincpu,program,e02b,3,00,00
+;(punk shot (us 4 players)) and clones (by GeoMan)
+punkshot:
+punkshot2:
+punkshot2e:
+punkshotj:
+@:maincpu,program,80700,30,00,40
-;*******horizon(By Firebrand)
-horizon:
-@:maincpu,program,e801,96,28,23
-@:maincpu,program,e03c,2,28,06
+;@s:konami/tp84.cpp
+;tp84a:******time pilot '84 (set 2)
+tp84:
+tp84a:
+@:cpu1,program,57a0,1e,00,54
+@:cpu1,program,5736,03,00,00
-;******Little Hero
-lithero:
-@:maincpu,program,e062,6e,00,44
-@:maincpu,program,e02b,3,00,00
+;tp84b:******time pilot '84 (set 3)
+tp84b:
+@:cpu1,program,17a0,1e,00,54
+@:cpu1,program,1736,3,00,00
-lotlot:
-@:maincpu,program,e96b,226,02,00
-@:maincpu,program,e956,3,02,17
+;@s:konami/trackfld.cpp
-;(spelunker)
-spelunkr:
-spelunkrj:
-@:maincpu,program,e052,64,39,3f
-@:maincpu,program,e03b,2,39,08
+yieartf:
+@:maincpu,program,2d20,8c,00,10
+@:maincpu,program,2a1c,3,00,40
-ldrun2:
-ldrun3:
-ldrun3j:
-@:maincpu,program,e6bd,c8,00,05
-@:maincpu,program,e672,3,00,80
+;******Wizz Quiz (version 4)
+wizzquiz:
+@:maincpu,program,2b4f,221,4d,00
+@:maincpu,program,2d6e,1,05,05
-;Youjyudn (Japan) (by GeoMan)
-youjyudn:
-@:maincpu,program,e565,37,70,4e
+;@s:konami/tutankhm.cpp
+tutankhm:
+tutankhms:
+@:maincpu,program,88a9,31,03,01
+@:maincpu,program,88a6,3,03,40
-ldrun:
-ldruna:
-@:maincpu,program,e5e5,c8,01,04
-@:maincpu,program,e59a,3,04,40
+;@s:konami/twin16.cpp
-spelunk2:
-@:maincpu,program,e066,64,99,3f
-@:maincpu,program,e04f,2,99,11
+fround:
+froundl:
+hpuncher:
+@:maincpu,program,40070,4,01,00
+@:maincpu,program,40300,50,4a,00
-ldrun4:
-@:maincpu,program,e735,c8,00,06
-@:maincpu,program,e6ea,3,00,70
+;*******cuebrick
+cuebrick:
+cuebrickj:
+@:maincpu,program,60368,50,00,4f
-kungfub:
-kungfub2:
-kungfum:
-kungfumd:
-spartanx:
-@:maincpu,program,ea06,78,00,41
-@:maincpu,program,e980,3,52,00
+;(devil world)
+devilw:
+majuu:
+@:maincpu,program,60131,ef,00,10
+@:maincpu,program,60049,3,00,30
-battroad:
-@:maincpu,program,ed50,b0,00,08
+;(missing in action (version t))
+mia:
+mia2:
+miaj:
+@:maincpu,program,62100,4f,00,54
+@:maincpu,program,6012a,4,00,30
-;kidnikiu:******Kid Niki - Radical Ninja (us)
-kidniki:
-kidnikiu:
-@:maincpu,program,e062,69,00,2e
-@:maincpu,program,e02b,3,00,00
+darkadv:
+@:maincpu,program,60131,ef,00,10
-;@s:m63.cpp
+gradius2:
+gradius2a:
+gradius2b:
+vulcan:
+vulcana:
+vulcanb:
+@:maincpu,program,600a1,63,22,30
+@:maincpu,program,60058,4,00,30
+@:maincpu,program,60008,1,1d,1d
-atomboy:
-atomboya:
-wilytowr:
-@:maincpu,program,dd00,4,00,05
-@:maincpu,program,dd04,ac,0,0
-@:maincpu,program,e78d,6,ff,ff
+;@s:konami/ultraman.cpp
-;*******Fighting Basketball
-fghtbskt:
-@:maincpu,program,c0c0,28,03,dd
+ultraman:
+@:maincpu,program,8ff00,64,01,08
-;@s:m72.cpp
+;@s:konami/vendetta.cpp
-airduel:
-@:maincpu,program,d3d4e,82,15,20
+vendetta:
+vendetta2pd:
+vendetta2peba:
+vendetta2pp:
+vendetta2pu:
+vendetta2pun:
+vendetta2pw:
+vendettan:
+vendettar:
+vendettaun:
+vendettaz:
+@:maincpu,program,2980,28,00,48
-airduelm72:
-@:maincpu,program,a3d4e,82,15,20
+;@s:konami/wecleman.cpp
+;(wec le mans 24)
+;** only saves top 10 scores (ones you put your name to) **
+wecleman:
+weclemana:
+weclemanb:
+weclemanc:
+@:maincpu,program,41110,64,00,20
+@:maincpu,program,40006,4,00,00
-dkgensan:
-dkgensanm82:
-@:maincpu,program,e09a0,9f,40,20
-@:maincpu,program,e0a40,3,40,02
+hotchase:
+@:maincpu,program,610b0,50,00,0d
+@:maincpu,program,60034,4,00,00
-;rtypeb:******R-Type (World bootleg)
-rtype:
-rtypeb:
-rtypej:
-rtypeu:
-@:maincpu,program,42f4e,71,45,20
+;@s:konami/xexex.cpp
-gallop:
-@:maincpu,program,a3d00,6e,10,41
-@:maincpu,program,a3e14,03,10,06
-@:maincpu,program,a3dba,3c,00,5a
+xexex:
+xexexa:
+xexexj:
+@:maincpu,program,85000,63,00,1c
+@:maincpu,program,80057,3,00,30
-;dbreedm72:******dragon breed (m72 pcb version)
-dbreedm72:
-@:maincpu,program,9096a,03,58,00
-@:maincpu,program,90990,82,58,2e
-@:maincpu,program,90950,01,06,06
+;@s:konami/xmen.cpp
+xmen:
+xmen2pa:
+xmen2pe:
+xmen2pj:
+xmen2pu:
+xmen6p:
+xmen6pu:
+xmena:
+xmenaa:
+xmenj:
+xmenja:
+xmenu:
+xmenua:
+@:maincpu,program,113300,168,00,10
-;********cosmic cop(world)(by Firebrand)
-cosmccop:
-@:maincpu,program,e3c5e,6e,10,41
-@:maincpu,program,e3d72,03,10,06
-@:maincpu,program,e3d18,3c,00,5a
+;@s:konami/yiear.cpp
-;(ken-go) (by GeoMan)
-kengo:
-@:maincpu,program,e09f2,82,10,20
+yiear:
+@:maincpu,program,5520,8c,00,10
+@:maincpu,program,521c,3,00,40
-rtypejp:
-@:maincpu,program,42f4a,71,45,20
+yiear2:
+@:maincpu,program,5520,8c,00,10
+@:maincpu,program,521c,3,00,70
-loht:
-lohtb2:
-lohtb3:
-lohtj:
-@:maincpu,program,a3af4,32,36,20
-@:maincpu,program,a3adc,02,36,11
+;@s:meadows/meadows.cpp
+;(gypsy juggler) (by GeoMan) - Hiscore displays correctly after a new game starts!
+gypsyjug:
+@:maincpu,program,0e00,5,00,00
+@:maincpu,program,0e23,1,0e,0e
-xmultiplm72:
-@:maincpu,program,8099e,43,50,00
-@:maincpu,program,80998,06,00,00
+;(dead eye) (by GeoMan) - Hiscore displays correctly after a new game starts!
+deadeye:
+@:maincpu,program,0e00,6,0,0
+@:maincpu,program,0e2a,1,20,20
-xmultipl:
-@:maincpu,program,9c998,4,00,00
-@:maincpu,program,9c99d,44,00,00
-@:maincpu,program,9c9da,1,62,62
+;(inferno (s2650)) (by GeoMan)
+minferno:
+@:maincpu,program,1c3a,5,10,10
-bchopper:
-mrheli:
-@:maincpu,program,a37c0,78,63,60
-@:maincpu,program,a37ba,03,63,01
+;@s:metro/hyprduel.cpp
-hharry:
-@:maincpu,program,a09a0,9f,00,20
-@:maincpu,program,a0a40,03,00,00
+;hyprduel:******hyper duel (japan set 1)
+hyprduel:
+hyprduel2:
+@:maincpu,program,fff2a2,3c,00,01
+@:maincpu,program,fff2e2,1,ff,ff
-imgfight:
-imgfightj:
-@:maincpu,program,a334f,78,09,20
+;@s:metro/metro.cpp
+;(puzzli)
+puzzli:
+puzzlia:
+@:maincpu,program,80eabc,4c,00,4f
-rtype2:
-rtype2j:
-rtype2jc:
-@:maincpu,program,e3834,82,00,41
-@:maincpu,program,e38c2,7,f3,30
-@:maincpu,program,d0178,1,f3,f3
-@:maincpu,program,d017c,1,31,31
-@:maincpu,program,d0180,1,37,37
-@:maincpu,program,d0184,1,34,34
-@:maincpu,program,d0188,1,35,35
-@:maincpu,program,d018c,1,30,30
-@:maincpu,program,d0190,1,30,30
+;(dharma doujou)
+dharma:
+dharmag:
+dharmaj:
+dharmak:
+@:maincpu,program,40e302,4b,00,5a
-poundfor:
-poundforj:
-poundforu:
-@:maincpu,program,e2502,28,10,00
-@:maincpu,program,e252a,28,35,00
-@:maincpu,program,e2552,28,42,00
-@:maincpu,program,e257a,28,00,00
-@:maincpu,program,e25a2,28,11,00
-@:maincpu,program,e25ca,28,59,00
-@:maincpu,program,e25f2,28,68,00
-@:maincpu,program,e261a,28,70,00
-@:maincpu,program,e2642,28,57,00
-@:maincpu,program,e266a,28,41,00
+;********Last Fortress - Toride (German)
+lastfortg:
+lastfortj:
+@:maincpu,program,c0db1a,0a,01,64
-nspirit:
-nspiritj:
-@:maincpu,program,a3930,78,45,4f
-@:maincpu,program,a39ba,03,45,00
+;(pang pomms)
+pangpoms:
+pangpomsm:
+pangpomsn:
+@:maincpu,program,c0de63,77,10,01
-majtitle:
-majtitlej:
-@:maincpu,program,d2ba4,9b,4b,17
+;(mouja (japan))
+mouja:
+@:maincpu,program,f00064,12c,00,37
-;dbreed:******Dragon Breed (M81 pcb version)
-dbreed:
-@:maincpu,program,88990,82,58,2e
-@:maincpu,program,8896a,3,58,00
-@:maincpu,program,88959,1,2b,2b
+;*******grand striker 2 (japan)
+gstrik2:
+gstrik2j:
+@:maincpu,program,ffaef3,48,76,28
-;(hammerin' harry (world)) clones (by GeoMan)
-dkgensanm72:
-@:maincpu,program,a09a0,9f,40,20
-@:maincpu,program,a0a40,03,40,02
+;(karate tournament, the) (by GeoMan)
+karatour:
+@:maincpu,program,ffd4fe,c0,62,01
-hharryu:
-@:maincpu,program,e09a0,9f,00,20
-@:maincpu,program,e0a40,03,00,00
+;toride2j:******Toride II Adauchi Gaiden (Japan)
+toride2j:
+@:maincpu,program,40ecc0,5c,00,40
+@:maincpu,program,40eca4,4,00,00
+@:maincpu,program,40eca6,1,50,50
-;@s:m79amb.cpp
-m79amb:
-@:maincpu,program,4008,1,00,00
+;batlbubl:******Battle Bubble (v2.00)
+batlbubl:
+@:maincpu,program,f04b24,9a,54,03
-;@s:m90.cpp
+;daitorida:******Daitoride (YMF278B version)
+daitorida:
+@:maincpu,program,f042ba,4a,00,01
-;atompunk:******atomic punk (us)
-atompunk:
-dynablst:
-dynablstb:
-dynablstb2:
-dynablstb3:
-@:maincpu,program,a0b2c,8f,03,03
-@:maincpu,program,a0c0f,3,40,00
+;toride2gg:******toride ii adouchi gaiden (german)
+toride2gg:
+@:maincpu,program,40ece2,4c,00,40
+@:maincpu,program,40ecc6,4,00,00
+@:maincpu,program,40ecc8,1,50,50
-;riskchal:******risky challenge
-gussun:
-riskchal:
-@:maincpu,program,a3c6b,1ba,00,18
+;(dai toride) (by GeoMan)
+daitorid:
+@:maincpu,program,8042ba,28,00,40
+@:maincpu,program,8042e2,28,02,00
-;bbmanwj:**** top score not working ?????
-bbmanw:
-bbmanwj:
-bbmanwja:
-bomblord:
-@:maincpu,program,a0b36,6a,02,2e
+skyalert:
+@:maincpu,program,c0e340,5c,00,08
-bombrman:
-@:maincpu,program,a0b1b,8c,03,63
-@:maincpu,program,a0bfe,3,40,00
+;******Gun Master
+gunmast:
+@:maincpu,program,80e308,4b,00,ae
-;(hasamu (japan)) (by GeoMan)
-hasamu:
-@:maincpu,program,a3115,105,00,04
+vmetal:
+vmetaln:
+@:maincpu,program,ff000e,53,00,49
-;@s:m92.cpp
-;blade master and cross blades (thanks to takasaki)
-bmaster:
-crossbld:
-@:maincpu,program,e750e,80,d3,00
+;(pururun)
+pururun:
+@:maincpu,program,80f2b8,4b,00,85
-uccopsar:
-uccopsj:
-@:maincpu,program,e3e7c,49,30,01
+msgogo:
+@:maincpu,program,f032d6,47,00,0e
-;(mystic raiders (world)) and clones (by GeoMan)
-gunhohki:
-mysticri:
-@:maincpu,program,e8af8,38,00,4d
-@:maincpu,program,e8b30,94,2e,00
+;(last fortress - toride / erotic)
+lastfort:
+lastforte:
+lastfortea:
+lastfortk:
+@:maincpu,program,40db1a,0a,01,64
-majtitl2j:
-@:maincpu,program,ed542,140,4b,00
+;toride2g:******toride ii adouchi gaiden
+toride2g:
+toride2gk:
+@:maincpu,program,40c5f4,4,00,00
+@:maincpu,program,40c5f6,1,50,50
+@:maincpu,program,40c60a,4c,00,40
-;******Hook (Japan)
-hookj:
-@:maincpu,program,ea6b7,ec,00,4f
+;(lady killer)
+ladykill:
+moegonta:
+@:maincpu,program,ffe20f,67,00,8c
-;(undercover cops (world))
-uccops:
-uccopsu:
-@:maincpu,program,e3e9a,49,30,01
+;(blazing tornado)
+blzntrnd:
+@:maincpu,program,ff9338,50,02,00
+@:maincpu,program,ff9385,1,10,10
-;(in the hunt (world)) and clones (by GeoMan) - FIXED ENTRY!
-inthunt:
-inthuntu:
-kaiteids:
-@:maincpu,program,e0180,d8,00,02
+;(poitto!)
+poitto:
+@:maincpu,program,40e31a,4e,00,41
+@:maincpu,program,40e2ec,4,00,00
+@:maincpu,program,40e2ed,1,02,02
-;(lethal thunder)
-lethalth:
-thndblst:
-@:maincpu,program,e0086,b7,00,08
+;(bal cube)
+balcube:
+@:maincpu,program,f04ac0,4a,00,02
-;(gunforce 2)
-geostorm:
-gunforc2:
-@:maincpu,program,ea5ae,4b,00,a6
+;(bang bang ball (v1.05))
+bangball:
+@:maincpu,program,f04b24,9a,46,03
-;(ninja baseball batman (us))
-leaguemn:
-nbbatman:
-nbbatmanu:
-@:maincpu,program,e25d4,4f,00,03
+;@s:metro/rabbit.cpp
+rabbit:
+rabbita:
+rabbitj:
+rabbitjt:
+@:maincpu,program,fffea4,2f,00,4b
-;*******(perfect soldiers (japan))
-psoldier:
-ssoldier:
-@:maincpu,program,e1b0f,31,10,31
-@:maincpu,program,e0032,1,06,06
+;@s:midcoin/wallc.cpp
-gunforcej:
-@:maincpu,program,e6633,40,44,4f
+;*******wall crash
+;wallca:******Wall Crash (set 2)
+brkblast:
+wallc:
+wallca:
+@:maincpu,program,a200,28,00,01
+@:maincpu,program,a284,4,00,00
-;(gunforce - battle fire engulfed terror island (world))
-gunforce:
-gunforceu:
-@:maincpu,program,e6633,40,44,20
+;@s:midw8080/8080bw.cpp
+;updated when start a game
+desterth:
+escmars:
+lrescue:
+lrescuem:
+lrescuem2:
+resclunar:
+@:maincpu,program,20db,1,0a,0a
+@:maincpu,program,20cf,a,1b,1b
+@:maincpu,program,20f4,2,00,05
-hook:
-hooku:
-@:maincpu,program,ea6ad,ec,00,4f
+polarisa:
+polarisbr:
+@:maincpu,program,2150,14,00,00
+@:maincpu,program,2165,1e,2a,2a
+@:maincpu,program,2314,02,00,00
-rtypeleo:
-rtypeleoj:
-@:maincpu,program,e221e,38,40,20
-@:maincpu,program,e2256,3,40,01
-@:maincpu,program,dc148,1,20,20
-@:maincpu,program,dc14c,1,31,31
-@:maincpu,program,dc150,1,32,32
-@:maincpu,program,dc154,1,38,38
-@:maincpu,program,dc158,1,34,34
-@:maincpu,program,dc15c,1,30,30
-@:maincpu,program,dc160,1,30,30
+polaris:
+polarisb:
+polariso:
+@:maincpu,program,2314,02,00,00
-;(major title 2 (world)) and clones (by GeoMan)
-majtitl2:
-skingame:
-skingame2:
-@:maincpu,program,ed542,140,4d,00
+invaddlx:
+invadpt2:
+invadpt2a:
+invadpt2br:
+@:maincpu,program,20f4,2,00,05
+@:maincpu,program,2340,a,1b,1b
-;@s:macrossp.cpp
-;********(macross plus)
-macrossp:
-@:maincpu,program,f16ddc,5e,00,14
+alieninvp2:
+searthie:
+supinvsion:
+@:maincpu,program,20f4,02,00,50
-;@s:madalien.cpp
+cosmicin:
+galmonst:
+invader4:
+invaders:
+invadersem:
+invadrmr:
+invasion:
+invasiona:
+invasiona2:
+invasionb:
+invasionrz:
+invasionrza:
+searthin:
+searthina:
+sicv:
+sicv1:
+sinvemag:
+sinvzen:
+sisv:
+sisv1:
+sisv2:
+sisv3:
+sitv:
+sitv1:
+spaceat2:
+spaceatt:
+spaceatt2k:
+spaceattbp:
+spacecom:
+spacerng:
+spceking:
+superinv:
+ultrainv:
+@:maincpu,program,20f4,02,00,00
-;** only top score saved properly, although all other scores do save **
-;** they go in the wrong order ???? **
-;madaliena:******Mad Alien (Highway Chase)
-madalien:
-madaliena:
-madalienb:
-@:maincpu,program,000b,2,00,00
-@:maincpu,program,6ef0,d6,00,00
-@:maincpu,program,300,c,00,00
-@:maincpu,program,604d,5,01,01
-@:maincpu,program,6050,1,01,01
+crashrd:
+@:maincpu,program,233f,03,01,00
+@:maincpu,program,2244,0a,02,1b
-;@s:magmax.cpp
-magmax:
-@:maincpu,program,18ce0,46,00,00
-@:maincpu,program,18d2e,4,00,00
-@:maincpu,program,18d23,1,35,35
+invadernc:
+@:maincpu,program,20e0,3,00,00
-;@s:mainevt.cpp
+;****** space invaders clones fixes (i didn't realise you could enter your initials !!)
+spacewr3:
+spcewarla:
+spcewars:
+swipeout:
+@:maincpu,program,20f4,02,00,00
+@:maincpu,program,2e3e,1,7f,7f
+@:maincpu,program,2e5e,1,08,08
+@:maincpu,program,2e7e,1,08,08
+@:maincpu,program,2e9e,1,08,08
+@:maincpu,program,2ebe,1,7f,7f
+@:maincpu,program,2f3e,1,00,00
+@:maincpu,program,2f5e,1,41,41
+@:maincpu,program,2f7e,1,7f,7f
+@:maincpu,program,2f9e,1,41,41
+@:maincpu,program,2fbe,1,00,00
+@:maincpu,program,303e,1,08,08
+@:maincpu,program,305e,1,08,08
+@:maincpu,program,307e,1,08,08
+@:maincpu,program,309e,1,08,08
+@:maincpu,program,30be,1,08,08
+@:maincpu,program,313e,1,32,32
+@:maincpu,program,315e,1,49,49
+@:maincpu,program,317e,1,49,49
+@:maincpu,program,319e,1,49,49
+@:maincpu,program,31be,1,26,26
+@:maincpu,program,323e,1,3e,3e
+@:maincpu,program,325e,1,41,41
+@:maincpu,program,327e,1,41,41
+@:maincpu,program,329e,1,41,41
+@:maincpu,program,32be,1,22,22
+@:maincpu,program,333e,1,3e,3e
+@:maincpu,program,335e,1,41,41
+@:maincpu,program,337e,1,41,41
+@:maincpu,program,339e,1,41,41
+@:maincpu,program,33be,1,3e,3e
+@:maincpu,program,343e,1,7f,7f
+@:maincpu,program,345e,1,48,48
+@:maincpu,program,347e,1,4c,4c
+@:maincpu,program,349e,1,4a,4a
+@:maincpu,program,34be,1,31,31
+@:maincpu,program,353e,1,7f,7f
+@:maincpu,program,355e,1,49,49
+@:maincpu,program,357e,1,49,49
+@:maincpu,program,359e,1,49,49
+@:maincpu,program,35be,1,41,41
-;Devastators clones
-devstors:
-devstors2:
-devstorsv:
-devstorsx:
-garuka:
-@:maincpu,program,41c4,2e,01,01
+ozmawarsmr:
+@:maincpu,program,2043,02,00,00
+@:maincpu,program,2023,01,01,01
-;Main Event (by GeoMan)
-mainevt:
-mainevt2p:
-mainevto:
-ringohja:
-@:maincpu,program,415d,45,ae,77
+darthvdr:
+@:maincpu,program,1c08,2,00,00
-;@s:mappy.cpp
-grobda:
-grobda2:
-grobda3:
-@:maincpu,program,1b00,a0,20,00
-@:maincpu,program,0951,04,00,00
+attackfc:
+@:maincpu,program,2080,60,00,24
+@:maincpu,program,2047,2,00,00
-motos:
-@:maincpu,program,2400,a0,20,00
-@:maincpu,program,1831,4,00,00
+;******Cosmic Monsters 2
+;cosmicmo:******cosmic monsters (*)
+cosmicm2:
+cosmicmo:
+@:maincpu,program,20f4,03,00,00
-todruaga:
-todruagao:
-todruagas:
-@:maincpu,program,102a,32,00,45
-@:maincpu,program,100b,3,00,00
+rollingc:
+@:maincpu,program,2302,0f,00,00
-digdug2:
-digdug2o:
-@:maincpu,program,11b0,50,00,01
-@:maincpu,program,100b,3,00,00
-@:maincpu,program,7ed,7,30,20
+;indianbt:******Indian Battle
+indianbt:
+indianbtbr:
+@:maincpu,program,2314,2,00,00
-phozon:
-phozons:
-@:maincpu,program,1409,30,00,59
-@:maincpu,program,105d,3,00,00
-@:maincpu,program,03ee,7,30,20
+galactic:
+spacmiss:
+@:maincpu,program,20a8,3,00,00
-mappy:
-mappyj:
-@:maincpu,program,1460,28,00,41
-@:maincpu,program,1385,3,00,00
-@:maincpu,program,07ed,6,00,20
-@:maincpu,program,7e0,2,00,02
+;yosakdona:******yokasu to donbei (set 2)
+yosakdon:
+yosakdona:
+@:maincpu,program,23ab,3,00,00
-pacnchmp:
-pacnpal:
-pacnpal2:
-@:maincpu,program,104c,28,00,23
-@:maincpu,program,116d,3,00,00
-@:maincpu,program,3ed,7,00,24
+ballbomb:
+lupin3:
+@:maincpu,program,20dc,03,00,00
+@delay=0.25
-superpac:
-superpacm:
-@:maincpu,program,1138,28,00,20
-@:maincpu,program,1087,3,00,00
-@:maincpu,program,3ee,7,30,20
+invrvnge:
+invrvngea:
+invrvngeb:
+invrvngedu:
+invrvngegw:
+@:maincpu,program,2019,3,00,00
-;@s:marineb.cpp
+;shuttlei:******shuttle invader
+shuttlei:
+@:maincpu,program,4008,3,00,00
-changes:
-changesa:
-looper:
-@:maincpu,program,899a,6,26,27
-@:maincpu,program,89ba,6,00,00
-@:maincpu,program,8a1a,6,26,27
-@:maincpu,program,8a3a,6,00,00
-@:maincpu,program,8a9a,6,26,27
-@:maincpu,program,8aba,6,00,00
+moonbase:
+moonbasea:
+@:maincpu,program,2340,a,0d,14
+@:maincpu,program,20f4,2,00,05
-;(battle cruiser m12)
-bcruzm12:
-@:maincpu,program,858c,45,00,12
+galxwars:
+galxwars2:
+galxwarst:
+galxwarst2:
+starw:
+starw1:
+@:maincpu,program,2005,06,00,00
-;wanted:* not saving whole table
-wanted:
-@:maincpu,program,8a5e,1,00,00
-@:maincpu,program,8a3e,1,03,03
-@:maincpu,program,8a1e,1,00,00
-@:maincpu,program,89fe,1,00,00
-@:maincpu,program,89de,1,00,00
-@:maincpu,program,81b4,4c,00,16
+;(space laser) and clones (by GeoMan)
+intruder:
+laser:
+spcewarl:
+spclaser:
+@:maincpu,program,2034,2,0,0
+@:maincpu,program,205b,1,3d,3d
+@:maincpu,program,2e70,4a1,0,0
+@:maincpu,program,2034,2,0,0
+@:maincpu,program,2058,1,9,9
+@:maincpu,program,2e70,4a1,0,0
-marineb:
-@:maincpu,program,8979,6,24,24
-@:maincpu,program,8999,6,00,00
+schasercv:
+@:maincpu,program,233d,03,01,00
-hopprobo:
-@:maincpu,program,805f,19,00,00
-@:maincpu,program,8078,1e,1c,0e
-@:maincpu,program,89be,1,00,00
-@:maincpu,program,89de,1,01,01
-@:maincpu,program,89fe,1,06,06
-@:maincpu,program,8a1e,1,07,07
-@:maincpu,program,8a3e,1,00,00
+;mlander:******Moon Lander (bootleg of Lunar Rescue)
+mlander:
+@:maincpu,program,20c0,1,0a,0a
+@:maincpu,program,20cf,a,1b,1b
+@:maincpu,program,20f4,2,00,05
-hoccer:
-@:maincpu,program,8550,32,00,01
-@:maincpu,program,85ca,6,00,00
+invaderl:
+@:maincpu,program,20e0,03,00,00
-hoccer2:
-@:maincpu,program,8550,2d,00,29
-@:maincpu,program,85ca,6,00,00
+jspecter:
+jspecter2:
+@:maincpu,program,20f4,2,00,00
+@:maincpu,program,2300,2,00,00
-springer:
-@:maincpu,program,8afa,5,00,00
-@:maincpu,program,8b1a,5,00,00
-@:maincpu,program,8b3a,5,02,02
-@:maincpu,program,8b5a,5,00,00
-@:maincpu,program,8b7a,5,00,00
-@:maincpu,program,8b9a,5,00,00
-@:maincpu,program,8bba,5,00,00
+alieninv:
+@:maincpu,program,20f4,2,00,50
-;@s:mario.cpp
-mario:
-mariobl:
-mariobla:
-marioe:
-mariof:
-marioj:
-masao:
-@:maincpu,program,6b00,aa,97,74
-@:maincpu,program,6c00,3c,00,00
-@:maincpu,program,6823,3,01,00
+schaser:
+schasera:
+schaserb:
+schaserc:
+@:maincpu,program,2244,0a,1b,1b
+@:maincpu,program,233f,03,01,00
+
+
+;*******cosmo
+cosmo:
+@:maincpu,program,2038,3,00,00
+@:maincpu,program,2e22,1,7c,7c
+@:maincpu,program,2e42,1,82,82
+@:maincpu,program,2e62,1,82,82
+@:maincpu,program,2e82,1,82,82
+@:maincpu,program,2ea2,1,7c,7c
+@:maincpu,program,2f22,1,00,00
+@:maincpu,program,2f42,1,00,00
+@:maincpu,program,2f62,1,00,00
+@:maincpu,program,2f82,1,00,00
+@:maincpu,program,2fa2,1,00,00
+@:maincpu,program,3022,1,00,00
+@:maincpu,program,3042,1,00,00
+@:maincpu,program,3062,1,00,00
+@:maincpu,program,3082,1,00,00
+@:maincpu,program,30a2,1,00,00
+@:maincpu,program,3122,1,00,00
+@:maincpu,program,3142,1,00,00
+@:maincpu,program,3162,1,00,00
+@:maincpu,program,3182,1,00,00
+@:maincpu,program,31a2,1,00,00
+@:maincpu,program,3222,1,00,00
+@:maincpu,program,3242,1,00,00
+@:maincpu,program,3262,1,00,00
+@:maincpu,program,3282,1,00,00
+@:maincpu,program,32a2,1,00,00
+@:maincpu,program,3322,1,00,00
+@:maincpu,program,3342,1,00,00
+@:maincpu,program,3362,1,00,00
+@:maincpu,program,3382,1,00,00
+@:maincpu,program,33a2,1,00,00
+@:maincpu,program,3422,1,00,00
+@:maincpu,program,3442,1,00,00
+@:maincpu,program,3462,1,00,00
+@:maincpu,program,3482,1,00,00
+@:maincpu,program,34a2,1,00,00
+
+;skylove:******Sky Love
+skylove:
+@:maincpu,program,414b,3,00,00
+@:maincpu,program,297d,2,0f,fc
+@:maincpu,program,299d,2,0f,fc
+@:maincpu,program,29bd,2,0c,0c
+@:maincpu,program,29dd,2,0c,0c
+@:maincpu,program,29fd,2,0c,0c
+@:maincpu,program,2a1d,2,0f,fc
+@:maincpu,program,2a3d,2,0f,fc
+@:maincpu,program,2a9d,2,0f,fc
+@:maincpu,program,2abd,2,0f,fc
+@:maincpu,program,2add,2,0c,0c
+@:maincpu,program,2afd,2,0c,0c
+@:maincpu,program,2b1d,2,0c,0c
+@:maincpu,program,2b3d,2,0f,fc
+@:maincpu,program,2b5d,2,0f,fc
+@:maincpu,program,2bbd,2,0f,fc
+@:maincpu,program,2bdd,2,0f,fc
+@:maincpu,program,2bfd,2,0c,0c
+@:maincpu,program,2c1d,2,0c,0c
+@:maincpu,program,2c3d,2,0c,0c
+@:maincpu,program,2c5d,2,0f,fc
+@:maincpu,program,2c7d,2,0f,fc
+@:maincpu,program,2cdd,2,0f,fc
+@:maincpu,program,2cfd,2,0f,fc
+@:maincpu,program,2d1d,2,0c,0c
+@:maincpu,program,2d3d,2,0c,0c
+@:maincpu,program,2d5d,2,0c,0c
+@:maincpu,program,2d7d,2,0f,fc
+@:maincpu,program,2d9d,2,0f,fc
+@:maincpu,program,2dfd,2,0f,fc
+@:maincpu,program,2e1d,2,0f,fc
+@:maincpu,program,2e3d,2,0c,0c
+@:maincpu,program,2e5d,2,0c,0c
+@:maincpu,program,2e7d,2,0c,0c
+@:maincpu,program,2e9d,2,0f,fc
+@:maincpu,program,2ebd,2,0f,fc
-;@s:markham.cpp
-;Markham (by GeoMan)
-markham:
-@:maincpu,program,c0c4,3c,2a,00
+;*******steelwkr
+steelwkr:
+@:maincpu,program,200a,06,00,00
-;(pettan pyuu (japan)) (by GeoMan)
-pettanp:
-@:maincpu,program,c0c2,1e,20,00
+ozmawars:
+ozmawars2:
+solfight:
+spaceph:
+@:maincpu,program,2043,02,00,00
-;(strength & skill) and clones (by GeoMan)
-guiness:
-strnskil:
-@:maincpu,program,c0c4,1e,22,00
-@:maincpu,program,c430,60,09,00
+;*******straight flush
+;** gotta love those early videoram games !! **
+sflush:
+@:maincpu,program,215,3,00,00
+@:maincpu,program,4e3d,1,00,00
+@:maincpu,program,4e5d,1,00,00
+@:maincpu,program,4e7d,1,00,00
+@:maincpu,program,4e9d,1,00,00
+@:maincpu,program,4ebd,1,00,00
+@:maincpu,program,4f3d,1,00,00
+@:maincpu,program,4f5d,1,00,00
+@:maincpu,program,4f7d,1,00,00
+@:maincpu,program,4f9d,1,00,00
+@:maincpu,program,4fbd,1,00,00
+@:maincpu,program,503d,1,00,00
+@:maincpu,program,505d,1,00,00
+@:maincpu,program,507d,1,00,00
+@:maincpu,program,509d,1,00,00
+@:maincpu,program,50bd,1,00,00
+@:maincpu,program,513d,1,3e,3e
+@:maincpu,program,515d,1,45,45
+@:maincpu,program,517d,1,49,49
+@:maincpu,program,519d,1,51,51
+@:maincpu,program,51bd,1,3e,3e
+@:maincpu,program,523d,1,3e,3e
+@:maincpu,program,525d,1,45,45
+@:maincpu,program,527d,1,49,49
+@:maincpu,program,529d,1,51,51
+@:maincpu,program,52bd,1,3e,3e
+@:maincpu,program,533d,1,00,00
+@:maincpu,program,535d,1,00,00
+@:maincpu,program,537d,1,00,00
+@:maincpu,program,539d,1,00,00
+@:maincpu,program,53bd,1,00,00
-;@s:matmania.cpp
+;@s:midw8080/mw8080bw.cpp
-maniach:
-maniach2:
-@:maincpu,program,052b,3c,00,c6
-@:maincpu,program,0028,3,00,00
+;seawolf:[Special thanks to Cananas for enhancing this entry]
+seawolf:
+seawolfo:
+@:maincpu,program,2006,01,00,00
+@:maincpu,program,2001,01,09,09
-excthour:
-matmania:
-@:maincpu,program,0700,50,00,b0
-@:maincpu,program,0028,3,00,00
+blueshrk:
+blueshrkmr:
+blueshrkmr2:
+@:maincpu,program,200a,05,00,00
-;@s:mazerbla.cpp
+;** lagunar - wait until cars race in attract mode for hi-scores to appear ***
+lagunar:
+@:maincpu,program,2011,9,00,00
+@:maincpu,program,2005,3,00,00
+@:maincpu,program,2031,1,89,89
-;******great guns(By Firebrand)
-greatgun:
-@:maincpu,program,e00b,53,55,50
+spcenctr:
+@:maincpu,program,26f0,2,0e,0e
+@:maincpu,program,202e,2,00,00
+@:maincpu,program,202b,2,00,00
-;@s:mcatadv.cpp
-;********(nostradamus)
-nost:
-@:maincpu,program,100350,29,59,00
-@:maincpu,program,100019,3,01,00
+bowler:
+@:maincpu,program,22a0,08,00,00
-;catt:******Catt (Japan)
-catt:
-mcatadv:
-mcatadvj:
-@:maincpu,program,101bd3,31,05,2b
+;clowns:*** dont start game untill attract mode starts.(hiscore also updated then)
+;clowns1:*** dont start game untill attract mode starts.(hiscore also updated then)
+clowns:
+clowns1:
+@:maincpu,program,2015,02,00,00
+@:maincpu,program,3ea0,140,00,66
-;@s:mcr.cpp
+280zzzap:
+@:maincpu,program,203d,2,00,00
+@:maincpu,program,2029,4,00,00
+
+
+desertgu:
+@:maincpu,program,2006,02,00,00
+@:maincpu,program,200b,02,00,00
+
+
+;@s:midway/astrocde.cpp
+
+spacezap:
+@:maincpu,program,d041,6,0,0
+@:maincpu,:protected_ram/share,001d,6,00,00
+@:maincpu,:protected_ram/share,000f,1,ff,ff
+
+
+;gorf:* resetting screws up 2 scores and top score
+gorf:
+gorfpgm1:
+gorfpgm1g:
+@:maincpu,:protected_ram/share,0010,22,00,00
+
+
+robby:
+@:maincpu,program,e1c7,21,4a,4b
+@:maincpu,program,e161,1e,50,58
+@:maincpu,program,e19d,2a,9e,47
+@:maincpu,program,e13b,26,10,17
+@:maincpu,program,e3c7,21,4a,4b
+@:maincpu,program,e361,1e,50,58
+@:maincpu,program,e39d,2a,9e,47
+@:maincpu,program,e33b,26,10,17
+
+
+;seawolf2:*loading score seems to auto start a game?
+seawolf2:
+@:maincpu,program,c208,2,00,00
+
+
+;wow:*resetting screws up the 1st score
+wow:
+wowg:
+@:maincpu,program,d004,14,00,00
+@:maincpu,program,d304,14,00,00
+
+
+;@s:midway/mcr.cpp
demoderb:
@:maincpu,program,e4e4,ce,01,00
@:maincpu,program,e7f7,1,76,76
-;@s:mcr68.cpp
+;@s:midway/mcr68.cpp
+
+archrivl:
+basketbal:
+@:maincpu,program,62cf1,319,09,05
+@:maincpu,program,61ed5,1,03,03
+
;(spy hunter 2 (rev 1 & 2))
spyhunt2:
@@ -8569,11 +8310,6 @@ pigskinb:
@:maincpu,program,142b4d,157,05,03
-archrivl:
-@:maincpu,program,62cf1,319,09,05
-@:maincpu,program,61ed5,1,03,03
-
-
archrivla:
archrivlb:
@:maincpu,program,62ce3,319,09,05
@@ -8589,588 +8325,599 @@ pigskin:
@:maincpu,program,142a17,157,05,03
-;@s:meadows.cpp
+;@s:midway/omegrace.cpp
-;(gypsy juggler) (by GeoMan) - Hiscore displays correctly after a new game starts!
-gypsyjug:
-@:maincpu,program,0e00,5,00,00
-@:maincpu,program,0e23,1,0e,0e
+;********omegrace
+deltrace:
+omegrace:
+@:maincpu,program,43a9,7e,50,48
+@:maincpu,program,4be8,1,08,08
-;(dead eye) (by GeoMan) - Hiscore displays correctly after a new game starts!
-deadeye:
-@:maincpu,program,0e00,6,0,0
-@:maincpu,program,0e2a,1,20,20
+;@s:midway/spyhuntertec.cpp
+spyhuntsp:
+@:maincpu,program,f439,59,00,00
+@delay=3.5
-;(inferno (s2650)) (by GeoMan)
-minferno:
-@:maincpu,program,1c3a,5,10,10
+;@s:midway/williams.cpp
-;@s:megadriv.cpp
+;***** robotron ( & clones ) can be buggy *******
+robotron:
+robotron87:
+robotrontd:
+@:maincpu,program,cf6e,8c,f4,f0
-genesis,tf3:
-@:maincpu,program,fff2ac,4,00,90
+robotron12:
+robotronun:
+robotronyo:
+@:maincpu,program,cf6e,8c,f4,f0
+@delay=12
-;@s:megadriv_acbl.cpp
-barek3mb:
-@:maincpu,program,e0ff31,99,01,04
+;*********((red label))
+;*** this saves just the today`s best scores, the all time greatest are ***
+;*** saved using nvram ***
+;defenderb:******defender (blue label)
+defcmnd:
+defence:
+defender:
+defenderb:
+defenderg:
+defenderw:
+defenseb:
+galwars2:
+startrkd:
+@:maincpu,program,b260,60,00,48
-ssf2mdb:
-@:maincpu,program,fffcb3,29,00,20
+;** this saves the daily hiscores(daily buzzards), the joust champions are saved in nv ram **
+joust:
+joustr:
+jousty:
+@:maincpu,program,cfa4,54,f1,f5
-;@s:megaphx.cpp
+tornado1:
+zero:
+zero2:
+@:maincpu,program,b260,60,00,58
-megaphx:
-@:maincpu,program,c54,9f,1f,30
+;(mayday (set 1))
+batlzone:
+mayday:
+maydaya:
+maydayb:
+@:maincpu,program,b260,3c,00,55
-;@s:megasys1.cpp
-rodland:
-rodlanda:
-@:maincpu,program,f60fc,226,00,01
-@:maincpu,program,f3030,14,00,00
+;** this saves the daily hiscores(daily heros), the legendary heros are saved in nv ram **
+;joust2:******joust 2 - survival of the fittest (set 1)
+joust2:
+joust2r1:
+@:maincpu,program,cfaa,54,f1,f9
-;(saint dragon)
-stdragon:
-stdragona:
-@:maincpu,program,f8d00,7c,00,d3
+;jin:******jin
+jin:
+@:maincpu,program,a200,3f,30,4e
-;(iga ninjyutsuden (japan))
-iganinju:
-@:maincpu,program,f0004,4,00,00
-@:maincpu,program,f4001,97,20,ac
-@:maincpu,program,f0010,8,30,30
+;@s:midway/zwackery.cpp
+zwackery:
+@:maincpu,program,842c2,48,42,00
-;(peek-a-boo!) (by GeoMan)
-peekaboo:
-peekaboou:
-@:maincpu,program,1f0278,60,00,fa
-@:maincpu,program,1f0380,4,00,00
+;@s:misc/4enraya.cpp
-;(legend of makai (world)) and clones (by GeoMan)
-;names don't seems to save correctly even without the plugin
-lomakai:
-makaiden:
-@:maincpu,:ram/share,f000,2,00,03
-@:maincpu,:ram/share,f002,7e,00,00
-@:maincpu,:ram/share,e060,4,00,00
+4enrayaa:
+@:maincpu,program,c13e,6c,01,0c
-;(takeda shingen (japan))
-tshingen:
-tshingena:
-@:maincpu,program,f0f00,3a,00,4e
+;********(4 en raya)
+4enraya:
+@:maincpu,program,c152,6c,01,0c
-;(hachoo)
-hachoo:
-@:maincpu,program,f0072,100,00,59
-@:maincpu,program,f017e,4,00,00
-@:maincpu,program,f0073,1,05,05
+;@s:misc/alinvade.cpp
+alinvade:
+@:maincpu,program,9f,3,00,00
-;kazan:******Ninja Kazan (World)
-kazan:
-@:maincpu,program,f4001,97,20,ac
-@:maincpu,program,f0004,4,00,00
-@:maincpu,program,f0010,08,30,30
+;@s:misc/amspdwy.cpp
-;edfu:******E.D.F. : Earth Defense Force (North America)
-edf:
-edfa:
-edfbl:
-edfu:
-@:maincpu,program,64c17,107,01,00
-@:maincpu,program,61d3e,4,00,00
-@:maincpu,program,64ccb,1,09,09
+;(american speedway (set 1)) and clones (by GeoMan)- * UNDER TEST *
+amspdwy:
+amspdwya:
+@:maincpu,program,e402,190,50,00
+@:maincpu,program,e602,190,50,00
+@:maincpu,program,e3de,23,00,5c
-lordofk:
-@:maincpu,program,f8921,97,00,4e
-@:maincpu,program,f8875,f,00,00
-@:maincpu,program,f887b,1,02,02
+;@s:misc/attckufo.cpp
+attckufo:
+@:maincpu,program,ca,2,00,00
+@:maincpu,program,2e3,1,a0,a0
+@:maincpu,program,2fa,1,a0,a0
+@:maincpu,program,311,1,a0,a0
+@:maincpu,program,328,1,a0,a0
-;(soldam (japan))
-;** you must let the game display the highscore in attract mode before **
-;** starting a game - just like in star force **
-soldam:
-soldamj:
-@:maincpu,program,1f00ba,8,00,00
-@:maincpu,program,1f3fbe,24a,00,81
+;@s:misc/beaminv.cpp
-;(cybattler)
-cybattlr:
-@:maincpu,program,1f0101,ed,02,20
+;********(beam invader)
+beaminv:
+ctainv:
+pacominv:
+pacominva:
+@:maincpu,program,1833,3,00,00
-;(the astyanax)
-;** top score updates when first game starts **
-astyanax:
-@:maincpu,program,f8909,97,00,4e
-@:maincpu,program,f885d,f,00,00
-@:maincpu,program,f8863,1,02,02
+;@s:misc/beezer.cpp
+;(beezer (set2)) clone - modified hiscore save (by GeoMan)
+beezer1:
+@:maincpu,program,0503,50,55,00
-p47:
-p47j:
-p47je:
-@:maincpu,program,f1800,78,00,4f
+;(beezer (set1)) (by GeoMan)
+beezer:
+@:maincpu,program,0507,50,55,00
-avspirit:
-@:maincpu,program,79df2,53,00,54
+;@s:misc/cocoloco.cpp
-64street:
-64streetj:
-@:maincpu,program,ff8843,74,00,43
+cocoloco:
+cocolocoa:
+cocolocob:
+@:maincpu,program,53,02,00,00
+@:maincpu,program,2170,25,3e,3e
-phantasm:
-@:maincpu,program,ff9dee,53,00,54
+;@s:misc/cvs.cpp
+;(logger fixed)
+logger:
+loggerr2:
+@:maincpu,program,3c09,68,00,00
-chimerab:
-@:maincpu,program,ff8850,a7,00,00
+;(radar zone - Fixed)
+outline:
+radarzon:
+radarzon1:
+radarzont:
+@:maincpu,program,1c08,67,00,00
-rodlandj:
-rodlandjb:
-@:maincpu,program,f60fa,226,00,01
-@:maincpu,program,f302e,13,00,00
+;(gold bug)
+goldbug:
+@:maincpu,program,3d09,1e,00,00
-plusalph:
-@:maincpu,program,f2f36,168,00,43
+;(space fortress) (by GeoMan)
+spacefrt:
+@:maincpu,program,1c00,10,00,1b
+@:maincpu,program,1c18,44,1b,00
-;@s:megatech.cpp
-;******megatech: e-swat
-mt_eswat:
-@:maincpu,program,ffff04,3,00,00
+;*******digger (cvs)
+diggerc:
+@:maincpu,program,1cf8,2e,00,00
+@:maincpu,program,1c01,1,a2,a2
-;******megatech: columns
-mt_cols:
-@:maincpu,program,fefa20,8e,00,00
+cosmos:
+@:maincpu,program,3c00,52,00,00
-;@s:megazone.cpp
+;(dark warrior) (by GeoMan)
+darkwar:
+@:maincpu,program,1e3e,20,0,0
+@:maincpu,program,1e5e,3c,0,0
+@:maincpu,program,1e9a,a,0,0
-megazone:
-megazonea:
-megazoneb:
-megazoneh:
-megazonei:
-megazonej:
-@:maincpu,program,2446,89,00,55
-@:maincpu,program,3b08,4,00,00
+;hunchbaka:******Hunchback (set 2)
+hunchbak:
+hunchbaka:
+@:maincpu,program,1c07,68,00,00
+@:maincpu,program,1c34,1,20,20
-;@s:mermaid.cpp
-;(mermaid)
-;yachtmn:******Yachtsman
-mermaid:
-yachtmn:
-@:maincpu,program,c008,6,00,00
+;(wall street) (by GeoMan)
+wallst:
+@:maincpu,program,1c19,1e,00,00
-;@s:metlclsh.cpp
+hero:
+@:maincpu,program,3c00,27,00,30
-;*******metal clash (japan)
-metlclsh:
-@:maincpu,program,802f,8c,47,40
-@:maincpu,program,800a,3,30,05
+;(superbike) (by GeoMan)
+superbik:
+@:maincpu,program,1c08,1e,00,30
-;@s:metlfrzr.cpp
-metlfrzr:
-@:maincpu,program,d822,a0,00,37
+;(heart attack)
+heartatk:
+@:maincpu,program,3c00,27,01,1b
-;@s:metro.cpp
+raiders:
+raidersr3:
+@:maincpu,program,1c08,40,00,00
+@:maincpu,program,1c21,1,31,31
+@:maincpu,program,1c0e,1,00,00
-;********Last Fortress - Toride (German)
-lastfortg:
-lastfortj:
-@:maincpu,program,c0db1a,0a,01,64
+;hncholms:******Hunchback Olympic (Scramble hardware)
+hncholms:
+huncholy:
+@:maincpu,program,3c08,12,00,30
-;(pang pomms)
-pangpoms:
-pangpomsm:
-pangpomsn:
-@:maincpu,program,c0de63,77,10,01
+;(dazzler)
+;** udates highscore at end of 1st game **
+;** or after 2nd attract mode **
+dazzler:
+@:maincpu,program,3cea,20,00,1b
+@:maincpu,program,3d11,2b,00,00
-;(mouja (japan))
-mouja:
-@:maincpu,program,f00064,12c,00,37
+;(video 8 ball)
+8ball:
+8ball1:
+@:maincpu,program,3c0c,38,00,00
-;*******grand striker 2 (japan)
-gstrik2:
-gstrik2j:
-@:maincpu,program,ffaef3,48,76,28
+;@s:misc/dfruit.cpp
-;(karate tournament, the) (by GeoMan)
-karatour:
-@:maincpu,program,ffd4fe,c0,62,01
+gemcrush:
+@:maincpu,program,8fc3,3c,47,12
-;toride2j:******Toride II Adauchi Gaiden (Japan)
-toride2j:
-@:maincpu,program,40ecc0,5c,00,40
-@:maincpu,program,40eca4,4,00,00
-@:maincpu,program,40eca6,1,50,50
+;@s:misc/discoboy.cpp
+discoboy:
+discoboyp:
+@:maincpu,program,f800,80,00,2e
-;batlbubl:******Battle Bubble (v2.00)
-batlbubl:
-@:maincpu,program,f04b24,9a,54,03
+;@s:misc/dominob.cpp
-;daitorida:******Daitoride (YMF278B version)
-daitorida:
-@:maincpu,program,f042ba,4a,00,01
+;dominob:******Domino Block
+dominob:
+@:maincpu,program,ef79,23,03,4b
+@:maincpu,program,c4df,3,03,00
-;toride2gg:******toride ii adouchi gaiden (german)
-toride2gg:
-@:maincpu,program,40ece2,4c,00,40
-@:maincpu,program,40ecc6,4,00,00
-@:maincpu,program,40ecc8,1,50,50
+;@s:misc/dorachan.cpp
+;********dorachan
+dorachan:
+@:maincpu,program,1815,5,00,00
+@:maincpu,program,5d70,1,7c,7c
+@:maincpu,program,5d71,1,8a,8a
+@:maincpu,program,5d72,1,92,92
+@:maincpu,program,5d73,1,a2,a2
+@:maincpu,program,5d74,1,7c,7c
+@:maincpu,program,5d78,1,7c,7c
+@:maincpu,program,5d79,1,8a,8a
+@:maincpu,program,5d7a,1,92,92
+@:maincpu,program,5d7b,1,a2,a2
+@:maincpu,program,5d7c,1,7c,7c
+@:maincpu,program,5d80,1,7c,7c
+@:maincpu,program,5d81,1,8a,8a
+@:maincpu,program,5d82,1,92,92
+@:maincpu,program,5d83,1,a2,a2
+@:maincpu,program,5d84,1,7c,7c
+@:maincpu,program,5d88,1,7c,7c
+@:maincpu,program,5d89,1,8a,8a
+@:maincpu,program,5d8a,1,92,92
+@:maincpu,program,5d8b,1,a2,a2
+@:maincpu,program,5d8c,1,7c,7c
+@:maincpu,program,5d90,1,7c,7c
+@:maincpu,program,5d91,1,8a,8a
+@:maincpu,program,5d92,1,92,92
+@:maincpu,program,5d93,1,a2,a2
+@:maincpu,program,5d94,1,7c,7c
-;(dai toride) (by GeoMan)
-daitorid:
-@:maincpu,program,8042ba,28,00,40
-@:maincpu,program,8042e2,28,02,00
+;@s:misc/dreamwld.cpp
-skyalert:
-@:maincpu,program,c0e340,5c,00,08
+baryon:
+@:maincpu,program,fe37dc,78,4b,f8
-;******Gun Master
-gunmast:
-@:maincpu,program,80e308,4b,00,ae
+baryona:
+@:maincpu,program,fe37de,78,4b,f8
-vmetal:
-vmetaln:
-@:maincpu,program,ff000e,53,00,49
+rolcrush:
+@:maincpu,program,fede76,76,41,01
-;(pururun)
-pururun:
-@:maincpu,program,80f2b8,4b,00,85
+;@s:misc/efdt.cpp
+efdt:
+@:maincpu,program,80a5,21,01,fe
-msgogo:
-@:maincpu,program,f032d6,47,00,0e
+;@s:misc/efg8080.cpp
-;(last fortress - toride / erotic)
-lastfort:
-lastforte:
-lastfortea:
-lastfortk:
-@:maincpu,program,40db1a,0a,01,64
+foolrace:
+@:maincpu,program,ff06,4,00,00
-;(puzzli)
-puzzli:
-@:maincpu,program,80eabc,4c,00,4f
+;@s:misc/enigma2.cpp
+;*******enigma 2
+enigma2:
+enigma2a:
+enigma2b:
+@:maincpu,program,20af,3,00,00
+@:maincpu,program,20c1,3,24,24
-;toride2g:******toride ii adouchi gaiden
-toride2g:
-toride2gk:
-@:maincpu,program,40c5f4,4,00,00
-@:maincpu,program,40c5f6,1,50,50
-@:maincpu,program,40c60a,4c,00,40
+;@s:misc/epos.cpp
-;(lady killer)
-ladykill:
-moegonta:
-@:maincpu,program,ffe20f,67,00,8c
+;beastf:******beastie feastie (fixed)
+beastf:
+@:maincpu,program,7010,f0,00,00
+@:maincpu,program,798a,1,fc,fc
-;(blazing tornado)
-blzntrnd:
-@:maincpu,program,ff9338,50,02,00
-@:maincpu,program,ff9385,1,10,10
+;suprglob:******super glob *
+suprglob:
+@:maincpu,program,7c20,3c,00,00
+@:maincpu,program,7ca4,1,d8,d8
+@:maincpu,program,7c72,1,01,01
-;(poitto!)
-poitto:
-@:maincpu,program,40e31a,4e,00,41
-@:maincpu,program,40e2ec,4,00,00
-@:maincpu,program,40e2ed,1,02,02
+;********(megadon)
+;** only saves top score ???? don`t know why ???? anyone fix this ?? **
+megadon:
+@:maincpu,program,7a01,48,00,00
+@:maincpu,program,7a6e,2,01,00
+@:maincpu,program,7862,1,f4,f4
-;(bal cube)
-balcube:
-@:maincpu,program,f04ac0,4a,00,02
+;(igmo)
+;** only saves top score **
+igmo:
+@:maincpu,program,784a,3c,10,00
+@:maincpu,program,7805,1,f4,f4
-;(bang bang ball (v1.05))
-bangball:
-@:maincpu,program,f04b24,9a,46,03
+;theglob:******the glob *
+;theglob2:******the glob (earlier)*
+theglob:
+theglob2:
+@:maincpu,program,7bf9,3c,00,00
+@:maincpu,program,7c4b,1,01,01
+@:maincpu,program,7c51,1,80,80
-;(dharma doujou)
-dharma:
-dharmaj:
-dharmak:
-@:maincpu,program,40e302,4b,00,5a
+;theglob3:******the glob (set 3)
+theglob3:
+@:maincpu,program,7a5f,3c,00,00
+@:maincpu,program,7ab1,1,01,01
+@:maincpu,program,7ab7,1,80,80
-;@s:mexico86.cpp
+;@s:misc/esd16.cpp
-;knightb:******Knight Boy
-kikikai:
-knightb:
-@:maincpu,program,e2fc,23,00,55
+;*******head panic(Korea?)(By Firebrand)
+hedpanic:
+hedpanica:
+hedpanicf:
+hedpanico:
+@:maincpu,program,10a840,28,00,40
-kicknrun:
-kicknrunu:
-mexico86:
-mexico86a:
-@:maincpu,program,ee18,2d,17,49
+;******Multi Champ Deluxe
+;mchampdxa:******Multi Champ Deluxe (ver. 1126, 26/11/1999)
+mchampdx:
+mchampdxa:
+@:maincpu,program,20a900,200,00,40
-;@s:mhavoc.cpp
+;*******Jumping Pop
+jumppop:
+jumppope:
+@:maincpu,program,123c10,a0,45,50
+@:maincpu,program,123c01,3,00,00
-;(major havoc (rev 3))
-mhavoc:
-@:alpha,program,184,46,0b,00
-@:alpha,program,95,1,02,02
+;tangtang:******tang tang (ver.0526,26/05/2000)
+tangtang:
+@:maincpu,program,70a840,40,00,40
-;@s:mikie.cpp
-mikie:
-mikiehs:
-mikiej:
-mikiek:
-@:maincpu,program,2a00,01,1d,1d
-@:maincpu,program,2a01,01,2c,2c
-@:maincpu,program,2a02,01,1f,1f
-@:maincpu,program,2a03,01,00,00
-@:maincpu,program,2a04,01,01,01
-@:maincpu,program,2a05,28,00,00
-@:maincpu,program,29f0,04,00,00
-@:maincpu,program,297c,04,00,00
+;multchmpk:******multi champ (korea)
+multchmp:
+multchmpk:
+@:maincpu,program,10a841,3f,10,40
-;@s:mirax.cpp
+;@s:misc/flipjack.cpp
-;mirax:******mirax
-mirax:
-@:maincpu,program,d01c,6,00,00
-@:maincpu,program,d028,2d,00,29
+flipjack:
+@:maincpu,program,6500,f0,00,4f
+@:maincpu,program,6061,6,00,00
-miraxa:
-@:maincpu,program,d02d,2d,00,29
-@:maincpu,program,d021,6,00,00
+;@s:misc/flower.cpp
+flower:
+flowerj:
+@:mastercpu,program,d060,37,00,20
+@:mastercpu,program,c00f,3,00,00
+@:mastercpu,program,c010,1,30,30
-;@s:missb2.cpp
-;(miss bubble 2)
-missb2:
-@:maincpu,program,e654,23,00,48
-@:maincpu,program,e64c,3,00,00
-@:maincpu,program,e64d,1,30,30
+;@s:misc/freekick.cpp
+;perfect billiards (by GeoMan)
+pbillrd:
+pbillrdbl:
+pbillrds:
+pbillrdsa:
+@:maincpu,program,c940,a0,00,40
-bublpong:
-@:maincpu,program,e64c,32,00,13
-@:maincpu,program,e64d,1,30,30
-@:maincpu,program,e5df,1,00,00
-@:maincpu,program,e5e0,1,00,00
-@:maincpu,program,e5e4,1,00,00
-@:maincpu,program,e5e6,1,00,00
-@:maincpu,program,e5e1,1,00,00
-@:maincpu,program,e5e2,1,00,00
-@:maincpu,program,e5e3,1,00,00
-@:maincpu,program,e5e7,1,00,00
-@:maincpu,program,e5e8,1,00,00
-@:maincpu,program,e5e9,1,00,00
-@:maincpu,program,e5ea,1,00,00
-@:maincpu,program,e5eb,1,00,00
-@:maincpu,program,e5f6,1,00,00
-@:maincpu,program,e5f7,1,00,00
-@:maincpu,program,e5ee,1,00,00
-@:maincpu,program,e5ef,1,00,00
-@:maincpu,program,e5f0,1,00,00
-@:maincpu,program,e5ec,1,00,00
-@:maincpu,program,e5ed,1,00,00
-@:maincpu,program,e5f3,1,00,00
-@:maincpu,program,e5f4,1,00,00
-@:maincpu,program,e5d9,1,00,00
-@:maincpu,program,e5da,1,00,00
-@:maincpu,program,f457,1,00,00
-@:maincpu,program,f458,1,00,00
-@:maincpu,program,e601,1,00,00
-@:maincpu,program,e602,1,00,00
-@:maincpu,program,e600,1,00,00
-@:maincpu,program,e5ff,1,00,00
-@:maincpu,program,e5fd,1,00,00
-@:maincpu,program,e5fc,1,00,00
-@:maincpu,program,e5fb,1,00,00
-@:maincpu,program,e5fa,1,00,00
-@:maincpu,program,e5f9,1,00,00
-@:maincpu,program,e5f8,1,00,00
-@:maincpu,program,e5fe,1,00,00
-@:maincpu,program,e604,1,00,00
-@:maincpu,program,e605,1,00,00
-@:maincpu,program,e606,1,00,00
-@:maincpu,program,e607,1,00,00
-@:maincpu,program,e609,1,00,00
-@:maincpu,program,e60a,1,00,00
-@:maincpu,program,e611,1,00,00
-@:maincpu,program,e60b,2,00,00
+;*******(gigas mark II)(bootleg)(By Firebrand)
+gigasm2:
+gigasm2b:
+@:maincpu,program,c0a0,4d,00,20
-;@s:missile.cpp
-;(missile command (set 2)) clone (by GeoMan) - modified hiscore save
-missile1:
-missilea:
-@:maincpu,program,002c,30,4d,00
+;*******counter Run (bootleg set 1)
+countrunb:
+@:maincpu,program,d0d8,127,00,48
-;suprmatkd:******super missile attack (not encrypted)
-missile:
-missile2:
-suprmatk:
-suprmatkd:
-@:maincpu,:videoram/share,002c,30,47,00
+;******free kick (bootleg)
+freekick:
+freekicka:
+freekickb1:
+freekickb2:
+@:maincpu,program,d100,4d,00,21
-;@s:mitchell.cpp
+;gigas:******Gigas
+gigas:
+gigasb:
+@:maincpu,program,cb10,4d,80,20
-pangbb:
-@:maincpu,program,f9e3,97,01,03
-@:maincpu,program,e00d,3,01,00
+oigas:
+@:maincpu,program,cb10,4d,90,59
-block:
-blockbl:
-blockj:
-blockr1:
-@:maincpu,program,e0f0,50,54,85
+;@s:misc/gumbo.cpp
-;mstworld:******monsters world
-mstworld:
-@:maincpu,program,fc01,9e,00,07
-@:maincpu,program,e154,3,00,00
+;******miss puzzle
+mspuzzle:
+mspuzzlea:
+mspuzzleb:
+@:maincpu,program,100ff4,c,0b,f4
+@:maincpu,program,100608,2f,4d,20
-sbbros:
-spang:
-spangbl:
-spangj:
-@:maincpu,program,fc01,9e,00,07
-@:maincpu,program,e158,4,00,00
+;******miss bingo
+msbingo:
+@:maincpu,program,101288,a,09,30
+@:maincpu,program,1000c2,31,4d,20
-;pangba:******Pang (bootleg, set 3)
-bbros:
-pang:
-pangb:
-pangb2:
-pangba:
-pangbold:
-pompingw:
-@:maincpu,program,f9e3,9a,01,00
-@:maincpu,program,e00d,3,01,00
+;*******(gumbo)
+;** this hiscore seems broken, think its a driver problem **
+gumbo:
+mspuzzleg:
+@:maincpu,program,80000,30,4b,50
+@:maincpu,program,815d2,12,0b,0a
-;*********(Quiz Sangokushi (Japan))
-qsangoku:
-@:maincpu,program,e815,4b,00,00
-@:maincpu,program,e860,03,01,00
+;@s:misc/homedata.cpp
+lastapos:
+@:maincpu,program,43c6,1e,00,e8
+@:maincpu,program,40df,02,13,88
+@delay=2
-;@s:model1.cpp
-;vr:******virtua racing
-;vformula:******virtua formula
-vformula:
-vr:
-@:maincpu,program,40e000,6bf,01,20
+;battlcry:[Special thanks to Cananas for making this entry work]
+battlcry:
+battlcryc:
+battlcryp:
+@:maincpu,program,4449,2a,48,00
-;*******Virtua Fighter 1
-vf:
-@:maincpu,program,40f800,b3,09,4d
+;(reikai doushi (japan))
+reikaids:
+@:maincpu,program,43ca,1e,00,e8
+@:maincpu,program,40df,2,13,88
-;@s:mole.cpp
+;@s:misc/hotblock.cpp
-mole:
-@:maincpu,program,02e1,0a,00,05
-@:maincpu,program,0375,50,19,00
+hotblock:
+hotblocka:
+@:maincpu,program,acb0,a0,50,00
+@delay=3.5
-;@s:momoko.cpp
+hotblockb:
+@:maincpu,program,b3b0,a0,50,00
+@delay=3.5
-;(momoko 120%)
-momoko:
-momokob:
-momokoe:
-@:maincpu,program,ce01,9f,20,20
-@:maincpu,program,c049,7,20,30
+;@s:misc/ladyfrog.cpp
-;@s:moo.cpp
+;*******lady frog
+ladyfrog:
+@:maincpu,program,eb44,8f,dc,00
+@:maincpu,program,ebd1,1,20,20
-;(bucky o'hare (world version ea) and clones (by GeoMan)
-bucky:
-buckyaa:
-buckyaab:
-buckyea:
-buckyjaa:
-buckyuab:
-@:maincpu,program,801e0,50,00,04
+;@s:misc/limenko.cpp
-;moomesaaab:******Wild West C.O.W.-Boys of Moo Mesa (ver AA)
-;moomesauab:******Wild West C.O.W.-Boys of Moo Mesa (ver ua)
-moomesa:
-moomesaaab:
-moomesabl:
-moomesauab:
-@:maincpu,program,1801e0,97,00,1a
+;dynabomb:******Dynamite Bomber (Korea) (Rev 1.5)
+dynabomb:
+@:maincpu,program,c7908,60,00,01
+@:maincpu,program,c7e43,1,03,03
+
+
+;@s:misc/mcatadv.cpp
+
+;********(nostradamus)
+nost:
+@:maincpu,program,100350,29,59,00
+@:maincpu,program,100019,3,01,00
+
+
+;catt:******Catt (Japan)
+catt:
+mcatadv:
+mcatadvj:
+@:maincpu,program,101bd3,31,05,2b
+
+
+;@s:misc/megaphx.cpp
+
+megaphx:
+@:maincpu,program,c54,9f,1f,30
+
+
+;@s:misc/mirax.cpp
+
+;mirax:******mirax
+mirax:
+@:maincpu,program,d01c,6,00,00
+@:maincpu,program,d028,2d,00,29
+
+
+miraxa:
+@:maincpu,program,d02d,2d,00,29
+@:maincpu,program,d021,6,00,00
+
+
+;@s:misc/mole.cpp
+mole:
+@:maincpu,program,02e1,0a,00,05
+@:maincpu,program,0375,50,19,00
-;@s:mosaic.cpp
+
+;@s:misc/mosaic.cpp
;(mosaic)
mosaic:
@@ -9183,315 +8930,364 @@ gfire2:
@:maincpu,program,1003d,45,4f,4a
-;@s:mouser.cpp
+;@s:misc/news.cpp
-;*******(mouser/mouser (cosmos))
-mouser:
-mouserc:
-@:maincpu,program,6107,a1,00,00
-@:maincpu,program,60b8,3,00,00
-@:maincpu,program,61a6,1,23,23
-@:maincpu,program,9241,1,00,00
-@:maincpu,program,9221,1,00,00
-@:maincpu,program,9201,1,07,07
-@:maincpu,program,91e1,1,08,08
-@:maincpu,program,91c1,1,00,00
-@:maincpu,program,91a1,1,00,00
+;newsa:******News (set 2)
+news:
+newsa:
+@:maincpu,program,e4bb,8,30,30
-;@s:mrdo.cpp
+;@s:misc/oneshot.cpp
-mrdo:
-mrdofix:
-mrdot:
-mrdoy:
-mrdu:
-mrlo:
-yankeedo:
-@:maincpu,program,e017,64,01,00
+komocomo:
+@:maincpu,program,821ec,4,00,30
-;@s:mrflea.cpp
+;*******(mad donna (set 1))
+maddonna:
+@:maincpu,program,835fc,4,00,30
-;(the amazing adventures of mr. f. lea)
-;** this game does not display the top score in the top centre of the screen **
-;** untill the game has ran for a while without inserting any credits but this **
-;** does not matter as long as the default 5,000 high score has been beaten on your**
-;** first game.......
-;** which isn`t hard, or you can just let the game run through attract mode for a **
-;** couple of minutes until the 5,000 top score is on screen. it`s up to you !!! **
-mrflea:
-@:maincpu,program,cafd,99,30,20
-@:maincpu,program,c6f8,6,30,30
+;@s:misc/onetwo.cpp
-;@s:mrjong.cpp
+;********one + two
+onetwo:
+onetwoe:
+@:maincpu,program,fcae,52,00,01
-blkbustr:
-crazyblk:
-@:maincpu,program,8401,a9,00,0a
-@:maincpu,program,a013,6,00,00
+;@s:misc/pass.cpp
-mrjong:
-@:maincpu,program,8401,98,00,09
-@:maincpu,program,a013,6,00,00
+;(pass) (by GeoMan)
+pass:
+@:maincpu,program,81200,50,4b,00
+@:maincpu,program,8005e,4,00,00
-;@s:ms32.cpp
+;@s:misc/photon.cpp
-;******(tetris plus)
-tetrisp:
-@:maincpu,program,fee184a0,135,10,1e
-@:maincpu,program,fee00010,31e,5a,ea
+;phpython:******Python (Photon System)
+phpython:
+@:maincpu,program,4e1c,3,00,00
+@:maincpu,program,4e1d,1,05,05
-;******(gratia - second earth)
-gratia:
-gratiaa:
-@:maincpu,program,fee1bc2c,a0,c8,43
+;@s:misc/shangkid.cpp
+;(shanghai kid (japan))
+hiryuken:
+shangkid:
+@:maincpu,program,e128,50,00,17
-;********(best bout boxing)
-bbbxing:
-@:maincpu,program,fee0f45c,d7,a0,53
+;chinhero2:******chinese hero (older)
+chinhero:
+chinhero2:
+chinhero3:
+chinherot:
+@:maincpu,program,e132,46,00,17
+@:maincpu,program,e128,4,00,00
+@:maincpu,program,e12a,1,03,03
-;*******(p-47 aces)
-p47aces:
-@:maincpu,program,fee1b04c,78,10,03
+;(dynamic ski) (by GeoMan)
+dynamski:
+@:maincpu,program,f092,46,00,1e
+@:maincpu,program,f100,15,00,13
+@:maincpu,program,f088,4,00,00
-;******(desert war)
-desertwr:
-@:maincpu,program,fee1b028,eb,94,24
+;@s:misc/skyarmy.cpp
-;********the game paradise - master of shooting
-gametngk:
-@:maincpu,program,fee0021e,4,40,00
-@:maincpu,program,fc000450,15cd,47,20
-@:maincpu,program,fee16000,44d,47,00
-@:maincpu,program,fee16448,1,01,01
+;*******sky army
+skyarmy:
+@:maincpu,program,8131,ad,00,8a
-;@s:msisaac.cpp
+;@s:misc/sprcros2.cpp
-;*******metal soldier issac II(By Firebrand)
-msisaac:
-@:maincpu,program,e4a5,50,02,4d
+;sprcros2a:******Super Cross 2 (Japan set 2)
+sprcros2:
+sprcros2a:
+@:master_cpu,program,fa00,78,00,4a
+@:master_cpu,program,f012,6,00,00
+@:master_cpu,program,f013,1,03,03
-;@s:mugsmash.cpp
+;@s:misc/sstrangr.cpp
-;(mug smashers)
-mugsmash:
-@:maincpu,program,1c01c4,e,03,d2
-@:maincpu,program,1c00b4,4f,2e,20
+;(space stranger & space stranger 2)
+sstrangr:
+sstrangr2:
+@:maincpu,program,20f4,2,00,00
-;@s:munchmo.cpp
+;@s:misc/statriv2.cpp
-;(joyful road / munch mobile)
-joyfulr:
-mnchmobl:
-@:maincpu,program,813a,3,00,00
-@:maincpu,program,8313,6b,30,4b
-@:maincpu,program,813b,1,10,10
+;*******super triv II(By Firebrand)
+; - Only saves "Experts Only" scores, can save other slots but the games are
+;different every time
+;, - unless you choose the same three over and over again so only "Experts
+;Only" game stays the same.
+supertr2:
+@:maincpu,program,4891,20,00,00
-;@s:mustache.cpp
+;******triv four
+statriv4:
+@:maincpu,program,482b,18,00,00
-;*******mustache boy
-mustache:
-mustachei:
-@:maincpu,program,f000,50,00,47
+;@s:misc/stuntair.cpp
-;@s:mw8080bw.cpp
+;stuntair:****** hiscore updated when you start a game ******
+stuntair:
+@:maincpu,program,c13d,3c,00,5b
+@:maincpu,program,fa41,01,a0,a0
+@:maincpu,program,fa21,01,b4,b4
+@:maincpu,program,fa01,01,b0,b0
+@:maincpu,program,f9e1,01,b0,b0
+@:maincpu,program,f9c1,01,b0,b0
+@:maincpu,program,f9a1,01,b0,b0
-;** lagunar - wait until cars race in attract mode for hi-scores to appear ***
-lagunar:
-@:maincpu,program,2011,9,00,00
-@:maincpu,program,2005,3,00,00
-@:maincpu,program,2031,1,89,89
+;@s:misc/tugboat.cpp
-blueshrk:
-blueshrkmr:
-@:maincpu,program,200a,05,00,00
+berenstn:
+@:maincpu,program,28,1e,81,4f
-spcenctr:
-@:maincpu,program,26f0,2,0e,0e
-@:maincpu,program,202e,2,00,00
-@:maincpu,program,202b,2,00,00
+noahsark:
+@:maincpu,program,2801,1e,81,44
-bowler:
-@:maincpu,program,22a0,08,00,00
+;@s:misc/vamphalf.cpp
+jmpbreaka:
+@:maincpu,program,95d00,5f,00,67
-;clowns:*** dont start game untill attract mode starts.(hiscore also updated then)
-;clowns1:*** dont start game untill attract mode starts.(hiscore also updated then)
-clowns:
-clowns1:
-@:maincpu,program,2015,02,00,00
-@:maincpu,program,3ea0,140,00,66
+mrdig:
+@:maincpu,program,13d29e,145e,47,50
+@:maincpu,program,13e6fb,1,50,50
-280zzzap:
-@:maincpu,program,203d,2,00,00
-@:maincpu,program,2029,4,00,00
+poosho:
+@:maincpu,program,ae148,60,00,00
+@:maincpu,program,ae1af,01,1d,1d
-desertgu:
-@:maincpu,program,2006,02,00,00
-@:maincpu,program,200b,02,00,00
+vamphalfr1:
+@:maincpu,program,5ac48,3a,00,03
-;seawolf:[Special thanks to Cananas for enhancing this entry]
-seawolf:
-@:maincpu,program,2006,01,00,00
-@:maincpu,program,2001,01,09,09
+;aoh:******Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)
+aoh:
+@:maincpu,program,28e784,f8,4b,01
-;@s:mwarr.cpp
-;******mighty warriors
-mwarr:
-@:maincpu,program,112002,3d,00,4e
+jmpbreak:
+@:maincpu,program,95098,5f,00,67
-;@s:mystston.cpp
+;vamphalfk:******Vamf x1/2 (korea)
+vamphalfk:
+@:maincpu,program,5ae6c,3a,00,03
-;(mysterious stones) (by GeoMan)
-mystston:
-myststono:
-myststonoi:
-@:maincpu,program,0308,37,00,0c
-@:maincpu,program,001a,5,00,00
-@:maincpu,program,1033,8,40,41
+wivernwg:
+@:maincpu,program,c79fb,f9,24,40
-;@s:mystwarr.cpp
-;******monster maulers (Europe ver EAA)& kyukyoku sentai dadandarn (japan ver jaa)
-dadandrn:
-mmaulers:
-@:maincpu,program,600701,99,02,e8
+;vamphalf:******Vamf x1/2 (Europe)
+vamphalf:
+@:maincpu,program,5afdc,3a,00,03
-viostorm:
-viostorma:
-viostormab:
-viostormeb:
-viostormj:
-viostormu:
-viostormub:
-@:maincpu,program,20dc00,139,00,07
-@:maincpu,program,200138,8,00,45
+misncrft:
+@:maincpu,program,76fd4,60,46,10
-gaiapols:
-gaiapolsj:
-gaiapolsu:
-@:maincpu,program,60f801,99,00,00
-@:maincpu,program,60f896,1,29,29
+misncrfta:
+@:maincpu,program,7f290,60,46,10
-;** these are untested as the dont work in this version of mame (mame v0.96u1) **
-;mtlchamp1:******martial champion (ver eaa)
-mtlchamp:
-mtlchamp1:
-mtlchampa:
-mtlchampj:
-mtlchampu:
-mtlchampu1:
-@:maincpu,program,100300,61,00,44
+;@s:misc/xyonix.cpp
+;(xyonix)
+xyonix:
+@:maincpu,program,d500,13f,4f,00
+@:maincpu,program,d639,1,08,08
-;metamrphj:******Metamorphic Force (ver jaa)
-;metamrphu:******Metamorphic Force (ver uaa)
-metamrph:
-metamrpha:
-metamrphe:
-metamrphj:
-metamrphu:
-@:maincpu,program,203240,35,00,5a
+;@s:namco/baraduke.cpp
-;*******mystic warriors (world ver eaa)
-mystwarr:
-mystwarra:
-mystwarrj:
-mystwarru:
-@:maincpu,program,200400,4e,48,01
-@:maincpu,program,200170,4,00,00
-@:maincpu,program,200171,1,10,10
+;(baraduke)
+aliensec:
+baraduke:
+@:maincpu,program,280,49,00,20
+@:maincpu,program,74,3,00,65
-;@s:n8080.cpp
+;metrocrs:******metro-cross (set 1)
+;metrocrsa:******metro-cross (set 2)
+metrocrs:
+metrocrsa:
+@:maincpu,program,1471,7b,2b,0e
+@:maincpu,program,1423,3,00,00
+@:maincpu,program,486c,7,2d,00
-spacefev:
-spacefevo:
-spacefevo2:
-@:maincpu,program,60e7,3,00,00
-@:maincpu,program,60f1,3,00,00
-@:maincpu,program,60ec,3,00,00
+;@s:namco/galaga.cpp
-;********space launcher
-spacelnc:
-@:maincpu,program,60bd,21,00,00
+battles2:
+@:maincpu,program,8510,4d,00,50
+@:maincpu,program,8024,3,00,00
+@:maincpu,program,8025,1,40,40
-highsplt:
-highsplta:
-@:maincpu,program,60a9,3,00,00
-@:maincpu,program,60a3,3,00,00
-@:maincpu,program,609d,3,00,00
-@:maincpu,program,60bb,3,00,00
-@:maincpu,program,60b5,3,00,00
-@:maincpu,program,60af,3,00,00
-@:maincpu,program,60f1,3,00,00
-@:maincpu,program,60ec,3,00,00
-@:maincpu,program,60e7,3,00,00
-@:maincpu,program,60cd,3,00,00
-@:maincpu,program,60c7,3,00,00
-@:maincpu,program,60c1,3,00,00
+;digdugat1:******dig dug (atari, rev1)
+digdug:
+digdug1:
+digdugat:
+digdugat1:
+dzigzag:
+@:maincpu,program,89a0,25,01,01
-; updated when start a game
-helifire:
-helifirea:
-@:maincpu,program,6008,3,00,00
+gatsbee:
+nebulbee:
+@:maincpu,program,8a20,2d,00,0e
+@:maincpu,program,83ed,6,00,24
-;(sheriff) and clones (by GeoMan)
-bandido:
-sheriff:
-westgun2:
-@:maincpu,program,60f1,3,0,0
+xeviousb:
+xeviousc:
+@:maincpu,program,8510,46,00,14
+@:maincpu,program,8024,3,00,00
+@:maincpu,program,8025,1,40,40
-;highspltb:******Space Fever High Splitter (alt Sound)
-highspltb:
-@:maincpu,program,60a9,3,00,00
-@:maincpu,program,60f1,3,00,00
-@:maincpu,program,60ec,3,00,00
-@:maincpu,program,60e7,3,00,00
-@:maincpu,program,60a3,3,00,00
-@:maincpu,program,609d,3,00,00
-@:maincpu,program,60bb,3,00,00
-@:maincpu,program,60b5,3,00,00
-@:maincpu,program,60af,3,00,00
-@:maincpu,program,60cd,3,00,00
-@:maincpu,program,60c7,3,00,00
-@:maincpu,program,60c1,3,00,00
+galaga:
+galaga84: ; missing
+galagab2: ; missing
+galagads: ; missing
+galagamf:
+galagamk:
+galagamw:
+galagao:
+gallag:
+@:maincpu,program,8a20,2d,00,18
+@:maincpu,program,83ed,6,00,24
+
+
+;sxeviousj:******Super Xevious (Japan)
+battles:
+sxevious:
+sxeviousj:
+xevios:
+xevious:
+xeviousa:
+@:maincpu,program,8510,4d,00,24
+@:maincpu,program,8024,3,00,00
+@:maincpu,program,8025,1,40,40
+
+
+;(bosconian)
+; ** highscore beaten at 20,000 every time **
+; ** no way around this **
+; ** highscore table ok though !! ,0) **
+bosco:
+bosco1:
+bosco1o:
+boscomd:
+boscomdo:
+@:maincpu,program,8bc5,f,17,18
+@:maincpu,program,8be4,10,00,00
+@:maincpu,program,885c,4,00,00
+@:maincpu,program,8060,8,00,02
+
+
+;@s:namco/gaplus.cpp
+
+galaga3:
+galaga3a:
+galaga3b:
+galaga3c:
+galaga3m:
+gaplus:
+gaplusa:
+gaplusd:
+gaplust:
+@:maincpu,program,03ed,08,30,20
+@:maincpu,program,0900,a0,20,00
+@:maincpu,program,09b6,03,00,00
+
+
+;@s:namco/mappy.cpp
+
+grobda:
+grobda2:
+grobda3:
+@:maincpu,program,1b00,a0,20,00
+@:maincpu,program,0951,04,00,00
+
+
+motos:
+@:maincpu,program,2400,a0,20,00
+@:maincpu,program,1831,4,00,00
+
+
+todruaga:
+todruagao:
+todruagas:
+@:maincpu,program,102a,32,00,45
+@:maincpu,program,100b,3,00,00
+
+
+digdug2:
+digdug2o:
+@:maincpu,program,11b0,50,00,01
+@:maincpu,program,100b,3,00,00
+@:maincpu,program,7ed,7,30,20
+
+
+phozon:
+phozons:
+@:maincpu,program,1409,30,00,59
+@:maincpu,program,105d,3,00,00
+@:maincpu,program,03ee,7,30,20
+
+
+mappy:
+mappyj:
+@:maincpu,program,1460,28,00,41
+@:maincpu,program,1385,3,00,00
+@:maincpu,program,07ed,6,00,20
+@:maincpu,program,7e0,2,00,02
+
+
+pacnchmp:
+pacnpal:
+pacnpal2:
+@:maincpu,program,104c,28,00,23
+@:maincpu,program,116d,3,00,00
+@:maincpu,program,3ed,7,00,24
+
+
+superpac:
+superpacm:
+@:maincpu,program,1138,28,00,20
+@:maincpu,program,1087,3,00,00
+@:maincpu,program,3ee,7,30,20
-;@s:namcona1.cpp
+;@s:namco/namcona1.cpp
+
+cgangpzlj:
+@:mcu,program,20add2,ce,ff,a2
+
;**** thanks to Takasaki for this fix ****
emeralda:
@@ -9519,10 +9315,6 @@ cgangpzl:
@:maincpu,program,add2,ce,ff,a2
-cgangpzlj:
-@:maincpu,program,20add2,ce,ff,a2
-
-
fa:
fghtatck:
@:maincpu,program,1faa8,f2,00,03
@@ -9534,7 +9326,20 @@ tinklpit:
@:maincpu,program,5ca8,174,00,02
-;@s:namconb1.cpp
+;@s:namco/namconb1.cpp
+
+nebulrayp:
+@:maincpu,program,22a781,8a,22,4a
+@:maincpu,program,23be5e,4,00,a0
+
+
+;********(outfoxies)
+outfxies:
+outfxiesa:
+outfxiesj:
+outfxiesja:
+@:maincpu,program,236210,3e,00,5f
+
;*******mach breakers (japan)
machbrkr:
@@ -9549,12 +9354,6 @@ nebulrayj:
@:maincpu,program,23be6a,4,00,a0
-;********(outfoxies)
-outfxies:
-outfxiesj:
-@:maincpu,program,236210,3e,00,5f
-
-
;*******(point blank)
ptblank:
@:maincpu,program,21ccd4,64,00,09
@@ -9565,7 +9364,7 @@ gunbuletj:
@:maincpu,program,21ccd4,68,00,01
-;@s:namcond1.cpp
+;@s:namco/namcond1.cpp
;(namco classics vol. 1) and clones (by GeoMan) - ALL games MUST run through attract mode before starting a new game!
ncv1:
@@ -9574,7 +9373,7 @@ ncv1j2:
@:maincpu,program,400914,2ee,07,01
-;@s:namcos1.cpp
+;@s:namco/namcos1.cpp
;*******boxy boy (us) & souko ban deluxe (japan)
;** do not use in game reset (f3) or save fails !! **
@@ -9682,7 +9481,7 @@ blazer:
@:maincpu,program,288b,1,03,03
-;@s:namcos11.cpp
+;@s:namco/namcos11.cpp
xevi3dg:
xevi3dga:
@@ -9729,17 +9528,17 @@ tekken2a:
@:maincpu,program,352cb8,10f,3f,4e
-;@s:namcos12.cpp
+;@s:namco/namcos12.cpp
;******Tenkomori Shooting (TKM2/VER.A1)
tenkomor:
-tenkomorja:
+tenkomorja1:
@:maincpu,program,3fd60,c7,20,2d
;mrdrillrj:******Mr Driller [Special thanks to Cananas for finding the table]
mrdrillr:
-mrdrillrj:
+mrdrillrja2:
@:maincpu,program,201038,288,76,76
@@ -9748,7 +9547,25 @@ aquarush:
@:maincpu,program,f5468,3cef,4a,02
-;@s:namcos2.cpp
+;@s:namco/namcos2.cpp
+
+marvlandup:
+@:maincpu,program,106100,28,00,03
+@:maincpu,program,40b650,4,00,00
+
+
+;(marvel land (us))
+marvland:
+@:maincpu,program,1030d8,28,00,03
+@:maincpu,program,40ae00,4,00,00
+
+
+;(mirai ninja (japan))
+mirninja:
+mirninjaa:
+@:maincpu,program,100400,d0,4d,00
+@:maincpu,program,1004ce,1,10,10
+
;(ordyne (japan))
;ordyne:******Ordyne (Japan)
@@ -9781,12 +9598,6 @@ finalap3j:
@:maincpu,program,106000,d0,4d,19
-;(mirai ninja (japan))
-mirninja:
-@:maincpu,program,100400,d0,4d,00
-@:maincpu,program,1004ce,1,10,10
-
-
;********(lucky & wild)
;luckywldj:******Lucky & Wild (Japan)
luckywld:
@@ -9794,12 +9605,6 @@ luckywldj:
@:maincpu,program,100b00,a0,00,02
-;(marvel land (us))
-marvland:
-@:maincpu,program,106100,28,00,03
-@:maincpu,program,40b650,4,00,00
-
-
dsaberj:
@:maincpu,program,108080,8c,ce,95
@:maincpu,program,10819e,40,00,00
@@ -9879,23 +9684,24 @@ rthun2j:
@:maincpu,program,100020,4,00,00
-;@s:namcos21_c67.cpp
+;@s:namco/namcos21_c67.cpp
;********(solvalou)
solvalou:
@:maincpu,program,10660f,119,00,07
-;@s:namcos22.cpp
+;@s:namco/namcos22.cpp
;******prop cycle (rev.pr2 ver.a)
;** bit dodgy this one - think it saves top ten hiscores tho...... ***
propcycl:
+propcyclj:
@:maincpu,program,e04031,76,00,31
@:maincpu,program,e15bf9,226,00,0f
-;@s:namcos86.cpp
+;@s:namco/namcos86.cpp
rthunder:
rthunder0:
@@ -9928,119 +9734,193 @@ wndrmomo:
@:cpu1,program,4e00,45,0,2f
-;@s:naughtyb.cpp
+;@s:namco/pacland.cpp
-;in this game to make the hiscore display by starting a new game (if you beat the hiscore) before you exit
-;(pop flamer (protected)) and clones (by GeoMan)- hiscore updates after new game start !!!
-naughtyb:
-naughtyba:
-naughtybb:
-naughtybc:
-popflame:
-popflamea:
-popflameb:
-popflamen:
-@:maincpu,program,4004,3,0,0
-@:maincpu,program,4021,3,0,0
-@:maincpu,program,872f,1,20,20
-@:maincpu,program,8733,1,20,20
-@:maincpu,program,8737,1,20,20
-@:maincpu,program,873b,1,20,20
-@:maincpu,program,873f,1,20,20
-@:maincpu,program,8743,1,20,20
+pacland:
+paclandj:
+paclandjo:
+paclandjo2:
+paclandm:
+paclandm2:
+@:maincpu,program,2140,4a,00,e6
+@:maincpu,program,205d,4,00,00
-;@s:nbmj8891.cpp
+;@s:namco/polepos.cpp
-;*******Pairs (Nichibutsu) (Japan 890822)& pairs (system ten)(japan 890826)
-pairsnb:
-pairsten:
-@:maincpu,program,f832,3,70,00
-@:maincpu,program,f814,1,03,03
+;(pole position)
+grally:
+poleposa1:
+poleposa2:
+@:maincpu,program,3000,7f2,b0,95
+@:maincpu,program,4080,1,56,56
-;@s:nemesis.cpp
+polepos2:
+@:maincpu,program,3000,7f2,d0,a2
+@:maincpu,program,40d6,1,c9,c9
-gradius:
-gradiusb:
-@:maincpu,program,195f0,8c,00,00
-@:maincpu,program,70098,4,00,00
-@:maincpu,program,7009a,1,73,73
+;(pole position 2)
+polepos2a:
+polepos2b:
+@:maincpu,program,3000,7f2,d0,a2
-citybomb:
-citybombj:
-@:maincpu,program,80700,50,00,22
-@:maincpu,program,8005c,4,00,00
-@:maincpu,program,80156,2e,01,50
+;@s:namco/rallyx.cpp
-;* top score not saved
-nyanpani:
-@:maincpu,program,42800,28,00,10
+jackler:
+jungler:
+junglero:
+junglers:
+savanna:
+@:maincpu,program,9940,a0,00,5b
+@:maincpu,program,991c,3,00,02
-;(twinbee)
-twinbee:
-@:maincpu,program,1f580,58,00,0a
-@:maincpu,program,1eba0,4,00,00
+dngrtrck:
+nrallyx:
+nrallyxb:
+rallyx:
+rallyxa:
+rallyxm:
+rallyxmr:
+@:maincpu,program,8060,8,00,02
-konamigt:
-@:maincpu,program,60105,1,00,00
-@:maincpu,program,60106,2,10,00
-@:maincpu,program,61480,328,4a,01
+;(tactician) (by GeoMan)
+tactcian:
+@:maincpu,program,98a8,3,0,0
+@:maincpu,program,8048,140,00,10
+@:maincpu,program,8028,20,00,10
-nemesis:
-nemesisuk:
-@:maincpu,program,06509a,1,76,76
-@:maincpu,program,065010,8c,00,00
-@:maincpu,program,060098,4,00,00
-@:maincpu,program,06009a,1,73,73
+commsega:
+@:maincpu,program,9c6d,6,00,00
-;(galactic warriors) (by GeoMan)
-gwarrior:
-@:maincpu,program,1a4f6,50,00,01
-@:maincpu,program,1f72f,3,00,85
+tactcian2:
+@:maincpu,program,98a8,3,80,00
+@:maincpu,program,8048,140,80,10
+@:maincpu,program,8028,20,00,10
-lifefrce:
-lifefrcej:
-salamand:
-salamandj:
-@:maincpu,program,085000,64,00,16
-@:maincpu,program,08005a,4,00,00
+;locoboot:******Loco-Motion (bootleg)
+cottong:
+gutangtn:
+locoboot:
+locomotn:
+@:maincpu,program,9f00,78,00,3e
+@:maincpu,program,99c6,3,00,01
-;(black panther)
-blkpnthr:
-@:maincpu,program,90400,99,00,59
-@:maincpu,program,90300,4,00,00
+;@s:namco/skykid.cpp
+
+;(dragon buster)
+drgnbstr:
+@:maincpu,program,485a,3,00,00
+@:maincpu,program,485b,1,10,10
+@:maincpu,program,406c,7,2f,00
+@:maincpu,program,406e,1,01,01
-;(kitten kaboodle)
-kittenk:
-@:maincpu,program,4005a,4,00,00
-@:maincpu,program,42800,28,00,10
+skykid:
+skykidd:
+skykido:
+skykids:
+@:maincpu,program,5000,45,00,0a
+@:maincpu,program,5001,1,03,03
-;******hyper crash (version d)
-;hcrashc:******Hyper Crash (version C)
-hcrash:
-hcrashc:
-@:maincpu,program,81900,ac5,00,10
-@:maincpu,program,80e88,4,00,70
-@:maincpu,program,80e94,4,00,70
-@:maincpu,program,80c64,1,20,20
+;@s:namco/tankbatt.cpp
+
+tankbatt:
+tankbattb:
+@:maincpu,program,00c3,02,00,00
+
+
+;@s:namco/toypop.cpp
+
+liblrabl:
+@:maincpu,program,0867,04,00,00
+@:maincpu,program,0874,3b,00,17
+
+
+toypop:
+@:maincpu,program,09b2,50,00,20
+@:maincpu,program,0849,3,00,00
+
+
+;@s:namco/warpwarp.cpp
+
+geebee:
+geebeea:
+geebeeb:
+geebeeg:
+@:maincpu,program,4046,3,00,00
+
+
+warpwarp:
+warpwarpr:
+warpwarpr2:
+@:maincpu,program,831d,3,00,00
+
+
+;(navalone) (by GeoMan)
+navarone:
+@:maincpu,program,402d,3,0,0
+
+
+;kaitein:******kaitei takara sagashi
+kaitein:
+@:maincpu,program,403e,2,00,00
+@:maincpu,program,21c0,1,00,00
+@:maincpu,program,21e0,1,00,00
+@:maincpu,program,2200,1,ec,ec
+@:maincpu,program,2240,1,ec,ec
+@:maincpu,program,2220,1,ec,ec
+@:maincpu,program,2260,1,ec,ec
+
+
+;(cutie q) (by GeoMan)
+cutieq:
+@:maincpu,program,2215,c,00,01
+
+
+;(sos) (by GeoMan)
+sos:
+@:maincpu,program,406c,2,0,0
+
+
+;kaitei:******kaitei takara sagashi (k`k-tokki)
+kaitei:
+@:maincpu,program,200e,5,00,00
+
+
+;(bomb bee) (by GeoMan)
+bombbee:
+@:maincpu,program,2214,5,00,01
+
+
+;@s:nasco/crgolf.cpp
+
+;*******(crowns golf (set 1))
+crgolf:
+@:maincpu,program,4001,10c,04,00
+@:maincpu,program,411a,1,0a,0a
-;@s:neogeo.cpp
+;@s:neogeo/neogeo.cpp
+
+;mslugx:******metal slug x
+mslugx:
+@:maincpu,program,10f010,4f,00,59
+@:maincpu,program,10e8f2,2,ff,ff
+
viewpoin:
-@:100000:2:42:41
-@:1000c8:3d:00:00
+@:maincpu,program,100000,2,42,41
+@:maincpu,program,1000c8,3d,00,00
;******metal slug 2 turbo
@@ -10063,12 +9943,6 @@ pbobbl2n:
@:maincpu,program,10fe8b,1,23,23
-;mslugx:******metal slug x
-mslugx:
-@:maincpu,program,10f010,47,00,50
-@:maincpu,program,10e8f2,2,ff,ff
-
-
;(blues journey)
bjourney:
@:maincpu,program,103381,49,05,05
@@ -10133,117 +10007,962 @@ sonicwi2:
@:maincpu,program,10000e,52,48,03
-;@s:nes.cpp
+;@s:nichibutsu/armedf.cpp
+
+legionj:
+legionj2:
+legionjb:
+@:maincpu,program,62e8c,27,00,29
+@:maincpu,program,62fdc,4,00,00
+
+
+terraf:
+terrafb:
+terrafj:
+terrafjb:
+terrafu:
+@:maincpu,program,6066e,3c,00,4a
+@:maincpu,program,606b2,4,00,00
+
+
+;******Crazy Climber 2 (Japan Harder)
+cclimbr2:
+cclimbr2a:
+@:maincpu,program,612a7,49,10,00
+@:maincpu,program,612f2,1,50,50
+
+
+armedf:
+armedff:
+@:maincpu,program,611b6,4f,00,4a
+@:maincpu,program,61206,4,00,00
+
+
+;********(legion(ver 2.03 & 1.05))
+legion:
+@:maincpu,program,62e8e,27,00,29
+@:maincpu,program,62fde,4,00,00
+
+
+;(kodure ookami (japan)) (by GeoMan)
+kozure:
+@:maincpu,program,637c0,4,00,00
+@:maincpu,program,635b4,28,00,00
+
+
+;@s:nichibutsu/cclimber.cpp
+
+;cclimber:[Special thanks to Cananas for enhancing this entry]
+ccboot:
+ccbootmm:
+cclimber:
+cclimbera:
+cclimberj:
+cclimbroper:
+@:maincpu,program,8083,03,02,00
+@:maincpu,program,8095,0a,30,52
+@:maincpu,program,8086,03,02,00
+@:maincpu,program,80a3,0a,30,52
+@:maincpu,program,8089,03,02,00
+@:maincpu,program,80b1,0a,30,52
+@:maincpu,program,808c,03,02,00
+@:maincpu,program,80bf,0a,30,52
+@:maincpu,program,808f,03,02,00
+@:maincpu,program,80cd,0a,30,52
+
+
+;ckongpt2j:******Crazy Kong Part II (Japan)
+ckong:
+ckongalc:
+ckongdks:
+ckongg:
+ckonggx:
+ckongmc:
+ckongmc2:
+ckongo:
+ckongpt2:
+ckongpt2a:
+ckongpt2b:
+ckongpt2b2:
+ckongpt2j:
+ckongpt2jeu:
+ckongpt2ss:
+ckongs:
+dking:
+monkeyd:
+@:maincpu,program,6100,aa,94,92
+@:maincpu,program,60b8,3,50,00
+
+
+;rpatrol:******River Patrol (Orca)
+rpatrol:
+rpatroln:
+@:maincpu,program,919b,4,18,0a
+@:maincpu,program,91ba,6,00,00
+@:maincpu,program,921b,4,18,0a
+@:maincpu,program,923a,6,00,00
+@:maincpu,program,929b,4,18,0a
+@:maincpu,program,92ba,6,00,00
+
+
+ccbootmr:
+@:maincpu,program,8083,54,02,52
+@:maincpu,program,808f,1,02,02
+
+
+cannonb:
+cannonb2:
+cannonb3:
+@:maincpu,program,6180,d4,00,01
+@:maincpu,program,665c,3,00,01
+
+
+ccboot2:
+@:maincpu,program,8083,03,02,00
+@:maincpu,program,8095,0a,15,52
+@:maincpu,program,8086,03,02,00
+@:maincpu,program,80a3,0a,15,52
+@:maincpu,program,8089,03,02,00
+@:maincpu,program,80b1,0a,15,52
+@:maincpu,program,808c,03,02,00
+@:maincpu,program,80bf,0a,15,52
+@:maincpu,program,808f,03,02,00
+@:maincpu,program,80cd,0a,15,52
+
+
+;(yamato (set 1)) and clones (by GeoMan)
+yamato:
+yamatoa:
+@:maincpu,program,6100,50,00,ff
+@:maincpu,program,6038,3,00,00
+
+
+;(guzzler) (by GeoMan)
+guzzler:
+guzzlers:
+@:maincpu,program,8584,50,00,55
+@:maincpu,program,8007,6,00,00
+
+
+;(swimmer)
+swimmer:
+swimmera:
+swimmerb:
+@:maincpu,program,84e0,2d,00,48
+@:maincpu,program,8577,6,00,00
+
+
+;(river patrol (bootleg))
+rpatrolb:
+@:maincpu,program,919b,4,11,18
+@:maincpu,program,91ba,6,00,00
+@:maincpu,program,921b,4,11,18
+@:maincpu,program,923a,6,00,00
+@:maincpu,program,929b,4,11,18
+@:maincpu,program,92ba,6,00,00
+
+
+silvland:
+@:maincpu,program,919b,4,0f,26
+@:maincpu,program,91ba,6,00,00
+@:maincpu,program,921b,4,0c,26
+@:maincpu,program,923a,6,00,00
+@:maincpu,program,929b,4,15,26
+@:maincpu,program,92ba,6,00,00
+
+
+;@s:nichibutsu/clshroad.cpp
+
+;(clash road)
+;clshroads:******Clash-Road (Status license)
+clshroad:
+clshroadd:
+clshroads:
+@:maincpu,program,8000,3c,4d,00
+@:maincpu,program,803a,1,40,40
+
+
+;*******fire battle
+firebatl:
+@:maincpu,program,8000,21,54,00
+@:maincpu,program,801f,1,70,70
+
+
+;@s:nichibutsu/cop01.cpp
+
+cop01a:
+@:maincpu,program,c46e,28,00,01
+
+
+cop01:
+@:maincpu,program,c46d,28,00,01
+
+
+;(mighty guy) (by GeoMan)
+mightguy:
+@:maincpu,program,c055,75,00,41
+
+
+;@s:nichibutsu/dacholer.cpp
+
+itaten:
+@:maincpu,program,a266,1e,56,4b
+@:maincpu,program,a02c,1,54,54
+
+
+;******Kick Boy
+kickboy:
+@:maincpu,program,9338,3,88,02
+@:maincpu,program,9340,23,88,54
+
+
+;******Dacholer
+dacholer:
+@:maincpu,program,933c,23,88,54
+@:maincpu,program,9334,3,88,02
+
+
+;@s:nichibutsu/galivan.cpp
+
+galivan:
+galivan2:
+galivan3:
+@:maincpu,program,e14f,82,00,20
+@:maincpu,program,e28e,3,00,00
+
+
+ninjemak:
+@:maincpu,program,e469,41,00,20
+@:maincpu,program,e4ac,3,00,00
+
+
+dangar:
+dangara:
+dangarb:
+dangarj:
+@:maincpu,program,e209,82,00,20
+@:maincpu,program,e394,3,00,00
+
+
+youma:
+youma2:
+youmab:
+youmab2:
+@:maincpu,program,e469,41,00,3f
+@:maincpu,program,e4ac,3,00,00
+
+
+;@s:nichibutsu/magmax.cpp
+
+magmax:
+magmaxa:
+@:maincpu,program,18ce0,46,00,00
+@:maincpu,program,18d2e,4,00,00
+@:maincpu,program,18d23,1,35,35
+
+
+;@s:nichibutsu/nbmj8891.cpp
+
+;*******Pairs (Nichibutsu) (Japan 890822)& pairs (system ten)(japan 890826)
+pairsnb:
+pairsten:
+@:maincpu,program,f832,3,70,00
+@:maincpu,program,f814,1,03,03
+
+
+;@s:nichibutsu/seicross.cpp
+
+;(seicross)
+sectrzon:
+seicross:
+seicrossa:
+@:maincpu,program,7ad4,1e,00,0a
+
+
+radrad:
+radradj:
+@:maincpu,program,7802,3,02,00
+@:maincpu,program,91ba,6,24,00
+
+
+;@s:nichibutsu/terracre.cpp
+
+;********(kid no hore hore daisakusen)
+boobhack:
+horekid:
+horekidb:
+horekidb2:
+@:maincpu,program,4025a,28,00,01
+
+
+;********(soldier girl amazon)
+amatelas:
+amazon:
+amazont:
+@:maincpu,program,40db4,46,00,0e
+@:maincpu,program,40d66,4,00,00
+@:maincpu,program,40d68,1,50,50
+
+
+terracre:
+terracrea:
+terracren:
+terracreo:
+@:maincpu,program,20246,46,00,00
+@:maincpu,program,2028c,4,00,00
+@:maincpu,program,20248,1,50,50
+
+
+;@s:nichibutsu/tubep.cpp
+
+tubep:
+@:maincpu,program,a0b6,240,a8,4d
+@:maincpu,program,a092,3,a8,00
+
+
+;(roller jammer) (by GeoMan)
+rjammer:
+@:maincpu,program,a4fa,1e,a8,55
+
+
+tubepb:
+@:maincpu,program,a095,240,a8,4d
+@:maincpu,program,a080,3,a8,00
+
+
+;@s:nichibutsu/wiping.cpp
+
+wiping:
+@:maincpu,program,906f,82,03,54
+
+
+rugrats:
+@:maincpu,program,906f,82,10,54
+
+
+;@s:nintendo/dkong.cpp
+
+radarscp:
+radarscp1:
+radarscpc:
+@:maincpu,program,6307,a2,00,fc
+@:maincpu,program,60a8,3,50,00
+@:maincpu,program,7641,1,00,00
+@:maincpu,program,7621,1,00,00
+@:maincpu,program,7601,1,07,07
+@:maincpu,program,75e1,1,06,06
+@:maincpu,program,75c1,1,05,05
+@:maincpu,program,75a1,1,00,00
+
+
+hunchbkd:
+@:maincpu,program,1c23,50,1b,00
+@:maincpu,program,1c73,1,01,01
+
+
+;dkongf:******Donkey Kong Foundry (hack)
+dkong:
+dkongf:
+dkonghrd:
+dkongj:
+dkongjo:
+dkongjo1:
+dkongo:
+dkongpe:
+@:maincpu,program,6100,aa,94,76
+@:maincpu,program,60b8,03,50,00
+@:maincpu,program,7641,01,00,00
+@:maincpu,program,7621,01,00,00
+@:maincpu,program,7601,01,07,07
+@:maincpu,program,75e1,01,06,06
+@:maincpu,program,75c1,01,05,05
+@:maincpu,program,75a1,01,00,00
+
+
+;*******street heat - cardinal amusements
+strtheat:
+strtheata:
+@:maincpu,program,6270,a7,01,20
+
+
+;dkongjnrj:******donkey kong jr. (japan?)
+;dkongjr:******donkey kong jr. (us)
+dkongjnrj:
+dkongjr:
+dkongjr2:
+dkongjre:
+dkongjrpb:
+@:maincpu,program,6105,9e,10,10
+@:maincpu,program,60b8,3,50,00
+@:maincpu,program,7661,1,10,10
+@:maincpu,program,7641,1,00,00
+@:maincpu,program,7621,1,00,00
+@:maincpu,program,7601,1,07,07
+@:maincpu,program,75e1,1,06,06
+@:maincpu,program,75c1,1,05,05
+@:maincpu,program,75a1,1,00,00
+
+
+;dkongjrb:******donkey kong jr. (bootleg)
+;dkongjrj:******donkey kong jr. (japan)
+;jrking:******Junior King (bootleg of Donkey Kong Jr.)
+dkingjr:
+dkongjrb:
+dkongjrj:
+jrking:
+maguila:
+@:maincpu,program,6105,9e,10,10
+@:maincpu,program,60b8,3,00,01
+@:maincpu,program,7661,1,10,10
+@:maincpu,program,7641,1,00,00
+@:maincpu,program,7621,1,01,01
+@:maincpu,program,7601,1,01,01
+@:maincpu,program,75e1,1,08,08
+@:maincpu,program,75c1,1,00,00
+@:maincpu,program,75a1,1,00,00
+
+
+;***** 8ballact / 8ballact2 / 8bpm fixes *******
+8ballact:
+8ballact2:
+@:maincpu,program,1d28,06,00,1b
+@:maincpu,program,1d46,0a,00,00
+@:maincpu,program,1d2e,06,00,1b
+@:maincpu,program,1d50,0a,00,00
+@:maincpu,program,1d34,06,00,1b
+@:maincpu,program,1d5a,0a,00,00
+@:maincpu,program,1d3a,06,00,1b
+@:maincpu,program,1d64,0a,00,00
+@:maincpu,program,1d40,06,00,1b
+@:maincpu,program,1d6e,0a,00,00
+
+
+;******special forces II(By Firebrand)
+;******special forces(By Firebrand)
+spcfrcii:
+spclforc:
+@:maincpu,program,1a22,1,33,33
+@:maincpu,program,1a27,5,30,30
+
+
+herodk:
+herodku:
+@:maincpu,program,3c44,50,00,00
+@:maincpu,program,3c94,1,23,23
+
+
+;*******drakton
+drakton:
+drktnjr:
+@:maincpu,program,6449,118,00,00
+@:maincpu,program,655d,1,20,20
+
+
+herbiedk:
+@:maincpu,program,3c22,1b,00,00
+@:maincpu,program,3c20,1,18,18
+
+
+dkong3:
+dkong3b:
+dkong3j:
+@:maincpu,program,6b00,aa,f3,76
+@:maincpu,program,6c20,40,00,00
+@:maincpu,program,6c16,04,00,00
+@:maincpu,program,68f3,03,01,00
+
+
+;@s:nintendo/gb.cpp
+
+gameboy,tetris:
+@:maincpu,program,d654,32,0,0,ff
+
+
+;@s:nintendo/mario.cpp
+
+mario:
+mariobl:
+mariobla:
+marioe:
+mariof:
+marioj:
+masao:
+@:maincpu,program,6b00,aa,97,74
+@:maincpu,program,6c00,3c,00,00
+@:maincpu,program,6823,3,01,00
+
+
+;@s:nintendo/n8080.cpp
+
+spacefev:
+spacefevo:
+spacefevo2:
+@:maincpu,program,60e7,3,00,00
+@:maincpu,program,60f1,3,00,00
+@:maincpu,program,60ec,3,00,00
+
+
+;********space launcher
+spacelnc:
+@:maincpu,program,60bd,21,00,00
+
+
+highsplt:
+highsplta:
+@:maincpu,program,60a9,3,00,00
+@:maincpu,program,60a3,3,00,00
+@:maincpu,program,609d,3,00,00
+@:maincpu,program,60bb,3,00,00
+@:maincpu,program,60b5,3,00,00
+@:maincpu,program,60af,3,00,00
+@:maincpu,program,60f1,3,00,00
+@:maincpu,program,60ec,3,00,00
+@:maincpu,program,60e7,3,00,00
+@:maincpu,program,60cd,3,00,00
+@:maincpu,program,60c7,3,00,00
+@:maincpu,program,60c1,3,00,00
+
+
+; updated when start a game
+helifire:
+helifirea:
+@:maincpu,program,6008,3,00,00
+
+
+;(sheriff) and clones (by GeoMan)
+bandido:
+sheriff:
+westgun2:
+@:maincpu,program,60f1,3,0,0
+
+
+;highspltb:******Space Fever High Splitter (alt Sound)
+highspltb:
+@:maincpu,program,60a9,3,00,00
+@:maincpu,program,60f1,3,00,00
+@:maincpu,program,60ec,3,00,00
+@:maincpu,program,60e7,3,00,00
+@:maincpu,program,60a3,3,00,00
+@:maincpu,program,609d,3,00,00
+@:maincpu,program,60bb,3,00,00
+@:maincpu,program,60b5,3,00,00
+@:maincpu,program,60af,3,00,00
+@:maincpu,program,60cd,3,00,00
+@:maincpu,program,60c7,3,00,00
+@:maincpu,program,60c1,3,00,00
+
+
+;@s:nintendo/nes.cpp
nes,smb:
@:maincpu,program,7df,4,0,0,ff
-;@s:news.cpp
+;@s:nintendo/playch10.cpp
-;newsa:******News (set 2)
-news:
-newsa:
-@:maincpu,program,e4bb,8,30,30
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_smb:
+@:cart,program,7d7,6,00,00
+@:cart,program,fd7,6,00,00
+@delay=5
-;@s:ninjakd2.cpp
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_golf:
+@:cart,program,0e,02,64,0
+@:cart,program,0b,01,04,04
+@:ppu,videoram,22cf,07,a1,00
+
-mnight:
-mnightj:
-@:maincpu,program,c099,41,00,20
-@:maincpu,program,c0e6,3,00,00
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_1942:
+@:cart,program,7bf,06,00,00
+@:cart,program,108,01,03,03
+@:ppu,videoram,346d,06,00,00
-;(ninja kid ii (set 1)) and clones (by GeoMan)
-ninjakd2:
-ninjakd2a:
-ninjakd2b:
-rdaction:
-@:maincpu,program,e0f4,3,00,00
-@:maincpu,program,e04e,64,31,20
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+;****** hiscores update on game play start ******
+pc_bfght:
+@:cart,program,629,0f,00,00
+@:cart,program,19,01,2b,2b
+@:ppu,videoram,204e,06,00,00
+@:ppu,videoram,204f,01,01,01
-;(omega fighter / omega fighter special)
-;** only saves pasrt of highscore ?? - tables ok though !! **
-omegaf:
-omegafs:
-@:maincpu,program,f880,7f,00,24
-@:maincpu,program,f7d4,3,00,00
-@:maincpu,program,f7d5,1,20,20
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_duckh:
+@:cart,program,05f1,03,01,00
+@:cart,program,2d,01,f2,f2
+@:cart,program,5f5,03,01,00
+@:cart,program,5f9,03,01,00
+@:ppu,videoram,2312,06,24,00
-robokidj:
-robokidj2:
-@:maincpu,program,e0a4,41,00,20
-@:maincpu,program,e0f3,3,00,00
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_grdue:
+pc_grdus:
+@:cart,program,7e0,03,00,00
+@:cart,program,4c,01,f3,f3
+@:ppu,videoram,222e,07,30,30
-robokid:
-@:maincpu,program,e0a4,f,00,00
-@:maincpu,program,e0b3,f,46,49
-@:maincpu,program,e0d0,4,00,00
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_hgaly:
+@:cart,program,5f1,0b,01,00
+@:cart,program,2d,01,22,22
+@:ppu,videoram,22ef,06,00,00
-arkarea:
-@:maincpu,program,d45c,42,46,30
-@:maincpu,program,c040,3,00,00
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_kngfu:
+@:cart,program,511,0d,00,00
+@:cart,program,36,01,32,32
-;@s:ninjaw.cpp
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_mario:
+@:cart,program,91,3,00,00
+@:cart,program,2d,01,46,46
-;(the ninja warriors (world))
-ninjaw:
-ninjaw1:
-ninjawj:
-ninjawu:
-@:maincpu,program,c4645,3f8,01,47
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_rnatk:
+@:cart,program,7e0,3,00,00
+@:cart,program,1a,01,76,76
-darius2:
-@:maincpu,program,c216e,44b,00,20
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_suprc:
+@:cart,program,7e0,3,00,00
+@:cart,program,1b,01,23,23
-;@s:nitedrvr.cpp
-;(night driver) (by GeoMan) - Hiscore is updated when new game starts!
-nitedrvr:
-@:maincpu,program,a0,c,0,0
-@:maincpu,program,130,1,52,52
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_tmnt:
+@:cart,program,8c8,3,00,00
+@:cart,program,3a,01,f5,f5
-;@s:nmg5.cpp
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_goons:
+@:cart,program,7f0,3,00,01
+@:cart,program,42,01,f5,f5
+@:ppu,videoram,222d,07,00,30
-;wondstck:******Wonder Stick
-wondstck:
-@:maincpu,program,12c354,3b,57,30
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_tkfld:
+@:cart,program,745,5,00,00
+@:cart,program,02,01,08,08
+@:cart,program,704,10,03,09
+@:cart,program,780,0e,00,02
-;** tong boy sub-game does not save , driver issues ???? **
-;nmg5e:******Multi 5 / New Multi Game 5 (earlier)
-nmg5:
-nmg5a:
-nmg5e:
-@:maincpu,program,129101,ff,10,40
+
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_trjan:
+@:cart,program,32c,6,00,00
+@:cart,program,20,01,08,08
+@:ppu,videoram,206c,06,10,00
-;pclubysa:******Puzzle Club (Yun Sung - set 2)
-pclubys:
-pclubysa:
-@:maincpu,program,20b461,145,3a,64
-@:maincpu,program,20e835,b9,38,64
-@:maincpu,program,206935,ed,14,64
-@:maincpu,program,20b515,91,38,64
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_wgnmn:
+@:cart,program,5f1,0b,01,00
+@:cart,program,2f,01,08,08
-;@s:nmk16.cpp
+;****** turn FREEPLAY on (in dipswitch settings) before playing ******
+pc_drmro:
+pc_virus:
+@:cart,program,700,06,00,00
+@:cart,program,43,01,08,08
+
+
+;@s:nintendo/popeye.cpp
+
+;(popeye bootleg fixed)
+popeyeb2:
+popeyebl:
+popeyej:
+popeyejo:
+@:maincpu,program,8200,24,00,02
+@:maincpu,program,8fed,3,00,03
+@:maincpu,program,8f32,6,00,00
+
+
+;(popeye (revision d & revision d not protected & revision f))fixed
+popeye:
+popeyeb3:
+popeyeu:
+@:maincpu,program,8a00,24,00,02
+@:maincpu,program,8fed,3,00,03
+@:maincpu,program,8f32,6,00,00
+
+
+popeyef:
+@:maincpu,program,8a00,24,00,01
+@:maincpu,program,8fed,3,00,02
+@:maincpu,program,8f32,6,00,00
+
+
+;********(sky skipper)
+skyskipr:
+@:maincpu,program,81f2,3,01,00
+@:maincpu,program,8610,1e,01,16
+
+
+;@s:nintendo/punchout.cpp
+
+;spnchout:[Special thanks to Cananas for enhancing this entry]
+spnchout:
+spnchoutj:
+@:maincpu,program,d5c0,f0,21,04
+
+
+;punchout:[Special thanks to Cananas for enhancing this entry]
+punchita:
+punchout:
+punchouta:
+punchoutj:
+@:maincpu,program,d660,50,41,04
+
+
+;@s:nintendo/spacefb.cpp
+
+;********spacefb.c (fixed thanks to thomas busse)
+;** top score don`t update until you lose your first life, pretty **
+;** lame way for doing a hiscore - but who am i to complain!! ;0) **
+;Note: This was corrected by copying also the Video RAM (at 8299). So now also the initially shown score table is updated correctly.
+spacefb:
+spacefbb:
+spacefbe:
+spacefbe2:
+starwarr:
+@:maincpu,program,c0a0,1e,00,00
+@:maincpu,program,c0e0,3,00,00
+@:maincpu,program,c773,6,05,05
+@:maincpu,program,9a51,6,05,05
+@:maincpu,program,8299,32,0f,0f
+
+
+;** hiscore & top score don`t update until you lose your first life, pretty **
+;** lame way for doing a hiscore - but who am i to complain!! ;0) **
+spacebrd:
+@:maincpu,program,c0e0,3,00,00
+@:maincpu,program,d0e0,3,00,00
+@:maincpu,program,e0e0,3,00,00
+@:maincpu,program,f0f0,3,00,00
+@:maincpu,program,be51,6,05,05
+@:maincpu,program,bd51,6,88,60
+
+
+spacefba:
+@:maincpu,program,c773,6,05,05
+@:maincpu,program,9a51,6,05,05
+@:maincpu,program,c0e0,3,00,00
+
+
+spacefbg:
+@:maincpu,program,c0a0,2b,00,00
+@:maincpu,program,c3c0,1e,11,10
+@:maincpu,program,c0e0,3,00,30
+
+
+;@s:nintendo/vsnes.cpp
+
+;suprmrioa:******Vs. Super Mario Bros. (alt)
+;(vs super mario bros)
+suprmrio:
+suprmrioa:
+suprmriobl:
+suprmriobl2:
+@:maincpu,program,6675,8b,05,00
+@:maincpu,program,7d7,6,00,00
+
+
+nvs_machridera:
+@:maincpu,program,700,50,00,4b
+@:maincpu,program,701,1,05,05
+
+
+;mightybj:******vs. mighty bomb jack (japan)
+nvs_mightybj:
+@:maincpu,program,3a8,4,00,00
+@:maincpu,program,3aa,1,10,10
+
+
+;(mach rider) (by GeoMan)
+nvs_machrider:
+@:maincpu,program,0714,50,00,4b
+
+
+;(platoon)
+nvs_platoon:
+@:maincpu,program,700,e9,10,60
+
+
+;bnglngby:******vs. raid on bungeling bay (japan)
+bnglngby:
+@:maincpu,program,6400,5a,00,01
+
+
+;(battle city)
+btlecity:
+@:maincpu,program,3e,6,00,00
+@:maincpu,program,3f,1,02,02
+
+
+;jajamaru:******vs. ninja jajamaru kun (japan)
+jajamaru:
+@:maincpu,program,900,5b,22,00
+@:maincpu,program,66,3,d0,00
+
+
+;excitebkj:******vs. excitebike (japan)
+excitebk:
+excitebkj:
+excitebko:
+@:maincpu,program,630,14f,00,0e
+
+
+iceclimb:
+iceclimba:
+@:maincpu,program,750,3c,00,23
+
+
+iceclmrd:
+@:maincpu,program,750,3c,00,23
+@:maincpu,program,751,1,77,77
+@:sub,program,750,3c,00,23
+@:sub,program,751,1,77,77
+
+
+;vsgshoe:******vs. gumshoe
+vsgshoe:
+@:maincpu,program,560,1d,12,a0
+
+
+;vsfdf:******vs. freedom force
+vsfdf:
+@:maincpu,program,712,9c,10,28
+
+
+;vsgradus:******vs. gradius
+vsgradus:
+@:maincpu,program,7e0,3,00,00
+@:maincpu,program,7e1,1,50,50
+
+
+;vspinbalj:******vs. pinball (japan)
+vspinbal:
+vspinbalj:
+@:maincpu,program,ba0,10,1c,00
+@:maincpu,program,118,5,00,00
+
+
+;(hogans alley)
+hogalley:
+@:maincpu,program,4a0,19,12,2f
+@:maincpu,program,4be,2,12,28
+
+
+;skatekds:******Vs. Skate Kids. (Graphic hack of Super Mario Bros.)
+skatekds:
+@:maincpu,program,7d7,6,00,00
+@:maincpu,program,7d8,1,02,02
+@:maincpu,program,6675,8a,05,05
+
+
+;(vs. wrecking crew)
+wrecking:
+@:maincpu,program,a1,3,00,00
+@:maincpu,program,6000,1e,06,16
+
+
+;(clu clu land)
+cluclu:
+@:maincpu,program,751,4f,1d,70
+@:maincpu,program,19,3,05,20
+
+
+;(dr mario)
+drmario:
+@:maincpu,program,120,9b,00,15
+
+
+;balonfgt:[Special thanks to Cananas for creating this entry]
+balonfgt:
+@:maincpu,program,6100,1e,00,00
+@:maincpu,program,6124,0f,0a,10
+
+
+;(duck hunt)
+duckhunt:
+@:maincpu,program,640,20,12,28
+
+
+;(super skykid)
+vsskykid:
+@:maincpu,program,10,6,00,00
+@:maincpu,program,26,6,00,3f
+
+
+;(the goonies)
+goonies:
+@:maincpu,program,7f0,3,00,01
+
+
+;@s:nix/fitfight.cpp
+
+histryma2:
+@:maincpu,program,e023da,28,41,10
+
+
+;******(the history of martial arts)
+histryma:
+@:maincpu,program,e02be0,28,41,10
-;(gunnail)
-gunnail:
-gunnailb:
-@:maincpu,program,faf00,6e,00,49
-@:maincpu,program,fa800,78,00,55
-@:maincpu,program,fe004,f93,00,50
+
+;@s:nix/pirates.cpp
+
+;******genix(By Firebrand)
+genix:
+@:maincpu,program,10bd2c,64,4e,10
+
+
+;pirates (by GeoMan) - 10th score not saved, driver
+pirates:
+piratesb:
+@:maincpu,program,10a544,76,4e,10
+@:maincpu,program,10a5b0,1,4e,4e
+
+
+;@s:nmk/macrossp.cpp
+
+;********(macross plus)
+macrossp:
+@:maincpu,program,f16ddc,5e,00,14
+
+
+;@s:nmk/nmk16.cpp
+
+;(acrobat mission)
+acrobatm:
+acrobatmbl:
+@:maincpu,program,800ea,8d,00,00
+@:maincpu,program,800da,4,00,00
+@:maincpu,program,80021,1,48,48
+
+
+;tdragon:******Thunder Dragon (9th Jan. 1992)
+;tdragon1:******Thunder Dragon (4th Jun. 1991)
+tdragon:
+tdragon1:
+tdragonb:
+tdragonb2:
+tdragonb3:
+@:maincpu,program,b9100,c0,00,20
;(stagger i (japan)) (by GeoMan)
@@ -10262,10 +10981,43 @@ redhawke:
redhawkg:
redhawki:
redhawkk:
+redhawks:
+redhawksa:
stagger1:
@:maincpu,program,3c0300,3c,00,98
+;(black heart)
+;(us aaf mustang (japan)) and clones (by GeoMan)
+blkheart:
+blkheartj:
+mustang:
+mustangb:
+mustangb2:
+mustangb3:
+mustangs:
+@:maincpu,program,f9090,4,00,10
+
+
+strahljbl:
+@:maincpu,program,f3095,d9,55,2e
+@:maincpu,program,f0d31,3,00,50
+
+
+gunnailp:
+@:maincpu,program,faf00,6e,00,49
+@:maincpu,program,fae00,78,00,55
+@:maincpu,program,fe004,f93,00,50
+
+
+;(gunnail)
+gunnail:
+gunnailb:
+@:maincpu,program,faf00,6e,00,49
+@:maincpu,program,fa800,78,00,55
+@:maincpu,program,fe004,f93,00,50
+
+
;(bubble 2000) (by GeoMan)
;hotbubl:******Hot Bubble
bubl2000:
@@ -10323,14 +11075,6 @@ bjtwinpa:
@:maincpu,program,f9100,a0,00,4c
-;tdragon:******Thunder Dragon (9th Jan. 1992)
-;tdragon1:******Thunder Dragon (4th Jun. 1991)
-tdragon:
-tdragon1:
-tdragonb:
-@:maincpu,program,b9100,c0,00,20
-
-
arcadian:
@:maincpu,program,1fe601,5b,01,2a
@@ -10412,17 +11156,6 @@ macross2k:
@:maincpu,program,1fd600,200,00,73
-;(black heart)
-;(us aaf mustang (japan)) and clones (by GeoMan)
-blkheart:
-blkheartj:
-mustang:
-mustangb:
-mustangb2:
-mustangs:
-@:maincpu,program,f9090,4,00,10
-
-
cactus:
sabotenb:
sabotenba:
@@ -10437,17 +11170,6 @@ sbsgomo:
@:maincpu,program,f0207,1,4c,4c
-;(acrobat mission)
-acrobatm:
-@:maincpu,program,800ea,8d,00,00
-@:maincpu,program,800da,4,00,00
-@:maincpu,program,80021,1,48,48
-
-
-tharrier:
-@:maincpu,program,f9100,80,00,4e
-
-
;********(s.s.mission)
ssmissin:
@:maincpu,program,b9100,c0,00,6f
@@ -10460,160 +11182,351 @@ tdragon2a:
@:maincpu,program,1ff169,1,01,01
-;@s:nova2001.cpp
+;powerinsa:******power instinct (usa, bootleg set 1)
+;powerinsb:******power instinct (usa, bootleg set 2)
+powerins:
+powerinsa:
+powerinsb:
+powerinsc:
+powerinsj:
+powerinspj:
+powerinspu:
+@:maincpu,program,18e800,28,00,05
-;(ninjakun majou no bouken) (by GeoMan)
-ninjakun:
-@:maincpu,program,e0a3,37,00,20
-@:maincpu,program,c08c,7,22,10
+;@s:olympia/dday.cpp
-;****note doesnt save top scores
-nova2001:
-nova2001u:
-@:maincpu,program,a0ac,7,22,14
-@:maincpu,program,e07d,37,00,20
+dday:
+ddayc:
+@:maincpu,program,6237,3,00,00
+@:maincpu,program,5379,5,20,20
-;(raiders5) and clones (by GeoMan)
-raiders5:
-raiders5t:
-@:maincpu,program,e075,37,00,55
-@:maincpu,program,888c,7,22,10
+;@s:omori/battlex.cpp
+dodgeman:
+@:maincpu,program,a0f3,22,00,00
+@:maincpu,program,a024,3,00,00
-pkunwar:
-pkunwarj:
-@:maincpu,program,c187,3c,00,00
-@:maincpu,program,c1d6,2,00,20
-@:maincpu,program,c1d8,1,00,00
+;(battle cross) (by GeoMan)
+battlex:
+@:maincpu,program,a036,3,0,0
+@:maincpu,program,a266,23,0,0
-;@s:nycaptor.cpp
-;******Bronx
-bronx:
-@:maincpu,program,e1da,28,0,41
+;@s:omori/carjmbre.cpp
+;(car jamboree)
+carjmbre:
+@:maincpu,program,820a,a0,00,45
+@:maincpu,program,8217,1,30,30
-;********(n.y. captor)
-;** hiscore is broken in this game, when h/score is beaten you cannot put your name in **
-;** the scores save ok though... **
-nycaptor:
-@:maincpu,program,e1da,28,00,4e
-@:maincpu,program,e188,3,00,00
+;@s:omori/popper.cpp
-;@s:nyny.cpp
+;(popper)
+;** do not reset this game - it screws up the hiscore & hiscore saving **
+popper:
+@:maincpu,program,c700,3c,4f,00
+@:maincpu,program,db2b,3,00,01
+@:maincpu,program,c1ed,6,00,20
+@:maincpu,program,c8ca,1,19,19
-;(new york new york)
-nyny:
-nynyg:
-warcadia:
-@:maincpu,program,c000,f,00,00
-@:maincpu,program,7a7d,1,77,77
+;@s:omori/spaceg.cpp
-;@s:offtwall.cpp
+;******Space Guerilla
+spaceg:
+@:maincpu,program,7007,3,00,00
-;*******off the wall (2/3 player upright))
-offtwall:
-offtwallc:
-@:maincpu,program,3fee2e,37,00,49
+;@s:orca/espial.cpp
-;@s:ohmygod.cpp
+espial:
+espialu:
+@:maincpu,program,5842,78,00,27
-naname:
-@:maincpu,program,70e810,4f,4e,00
+;(net wars) (by GeoMan)
+netwars:
+@:maincpu,program,5890,6,00,00
+@:maincpu,program,8040,1,24,24
+@:maincpu,program,8060,1,0,0
+@:maincpu,program,8080,1,0,0
+@:maincpu,program,80a0,1,0,0
+@:maincpu,program,80c0,1,0,0
+@:maincpu,program,80e0,1,1,1
+@:maincpu,program,8100,1,24,24
+@:maincpu,program,8110,1,24,24
-ohmygod:
-@:maincpu,program,704440,e8,01,00
-@:maincpu,program,705900,4,00,00
+;@s:orca/funkybee.cpp
-;@s:olibochu.cpp
+;(sky lancer) (by GeoMan)
+;skylancre:******sky lancer (esco trading co licence)
+skylancr:
+skylancre:
+@:maincpu,program,82e3,2,00,01
+@:maincpu,program,82e5,22,00,00
-;*******(oli-boo-chi)
-;** game updates saved hiscore as soon as you insert a coin **
-olibochu:
-@:maincpu,program,f84c,5,00,00
-@:maincpu,program,f84e,1,05,05
-@:maincpu,program,81bd,1,60,60
-@:maincpu,program,81dd,1,60,60
-@:maincpu,program,81fd,1,05,05
-@:maincpu,program,821d,1,00,00
-@:maincpu,program,823d,1,00,00
-@:maincpu,program,825d,1,00,00
-@:maincpu,program,814f,1,18,18
+;(funky bee) (by GeoMan)
+funkybee:
+funkybeeb:
+@:maincpu,program,828b,2d,00,0c
-;@s:omegrace.cpp
-;********omegrace
-deltrace:
-omegrace:
-@:maincpu,program,43a9,7e,50,48
-@:maincpu,program,4be8,1,08,08
+;@s:orca/kyugo.cpp
+;(flash gal) (by GeoMan)
+flashgal:
+flashgala:
+flashgalk:
+@:maincpu,program,f690,5e,00,40
-;@s:oneshot.cpp
-komocomo:
-@:maincpu,program,821ec,4,00,30
+;99lstwark:******'99: The Last War (Kyugo)
+99lstwar:
+99lstwara:
+99lstwarb:
+99lstwark:
+repulse:
+sonofphx:
+@:maincpu,program,f660,5f,00,ff
-;*******(mad donna (set 1))
-maddonna:
-@:maincpu,program,835fc,4,00,30
+buzzard:
+gyrodine:
+gyrodinet:
+@:maincpu,program,f300,45,00,0b
+@:maincpu,program,94e2,1,01,01
+@:maincpu,program,94a2,1,01,01
+@:maincpu,program,9462,1,03,03
+@:maincpu,program,9422,1,06,06
+@:maincpu,program,93e2,1,04,04
+@:maincpu,program,93a2,1,00,00
+@:maincpu,program,9362,1,00,00
+@:maincpu,program,9322,1,00,00
-;@s:onetwo.cpp
+;(s.r.d. mission) (by GeoMan)
+fx:
+srdmissn:
+@:maincpu,program,e6ef,5f,00,ff
-;********one + two
-onetwo:
-onetwoe:
-@:maincpu,program,fcae,52,00,01
+;airwolfa:******Airwolf (US)
+airwolf:
+airwolfa:
+skywolf:
+skywolf2:
+skywolf3:
+@:maincpu,program,e71a,5f,00,ff
-;@s:opwolf.cpp
-opwolf:
-opwolfa:
-opwolfb:
-opwolfj:
-opwolfjsc:
-opwolfu:
-@:maincpu,program,100a42,75,00,54
-@:maincpu,program,100e28,3b,00,01
+;********(legend)
+legend:
+legendb:
+@:maincpu,program,e70c,5d,00,40
-;@s:othunder.cpp
+;@s:orca/marineb.cpp
-;(operation thunderbolt)
-;othunderj:******Operation Thunderbolt (Japan)
-othunder:
-othunderj:
-othunderjsc:
-othunderu:
-@:maincpu,program,839ca,438,4e,00
-@:maincpu,program,83dd9,1,01,01
+changes:
+changesa:
+looper:
+@:maincpu,program,899a,6,26,27
+@:maincpu,program,89ba,6,00,00
+@:maincpu,program,8a1a,6,26,27
+@:maincpu,program,8a3a,6,00,00
+@:maincpu,program,8a9a,6,26,27
+@:maincpu,program,8aba,6,00,00
-;@s:pacland.cpp
+;(battle cruiser m12)
+bcruzm12:
+@:maincpu,program,858c,45,00,12
-pacland:
-paclandj:
-paclandjo:
-paclandjo2:
-paclandm:
-paclandm2:
-@:maincpu,program,2140,4a,00,e6
-@:maincpu,program,205d,4,00,00
+
+;wanted:* not saving whole table
+wanted:
+@:maincpu,program,8a5e,1,00,00
+@:maincpu,program,8a3e,1,03,03
+@:maincpu,program,8a1e,1,00,00
+@:maincpu,program,89fe,1,00,00
+@:maincpu,program,89de,1,00,00
+@:maincpu,program,81b4,4c,00,16
+
+
+marineb:
+@:maincpu,program,8979,6,24,24
+@:maincpu,program,8999,6,00,00
+
+
+hopprobo:
+@:maincpu,program,805f,19,00,00
+@:maincpu,program,8078,1e,1c,0e
+@:maincpu,program,89be,1,00,00
+@:maincpu,program,89de,1,01,01
+@:maincpu,program,89fe,1,06,06
+@:maincpu,program,8a1e,1,07,07
+@:maincpu,program,8a3e,1,00,00
+
+
+hoccer:
+@:maincpu,program,8550,32,00,01
+@:maincpu,program,85ca,6,00,00
+
+
+hoccer2:
+@:maincpu,program,8550,2d,00,29
+@:maincpu,program,85ca,6,00,00
+
+
+springer:
+@:maincpu,program,8afa,5,00,00
+@:maincpu,program,8b1a,5,00,00
+@:maincpu,program,8b3a,5,02,02
+@:maincpu,program,8b5a,5,00,00
+@:maincpu,program,8b7a,5,00,00
+@:maincpu,program,8b9a,5,00,00
+@:maincpu,program,8bba,5,00,00
+
+
+;@s:orca/sub.cpp
+
+sub:
+@:maincpu,program,b727,5a,24,24
+
+
+;@s:orca/vastar.cpp
+
+dogfightp:
+@:maincpu,program,f16a,82,20,ff
+@:maincpu,program,b2df,1,24,24
+@:maincpu,program,b2ff,1,24,24
+@:maincpu,program,b31f,1,03,03
+@:maincpu,program,b33f,1,05,05
+@:maincpu,program,b35f,1,02,02
+@:maincpu,program,b37f,1,00,00
+@:maincpu,program,b39f,1,00,00
+
+
+pprobe:
+@:maincpu,program,f380,45,00,15
+@:maincpu,program,cd9e,1,00,00
+@:maincpu,program,cdbe,1,00,00
+@:maincpu,program,cdde,1,03,03
+@:maincpu,program,cdfe,1,01,01
+@:maincpu,program,ce1e,1,01,01
+@:maincpu,program,ce3e,1,01,01
+@:maincpu,program,ce5e,1,01,01
+
+
+;(vastar (set 1)) and clones (by GeoMan)
+vastar:
+vastar2:
+vastar3:
+vastar4:
+@:maincpu,program,cda1,1,00,00
+@:maincpu,program,cdc1,1,00,00
+@:maincpu,program,cde1,1,00,00
+@:maincpu,program,ce01,1,00,00
+@:maincpu,program,ce21,1,02,02
+@:maincpu,program,ce41,1,28,28
+@:maincpu,program,ce61,1,28,28
+@:maincpu,program,f128,85,00,16
+
+
+;@s:orca/zodiack.cpp
+
+;(dog fight)
+dogfight:
+@:maincpu,program,587e,82,20,ff
+@:maincpu,program,b2df,1,24,24
+@:maincpu,program,b2ff,1,24,24
+@:maincpu,program,b31f,1,03,03
+@:maincpu,program,b33f,1,05,05
+@:maincpu,program,b35f,1,02,02
+@:maincpu,program,b37f,1,00,00
+@:maincpu,program,b39f,1,00,00
+
+
+zodiack:
+@:maincpu,program,5857,37,00,24
+@:maincpu,program,b2df,1,00,00
+@:maincpu,program,b2ff,1,00,00
+@:maincpu,program,b31f,1,01,01
+@:maincpu,program,b33f,1,02,02
+@:maincpu,program,b35f,1,08,08
+@:maincpu,program,b37f,1,00,00
+@:maincpu,program,b39f,1,00,00
+
+
+;(bounty, the) (by GeoMan)
+bounty:
+@:maincpu,program,b1ba,6,0,0
+@:maincpu,program,b23a,6,0,0
+@:maincpu,program,b2ba,6,0,0
+@:maincpu,program,b19a,6,26,27
+@:maincpu,program,b21a,6,26,27
+@:maincpu,program,b29a,6,26,27
+
+
+;(percussor, the) (by GeoMan)
+percuss:
+@:maincpu,program,5da8,37,00,24
+
+
+;Moguchan (by GeoMan)
+moguchan:
+@:maincpu,program,5eda,6,0,0
+
+
+;@s:pacific/mrflea.cpp
+
+;(the amazing adventures of mr. f. lea)
+;** this game does not display the top score in the top centre of the screen **
+;** untill the game has ran for a while without inserting any credits but this **
+;** does not matter as long as the default 5,000 high score has been beaten on your**
+;** first game.......
+;** which isn`t hard, or you can just let the game run through attract mode for a **
+;** couple of minutes until the 5,000 top score is on screen. it`s up to you !!! **
+mrflea:
+@:maincpu,program,cafd,99,30,20
+@:maincpu,program,c6f8,6,30,30
+
+
+;@s:pacific/thief.cpp
+
+;(nato defense) and clones (by GeoMan)
+natodef:
+natodefa:
+@:maincpu,program,8df6,49,30,20
+
+
+sharkatt:
+@:maincpu,program,806e,50,30,20
-;@s:pacman.cpp
+thief:
+@:maincpu,program,8abc,49,30,20
+
+
+;@s:pacman/jrpacman.cpp
+
+jrhearts: ; missing
+jrpacad: ; missing
+jrpacman:
+jrpacmanf:
+jrvectr: ; missing
+@:maincpu,program,4751,01,48,48
+@:maincpu,program,476d,06,40,40
+@:maincpu,program,4e88,03,00,00
+
+
+;@s:pacman/pacman.cpp
;*** puckman/pacman (and clones) for pacmame & regular mame builds **
;abscam:******Abscam
@@ -10624,6 +11537,7 @@ alibaba:
alibabab:
baby2: ; missing
baby3: ; missing
+baracuda:
bucaner:
caterpil: ; missing
chtmsatk: ; missing
@@ -10667,8 +11581,11 @@ mspacat2: ; missing
mspacatb: ; missing
mspacii:
mspacii2:
+mspackpls:
mspacmab:
mspacmab2:
+mspacmab3:
+mspacmab4:
mspacman:
mspacmanbcc:
mspacmanbco:
@@ -10676,10 +11593,13 @@ mspacmanbg:
mspacmanbg2:
mspacmanbgd:
mspacmanbi:
+mspacmanblt2:
mspacmancr:
+mspacmanlai:
mspacmat:
mspacmbe:
mspacmbmc:
+mspacmbn:
mspacmnf:
mspacpls:
msrumble: ; missing
@@ -10692,6 +11612,7 @@ pacman:
pacmanf:
pacmanfm:
pacmanjpm:
+pacmanug:
pacmini: ; missing
pacmini2: ; missing
pacmod:
@@ -10711,6 +11632,39 @@ titanpac:
@:maincpu,program,43d1,01,48,48
+bucanera:
+@:maincpu,program,4e88,04,00,00
+@:maincpu,program,43ed,06,00,40
+@:maincpu,program,43d1,01,48,48
+
+
+crush2:
+crush3:
+crushbl2:
+crushbl3:
+crushs:
+mbrush:
+painter:
+paintrlr:
+@:maincpu,program,43d2,02,49,48
+@:maincpu,program,4c80,03,00,00
+
+
+mspactwin:
+@:maincpu,program,4e88,04,00,00
+@:maincpu,program,43ed,06,40,40
+@:maincpu,program,43d1,01,48,48
+@:maincpu,program,47ed,06,00,00
+
+
+clubpacm:
+clubpacma:
+@:maincpu,program,4e88,04,00,00
+@:maincpu,program,43ed,06,40,40
+@:maincpu,program,43d1,01,59,59
+@:maincpu,program,43cb,0a,4f,4d
+
+
;******Crush Roller (Kural TWT)
crush4:
crush5:
@@ -10749,13 +11703,6 @@ pinguinos:
@:maincpu,program,880c,2,d0,07
-clubpacm:
-@:maincpu,program,4e88,04,00,00
-@:maincpu,program,43ed,06,40,40
-@:maincpu,program,43d1,01,59,59
-@:maincpu,program,43cb,0a,4f,4d
-
-
gorkans:
mrtnt:
@:maincpu,program,4cb3,3c,4c,01
@@ -10800,17 +11747,6 @@ crushbl:
@:maincpu,program,4c80,3,00,00
-crush2:
-crush3:
-crushbl2:
-crushbl3:
-crushs:
-mbrush:
-paintrlr:
-@:maincpu,program,43d2,02,49,48
-@:maincpu,program,4c80,03,00,00
-
-
mspacmanblt:
@:maincpu,program,4e88,04,00,00
@:maincpu,program,43ed,06,40,40
@@ -10916,87 +11852,12 @@ lizwiz:
@:maincpu,program,43ed,6,00,40
-;@s:pandoras.cpp
-
-;(pandoras palace)
-pandoras:
-@:maincpu,program,6100,2d,18,20
-@:maincpu,program,60d0,4,00,50
-
-
-;@s:panicr.cpp
-
-;panicr:******panic road
-panicr:
-panicrg:
-@:maincpu,program,18fc,95,40,20
-
-
-;@s:paradise.cpp
-
-;madball:******Mad Ball V2.0
-madball:
-madballn:
-@:maincpu,program,eb3b,1e,41,00
-@:maincpu,program,eb57,1,01,01
-
-
-;******paradise
-paradise:
-paradisea:
-paradisee:
-@:maincpu,program,e6c3,3,00,01
-@:maincpu,program,e6e3,22,41,00
-
-
-;@s:parodius.cpp
-
-;(parodius da! (japan))
-parodius:
-parodiusa:
-parodiuse:
-parodiusj:
-@:maincpu,program,1f50,5e,00,00
-@:maincpu,program,1f51,1,05,05
-
-
-;@s:pass.cpp
-
-;(pass) (by GeoMan)
-pass:
-@:maincpu,program,81200,50,4b,00
-@:maincpu,program,8005e,4,00,00
-
-
-;@s:pbaction.cpp
-
-;pbaction3:******Pinball Action (set 3, encrypted?)
-pbaction:
-pbaction2:
-pbaction3:
-pbaction4:
-pbactiont:
-@:maincpu,program,c093,51,07,00
-@:maincpu,program,c12f,27,48,4b
-
-
-;@s:pcktgal.cpp
-
-;(pocket gal (japan)) and clones (by GeoMan)
-pcktgal:
-pcktgal2:
-pcktgal2j:
-pcktgalb:
-spool3:
-spool3i:
-@:maincpu,program,0467,2,64,00
-
-
-;@s:pengo.cpp
+;@s:pacman/pengo.cpp
;pengob:******pengo (bootleg)
-pengo:
-pengob:
+pengoja:
+pengojb:
+pengojbl:
pengojpm:
pengomc1:
pengomc2:
@@ -11006,101 +11867,69 @@ penta:
@:maincpu,program,880c,2,d0,07
-;pengo4:******Pengo (set 4)
-pengo2:
-pengo2u:
-pengo4:
-pengo5:
-@:maincpu,program,8840,1e,00,4d
-@:maincpu,program,880c,2,00,00
-
-
jrpacmbl:
@:maincpu,program,8e88,3,00,00
@:maincpu,program,876d,6,40,40
@:maincpu,program,8dce,1,03,03
+;pengo4:******Pengo (set 4)
+pengo:
+pengoa:
+pengob:
+pengoc:
+@:maincpu,program,8840,1e,00,4d
+@:maincpu,program,880c,2,00,00
+
+
;******pengo (set 3 not encrypted)
-pengo3u:
+pengoj:
@:maincpu,program,8840,1e,d0,4d
@:maincpu,program,880c,2,d0,07
-;@s:pgm.cpp
-
-ddp3:
-ddpdoj:
-ddpdoja:
-ddpdojb:
-@:maincpu,program,80381a,8c,00,02
-
-
-orlegend111c:
-orlegend111t:
-@:maincpu,program,81191e,d4,49,b0
-
-
-ket:
-keta:
-ketb:
-@:maincpu,program,80101c,80,00,00
-@:maincpu,program,801093,1,30,30
-
-
-photoy2k102:
-photoy2k104:
-@:maincpu,program,80a306,1,12,12
-@:maincpu,program,813452,78,49,40
-@:maincpu,program,833452,78,49,40
-@:maincpu,program,853452,78,49,40
-@:maincpu,program,873452,78,49,40
-@:maincpu,program,893452,78,49,40
-@:maincpu,program,8b3452,78,49,40
-@:maincpu,program,8d3452,78,49,40
-@:maincpu,program,8f3452,78,49,40
-
-
-espgal:
-@:maincpu,program,80107e,80,00,00
-@:maincpu,program,8010f5,1,30,30
-
-
-;********(oriental legend)
-orlegend:
-orlegendc:
-orlegende:
-@:maincpu,program,811946,d4,49,b0
-
-
-;dodonpachi dai-ou-jou (black label) -- new version game is the default hiscore.dat version !!
-;ddpdojblk:**** you choose between old/new game on startup swap the ; on the version you want. ****
-;*** new version (default) - if you use other version you must delete .hi file
-;0,803824,8c,00,02 ;*** old version - if you use other version you must delete .hi file
-ddpdojblk:
-ddpdojblka:
-@:maincpu,program,803824,8c,01,06
+;@s:pce/uapce.cpp
+;***** alien crush (not working - reason unknown)
+aliencr:
+@:maincpu,program,3219,24,10,40
-orlegend105k:
-@:maincpu,program,811918,d4,49,b0
+;paclandp:*****not working/saving driver issue i think
+paclandp:
+@:maincpu,program,2100,6,00,00
+@:maincpu,program,2110,4e,00,24
+@:maincpu,program,2112,1,03,03
-drgw2hk:
-@:maincpu,program,80f13a,46,49,40
+;@s:phoenix/naughtyb.cpp
-;********Dragon World II (ver. 110X, Export)
-drgw2:
-dw2v100x:
-@:maincpu,program,80caf8,46,49,40
+;in this game to make the hiscore display by starting a new game (if you beat the hiscore) before you exit
+;(pop flamer (protected)) and clones (by GeoMan)- hiscore updates after new game start !!!
+naughtyb:
+naughtyba:
+naughtybb:
+naughtybc:
+popflame:
+popflamea:
+popflameb:
+popflamen:
+@:maincpu,program,4004,3,0,0
+@:maincpu,program,4021,3,0,0
+@:maincpu,program,872f,1,20,20
+@:maincpu,program,8733,1,20,20
+@:maincpu,program,8737,1,20,20
+@:maincpu,program,873b,1,20,20
+@:maincpu,program,873f,1,20,20
+@:maincpu,program,8743,1,20,20
-;@s:phoenix.cpp
+;@s:phoenix/phoenix.cpp
; fenix is not working yet ;[Special thanks to Cananas for enhancing this entry]
avefenix:
avefenixrf:
+cityatta:
condor:
falcon:
fenixn:
@@ -11188,190 +12017,33 @@ vautourz:
@:maincpu,program,4020,01,20,20
-;@s:photon.cpp
-
-;phpython:******Python (Photon System)
-phpython:
-@:maincpu,program,4e1c,3,00,00
-@:maincpu,program,4e1d,1,05,05
-
-
-;@s:pingpong.cpp
-
-pingpong:
-@:maincpu,program,94b1,3c,02,23
-@:maincpu,program,949e,3,02,00
-@:maincpu,program,846d,6,10,00
-
-
-;@s:pipedrm.cpp
-
-pipedrm:
-pipedrmj:
-pipedrmt:
-pipedrmu:
-@:maincpu,program,8d80,59,0c,00
-
-
-;hatrisj:******hatris (japan)
-hatris:
-hatrisj:
-@:maincpu,program,8d01,76,42,10
-
-
-;@s:pirates.cpp
-
-;******genix(By Firebrand)
-genix:
-@:maincpu,program,10bd2c,64,4e,10
-
-
-;pirates (by GeoMan) - 10th score not saved, driver
-pirates:
-piratesb:
-@:maincpu,program,10a544,76,4e,10
-@:maincpu,program,10a5b0,1,4e,4e
-
-
-;@s:pitnrun.cpp
-
-;*******pit & run
-;pitnruna:******Pit & Run (set 2)
-pitnrun:
-pitnruna:
-@:maincpu,program,8710,1e,00,01
-@:maincpu,program,80aa,3,00,01
-@:maincpu,program,8a21,1,01,01
-@:maincpu,program,8a01,1,00,00
-@:maincpu,program,89e1,1,00,00
-@:maincpu,program,89c1,1,00,00
-@:maincpu,program,89a1,1,00,00
-@:maincpu,program,8981,1,27,27
-
-
-;@s:playch10.cpp
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_golf:
-@:cart,program,0e,02,64,0
-@:cart,program,0b,01,04,04
-@:ppu,videoram,22cf,07,a1,00
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_1942:
-@:cart,program,7bf,06,00,00
-@:cart,program,108,01,03,03
-@:ppu,videoram,346d,06,00,00
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-;****** hiscores update on game play start ******
-pc_bfght:
-@:cart,program,629,0f,00,00
-@:cart,program,19,01,2b,2b
-@:ppu,videoram,204e,06,00,00
-@:ppu,videoram,204f,01,01,01
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_duckh:
-@:cart,program,05f1,03,01,00
-@:cart,program,2d,01,f2,f2
-@:cart,program,5f5,03,01,00
-@:cart,program,5f9,03,01,00
-@:ppu,videoram,2312,06,24,00
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_grdue:
-pc_grdus:
-@:cart,program,7e0,03,00,00
-@:cart,program,4c,01,f3,f3
-@:ppu,videoram,222e,07,30,30
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_hgaly:
-@:cart,program,5f1,0b,01,00
-@:cart,program,2d,01,22,22
-@:ppu,videoram,22ef,06,00,00
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_kngfu:
-@:cart,program,511,0d,00,00
-@:cart,program,36,01,32,32
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_mario:
-@:cart,program,91,3,00,00
-@:cart,program,2d,01,46,46
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_rnatk:
-@:cart,program,7e0,3,00,00
-@:cart,program,1a,01,76,76
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_suprc:
-@:cart,program,7e0,3,00,00
-@:cart,program,1b,01,23,23
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_tmnt:
-@:cart,program,8c8,3,00,00
-@:cart,program,3a,01,f5,f5
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_goons:
-@:cart,program,7f0,3,00,01
-@:cart,program,42,01,f5,f5
-@:ppu,videoram,222d,07,00,30
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_tkfld:
-@:cart,program,745,5,00,00
-@:cart,program,02,01,08,08
-@:cart,program,704,10,03,09
-@:cart,program,780,0e,00,02
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_trjan:
-@:cart,program,32c,6,00,00
-@:cart,program,20,01,08,08
-@:ppu,videoram,206c,06,10,00
-
-
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_wgnmn:
-@:cart,program,5f1,0b,01,00
-@:cart,program,2f,01,08,08
+;@s:phoenix/safarir.cpp
+;(safari rally) (by GeoMan) - hiscore updates after new game start !!!
+safarir:
+safarirj:
+@:maincpu,program,2389,3,00,00
+@:maincpu,program,2381,3,00,00
+@:maincpu,program,2141,1,20,20
+@:maincpu,program,2161,1,20,20
+@:maincpu,program,2181,1,20,20
+@:maincpu,program,21a1,1,20,20
+@:maincpu,program,21c1,1,20,20
+@:maincpu,program,21e1,1,20,20
-;****** turn FREEPLAY on (in dipswitch settings) before playing ******
-pc_drmro:
-pc_virus:
-@:cart,program,700,06,00,00
-@:cart,program,43,01,08,08
+;@s:playmark/drtomy.cpp
-;it won't reload the high score unless you reset twice
-pc_smb:
-@:cart,program,7df,4,0,0,ff
+;******Dr. Tomy
+drtomy:
+@:maincpu,program,ffee00,c0,20,30
-;@s:playmark.cpp
+;@s:playmark/playmark.cpp
wbeachvl:
wbeachvl3:
+wbeachvla:
@:maincpu,program,ffbfb8,8a,31,00
@@ -11398,114 +12070,29 @@ hrdtimesa:
@:maincpu,program,85c14,4,00,00
-;@s:polepos.cpp
-
-;(pole position)
-grally:
-poleposa1:
-poleposa2:
-@:maincpu,program,3000,7f2,b0,95
-@:maincpu,program,4080,1,56,56
-
-
-polepos2:
-@:maincpu,program,3000,7f2,d0,a2
-@:maincpu,program,40d6,1,c9,c9
-
-
-;(pole position 2)
-polepos2a:
-polepos2b:
-@:maincpu,program,3000,7f2,d0,a2
-
-
-;@s:pooyan.cpp
-
-pootan:
-pooyan:
-pooyans:
-@:maincpu,program,89c0,1e,00,00
-@:maincpu,program,8a00,1e,00,01
-@:maincpu,program,8e00,1e,00,00
-@:maincpu,program,88a8,3,00,01
-
-
-;@s:popeye.cpp
-
-;(popeye bootleg fixed)
-popeyeb2:
-popeyebl:
-popeyej:
-popeyejo:
-@:maincpu,program,8200,24,00,02
-@:maincpu,program,8fed,3,00,03
-@:maincpu,program,8f32,6,00,00
-
-
-;(popeye (revision d & revision d not protected & revision f))fixed
-popeye:
-popeyeb3:
-popeyeu:
-@:maincpu,program,8a00,24,00,02
-@:maincpu,program,8fed,3,00,03
-@:maincpu,program,8f32,6,00,00
-
-
-popeyef:
-@:maincpu,program,8a00,24,00,01
-@:maincpu,program,8fed,3,00,02
-@:maincpu,program,8f32,6,00,00
-
-
-;********(sky skipper)
-skyskipr:
-@:maincpu,program,81f2,3,01,00
-@:maincpu,program,8610,1e,01,16
-
-
-;@s:popobear.cpp
-
-popobear:
-@:maincpu,program,210c42,27c,00,01
-
-
-;@s:popper.cpp
-
-;(popper)
-;** do not reset this game - it screws up the hiscore & hiscore saving **
-popper:
-@:maincpu,program,c700,3c,4f,00
-@:maincpu,program,db2b,3,00,01
-@:maincpu,program,c1ed,6,00,20
-@:maincpu,program,c8ca,1,19,19
+;@s:playmark/sslam.cpp
+;powerbals:******power balls (super slam conversion)
+powerbal:
+powerbals:
+@:maincpu,program,f8276,7c,56,00
+@:maincpu,program,f82f0,1,20,20
-;@s:powerins.cpp
-;powerinsa:******power instinct (usa, bootleg set 1)
-;powerinsb:******power instinct (usa, bootleg set 2)
-powerins:
-powerinsa:
-powerinsb:
-powerinsj:
-powerinspu:
-@:maincpu,program,18e800,28,00,05
+;@s:promat/1945kiii.cpp
+slspirit:
+@:maincpu,program,100a2d,63,03,10
-;@s:prehisle.cpp
-;(prehistoric isle in 1930 (world))
-gensitou:
-prehisle:
-prehisleb:
-prehislek:
-prehisleu:
-@:maincpu,program,700a0,4e,00,00
-@:maincpu,program,7003d,5,00,00
-@:maincpu,program,700ec,1,01,01
+;*******1945k III
+1945kiii:
+1945kiiin:
+1945kiiio:
+@:maincpu,program,100a2d,63,03,88
-;@s:psikyo.cpp
+;@s:psikyo/psikyo.cpp
;(strikers 1945) (by tamphax)
s1945:
@@ -11545,7 +12132,19 @@ btlkroadk:
@:maincpu,program,fe1af4,4e,00,04
-;@s:psikyosh.cpp
+;@s:psikyo/psikyosh.cpp
+
+;tgm2: saves todays scores (rest are saved in nvram i think)
+tgm2:
+@:maincpu,program,60793f4,68,54,00
+@delay=5
+
+
+;tgm2p: saves todays scores (rest are saved in nvram i think)
+tgm2p:
+@:maincpu,program,6079454,68,54,00
+@delay=5
+
;(gunbird 2) (by Paul Priest)
gunbird2:
@@ -11594,772 +12193,176 @@ sbomber:
@:maincpu,program,600c95d,1,01,01
-;@s:psychic5.cpp
-
-psychic5:
-psychic5j:
-@:maincpu,program,fd00,30,00,59
-@:maincpu,program,fc84,3,00,53
-
-
-;@s:puckpkmn.cpp
-
-;*******puckman pockimon
-puckpkmn:
-puckpkmna:
-puckpkmnb:
-@:maincpu,program,ff0020,30,38,36
-
-
-;@s:punchout.cpp
-
-;spnchout:[Special thanks to Cananas for enhancing this entry]
-spnchout:
-spnchoutj:
-@:maincpu,program,d5c0,f0,21,04
-
-
-;punchout:[Special thanks to Cananas for enhancing this entry]
-punchita:
-punchout:
-punchouta:
-punchoutj:
-@:maincpu,program,d660,50,41,04
-
-
-;@s:pzletime.cpp
-
-;pzletime:******Puzzle Time (Prototype)
-pzletime:
-@:maincpu,program,f03804,3b,00,4e
-
-
-;@s:quantum.cpp
-
-;(quantum)
-;* signiture is screwed up (other scores ok) *
-quantum:
-quantum1:
-quantump:
-@:maincpu,program,1b5aa,1254,00,54
-
-
-;@s:r2dtank.cpp
-
-;*******r2d tank
-r2dtank:
-@:maincpu,program,43,3,00,00
-@:maincpu,program,48,1,a9,a9
-
-
-;@s:r2dx_v33.cpp
-
-zerotm2k:
-@:maincpu,program,924e,4b,40,55
-
-
-r2dx_v33:
-@:maincpu,program,a2d8,2cf,a0,2a
-
-
-nzeroteam:
-nzeroteama:
-@:maincpu,program,925c,4b,40,55
-
-
-r2dx_v33_r2:
-@:maincpu,program,9e46,ef,50,2a
-
-
-;@s:rabbit.cpp
-
-rabbit:
-rabbitjt:
-@:maincpu,program,fffea4,2f,00,4b
-
-
-;@s:raiden.cpp
-
-raidenub:
-@:maincpu,program,c27,b3,50,2e
-
-
-raidenua:
-@:maincpu,program,000c47,b3,50,2e
-
-
-raiden:
-raidena:
-raidenk:
-raidenkb:
-raident:
-raidenu:
-@:maincpu,program,000bd7,b4,50,00
-
-
-raidenb:
-@:maincpu,program,000c27,b3,50,2e
-
-
-;@s:raiden2.cpp
-
-raiden2:
-raiden2dx:
-raiden2f:
-raiden2hk:
-raiden2i:
-raiden2j:
-raiden2k:
-raiden2nl:
-raiden2sw:
-raiden2u:
-@:maincpu,program,9dd4,ef,50,2a
-
-
-;***** raiden dx fixed (thanks to Takasaki) **********
-raidendx:
-raidendxa1:
-raidendxa2:
-raidendxch:
-raidendxg:
-raidendxj:
-raidendxk:
-raidendxnl:
-raidendxpt:
-raidendxu:
-@:maincpu,program,a25a,2cf,a0,2a
-
-
-raiden2e:
-raiden2ea:
-raiden2eg:
-raiden2eu:
-raiden2eua:
-raiden2g:
-@:maincpu,program,9de4,ef,50,2a
-
-
-zeroteam:
-zeroteama:
-zeroteamb:
-zeroteamc:
-zeroteamd:
-zeroteams:
-zeroteamsr:
-@:maincpu,program,9212,4b,40,55
-
-
-;@s:rallyx.cpp
-
-dngrtrck:
-nrallyx:
-nrallyxb:
-rallyx:
-rallyxa:
-rallyxm:
-rallyxmr:
-@:maincpu,program,8060,8,00,02
-
-
-jackler:
-jungler:
-junglers:
-savanna:
-@:maincpu,program,9940,a0,00,5b
-@:maincpu,program,991c,3,00,02
-
-
-;(tactician) (by GeoMan)
-tactcian:
-@:maincpu,program,98a8,3,0,0
-@:maincpu,program,8048,140,00,10
-@:maincpu,program,8028,20,00,10
-
-
-commsega:
-@:maincpu,program,9c6d,6,00,00
-
-
-tactcian2:
-@:maincpu,program,98a8,3,80,00
-@:maincpu,program,8048,140,80,10
-@:maincpu,program,8028,20,00,10
-
-
-;locoboot:******Loco-Motion (bootleg)
-cottong:
-gutangtn:
-locoboot:
-locomotn:
-@:maincpu,program,9f00,78,00,3e
-@:maincpu,program,99c6,3,00,01
-
-
-;@s:rastan.cpp
-
-;rastan:[Special thanks to Wob for enhancing this entry]
-rastan:
-rastanb:
-rastanu:
-rastanua:
-rastanub:
-rastsaga:
-rastsagaa:
-rastsagab:
-@:maincpu,program,10c140,26,31,4e
-@:maincpu,program,d000b2,1,00,00
-@:maincpu,program,d000b5,1,2b,2b
-@:maincpu,program,d000ba,1,00,00
-@:maincpu,program,d000bd,1,2d,2d
-@:maincpu,program,d000c2,1,00,00
-@:maincpu,program,d000c5,1,31,31
-@:maincpu,program,d000ca,1,00,00
-@:maincpu,program,d000cd,1,2c,2c
-@:maincpu,program,d000d2,1,01,01
-@:maincpu,program,d000d5,1,2a,2a
-@:maincpu,program,d000da,1,01,01
-@:maincpu,program,d000dd,1,2a,2a
-
-
-;@s:rbisland.cpp
-
-rbisland:
-rbislando:
-@:maincpu,program,10d0cc,32,00,32
-@:maincpu,program,10e1f2,04,00,00
-
-
-jumping:
-jumpinga:
-@:maincpu,program,10d0cc,32,00,41
-@:maincpu,program,10e1f2,04,00,00
-
-
-rbislande:
-@:maincpu,program,10d0d2,32,00,33
-@:maincpu,program,10e1b6,04,00,00
-
-
-;@s:realbrk.cpp
-
-;realbrkk:******Billiard Academy Real Break (Korea)
-realbrk:
-realbrkj:
-realbrkk:
-realbrko:
-@:maincpu,program,ff84da,44,52,f8
-
-
-;@s:redalert.cpp
-
-;(red alert) (by GeoMan)
-redalert:
-@:maincpu,program,301,f,0,0
-
-
-;*******demoneye-x
-demoneye:
-@:maincpu,program,128,b,00,00
-
-
-;@s:redclash.cpp
-
-redclasht:
-redclashta:
-@:maincpu,program,6023,4,00,00
-@:maincpu,program,6320,6,23,1d
-@:maincpu,program,41bd,01,00,00
-@:maincpu,program,41dd,01,00,00
-@:maincpu,program,41fd,01,06,06
-@:maincpu,program,421d,01,01,01
-@:maincpu,program,423d,01,01,01
-@:maincpu,program,425d,01,01,01
-@delay=2.5
-
-
-redclash:
-redclashs:
-@:maincpu,program,6023,4,00,00
-@:maincpu,program,6320,6,1a,1e
-@:maincpu,program,41bd,01,00,00
-@:maincpu,program,41dd,01,00,00
-@:maincpu,program,41fd,01,06,06
-@:maincpu,program,421d,01,01,01
-@:maincpu,program,423d,01,01,01
-@:maincpu,program,425d,01,01,01
-
-
-;ZeroHour (by GeoMan)
-zerohour:
-zerohoura:
-zerohouri:
-@:maincpu,program,3023,4,0,0
-
-
-;@s:renegade.cpp
-
-renegade:
-renegadeb:
-@:maincpu,program,101b,28,00,4c
-@:maincpu,program,2e,3,00,05
-
-
-;(nekketsu kouha kunio-kun (japan bootleg))
-kuniokun:
-kuniokunb:
-@:maincpu,program,2e,3,00,05
-@:maincpu,program,102c,28,47,00
-
-
-;@s:retofinv.cpp
-
-retofinv:
-retofinvb1:
-retofinvb2:
-retofinvb3:
-@:maincpu,program,9980,23,00,54
-@:maincpu,program,990f,3,00,00
-
-
-;@s:rockrage.cpp
-
-;(rock `n rage (world?)
-rockrage:
-rockragej:
-@:maincpu,program,4980,4e,01,53
-@:maincpu,program,48be,3,01,80
-@:maincpu,program,4fc8,1,54,54
-
-
-;******Rock 'n Rage (Prototype?)
-rockragea:
-@:maincpu,program,4980,4e,01,53
-@:maincpu,program,48be,3,01,80
-@:maincpu,program,4866,1,03,03
-
-
-;@s:rocnrope.cpp
-
-rocnrope:
-rocnropek:
-ropeman:
-@:maincpu,program,5160,40,01,00
-@:maincpu,program,50a6,03,01,00
-
-
-;@s:rohga.cpp
-
-;******Schmeiser Robo (japan)
-schmeisr:
-@:maincpu,program,ff5a20,79,00,4c
-
-
-;*******nitroball (us)
-gunball:
-nitrobal:
-nitrobala:
-@:maincpu,program,ff9deb,14b,54,00
-@:maincpu,program,ff803a,4,00,00
-@:maincpu,program,ff803b,1,10,10
-
-
-;rohga1:******rohga armour force (asia/europe v3.0 set 1)
-;rohga2:******rohga armour force (asia/europe v3.0 set 2)
-rohga:
-rohga1:
-rohga2:
-rohgah:
-rohgau:
-wolffang:
-@:maincpu,program,3f0200,50,00,09
-
-
-darkseal2:
-wizdfire:
-wizdfireu:
-@:maincpu,program,fdc034,28,0b,00
-@:maincpu,program,fdc059,1,01,01
-
-
-;@s:rollerg.cpp
-
-;(rollergames (us))
-;** untested - no good at this game !! **
-rollerg:
-rollergj:
-@:maincpu,program,2a80,28,08,06
-
-
-;@s:rollrace.cpp
-
-fightrol:
-rollace:
-@:maincpu,program,c060,3e,00,11
-@:maincpu,program,c026,3,00,00
-
-
-;@s:route16.cpp
-
-;spacecho2:******space echo (set 1)
-;spacecho:******space echo (set 2)
-spacecho:
-spacecho2:
-speakres:
-speakresb:
-stratvox:
-stratvoxa:
-stratvoxb:
-@:cpu1,program,4001,3,00,00
-@:cpu1,program,4010,3,00,00
-
-
-route16:
-route16a:
-route16bl:
-routex:
-@:cpu1,program,4032,9,0,0
-
-
-;@s:rpunch.cpp
-
-rabiolep:
-@:maincpu,program,ffe01,77,00,80
-
-
-rpunch:
-@:maincpu,program,ffe01,73,00,17
-
-
-;******super volley (japan)
-svolley:
-svolleyk:
-svolleyu:
-@:maincpu,program,60512,48,00,05
-
-
-;@s:runaway.cpp
-
-qwak:
-@:maincpu,program,0045,3,00,00
-@:maincpu,program,0108,3,4d,43
-
-
-;@s:rungun.cpp
-
-;******run and gun(By Firebrand)
-rungun:
-@:maincpu,program,380c80,4b,4b,40
-
-
-;@s:safarir.cpp
-
-;(safari rally) (by GeoMan) - hiscore updates after new game start !!!
-safarir:
-safarirj:
-@:maincpu,program,2389,3,00,00
-@:maincpu,program,2381,3,00,00
-@:maincpu,program,2141,1,20,20
-@:maincpu,program,2161,1,20,20
-@:maincpu,program,2181,1,20,20
-@:maincpu,program,21a1,1,20,20
-@:maincpu,program,21c1,1,20,20
-@:maincpu,program,21e1,1,20,20
-
-
-;@s:sandscrp.cpp
-
-;sandscrpa:******Sand Scorpion (set 2)
-sandscrp:
-sandscrpa:
-sandscrpb:
-@:maincpu,program,702014,50,00,1b
-@:maincpu,program,700048,4,00,00
-
-
-;@s:sauro.cpp
-
-;(sauro) (by GeoMan)
-sauro:
-saurop:
-@:maincpu,program,e000,b4,00,4f
+;@s:ramtek/m79amb.cpp
+m79amb:
+@:maincpu,program,4008,1,00,00
-;*******tricky doc(By Firebrand)
-trckydoc:
-@:maincpu,program,e05a,5a,2d,46
+;@s:sanritsu/appoooh.cpp
-;trckydoca:******Tricky Doc (Set 2)
-trckydoca:
-@:maincpu,program,e03c,78,10,46
-
+;*******Robo Wres 2001 & bootleg
+robowres:
+robowresb:
+@:maincpu,program,e01a,7,00,00
+@:maincpu,program,e370,73,00,00
-;@s:sbasketb.cpp
-
-;(super basketball)(fix)
-sbasketb:
-@:maincpu,program,2a26,194,ef,14
-@:maincpu,program,20ac,3,00,00
-@:maincpu,program,3521,1,10,10
-@:maincpu,program,3501,1,10,10
-@:maincpu,program,34e1,1,10,10
-@:maincpu,program,34c1,1,10,10
-@:maincpu,program,34a1,1,10,10
-@:maincpu,program,3481,1,00,00
-@:maincpu,program,3461,1,00,00
+appoooh:
+@:maincpu,program,e029,3,53,4d
+@:maincpu,program,e017,6,00,00
+@:maincpu,program,e018,1,01,01
+@:maincpu,program,e400,dc,53,00
-;@s:sbowling.cpp
-;******strike bowling(By Firebrand)
-;****no hiscore list per se but this will save the top 5 results permanantly
-;****if you like if not, you can disable this
-sbowling:
-@:maincpu,program,fe61,f,00,00
+;@s:sanritsu/bankp.cpp
+bankp:
+@:maincpu,program,e590,a0,00,00
+@:maincpu,program,e018,7,00,00
-;@s:sbrkout.cpp
-;(super breakout(fix))
-sbrkout:
-sbrkout3:
-sbrkoutc:
-sbrkoutct:
-@:maincpu,program,22,08,00,00
+;@s:sanritsu/drmicro.cpp
+;*******(dr.micro)
+drmicro:
+@:maincpu,program,c000,1,01,01
+@:maincpu,program,c800,10e,00,00
+@:maincpu,program,c017,6,00,00
-;@s:scobra.cpp
-;(video hustler)
-hustler:
-hustlerb3:
-hustlerb4:
-hustlerb5:
-@:maincpu,program,84c0,f,00,00
-@:maincpu,program,80a8,3,00,02
-@:maincpu,program,8003,1,0a,0a
+;@s:sanritsu/mermaid.cpp
+;(mermaid)
+;yachtmn:******Yachtsman
+mermaid:
+yachtmn:
+@:maincpu,program,c008,6,00,00
-aponow:
-rescue:
-@:maincpu,program,80f3,3c,01,4d
+;@s:sega/angelkds.cpp
-;(minefield) (by GeoMan)
-minefld:
-@:maincpu,program,80f3,3c,01,43
+;(angel kids (japan)) (by GeoMan)
+angelkds:
+@:maincpu,program,c101,3,01,00
+@:maincpu,program,c11b,118,01,20
-stratgys:
-stratgyx:
-strongx:
-@:maincpu,program,80a8,3,00,00
-@:maincpu,program,81c0,1e,00,00
-@:maincpu,program,81dc,1,13,13
+;******space position (japan)
+spcpostn:
+@:maincpu,program,c000,172,00,02
+@:maincpu,program,cfe9,64,ff,ff
-;******mighty monkey
-;mimonsco:******mighty monkey (bootleg on super cobra hardware)
-mimonkey:
-mimonsco:
-@:maincpu,program,84a1,2,d0,07
-@:maincpu,program,8981,1,00,00
-@:maincpu,program,89a1,1,00,00
-@:maincpu,program,89c1,1,00,00
-@:maincpu,program,89e1,1,00,00
-@:maincpu,program,8a01,1,02,02
-@:maincpu,program,8a21,1,10,10
-@:maincpu,program,8a41,1,10,10
-@:maincpu,program,8920,1,10,10
-@:maincpu,program,8940,1,10,10
-@:maincpu,program,8960,1,15,15
-@:maincpu,program,8980,1,22,22
-@:maincpu,program,89a0,1,1f,1f
-@:maincpu,program,89c0,1,13,13
-@:maincpu,program,89e0,1,23,23
-@:maincpu,program,8a00,1,10,10
-@:maincpu,program,8a20,1,18,18
-@:maincpu,program,8a40,1,17,17
-@:maincpu,program,8a60,1,19,19
-@:maincpu,program,8a80,1,18,18
-@:maincpu,program,8aa0,1,10,10
-@:maincpu,program,8ac0,1,10,10
-@:maincpu,program,8ae0,1,10,10
+;@s:sega/blockade.cpp
+;*******(blasto)
+blasto:
+@:maincpu,program,ff3a,5,30,30
-;(dark planet) (by GeoMan)
-darkplnt:
-@:maincpu,program,80b8,1e,00,4a
-@:maincpu,program,80f4,1e,00,51
+;@s:sega/deniam.cpp
-;@s:scotrsht.cpp
+;(karian cross)
+karianx:
+@:maincpu,program,ff069c,68,4b,30
-;*******scooter shooter
-scotrsht:
-@:maincpu,program,1ca0,46,01,1d
-@:maincpu,program,199c,3,01,40
+croquis:
+logicpro:
+@:maincpu,program,ff0658,28,53,00
-;@s:scramble.cpp
-;scramb2:******Scramble (bootleg)
-;scramble:[Special thanks to Cananas for enhancing this entry]
-800fath:
-800fatha:
-bomber:
-kamikazesp:
-knockout:
-knockoutb:
-knockoutc:
-mariner:
-offensiv:
-scramb2:
-scramb3:
-scramblb:
-scramble:
-scramblebb:
-scramblebf:
-scrambler:
-scrambles:
-scrambles2:
-scrambp:
-scramce:
-scrampt:
-scramrf:
-strfbomb:
-triplep:
-triplepa:
-@:maincpu,program,4200,1e,00,01
-@:maincpu,program,40a8,03,00,01
+logicpr2:
+@:maincpu,program,ff70e6,46,0a,d0
-hotshock:
-hotshockb:
-@:maincpu,program,40a8,3,00,05
-@:maincpu,program,4200,1e,0a,02
+;@s:sega/mdconsole.cpp
+genesis,sspinu:
+megadrij,sspinj:
+megadriv,sspin:
+@:maincpu,program,fff8da,1e,ff,c8
-;(devil fish) parent
-devilfsh:
-@:maincpu,program,40a8,3,0,0
+genesis,tf3:
+@:maincpu,program,fff2ac,4,00,90
-cavelon:
-@:maincpu,program,42ff,4,00,00
-@:maincpu,program,4304,0d,00,15
+;@s:sega/megadriv_acbl.cpp
-mars:
-@:maincpu,program,4200,12,00,01
-@:maincpu,program,40a8,3,00,01
-@:maincpu,program,4a41,1,10,10
-@:maincpu,program,4a21,1,01,01
-@:maincpu,program,4a01,1,00,00
-@:maincpu,program,49e1,1,00,00
-@:maincpu,program,49c1,1,00,00
-@:maincpu,program,49a1,1,00,00
+bk3ssrmb:
+@:maincpu,program,ffff30,9a,00,04
-;(new sinbad 7) (by GeoMan)
-newsin7:
-@:maincpu,program,43d3,48,00,10
-@:maincpu,program,413d,3,0,0
+barek3mb:
+@:maincpu,program,e0ff31,99,01,04
-hunchbks:
-hunchbks2:
-@:maincpu,program,3c0a,4f,1b,00
-@:maincpu,program,3c25,1,20,20
+ssf2mdb:
+@:maincpu,program,fffcb3,29,00,20
-;mrkougb2:******Mr. Kougar (bootleg Set 2)
-;mrkougar2:******mr.kougar (earlier)
-mrkougar:
-mrkougar2:
-mrkougb:
-mrkougb2:
-@:maincpu,program,40a6,12,00,00
-@:maincpu,program,4a61,1,10,10
-@:maincpu,program,4a41,1,10,10
-@:maincpu,program,4a21,1,10,10
-@:maincpu,program,4a01,1,10,10
-@:maincpu,program,49e1,1,10,10
-@:maincpu,program,49c1,1,10,10
+;@s:sega/megatech.cpp
+;******megatech: e-swat
+mt_eswat:
+@:maincpu,program,ffff04,3,00,00
-;******a.d. 2083
-ad2083:
-@:maincpu,program,4600,64,0a,04
-@:maincpu,program,40a8,3,00,06
+;******megatech: columns
+mt_cols:
+@:maincpu,program,fefa20,8e,00,00
-;******mighty monkey (bootleg on scramble hardware)
-;** very dodgy hiscore saving, possibly because of it been a **
-;** poorly put together bootleg **
-mimonscr:
-@:maincpu,program,44a1,2,d0,07
-@:maincpu,program,4981,1,00,00
-@:maincpu,program,49a1,1,00,00
-@:maincpu,program,49c1,1,00,00
-@:maincpu,program,49e1,1,00,00
-@:maincpu,program,4a01,1,02,02
-@:maincpu,program,4a21,1,10,10
-@:maincpu,program,4a41,1,10,10
-@:maincpu,program,4920,1,10,10
-@:maincpu,program,4940,1,10,10
-@:maincpu,program,4960,1,15,15
-@:maincpu,program,4980,1,22,22
-@:maincpu,program,49a0,1,1f,1f
-@:maincpu,program,49c0,1,13,13
-@:maincpu,program,49e0,1,23,23
-@:maincpu,program,4a00,1,10,10
-@:maincpu,program,4a20,1,18,18
-@:maincpu,program,4a40,1,17,17
-@:maincpu,program,4a60,1,19,19
-@:maincpu,program,4a80,1,18,18
-@:maincpu,program,4aa0,1,10,10
-@:maincpu,program,4ac0,1,10,10
-@:maincpu,program,4ae0,1,10,10
+;@s:sega/model1.cpp
-;@s:scregg.cpp
+swa:
+swaj:
+@:maincpu,program,40f100,c7,20,61
+@delay=4
-;(dommy)
-dommy:
-@:maincpu,program,1a,3,00,05
+;vr:******virtua racing
+;vformula:******virtua formula
+vformula:
+vr:
+@:maincpu,program,40e000,6bf,01,20
-;(scrambled egg) and clones (by GeoMan)
-eggs:
-scregg:
-@:maincpu,program,400,1e,17,00
-@:maincpu,program,015,3,00,03
+;*******Virtua Fighter 1
+vf:
+@:maincpu,program,40f800,b3,09,4d
-;@s:scyclone.cpp
-scyclone:
-@:maincpu,program,41dd,03,00,00
+;@s:sega/puckpkmn.cpp
+;*******puckman pockimon
+jingling:
+puckpkmn:
+puckpkmnb:
+@:maincpu,program,ff0020,30,38,36
-;@s:seabattl.cpp
-seabattl:
-@:maincpu,program,1c0b,15,00,0a
+;@s:sega/segac2.cpp
+ooparts:
+@:maincpu,program,e0703c,64,00,00
+@:maincpu,program,e070b6,4,00,a0
-;@s:segac2.cpp
-puyo:
-puyobl:
-puyoj:
-puyoja:
-@:maincpu,program,fffce2,4c,13,98
+tfrceac:
+tfrceacb:
+tfrceacj:
+tfrceacjpb:
+@:maincpu,program,ff8100,e4,00,09
+@:maincpu,program,fff1ac,4,00,10
-puyopuy2:
-@:maincpu,program,ff4830,4c,53,98
+borench:
+borencha:
+borenchj:
+@:maincpu,program,fff410,44,4d,05
;tantr (& clones) hiscores update after hiscore table is displayed in attract mode
@@ -12368,26 +12371,27 @@ tantr:
tantrbl:
tantrbl2:
tantrbl3:
+tantrbl4:
tantrkor:
@:maincpu,program,fffc45,28,48,00
-borench:
-borencha:
-@:maincpu,program,fff410,44,4d,05
-
-
;********ribbit!(By Firebrand)
ribbit:
+ribbitj:
@:maincpu,program,fffada,126,ff,ff
@:maincpu,program,ffc45f,1,03,03
-tfrceac:
-tfrceacb:
-tfrceacj:
-@:maincpu,program,ff8100,e4,00,09
-@:maincpu,program,fff1ac,4,00,10
+puyo:
+puyobl:
+puyoj:
+puyoja:
+@:maincpu,program,fffce2,4c,13,98
+
+
+puyopuy2:
+@:maincpu,program,ff4830,4c,53,98
;stkclmnsj:******Stack Columns (japan)
@@ -12423,7 +12427,7 @@ ichirj:
@:maincpu,program,fffc3d,27,00,00
-;@s:segae.cpp
+;@s:sega/segae.cpp
opaopa:
opaopan:
@@ -12456,7 +12460,7 @@ hangonjr:
@:maincpu,program,c07d,3,02,00
-;@s:segag80r.cpp
+;@s:sega/segag80r.cpp
;******Astro Blaster (version 2a)
astrob1:
@@ -12509,7 +12513,14 @@ spaceod2:
@:maincpu,program,c921,1,05,05
-;@s:segag80v.cpp
+;@s:sega/segag80v.cpp
+
+spacfury:
+spacfurya:
+spacfurybl:
+@:maincpu,program,c924,3d,90,00
+@:maincpu,program,cfd2,1e,00,09
+
elim2a:
@:maincpu,program,c924,14,25,05
@@ -12551,20 +12562,34 @@ elim2c:
@:maincpu,program,c925,14,00,00
-spacfury:
-spacfurya:
-@:maincpu,program,c924,3d,90,00
-@:maincpu,program,cfd2,1e,00,09
+;@s:sega/segahang.cpp
+sharrier:
+sharrier1:
+@:maincpu,program,40488,4,01,00
+@:maincpu,program,43400,3dc,01,20
+@:maincpu,program,437dc,2,00,00
+
+
+;hangon1:******Hang-On
+;note best lap time are not saved
+hangon:
+hangon1:
+hangon2:
+hangonvf:
+@:maincpu,program,20c488,4,01,00
+@:maincpu,program,20d800,4a0,01,20
-;@s:segahang.cpp
;enduror1:******Enduro Racer (YM2203, FD1089B 317-0013A)
;(enduro racer (bootleg set 1))
endurobl:
enduror:
enduror1:
+enduror1d:
endurora:
+endurorb:
+endurord:
@:maincpu,program,43400,4a0,01,20
@:maincpu,program,43b90,10,99,99
@@ -12580,27 +12605,12 @@ shangonro:
@:maincpu,program,20d678,70,99,99
-;hangon1:******Hang-On
-;note best lap time are not saved
-hangon:
-hangon1:
-hangon2:
-@:maincpu,program,20c488,4,01,00
-@:maincpu,program,20d800,4a0,01,20
-
-
;(enduro racer (bootleg set 2)) clone (by GeoMan)
endurob2:
@:maincpu,program,043400,54,01,00
-sharrier:
-@:maincpu,program,40488,4,01,00
-@:maincpu,program,43400,3dc,01,20
-@:maincpu,program,437dc,2,00,00
-
-
-;@s:segaorun.cpp
+;@s:sega/segaorun.cpp
;******turbo out run (set 2, upright, 317-unknown)(both fixed)
toutrun:
@@ -12610,7 +12620,7 @@ toutrun3:
toutrunj:
toutrunj1:
@:maincpu,program,6046e,118,05,20
-@:maincpu,program,60909,1,09,09
+@delay=3
outrunra:
@@ -12630,17 +12640,19 @@ outrundxj:
@:maincpu,program,604c8,1,4f,4f
-;@s:segas16a.cpp
+;@s:sega/segas16a.cpp
;shinobls:******Shinobi (Star bootleg, System 16A)
shinobi:
shinobi1:
+shinobi1d:
shinobi2:
shinobi3:
shinobi4:
shinobi5:
shinobi6:
shinobld:
+shinobldb:
shinobls:
@:maincpu,program,fffc00,142,00,54
@:maincpu,program,fff010,4,00,00
@@ -12707,7 +12719,17 @@ mjleague:
@:maincpu,program,ffe000,50,00,20
-;@s:segas16b.cpp
+;@s:sega/segas16b.cpp
+
+hwchamp:
+hwchampa:
+hwchampj:
+@:maincpu,program,fff400,318,10,00
+
+
+dfjail:
+@:maincpu,program,fffc00,46,00,47
+
fantzone:
fantzonee:
@@ -12809,11 +12831,6 @@ mvpj:
@:maincpu,program,ff3800,8b,01,01
-hwchamp:
-hwchampj:
-@:maincpu,program,fff400,318,10,00
-
-
;(toryumon) (by GeoMan)
toryumon:
@:maincpu,program,fffe20,28,0,0
@@ -12903,7 +12920,7 @@ riotcity:
@:maincpu,program,ffce00,3f,00,45
-;@s:segas18.cpp
+;@s:sega/segas18.cpp
;******Desert Breaker (FD1094 317-0196)
desertbr:
@@ -12922,7 +12939,7 @@ shdancerj:
@:maincpu,program,ffec24,13a4,80,50
-;@s:segas24.cpp
+;@s:sega/segas24.cpp
;ggroundj:******Gain Ground (Japan, FD1094 317-0058-03b)
gground:
@@ -12947,7 +12964,7 @@ crkdownu:
@:maincpu,program,fb246,25,00,18
-;@s:segas32.cpp
+;@s:sega/segas32.cpp
arescue:
arescuej:
@@ -13011,7 +13028,7 @@ spidmanu:
@:mainpcb:maincpu,program,208c00,7f,a0,57
-;@s:segaxbd.cpp
+;@s:sega/segaxbd.cpp
aburner2:
aburner2g:
@@ -13065,7 +13082,7 @@ thndrbld1:
@:mainpcb:maincpu,program,a3b00,64,01,01
-;@s:segaybd.cpp
+;@s:sega/segaybd.cpp
;******power drift
;pdriftj:******power drift (japan)
@@ -13094,7 +13111,776 @@ glocu:
@:suby,program,1ffa4a,1,50,50
-;@s:seibuspi.cpp
+;@s:sega/sg1000a.cpp
+
+;*******champion pro wrestling(By Firebrand)
+chwrestl:
+@:maincpu,program,c009,3,00,00
+@:maincpu,program,c00c,3,00,00
+
+
+;@s:sega/stactics.cpp
+
+;(space tactics) (by GeoMan)
+stactics:
+@:maincpu,program,d700,a,0,0
+@:maincpu,program,e700,a,0,0
+@:maincpu,program,f700,a,0,0
+
+
+;@s:sega/stv.cpp
+
+sokyugrt:
+@:maincpu,program,608dc30,9d,82,47
+@:maincpu,program,60bda38,4,00,c0
+
+
+;********shienryu
+shienryu:
+@:maincpu,program,60adc34,7ec,54,10
+@:maincpu,program,60acbc4,4,00,e8
+
+
+;@s:sega/suprloco.cpp
+
+;(super locomotive)
+;*******saves top 10 scores only
+;*****can`t be bothered with lower scores !!
+suprloco:
+suprlocoo:
+@:maincpu,program,fd00,1e,02,00
+@:maincpu,program,fca0,12,41,48
+@:maincpu,program,fc2c,3,02,00
+
+
+;@s:sega/system1.cpp
+
+;wboyu:*note* only 1/2 works...
+wbdeluxe:
+wboy:
+wboy2:
+wboy2u:
+wboy3:
+wboy4:
+wboy5:
+wboy6:
+wboyblt:
+wboyo:
+wboyu:
+@:maincpu,program,c100,140,20,20
+@:maincpu,program,e856,f,01,10
+
+
+;******gardia
+;(rafflesia) (by GeoMan)
+gardia:
+gardiab:
+raflesia:
+raflesiau:
+@:maincpu,program,d300,50,00,4a
+@:maincpu,program,c017,3,00,02
+
+
+;wboysys2:******Wonder Boy (system 2)
+wboysys2:
+wboysys2a:
+@:maincpu,program,c100,140,20,20
+@:maincpu,program,e056,f,01,10
+
+
+;(toki no senshi - chrono soldier) (by GeoMan)
+tokisens:
+tokisensa:
+@:maincpu,program,c04d,54,00,20
+@:maincpu,program,c0a1,4,00,00
+
+
+;flickys2:Flicky (128k Version, System 2, not encrypted)
+;flickys1:Flicky (64k Version, System 1, 315-5051, set 2)
+flicky:
+flickya:
+flickyo:
+flickys1:
+flickys2:
+flickyup:
+@:maincpu,program,e700,31,00,41
+@:maincpu,program,c0d5,3,00,00
+
+
+myherok:
+sscandal:
+@:maincpu,program,d300,a0,00,20
+@:maincpu,program,c017,3,00,00
+
+
+;4dwarrio:[Special thanks to Cananas for enhancing this entry]
+4dwarrio:
+@:maincpu,program,d300,a0,00,20
+@:maincpu,program,c017,3,00,02
+
+
+hvymetal:
+@:maincpu,program,d300,38,00,59
+@:maincpu,program,c00c,3,00,00
+
+
+choplift:
+chopliftbl:
+chopliftu:
+@:maincpu,program,ef00,31,00,4b
+@:maincpu,program,ef71,4,00,00
+
+
+wbml:
+wbmlbg:
+wbmlbge:
+wbmljb:
+wbmljo:
+wbmlvc:
+@:maincpu,program,c101,1,24,24
+@:maincpu,program,072f,1,03,03
+@:maincpu,program,c179,1,00,00
+@:maincpu,program,c17a,1,00,00
+@:maincpu,program,c17b,1,00,00
+@:maincpu,program,c17c,1,00,00
+@:maincpu,program,c17d,1,03,03
+@:maincpu,program,c17e,1,00,00
+@:maincpu,program,c17f,1,00,00
+@:maincpu,program,c180,1,00,00
+
+
+starjacks:
+@:maincpu,program,c102,23,00,52
+@:maincpu,program,c0fb,4,00,00
+
+
+;(star jacker (sega)) and clones (by GeoMan)
+starjack:
+@:maincpu,program,c0e1,1e,00,52
+@:maincpu,program,c0db,3,00,03
+
+
+;******(up`n down (not encrypted))
+upndownu:
+@:maincpu,program,c93f,3f,01,00
+@:maincpu,program,c97b,1,01,01
+
+
+;(bullfight)
+bullfgt:
+swat:
+thetogyu:
+@:maincpu,program,d300,3c,00,49
+@:maincpu,program,c014,3,00,02
+
+
+;(regulus (new ver))
+regulus:
+reguluso:
+regulusu:
+@:maincpu,program,ce40,1e,41,4a
+@:maincpu,program,c0e1,3,00,00
+@:maincpu,program,cd01,1e,00,00
+
+
+;(noboranka (japan)) (by GeoMan)
+nob:
+nobb:
+@:maincpu,program,d300,3c,00,2e
+@:maincpu,program,f000,3,00,00
+
+
+myhero:
+@:maincpu,program,d300,3c,00,49
+@:maincpu,program,c017,3,00,00
+
+
+;(wonder boy in monster land (bootleg)**fix**))
+wbmlb:
+@:maincpu,program,c179,8,00,00
+@:maincpu,program,c17d,1,03,03
+
+
+upndown:
+@:maincpu,program,c93f,3f,01,00
+
+
+teddybb:
+teddybbo:
+teddybbobl:
+@:maincpu,program,c578,3,00,00
+@:maincpu,program,ef03,31,00,49
+
+
+;ssanchan:******sanrin san chan (japan)
+spatter:
+ssanchan:
+@:maincpu,program,ef00,31,00,52
+@:maincpu,program,c00b,3,00,00
+@:maincpu,program,c00c,1,10,10
+
+
+;(water match) (by GeoMan)
+wmatch:
+@:maincpu,program,c000,3c,84,02
+@:maincpu,program,c086,3,00,02
+@:maincpu,program,d300,15,00,01
+@:maincpu,program,d380,15,41,49
+@:maincpu,program,d400,2d0,84,4d
+
+
+blockgal:
+blockgalb:
+@:maincpu,program,c062,3,00,01
+
+
+;(mister viking) and clones (by GeoMan)
+mrviking:
+mrvikingj:
+@:maincpu,program,d42c,15,59,47
+@:maincpu,program,d300,15,00,01
+@:maincpu,program,c086,3,00,02
+
+
+;(i'm sorry (us)) and clones (by GeoMan)
+imsorry:
+imsorryj:
+@:maincpu,program,c017,3,00,02
+@:maincpu,program,d300,a0,00,20
+
+
+ninja:
+nprinces:
+nprincesb:
+nprinceso:
+nprincesu:
+seganinj:
+seganinju:
+@:maincpu,program,ef00,31,00,43
+
+
+;******ufo senshi yohko chan
+;ufosensib:******Ufo Senshi Yohko Chan (not encrypted)
+ufosensi:
+ufosensib:
+@:maincpu,program,c800,62,11,41
+
+
+;pitfall2a:******Pitfall II (315-5093, Flicky Conversion)
+pitfall2:
+pitfall2a:
+pitfall2u:
+@:maincpu,program,d300,38,00,41
+@:maincpu,program,c000,04,00,00
+
+
+;******brain
+brain:
+@:maincpu,program,d300,3c,00,49
+@:maincpu,program,c017,3,00,05
+
+
+;@s:sega/system16.cpp
+
+altbeast:
+altbeast2:
+altbeast4:
+altbeast5:
+altbeast5d:
+altbeast6:
+altbeastbl:
+altbeastbl2:
+altbeastj:
+altbeastj1:
+altbeastj3:
+mutantwarr:
+@:maincpu,program,fffc00,74,00,33
+@:maincpu,program,fff010,4,00,00
+
+
+mwalkbl:
+@:maincpu,program,fffc00,50,00,4a
+@:maincpu,program,ffe020,4,00,00
+
+
+tetrisbl:
+@:maincpu,program,ffe800,64,45,08
+
+
+;(wonder boy iii - monster lair (set 1))
+wb3:
+wb31:
+wb32:
+wb33:
+wb34:
+wb35:
+wb3bbl:
+@:maincpu,program,ffc8b8,28,4c,00
+@:maincpu,program,ffc8de,1,30,30
+
+
+;@s:sega/turbo.cpp
+
+;(turbo)
+;** highscore updates after first game **
+turbo:
+turboa:
+turbob:
+turbobl:
+turboc:
+turbod:
+@:maincpu,program,e400,1e,94,94
+@:maincpu,program,f310,1e,00,00
+@:maincpu,program,f292,d,0f,f0
+
+
+;(subroc3d)
+;** top score updates after hiscore displayed in attract mode **
+subroc3d:
+@:maincpu,program,e400,3e,00,00
+@:maincpu,program,b049,1,f6,f6
+
+
+;** top score on game screen updated after 1st game **
+;** assuming you have made score display in dipswitch menu !!**
+zoom909:
+@:maincpu,program,c400,3e,00,00
+
+
+;(buck rodgers: planet of doom & clones)
+;** scores on the side of screen don`t display untill 1st game is over **
+;** also top side score may display 1 digit untill 1st game is over **
+buckrog:
+buckrogn:
+buckrogn2:
+@:maincpu,program,c400,3e,00,00
+@:maincpu,program,c549,10,ff,ff
+@:maincpu,program,c54b,1,0f,0f
+
+
+;@s:sega/vicdual.cpp
+
+nostromo:
+@:maincpu,program,f78a,05,30,30
+@:maincpu,program,f037,05,30,30
+
+
+carnivalca:
+carnivalh:
+carnivalha:
+@:maincpu,program,e397,06,00,00
+
+
+alphahob:
+@:maincpu,program,878a,14,30,30
+
+
+;(invinco / head on 2) (by GeoMan)
+invho2:
+invho2a:
+@:maincpu,program,83b6,16,00,00
+@:maincpu,program,8392,12,30,30
+
+
+;carnival:*note* resetting corrupts the screen not the file
+carnival:
+carnivalb:
+carnivalc:
+verbena:
+@:maincpu,program,e397,3c,00,00
+@:maincpu,program,e5a2,9,20,20
+
+
+wantsega:
+@:maincpu,program,86f3,3,00,00
+
+
+;******n-sub (upright)
+nsub:
+@:maincpu,program,8397,2,00,00
+
+
+;(space trek (upright)) and clones (by GeoMan)
+spacetrk:
+spacetrkc:
+@:maincpu,program,838c,4,0,0
+
+
+;frogs:[Special thanks to Cananas for enhancing this entry]
+frogs:
+@:maincpu,program,e508,06,00,00
+@:maincpu,program,e037,06,00,30
+
+
+;(depthcharge)
+depthch:
+depthcho:
+subhunt:
+@:maincpu,program,e408,c,55,5a
+
+
+;(invinco/deep scan)
+; ** player scores from last game played also saved - no big deal !! **
+invds:
+@:maincpu,program,8398,e6,00,09
+
+
+;brdrlins:******Borderline (Sidam bootleg)
+brdrlinb:
+brdrline:
+brdrlins:
+starrkr:
+@:maincpu,program,938d,2,00,00
+
+
+;** does not save in game top score, only hiscore table saves **
+headon:
+headon1:
+@:maincpu,program,878a,f,30,30
+
+
+digger:
+@:maincpu,program,8386,b,53,00
+
+
+;*******space attack/head on
+sspacaho:
+@:maincpu,program,e4cb,c,00,00
+@:maincpu,program,878a,f,30,30
+
+
+;(pulsar)
+pulsar:
+@:maincpu,program,85f4,39,50,50
+
+
+carhntds:
+@:maincpu,program,845e,6,00,04
+@:maincpu,program,83a1,6,00,00
+
+
+sspaceat:
+sspaceat2:
+sspaceat3:
+sspaceatc:
+@:maincpu,program,c4c7,10,00,00
+
+
+;********(alpha fighter / head on)
+alphaho:
+@:maincpu,program,878a,f,30,30
+@:maincpu,program,e4cb,c,00,00
+
+
+startrks:
+@:maincpu,program,d78a,5,30,30
+
+
+headonmz:
+headons:
+headonsa:
+@:maincpu,program,c78a,f,30,30
+
+
+;(invinco) (by GeoMan)
+invinco:
+@:maincpu,program,8398,16,00,00
+
+
+;(samurai (sega)) (by GeoMan)
+samurai:
+@:maincpu,program,971a,12,00,00
+
+
+headon2:
+@:maincpu,program,c390,12,30,30
+
+
+;@s:sega/zaxxon.cpp
+
+futspy:
+@:maincpu,program,6419,3c,00,41
+
+
+razmataz:
+@:maincpu,program,66a4,1e,00,00
+@:maincpu,program,6739,3c,25,3e
+
+
+szaxxon:
+zaxxon:
+zaxxon2:
+zaxxon3:
+zaxxonb:
+zaxxonj:
+@:maincpu,program,6100,7e,90,81
+@:maincpu,program,6038,3,00,00
+
+
+congo:
+congoa:
+tiptop:
+@:maincpu,program,8020,7e,90,a1
+@:maincpu,program,80bd,3,00,00
+
+
+;(ixion (prototype))
+ixion:
+@:maincpu,program,610d,1e,00,00
+@:maincpu,program,61d2,1e,23,24
+
+
+;@s:seibu/bloodbro.cpp
+
+;bloodbroa:******Blood Bros. (set 2)
+bloodbro:
+bloodbroj:
+bloodbroja:
+bloodbrok:
+bloodbrou:
+weststry:
+weststrya:
+@:maincpu,program,85b1f,f9,30,00
+@:maincpu,program,85c15,1,02,02
+
+
+;(sky smasher)
+skysmash:
+@:maincpu,program,8925e,50,53,00
+@:maincpu,program,80008,4,00,00
+@:maincpu,program,80009,1,02,02
+
+
+;@s:seibu/cabal.cpp
+
+;cabalbl2:******Cabal (bootleg of Joystick version, set 2)
+cabal:
+cabala:
+cabalbl:
+cabalbl2:
+cabalukj:
+cabalus:
+cabalus2:
+@:maincpu,program,42167,63,44,00
+
+
+;@s:seibu/darkmist.cpp
+
+;darkmist:******The Lost Castle In Darkmist
+darkmist:
+@:maincpu,program,e01d,8c,00,20
+
+
+;@s:seibu/dcon.cpp
+
+;(d-con)
+dcon:
+@:maincpu,program,83138,64,53,10
+
+
+;(sd gundam psycho salamander no kyoui)
+;** for some reason you have to press key 9 to insert credits **
+;** game (driver ??) related problem - not hiscore.dat **
+sdgndmps:
+@:maincpu,program,8b600,9c,00,1a
+
+
+;@s:seibu/deadang.cpp
+
+ghunter:
+@:maincpu,program,1482,bd,50,00
+@:maincpu,program,1539,1,2a,2a
+
+
+leadang:
+@:maincpu,program,1542,bd,50,00
+@:maincpu,program,15f9,1,2a,2a
+
+
+;*******dead angle
+deadang:
+@:maincpu,program,1442,bd,50,00
+@:maincpu,program,14f9,1,2a,2a
+
+
+;@s:seibu/dynduke.cpp
+
+;(dynamite duke) and clones (by GeoMan)
+dynduke:
+dyndukej:
+dyndukeja:
+dyndukeu:
+@:maincpu,program,1346,77,50,2a
+
+
+dbldynj:
+dbldynu:
+@:maincpu,program,155c,8c,50,00
+
+
+;@s:seibu/goal92.cpp
+
+;*******goal `92
+goal92:
+@:maincpu,program,109f57,99,28,01
+
+
+;@s:seibu/kncljoe.cpp
+
+;(knuckle joe (set 1)) and clones (by GeoMan)
+bcrusher:
+kncljoe:
+kncljoea:
+@:maincpu,program,f01a,2d,00,43
+
+
+;@s:seibu/legionna.cpp
+
+denjinmk:
+denjinmka:
+@:maincpu,program,114300,4c,00,04
+
+
+;heatbrl:******Heated Barrel (World version 3)
+;heatbrlu:******Heated Barrel (us)
+;heatbrlo:******Heated Barrel (world old version)
+;heatbrl2:******Heated Barrel (world version 2)
+heatbrl:
+heatbrl2:
+heatbrl3:
+heatbrle:
+heatbrlo:
+heatbrlu:
+@:maincpu,program,108296,63,4b,01
+@:maincpu,program,108036,4,00,00
+
+
+legionna:
+legionnaj:
+legionnau:
+@:maincpu,program,109530,44,08,02
+@:maincpu,program,109203,03,08,00
+
+
+;@s:seibu/metlfrzr.cpp
+
+metlfrzr:
+@:maincpu,program,d822,a0,00,37
+
+
+;@s:seibu/mustache.cpp
+
+;*******mustache boy
+mustache:
+mustachei:
+@:maincpu,program,f000,50,00,47
+
+
+;@s:seibu/panicr.cpp
+
+;panicr:******panic road
+panicr:
+panicrg:
+@:maincpu,program,18fc,95,40,20
+
+
+;@s:seibu/r2dx_v33.cpp
+
+zerotm2k:
+@:maincpu,program,924e,4b,40,55
+
+
+r2dx_v33:
+@:maincpu,program,a2d8,2cf,a0,2a
+
+
+nzeroteam:
+nzeroteama:
+@:maincpu,program,925c,4b,40,55
+
+
+r2dx_v33_r2:
+@:maincpu,program,9e46,ef,50,2a
+
+
+;@s:seibu/raiden.cpp
+
+raidenub:
+@:maincpu,program,c27,b3,50,2e
+
+
+raidenua:
+@:maincpu,program,000c47,b3,50,2e
+
+
+raiden:
+raidenj:
+raidenk:
+raidenkb:
+raident:
+raidenu:
+@:maincpu,program,000bd7,b4,50,00
+
+
+raidenb:
+@:maincpu,program,000c27,b3,50,2e
+
+
+;@s:seibu/raiden2.cpp
+
+raiden2e:
+raiden2ea:
+raiden2eg:
+raiden2eu:
+raiden2eua:
+raiden2eub:
+raiden2g:
+@:maincpu,program,9de4,ef,50,2a
+
+
+raiden2:
+raiden2dx:
+raiden2es:
+raiden2f:
+raiden2hk:
+raiden2i:
+raiden2j:
+raiden2k:
+raiden2nl:
+raiden2sw:
+raiden2u:
+@:maincpu,program,9dd4,ef,50,2a
+
+
+raiden2eup:
+@:maincpu,program,9de8,ef,50,2a
+
+
+;***** raiden dx fixed (thanks to Takasaki) **********
+raidendx:
+raidendxa1:
+raidendxa2:
+raidendxch:
+raidendxg:
+raidendxj:
+raidendxk:
+raidendxnl:
+raidendxpt:
+raidendxu:
+@:maincpu,program,a25a,2cf,a0,2a
+
+
+zeroteam:
+zeroteama:
+zeroteamb:
+zeroteamc:
+zeroteamd:
+zeroteams:
+zeroteamsr:
+@:maincpu,program,9212,4b,40,55
+
+
+;@s:seibu/seibuspi.cpp
;rdft2:******Raiden Fighters 2
;rdft2us:******raiden fighters 2.1 (us, single board)
@@ -13106,6 +13892,7 @@ rdft2j:
rdft2ja:
rdft2jb:
rdft2jc:
+rdft2s:
rdft2t:
rdft2u:
rdft2us:
@@ -13118,6 +13905,7 @@ viprp1:
viprp1h:
viprp1j:
viprp1k:
+viprp1pt:
viprp1s:
viprp1t:
viprp1u:
@@ -13132,6 +13920,7 @@ rdftadi:
rdftau:
rdftauge:
rdftgb:
+rdftgr:
rdftit:
rdftj:
rdftja:
@@ -13165,75 +13954,108 @@ viprp1ot:
@:maincpu,program,1e600,c7,40,2e
-;@s:seicross.cpp
+;@s:seibu/stfight.cpp
-radrad:
-radradj:
-@:maincpu,program,7802,3,02,00
-@:maincpu,program,91ba,6,24,00
+;(empire city: 1931 (bootleg?)) and clones (by GeoMan)
+empcity:
+empcityi:
+empcityj:
+empcityu:
+stfight:
+stfighta:
+@:maincpu,program,e012,55,00,45
-;(seicross)
-sectrzon:
-seicross:
-@:maincpu,program,7ad4,1e,00,0a
+;@s:seibu/toki.cpp
+;tokia:******Toki (World Set 2)
+;juju:******JuJu Densetsu (Japan)
+;jujub:******JuJu Densetsu (Japan, bootleg)
+juju:
+jujub:
+jujuba:
+tokia:
+tokib:
+tokims:
+tokip:
+tokiu:
+tokiua:
+@:maincpu,program,66b66,b4,00,03
+@:maincpu,program,60008,4,00,00
-;@s:senjyo.cpp
-;(baluba-louk no densetsu)
-baluba:
-@:maincpu,program,80f6,4,00,00
-@:maincpu,program,80f8,1,03,03
-@:maincpu,program,9261,1,8a,8a
-@:maincpu,program,9241,1,8a,8a
-@:maincpu,program,9221,1,8a,8a
-@:maincpu,program,9201,1,83,83
-@:maincpu,program,91e1,1,80,80
-@:maincpu,program,91c1,1,80,80
-@:maincpu,program,91a1,1,80,80
-@:maincpu,program,9181,1,80,80
+;(toki (world set 1))
+toki:
+@:maincpu,program,66b5e,b4,00,03
+@:maincpu,program,60008,4,00,00
+@:maincpu,program,6000a,1,20,20
-senjyo:
-@:maincpu,program,8060,3,00,00
-@:maincpu,program,8080,38,00,06
-@:maincpu,program,9261,1,24,24
-@:maincpu,program,9241,1,24,24
-@:maincpu,program,9221,1,24,24
-@:maincpu,program,9201,1,24,24
-@:maincpu,program,91e1,1,24,24
-@:maincpu,program,91c1,1,24,24
-@:maincpu,program,91a1,1,00,00
-@:maincpu,program,9181,1,00,00
+;@s:seibu/wiz.cpp
+finger:
+stinger:
+stinger2:
+@:maincpu,program,c031,1e,00,00
+@:maincpu,program,c079,6,00,00
+@:maincpu,program,c200,13,1d,23
-megaforc:
-megaforcu:
-starforc:
-starforca:
-starforcb:
-starforce:
-@:maincpu,program,8038,70,00,00
-@:maincpu,program,8348,4,00,00
-@:maincpu,program,9261,1,23,23
-@:maincpu,program,9241,1,23,23
-@:maincpu,program,9221,1,23,23
-@:maincpu,program,9201,1,1d,1d
-@:maincpu,program,91e1,1,18,18
-@:maincpu,program,91c1,1,21,21
-@:maincpu,program,91a1,1,18,18
-@:maincpu,program,9181,1,18,18
+
+scionc:
+@:maincpu,program,c070,50,00,10
+@:maincpu,program,d062,7,10,10
+
+
+wiz:
+wizt:
+wizta:
+@:maincpu,program,c01e,32,00,43
+
+
+scion:
+@:maincpu,program,c070,50,00,1e
+@:maincpu,program,d062,7,10,00
+
+
+;*******kung-fu taikun(By Firebrand)
+kungfut:
+kungfuta:
+@:maincpu,program,c1d3,2c,00,1f
+
+
+;@s:seta/downtown.cpp
+
+tndrcade:
+tndrcadej:
+@:maincpu,program,e00301,96,00,2e
+
+
+arbalest:
+@:maincpu,program,f018cd,8b,00,14
+
+
+twineagl:
+@:maincpu,program,ffc09c,3b,00,2e
+
+
+metafox:
+@:maincpu,program,f014e6,8c,00,14
-;@s:seta.cpp
+;@s:seta/seta.cpp
thunderl:
+thunderla:
thunderlbl:
thunderlbl2:
@:maincpu,program,ffe108,cc,00,41
+daiohc:
+daiohp2:
+@:maincpu,program,207496,99,00,05
+
+
msgundamb:
@:maincpu,program,20424f,63,01,10
@@ -13257,11 +14079,6 @@ stg:
@:maincpu,program,ffda64,1,31,31
-tndrcade:
-tndrcadej:
-@:maincpu,program,e00301,96,00,2e
-
-
;orbs:******Orbs (10/7/94 prototype?)
orbs:
@:maincpu,program,f01d35,151,06,08
@@ -13309,14 +14126,6 @@ krzybowl:
@:maincpu,program,c00080,1,05,05
-arbalest:
-@:maincpu,program,f018cd,8b,00,14
-
-
-daiohc:
-@:maincpu,program,207496,99,00,05
-
-
;(wits (japan))
wits:
@:maincpu,program,ffd6c2,49,00,4b
@@ -13369,7 +14178,7 @@ drgnunit:
;rezont:******Rezon (Taito)
rezon:
-rezont:
+rezono:
@:maincpu,program,201c66,63,03,20
@:maincpu,program,2018ba,2,03,e8
@@ -13391,25 +14200,17 @@ daioha:
@:maincpu,program,10748f,1,e8,e8
-twineagl:
-@:maincpu,program,ffc09c,3b,00,2e
-
-
;(blandia (prototype))
blandiap:
@:maincpu,program,201056,62,09,17
-metafox:
-@:maincpu,program,f014e6,8c,00,14
-
-
;******pairs love:
pairlove:
@:maincpu,program,f00748,63,00,2d
-;@s:seta2.cpp
+;@s:seta/seta2.cpp
;*******guardians/denjin makai II(By Firebrand)
grdians:
@@ -13433,384 +14234,223 @@ gundamex:
@:maincpu,program,2078a7,63,01,50
-;@s:sf.cpp
-
-sf:
-sfj:
-sfua:
-sfw:
-@:maincpu,program,ff8e72,9c,00,12
-@:maincpu,program,ffc012,8,00,00
-
+;@s:seta/simple_st0016.cpp
-;sf: ;******street fighter (world)
-sfan:
-sfjan:
-@:maincpu,program,ff94f2,9c,00,12
-@:maincpu,program,ff8732,8,00,00
-
-
-sfp:
-@:maincpu,program,ff9498,9c,00,12
-@:maincpu,program,ff8d18,8,00,00
-
-
-;@s:sg1000a.cpp
-
-;*******champion pro wrestling(By Firebrand)
-chwrestl:
-@:maincpu,program,c009,3,00,00
-@:maincpu,program,c00c,3,00,00
-
-
-;@s:shadfrce.cpp
-
-;(shadow force (us) (by GeoMan)
-shadfrce:
-shadfrcej:
-@:maincpu,program,1f002a,2,00,05
-@:maincpu,program,1f002c,26,00,00
-@:maincpu,program,1f0022,4,00,00
-
-
-;@s:shangha3.cpp
-
-shangha3:
-shangha3up:
-@:maincpu,program,307be4,78,00,1d
-
-
-;(hebereke no popoon (japan)) (by GeoMan)
-heberpop:
-@:maincpu,program,304920,a0,00,1c
-
-
-;(blocken (japan))
-blocken:
-@:maincpu,program,3086ec,4f,00,57
-
-
-;** you must let the highscore display in attract mode before starting a game **
-shangha3j:
-shangha3u:
-@:maincpu,program,307be2,78,00,1d
-
-
-;@s:shanghai.cpp
-
-;(shanghai (japan))
-shanghai:
-shanghaij:
-@:maincpu,program,201b,b4,90,1e
-
-
-;(shanghai ii (japan))
-shangha2:
-shangha2a:
-@:maincpu,program,180b,be,90,01
-
-
-;@s:shangkid.cpp
-
-;(shanghai kid (japan))
-hiryuken:
-shangkid:
-@:maincpu,program,e128,50,00,17
-
-
-;chinhero2:******chinese hero (older)
-chinhero:
-chinhero2:
-chinhero3:
-chinherot:
-@:maincpu,program,e132,46,00,17
-@:maincpu,program,e128,4,00,00
-@:maincpu,program,e12a,1,03,03
-
-
-;(dynamic ski) (by GeoMan)
-dynamski:
-@:maincpu,program,f092,46,00,1e
-@:maincpu,program,f100,15,00,13
-@:maincpu,program,f088,4,00,00
-
-
-;@s:shaolins.cpp
-
-kicker:
-shaolinb:
-shaolins:
-@:maincpu,program,2af1,2,02,58
-@:maincpu,program,2af3,1,00,00
-@:maincpu,program,2b00,3e,1d,01
-@:maincpu,program,2b3e,2,00,00
-
-
-;@s:shisen.cpp
-
-;matchit:******match it
-matchit:
-shisen:
-sichuan2:
-sichuan2a:
-@:maincpu,program,fcae,52,50,01
-
-
-;@s:shootout.cpp
-
-;(shoot out (us))
-shootout:
-@:maincpu,program,24a,4e,44,60
-@:maincpu,program,53,3,05,00
-@:maincpu,program,54,1,80,80
-
-
-shootoutb:
-shootoutj:
-@:maincpu,program,24a,4e,44,60
-@:maincpu,program,5f,3,05,00
-@:maincpu,program,60,1,80,80
-
-
-;@s:sidearms.cpp
+;*******Renju Kizoku
+renju:
+@:maincpu,regs,f2aa,28,b8,01
+@:maincpu,regs,f2ea,2,70,17
-;*******(sidearms & clones)
-sidearms:
-sidearmsur1:
-@:maincpu,program,e682,4e,00,03
-@:maincpu,program,e601,7,00,00
-@:maincpu,program,e6ce,1,3b,3b
+;*******Neratte Chu
+nratechu:
+@:maincpu,regs,e568,28,00,08
-;*******Twin Falcons
-twinfalc:
-@:maincpu,program,e680,50,00,3b
-@:maincpu,program,e600,08,00,00
+;@s:seta/speedatk.cpp
-;turtshipj:******turtle ship (japan)
-turtship:
-turtshipj:
-turtshipk:
-turtshipkn:
-turtshipko:
-@:maincpu,program,c504,96,00,0a
-@:maincpu,program,c202,2,00,1e
+;******speed arttack!
+speedatk:
+@:maincpu,program,8a3c,4c,00,0f
-dyger:
-dygera:
-@:maincpu,program,c0d0,23,37,06
-@:maincpu,program,c086,2,37,37
+;@s:seta/ssv.cpp
+pastelis:
+@:maincpu,program,2461,34,a0,04
-sidearmsu:
-@:maincpu,program,e682,4e,00,03
-@:maincpu,program,e601,7,00,00
-@:maincpu,program,e6ce,1,01,01
+;*******ultra x weapons / ultra keibitai
+ultrax:
+ultraxg:
+@:maincpu,program,1ac8e,28,40,04
+@:maincpu,program,e23c,3,40,0f
-sidearmsj:
-@:maincpu,program,e682,4e,00,00
-@:maincpu,program,e601,7,00,00
-@:maincpu,program,e6ce,1,3b,3b
+;*******vasara
+vasara:
+@:maincpu,program,2a32,c5,01,1e
-;@s:sidepckt.cpp
-sidepckt:
-sidepcktb:
-sidepcktj:
-@:maincpu,program,a0e,32,11,54
+;*******vasara 2 (set 1 & 2)
+vasara2:
+vasara2a:
+@:maincpu,program,5302,eb,01,0a
-;@s:silkroad.cpp
+;survartsu:******survival arts (usa)
+survarts:
+survartsu:
+@:maincpu,program,11a5,26,00,45
+@:maincpu,program,11cb,2,45,00
-;(the legend of silkroad)
-silkroad:
-silkroada:
-@:maincpu,program,fe305e,8c,4d,01
+;*******twin eagle ii - the rescue mission
+twineag2:
+@:maincpu,program,e208,3,40,0f
+@:maincpu,program,15572,2f,40,0a
-;@s:simpl156.cpp
-charlien:
-@:maincpu,program,184a80,ae,00,00
-@:maincpu,program,182200,01,e6,e6
+;******dyna gears
+;** top score updates as soon as 1st game starts **
+;** wait about 10 seconds after game starts before entering a credit, or save won`t work **
+dynagear:
+@:maincpu,program,af,2c,80,50
+@:maincpu,program,fd,1,04,04
-;osman:******osman (world)
-;candance:******cannon dancer (japan)
-candance:
-osman:
-@:maincpu,program,186f80,ee,93,00
-@:maincpu,program,187068,1,01,01
+;eaglshot:******eagle shot golf
+eaglshot:
+eaglshotj:
+@:maincpu,program,20,62,48,18
-;magdrop:******Magical Drop (japan, version 1.1 1995.06.21)
-magdrop:
-@:maincpu,program,3800c4,45,00,41
-@:maincpu,program,380920,a,54,00
+;(storm blade (us)) (by GeoMan)
+stmblade:
+stmbladej:
+@:maincpu,program,28d3,80,15,00
-;magdropp:******magical drop plus 1 (japan, version 2.1 1995.09.12)
-magdropp:
-@:maincpu,program,6800c4,45,00,41
-@:maincpu,program,680920,a,54,00
+;(monster slider (japan))
+mslider:
+@:maincpu,program,2acc,a8,00,02
+@:maincpu,program,c0,1,15,15
-;chainrec:******Chain Reaction (world, version 2.2 1995.09.25)
-chainrec:
-@:maincpu,program,4000c0,4d,00,41
-@:maincpu,program,400920,a,54,00
+;******change air blade(By Firebrand)
+cairblad:
+@:maincpu,program,580030,b1,a0,01
-;prtytime:******Party Time: Gonta the Diver II
-;gangonta:******Ganbare! Gonta!! 2
-gangonta:
-prtytime:
-@:maincpu,program,185c24,4d,00,18
-@:maincpu,program,201bd0,27,32,00
-@:maincpu,program,201bf4,1,05,05
+;******Pachinko Sexy Reaction 2 (Japan)
+sxyreac2:
+@:maincpu,program,7550,a3,4c,4c
-;joemacr:******Joe & Mac Returns
-;joemacra:******Joe & Mac Returns (set 2)
-joemacr:
-joemacra:
-@:maincpu,program,1000c0,9d,01,09
-@:maincpu,program,20105c,3,a0,01
+;@s:sigma/nyny.cpp
+;(new york new york)
+nyny:
+nynyg:
+warcadia:
+@:maincpu,program,c000,f,00,00
+@:maincpu,program,7a7d,1,77,77
-;@s:simple_st0016.cpp
-;*******Renju Kizoku
-renju:
-@:maincpu,regs,f2aa,28,b8,01
-@:maincpu,regs,f2ea,2,70,17
+;@s:sigma/r2dtank.cpp
+;*******r2d tank
+r2dtank:
+@:maincpu,program,43,3,00,00
+@:maincpu,program,48,1,a9,a9
-;*******Neratte Chu
-nratechu:
-@:maincpu,regs,e568,28,00,08
+;@s:sigma/spiders.cpp
-;@s:simpsons.cpp
+;*******spinner
+spinner:
+@:maincpu,program,1c11,3,00,00
+@:maincpu,program,1e40,f,00,00
-;simpsons4pa:******The Simpsons (4 Players alt)
-;simpsons2p2:******the simpsons (2 player alt)
-simpsons:
-simpsons2p:
-simpsons2p2:
-simpsons2p3:
-simpsons2pa:
-simpsons2pj:
-simpsons4pa:
-simpsons4pe:
-@:maincpu,program,4980,50,42,00
+spiders3:
+@:maincpu,program,1c12,3,00,00
+@:maincpu,program,1e41,f,00,00
-;@s:skyarmy.cpp
-;*******sky army
-skyarmy:
-@:maincpu,program,8131,ad,00,8a
+;Spiders and clones (by GeoMan)
+spiders:
+spiders2:
+@:maincpu,program,1c13,3,0,0
+@:maincpu,program,1e42,f,0,0
-;@s:skydiver.cpp
+;@s:snk/bbusters.cpp
-;(sky diver)
-;** note highscore must be displaying new top score to save properly **
-;** so start a new game after a new highscore and kill man 3 times **
-;** untill new highscore is displayed. **
-skydiver:
-@:maincpu,program,af,3,00,00
+bbusters:
+bbustersj:
+bbustersja:
+bbustersu:
+bbustersua:
+@:maincpu,program,8a579,9b,02,01
-;@s:skyfox.cpp
+;@s:snk/lasso.cpp
-skyfox:
-@:maincpu,program,de00,a,00,00
-@:maincpu,program,df00,28,00,00
-@:maincpu,program,c01a,01,79,79
+lasso:
+@:maincpu,program,0220,70,11,30
+@:maincpu,program,001c,3,00,00
-exerizer:
-exerizerb:
-@:maincpu,program,de00,a,00,00
-@:maincpu,program,df00,28,00,00
-@:maincpu,program,d356,1,a0,a0
-@:maincpu,program,d35a,1,a0,a0
-@:maincpu,program,d35e,1,a0,a0
-@:maincpu,program,d362,1,a0,a0
-@:maincpu,program,d366,1,00,00
-@:maincpu,program,d36a,1,00,00
+;(chameleon)
+chameleo:
+@:maincpu,program,4f,4,00,00
+@:maincpu,program,120,6e,26,00
+@:maincpu,program,50,1,50,50
-;@s:skykid.cpp
+;(wai wai jockey gate-in!) (by GeoMan)
+wwjgtin:
+@:maincpu,program,0220,70,24,24
+@:maincpu,program,001c,3,00,00
-;(dragon buster)
-drgnbstr:
-@:maincpu,program,485a,3,00,00
-@:maincpu,program,485b,1,10,10
-@:maincpu,program,406c,7,2f,00
-@:maincpu,program,406e,1,01,01
+;(pinbo & pinbo (strike))
+;pinboa:******Pinbo (set 2)
+pinbo:
+pinboa:
+pinbos:
+@:maincpu,program,120,6e,24,00
+@:maincpu,program,43,3,00,00
+@:maincpu,program,44,1,50,50
-skykid:
-skykidd:
-skykido:
-skykids:
-@:maincpu,program,5000,45,00,0a
-@:maincpu,program,5001,1,03,03
+;@s:snk/mechatt.cpp
-;@s:skyraid.cpp
+mechattu1:
+@:maincpu,program,7f943,3,00,15
+@:maincpu,program,7f9bb,99,00,2e
-;********(sky raider)
-skyraid:
-@:maincpu,program,a,2,00,00
+;mechattu:******Mechanized Attack (US)
+mechatt:
+mechattj:
+mechattu:
+@:maincpu,program,7f943,3,02,54
+@:maincpu,program,7f9bb,99,02,14
-;@s:slapfght.cpp
-;tigerhj:******tiger heli (japan)
-tigerh:
-tigerhb1:
-tigerhb2:
-tigerhb3:
-tigerhj:
-@:maincpu,program,c0db,49,00,02
-@:maincpu,program,c15a,6,2d,00
+;@s:snk/munchmo.cpp
+;(joyful road / munch mobile)
+joyfulr:
+mnchmobl:
+@:maincpu,program,813a,3,00,00
+@:maincpu,program,8313,6b,30,4b
+@:maincpu,program,813b,1,10,10
-;- ADDED CLONE
-perfrman:
-perfrmanu:
-@:maincpu,program,8006,30,89,12
-@:maincpu,program,8609,07,24,00
+;@s:snk/prehisle.cpp
-getstarb1:
-getstarb2:
-getstarj:
-grdian:
-@:maincpu,program,c0d2,48,00,00
-@:maincpu,program,c110,1,0a,0a
-@:maincpu,program,c0ca,1,17,17
+;(prehistoric isle in 1930 (world))
+gensitou:
+prehisle:
+prehisleb:
+prehislek:
+prehisleu:
+@:maincpu,program,700a0,4e,00,00
+@:maincpu,program,7003d,5,00,00
+@:maincpu,program,700ec,1,01,01
-;slapfighb3:******Slap Fight (bootleg)
-alcon:
-slapfigh:
-slapfighb1:
-slapfighb2:
-slapfighb3:
-@:maincpu,program,c05d,49,50,04
-@:maincpu,program,c118,7,2d,00
+;@s:snk/snk.cpp
+tnk3:
+tnk3b:
+tnk3j:
+@:maincpu,program,fed1,82,13,20
+@:maincpu,program,fc59,3,00,00
-;@s:snk.cpp
tdfever2b:
@:maincpu,program,df28,2c,54,06
@@ -13903,12 +14543,6 @@ madcrash:
@:maincpu,program,c2b3,4b,00,4b
-tnk3:
-tnk3j:
-@:maincpu,program,fed1,82,13,20
-@:maincpu,program,fc59,3,00,00
-
-
ikariram:
@:maincpu,program,ff0b,50,00,4f
@:maincpu,program,fc5f,3,00,00
@@ -13959,7 +14593,17 @@ sgladiat:
@:maincpu,program,d9b0,28,00,4b
-;@s:snk6502.cpp
+;@s:snk/snk6502.cpp
+
+;(vanguard)
+;vanguardj:******Vanguard (Japan)
+vanguard:
+vanguardc:
+vanguardg:
+vanguardj:
+@:maincpu,program,220,70,11,30
+@:maincpu,program,25,3,00,00
+
fantasyg:
fantasyg2:
@@ -13997,16 +14641,16 @@ pballoonr:
@:maincpu,program,0022,3,00,00
-;(vanguard)
-;vanguardj:******Vanguard (Japan)
-vanguard:
-vanguardc:
-vanguardj:
-@:maincpu,program,220,70,11,30
-@:maincpu,program,25,3,00,00
+;@s:snk/snk68.cpp
+pow:
+powa:
+powbl:
+powj:
+@:maincpu,program,43e8e,4,00,00
+@:maincpu,program,41910,2,00,01
+@:maincpu,program,41912,4e,00,00
-;@s:snk68.cpp
ikari3:
ikari3j:
@@ -14016,13 +14660,6 @@ ikari3w:
@:maincpu,program,4007e,58,00,1d
-pow:
-powj:
-@:maincpu,program,43e8e,4,00,00
-@:maincpu,program,41910,2,00,01
-@:maincpu,program,41912,4e,00,00
-
-
;searcharj:******;sar - search and rescue (japan)
searchar:
searcharj:
@@ -14040,78 +14677,50 @@ streetsmw:
@:maincpu,program,43f7e,4,00,00
-;@s:snowbros.cpp
-
-;******cookie & bibi 2
-cookbib2:
-cookbib2a:
-@:maincpu,program,1026a2,28,4b,00
-@:maincpu,program,1026c4,1,4d,4d
-
-
-;*******hyper pacman
-hyperpac:
-@:maincpu,program,10315c,28,50,00
-
-
-;** top score updates as soon as a game is started **
-ballboy:
-snowbro3:
-snowbros:
-snowbrosa:
-snowbrosb:
-snowbrosc:
-snowbrosd:
-snowbrosj:
-snowbroswb:
-toto:
-wintbob:
-@:maincpu,program,1001ca,40,00,4f
-@:maincpu,program,1014ad,1,1f,1f
-@:maincpu,program,1014b7,1,1f,1f
-@:maincpu,program,1014c1,1,08,08
-@:maincpu,program,1014cb,1,04,04
-@:maincpu,program,1014d5,1,04,04
-@:maincpu,program,1014df,1,04,04
-@:maincpu,program,1014e9,1,04,04
-
-
-;toppyrap:******toppy & rappy
-toppyrap:
-@:maincpu,program,10372f,42,00,45
+;@s:sony/taitogn.cpp
+spuzbobl:
+@:maincpu,program,28bf08,10d,20,01
-mcheonru:
-@:maincpu,program,1090dc,11f,00,06
+;@s:sony/zn.cpp
-;********(hyper pacman (bootleg))
-hyperpacb:
-@:maincpu,program,10535c,28,50,00
-@:maincpu,program,10537e,1,43,43
+;******tetris the grand master (japan 980710)
+;** this saves "today`s scores", the game saves the grand master scores using **
+;** nvram (i think !! ,0) **
+tgmj:
+@:maincpu,program,80171198,35,06,64
-pzlbreak:
-@:maincpu,program,102d9c,32,50,32
-@:maincpu,program,102e0b,3,00,00
+;rvschool:****** rival school & clones do not save top scores team logo ******
+jgakuen:
+jgakuen1:
+rvschool:
+rvschoola:
+rvschoolu:
+@:maincpu,program,1f6524,48,50,0f
-;@s:solomon.cpp
+shiryu2:
+strider2:
+strider2a:
+strider2u:
+@:maincpu,program,4dfe08,a8,01,24
-solomon:
-solomonj:
-@:maincpu,program,ca4c,5a,50,01
+;@s:source not found
-;@s:sonson.cpp
+ddpsdoj: ; missing
+@:maincpu,program,c7d0808,194f,05,00
+@:maincpu,program,c7d2152,01,54,54
-sonson:
-sonsonj:
-@:maincpu,program,d8,4,00,00
-@:maincpu,program,300,64,00,1d
+;***** saves todays top scores (others are saved in nvram) ******
+akatana: ; missing
+@:maincpu,program,cb2fa9c,343,00,52
+@:maincpu,program,cb30e4c,343,00,4a
+@:maincpu,program,cb30474,343,00,44
-;@s:source not found
;by Ziller
kong2600: ; missing
@@ -14162,895 +14771,1289 @@ vgalaga: ; missing
@:maincpu,program,83ed,6,00,24
-;@s:spacefb.cpp
+;@s:stern/astinvad.cpp
-;********spacefb.c (fixed thanks to thomas busse)
-;** top score don`t update until you lose your first life, pretty **
-;** lame way for doing a hiscore - but who am i to complain!! ;0) **
-;Note: This was corrected by copying also the Video RAM (at 8299). So now also the initially shown score table is updated correctly.
-spacefb:
-spacefbb:
-spacefbe:
-spacefbe2:
-starwarr:
-@:maincpu,program,c0a0,1e,00,00
-@:maincpu,program,c0e0,3,00,00
-@:maincpu,program,c773,6,05,05
-@:maincpu,program,9a51,6,05,05
-@:maincpu,program,8299,32,0f,0f
+;kosmokil:******Kosmo Killer
+kosmokil:
+@:maincpu,program,1fc4,14,00,00
+@:maincpu,program,2f1d,1,3e,3e
+@:maincpu,program,2f3d,1,41,41
+@:maincpu,program,2f5d,1,41,41
+@:maincpu,program,2f7d,1,41,41
+@:maincpu,program,2f9d,1,3e,3e
+@:maincpu,program,301d,1,3e,3e
+@:maincpu,program,303d,1,41,41
+@:maincpu,program,305d,1,41,41
+@:maincpu,program,307d,1,41,41
+@:maincpu,program,309d,1,3e,3e
+@:maincpu,program,311d,1,3e,3e
+@:maincpu,program,313d,1,41,41
+@:maincpu,program,315d,1,41,41
+@:maincpu,program,317d,1,41,41
+@:maincpu,program,319d,1,3e,3e
+@:maincpu,program,321d,1,3e,3e
+@:maincpu,program,323d,1,41,41
+@:maincpu,program,325d,1,41,41
+@:maincpu,program,327d,1,41,41
+@:maincpu,program,329d,1,3e,3e
+@:maincpu,program,331d,1,3e,3e
+@:maincpu,program,333d,1,41,41
+@:maincpu,program,335d,1,41,41
+@:maincpu,program,337d,1,41,41
+@:maincpu,program,339d,1,3e,3e
-;** hiscore & top score don`t update until you lose your first life, pretty **
-;** lame way for doing a hiscore - but who am i to complain!! ;0) **
-spacebrd:
-@:maincpu,program,c0e0,3,00,00
-@:maincpu,program,d0e0,3,00,00
-@:maincpu,program,e0e0,3,00,00
-@:maincpu,program,f0f0,3,00,00
-@:maincpu,program,be51,6,05,05
-@:maincpu,program,bd51,6,88,60
+;spaceintj:******Space Intruder (Japan)
+spaceint:
+spaceintj:
+@:maincpu,program,2000,3,0,0
-spacefba:
-@:maincpu,program,c773,6,05,05
-@:maincpu,program,9a51,6,05,05
-@:maincpu,program,c0e0,3,00,00
+;(astro invader)
+;** god, the things i do to give y`all these hiscore saves !! **
+;** is this the longest hiscore.data yet ? **
+astinvad:
+@:maincpu,program,1fca,14,00,00
+@:maincpu,program,2f1d,1,3e,3e
+@:maincpu,program,2f3d,1,41,41
+@:maincpu,program,2f5d,1,41,41
+@:maincpu,program,2f7d,1,41,41
+@:maincpu,program,2f9d,1,3e,3e
+@:maincpu,program,301d,1,3e,3e
+@:maincpu,program,303d,1,41,41
+@:maincpu,program,305d,1,41,41
+@:maincpu,program,307d,1,41,41
+@:maincpu,program,309d,1,3e,3e
+@:maincpu,program,311d,1,3e,3e
+@:maincpu,program,313d,1,41,41
+@:maincpu,program,315d,1,41,41
+@:maincpu,program,317d,1,41,41
+@:maincpu,program,319d,1,3e,3e
+@:maincpu,program,321d,1,3e,3e
+@:maincpu,program,323d,1,41,41
+@:maincpu,program,325d,1,41,41
+@:maincpu,program,327d,1,41,41
+@:maincpu,program,329d,1,3e,3e
+@:maincpu,program,331d,1,3e,3e
+@:maincpu,program,333d,1,41,41
+@:maincpu,program,335d,1,41,41
+@:maincpu,program,337d,1,41,41
+@:maincpu,program,339d,1,3e,3e
-spacefbg:
-@:maincpu,program,c0a0,2b,00,00
-@:maincpu,program,c3c0,1e,11,10
-@:maincpu,program,c0e0,3,00,30
+;(space king 2) (by GeoMan)
+spcking2:
+@:maincpu,program,1cf4,2,0,0
-;@s:spaceg.cpp
+kamikaze:
+@:maincpu,program,1fc5,14,00,00
+@:maincpu,program,2f1d,1,3e,3e
+@:maincpu,program,2f3d,1,41,41
+@:maincpu,program,2f5d,1,41,41
+@:maincpu,program,2f7d,1,41,41
+@:maincpu,program,2f9d,1,3e,3e
+@:maincpu,program,301d,1,3e,3e
+@:maincpu,program,303d,1,41,41
+@:maincpu,program,305d,1,41,41
+@:maincpu,program,307d,1,41,41
+@:maincpu,program,309d,1,3e,3e
+@:maincpu,program,311d,1,3e,3e
+@:maincpu,program,313d,1,41,41
+@:maincpu,program,315d,1,41,41
+@:maincpu,program,317d,1,41,41
+@:maincpu,program,319d,1,3e,3e
+@:maincpu,program,321d,1,3e,3e
+@:maincpu,program,323d,1,41,41
+@:maincpu,program,325d,1,41,41
+@:maincpu,program,327d,1,41,41
+@:maincpu,program,329d,1,3e,3e
+@:maincpu,program,331d,1,3e,3e
+@:maincpu,program,333d,1,41,41
+@:maincpu,program,335d,1,41,41
+@:maincpu,program,337d,1,41,41
+@:maincpu,program,339d,1,3e,3e
-;******Space Guerilla
-spaceg:
-@:maincpu,program,7007,3,00,00
+;@s:stern/berzerk.cpp
-;@s:spbactn.cpp
+berzerk:
+berzerka:
+berzerkb:
+berzerkf:
+berzerkg:
+berzerks:
+@:maincpu,program,4302,3c,00,00
+@:maincpu,program,4301,1,42,42
-;(super pinball action (japan)) (by GeoMan)
-spbactn:
-spbactnj:
-@:maincpu,program,41780,32,00,05
+frenzy:
+@:maincpu,program,406e,3c,00,00
+@:maincpu,program,405e,1,ff,ff
-;@s:spcforce.cpp
-;********spcforce (space force)
-meteor:
-spcforc2:
-spcforce:
-@:maincpu,program,4300,50,30,30
+;@s:stern/mazerbla.cpp
+;******great guns(By Firebrand)
+greatgun:
+@:maincpu,program,e00b,53,55,50
-;@s:spdodgeb.cpp
-nkdodge:
-nkdodgeb:
-spdodgeb:
-@:maincpu,program,83,3,00,00
+;@s:suna/goindol.cpp
+;(goindol) and clones (by GeoMan)
+goindol:
+goindolj:
+goindolu:
+homo:
+@:maincpu,program,c0d8,2,05,00
+@:maincpu,program,c076,50,05,59
-;@s:speedatk.cpp
-;******speed arttack!
-speedatk:
-@:maincpu,program,8a3c,4c,00,0f
+;@s:suna/suna16.cpp
+;(back street soccer) (by GeoMan)
+bssoccer:
+bssoccera:
+@:maincpu,program,200e90,28,41,00
-;@s:speedbal.cpp
-;(speed ball) (by GeoMan)
-speedbal:
-@:maincpu,program,f800,46,20,50
+;(ultra balloon)
+uballoon:
+@:maincpu,program,80048c,4f,00,45
-;@s:speedspn.cpp
+;@s:suna/suna8.cpp
-;********(speed spin)
-speedspn:
-@:maincpu,program,b04c,61,4a,20
+;(hard head & popper)
+hardhead:
+hardheadb:
+hardheadb3:
+pop_hh:
+@:maincpu,program,ce80,18e,03,3d
+@:maincpu,program,c051,3,00,00
-;@s:spiders.cpp
+hardhea2:
+hardhea2a:
+@:maincpu,program,cf10,c8,00,48
+@:maincpu,program,c8a0,02,00,03
-;*******spinner
-spinner:
-@:maincpu,program,1c11,3,00,00
-@:maincpu,program,1e40,f,00,00
+srangerb:
+@:maincpu,program,d220,4c,00,2e
+@:maincpu,program,c851,2,00,03
-spiders3:
-@:maincpu,program,1c12,3,00,00
-@:maincpu,program,1e41,f,00,00
+starfigh:
+@:maincpu,program,db30,26,00,4c
+@:maincpu,program,c8d0,2,00,03
-;Spiders and clones (by GeoMan)
-spiders:
-spiders2:
-@:maincpu,program,1c13,3,0,0
-@:maincpu,program,1e42,f,0,0
+brickzn:
+brickzn11:
+brickznv4:
+brickznv5:
+@:maincpu,program,cf10,4e,23,4d
+@:maincpu,program,c8a0,2,00,03
-;@s:splash.cpp
-;splash10:******Splash! (Ver. 1.0 World)
-;******Painted Lady (Splash) (Ver 1.3 US)
-paintlad:
-splash:
-splash10:
-@:maincpu,program,ffca10,50,00,00
-@:maincpu,program,ffca5e,1,27,27
+;(rough rangers(v2.0 sharp image licence))
+rranger:
+rrangerb:
+sranger:
+srangern:
+srangero:
+srangerw:
+@:maincpu,program,d220,4c,00,20
+@:maincpu,program,c851,2,00,03
-;*******The Return of Lady Frog & The Return of Lady Frog (set 2)
-roldfrog:
-roldfroga:
-@:maincpu,program,ffca10,50,00,00
-@:maincpu,program,ffca5b,1,0f,0f
+sparkman:
+sparkmana:
+@:maincpu,program,c930,6a,00,01
+@:maincpu,program,c880,2,00,03
-;@s:sprcros2.cpp
+;@s:sunelectronics/arabian.cpp
-;sprcros2a:******Super Cross 2 (Japan set 2)
-sprcros2:
-sprcros2a:
-@:master_cpu,program,fa00,78,00,4a
-@:master_cpu,program,f012,6,00,00
-@:master_cpu,program,f013,1,03,03
+;********arabian (fixed)
+arabian:
+arabiana:
+@:maincpu,program,d384,3c,00,00
+@:maincpu,program,d3bd,1,01,01
-;@s:sprint2.cpp
+;@s:sunelectronics/dai3wksi.cpp
-;(sprint 1)
-sprint1:
-@:maincpu,program,57,3,30,30
+runaways:
+@:maincpu,program,2026,9,00,00
-;@s:spy.cpp
+;*** warp-1 & Warp-1 (Japan, bootleg) turn the hiscore table on in the dipswich options ***
+;*** for a bigger hiscore table if you want. (does not affect the hiscore.dat if its on or off ***
+warp1:
+warp1bl:
+warp1t:
+@:maincpu,program,2180,87,00,00
-;(s.p.y. - special project y (us)) (by GeoMan)
-spy:
-spyu:
-@:maincpu,program,9a0,50,11,00
-@:maincpu,program,836,4,00,00
+;@s:sunelectronics/ikki.cpp
-;@s:srumbler.cpp
+;(ikki (japan)) (by GeoMan)
+;farmer:*****Farmers Rebellion
+farmer:
+ikki:
+@:maincpu,program,c010,1e,22,00
+@:maincpu,program,d61b,1,2a,2a
+@:maincpu,program,d65b,1,04,04
+@:maincpu,program,d69b,1,00,00
+@:maincpu,program,d6db,1,00,00
+@:maincpu,program,d71b,1,00,00
+@:maincpu,program,d75b,1,00,00
-;srumbler:[Special thanks to Wob for enhancing this entry]
-rushcrsh:
-srumbler:
-srumbler2:
-srumbler3:
-@:maincpu,program,1c94,70,54,f2
-@:maincpu,program,aa,4,00,00
+;@s:sunelectronics/kangaroo.cpp
-;@s:sshangha.cpp
+;****** Top score updates after game start or attract mode Loop ******
+kangaroo:
+kangarooa:
+kangaroob:
+kangarool:
+@:maincpu,program,e1a0,3c,00,00
+@:maincpu,program,e300,6,00,00
+@:maincpu,program,e302,1,05,05
-;********(super shanghai dragon`s eye (world,bootleg))
-sshangha:
-sshanghab:
-sshanghaj:
-@:maincpu,program,fec478,13f,00,1c
+;(funky fish) (by GeoMan)
+fnkyfish:
+@:maincpu,program,e030,9,0,0
-;@s:sslam.cpp
-;powerbals:******power balls (super slam conversion)
-powerbal:
-powerbals:
-@:maincpu,program,f8276,7c,56,00
-@:maincpu,program,f82f0,1,20,20
+;@s:sunelectronics/markham.cpp
+;Markham (by GeoMan)
+markham:
+@:maincpu,program,c0c4,3c,2a,00
-;@s:ssozumo.cpp
-;(syusse oozumou (japan)) (by GeoMan)
-ssozumo:
-@:maincpu,program,24,3,0,0
-@:maincpu,program,714,74,42,40
+;(pettan pyuu (japan)) (by GeoMan)
+pettanp:
+@:maincpu,program,c0c2,1e,20,00
-;@s:sstrangr.cpp
+;(strength & skill) and clones (by GeoMan)
+guiness:
+strnskil:
+@:maincpu,program,c0c4,1e,22,00
+@:maincpu,program,c430,60,09,00
-;(space stranger & space stranger 2)
-sstrangr:
-sstrangr2:
-@:maincpu,program,20f4,2,00,00
+;@s:sunelectronics/route16.cpp
-;@s:ssv.cpp
+route16:
+route16a:
+route16b:
+route16bl:
+route16c:
+route16d:
+routex:
+routexa:
+@:cpu1,program,4032,9,0,0
-pastelis:
-@:maincpu,program,2461,34,a0,04
+;spacecho2:******space echo (set 1)
+;spacecho:******space echo (set 2)
+spacecho:
+spacecho2:
+speakres:
+speakresb:
+stratvox:
+stratvoxa:
+stratvoxb:
+@:cpu1,program,4001,3,00,00
+@:cpu1,program,4010,3,00,00
-;*******ultra x weapons / ultra keibitai
-ultrax:
-ultraxg:
-@:maincpu,program,1ac8e,28,40,04
-@:maincpu,program,e23c,3,40,0f
+;@s:sunelectronics/shangha3.cpp
-;*******vasara
-vasara:
-@:maincpu,program,2a32,c5,01,1e
+shangha3:
+shangha3up:
+@:maincpu,program,307be4,78,00,1d
-;*******vasara 2 (set 1 & 2)
-vasara2:
-vasara2a:
-@:maincpu,program,5302,eb,01,0a
+;(hebereke no popoon (japan)) (by GeoMan)
+heberpop:
+@:maincpu,program,304920,a0,00,1c
-;survartsu:******survival arts (usa)
-survarts:
-survartsu:
-@:maincpu,program,11a5,26,00,45
-@:maincpu,program,11cb,2,45,00
+;(blocken (japan))
+blocken:
+@:maincpu,program,3086ec,4f,00,57
-;*******twin eagle ii - the rescue mission
-twineag2:
-@:maincpu,program,e208,3,40,0f
-@:maincpu,program,15572,2f,40,0a
+;** you must let the highscore display in attract mode before starting a game **
+shangha3j:
+shangha3u:
+@:maincpu,program,307be2,78,00,1d
-;******dyna gears
-;** top score updates as soon as 1st game starts **
-;** wait about 10 seconds after game starts before entering a credit, or save won`t work **
-dynagear:
-@:maincpu,program,af,2c,80,50
-@:maincpu,program,fd,1,04,04
+;@s:sunelectronics/shanghai.cpp
+;(shanghai ii (japan))
+blktch2:
+shangha2:
+shangha2a:
+@:maincpu,program,180b,be,90,01
-;eaglshot:******eagle shot golf
-eaglshot:
-eaglshotj:
-@:maincpu,program,20,62,48,18
+;(shanghai (japan))
+shanghai:
+shanghaij:
+@:maincpu,program,201b,b4,90,1e
-;(storm blade (us)) (by GeoMan)
-stmblade:
-stmbladej:
-@:maincpu,program,28d3,80,15,00
+;@s:taito/40love.cpp
-;(monster slider (japan))
-mslider:
-@:maincpu,program,2acc,a8,00,02
-@:maincpu,program,c0,1,15,15
+;********(field day and clone)
+fieldday:
+undoukai:
+@:maincpu,program,c00d,536,48,11
+@:maincpu,program,a190,1,03,03
-;******change air blade(By Firebrand)
-cairblad:
-@:maincpu,program,580030,b1,a0,01
+;@s:taito/arkanoid.cpp
+ark1ball:
+arktayt2:
+@:maincpu,program,ef79,23,00,42
+@:maincpu,program,c4df,03,00,00
-;******Pachinko Sexy Reaction 2 (Japan)
-sxyreac2:
-@:maincpu,program,7550,a3,4c,4c
+arkanoidja:
+@:maincpu,program,ef75,23,00,52
+@:maincpu,program,c4df,03,00,00
-;@s:stactics.cpp
-;(space tactics) (by GeoMan)
-stactics:
-@:maincpu,program,d700,a,0,0
-@:maincpu,program,e700,a,0,0
-@:maincpu,program,f700,a,0,0
+;**** let game run for about 5 seconds before playing ****
+tetrsark:
+tetrsark2:
+@:maincpu,program,c539,1,00,00
+@delay=4
-;@s:starfire.cpp
+;arkanoid:[Special thanks to Cananas for enhancing this entry]
+arkangc:
+arkangc2:
+arkanoid:
+arkanoidj:
+arkanoidjb:
+arkanoidjbl:
+arkanoidjbl2:
+arkanoidu:
+arkanoiduo:
+arkatayt:
+arkbloc2:
+arkbloc3:
+arkblock:
+arkgcbl:
+arkgcbla:
+paddle2:
+@:maincpu,program,ef79,23,00,52
+@:maincpu,program,c4df,03,00,00
-;******star fire (set 2)
-starfirea:
-@:maincpu,program,82ba,aa,00,00
+block2:
+@:maincpu,program,ef79,23,00,4a
+@:maincpu,program,c4df,03,00,00
-;(fire one) (by GeoMan)
-fireone:
-@:maincpu,program,831a,5a,00,24
+hexa:
+hexaa:
+@:maincpu,program,c709,2,00,00
-;******Star Fire 2
-starfir2:
-@:maincpu,program,82a9,6a,00,00
+arkatour:
+@:maincpu,program,ef7c,23,00,52
+@:maincpu,program,c4df,03,00,00
-;(star fire)
-starfire:
-@:maincpu,program,82ba,a5,00,00
+;@s:taito/asuka.cpp
-;@s:starwars.cpp
+asuka:
+asukaj:
+asukaja:
+@:maincpu,program,103458,66,41,01
+@:maincpu,program,1033c4,4,00,20
-;esb fixed thanks to thomas busse
-esb:
-@:maincpu,program,4b85,69,00,90
+earthjkr:
+earthjkra:
+earthjkrb:
+earthjkrp:
+@:maincpu,program,103204,2f,00,42
-;@s:statriv2.cpp
-;*******super triv II(By Firebrand)
-; - Only saves "Experts Only" scores, can save other slots but the games are
-;different every time
-;, - unless you choose the same three over and over again so only "Experts
-;Only" game stays the same.
-supertr2:
-@:maincpu,program,4891,20,00,00
+cadash:
+cadashf:
+cadashg:
+cadashgo:
+cadashi:
+cadashs:
+cadashu:
+cadashu1:
+@:maincpu,program,103646,185,00,4d
-;******triv four
-statriv4:
-@:maincpu,program,482b,18,00,00
+mofflott:
+@:maincpu,program,100aad,75,00,31
-;@s:stfight.cpp
+;bonzeadvo:******Bonze Adventure (World, Older)
+;bonzeadvu:******Bonze Adventure (us)
+bonzeadv:
+bonzeadvo:
+bonzeadvu:
+jigkmgri:
+@:maincpu,program,10d554,32,00,2a
+@:maincpu,program,10d52a,4,00,00
+@:maincpu,program,10d52b,1,05,05
-;(empire city: 1931 (bootleg?)) and clones (by GeoMan)
-empcity:
-empcityi:
-empcityj:
-empcityu:
-stfight:
-stfighta:
-@:maincpu,program,e012,55,00,45
+cadashj:
+cadashj1:
+cadashjo:
+@:maincpu,program,103646,18a,00,65
-;@s:stlforce.cpp
-twinbrat:
-twinbrata:
-twinbratb:
-@:maincpu,program,11200f,3a,00,4e
+bonzeadvp:
+@:maincpu,program,10d552,32,00,2a
+@:maincpu,program,10d528,4,00,00
+@:maincpu,program,10d529,1,05,05
-;(steel force)
-stlforce:
-@:maincpu,program,105772,32,4e,00
-@:maincpu,program,105784,1,02,02
+galmedes:
+@:maincpu,program,1031a0,4c,00,64
-;@s:stuntair.cpp
+;********(kokontouzai eto monogatari (japan))
+eto:
+@:maincpu,program,202d08,30,37,d0
-;stuntair:****** hiscore updated when you start a game ******
-stuntair:
-@:maincpu,program,c13d,3c,00,5b
-@:maincpu,program,fa41,01,a0,a0
-@:maincpu,program,fa21,01,b4,b4
-@:maincpu,program,fa01,01,b0,b0
-@:maincpu,program,f9e1,01,b0,b0
-@:maincpu,program,f9c1,01,b0,b0
-@:maincpu,program,f9a1,01,b0,b0
+;@s:taito/bking.cpp
-;@s:stv.cpp
+;(birdie king) (by GeoMan)
+bking:
+@:main_cpu,program,8161,9,0,0
+@:main_cpu,program,8175,1,0,0
-sokyugrt:
-@:maincpu,program,608dc30,9d,82,47
-@:maincpu,program,60bda38,4,00,c0
+;*******(birdie king 2)(By Firebrand)
+bking2:
+@:main_cpu,program,8166,9,0,0
+@:main_cpu,program,8187,1,0,0
-;********shienryu
-shienryu:
-@:maincpu,program,60adc34,7ec,54,10
-@:maincpu,program,60acbc4,4,00,e8
+;@s:taito/bublbobl.cpp
-;@s:sub.cpp
+bbredux:
+sboblbobla:
+sboblboblb:
+sboblbobld:
+sboblboble:
+sboblboblf:
+@:maincpu,program,e654,23,00,48
+@:maincpu,program,e67b,3,1f,13
+@:maincpu,program,e64c,3,00,00
+@:maincpu,program,cfc6,1,60,60
+@:maincpu,program,d006,1,60,60
+@:maincpu,program,d046,1,60,60
+@:maincpu,program,d086,1,7e,7e
+@:maincpu,program,d0c6,1,7b,7b
+@:maincpu,program,d106,1,7b,7b
+@:maincpu,program,d146,1,7b,7b
+@:maincpu,program,d186,1,7b,7b
+@:maincpu,program,e5df,1,00,00
+@:maincpu,program,e5e0,1,00,00
+@:maincpu,program,e5e4,1,00,00
+@:maincpu,program,e5e6,1,00,00
+@:maincpu,program,e5e1,1,00,00
+@:maincpu,program,e5e2,1,00,00
+@:maincpu,program,e5e3,1,00,00
+@:maincpu,program,e5e7,1,00,00
+@:maincpu,program,e5e8,1,00,00
+@:maincpu,program,e5e9,1,00,00
+@:maincpu,program,e5ea,1,00,00
+@:maincpu,program,e5eb,1,00,00
+@:maincpu,program,e5f6,1,00,00
+@:maincpu,program,e5f7,1,00,00
+@:maincpu,program,e5ee,1,00,00
+@:maincpu,program,e5ef,1,00,00
+@:maincpu,program,e5f0,1,00,00
+@:maincpu,program,e5ec,1,00,00
+@:maincpu,program,e5ed,1,00,00
+@:maincpu,program,e5f3,1,00,00
+@:maincpu,program,e5f4,1,00,00
+@:maincpu,program,e5d9,1,00,00
+@:maincpu,program,e5da,1,00,00
+@:maincpu,program,f457,1,00,00
+@:maincpu,program,f458,1,00,00
+@:maincpu,program,e601,1,00,00
+@:maincpu,program,e602,1,00,00
+@:maincpu,program,e600,1,00,00
+@:maincpu,program,e5ff,1,00,00
+@:maincpu,program,e5fd,1,00,00
+@:maincpu,program,e5fc,1,00,00
+@:maincpu,program,e5fb,1,00,00
+@:maincpu,program,e5fa,1,00,00
+@:maincpu,program,e5f9,1,00,00
+@:maincpu,program,e5f8,1,00,00
+@:maincpu,program,e5fe,1,00,00
+@:maincpu,program,e604,1,00,00
+@:maincpu,program,e605,1,00,00
+@:maincpu,program,e606,1,00,00
+@:maincpu,program,e607,1,00,00
+@:maincpu,program,e609,1,00,00
+@:maincpu,program,e60a,1,00,00
+@:maincpu,program,e611,1,00,00
+@:maincpu,program,e60b,2,00,00
-sub:
-@:maincpu,program,b727,5a,24,24
+bublboblp:
+@:maincpu,program,e626,23,00,48
+@:maincpu,program,e64d,3,1f,13
+@:maincpu,program,e623,3,00,00
+@:maincpu,program,e5ef,1,00,00
+@:maincpu,program,e5f0,1,00,00
+@:maincpu,program,e5f2,1,00,00
+@:maincpu,program,e5f3,1,00,00
+@:maincpu,program,e5f4,1,00,00
+@:maincpu,program,e5f5,1,00,00
+@:maincpu,program,e5f6,1,00,00
+@:maincpu,program,e5f7,1,00,00
+@:maincpu,program,e5f8,1,00,00
+@:maincpu,program,e5f9,1,00,00
+@:maincpu,program,e5fa,1,00,00
+@:maincpu,program,e5fb,1,00,00
+@:maincpu,program,e5fc,1,00,00
+@:maincpu,program,e5fd,1,00,00
+@:maincpu,program,e5fe,1,00,00
+@:maincpu,program,e5ff,1,00,00
+@:maincpu,program,e600,1,00,00
+@:maincpu,program,e601,1,00,00
+@:maincpu,program,e602,1,00,00
+@:maincpu,program,e603,1,00,00
+@:maincpu,program,e606,1,00,00
+@:maincpu,program,e607,1,00,00
+@:maincpu,program,e609,1,00,00
+@:maincpu,program,e60a,1,00,00
+@:maincpu,program,cfc6,1,60,60
+@:maincpu,program,d006,1,60,60
+@:maincpu,program,d046,1,60,60
+@:maincpu,program,d086,1,7e,7e
+@:maincpu,program,d0c6,1,7b,7b
+@:maincpu,program,d106,1,7b,7b
+@:maincpu,program,d146,1,7b,7b
+@:maincpu,program,d186,1,7b,7b
-;@s:suna16.cpp
-;(back street soccer) (by GeoMan)
-bssoccer:
-bssoccera:
-@:maincpu,program,200e90,28,41,00
+;**** now saves all hiscore data and special item counters ****
+boblbobl:
+bub68705:
+bublbobl:
+bublbobl1:
+bublboblb:
+bublboblr:
+bublboblr1:
+bublcave10:
+bublcave11:
+sboblbobl:
+@:maincpu,program,e654,23,00,48
+@:maincpu,program,e67b,3,1f,13
+@:maincpu,program,e64c,3,00,00
+@:maincpu,program,e5df,1,00,00
+@:maincpu,program,e5e0,1,00,00
+@:maincpu,program,e5e4,1,00,00
+@:maincpu,program,e5e6,1,00,00
+@:maincpu,program,e5e1,1,00,00
+@:maincpu,program,e5e2,1,00,00
+@:maincpu,program,e5e3,1,00,00
+@:maincpu,program,e5e7,1,00,00
+@:maincpu,program,e5e8,1,00,00
+@:maincpu,program,e5e9,1,00,00
+@:maincpu,program,e5ea,1,00,00
+@:maincpu,program,e5eb,1,00,00
+@:maincpu,program,e5f6,1,00,00
+@:maincpu,program,e5f7,1,00,00
+@:maincpu,program,e5ee,1,00,00
+@:maincpu,program,e5ef,1,00,00
+@:maincpu,program,e5f0,1,00,00
+@:maincpu,program,e5ec,1,00,00
+@:maincpu,program,e5ed,1,00,00
+@:maincpu,program,e5f3,1,00,00
+@:maincpu,program,e5f4,1,00,00
+@:maincpu,program,e5d9,1,00,00
+@:maincpu,program,e5da,1,00,00
+@:maincpu,program,f457,1,00,00
+@:maincpu,program,f458,1,00,00
+@:maincpu,program,e601,1,00,00
+@:maincpu,program,e602,1,00,00
+@:maincpu,program,e600,1,00,00
+@:maincpu,program,e5ff,1,00,00
+@:maincpu,program,e5fd,1,00,00
+@:maincpu,program,e5fc,1,00,00
+@:maincpu,program,e5fb,1,00,00
+@:maincpu,program,e5fa,1,00,00
+@:maincpu,program,e5f9,1,00,00
+@:maincpu,program,e5f8,1,00,00
+@:maincpu,program,e5fe,1,00,00
+@:maincpu,program,e604,1,00,00
+@:maincpu,program,e605,1,00,00
+@:maincpu,program,e606,1,00,00
+@:maincpu,program,e607,1,00,00
+@:maincpu,program,e609,1,00,00
+@:maincpu,program,e60a,1,00,00
+@:maincpu,program,e611,1,00,00
+@:maincpu,program,e60b,2,00,00
-;(ultra balloon)
-uballoon:
-@:maincpu,program,80048c,4f,00,45
+boblcave:
+bublcave:
+@:maincpu,program,e654,23,00,4e
+@:maincpu,program,e67b,3,1f,13
+@:maincpu,program,e64c,3,00,00
+@:maincpu,program,e5df,1,00,00
+@:maincpu,program,e5e0,1,00,00
+@:maincpu,program,e5e4,1,00,00
+@:maincpu,program,e5e6,1,00,00
+@:maincpu,program,e5e1,1,00,00
+@:maincpu,program,e5e2,1,00,00
+@:maincpu,program,e5e3,1,00,00
+@:maincpu,program,e5e7,1,00,00
+@:maincpu,program,e5e8,1,00,00
+@:maincpu,program,e5e9,1,00,00
+@:maincpu,program,e5ea,1,00,00
+@:maincpu,program,e5eb,1,00,00
+@:maincpu,program,e5f6,1,00,00
+@:maincpu,program,e5f7,1,00,00
+@:maincpu,program,e5ee,1,00,00
+@:maincpu,program,e5ef,1,00,00
+@:maincpu,program,e5f0,1,00,00
+@:maincpu,program,e5ec,1,00,00
+@:maincpu,program,e5ed,1,00,00
+@:maincpu,program,e5f3,1,00,00
+@:maincpu,program,e5f4,1,00,00
+@:maincpu,program,e5d9,1,00,00
+@:maincpu,program,e5da,1,00,00
+@:maincpu,program,f457,1,00,00
+@:maincpu,program,f458,1,00,00
+@:maincpu,program,e601,1,00,00
+@:maincpu,program,e602,1,00,00
+@:maincpu,program,e600,1,00,00
+@:maincpu,program,e5ff,1,00,00
+@:maincpu,program,e5fd,1,00,00
+@:maincpu,program,e5fc,1,00,00
+@:maincpu,program,e5fb,1,00,00
+@:maincpu,program,e5fa,1,00,00
+@:maincpu,program,e5f9,1,00,00
+@:maincpu,program,e5f8,1,00,00
+@:maincpu,program,e5fe,1,00,00
+@:maincpu,program,e604,1,00,00
+@:maincpu,program,e605,1,00,00
+@:maincpu,program,e606,1,00,00
+@:maincpu,program,e607,1,00,00
+@:maincpu,program,e609,1,00,00
+@:maincpu,program,e60a,1,00,00
+@:maincpu,program,e611,1,00,00
+@:maincpu,program,e60b,2,00,00
-;@s:suna8.cpp
+;(tokio/scramble formation(bootleg)) clone (by GeoMan)
+tokiob:
+@:maincpu,program,f4bf,4,00,00
+@:maincpu,program,c858,f,00,2a
-hardhea2:
-hardhea2a:
-@:maincpu,program,cf10,c8,00,48
-@:maincpu,program,c8a0,02,00,03
+;tokio:******Tokio / Scramble Formation
+;tokiou:******Tokio / Scramble Formation (us)
+tokio:
+tokioo:
+tokiou:
+@:maincpu,program,c858,f,00,2a
+@:maincpu,program,c85c,1,01,01
+@:maincpu,program,f4c0,3,61,00
-;(hard head & popper)
-hardhead:
-hardheadb:
-pop_hh:
-@:maincpu,program,ce80,18e,03,3d
-@:maincpu,program,c051,3,00,00
+;dland:******dream land/super dream land
+dland:
+@:maincpu,program,e654,23,00,4f
+@:maincpu,program,e67b,3,1f,13
+@:maincpu,program,e64c,3,00,00
+@:maincpu,program,e5df,1,00,00
+@:maincpu,program,e5e0,1,00,00
+@:maincpu,program,e5e4,1,00,00
+@:maincpu,program,e5e6,1,00,00
+@:maincpu,program,e5e1,1,00,00
+@:maincpu,program,e5e2,1,00,00
+@:maincpu,program,e5e3,1,00,00
+@:maincpu,program,e5e7,1,00,00
+@:maincpu,program,e5e8,1,00,00
+@:maincpu,program,e5e9,1,00,00
+@:maincpu,program,e5ea,1,00,00
+@:maincpu,program,e5eb,1,00,00
+@:maincpu,program,e5f6,1,00,00
+@:maincpu,program,e5f7,1,00,00
+@:maincpu,program,e5ee,1,00,00
+@:maincpu,program,e5ef,1,00,00
+@:maincpu,program,e5f0,1,00,00
+@:maincpu,program,e5ec,1,00,00
+@:maincpu,program,e5ed,1,00,00
+@:maincpu,program,e5f3,1,00,00
+@:maincpu,program,e5f4,1,00,00
+@:maincpu,program,e5d9,1,00,00
+@:maincpu,program,e5da,1,00,00
+@:maincpu,program,f457,1,00,00
+@:maincpu,program,f458,1,00,00
+@:maincpu,program,e601,1,00,00
+@:maincpu,program,e602,1,00,00
+@:maincpu,program,e600,1,00,00
+@:maincpu,program,e5ff,1,00,00
+@:maincpu,program,e5fd,1,00,00
+@:maincpu,program,e5fc,1,00,00
+@:maincpu,program,e5fb,1,00,00
+@:maincpu,program,e5fa,1,00,00
+@:maincpu,program,e5f9,1,00,00
+@:maincpu,program,e5f8,1,00,00
+@:maincpu,program,e5fe,1,00,00
+@:maincpu,program,e604,1,00,00
+@:maincpu,program,e605,1,00,00
+@:maincpu,program,e606,1,00,00
+@:maincpu,program,e607,1,00,00
+@:maincpu,program,e609,1,00,00
+@:maincpu,program,e60a,1,00,00
+@:maincpu,program,e611,1,00,00
+@:maincpu,program,e60b,2,00,00
-srangerb:
-@:maincpu,program,d220,4c,00,2e
-@:maincpu,program,c851,2,00,03
+;@s:taito/buggychl.cpp
-starfigh:
-@:maincpu,program,db30,26,00,4c
-@:maincpu,program,c8d0,2,00,03
+;(buggy challenge)
+buggychl:
+buggychlt:
+@:maincpu,program,8814,4ec,04,00
+@:maincpu,program,80e1,1,04,04
-brickzn:
-brickzn11:
-brickznv4:
-brickznv5:
-@:maincpu,program,cf10,4e,23,4d
-@:maincpu,program,c8a0,2,00,03
+;@s:taito/chaknpop.cpp
+;*******chack`n pop
+chaknpop:
+@:maincpu,program,8449,1f,04,00
+@:maincpu,program,8466,1,14,14
-;(rough rangers(v2.0 sharp image licence))
-rranger:
-rrangerb:
-sranger:
-srangern:
-srangero:
-srangerw:
-@:maincpu,program,d220,4c,00,20
-@:maincpu,program,c851,2,00,03
+;@s:taito/crbaloon.cpp
-sparkman:
-sparkmana:
-@:maincpu,program,c930,6a,00,01
-@:maincpu,program,c880,2,00,03
+crbaloon:
+crbaloon2:
+@:maincpu,program,4016,03,00,00
+@:maincpu,program,417f,0a,11,00
-;@s:supbtime.cpp
+;@s:taito/cyclemb.cpp
-supbtime:
-supbtimea:
-supbtimej:
-@:maincpu,program,10002c,50,00,4f
+skydest:
+@:maincpu,program,b801,6c,4b,00
+@:maincpu,program,b86b,1,10,10
-;(china town (japan))
-chinatwn:
-@:maincpu,program,1a3e00,50,00,2e
+;@s:taito/darius.cpp
+darius:
+dariuse:
+dariusu:
+@:maincpu,program,822f2,729,00,2e
-tumbleb:
-tumbleb2:
-tumblep:
-tumblepba:
-tumblepj:
-@:maincpu,program,123c10,a0,44,50
-@:maincpu,program,123c01,3,00,00
+dariusj:
+dariuso:
+@:maincpu,program,822ec,729,00,00
+@:maincpu,program,82666,1,41,41
-;@s:supduck.cpp
-supduck:
-@:maincpu,program,ffc332,30,41,00
-@:maincpu,program,ffc360,1,10,10
+;@s:taito/exzisus.cpp
+;(exzisus (japan))
+;0,c9c6,1,20,20
+;0,c9ca,1,20,20
+;0,c9ce,1,05,05
+;0,c9d2,1,02,02
+;0,c9d6,1,02,02
+;0,c9da,1,05,05
+exzisus:
+exzisusa:
+exzisust:
+@:cpua,program,f840,3c,00,4f
-;@s:superchs.cpp
-superchsp2:
-@:maincpu,program,1027fa,48,00,47
+;@s:taito/fgoal.cpp
+;*******Field Goal
+fgoal:
+fgoala:
+@:maincpu,program,89,9,00,00
-;(super chase - criminal termination (us))
-superchs:
-superchsj:
-superchsu:
-@:maincpu,program,102815,49,00,47
+;@s:taito/flstory.cpp
-;@s:superqix.cpp
+;(fairyland story)
+flstory:
+flstoryo:
+@:maincpu,program,e74e,23,00,44
-sqix:
-sqixb1:
-sqixb2:
-sqixr0:
-sqixr1:
-sqixu:
-@:maincpu,program,f4c0,28,00,03
-@:maincpu,program,f8f1,4,75,00
+;(onna sansirou - typhoon gal (set 1)) and clones (by GeoMan)
+onna34ro:
+onna34roa:
+@:maincpu,program,e1d7,82,00,65
+@:maincpu,program,e188,3,00,01
-;********perestroika girls (japan)
-perestro:
-perestrof:
-@:maincpu,program,f4c0,28,00,03
-@:maincpu,program,f8f1,4,00,00
+;rumba:****** not working - mame 040u3 debug prob ???
+rumba:
+@:maincpu,program,e18a,3,40,01
+@:maincpu,program,c37c,1,20,20
+@:maincpu,program,c3bc,1,31,31
+@:maincpu,program,c3fc,1,32,32
+@:maincpu,program,c43c,1,33,33
+@:maincpu,program,c47c,1,34,34
+@:maincpu,program,c4bc,1,30,30
+@:maincpu,program,e005,1,5d,5d
-;*******prebillian(By Firebrand)(Hiscore display will not change. It is always 50,000. Please check)
-pbillian:
-@:maincpu,program,f26b,23,00,45
-@:maincpu,program,f222,3,00,00
+;@s:taito/galastrm.cpp
-;@s:superwng.cpp
+;galastrm:******Galactic Storm (Japan)
+galastrm:
+@:maincpu,program,202100,190,01,61
-superwng:
-@:maincpu,program,7920,c8,00,19
+;@s:taito/grchamp.cpp
-;@s:suprloco.cpp
+;(grand champion) (by GeoMan)
+grchamp:
+@:maincpu,program,4215,f,0,0
-;(super locomotive)
-;*******saves top 10 scores only
-;*****can`t be bothered with lower scores !!
-suprloco:
-suprlocoo:
-@:maincpu,program,fd00,1e,02,00
-@:maincpu,program,fca0,12,41,48
-@:maincpu,program,fc2c,3,02,00
+;@s:taito/gsword.cpp
-;@s:suprnova.cpp
+;gsword:******Great Swordsman (Japan?)
+;gsword2:******Great Swordsman (world?)
+gsword:
+gsword2:
+@:maincpu,program,9c00,1e,00,00
+@:maincpu,program,9c78,3c,34,00
-puzzloopj:
-@:maincpu,program,609d1a8,41,00,30
-@:maincpu,program,609d080,41,00,31
+;@s:taito/gunbustr.cpp
-puzzloopk:
-puzzloopu:
-@:maincpu,program,609c700,41,00,30
-@:maincpu,program,609c5d8,41,00,31
+;(gunbuster (japan)) (by GeoMan)
+gunbustr:
+gunbustrj:
+gunbustru:
+@:maincpu,program,2032a0,2,00,21
+@:maincpu,program,2032a2,9e,13,00
-;********(sengeki striker)
-;** the nvram in this game is about as reliable as the english cricket team, hence **
-;** the top score is sometimes wrong.... but nevermine eh...?? **
-;** the todays top ten hi table saves fine though... **
-sengekis:
-sengekisj:
-@:maincpu,program,60b1de8,78,53,00
-@:maincpu,program,60b1e47,1,01,01
+;@s:taito/halleys.cpp
+halleysc87:
+@:maincpu,program,fc5a,23,02,54
+@:maincpu,program,fc3f,3,02,00
-puzzloopa:
-@:maincpu,program,609c4b8,41,00,31
-@:maincpu,program,609c5e0,41,00,30
+;*******(halley's comet)(By Firebrand)
+halleysc:
+halleyscj:
+halleyscja:
+@:maincpu,program,fc3c,23,02,54
+@:maincpu,program,fc21,3,02,00
-;vblokbrk:******vs block breaker (asia)
-sarukani:
-vblokbrk:
-vblokbrka:
-@:maincpu,program,6027cb8,80,00,2e
+halleyscjp:
+@:maincpu,program,fc3c,23,02,2e
+@:maincpu,program,fc21,3,02,00
-;******(puzz loop (europe))
-puzzloop:
-puzzloope:
-@:maincpu,program,60985ac,41,00,31
-@:maincpu,program,60986d4,41,00,30
+;*******ben bero beh (japan)
+benberob:
+@:maincpu,program,fa4d,3,00,96
-;@s:suprridr.cpp
-;******super rider
-suprridr:
-@:maincpu,program,80ca,3,00,00
-@:maincpu,program,8a21,1,24,24
-@:maincpu,program,8a01,1,24,24
-@:maincpu,program,89e1,1,24,24
-@:maincpu,program,89c1,1,24,24
-@:maincpu,program,89a1,1,24,24
-@:maincpu,program,8981,1,00,00
+;@s:taito/jollyjgr.cpp
+fspiderb:
+@:maincpu,program,8066,45,00,19
-;@s:surpratk.cpp
-;******Surprise Attack (Asia ver. L)
-suratk:
-suratka:
-suratkj:
-@:maincpu,program,b00,5a,11,31
-@:maincpu,program,5981,3,10,00
-@:maincpu,program,609e,6,01,00
+;jollyjgr:******Jolly Jogger
+;** hiscore updates when you start your first game **
+jollyjgr:
+@:maincpu,program,85c8,3,00,00
+@:maincpu,program,85c9,1,50,50
-;@s:system1.cpp
+;@s:taito/kikikai.cpp
-;wboysys2:******Wonder Boy (system 2)
-wboysys2:
-wboysys2a:
-@:maincpu,program,c100,140,20,20
-@:maincpu,program,e056,f,01,10
+;knightb:******Knight Boy
+kikikai:
+knightb:
+@:maincpu,program,e2fc,23,00,55
-;(toki no senshi - chrono soldier) (by GeoMan)
-tokisens:
-tokisensa:
-@:maincpu,program,c04d,54,00,20
-@:maincpu,program,c0a1,4,00,00
+kicknrun:
+kicknrunu:
+mexico86:
+mexico86a:
+@:maincpu,program,ee18,2d,17,49
-;wboyu:*note* only 1/2 works...
-wbdeluxe:
-wboy:
-wboy2:
-wboy2u:
-wboy3:
-wboy4:
-wboy5:
-wboy6:
-wboyo:
-wboyu:
-@:maincpu,program,c100,140,20,20
-@:maincpu,program,e856,f,01,10
+;@s:taito/lkage.cpp
+;lkageoo:******The Legend of Kage (oldest)
+lkage:
+lkagea:
+lkageb:
+lkagebl1:
+lkagebl2:
+lkagebl3:
+lkagebl4:
+@:maincpu,program,e25f,85,00,52
+@:maincpu,program,e188,3,00,00
-;flickys2:Flicky (128k Version, System 2, not encrypted)
-;flickys1:Flicky (64k Version, System 1, 315-5051, set 2)
-flicky:
-flickya:
-flickyo:
-flickys1:
-flickys2:
-flickyup:
-@:maincpu,program,e700,31,00,41
-@:maincpu,program,c0d5,3,00,00
+;bygone:***** GAME NOT 100% working yet !! *****
+bygone:
+@:maincpu,program,e0c0,3c,00,47
+@:maincpu,program,e076,6,00,00
+@:maincpu,program,e002,1,0a,0a
+@:maincpu,program,f42d,6,3c,3c
-myherok:
-sscandal:
-@:maincpu,program,d300,a0,00,20
-@:maincpu,program,c017,3,00,00
+;@s:taito/lsasquad.cpp
-;4dwarrio:[Special thanks to Cananas for enhancing this entry]
-4dwarrio:
-@:maincpu,program,d300,a0,00,20
-@:maincpu,program,c017,3,00,02
+storming:
+storminga:
+@:maincpu,program,a814,3,00,01
+@:maincpu,program,a46c,70,69,00
+@:maincpu,program,d754,d,20,30
-hvymetal:
-@:maincpu,program,d300,38,00,59
-@:maincpu,program,c00c,3,00,00
+;******Daikaiju no Gyakushu
+daikaiju:
+@:maincpu,program,bf00,a0,00,33
+@:maincpu,program,a007,3,00,05
+@:maincpu,program,a027,1,23,23
+@:maincpu,program,d798,b,30,30
-choplift:
-chopliftbl:
-chopliftu:
-@:maincpu,program,ef00,31,00,4b
-@:maincpu,program,ef71,4,00,00
+;(land sea air squad / riku kai kuu saizensen)
+lsasquad:
+@:maincpu,program,a814,3,00,01
+@:maincpu,program,a46c,70,68,00
+@:maincpu,program,d754,d,20,30
-wbml:
-wbmlbg:
-wbmlbge:
-wbmljb:
-wbmljo:
-wbmlvc:
-@:maincpu,program,c101,1,24,24
-@:maincpu,program,072f,1,03,03
-@:maincpu,program,c179,1,00,00
-@:maincpu,program,c17a,1,00,00
-@:maincpu,program,c17b,1,00,00
-@:maincpu,program,c17c,1,00,00
-@:maincpu,program,c17d,1,03,03
-@:maincpu,program,c17e,1,00,00
-@:maincpu,program,c17f,1,00,00
-@:maincpu,program,c180,1,00,00
+;@s:taito/missb2.cpp
+;(miss bubble 2)
+missb2:
+@:maincpu,program,e654,23,00,48
+@:maincpu,program,e64c,3,00,00
+@:maincpu,program,e64d,1,30,30
-starjacks:
-@:maincpu,program,c102,23,00,52
-@:maincpu,program,c0fb,4,00,00
+
+bublpong:
+@:maincpu,program,e64c,32,00,13
+@:maincpu,program,e64d,1,30,30
+@:maincpu,program,e5df,1,00,00
+@:maincpu,program,e5e0,1,00,00
+@:maincpu,program,e5e4,1,00,00
+@:maincpu,program,e5e6,1,00,00
+@:maincpu,program,e5e1,1,00,00
+@:maincpu,program,e5e2,1,00,00
+@:maincpu,program,e5e3,1,00,00
+@:maincpu,program,e5e7,1,00,00
+@:maincpu,program,e5e8,1,00,00
+@:maincpu,program,e5e9,1,00,00
+@:maincpu,program,e5ea,1,00,00
+@:maincpu,program,e5eb,1,00,00
+@:maincpu,program,e5f6,1,00,00
+@:maincpu,program,e5f7,1,00,00
+@:maincpu,program,e5ee,1,00,00
+@:maincpu,program,e5ef,1,00,00
+@:maincpu,program,e5f0,1,00,00
+@:maincpu,program,e5ec,1,00,00
+@:maincpu,program,e5ed,1,00,00
+@:maincpu,program,e5f3,1,00,00
+@:maincpu,program,e5f4,1,00,00
+@:maincpu,program,e5d9,1,00,00
+@:maincpu,program,e5da,1,00,00
+@:maincpu,program,f457,1,00,00
+@:maincpu,program,f458,1,00,00
+@:maincpu,program,e601,1,00,00
+@:maincpu,program,e602,1,00,00
+@:maincpu,program,e600,1,00,00
+@:maincpu,program,e5ff,1,00,00
+@:maincpu,program,e5fd,1,00,00
+@:maincpu,program,e5fc,1,00,00
+@:maincpu,program,e5fb,1,00,00
+@:maincpu,program,e5fa,1,00,00
+@:maincpu,program,e5f9,1,00,00
+@:maincpu,program,e5f8,1,00,00
+@:maincpu,program,e5fe,1,00,00
+@:maincpu,program,e604,1,00,00
+@:maincpu,program,e605,1,00,00
+@:maincpu,program,e606,1,00,00
+@:maincpu,program,e607,1,00,00
+@:maincpu,program,e609,1,00,00
+@:maincpu,program,e60a,1,00,00
+@:maincpu,program,e611,1,00,00
+@:maincpu,program,e60b,2,00,00
-;(star jacker (sega)) and clones (by GeoMan)
-starjack:
-@:maincpu,program,c0e1,1e,00,52
-@:maincpu,program,c0db,3,00,03
+;@s:taito/msisaac.cpp
+;*******metal soldier issac II(By Firebrand)
+msisaac:
+@:maincpu,program,e4a5,50,02,4d
-;******(up`n down (not encrypted))
-upndownu:
-@:maincpu,program,c93f,3f,01,00
-@:maincpu,program,c97b,1,01,01
+;@s:taito/ninjaw.cpp
-;(bullfight)
-bullfgt:
-swat:
-thetogyu:
-@:maincpu,program,d300,3c,00,49
-@:maincpu,program,c014,3,00,02
+;(the ninja warriors (world))
+ninjaw:
+ninjaw1:
+ninjawj:
+ninjawu:
+@:maincpu,program,c4645,3f8,01,47
-;(regulus (new ver))
-regulus:
-reguluso:
-regulusu:
-@:maincpu,program,ce40,1e,41,4a
-@:maincpu,program,c0e1,3,00,00
-@:maincpu,program,cd01,1e,00,00
+darius2:
+@:maincpu,program,c216e,44b,00,20
-;******gardia
-;(rafflesia) (by GeoMan)
-gardia:
-gardiab:
-raflesia:
-@:maincpu,program,d300,50,00,4a
-@:maincpu,program,c017,3,00,02
+;@s:taito/nycaptor.cpp
+;******Bronx
+bronx:
+@:maincpu,program,e1da,28,0,41
-;(noboranka (japan)) (by GeoMan)
-nob:
-nobb:
-@:maincpu,program,d300,3c,00,2e
-@:maincpu,program,f000,3,00,00
+;********(n.y. captor)
+;** hiscore is broken in this game, when h/score is beaten you cannot put your name in **
+;** the scores save ok though... **
+nycaptor:
+@:maincpu,program,e1da,28,00,4e
+@:maincpu,program,e188,3,00,00
-myhero:
-@:maincpu,program,d300,3c,00,49
-@:maincpu,program,c017,3,00,00
+;@s:taito/opwolf.cpp
-;(wonder boy in monster land (bootleg)**fix**))
-wbmlb:
-@:maincpu,program,c179,8,00,00
-@:maincpu,program,c17d,1,03,03
+opwolf:
+opwolfa:
+opwolfb:
+opwolfj:
+opwolfjsc:
+opwolfu:
+@:maincpu,program,100a42,75,00,54
+@:maincpu,program,100e28,3b,00,01
-upndown:
-@:maincpu,program,c93f,3f,01,00
+;@s:taito/othunder.cpp
+;(operation thunderbolt)
+;othunderj:******Operation Thunderbolt (Japan)
+othunder:
+othunderj:
+othunderjsc:
+othundero:
+othunderu:
+othunderua:
+@:maincpu,program,839ca,438,4e,00
+@:maincpu,program,83dd9,1,01,01
-teddybb:
-teddybbo:
-teddybbobl:
-@:maincpu,program,c578,3,00,00
-@:maincpu,program,ef03,31,00,49
+;@s:taito/pitnrun.cpp
-;ssanchan:******sanrin san chan (japan)
-spatter:
-ssanchan:
-@:maincpu,program,ef00,31,00,52
-@:maincpu,program,c00b,3,00,00
-@:maincpu,program,c00c,1,10,10
+;*******pit & run
+;pitnruna:******Pit & Run (set 2)
+pitnrun:
+pitnruna:
+@:maincpu,program,8710,1e,00,01
+@:maincpu,program,80aa,3,00,01
+@:maincpu,program,8a21,1,01,01
+@:maincpu,program,8a01,1,00,00
+@:maincpu,program,89e1,1,00,00
+@:maincpu,program,89c1,1,00,00
+@:maincpu,program,89a1,1,00,00
+@:maincpu,program,8981,1,27,27
-;(water match) (by GeoMan)
-wmatch:
-@:maincpu,program,c000,3c,84,02
-@:maincpu,program,c086,3,00,02
-@:maincpu,program,d300,15,00,01
-@:maincpu,program,d380,15,41,49
-@:maincpu,program,d400,2d0,84,4d
+;@s:taito/rastan.cpp
+;rastan:[Special thanks to Wob for enhancing this entry]
+rastan:
+rastana:
+rastanb:
+rastanu:
+rastanua:
+rastanub:
+rastsaga:
+rastsagaa:
+rastsagaabl:
+rastsagab:
+@:maincpu,program,10c140,26,31,4e
+@:maincpu,program,d000b2,1,00,00
+@:maincpu,program,d000b5,1,2b,2b
+@:maincpu,program,d000ba,1,00,00
+@:maincpu,program,d000bd,1,2d,2d
+@:maincpu,program,d000c2,1,00,00
+@:maincpu,program,d000c5,1,31,31
+@:maincpu,program,d000ca,1,00,00
+@:maincpu,program,d000cd,1,2c,2c
+@:maincpu,program,d000d2,1,01,01
+@:maincpu,program,d000d5,1,2a,2a
+@:maincpu,program,d000da,1,01,01
+@:maincpu,program,d000dd,1,2a,2a
-blockgal:
-blockgalb:
-@:maincpu,program,c062,3,00,01
+;@s:taito/rbisland.cpp
-;(mister viking) and clones (by GeoMan)
-mrviking:
-mrvikingj:
-@:maincpu,program,d42c,15,59,47
-@:maincpu,program,d300,15,00,01
-@:maincpu,program,c086,3,00,02
+rbisland:
+rbislando:
+@:maincpu,program,10d0cc,32,00,32
+@:maincpu,program,10e1f2,04,00,00
-;(i'm sorry (us)) and clones (by GeoMan)
-imsorry:
-imsorryj:
-@:maincpu,program,c017,3,00,02
-@:maincpu,program,d300,a0,00,20
+jumping:
+jumpinga:
+@:maincpu,program,10d0cc,32,00,41
+@:maincpu,program,10e1f2,04,00,00
-ninja:
-nprinces:
-nprincesb:
-nprinceso:
-nprincesu:
-seganinj:
-seganinju:
-@:maincpu,program,ef00,31,00,43
+rbislande:
+@:maincpu,program,10d0d2,32,00,33
+@:maincpu,program,10e1b6,04,00,00
-;******ufo senshi yohko chan
-;ufosensib:******Ufo Senshi Yohko Chan (not encrypted)
-ufosensi:
-ufosensib:
-@:maincpu,program,c800,62,11,41
+;@s:taito/retofinv.cpp
+
+retofinv:
+retofinvb1:
+retofinvb2:
+retofinvb3:
+@:maincpu,program,9980,23,00,54
+@:maincpu,program,990f,3,00,00
-;pitfall2a:******Pitfall II (315-5093, Flicky Conversion)
-pitfall2:
-pitfall2a:
-pitfall2u:
-@:maincpu,program,d300,38,00,41
-@:maincpu,program,c000,04,00,00
+;@s:taito/rollrace.cpp
+fightrol:
+rollace:
+@:maincpu,program,c060,3e,00,11
+@:maincpu,program,c026,3,00,00
-;******brain
-brain:
-@:maincpu,program,d300,3c,00,49
-@:maincpu,program,c017,3,00,05
+;@s:taito/sbowling.cpp
-;@s:system16.cpp
+;******strike bowling(By Firebrand)
+;****no hiscore list per se but this will save the top 5 results permanantly
+;****if you like if not, you can disable this
+sbowling:
+@:maincpu,program,fe61,f,00,00
-mwalkbl:
-@:maincpu,program,fffc00,50,00,4a
-@:maincpu,program,ffe020,4,00,00
+;@s:taito/scyclone.cpp
-;altbeastj3:******altered beast (japan, fd1094 317-0068)
-;altbeast4:******altered beast (set 4, mc-8123b 317-0066)
-;altbeast5:******altered beast (set 5, 8751 317-0076)
-;altbeastj:******altered beast (set 6, japan, 8751 317-0077)
-;altbeastj1:******altered beast (set 1, japan, fd1094 317-0065)
-altbeast:
-altbeast2:
-altbeast4:
-altbeast5:
-altbeast6:
-altbeastbl:
-altbeastj:
-altbeastj1:
-altbeastj3:
-mutantwarr:
-@:maincpu,program,fffc00,74,00,33
-@:maincpu,program,fff010,4,00,00
+scyclone:
+@:maincpu,program,41dd,03,00,00
-tetrisbl:
-@:maincpu,program,ffe800,64,45,08
+;@s:taito/spdheat.cpp
+;** hiscore not working, this is just for reference **
+spdheat:
+@:maincpu,program,80d8e,327,00,2e
-;(wonder boy iii - monster lair (set 1))
-wb3:
-wb31:
-wb32:
-wb33:
-wb34:
-wb35:
-wb3bbl:
-@:maincpu,program,ffc8b8,28,4c,00
-@:maincpu,program,ffc8de,1,30,30
+;@s:taito/superchs.cpp
-;@s:tagteam.cpp
+superchsp2:
+@:maincpu,program,1027fa,48,00,47
-;(big pro wrestling!,the) (by GeoMan)
-bigprowr:
-tagteam:
-@:maincpu,program,406,12c,00,19
-@:maincpu,program,32,3,00,05
+;(super chase - criminal termination (us))
+superchs:
+superchsj:
+superchsu:
+@:maincpu,program,102815,49,00,47
-;@s:tail2nos.cpp
-sformula:
-sformulaa:
-tail2nos:
-@:maincpu,program,ff89c4,130,0a,00
-@:maincpu,program,ff8b05,f,40,00
+;@s:taito/superqix.cpp
+
+;*******prebillian(By Firebrand)(Hiscore display will not change. It is always 50,000. Please check)
+pbillian:
+pbillianb:
+@:maincpu,program,f26b,23,00,45
+@:maincpu,program,f222,3,00,00
+
+
+sqix:
+sqixb1:
+sqixb2:
+sqixr0:
+sqixr1:
+sqixu:
+@:maincpu,program,f4c0,28,00,03
+@:maincpu,program,f8f1,4,75,00
+
+
+;********perestroika girls (japan)
+perestro:
+perestrof:
+@:maincpu,program,f4c0,28,00,03
+@:maincpu,program,f8f1,4,00,00
+
+
+;@s:taito/taito_b.cpp
+
+ryujin:
+@:maincpu,program,403e3c,63,54,01
+@:maincpu,program,403f20,4,00,00
-;@s:taito_b.cpp
+;**** bubble bust - hiscore table must be displayed once before you start a game ****
+bublbust:
+@:maincpu,program,907012,31,00,52
+
+
+;(ryu jin (japan))
+ryujina:
+@:maincpu,program,103e3c,63,54,01
+@:maincpu,program,103f20,4,00,00
+
+
+ashura:
+@:maincpu,program,6019ec,64,00,19
+@:maincpu,program,60129b,3,00,00
+
+
+ashuraj:
+@:maincpu,program,6019f5,63,00,19
+@:maincpu,program,6012a3,3,00,00
+
;(sonic blast man (japan)) (by GeoMan)
sbm:
@@ -15078,19 +16081,6 @@ crimecu:
@:maincpu,program,a0e005,4af,54,00
-;(ryu jin (japan))
-ryujin:
-@:maincpu,program,103e3c,63,54,01
-@:maincpu,program,103f20,4,00,00
-
-
-ashura:
-ashuraj:
-@:maincpu,program,6019f4,64,00,19
-@:maincpu,program,6012a2,2,00,00
-@:maincpu,program,6012a4,2,10,00
-
-
;masterwj:******Master of Weapon (Japan)
masterw:
masterwj:
@@ -15164,14 +16154,29 @@ spacedxj:
@:maincpu,program,90ff9b,1,37,37
-;@s:taito_f2.cpp
+;@s:taito/taito_f2.cpp
+
+majest12j:
+majest12ua:
+majest12ub:
+ssib:
+@:maincpu,program,205812,31,00,5a
+@:maincpu,program,203606,4,00,00
+
+
+majest12u:
+ssi:
+ssia:
+@:maincpu,program,205814,31,00,5a
+@:maincpu,program,203606,4,00,00
+
pulirulaa:
@:maincpu,program,30f9de,f9,00,42
footchmp:
-hthero:
+htheroj:
@:maincpu,program,10a920,50,0a,00
@@ -15179,11 +16184,6 @@ euroch92:
@:maincpu,program,10a99c,50,0a,00
-majest12j:
-@:maincpu,program,205812,31,00,5a
-@:maincpu,program,203606,4,00,00
-
-
;(pulirula (world))
pulirula:
pulirulaj:
@@ -15227,12 +16227,6 @@ solfigtr:
@:maincpu,program,102b80,49,00,24
-ssi:
-ssia:
-@:maincpu,program,205814,31,00,5a
-@:maincpu,program,203606,4,00,00
-
-
;ninjaku:******The Ninja Kids (US)
;ninjakj:******The Ninja Kids (Japan)
ninjak:
@@ -15295,7 +16289,21 @@ megablstu:
@:maincpu,program,2043eb,1,08,08
-;@s:taito_f3.cpp
+;@s:taito/taito_f3.cpp
+
+puchicar:
+puchicarj:
+puchicaru:
+@:maincpu,program,401c7e,348,00,04
+
+
+;(cleopatras fortune (japan))
+;** you must wait untill the hiscore table has displayed in attract mode before **
+;** starting a game, for the save to work **
+cleopatr:
+cleopatro:
+@:maincpu,program,412de4,78,00,4a
+
gunlocko:
@:maincpu,program,40eff0,40,41,00
@@ -15394,13 +16402,6 @@ pbobble2x:
@:maincpu,program,40dbd8,1,41,41
-;(cleopatras fortune (japan))
-;** you must wait untill the hiscore table has displayed in attract mode before **
-;** starting a game, for the save to work **
-cleopatr:
-@:maincpu,program,412de4,78,00,4a
-
-
;(puzzle bobble 4 (world))
;Puzzle Bobble 4 clones
pbobble4:
@@ -15426,11 +16427,6 @@ spcinv95u:
@:maincpu,program,410b82,4,00,00
-puchicar:
-puchicarj:
-@:maincpu,program,401c7e,348,00,04
-
-
pbobble2j:
pbobble2o:
pbobble2u:
@@ -15514,7 +16510,7 @@ popnpopu:
@:maincpu,program,40a668,d2,00,ba
-;@s:taito_h.cpp
+;@s:taito/taito_h.cpp
syvalionp:
@:maincpu,program,102512,32,00,43
@@ -15544,7 +16540,7 @@ syvalion:
@:maincpu,program,104266,4,00,00
-;@s:taito_l.cpp
+;@s:taito/taito_l.cpp
palamed:
palamedj:
@@ -15611,6 +16607,7 @@ kurikint:
kurikinta:
kurikintj:
kurikintu:
+kurikintw:
@:maincpu,program,8aa3,a0,00,2e
@@ -15628,7 +16625,7 @@ plottingu:
@:maincpu,program,82b0,30,00,13
-;@s:taito_x.cpp
+;@s:taito/taito_x.cpp
;*******last striker / kyuukyoku no striker
kyustrkr:
@@ -15665,7 +16662,7 @@ twinhawku:
@:maincpu,program,f00132,40,00,aa
-;@s:taito_z.cpp
+;@s:taito/taito_z.cpp
dblaxleu:
@:maincpu,program,202b41,63,13,00
@@ -15759,32 +16756,34 @@ contcircua:
@:maincpu,program,826ef,1,52,52
-;@s:taitogn.cpp
-
-spuzbobl:
-@:maincpu,program,28bf08,10d,20,01
-
-
-;@s:taitojc.cpp
+;@s:taito/taitojc.cpp
landgear:
@:maincpu,program,8036f8c,ea,01,4a
-;@s:taitosj.cpp
+;@s:taito/taitosj.cpp
-; Space Cruiser, taitosjc (thanks to thomas busse)
-spacecr:
-@:maincpu,program,818a,3,00,00
-@:maincpu,program,8200,7e,00,00
+tinstar:
+tinstara:
+@:maincpu,program,835c,1,00,00
+@:maincpu,program,835d,1,00,00
+@:maincpu,program,835e,1,01,01
+@delay=6
elevator:
-elevator4:
+elevatora:
elevatorb:
@:maincpu,program,8350,3,00,01
+; Space Cruiser, taitosjc (thanks to thomas busse)
+spacecr:
+@:maincpu,program,818a,3,00,00
+@:maincpu,program,8200,7e,00,00
+
+
;(water ski) (by GeoMan)
waterski:
@:maincpu,program,835b,3,0,0
@@ -15873,42 +16872,639 @@ piratpet:
@:maincpu,program,816e,1,00,00
-tinstar:
-tinstar2:
-@:maincpu,program,835d,1,00,00
-@:maincpu,program,835e,1,01,01
-@:maincpu,program,835f,1,00,00
+;@s:taito/tnzs.cpp
+
+insectx:
+insectxbl:
+insectxj:
+@:maincpu,program,c600,50,00,00
+@:maincpu,program,c6ea,3,00,21
-;@s:tankbatt.cpp
+chukatai:
+chukataij:
+chukataija:
+chukataiu:
+@:maincpu,program,ed8c,46,00,42
+@:maincpu,program,e210,3,00,75
-tankbatt:
-tankbattb:
-@:maincpu,program,00c3,02,00,00
+;kagekih:******Kageki (World?, hack)
+kageki:
+kagekih:
+kagekij:
+kagekiu:
+@:maincpu,program,e057,a,05,50
+@:maincpu,program,e061,f,87,8c
-;@s:tankbust.cpp
-;(tank busters) (by GeoMan)
-tankbust:
-@:maincpu,program,f602,50,00,10
+tnzs:
+tnzsj:
+tnzsjo:
+tnzsoa:
+tnzsuo:
+@:maincpu,program,e68d,23,00,55
-;@s:taotaido.cpp
+;jpopnics:******Jumping Pop (Nics, Korean bootleg of Plump Pop)
+jpopnics:
+@:maincpu,program,c625,27,00,4b
+@:maincpu,program,e471,3,00,00
-taotaido3:
-@:maincpu,program,fe91d4,4e,01,02
+tnzso:
+tnzsop:
+@:maincpu,program,ec0a,23,00,55
-taotaidoa:
-@:maincpu,program,fe9340,4e,01,02
+;arknoid2:** you must let the hiscore table display first before starting a game **
+arknoid2:
+arknoid2b:
+arknoid2j:
+arknoid2u:
+@:maincpu,program,ec81,27,01,4e
+@:maincpu,program,e3a8,03,01,00
+
+
+plumppop:
+@:maincpu,program,c625,27,00,52
+@:maincpu,program,e471,3,00,00
+
+
+drtoppel:
+drtoppelj:
+drtoppelu:
+@:maincpu,program,e057,23,00,25
+@:maincpu,program,e023,3,00,00
+
+
+;extrmatn:[Special thanks to Cananas for enhancing this entry]
+;extrmatnj:******Extermination (Japan)
+extrmatn:
+extrmatnj:
+extrmatnu:
+@:maincpu,program,e8a5,28,00,55
+@:maincpu,program,e888,01,00,00
+@:maincpu,program,e887,01,49,49
+@:maincpu,program,e886,01,00,00
+
+
+;@s:taito/topspeed.cpp
+
+fullthrl:
+topspeed:
+topspeedu:
+@:maincpu,program,400080,6b,00,99
+@:maincpu,program,400081,1,45,45
+
+
+;@s:taito/tsamurai.cpp
+
+alphaxz:
+the26thz:
+@:maincpu,program,c26e,7b,00,2d
+@:maincpu,program,c220,3,00,00
+@:maincpu,program,e241,1,20,20
+@:maincpu,program,e221,1,20,20
+@:maincpu,program,e201,1,39,39
+@:maincpu,program,e1e1,1,30,30
+@:maincpu,program,e1c1,1,30,30
+@:maincpu,program,e1a1,1,30,30
+@:maincpu,program,e181,1,30,30
+
+
+;tsamuraih:******Samurai Nihon-ichi (set 3, harder)
+ladymstr:
+ladymstra:
+nunchaku:
+tsamurai:
+tsamuraia:
+tsamuraih:
+yamagchi:
+@:maincpu,program,c060,1e,00,00
+@:maincpu,program,c080,1e,11,11
+@:maincpu,program,c026,3,00,00
+
+
+m660:
+m660b:
+m660j:
+@:maincpu,program,c270,7b,00,2d
+@:maincpu,program,c220,3,00,00
+@:maincpu,program,e241,1,20,20
+@:maincpu,program,e221,1,20,20
+@:maincpu,program,e201,1,39,39
+@:maincpu,program,e1e1,1,30,30
+@:maincpu,program,e1c1,1,30,30
+@:maincpu,program,e1a1,1,30,30
+@:maincpu,program,e181,1,30,30
+
+
+;vsgongf:******vs. gong fight
+ringfgt:
+ringfgta:
+vsgongf:
+@:maincpu,program,c026,3,00,00
+@:maincpu,program,c060,3e,00,11
+@:maincpu,program,c027,1,20,20
+
+
+;@s:taito/undrfire.cpp
+
+;(under fire (world))
+undrfire:
+@:maincpu,program,20dfaf,75,08,53
+
+
+;@s:taito/volfied.cpp
+
+;(volified (japan))
+;** top score on top centre of screen does not update untill **
+;** after first demo game in attract mode **
+volfied:
+volfiedj:
+volfiedjo:
+volfiedo:
+volfiedu:
+volfieduo:
+@:maincpu,program,100200,26,00,50
+@:maincpu,program,100201,1,50,50
+
+
+;@s:taito/warriorb.cpp
+
+darius2d:
+darius2do:
+sagaia:
+@:maincpu,program,1010fa,44b,00,20
+
+
+;(warrior blade (japan))
+warriorb:
+@:maincpu,program,202a38,ef,50,00
+@:maincpu,program,202b25,1,01,01
+
+
+;@s:taito/wgp.cpp
+
+;(world grand prix (us & joystick version set 1 japan)
+;** you must wait untill the hiscore table has displayed in attract mode before **
+;** starting a game, for the save to work **
+;** THIS SAVE DOES NOT SAVE THE COURSE RECORDS **
+wgp:
+wgpu:
+@:maincpu,program,10bbd9,c5,01,02
+@:maincpu,program,10bc9b,1,44,44
+
+
+wgpjoy:
+@:maincpu,program,10bbdd,c5,01,02
+@:maincpu,program,10bc9f,1,44,44
+
+
+;@s:taito/wyvernf0.cpp
+
+wyvernf0:
+wyvernf0a:
+@:maincpu,program,8800,190,00,26
+
+
+;@s:tatsumi/tatsumi.cpp
+
+bigfight:
+bigfightj:
+@:maincpu,program,22a8,3a,00,2e
+
+
+;@s:tch/kickgoal.cpp
+
+;******action hollywood
+actionhw:
+@:maincpu,program,ff5a2a,28,4a,01
+
+
+;@s:tch/littlerb.cpp
+
+littlerb:
+@:maincpu,program,20202e,9f,11,30
+@:maincpu,program,20203d,1,e8,e8
+
+
+;@s:tch/speedspn.cpp
+
+;********(speed spin)
+speedspn:
+@:maincpu,program,b04c,61,4a,20
+
+
+;@s:tecfri/ambush.cpp
+
+;ambush:******ambush (tecfry)
+;ambushv:******ambush (Volt Elec co-ltd)
+ambush:
+ambushh:
+ambushj:
+ambushv:
+@:maincpu,program,8050,3,00,00
+@:maincpu,program,800f,24,00,3a
+
+
+;@s:tecfri/holeland.cpp
+
+crzrallyrf:
+@:maincpu,program,c000,36,00,41
+
+
+;holeland:******Hole Land (by Jose Juan Iglesias)
+holeland:
+@:maincpu,program,86c7,18,00,11
+@:maincpu,program,86d0,3,00,03
-taotaido:
-@:maincpu,program,fe91e4,4e,14,02
+;(crazy rally)
+;crzrallyg:******Crazy Rally (Gecas license)
+crzrally:
+crzrallya:
+crzrallyg:
+@:maincpu,program,c000,38,00,41
+
+
+;@s:tecfri/sauro.cpp
+
+saurob:
+saurobl:
+@:maincpu,program,e03c,78,00,4f
+
+
+;(sauro) (by GeoMan)
+sauro:
+sauroa:
+saurop:
+saurorr:
+seawolft:
+@:maincpu,program,e000,b4,00,4f
+
+
+;*******tricky doc(By Firebrand)
+trckydoc:
+@:maincpu,program,e05a,5a,2d,46
+
+
+;trckydoca:******Tricky Doc (Set 2)
+trckydoca:
+@:maincpu,program,e03c,78,10,46
+
+
+;@s:tecfri/speedbal.cpp
+
+;(speed ball) (by GeoMan)
+speedbal:
+speedbala:
+@:maincpu,program,f800,46,20,50
+
+
+;@s:technos/battlane.cpp
+
+battlane:
+battlane2:
+battlane3:
+@:maincpu,program,0ca5,28,00,1a
+@:maincpu,program,005f,3,00,00
+
+
+;@s:technos/blockout.cpp
+
+blockout2:
+blockout3:
+blockoutj:
+@:maincpu,program,1d5fa2,78,32,05
+@:maincpu,program,1d5ece,4,00,00
-;@s:tbowl.cpp
+
+blockout:
+@:maincpu,program,1d5fa4,78,32,05
+@:maincpu,program,1d5ece,4,00,00
+
+
+;agress:*
+;agressb:******Agress (English bootleg)
+agress:
+agressb:
+@:maincpu,program,1d5c0a,4,00,00
+@:maincpu,program,1d5c81,1,1d,1d
+
+
+;@s:technos/bogeyman.cpp
+
+;(bogey manor) (by GeoMan)
+bogeyman:
+@:maincpu,program,0021,3,00,01
+@:maincpu,program,13e0,29,00,1e
+@:maincpu,program,1409,27,0f,00
+
+
+;@s:technos/chinagat.cpp
+
+;(china gate (us))
+chinagat:
+saiyugou:
+saiyugoub1:
+saiyugoub2:
+@:maincpu,program,c83,23,00,21
+
+
+;@s:technos/ddragon.cpp
+
+;Double Dragon 2 clones
+ddragon2:
+ddragon2u:
+@:maincpu,program,0f91,1e,02,23
+@:maincpu,program,0023,3,02,00
+
+
+;ddragonb2:******Double Dragon (bootleg)
+ddragon:
+ddragonbl:
+ddragonbl2:
+ddragonbla:
+ddragonj:
+ddragonja:
+ddragonu:
+ddragonua:
+ddragonub:
+@:maincpu,program,0e73,1e,02,2c
+@:maincpu,program,0023,3,02,00
+
+
+;tstrike:******Thunder Strike (Newer)
+;tstrikea:******Thunder Strike (older)
+tstrike:
+tstrikea:
+@:maincpu,program,cf5,55,42,30
+
+
+;(toffy) (by GeoMan)
+toffy:
+@:maincpu,program,913,a0,20,ff
+
+
+;*******dangerous dungeons
+ddungeon:
+ddungeone:
+@:maincpu,program,915,9c,4b,30
+
+
+;*******dark tower
+darktowr:
+@:maincpu,program,a82,9c,4b,30
+
+
+;(super toffy) (by GeoMan)
+stoffy:
+stoffyu:
+@:maincpu,program,833,e0,00,f2
+@:maincpu,program,913,f0,20,00
+
+
+;@s:technos/ddragon3.cpp
+
+;(wwf wrestlefest (us))
+;wwfwfestj:******www wrestlefest (japan)
+;wwfwfestb:******www wrestlefest (us bootleg)
+;wwfwfesta:******www wrestlefest (us tecmo)
+wwfwfest:
+wwfwfestj:
+wwfwfestu:
+wwfwfestu1:
+wwfwfestub:
+@:maincpu,program,1c00c2,84,08,01
+
+
+;@s:technos/dogfgt.cpp
+
+;dogfgt:******acrobatic dog-fight
+;dogfgtj:******acrobatic dog-fight (japan)
+dogfgt:
+dogfgtj:
+dogfgtu:
+@:maincpu,program,607,4f,00,0b
+@:maincpu,program,609,1,01,01
+
+
+;@s:technos/matmania.cpp
+
+maniach:
+maniach2:
+@:maincpu,program,052b,3c,00,c6
+@:maincpu,program,0028,3,00,00
+
+
+excthour:
+matmania:
+@:maincpu,program,0700,50,00,b0
+@:maincpu,program,0028,3,00,00
+
+
+;@s:technos/mystston.cpp
+
+;(mysterious stones) (by GeoMan)
+mystston:
+myststono:
+myststonoi:
+@:maincpu,program,0308,37,00,0c
+@:maincpu,program,001a,5,00,00
+@:maincpu,program,1033,8,40,41
+
+
+;@s:technos/renegade.cpp
+
+renegade:
+renegadeb:
+@:maincpu,program,101b,28,00,4c
+@:maincpu,program,2e,3,00,05
+
+
+;(nekketsu kouha kunio-kun (japan bootleg))
+kuniokun:
+kuniokunb:
+@:maincpu,program,2e,3,00,05
+@:maincpu,program,102c,28,47,00
+
+
+;@s:technos/shadfrce.cpp
+
+;(shadow force (us) (by GeoMan)
+shadfrce:
+shadfrcej:
+@:maincpu,program,1f002a,2,00,05
+@:maincpu,program,1f002c,26,00,00
+@:maincpu,program,1f0022,4,00,00
+
+
+;@s:technos/spdodgeb.cpp
+
+nkdodge:
+nkdodgeb:
+spdodgeb:
+@:maincpu,program,83,3,00,00
+
+
+;@s:technos/ssozumo.cpp
+
+;(syusse oozumou (japan)) (by GeoMan)
+ssozumo:
+@:maincpu,program,24,3,0,0
+@:maincpu,program,714,74,42,40
+
+
+;@s:technos/tagteam.cpp
+
+;(big pro wrestling!,the) (by GeoMan)
+bigprowr:
+tagteam:
+@:maincpu,program,406,12c,00,19
+@:maincpu,program,32,3,00,05
+
+
+;@s:technos/xain.cpp
+
+;(xain`d sleena)(fix)
+solarwar:
+solrwarr:
+xsleena:
+xsleenab:
+xsleenaj:
+@:maincpu,program,33,3,00,00
+@:maincpu,program,1bc7,3c,00,2c
+
+
+;@s:tecmo/bombjack.cpp
+
+;******calorie kun vs moguranian
+;calorieb:******calorie kun vs moguranian (bootleg)
+calorie:
+calorieb:
+@:maincpu,program,cd11,78,00,49
+@:maincpu,program,c418,3,00,01
+
+
+bombjack:
+bombjack2:
+bombjackt:
+@:maincpu,program,905f,1,30,30
+@:maincpu,program,907f,1,30,30
+@:maincpu,program,909f,1,30,30
+@:maincpu,program,90bf,1,30,30
+@:maincpu,program,90de,3,53,24
+@:maincpu,program,90fe,3,2d,24
+@:maincpu,program,911f,1,00,00
+@:maincpu,program,913f,1,00,00
+@:maincpu,program,80e2,4,00,00
+@:maincpu,program,8100,96,00,ff
+
+
+;@s:tecmo/gaiden.cpp
+
+;fixes thanks to takasaki
+raiga:
+stratof:
+@:maincpu,program,060082,8c,00,20
+@:maincpu,program,060110,4,00,00
+
+
+;(ninja gaiden (world)) clones
+gaiden:
+mastninj:
+ryukendn:
+ryukendna:
+shadoww:
+shadowwa:
+@:maincpu,program,62e34,d0,2e,00
+@:maincpu,program,62e47,1,09,09
+
+
+;(tecmo knight) and clones (by GeoMan)- hiscores update after hiscore table is displayed in attract mode
+tknight:
+wildfang:
+wildfangs:
+@:maincpu,program,609ce,28,00,1a
+
+
+;@s:tecmo/pbaction.cpp
+
+;pbaction3:******Pinball Action (set 3, encrypted?)
+pbaction:
+pbaction2:
+pbaction3:
+pbaction4:
+pbactiont:
+@:maincpu,program,c093,51,07,00
+@:maincpu,program,c12f,27,48,4b
+
+
+;@s:tecmo/senjyo.cpp
+
+;(baluba-louk no densetsu)
+baluba:
+@:maincpu,program,80f6,4,00,00
+@:maincpu,program,80f8,1,03,03
+@:maincpu,program,9261,1,8a,8a
+@:maincpu,program,9241,1,8a,8a
+@:maincpu,program,9221,1,8a,8a
+@:maincpu,program,9201,1,83,83
+@:maincpu,program,91e1,1,80,80
+@:maincpu,program,91c1,1,80,80
+@:maincpu,program,91a1,1,80,80
+@:maincpu,program,9181,1,80,80
+
+
+senjyo:
+@:maincpu,program,8060,3,00,00
+@:maincpu,program,8080,38,00,06
+@:maincpu,program,9261,1,24,24
+@:maincpu,program,9241,1,24,24
+@:maincpu,program,9221,1,24,24
+@:maincpu,program,9201,1,24,24
+@:maincpu,program,91e1,1,24,24
+@:maincpu,program,91c1,1,24,24
+@:maincpu,program,91a1,1,00,00
+@:maincpu,program,9181,1,00,00
+
+
+megaforc:
+megaforcu:
+starforc:
+starforca:
+starforcb:
+starforce:
+@:maincpu,program,8038,70,00,00
+@:maincpu,program,8348,4,00,00
+@:maincpu,program,9261,1,23,23
+@:maincpu,program,9241,1,23,23
+@:maincpu,program,9221,1,23,23
+@:maincpu,program,9201,1,1d,1d
+@:maincpu,program,91e1,1,18,18
+@:maincpu,program,91c1,1,21,21
+@:maincpu,program,91a1,1,18,18
+@:maincpu,program,9181,1,18,18
+
+
+;@s:tecmo/solomon.cpp
+
+solomon:
+solomonj:
+@:maincpu,program,ca4c,5a,50,01
+
+
+;@s:tecmo/spbactn.cpp
+
+;(super pinball action (japan)) (by GeoMan)
+spbactn:
+spbactnj:
+@:maincpu,program,41780,32,00,05
+
+
+;@s:tecmo/tbowl.cpp
;*******tecmo bowl (world? & japan)
tbowl:
@@ -15918,7 +17514,16 @@ tbowlp:
@:maincpu,program,8015,b4,41,01
-;@s:tecmo.cpp
+;@s:tecmo/tecmo.cpp
+
+silkworm:
+silkwormb2:
+silkwormj:
+@:maincpu,program,d262,64,00,10
+@:maincpu,program,c848,18,20,30
+@:maincpu,program,d54e,4,00,00
+@:maincpu,program,d572,4,00,00
+
gemini:
geminib:
@@ -15953,29 +17558,24 @@ rygarj:
@:maincpu,program,d06c,8,1,60
-silkworm:
-silkwormj:
-@:maincpu,program,d262,64,00,10
-@:maincpu,program,c848,18,20,30
-@:maincpu,program,d54e,4,00,00
-@:maincpu,program,d572,4,00,00
-
-
-;@s:tecmo16.cpp
-
-;******riot
-riot:
-@:maincpu,program,101d3c,f0,64,18
-
+;@s:tecmo/tecmo16.cpp
;fstarfrcj:******Final Star Force (Japan)
fstarfrc:
fstarfrcj:
+fstarfrcja:
+fstarfrcw:
@:maincpu,program,101272,80,00,00
@:maincpu,program,1000a9,3,00,a0
-;@s:tehkanwc.cpp
+;******riot
+riot:
+riotw:
+@:maincpu,program,101d3c,f0,64,18
+
+
+;@s:tecmo/tehkanwc.cpp
tehkanwch:
@:maincpu,program,c600,80,03,17
@@ -15991,106 +17591,45 @@ tehkanwcb:
@:maincpu,program,c600,60,03,17
-;@s:tempest.cpp
-
-;** this saves scores 4 - 98 , the nvram file saves scores 1 - 3 **
-;tempest:******tempest (rev 3) *
-;tempest1:******tempest (rev 1) *
-;tempest2:******tempest (rev 2) *
-;temptube:******tempest tubes *
-;tempest3:******tempest (rev ?) *
-tempest:
-tempest1:
-tempest2:
-tempest3:
-temptube:
-@:maincpu,program,1d,1,03,03
-@:maincpu,program,605,11a,14,00
-
-
-;@s:terracre.cpp
-
-;********(soldier girl amazon)
-amatelas:
-amazon:
-amazont:
-@:maincpu,program,40db4,46,00,0e
-@:maincpu,program,40d66,4,00,00
-@:maincpu,program,40d68,1,50,50
-
-
-terracre:
-terracrea:
-terracren:
-terracreo:
-@:maincpu,program,20246,46,00,00
-@:maincpu,program,2028c,4,00,00
-@:maincpu,program,20248,1,50,50
-
-
-;********(kid no hore hore daisakusen)
-boobhack:
-horekid:
-horekidb:
-@:maincpu,program,4025a,28,00,01
-
-
-;@s:tetrisp2.cpp
-
-;(tetris plus 2(JAPAN))
-tetrisp2:
-tetrisp2a:
-tetrisp2j:
-tetrisp2ja:
-@:maincpu,program,10dfb7,b3,01,00
-@:maincpu,program,10e065,1,01,01
-@:maincpu,program,10b0f2,460,03,09
-
-
-;rocknms:******Rock'n MegaSession (Japan, bootleg)
-rocknms:
-@:maincpu,program,1043bd,14d,3d,00
-@:maincpu,program,104507,1,18,18
-
-
-;rockna:******Rock'n Tread 1 (Japan, bootleg)
-;rockn:******Rock'n Tread (Japan)
-rockn:
-rockna:
-@:maincpu,program,104351,3b,3d,06
-@:maincpu,program,1043c9,3b,3d,06
-
-
-;rockn4:******Rock'n 4 (Japan, prototype, bootleg)
-rockn4:
-@:maincpu,program,1043bf,13b,3d,06
-
-
-;rockn3:******Rock'n 3 (Japan, bootleg)
-rockn3:
-@:maincpu,program,1043b1,13b,3d,06
+;@s:tecmo/wc90.cpp
+;********wc90 fixed !! ********
+eurogael:
+twcup90:
+twcup90a:
+twcup90b:
+twcup90b1:
+twcup90b2:
+twcup90ba:
+twcup90bb:
+twcup90c:
+twcup90t:
+@:maincpu,program,800f,1e,00,00
+@:maincpu,program,804d,01,11,11
-;rockn2:******Rock'n Tread 2 (Japan, bootleg)
-rockn2:
-@:maincpu,program,104383,13b,3d,06
+;@s:thepit/thepit.cpp
-;@s:thedeep.cpp
+theportr:
+@:maincpu,program,40fd,3,00,00
+@:maincpu,program,9201,1,24,24
+@:maincpu,program,91e1,1,24,24
+@:maincpu,program,91c1,1,24,24
+@:maincpu,program,91a1,1,24,24
+@:maincpu,program,9181,1,00,00
-;*******the deep (japan)
-rundeep:
-thedeep:
-@:maincpu,program,c256,3c,04,04
+thehole:
+@:maincpu,program,8283,1a,19,00
+@:maincpu,program,8039,f,19,00
-;@s:thepit.cpp
;porter:******Port Man (bootleg on Moon Cresta hardware)
dockman:
dockmanb:
dockmanc:
porter:
+portera:
portman:
portmanj:
@:maincpu,program,80fd,3,00,00
@@ -16168,99 +17707,7 @@ desertdn:
@:maincpu,program,82c8,1,50,50
-;@s:thief.cpp
-
-;(nato defense) and clones (by GeoMan)
-natodef:
-natodefa:
-@:maincpu,program,8df6,49,30,20
-
-
-sharkatt:
-@:maincpu,program,806e,50,30,20
-
-
-thief:
-@:maincpu,program,8abc,49,30,20
-
-
-;@s:thoop2.cpp
-
-thoop2:
-thoop2a:
-@:maincpu,program,fee1fa,9a,00,44
-
-
-;@s:thunderj.cpp
-
-;*******thunderjaws
-thunderj:
-thunderja:
-@:maincpu,program,3ffd9c,64,00,95
-
-
-;@s:thunderx.cpp
-
-;thunderxa:******thunder cross (set 2)
-;thunderxb:******thunder cross (set 3)
-thunderx:
-thunderxa:
-thunderxb:
-thunderxj:
-@:maincpu,program,4050,4,00,00
-@:maincpu,program,4100,50,11,00
-@:maincpu,program,414e,1,10,10
-
-
-scontra:
-scontraj:
-@:maincpu,program,4100,50,11,00
-@:maincpu,program,4050,1,00,00
-@:maincpu,program,4051,3,01,00
-
-
-crazycop:
-gbusters:
-gbustersa:
-@:maincpu,program,4100,38,19,00
-@:maincpu,program,4050,4,00,00
-
-
-;@s:tigeroad.cpp
-
-;pushmana:******Pushman (Korea, set 2)
-pushman:
-pushmana:
-pushmans:
-pushmant:
-@:maincpu,program,ffc690,50,00,41
-@:maincpu,program,ffcc2a,4,00,00
-
-
-;tigeroadb:******Tiger Road (us bootleg)
-tigeroad:
-tigeroadb:
-tigeroadu:
-toramich:
-@:maincpu,program,ffec70,64,59,bc
-@:maincpu,program,ffc092,4,00,00
-
-
-;*****(f-1 dream)
-f1dream:
-f1dreamb:
-@:maincpu,program,fff132,60,59,01
-@:maincpu,program,fff2e9,5f,01,34
-
-
-;********(bouncing balls)
-bballs:
-bballsa:
-@:maincpu,program,fc688,31,90,90
-@:maincpu,program,fc687,1,00,00
-
-
-;@s:timelimt.cpp
+;@s:thepit/timelimt.cpp
;(time limit) (by GeoMan)
timelimt:
@@ -16278,189 +17725,207 @@ progress:
@:maincpu,program,8711,e,00,01
-;@s:timeplt.cpp
+;@s:toaplan/batsugun.cpp
-;(power surge) (by GeoMan) - Hiscores appear correctly after game enters attract mode!
-psurge:
-@:maincpu,program,a86c,6,20,30
-@:maincpu,program,b080,50,31,ff
+batsugun:
+batsuguna:
+batsugunb:
+batsugunbl:
+batsugunc:
+batsugunsp:
+@:maincpu,program,10109e,04,00,00
+@:maincpu,program,101166,50,00,15
+@:maincpu,program,1011b6,20,00,00
+@:maincpu,program,1010de,30,98,fb
-spaceplt:
-timeplt:
-timeplta:
-timepltc:
-@:maincpu,program,ab08,28,00,f1
-@:maincpu,program,a98b,3,00,01
+;@s:toaplan/dogyuun.cpp
+dogyuunb:
+dogyuunt:
+@:maincpu,program,10034a,7c,01,1b
-;@s:tmnt.cpp
-;********(golfing greats)
-glfgreat:
-glfgreatj:
-glfgreatu:
-@:maincpu,program,100320,50,41,9
-@:maincpu,program,100400,50,41,9
+;dogyuuna:******Dogyuun (Licensed to Unite Trading For Korea)
+dogyuun:
+dogyuuna:
+@:maincpu,program,10034a,7c,00,1b
-;Teenage Mutant Ninja Turtles (US & clones)
-tmht:
-tmht2p:
-tmht2pa:
-tmhta:
-tmhtb:
-tmnt:
-tmnt2pj:
-tmnt2po:
-tmnta:
-tmntj:
-tmntu:
-tmntua:
-tmntub:
-@:maincpu,program,63500,f3,03,41
+;@s:toaplan/fixeight.cpp
+fixeight:
+fixeighta:
+fixeightat:
+fixeightbl:
+fixeighth:
+fixeightht:
+fixeightj:
+fixeightjt:
+fixeightk:
+fixeightkt:
+fixeightt:
+fixeighttw:
+fixeighttwt:
+fixeightu:
+fixeightut:
+@:maincpu,program,100408,4,00,00
+@:maincpu,program,10043c,82,00,04
+@:maincpu,program,10040a,1,53,53
-tmht22pe:
-tmnt2:
-tmnt22pu:
-tmnt2a:
-@:maincpu,program,107600,14,03,01
-@:maincpu,program,1076c8,27,47,45
+;@s:toaplan/ghox.cpp
-tmht24pe:
-@:maincpu,program,107600,f3,03,41
+ghoxjo:
+@:maincpu,program,805a4,64,00,8e
+@:maincpu,program,80006,4,00,00
-blswhstl:
-blswhstla:
-detatwin:
-@:maincpu,program,207000,50,00,2e
-@:maincpu,program,204049,3,00,30
+;ghoxj:******Ghox (set 2)
+ghox:
+ghoxj:
+@:maincpu,program,805a2,64,00,8e
+@:maincpu,program,80006,4,00,00
-prmrsocr:
-prmrsocrj:
-@:maincpu,program,100364,4c,59,40
+;@s:toaplan/kbash.cpp
+;(knuckle bash) (by GeoMan)
+;kbash2:******Knuckle Bash 2 (bootleg)
+kbash:
+kbash2:
+kbashk:
+kbashp:
+@:maincpu,program,100080,3c,00,30
-;(thunder cross 2)
-thndrx2:
-thndrx2a:
-thndrx2j:
-@:maincpu,program,1002f0,50,00,40
+;@s:toaplan/pipibibi.cpp
-;lgtnfghtu:******lightning fighters (us)
-lgtnfght:
-lgtnfghta:
-lgtnfghtu:
-trigon:
-@:maincpu,program,90400,50,41,50
-@:maincpu,program,90120,4,00,60
+pipibibs:
+pipibibsa:
+pipibibsbl:
+pipibibsbl2:
+pipibibsbl3:
+pipibibsp:
+@:maincpu,program,0805d8,1,00,00
+@:maincpu,program,0805d9,3,05,00
+@:maincpu,program,0805e4,46,00,ff
-;ssriderseaa:******Sunset Riders (4 Players ver EAA)
-ssriders:
-ssridersabd:
-ssriderseaa:
-ssridersebc:
-ssridersebd:
-ssridersjac:
-ssridersjbd:
-ssridersuab:
-ssridersuac:
-ssridersubc:
-ssridersuda:
-@:maincpu,program,104400,50,4b,00
-@:maincpu,program,104120,4,00,00
+;@s:toaplan/raizing.cpp
+bgareggabl:
+bgareggabla:
+bgareggablj:
+@:maincpu,program,10ca4d,446,0f,3f
-;(punk shot (us 4 players)) and clones (by GeoMan)
-punkshot:
-punkshot2:
-punkshotj:
-@:maincpu,program,80700,30,00,40
+bgareggacn:
+bgareggak:
+bgaregganv:
+bgareggat2:
+@:maincpu,program,10ca4f,ea,0f,2a
+@:maincpu,program,100030,1,72,72
-;@s:tnzs.cpp
-chukatai:
-chukataij:
-chukataija:
-chukataiu:
-@:maincpu,program,ed8c,46,00,42
-@:maincpu,program,e210,3,00,75
+bgareggat:
+@:maincpu,program,10ca4d,44a,01,3f
-;kagekih:******Kageki (World?, hack)
-kageki:
-kagekih:
-kagekij:
-kagekiu:
-@:maincpu,program,e057,a,05,50
-@:maincpu,program,e061,f,87,8c
+mahoudai:
+sstriker:
+sstrikerk:
+@:maincpu,program,10029a,a4,00,20
-tnzs:
-tnzsj:
-tnzsjo:
-tnzsoa:
-tnzsuo:
-@:maincpu,program,e68d,23,00,55
+;*********(Shippu Mahou Daisakusen (Japan))
+kingdmgp:
+shippumd:
+@:maincpu,program,1002d0,9e,00,4e
+@:maincpu,program,1003c4,53,2a,39
-;jpopnics:******Jumping Pop (Nics, Korean bootleg of Plump Pop)
-jpopnics:
-@:maincpu,program,c625,27,00,4b
-@:maincpu,program,e471,3,00,00
+bgaregga:
+bgareggahk:
+bgareggatw:
+@:maincpu,program,10ca4d,ea,0f,2a
+@:maincpu,program,100030,1,72,72
-tnzso:
-tnzsop:
-@:maincpu,program,ec0a,23,00,55
+;@s:toaplan/raizing_batrider.cpp
+
+batrider:
+batriderc:
+batriderj:
+batriderja:
+batriderk:
+batridert:
+batrideru:
+@:maincpu,program,20fa20,310,00,30
-;arknoid2:** you must let the hiscore table display first before starting a game **
-arknoid2:
-arknoid2b:
-arknoid2j:
-arknoid2u:
-@:maincpu,program,ec81,27,01,4e
-@:maincpu,program,e3a8,03,01,00
+;@s:toaplan/slapfght.cpp
+;tigerhj:******tiger heli (japan)
+tigerh:
+tigerhb1:
+tigerhb2:
+tigerhb3:
+tigerhj:
+@:maincpu,program,c0db,49,00,02
+@:maincpu,program,c15a,6,2d,00
-plumppop:
-@:maincpu,program,c625,27,00,52
-@:maincpu,program,e471,3,00,00
+;- ADDED CLONE
+perfrman:
+perfrmanu:
+@:maincpu,program,8006,30,89,12
+@:maincpu,program,8609,07,24,00
-drtoppel:
-drtoppelj:
-drtoppelu:
-@:maincpu,program,e057,23,00,25
-@:maincpu,program,e023,3,00,00
+
+getstarb1:
+getstarb2:
+getstarj:
+grdian:
+@:maincpu,program,c0d2,48,00,00
+@:maincpu,program,c110,1,0a,0a
+@:maincpu,program,c0ca,1,17,17
-;extrmatn:[Special thanks to Cananas for enhancing this entry]
-;extrmatnj:******Extermination (Japan)
-extrmatn:
-extrmatnj:
-extrmatnu:
-@:maincpu,program,e8a5,28,00,55
-@:maincpu,program,e888,01,00,00
-@:maincpu,program,e887,01,49,49
-@:maincpu,program,e886,01,00,00
+;slapfighb3:******Slap Fight (bootleg)
+alcon:
+slapfigh:
+slapfighb1:
+slapfighb2:
+slapfighb3:
+@:maincpu,program,c05d,49,50,04
+@:maincpu,program,c118,7,2d,00
-insectx:
-insectxj:
-@:maincpu,program,c600,50,00,00
-@:maincpu,program,c6ea,3,00,21
+;@s:toaplan/snowbro2.cpp
+
+snowbro2:
+snowbro2b:
+snowbro2b2:
+snowbro2ny:
+@:maincpu,program,1000a0,28,00,45
+
+
+;@s:toaplan/tekipaki.cpp
+
+;(teki paki)
+tekipaki:
+tekipakit:
+@:maincpu,program,80013,3f,00,60
+
+
+whoopee:
+@:maincpu,program,0805da,1,00,00
+@:maincpu,program,0805db,3,05,00
+@:maincpu,program,0805e6,46,00,ff
-;@s:toaplan1.cpp
+;@s:toaplan/toaplan1.cpp
;fireshrkd:******Fire Shark (Korea, set 1, easier)
;fireshrkdh:******Fire Shark (Korea, set 2, harder)
@@ -16570,502 +18035,23 @@ hellfire1a:
@:maincpu,program,42357,21,2e,30
-;@s:toaplan2.cpp
-
-snowbro2:
-snowbro2b:
-snowbro2b2:
-@:maincpu,program,1000a0,28,00,45
-
-
-ghoxjo:
-@:maincpu,program,805a4,64,00,8e
-@:maincpu,program,80006,4,00,00
-
-
-;(teki paki)
-tekipaki:
-tekipakit:
-@:maincpu,program,80013,3f,00,60
-
+;@s:toaplan/truxton2.cpp
truxton2:
@:maincpu,program,100300,7c,00,01
-;(knuckle bash) (by GeoMan)
-;kbash2:******Knuckle Bash 2 (bootleg)
-kbash:
-kbash2:
-@:maincpu,program,100080,3c,00,30
-
-
-mahoudai:
-sstriker:
-sstrikerk:
-@:maincpu,program,10029a,a4,00,20
-
-
-grindstma:
-@:maincpu,program,1004fc,90,00,00
-@:maincpu,program,10057b,1,2d,2d
-@:maincpu,program,100438,4,00,00
-
-
-;batsugun:[Special thanks to Cananas for making this entry work]
-batsugun:
-batsuguna:
-batsugunsp:
-@:maincpu,program,10109e,04,00,00
-@:maincpu,program,101166,70,00,00
-@:maincpu,program,1011b5,01,15,15
-
-
-whoopee:
-@:maincpu,program,0805da,1,00,00
-@:maincpu,program,0805db,3,05,00
-@:maincpu,program,0805e6,46,00,ff
-
-
-pipibibs:
-pipibibsa:
-pipibibsbl:
-pipibibsp:
-@:maincpu,program,0805d8,1,00,00
-@:maincpu,program,0805d9,3,05,00
-@:maincpu,program,0805e4,46,00,ff
-
-
-vfive:
-@:maincpu,program,1004fa,90,00,00
-@:maincpu,program,100436,4,00,00
-@:maincpu,program,100579,1,2d,2d
-
-
-grindstm:
-@:maincpu,program,100500,90,00,00
-@:maincpu,program,10057f,1,2d,2d
-@:maincpu,program,10043c,4,00,00
-
-
-;ghoxj:******Ghox (set 2)
-ghox:
-ghoxj:
-@:maincpu,program,805a2,64,00,8e
-@:maincpu,program,80006,4,00,00
-
-
-fixeight:
-fixeighta:
-fixeightat:
-fixeightbl:
-fixeighth:
-fixeightht:
-fixeightj:
-fixeightjt:
-fixeightk:
-fixeightkt:
-fixeightt:
-fixeighttw:
-fixeighttwt:
-fixeightu:
-fixeightut:
-@:maincpu,program,100408,4,00,00
-@:maincpu,program,10043c,82,00,04
-@:maincpu,program,10040a,1,53,53
-
-
-bgareggabl:
-bgareggabla:
-@:maincpu,program,10ca4d,446,0f,3f
-
-
-dogyuunt:
-@:maincpu,program,10034a,7c,01,1b
-
-
-bgareggacn:
-bgaregganv:
-bgareggat2:
-@:maincpu,program,10ca4f,ea,0f,2a
-@:maincpu,program,100030,1,72,72
-
-
-;*********(Shippu Mahou Daisakusen (Japan))
-kingdmgp:
-shippumd:
-@:maincpu,program,1002d0,9e,00,4e
-@:maincpu,program,1003c4,53,2a,39
-
-
-batrider:
-batriderc:
-batriderj:
-batriderja:
-batriderk:
-batridert:
-batrideru:
-@:maincpu,program,20fa20,310,00,30
-
-
-;dogyuuna:******Dogyuun (Licensed to Unite Trading For Korea)
-dogyuun:
-dogyuuna:
-@:maincpu,program,10034a,7c,00,1b
-
-
-bgaregga:
-bgareggahk:
-bgareggatw:
-@:maincpu,program,10ca4d,ea,0f,2a
-@:maincpu,program,100030,1,72,72
-
-
-;@s:toki.cpp
-
-;(toki (world set 1))
-toki:
-@:maincpu,program,66b5e,b4,00,03
-@:maincpu,program,60008,4,00,00
-@:maincpu,program,6000a,1,20,20
-
-
-;tokia:******Toki (World Set 2)
-;juju:******JuJu Densetsu (Japan)
-;jujub:******JuJu Densetsu (Japan, bootleg)
-juju:
-jujub:
-jujuba:
-tokia:
-tokib:
-tokiu:
-tokiua:
-@:maincpu,program,66b66,b4,00,03
-@:maincpu,program,60008,4,00,00
-
-
-;@s:toobin.cpp
-
-;(toobin` (version 3))
-toobin:
-@:maincpu,program,ffff40,32,01,ef
-
-
-;@s:topspeed.cpp
-
-fullthrl:
-topspeed:
-topspeedu:
-@:maincpu,program,400080,6b,00,99
-@:maincpu,program,400081,1,45,45
-
-
-;@s:toypop.cpp
-
-liblrabl:
-@:maincpu,program,0867,04,00,00
-@:maincpu,program,0874,3b,00,17
-
-
-toypop:
-@:maincpu,program,09b2,50,00,20
-@:maincpu,program,0849,3,00,00
-
-
-;@s:tp84.cpp
-
-;tp84a:******time pilot '84 (set 2)
-tp84:
-tp84a:
-@:cpu1,program,57a0,1e,00,54
-@:cpu1,program,5736,03,00,00
-
-
-;tp84b:******time pilot '84 (set 3)
-tp84b:
-@:cpu1,program,17a0,1e,00,54
-@:cpu1,program,1736,3,00,00
-
-
-;@s:trackfld.cpp
-
-yieartf:
-@:maincpu,program,2d20,8c,00,10
-@:maincpu,program,2a1c,3,00,40
-
-
-;******Wizz Quiz (version 4)
-wizzquiz:
-@:maincpu,program,2b4f,221,4d,00
-@:maincpu,program,2d6e,1,05,05
-
-
-;@s:travrusa.cpp
-
-;shot rider (by tamphax)
-;shtridera:******shot rider (sigma license)
-shtrider:
-shtridera:
-shtriderb:
-@:maincpu,program,e013,2d,00,4d
-
-
-;(fix)
-motorace:
-mototour:
-travrusa:
-travrusab:
-@:maincpu,program,e07c,4b,00,15
-@:maincpu,program,e008,3,00,03
-
-
-;@s:tryout.cpp
-
-;tryout:******pro baseball skill tryout (japan)
-tryout:
-@:maincpu,program,319,29,90,00
-@:maincpu,program,33d,1,01,01
-@:maincpu,program,13,3,07,90
-
-
-;@s:tsamurai.cpp
-
-alphaxz:
-the26thz:
-@:maincpu,program,c26e,7b,00,2d
-@:maincpu,program,c220,3,00,00
-@:maincpu,program,e241,1,20,20
-@:maincpu,program,e221,1,20,20
-@:maincpu,program,e201,1,39,39
-@:maincpu,program,e1e1,1,30,30
-@:maincpu,program,e1c1,1,30,30
-@:maincpu,program,e1a1,1,30,30
-@:maincpu,program,e181,1,30,30
-
-
-;tsamuraih:******Samurai Nihon-ichi (set 3, harder)
-ladymstr:
-ladymstr2:
-nunchaku:
-tsamurai:
-tsamurai2:
-tsamuraih:
-yamagchi:
-@:maincpu,program,c060,1e,00,00
-@:maincpu,program,c080,1e,11,11
-@:maincpu,program,c026,3,00,00
-
-
-m660:
-m660b:
-m660j:
-@:maincpu,program,c270,7b,00,2d
-@:maincpu,program,c220,3,00,00
-@:maincpu,program,e241,1,20,20
-@:maincpu,program,e221,1,20,20
-@:maincpu,program,e201,1,39,39
-@:maincpu,program,e1e1,1,30,30
-@:maincpu,program,e1c1,1,30,30
-@:maincpu,program,e1a1,1,30,30
-@:maincpu,program,e181,1,30,30
-
-
-;vsgongf:******vs. gong fight
-ringfgt:
-ringfgt2:
-vsgongf:
-@:maincpu,program,c026,3,00,00
-@:maincpu,program,c060,3e,00,11
-@:maincpu,program,c027,1,20,20
-
-
-;@s:tubep.cpp
-
-tubep:
-@:maincpu,program,a0b6,240,a8,4d
-@:maincpu,program,a092,3,a8,00
-
-
-;(roller jammer) (by GeoMan)
-rjammer:
-@:maincpu,program,a4fa,1e,a8,55
-
-
-tubepb:
-@:maincpu,program,a095,240,a8,4d
-@:maincpu,program,a080,3,a8,00
-
-
-;@s:tugboat.cpp
-
-berenstn:
-@:maincpu,program,28,1e,81,4f
-
-
-noahsark:
-@:maincpu,program,2801,1e,81,44
-
-
-;@s:tumbleb.cpp
-
-magipur:
-@:maincpu,program,4eda,ac,00,20
-
-
-;******Super Trio Thanks to Mr Valtric for this addition ******
-suprtrio:
-@:maincpu,program,f03308,5a,01,4e
-
-
-;(jump kids) (by GeoMan)
-jumpkids:
-@:maincpu,program,123c10,a0,50,50
-@:maincpu,program,123c01,3,0,0
-
-
-;htchctch:******hatch catch
-htchctch:
-@:maincpu,program,120faa,27,00,45
-
-
-;********(fancy world - earth of crisis)
-fncywld:
-@:maincpu,program,ff8311,ae,05,56
-
-
-;pangpang:******Pang Pang
-pangpang:
-@:maincpu,program,123c10,a0,44,50
-
-
-;metlsavr:******Metal Saver
-metlsavr:
-@:maincpu,program,341600,63,03,44
-
-
-carket:
-@:maincpu,program,120e79,2e,00,41
-
-
-;sdfight:******SD Fighter (Korea)
-sdfight:
-@:maincpu,program,121efa,4f,00,4d
-
-
-;******Cookie & Bibi
-cookbib:
-cookbiba:
-@:maincpu,program,121cca,aa,20,64
-
-
-;@s:tunhunt.cpp
-
-;(tunnel hunt)
-tunhunt:
-tunhuntc:
-@:maincpu,program,300,20,00,44
-@:maincpu,program,b0,1,03,03
-
-
-;@s:turbo.cpp
-
-;(turbo)
-;** highscore updates after first game **
-turbo:
-turboa:
-turbob:
-turbobl:
-turbod:
-@:maincpu,program,e400,1e,94,94
-@:maincpu,program,f310,1e,00,00
-@:maincpu,program,f292,d,0f,f0
-
-
-;(subroc3d)
-;** top score updates after hiscore displayed in attract mode **
-subroc3d:
-@:maincpu,program,e400,3e,00,00
-@:maincpu,program,b049,1,f6,f6
-
-
-;** top score on game screen updated after 1st game **
-;** assuming you have made score display in dipswitch menu !!**
-zoom909:
-@:maincpu,program,c400,3e,00,00
-
-
-;(buck rodgers: planet of doom & clones)
-;** scores on the side of screen don`t display untill 1st game is over **
-;** also top side score may display 1 digit untill 1st game is over **
-buckrog:
-buckrogn:
-buckrogn2:
-@:maincpu,program,c400,3e,00,00
-@:maincpu,program,c549,10,ff,ff
-@:maincpu,program,c54b,1,0f,0f
-
-
-;@s:tutankhm.cpp
-
-tutankhm:
-tutankhms:
-@:maincpu,program,88a9,31,03,01
-@:maincpu,program,88a6,3,03,40
-
-
-;@s:twin16.cpp
-
-;*******cuebrick
-cuebrick:
-cuebrickj:
-@:maincpu,program,60368,50,00,4f
-
-
-;(devil world)
-devilw:
-majuu:
-@:maincpu,program,60131,ef,00,10
-@:maincpu,program,60049,3,00,30
-
-
-;(missing in action (version t))
-mia:
-mia2:
-miaj:
-@:maincpu,program,62100,4f,00,54
-@:maincpu,program,6012a,4,00,30
-
-
-darkadv:
-@:maincpu,program,60131,ef,00,10
-
-
-fround:
-froundl:
-hpuncher:
-@:audiocpu,program,40070,4,01,00
-@:audiocpu,program,40300,50,4a,00
-
-
-gradius2:
-gradius2a:
-gradius2b:
-vulcan:
-vulcana:
-vulcanb:
-@:maincpu,program,600a1,63,22,30
-@:maincpu,program,60058,4,00,30
-@:maincpu,program,60008,1,1d,1d
-
-
-;@s:twincobr.cpp
+;@s:toaplan/twincobr.cpp
fnshark:
fshark:
+fsharkb:
fsharkbt:
hishouza:
+hishouzab:
skyshark:
skysharka:
+skysharkb:
@:maincpu,program,3016a,16c,00,01
@:maincpu,program,3038d,1,2d,2d
@:maincpu,program,3038f,1,2d,2d
@@ -17109,44 +18095,69 @@ twincobru:
@:maincpu,program,317bd,1,00,00
-;@s:twins.cpp
+;@s:toaplan/vfive.cpp
-;******twins
-twinsed1:
-@:maincpu,program,4cc0,60,09,00
-@:maincpu,program,4d1d,1,01,01
+grindstma:
+@:maincpu,program,1004fc,90,00,00
+@:maincpu,program,10057b,1,2d,2d
+@:maincpu,program,100438,4,00,00
-spider:
-@:maincpu,program,6f6c,13,50,00
-@:maincpu,program,e07c,2c,41,00
-@:maincpu,program,e542,b,01,01
-@:maincpu,program,6f7d,1,27,27
+vfive:
+@:maincpu,program,1004fa,90,00,00
+@:maincpu,program,100436,4,00,00
+@:maincpu,program,100579,1,2d,2d
+
+
+grindstm:
+@:maincpu,program,100500,90,00,00
+@:maincpu,program,10057f,1,2d,2d
+@:maincpu,program,10043c,4,00,00
-;@s:uapce.cpp
+;@s:toaplan/wardner.cpp
-;paclandp:*****not working/saving driver issue i think
-paclandp:
-@:maincpu,program,2100,6,00,00
-@:maincpu,program,2110,4e,00,24
-@:maincpu,program,2112,1,03,03
+;** wardner,wardner (japan),pyros all fixed *
+pyros:
+wardner:
+wardnerb:
+wardnerj:
+wardnerjb:
+@:maincpu,program,7116,5d,00,01
+@:maincpu,program,711a,1,20,20
-;@s:ultraman.cpp
+;@s:trs/coco3.cpp
-ultraman:
-@:maincpu,program,8ff00,64,01,08
+;Zonx (The Rainbow)
+coco3,zonx:
+@:maincpu,program,3e57,5,0,0
-;@s:undrfire.cpp
+;@s:unico/drgnmst.cpp
-;(under fire (world))
-undrfire:
-@:maincpu,program,20dfaf,75,08,53
+;*******dragon master
+drgnmst:
+drgnmst2:
+@:maincpu,program,ff84f0,4,00,00
+@:maincpu,program,ff8450,6c,00,01
+
+
+;@s:unico/goori.cpp
+
+goori:
+@:maincpu,program,108ba8,3c,4d,20
+
+
+;@s:unico/silkroad.cpp
+
+;(the legend of silkroad)
+silkroad:
+silkroada:
+@:maincpu,program,fe305e,8c,4d,01
-;@s:unico.cpp
+;@s:unico/unico.cpp
;(burglar x)
burglarx:
@@ -17168,585 +18179,559 @@ zeropntj:
@:maincpu,program,ef1f58,23,55,53
-;@s:upscope.cpp
-
-;upscope:******Up Scope
-upscope:
-@:maincpu,program,3e4f6,1e,43,45
-@:maincpu,program,3e5fc,28,00,98
-
-
-;@s:vamphalf.cpp
-
-mrdig:
-@:maincpu,program,13d29e,145e,47,50
-@:maincpu,program,13e6fb,1,50,50
-
-
-poosho:
-@:maincpu,program,ae148,60,00,00
-@:maincpu,program,ae1af,01,1d,1d
-
-
-vamphalfr1:
-@:maincpu,program,5ac48,3a,00,03
-
-
-;aoh:******Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)
-aoh:
-@:maincpu,program,28e784,f8,4b,01
-
-
-jmpbreak:
-@:maincpu,program,95098,5f,00,67
-
-
-;vamphalfk:******Vamf x1/2 (korea)
-vamphalfk:
-@:maincpu,program,5ae6c,3a,00,03
-
-
-wivernwg:
-@:maincpu,program,c79fb,f9,24,40
-
-
-;vamphalf:******Vamf x1/2 (Europe)
-vamphalf:
-@:maincpu,program,5afdc,3a,00,03
-
-
-misncrft:
-@:maincpu,program,76fd4,60,46,10
-
-
-misncrfta:
-@:maincpu,program,7f290,60,46,10
+;@s:universal/cheekyms.cpp
-
-;@s:vaportra.cpp
-
-kuhga:
-vaportra:
-vaportra3:
-vaportrau:
-@:maincpu,program,fff5d4,78,2e,00
-@:maincpu,program,ffc024,4,00,00
+;(cheeky mouse)
+cheekyms:
+@:maincpu,program,3009,9,00,00
+@:maincpu,program,3014,1,36,36
-;@s:vastar.cpp
+;@s:universal/cosmic.cpp
-dogfightp:
-@:maincpu,program,f16a,82,20,ff
-@:maincpu,program,b2df,1,24,24
-@:maincpu,program,b2ff,1,24,24
-@:maincpu,program,b31f,1,03,03
-@:maincpu,program,b33f,1,05,05
-@:maincpu,program,b35f,1,02,02
-@:maincpu,program,b37f,1,00,00
-@:maincpu,program,b39f,1,00,00
+cosmica:
+cosmica1:
+cosmica22:
+cosmica23:
+cosmica2a:
+@:maincpu,program,400e,3,00,00
-pprobe:
-@:maincpu,program,f380,45,00,15
-@:maincpu,program,cd9e,1,00,00
-@:maincpu,program,cdbe,1,00,00
-@:maincpu,program,cdde,1,03,03
-@:maincpu,program,cdfe,1,01,01
-@:maincpu,program,ce1e,1,01,01
-@:maincpu,program,ce3e,1,01,01
-@:maincpu,program,ce5e,1,01,01
+;(no man's land) (by GeoMan)
+nomnlnd:
+nomnlndg:
+@:maincpu,program,6004,3,00,00
+@:maincpu,program,6c5d,6c0,ff,00
-;(vastar (set 1)) and clones (by GeoMan)
-vastar:
-vastar2:
-vastar3:
-vastar4:
-@:maincpu,program,cda1,1,00,00
-@:maincpu,program,cdc1,1,00,00
-@:maincpu,program,cde1,1,00,00
-@:maincpu,program,ce01,1,00,00
-@:maincpu,program,ce21,1,02,02
-@:maincpu,program,ce41,1,28,28
-@:maincpu,program,ce61,1,28,28
-@:maincpu,program,f128,85,00,16
+;(magical spot ii) (by GeoMan)
+magspot2:
+@:maincpu,program,6007,2,00,20
+@:maincpu,program,6009,1,00,00
-;@s:vendetta.cpp
+;(devil zone) (by GeoMan)
+devzone:
+devzone2:
+@:maincpu,program,7ec0,5b,1e,26
+@:maincpu,program,6007,3,0,0
-vendetta:
-vendetta2pd:
-vendetta2peba:
-vendetta2pp:
-vendetta2pu:
-vendetta2pun:
-vendetta2pw:
-vendettan:
-vendettar:
-vendettaun:
-vendettaz:
-@:maincpu,program,2980,28,00,48
+panic:
+panic2:
+panic3:
+panicger:
+panich:
+@:maincpu,program,40c1,5,00,00
+@:maincpu,program,5c00,c,09,15
+@:maincpu,program,4004,2,00,00
-;@s:vicdual.cpp
-;carnival:*note* resetting corrupts the screen not the file
-carnival:
-carnivalb:
-carnivalc:
-@:maincpu,program,e397,3c,00,00
-@:maincpu,program,e5a2,9,20,20
+;******magical spot
+magspot:
+@:maincpu,program,6007,3,00,00
+@:maincpu,program,6008,1,20,20
-;******n-sub (upright)
-nsub:
-@:maincpu,program,8397,2,00,00
+;@s:universal/cosmicg.cpp
+;cosmicgi:****** fixed ******
+cosmicg:
+cosmicgi:
+@:maincpu,program,3c10,04,00,00
+@:maincpu,program,2d5d,01,00,00
+@:maincpu,program,2d7d,01,00,00
+@:maincpu,program,2d9d,01,00,00
+@:maincpu,program,2dbd,01,00,00
+@:maincpu,program,2ddd,01,00,00
+@:maincpu,program,2e5d,01,00,00
+@:maincpu,program,2e7d,01,00,00
+@:maincpu,program,2e9d,01,00,00
+@:maincpu,program,2ebd,01,00,00
+@:maincpu,program,2edd,01,00,00
+@:maincpu,program,2f5d,01,00,00
+@:maincpu,program,2f7d,01,00,00
+@:maincpu,program,2f9d,01,00,00
+@:maincpu,program,2fad,01,00,00
+@:maincpu,program,2fbd,01,00,00
+@:maincpu,program,2fdd,01,00,00
+@:maincpu,program,305d,01,00,00
+@:maincpu,program,307d,01,00,00
+@:maincpu,program,309d,01,00,00
+@:maincpu,program,30bd,01,00,00
+@:maincpu,program,30dd,01,00,00
+@:maincpu,program,315d,01,00,00
+@:maincpu,program,317d,01,00,00
+@:maincpu,program,319d,01,00,00
+@:maincpu,program,31bd,01,00,00
+@:maincpu,program,31dd,01,00,00
+@:maincpu,program,325d,01,7c,7c
+@:maincpu,program,327d,01,82,82
+@:maincpu,program,329d,01,82,82
+@:maincpu,program,32bd,01,82,82
+@:maincpu,program,32dd,01,7c,7c
-;(space trek (upright)) and clones (by GeoMan)
-spacetrk:
-spacetrkc:
-@:maincpu,program,838c,4,0,0
+;@s:universal/docastle.cpp
-;frogs:[Special thanks to Cananas for enhancing this entry]
-frogs:
-@:maincpu,program,e508,06,00,00
-@:maincpu,program,e037,06,00,30
+dorunrun:
+dorunrun2:
+@:maincpu,program,2010,190,00,50
-;(depthcharge)
-depthch:
-depthcho:
-subhunt:
-@:maincpu,program,e408,c,55,5a
+spiero:
+@:maincpu,program,2010,3,00,00
+@:maincpu,program,2011,1,10,10
-;(invinco / head on 2) (by GeoMan)
-invho2:
-@:maincpu,program,83b6,16,00,00
-@:maincpu,program,8392,12,30,30
+;dorunrunca:******Do! Run Run (Do's Castle hardware, set 2)
+;dorunrunc:******Do! Run Run (Do's Castle hardware, set 1)
+dorunrunc:
+dorunrunca:
+@:maincpu,program,8010,190,00,50
-;(invinco/deep scan)
-; ** player scores from last game played also saved - no big deal !! **
-invds:
-@:maincpu,program,8398,e6,00,09
+dowild:
+jjack:
+kickridr:
+@:maincpu,program,2020,50,01,00
-;brdrlins:******Borderline (Sidam bootleg)
-brdrlinb:
-brdrline:
-brdrlins:
-starrkr:
-@:maincpu,program,938d,2,00,00
+docastle:
+docastle2:
+docastleo:
+douni:
+@:maincpu,program,8020,50,01,00
-;** does not save in game top score, only hiscore table saves **
-headon:
-headon1:
-@:maincpu,program,878a,f,30,30
+;@s:universal/ladybug.cpp
+;*******dorodon (set 1)
+dorodon:
+dorodon2:
+@:maincpu,program,6073,1b,01,00
+@:maincpu,program,d381,46,0f,17
-digger:
-@:maincpu,program,8386,b,53,00
+cavenger:
+@:maincpu,program,6025,41,00,28
-;*******space attack/head on
-sspacaho:
-@:maincpu,program,e4cb,c,00,00
-@:maincpu,program,878a,f,30,30
+snapjack:
+@:maincpu,program,6a94,41,01,24
-;(pulsar)
-pulsar:
-@:maincpu,program,85f4,39,50,50
+;ladybgb2:******Lady Bug (bootleg Set 2)
+ladybug:
+ladybugb:
+ladybugb2:
+@:maincpu,program,6073,1b,01,00
+@:maincpu,program,d380,75,ff,ff
-carhntds:
-@:maincpu,program,845e,6,00,04
-@:maincpu,program,83a1,6,00,00
+;@s:universal/mrdo.cpp
-sspaceat:
-sspaceat2:
-sspaceat3:
-sspaceatc:
-@:maincpu,program,c4c7,10,00,00
+mrdo:
+mrdobl:
+mrdofabr:
+mrdofix:
+mrdot:
+mrdoy:
+mrdu:
+mrlo:
+yankeedo:
+@:maincpu,program,e017,64,01,00
-;********(alpha fighter / head on)
-alphaho:
-@:maincpu,program,878a,f,30,30
-@:maincpu,program,e4cb,c,00,00
+;@s:universal/sraider.cpp
+;******Space Raider
+mrsdyna:
+sraider:
+@:maincpu,program,6010,9f,00,21
-startrks:
-@:maincpu,program,d78a,5,30,30
+;@s:universal/zerohour.cpp
-headonmz:
-headons:
-headonsa:
-@:maincpu,program,c78a,f,30,30
+redclasht:
+redclashta:
+@:maincpu,program,6023,4,00,00
+@:maincpu,program,6320,6,23,1d
+@:maincpu,program,41bd,01,00,00
+@:maincpu,program,41dd,01,00,00
+@:maincpu,program,41fd,01,06,06
+@:maincpu,program,421d,01,01,01
+@:maincpu,program,423d,01,01,01
+@:maincpu,program,425d,01,01,01
+@delay=2.5
-;(invinco) (by GeoMan)
-invinco:
-@:maincpu,program,8398,16,00,00
+redclash:
+redclashs:
+@:maincpu,program,6023,4,00,00
+@:maincpu,program,6320,6,1a,1e
+@:maincpu,program,41bd,01,00,00
+@:maincpu,program,41dd,01,00,00
+@:maincpu,program,41fd,01,06,06
+@:maincpu,program,421d,01,01,01
+@:maincpu,program,423d,01,01,01
+@:maincpu,program,425d,01,01,01
-;(samurai (sega)) (by GeoMan)
-samurai:
-@:maincpu,program,971a,12,00,00
+;ZeroHour (by GeoMan)
+zerohour:
+zerohoura:
+zerohouri:
+@:maincpu,program,3023,4,0,0
-headon2:
-@:maincpu,program,c390,12,30,30
+;@s:upl/mouser.cpp
+;*******(mouser/mouser (cosmos))
+mouser:
+mouserc:
+@:maincpu,program,6107,a1,00,00
+@:maincpu,program,60b8,3,00,00
+@:maincpu,program,61a6,1,23,23
+@:maincpu,program,9241,1,00,00
+@:maincpu,program,9221,1,00,00
+@:maincpu,program,9201,1,07,07
+@:maincpu,program,91e1,1,08,08
+@:maincpu,program,91c1,1,00,00
+@:maincpu,program,91a1,1,00,00
-;@s:victory.cpp
-;**** this saves victorys top 10 todays scores (nvram takes care of the rest)
-victorba:
-victory:
-@:maincpu,program,f01a,46,56,00
-@:maincpu,program,f05b,1,54,54
+;@s:upl/ninjakd2.cpp
+mnight:
+mnightj:
+@:maincpu,program,c099,41,00,20
+@:maincpu,program,c0e6,3,00,00
-;@s:videopin.cpp
-;*******(video pinball)
-videopin:
-@:maincpu,program,37,1,00,00
-@:maincpu,program,3c,1,00,00
-@:maincpu,program,41,1,00,00
+;(ninja kid ii (set 1)) and clones (by GeoMan)
+ninjakd2:
+ninjakd2a:
+ninjakd2b:
+rdaction:
+@:maincpu,program,e0f4,3,00,00
+@:maincpu,program,e04e,64,31,20
-;@s:vigilant.cpp
+;(omega fighter / omega fighter special)
+;** only saves pasrt of highscore ?? - tables ok though !! **
+omegaf:
+omegafs:
+@:maincpu,program,f880,7f,00,24
+@:maincpu,program,f7d4,3,00,00
+@:maincpu,program,f7d5,1,20,20
-;kikcubicb:******Kickle Cubele
-kikcubic:
-kikcubicb:
-@:maincpu,program,fe30,c8,07,04
-@:maincpu,program,fef8,3,07,35
+robokidj:
+robokidj2:
+@:maincpu,program,e0a4,41,00,20
+@:maincpu,program,e0f3,3,00,00
-;buccanrs:******Buccaneers (set 1)
-buccanrs:
-@:maincpu,program,e36e,46,20,4f
+robokid:
+@:maincpu,program,e0a4,f,00,00
+@:maincpu,program,e0b3,f,46,49
+@:maincpu,program,e0d0,4,00,00
-;vigilantd:[Clone added by Wob]
-;vigilanto:[Clone added by Wob]
-vigilant:
-vigilanta:
-vigilantb:
-vigilantbl:
-vigilantc:
-vigilantd:
-vigilantg:
-vigilanto:
-@:maincpu,program,e048,3f,00,48
+arkarea:
+@:maincpu,program,d45c,42,46,30
+@:maincpu,program,c040,3,00,00
-;******Buccaneers (set 2)
-buccanrsa:
-@:maincpu,program,e36d,46,20,4f
+;@s:upl/nova2001.cpp
-;@s:volfied.cpp
+;(raiders5) and clones (by GeoMan)
+raiders5:
+raiders5t:
+raiders5ta:
+@:maincpu,program,e075,37,00,55
+@:maincpu,program,888c,7,22,10
-;(volified (japan))
-;** top score on top centre of screen does not update untill **
-;** after first demo game in attract mode **
-volfied:
-volfiedj:
-volfiedjo:
-volfiedo:
-volfiedu:
-volfieduo:
-@:maincpu,program,100200,26,00,50
-@:maincpu,program,100201,1,50,50
+;(ninjakun majou no bouken) (by GeoMan)
+ninjakun:
+@:maincpu,program,e0a3,37,00,20
+@:maincpu,program,c08c,7,22,10
-;@s:vsnes.cpp
-nvs_machridera:
-@:maincpu,program,700,50,00,4b
-@:maincpu,program,701,1,05,05
+;****note doesnt save top scores
+nova2001:
+nova2001u:
+@:maincpu,program,a0ac,7,22,14
+@:maincpu,program,e07d,37,00,20
-;mightybj:******vs. mighty bomb jack (japan)
-nvs_mightybj:
-@:maincpu,program,3a8,4,00,00
-@:maincpu,program,3aa,1,10,10
+pkunwar:
+pkunwarj:
+@:maincpu,program,c187,3c,00,00
+@:maincpu,program,c1d6,2,00,20
+@:maincpu,program,c1d8,1,00,00
-;(mach rider) (by GeoMan)
-nvs_machrider:
-@:maincpu,program,0714,50,00,4b
+;@s:upl/xxmissio.cpp
+;*******xxmissio (xx mission)
+xxmissio:
+@:maincpu,program,e018,4,00,00
+@:maincpu,program,e084,61,20,20
+@:maincpu,program,c1a0,1,30,30
+@:maincpu,program,c1c0,1,30,30
+@:maincpu,program,c1e0,1,30,30
+@:maincpu,program,c200,1,30,30
+@:maincpu,program,c220,1,33,33
+@:maincpu,program,c240,1,01,01
+@:maincpu,program,c260,1,01,01
-;(platoon)
-nvs_platoon:
-@:maincpu,program,700,e9,10,60
+;@s:valadon/bagman.cpp
-;bnglngby:******vs. raid on bungeling bay (japan)
-bnglngby:
-@:maincpu,program,6400,5a,00,01
+;bagman:[Special thanks to Cananas for enhancing this entry]
+bagman:
+bagmanf:
+bagmanj:
+bagmanm2:
+bagmanmc:
+bagmans:
+bagmans3:
+bagmans4:
+bagnard:
+bagnarda:
+bagnardi:
+bagnardio:
+sbagman:
+sbagman2:
+sbagmani:
+sbagmans:
+@:maincpu,program,6217,50,00,10
-;(battle city)
-btlecity:
-@:maincpu,program,3e,6,00,00
-@:maincpu,program,3f,1,02,02
+botanic2:
+@:maincpu,program,620a,46,18,10
+@:maincpu,program,600a,1e,00,00
+@:maincpu,program,6233,1,23,23
-;jajamaru:******vs. ninja jajamaru kun (japan)
-jajamaru:
-@:maincpu,program,900,5b,22,00
-@:maincpu,program,66,3,d0,00
+;******botanic
+botanic:
+botanicf:
+@:maincpu,program,720a,46,18,10
+@:maincpu,program,700a,1e,00,00
+@:maincpu,program,7233,1,23,23
-;excitebkj:******vs. excitebike (japan)
-excitebk:
-excitebkj:
-excitebko:
-@:maincpu,program,630,14f,00,0e
+pickin:
+@:maincpu,program,719a,50,00,10
-iceclimb:
-iceclimba:
-@:maincpu,program,750,3c,00,23
+;@s:valadon/tankbust.cpp
+;(tank busters) (by GeoMan)
+tankbust:
+@:maincpu,program,f602,50,00,10
-iceclmrd:
-@:maincpu,program,750,3c,00,23
-@:maincpu,program,751,1,77,77
-@:sub,program,750,3c,00,23
-@:sub,program,751,1,77,77
+;@s:venture/spcforce.cpp
-;vsgshoe:******vs. gumshoe
-vsgshoe:
-@:maincpu,program,560,1d,12,a0
+;********spcforce (space force)
+meteor:
+spcforc2:
+spcforce:
+@:maincpu,program,4300,50,30,30
-;vsfdf:******vs. freedom force
-vsfdf:
-@:maincpu,program,712,9c,10,28
+;@s:venture/suprridr.cpp
+;******super rider
+suprridr:
+@:maincpu,program,80ca,3,00,00
+@:maincpu,program,8a21,1,24,24
+@:maincpu,program,8a01,1,24,24
+@:maincpu,program,89e1,1,24,24
+@:maincpu,program,89c1,1,24,24
+@:maincpu,program,89a1,1,24,24
+@:maincpu,program,8981,1,00,00
-;vsgradus:******vs. gradius
-vsgradus:
-@:maincpu,program,7e0,3,00,00
-@:maincpu,program,7e1,1,50,50
+;@s:vsystem/aerofgt.cpp
-;vspinbalj:******vs. pinball (japan)
-vspinbal:
-vspinbalj:
-@:maincpu,program,ba0,10,1c,00
-@:maincpu,program,118,5,00,00
+aerofgt:
+@:maincpu,program,ffc1af,97,0b,64
-;(hogans alley)
-hogalley:
-@:maincpu,program,4a0,19,12,2f
-@:maincpu,program,4be,2,12,28
+;@s:vsystem/crshrace.cpp
-
-;skatekds:******Vs. Skate Kids. (Graphic hack of Super Mario Bros.)
-skatekds:
-@:maincpu,program,7d7,6,00,00
-@:maincpu,program,7d8,1,02,02
-@:maincpu,program,6675,8a,05,05
+;(lethal crash race (set 1)) and clones (by GeoMan)
+crshrace:
+crshrace2:
+crshrace2a:
+@:maincpu,program,fe21b6,80,41,00
-;suprmrioa:******Vs. Super Mario Bros. (alt)
-;(vs super mario bros)
-suprmrio:
-suprmrioa:
-@:maincpu,program,6675,8b,05,00
-@:maincpu,program,7d7,6,00,00
+;@s:vsystem/f1gp.cpp
+;(f1 - grand prix) (by GeoMan)
+f1gp:
+f1gpa:
+@:maincpu,program,ff917a,2f0,14,00
-;(vs. wrecking crew)
-wrecking:
-@:maincpu,program,a1,3,00,00
-@:maincpu,program,6000,1e,06,16
+;*******(F-1 grand prix part II)
+f1gp2:
+@:maincpu,program,ff91c2,2ee,14,50
+@:maincpu,program,ffa617,3f,59,49
-;(clu clu land)
-cluclu:
-@:maincpu,program,751,4f,1d,70
-@:maincpu,program,19,3,05,20
+;@s:vsystem/gstriker.cpp
-;(dr mario)
-drmario:
-@:maincpu,program,120,9b,00,15
+gstrikerj:
+@:maincpu,program,ffe349,43,0f,01
-;balonfgt:[Special thanks to Cananas for creating this entry]
-balonfgt:
-@:maincpu,program,6100,1e,00,00
-@:maincpu,program,6124,0f,0a,10
+;*******(grand striker)(By Firebrand)
+gstriker:
+gstrikera:
+@:maincpu,program,ffe357,43,0f,01
-;(duck hunt)
-duckhunt:
-@:maincpu,program,640,20,12,28
+twcup94:
+@:maincpu,program,ffe5e3,58,47,0d
-;(super skykid)
-vsskykid:
-@:maincpu,program,10,6,00,00
-@:maincpu,program,26,6,00,3f
+;@s:vsystem/pipedrm.cpp
+pipedrm:
+pipedrmj:
+pipedrmt:
+pipedrmu:
+@:maincpu,program,8d80,59,0c,00
-;(the goonies)
-goonies:
-@:maincpu,program,7f0,3,00,01
+;hatrisj:******hatris (japan)
+hatris:
+hatrisj:
+@:maincpu,program,8d01,76,42,10
-;@s:vulgus.cpp
-mach9:
-vulgus:
-vulgusj:
-@:maincpu,program,ee00,41,00,2e
-@:maincpu,program,ee47,03,00,00
+;@s:vsystem/pspikes.cpp
+;(turbo force)
+turbofrc:
+turbofrco:
+turbofrcu:
+turbofrcua:
+@:maincpu,program,c221b,4e,04,54
-vulgusa:
-@:maincpu,program,ee00,41,00,20
-@:maincpu,program,ee47,03,00,00
+spinlbrkup:
+@:maincpu,program,ffacba,8c,00,50
-;@s:wallc.cpp
-;*******wall crash
-;wallca:******Wall Crash (set 2)
-brkblast:
-wallc:
-wallca:
-@:maincpu,program,a200,28,00,01
-@:maincpu,program,a284,4,00,00
+;(karate blazers (world? & us))
+;karatblzj:******Karate Blazers (Japan)
+karatblz:
+karatblzj:
+karatblzt:
+karatblzu:
+@:maincpu,program,c5ba7,31,00,20
-;@s:wardner.cpp
+kickball:
+pspikesc:
+pspikesk:
+@:maincpu,program,1023f1,4d,00,07
-;** wardner,wardner (japan),pyros all fixed *
-pyros:
-wardner:
-wardnerj:
-@:maincpu,program,7116,5d,00,01
-@:maincpu,program,711a,1,20,20
+pspikesu:
+@:maincpu,program,1023f1,4d,00,06
-;@s:warpwarp.cpp
-geebee:
-geebeea:
-geebeeb:
-geebeeg:
-@:maincpu,program,4046,3,00,00
+;******Aero Fighters (bootleg)
+;aerofgtb:******aero fighters (turbo force hardware set 1)
+;aerofgtc:******aero fighters (turbo force hardware set 2)
+aerfboo2:
+aerfboot:
+aerofgtb:
+aerofgtc:
+@:maincpu,program,cc1af,97,0b,64
-warpwarp:
-warpwarpr:
-warpwarpr2:
-@:maincpu,program,831d,3,00,00
+;******Beach Festival World Championship 1997
+wbbc97:
+@:maincpu,program,5023f1,6d,00,02
-;(navalone) (by GeoMan)
-navarone:
-@:maincpu,program,402d,3,0,0
+;*******(power spikes (world))
+pspikes:
+pspikesb:
+spikes91:
+spikes91b:
+svolly91:
+@:maincpu,program,1023f1,4d,00,03
-;kaitein:******kaitei takara sagashi
-kaitein:
-@:maincpu,program,403e,2,00,00
-@:maincpu,program,21c0,1,00,00
-@:maincpu,program,21e0,1,00,00
-@:maincpu,program,2200,1,ec,ec
-@:maincpu,program,2240,1,ec,ec
-@:maincpu,program,2220,1,ec,ec
-@:maincpu,program,2260,1,ec,ec
+;*********(Sonic Wings (Japan))
+sonicwi:
+@:maincpu,program,cc1af,a0,0b,00
-;(cutie q) (by GeoMan)
-cutieq:
-@:maincpu,program,2215,c,00,01
+;(spinal breakers (world)) and clones (by GeoMan)
+spinlbrk:
+spinlbrku:
+@:maincpu,program,ffac76,8c,00,50
-;(sos) (by GeoMan)
-sos:
-@:maincpu,program,406c,2,0,0
+spinlbrkj:
+@:maincpu,program,ffacce,8c,00,50
-;kaitei:******kaitei takara sagashi (k`k-tokki)
-kaitei:
-@:maincpu,program,200e,5,00,00
+;@s:vsystem/rpunch.cpp
+rabiolep:
+@:maincpu,program,ffe01,77,00,80
-;(bomb bee) (by GeoMan)
-bombbee:
-@:maincpu,program,2214,5,00,01
+rpunch:
+@:maincpu,program,ffe01,73,00,17
-;@s:warriorb.cpp
-darius2d:
-darius2do:
-sagaia:
-@:maincpu,program,1010fa,44b,00,20
+;******super volley (japan)
+svolley:
+svolleyk:
+svolleyu:
+@:maincpu,program,60512,48,00,05
-;(warrior blade (japan))
-warriorb:
-@:maincpu,program,202a38,ef,50,00
-@:maincpu,program,202b25,1,01,01
+;@s:vsystem/tail2nos.cpp
+sformula:
+sformulaa:
+tail2nos:
+tail2nosa:
+@:maincpu,program,ff89c4,130,0a,00
+@:maincpu,program,ff8b05,f,40,00
-;@s:wc90.cpp
-;********wc90 fixed !! ********
-eurogael:
-twcup90:
-twcup90a:
-twcup90b:
-twcup90b1:
-twcup90b2:
-twcup90ba:
-twcup90bb:
-twcup90c:
-twcup90t:
-@:maincpu,program,800f,1e,00,00
-@:maincpu,program,804d,01,11,11
+;@s:vsystem/taotaido.cpp
+taotaido3:
+@:maincpu,program,fe91d4,4e,01,02
-;@s:wecleman.cpp
-;(wec le mans 24)
-;** only saves top 10 scores (ones you put your name to) **
-wecleman:
-weclemana:
-weclemanb:
-weclemanc:
-@:maincpu,program,41110,64,00,20
-@:maincpu,program,40006,4,00,00
+taotaidoa:
+@:maincpu,program,fe9340,4e,01,02
-hotchase:
-@:maincpu,program,610b0,50,00,0d
-@:maincpu,program,60034,4,00,00
+taotaido:
+@:maincpu,program,fe91e4,4e,14,02
-;@s:welltris.cpp
+;@s:vsystem/welltris.cpp
;welltris:******welltris (world?,2 players)
;welltrisj:******welltris (japan,2 players)
@@ -17755,213 +18740,65 @@ welltrisj:
@:maincpu,program,ffb61c,50,0c,00
-;@s:wgp.cpp
-
-;(world grand prix (us & joystick version set 1 japan)
-;** you must wait untill the hiscore table has displayed in attract mode before **
-;** starting a game, for the save to work **
-;** THIS SAVE DOES NOT SAVE THE COURSE RECORDS **
-wgp:
-wgpu:
-@:maincpu,program,10bbd9,c5,01,02
-@:maincpu,program,10bc9b,1,44,44
-
-
-wgpjoy:
-@:maincpu,program,10bbdd,c5,01,02
-@:maincpu,program,10bc9f,1,44,44
-
-
-;@s:williams.cpp
-
-;*********((red label))
-;*** this saves just the today`s best scores, the all time greatest are ***
-;*** saved using nvram ***
-;defenderb:******defender (blue label)
-defcmnd:
-defence:
-defender:
-defenderb:
-defenderg:
-defenderw:
-galwars2:
-startrkd:
-@:maincpu,program,b260,60,00,48
-
-
-tornado1:
-zero:
-zero2:
-@:maincpu,program,b260,60,00,58
-
-
-;(mayday (set 1))
-batlzone:
-mayday:
-maydaya:
-maydayb:
-@:maincpu,program,b260,3c,00,55
-
-
-;** this saves the daily hiscores(daily buzzards), the joust champions are saved in nv ram **
-;joust:******joust (white/green label)
-;joustr:******joust (solid red label)
-joust:
-joustr:
-joustwr:
-@:maincpu,program,cfa4,54,f1,f5
-
-
-;** this saves the daily hiscores(daily heros), the legendary heros are saved in nv ram **
-;joust2:******joust 2 - survival of the fittest (set 1)
-joust2:
-joust2r1:
-@:maincpu,program,cfaa,54,f1,f9
-
-
-;jin:******jin
-jin:
-@:maincpu,program,a200,3f,30,4e
-
-
-;@s:wiping.cpp
-
-wiping:
-@:maincpu,program,906f,82,03,54
-
-
-rugrats:
-@:maincpu,program,906f,82,10,54
-
-
-;@s:wiz.cpp
-
-scionc:
-@:maincpu,program,c070,50,00,10
-@:maincpu,program,d062,7,10,10
-
-
-wiz:
-wizt:
-wizta:
-@:maincpu,program,c01e,32,00,43
-
-
-scion:
-@:maincpu,program,c070,50,00,1e
-@:maincpu,program,d062,7,10,00
-
-
-;*******kung-fu taikun(By Firebrand)
-kungfut:
-kungfuta:
-@:maincpu,program,c1d3,2c,00,1f
-
-
-stinger:
-stinger2:
-@:maincpu,program,c031,1e,00,00
-@:maincpu,program,c079,6,00,00
-@:maincpu,program,c200,13,1d,23
-
-
-;@s:wrally.cpp
-
-;wrally:******world rally (set1)
-;wrallya:******world rally (set 2)
-;wrallyb:******world rally (us, 930217)
-wrally:
-wrallya:
-wrallyb:
-@:maincpu,program,fef558,288,5a,ff
-
-
-;@s:wyvernf0.cpp
-
-wyvernf0:
-@:maincpu,program,8800,190,00,26
-
-
-;@s:xain.cpp
-
-;(xain`d sleena)(fix)
-solarwar:
-solrwarr:
-xsleena:
-xsleenab:
-xsleenaj:
-@:maincpu,program,33,3,00,00
-@:maincpu,program,1bc7,3c,00,2c
-
-
-;@s:xexex.cpp
-
-xexex:
-xexexa:
-xexexj:
-@:maincpu,program,85000,63,00,1c
-@:maincpu,program,80057,3,00,30
+;@s:wing/superwng.cpp
+superwng:
+@:maincpu,program,7920,c8,00,19
-;@s:xmen.cpp
-xmen:
-xmen2pa:
-xmen2pe:
-xmen2pj:
-xmen2pu:
-xmen6p:
-xmen6pu:
-xmena:
-xmenaa:
-xmene:
-xmenj:
-xmenja:
-@:maincpu,program,113300,168,00,10
+;@s:yunsung/nmg5.cpp
+;wondstck:******Wonder Stick
+wondstck:
+@:maincpu,program,12c354,3b,57,30
-;@s:xxmissio.cpp
-;*******xxmissio (xx mission)
-xxmissio:
-@:maincpu,program,e018,4,00,00
-@:maincpu,program,e084,61,20,20
-@:maincpu,program,c1a0,1,30,30
-@:maincpu,program,c1c0,1,30,30
-@:maincpu,program,c1e0,1,30,30
-@:maincpu,program,c200,1,30,30
-@:maincpu,program,c220,1,33,33
-@:maincpu,program,c240,1,01,01
-@:maincpu,program,c260,1,01,01
+;** tong boy sub-game does not save , driver issues ???? **
+;nmg5e:******Multi 5 / New Multi Game 5 (earlier)
+nmg5:
+nmg5a:
+nmg5e:
+@:maincpu,program,129101,ff,10,40
-;@s:xybots.cpp
+;pclubysa:******Puzzle Club (Yun Sung - set 2)
+pclubys:
+pclubysa:
+@:maincpu,program,20b461,145,3a,64
+@:maincpu,program,20e835,b9,38,64
+@:maincpu,program,206935,ed,14,64
+@:maincpu,program,20b515,91,38,64
-xybots:
-@:maincpu,program,ffac22,ca,00,a4
+;@s:yunsung/paradise.cpp
-;@s:xyonix.cpp
+;madball:******Mad Ball V2.0
+madball:
+madballn:
+@:maincpu,program,eb3b,1e,41,00
+@:maincpu,program,eb57,1,01,01
-;(xyonix)
-xyonix:
-@:maincpu,program,d500,13f,4f,00
-@:maincpu,program,d639,1,08,08
+;******paradise
+paradise:
+paradisea:
+paradisee:
+@:maincpu,program,e6c3,3,00,01
+@:maincpu,program,e6e3,22,41,00
-;@s:yiear.cpp
-yiear:
-@:maincpu,program,5520,8c,00,10
-@:maincpu,program,521c,3,00,40
+;@s:yunsung/yunsun16.cpp
+magicbuba:
+magicbubb:
+magicbubc:
+@:maincpu,program,ffc127,4d,07,20
-yiear2:
-@:maincpu,program,5520,8c,00,10
-@:maincpu,program,521c,3,00,70
+;(magic bubble)
+magicbub:
+@:maincpu,program,ff3c66,4e,00,20
-;@s:yunsun16.cpp
;(shocking)
shocking:
@@ -17969,11 +18806,6 @@ shockingk:
@:maincpu,program,ff0d19,63,41,64
-magicbuba:
-magicbubb:
-@:maincpu,program,ffc127,4d,07,20
-
-
;bombkick:******Bomb Kick
bombkick:
bombkicka:
@@ -17985,12 +18817,7 @@ paprazzi:
@:maincpu,program,ff0d99,27,41,3c
-;(magic bubble)
-magicbub:
-@:maincpu,program,ff3c66,4e,00,20
-
-
-;@s:yunsung8.cpp
+;@s:yunsung/yunsung8.cpp
;(cannon ball)
cannball:
@@ -18003,7 +18830,43 @@ magix:
@:maincpu,program,f888,3,00,01
-;@s:zac2650.cpp
+;@s:zaccaria/galaxia.cpp
+
+galaxia:
+galaxiaa:
+galaxiab:
+galaxiac: ; missing
+@:maincpu,program,1d1d,3,00,00
+@:maincpu,program,1c91,1,55,55
+
+
+;@s:zaccaria/laserbat.cpp
+
+;catnmous:******Cat and Mouse (set 1)
+catnmous:
+catnmousa:
+@:maincpu,program,1f0a,1e,cb,00
+@:maincpu,program,1f24,1,d4,d4
+
+
+;lazarian:******lazarian
+lazarian:
+@:maincpu,program,1f07,1e,00,d4
+
+
+;laserbat:******laser battle
+laserbat:
+@:maincpu,program,1cf1,1e,cb,00
+@:maincpu,program,1d0d,1,60,60
+
+
+;@s:zaccaria/seabattl.cpp
+
+seabattl:
+@:maincpu,program,1c0b,15,00,0a
+
+
+;@s:zaccaria/zac1b1120.cpp
;(super invader attack) (by GeoMan)
sia2650:
@@ -18015,7 +18878,7 @@ tinv2650:
@:maincpu,program,1a5a,1,30,30
-;@s:zaccaria.cpp
+;@s:zaccaria/zaccaria.cpp
;(money money) (by GeoMan)
monymony:
@@ -18037,127 +18900,3 @@ jackrabts:
@:maincpu,program,60fe,1,ff,ff
-;@s:zaxxon.cpp
-
-futspy:
-@:maincpu,program,6419,3c,00,41
-
-
-razmataz:
-@:maincpu,program,66a4,1e,00,00
-@:maincpu,program,6739,3c,25,3e
-
-
-szaxxon:
-zaxxon:
-zaxxon2:
-zaxxon3:
-zaxxonb:
-zaxxonj:
-@:maincpu,program,6100,7e,90,81
-@:maincpu,program,6038,3,00,00
-
-
-congo:
-congoa:
-tiptop:
-@:maincpu,program,8020,7e,90,a1
-@:maincpu,program,80bd,3,00,00
-
-
-;(ixion (prototype))
-ixion:
-@:maincpu,program,610d,1e,00,00
-@:maincpu,program,61d2,1e,23,24
-
-
-;@s:zerozone.cpp
-
-zerozone:
-@:maincpu,program,c17cd,77,53,00
-@:maincpu,program,c23da,6,00,00
-
-
-;*******las vegas girl (girl`94)
-lvgirl94:
-@:maincpu,program,c17cd,77,53,00
-@:maincpu,program,c1840,1,07,07
-@:maincpu,program,c23da,6,00,00
-
-
-;@s:zn.cpp
-
-;******tetris the grand master (japan 980710)
-;** this saves "today`s scores", the game saves the grand master scores using **
-;** nvram (i think !! ,0) **
-tgmj:
-@:maincpu,program,80171198,35,06,64
-
-
-;rvschool:****** rival school & clones do not save top scores team logo ******
-jgakuen:
-jgakuen1:
-rvschool:
-rvschoola:
-rvschoolu:
-@:maincpu,program,1f6524,48,50,0f
-
-
-shiryu2:
-strider2:
-strider2a:
-strider2u:
-@:maincpu,program,4dfe08,a8,01,24
-
-
-;@s:zodiack.cpp
-
-;(dog fight)
-dogfight:
-@:maincpu,program,587e,82,20,ff
-@:maincpu,program,b2df,1,24,24
-@:maincpu,program,b2ff,1,24,24
-@:maincpu,program,b31f,1,03,03
-@:maincpu,program,b33f,1,05,05
-@:maincpu,program,b35f,1,02,02
-@:maincpu,program,b37f,1,00,00
-@:maincpu,program,b39f,1,00,00
-
-
-zodiack:
-@:maincpu,program,5857,37,00,24
-@:maincpu,program,b2df,1,00,00
-@:maincpu,program,b2ff,1,00,00
-@:maincpu,program,b31f,1,01,01
-@:maincpu,program,b33f,1,02,02
-@:maincpu,program,b35f,1,08,08
-@:maincpu,program,b37f,1,00,00
-@:maincpu,program,b39f,1,00,00
-
-
-;(bounty, the) (by GeoMan)
-bounty:
-@:maincpu,program,b1ba,6,0,0
-@:maincpu,program,b23a,6,0,0
-@:maincpu,program,b2ba,6,0,0
-@:maincpu,program,b19a,6,26,27
-@:maincpu,program,b21a,6,26,27
-@:maincpu,program,b29a,6,26,27
-
-
-;(percussor, the) (by GeoMan)
-percuss:
-@:maincpu,program,5da8,37,00,24
-
-
-;Moguchan (by GeoMan)
-moguchan:
-@:maincpu,program,5eda,6,0,0
-
-
-;@s:zwackery.cpp
-
-zwackery:
-@:maincpu,program,842c2,48,42,00
-
-
diff --git a/plugins/hiscore/init.lua b/plugins/hiscore/init.lua
index ded3f0e44d2..8b8dd6c6d23 100644
--- a/plugins/hiscore/init.lua
+++ b/plugins/hiscore/init.lua
@@ -1,19 +1,21 @@
-- hiscore.lua
--- by borgar@borgar.net, WTFPL license
+-- by borgar@borgar.net, CC0 license
--
--- This uses MAME's built-in Lua scripting to implment
+-- This uses MAME's built-in Lua scripting to implement
-- high-score saving with hiscore.dat infom just as older
-- builds did in the past.
--
-local exports = {}
-exports.name = "hiscore"
-exports.version = "1.0.0"
-exports.description = "Hiscore"
-exports.license = "WTFPL license"
-exports.author = { name = "borgar@borgar.net" }
+local exports = {
+ name = 'hiscore',
+ version = '1.0.1',
+ description = 'Hiscore',
+ license = 'CC0',
+ author = { name = 'borgar@borgar.net' } }
+
local hiscore = exports
-local hiscore_plugin_path = ""
+local hiscore_plugin_path
+local reset_subscription, frame_subscription, stop_subscription
function hiscore.set_folder(path)
hiscore_plugin_path = path
@@ -21,44 +23,97 @@ end
function hiscore.startplugin()
+ local function get_data_path()
+ return manager.machine.options.entries.homepath:value():match('([^;]+)') .. '/hiscore'
+ end
+
+ -- configuration
+ local config_read = false
+ local timed_save = true
+
+ -- read configuration file from data directory
+ local function read_config()
+ if config_read then
+ return true
+ end
+ local filename = get_data_path() .. '/plugin.cfg'
+ local file = io.open(filename, 'r')
+ if file then
+ local json = require('json')
+ local parsed_settings = json.parse(file:read('a'))
+ file:close()
+ if parsed_settings then
+ if parsed_settings.only_save_at_exit and (parsed_settings.only_save_at_exit ~= 0) then
+ timed_save = false
+ end
+ -- TODO: other settings? maybe path overrides for hiscore.dat or the hiscore data?
+ config_read = true
+ return true
+ else
+ emu.print_error(string.format('Error loading hiscore plugin settings: error parsing file "%s" as JSON', filename))
+ end
+ end
+ return false
+ end
+
+ -- save configuration file
+ local function save_config()
+ local path = get_data_path()
+ local attr = lfs.attributes(path)
+ if not attr then
+ lfs.mkdir(path)
+ elseif attr.mode ~= 'directory' then
+ emu.print_error(string.format('Error saving hiscore plugin settings: "%s" is not a directory', path))
+ return
+ end
+ local settings = { only_save_at_exit = not timed_save }
+ -- TODO: other settings?
+ local filename = path .. '/plugin.cfg'
+ local json = require('json')
+ local data = json.stringify(settings, { indent = true })
+ local file = io.open(filename, 'w')
+ if not file then
+ emu.print_error(string.format('Error saving hiscore plugin settings: error opening file "%s" for writing', filename))
+ return
+ end
+ file:write(data)
+ file:close()
+ end
+
+ -- build menu
+ local function populate_menu()
+ local items = { }
+ local setting = timed_save and _p('plugin-hiscore', 'When updated') or _p('plugin-hiscore', 'On exit')
+ table.insert(items, { _p('plugin-hiscore', 'Hiscore Support Options'), '', 'off' })
+ table.insert(items, { '---', '', '' })
+ table.insert(items, { _p('plugin-hiscore', 'Save scores'), setting, timed_save and 'l' or 'r' })
+ return items
+ end
+
+ -- handle menu events
+ local function handle_menu(index, event)
+ if event == 'left' then
+ timed_save = false
+ return true
+ elseif event == 'right' then
+ timed_save = true
+ return true
+ end
+ return false
+ end
+
local hiscoredata_path = "hiscore.dat";
- local hiscore_path = "hi";
- local config_path = lfs.env_replace(manager:options().entries.inipath:value():match("[^;]+") .. "/hiscore.ini");
local current_checksum = 0;
local default_checksum = 0;
- local config_read = false;
local scores_have_been_read = false;
local mem_check_passed = false;
local found_hiscore_entry = false;
- local timed_save = true;
local delaytime = 0;
- local positions = {};
- -- Configuration file will be searched in the first path defined
- -- in mame inipath option.
- local function read_config()
- if config_read then return true end;
- local file = io.open( config_path, "r" );
- if file then
- file:close()
- emu.print_verbose( "hiscore: config found" );
- local _conf = {}
- for line in io.lines(config_path) do
- token, value = string.match(line, '([^ ]+) ([^ ]+)');
- _conf[token] = value;
- end
- hiscore_path = lfs.env_replace(_conf["hi_path"] or hiscore_path);
- timed_save = _conf["only_save_at_exit"] ~= "1"
- -- hiscoredata_path = _conf["dat_path"]; -- don't know if I should do it, but wathever
- return true
- end
- return false
- end
-
local function parse_table ( dsting )
- local _table = {};
+ local _table = {}
for line in string.gmatch(dsting, '([^\n]+)') do
local delay = line:match('^@delay=([.%d]*)')
if delay and #delay > 0 then
@@ -66,13 +121,13 @@ function hiscore.startplugin()
else
local cpu, mem;
local cputag, space, offs, len, chk_st, chk_ed, fill = string.match(line, '^@([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),?(%x?%x?)');
- cpu = manager:machine().devices[cputag];
+ cpu = manager.machine.devices[cputag];
if not cpu then
error(cputag .. " device not found")
end
local rgnname, rgntype = space:match("([^/]*)/?([^/]*)")
if rgntype == "share" then
- mem = manager:machine():memory().shares[rgnname]
+ mem = manager.machine.memory.shares[rgnname]
else
mem = cpu.spaces[space]
end
@@ -120,7 +175,7 @@ function hiscore.startplugin()
end
elseif string.find(line, rm_match) then --- match this game
current_is_match = true;
- elseif string.find(line, '^[a-z0-9_]+:') then --- some game
+ elseif string.find(line, '^[a-z0-9_,]+:') then --- some game
if current_is_match and string.len(cluster) > 0 then
break; -- we're done
end
@@ -152,13 +207,13 @@ function hiscore.startplugin()
end
- local function get_file_name ()
+ local function get_file_name()
local r;
if emu.softname() ~= "" then
local soft = emu.softname():match("([^:]*)$")
- r = hiscore_path .. '/' .. emu.romname() .. "_" .. soft .. ".hi";
+ r = get_data_path() .. '/' .. emu.romname() .. "_" .. soft .. ".hi";
else
- r = hiscore_path .. '/' .. emu.romname() .. ".hi";
+ r = get_data_path() .. '/' .. emu.romname() .. ".hi";
end
return r;
end
@@ -169,13 +224,13 @@ function hiscore.startplugin()
local output = io.open(get_file_name(), "wb");
if not output then
-- attempt to create the directory, and try again
- lfs.mkdir( hiscore_path );
+ lfs.mkdir(get_data_path());
output = io.open(get_file_name(), "wb");
end
emu.print_verbose("hiscore: write_scores output")
if output then
for ri,row in ipairs(posdata) do
- t = {};
+ t = {}
for i=0,row["size"]-1 do
t[i+1] = row["mem"]:read_u8(row["addr"] + i)
end
@@ -262,25 +317,25 @@ function hiscore.startplugin()
end
local function reset()
- -- the notifier will still be attached even if the running game has no hiscore.dat entry
- if mem_check_passed and found_hiscore_entry then
- local checksum = check_scores(positions)
- if checksum ~= current_checksum and checksum ~= default_checksum then
- write_scores(positions)
+ -- the notifier will still be attached even if the running game has no hiscore.dat entry
+ if mem_check_passed and found_hiscore_entry then
+ local checksum = check_scores(positions)
+ if checksum ~= current_checksum and checksum ~= default_checksum then
+ write_scores(positions)
+ end
end
- end
- found_hiscore_entry = false
- mem_check_passed = false
- scores_have_been_read = false;
+ found_hiscore_entry = false
+ mem_check_passed = false
+ scores_have_been_read = false;
end
- emu.register_start(function()
+ reset_subscription = emu.add_machine_reset_notifier(function ()
found_hiscore_entry = false
mem_check_passed = false
scores_have_been_read = false;
last_write_time = -10
emu.print_verbose("Starting " .. emu.gamename())
- config_read = read_config();
+ read_config();
local dat = read_hiscore_dat()
if dat and dat ~= "" then
emu.print_verbose( "hiscore: found hiscore.dat entry for " .. emu.romname() );
@@ -299,17 +354,23 @@ function hiscore.startplugin()
found_hiscore_entry = true
end
end)
- emu.register_frame(function()
+
+ frame_subscription = emu.add_machine_frame_notifier(function ()
if found_hiscore_entry then
tick()
end
end)
- emu.register_stop(function()
+
+ stop_subscription = emu.add_machine_stop_notifier(function ()
reset()
+ save_config()
end)
- emu.register_prestart(function()
+
+ emu.register_prestart(function ()
reset()
end)
+
+ emu.register_menu(handle_menu, populate_menu, _p('plugin-hiscore', 'Hiscore Support'))
end
return exports
diff --git a/plugins/hiscore/plugin.json b/plugins/hiscore/plugin.json
index 62e02e431d6..a77184d3016 100644
--- a/plugins/hiscore/plugin.json
+++ b/plugins/hiscore/plugin.json
@@ -2,7 +2,7 @@
"plugin": {
"name": "hiscore",
"description": "Hiscore support",
- "version": "1.0.0",
+ "version": "1.0.1",
"author": "borgar@borgar.net",
"type": "plugin",
"start": "false"
diff --git a/plugins/inputmacro/init.lua b/plugins/inputmacro/init.lua
new file mode 100644
index 00000000000..9c520f3a503
--- /dev/null
+++ b/plugins/inputmacro/init.lua
@@ -0,0 +1,140 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Vas Crabb
+local exports = {
+ name = 'inputmacro',
+ version = '0.0.1',
+ description = 'Input macro plugin',
+ license = 'BSD-3-Clause',
+ author = { name = 'Vas Crabb' } }
+
+
+local inputmacro = exports
+
+local frame_subscription, stop_subscription
+
+function inputmacro.startplugin()
+ --[[
+ Configuration data:
+ * name: display name (string)
+ * binding: activation sequence (input sequence)
+ * bindingcfg: activation sequence configuration (string)
+ * earlycancel: cancel or complete on release (Boolean)
+ * loop: -1 = release, 0 = prolong, >0 = loop to step on hold (integer)
+ * steps:
+ * inputs:
+ * port: port tag (string)
+ * mask: port field mask (integer)
+ * type: port field type (integer)
+ * field: field (I/O port field)
+ * delay: delay before activating inputs in frames (integer)
+ * duration: duration to activate inputs for (integer)
+
+ Live state:
+ * step: current step (integer or nil)
+ * frame: frame of current step, starting at 1 (integer)
+ ]]
+ local macros = { }
+ local active_inputs = { }
+ local menu
+ local input
+
+ local function activate_inputs(inputs)
+ for index, input in ipairs(inputs) do
+ if input.field then
+ active_inputs[string.format('%s.%d.%d', input.port, input.mask, input.type)] = input.field
+ end
+ end
+ end
+
+ local function process_frame()
+ local previous_inputs = active_inputs
+ active_inputs = { }
+
+ for index, macro in ipairs(macros) do
+ if macro.step then
+ if macro.earlycancel and (not input:seq_pressed(macro.binding)) then
+ -- stop immediately on release if early cancel set
+ macro.step = nil
+ else
+ -- advance frame
+ macro.frame = macro.frame + 1
+ local step = macro.steps[macro.step]
+ if macro.frame > (step.delay + step.duration) then
+ if macro.step < #macro.steps then
+ -- not the last step, advance step
+ macro.step = macro.step + 1
+ macro.frame = 1
+ step = macro.steps[macro.step]
+ elseif not input:seq_pressed(macro.binding) then
+ -- input released and macro completed
+ macro.step = nil
+ step = nil
+ elseif macro.loop > 0 then
+ -- loop to step
+ macro.step = macro.loop
+ macro.frame = 1
+ elseif macro.loop < 0 then
+ -- release if held
+ step = nil
+ end
+ end
+ if step and (macro.frame > step.delay) then
+ activate_inputs(step.inputs)
+ end
+ end
+ elseif input:seq_pressed(macro.binding) then
+ -- initial activation
+ macro.step = 1
+ macro.frame = 1
+ local step = macro.steps[1]
+ if step.delay == 0 then
+ -- no delay on first step, activate inputs
+ activate_inputs(step.inputs)
+ end
+ end
+ end
+
+ for key, field in pairs(active_inputs) do
+ field:set_value(1)
+ end
+ for key, field in pairs(previous_inputs) do
+ if not active_inputs[key] then
+ field:clear_value()
+ end
+ end
+ end
+
+ local function start()
+ input = manager.machine.input
+ local persister = require('inputmacro/inputmacro_persist')
+ macros = persister.load_settings()
+ end
+
+ local function stop()
+ local persister = require('inputmacro/inputmacro_persist')
+ persister:save_settings(macros)
+
+ macros = { }
+ active_inputs = { }
+ menu = nil
+ end
+
+ local function menu_callback(index, event)
+ return menu:handle_event(index, event)
+ end
+
+ local function menu_populate()
+ if not menu then
+ menu = require('inputmacro/inputmacro_menu')
+ menu:init(macros)
+ end
+ return menu:populate()
+ end
+
+ frame_subscription = emu.add_machine_frame_notifier(process_frame)
+ emu.register_prestart(start)
+ stop_subscription = emu.add_machine_stop_notifier(stop)
+ emu.register_menu(menu_callback, menu_populate, _p('plugin-inputmacro', 'Input Macros'))
+end
+
+return exports
diff --git a/plugins/inputmacro/inputmacro_menu.lua b/plugins/inputmacro/inputmacro_menu.lua
new file mode 100644
index 00000000000..48fef405d0f
--- /dev/null
+++ b/plugins/inputmacro/inputmacro_menu.lua
@@ -0,0 +1,624 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Vas Crabb
+
+
+-- Constants
+
+local MENU_TYPES = { MACROS = 0, ADD = 1, EDIT = 2, INPUT = 3 }
+
+
+-- Globals
+
+local commonui
+local macros
+local menu_stack
+
+local macros_start_macro -- really for the macros menu, but has to be declared local before edit menu functions
+
+
+-- Helpers
+
+local function new_macro()
+ local function check_name(n)
+ for index, macro in ipairs(macros) do
+ if macro.name == n then
+ return false
+ end
+ end
+ return true
+ end
+
+ local name = _p('plugin-inputmacro', 'New macro')
+ local number = 1
+ while not check_name(name) do
+ number = number + 1
+ name = string.format(_p('plugin-inputmacro', 'New macro %d'), number)
+ end
+ return {
+ name = name,
+ binding = nil,
+ bindingcfg = '',
+ earlycancel = true,
+ loop = -1,
+ steps = {
+ {
+ inputs = {
+ {
+ port = nil,
+ mask = nil,
+ type = nil,
+ field = nil } },
+ delay = 0,
+ duration = 1 } } }
+end
+
+
+-- Input menu
+
+local input_menu
+local input_start_field
+
+function start_input_menu(handler, start_field)
+ local function supported(f)
+ if f.is_analog or f.is_toggle then
+ return false
+ elseif (f.type_class == 'config') or (f.type_class == 'dipswitch') then
+ return false
+ else
+ return true
+ end
+ end
+
+ local function action(field)
+ if field then
+ handler(field)
+ end
+ table.remove(menu_stack)
+ input_menu = nil
+ input_start_field = nil
+ end
+
+ if not commonui then
+ commonui = require('commonui')
+ end
+ input_menu = commonui.input_selection_menu(action, _p('plugin-inputmacro', 'Set Input'), supported)
+ input_start_field = start_field
+ table.insert(menu_stack, MENU_TYPES.INPUT)
+end
+
+local function handle_input(index, action)
+ return input_menu:handle(index, action)
+end
+
+local function populate_input()
+ return input_menu:populate(input_start_field)
+end
+
+
+-- Add/edit menus
+
+local edit_current_macro
+local edit_start_selection
+local edit_start_step
+local edit_menu_active
+local edit_insert_position
+local edit_name_buffer
+local edit_items
+local edit_item_exit
+local edit_switch_poller
+
+local function current_macro_complete()
+ if not edit_current_macro.binding then
+ return false
+ end
+ local laststep = edit_current_macro.steps[#edit_current_macro.steps]
+ if not laststep.inputs[#laststep.inputs].field then
+ return false
+ end
+ return true
+end
+
+local function handle_edit_items(index, event)
+ if edit_switch_poller then
+ if edit_switch_poller:poll() then
+ if edit_switch_poller.sequence then
+ edit_current_macro.binding = edit_switch_poller.sequence
+ edit_current_macro.bindingcfg = manager.machine.input:seq_to_tokens(edit_switch_poller.sequence)
+ end
+ edit_switch_poller = nil
+ return true
+ end
+ return false
+ end
+
+ local command = edit_items[index]
+
+ local namecancel = false
+ if edit_name_buffer and ((not command) or (command.action ~= 'name')) then
+ edit_name_buffer = nil
+ namecancel = true
+ end
+
+ if not command then
+ return namecancel
+ elseif command.action == 'name' then
+ local function namechar()
+ local ch = tonumber(event)
+ if not ch then
+ return nil
+ elseif (ch >= 0x100) or ((ch & 0x7f) >= 0x20) or (ch == 0x08) then
+ return utf8.char(ch)
+ else
+ return nil
+ end
+ end
+
+ if edit_name_buffer then
+ if event == 'select' then
+ if #edit_name_buffer > 0 then
+ edit_current_macro.name = edit_name_buffer
+ end
+ edit_name_buffer = nil
+ return true
+ elseif event == 'back' then
+ return true -- swallow back while editing text
+ elseif event == 'cancel' then
+ edit_name_buffer = nil
+ return true
+ else
+ local char = namechar()
+ if char == '\b' then
+ edit_name_buffer = edit_name_buffer:gsub('[%z\1-\127\192-\255][\128-\191]*$', '')
+ return true
+ elseif char then
+ edit_name_buffer = edit_name_buffer .. char
+ return true
+ end
+ end
+ elseif event == 'select' then
+ edit_name_buffer = edit_current_macro.name
+ return true
+ else
+ local char = namechar()
+ if char == '\b' then
+ edit_name_buffer = ''
+ return true
+ elseif char then
+ edit_name_buffer = char
+ return true
+ end
+ end
+ elseif command.action == 'binding' then
+ if event == 'select' then
+ if not commonui then
+ commonui = require('commonui')
+ end
+ edit_switch_poller = commonui.switch_polling_helper()
+ return true
+ end
+ elseif command.action == 'releaseaction' then
+ if (event == 'select') or (event == 'left') or (event == 'right') then
+ edit_current_macro.earlycancel = not edit_current_macro.earlycancel
+ return true
+ end
+ elseif command.action == 'holdaction' then
+ if event == 'left' then
+ edit_current_macro.loop = edit_current_macro.loop - 1
+ return true
+ elseif event == 'right' then
+ edit_current_macro.loop = edit_current_macro.loop + 1
+ return true
+ elseif event == 'clear' then
+ edit_current_macro.loop = -1
+ return true
+ end
+ elseif command.action == 'delay' then
+ local step = edit_current_macro.steps[command.step]
+ if event == 'left' then
+ step.delay = step.delay - 1
+ return true
+ elseif event == 'right' then
+ step.delay = step.delay + 1
+ return true
+ elseif event == 'clear' then
+ step.delay = 0
+ return true
+ end
+ elseif command.action == 'duration' then
+ local step = edit_current_macro.steps[command.step]
+ if event == 'left' then
+ step.duration = step.duration - 1
+ return true
+ elseif event == 'right' then
+ step.duration = step.duration + 1
+ return true
+ elseif event == 'clear' then
+ step.duration = 1
+ return true
+ end
+ elseif command.action == 'input' then
+ local inputs = edit_current_macro.steps[command.step].inputs
+ if event == 'select' then
+ local function hanlder(field)
+ inputs[command.input].port = field.port.tag
+ inputs[command.input].mask = field.mask
+ inputs[command.input].type = field.type
+ inputs[command.input].field = field
+ end
+ start_input_menu(hanlder, inputs[command.input].field)
+ edit_start_selection = index
+ return true
+ elseif event == 'clear' then
+ if #inputs > 1 then
+ table.remove(inputs, command.input)
+ return true
+ end
+ end
+ elseif command.action == 'addinput' then
+ if event == 'select' then
+ local inputs = edit_current_macro.steps[command.step].inputs
+ local function handler(field)
+ local newinput = {
+ port = field.port.tag,
+ mask = field.mask,
+ type = field.type,
+ field = field }
+ table.insert(inputs, newinput)
+ end
+ start_input_menu(handler)
+ edit_start_selection = index
+ return true
+ end
+ elseif command.action == 'deletestep' then
+ if event == 'select' then
+ table.remove(edit_current_macro.steps, command.step)
+ if edit_current_macro.loop > #edit_current_macro.steps then
+ edit_current_macro.loop = -1
+ elseif edit_current_macro.loop > command.step then
+ edit_current_macro.loop = edit_current_macro.loop - 1
+ end
+ if edit_insert_position > command.step then
+ edit_insert_position = edit_insert_position - 1
+ end
+ edit_start_step = command.step
+ if edit_start_step > #edit_current_macro.steps then
+ edit_start_step = edit_start_step - 1
+ end
+ return true
+ end
+ elseif command.action == 'addstep' then
+ if event == 'select' then
+ local steps = edit_current_macro.steps
+ local function handler(field)
+ local newstep = {
+ inputs = {
+ {
+ port = field.port.tag,
+ mask = field.mask,
+ type = field.type,
+ field = field } },
+ delay = 0,
+ duration = 1 }
+ table.insert(steps, edit_insert_position, newstep)
+ if edit_current_macro.loop >= edit_insert_position then
+ edit_current_macro.loop = edit_current_macro.loop + 1
+ end
+ edit_start_step = edit_insert_position
+ edit_insert_position = edit_insert_position + 1
+ end
+ start_input_menu(handler)
+ edit_start_selection = index
+ return true
+ elseif event == 'left' then
+ edit_insert_position = edit_insert_position - 1
+ return true
+ elseif event == 'right' then
+ edit_insert_position = edit_insert_position + 1
+ return true
+ end
+ end
+
+ local selection
+ if command.step then
+ if event == 'prevgroup' then
+ if command.step > 1 then
+ local found_break = false
+ selection = index - 1
+ while (not edit_items[selection]) or (edit_items[selection].step == command.step) do
+ selection = selection - 1
+ end
+ local step = edit_items[selection].step
+ while edit_items[selection - 1] and (edit_items[selection - 1].step == step) do
+ selection = selection - 1
+ end
+ end
+ elseif event == 'nextgroup' then
+ if command.step < #edit_current_macro.steps then
+ selection = index + 1
+ while (not edit_items[selection]) or (edit_items[selection].step == command.step) do
+ selection = selection + 1
+ end
+ end
+ end
+ end
+ return namecancel, selection
+end
+
+local function add_edit_items(items)
+ edit_items = { }
+ local input = manager.machine.input
+ local arrows
+
+ table.insert(items, { _p('plugin-inputmacro', 'Name'), edit_name_buffer and (edit_name_buffer .. '_') or edit_current_macro.name, '' })
+ edit_items[#items] = { action = 'name' }
+ if not (edit_start_selection or edit_start_step or edit_menu_active) then
+ edit_start_selection = #items
+ end
+ edit_menu_active = true
+
+ local binding = edit_current_macro.binding
+ local activation = binding and input:seq_name(binding) or _p('plugin-inputmacro', '[not set]')
+ table.insert(items, { _p('plugin-inputmacro', 'Activation combination'), activation, edit_switch_poller and 'lr' or '' })
+ edit_items[#items] = { action = 'binding' }
+
+ local releaseaction = edit_current_macro.earlycancel and _p('plugin-inputmacro', 'Stop immediately') or _p('plugin-inputmacro', 'Complete macro')
+ table.insert(items, { _p('plugin-inputmacro', 'On release'), releaseaction, edit_current_macro.earlycancel and 'r' or 'l' })
+ edit_items[#items] = { action = 'releaseaction' }
+
+ local holdaction
+ arrows = 'lr'
+ if edit_current_macro.loop < 0 then
+ holdaction = _p('plugin-inputmacro', 'Release')
+ arrows = 'r'
+ elseif edit_current_macro.loop > 0 then
+ holdaction = string.format(_p('plugin-inputmacro', 'Loop to step %d'), edit_current_macro.loop)
+ if edit_current_macro.loop >= #edit_current_macro.steps then
+ arrows = 'l'
+ end
+ else
+ holdaction = string.format(_p('plugin-inputmacro', 'Prolong step %d'), #edit_current_macro.steps)
+ end
+ table.insert(items, { _p('plugin-inputmacro', 'When held'), holdaction, arrows })
+ edit_items[#items] = { action = 'holdaction' }
+
+ for i, step in ipairs(edit_current_macro.steps) do
+ table.insert(items, { string.format(_p('plugin-inputmacro', 'Step %d'), i), '', 'heading' })
+ table.insert(items, { _p('plugin-inputmacro', 'Delay (frames)'), tostring(step.delay), (step.delay > 0) and 'lr' or 'r' })
+ edit_items[#items] = { action = 'delay', step = i }
+ if edit_start_step == i then
+ edit_start_selection = #items
+ end
+
+ table.insert(items, { _p('plugin-inputmacro', 'Duration (frames)'), tostring(step.duration), (step.duration > 1) and 'lr' or 'r' })
+ edit_items[#items] = { action = 'duration', step = i }
+
+ for j, input in ipairs(step.inputs) do
+ local inputname
+ if input.field then
+ inputname = input.field.name
+ elseif input.port then
+ inputname = _p('plugin-inputmacro', 'n/a')
+ else
+ inputname = _p('plugin-inputmacro', '[not set]')
+ end
+ table.insert(items, { string.format(_p('plugin-inputmacro', 'Input %d'), j), inputname, '' })
+ edit_items[#items] = { action = 'input', step = i, input = j }
+ end
+
+ if step.inputs[#step.inputs].field then
+ table.insert(items, { _p('plugin-inputmacro', 'Add input'), '', '' })
+ edit_items[#items] = { action = 'addinput', step = i }
+ end
+
+ if #edit_current_macro.steps > 1 then
+ table.insert(items, { _p('plugin-inputmacro', 'Delete step'), '', '' })
+ edit_items[#items] = { action = 'deletestep', step = i }
+ end
+ end
+ edit_start_step = nil
+
+ local laststep = edit_current_macro.steps[#edit_current_macro.steps]
+ if laststep.inputs[#laststep.inputs].field then
+ table.insert(items, { '---', '', '' })
+
+ arrows = 'lr'
+ if edit_insert_position > #edit_current_macro.steps then
+ arrows = 'l'
+ elseif edit_insert_position < 2 then
+ arrows = 'r'
+ end
+ table.insert(items, { _p('plugin-inputmacro', 'Add step at position'), tostring(edit_insert_position), arrows })
+ edit_items[#items] = { action = 'addstep', step = i }
+ end
+end
+
+local function handle_add(index, event)
+ local handled, selection = handle_edit_items(index, event)
+ if handled then
+ return true, selection
+ elseif event == 'back' then
+ edit_current_macro = nil
+ edit_menu_active = false
+ edit_items = nil
+ table.remove(menu_stack)
+ return true, selection
+ elseif (index == edit_item_exit) and (event == 'select') then
+ if current_macro_complete() then
+ table.insert(macros, edit_current_macro)
+ macros_start_macro = #macros
+ end
+ edit_menu_active = false
+ edit_current_macro = nil
+ edit_items = nil
+ table.remove(menu_stack)
+ return true, selection
+ end
+ return false, selection
+end
+
+local function handle_edit(index, event)
+ local handled, selection = handle_edit_items(index, event)
+ if handled then
+ return true, selection
+ elseif (event == 'back') or ((index == edit_item_exit) and (event == 'select')) then
+ edit_current_macro = nil
+ edit_menu_active = false
+ edit_items = nil
+ table.remove(menu_stack)
+ return true, selection
+ end
+ return false, selection
+end
+
+local function populate_add()
+ local items = { }
+
+ table.insert(items, { _p('plugin-inputmacro', 'Add Input Macro'), '', 'off' })
+ table.insert(items, { '---', '', '' })
+
+ add_edit_items(items)
+
+ table.insert(items, { '---', '', '' })
+ if current_macro_complete() then
+ table.insert(items, { _p('plugin-inputmacro', 'Create'), '', '' })
+ else
+ table.insert(items, { _p('plugin-inputmacro', 'Cancel'), '', '' })
+ end
+ edit_item_exit = #items
+
+ local selection = edit_start_selection
+ edit_start_selection = nil
+ if edit_switch_poller then
+ return edit_switch_poller:overlay(items, selection, 'lrrepeat')
+ else
+ return items, selection, 'lrrepeat' .. (edit_name_buffer and ' ignorepause' or '')
+ end
+end
+
+local function populate_edit()
+ local items = { }
+
+ table.insert(items, { _p('plugin-inputmacro', 'Edit Input Macro'), '', 'off' })
+ table.insert(items, { '---', '', '' })
+
+ add_edit_items(items)
+
+ table.insert(items, { '---', '', '' })
+ table.insert(items, { _p('plugin-inputmacro', 'Done'), '', '' })
+ edit_item_exit = #items
+
+ local selection = edit_start_selection
+ edit_start_selection = nil
+ if edit_switch_poller then
+ return edit_switch_poller:overlay(items, selection, 'lrrepeat')
+ else
+ return items, selection, 'lrrepeat' .. (edit_name_buffer and ' ignorepause' or '')
+ end
+end
+
+
+-- Macros menu
+
+local macros_item_first_macro
+local macros_selection_save
+local macros_item_add
+
+function handle_macros(index, event)
+ if index == macros_item_add then
+ if event == 'select' then
+ edit_current_macro = new_macro()
+ edit_insert_position = #edit_current_macro.steps + 1
+ macros_selection_save = index
+ table.insert(menu_stack, MENU_TYPES.ADD)
+ return true
+ end
+ elseif index >= macros_item_first_macro then
+ macro = index - macros_item_first_macro + 1
+ if event == 'select' then
+ edit_current_macro = macros[macro]
+ edit_insert_position = #edit_current_macro.steps + 1
+ macros_selection_save = index
+ table.insert(menu_stack, MENU_TYPES.EDIT)
+ return true
+ elseif event == 'clear' then
+ table.remove(macros, macro)
+ if #macros > 0 then
+ macros_selection_save = index
+ if macro > #macros then
+ macros_selection_save = macros_selection_save - 1
+ end
+ end
+ return true
+ end
+ end
+ return false
+end
+
+function populate_macros()
+ local input = manager.machine.input
+ local ioport = manager.machine.ioport
+ local items = { }
+
+ table.insert(items, { _p('plugin-inputmacro', 'Input Macros'), '', 'off' })
+ table.insert(items, { string.format(_p('plugin-inputmacro', 'Press %s to delete'), manager.ui:get_general_input_setting(ioport:token_to_input_type('UI_CLEAR'))), '', 'off' })
+ table.insert(items, { '---', '', '' })
+
+ macros_item_first_macro = #items + 1
+ if #macros > 0 then
+ for index, macro in ipairs(macros) do
+ table.insert(items, { macro.name, input:seq_name(macro.binding), '' })
+ if macros_start_macro == index then
+ macros_selection_save = #items
+ end
+ end
+ else
+ table.insert(items, { _p('plugin-inputmacro', '[no macros]'), '', 'off' })
+ end
+ macros_start_macro = nil
+
+ table.insert(items, { '---', '', '' })
+ table.insert(items, { _p('plugin-inputmacro', 'Add macro'), '', '' })
+ macros_item_add = #items
+
+ local selection = macros_selection_save
+ macros_selection_save = nil
+ return items, selection
+end
+
+
+-- Entry points
+
+local lib = { }
+
+function lib:init(m)
+ macros = m
+ menu_stack = { MENU_TYPES.MACROS }
+end
+
+function lib:handle_event(index, event)
+ local current = menu_stack[#menu_stack]
+ if current == MENU_TYPES.MACROS then
+ return handle_macros(index, event)
+ elseif current == MENU_TYPES.ADD then
+ return handle_add(index, event)
+ elseif current == MENU_TYPES.EDIT then
+ return handle_edit(index, event)
+ elseif current == MENU_TYPES.INPUT then
+ return handle_input(index, event)
+ end
+end
+
+function lib:populate()
+ local current = menu_stack[#menu_stack]
+ if current == MENU_TYPES.MACROS then
+ return populate_macros()
+ elseif current == MENU_TYPES.ADD then
+ return populate_add()
+ elseif current == MENU_TYPES.EDIT then
+ return populate_edit()
+ elseif current == MENU_TYPES.INPUT then
+ return populate_input()
+ end
+end
+
+return lib
diff --git a/plugins/inputmacro/inputmacro_persist.lua b/plugins/inputmacro/inputmacro_persist.lua
new file mode 100644
index 00000000000..b8670800fa4
--- /dev/null
+++ b/plugins/inputmacro/inputmacro_persist.lua
@@ -0,0 +1,155 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Vas Crabb
+
+
+-- Helpers
+
+local function settings_path()
+ return manager.machine.options.entries.homepath:value():match('([^;]+)') .. '/inputmacro'
+end
+
+local function settings_filename()
+ return emu.romname() .. '.cfg'
+end
+
+local function make_macro(setting)
+ if (setting.name == nil) or (setting.binding == nil) or (setting.earlycancel == nil) or (setting.loop == nil) or (setting.steps == nil) then
+ return nil
+ end
+
+ local result = {
+ name = setting.name,
+ binding = manager.machine.input:seq_from_tokens(setting.binding),
+ bindingcfg = setting.binding,
+ earlycancel = setting.earlycancel,
+ loop = setting.loop,
+ steps = { } }
+
+ local ioport = manager.machine.ioport
+ for i, step in ipairs(setting.steps) do
+ if step.inputs and step.delay and step.duration then
+ local s = {
+ inputs = { },
+ delay = step.delay,
+ duration = step.duration }
+ for j, input in ipairs(step.inputs) do
+ if input.port and input.mask and input.type then
+ local ipt = {
+ port = input.port,
+ mask = input.mask,
+ type = ioport:token_to_input_type(input.type) }
+ local port = ioport.ports[input.port]
+ if port then
+ local field = port:field(input.mask)
+ if field and (field.type == ipt.type) then
+ ipt.field = field
+ end
+ end
+ table.insert(s.inputs, ipt)
+ end
+ end
+ if #s.inputs > 0 then
+ table.insert(result.steps, s)
+ end
+ end
+ end
+
+ if result.loop > #result.steps then
+ result.loop = -1
+ end
+
+ if #result.steps > 0 then
+ return result
+ else
+ return nil
+ end
+end
+
+local function make_settings(macros)
+ local input = manager.machine.input
+ local ioport = manager.machine.ioport
+ local result = { }
+ for i, macro in ipairs(macros) do
+ local m = {
+ name = macro.name,
+ binding = macro.bindingcfg,
+ earlycancel = macro.earlycancel,
+ loop = macro.loop,
+ steps = { } }
+ table.insert(result, m)
+ for j, step in ipairs(macro.steps) do
+ local s = {
+ inputs = { },
+ delay = step.delay,
+ duration = step.duration }
+ table.insert(m.steps, s)
+ for k, input in ipairs(step.inputs) do
+ local b = {
+ port = input.port,
+ mask = input.mask,
+ type = ioport:input_type_to_token(input.type) }
+ table.insert(s.inputs, b)
+ end
+ end
+ end
+ return result
+end
+
+
+-- Entry points
+
+local lib = { }
+
+function lib:load_settings()
+ local filename = settings_path() .. '/' .. settings_filename()
+ local file = io.open(filename, 'r')
+ if not file then
+ return { }
+ end
+ local json = require('json')
+ local settings = json.parse(file:read('a'))
+ file:close()
+ if not settings then
+ emu.print_error(string.format('Error loading input macros: error parsing file "%s" as JSON', filename))
+ return { }
+ end
+
+ result = { }
+ for index, setting in ipairs(settings) do
+ local macro = make_macro(setting)
+ if macro then
+ table.insert(result, macro)
+ end
+ end
+ return result
+end
+
+function lib:save_settings(macros)
+ local path = settings_path()
+ local stat = lfs.attributes(path)
+ if stat and (stat.mode ~= 'directory') then
+ emu.print_error(string.format('Error saving input macros: "%s" is not a directory', path))
+ return
+ end
+ local filename = path .. '/' .. settings_filename()
+
+ if #macros == 0 then
+ os.remove(filename)
+ return
+ elseif not stat then
+ lfs.mkdir(path)
+ end
+
+ local json = require('json')
+ local settings = make_settings(macros)
+ local text = json.stringify(settings, { indent = true })
+ local file = io.open(filename, 'w')
+ if not file then
+ emu.print_error(string.format('Error saving input macros: error opening file "%s" for writing', filename))
+ return
+ end
+ file:write(text)
+ file:close()
+end
+
+return lib
diff --git a/plugins/inputmacro/plugin.json b/plugins/inputmacro/plugin.json
new file mode 100644
index 00000000000..2d209fca116
--- /dev/null
+++ b/plugins/inputmacro/plugin.json
@@ -0,0 +1,10 @@
+{
+ "plugin": {
+ "name": "inputmacro",
+ "description": "Input macro plugin",
+ "version": "0.0.1",
+ "author": "Vas Crabb",
+ "type": "plugin",
+ "start": "false"
+ }
+}
diff --git a/plugins/layout/init.lua b/plugins/layout/init.lua
index 8301167633e..f3b1094ef55 100644
--- a/plugins/layout/init.lua
+++ b/plugins/layout/init.lua
@@ -2,33 +2,67 @@
-- copyright-holders:Carl
-- Layout scripts should return a table and a string. The table can have two optional keys reset and frame
-- which have functions for values called on reset and frame draw respectively and the string is a unique name.
-local exports = {}
-exports.name = "layout"
-exports.version = "0.0.1"
-exports.description = "Layout helper plugin"
-exports.license = "The BSD 3-Clause License"
-exports.author = { name = "Carl" }
+local exports = {
+ name = "layout",
+ version = "0.0.1",
+ description = "Layout helper plugin",
+ license = "BSD-3-Clause",
+ author = { name = "Carl" } }
local layout = exports
+local frame_subscription, stop_subscription
+
function layout.startplugin()
local scripts = {}
- local function prepare_layout(script)
- local env = { machine = manager:machine(), pairs = pairs, ipairs = ipairs,
- table = { insert = table.insert, remove = table.remove } }
+ local function prepare_layout(file, script)
+ local env = {
+ machine = manager.machine,
+ emu = {
+ device_enumerator = emu.device_enumerator,
+ palette_enumerator = emu.palette_enumerator,
+ screen_enumerator = emu.screen_enumerator,
+ cassette_enumerator = emu.cassette_enumerator,
+ image_enumerator = emu.image_enumerator,
+ slot_enumerator = emu.slot_enumerator,
+ attotime = emu.attotime,
+ render_bounds = emu.render_bounds,
+ render_color = emu.render_color,
+ bitmap_ind8 = emu.bitmap_ind8,
+ bitmap_ind16 = emu.bitmap_ind16,
+ bitmap_ind32 = emu.bitmap_ind32,
+ bitmap_ind64 = emu.bitmap_ind64,
+ bitmap_yuy16 = emu.bitmap_yuy16,
+ bitmap_rgb32 = emu.bitmap_rgb32,
+ bitmap_argb32 = emu.bitmap_argb32,
+ print_verbose = emu.print_verbose,
+ print_error = emu.print_error,
+ print_warning = emu.print_warning,
+ print_info = emu.print_info,
+ print_debug = emu.print_debug },
+ file = file,
+ math = math,
+ print = print,
+ pairs = pairs,
+ ipairs = ipairs,
+ string = string,
+ tonumber = tonumber,
+ tostring = tostring,
+ table = table }
local script, err = load(script, script, "t", env)
if not script then
- emu.print_verbose("error loading layout script " .. err)
+ emu.print_warning("error loading layout script " .. err)
return
end
- local name
- script, name = script()
- scripts[name] = script
+ local hooks = script()
+ if hooks ~= nil then
+ table.insert(scripts, hooks)
+ end
end
emu.register_callback(prepare_layout, "layout")
- emu.register_frame(function()
- if manager:machine().paused then
+ frame_subscription = emu.add_machine_frame_notifier(function ()
+ if manager.machine.paused then
return
end
for num, scr in pairs(scripts) do
@@ -37,14 +71,16 @@ function layout.startplugin()
end
end
end)
- emu.register_start(function()
+ emu.register_prestart(function ()
for num, scr in pairs(scripts) do
if scr.reset then
scr.reset()
end
end
end)
- emu.register_stop(function() scripts = {} end)
+ stop_subscription = emu.add_machine_stop_notifier(function ()
+ scripts = {}
+ end)
end
return exports
diff --git a/plugins/layout/plugin.json b/plugins/layout/plugin.json
index 996e09d6a07..706464157b9 100644
--- a/plugins/layout/plugin.json
+++ b/plugins/layout/plugin.json
@@ -5,6 +5,6 @@
"version": "0.0.1",
"author": "Carl",
"type": "plugin",
- "start": "false"
+ "start": "true"
}
}
diff --git a/plugins/plugin.schema b/plugins/plugin.schema
new file mode 100644
index 00000000000..e6dee563c78
--- /dev/null
+++ b/plugins/plugin.schema
@@ -0,0 +1,35 @@
+{
+ "type": "object",
+ "properties": {
+ "plugin": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "pattern": "^[A-Za-z][0-9A-Za-z_]*$"
+ },
+ "description": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "author": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "pattern": "^(plugin|library)$"
+ },
+ "start": {
+ "type": "string",
+ "pattern": "^(true|false)$"
+ }
+ },
+ "additionalProperties": false,
+ "required": [ "name", "description", "version", "author", "type" ]
+ }
+ },
+ "additionalProperties": false,
+ "required": [ "plugin" ]
+}
diff --git a/plugins/portname/init.lua b/plugins/portname/init.lua
index 3c04d26f72a..b855f27cc6e 100644
--- a/plugins/portname/init.lua
+++ b/plugins/portname/init.lua
@@ -21,14 +21,14 @@ local exports = {}
exports.name = "portname"
exports.version = "0.0.1"
exports.description = "IOPort name/translation plugin"
-exports.license = "The BSD 3-Clause License"
+exports.license = "BSD-3-Clause"
exports.author = { name = "Carl" }
local portname = exports
function portname.startplugin()
local json = require("json")
- local ctrlrpath = lfs.env_replace(manager:options().entries.ctrlrpath:value():match("([^;]+)"))
+ local ctrlrpath = manager.options.entries.ctrlrpath:value():match("([^;]+)")
local function get_filename(nosoft)
local filename
if emu.softname() ~= "" and not nosoft then
@@ -42,7 +42,7 @@ function portname.startplugin()
local function parse_names(ctable, depth)
if depth >= 5 then
- emu.print_error("portname: max import depth exceeded\n")
+ emu.print_error("portname: max import depth exceeded")
return
end
if ctable.import then
@@ -56,7 +56,7 @@ function portname.startplugin()
return
end
for pname, port in pairs(ctable.ports) do
- local ioport = manager:machine():ioport().ports[pname]
+ local ioport = manager.machine.ioport.ports[pname]
if ioport then
for mask, label in pairs(port.labels) do
for num3, field in pairs(ioport.fields) do
@@ -76,20 +76,20 @@ function portname.startplugin()
if ret then
if emu.softname() ~= "" then
local parent
- for tag, image in pairs(manager:machine().images) do
+ for tag, image in pairs(manager.machine.images) do
parent = image.software_parent
- if parent ~= "" then
+ if parent then
break
end
end
- if parent ~= "" then
+ if parent then
ret = file:open(emu.romname() .. "_" .. parent:match("([^:]*)$") .. ".json")
end
end
if ret then
ret = file:open(get_filename(true))
if ret then
- ret = file:open(manager:machine():system().parent .. ".json")
+ ret = file:open(manager.machine.system.parent .. ".json")
if ret then
return
end
@@ -106,7 +106,7 @@ function portname.startplugin()
local function menu_callback(index, event)
if event == "select" then
local ports = {}
- for pname, port in pairs(manager:machine():ioport().ports) do
+ for pname, port in pairs(manager.machine.ioport.ports) do
local labels = {}
local sort = {}
for fname, field in pairs(port.fields) do
@@ -131,13 +131,13 @@ function portname.startplugin()
if not attr then
lfs.mkdir(path)
if not lfs.attributes(path) then
- manager:machine():popmessage(_("Failed to save input name file"))
- emu.print_verbose("portname: unable to create path " .. path .. "\n")
+ manager.machine:popmessage(_("Failed to save input name file"))
+ emu.print_verbose("portname: unable to create path " .. path)
return false
end
elseif attr.mode ~= "directory" then
- manager:machine():popmessage(_("Failed to save input name file"))
- emu.print_verbose("portname: path exists but isn't directory " .. path .. "\n")
+ manager.machine:popmessage(_("Failed to save input name file"))
+ emu.print_verbose("portname: path exists but isn't directory " .. path)
return false
end
return true
@@ -151,8 +151,8 @@ function portname.startplugin()
local filename = get_filename()
local file = io.open(ctrlrpath .. "/portname/" .. filename, "r")
if file then
- emu.print_verbose("portname: input name file exists " .. filename .. "\n")
- manager:machine():popmessage(_("Failed to save input name file"))
+ emu.print_verbose("portname: input name file exists " .. filename)
+ manager.machine:popmessage(_("Failed to save input name file"))
file:close()
return false
end
@@ -164,7 +164,7 @@ function portname.startplugin()
setmetatable(ctable, { __jsonorder = { "romname", "softname", "ports" }})
file:write(json.stringify(ctable, { indent = true }))
file:close()
- manager:machine():popmessage(string.format(_("Input port name file saved to %s"), ctrlrpath .. "/portname/" .. filename))
+ manager.machine:popmessage(string.format(_("Input port name file saved to %s"), ctrlrpath .. "/portname/" .. filename))
end
return false
end
diff --git a/plugins/timecode/init.lua b/plugins/timecode/init.lua
new file mode 100644
index 00000000000..1de94c034ba
--- /dev/null
+++ b/plugins/timecode/init.lua
@@ -0,0 +1,350 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Vas Crabb
+local exports = {
+ name = 'timecode',
+ version = '0.0.1',
+ description = 'Timecode recorder plugin',
+ license = 'BSD-3-Clause',
+ author = { name = 'Vas Crabb' } }
+
+
+local timecode = exports
+
+local frame_subscription, stop_subscription
+
+function timecode.startplugin()
+ local file -- the timecode log file
+ local write -- whether to record a timecode on the next emulated frame
+ local text -- name of current part
+ local frame_count -- emulated frame counter
+ local start_frame -- start frame count for current part
+ local start_time -- start time for current part
+ local total_time -- total time of parts so far this session
+ local count -- current timecode number
+ local show_counter -- whether to show elapsed time since last timecode
+ local show_total -- whether to show the total time of parts
+
+ local frame_mode -- 0 to count frames, 1 to assume 60 Hz
+ local hotkey_seq -- input sequence to record timecode
+ local hotkey_pressed -- whether the hotkey was pressed on the last frame update
+ local hotkey_cfg -- configuration string for the hotkey
+
+ local item_framemode -- menu index of frame mode item
+ local item_hotkey -- menu index of hotkey item
+ local commonui -- common UI helpers
+ local hotkey_poller -- helper for configuring hotkey
+
+
+ local function get_settings_path()
+ return manager.machine.options.entries.homepath:value():match('([^;]+)') .. '/timecode'
+ end
+
+
+ local function set_default_hotkey()
+ hotkey_seq = manager.machine.input:seq_from_tokens('KEYCODE_F12 NOT KEYCODE_LSHIFT NOT KEYCODE_RSHIFT NOT KEYCODE_LALT NOT KEYCODE_RALT')
+ hotkey_cfg = nil
+ end
+
+
+ local function load_settings()
+ -- set defaults
+ frame_mode = 1
+ set_default_hotkey()
+
+ -- try to open configuration file
+ local cfgname = get_settings_path() .. '/plugin.cfg'
+ local cfgfile = io.open(cfgname, 'r')
+ if not cfgfile then
+ return -- probably harmless, configuration just doesn't exist yet
+ end
+
+ -- parse settings as JSON
+ local json = require('json')
+ local settings = json.parse(cfgfile:read('a'))
+ cfgfile:close()
+ if not settings then
+ emu.print_error(string.format('Error loading timecode recorder settings: error parsing file "%s" as JSON', cfgname))
+ return
+ end
+
+ -- recover frame mode
+ local count_frames = settings.count_frames
+ if count_frames ~= nil then
+ frame_mode = count_frames and 0 or 1
+ end
+
+ -- recover hotkey assignment
+ hotkey_cfg = settings.hotkey
+ if hotkey_cfg then
+ local seq = manager.machine.input:seq_from_tokens(hotkey_cfg)
+ if seq then
+ hotkey_seq = seq
+ end
+ end
+ end
+
+
+ local function save_settings()
+ local path = get_settings_path()
+ local attr = lfs.attributes(path)
+ if not attr then
+ lfs.mkdir(path)
+ elseif attr.mode ~= 'directory' then
+ emu.print_error(string.format('Error saving timecode recorder settings: "%s" is not a directory', path))
+ return
+ end
+ local json = require('json')
+ local settings = { count_frames = frame_mode == 0 }
+ if hotkey_cfg then
+ settings.hotkey = hotkey_cfg
+ end
+ local data = json.stringify(settings, { indent = true })
+ local cfgname = path .. '/plugin.cfg'
+ local cfgfile = io.open(cfgname, 'w')
+ if not cfgfile then
+ emu.print_error(string.format('Error saving timecode recorder settings: error opening file "%s" for writing', cfgname))
+ return
+ end
+ cfgfile:write(data)
+ cfgfile:close()
+ end
+
+
+ local function process_frame()
+ if (not file) or manager.machine.paused then
+ return
+ end
+ if write then
+ write = false
+ count = count + 1
+ show_total = true
+
+ -- time from beginning of playback in milliseconds, HH:MM:SS.fff and frames
+ local curtime = manager.machine.time
+ local sec_start = curtime.seconds
+ local msec_start = (sec_start * 1000) + curtime.msec
+ local msec_start_str = string.format('%015d', msec_start)
+ local curtime_str = string.format(
+ '%02d:%02d:%02d.%03d',
+ sec_start // (60 * 60),
+ (sec_start // 60) % 60,
+ sec_start % 60,
+ msec_start % 1000)
+ local frame_start_str = string.format('%015d', (frame_mode == 0) and frame_count or (msec_start * 60 // 1000))
+
+ -- elapsed from previous timecode in milliseconds, HH:MM:SS.fff and frames
+ local elapsed = curtime - start_time
+ local sec_elapsed = elapsed.seconds
+ local msec_elapsed = (sec_elapsed * 1000) + elapsed.msec
+ local msec_elapsed_str = string.format('%015d', msec_elapsed)
+ local elapsed_str = string.format(
+ '%02d:%02d:%02d.%03d',
+ sec_elapsed // (60 * 60),
+ (sec_elapsed // 60) % 60,
+ sec_elapsed % 60,
+ msec_elapsed % 1000)
+ local frame_elapsed_str = string.format('%015d', (frame_mode == 0) and (frame_count - start_frame) or (msec_elapsed * 60 // 1000))
+
+ -- update start of part
+ start_frame = frame_count
+ start_time = curtime
+
+ local message
+ local key
+ if count == 1 then
+ text = 'INTRO'
+ show_counter = true
+ message = string.format(_p('plugin-timecode', 'TIMECODE: Intro started at %s'), curtime_str)
+ key = 'INTRO_START'
+ elseif count == 2 then
+ total_time = total_time + elapsed
+ show_counter = false
+ message = string.format(_p('plugin-timecode', 'TIMECODE: Intro duration %s'), elapsed_str)
+ key = 'INTRO_STOP'
+ elseif count == 3 then
+ text = 'GAMEPLAY'
+ show_counter = true
+ message = string.format(_p('plugin-timecode', 'TIMECODE: Gameplay started at %s'), curtime_str)
+ key = 'GAMEPLAY_START'
+ elseif count == 4 then
+ total_time = total_time + elapsed
+ show_counter = false
+ message = string.format(_p('plugin-timecode', 'TIMECODE: Gameplay duration %s'), elapsed_str)
+ key = 'GAMEPLAY_STOP'
+ elseif (count % 2) == 1 then
+ local extrano = (count - 3) // 2
+ text = string.format('EXTRA %d', extrano)
+ show_counter = true
+ message = string.format(_p('plugin-timecode', 'TIMECODE: Extra %d started at %s'), extrano, curtime_str)
+ key = string.format('EXTRA_START_%03d', extrano)
+ else
+ local extrano = (count - 4) // 2
+ total_time = total_time + elapsed
+ show_counter = false
+ message = string.format(_p('plugin-timecode', 'TIMECODE: Extra %d duration %s'), extrano, elapsed_str)
+ key = string.format('EXTRA_STOP_%03d', extrano)
+ end
+
+ emu.print_info(message)
+ manager.machine:popmessage(message)
+
+ file:write(
+ string.format(
+ '%-19s %s %s %s %s %s %s\n',
+ key,
+ curtime_str, elapsed_str,
+ msec_start_str, msec_elapsed_str,
+ frame_start_str, frame_elapsed_str))
+ end
+ frame_count = frame_count + 1
+ end
+
+
+ local function process_frame_done()
+ local machine = manager.machine
+ if show_counter then
+ -- show duration of current part
+ local counter = (machine.time - start_time).seconds
+ local counter_str = string.format(
+ machine.paused and _p('plugin-timecode', ' %s%s%02d:%02d [paused] ') or _p('plugin-timecode', ' %s%s%02d:%02d '),
+ text,
+ (#text > 0) and ' ' or '',
+ (counter // 60) % 60,
+ counter % 60)
+ machine.render.ui_container:draw_text('right', 0, counter_str, 0xf0f01010, 0xff000000)
+ end
+ if show_total then
+ -- show total time for all parts so far
+ local total = ((show_counter and (machine.time - start_time) or emu.attotime()) + total_time).seconds
+ total_str = string.format(_p('plugin-timecode', 'TOTAL %02d:%02d '), (total // 60) % 60, total % 60)
+ machine.render.ui_container:draw_text('left', 0, total_str, 0xf010f010, 0xff000000)
+ end
+ if file then
+ local pressed = machine.input:seq_pressed(hotkey_seq)
+ if (not hotkey_pressed) and pressed then
+ write = true
+ end
+ hotkey_pressed = pressed
+ end
+ end
+
+
+ local function start()
+ file = nil
+ show_counter = false
+ show_total = false
+ load_settings()
+
+ -- only do timecode recording if we're doing input recording
+ local options = manager.machine.options.entries
+ local filename = options.record:value()
+ if #filename > 0 then
+ filename = filename .. '.timecode'
+ emu.print_info(string.format('Record input timecode file: %s', filename))
+ file = emu.file(options.input_directory:value(), 0x0e) -- FIXME: magic number for flags
+ local openerr = file:open(filename)
+ if openerr then
+ -- TODO: this used to throw a fatal error and log the error description
+ emu.print_error('Failed to open file for input timecode recording')
+ file = nil
+ else
+ write = false
+ text = ''
+ frame_count = 0
+ start_frame = 0
+ start_time = emu.attotime()
+ total_time = emu.attotime()
+ count = 0
+ show_counter = false
+ show_total = false
+ hotkey_pressed = false
+
+ file:write('# ==========================================\n')
+ file:write('# TIMECODE FILE FOR VIDEO PREVIEW GENERATION\n')
+ file:write('# ==========================================\n')
+ file:write('#\n')
+ file:write('# VIDEO_PART: code of video timecode\n')
+ file:write('# START: start time (hh:mm:ss.mmm)\n')
+ file:write('# ELAPSED: elapsed time (hh:mm:ss.mmm)\n')
+ file:write('# MSEC_START: start time (milliseconds)\n')
+ file:write('# MSEC_ELAPSED: elapsed time (milliseconds)\n')
+ file:write('# FRAME_START: start time (frames)\n')
+ file:write('# FRAME_ELAPSED: elapsed time (frames)\n')
+ file:write('#\n')
+ file:write('# VIDEO_PART======= START======= ELAPSED===== MSEC_START===== MSEC_ELAPSED=== FRAME_START==== FRAME_ELAPSED==\n')
+ end
+ end
+ end
+
+
+ local function stop()
+ -- close the file if we're recording
+ if file then
+ file:close()
+ file = nil
+ end
+
+ -- try to save settings
+ save_settings()
+ end
+
+
+ local function menu_callback(index, event)
+ if hotkey_poller then
+ if hotkey_poller:poll() then
+ if hotkey_poller.sequence then
+ hotkey_seq = hotkey_poller.sequence
+ hotkey_cfg = manager.machine.input:seq_to_tokens(hotkey_seq)
+ end
+ hotkey_poller = nil
+ return true
+ end
+ elseif index == item_framemode then
+ if (event == 'select') or (event == 'left') or (event == 'right') then
+ frame_mode = (frame_mode ~= 0) and 0 or 1
+ return true
+ end
+ elseif index == item_hotkey then
+ if event == 'select' then
+ if not commonui then
+ commonui = require('commonui')
+ end
+ hotkey_poller = commonui.switch_polling_helper()
+ return true
+ elseif event == 'clear' then
+ set_default_hotkey()
+ return true
+ end
+ end
+ return false
+ end
+
+
+ local function menu_populate()
+ local result = { }
+ table.insert(result, { _p('plugin-timecode', 'Timecode Recorder'), '', 'off' })
+ table.insert(result, { '---', '', '' })
+
+ local frame_mode_val = (frame_mode > 0) and _p('plugin-timecode', 'Assume 60 Hz') or _p('plugins-timecode', 'Count emulated frames')
+ table.insert(result, { _p('plugin-timecode', 'Frame numbers'), frame_mode_val, (frame_mode > 0) and 'l' or 'r' })
+ item_framemode = #result
+
+ table.insert(result, { _p('plugin-timecode', 'Hotkey'), manager.machine.input:seq_name(hotkey_seq), hotkey_poller and 'lr' or '' })
+ item_hotkey = #result
+
+ if hotkey_poller then
+ return hotkey_poller:overlay(result)
+ else
+ return result
+ end
+ end
+
+
+ frame_subscription = emu.add_machine_frame_notifier(process_frame)
+ emu.register_frame_done(process_frame_done)
+ emu.register_prestart(start)
+ stop_subscription = emu.add_machine_stop_notifier(stop)
+ emu.register_menu(menu_callback, menu_populate, _p('plugin-timecode', 'Timecode Recorder'))
+end
+
+return exports
diff --git a/plugins/timecode/plugin.json b/plugins/timecode/plugin.json
new file mode 100644
index 00000000000..98ae305c48b
--- /dev/null
+++ b/plugins/timecode/plugin.json
@@ -0,0 +1,10 @@
+{
+ "plugin": {
+ "name": "timecode",
+ "description": "Timecode recorder plugin",
+ "version": "0.0.1",
+ "author": "Vas Crabb",
+ "type": "plugin",
+ "start": "false"
+ }
+}
diff --git a/plugins/timer/init.lua b/plugins/timer/init.lua
index 56ccd6b39ed..1d67472b3c2 100644
--- a/plugins/timer/init.lua
+++ b/plugins/timer/init.lua
@@ -1,109 +1,79 @@
-- license:BSD-3-Clause
--- copyright-holders:Carl
-require('lfs')
-local sqlite3 = require('lsqlite3')
-local exports = {}
-exports.name = "timer"
-exports.version = "0.0.2"
-exports.description = "Game play timer"
-exports.license = "The BSD 3-Clause License"
-exports.author = { name = "Carl" }
+-- copyright-holders:Vas Crabb
+-- TODO: track time properly across soft reset and state load
+local exports = {
+ name = 'timer',
+ version = '0.0.3',
+ description = 'Game play timer',
+ license = 'BSD-3-Clause',
+ author = { name = 'Vas Crabb' } }
local timer = exports
+local reset_subscription, stop_subscription
+
function timer.startplugin()
- local dir = lfs.env_replace(manager:options().entries.homepath:value())
- local timer_db = dir .. "/timer/timer.db"
- local timer_started = false
local total_time = 0
local start_time = 0
local play_count = 0
+ local emu_total = emu.attotime()
- local function save()
- total_time = total_time + (os.time() - start_time)
-
- local db = assert(sqlite3.open(timer_db))
-
- local insert_stmt = assert( db:prepare("INSERT OR IGNORE INTO timer VALUES (?, ?, 0, 0)") )
- insert_stmt:bind_values(emu.romname(), emu.softname())
- insert_stmt:step()
- insert_stmt:reset()
-
- local update_stmt = assert( db:prepare("UPDATE timer SET total_time=?, play_count=? WHERE driver=? AND software=?") )
- update_stmt:bind_values(total_time, play_count,emu.romname(), emu.softname())
- update_stmt:step()
- update_stmt:reset()
-
- assert(db:close() == sqlite3.OK)
- end
-
-
- emu.register_start(function()
- local file
- if timer_started then
- save()
- end
- timer_started = true
- lfs.mkdir(dir .. '/timer')
- local db = assert(sqlite3.open(timer_db))
- local found=false
- db:exec([[select * from sqlite_master where name='timer';]], function(...) found=true return 0 end)
- if not found then
- db:exec[[ CREATE TABLE timer (
- driver VARCHAR(32) PRIMARY KEY,
- software VARCHAR(40),
- total_time INTEGER NOT NULL,
- play_count INTEGER NOT NULL
- ); ]]
- end
-
- local stmt, row
- stmt = db:prepare("SELECT total_time, play_count FROM timer WHERE driver = ? AND software = ?")
- stmt:bind_values(emu.romname(), emu.softname())
- if (stmt:step() == sqlite3.ROW) then
- row = stmt:get_named_values()
- play_count = row.play_count
- total_time = row.total_time
- else
- play_count = 0
- total_time = 0
- end
+ local reference = 0
+ local lastupdate
+ local highlight -- hacky - workaround for the menu not remembering the selected item if its ref is nullptr
- assert(db:close() == sqlite3.OK)
-
- start_time = os.time()
- play_count = play_count + 1
- end)
-
- emu.register_stop(function()
- timer_started = false
- save()
- total_time = 0
- play_count = 0
- end)
local function sectohms(time)
- local hrs = math.floor(time / 3600)
- local min = math.floor((time % 3600) / 60)
+ local hrs = time // 3600
+ local min = (time % 3600) // 60
local sec = time % 60
- return string.format("%03d:%02d:%02d", hrs, min, sec)
+ return string.format(_p('plugin-timer', '%03d:%02d:%02d'), hrs, min, sec)
end
local function menu_populate()
- local time = os.time() - start_time
- return {{ _("Current time"), "", "off" },
- { sectohms(time), "", "off" },
- { _("Total time"), "", "off" },
- { sectohms(total_time + time), "", "off" },
- { _("Play Count"), "", "off" },
- { play_count, "", "off" }}
+ lastupdate = os.time()
+ local refname = (reference == 0) and _p('plugin-timer', 'Wall clock') or _p('plugin-timer', 'Emulated time')
+ local time = (reference == 0) and (lastupdate - start_time) or manager.machine.time.seconds
+ local total = (reference == 0) and (total_time + time) or (manager.machine.time + emu_total).seconds
+ return
+ {
+ { _p("plugin-timer", "Reference"), refname, (reference == 0) and 'r' or 'l' },
+ { '---', '', '' },
+ { _p("plugin-timer", "Current time"), sectohms(time), "off" },
+ { _p("plugin-timer", "Total time"), sectohms(total), "off" },
+ { _p("plugin-timer", "Play Count"), tostring(play_count), "off" } },
+ highlight,
+ "idle"
end
local function menu_callback(index, event)
- return true
+ if (index == 1) and ((event == 'left') or (event == 'right') or (event == 'select')) then
+ reference = reference ~ 1
+ return true
+ end
+ highlight = index
+ return os.time() > lastupdate
end
- emu.register_menu(menu_callback, menu_populate, _("Timer"))
+
+ reset_subscription = emu.add_machine_reset_notifier(
+ function ()
+ if emu.romname() ~= '___empty' then
+ start_time = os.time()
+ local persister = require('timer/timer_persist')
+ total_time, play_count, emu_total = persister:start_session()
+ end
+ end)
+
+ stop_subscription = emu.add_machine_stop_notifier(
+ function ()
+ if emu.romname() ~= '___empty' then
+ local persister = require('timer/timer_persist')
+ persister:update_totals(start_time)
+ end
+ end)
+
+ emu.register_menu(menu_callback, menu_populate, _p("plugin-timer", "Timer"))
end
return exports
diff --git a/plugins/timer/plugin.json b/plugins/timer/plugin.json
index 005a0fad9a4..6755f434f94 100644
--- a/plugins/timer/plugin.json
+++ b/plugins/timer/plugin.json
@@ -1,10 +1,10 @@
{
- "plugin": {
- "name": "timer",
- "description": "Timer plugin",
- "version": "0.0.1",
- "author": "Carl",
- "type": "plugin",
- "start": "false"
- }
+ "plugin": {
+ "name": "timer",
+ "description": "Game play timer",
+ "version": "0.0.3",
+ "author": "Vas Crabb",
+ "type": "plugin",
+ "start": "false"
+ }
}
diff --git a/plugins/timer/timer_persist.lua b/plugins/timer/timer_persist.lua
new file mode 100644
index 00000000000..cb24b485dcb
--- /dev/null
+++ b/plugins/timer/timer_persist.lua
@@ -0,0 +1,249 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Vas Crabb
+
+local sqlite3 = require('lsqlite3')
+
+
+local function check_schema(db)
+ local create_statement =
+ [[CREATE TABLE timer (
+ driver VARCHAR(32) NOT NULL,
+ softlist VARCHAR(24) NOT NULL DEFAULT '',
+ software VARCHAR(16) NOT NULL DEFAULT '',
+ total_time INTEGER NOT NULL DEFAULT 0,
+ play_count INTEGER NOT NULL DEFAULT 0,
+ emu_sec INTEGER NOT NULL DEFAULT 0,
+ emu_nsec INTEGER NOT NULL DEFAULT 0,
+ PRIMARY KEY (driver, softlist, software));]]
+
+ -- create table if it doesn't exist yet
+ local table_found = false
+ db:exec(
+ [[SELECT * FROM sqlite_master WHERE type = 'table' AND name='timer';]],
+ function()
+ table_found = true
+ end)
+ if not table_found then
+ emu.print_verbose('Creating timer database table')
+ db:exec(create_statement)
+ return
+ end
+
+ -- check recently added columns
+ local have_softlist = false
+ local have_emu_sec = false
+ local have_emu_nsec = false
+ db:exec(
+ [[PRAGMA table_info(timer);]],
+ function(udata, n, vals, cols)
+ for i, name in ipairs(cols) do
+ if name == 'name' then
+ if vals[i] == 'softlist' then
+ have_softlist = true
+ elseif vals[i] == 'emu_sec' then
+ have_emu_sec = true
+ elseif vals[i] == 'emu_nsec' then
+ have_emu_nsec = true
+ end
+ return 0
+ end
+ end
+ return 0
+ end)
+ if not have_softlist then
+ emu.print_verbose('Adding softlist column to timer database')
+ db:exec([[ALTER TABLE timer ADD COLUMN softlist VARCHAR(24) NOT NULL DEFAULT '';]])
+ local to_split = { }
+ db:exec(
+ [[SELECT DISTINCT software FROM timer WHERE software LIKE '%:%';]],
+ function(udata, n, vals)
+ table.insert(to_split, vals[1])
+ return 0
+ end)
+ if #to_split > 0 then
+ local update = db:prepare([[UPDATE timer SET softlist = ?, software = ? WHERE software = ?;]])
+ for i, softname in ipairs(to_split) do
+ local x, y = softname:find(':')
+ local softlist = softname:sub(1, x - 1)
+ local software = softname:sub(y + 1)
+ update:bind_values(softlist, software, softname)
+ update:step()
+ update:reset()
+ end
+ end
+ end
+ if not have_emu_sec then
+ emu.print_verbose('Adding emu_sec column to timer database')
+ db:exec([[ALTER TABLE timer ADD COLUMN emu_sec INTEGER NOT NULL DEFAULT 0;]])
+ end
+ if not have_emu_nsec then
+ emu.print_verbose('Adding emu_nsec column to timer database')
+ db:exec([[ALTER TABLE timer ADD COLUMN emu_nsec INTEGER NOT NULL DEFAULT 0;]])
+ end
+
+ -- check the required columns are in the primary key
+ local index_name
+ db:exec(
+ [[SELECT name FROM sqlite_master WHERE type = 'index' AND tbl_name = 'timer';]],
+ function(udata, n, vals)
+ index_name = vals[1]
+ end)
+ local index_good
+ if index_name then
+ local driver_indexed = false
+ local softlist_indexed = false
+ local software_indexed = false
+ db:exec(
+ string.format([[PRAGMA index_info('%s');]], index_name), -- can't use prepared statement for PRAGMA
+ function(udata, n, vals, cols)
+ for i, name in ipairs(cols) do
+ if name == 'name' then
+ if vals[i] == 'driver' then
+ driver_indexed = true
+ elseif vals[i] == 'softlist' then
+ softlist_indexed = true
+ elseif vals[i] == 'software' then
+ software_indexed = true
+ end
+ return 0
+ end
+ end
+ return 0
+ end)
+ index_good = driver_indexed and softlist_indexed and software_indexed
+ end
+
+ -- if the required columns are not indexed, migrate to a new table with desired primary key
+ if not index_good then
+ emu.print_verbose('Re-indexing timer database table')
+ db:exec([[DROP TABLE IF EXISTS timer_old;]])
+ db:exec([[ALTER TABLE timer RENAME TO timer_old;]])
+ db:exec(create_statement)
+ db:exec(
+ [[INSERT
+ INTO timer (driver, softlist, software, total_time, play_count, emu_sec, emu_nsec)
+ SELECT driver, softlist, software, total_time, play_count, emu_sec, emu_nsec FROM timer_old;]])
+ db:exec([[DROP TABLE timer_old;]])
+ end
+end
+
+
+local function open_database()
+ -- make sure settings directory exists
+ local dir = manager.machine.options.entries.homepath:value():match('([^;]+)') .. '/timer'
+ local attr = lfs.attributes(dir)
+ if not attr then
+ lfs.mkdir(dir)
+ elseif attr.mode ~= 'directory' then
+ emu.print_error(string.format('Error opening timer database: "%s" is not a directory', dir))
+ return nil
+ end
+
+ -- open database
+ local filename = dir .. '/timer.db'
+ local db = sqlite3.open(filename)
+ if not db then
+ emu.print_error(string.format('Error opening timer database file "%s"', filename))
+ return nil
+ end
+
+ -- make sure schema is up-to-date
+ check_schema(db)
+ return db
+end
+
+
+local function get_software()
+ local softname = emu.softname()
+ local i, j = softname:find(':')
+ if i then
+ return softname:sub(1, i - 1), softname:sub(j + 1)
+ else
+ -- FIXME: need a way to get the implicit software list when no colon in the option value
+ return '', softname
+ end
+end
+
+
+local function get_current(db)
+ local statement = db:prepare(
+ [[SELECT
+ total_time, play_count, emu_sec, emu_nsec
+ FROM timer
+ WHERE driver = ? AND softlist = ? AND software = ?;]])
+ statement:bind_values(emu.romname(), get_software())
+ local result
+ if statement:step() == sqlite3.ROW then
+ result = statement:get_named_values()
+ end
+ statement:reset()
+ return result
+end
+
+
+local lib = { }
+
+function lib:start_session()
+ -- open database
+ local db = open_database()
+ if not db then
+ return 0, 0, emu.attotime()
+ end
+
+ -- get existing values
+ local row = get_current(db)
+ local update
+ if row then
+ update = db:prepare(
+ [[UPDATE timer
+ SET play_count = play_count + 1
+ WHERE driver = ? AND softlist = ? AND software = ?;]])
+ else
+ row = { total_time = 0, play_count = 0, emu_sec = 0, emu_nsec = 0 }
+ update = db:prepare(
+ [[INSERT
+ INTO timer (driver, softlist, software, total_time, play_count, emu_sec, emu_nsec)
+ VALUES (?, ?, ?, 0, 1, 0, 0);]])
+ end
+ update:bind_values(emu.romname(), get_software())
+ update:step()
+ update:reset()
+ return row.total_time, row.play_count + 1, emu.attotime.from_seconds(row.emu_sec) + emu.attotime.from_nsec(row.emu_nsec)
+end
+
+function lib:update_totals(start)
+ -- open database
+ local db = open_database()
+ if not db then
+ return
+ end
+
+ -- get existing values
+ local row = get_current(db)
+ if not row then
+ row = { total_time = 0, play_count = 1, emu_sec = 0, emu_nsec = 0 }
+ end
+
+ -- calculate new totals
+ local emu_total = emu.attotime.from_seconds(row.emu_sec) + emu.attotime.from_nsec(row.emu_nsec) + manager.machine.time
+ row.total_time = os.time() - start + row.total_time
+ row.emu_sec = emu_total.seconds
+ row.emu_nsec = emu_total.nsec
+
+ -- update database
+ local update = db:prepare(
+ [[INSERT OR REPLACE
+ INTO timer (driver, softlist, software, total_time, play_count, emu_sec, emu_nsec)
+ VALUES (?, ?, ?, ?, ?, ?, ?);]])
+ local softlist, software = get_software()
+ update:bind_values(emu.romname(), softlist, software, row.total_time, row.play_count, row.emu_sec, row.emu_nsec)
+ update:step()
+ update:reset()
+
+ -- close database
+ if db:close() ~= sqlite3.OK then
+ emu.print_error('Error closing timer database')
+ end
+end
+
+return lib
diff --git a/plugins/xml/LICENSE.txt b/plugins/xml/LICENSE.txt
new file mode 100644
index 00000000000..333db1c6b1c
--- /dev/null
+++ b/plugins/xml/LICENSE.txt
@@ -0,0 +1,7 @@
+Copyright (c) 2013-2018 Gavin Kistner
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/plugins/xml/init.lua b/plugins/xml/init.lua
new file mode 100644
index 00000000000..8a5338a1c20
--- /dev/null
+++ b/plugins/xml/init.lua
@@ -0,0 +1,401 @@
+-- license:MIT
+-- copyright-holders:Gavin Kistner
+
+local exports = {}
+exports.name = "SLAXML"
+exports.version = "0.8"
+exports.homepage = "http://github.com/Phrogz/SLAXML"
+exports.description = "Lua SLAX XML parser"
+exports.tags = {"xml"}
+exports.license = "MIT"
+exports.author = {
+ name = "Gavin Kistner",
+}
+
+local SLAXML = exports
+
+--[=====================================================================[
+v0.8 Copyright © 2013-2018 Gavin Kistner <!@phrogz.net>; MIT Licensed
+See http://github.com/Phrogz/SLAXML for details.
+--]=====================================================================]
+SLAXML.VERSION = "0.8"
+SLAXML._call = {
+ pi = function(target,content)
+ print(string.format("<?%s %s?>",target,content))
+ end,
+ comment = function(content)
+ print(string.format("<!-- %s -->",content))
+ end,
+ startElement = function(name,nsURI,nsPrefix)
+ io.write("<")
+ if nsPrefix then io.write(nsPrefix,":") end
+ io.write(name)
+ if nsURI then io.write(" (ns='",nsURI,"')") end
+ print(">")
+ end,
+ attribute = function(name,value,nsURI,nsPrefix)
+ io.write(' ')
+ if nsPrefix then io.write(nsPrefix,":") end
+ io.write(name,'=',string.format('%q',value))
+ if nsURI then io.write(" (ns='",nsURI,"')") end
+ io.write("\n")
+ end,
+ text = function(text,cdata)
+ print(string.format(" %s: %q",cdata and 'cdata' or 'text',text))
+ end,
+ closeElement = function(name,nsURI,nsPrefix)
+ io.write("</")
+ if nsPrefix then io.write(nsPrefix,":") end
+ print(name..">")
+ end,
+}
+
+function SLAXML:parser(callbacks)
+ return { _call=callbacks or self._call, parse=SLAXML.parse }
+end
+
+function SLAXML:parse(xml,options)
+ if not options then options = { stripWhitespace=false } end
+
+ -- Cache references for maximum speed
+ local find, sub, gsub, char, push, pop, concat = string.find, string.sub, string.gsub, string.char, table.insert, table.remove, table.concat
+ local first, last, match1, match2, match3, pos2, nsURI
+ local unpack = unpack or table.unpack
+ local pos = 1
+ local state = "text"
+ local textStart = 1
+ local currentElement={}
+ local currentAttributes={}
+ local currentAttributeCt -- manually track length since the table is re-used
+ local nsStack = {}
+ local anyElement = false
+
+ local utf8markers = { {0x7FF,192}, {0xFFFF,224}, {0x1FFFFF,240} }
+ local function utf8(decimal) -- convert unicode code point to utf-8 encoded character string
+ if decimal<128 then return char(decimal) end
+ local charbytes = {}
+ for bytes,vals in ipairs(utf8markers) do
+ if decimal<=vals[1] then
+ for b=bytes+1,2,-1 do
+ local mod = decimal%64
+ decimal = (decimal-mod)/64
+ charbytes[b] = char(128+mod)
+ end
+ charbytes[1] = char(vals[2]+decimal)
+ return concat(charbytes)
+ end
+ end
+ end
+ local entityMap = { ["lt"]="<", ["gt"]=">", ["amp"]="&", ["quot"]='"', ["apos"]="'" }
+ local entitySwap = function(orig,n,s) return entityMap[s] or n=="#" and utf8(tonumber('0'..s)) or orig end
+ local function unescape(str) return gsub( str, '(&(#?)([%d%a]+);)', entitySwap ) end
+
+ local function finishText()
+ if first>textStart and self._call.text then
+ local text = sub(xml,textStart,first-1)
+ if options.stripWhitespace then
+ text = gsub(text,'^%s+','')
+ text = gsub(text,'%s+$','')
+ if #text==0 then text=nil end
+ end
+ if text then self._call.text(unescape(text),false) end
+ end
+ end
+
+ local function findPI()
+ first, last, match1, match2 = find( xml, '^<%?([:%a_][:%w_.-]*) ?(.-)%?>', pos )
+ if first then
+ finishText()
+ if self._call.pi then self._call.pi(match1,match2) end
+ pos = last+1
+ textStart = pos
+ return true
+ end
+ end
+
+ local function findComment()
+ first, last, match1 = find( xml, '^<!%-%-(.-)%-%->', pos )
+ if first then
+ finishText()
+ if self._call.comment then self._call.comment(match1) end
+ pos = last+1
+ textStart = pos
+ return true
+ end
+ end
+
+ local function nsForPrefix(prefix)
+ if prefix=='xml' then return 'http://www.w3.org/XML/1998/namespace' end -- http://www.w3.org/TR/xml-names/#ns-decl
+ for i=#nsStack,1,-1 do if nsStack[i][prefix] then return nsStack[i][prefix] end end
+ error(("Cannot find namespace for prefix %s"):format(prefix))
+ end
+
+ local function startElement()
+ anyElement = true
+ first, last, match1 = find( xml, '^<([%a_][%w_.-]*)', pos )
+ if first then
+ currentElement[2] = nil -- reset the nsURI, since this table is re-used
+ currentElement[3] = nil -- reset the nsPrefix, since this table is re-used
+ finishText()
+ pos = last+1
+ first,last,match2 = find(xml, '^:([%a_][%w_.-]*)', pos )
+ if first then
+ currentElement[1] = match2
+ currentElement[3] = match1 -- Save the prefix for later resolution
+ match1 = match2
+ pos = last+1
+ else
+ currentElement[1] = match1
+ for i=#nsStack,1,-1 do if nsStack[i]['!'] then currentElement[2] = nsStack[i]['!']; break end end
+ end
+ currentAttributeCt = 0
+ push(nsStack,{})
+ return true
+ end
+ end
+
+ local function findAttribute()
+ first, last, match1 = find( xml, '^%s+([:%a_][:%w_.-]*)%s*=%s*', pos )
+ if first then
+ pos2 = last+1
+ first, last, match2 = find( xml, '^"([^<"]*)"', pos2 ) -- FIXME: disallow non-entity ampersands
+ if first then
+ pos = last+1
+ match2 = unescape(match2)
+ else
+ first, last, match2 = find( xml, "^'([^<']*)'", pos2 ) -- FIXME: disallow non-entity ampersands
+ if first then
+ pos = last+1
+ match2 = unescape(match2)
+ end
+ end
+ end
+ if match1 and match2 then
+ local currentAttribute = {match1,match2}
+ local prefix,name = string.match(match1,'^([^:]+):([^:]+)$')
+ if prefix then
+ if prefix=='xmlns' then
+ nsStack[#nsStack][name] = match2
+ else
+ currentAttribute[1] = name
+ currentAttribute[4] = prefix
+ end
+ else
+ if match1=='xmlns' then
+ nsStack[#nsStack]['!'] = match2
+ currentElement[2] = match2
+ end
+ end
+ currentAttributeCt = currentAttributeCt + 1
+ currentAttributes[currentAttributeCt] = currentAttribute
+ return true
+ end
+ end
+
+ local function findCDATA()
+ first, last, match1 = find( xml, '^<!%[CDATA%[(.-)%]%]>', pos )
+ if first then
+ finishText()
+ if self._call.text then self._call.text(match1,true) end
+ pos = last+1
+ textStart = pos
+ return true
+ end
+ end
+
+ local function closeElement()
+ first, last, match1 = find( xml, '^%s*(/?)>', pos )
+ if first then
+ state = "text"
+ pos = last+1
+ textStart = pos
+
+ -- Resolve namespace prefixes AFTER all new/redefined prefixes have been parsed
+ if currentElement[3] then currentElement[2] = nsForPrefix(currentElement[3]) end
+ if self._call.startElement then self._call.startElement(unpack(currentElement)) end
+ if self._call.attribute then
+ for i=1,currentAttributeCt do
+ if currentAttributes[i][4] then currentAttributes[i][3] = nsForPrefix(currentAttributes[i][4]) end
+ self._call.attribute(unpack(currentAttributes[i]))
+ end
+ end
+
+ if match1=="/" then
+ pop(nsStack)
+ if self._call.closeElement then self._call.closeElement(unpack(currentElement)) end
+ end
+ return true
+ end
+ end
+
+ local function findElementClose()
+ first, last, match1, match2 = find( xml, '^</([%a_][%w_.-]*)%s*>', pos )
+ if first then
+ nsURI = nil
+ for i=#nsStack,1,-1 do if nsStack[i]['!'] then nsURI = nsStack[i]['!']; break end end
+ else
+ first, last, match2, match1 = find( xml, '^</([%a_][%w_.-]*):([%a_][%w_.-]*)%s*>', pos )
+ if first then nsURI = nsForPrefix(match2) end
+ end
+ if first then
+ finishText()
+ if self._call.closeElement then self._call.closeElement(match1,nsURI) end
+ pos = last+1
+ textStart = pos
+ pop(nsStack)
+ return true
+ end
+ end
+
+ while pos<#xml do
+ if state=="text" then
+ if not (findPI() or findComment() or findCDATA() or findElementClose()) then
+ if startElement() then
+ state = "attributes"
+ else
+ first, last = find( xml, '^[^<]+', pos )
+ pos = (first and last or pos) + 1
+ end
+ end
+ elseif state=="attributes" then
+ if not findAttribute() then
+ if not closeElement() then
+ error("Was in an element and couldn't find attributes or the close.")
+ end
+ end
+ end
+ end
+
+ if not anyElement then error("Parsing did not discover any elements") end
+ if #nsStack > 0 then error("Parsing ended with unclosed elements") end
+end
+
+-- Optional parser that creates a flat DOM from parsing
+function SLAXML:dom(xml,opts)
+ if not opts then opts={} end
+ local rich = not opts.simple
+ local push, pop = table.insert, table.remove
+ local doc = {type="document", name="#doc", kids={}}
+ local current,stack = doc, {doc}
+ local builder = SLAXML:parser{
+ startElement = function(name,nsURI,nsPrefix)
+ local el = { type="element", name=name, kids={}, el=rich and {} or nil, attr={}, nsURI=nsURI, nsPrefix=nsPrefix, parent=rich and current or nil }
+ if current==doc then
+ if doc.root then error(("Encountered element '%s' when the document already has a root '%s' element"):format(name,doc.root.name)) end
+ doc.root = rich and el or nil
+ end
+ push(current.kids,el)
+ if current.el then push(current.el,el) end
+ current = el
+ push(stack,el)
+ end,
+ attribute = function(name,value,nsURI,nsPrefix)
+ if not current or current.type~="element" then error(("Encountered an attribute %s=%s but I wasn't inside an element"):format(name,value)) end
+ local attr = {type='attribute',name=name,nsURI=nsURI,nsPrefix=nsPrefix,value=value,parent=rich and current or nil}
+ if rich then current.attr[name] = value end
+ push(current.attr,attr)
+ end,
+ closeElement = function(name)
+ if current.name~=name or current.type~="element" then error(("Received a close element notification for '%s' but was inside a '%s' %s"):format(name,current.name,current.type)) end
+ pop(stack)
+ current = stack[#stack]
+ end,
+ text = function(value,cdata)
+ -- documents may only have text node children that are whitespace: https://www.w3.org/TR/xml/#NT-Misc
+ if current.type=='document' and not value:find('^%s+$') then error(("Document has non-whitespace text at root: '%s'"):format(value:gsub('[\r\n\t]',{['\r']='\\r', ['\n']='\\n', ['\t']='\\t'}))) end
+ push(current.kids,{type='text',name='#text',cdata=cdata and true or nil,value=value,parent=rich and current or nil})
+ end,
+ comment = function(value)
+ push(current.kids,{type='comment',name='#comment',value=value,parent=rich and current or nil})
+ end,
+ pi = function(name,value)
+ push(current.kids,{type='pi',name=name,value=value,parent=rich and current or nil})
+ end
+ }
+ builder:parse(xml,opts)
+ return doc
+end
+
+local escmap = {["<"]="&lt;", [">"]="&gt;", ["&"]="&amp;", ['"']="&quot;", ["'"]="&apos;"}
+local function esc(s) return s:gsub('[<>&"]', escmap) end
+
+-- opts.indent: number of spaces, or string
+function SLAXML:xml(n,opts)
+ opts = opts or {}
+ local out = {}
+ local tab = opts.indent and (type(opts.indent)=="number" and string.rep(" ",opts.indent) or opts.indent) or ""
+ local ser = {}
+ local omit = {}
+ if opts.omit then for _,s in ipairs(opts.omit) do omit[s]=true end end
+
+ function ser.document(n)
+ for _,kid in ipairs(n.kids) do
+ if ser[kid.type] then ser[kid.type](kid,0) end
+ end
+ end
+
+ function ser.pi(n,depth)
+ depth = depth or 0
+ table.insert(out, tab:rep(depth)..'<?'..n.name..' '..n.value..'?>')
+ end
+
+ function ser.element(n,depth)
+ if n.nsURI and omit[n.nsURI] then return end
+ depth = depth or 0
+ local indent = tab:rep(depth)
+ local name = n.nsPrefix and n.nsPrefix..':'..n.name or n.name
+ local result = indent..'<'..name
+ if n.attr and n.attr[1] then
+ local sorted = n.attr
+ if opts.sort then
+ sorted = {}
+ for i,a in ipairs(n.attr) do sorted[i]=a end
+ table.sort(sorted,function(a,b)
+ if a.nsPrefix and b.nsPrefix then
+ return a.nsPrefix==b.nsPrefix and a.name<b.name or a.nsPrefix<b.nsPrefix
+ elseif not (a.nsPrefix or b.nsPrefix) then
+ return a.name<b.name
+ elseif b.nsPrefix then
+ return true
+ else
+ return false
+ end
+ end)
+ end
+
+ local attrs = {}
+ for _,a in ipairs(sorted) do
+ if (not a.nsURI or not omit[a.nsURI]) and not (omit[a.value] and a.name:find('^xmlns:')) then
+ attrs[#attrs+1] = ' '..(a.nsPrefix and (a.nsPrefix..':') or '')..a.name..'="'..esc(a.value)..'"'
+ end
+ end
+ result = result..table.concat(attrs,'')
+ end
+ result = result .. (n.kids and n.kids[1] and '>' or '/>')
+ table.insert(out, result)
+ if n.kids and n.kids[1] then
+ for _,kid in ipairs(n.kids) do
+ if ser[kid.type] then ser[kid.type](kid,depth+1) end
+ end
+ table.insert(out, indent..'</'..name..'>')
+ end
+ end
+
+ function ser.text(n,depth)
+ if n.cdata then
+ table.insert(out, tab:rep(depth)..'<![CDATA['..n.value..']]>')
+ else
+ table.insert(out, tab:rep(depth)..esc(n.value))
+ end
+ end
+
+ function ser.comment(n,depth)
+ table.insert(out, tab:rep(depth)..'<!--'..n.value..'-->')
+ end
+
+ ser[n.type](n,0)
+
+ return table.concat(out, opts.indent and '\n' or '')
+end
+
+return SLAXML
diff --git a/plugins/xml/plugin.json b/plugins/xml/plugin.json
new file mode 100644
index 00000000000..ce785a719da
--- /dev/null
+++ b/plugins/xml/plugin.json
@@ -0,0 +1,9 @@
+{
+ "plugin": {
+ "name": "SLAXML",
+ "description": "Lua SLAX XML parser",
+ "version": "0.8",
+ "author": "Gavin Kistner",
+ "type": "library"
+ }
+}