As you may have read anywhere else, there has been an open reimplementation of the RGSS (1,2 & 3) player called mkxp, initially developed by Ancurio and improved by a few contributors as well. Now it is my time to contribute as well by publishing a fork, namely HiddenChest!
The original author thought it should mainly be a reimplementation or some sort of emulation of features already available on those RGSS based maker games. The only things that break that illusion were the mouse support, native shader support and the fact you only needed a single binary executable (a single file to click on) in order to play them as long as your eyes would let you do that.
From a couple of weeks or months you have read my comments on increasing its number of features by adding other possibilities like flipping any image vertically in game just like we were already capable of doing it horizontally, increase the window resolution to any decent size below 5000 pixels. Well, now that is possible!
Notes
You might need to compile it yourself from source code to set a custom resolution other than 800*608 that is built in the binary executables I have uploaded so far. Keep in mind you can still go back to 544*416 or 640*480 in game if you add a custom script that lets you do that by hitting a button or entering a specific scene or map, etc. Obviously the window size will noticeable change in a second or two o even more if your PC is rather slow...
Actually, you should be aware of the fact that the map minimum dimensions should change depending on the maximum width and height, a 640*480 game would only need like 20 * 15 tiles while a 800*608 one requires it to have 25 * 19 tiles.
Installation on Windows
Well, since it's just a player executable, meaning you only will use it as a replacement for Game.exe, you only need to unzip the executable file and its dll's right where the Game.exe file itself is located.
If you've got a 64 bit Windows OS, then you'd need to download:
hiddenchest win64 YYYYMMDD ZIP file - binary executables aka exe
dlls win64 YEAR full ZIP file
Then just extract them in your game folder's root directory, i.e. C:/KDC/Memorie in case that's where you've placed the Game.exe file.
MapCustomResFixesXP or MapCustomResFixesVX RGSS1/2 script are included in one of the ZIP files, but it doesn't seem to be necessary for ACE games.
Features
Run your games with Ruby 2.7 instead of 1.8 or 1.9!
If using compiled binaries, the default resolution gets increased to 800*608 or even 1280*800.
Custom Resolution (like 800*608 for binary executables for they have to be compiled with a maximum resolution) can be changed in game as well.
Vertical Flip by calling @any_sprite.flip_y = true or @any_sprite.mirror_y = true # Use false or nil for disabling it
Use some RGSS 3 features in RGSS 1 as well like gradient bars, temporary snapshots for backdrops, outlined text (kind of experimental)
Game Portability to other platforms like Windows, Linux distributions, and MacOS!
A new hidden module named Backdrop that will let you use Graphics.snap_to_bitmap advantages with ease.
To be honest with you, guys, there is another little scripting tool. It is called the Scripts module and its purpose is to store script names or symbols in an array to let you take control over what scripts you have included in your game project.
Normally you would not feel the need to keep such a feature. Even so whenever you use a Constant to store a value like a boolean testing for a defined Constant or method, RGSS might not find it or will tell you it is not there just because it has not been loaded. It could happen if a script is placed below the other one, even if there is not supposed to be a specifc order to make them work together.
In such cases you could use the Scripts module methods to make sure RGSS will always be right about another script's good or evil presence. It is way better than using a $global variable for the same purposes.
Scripts Module Script Calls
Scripts << :script_name
It lets you store the script name or symbol. You can place it anywhere in your script editor except below the Main script.
print Scripts.all
You print all of the script names at once.
Scripts.include?(:script_name)
You double check if the script name has been included. It should be especially useful as part of any if statement (a condition preceded by an if keyword).
Availability
Currently the mkxp project runs on:
some versions of Windows
and MacOS via appbundle.
Currently HiddenChest project runs on:
Windows 7, 8.1 and 10 64 bit
Linux distros like Ubuntu, Kubuntu and Fedora 31
VOTES: Pro - Con
SavingInn 1 - 0
Rubyokan 2 - 1
RubyShark 1 - 0
HiddenChest 1 - 0
Yeah, I know. That wasn't very democratic at all but who cares?
Download Section
If you are going to play midi files, you got to download any soundfont sf2 file as well.
The RAR or ZIP files that offer two different binary executables include one application that will open a console alias command window while playing the game just like it happened on RMVXACE and another one that will just let you play the game without such nuisance.
By the way, one of the RAR files includes a Ruby script with rb extension. Just go open it with Notepad or Notepad++ or SublimeText or KWrite or Kate since it's just a text file. It contains the scripts that had to be modified in RGSS 1 aka XP to allow you to extend the map tileset to cover the whole window and scroll properly. Other scripts like scenes would need to be customized as well...
List of Available Buttons
DOWN
LEFT
RIGHT2
UP
A
B
C
X
Y
Z
L
R
SHIFT
CTRL
ALT
KeyA
KeyB
KeyC
KeyD
KeyE
KeyF
KeyG
KeyH
KeyI
KeyJ
KeyK
KeyL
KeyM
KeyN
KeyO
KeyP
KeyQ
KeyR
KeyS
KeyT
KeyU
KeyV
KeyW
KeyX
KeyY
KeyZ
N1
N2
N3
N4
N5
N6
N7
N8
N9
N0
Return
Escape
Backspace
Space
Minus
Equals
LeftBracket
RightBracket
BackSlash
Semicolon
Apostrophe
Grave
Comma
Period
Slash
Tab
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
ScrollLock
PrintScreen
CapsLock
Pause
Insert
Home
PageUp
Delete
End
PageDown
NumPadDivide
NumPadMultiply
NumPadMinus
NumPadPlus
Enter
NumPad1
NumPad2
NumPad3
NumPad4
NumPad5
NumPad6
NumPad7
NumPad8
NumPad9
NumPad0
NumPadDot
LessOrGreater
APP
NumPadEquals
LeftCtrl
LeftShift
LeftAlt
LeftMeta
RightCtrl
RightShift
RightAlt
RightMeta
Web
Mail
Calculator
Computer
MOUSELEFT
MOUSEMIDDLE
MOUSERIGHT
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
11-22-2018, 06:33 AM (This post was last modified: 01-19-2023, 09:13 PM by kyonides.
Edit Reason: More Info!
)
A Quite MIDI-atic BUMP
Well, I had to update this thread because I noticed that MIDI could not be played by the binary executables on Windows due to the lack of a few DLL's. I looked for them and packed them as a single RAR file so you can download it now and uncompress those DLL's in your game folder to enable MIDI playback. Don't forget to get a soundfont before you click on the executable file or else it will ignore all MIDI's you might have collected so far!
By the way, there is a site where a guy uploaded tons of Final Fantasy games MIDI's... How crazy, don't you think?
Edit
There are both 32 and 64 bit versions of the binary executables and dll's for Windows. In Linux case I guess people would prefer to run 64 bit based systems only.
List of All New Features
You may get up to 200400 weather sprites!
Now scripters should be able to use the module_accessor feature like this:
Code:
module MyModule
@my_instance_variable = 100
module_accessor :my_instance_variable
end
Then you should be able to access the instance variable by calling:
MyModule.my_instance_variable
or sets its value with the script call
MyModule.my_instance_variable = 2450
The module_reader and module_writer methods are also available!
Most of the so called new features actually belong to RGSS3, but I preferred to make them available for RGSS1 (XP games) as well. Others are exclusive to HiddenChest!
I should have explained this earlier but it is never too late to provide the following instructions:
Formats:
InstanceOfAClass#method_name
i.e. my_sprite.mirror_y = true
SomeModule.method_name
Classes
Sprite#width and Sprite#height
Sprite#wave_amp and Sprite#wave_amp=
Sprite#wave_length and Sprite#wave_length=
Sprite#wave_speed and Sprite#wave_speed=
Sprite#wave_phase and Sprite#wave_phase=
Bitmap#gradient_fill_rect
Bitmap#blur and Bitmap#radial_blur
Font#out_color and Font#out_color=
Font#outline and Font#outline=
Font#default_out_color and Font#default_out_color=
Font#default_outline and Font#default_outline=
Modules
Graphics.width and Graphics.height
Graphics.resize_screen(new_width, new_height)
Graphics.fullscreen and Graphics.fullscreen=
RPG::Cache.face(filename_no_extension_no_folder)
* Exclusive Features *
Classes
Bitmap#text_width("string")
Bitmap#text_height("string") # Usually the same as Bitmap#height...
Sprite#flip and Sprite#flip= (aliases of Sprite#mirror and Sprite#mirror=)
Sprite#mirror_y or Sprite#flip_y
Sprite#mirror_y= or Sprite#flip_y=
Font#outline_size and Font#outline_size=
Font#outline_color and Font#outline_color=
Font#default_outline_color and Font#default_outline_color=
Font#underline and Font#underline=
Font#strikethru and Font#strikethru=
Font#strikethrough and Font#strikethrough=
Font#default_underline and Font#default_underline=
Font#default_strikethru and Font#default_strikethru=
Font#default_strikethrough and Font#default_strikethrough=
RPG::Weather#sprite_max and RPG::Weather#sprite_max=
Modules
Graphics.dimensions #=> [width, height]
Graphics.save_screenshot
Saves a snapshot in the Screenshots directory located in your game project folder even if it doesn't exist.
Audio.bgm_pos and Audio.bgs_pos
useful for setting up a new song or background sound at a different position.
Terms.critical_hit and Terms.critical_hit=
(critical_hit will be used by RPG::Sprite during animations, especifically battle animations.)
Backdrop.keep_bitmap # Makes a copy of the game screen
Backdrop.blur_bitmap # Makes a blurred copy of the game screen
Backdrop.bitmap # Access to the bitmap created with any of the previous script calls
Backdrop.clear_bitmap # Clear that bitmap
Well, I bring great news to all testers today! (Yeah, the four cats and a wolf hybrid... ) mkxpplus now includes extra keys for you to use in your game projects!
I have added lots of them but no character like A or B or N because I fear I might break the maker's input somehow, except with N that isn't used by the strange input system implemented in RGSSx.
Anyway, you're now allowed to test it if you dare!
By the way, now you can also use LeftShift or RightCtrl or LeftAlt separately!
Searching for download links? Go to the main post then!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
Guess what? After a break and some soft drink full of caffeine, I decided I had to implement all of the ANSI characters like A through Z. Since it was just some rinse and repeat process, it didn't take long to finish the code and compile it. In case you need to ask if J was triggered by the player, you would only need to ask a simple question in RGSPLUS (?):
Code:
def update
if Input.trigger?(Input::KeyJ)
# some code
end
end
Isn't it as easy as promised, guys?
Have fun testing the binary executables!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
Melana had reported a bug in mkxpplus that was inherited from mkxp itself, the mysterious disappearance of the elusive windowskin!
If you were battling a couple of friendly ghosts that only want to hug you to a cold death, you would notice the windows turned almost invisible except for strings like HP, SP and so on. Nope, the truth is the windowskin was more elusive than an Easter Bunny!
After breaking my head to find out what was going wrong with it, I recall a workaround I used on any bitmap, the dup(licate) method. Then I wondered if CRuby could avoid the average player like BountyHunterLani (your adorable simple Lani) from looking for a place to type the tiresome four characters ever needed to fix it once for all. Yeah, it was possible! If I fool the Cache module by telling it to copy the windowskin instead of accepting it as an universal maker-ish truth, it would never again bother you by munching the windowskin and never even returning it even as a spittle. Now you can safely dispose or hide windows without fearing Cache or GC will ever take their windowskins away from you!
By the way, I have uploaded new binary executables for Linux distros and several Windows versions.
Happy game testing!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
11-26-2018, 04:25 AM (This post was last modified: 11-26-2018, 04:38 AM by DerVVulfman.)
I hate to burst your bubble, but in two years of working on an MKXP system we didn't have any windowskin issues needing any XP script fixes. This mysterious disappearing Windowskin issue inherited from MKXP is something that I have never seen in two years.
HOWEVER!!!! Full keyboard input is schweet!
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Well, that's what happens when you use a general purpose function defining macro that oversees details like how the Cache is supposed to work and you let it delete the only copy in memory of your beloved bitmap. Just go and duplicate it at creation time and the problem is solved magically! So I wrote the functions myself and added a CRuby dup method to make it possible and prevent your average player and tester and game developer from doing it themselves.
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
I come back again because I added a few extra buttons to mkxpplus like the Web or the Calculator buttons, yeah they DO exist, and even the missing Escape button I also added some sort of fix for the mouse clicks (or my mouse is slightly defective and I didn't notice it before )
Even if it is unnecessary I added the Graphics.dimensions method to query the current screen size, e.g. [800, 608]
I dropped the binary that would only feature the very same buttons as in any RGSS player, I found it unsuitable for a project that aims to include full keyboard support and a higher screen or window resolution.
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.