はじめに
Lunar Magicの上のほうにある、押すと16x16エディタが出てきたり、スプライトデータ開いたりできるボタンありますよね? Custom User Toolbarは、本家のボタン群にない機能を持つボタンを作ることができるというものです。
注)まだ未完なので、help>contents>Technical Information>Custom User toolbarの項目を見るのが無難です
作り方
1.基本
まず、Lunar Magicと同じディレクトリに、usertoolbar.txtというファイルを作ってください。 そしたら、そこに次のように記述してください。
***START*** LM_FILE_OPEN_ROM ***END***
それで、保存してLMを起動してみてください。すると・・・
小さい四角のボタンが現れると思います。ここにマウスを合わせると、「ROMを開く」と出ると思います。 これをクリックしてみてください。 ROMの読み込み画面が開いたでしょうか?開いたら成功です。
2.解説
では、なぜこうなったか説明します。
まず、usertoolbar.txtに書いた内容の説明をします。
***START***
これは実行の開始を表しています。
LM_FILE_OPEN_ROM
この行がボタンの内容を表しています。 LM_FILE_OPEN_ROMは、LM内で、「ROMを開く」というコマンドという解釈をしてください。
***END***
これは全ての実行の終わりを表しています。
3.命令一覧
"LM_FILE_OPEN_ROM", "LM_FILE_OPEN_FILE", "LM_FILE_OPEN_LEVEL", "LM_FILE_OPEN_LEVEL_ADDRESS", "LM_FILE_NEXT_LEVEL", "LM_FILE_PREVIOUS_LEVEL", "LM_FILE_SAVE_LEVEL_TO_ROM_AS", "LM_FILE_SAVE_DIRECTORY", "LM_FILE_SAVE_FILE", "LM_FILE_SAVE_FILE_AS", "LM_FILE_SCAN_ROM", "LM_FILE_EXTRACT_GFX", "LM_FILE_INSERT_GFX", "LM_FILE_EXTRACT_EXGFX", "LM_FILE_INSERT_EXGFX", "LM_FILE_EXTRACT_EXGFX_LIST", "LM_FILE_INSERT_EXGFX_LIST", "LM_FILE_EXTRACT_PALETTE", //shared palettes "LM_FILE_INSERT_PALETTE", "LM_FILE_EXPORT_PALETTE", //custom palettes "LM_FILE_IMPORT_PALETTE", "LM_FILE_EXIT", "LM_FILE_EXPORT_DIRECTORY", "LM_FILE_ENCRYPT_LEVELS", "LM_FILE_CLEAR_OLD_LEVELS", "LM_FILE_EMULATOR_RUN", "LM_FILE_EMULATOR_SETTINGS", "LM_FILE_EXPAND_ROM2", "LM_FILE_EXPAND_ROM3", "LM_FILE_EXPAND_ROM4", "LM_FILE_EXPAND_ROM8", //ExLoROM "LM_FILE_EXPAND_ROM6_SA1", "LM_FILE_EXPAND_ROM8_SA1", "LM_FILE_CREATE_RESTORE", "LM_FILE_RESTORE", "LM_FILE_CREATE_IPS", "LM_FILE_APPLY_IPS", "LM_FILE_EXPORT_BITMAP",
"LM_FILE_SAVE_BUTTON", //button version commands "LM_FILE_EXTRACT_GFX_BUTTON", "LM_FILE_INSERT_GFX_BUTTON", "LM_FILE_EXTRACT_EXGFX_BUTTON", "LM_FILE_INSERT_EXGFX_BUTTON",
"LM_FILE_INT_EMULATOR_RUN", "LM_FILE_INT_EMULATOR_PAUSE", "LM_FILE_INT_EMULATOR_MUTE", "LM_FILE_INT_EMULATOR_USE_F4", "LM_FILE_INT_EMULATOR_STOP_LEVEL_CHANGE",
"LM_FILE_RECENT_MENU",
"LM_EDIT_CUT", "LM_EDIT_COPY", "LM_EDIT_PASTE", "LM_EDIT_EDIT_LAYER_1", "LM_EDIT_EDIT_LAYER_2", "LM_EDIT_SPRITES", "LM_EDIT_INSERT", "LM_EDIT_DELETE", "LM_EDIT_DELETE_ALL", "LM_EDIT_ZORDER_UP", "LM_EDIT_ZORDER_DOWN", "LM_EDIT_INCREASE_X", "LM_EDIT_DECREASE_X", "LM_EDIT_INCREASE_Y", "LM_EDIT_DECREASE_Y", "LM_EDIT_UNDO", "LM_EDIT_REDO", "LM_EDIT_CDM16", "LM_EDIT_REMAP_DM16",
"LM_EDIT_EDIT_MANUAL",
"LM_VIEW_LAYER_1", "LM_VIEW_LAYER_2", "LM_VIEW_LAYER_3", "LM_VIEW_SPRITES", "LM_VIEW_SPRITE_DATA", "LM_VIEW_SCREEN_EXITS", "LM_VIEW_SCREEN_GRID", "LM_VIEW_SCREEN_GRID_2", "LM_VIEW_LEVEL_ENTRANCE", "LM_VIEW_LEVEL_ENTRANCE_2", "LM_VIEW_MIDWAY_POINT", "LM_VIEW_GREEN_SWITCH", "LM_VIEW_YELLOW_SWITCH", "LM_VIEW_BLUE_SWITCH", "LM_VIEW_RED_SWITCH", "LM_VIEW_SPECIAL_WORLD", "LM_VIEW_INVISIBLE", "LM_VIEW_INVISIBLE_2", "LM_VIEW_LINE_ON", "LM_VIEW_INCREASE_FRAME", "LM_VIEW_ANIMATION", "LM_VIEW_SILVER_POW", "LM_VIEW_POW", "LM_VIEW_512HEIGHT_BG", "LM_VIEW_TILE_GRID", "LM_VIEW_CDM16", "LM_VIEW_ZOOM", "LM_VIEW_HAVE_STAR", "LM_VIEW_TIME_100", "LM_VIEW_5YOSHI_COINS", "LM_VIEW_RESET_ANIMATION",
"LM_VIEW_ADD_OBJECT", //editors "LM_VIEW_ADD_SPRITE", "LM_VIEW_8x8", "LM_VIEW_16x16", "LM_VIEW_BACK", "LM_VIEW_OVERWORLD", "LM_VIEW_PALETTES", "LM_VIEW_LAYER_3_EDITOR",
"LM_LEVEL_SUPER_BYPASS", "LM_LEVEL_SUPER_BYPASS2", "LM_LEVEL_BYPASS_FG", //old "LM_LEVEL_BYPASS_SP", //old "LM_LEVEL_BYPASS_MUSIC", "LM_LEVEL_EXITS", "LM_LEVEL_ENTRANCE", "LM_LEVEL_ENTRANCE2", "LM_LEVEL_SCAN_EXITS",
"LM_LEVEL_GRAPHICS", "LM_LEVEL_PROPERTIES", "LM_LEVEL_OTHER", "LM_LEVEL_SPRITES", "LM_LEVEL_EXTEND_ANI", //old
"LM_LEVEL_EX20_LEVEL", "LM_LEVEL_EX20_GLOBAL", "LM_LEVEL_EX20_SETTINGS", "LM_LEVEL_LAYER3_BYPASS", "LM_LEVEL_LAYER3_BYPASS2", "LM_LEVEL_LAYER3_SETTINGS",
"LM_OPTIONS_GENERAL", "LM_OPTIONS_RESTORE", "LM_OPTIONS_ANIM_RATE", "LM_OPTIONS_COMPRESSION",
"LM_HELP_CONTENTS", "LM_HELP_ABOUT",
"LM_VIEW_CUSTOM_TRIGGER_0", "LM_VIEW_CUSTOM_TRIGGER_1", "LM_VIEW_CUSTOM_TRIGGER_2", "LM_VIEW_CUSTOM_TRIGGER_3", "LM_VIEW_CUSTOM_TRIGGER_4", "LM_VIEW_CUSTOM_TRIGGER_5", "LM_VIEW_CUSTOM_TRIGGER_6", "LM_VIEW_CUSTOM_TRIGGER_7", "LM_VIEW_CUSTOM_TRIGGER_8", "LM_VIEW_CUSTOM_TRIGGER_9", "LM_VIEW_CUSTOM_TRIGGER_A", "LM_VIEW_CUSTOM_TRIGGER_B", "LM_VIEW_CUSTOM_TRIGGER_C", "LM_VIEW_CUSTOM_TRIGGER_D", "LM_VIEW_CUSTOM_TRIGGER_E", "LM_VIEW_CUSTOM_TRIGGER_F", "LM_VIEW_ONESHOT_TRIGGER_00", "LM_VIEW_ONESHOT_TRIGGER_01", "LM_VIEW_ONESHOT_TRIGGER_02", "LM_VIEW_ONESHOT_TRIGGER_03", "LM_VIEW_ONESHOT_TRIGGER_04", "LM_VIEW_ONESHOT_TRIGGER_05", "LM_VIEW_ONESHOT_TRIGGER_06", "LM_VIEW_ONESHOT_TRIGGER_07", "LM_VIEW_ONESHOT_TRIGGER_08", "LM_VIEW_ONESHOT_TRIGGER_09", "LM_VIEW_ONESHOT_TRIGGER_0A", "LM_VIEW_ONESHOT_TRIGGER_0B", "LM_VIEW_ONESHOT_TRIGGER_0C", "LM_VIEW_ONESHOT_TRIGGER_0D", "LM_VIEW_ONESHOT_TRIGGER_0E", "LM_VIEW_ONESHOT_TRIGGER_0F", "LM_VIEW_ONESHOT_TRIGGER_10", "LM_VIEW_ONESHOT_TRIGGER_11", "LM_VIEW_ONESHOT_TRIGGER_12", "LM_VIEW_ONESHOT_TRIGGER_13", "LM_VIEW_ONESHOT_TRIGGER_14", "LM_VIEW_ONESHOT_TRIGGER_15", "LM_VIEW_ONESHOT_TRIGGER_16", "LM_VIEW_ONESHOT_TRIGGER_17", "LM_VIEW_ONESHOT_TRIGGER_18", "LM_VIEW_ONESHOT_TRIGGER_19", "LM_VIEW_ONESHOT_TRIGGER_1A", "LM_VIEW_ONESHOT_TRIGGER_1B", "LM_VIEW_ONESHOT_TRIGGER_1C", "LM_VIEW_ONESHOT_TRIGGER_1D", "LM_VIEW_ONESHOT_TRIGGER_1E", "LM_VIEW_ONESHOT_TRIGGER_1F", "LM_VIEW_MANUAL_TRIGGER_INC_0", "LM_VIEW_MANUAL_TRIGGER_INC_1", "LM_VIEW_MANUAL_TRIGGER_INC_2", "LM_VIEW_MANUAL_TRIGGER_INC_3", "LM_VIEW_MANUAL_TRIGGER_INC_4", "LM_VIEW_MANUAL_TRIGGER_INC_5", "LM_VIEW_MANUAL_TRIGGER_INC_6", "LM_VIEW_MANUAL_TRIGGER_INC_7", "LM_VIEW_MANUAL_TRIGGER_INC_8", "LM_VIEW_MANUAL_TRIGGER_INC_9", "LM_VIEW_MANUAL_TRIGGER_INC_A", "LM_VIEW_MANUAL_TRIGGER_INC_B", "LM_VIEW_MANUAL_TRIGGER_INC_C", "LM_VIEW_MANUAL_TRIGGER_INC_D", "LM_VIEW_MANUAL_TRIGGER_INC_E", "LM_VIEW_MANUAL_TRIGGER_INC_F", "LM_VIEW_MANUAL_TRIGGER_DEC_0", "LM_VIEW_MANUAL_TRIGGER_DEC_1", "LM_VIEW_MANUAL_TRIGGER_DEC_2", "LM_VIEW_MANUAL_TRIGGER_DEC_3", "LM_VIEW_MANUAL_TRIGGER_DEC_4", "LM_VIEW_MANUAL_TRIGGER_DEC_5", "LM_VIEW_MANUAL_TRIGGER_DEC_6", "LM_VIEW_MANUAL_TRIGGER_DEC_7", "LM_VIEW_MANUAL_TRIGGER_DEC_8", "LM_VIEW_MANUAL_TRIGGER_DEC_9", "LM_VIEW_MANUAL_TRIGGER_DEC_A", "LM_VIEW_MANUAL_TRIGGER_DEC_B", "LM_VIEW_MANUAL_TRIGGER_DEC_C", "LM_VIEW_MANUAL_TRIGGER_DEC_D", "LM_VIEW_MANUAL_TRIGGER_DEC_E", "LM_VIEW_MANUAL_TRIGGER_DEC_F", "LM_VIEW_CUSTOM_TRIGGER_INC", "LM_VIEW_CUSTOM_TRIGGER_DEC", "LM_VIEW_ONESHOT_TRIGGER_INC", "LM_VIEW_ONESHOT_TRIGGER_DEC", "LM_VIEW_MANUAL_TRIGGER_INC", "LM_VIEW_MANUAL_TRIGGER_DEC", "LM_VIEW_CUSTOM_TRIGGER_CURRENT", "LM_VIEW_ONESHOT_TRIGGER_CURRENT", "LM_VIEW_MANUAL_TRIGGER_CURRENT_INC", "LM_VIEW_MANUAL_TRIGGER_CURRENT_DEC",
"LM_KEY_SPRITE19_FIX", "LM_KEY_MENUCOLOR_FIX", "LM_KEY_GRID_COLOR", "LM_KEY_ADD_CSPRITE", "LM_KEY_TRUNCATE", "LM_KEY_MARIO_REGIONS", "LM_KEY_BGEDIT_ONTOP",
"LM_MOUSE_LEVEL_BACK", "LM_MOUSE_LEVEL_FORWARD",
4.アイコンについて
では、次は、 これ この画像をLMと同じディレクトリにおいて、 usertoolbar.txtに次のように記述しましょう。
LM_ADDIMAGE "test.bmp" ***START*** LM_FILE_CREATE_IPS 0,IPSパッチを作成 ***START*** LM_FILE_APPLY_IPS 1,IPSパッチを適用 ***END***