diff --git a/Data/Scripts/001_Technical/001_MKXP_Compatibility.rb b/Data/Scripts/001_Technical/001_MKXP_Compatibility.rb new file mode 100644 index 000000000..c65594744 --- /dev/null +++ b/Data/Scripts/001_Technical/001_MKXP_Compatibility.rb @@ -0,0 +1,23 @@ +$MKXP = !!defined?(System) + +def mkxp? + return $MKXP +end + +def pbSetWindowText(string) + if mkxp? + System.set_window_title(string || System.game_title) + else + Win32API.SetWindowText(string || "RGSS Player") + end +end + +class Bitmap + if mkxp? + alias mkxp_draw_text draw_text + def draw_text(x, y, width, height, text, align = 0) + height = text_size(text).height + mkxp_draw_text(x, y, width, height, text, align) + end + end +end diff --git a/Data/Scripts/001_Technical/001_Ruby Utilities.rb b/Data/Scripts/001_Technical/002_Ruby Utilities.rb similarity index 100% rename from Data/Scripts/001_Technical/001_Ruby Utilities.rb rename to Data/Scripts/001_Technical/002_Ruby Utilities.rb diff --git a/Data/Scripts/001_Technical/002_RGSS2Compatibility.rb b/Data/Scripts/001_Technical/003_RGSS2Compatibility.rb similarity index 100% rename from Data/Scripts/001_Technical/002_RGSS2Compatibility.rb rename to Data/Scripts/001_Technical/003_RGSS2Compatibility.rb diff --git a/Data/Scripts/001_Technical/003_RPG__Sprite.rb b/Data/Scripts/001_Technical/004_RPG__Sprite.rb similarity index 100% rename from Data/Scripts/001_Technical/003_RPG__Sprite.rb rename to Data/Scripts/001_Technical/004_RPG__Sprite.rb diff --git a/Data/Scripts/001_Technical/004_Win32API.rb b/Data/Scripts/001_Technical/005_Win32API.rb similarity index 100% rename from Data/Scripts/001_Technical/004_Win32API.rb rename to Data/Scripts/001_Technical/005_Win32API.rb diff --git a/Data/Scripts/001_Technical/005_Sockets.rb b/Data/Scripts/001_Technical/006_Sockets.rb similarity index 100% rename from Data/Scripts/001_Technical/005_Sockets.rb rename to Data/Scripts/001_Technical/006_Sockets.rb diff --git a/Data/Scripts/001_Technical/006_DebugConsole.rb b/Data/Scripts/001_Technical/007_DebugConsole.rb similarity index 100% rename from Data/Scripts/001_Technical/006_DebugConsole.rb rename to Data/Scripts/001_Technical/007_DebugConsole.rb diff --git a/Data/Scripts/001_Technical/007_Sprite_Resizer.rb b/Data/Scripts/001_Technical/008_Sprite_Resizer.rb similarity index 93% rename from Data/Scripts/001_Technical/007_Sprite_Resizer.rb rename to Data/Scripts/001_Technical/008_Sprite_Resizer.rb index 75faefa04..bec26286a 100644 --- a/Data/Scripts/001_Technical/007_Sprite_Resizer.rb +++ b/Data/Scripts/001_Technical/008_Sprite_Resizer.rb @@ -16,9 +16,26 @@ if true # Disables using Alt+Enter to go fullscreen regHotKey.call(0, 1, 1, 0x0D) end -def pbSetResizeFactor(factor=1,norecalc=false) - factor = [0.5,1.0,2.0,-1][factor] if !norecalc - (factor<0) ? pbConfigureFullScreen : pbConfigureWindowedScreen(factor) +if mkxp? + # This kinda puts most of SpriteResizer out of business + def pbSetResizeFactor(factor) + if !$ResizeInitialized + Graphics.resize_screen(SCREEN_WIDTH, SCREEN_HEIGHT) + $ResizeInitialized = true + end + if factor < 0 || factor == 3 + Graphics.fullscreen = true if !Graphics.fullscreen + else + Graphics.fullscreen = false if Graphics.fullscreen + Graphics.scale = factor + Graphics.center + end + end +else + def pbSetResizeFactor(factor=1,norecalc=false) + factor = [0.5,1.0,2.0,-1][factor] if !norecalc + (factor<0) ? pbConfigureFullScreen : pbConfigureWindowedScreen(factor) + end end def pbSetResizeFactor2(factor,force=false) @@ -172,33 +189,37 @@ module Graphics end end - class << self - begin - x = @@haveresizescreen - rescue NameError # If exception is caught, the class - if !method_defined?(:oldresizescreen) # variable wasn't defined yet - begin - alias oldresizescreen resize_screen - @@haveresizescreen = true - rescue + if mkxp? + @@haveresizescreen = true + else + class << self + begin + x = @@haveresizescreen + rescue NameError # If exception is caught, the class + if !method_defined?(:oldresizescreen) # variable wasn't defined yet + begin + alias oldresizescreen resize_screen + @@haveresizescreen = true + rescue + @@haveresizescreen = false + end + else @@haveresizescreen = false end - else - @@haveresizescreen = false + end + + def haveresizescreen + @@haveresizescreen end end - def haveresizescreen - @@haveresizescreen + def self.resize_screen(w,h) + @@width = w + @@height = h + pbSetResizeFactor($ResizeFactor,true) end end - def self.resize_screen(w,h) - @@width = w - @@height = h - pbSetResizeFactor($ResizeFactor,true) - end - @@deletefailed = false def self.snap_to_bitmap(resize=true) diff --git a/Data/Scripts/001_Technical/008_Plugin_Manager.rb b/Data/Scripts/001_Technical/009_Plugin_Manager.rb similarity index 100% rename from Data/Scripts/001_Technical/008_Plugin_Manager.rb rename to Data/Scripts/001_Technical/009_Plugin_Manager.rb diff --git a/Data/Scripts/003_Game classes/002_Game_System.rb b/Data/Scripts/003_Game classes/002_Game_System.rb index 7ad6df994..2980e09c0 100644 --- a/Data/Scripts/003_Game classes/002_Game_System.rb +++ b/Data/Scripts/003_Game classes/002_Game_System.rb @@ -23,13 +23,8 @@ class Game_System attr_accessor :bgm_position def initialize - if $RPGVX - @map_interpreter = Game_Interpreter.new(0,true) - @battle_interpreter = Game_Interpreter.new(0,false) - else - @map_interpreter = Interpreter.new(0,true) - @battle_interpreter = Interpreter.new(0,false) - end + @map_interpreter = Interpreter.new(0, true) + @battle_interpreter = Interpreter.new(0, false) @timer = 0 @timer_working = false @save_disabled = false diff --git a/Data/Scripts/003_Game classes/009_Game_Map.rb b/Data/Scripts/003_Game classes/009_Game_Map.rb index 7c7c1d248..cf0c2f701 100644 --- a/Data/Scripts/003_Game classes/009_Game_Map.rb +++ b/Data/Scripts/003_Game classes/009_Game_Map.rb @@ -31,8 +31,8 @@ class Game_Map TILE_WIDTH = 32 TILE_HEIGHT = 32 - X_SUBPIXELS = ($RPGVX) ? 8 : 4 - Y_SUBPIXELS = ($RPGVX) ? 8 : 4 + X_SUBPIXELS = 4 + Y_SUBPIXELS = 4 REAL_RES_X = TILE_WIDTH * X_SUBPIXELS REAL_RES_Y = TILE_HEIGHT * Y_SUBPIXELS @@ -44,7 +44,7 @@ class Game_Map def setup(map_id) @map_id = map_id - @map = load_data(sprintf("Data/Map%03d.%s",map_id,($RPGVX) ? "rvdata" : "rxdata")) + @map = load_data(sprintf("Data/Map%03d.rxdata",map_id)) tileset = $data_tilesets[@map.tileset_id] updateTileset @fog_ox = 0 diff --git a/Data/Scripts/004_Sprites/008_Sprite_AnimationSprite.rb b/Data/Scripts/004_Sprites/008_Sprite_AnimationSprite.rb index f6ab24d60..15965348c 100644 --- a/Data/Scripts/004_Sprites/008_Sprite_AnimationSprite.rb +++ b/Data/Scripts/004_Sprites/008_Sprite_AnimationSprite.rb @@ -76,7 +76,7 @@ class Spriteset_Map def update return if @tilemap.disposed? - if $RPGVX || $PokemonSystem.tilemap==0 + if $PokemonSystem.tilemap==0 if self.map==$game_map pbDayNightTint(@@viewport3) else diff --git a/Data/Scripts/006_Game processing/001_Interpreter.rb b/Data/Scripts/006_Game processing/001_Interpreter.rb index 52cc81c69..d2ad3eee5 100644 --- a/Data/Scripts/006_Game processing/001_Interpreter.rb +++ b/Data/Scripts/006_Game processing/001_Interpreter.rb @@ -266,16 +266,16 @@ class Interpreter when 402; return command_402 # When [**] when 403; return command_403 # When Cancel when 103; return command_103 # Input Number - when 104; return command_104 # Change Text Options [not in VX] - when 105; return command_105 # Button Input Processing [not in VX] - when 106; return command_106 # Wait [in VX: 230] + when 104; return command_104 # Change Text Options + when 105; return command_105 # Button Input Processing + when 106; return command_106 # Wait when 111; return command_111 # Conditional Branch when 411; return command_411 # Else when 112; return command_112 # Loop when 413; return command_413 # Repeat Above when 113; return command_113 # Break Loop when 115; return command_115 # Exit Event Processing - when 116; return command_116 # Erase Event [in VX: 214] + when 116; return command_116 # Erase Event when 117; return command_117 # Call Common Event when 118; return command_118 # Label when 119; return command_119 # Jump to Label @@ -288,7 +288,7 @@ class Interpreter when 127; return command_127 # Change Weapons when 128; return command_128 # Change Armor when 129; return command_129 # Change Party Member - when 131; return command_131 # Change Windowskin [not in VX] + when 131; return command_131 # Change Windowskin when 132; return command_132 # Change Battle BGM when 133; return command_133 # Change Battle End ME when 134; return command_134 # Change Save Access @@ -298,14 +298,14 @@ class Interpreter when 202; return command_202 # Set Event Location when 203; return command_203 # Scroll Map when 204; return command_204 # Change Map Settings - when 205; return command_205 # Change Fog Color Tone [in VX: Set Move Route] - when 206; return command_206 # Change Fog Opacity [in VX: Get on/off Vehicle] - when 207; return command_207 # Show Animation [in VX: 212] - when 208; return command_208 # Change Transparent Flag [in VX: 211] - when 209; return command_209 # Set Move Route [in VX: 205] + when 205; return command_205 # Change Fog Color Tone + when 206; return command_206 # Change Fog Opacity + when 207; return command_207 # Show Animation + when 208; return command_208 # Change Transparent Flag + when 209; return command_209 # Set Move Route when 210; return command_210 # Wait for Move's Completion - when 221; return command_221 # Prepare for Transition [Not in VX, now called Fadeout Screen] - when 222; return command_222 # Execute Transition [Not in VX, now called Fadein Screen] + when 221; return command_221 # Prepare for Transition + when 222; return command_222 # Execute Transition when 223; return command_223 # Change Screen Color Tone when 224; return command_224 # Screen Flash when 225; return command_225 # Screen Shake @@ -319,8 +319,8 @@ class Interpreter when 242; return command_242 # Fade Out BGM when 245; return command_245 # Play BGS when 246; return command_246 # Fade Out BGS - when 247; return command_247 # Memorize BGM/BGS [not in VX] - when 248; return command_248 # Restore BGM/BGS [not in VX] + when 247; return command_247 # Memorize BGM/BGS + when 248; return command_248 # Restore BGM/BGS when 249; return command_249 # Play ME when 250; return command_250 # Play SE when 251; return command_251 # Stop SE diff --git a/Data/Scripts/007_Events and files/003_Intl_Messages.rb b/Data/Scripts/007_Events and files/003_Intl_Messages.rb index cc33c0f39..52ee6b1a2 100644 --- a/Data/Scripts/007_Events and files/003_Intl_Messages.rb +++ b/Data/Scripts/007_Events and files/003_Intl_Messages.rb @@ -56,7 +56,7 @@ def pbSetTextMessages neednewline=false end if list.code == 101 - lastitem+="#{list.parameters[0]}" if !$RPGVX + lastitem+="#{list.parameters[0]}" neednewline=true elsif list.code == 102 for k in 0...list.parameters[0].length @@ -107,7 +107,7 @@ def pbSetTextMessages t = Time.now.to_i Graphics.update end - filename=sprintf("Data/Map%03d.%s",id,$RPGVX ? "rvdata" : "rxdata") + filename=sprintf("Data/Map%03d.rxdata",id) next if !pbRgssExists?(filename) map = load_data(filename) items=[] @@ -132,7 +132,7 @@ def pbSetTextMessages neednewline=false end if list.code == 101 - lastitem+="#{list.parameters[0]}" if !$RPGVX + lastitem+="#{list.parameters[0]}" neednewline=true elsif list.code == 102 for k in 0...list.parameters[0].length diff --git a/Data/Scripts/009_Objects and windows/002_MessageConfig.rb b/Data/Scripts/009_Objects and windows/002_MessageConfig.rb index abbac5add..a10d2cc4a 100644 --- a/Data/Scripts/009_Objects and windows/002_MessageConfig.rb +++ b/Data/Scripts/009_Objects and windows/002_MessageConfig.rb @@ -387,11 +387,11 @@ def pbSetSystemFont(bitmap) fontname = MessageConfig.pbGetSystemFontName bitmap.font.name = fontname if fontname == "Pokemon FireLeaf" || fontname == "Power Red and Green" - bitmap.font.size = 29 + bitmap.font.size = mkxp? ? 27 : 29 elsif fontname == "Pokemon Emerald Small" || fontname == "Power Green Small" - bitmap.font.size = 25 + bitmap.font.size = mkxp? ? 29 : 25 else - bitmap.font.size = 31 + bitmap.font.size = mkxp? ? 29 : 31 end end @@ -404,7 +404,7 @@ end # Sets a bitmap's font to the system narrow font. def pbSetNarrowFont(bitmap) bitmap.font.name = pbNarrowFontName - bitmap.font.size = 31 + bitmap.font.size = mkxp? ? 29 : 31 end #=============================================================================== diff --git a/Data/Scripts/009_Objects and windows/005_SpriteWindow_text.rb b/Data/Scripts/009_Objects and windows/005_SpriteWindow_text.rb index 4fa594124..0946c29bf 100644 --- a/Data/Scripts/009_Objects and windows/005_SpriteWindow_text.rb +++ b/Data/Scripts/009_Objects and windows/005_SpriteWindow_text.rb @@ -71,7 +71,7 @@ class Window_UnformattedTextPokemon < SpriteWindow_Base def resizeHeightToFit(text,width=-1) # width is current window width dims=resizeToFitInternal(text,width) self.width=width<0 ? Graphics.width : width - self.height=dims[1]+self.borderY + self.height = dims[1] + self.borderY - (mkxp? ? 4 : 0) refresh end @@ -1227,7 +1227,7 @@ class Window_CommandPokemon < Window_DrawableCommand def drawItem(index,_count,rect) pbSetSystemFont(self.contents) if @starting rect=drawCursor(index,rect) - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height, + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height, @commands[index],self.baseColor,self.shadowColor) end end @@ -1331,7 +1331,7 @@ class Window_AdvancedCommandPokemon < Window_DrawableCommand dims=[] getAutoDims(commands,dims,width) self.width=dims[0] - self.height=dims[1] + self.height=dims[1] - (mkxp? ? 6 : 0) end def itemCount @@ -1343,7 +1343,7 @@ class Window_AdvancedCommandPokemon < Window_DrawableCommand rect=drawCursor(index,rect) if toUnformattedText(@commands[index]).gsub(/\n/,"")==@commands[index] # Use faster alternative for unformatted text without line breaks - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height, + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height, @commands[index],self.baseColor,self.shadowColor) else chars=getFormattedText( diff --git a/Data/Scripts/009_Objects and windows/010_DrawText.rb b/Data/Scripts/009_Objects and windows/010_DrawText.rb index ca4c8bf8d..5bfe30f98 100644 --- a/Data/Scripts/009_Objects and windows/010_DrawText.rb +++ b/Data/Scripts/009_Objects and windows/010_DrawText.rb @@ -168,6 +168,7 @@ end def getFormattedTextFast(bitmap,xDst,yDst,widthDst,heightDst,text,lineheight, newlineBreaks=true,explicitBreaksOnly=false) + yDst += 4 if mkxp? x=y=0 characters=[] textchunks=[] @@ -421,6 +422,7 @@ _drawFormattedChars_ function. def getFormattedText(bitmap,xDst,yDst,widthDst,heightDst,text,lineheight=32, newlineBreaks=true,explicitBreaksOnly=false, collapseAlignments=false) + yDst += 4 if mkxp? dummybitmap=nil if !bitmap || bitmap.disposed? # allows function to be called with nil bitmap dummybitmap=Bitmap.new(1,1) @@ -888,8 +890,7 @@ end #=============================================================================== def getLineBrokenChunks(bitmap,value,width,dims,plain=false) x=0 - y=0 - textheight=0 + y=mkxp? ? 4: 0 ret=[] if dims dims[0]=0 @@ -905,9 +906,7 @@ def getLineBrokenChunks(bitmap,value,width,dims,plain=false) ccheck=c if ccheck=="\n" x=0 -# y+=(textheight==0) ? bitmap.text_size("X").height : textheight - y+=(textheight==0) ? bitmap.text_size("X").height+1 : textheight - textheight=0 + y+=32 next end if ccheck[/0 && x+minTextSize.width>width x=0 - y+=32 # (textheight==0) ? bitmap.text_size("X").height : textheight -# y+=(textheight==0) ? bitmap.text_size("X").height+1 : textheight - textheight=0 + y+=32 end end - textheight=32 # [textheight,textSize.height].max -# textheight=[textheight,textSize.height+1].max - ret.push([word,x,y,textwidth,textheight,color]) + ret.push([word,x,y,textwidth,32,color]) x+=textwidth dims[0]=x if dims && dims[0]0 bitmap.font.color=shadowColor bitmap.draw_text(x+2,y,width,height,string,align) @@ -1161,7 +1157,7 @@ def pbDrawTextPositions(bitmap,textpos) for i in textpos textsize = bitmap.text_size(i[0]) x = i[1] - y = i[2] + y = i[2] + (mkxp? ? 6 : 0) if i[3]==true || i[3]==1 # right align x -= textsize.width elsif i[3]==2 # centered diff --git a/Data/Scripts/009_Objects and windows/011_Messages.rb b/Data/Scripts/009_Objects and windows/011_Messages.rb index c6d0e7318..fd58d3ded 100644 --- a/Data/Scripts/009_Objects and windows/011_Messages.rb +++ b/Data/Scripts/009_Objects and windows/011_Messages.rb @@ -382,126 +382,6 @@ end -class Game_Interpreter # Used by RMVX - include InterpreterMixin - eval(InterpreterMixin::CustomEventCommands) - @@immediateDisplayAfterWait=false - @buttonInput=false - - def pbParams - return @params - end - - def command_105 - return false if @buttonInput - @buttonInput=true - pbButtonInputProcessing(@list[@index].parameters[0]) - @buttonInput=false - @index+=1 - return true - end - - def command_101 - if $game_temp.message_window_showing - return false - end - $game_message=Game_Message.new if !$game_message - message="" - commands=nil - numInputVar=nil - numInputDigitsMax=nil - text="" - facename=@list[@index].parameters[0] - faceindex=@list[@index].parameters[1] - if facename && facename!="" - text+="\\ff[#{facename},#{faceindex}]" - end - if $game_message - $game_message.background=@list[@index].parameters[2] - end - $game_system.message_position=@list[@index].parameters[3] - message+=text - messageend="" - loop do - nextIndex=pbNextIndex(@index) - code=@list[nextIndex].code - if code == 401 - text=@list[nextIndex].parameters[0] - text+=" " if text!="" && text[text.length-1,1]!=" " - message+=text - @index=nextIndex - else - if code == 102 - commands=@list[nextIndex].parameters - @index=nextIndex - elsif code == 106 && @@immediateDisplayAfterWait - params=@list[nextIndex].parameters - if params[0]<=10 - nextcode=@list[nextIndex+1].code - if nextcode==101||nextcode==102||nextcode==103 - @index=nextIndex - else - break - end - else - break - end - elsif code == 103 - numInputVar=@list[nextIndex].parameters[0] - numInputDigitsMax=@list[nextIndex].parameters[1] - @index=nextIndex - elsif code == 101 - messageend="\1" - end - break - end - end - message=_MAPINTL($game_map.map_id,message) - @message_waiting=true - if commands - cmdlist=[] - for cmd in commands[0] - cmdlist.push(_MAPINTL($game_map.map_id,cmd)) - end - command=pbMessage(message+messageend,cmdlist,commands[1]) - @branch[@list[@index].indent] = command - elsif numInputVar - params=ChooseNumberParams.new - params.setMaxDigits(numInputDigitsMax) - params.setDefaultValue($game_variables[numInputVar]) - $game_variables[numInputVar]=pbMessageChooseNumber(message+messageend,params) - $game_map.need_refresh = true if $game_map - else - pbMessage(message+messageend) - end - @message_waiting=false - return true - end - - def command_102 - @message_waiting=true - command=pbShowCommands(nil,@list[@index].parameters[0],@list[@index].parameters[1]) - @message_waiting=false - @branch[@list[@index].indent] = command - Input.update # Must call Input.update again to avoid extra triggers - return true - end - - def command_103 - varnumber=@list[@index].parameters[0] - @message_waiting=true - params=ChooseNumberParams.new - params.setMaxDigits(@list[@index].parameters[1]) - params.setDefaultValue($game_variables[varnumber]) - $game_variables[varnumber]=pbChooseNumber(nil,params) - $game_map.need_refresh = true if $game_map - @message_waiting=false - return true - end -end - - - class Interpreter # Used by RMXP include InterpreterMixin eval(InterpreterMixin::CustomEventCommands) diff --git a/Data/Scripts/009_Objects and windows/012_TextEntry.rb b/Data/Scripts/009_Objects and windows/012_TextEntry.rb index ffadd5ea8..c8c31f823 100644 --- a/Data/Scripts/009_Objects and windows/012_TextEntry.rb +++ b/Data/Scripts/009_Objects and windows/012_TextEntry.rb @@ -49,16 +49,16 @@ class Window_CharacterEntry < Window_DrawableCommand def drawItem(index,_count,rect) rect=drawCursor(index,rect) if index==@charset.length # -1 - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height,"[ ]", + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height,"[ ]", self.baseColor,self.shadowColor) elsif index==@charset.length+1 # -2 - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height,@othercharset, + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height,@othercharset, self.baseColor,self.shadowColor) elsif index==@charset.length+2 # -3 - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height,_INTL("OK"), + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height,_INTL("OK"), self.baseColor,self.shadowColor) else - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height,@charset[index], + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height,@charset[index], self.baseColor,self.shadowColor) end end @@ -1533,28 +1533,6 @@ end -class Game_Interpreter - def command_303 - if $Trainer - $Trainer.name=pbEnterPlayerName(_INTL("Your name?"),1,@params[1],$Trainer.name) - return true - end - if $game_actors && $data_actors && $data_actors[@params[0]] != nil - # Set battle abort flag - pbFadeOutIn { - sscene=PokemonEntryScene.new - sscreen=PokemonEntry.new(sscene) - $game_actors[@params[0]].name=sscreen.pbStartScreen( - _INTL("Enter {1}'s name.",$game_actors[@params[0]].name), - 1,@params[1],$game_actors[@params[0]].name) - } - end - return true - end -end - - - #=============================================================================== # #=============================================================================== diff --git a/Data/Scripts/013_Overworld/002_PField_Field.rb b/Data/Scripts/013_Overworld/002_PField_Field.rb index 6f043ef18..f878cb81d 100644 --- a/Data/Scripts/013_Overworld/002_PField_Field.rb +++ b/Data/Scripts/013_Overworld/002_PField_Field.rb @@ -411,7 +411,7 @@ end Events.onMapChanging += proc { |_sender,e| newMapID = e[0] if newMapID>0 - mapinfos = ($RPGVX) ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata") + mapinfos = load_data("Data/MapInfos.rxdata") oldWeather = GameData::MapMetadata.get($game_map.map_id).weather if $game_map.name!=mapinfos[newMapID].name $game_screen.weather(0,0,0) if oldWeather @@ -431,7 +431,7 @@ Events.onMapChange += proc { |_sender,e| $PokemonEncounters.setup($game_map.map_id) if $PokemonEncounters $PokemonGlobal.visitedMaps[$game_map.map_id] = true if oldid!=0 && oldid!=$game_map.map_id - mapinfos = ($RPGVX) ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata") + mapinfos = load_data("Data/MapInfos.rxdata") weather = GameData::MapMetadata.get($game_map.map_id).weather if $game_map.name!=mapinfos[oldid].name $game_screen.weather(weather[0],8,20) if weather && rand(100)0 && mapInfos[oldMapID] && mapInfos[oldMapID].name && $game_map.name==mapInfos[oldMapID].name # Make roaming Pokémon roam diff --git a/Data/Scripts/017_UI/002_PScreen_PokedexMenu.rb b/Data/Scripts/017_UI/002_PScreen_PokedexMenu.rb index 4a3a51b60..53ad0fb8d 100644 --- a/Data/Scripts/017_UI/002_PScreen_PokedexMenu.rb +++ b/Data/Scripts/017_UI/002_PScreen_PokedexMenu.rb @@ -17,9 +17,9 @@ class Window_DexesList < Window_CommandPokemon def drawItem(index,count,rect) super(index,count,rect) if index>=0 && index<@commands2.length - pbDrawShadowText(self.contents,rect.x+254,rect.y,64,rect.height, + pbDrawShadowText(self.contents,rect.x+254,rect.y + (mkxp? ? 6 : 0),64,rect.height, sprintf("%d",@commands2[index][0]),self.baseColor,self.shadowColor,1) - pbDrawShadowText(self.contents,rect.x+350,rect.y,64,rect.height, + pbDrawShadowText(self.contents,rect.x+350,rect.y + (mkxp? ? 6 : 0),64,rect.height, sprintf("%d",@commands2[index][1]),self.baseColor,self.shadowColor,1) allseen = (@commands2[index][0]>=@commands2[index][2]) allown = (@commands2[index][1]>=@commands2[index][2]) diff --git a/Data/Scripts/017_UI/003_PScreen_PokedexMain.rb b/Data/Scripts/017_UI/003_PScreen_PokedexMain.rb index 47d310274..27c09552a 100644 --- a/Data/Scripts/017_UI/003_PScreen_PokedexMain.rb +++ b/Data/Scripts/017_UI/003_PScreen_PokedexMain.rb @@ -45,7 +45,7 @@ class Window_Pokedex < Window_DrawableCommand else text = sprintf("%03d ----------",indexNumber) end - pbDrawShadowText(self.contents,rect.x+36,rect.y+6,rect.width,rect.height, + pbDrawShadowText(self.contents,rect.x+36,rect.y+6 + (mkxp? ? 6 : 0),rect.width,rect.height, text,self.baseColor,self.shadowColor) end diff --git a/Data/Scripts/017_UI/005_PScreen_Party.rb b/Data/Scripts/017_UI/005_PScreen_Party.rb index 051e23afc..7e996d18d 100644 --- a/Data/Scripts/017_UI/005_PScreen_Party.rb +++ b/Data/Scripts/017_UI/005_PScreen_Party.rb @@ -122,7 +122,8 @@ class Window_CommandPokemonColor < Window_CommandPokemon base = Color.new(0,80,160) shadow = Color.new(128,192,240) end - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height,@commands[index],base,shadow) + pbDrawShadowText(self.contents,rect.x,rect.y + (mkxp? ? 6 : 0),rect.width,rect.height, + @commands[index],base,shadow) end end @@ -398,7 +399,7 @@ class PokemonPartyPanel < SpriteWrapper "Graphics/Pictures/Party/overlay_lv",20,70,0,0,22,14]]) pbSetSmallFont(@overlaysprite.bitmap) pbDrawTextPositions(@overlaysprite.bitmap,[ - [@pokemon.level.to_s,42,62,0,basecolor,shadowcolor] + [@pokemon.level.to_s,42,63,0,basecolor,shadowcolor] ]) end # Draw annotation text diff --git a/Data/Scripts/017_UI/013_PScreen_Load.rb b/Data/Scripts/017_UI/013_PScreen_Load.rb index 20287fcf0..5c8a07de4 100644 --- a/Data/Scripts/017_UI/013_PScreen_Load.rb +++ b/Data/Scripts/017_UI/013_PScreen_Load.rb @@ -259,8 +259,7 @@ class PokemonLoadScreen savefile = RTP.getSaveFileName("Game.rxdata") FontInstaller.install data_system = pbLoadRxData("Data/System") - mapfile = ($RPGVX) ? sprintf("Data/Map%03d.rvdata",data_system.start_map_id) : - sprintf("Data/Map%03d.rxdata",data_system.start_map_id) + mapfile = sprintf("Data/Map%03d.rxdata",data_system.start_map_id) if data_system.start_map_id==0 || !pbRgssExists?(mapfile) pbMessage(_INTL("No starting position was set in the map editor.\1")) pbMessage(_INTL("The game cannot continue.")) diff --git a/Data/Scripts/017_UI/015_PScreen_Options.rb b/Data/Scripts/017_UI/015_PScreen_Options.rb index 5de10c5df..2e1c08c1c 100644 --- a/Data/Scripts/017_UI/015_PScreen_Options.rb +++ b/Data/Scripts/017_UI/015_PScreen_Options.rb @@ -331,7 +331,8 @@ class Window_PokemonOption < Window_DrawableCommand rect = drawCursor(index,rect) optionname = (index==@options.length) ? _INTL("Cancel") : @options[index].name optionwidth = rect.width*9/20 - pbDrawShadowText(self.contents,rect.x,rect.y,optionwidth,rect.height,optionname, + text_y = rect.y + (mkxp? ? 6 : 0) + pbDrawShadowText(self.contents,rect.x,text_y,optionwidth,rect.height,optionname, @nameBaseColor,@nameShadowColor) return if index==@options.length if @options[index].is_a?(EnumOption) @@ -345,7 +346,7 @@ class Window_PokemonOption < Window_DrawableCommand xpos = optionwidth+rect.x ivalue = 0 for value in @options[index].values - pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value, + pbDrawShadowText(self.contents,xpos,text_y,optionwidth,rect.height,value, (ivalue==self[index]) ? @selBaseColor : self.baseColor, (ivalue==self[index]) ? @selShadowColor : self.shadowColor ) @@ -354,14 +355,14 @@ class Window_PokemonOption < Window_DrawableCommand ivalue += 1 end else - pbDrawShadowText(self.contents,rect.x+optionwidth,rect.y,optionwidth,rect.height, + pbDrawShadowText(self.contents,rect.x+optionwidth,text_y,optionwidth,rect.height, optionname,self.baseColor,self.shadowColor) end elsif @options[index].is_a?(NumberOption) value = _INTL("Type {1}/{2}",@options[index].optstart+self[index], @options[index].optend-@options[index].optstart+1) xpos = optionwidth+rect.x - pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value, + pbDrawShadowText(self.contents,xpos,text_y,optionwidth,rect.height,value, @selBaseColor,@selShadowColor) elsif @options[index].is_a?(SliderOption) value = sprintf(" %d",@options[index].optend) @@ -375,12 +376,12 @@ class Window_PokemonOption < Window_DrawableCommand 8,16,@selBaseColor) value = sprintf("%d",@options[index].optstart+self[index]) xpos += optionwidth-self.contents.text_size(value).width - pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value, + pbDrawShadowText(self.contents,xpos,text_y,optionwidth,rect.height,value, @selBaseColor,@selShadowColor) else value = @options[index].values[self[index]] xpos = optionwidth+rect.x - pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value, + pbDrawShadowText(self.contents,xpos,text_y,optionwidth,rect.height,value, @selBaseColor,@selShadowColor) end end diff --git a/Data/Scripts/017_UI/017_PScreen_PokemonStorage.rb b/Data/Scripts/017_UI/017_PScreen_PokemonStorage.rb index 5e93861d1..08c89b34d 100644 --- a/Data/Scripts/017_UI/017_PScreen_PokemonStorage.rb +++ b/Data/Scripts/017_UI/017_PScreen_PokemonStorage.rb @@ -413,7 +413,8 @@ class PokemonBoxSprite < SpriteWrapper pbSetSystemFont(@contents) widthval = @contents.text_size(boxname).width xval = 162-(widthval/2) - pbDrawShadowText(@contents,xval,8,widthval,32,boxname,Color.new(248,248,248),Color.new(40,48,48)) + pbDrawShadowText(@contents,xval,8 + (mkxp? ? 6 : 0),widthval,32, + boxname,Color.new(248,248,248),Color.new(40,48,48)) @refreshBox = false end yval = self.y+30 @@ -536,7 +537,7 @@ class PokemonBoxPartySprite < SpriteWrapper def refresh @contents.blt(0,0,@boxbitmap.bitmap,Rect.new(0,0,172,352)) pbDrawTextPositions(self.bitmap,[ - [_INTL("Back"),86,242,2,Color.new(248,248,248),Color.new(80,80,80),1] + [_INTL("Back"),86,242 - (mkxp? ? 2 : 0),2,Color.new(248,248,248),Color.new(80,80,80),1] ]) xvalues = [18,90,18,90,18,90] @@ -1384,8 +1385,8 @@ class PokemonStorageScene buttonbase = Color.new(248,248,248) buttonshadow = Color.new(80,80,80) pbDrawTextPositions(overlay,[ - [_INTL("Party: {1}",(@storage.party.length rescue 0)),270,328,2,buttonbase,buttonshadow,1], - [_INTL("Exit"),446,328,2,buttonbase,buttonshadow,1], + [_INTL("Party: {1}",(@storage.party.length rescue 0)),270,328 - (mkxp? ? 2 : 0),2,buttonbase,buttonshadow,1], + [_INTL("Exit"),446,328 - (mkxp? ? 2 : 0),2,buttonbase,buttonshadow,1], ]) pokemon = nil if @screen.pbHeldPokemon diff --git a/Data/Scripts/017_UI/025_PScreen_Mart.rb b/Data/Scripts/017_UI/025_PScreen_Mart.rb index da136aaed..0c9499fe3 100644 --- a/Data/Scripts/017_UI/025_PScreen_Mart.rb +++ b/Data/Scripts/017_UI/025_PScreen_Mart.rb @@ -85,7 +85,7 @@ end #=============================================================================== -# Abstraction layer for RPG Maker XP/VX +# Abstraction layer for RPG Maker XP # Won't be used if $PokemonBag exists #=============================================================================== class RpgxpMartAdapter @@ -884,33 +884,3 @@ class Interpreter setPrice(item,-1,sellprice) end end - - - -class Game_Interpreter - def getItem(p) - if p[0]==0; return $data_items[p[1]] - elsif p[0]==1; return $data_weapons[p[1]] - elsif p[0]==2; return $data_armors[p[1]] - end - return nil - end - - def command_302 - shop_goods = [getItem(@params)] - # Loop - loop do - # Advance index - @index += 1 - # If next event command has shop on second line or after - if @list[@index].code == 605 - # Add goods list to new item - shop_goods.push(getItem(@list[@index].parameters)) - else - # End - pbPokemonMart(shop_goods.compact,nil,@params[2]) - return true - end - end - end -end diff --git a/Data/Scripts/020_System and utilities/002_PSystem_System.rb b/Data/Scripts/020_System and utilities/002_PSystem_System.rb index c4ec5b7ed..aa4ad5a94 100644 --- a/Data/Scripts/020_System and utilities/002_PSystem_System.rb +++ b/Data/Scripts/020_System and utilities/002_PSystem_System.rb @@ -9,11 +9,7 @@ def pbSafeLoad(file) end def pbLoadRxData(file) # :nodoc: - if $RPGVX - return load_data(file+".rvdata") - else - return load_data(file+".rxdata") - end + return load_data(file+".rxdata") end def pbChooseLanguage @@ -102,7 +98,11 @@ def pbScreenCapture filestart = sprintf("%s.%03d",filestart,(t.to_f-t.to_i)*1000) # milliseconds capturefile = RTP.getSaveFileName(sprintf("%s.png",filestart)) if capturefile && safeExists?("rubyscreen.dll") - Graphics.snap_to_bitmap(false).saveToPng(capturefile) + if mkxp? + Graphics.screenshot(capturefile) + else + Graphics.snap_to_bitmap(false).saveToPng(capturefile) + end pbSEPlay("Pkmn exp full") if FileTest.audio_exist?("Audio/SE/Pkmn exp full") end end diff --git a/Data/Scripts/021_Debug/002_Debug_Actions.rb b/Data/Scripts/021_Debug/002_Debug_Actions.rb index 1a97ff79d..28fe3349e 100644 --- a/Data/Scripts/021_Debug/002_Debug_Actions.rb +++ b/Data/Scripts/021_Debug/002_Debug_Actions.rb @@ -105,9 +105,10 @@ class SpriteWindow_DebugVariables < Window_DrawableCommand idWidth = totalWidth*15/100 nameWidth = totalWidth*65/100 statusWidth = totalWidth*20/100 - self.shadowtext(rect.x,rect.y,idWidth,rect.height,id_text) - self.shadowtext(rect.x+idWidth,rect.y,nameWidth,rect.height,name,0,(codeswitch) ? 1 : 0) - self.shadowtext(rect.x+idWidth+nameWidth,rect.y,statusWidth,rect.height,status,1,colors) + text_y = rect.y + (mkxp? ? 6 : 0) + self.shadowtext(rect.x,text_y,idWidth,rect.height,id_text) + self.shadowtext(rect.x+idWidth,text_y,nameWidth,rect.height,name,0,(codeswitch) ? 1 : 0) + self.shadowtext(rect.x+idWidth+nameWidth,text_y,statusWidth,rect.height,status,1,colors) end end @@ -416,7 +417,7 @@ class SpriteWindow_DebugRoamers < Window_DrawableCommand # roaming curmap = $PokemonGlobal.roamPosition[index] if curmap - mapinfos = ($RPGVX) ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata") + mapinfos = load_data("Data/MapInfos.rxdata") status = "[ROAMING][#{curmap}: #{mapinfos[curmap].name}]" else status = "[ROAMING][map not set]" @@ -426,8 +427,9 @@ class SpriteWindow_DebugRoamers < Window_DrawableCommand else status = "[NOT ROAMING][Switch #{pkmn[2]} is off]" end - self.shadowtext(name,rect.x,rect.y,nameWidth,rect.height) - self.shadowtext(status,rect.x+nameWidth,rect.y,statusWidth,rect.height,1,statuscolor) + text_y = rect.y + (mkxp? ? 6 : 0) + self.shadowtext(name,rect.x,text_y,nameWidth,rect.height) + self.shadowtext(status,rect.x+nameWidth,text_y,statusWidth,rect.height,1,statuscolor) end end end diff --git a/Fonts/pkmndp.ttf b/Fonts/pkmndp.ttf deleted file mode 100644 index c6dd66458..000000000 Binary files a/Fonts/pkmndp.ttf and /dev/null differ diff --git a/Fonts/pkmndpb.ttf b/Fonts/pkmndpb.ttf deleted file mode 100644 index 22adb6919..000000000 Binary files a/Fonts/pkmndpb.ttf and /dev/null differ diff --git a/Fonts/pkmnem.ttf b/Fonts/pkmnem.ttf deleted file mode 100644 index bd4f94d32..000000000 Binary files a/Fonts/pkmnem.ttf and /dev/null differ diff --git a/Fonts/pkmnemn.ttf b/Fonts/pkmnemn.ttf deleted file mode 100644 index 68042e423..000000000 Binary files a/Fonts/pkmnemn.ttf and /dev/null differ diff --git a/Fonts/pkmnems.ttf b/Fonts/pkmnems.ttf deleted file mode 100644 index 241316230..000000000 Binary files a/Fonts/pkmnems.ttf and /dev/null differ diff --git a/Fonts/pkmnfl.ttf b/Fonts/pkmnfl.ttf deleted file mode 100644 index 2830feeb8..000000000 Binary files a/Fonts/pkmnfl.ttf and /dev/null differ diff --git a/Fonts/power clear bold.ttf b/Fonts/power clear bold.ttf new file mode 100644 index 000000000..748b23c7d Binary files /dev/null and b/Fonts/power clear bold.ttf differ diff --git a/Fonts/power clear.ttf b/Fonts/power clear.ttf new file mode 100644 index 000000000..015a63fa1 Binary files /dev/null and b/Fonts/power clear.ttf differ diff --git a/Fonts/power green narrow.ttf b/Fonts/power green narrow.ttf new file mode 100644 index 000000000..6093f7f72 Binary files /dev/null and b/Fonts/power green narrow.ttf differ diff --git a/Fonts/power green small.ttf b/Fonts/power green small.ttf new file mode 100644 index 000000000..7c7eed6aa Binary files /dev/null and b/Fonts/power green small.ttf differ diff --git a/Fonts/power green.ttf b/Fonts/power green.ttf new file mode 100644 index 000000000..d3b76c92f Binary files /dev/null and b/Fonts/power green.ttf differ diff --git a/Fonts/pkmnrsi.ttf b/Fonts/power red and blue intl.ttf similarity index 66% rename from Fonts/pkmnrsi.ttf rename to Fonts/power red and blue intl.ttf index 0d4e36636..c9eeafa29 100644 Binary files a/Fonts/pkmnrsi.ttf and b/Fonts/power red and blue intl.ttf differ diff --git a/Fonts/pkmnrs.ttf b/Fonts/power red and blue.ttf similarity index 67% rename from Fonts/pkmnrs.ttf rename to Fonts/power red and blue.ttf index 3077d0663..87abae183 100644 Binary files a/Fonts/pkmnrs.ttf and b/Fonts/power red and blue.ttf differ diff --git a/Fonts/power red and green.ttf b/Fonts/power red and green.ttf new file mode 100644 index 000000000..c1d65347e Binary files /dev/null and b/Fonts/power red and green.ttf differ diff --git a/fluidsynth.dll b/fluidsynth.dll new file mode 100644 index 000000000..b91dcc327 Binary files /dev/null and b/fluidsynth.dll differ diff --git a/mkxp-z-x86_64.AppImage b/mkxp-z-x86_64.AppImage new file mode 100644 index 000000000..546128d5b Binary files /dev/null and b/mkxp-z-x86_64.AppImage differ diff --git a/mkxp-z.app.zip b/mkxp-z.app.zip new file mode 100644 index 000000000..0181fcbb4 Binary files /dev/null and b/mkxp-z.app.zip differ diff --git a/mkxp-z.exe b/mkxp-z.exe new file mode 100644 index 000000000..8a9241905 Binary files /dev/null and b/mkxp-z.exe differ diff --git a/mkxp.json b/mkxp.json new file mode 100644 index 000000000..da3960b69 --- /dev/null +++ b/mkxp.json @@ -0,0 +1,339 @@ +{ + // Lines starting with '//' are comments. + // + // About filesystem paths specified in this config: + // The "gameFolder" path is resolved either relative + // to the directory containing the mkxp executable + // (the default behavior), or relative to the current + // working directory (when compiled with + // -DWORKDIR_CURRENT). All other paths are resolved + // relative to gameFolder and ignoring both RTPs and + // encrypted archives. + + + // Specify the RGSS version to run under. + // Possible values are 0, 1, 2, 3. If set to 0, + // mkxp will try to guess the required version + // based on the game files found in gameFolder. + // If this fails, the version defaults to 1. + // (default: 0) + // + // "rgssVersion": 1, + + + // Request an OpenGL 4.1 context. This + // introduces these minimum requirements + // for GPUs: + // + // + NVIDIA 400 Series+ + // + AMD Radeon HD 5000+ + // + Intel HD Graphics 4000+ + // + // If disabled, OpenGL 3.3 is used instead. + // (default: disabled) + // + // "openGL4": false, + + + // Create a debug context and log + // OpenGL debug information to the console + // (default: disabled) + // + // "debugMode": false, + + + // Continuously print average FPS to console. + // This setting does not affect the window title + // FPS display toggled via F2 + // (default: disabled) + // + // "printFPS": false, + + + // Game window is resizable + // (default: enabled) + // + // "winResizable": true, + + + // Start game in fullscreen (this can + // always be toggled with Alt-Enter at runtime) + // (default: disabled) + // + // "fullscreen": false, + + + // Preserve game screen aspect ratio, + // as opposed to stretch-to-fill + // (default: enabled) + // + // "fixedAspectRatio": true, + + + // Apply linear interpolation when game screen + // is upscaled + // (default: disabled) + // + // "smoothScaling": false, + + + // Sync screen redraws to the monitor refresh rate + // (default: disabled) + // + // "vsync": false, + + + // Specify the window width on startup. If set to 0, + // it will default to the default resolution width + // specific to the RGSS version (640 in RGSS1, 544 + // in RGSS2 or higher). + // (default: 0) + // + // "defScreenW": 640, + + + // Specify the window height on startup. If set to 0, + // it will default to the default resolution height + // specific to the RGSS version (480 in RGSS1, 416 + // in RGSS2 or higher). + // (default: 0) + // + // "defScreenH": 480, + + + // Override the game window title + // (default: none) + // + // "windowTitle": "Custom Title", + + + // Enforce a static frame rate + // This option may be force-disabled at build time. + // (0 = disabled) + // + // "fixedFramerate": 0, + + + // Skip (don't draw) frames when behind. + // Can be changed at runtime, but this is the + // default value when the game starts. + // (default: disabled) + // + // "frameSkip": false, + + + // Use a fixed framerate that is approx. equal to the + // native screen refresh rate. This is different from + // "fixedFramerate" because the actual frame rate is + // reported back to the game, ensuring correct timers. + // If the screen refresh rate cannot be determined, + // this option is force-disabled. + // This option may be force-disabled at build time. + // (default: disabled) + // + // "syncToRefreshrate": false, + + + // Don't use alpha blending when rendering text + // (default: disabled) + // + // "solidFonts": false, + + + // Work around buggy graphics drivers which don't + // properly synchronize texture access, most + // apparent when text doesn't show up or the map + // tileset doesn't render at all + // (default: disabled) + // + // "subImageFix": false, + + + // Enable framebuffer blitting if the driver is + // capable of it. Some drivers carry buggy + // implementations of this functionality, so + // disabling it can be used as a workaround + // (default: enabled) + // + // "enableBlitting": true, + + + // Limit the maximum size (width, height) of + // most textures mkxp will create (exceptions are + // rendering backbuffers and similar). + // If set to 0, the hardware maximum is used. + // This is useful for recording traces that can + // be played back on machines with lower specs. + // (default: 0) + // + // "maxTextureSize": 0, + + + // Set the base path of the game to '/path/to/game' + // (default: executable directory) + // + // "gameFolder": "/path/to/game", + + + // Use either right or left Alt + Enter to toggle + // fullscreen + // (default: disabled) + // + // "anyAltToggleFS": false, + + + // Enable F12 game reset + // (default: enabled) + // + // "enableReset": true, + + + // Allow symlinks for game assets to be followed + // (default: disabled) + // + // "allowSymlinks": false, + + + // Organisation / company and application / game + // name to build the directory path where mkxp + // will store game specific data (eg. key bindings). + // If not specified, mkxp will save to a common + // directory shared by all games. Note that these + // are TWO individual config entries, and both need + // to be defined for this to take effect. + // (default: none) + // + // "dataPathOrg": "mycompany", + // "dataPathApp": "mygame", + + + // Set the game window icon to 'path/to/icon.png' + // (default: none) + // + // "iconPath": "/path/to/icon.png", + + + // Instead of playing an RPG Maker game, + // execute a single plain text script instead + // (default: none) + // + // "customScript": "/path/to/script.rb", + + + // Define raw scripts to be executed before the + // actual Scripts.rxdata execution starts + // This option may be force-disabled at build time. + // (default: none) + // + // "preloadScript": ["my_win32_wrapper.rb", + // "ruby18_fixes.rb"], + + + // Index all accesible assets via their lower case path + // (emulates windows case insensitivity) + // (default: enabled) + // + // "pathCache": true, + + // In some versions of Essentials, overworld code + // requests the player's sprite texture from disk + // at least once every frame. The damage this + // causes is less perceptible in RPG Maker XP, + // but MKXP's RGSSAD code is much slower and will + // cause games to lag. Hard. + // + // I have no interest in fixing it, because: + // + // (A) I don't see any point in such frail encryption, and + // (B) One can easily replicate load_data entirely in Ruby + // (https://gist.github.com/inori-z/0800dbdc213b9936e0e81f64c9a98c4c) + // + // If you insist on using archives, you can use a + // version of Essentials that isn't broken, + // otherwise come up with your own solution + // (there are many), or leave your Graphics files + // loose and disable this option. + // (default: false) + // + // "compressedGraphics": false, + + + // Add 'rtp1', 'rtp2.zip' and 'game.rgssad' to the + // asset search path (multiple allowed) + // (default: none) + // + // "RTP": ["/path/to/rtp1", + // "/path/to/rtp2.zip", + // "/path/to/game.rgssad"], + + + // Use the script's name as filename in warnings and error messages + // (default: enabled) + // + // "useScriptNames": true, + + + // Font substitutions allow drop-in replacements of fonts + // to be used without changing the RGSS scripts, + // eg. providing 'Open Sans' when the game thinkgs it's + // using 'Arial'. Font family to be substituted and + // replacement family are separated by one sole '>'. + // Be careful not to include any spaces. + // This is not connected to the built-in font, which is + // always used when a non-existing font family is + // requested by RGSS. + // (default: none) + // + // "fontSub": ["Arial>Open Sans", + // "Times New Roman>Liberation Serif"] + + + // Because mkxp is usually distributed as a stand alone + // build, no predefined load paths are initialized + // ($:, $LOAD_PATH) in the MRI backend. With this option, + // they can be specified manually (eg. when using a system + // libruby.so). It is however recommended to statically + // link all required gems into libruby.so. + // (default: none) + // + // "rubyLoadpath": ["/usr/lib64/ruby/", + // "/usr/local/share/ruby/site_ruby"], + + + // SoundFont to use for midi playback (via fluidsynth) + // (default: none) + // + "midiSoundFont": "soundfont.sf2", + + + // Activate "chorus" effect for midi playback + // + // "midiChorus": false, + + + // Activate "reverb" effect for midi playback + // + // "midiReverb": false, + + + // Number of OpenAL sources to allocate for SE playback. + // If there are a lot of sounds playing at the same time + // and audibly cutting each other off, try increasing + // this number. Maximum: 64. + // + // "SESourceCount": 6 + + + // The Windows game executable name minus ".exe". By default + // this is "Game", but some developers manually rename it. + // mkxp needs this name because both the .ini (game + // configuration) and .rgssad (encrypted data archive) must + // carry the same name minus their extension, and we cannot + // guess the executable's name. + // You could just as well rename them both to "Game.ini" and + // "Game.rgssad", but specifying the executable name here + // is a tiny bit less intrusive. + // + // "execName": "Game" + +} diff --git a/soundfont.sf2 b/soundfont.sf2 new file mode 100644 index 000000000..5ebfefbbc Binary files /dev/null and b/soundfont.sf2 differ