HIDDENCHEST PLAYER ENGINE FOR RM XP VX & ACE

Posts

Pages: first 12 next last
HiddenChest Game Player Engine
version 1.1.44

No Editor is included.

You might have heard of Ancurio's project, namely mkxp, now I have come to let you know that there is another fork. This one is called HiddenChest, formerly known as mkxpplus, mainly because it enhances one of the features the original mkxp does not pretend to offer, custom resolutions that go beyond XP's usual resolution.

It's available on github.com as hiddenchest so feel free to download or clone this repository and, err, compile it yourself if possible. :P




Latest builds of HiddenChest the Game Engine were compiled and uploaded on:
December 12th, 2019!

So far I have tested it on Kubuntu 18.04 LTS, but users with other operating systems like other Linux OS's and obviously Windows 8.1 or 10 would be welcome as beta testers. I've confirmed it also runs on Windows 8.1 and 10 (64 bit).

Notes of Compilation - Optional

I compiled it with CMake because I am unsure if QtCreator is a good way to do the job... mkxp was once built with QtCreator or just qmake so it should be possible as well.

End of Compilation Section

Both mkxp and HiddenChest are...

Reimplementations of the RGSS based engines

...we have been used to heard about for years. They are no emulators because they already provide features not available on the original implementations, plus both are running scripts using Ruby as their scripting engine just like in the maker series. If you still want to call them emulators go ahead and do it. At the end the name will not make a real difference here. :P

Just in case you don't know what I'm talking about, HiddenChest is an executable that runs on Linux and Windows!

It's a REPLACEMENT of Game.exe!


Improvements

It has been compiled against Ruby 2.6! This means it uses the latest version of the Ruby scripting language!

It runs fast, you can even increase its FPS up to 120 or so. It also handles a lot more events that the default implementations of RGSS!

Even so, it also provides additions to RGSS (all versions) that cannot be found in XP nor VX nor VX Ace engines. Like script calls to use mouse clicks as you'd use any other button. Actually HiddenChest includes FULL KEYBOARD SUPPORT!

You can flip images vertically and horizontally, you can invert an image's colors in a second (or even less). You can use most of RGSS3 features in games that are supposed to only use RGSS 1 or 2.

I repeat, it does NOT include any game editor.

OK, I gotta update this thread because I managed to make mkxpplus play RGSS3 aka VX Ace games as well. I had to change my libjpeg library dependency configuration to make it search for version 6b instead of 8. I also found out there is a extensive discussion on the convenience of using any version equal to or greater than 7. Some people would prefer to stick to version 6b or use alternatives like libjpeg-turbo. (Hey! I did not pick the names! XD )

Now it is possible to run all of the RGSS based RPG Maker games with mkxp or mkxpplus if you don't forget about the libjpeg dependency stuff. :)

Edit

Of course, dll's could become part of a separate package meant for (re)distribution as well...
What even is this?
Is this thread why the bots but bracketed game abbreviations in their titles?
This sounds like the script of a CSI episode where they try to catch hackers.
Mirak
Stand back. Artist at work. I paint with enthusiasm if not with talent.
9300
I think he's talking about an emulator for vx, vx ace, and xp's games for other pperating systems like ubuntu and the like.
I'd like to hear from him what exactly he's talking about though. Just dumping a thread isn't useful for anyone who would like to know more.

It is an ENGINE, a so called improved version of Game.exe, for several versions of Windows, several Linux distros and also available for MacOS. HiddenChest is only available as code you can compile yourself if you have installed a toolchain like MSYS and mingw32 or VisualStudio for Windows or C and C++ libraries and CMake and C/C++ compilers for your preferred Linux distro, perhaps including autotools or meson as well. mkxp is the only version that also offers binaries you can extract and run on your system. In case of Windows mkxp binaries are a bit less stable than Linux ones.

I've also uploaded binaries and DLLs for Windows and binaries for Ubuntu and Kubuntu Linux.

Tweaking mkxp and let it become the HiddenChest fork was inspired by some requests that were unattended by mkxp's developer. For him it should only feature the original RGSS stuff the maker series had offered plus the ability to let you use the mouse as well. (Even if you have to craft the scripts that would let you confirm you did click on a specific area of the map or window.) It is not a bad thing nor a bug but a feature!

HiddenChest engine wants to offer XP and VX games most of Ace's features like gradients, outlined fonts (up to certain degree in XP's case) and a resizeable window. Still, it was not sufficient to let XP games screen resolution get reduced to the same resolution available for VX games by default. That is why it sports a default 800x608 resolution for any RGSS based game that you want to run using the HiddenChest binary executable. Before compiling your own binary you can define a different maximum resolution in the resolution.h header file found in the project's src directory.

At the end you have two relatively new choices to pick from, mkxp for games that will not require a custom resolution, and HiddenChest for those that want to sport a crazy setup like 1024x600 or any other custom resolution you might have in mind at the moment.
Does this version of mkxp handle animated single tile autotiles in xp properly? Last time I attempted to use mkxp it tried to treat it as a regular animated autotile.
Well, I gladly announce that HiddenChest project, a mkxp fork, now not only offers an increased window resolution for your RGSS based games but also a small feature you might realized it was missing till now, the Y mirror or flip sprite flag! Yes, now you are able to flip your sprites vertically if you call Sprite#mirror_y = true or Sprite#flip_y = true anywhere at any given time. Class# is a notation to denote that you should use an existing instance of that class to call that method, i.e.

Code:
@sprite.flip_y = true
@sprite.mirror_y = true
# Or...
@sprite.flip_y = false
@sprite.mirror_y = false

Using nil instead of false will also deactivate the sprite's vertical flip.

By the way, the original mirror method was aliased as flip as well. (Yes, it is the original horizontal flip method, guys.)

If my limited knowledge and experience I have gathered in the short time I have been dealing with C and C++ languages allow me to add more features, I will see if I can add masks or anything the like.

@lavendersiren

Good question, I normally use autotiles to cover any area larger than 1 single tile so I do not know what would happen then. Are you using some water or lava autotile in your game project? O_O
https://drive.google.com/file/d/1Qxavkg9aX7YLBTyRL69bsUd-4PTP45k8/view?usp=drivesdk
I mean like these kinda animated tiles. They work just fine as single animated tiles usually, but in regular mkxp they're treated more like full size autotiles. If I remember correctly it uses empty for the middle tiles when an animated single tile in the autotile section is used.
@lavendersiren have you tested it with a new version of mkxp? I mean, one binary exectuble compiled in the last year or so. If not, you might wanna get one any time soon.

By the way, I've got binary executables for Linux and Windows! :O
A small but Useful BUMP!


Some user had reported a bug in mkxpplus that was inherited from mkxp itself, the mysterious disappearance of the elusive windowskin! :O

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! XD


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! :shocked: 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! :O

By the way, I have uploaded new binary executables for Linux distros and several Windows versions. XD

Happy game testing! :P
I gotta tell all of you that mkxpplus is just a mere shadow of the past! XD
Nah, just kidding, guys!
What actually happened is that I just renamed it so the project is now known as hiddenchest or HiddenChest. :P

HiddenChest supports several resolutions like 544*416, 640*480, 800*608, 960*720, 1280*768, 1680*1050 or up to 1920*1080 px!!

Happy game testing!? XP
Important Update!


Actually HiddenChest even supports FullHD! (1920x1080 screen resolution)

So if your game is designed for any resolution higher than your typical 640x480, it will run without stretching the graphics that much or it can even run smoothly in FullHD! No stretch needed!

I have made slight modifications to the Input module to allow you to ask stuff like Input.dir4? to avoid typing all four directions as part of a large if statement.

HiddenChest also features the End of F12's Reign of Terror! Yes! You can now hit that darn button and feel free to enjoy your game! The need of including unless $@ as a safeguard is just a reminiscence of a distant era! Now you can forget about it, you won't need it ever again if you're running the HiddenChest engine to play your RM games!

I even uploaded the source code to GitHub, mainly because its parent project is open source as well.



HiddenChest is no editor, it's just a player. Even so it also includes extra Non RGSS(1 2 or 3) features you can use in your scripts to take advantage of its improvements.

module TestingGround

module_accessor :first_run
end


There module_accessor would let you create one or more setters and getters for any given Module method. It works the same way attr_accessor works in Classes but for Modules only. I found it useful so I just included it in my engine. module_reader and module_writer exist as well. The ReadMe.md file includes more stuff like the above in case you want to read it some day.
Introducing the Hidden FileInt Class

I gotta admit I didn't come up with such a hidden class, it was provided by mkxp from the very moment I copied its source code to start editing it at will. For my liking, the Ruby method File.exist?('some filename with or without extension') was quite insufficient for it didn't search for anything but uncompressed files, mainly .txt or .rb scripts. This addition allows you to use FileInt.exist? the way you would have used File.exist? but for ANY kind of file.

I mean, you can look for simple files or even compressed ones!

You don't need to add an extension if it's a PNG or JPG or BMP file!

Yeah, the downside is that it's only available for Linux binaries, but you can grab its source code as well.

Let's see if I can get the Windows version running in a few weeks...
Colors Seem to be Wrong...




Nah! Colors are fine! XD It just happens that now you can invert an image's colors in real time! :O

Use methods like...

@sprite.invert_colors = true
@sprite.bitmap.invert!

And you'll see how all white pixels get black and vice versa. The same is valid for any other color! Blue turns into yellow and so on! :shocked:

@sprite.colors_inverted?

The line of code you can see above will let you find out if you've already inverted its colors.

Fixed an unnoticed issue whenever you entered a menu or scene where you used Sprite's turn_sepia or gray_out methods.

By the way, they now use the = assignment operator instead of () parentheses.

Yeah, the downside is that it's only available for Linux binaries, but you can grab its source code as well. XP
Pages: first 12 next last