Chaos Project

RPG Maker => Tutorials => Tutorial Database => Topic started by: KK20 on February 17, 2013, 04:38:51 pm

Title: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on February 17, 2013, 04:38:51 pm
RPG Maker XP Ace
Use the VXA Engine in your XP games!
Originally created by Terv


1. Introduction



In the following I am going to explain to you how to use the engine of VX Ace (RGSS301.dll + Game.exe) in combination with your XP games. A number of benefits include:




2. Required Files and Licences



Even though you can get all the files freely from the Ace RTP (RGSS301.dll) and any game (Game.exe), you officially need a valid VX Ace Maker licence in order to use them in your own game. A trial licence is in no way inferior to a bought one. You can't tell whether the creator of an XP game using the Ace engine had or has a valid licence or not from looking at it.

You can download the package here. It includes the required scripts, DLL, and Game.exe file.
Version 2.34 (https://www.dropbox.com/s/41jgf2gv3mca3d3/XPA_2.34.zip?dl=0) *NEW*
Version 2.33 (https://www.dropbox.com/s/nnx1tl1qg1tomxe/XPA_2.33.zip?dl=0)
Version 2.32 (https://www.dropbox.com/s/blccsnbm7mlr838/XPA_2.32.zip?dl=0)
Version 2.3 (https://www.dropbox.com/s/7fvm39d2rrcwh7f/XPA_2.3.zip?dl=0)
Version 2.22 (https://www.dropbox.com/s/xzkfgk86bokbhpm/XPA_2.22.zip?dl=0)
Version 2.1 (https://www.dropbox.com/s/zgk1xp6k2oclnlm/XPA_2.1.zip?dl=0)
Version 2.0 (https://www.dropbox.com/s/pze159e14r0bklw/XPA_2.0.zip?dl=0)

PhoenixFire was kind enough to provide a working demo along with a few resources and converted (on-going process!) scripts: Download (https://www.dropbox.com/s/c3q2mqv23lg4nqk/XPAceV1.5.zip?dl=0) (note that this is an older project using version 1.5)
Quote from: PhoenixFire on June 22, 2014, 11:56:58 pm
  • I've included RTP resources from the XP RTP, as well as some customized versions of the character battlers, and, som eof the resources in Heretics' Collection of Art and Scripts. You should either switch these out to what you would like, or, give due credit to them

  • If you do end up using this demo as a base for your game, please make sure you give credit where it is due. As of right this second, credit goes to Terv for the conversion kit, and Heretic for some of the resources. If you would like, it would be great to give me credit for assembling it all for you. Also, in time, I will start building some of thee compatible scripts into this demo, and at that point, I would ask to be included in the credits as well. Of course, you are always capable of simply making the kit work for yourself, in which case you owe me no credit whatsoever =p



REGARDING COMMERCIAL USE

XPA Tilemap is protected under Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported. However, This does not mean that you may not use this for commercial purposes. Please contact me, KK20, to establish an agreement. I mainly put this license to keep track of who is using this project and get some recognition for the hundreds of hours I've spent maintaining it.
Don't worry, I'm very fair ;)

3. Step-by-step instructions





Create a new XP project and use this as you're following along. DO NOT USE AN EXISTING PROJECT AND RISK CORRUPTING YOUR GAME.
Copy the game folder files Game.exe and RGSS301.dll from the kit and move them into your game folder.
Copy the folder Fonts into your game folder. Game.exe always checks whether these font files are present if they're not already installed on the system. It's irrelevant whether they are used in your game at all.
Open your Game.ini and notice what is written behind Library=. Rename the RGSS301.dll accordingly to match this (its usually RGSS102E.dll or RGSS104E.dll).
Note to v1.05 (Steam version) users: People reported having issues with the above after saving changes to their game where the DLL file is replaced with original RGSS104.dll file. You will currently need to replace the DLL file every time.




The package includes a Script.rxdata file. Replace your project's Script.rxdata in the Data folder.
This file includes all the essential scripts necessary for your game, including missing RPG Modules, an RTP loader, a Tilemap rewrite, a Window class rewrite, and more.

Why a Tilemap rewrite?
The Tilemap class is unalterably compiled in the RGSS DLL and its task is to read map files and build maps as we know them. Since VX and Ace are using a different mapping system--and thus a different Tilemap class--you need a replacement that knows how to deal with your XP maps.

XP Ace Tilemap (http://forum.chaos-project.com/index.php/topic,14638.0.html), written by myself, KK20, is the recommended and supported choice. It was designed specifically for this project unlike other rewrites. It is also the only one receiving updates. You could replace the rewrite with another, provided you are fully aware of what you are doing. Here is a list of others:
Spoiler: ShowHide


Name
WhiteFlute [Recommended]
me(tm) [Recommended]
ForeverZer0 [Recommended]
The King [Recommended]
poccil
SephirothSpawn
RTH
Pros
Extremely stable, rather efficient
Fluid rendering and highly stable, also at higher resolutions
Great performance, especially at higher resolutions
Very liquid rendering, many additional features
Decent for small and mid-size maps
Absolutely fluid and stable rendering
Okay for small maps
Cons
May require small edits to Tilesets and scripts
Incompatible with smooth scrolling scripts
Occasional display bugs
High RAM consumption, possibly long map loading times
Micro stutters on large maps
Requires SDK Part I+II and parts of MACL Complete, Bugs
Heavy stutters on large maps


*If you're using Sephiroth's rewrite please note that SDK and MACL have to be above the tilemap script.






Download the VX Ace trial (http://www.rpgmakerweb.com/products/programs/rpg-maker-vx-ace) and install it. Create a new project, delete all files in your new Ace project folder without closing the maker, then paste all XP game files into the Ace game folder. Now select File -> Compress Game Data... -> (Create Encrypted Archive) OK. An self-extracting archive will then be created, containing a .rgss3a file instead of Data and Graphics folders.
Keep in mind that the rgss3a encryption has been cracked and released 5th of June 2012.

As an alternative, you can package your game as a single executable using Engima Virtual Box, as explained here: Single Executable for RPG Maker (http://forum.chaos-project.com/index.php/topic,15507.0.html).


4. Credits



KK20 - Taking ownership of the project and providing numerous script support
Blizzard, LiTTleDRAgo - Scripting and bug fixing support
Dargor - XP->VX tutorial at hbgames.org
PhoenixFire - Demo project and converted scripts
Terv - For the original topic
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 17, 2013, 05:12:00 pm
This is pretty awesome. :D I might actually release an update for CP that will use VXA's engine if it's this simple. Which one of the 3 recommended tilemap rewrites are you using?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 17, 2013, 05:21:31 pm
I currently recommend MeTMs rewrite as it's still the most stable and compatible. However I am running ForeverZer0's because it's the only one that can provide fully fluid scrolling on very large maps as well as support for smooth scrolling scripts (the latter one leads to awkward graphical glitches with Me's rewrite).
The King (http://www.rpg-studio.de/forum/user/3172/the-king/), a skilled German scripter, is improving and adopting his rewrite to RGSS3 right now so this one will be probably the best choice any time soon :)
His instructions aren't translated yet, will do that in the next few hours.

A couple of your scripts will probably not work due to slight changes in Ruby 1.9 or RGSS3. We have started a small fix-database in the German forums which got already ported to a simple international bugtracker where everyone can contribute. I will open registrations as soon as the topics over at hbgames.org and rpgmakerweb.com are done.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on February 17, 2013, 08:09:10 pm
(http://i.qkme.me/35kwfv.jpg)

When I start working on my game again in the summer, I'll might be using this especially if it makes XP look amazing.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 17, 2013, 08:28:35 pm
^ Why must you resort to murder when it's free D':

I should try this out :D
*insert obligatory "Advance Wars Engine" sentence here*
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 17, 2013, 08:36:34 pm
Quoteespecially if it makes XP look amazing.
Hella yeah it does, it gives them that certain something you have always felt when playing VX/Ace games but not when testing your own game :up:
On a side note I have finished translating King's script. It's in the kit 1.5.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on February 18, 2013, 09:41:14 am
there are MGC_HMode7.dll in the kit, does it mean it's compatible with H-Mode7?
O_o
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: MOAL on February 18, 2013, 10:20:27 am
Uh, I'm likely very stupid. But, I did this and I got this error:
Spoiler: ShowHide
(http://i45.tinypic.com/ev29aa.png)
Help please?  :wacko:

Edit: Whoops! I forgot that the RPG Module is supposed to be above Game_Temp. It works fine now. Awesome :haha: But if I put it over everything, I get a superclass mismatch error for all of the scripts, and if I just put it above every non-default script, I just get that error above in the spoiler.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 18, 2013, 11:54:26 am
Quote from: LiTTleDRAgo on February 18, 2013, 09:41:14 am
there are MGC_HMode7.dll in the kit, does it mean it's compatible with H-Mode7?
O_o

Yup, that's a RGSS3 fixed H-Mode7 dll.

Quote from: MOAL on February 18, 2013, 10:20:27 amIt works fine now. Awesome :haha: But if I put it over everything, I get a superclass mismatch error for all of the scripts, and if I just put it above every non-default script, I just get that error above in the spoiler.

The RPG module has to be the first script in the editor. superclass mismatch errors are well-known already, also see here (http://forum.chaos-project.com/index.php?topic=9665.0). There are workarounds but I hope some scripter suggests a general way to fix it soon (recompiling Ruby isn't really an option :P)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 18, 2013, 12:02:20 pm
I'm actually surprised the Enterbrain left that feature in Ruby 1.9.x.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: khkramer on February 18, 2013, 12:22:56 pm
Awesome, too bad I can't use it because RMX-OS isn't working with rgss3..
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 18, 2013, 01:05:54 pm
Quote from: khkramer on February 18, 2013, 12:22:56 pm
Awesome, too bad I can't use it because RMX-OS isn't working with rgss3..


You can use almost all XP scripts in combination with the Ace engine, however some stuff will cause errors and you need the time and knowledge to fix it. Usually 1 script out of 15 will make you hit on problems but more often than not it's just knickknack and often can be patched with basic Ruby knowledge only. For every more obstinate error there's the bugtracker that will go online today and hopefully have copy-paste ready fixes for the most popular scripts soon.

There are few special scripts that just don't work (e.g. Dynamic Footprints), this is mostly due to them being closely intertwined with certain standard hidden XP classes (like Tilemap).

Edit: Aluxes loves Eric is online, check the startpost :haha:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: diagostimo on February 18, 2013, 07:49:53 pm
 8-O that is amazing! the speed up is amazing, in comparison you can see how much better ruby 1.9 is from 1.8, I think I may use this when developing in xp from now on :D

edit:
@khkramer i got rmxos to work by merging both main methods:

#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  Runs the entire system.
#==============================================================================

ERROR_LOG_FILE = 'Error.log' # leave empty for no log

def mod_error(error)
  # load scripts
  scripts = load_data('Data/Scripts.rxdata')
  bt = error.backtrace.clone
  # change backtrace display to show script names
  bt.each_index {|i| bt[i] = bt[i].sub(/\ASection(\d+)/) {scripts[$1.to_i][1]} + "\n"}
  # new error message
  message = error.message + "\n" + bt.join('')
  # write to file if file defined
  if ERROR_LOG_FILE != ''
    File.open(ERROR_LOG_FILE, 'a') {|f| f.write("#{Time.now.to_s}:\n#{message}\n")}
  end
  return message
end

begin
  rgss_main {
  $DEBUG = $TEST = true # Remove this when your project is finished.
  # loading game data
  $data_actors        = load_data('Data/Actors.rxdata')
  $data_classes       = load_data('Data/Classes.rxdata')
  $data_skills        = load_data('Data/Skills.rxdata')
  $data_items         = load_data('Data/Items.rxdata')
  $data_weapons       = load_data('Data/Weapons.rxdata')
  $data_armors        = load_data('Data/Armors.rxdata')
  $data_enemies       = load_data('Data/Enemies.rxdata')
  $data_troops        = load_data('Data/Troops.rxdata')
  $data_states        = load_data('Data/States.rxdata')
  $data_animations    = load_data('Data/Animations.rxdata')
  $data_tilesets      = load_data('Data/Tilesets.rxdata')
  $data_common_events = load_data('Data/CommonEvents.rxdata')
  $data_system        = load_data('Data/System.rxdata')
  Graphics.resize_screen(640, 480) # Resizes the screen.
  # prepare for transition
  Graphics.freeze
  # activate the network
  $network = RMXOS::Network.new
  # active connection scene
  $scene = Scene_Servers.new
  # call main for active scene
  $scene.main while $scene != nil
  # disconnection
  $network.disconnect
  # fade out
  Graphics.transition(20)
  Graphics.update
  }
rescue SyntaxError
  $!.message.sub!($!.message, mod_error($!))
  raise
rescue
  $!.message.sub!($!.message, mod_error($!))
  raise
ensure
  # disconnection
  $network.disconnect
end

the only problem is I cant seem to connect when it is hosted over my router, ie at an ip adress, but if I use 'localhost' I can connect, pretty weird as I am using the same configuration I would connect with normal xp and it works fine with the normal version, maybe someone here knows what could be up with that? ill try and figure it out in the meantime
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: khkramer on February 19, 2013, 04:24:43 am
Yeah it was working for me too, but I had the same problem as you.
Can't see the server online even when I use localhost.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: diagostimo on February 19, 2013, 04:42:37 am
Quote from: khkramer on February 19, 2013, 04:24:43 am
Yeah it was working for me too, but I had the same problem as you.
Can't see the server online even when I use localhost.

thats strange, iv have tried looking into it but cant figure out what could be the problem, when you change the script inside rpgmaker xp you will have to make sure you save the data, either by test running  or file and save project, the only problem with that you will have to reset the dll name in the ini as when rpgmakerxp saves data it resets the library path to its default, try that and it should work, but as for hosting it over a set ip im pretty stuck, also you could try the ip 127.0.0.1 as that is the same as localhost
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 19, 2013, 10:36:12 am
As for the 'RMXP overwrites Game.ini when saving', just rename RGSS301.dll to RGSS102E.dll/RGSS104E.dll as stated in the tutorial.
Did you try to connect via LAN to your server (192.168.x.x or 10.x.x.x or 172.x.x.x) already or WAN/global IP only?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: khkramer on February 19, 2013, 11:27:01 am
I've tried lan already, not working.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Moshan on February 20, 2013, 04:40:37 pm
 So...you need new compatible scripts to use this engine...right?
Also, I don't know if it's because of me but everytime when I modify any script I must rename RGSS102E.dll in my Game.ini . Is it normal or I've done something wrong?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 20, 2013, 06:15:46 pm
Quote from: adytza001 on February 20, 2013, 04:40:37 pmSo...you need new compatible scripts to use this engine...right?


No. Almost all RGSS1 standard scripts remain unchanged and that's why most of your old (XP) custom scripts will work right away. However about 1 out of 15 will throw up errors due to incompatibilities caused by either the change to Ruby 1.9 or RGSS3's hidden classes. These errors are usually rather easy to fix. Often it's just one or two lines.
This backward compatibility is also the reason you still can't use scripts made for RGSS3/Ace.

QuoteAlso, I don't know if it's because of me but everytime when I modify any script I must rename RGSS102E.dll in my Game.ini . Is it normal or I've done something wrong?


See the respective paragraph in the tutorial:

QuoteOpen your Game.ini and see what is written behind Library=. Rename RGSS301.dll accordingly (in most cases RGSS102E.dll).


So if you're using RMXP v1.02a (most English versions), rename RGSS301.dll to RGSS102E.dll. Game.ini is overwritten every time you save your game, that's why you should rename your dll instead.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Moshan on February 21, 2013, 01:46:34 am
 Ok! I've understood. Thanks!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on February 26, 2013, 12:14:24 pm
using Me(tm)'s Tilemap = glitch, the map become weird if player moves
using F0's Tilemap = superclass missmatch and other undefined method
using King's Tilemap = everytime I go to menu and back to Scene_Map, the autotile is gone
using Seph's Tilemap = Lag as hell
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 26, 2013, 01:16:37 pm
Me's rewrite is the only one incompatible with smooth scrolling scripts which is causing graphical glitches. Other than that it is highly compatible.
Delete or rename the Plane part in F0's script, it will work then. Btw, does anyone know a workaround for those errors?
Could you upload a sample project for the bug in King's rewrite? It's still a wip and he's interested in improving it.
I wonder why Seph's script is lagging for you, I have tested it on huge maps with even more huge tilesets. But anyway, it's known for causing problems.

Go for Zero's rewrite, that one should do the job no matter how complex your.project is.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on February 27, 2013, 07:41:10 am
about king's, it seems that problem only occured if Scene_(something) (other than Scene_Map) is using Spriteset_Map.new to make a translucent effect

about F0's script, I somehow can use it but now some of things didn't show properly as I intended

Spoiler: ShowHide
(https://dl.dropbox.com/u/74796308/upload/tilemapbug.JPG)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on February 27, 2013, 11:07:25 am
I just checked it in the demo and it's a general bug in Zer0's rewrite that affects partially transparent animated autotiles only.
I've created a ticket over here (http://aluxes-loves-eric.tk/42/foreverzer0-transparent-animated-autotiles), let's see if someone can track down the reason :/
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 27, 2013, 06:36:23 pm
Solution has been posted. :-*

If you are also having issues with displaying tiles on layers above autotiles, I've posted a solution to that as well in the Custom Resolution topic.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on March 12, 2013, 09:56:26 pm
Good news: Thanks to Blizzard I found a universal fix for the superclass mismatch error, which means that Blizz-ABS is working now, and boy it runs great :haha:

Check out the page (http://aluxes-loves-eric.tk/14/superclass-mismatch-for-class-xxx) on the bugtracker for the solution.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on March 13, 2013, 02:17:22 am
Lol, we already knew that solution at ARC: http://forum.chaos-project.com/index.php/topic,9665.msg144686.html#msg144686
But it wasn't enough for us so we fixed the Ruby source code instead.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on March 13, 2013, 06:28:58 am
Ironically I stumble upon that thread like 4 weeks ago and it was linked everywhere but no one (including me) seemed to actually read the answers :facepalm:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on March 13, 2013, 06:37:05 am
I know. I remember linking to that thread just a few weeks ago. xD
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: exile360 on March 13, 2013, 07:52:39 pm
Oh. Emm. Gee! This is simply epic.

I had a go with it and eventually got my project (which uses RMXOS) to work! Localhost though, can't confirm whether or not I have the same issue as the rest of RMX-OS users in this thread. It looks insanely good and runs silky smooth. <3 Quite sad that I won't be able to use it, because it knocks out almost half of my scripts, haha. :P Didn't expect that many incompatibility issues when I was reading the thread, but my game is pretty script-heavy, so it's natural I suppose. I can post them in the bugtracker but it'll be a lot of work to ask for. The scripts that I've found not to be working this far are:


and possibly more...

Should I post them in the bugtracker with respective errors?

Keep up the good work! This is pretty amazing overall. :)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on March 13, 2013, 09:10:45 pm
It'd be nice if you could post some reports of your most popular scripts, like the Mog menu and KK20's quest log. Generally speaking everything menu-related is mostly easy to fix. You can also send them to me via PM if you don't want to create an account.
Actually both most recent versions (7.62b+7.63b) of Tons of Addons seem to run quite well for me. But that doesn't help you at all as long as RMX-OS is broken :(

Btw, we've got some really script-heavy projects to work on the German forums (including mine) but the debugging can indeed be quite time consuming due to the often random nature of the errors.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: exile360 on March 14, 2013, 08:15:59 am
Quite strange that TONS doesn't work for me then, I had to remove it from the project to get my game to launch. But I'll try to add some reports, hopefully later today. :)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Shining Riku on March 16, 2013, 02:39:45 pm
Hmm. I have no idea what the problem is, but I've used this tutorial to upgrade one of my projects and got the error: "the specified procedure could not be found"

I'm 99% certain I followed all of the steps, and have tried this in a full project, and then a few times in the same project minus all of its scripts (pretty much a New Project at that point)

Do you have any idea what might cause something like this? o.O
In the meantime I'll fiddle around more. I should probably add this to the bug logger...If only there were more I could offer to give insight into this problem in the first place! Guh!

It literally tells me nothing more than this.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on March 16, 2013, 04:08:49 pm
Make sure the Library set in Game.ini matches the name of the .dll in your folder.
In case it doesn't, rename the RGSS301.dll instead of changing the ini.

Quote3.2 Insert the Engine
[...] Open your Game.ini and see what is written behind Library=. Rename RGSS301.dll accordingly (in most cases RGSS102E.dll).
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on June 06, 2013, 11:39:56 am
I discovered how to launch the RGSS3 player into Console and Test mode. All you have to do is launch Game.exe from a batch script or command line.

Game.exe test console


Place that in a .bat file, and run the file whenever you need to playtest your game. $TEST will be true and the console window will show up. You can also use a Batch2Exe converter, convert the batch script to an EXE and rename it to "Game.exe". Then rename Game.exe, Game.ini to something else (Like RealGame) and you can launch the batch script from the editor. Leave Game.rxproj as it is. In fact, I'll post an example project after its all setup.

Spoiler: ShowHide
(http://puu.sh/39EqH.png)


You can also replace this line:
$DEBUG = $TEST = true

With this line:
$DEBUG = $TEST


EDIT: Here's the demo project. Just open Game.rxproj and run the game from the editor. $DEBUG and $TEST will be true and the console will appear. This includes all Audio, Graphics, fonts, etc... This is the whole works.

https://www.box.com/s/dty8mrl1esf1k6u32k65

EDIT 2:

Found a better way to setup the batch script.
if "%~1"=="debug" (
RealGame.exe test console
) else (
RealGame.exe
)


Convert that to an Exe and place it as Game.exe in your project. Be sure to rename your real game and real ini to "RealGame".
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spoofus on July 15, 2013, 09:09:13 am
This may sound dumb, but let me get this straight, If you do all that is required to do this, You don't have to make edits to your existing scripts? and this will alow the game to run smoother, and all this runs in RMXP but using the benefits of VXace?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 15, 2013, 02:24:18 pm
It's mainly to use Ruby 1.9.2 versus 1.8.1 in your RMXP games. You might have to make edits to some of your scripts because of the version changes, but it shouldn't be a terribly large amount.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spoofus on July 15, 2013, 03:42:05 pm
Okay, I was curious after coming across this topic.
Time to see what changes that need to be made for this then, I am very curious about this now.

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on July 19, 2013, 03:35:33 pm
I just finished migrating the bugtracker (http://aluxes-loves-eric.tk/) to a new and sleek Stack Exchange like system, pruning 9,700 inactive users along the way (:facepalm:). It's now got all the features there should have been from the very beginning, including posting without registration and email notifications for just about everything.

In case you are one of the few exalted registered users you'll have to request a new password (http://aluxes-loves-eric.tk/forgot) now in order to access your account. This is due to a database change from MD5 password hashes to salted SHA1 hashes.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: WhiteRose on July 20, 2013, 05:39:54 pm
This is incredible. Thank you so much for the tutorial - it's definitely something that I'll be using in the future. (I know I'm a little late on the thank-you train, but I've been gone, so I thought I'd mention it. :) )
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 21, 2013, 03:11:59 am
Website update looks nice! (Now how the hell do you have ~400 points when I'm still in the 100s? I was only trailing behind you by 10 points before the update :P)

I have been trying to request to reset my password since yesterday and still haven't received an email.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on July 21, 2013, 03:23:14 pm
@KK20: Points are not entirely based on votes anymore but mainly depend on how many best answers, answers in general and reports you have submitted. So I guess all those self-answered entries made my advantage. Plus previous votes weren't migrated as there's no anon votes anymore, so yeah..
:haha:

Gmail usually puts these mails into the Spam folder due to bad reputation and popularity of .tk domains among phisers, so your mail is most likely in there.
I could switch to .com anytime but I like tk's phonetic similarity to "tracker" when read as a word and I do appreciate Tokelau's absolute anonymous domain registration.

Anyway, added a note on that on the respective page.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 21, 2013, 03:27:17 pm
Oh right, spam. I always forget that's there. My mistake :<_<:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on July 28, 2013, 08:20:54 am
I found another XP tilemap script for RGSS3 : http://www.whiteflute.org/wfrgss/?mode=view&realmId=1&pageId=41
too bad when I try to implement it the game.exe will crash if player is changing map / returning from scene menu

can someone take a look of this?

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on July 28, 2013, 12:18:03 pm
Nice find, I stumbled upon this one quite a while ago but didn't think it was worth the effort back then. But that was also when I found that Seph's rewrite is the best :^_^':

Care sharing your progress here (http://aluxes-loves-eric.tk/168/porting-whiteflutes-c-tilemap-to-rgss1s-base-scripts)?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on July 28, 2013, 06:09:09 pm
http://pastebin.com/JT8GPVCK
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: AliveDrive on July 28, 2013, 10:47:43 pm
Oh. My. Land.

Level for you!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on July 29, 2013, 01:34:26 am
Seph's Tilemap (Un-SDK, Un-MACL) (http://pastebin.com/jR6zshnD)

bug :


Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on July 29, 2013, 01:41:47 am
Nice, thanks :) not sure if that was worth it though; in the German forums a couple people encountered some severe bugs when running this rewrite, even in non-graphical scripts - I wonder how Seph accomplished that :P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on July 29, 2013, 02:03:02 am
It seems I'm unable to contact WhiteFlute via email, I wonder why
if someone interested for contacting him, http://www.whiteflute.org/?mode=view&realmName=WFWeb&name=FAQ/サポート (http://www.whiteflute.org/?mode=view&realmName=WFWeb&name=FAQ/サポート)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on July 29, 2013, 02:19:05 am
He/she wants you to use the (pretty dead) support forum (http://www.whiteflute.org/wfrgss/?mode=view&realmId=1&pageId=43) for everything script-related. Yet why not try it in the XPMAP-EX subforum (http://www.whiteflute.org/wfrgss/?mode=view&realmId=1&pageId=43&threadId=20&limits=100)?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 01, 2013, 04:05:30 am
I really want the improved speed/rendering from this, so I will definately do this once (any of) my project(s) are near done. The thing is, what script do I use for resolution? Is it an XP script or Ace script? Wondering because I need to develop certain things at the proper resolution..

Edit: Also, if I don't use any resolution script, what will the default size be? XP sized or Ace sized?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on August 01, 2013, 12:18:18 pm
The default resolution is still 640x480. If you want to run your game on a different resolution I'd recommend using ForeverZer0's rewrite (an XP script, included in the kit). Automatic support for lower resolution is an RGSS3 (C++) tilemap feature and thus not included here.

Even though the stuff you implement in this tutorial is often referred to as "RGSS3" (yet by myself for simplification, see sig) it's actually just a small part of the real RGSS3 (namely hidden classes without tilemap); your game is still running mostly on RGSS1 which is the reason you can still use all your XP scripts and still can't use any scripts written for RGSS3 without prior edits.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 01, 2013, 07:00:46 pm
if you want a bit of cheat, take it from my devtool : http://littledrago.blogspot.com/2013/07/rgss23-drago-core-engine.html

Spoiler: ShowHide
(http://2.bp.blogspot.com/-6zwaxKC7_7U/UfroH2BoPtI/AAAAAAAAARw/i1954EVtaeA/s320/resize.JPG) (http://2.bp.blogspot.com/-6zwaxKC7_7U/UfroH2BoPtI/AAAAAAAAARw/i1954EVtaeA/s1600/resize.JPG)


# The result will differ for XP engine (I recommend to not using 3 command below in RMXP engine)
Graphics.scale_screen(800,600)             # Unlike Graphics.resize_screen, this will scale your screen
Graphics.control_screen_size(true / false) # Can control size of the screen with mouse (you can even maximize your game)
Graphics.fill_monitor                      # Maximize
#-----------------------------------------------------------------
Graphics.fullscreen                        # Turn to fullscreen
Graphics.window                            # Turn to windowed


personally, I didn't recommend F0's rewrite right now (still had bugs, some of tiles in the map are missing or isn't drawed right)
also the sprite priority is messed up
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on August 01, 2013, 07:15:33 pm
I'm still working on F0's. Give me time :P

What things are wrong with it right now? My list is a bit small at the moment. Only thing I have is displaying tiles over animating autotiles.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 01, 2013, 07:32:44 pm
(http://i.imgur.com/rZFzZln.jpg) (http://imgur.com/rZFzZln)

Note : I get F0's tilemap from XP Ace Upgrade Kit 1.8en (7/28/2013 - 02:15 PM GMT+7)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on August 01, 2013, 07:48:34 pm
Is that only with XAS?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 01, 2013, 07:50:13 pm
Does the scale thing affect the sprites or the window size?
If it affects the sprites, that would be amazing lol
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 01, 2013, 08:01:15 pm
@kk20
it seems deleting XAS have no effect with the map (the FPS did increase)

@zexion
all the game screen
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on August 02, 2013, 12:53:08 am
@drago
I figured out why those tiles are missing in your screenshot.
Spoiler: ShowHide
(http://i.imgur.com/4zsbxSx.png)

As to why it does that, I'll still need to look into it. I guess F0's treats <None> autotiles as blank squares, effectively erasing everything on its level of priority and below it in layers. I wonder what the FPS issue is (but I think I have a few hunches). Also tried running your XAS fix demo with King's tilemap script and I was getting slight pausing every now and then.

Tried using F0's instead and I was able to get to the title screen. Unlike your screenshot, I saw the 'New Game', etc. commands. But upon starting I got a 'undefined method tileset= for Tilemap', which I'll need to look into as well. It's strange because I've never known about that.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 02, 2013, 03:13:27 am
I see, so that's the problem

Quote from: KK20 on August 02, 2013, 12:53:08 am
Tried using F0's instead and I was able to get to the title screen. Unlike your screenshot, I saw the 'New Game', etc. commands. But upon starting I got a 'undefined method tileset= for Tilemap', which I'll need to look into as well. It's strange because I've never known about that.


that's weird, did my version different from yours?

----
before I forgot, I want to report other bug that I found (click to enlarge)

(http://i.imgur.com/Mr9hTKVs.jpg) (http://i.imgur.com/Mr9hTKV.jpg)     (http://i.imgur.com/JySMkTws.jpg) (http://i.imgur.com/JySMkTw.jpg)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on August 02, 2013, 04:39:31 pm
I'm using the XAS fix off your website. http://littledrago.blogspot.de/2013/05/rgss-xas-391-ally-system-v112.html
The F0 Tilemap script is the same as the one provided in the XAS demo.

Active Window not showing up is probably a z-value problem. I have no idea what could be causing the HUD to overlap though. If I could guess what the problem is, it has to be the initialize methods in Sprite, Bitmap, or Viewport. I haven't played with XAS in almost 3 years so I don't remember how things work (nor was I an avid RGSS scripter then).
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 07, 2013, 01:26:07 am
Load RTP script : _http://pastebin.com/SP4t2Wqm (the script and dll credit to joe5491)
source : _http://bbs.66rpg.com/thread-307319-1-1.html


you can get RTP.dll in XAS Ally demo (too lazy to uploading it separately) : _http://littledrago.blogspot.de/2013/05/rgss-xas-391-ally-system-v112.html
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on August 07, 2013, 02:20:23 pm
Hey nice find, I'll add it to the kit. Also in these Chinese forums some yet unknown treasures seem to await their discovery (just found another high-res dll). I'll dig around some more and see if I can find other cool stuff. Because all Chinese love reverse engineering.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 08, 2013, 01:09:11 am
*script updated*  _http://pastebin.com/SP4t2Wqm

I forgot that Graphics#transition is loading image separately
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on September 10, 2013, 06:32:23 pm
Added WHITE-FLUTE's C++ Tilemap and XP RTP loading script. I recommend the new tilemap to everyone encountering lag on graphic-heavy maps with one of the Ruby rewrites.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on September 12, 2013, 01:43:36 pm
in RTP script there are a mistake

Spoiler: ShowHide

#==============================================================================
# module Audio
#==============================================================================
module Audio
 #--------------------------------------------------------------------------
 # * Self
 #--------------------------------------------------------------------------
 class << self
   #--------------------------------------------------------------------------
   # * Alias Listing
   #--------------------------------------------------------------------------
   alias_method :bgm_play_path, :bgm_play
   alias_method :bgs_play_path, :bgs_play
   alias_method :se_play_path,  :se_play
   alias_method :me_play_path,  :me_play
   #--------------------------------------------------------------------------
   # * bgm_play
   #--------------------------------------------------------------------------
   def bgm_play(filename, volume = 100, pitch = 100)
     path = filename
     path = RPG::Path::Graphics(path)
     bgm_play_path(path,volume,pitch)
   end
   #--------------------------------------------------------------------------
   # * bgs_play
   #--------------------------------------------------------------------------
   def bgs_play(filename, volume = 100, pitch = 100)
     path = filename
     path = RPG::Path::Graphics(path)
     bgs_play_path(path,volume,pitch)
   end
   #--------------------------------------------------------------------------
   # * me_play
   #--------------------------------------------------------------------------
   def me_play(filename, volume = 100, pitch = 100)
     path = filename
     path = RPG::Path::Graphics(path)
     me_play_path(path,volume,pitch)
   end
   #--------------------------------------------------------------------------
   # * se_play
   #--------------------------------------------------------------------------
   def se_play(filename, volume = 100, pitch = 100)
     path = filename
     path = RPG::Path::Graphics(path)
     se_play_path(path,volume,pitch)
   end
 end
end


change it into

Spoiler: ShowHide
#==============================================================================
# module Audio
#==============================================================================
module Audio
 #--------------------------------------------------------------------------
 # * Self
 #--------------------------------------------------------------------------
 class << self
   #--------------------------------------------------------------------------
   # * Alias Listing
   #--------------------------------------------------------------------------
   alias_method :bgm_play_path, :bgm_play
   alias_method :bgs_play_path, :bgs_play
   alias_method :se_play_path,  :se_play
   alias_method :me_play_path,  :me_play
   #--------------------------------------------------------------------------
   # * bgm_play
   #--------------------------------------------------------------------------
   def bgm_play(filename, volume = 100, pitch = 100, *args)
     path = filename
     path = RPG::Path::Audio(path)
     bgm_play_path(path,volume,pitch,*args)
   end
   #--------------------------------------------------------------------------
   # * bgs_play
   #--------------------------------------------------------------------------
   def bgs_play(filename, volume = 100, pitch = 100, *args)
     path = filename
     path = RPG::Path::Audio(path)
     bgs_play_path(path,volume,pitch,*args)
   end
   #--------------------------------------------------------------------------
   # * me_play
   #--------------------------------------------------------------------------
   def me_play(filename, volume = 100, pitch = 100)
     path = filename
     path = RPG::Path::Audio(path)
     me_play_path(path,volume,pitch)
   end
   #--------------------------------------------------------------------------
   # * se_play
   #--------------------------------------------------------------------------
   def se_play(filename, volume = 100, pitch = 100)
     path = filename
     path = RPG::Path::Audio(path)
     se_play_path(path,volume,pitch)
   end
 end
end


there is also an issue when $TEST is changed to false ($DEBUG is okay), all RTP is gone
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on September 12, 2013, 05:19:10 pm
Fixed the script.

Quote from: LiTTleDRAgo on September 12, 2013, 01:43:36 pmthere is also an issue when $TEST is changed to false ($DEBUG is okay), all RTP is gone

So better add $TEST = true in the script? There aren't any hardcoded debug functions checking for $TEST in RGSS3, are there?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on September 12, 2013, 08:32:14 pm
Or you can just do this
$TEST = $DEBUG


That way in debug mode it'll be true and in release mode it'll be false and you won't have to worry about removing it when your game is done.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on September 12, 2013, 09:45:34 pm
@gameus : no, I already try that, as long as $TEST value is false or nil, RTP script didn't work

@terv : I don't think there any $TEST checking on RMXP scripts, unless it's a cross engine scripts, but it's very rare
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on September 12, 2013, 09:49:34 pm
@gameus: From what I've understood $TEST has to be true in order for the RTP script to work, which shouldn't be a problem as this var isn't used in RGSS1's base scripts (as LD already mentioned).

Also don't forget that both $DEBUG and $TEST are natively false when the game is launched from inside the editor. This is the reason for the line being in the scripts.

I've added $TEST = true among a note to the RTP script.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on September 14, 2013, 04:11:13 pm
Quote from: Terv on September 12, 2013, 09:49:34 pm
@gameus: From what I've understood $TEST has to be true in order for the RTP script to work, which shouldn't be a problem as this var isn't used in RGSS1's base scripts (as LD already mentioned).

Also don't forget that both $DEBUG and $TEST are natively false when the game is launched from inside the editor. This is the reason for the line being in the scripts.

I've added $TEST = true among a note to the RTP script.


I see.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on September 20, 2013, 05:47:19 pm
Hey Terv, do you mind if I post this on http://www.gdunlimited.net/forums/
Just asking just encase, you say otherwise.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on September 20, 2013, 07:55:38 pm
You may, as the licence states (it also has been already translated into Russian). However I won't be able to keep it up to date if you post it there. A few tilemap rewrites are still being worked on, useful scripts added, so the description may change.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on September 20, 2013, 08:53:57 pm
Cool, I'll try to keep it up to date as much as possible. Thanks
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on September 21, 2013, 10:54:31 pm
Yeah, I'm still working on a Tilemap rewrite myself. I'm not sure if the other Tilemap scripts are using the same method as mine, which is basically using a lot of 32x32 sprites that move and update as the Tilemap's ox/oy change. I'm combining it with F0's Resolution. It looks pretty smooth on my end (.003 or so seconds to move a few hundred sprites and change their src_rect and/or bitmap graphics) and can run on 500x500 maps without eating a ton of memory (I think it only used like .02GB).
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on October 08, 2013, 08:48:01 pm
I found this console on rmrk by Grim: http://rmrk.net/index.php/topic,48057.0.html
however, the console seems to have issues with the xp+vxace conversion. So I removed lines 119 and 125, because we're running on vxace now using xp and now it works.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on October 08, 2013, 09:19:46 pm
Already found a way to use the built in console.

http://forum.chaos-project.com/index.php/topic,12899.msg176092.html#msg176092
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on October 08, 2013, 09:45:38 pm
I know I saw that, Terv posted the link already in the OP ;). Doesn't mean there can't be more than one method.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on December 27, 2013, 01:34:24 am
Successfully assembled this with the following details:



All of this was from a brand new project. When I tried using a copy of BoL, it threw a fit with Tons of Addons, somewhere in the caterpillar script, which prompted me to try it out without anything else in the script at all. Also worthy of noting, I ended up renaming the .dll file, not changing the .ini listing. Not sure why that actually makes a difference, but apparently it does..


EDIT: I have also successfully combined this with a CMS script rewrite I am working on, adapted from a 3 person CMS made by Shinami over on RMRK..
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on December 27, 2013, 01:36:07 am
What hissy fit?

If it's the 'superclass mismatch' error, the fix has already been provided.

Object.send(:remove_const, :Plane)

Put that just above class Plane
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on December 27, 2013, 02:15:25 am
Honestly, I didn't post the error message, because I'm not totally sure what went wrong... I simply tried to run it (both within and not from the editor), and it threw an error that was something like "the specified procedure could not be found"


EDIT(kinda): ...but I think I just figured out that it was the .dll file...  I'll try again with the other re-write at some point too.

I went back in and renamed the dll file, and it threw a really similar error, if not the same exact one. Says what I think it said earlier, so, yeah, that might be all it was..
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on December 29, 2013, 08:40:28 pm
A couple of days ago a person told me her project stopped working after updating her RMXP to 1.05. If you're running 1.05 as well, please check this site with solutions in order to be able to playtest your project:
RPGXP 1.05 overwrites RGSS3 dll when saving (http://aluxes-loves-eric.tk/341/rpgxp-1-05-overwrites-rgss3-dll-when-saving)

I've also updated the tutorial.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: sekiraze on December 31, 2013, 08:32:28 am
SOUNDS AWESOME!

Still there is one thing that made me cringe so hard, i died and got revived back to life.

" Auf Theutsch bitte sehr"....

as an Original German Grammar Nazi: It is "Auf Deutsch bitte sehr" And eventhough it makes no sense "Auf Deutsch" it is enough.

pls dont kill me.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on December 31, 2013, 11:56:00 am
Quote from: sekiraze on December 31, 2013, 08:32:28 amas an Original German Grammar Nazi: It is "Auf Deutsch bitte sehr"
:haha:  :facepalm:  :haha:
Einspruch! I do beseech thee to read this excerpt (http://books.google.de/books?id=dLElAAAAMAAJ&lpg=PA253&ots=mOMo4gTF_K&dq=theutsch&hl=de&pg=PA253#v=onepage&q=theutsch&f=false), for I am afraid thou art mistaken!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: sekiraze on January 01, 2014, 12:52:59 pm
i am familiar with this very term, because it was part of my philosophy courses at school. I didn't mean to be rude here, but who the hell is supposed to know that the term is basically known irony? I mean. If i didn't know, id assume that the term is written right. and when you come to germany and say that, people will think you're a retard :o
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on January 01, 2014, 03:54:41 pm
Hey Terv, just wanted to ask your permission to use your tutorial as a basis for a "starter kit" I'm going to be making for new people. I've found at least a few people who would bee interested in someone making the conversion/injection of the engine for them, and along with is, I plan to rewrite a few classes and include some of the more useful scripts as "standard" distribution scripts.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on January 01, 2014, 04:05:37 pm
Sure thing, sounds interesting. I've made this tutorial with people in mind that already had an XP game in the works and wanted to pimp it a bit. Also thought about making an all-in-one script including some of the fixes from the tracker as well, allowing you to de-/activate them in a config header. Yet I didn't feel like there was a need for it, seeing that the kit only gets downloaded about 6 times a day.

I'm curious what "making the conversion of the engine for them" would look like? Is there anything easier than c'n'ping a couple files and scripts?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on January 01, 2014, 09:42:51 pm
Eh, it'll look a lot like any other demo game really, just with a non-standard database, new looks and such, and ready for someone to come along and make a new game out of it all =P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on March 14, 2014, 07:34:23 am
I was about to switch back to using the ACE engine, but then I noticed the files are down. I've managed to get the rgss301.dll and game.exe, but I'm missing the scripts D:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on March 14, 2014, 08:21:36 am
Quote from: Zexion on March 14, 2014, 07:34:23 am
I was about to switch back to using the ACE engine, but then I noticed the files are down. I've managed to get the rgss301.dll and game.exe, but I'm missing the scripts D:



Give a couple minutes to finish uploading, but here it is: https://dl.dropboxusercontent.com/u/25886192/XP%20Ace%20Upgrade%20Kit.rar
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on March 14, 2014, 06:25:00 pm
Updated link. I wonder where Terv went, seeing as the website is no longer up.
Oh lol, last seen a couple days ago. WHAT YOU DOING TERV?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on March 14, 2014, 09:23:27 pm
Maybe she couldn't afford the payment? D: I sent her a pm incase she gets those c-p emails.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on April 12, 2014, 08:13:43 pm
I still have CP as an app tab but didn't take a single look till today -- life's been extremely busy for me lately, sorry.

I had to wipe the server that the files and bugtracker was hosted on a while ago and didn't get to install the backups somewhere else yet. The hoster also cancelled all my other servers so I don't have a place to host the bugtracker at the moment. Apparently they weren't amused I had over 100TB of outgoing traffic in 5 days. Idk what's wrong with them.

Anyway, thank you Phoenix for providing a mirror; 2.3 is still the latest version but I definitely should check all the scripts for updates soon.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on April 17, 2014, 10:58:26 pm
You're very welcome. If you do end up updating it, let me know, and I'll host the newest files as well. Fun fact, I work as an actual web developer now, so I should have a decent site or two of my own up and running soon enough. I'll have an actual file-host as one of them, and probably a script-enabled server of some type. At some point I'll put together a few different versions of this as well, including the whole kit pre-assembled as one variation.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on June 01, 2014, 01:58:58 am
I'm having trouble getting this to go straight to the Internet with this code:
Lambda {Thread.new {system ("start #{http://www.chaos-project.com}")}}

Instead of going to the address I put in there it just restarts the game as if I pressed F12. This code works in rmvxace fine and if you take away the Lambda {} in rmxp the code works fine as well.

But in RMXPACE if:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on June 01, 2014, 05:53:12 am
Why not just use this?

system ("start http://www.chaos-project.com")


If you're just opening a web page, I don't see the point in having it in it's own thread. Just tested the code in both XP and Ace, but not AceXP.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on June 01, 2014, 07:46:26 pm
Ya I already stated that it works fine in xp and vxace, if what I said was confusing to read I apologize, I was using phone to type. It just doesn't work in XPACE. I also try what you said and I get an error.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Moshan on June 02, 2014, 11:45:12 am
 Hello!
Can somebody help me with this?
Quote from: Terv on February 17, 2013, 04:38:51 pm

RMXP version 1.05: Refer to the solution of this report (http://aluxes-loves-eric.tk/341/rpgxp-1-05-overwrites-rgss3-dll-when-saving).


The link is not working and I would appreciate if someone can share with me the information on that site.
Thanks in advance!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 02, 2014, 06:20:56 pm
Quote from: adytza001 on June 02, 2014, 11:45:12 am
The link is not working and I would appreciate if someone can share with me the information on that site.
Thanks in advance!


....


Quote from: Terv on April 12, 2014, 08:13:43 pm
...I had to wipe the server that the files and bugtracker was hosted on a while ago...



There's your answer... The site's gone, no backup, nadda. Noone else can access it either to share it with you. I'll see what I can dig up, but i unno.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Moshan on June 03, 2014, 07:57:54 am
 Thanks for helping me again, PhoenixFire!

I've managed to get it working somehow. Now I'm struggling to make it compatible with all my scripts.

I really appreciate your replies!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 03, 2014, 08:54:39 am
All I could find in the way of archives was a copy of the main/home page.. I did not do an exhaustive search of every link, but it looks like it was never really properly archived. The links I did check were all dead in the water, no archive. Lemme see if I can find that link for ya.

Here ya go:  The Wayback Machine Archive (http://web.archive.org/web/20130704055453/http://www.aluxes-loves-eric.tk/)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spaceman McConaughey on June 07, 2014, 08:55:31 am
Alright, if anyone actually knows the solution to this:
(http://puu.sh/9iPAs/4e78cf029a.png)

Can you please share instead of keeping it to yourself? kthanks

EDIT:
Since figured it out.
But this shit is so incompatible with shit that the shit ain't worth shitting yourself over.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 11, 2014, 12:49:06 am
So I have a more permanent home for the link to this: http://gamers-archive.com/wp-content/file-uploads/resources/RMXP%20Upgrade%20Kit[Unofficial%20XPAce%20Upgrade%20Kit].rar

Had to fix the link because BBCode doesn't like nested brackets  :P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on June 22, 2014, 03:49:07 pm
Quote from: bigace on June 01, 2014, 01:58:58 am
I'm having trouble getting this to go straight to the Internet with this code:
Lambda {Thread.new {system ("start #{http://www.chaos-project.com}")}}

Instead of going to the address I put in there it just restarts the game as if I pressed F12. This code works in rmvxace fine and if you take away the Lambda {} in rmxp the code works fine as well.

But in RMXPACE if:

  • you remove the Lambda { } you get a error and;

  • adding it restarts the game as if you pressed F12



Quote from: bigace on June 01, 2014, 07:46:26 pm
Ya I already stated that it works fine in xp and vxace, if what I said was confusing to read I apologize, I was using phone to type. It just doesn't work in XPACE. I also try what you said and I get an error.


I guess no one has the fix to this? :(
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on June 22, 2014, 04:07:37 pm
I don't even know how you guys have this working on XP and Ace. I'm just getting shot down with unexpected tLABEL.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 22, 2014, 11:56:58 pm
Okay, as promised before, here's a link to a working demo of the XPAce engine.

A few notes:



Download: You can download the demo HERE! (http://gamers-archive.com/wp-content/file-uploads/resources/XPAce.zip) It's a self-compressed .exe within a .zip file. If you need it in another format for whatever reason, send me a pm and I'll see what I can do. It's hosted on my own site, so there should be absolutely no issues with downloading it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on June 23, 2014, 06:58:34 am
Quote from: PhoenixFire on June 22, 2014, 11:56:58 pm
If you use the Steam version of XP: You will have to edit the ini file every time you save the game after editing; for some reason, they decided it was necessary to have the editor overwrite the ini config file every time you save changes.


Could you change the properties of the file to "Read-only"? That should keep it from being overwritten.
Spoiler: ShowHide
(https://dl.dropboxusercontent.com/u/20787370/RMXP/readonly.png)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 23, 2014, 07:01:28 am
Yanno, I thought of that, but didn't try it. I guess I figured that RMXP would simply change it's permissions back on you. If you end up trying that, let me know, and I'll go ahead and include that little part in m next update...


..as a sidenote, I feel like I'm the one taking over this project, kinda like how KK20 took over your tilemap rewrite script F0 hehe
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on June 23, 2014, 07:46:01 am
Open the folder. Hold SHIFT and right click on empty space inside the folder. Select "Open Command Line here". Type:

attrib +r +s Game.ini


Hit ENTER and now RMXP shouldn't be able to overwrite it anymore. I haven't tried it, but it might just work.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 24, 2014, 11:53:22 pm
Totally worked Blizz :D

You wouldn't happen to know off the top of your head, that if someone copies this to their computer, the attributes WILL remain the same, right? I just spent the past 4 hours in the land of SEO research and comparables, so my brain is a bit bleh. I wanna say they'll remain unless they're purposefully changed by the person who downloads it...
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on June 25, 2014, 05:32:12 am
I'm not 100% sure. If they are put into an archive (ZIP or RAR for example), the attributes might get removed. But it's not that important in general. +r is read-only and +s is system-file. As far as I know system files just have a somewhat higher level of protection against messing with them, but nothing else. So even if you distribute your game like that, you should be fine.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 25, 2014, 03:57:04 pm
Agreed, I'm just more worried for the people who use the demo, make a game on their own, save the changes, and can't figure out why the game suddenly doesn't work =p I know that the smart part for them to do would be to read through thiis thread, or the documentation I end up shipping with the kit, but you and I both know people don't do that ( *points to Blizz-ABS thread* point in case... a well documented system, has at least two repeated questions or variations of, per page ).I guess the only way to find out will be to test it out haha..
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on June 26, 2014, 12:07:26 am
It's really not supposed to be the developer's concern whether people read the documentation or not :b
If they want help it is here, and hopefully in a manual. There is not much else you can do, so don't stress!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: whitespirits on June 26, 2014, 09:48:35 am
So does this not work with RMX-OS?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 26, 2014, 06:30:01 pm
In it's current incarnation? Probably not.

Down the road? Maybe, we'll see. I don't know enough about how RMX-OS works to make a perfect call on that, but based on how compatible other things are... Ehh.. It ~might~ work a little bit but I doubt it's 100% compatible.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on June 29, 2014, 11:18:34 pm
Have you released your tilemap rewrite yet KK20? The one with the DLL?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on June 30, 2014, 12:54:23 am
Not yet. Been busy with the contest to even look at it this month. It's on my priority list of things I want to work on in July though.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 30, 2014, 06:44:10 am
Yeah, you should do that! Once it's ready, I'll place that one in instead and see how much better it runs; probably ALOT better, since King's rewrite is a bit dated..

EDIT:

*Double-Posts for some fun news*



Okay, so I went ahead and bought up and registered the domain rmxpace.com and with the help of KK20 maybe Zexion, and whomever else wants to help, we'll get a new site going for this project, kind of similar to what Terv had going. Bug tracker/script conversions, "official" releases of the engine with scripts streamlined in it that we know to work, and actually provide additional functions, etc. I'll end up doing up a ton of documentation for it to explain how to use the different features and such. So yeah, once I get it actually running, we can start this up :)


Soooo... any and all issues that you guys come across, I guess post here until otherwise noted that the other site is ready to accept issue submissions :P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on June 30, 2014, 11:18:42 pm
VIVA XP!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on June 30, 2014, 11:30:01 pm
*looks around*

...are you talking to me? I didn't sign up for this! YOU CAN'T JUST MAKE ME DO THINGS I'M NOT OBLIGATED TO DO!

Sounds cool :U
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 30, 2014, 11:33:56 pm
*points at shoutbox*


Quote from: KK20 in shoutbox
June 30, 2014, 08:50:45 PM KK20: *ragequits life* @Phoenix: Yeah sure, that'd be sweet :)


YOU AGREED SIR!!!!

Also, I know it will keep you occupied when you want to be, you're not actually obligated (none of us really are), and you will most certainly be given due credit (yanno, being damn close to co-owning the site and all). Anyways, site is started, but it's really hard to work on the site without the domain name being active yet. I have SMF installed so far with ezPortal. Nothing is configured yet though haha... Time for bed I think...
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on June 30, 2014, 11:37:54 pm
Quote from: PhoenixFire in ShoutboxOh, and @KK20 to add to wjhat I said a little earlier, once you're done with your rewrite, I would like to use it as the 'official' rewrite for XPAce, assuming it's okay with you.

Don't take my post out of context >:U

Coolio. I'll be sure to do my best rediscovering all the fixes I've done before :P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on June 30, 2014, 11:48:01 pm
Quote from: KK20 on June 30, 2014, 11:37:54 pm
Don't take my post out of context >:U


You stand corrected :V: I had asked you to help with the site after that.. You didn't specify what you were answering =p (also, not being serious.. you totally do not have to help if you don't want to.. You're under literally zero obligation)


Quote from: PhoenixFire in shoutbox
June 30, 2014, 07:12:10 PM PhoenixFire: Anyways, what I was trying to send before to Zexion and KK20 was about the site Terv had up. I sent a message and got no response, but I'm going to most likely host a support forum/site for XPAce, and if you two could/would be willing to help, it could turn out great.


muahahhahaaa!!!!! I win!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on June 30, 2014, 11:51:29 pm
Either way im in xD
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on July 01, 2014, 12:00:57 am
Quote from: Zexion on June 30, 2014, 11:51:29 pm
Either way im in xD


yay!

Oh. Did you mention at one point that you got this working with a bunch of custom scripts you had? If so, you should totally post up the scripts that were working, and we can have a small list of "good and bad" scripts to have a start on? I just skimmed through the past 2 pages of replies and can't find a single mention, so I guess it's possible I dreamed it... Though that would be weird that I'm dreaming about the forums here O.o
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on July 01, 2014, 06:44:44 am
Sounds like a great idea. Just don't let it turn into another laptopsandtea.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spaceman McConaughey on July 01, 2014, 07:27:00 am
Quote from: gameus on July 01, 2014, 06:44:44 am
Sounds like a great idea. Just don't let it turn into another laptopsandtea.


Yeah, seriously.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on July 01, 2014, 07:32:28 am
Yeah, I thought of that issue happening. I really do hope that doesn't happen. I think if enough interest is generated, and not just by a group of 4 people, on a free server, that this could be decent. Next comes the painstaking task of finding everywhere Terv posted about this (or someone else for that matter), and informing the inhabitants of that board that there's a new site for it =p Looks like it's time to re-read the whole topic to see how many references to other sites I can find  hahaha


EDIT: The site is live (http://rmxpace.com/). Nothing interesting or noteworthy set up yet or anything, but it's open for registration and whatnot.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 03, 2014, 05:03:40 am
Well, since Phoenix is still setting up the site, I figure that I'll pose my idea here for now. So, from what I'm sure everyone has noticed, RMXPACE is much smoother due to the higher frame rate. The downside is also this: Since RMXP uses the framerate as its "clock", most things inside the game move faster relative to the higher framerate.

So, I look at it like this:
Let's say that at about 40fps(normal rmxp rate) the character sprite moves at about walking pace(roughly about 4 tiles or so per second or "4 TPS"). If you hike up the fps to the max(120) then the character sprite, among other things, moves at about triple that(12 TPS). Even though the FPS is drawing more times per second, the speed of the sprites and everything else is exactly relative to the FPS therefore defeating the purpose of the extra times the graphics are drawn to the screen.

From what I'm assuming(and I haven't investigated this yet), the speed of the sprite movements, map scrolling, and such are based on a division of the FPS. So if we can slow down the movement, but set the FPS to be at its highest, then you will get the most smoothness without the crazy speed increase.

So instead of 4TPS/40FPS you get 4TPS/120FPS or in other words instead of 1TPS:4FPS you get 1TPS:30FPS.

Does this make sense, or am I rambling?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on July 03, 2014, 06:53:53 am
That actually makes alot of sense, yes. Well, the concept at least. I haven't delved far enough enough into the code to know if that's a feasible idea or not, but I do like the thought behind it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 03, 2014, 10:59:29 am
Yeah, I don't know why this wasn't addressed at the very beginning. I am already tinkering with the update_move method of the Game_Character class. (in Game_Character2 section). This seems to be effective for the movement. As far as the animation frequency, I'm looking into that now and I will either rotate the animation sequences less often, or require multiplying them. If option 1 works and looks right, this is obviously optimal.

Unfortunately, the battle processing speed is also effected by the fps rate. I'm sure that the animations are as well. I looked for some kind of global setting, but seeing as there are deviations I've come across so far(fog speed different from flash speed, ect), the frame to speed ratios are independent and all have to be modified.

The end result is absolutely worth the means. Otherwise, there is literally no improvement in the quality by applying this patch in terms of visual smoothness whatsoever.

UPDATE: Check this Phoenix, make an event to set your FPS to 120:
Graphics.frame_rate = 120

Make a map that has like a width of 40 or so. Put some trees down to watch the scrolling.

First, try walking and see how insanely fast you are and also watch the scrolling.

Next, put in this script just above main and now watch the magic.  :D
Spoiler: ShowHide
WALK_SPEED = 6
WALK_FREQUENCY = 0.5

class Game_Character

 def update_move
   # Convert map coordinates from map move speed into move distance
   #distance = 2 ** @move_speed
   distance = WALK_SPEED
   # If logical coordinates are further down than real coordinates
   if @y * 128 > @real_y
     # Move down
     @real_y = [@real_y + distance, @y * 128].min
   end
   # If logical coordinates are more to the left than real coordinates
   if @x * 128 < @real_x
     # Move left
     @real_x = [@real_x - distance, @x * 128].max
   end
   # If logical coordinates are more to the right than real coordinates
   if @x * 128 > @real_x
     # Move right
     @real_x = [@real_x + distance, @x * 128].min
   end
   # If logical coordinates are further up than real coordinates
   if @y * 128 < @real_y
     # Move up
     @real_y = [@real_y - distance, @y * 128].max
   end
   # If move animation is ON
   if @walk_anime
     # Increase animation count by 1.5
     #@anime_count += 1.5
     @anime_count += WALK_FREQUENCY
   # If move animation is OFF, and stop animation is ON
   elsif @step_anime
     # Increase animation count by 1
     #@anime_count += 1
     @anime_count += WALK_FREQUENCY
   end
 end
end#end Game_Character class

P.S.
I couldn't alias this method successfully for some reason  :???: I had to just rewrite it for this example.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on July 03, 2014, 12:29:36 pm
I tried the above and it actually looked less smooth than I already had it xD
Using my custom animations script + pixel movement + F0/KK20 custom resolution 0.96
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 03, 2014, 12:36:05 pm
Well jeez, I wish I knew about that script already!

Is KK20 letting people use this? If so, do you have a link?

But either way, it's an improvement and a closer step to a better ratio. I'll continue looking at it and see if I can't make an "out of the box" improvement anyway.

Oh, and also Zexion.. What method of solution did you come up with for this custom script of yours? Are you using more animation tiles, or are you modifying the time:fps, or what? That is, if you don't mind sharing.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on July 03, 2014, 12:59:50 pm
Turns out I'm actually using 0.97e which is by littledrago + f0 + kk20
Scripts:
Custom Resolution v0.97E (http://pastebin.com/rWLhY7wg)
Animation & Movement (http://forum.chaos-project.com/index.php/topic,13093.0.html)
Don't have a link to pixel movement but it was some random thing from google.

The resolution script lags at high screen sizes, but not at normal or slightly bigger ones. It also recommends not to make huge maps bigger than 20x15, but I have a 60x40 and no lag. I guess it depends on events and stuff. I think this one includes anti-event lag though!

Edit: For my method I didn't modify anything other than the speed of the character graphics. For my game, the faster movement speed is actually a + and at 60fps it is hardly a bother! In fact, moving back to 40fps feels sluggish and ugly. I'm not sure what all is affected in the game other than graphics update methods because the time display seems to be fine, and I personally like the speed because it gives more room to work with in script

Animation Script: ShowHide
My animation script doesn't require any graphics, contrary to popular belief. Just pop it in and you can mess with the default animation speed. It does make this default speed regardless of movement speed though, so changing movement speed won't change animation speed anymore. It's messy because it was like my 3rd script release haha. I'm going to clean it up soon. For default rmxp experience with my script I set this up:
module ANIM_DATA
                 SPEED = 8                # Default animation speed
                 EIGHT_DIR = false        # Does not require certain number
                 
                 
                 ISO_TAG = "iso"           # Tag for 8 pose charset.
                                           # of frames, or custom charset.
                 STND_TAG = "stn"          # This uses the first pose as
                                           # a standing pose. Useful for
                                           # larger animation sheets.
end

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
# This section by:
# Dirtie & Zexion
# 16th December 2006
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
class Game_Actor < Game_Battler
 #--------------------------------------------------------------------------
 # * Get Number of Frames for Character Graphic
 #--------------------------------------------------------------------------
 def character_frames
   @character_name.gsub(/cs\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 4
 end
 #--------------------------------------------------------------------------
 # * Get Number of Rows for Character Graphic (allows for 1 row charsets.
 #--------------------------------------------------------------------------
 def character_rows
   @character_name.gsub(/vs\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 4
 end
 #--------------------------------------------------------------------------
 # * Control the speed of an animation (is no longer affected by move_speed
 #--------------------------------------------------------------------------
 def animation_speed
   @character_name.gsub(/a\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return ANIM_DATA::SPEED
 end
end
class Sprite_Character < RPG::Sprite
 #--------------------------------------------------------------------------
 # * Get Number of Frames for Character Graphic
 #--------------------------------------------------------------------------
 def character_frames
   @character_name.gsub(/cs\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 4
 end
 #--------------------------------------------------------------------------
 # * Get Number of Rows for Character Graphic (allows for 1 row charsets.
 #--------------------------------------------------------------------------
 def character_rows
   @character_name.gsub(/vs\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 4
 end
 #--------------------------------------------------------------------------
 # * Control the speed of an animation (is no longer affected by move_speed
 #--------------------------------------------------------------------------
 def animation_speed
   @character_name.gsub(/a\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return ANIM_DATA::SPEED
 end
end
class Game_Character
 #--------------------------------------------------------------------------
 # * Get Number of Frames for Character Graphic
 #--------------------------------------------------------------------------
 def character_frames
   @character_name.gsub(/cs\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 4
 end
 #--------------------------------------------------------------------------
 # * Get Number of Rows for Character Graphic (allows for 1 row charsets.
 #--------------------------------------------------------------------------
 def character_rows
   @character_name.gsub(/vs\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 4
 end
 #--------------------------------------------------------------------------
 # * Control the speed of an animation (is no longer affected by move_speed
 #--------------------------------------------------------------------------
 def animation_speed
   @character_name.gsub(/a\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return ANIM_DATA::SPEED
 end
 #--------------------------------------------------------------------------
 # * Get Vertical Adjustment for Character Graphic
 #--------------------------------------------------------------------------
 def character_adjust_y
   @character_name.gsub(/v\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 0
 end
 #--------------------------------------------------------------------------
 # * Get Horizontal Adjustment for Character Graphic
 #--------------------------------------------------------------------------
 def character_adjust_x
   @character_name.gsub(/h\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 0
 end
end

class Window_Base < Window
 #--------------------------------------------------------------------------
 # * Get Vertical Adjustment for Character Graphic
 #--------------------------------------------------------------------------
 def character_adjust_y(actor)
   actor.character_name.gsub(/v\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 0
 end
 #--------------------------------------------------------------------------
 # * Get Horizontal Adjustment for Character Graphic
 #--------------------------------------------------------------------------
 def character_adjust_x(actor)
   actor.character_name.gsub(/h\_(\d+)/) do
     if $1 != @character_name
       return $1.to_i
     end
   end
   return 0
 end
 #--------------------------------------------------------------------------
 # * Draw Graphic
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_actor_graphic(actor, x, y)
   yalign = character_adjust_y(actor)
   xalign = character_adjust_x(actor)
   bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
   cw = bitmap.width / actor.character_frames
   if actor.character_name.include?(ANIM_DATA::ISO_TAG)
     ch = bitmap.height / 8
   else
     ch = bitmap.height / 4
   end
   src_rect = Rect.new(0, ch * 2, cw, ch)
   self.contents.blt(x - cw / 2 + xalign, y - ch + yalign, bitmap, src_rect)
 end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
# End of section by: Dirtie & Zexion
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
# This section by:
# DerVVulfman
# Zexion
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
class Game_Character  
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_reader   :step_anime               # Holds a sprite's step flag
 attr_reader   :walk_anime               # Holds an event's movement flag
 attr_reader   :stop_count               # The number of steps left to count
 attr_reader   :jump_count               # The number of steps in a jump
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   # Branch with jumping, moving, and stopping
   if jumping?
     update_jump
   elsif moving?
     update_move
   else
     update_stop
   end
   if @anime_count > 18 - (self.animation_speed)
     # If stop animation is OFF when stopping
     if not @step_anime and @stop_count > 0
       # Return to original pattern
       @pattern = @original_pattern
     # If stop animation is ON when moving
     else
       # Update pattern
       @pattern = (@pattern + 1) % self.character_frames
     end
     # Clear animation count
     @anime_count = 0
   end
   # If waiting
   if @wait_count > 0
     # Reduce wait count
     @wait_count -= 1
     return
   end
   # If move route is forced
   if @move_route_forcing
     # Custom move
     move_type_custom
     return
   end
   # When waiting for event execution or locked
   if @starting or lock?
     # Not moving by self
     return
   end
   # If stop count exceeds a certain value (computed from move frequency)
   if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
     # Branch by move type
     case @move_type
     when 1  # Random
       move_type_random
     when 2  # Approach
       move_type_toward_player
     when 3  # Custom
       move_type_custom
     end
   end
 end
 
 #--------------------------------------------------------------------------
 # * Move Lower Left
 #--------------------------------------------------------------------------
 def move_lower_left
   # If no direction fix
   unless @direction_fix
     turn_down_left
   end
   # When a down to left or a left to down course is passable
   if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
      (passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
     # Update coordinates
     @x -= 1
     @y += 1
     # Increase steps
     increase_steps
   end
 end
 #--------------------------------------------------------------------------
 # * Move Lower Right
 #--------------------------------------------------------------------------
 def move_lower_right
   # If no direction fix
   unless @direction_fix
     turn_down_right
   end
   # When a down to right or a right to down course is passable
   if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or
      (passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))
     # Update coordinates
     @x += 1
     @y += 1
     # Increase steps
     increase_steps
   end
 end
 #--------------------------------------------------------------------------
 # * Move Upper Left
 #--------------------------------------------------------------------------
 def move_upper_left
   # If no direction fix
   unless @direction_fix
     turn_up_left
   end
   # When an up to left or a left to up course is passable
   if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or
      (passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))
     # Update coordinates
     @x -= 1
     @y -= 1
     # Increase steps
     increase_steps
   end
 end
 #--------------------------------------------------------------------------
 # * Move Upper Right
 #--------------------------------------------------------------------------
 def move_upper_right
   # If no direction fix
   unless @direction_fix
     turn_up_right
   end
   # When an up to right or a right to up course is passable
   if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or
      (passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))
     # Update coordinates
     @x += 1
     @y -= 1
     # Increase steps
     increase_steps
   end
 end
 #--------------------------------------------------------------------------
 # * Turn Up Left (Added for diagonal animation)
 #--------------------------------------------------------------------------  
 def turn_up_left
   unless @direction_fix
     if @character_name.include?(ANIM_DATA::ISO_TAG)
       @direction = 7
     else
       # Face left if facing right, and face up if facing down
     @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
     end      
   end
 end
 #--------------------------------------------------------------------------
 # * Turn Up Right (Added for diagonal animation)
 #--------------------------------------------------------------------------  
 def turn_up_right
   unless @direction_fix
     if @character_name.include?(ANIM_DATA::ISO_TAG)
       @direction = 9
     else
       # Face right if facing left, and face up if facing down
     @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
     end
   end
 end
 #--------------------------------------------------------------------------
 # * Turn Down Left (Added for diagonal animation)
 #--------------------------------------------------------------------------  
 def turn_down_left
   unless @direction_fix
     if @character_name.include?(ANIM_DATA::ISO_TAG)
       # Face down-left
       @direction = 1
     else
       # Face down is facing right or up
     @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)      
     end
   end
 end
 #--------------------------------------------------------------------------
 # * Turn Down Right (Added for diagonal animation)
 #--------------------------------------------------------------------------  
 def turn_down_right
   unless @direction_fix
     if @character_name.include?(ANIM_DATA::ISO_TAG)
       @direction = 3
     else
       # Face right if facing left, and face down if facing up
     @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
     end
   end
 end

 #------------------------------------------------------------------------
# * Move Random
#------------------------------------------------------------------------
 def move_random
   case rand(8)
     when 0 ; move_down(false)
     when 1 ; move_left(false)
     when 2 ; move_right(false)
     when 3 ; move_up(false)
     when 4 ; move_lower_left
     when 5 ; move_lower_right
     when 6 ; move_upper_left
     when 7 ; move_upper_right  
   end
 end
#------------------------------------------------------------------------
# * Move Toward Player
#------------------------------------------------------------------------
 def move_toward_player
   sx = @x - $game_player.x
   sy = @y - $game_player.y
   return if sx == 0 and sy == 0
   abs_sx = sx.abs
   abs_sy = sy.abs
   if abs_sx == abs_sy
     rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
   end
   if abs_sx
     move_upper_right  if sx < 0 and sy > 0
     move_upper_left   if sx > 0 and sy > 0
     move_lower_left   if sx > 0 and sy < 0
     move_lower_right  if sx < 0 and sy < 0
     move_right        if sx < 0
     move_left         if sx > 0
     move_up           if sy > 0
     move_down         if sy < 0
   end
 end
 
 #------------------------------------------------------------------------
# * Move Away from Player
#------------------------------------------------------------------------
 def move_away_from_player
   sx = @x - $game_player.x
   sy = @y - $game_player.y
   return if sx == 0 and sy == 0
   abs_sx = sx.abs
   abs_sy = sy.abs
   if abs_sx == abs_sy
     rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
   end
   if abs_sx
     move_lower_left   if sx < 0 and sy > 0
     move_lower_right  if sx > 0 and sy > 0
     move_upper_right  if sx > 0 and sy < 0
     move_upper_left   if sx < 0 and sy < 0
     move_left         if sx < 0
     move_right        if sx > 0
     move_down         if sy > 0    
     move_up           if sy < 0
   end
 end
 
 #--------------------------------------------------------------------------
 # * Set Custom Animation
 #--------------------------------------------------------------------------
 def set_custom_anim
   return if @animating
   @frame_count    = self.character_frames
   @animating      = true
   @anim_wait      = 40
   @pattern        = 0
   @direction_fix  = true
 end  
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Character < RPG::Sprite
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :character                # character
 attr_accessor :pattern
 #--------------------------------------------------------------------------
 # * Object Initialization
 #     viewport  : viewport
 #     character : character (Game_Character)
 #--------------------------------------------------------------------------
 def initialize(viewport, character = nil)
   super(viewport)
   @character = character
   update
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   super
   # If tile ID, file name, or hue are different from current ones
   if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_hue != @character.character_hue
     # Remember tile ID, file name, and hue
     @tile_id = @character.tile_id
     @character_name = @character.character_name
     @character_hue = @character.character_hue
     # If tile ID value is valid
     if @tile_id >= 384
       self.bitmap = RPG::Cache.tile($game_map.tileset_name,
         @tile_id, @character.character_hue)
       self.src_rect.set(0, 0, 32, 32)
       self.ox = 16
       self.oy = 32
     # If tile ID value is invalid
     else
       self.bitmap = RPG::Cache.character(@character.character_name,
         @character.character_hue)
       if @character.character_name.include?(ANIM_DATA::STND_TAG)
           @cw = bitmap.width / (self.character_frames + 1)
       else
           @cw = bitmap.width / self.character_frames
       end
       if @character.character_name.include?(ANIM_DATA::ISO_TAG)
         @ch = bitmap.height / 8
       else
         @ch = bitmap.height / self.character_rows
       end
       if @character.character_adjust_x != nil
         self.ox = (@cw - @character.character_adjust_x) / 2
       else
         self.ox = @cw / 2
       end
       if @character.character_adjust_y != nil
         self.oy = @ch - @character.character_adjust_y
       else
         self.oy = @ch
       end
     end
   end
   # Set visible situation
   self.visible = (not @character.transparent)
   # If graphic is character
   if @tile_id == 0
       if not @character.step_anime and @character.stop_count > 0
         sx = (@character.pattern) * @cw
       else      
         # If event's Movement flag is checked (or player sprite)
         if @character.walk_anime                  
           # Set rectangular transfer
           if @character.character_name.include?(ANIM_DATA::STND_TAG)
               sx = (@character.pattern + 1) * @cw
           else
             sx = @character.pattern * @cw
           end
         else
           sx = @character.pattern * @cw
         end
       end
   # Basic direction value
     dir = @character.direction
     # If a custom character in use
     if @character.character_name.include?(ANIM_DATA::ISO_TAG)
         dec = (dir == 7 or dir== 9) ? 3 : 1   # directional movement.
         sy = (dir - dec) * @ch    
       else
         sy = (dir - 2) / 2 * @ch        
     end
     # Typical block transfer
     self.src_rect.set(sx, sy, @cw, @ch)
   end
   # Set sprite coordinates
   self.x = @character.screen_x
   self.y = @character.screen_y
   self.z = @character.screen_z(@ch)
   # Set opacity level, blend method, and bush depth
   self.opacity = @character.opacity
   self.blend_type = @character.blend_type
   self.bush_depth = @character.bush_depth
   # Animation
   if @character.animation_id != 0
     animation = $data_animations[@character.animation_id]
     animation(animation, true)
     @character.animation_id = 0
   end
 end
end

#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  This class handles the player. Its functions include event starting
#  determinants and map scrolling. Refer to "$game_player" for the one
#  instance of this class.
#==============================================================================

class Game_Player < Game_Character
@@poin1 = 0    
 @@poin2 = 0
 @@wait_time = 0
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :waiting
 attr_accessor :wait_time
#------------------------------------------------------------------------
# * Update Character Movement
#------------------------------------------------------------------------
def update
last_moving = moving?
   #----------------------------------------------------------------------
   #  * Movement Handling
   #----------------------------------------------------------------------
     unless moving? or $game_system.map_interpreter.running? or
     @move_route_forcing or $game_temp.message_window_showing  
       if ANIM_DATA::EIGHT_DIR == true
           case Input.dir8
             when 1 ; move_lower_left
             when 3 ; move_lower_right
             when 7 ; move_upper_left
             when 9 ; move_upper_right
             when 2 ; move_down
             when 4 ; move_left
             when 6 ; move_right
             when 8 ; move_up
           end
       else      
         case Input.dir4
           when 2 ; move_down
           when 4 ; move_left
           when 6 ; move_right
           when 8 ; move_up
         end
       end
     end
   #----------------------------------------------------------------------
   #  * Screen Positioning
   #----------------------------------------------------------------------
   last_real_x = @real_x
   last_real_y = @real_y
   super
   if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
     $game_map.scroll_down(@real_y - last_real_y)
   end
   if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
     $game_map.scroll_left(last_real_x - @real_x)
   end
   if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
     $game_map.scroll_right(@real_x - last_real_x)
   end
   if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
     $game_map.scroll_up(last_real_y - @real_y)
   end
   #----------------------------------------------------------------------
   #  * Encounter and Event Processing
   #----------------------------------------------------------------------
   unless moving?
     if last_moving
       result = check_event_trigger_here([1,2])
       if result == false
         unless $DEBUG and Input.press?(Input::CTRL)
           @encounter_count -= 1 if @encounter_count > 0
         end
       end
     end
     if Input.trigger?(Input::C)
       check_event_trigger_here([0])
       check_event_trigger_there([0,1,2])
     end
   end
end
 #------------------------------------------------------------------------
 #  * Encounter and Event Processing
 #------------------------------------------------------------------------  
 def idle_wait(duration, value)
   for i in 0...duration
     @@wait_time += 1 if value == false
     break if i >= duration / 2
   end
 end
end
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 03, 2014, 01:04:08 pm
Awesome man, thanks!

Oh, real quick, is this code an updated version of the Movement & Animation Script in the link above, or something else?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on July 03, 2014, 01:33:26 pm
It should be the same but just configured for default rmxp play.
I'm not sure though. It might have extra stuff because I took it from my project and not the topic.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 04, 2014, 06:48:49 am
ah okay, cool.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 04, 2014, 04:17:43 pm
Copied from: http://rmxpace.com/index.php?topic=7.0

As stated in the project package, I am attempting to write a Tilemap rewrite for XPA. The goal is to replace ForeverZer0's Custom Resolution (http://forum.chaos-project.com/index.php/topic,7814.0.html) by using a DLL, which would help address memory, graphics, and frame rate problems that are inevitable with Ruby. Custom Resolution was originally designed for XP and I intend to write it for such; the fact that it works with XPA as well is a great coincidence.

The most notable alternate Tilemap rewrites are listed below:



Disclaimer:
I would also like to add that VXA limits the user from making a resolution higher than 640x480. Any higher requires hacking the RGSS, which goes against the EULA. The current XPA package contains this hacked DLL. I'm not sure if XPA also abides the EULA, but I can guess that it does since we are not using the programs as intended.


Anyways, I am stuck deciding which route I want to take in making this script. I've narrowed down to these two options:

Current optimization includes using a series of memcpys to shift tiles (anything faster?) and drawing only when something updates--data table modification, new bitmap graphics, autotile, scrolling. The DLL code will be open-source for anyone to edit. I'll also create a tutorial as to what I specifically use to generate this DLL (I'm still fairly new at this xD).
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on July 26, 2014, 05:04:36 pm
Quote from: bigace on June 22, 2014, 03:49:07 pm
Quote from: bigace on June 01, 2014, 01:58:58 am
I'm having trouble getting this to go straight to the Internet with this code:
Lambda {Thread.new {system ("start #{http://www.chaos-project.com}")}}

Instead of going to the address I put in there it just restarts the game as if I pressed F12. This code works in rmvxace fine and if you take away the Lambda {} in rmxp the code works fine as well.

But in RMXPACE if:

  • you remove the Lambda { } you get a error and;

  • adding it restarts the game as if you pressed F12



Quote from: bigace on June 01, 2014, 07:46:26 pm
Ya I already stated that it works fine in xp and vxace, if what I said was confusing to read I apologize, I was using phone to type. It just doesn't work in XPACE. I also try what you said and I get an error.


I guess no one has the fix to this? :(

So... I guess bump once again? :???:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on July 27, 2014, 09:36:26 am
You should probably post this on the RMXPAce support website: http://rmxpace.com


Also, when you do, please provide details, such as if you're using our official release, or if you built the Ace instance yourself; if it's your own fork, what scripts did you include, etc.?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on July 27, 2014, 11:01:06 am
I understand you're trying to get your website a bit more attention, but don't force it onto people. If he wants to request support here because there are more members and it's a bit more active, then so be it.

Quote from: bigace on July 26, 2014, 05:04:36 pm
So... I guess bump once again? :???:


I just tested this in XP Ace. The code is:

website = [
 'http://forum.chaos-project.com/'
]
 Thread.new { system("start #{website[0]}") }


And here's a GIF showing it.

Large GIF: ShowHide
(http://puu.sh/atd1w/d8a55d772f.gif)


If you're using RPG Maker XP 1.05, it likes to overwrite the RGSS104E.dll in your project folder every time you playtest it through the editor.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on July 28, 2014, 06:26:19 pm
Quote from: gameus on July 27, 2014, 11:01:06 am
I understand you're trying to get your website a bit more attention, but don't force it onto people. If he wants to request support here because there are more members and it's a bit more active, then so be it.


Quite the opposite actually. I mean, yeah, I would love as much exposure as possible, but part of the reason I would direct people there is that the scripters here that normally are the ones to answer the requests, happen to already be registered over there too. So, in conclusion, I would say the core people needed for these requests can be reached at either site. In addition, the other site is supposed to be the site for support, and since it's operable, I figure why split the same data between two sites? I do understand what you mean though, even though the scripters here are registered on the XPAce site, some of them visit here more frequently (though looking at it, all of the lead scripters have been on in the past 24 hours >.> )


I dunno, I somehow thought that sending people who needed support for XPAce to the website set up for support for XPAce might be a helpful thing. Not to mention that a new version of XPA will be available on the site as of August 1st and all that happy stuff..


Quote from: gameus on July 27, 2014, 11:01:06 am

I just tested this in XP Ace. The code is:

website = [
  'http://forum.chaos-project.com/'
]
  Thread.new { system("start #{website[0]}") }


And here's a GIF showing it.

Large GIF: ShowHide
(http://puu.sh/atd1w/d8a55d772f.gif)



Mind if I add this to the support site, or would you like to place it there yourself?
EDIT: Would I be correct in assuming that the URL is contained in an array, and that being an array, you can store as many URL's as you want, and simply reference the index of the site you want to send the player to in the script call?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spaceman McConaughey on July 28, 2014, 10:20:38 pm
Quote from: PhoenixFire on July 28, 2014, 06:26:19 pm
In addition, the other site is supposed to be the site for support


Sure, it's supposed to be, but people still can (and should) ask for help here too since it's far more active.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 28, 2014, 11:10:55 pm
And we can always just archive the questions asked here to the other forum. Terv always posted errors and its solution to it immediately afterwards on the old website.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 29, 2014, 02:58:29 am
I finally took a look at the script Zexion. I like what you did there, but that's not really what I was going for. What I'm trying to do is have the FPS cranked up to full while retaining the normal speeds of battles(messages, animation, ect), walking, messages, and everything else. That way there is smoothness and not a change in the intended speed of rmxp. I say that your script did not meet my desires because I changed the SPEED = x setting and even at 1 the speeds were far faster than the default RMXP setup. I could very well be missing something though if I'm supposed to configure something else further into the code and not in the top config section.

The code I'm working on is to have the FPS for better smoothness but no change(or as close as I can get it) in game speed.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 29, 2014, 03:44:52 am
First, the easy stuff, is to find all
Graphics.frame_count % 2
in your scripts and replace the 2 with a 3.

Everything else you want is merely changing the constants of functions, but you have to know where to look. Walk animation is this line:
if @anime_count > 18 - @move_speed * 2
Try increasing the 18 to 27 or 28 (logic of 40FPS -> 60FPS = 1.5x increase).

This can be a devoted project by one of us to add to the kit; however, it will only extend towards the default scripts.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 29, 2014, 04:32:27 am
Ah, that's exactly the kind of stuff I was looking for. I did something like this with the Game_Character update_move method and replaced the exponents with constants. Yeah, it sounds tedious, but from what I've seen so far it has to be done this way. Unfortunately, nearly every update method stands on its own..

In which script are you suggesting to modify the Graphics.frame_count in?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 30, 2014, 02:38:02 am
All of them. I know RPG::Sprite uses this to update its Animation frames. There probably aren't a whole lot of their instances, but it's worth a shot. I spew them all over the place in my project.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on July 30, 2014, 10:57:32 am
Hmm, well I might try and hail mary and find/replace all of the instances. I'm thinking about maybe changing the FPS back to 40 or so when entering battle or whatever it is and then on battle exit kick it back up. That way I'll only have to worry about animation, weather, flash, tone, and anything else mentioned above. That'll at least make it semi-workable out of the box.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on August 02, 2014, 11:37:26 am
Just wanted to correct something that's stated earlier in this thread. The trick Blizz mentioned about the +R+S attributes, in fact does not work. What I tested that worked was if you changed the attributes after the game loaded and removed the read-only attributes, then saved the game, it didn't changed the ini and dll file. HOWEVER! Yeah, completely ignore any solution with this :p Every time you load a project, it checks and removes read-only flags (regardless of the 'system' flag) and overwrites the game.ini file. It also overwrites the .dll file, or, if the .dll it wants does not exists, creates it for you. So even still, if you edit your game and save it, you'll still have to edit the config file and put in the proper .dll file; I have one more solution to try out, and I'll let you all know how that turns out..
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on August 02, 2014, 12:24:43 pm
I don't know what you mean. You don't even need to set the properties through command prompt. As I stated earlier, simply right-click the Game.ini file, check the "Read-Only" flag and your done.

I just tested and confirmed, it is not overwritten.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Moshan on August 02, 2014, 01:01:07 pm
 I've already posted this on the RMXPAce support website: http://rmxpace.com but I think I should also post it here  :^_^':

Script Name: Battle Dome (http://forum.chaos-project.com/index.php/topic,3183.0.html (http://forum.chaos-project.com/index.php/topic,3183.0.html))
Screenshot: I couldn't explain by pictures...so I've made a video: http://youtu.be/hwe1kcYXbBk
Description of Error: As you can see in video after the battle is done the message window doesn't show any text. It does not display the experience/gold gained nor the items.

Extra: This issue does not occur without RMXPAce engine. I've noticed that the window size modifies when it needs to display multiple lines of text. (for example when gaining items and experience it requires 2 lines of text to display this)

   Thanks in advance!

  Demo (if needed):https://drive.google.com/file/d/0Bz22DF-S1J2nbVR1QWZMR2xXMU0 (https://drive.google.com/file/d/0Bz22DF-S1J2nbVR1QWZMR2xXMU0/edit?usp=sharing)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on August 02, 2014, 01:54:20 pm
Quote from: ForeverZer0 on August 02, 2014, 12:24:43 pm
I don't know what you mean. You don't even need to set the properties through command prompt. As I stated earlier, simply right-click the Game.ini file, check the "Read-Only" flag and your done.

I just tested and confirmed, it is not overwritten.


May I ask, what version of the editor are you using? Because the 1.05 version through Steam is most certainly doing it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 02, 2014, 02:43:39 pm
It overwrites when the editor is opened, but not if the editor is already open. So if you change the ini, and then open the editor, it would overwrite the ini file. If you opened the editor first, and then changed the ini, it works. Blizz's command prompt fix was supposed to stop this from happening altogether, but rmxp doesn't open if it can't change the read only attribute for some reason.

The easiest fix is just to delete the normal dll and rename the rgss300.dll
For some reason I thought you couldn't do that but it's actually in the main post ._.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on August 02, 2014, 03:38:47 pm
No, it overwrites the .dll as well, as far as I know. I tried leaving the .ini file as it's "supposed" to be with RGSS104E and renamed the dll to that. It overwrote the dll and then complained 'specified procedure could not be found' when I tried to run it. So, no, no good.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 02, 2014, 04:38:02 pm
That's weird because that's what me kk20, and (i think) drago do.
I'd recommend using rmxp v1.02 to v1.04 because the 1.05 seems to be all around annoying xD
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on August 02, 2014, 04:55:08 pm
Steam's editor is extremely inefficient. You can't open projects directly using Game.rxproj, you can't have more than one RMXP instance open, and it overrides your ini and dll as you just pointed out.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on August 02, 2014, 05:00:47 pm
I can make real basic launcher for the editor if you would like.

Correct me if I am wrong, but this is what you need to happen:

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 02, 2014, 05:15:08 pm
yes, exactly :D
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on August 02, 2014, 05:51:59 pm
Download (https://dl.dropboxusercontent.com/u/20787370/RMXP/XpAceEditor.exe) (8 kB)

Give that a try. Feel free to distribute/share as you please.

Let me know if you need any adjustments.

Source Code: ShowHide

using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;

namespace XpAceEditor
{
static class Program
{
[DllImport("Kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool WritePrivateProfileString(string lpAppName,
  string lpKeyName, string lpString, string lpFileName);

[DllImport("User32")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

[DllImport("Kernel32")]
private static extern IntPtr GetConsoleWindow();

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!File.Exists("Game.ini") || !File.Exists("Game.rxproj"))
{
Console.WriteLine("Missing files!\nGame.ini and Game.rxproj must be located in same folder.");
Console.ReadLine();
Environment.Exit(0);
}
// Hide the console window
var hWnd = GetConsoleWindow();
ShowWindow(hWnd, 0);
// Get current attributes, and remove read-only if needed
var ini = Path.Combine(Environment.CurrentDirectory, "Game.ini");
var attributes = File.GetAttributes(ini);
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
attributes &= ~FileAttributes.ReadOnly;
File.SetAttributes(ini, attributes);
}
var proc = new Process();
proc.StartInfo.FileName = "Game.rxproj";
proc.Start();
// Wait 10 seconds for the editor to start up
Thread.Sleep(10000);
// Set the library name and read-only attribute
WritePrivateProfileString("Game", "Library", "RGSS301.dll", ini);
File.SetAttributes(ini, attributes | FileAttributes.ReadOnly);
// Wait for editor to exit and set attributes back to how they were
proc.WaitForExit();
File.SetAttributes(ini, attributes);
}
}
}


EDIT:
I forgot to mention, you must wait 10 seconds after hitting the launcher for it to take effect. I just picked an arbitrary amount of time to make sure the editor got through all its startup stuff.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 02, 2014, 06:07:15 pm
Oh that works
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on August 03, 2014, 10:59:46 pm
ForeverZero, you are the man as usual. Good to see you frequenting here again.
Also, I have some questions regarding the FPS handling of VXA/RMXP and your CCTS script. I'll post the details when I get 'em together and see what your thoughts are on it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on August 03, 2014, 11:46:31 pm
Quote from: ArcaneAlchemy on August 03, 2014, 10:59:46 pm
ForeverZero, you are the man as usual. Good to see you frequenting here again.
Also, I have some questions regarding the FPS handling of VXA/RMXP and your CCTS script. I'll post the details when I get 'em together and see what your thoughts are on it.



I am guessing its going to be about the "count_length" method, and what effect will be made running at 60 FPS instead of 40 FPS?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on August 04, 2014, 03:58:55 pm
You're half right. You see, I'm running the rmxp/vxa at 120 fps. I then tailored the walking speed and frequency to retain the speed of the 40fps look so that I get the best scrolling smoothness without the stupid sprinting speeds of 60+(which defeats the purpose of faster fps in my opinion).
I want to retain the battle speeds, and that is merely a matter of a switch at battle_scene start and end.

My Problem: The issue is that inside Game_Map, or wherever the weather, flashing, and time(in the case of CCTS), I am getting the 120fps speeds for those. I am excluding the animations here because that CAN be fixed by simply tripling the animation sprite order(although I'd like to avoid that if possible).

My question: So, yes I am wondering about the effect of time and how it's handled in relation to FPS changes. And better yet, I am wondering if there is a way to call frames at a 3rd of the rate so that I can retain that 40fps "look" whilst still scrolling the game_map at 120.

Your thoughts?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on August 04, 2014, 05:40:41 pm
I am sure its possible to only update one at 40, and the other at 120.

Something like if
if Graphics.frame_count % 3 == 0
  update_this
end
update that


I would have to review the script again to see where, but its possible.

Why run the game at 120 FPS anyway?
A normal computer screen can only refresh 60 FPS, so anything over that is overkill if that was the purpose.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: bigace on August 06, 2014, 09:32:01 pm
Quote from: gameus on July 27, 2014, 11:01:06 am
I understand you're trying to get your website a bit more attention, but don't force it onto people. If he wants to request support here because there are more members and it's a bit more active, then so be it.

Quote from: bigace on July 26, 2014, 05:04:36 pm
So... I guess bump once again? :???:


I just tested this in XP Ace. The code is:

website = [
 'http://forum.chaos-project.com/'
]
 Thread.new { system("start #{website[0]}") }


And here's a GIF showing it.

Large GIF: ShowHide
(http://puu.sh/atd1w/d8a55d772f.gif)


If you're using RPG Maker XP 1.05, it likes to overwrite the RGSS104E.dll in your project folder every time you playtest it through the editor.


Thanks for the reply, but that still doesn't work either the game just closes or it gives me an error telling me that 'system' is an undefined method. I also am using RGSS102E not 104 I don't get that issue.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: G_G on August 06, 2014, 11:08:25 pm
Are you using RGSS301 or RGSS300? The RGSS104E is just RGSS301 renamed.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on August 07, 2014, 01:31:29 am
Ah. Well it seemed that the map scrolling was even cleaner at 120 but maybe I was just imagining that. But yeah, I don't know why I didn't just think of a conditional statement, that's funny. That should work I'm sure.  :facepalm:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on August 07, 2014, 09:39:18 pm
Update to the ongoing project.. It now works with RMX-OS
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on August 09, 2014, 03:48:26 pm
Jesus :^_^':
I guess I owe you some for hijacking this project. Haven't read through all the posts on your new site but I'll certainly catch up tomorrow.

Quote from: PhoenixFire on June 02, 2014, 06:20:56 pmThere's your answer... The site's gone, no backup, nadda.
Objection!!
(http://i.imgur.com/FdxyGd0.png)

Tell me what to do with dat stuff. Repost to new or restore the old site?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spaceman McConaughey on August 09, 2014, 04:16:48 pm
Please restore the old site.

It was nicer and more intuitive than the new one.
And never forget: it's your project, so you should be the one that continues hosting the official site now that you're able to again.

Honestly, I'm not a fan of "project hijacking".
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on August 09, 2014, 05:02:06 pm
Just PM'd Phoenix, but my original plan was to have a dead simple tracker serving as central index of specific issues while keeping discussions on this site (maybe open up a sub-forum). Imho no need for another badly(?) frequented forum, but now that it's already there... shrug.

Debian installation is running, I should manage to piece it all together this evening.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Terv on August 10, 2014, 03:31:14 pm
Once again, a heads-up for all those tormented by 1.05: RPGXPU by Cremno (http://aluxes-loves-eric.tk/341/rpgxp-1-05-overwrites-rgss3-dll-when-saving?show=345#a345) (fixes Show Text line bug and small Script command window as well).

Regarding the tracker: up n running, posting/editing not working yet Akismet fixed. Gonna check the new site for updates now.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ArcaneAlchemy on August 10, 2014, 04:08:51 pm
Wow! Good to see that you're back in action.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 10, 2014, 07:30:13 pm
welcome home, glad that you're alive, terv :hi:
I wonder where you have gone for the past month?

btw, for updates :

Load RTP Script (http://littledrago.blogspot.com/2014/08/rgss23-load-rtp-file.html) (now RTP.dll is not needed)
Drago - Custom Resolution (http://littledrago.blogspot.com/2014/07/rgss-drago-custom-resolution-ii.html) (another Tilemap Rewrite)
Windowskin Converter fix (http://pastebin.com/0ZtXjRq1) (issue: Link (http://forum.chaos-project.com/index.php/topic,14219.0.html))

Print: ShowHide
#==============================================================================
# ** Kernel
#------------------------------------------------------------------------------
#  A module defining the methods that can be referred to by all classes.
#  Object classes are included in this module
#==============================================================================

module Kernel
  if RUBY_VERSION == '1.9.2'
    alias_method :last_p,        :p
    alias_method :last_print,    :print
    alias_method :last_msgbox,   :msgbox
    alias_method :last_msgbox_p, :msgbox_p
    define_method(:p)       {|*args| last_msgbox_p(*args)}
    define_method(:print)   {|*args| last_msgbox(*args)}
    define_method(:msgbox)  {|*args| last_print(*args)}
    define_method(:msgbox_p){|*args| last_p(*args)}
  end
end
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Cremno on August 10, 2014, 09:56:00 pm
Quote from: Terv on August 10, 2014, 03:31:14 pm
Once again, a heads-up for all those tormented by 1.05: RPGXPU by Cremno (http://aluxes-loves-eric.tk/341/rpgxp-1-05-overwrites-rgss3-dll-when-saving?show=345#a345)
Please note that it doesn't work with the Steam version. Yes, I didn't end the previous sentence with "yet".

Quote from: LiTTleDRAgo on August 10, 2014, 07:30:13 pmLoad RTP Script (http://littledrago.blogspot.com/2014/08/rgss23-load-rtp-file.html) (now RTP.dll is not needed)
It's great that you're using the "Unicode" functions (well, only in 2 of 3 cases). Not many people do that! But I have to tell you that I'm thinking about writing my own version of it.

By the way, did you know that the RGSS supports up to 9 RTP?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: MetalZelda on August 24, 2014, 11:38:44 am
Both of the 2 links are dead ... ;(
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 24, 2014, 02:28:08 pm
XP Ace Upgrade Kit (en).zip (http://dl.dropboxusercontent.com/u/74796308/RMXP/XP%20Ace%20Upgrade%20Kit%20(en).zip)

XP Ace Project.rar (http://dl.dropboxusercontent.com/u/74796308/RMXP/XP%20Ace%20Project.rar)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: MetalZelda on August 24, 2014, 04:18:42 pm
Quote from: LiTTleDRAgo on August 24, 2014, 02:28:08 pm
XP Ace Upgrade Kit (en).zip (http://dl.dropboxusercontent.com/u/74796308/RMXP/XP%20Ace%20Upgrade%20Kit%20(en).zip)

XP Ace Project.rar (http://dl.dropboxusercontent.com/u/74796308/RMXP/XP%20Ace%20Project.rar)


Yay thanks :D
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on August 24, 2014, 09:44:54 pm
Quote from: MetalZelda on August 24, 2014, 11:38:44 am
Both of the 2 links are dead ... ;(




*double-checks*

They both seem to work just fine...

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Spaceman McConaughey on August 24, 2014, 10:01:01 pm
Just a heads up, Metal:
I am pretty sure you're using Project Zelda Engine, and last I tried, XPAce doesn't work with it. :(
(or maybe I did something wrong, lol, so definitely try)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on August 24, 2014, 11:37:16 pm
nope, not supported yet.

I honestly didn't know that the project zelda engine was still going on. I can see about looking into the zelda engine working with ace, at least sometime down the road.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: MetalZelda on August 25, 2014, 10:56:50 am
Quote from: Sgt. Tuggernuts on August 24, 2014, 10:01:01 pm
Just a heads up, Metal:
I am pretty sure you're using Project Zelda Engine, and last I tried, XPAce doesn't work with it. :(
(or maybe I did something wrong, lol, so definitely try)


Maybe XAS or the fact that all the scripts are located in a folder insteal of a .rxdata file ^^
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on August 25, 2014, 11:03:51 am
Why would they even do that lol
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on August 26, 2014, 09:21:24 am
Quote from: Zexion on August 25, 2014, 11:03:51 am
Why would they even do that lol


Probably so they can write code without being stuck with RMXP's crappy script editor.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: syldocaine on November 06, 2014, 02:57:18 am
Is it normal,that bigger maps are loading until death?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 06, 2014, 03:01:22 am
That's probably because of the Tilemap rewrite you are using draws the entire map before displaying it. I'd suggest using either whiteflute's or my XP Ace Tilemap for your needs.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: syldocaine on November 06, 2014, 03:07:14 am
Ok i will give it a try.
I just tested the demo from littledrago and made a 100x100 map.

Edit:Ok with your script,it works,now there are only a few bugs.

Fogs don't work and in the battle screen the battler sprites overlay the HP/SP values
(http://s14.directupload.net/images/141106/ee8haqvx.png) (http://www.directupload.net)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on November 06, 2014, 04:37:14 am
The battle system bug isn't related to the custom resolution. It's just a matter of z priority. For some reason, the ace conversion thing requires you to be overly specific about the z layers of things in a window.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 06, 2014, 05:21:02 am
I'm not sure about the fog thing. I've tested it and they do work, even on higher resolutions. Are you sure it isn't a script conflict?
And same thing as Zexion said--that battle system z-layer issue happens regardless of whatever Tilemap you use.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: syldocaine on November 06, 2014, 06:34:55 am
I'm using a clean project without any custom scripts.Only the ones for the VX Ace Engine.
The fogs and panoramas only appear when I change the resolution from 640x480 to something higher.(Even 641x480 is enough).

Maybe i did something wrong.

I've uploaded my test project,so you can look into it, if you want.

http://www.file-upload.net/download-9802429/XPAce.rar.html
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 06, 2014, 01:30:11 pm
Well, the project you sent me seems to just be the Ace conversion kit rather than your actual project. Regardless, I deleted King's Tilemap, added XPA Tilemap in its place, changed the resolution in its configuration to [640,480], threw in the DLL of course, and made an event that turned on the fog. Worked perfectly fine.

Also, I don't think this is the most recent version of the kit as I don't see the Window Padding and the fix for custom fonts.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: syldocaine on November 06, 2014, 05:29:35 pm
Hmm I just downloaded some of the demos from this topic to test it little bit.
I think i got an older version.

Whatever, now it works fine for me aswell.

Thx alot.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on November 18, 2014, 10:27:20 am
Added the new tilemap rewrite from KK20 into the download package. If one of the delightful mods could update the link in the OP, the download link is: http://rmxpace.com/rmxpace/XPAce.zip
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Wraith89 on November 18, 2014, 12:17:36 pm
I have been meaning to ask this, but PhoenixFire, do you happen to have a list of credits for the resources in your demo? I can trace some back to Mazeran (http://lud.sakura.ne.jp/) or Naramura and default Ace resources for your battlers, for example, while those icons I either see in almost any RPG Maker communities but I see some occasional actual game ones such as Maplestory and such, but I am unsure where your animations come from, and I have actually been using some of those animation sprites. I would be quite grateful if I knew who to properly attribute each resources to.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on November 18, 2014, 09:16:45 pm
Brings up a good point, you should make a proper credit list for resources other than scripts :P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 18, 2014, 09:28:15 pm
I put the link on the OP, but I'm getting a webpage not available.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Wraith89 on November 18, 2014, 09:39:30 pm
I downloaded it before, so I can upload if you want, but I need a good sharing site for this. I am uncertain what is good these days.

EDIT: The link is working for me. I don't think it is necessary.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 19, 2014, 12:58:50 pm
Still can't access the page. You don't have to upload it since Phoenix should be able to address this pretty soon.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on November 20, 2014, 06:30:32 pm
I checked both the Stand-alone conversion kit, and the latest build of XPAce (the zip file) and both started the download right away.. You may have hit the server at one of the moments it's been down (we've been doing alot of work on all the sites on my server and overloading the resources)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 20, 2014, 06:36:29 pm
Yeah, all I get is this:
(http://puu.sh/cZ0M9/c1fe5435db.png)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on November 20, 2014, 06:41:07 pm
Have you tried clear cache and hard reload? I don't know why I would be able to download it from the office and Wraith could get it, but you aren't reaching it... Try going directly to the main site as well? See if you can ping it, send a traceroute, etc.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on November 20, 2014, 07:08:55 pm
Yeah clear your cache noob, it works for me too.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on November 20, 2014, 07:17:38 pm
Cleared cache, flushed DNS, reloaded, tried using another computer...

Still the same picture I posted.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on November 20, 2014, 09:17:09 pm
Yeah, it's down now for me too, but that's because the entire server is offline. Which kinda sucks because that means it knocked 4 sites offline..
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on November 20, 2014, 11:06:22 pm
Weird, I actually tried downloading it when kk20 posted his last comment, and it still worked o.o
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on January 09, 2015, 09:22:24 am
Re-Uploaded file and tested, so it's currently there. It also appears that aluxes-loves-erik.tk is yet again dead and gone, so, I guess for the time being, use rmxpace.com for issues and such. The site's kind-of dead at the moment, so, I need to do some housekeeping and such on it, but, it'll be up and running again shortly I think.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on January 11, 2015, 10:59:29 pm
Zexion made me aware that the little launcher I made was not always successful for him, so I made a new variation of it. It uses a different way of accomplishing the same end result. I don't know which way most will prefer, as this variation requires renaming the existing Game.exe and Game.ini, but I have tested it every-which way I know how, and it seems to work consistently.

Step 1
Rename both "Game.exe" and "Game.ini" to anything other than "Game", but their names must be the same with the exception of the file extension. Example: "My Awesome Game.exe" and "My Awesome Game.ini"

Step 2
Download (https://dl.dropboxusercontent.com/u/20787370/XP%20Ace%20Launcher/Game.exe) the launcher and place it within the game directory.

Step 3
Run the game using the launcher

This will allow you to run the game normally by either using the launcher, or playtesting via the editor (you should not have renamed "Game.rxproj"). The editor searches for Game.exe, so this method of doing requires the launcher to have the name Game.exe, but it does seem to work better. Arguments passed to the launcher are passed to the default Game.exe, so you will still have DEBUG set when running from the editor.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on January 11, 2015, 11:11:26 pm
Seems to work a lot better this way, however I notice that it requires the 301 dll in the main folder and doesn't consider the path for it from the .ini
Reason I mention this is because I made a 'system' folder to hold all the dlls for my project and just changed their path's in all the scripts including the .ini but when I launch it asks for the dll in the main folder
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on January 11, 2015, 11:40:56 pm
I agree that it needs some configuration.
I was thinking on how best handle that, I wanted to avoid the need to create a another .ini or .xml file that needed to be within the game directory, which would be required for allowing user configurations.

For your exact scenario, it would be possible to do a recursive search looking for the appropriate library without another config file. This was just kind of a quick test, so I could do whatever with it from here.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on January 12, 2015, 02:12:30 am
Is there a reason or limitation against reading the .ini file? To get the directory/name of the dll?
The .ini should always look something like this:
Library=RGSS102E.dll
Scripts=Data\Scripts.rxdata
Title=Untitled
RTP1=
RTP2=
RTP3=

So you can get the name of the dll / path from there.
I don't think the .ini files will ever be any different, and you could just add an exception for that case.
Edit:
Also, I've been using it for a while, and it seems to be working for good now :P
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: ForeverZer0 on January 12, 2015, 03:00:21 am
The reason is the very one that causes the need for the launcher in the first place: if run from the editor, the .ini file will be changed. Basically all the launcher does is write the library name to the .ini file and then run the standard Game.exe application.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on January 12, 2015, 04:02:43 am
Well you could also just release the source code, so anyone who needs to modify the path can do so on their own :P
Because I'm sure only ocd people like me will actually change it.

Edit :
You could just make an extra .xml or .ini and store it in the data folder (you could even make a .rxdata if you really wanted lol)
Like, create one only if it doesn't exist, and then read the line from there.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on January 27, 2015, 11:50:26 am
For those interested, the site is now back up, on it's own hosting, with a better provider. Old links probably won't work though, as I'm using a new CMS and completely different URL structure; however, for legacy purposes, I kept the main XPAce.zip download in the same location, since it's linked to in about 1.5 trillion places.

Additionally, I'll be finishing up some work on it over the next few days; and I'll be putting in a new release of it: Google+ Event Page (https://plus.google.com/u/0/b/117467294087749629673/events/c9sgemdqh0fjtgjtesst06dq6e4)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on January 27, 2015, 03:18:51 pm
Well I somehow found Terv's help tracker thingie: http://crimminali.com/
It got ran over by advertising bots though :P

Should probably consult the posts there before we lose it again.

Glad I can finally access the website again :D
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on January 27, 2015, 03:50:33 pm
I agree, though, it'll take a bit to sift through all the spam haha. I'll get a move-on with the tracker and such as soon as I can.

Edit to the entire project: http://rmxpace.com/rmxp-ace-version-1-5-released/
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on February 03, 2015, 01:19:36 am
The new site is much better than the old one pheonix :o
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on February 03, 2015, 07:34:29 am
Quote from: Zexion on February 03, 2015, 01:19:36 am
The new site is much better than the old one pheonix :o


Thank you! :)

It's also alot more stable. I took that site and transferred it to GoDaddy hosting, and I love it so much more than hosting24 (they can go die in a bottomless pit filled with lava and nightmares for all I care). Sooooo.... I'll be needing my staff back :looks at you and KK20:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Nibel on February 03, 2015, 08:08:34 am
Hey Phoenix,

downloaded your file to see what it is capable of, and you seem to have overwritten the Game.ini. I fixed that myself but there is still some graphics missing (Characters/184-Light01). You should fix that :)

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on February 03, 2015, 02:57:26 pm
Ah, I see. Simply import from the RTP into the game resources, and it should be fixed. I'll go ahead and fix that. Note that you can also report these issues directly on the RMXPAce site as well!
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 03, 2015, 03:23:49 pm
Quote from: PhoenixFire on February 03, 2015, 07:34:29 am
I'll be needing my staff back :looks at you and KK20:

I'll be willing to help out with script troubleshooting like always.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Heretic86 on April 03, 2015, 07:09:21 am
If you guys are still working on this, got a few minor bugs:

- No Panorama at all
- Fogs / Clouds dont seem to work
- Glitchiness when an Event is under a Priority 1 Tile and Screen is scrolling

I actually got a good portion of my "Collection" working on Ace, including the new stuff I was working on (and have been slacking on also)...  A few minor things, changed Ryex's Dynamic Sounds from $game_map.id to $game_map.map_id on line 664, MMW changed color.type = Color to color.is_a?(Color), Transitions Module: had to change all "when 1:" statements to remove the following : character, XRXS Battle System changed the calls to "draw_line (args)" to not have spaces between method and parenthesis, and thats pretty much it!  Windowskins are messed up, but havent tried to fix them yet. 

Definitely bettar performance.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 03, 2015, 03:43:57 pm
Could have sworn anything using the Plane class worked. I'm pretty sure I tested those under my Tilemap.
I'll take a look at the priority 1 thing.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Heretic86 on April 03, 2015, 06:16:46 pm
Quote from: KK20 on April 03, 2015, 03:43:57 pm
Could have sworn anything using the Plane class worked. I'm pretty sure I tested those under my Tilemap.
I'll take a look at the priority 1 thing.


I just did a bit more testing on Priority 1 glitch, it does affect other Priorities depending on the height of the Sprite.  Looks like it happens when the difference has a event real value at least < 128 to the priority tile, so guessing .ceil was used?  Standard Z fighting bs.

---

Another interesting thing to note was instead of editing game.ini to use 301 libraries, change the name of the file name of the dll itself to either RGSS102E.dll ro RGSS104E.dll to allow simply using the "play" button from the XP editor to fire up the Ace RGSS dll.  Should have mentioned that in the previous post.  Local dll files will be used, regardless of file names, over dll files installed to other locations. 

Basically, rename the .dll file itself instead of editing the .ini file.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 04, 2015, 03:31:44 pm
In my XPAce test project, fogs and panoramas work fine. As for the priority 1, an event standing still while the screen moves doesn't seem to do anything strange. Are you sure these problems arose from the default XPAce package or did you throw in your scripts while playing with it?

And yeah, I've known about the whole "renaming the DLL file" bit. I don't get why that isn't suggested in the readme when it's been mentioned plenty of times before in the past.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Heretic86 on April 04, 2015, 06:32:35 pm
The dll trick was mostly for other people who ever came across that post.

No other scripts, but on occasion, I do get weird "caching" of a script with F0's Auto Font Loader.  F0's script, after I restart my computer, I have to make an alteration of some sort to the auto font loader script to get the fonts to load with the Win32API - AddFontResource.  Seems more like a system issue on me and I have no clue on that, maybe interference from other programs that run in Ruby?  I've googled for ruby caching and came up with squat.  I do have a resident memory program that is built in Ruby, which is the only thing I can think of.

To create the bugs I ran into, the only changes I made were adding a 2nd map and transferred to it.  I did have another existing project that I applied XPAce to, if it is at all related to some sort of "caching" problem.  Perhaps video card related, or video driver related?  Drivers are up to date and that doesnt make much sense either tho.

/stumped
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on April 05, 2015, 05:46:07 am
btw you don't need f0's auto font loader if you're using this. Just place the fonts in the font folder
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Heretic86 on April 05, 2015, 07:30:52 am
Quote from: Zexion on April 05, 2015, 05:46:07 am
btw you don't need f0's auto font loader if you're using this. Just place the fonts in the font folder


Yeah, I disabled it.  I know VX+ allows for not installing system fonts.  F0's auto font loader is only used with XP in XP (102e.dll or 104e.dll, not ace tho)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Loveless on April 05, 2015, 11:30:24 pm
Quote from: Heretic86 on April 03, 2015, 07:09:21 am
I actually got a good portion of my "Collection" working on Ace...

Definitely better performance.

If you don't mind my asking, have you managed to get the actual Collection demo working? If so, I'd be interested in hearing about  difference in lag when XPAce takes on that stress test map with all of the sheep as well as anything else you can share in regards to how it effects your Super Event Sensor. I've taken quite an interest in it and how it, or parts of it at least, could be applied in regards to an ABS and the speed difference XPAce offers might be something to consider in what I'm working on as well assuming it is as good as it seems.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 06, 2015, 12:06:17 am
My guess is it wouldn't be all that great. While RGSS3 is faster than RGSS, it's not enough to speed up bad coding. I'm sure you're making a reference to Effectus, which just rewrites the base VXAce scripts for maximum efficiency. We would basically need an XP equivalent for something of that level.

I like XPAce just because the graphics processing power is much better.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Heretic86 on April 06, 2015, 04:56:15 am
Quote from: Loveless on April 05, 2015, 11:30:24 pm
Quote from: Heretic86 on April 03, 2015, 07:09:21 am
I actually got a good portion of my "Collection" working on Ace...

Definitely better performance.

If you don't mind my asking, have you managed to get the actual Collection demo working? If so, I'd be interested in hearing about  difference in lag when XPAce takes on that stress test map with all of the sheep as well as anything else you can share in regards to how it effects your Super Event Sensor. I've taken quite an interest in it and how it, or parts of it at least, could be applied in regards to an ABS and the speed difference XPAce offers might be something to consider in what I'm working on as well assuming it is as good as it seems.


Im fairly certain the Sensor script will work just fine in XPAce.  In post #222, those were all the changes I needed to make to get the last version of the Collection working.  I do have another version in the works.  But, due to some other bugs, I Havent been able to make it to the stress test sheep map.  New version of the Collection has lots more features and is heavily optimized, but does have some issues with too many events on screen causing lag.

If youre getting errors loading those scripts in XPAce, post em and I can take a look.  There are a few minor language differences that caused some bugs, spaces, when statements with following colons, but nothing very serious or difficult to fix.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Loveless on April 08, 2015, 12:50:12 pm
Quote from: KK20 on April 06, 2015, 12:06:17 am
My guess is it wouldn't be all that great. While RGSS3 is faster than RGSS, it's not enough to speed up bad coding. I'm sure you're making a reference to Effectus, which just rewrites the base VXAce scripts for maximum efficiency. We would basically need an XP equivalent for something of that level.

I like XPAce just because the graphics processing power is much better.

I didn't know what Effectus was until you mentioned as I've never actually used VXA. I was referring to the stress test map in Heretic's Collection demo that I was looking over that day.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Heretic86 on April 09, 2015, 09:43:20 am
Quote from: KK20 on April 06, 2015, 12:06:17 am
My guess is it wouldn't be all that great. While RGSS3 is faster than RGSS, it's not enough to speed up bad coding.

...


Hey!  I resemble that remark!
(er, wait, that isn't really a comeback, is it?)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on April 20, 2015, 08:15:00 pm
Just an update to this whole thing. Looking for some feedback in the form of.. well.. a form..


http://rmxpace.com/rmxp-ace-questionnaire/
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 20, 2015, 09:07:10 pm
Interesting to see you getting back onto the website. I thought it would become abandoned.

Also the ticketing system confuses me. The website doesn't display anything on my end but if I go into my admin/profile and view the "Support Plus", I can see the ticket R5GAMER sent.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Otávio Rapôso on April 28, 2015, 05:14:36 pm
I'm trying to use RMXP Ace and I'm getting a lot of problems with the "superclass mismatch" thing (that came with Ruby 1.9.x). Blizzard made a topic elsewhere (http://forum.chaos-project.com/index.php?topic=9665.new) about this issue, but he didn't gave a solution that could be useful in this case. What should I do?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 29, 2015, 01:27:30 am
The solution is actually the last post in that topic.
Object.send(:remove_const, :CLASS_NAME_THAT_ERRORS)

So if the error points to Game_Player as a superclass mismatch, replace CLASS_NAME_THAT_ERRORS with Game_Player. Then, place that line of code immediately above the class declaration the offending error points to.

If you are using BlizzABS, it will tell you that at this line:
class Game_Player < Map_Actor

is a superclass mismatch.

So just do this:

Object.send(:remove_const, :Game_Player)
class Game_Player < Map_Actor



EDIT:
Wow, I was just messing around and totally didn't think this would work.
Spoiler: ShowHide

Put this code at the top of your scripts:

class A
end
class B < A
end
class C < A
end
class B < C
end

If you run the game, clearly you will get an error message indicating superclass mismatch for B.
Now insert the following script below before the one above. Keep the two scripts separately, like so:
(http://puu.sh/huM8D/73cc38cac5.png)

begin
 for i in 1..1 # Yeah, just ignore this for now :P
   code = $RGSS_SCRIPTS[i][3]
   classes = code.scan(/class (.+?) < (.+?)/)
   superclassCheck = {}
   classes.each{|child, parent|
     if superclassCheck[child].nil?
       superclassCheck[child] = parent
     elsif superclassCheck[child] != parent
       p "Superclass mismatch! #{child} < #{parent}"
       $RGSS_SCRIPTS[i][3].gsub!(/class #{child} < #{parent}/, "Object.send(:remove_const, :#{child})\r\n" + "class #{child} < #{parent}")
     end
   }
   p $RGSS_SCRIPTS[i][3]
 end
end

And if you run the game this time, it won't throw the error.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on April 29, 2015, 01:38:01 am
You hoe, getting all fancy n shet
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 29, 2015, 01:39:54 am
I appreciate the comment. Now find another form of communication so that I can actually have conversations with you >:(
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Otávio Rapôso on April 29, 2015, 10:23:51 am
Quote from: KK20 on April 29, 2015, 01:27:30 am
Wow, I was just messing around and totally didn't think this would work.
Spoiler: ShowHide

Put this code at the top of your scripts:

class A
end
class B < A
end
class C < A
end
class B < C
end

If you run the game, clearly you will get an error message indicating superclass mismatch for B.
Now insert the following script below before the one above. Keep the two scripts separately, like so:
(http://puu.sh/huM8D/73cc38cac5.png)

begin
 for i in 1..1 # Yeah, just ignore this for now :P
   code = $RGSS_SCRIPTS[i][3]
   classes = code.scan(/class (.+?) < (.+?)/)
   superclassCheck = {}
   classes.each{|child, parent|
     if superclassCheck[child].nil?
       superclassCheck[child] = parent
     elsif superclassCheck[child] != parent
       p "Superclass mismatch! #{child} < #{parent}"
       $RGSS_SCRIPTS[i][3].gsub!(/class #{child} < #{parent}/, "Object.send(:remove_const, :#{child})\r\n" + "class #{child} < #{parent}")
     end
   }
   p $RGSS_SCRIPTS[i][3]
 end
end

And if you run the game this time, it won't throw the error.



I did what you said and I added the Superclass fix above everything else.
Spoiler: ShowHide
(http://s13.postimg.org/uuxbnf5tj/Untitled.png)

Then I commented every Object.send thing.
Spoiler: ShowHide
(http://s28.postimg.org/b9kqxqib1/Untitled3.png)

And I still get an error.
(http://s22.postimg.org/4rsc1o0pt/Untitled2.png)

EDIT: I actually thought that the problem was in the "for i in 1..1" thing, so I replaced it by "for i in 1..119" (119 is the number of scripts I'm using) and I still get an error.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on April 29, 2015, 01:39:30 pm
No, that discovery wasn't a fix all for everything. It is only designed to work with the test case script I provided first, the one with the class A, B, and C.
This is, in no ways, complete nor should be used in your projects. It was just fun experimentation.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Otávio Rapôso on April 29, 2015, 03:03:44 pm
Oh, ok. It would be awesome if it worked in general.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Acquiescence on May 25, 2015, 06:12:27 am
Hi, I'm new... just wanted to ask: Is XP Ace compatible with the Pokemon Essentials script? I want to use that script, but I find the XP engine a bit suboptimal.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on May 25, 2015, 06:17:41 pm
Out of the box, my guess would be no. I do know that it uses RGSS2 (RMVX's Ruby library) and Poccil's Tilemap rewrite, which, from my experience, didn't work very well on large maps in RGSS3.

I can't remember if a past user on here named Aegisrox was able to use RGSS3 in his game before he shut it down.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on May 27, 2015, 02:51:25 am
We were working on it, with little bits of progress.

Also, having become single recently, there will probably be a new version of this out in the near future. KK20, how far along are you with your tilemap 2.0?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on May 27, 2015, 01:45:05 pm
Uh...still haven't made any real progress on it yet. Mostly have just been relearning my code and experimenting things. I'm also looking into what LiTTleDRAgo did exactly to an edited version and incorporate most of the changes over.

Quote from: PhoenixFire on May 27, 2015, 02:51:25 am
having become single recently

:uhm:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Zexion on June 23, 2015, 08:38:33 am
I feel the need to post this after what just finished happening. I'm not sure how legit this is or isn't, but I would HIGHLY suggest NOT visiting the site
http://aluxes-loves-eric.tk/

Unless someone is ballsy enough to try this on another computer that has never been used for any financial purposes or anything important. I'm not sure if the site was hijacked, or if my computer caught a virus from other websites that just triggered when visiting that one. However, I got a very scary pop up that told me to call a number because my pc has 2 trojans. I immediately closed the page out, and the popup was back, luckily chrome's "stop this tab from creating more dialogues" was able to stop it from continually poping up. I was ballsy enough to go at it again and took down the phone number which i then googled.

It turns out this was a form of ransomware. I'm going to unplug and run a few scans, and hopefully it didn't get a chance to do anything in the mean time. Just to be safe, though, I thought i'd post this. It was especially scary because I remembered reading about how hackers were going to send out this ransomware using files that everyone accesses on a daily basis, including rpgmaker files. I think the real action comes from the time you spend on the webpage and how quickly the hacker is able to attach something to your computer, so since i wasn't on for long I should be fine. Not taking chances tho y'all.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: mantra0000 on July 18, 2015, 09:43:00 pm
Im having some small problems with this script  :^_^':

first of all, my panoramas just disappearded, I already set a panorama at the tileset database but all i can see in game is a dark screen, besides, how do I turn the keyboard actions back to regular XP? I mean, you usually talk to NPCs using the key "C" in rpg maker XP, but in axe you are using "Z", seems like small stuff but my action battle system is all messed up because of this issue  :^_^':

the fogs seems gone too, what could that be? Is there a easy way to slow the typing speed back to XP?


That pretty much all for now, i'm loving the script, very smooth and lag free  :haha:
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 18, 2015, 09:52:51 pm
I don't get why people have reported errors with Panoramas and Fogs. It works for me in a clean project.
Spoiler: ShowHide
(http://puu.sh/j4mJK/4405f360ad.png)


You can set controls by pressing F1 when running the game.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: mantra0000 on July 18, 2015, 10:20:36 pm
Quote from: KK20 on July 18, 2015, 09:52:51 pm
I don't get why people have reported errors with Panoramas and Fogs. It works for me in a clean project.
Spoiler: ShowHide
(http://puu.sh/j4mJK/4405f360ad.png)


You can set controls by pressing F1 when running the game.

Spoiler: ShowHide

(http://s18.postimg.org/h9srj4jco/hums.jpg)


These are all my scripts, but as you can see: the panorama just fade away lol

A*PathFinding until Methods is an advanced catterpilar system, "mostrar dano" its just a script that pops numbers in the screen when the hero takes damage, "janela M and scene M" are just to display a picture on the screen from the menu.


About the F1, what I meant was like, when you set "variable equals 12" as pressing key you say "press X and that will happen", what I want is change thoose numbers back to XP, and not ACE so the player don't have to rechange the controls everytime he opens the game


But thanks for the help anyway, my game is uber super fast now :D
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 18, 2015, 10:38:41 pm
Are you using WhiteFlute's tilemap rewrite or mine?

The controls stay the same--the player doesn't have to press F1 every time the game is loaded. As for what you said about the eventing, nothing was even touched in those regards.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: mantra0000 on July 18, 2015, 10:44:19 pm
Quote from: KK20 on July 18, 2015, 10:38:41 pm
Are you using WhiteFlute's tilemap rewrite or mine?

The controls stay the same--the player doesn't have to press F1 every time the game is loaded. As for what you said about the eventing, nothing was even touched in those regards.


I'm using the one that was in the "XP Ace Upgrade Kit" from the first post  :^_^':
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 18, 2015, 10:49:38 pm
That explains it. That is a super outdated link. The website the current release was held on is down (again). If I can find another, or if Phoenix comes back, I'll fix the first post.

Found it. Placed in my dropbox:
https://dl.dropboxusercontent.com/u/58874459/XPAceV1.5.zip
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: mantra0000 on July 18, 2015, 10:56:39 pm
Quote from: KK20 on July 18, 2015, 10:49:38 pm
That explains it. That is a super outdated link. The website the current release was held on is down (again). If I can find another, or if Phoenix comes back, I'll fix the first post.

Found it. Placed in my dropbox:
https://dl.dropboxusercontent.com/u/58874459/XPAceV1.5.zip


Oh, thank you very much, im going to download and try it  :haha: :haha:

I love you, thanks for the time  :^_^':
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: mantra0000 on July 19, 2015, 04:43:26 am
Spoiler: ShowHide
It worked great, now I have panoramas and fogs  :haha:

The only issue I found was when I was running my personal action battle system and eventually the script crashes and asks to search this line:


(http://s18.postimg.org/kb9hmdwc9/Untitled.png)

My ABS is 100% made with event, so it can't be a script incompatible problem.

I'm sorry to bother you that much but could you just explain to me what this line does? so I can maybe have a solution to why my game is bugging here


EDIT: I found the error, and I think is good for sharing: usually when I wanted to for example teleport from a florest with fog to a house with no fog I would just set a fog with "nothing" like this:

(http://s27.postimg.org/mtzesr7xf/323232.png)

But with this script, you can't, so the best way to do the same thing with no injuries is just set the opacity of the fog to 0  :^_^':
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on July 19, 2015, 02:03:59 pm
I swear, I keep putting fixes in one project and then forget about them in another project.

  def bitmap=(tile)
    return if @bitmap == tile
    @bitmap = tile
    return super(@bitmap) unless tile.is_a?(Bitmap)
    # Calculate the number of tiles it takes to span screen in both directions.
    xx = 1 + ($resolution.width.to_f  / tile.width ).ceil
    yy = 1 + ($resolution.height.to_f / tile.height).ceil
    # Create appropriately sized bitmap, then tile across it with source image.
    @plane && (@plane.disposed? || @plane.dispose)
    @plane = Bitmap.new(@bitmap.width * xx, @bitmap.height * yy)
    (0..xx).each {|x| (0..yy).each {|y|
      @plane.blt(x * @bitmap.width, y * @bitmap.height, @bitmap, @bitmap.rect)
    }}
    # Set the bitmap to the sprite through its super class (Sprite).
    super(@plane)
  end

The method should look like this.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on July 19, 2015, 04:48:17 pm
Quote from: KK20 on July 19, 2015, 02:03:59 pm
I swear, I keep putting fixes in one project and then forget about them in another project.


That used to happen to me as well. Then I started doing updates on all projects when I refactor something or fix something. And it still happens sometimes.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on July 28, 2015, 09:44:57 pm
Quote from: KK20 on July 18, 2015, 10:49:38 pm
or if Phoenix comes back


I was summoned? haha
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: syldocaine on February 16, 2016, 12:12:34 pm
It has been a while since the last time I tried to convert my game into XPA.
So I just took out my testing projects and updated XPA to the latest version. It runs alot better already but there are still plenty of scripts which cause the game to crash

I tried to figure them out as good as possible so here is the list:

-SDK
-Inventory (based on SDK)
-Continous Maps
-Caterpillar
-KElemRES XP
-Modified Advanced Weather Script
-Micko Skilltree (no crash but screen remains black)

So I just tested with the working scripts and the battler graphics are still overlaying the font in battle

Spoiler: ShowHide
(http://img5.fotos-hochladen.net/uploads/bughd3c5y8i2q.png)


Beside that it's really smooth.
Engine breaks down to ~45 FPS when overdoing the light effects of TimeKeepers lightscript but that's not an issue at all cause usually nobody would that much lights on a map.

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 16, 2016, 02:05:50 pm
Can you give me your Scripts.rxdata file so that I don't have to go hunting for all these scripts myself?

I should also mention that I'm going to be creating a new thread for XPA as well as updating it there. Any bug reports would be greatly appreciated.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 16, 2016, 02:35:55 pm
The font things is fixed in my XPA_Window, KK20. So it will resolve itself when you update XPA.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 18, 2016, 04:05:40 am
I think I just came up with a working solution to the superclass mismatch thingy that doesn't involve playtesting, add Object.send to script, playtest, Object.send, repeat until title screen. Currently a temporary fix, but I can make it physically change the scripts to permanently add the Object.send's in.

Gonna add it to the next release.

SDK faults on this a loooooooooooot...
Also its stupid rewrite of alias_method is now making the Window_Padding and Windowskin fix scripts bug out. Good thing we can remove those two now. But I can't guarantee the safety for any other scripts that utilize alias_method rather than just using alias.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on February 19, 2016, 12:47:47 pm
-pings post-


So, http://rmxpace.com is a thing again, though the file structure is probably going to be a bit different, so links probably won't work the way they used to anymore. As they get brought up I'll add URL redirects though, to point things to the right places. If anyone can help (I'm looking at you KK20) with tickets and such, I'll add a ticket system similar to what Terv had 'back in the day'. Also, I don't know who follows this thread or comes on the site anymore, but KK20, Blizzard, Terv, and GG; you're all welcome to help and be admins on this. Your input over the past (what, like 2?) years has been so awesome, it completely overshadows the minor updates, rewrites and additions I made.


All that being said, me and my wifey have just moved into our own place, and are still in the process of settling in, unpacking, etc. so my responses and time on CP might still be a little more limited and sporadic for a few more weeks or so, but, it seems I have mostly returned to CP, and specifically, to this project.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 19, 2016, 02:01:20 pm
Cool, I'll check it out. :)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 19, 2016, 10:12:22 pm
Don't know if you've been following along to the discussions, but I was going to upload another update. I'm still working out the kinks, finishing up a script, and commenting the code. After that was going to be tutorials, list of deprecated methods, manual, and--if I wanted to be really crazy--an editor.

Now that you're back, that leaves me with some more breathing room and a website. And of course I can still help out with error reports. I'm still not getting my programming-fix at work, which I guess is a good thing xP

Also pretty sure Terv is long gone now.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Sase on February 25, 2016, 07:46:48 pm
Am I imagining things or are the blacks much more black, and the contrast/colors more vibrant in general?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 25, 2016, 08:11:58 pm
No one has mentioned it before, so it's just you.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 28, 2016, 03:59:20 am
So over the past few weeks, I've been gathering up all the information I could find and updating the scripts to make the next release of XPA (version 2.0).

You can download it here: https://dl.dropboxusercontent.com/u/58874459/XPA_2.0.zip

New things include:
- Superclass mismatch fixer
- XPA Window, provided by Blizzard (removed the other Window-related scripts)
- Proper disposal of graphics, provided by Blizzard
- Couple bug fixes to XPA Tilemap (v0.12b)
- RTP loader founded and modified by LiTTleDRAgo
- System folder to store all your custom DLLs in (along with script to look for them in there)
- Actual fix to run in debug mode from the editor (without having to use G_G's method :P)
- Threw in F0's Console Output for good measure
- Unlimited Resolution script from Hime (basically no longer need to use a recompiled RGSS3 that breaks the EULA)
- More structure overall

Please provide me with any feedback before we make this official. Thank you~
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 28, 2016, 11:03:40 am
Oh sweet, it includes a fixed RGSS301.dll. I just noticed that switching to fullscreen doesn't stretch the rendering area over the entire screen in the RGSS300.dll. xD
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: orochii on February 28, 2016, 08:47:01 pm
I've updated my game to this right now. Only thing I had to do was adding ox = ox.round and oy = oy.round to the self.ox and self.oy in Tilemap because for some reason maps were tearing apart when I run diagonally.

So any problem I see that I can't solve a.k.a. doesn't seem to be caused by my bad programming, I'll be leaving it here.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 29, 2016, 08:38:03 pm
@Blizz: Technically it's not a fix since the modified RGSS300 is probably the reason for that behavior. Unless you're talking about the modified 301.

@orochii: I'm thinking of adding float support to my tilemap, so I'll update you with what I make. I noticed in your demo that walking diagonally shifted the ox and oy by floats while walking normally used ints. I couldn't figure out what script was causing it though since it takes too long to make a change and reload your game xP
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: orochii on February 29, 2016, 10:06:18 pm
Oh, yeah... Sorry about that, the demo has the old translation script. It's faster now thanks to your Localization script XD. I scripted a small parser in order to convert my old language files into INIs in order to make them usable by it.

I'm using a float just to make the diagonal slightly slower than the normal walking, it's meant to balance the walking speed so diagonal doesn't make the movement hypothetically faster (just because, cause it doesn't matter xD, also because Morrowind diagonal movement is faster! xD).

This is the line btw.
distance /= Math.sqrt(2) if (d_x != 0)&&(d_y != 0)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on March 01, 2016, 01:35:12 am
Quote from: KK20 on February 29, 2016, 08:38:03 pm
@Blizz: Technically it's not a fix since the modified RGSS300 is probably the reason for that behavior. Unless you're talking about the modified 301.


Yeah, I meant 301, meaning that Enterbrain fixed it in their DLL and released a new version. But I'm not using 301M, I'm using 301.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: LiTTleDRAgo on August 30, 2016, 05:24:05 am
I changed the syntax in unlimited resolution script so it won't throw syntax error if placed in xp project
not that it matters though..

Spoiler: ShowHide
=begin
#==============================================================================
Title: Unlimited Resolution
Date: Oct 24, 2013
Author: Hime
-------------------------------------------------------------------------------
Terms of Use
Free
-------------------------------------------------------------------------------
Description

This script modify Graphics.resize_screen to overcome the 640x480 limitation.
It also includes some modifications to module Graphics such as allowing the
default fade transition to cover the entire screen.

Now you can have arbitrarily large game resolutions.
-------------------------------------------------------------------------------
Credits

Unknown author for overcoming the 640x480 limitation
Lantier, from RMW forums for posting the snippet above
Esrever for handling the viewport
Jet, for the custom Graphics code
FenixFyre, for the Plane class fix
Kaelan, for several bug fixes

#==============================================================================
=end

RGSS3 = RUBY_VERSION == '1.9.2'

if RGSS3 && (SCREEN_RESOLUTION[0] > 640 || SCREEN_RESOLUTION[1] > 480)
module Graphics
 
  @@super_sprite = nil
 
  class << self
    unless method_defined?(:th_large_screen_resize_screen)
      alias :th_large_screen_resize_screen :resize_screen
    end
 
    def freeze(*args, &block)
      ensure_sprite
      @@super_sprite.bitmap = snap_to_bitmap
    end
   
    def transition(time = 10, filename = nil, vague = nil)
      if filename
        @@super_sprite.bitmap = Bitmap.new(filename)
      end
      @@super_sprite.opacity = 255
      incs = 255.0 / time
      time.times do |i|
        @@super_sprite.opacity = 255.0 - incs * i
        Graphics.wait(1)
      end
      @@super_sprite.bitmap.dispose if @@super_sprite.bitmap
      reform_sprite_bitmap
      Graphics.brightness = 255
    end
     
    def reform_sprite_bitmap
      ss = @@super_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
      @@super_sprite.bitmap.fill_rect(ss.rect, Color.new(0, 0, 0, 255))
    end
   
    def fadeout(frames)
      incs = 255.0 / frames
      frames.times do |i|
        Graphics.brightness = 255 - incs * i
        Graphics.wait(1)
      end
    end
   
    def fadein(frames)
      incs = 255.0 / frames
      frames.times do |i|
        Graphics.brightness = incs * i
        Graphics.wait(1)
      end
    end
 
    def brightness=(i)
      @@super_sprite.opacity = 255.0 - i
    end
   
    def brightness
      255 - @@super_sprite.opacity
    end
     
    unless method_defined?(:wait)
      def wait(frame = 1)
        frame.times {|i| update }
      end
    end
   
    def ensure_sprite
      if @@super_sprite.nil? || @@super_sprite.disposed?
        @@super_sprite   = Sprite.new
        @@super_sprite.z = (2 ** (0.size * 8 - 2) - 1)
        reform_sprite_bitmap
      end
    end
  end
  #----------------------------------------------------------------------------
  # Unknown Scripter. Copied from http://pastebin.com/sM2MNJZj
  #----------------------------------------------------------------------------
  def self.resize_screen(width, height)
    wt, ht = width.divmod(32), height.divmod(32)
    #wt.last + ht.last == 0 || fail('Incorrect width or height')
    wh = lambda {|w,h,off| [w + off, h + off].pack('l2').scan(/.{4}/) }
    #wh = -> w, h, off = 0 { [w + off, h + off].pack('l2').scan /.{4}/ }
    w, h     = wh.call(width, height, 0)
    ww, hh   = wh.call(width, height, 32)
    www, hhh = wh.call(wt.first.succ, ht.first.succ, 0)
    base = 0x10000000  # fixed?
    mod = lambda {|adr,val| (DL::CPtr.new(base + adr))[0, val.size] = val}
    #mod = -> adr, val { DL::CPtr.new(base + adr)[0, val.size] = val }
    mod.call(0x195F, "\x90"*5) && mod.call(0x19A4, h) && mod.call(0x19A9, w)
    mod.call(0x1A56, h)        && mod.call(0x1A5B, w) && mod.call(0x20F6, w)
    mod.call(0x20FF, w)        && mod.call(0x2106, h) && mod.call(0x210F, h)
    # speed up y?
    #mod.(0x1C5E3, h)
    #mod.(0x1C5E8, w)
    zero = [0].pack(?l)
    mod.call(0x1C5E3, zero) && mod.call(0x1C5E8, zero) &&  mod.call(0x1F477, h)
    mod.call(0x1F47C, w)    && mod.call(0x211FF, hh)   && mod.call(0x21204, ww)
    mod.call(0x21D7D,hhh[0])&& mod.call(0x21E01,www[0])
    mod.call(0x10DEA8, h)   && mod.call(0x10DEAD, w)   && mod.call(0x10DEDF, h)
    mod.call(0x10DEF0, w)   && mod.call(0x10DF14, h)   && mod.call(0x10DF18, w)
    mod.call(0x10DF48, h)   && mod.call(0x10DF4C, w)   && mod.call(0x10E6A7, w)
    mod.call(0x10E6C3, h)   && mod.call(0x10EEA9, w)   && mod.call(0x10EEB9, h)
    th_large_screen_resize_screen(width, height)
  end
end
end
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on August 30, 2016, 01:24:03 pm
Yeah, you're better off just removing that part of the code entirely, or putting a check if XPAce is being used.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on February 04, 2017, 12:39:01 pm
KK20, etc...   Are there any new scripts or fixes to add into this?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 04, 2017, 01:19:28 pm
V2 is the latest in terms of scripts. I'm planning on finishing v.3 of Tilemap today. Will also update the scripts file here with the new tilemap and fix a couple things.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on February 04, 2017, 09:39:01 pm
Okay, because, I have the site back up, and have scripts and such to work into it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 05, 2017, 12:37:14 am
Also want to clean up the first post and make a new topic. Since Terv isn't really supporting this anymore, just makes sense to do it that way.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 05, 2017, 04:19:32 am
How about I transfer the ownership of the first post to someone else?
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 05, 2017, 04:28:03 am
I guess that could work. Hit me up then
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 05, 2017, 04:47:26 am
'tis done.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: PhoenixFire on February 05, 2017, 02:13:00 pm
I would help editing, but it looks like this is a forum I'm not a mod in haha

Good idea though. Cleaning up the post will help future visitors. I plan to keep editinf and adding to the core scripts as well, so that'll be an ongoong project.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: JayRay on February 12, 2017, 09:42:11 am
so, and sorry if this is a topic that's been dead for a while... if the Editor is rewriting your .ini file with RGSS104E.dll... isn't it doing that from a default source? I'm not sure but I think I found one of those sources in

C:\Windows\SysWOW and again in C:/Program Files (x86)/Enterbrain

Now... I don't know if I really WANT to make the full jump to have all my RMXP projects use the new engine, but... here's my thought. Going in and renaming that RGSS301.dll to RGSS104E or RGSS102E in sysWOW or the Enterbrain Program Files directory,  and THEN create a BASIC implementation, just the scripts you need for this, the one map, and then adding the .rxdata you get from that to Enterbrain's data/system folders.

This way, you have exactly WHAT scripts you need at the onset, and when you click in the editor, and it goes and rewrites your RGSS301 with the one it has from the default source, it is rewriting with what YOU already changed.


I think this would be ideal for people who are ready to just make that big jump over to XPAce.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 12, 2017, 12:09:44 pm
Are you talking about when people make a new project in the editor that it already loads up a default XPA project? I mean, I guess you could if you were that big of a die-hard supporter. But XPA is still somewhat experimental. Telling users to potentially corrupt their data files when they just want to try it out...you raise more problems.

I don't see any reason to rename the DLL in registry. Or maybe I'm not understanding your point.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 12, 2017, 04:39:07 pm
I just took the RGSS301, renamed it to RGSS102E and put it in my project's folder. The exe uses a local DLL if there is one. Otherwise it tries various system directories. This seemed like the simplest and most straightforward solution for a project-by-project basis.

There is an alternative for a solution on a global scale though. You could put a copy of that DLL in the "System" folder in RMXP's installation folder. This is a project template and if you edit that template in any way, every new project will use that edited template when you select "New Project" in RMXP. You can even put together an initial setup with various scripts that you're sure to use for every project (e.g. Tons of Add-ons).
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: JayRay on February 16, 2017, 08:06:09 am
Blizzard, that's EXACTLY what I was going with. I mean, I can still keep the old DLL there as an OLD and an OLD setup with the basic scripts and such for later. but I definitely think I'm ready to jump to XPA globally. Haven't found any tilemap rewrite issues, panoramas and fog are working fine, pictures work well... No problems to report, I just get sick and tired of having to replace each time, so yeah, going to change it in the system directory instead.

Thanks for everything.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Blizzard on February 16, 2017, 08:18:57 am
Glad I could help. ^_^
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on February 26, 2017, 02:37:48 am
Updated the OP. When I get around to making a demo, I'll go back and change it up a bit.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Kise on March 02, 2017, 12:29:59 pm
RTH ABS is causing not loading tilesets on the map. The script itself is huge, so I would't be suprised if it was too difficult to fix. :roll:
http://www.gdunlimited.net/scripts/rpg-maker-xp/custom-battle-scripts/rth-abs-2-6 - you must add .zip format to open it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on March 02, 2017, 02:57:55 pm
It's not a compatibility issue with XPA Tilemap at least. Might have something to do with how z-ordering works in VXA.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Kise on March 03, 2017, 06:19:10 pm
Alright, so does that mean it won't be fixed in near future?

Sorry to bother you, but I've got one more issue, this time with Audio Module Rewrite - https://app.box.com/s/qyodwzlcgn3r0lpycldu. I fixed first error by removing one space, but now I get 'string contains null byte' line 992 -> 'if FileTest.exist?(filename + '.mp3' )' and I have no idea how to fix it.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on March 03, 2017, 06:39:04 pm
I'll take a look at these this weekend.

EDIT:
Could you try adding this to the same script I mentioned about Array#to_s?

class String
  alias delete_utf8 delete!
  def delete!(arg)
    if arg == "\0"
      self.encode!("UTF-16be", :invalid=>:replace, :replace=>"\uFFFD").encode!('UTF-8')
      delete_utf8(arg + "\uFFFD")
    else
      delete_utf8(arg)
    end
  end
end

Just curious what the results are.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Kise on March 04, 2017, 03:58:40 am
Nothing has changed from my point of view. I still get the same errors.
Ah, and the first one I didn't mentioned was caused by line super (64,24,512,56) and all I had to do to fix it was deleting space between.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on March 05, 2017, 04:10:51 am
I hope this is it.

#===============================================================================
# Ruby 1.8 Methods
# Author: N/A
# Version: 1.0
#-------------------------------------------------------------------------------
# [ Description ]
# Contains methods for existing classes that may have not made its transition
# over to Ruby 1.9 (RGSS3).
# This list is on-going as people report them.
#
# [ Instructions ]
# There is nothing to do here.
# Please keep this script in its current location.
#===============================================================================

# Object - p
def p(*args)
  msgbox_p(*args)
end

# Object - print
def print(*args)
  msgbox(*args)
end

# Array - nitems
unless Array.method_defined?(:nitems) 
  class Array   
    def nitems     
      count{|x| !x.nil?}   
    end
   
    def to_s
      self.join('')
    end
  end
end

class String
  alias delete_utf8 delete
  def delete(arg)
    s = self.encode("UTF-16be", :invalid=>:replace, :replace=>"\uFFFD").encode('UTF-8')
    s.delete_utf8(arg + "\uFFFD")
  end
 
  alias delete_self_utf8 delete!
  def delete!(arg)
    self.encode!("UTF-16be", :invalid=>:replace, :replace=>"\uFFFD").encode!('UTF-8')
    delete_self_utf8(arg + "\uFFFD")
  end

  alias get_char_19 []
  def [](*args)
    if args.size == 1 && args[0].is_a?(Fixnum)
      self.getbyte(args[0])
    else
      get_char_19(*args)
    end
  end
 
  def getchar(i)
    get_char_19(i)
  end
end


Regarding the ABS, I was able to load the first map just fine. You sure you imported the XPA scripts correctly?
Spoiler: ShowHide
(http://puu.sh/uuW0V/66ddcfd76c.png)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Kise on March 05, 2017, 06:43:50 am
Try out this RTH + HUD demo, map won't load after installing Ace scripts. I must've sent you diffrent version... Sorry.
http://www.box.net/shared/76syfcrg2zpv8rmym7g2
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on March 05, 2017, 04:09:04 pm
Still loaded.
Here's the script.rxdata I used. https://dl.dropboxusercontent.com/u/58874459/Scripts-Kise.rxdata
Would be better if you just gave me a demo with XPA already in it so that I can see the problem myself.
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Kise on March 05, 2017, 04:42:38 pm
Ahh... I thought that Tilemap and Load RTP scripts should always be above the rest. Thank you for taking the trouble to help me! I appreciate it :)
Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: KK20 on March 05, 2017, 05:27:53 pm
I see how that mistake could be made. I'll try to make that clear next time ;)
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Ethereal on March 24, 2017, 09:49:09 pm
hi
Sorry to bother you, but the link is broken  :(
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on March 25, 2017, 12:48:49 am
Thanks for reminding me. Dropbox changed how the Public folder works so all the shared file links don't work anymore. I've updated the links on the first post.

Now because of this, I wonder how many old scripts/resources here are gone forever now since those users aren't active.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: LiTTleDRAgo on March 25, 2017, 04:59:29 am
You should update the kit as well, I noticed the tilemap used is still v0.12b.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on March 26, 2017, 07:56:18 pm
I can just release whatever fixes I made and call it v2.1 tomorrow. Still in the process of making a tech demo.

EDIT:
Updated to Version 2.1

Download (https://www.dropbox.com/s/zgk1xp6k2oclnlm/XPA_2.1.zip?dl=0)
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on June 19, 2017, 10:48:40 pm
I downloaded the Steam version of RMXP to test the weird issues it was having with XPA projects. One of them was the location of the RTP. Sure this can be easily resolved by either loading your project with all the RTP assets or installing the RTP package from the official RPG Maker website, but I found a way to read the registry of the RTP location. It seems to reside in
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Enterbrain\RGSS\RTP

so, knowing that, I updated the Load RTP script like so:
(change is in RPG::Path.getRTPPath)

#===============================================================================
# Load RTP File
# Author: joe59491, edit by LiTTleDRAgo
# Version : 1.40
#-------------------------------------------------------------------------------
# [ Description ]
# Loads RMXP RTP assets so that the user does not have to manually import all of
# them into their project.
#
# [ Instructions ]
# There is nothing to do here.
# Please keep this script in its current location.
#
# It is highly advised to not modify this script unless you know what you are
# doing.
#===============================================================================
if XPA_CONFIG::RTP_LOADER

module Load_RTP_File
 
  RMXP  = true
  RMVX  = false
  RMVXA = false

end

#==============================================================================
# ** Ini
#------------------------------------------------------------------------------
#  
#==============================================================================
module Ini
  #--------------------------------------------------------------------------
  # * self.readIni
  #--------------------------------------------------------------------------
  def self.readIni(item = "Title")
    buf = 0.chr * 256
    @gpps ||= Win32API.new("kernel32","GetPrivateProfileString","pppplp","l")
    @gpps.call("Game",item,"",buf,256,"./Game.ini")
    buf.delete!("\0")
    return buf
  end
end

#==============================================================================
# ** String
#------------------------------------------------------------------------------
#  
#==============================================================================
class String
  #--------------------------------------------------------------------------
  # ● UTF8_to_unicode
  #--------------------------------------------------------------------------
  def to_unicode 
    @mbytetowchar ||= Win32API.new("kernel32","MultiByteToWideChar",'ilpipi','I')
    len = @mbytetowchar.call(65001, 0, self, -1, 0, 0) << 1
    @mbytetowchar.call(65001, 0, self, -1, (buf = " " * len), len)
    return buf
  end
end

#==============================================================================
# ** RPG::Path
#------------------------------------------------------------------------------
#  
#==============================================================================
module RPG
  module Path
    #--------------------------------------------------------------------------
    # * Constant
    #--------------------------------------------------------------------------
    FindFirstFile = Win32API.new("kernel32", "FindFirstFileW", "PP", "L")
    FindNextFile  = Win32API.new("kernel32", "FindNextFileW", "LP", "I")
    ReadRegistry = Win32API.new("advapi32","RegGetValue","lppllpp","l")
    #--------------------------------------------------------------------------
    # * getRTPPath
    #--------------------------------------------------------------------------
    def self.getRTPPath(rgss,rtpname)
      return "" if rtpname == "" or rtpname.nil?
      size = [256].pack("L")
      # Get the registry value's length
      ReadRegistry.call(
        0x80000002, # HKEY_LOCAL_MACHINE
        "SOFTWARE\\Wow6432Node\\Enterbrain\\RGSS\\RTP",
        "Standard",
        2, # REG_SZ
        0, # Null
        0, # Null, so that we can get value's length
        size)
      buffer = size.unpack("L")[0] # Length stored in 'size'
      path = "\0" * buffer         # Now we know how long the string is
      # Get the registry value itself
      ReadRegistry.call(
        0x80000002, # HKEY_LOCAL_MACHINE
        "SOFTWARE\\Wow6432Node\\Enterbrain\\RGSS\\RTP",
        "Standard",
        2, # REG_SZ
        0, # Null
        path,
        size)
      path.delete!("\0")
      path = path + '/' # Ensure trailing forward slash to path name
      path = path.gsub("\\","/").gsub("//","/")
      path
    end
    #--------------------------------------------------------------------------
    # * Class Variable
    #--------------------------------------------------------------------------
    @@RTP = []
    if Load_RTP_File::RMXP
      @@RTP << self.getRTPPath('RGSS','Standard')
      (0..3).each do |i|
        @@RTP << self.getRTPPath('RGSS',Ini.readIni("RTP#{i.to_s}"))
      end
    end 
    @@RTP << self.getRTPPath('RGSS2',"RPGVX")    if Load_RTP_File::RMVX
    @@RTP << self.getRTPPath('RGSS3',"RPGVXAce") if Load_RTP_File::RMVXA
    @@RTP.reject! {|rtp| rtp.nil? || rtp.empty?}
    #--------------------------------------------------------------------------
    # * self.findP
    #--------------------------------------------------------------------------
    def self.findP(*paths)
      findFileData = " " * 596
      result = ""
      for file in paths       
        unless FindFirstFile.call(file.to_unicode, findFileData) == -1
          name = file.split("/").last.split(".*").first
          result = File.dirname(file) + "/" + name
        end
      end
      return result
    end
    #--------------------------------------------------------------------------
    # * self.RTP
    #--------------------------------------------------------------------------
    def self.RTP(path)
      @list ||= {}
      return @list[path] if @list.include?(path)
      check = File.extname(path).empty?
      rtp = []
      @@RTP.each do |item|
        unless item.empty?
          rtp.push(item + path)
          rtp.push(item + path + ".*") if check
        end
      end
      rtp.push(path)
      rtp.push(path + ".*") if check
      pa = self.findP(*rtp)
      @list[path] = pa == "" ? path : pa
      return @list[path]
    end
  end
end

#==============================================================================
# ** Audio
#------------------------------------------------------------------------------
#  
#==============================================================================
class << Audio
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  [:bgm_play,:bgs_play,:se_play,:me_play].each do |meth|
    $@ || alias_method(:"#{meth}_path", :"#{meth}")
    define_method(:"#{meth}") do |*args|
      args[0] = RPG::Path::RTP(args[0]) if args[0].is_a?(String)
      send(:"#{meth}_path",*args)
    end
  end
end

#==============================================================================
# ** Bitmap
#------------------------------------------------------------------------------
#  
#==============================================================================
class Bitmap
  #--------------------------------------------------------------------------
  # ● Alias Method
  #--------------------------------------------------------------------------
  $@ || alias_method(:rtp_path_init, :initialize)
  #--------------------------------------------------------------------------
  # ● Object Initialization
  #--------------------------------------------------------------------------
  def initialize(*args)
    args[0] = RPG::Path::RTP(args.at(0)) if args.at(0).is_a?(String)
    rtp_path_init(*args)
  end
end

#==============================================================================
# ** Graphics
#------------------------------------------------------------------------------
#  This module handles all Graphics
#==============================================================================
class << Graphics
  #--------------------------------------------------------------------------
  # ● Alias Method
  #--------------------------------------------------------------------------
  $@ || alias_method(:rtp_path_transition, :transition)
  #--------------------------------------------------------------------------
  # ● transition
  #--------------------------------------------------------------------------
  def transition(*args)
    args[1] = RPG::Path::RTP(args.at(1)) if args[1].is_a?(String)
    rtp_path_transition(*args)
  end
end

end

I only tested this on a Win7x64. No guarantees if this is 100% foolproof.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: LiTTleDRAgo on June 20, 2017, 06:20:22 am
Quote from: KK20 on June 19, 2017, 10:48:40 pm
I downloaded the Steam version of RMXP to test the weird issues it was having with XPA projects. One of them was the location of the RTP. Sure this can be easily resolved by either loading your project with all the RTP assets or installing the RTP package from the official RPG Maker website, but I found a way to read the registry of the RTP location. It seems to reside in
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Enterbrain\RGSS\RTP

so, knowing that, I updated the Load RTP script like so:
(change is in RPG::Path.getRTPPath)

*redacted*


You forgot VX and VXAce, the edit only hardcoding RTP for XP.
It should be:

"SOFTWARE\\Wow6432Node\\Enterbrain\\#{rgss}\\RTP",
"#{rtpname}",


Shortened ver
Spoiler: ShowHide
    #--------------------------------------------------------------------------
    # * getRTPPath
    #--------------------------------------------------------------------------
    def self.getRTPPath(rgss,rtpname)
      return "" if rtpname == "" or rtpname.nil?
      # Get the registry value's length
      reg = [ 0x80000002, # HKEY_LOCAL_MACHINE
              "SOFTWARE\\Wow6432Node\\Enterbrain\\#{rgss}\\RTP",
              "#{rtpname}",
              2, # REG_SZ
              0, # Null
              0, # Null, so that we can get value's length
              (size = [256].pack("L")) ]
      ReadRegistry.call(*reg)
      buffer = size.unpack("L")[0]   # Length stored in 'size'
      path = reg[5] = "\0" * buffer  # Now we know how long the string is
      # Get the registry value itself
      ReadRegistry.call(*reg)
      path.delete!("\0")
      path = (path + '/').gsub("\\","/").gsub("//","/")
      path # Ensure trailing forward slash to path name
    end


This will allow XPAce to load VX and VXAce RTP too (Priority RTP loaded will be XP > VX > VXA).

    # Tried these in Scene_Title
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    #-------------------------------------------------------------------------
    bmp = Bitmap.new("Graphics/Titles1/Book")
    @sprite.bitmap.stretch_blt(@sprite.bitmap.rect, bmp, bmp.rect)
    bmp.dispose
    #-------------------------------------------------------------------------

Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on August 01, 2017, 04:07:39 am
Updated to Version 2.2

Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on September 10, 2017, 01:27:40 am
Update to version 2.21
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on September 13, 2017, 03:09:49 am
Updated to v2.22
XPA_Window is updated to v1.1 (http://forum.chaos-project.com/index.php/topic,15339.msg195983.html#msg195983)
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 04, 2017, 01:46:48 am
I seem to be having a bit of trouble with XPA Tilemap, notably, whenever the custom plane class is enabled, I can't launch the game without it crashing. ("Windows has encountered a problem...") etc. This means changing the resolution or enabling the no-wrap option.

I tested a clean project and the problem isn't there, so I understand this is a script conflict/configuration issue. The problem is I'm mostly unsure as to what to look for to try to debug/make things compatible.

I also am getting a considerable amount of map stutter. The game's FPS stays at 60, but I am getting horrible microstutters which I assume are event lag. Is this an inherent issue with RPG Maker XP? I noticed there is a bit of stutter in the clean project, I'm not sure if there are any potential solutions or it's just the nature of the beast.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on November 04, 2017, 02:35:23 am
It's not the Plane rewrite. I just commented out the Graphics module in the script and it stopped crashing. Still looking...
EDIT: It's the Unknown Scripter's resolution breaker code. Fuck.
EDIT 2: Oh thank god, it's an easy fix.

I'm not sure where you got your RGSS301, but it's definitely not from the 2.22 package. You need that specific one for the "assembly magic" that script uses. File size should be like 1053KB.
MD5 file hash: DD25855AC39D32DA033902FC58FA210B

As for the lag, can you give me an example? Everyone has different definitions for lag.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 04, 2017, 09:29:31 am
Hmm. I'll double check the .dll, I was pretty sure I was using the correct one but I'll have a look.

As for lag, I'll post an example. I haven't had a chance to test it on my non-Windows 10 machine so I've yet to rule out computer-aided problems.

Notably, scrolling the screen (using an event) shows it the most. It is not a smooth scroll, with significant stutters. I only assumed it was map related because if I use something to display the FPS, it doesn't drop below 60 even when the stutters occur. I'm going to take a minute to test on another computer, though.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 04, 2017, 09:34:11 am
Ah! It was the RGSS301.dll. That is bizarre, I was almost certain I copied it straight from the XPA folder, but perhaps I blacked out and replaced it with a different one, or something.

Lag still exists, will post an example of some kind when I get a moment.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 07, 2017, 07:48:50 pm
An update on this, I have a demo for my game here:
http://forum.chaos-project.com/index.php/topic,15812.0.html
The "lag" I talked about is present walking around town.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on November 07, 2017, 08:53:03 pm
You sure it's not just the smooth scroller?
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 07, 2017, 09:06:03 pm
Positive. Even with it disabled, it's present. In the intro cutscene where it says "Three Months Later", I actually have the smooth scroller disabled (it was wonky with the "scroll map" event), and I noticed it skips around quite a bit.

I did try a fresh XPA install and still noticed it, though not as aggressively, especially with a larger map. I piled up a bunch of events and noticed it really doesn't make a difference, which is why I'm not sure if it is even event related.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 07, 2017, 09:29:52 pm
Tried a few things, and got some different results (Clean project with just XPA):



I don't know of the likelihood of it relating to the Tilemap rewrite, and it's really hard to judge since RPG Maker XP used to be native 30FPS, I'm not sure if it's just an inherent flaw with RPG Maker XP.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on November 07, 2017, 09:33:04 pm
It's most likely the tilemap rewrite then. But I don't know how I can improve it honestly.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 08, 2017, 09:53:38 am
Oh man, a "I don't know" from KK20 is rough. Do you think one of the other Tilemaps suggested in your OP would resolve the problem? Or not really, considering yours is written specifically for XPA?

Next question is transitions, the custom plane class nukes transitions and they don't work properly, I know this is known. Are there any recommended transition scripts, or is the resolution a bit more complicated than that?
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Blizzard on November 08, 2017, 11:27:10 am
KK20, have you thought about using SSE2 or something like that? It could heavily boost blitting performance and AFAIK most old CPUs support it. IIRC Pentium 2 already had SSE2 support. I definitely know that Intel Atom CPUs support at least SSE2. And IIRC AMD CPUs know how to emulate SSE2.

EDIT: https://en.wikipedia.org/wiki/SSE2

Keep in mind, this is next level shit, probably unlike anything you've done so far in terms of programming.

EDIT: What it does in short: Imagine you copy an array. The CPU has to copy value by value, there's not way around it. But if you use Intel intrinsics, you can make use of the media co-processor and literally copy multiple pieces of data at once. You tell the co-processor what you want copied and it executes it in a parallel manner rather than value by value. This is quite often used in image processing. I remember that either one or both libjpeg and libpng use them to improve loading speed. And it improves loading speed several times, maybe even more than a whole order of magnitude.

EDIT: I can't seem to find the code in libpng and libjpeg. But it does exist in libwebp.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on November 08, 2017, 02:02:39 pm
I remember in like an early iteration I tried experimenting with that, but never got anything to work I think. It'd definitely benefit in alpha blending, as I found here: https://stackoverflow.com/a/1102810

But I think we should test first if this is present in vanilla VXA so that I'm not wasting my time (and yes, it has to be VXA since we're using RGSS3. XP won't help us here).
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 08, 2017, 02:22:21 pm
Quote from: KK20 on November 08, 2017, 02:02:39 pm
I remember in like an early iteration I tried experimenting with that, but never got anything to work I think. It'd definitely benefit in alpha blending, as I found here: https://stackoverflow.com/a/1102810

But I think we should test first if this is present in vanilla VXA so that I'm not wasting my time (and yes, it has to be VXA since we're using RGSS3. XP won't help us here).

I agree, I don't want to be responsible for time wasting. I'll take a look in VXA and see if I can replicate the problem.

Also, I have a couple different machines/operating systems I can test on. My primary machine is a powerhouse, so I don't think it's a resource issue. It has a dedicated GPU, so I will also test that vs my laptop that only uses on-board.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 09, 2017, 07:43:56 am
Looks like it's present in Vanilla VXA. Didn't have to put much effort into it--made a 50x50 and slapped a bunch of tiles down and the stutter is still there. Will check on an alternate machine to make sure.

Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on November 10, 2017, 10:15:47 am
Update: While the slight stuttering is present in VXA and XPA, the massive lag spikes I was getting in my own game were unrelated. Turns out it was an outdated version of Ryex's dynamic sound? Weird!

I do still get those slight stutters, but I had some folks reporting they don't get them. I need to test on some other machines to see if it's a problem with my computer, at this point.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Lunos on December 12, 2017, 08:27:18 am
Hi. Quick question: This doesn't work with the Pokémon Essentials Kit, right?
At least I tried it but I'm getting this error as soon as I hit the New Game button, so..
(https://i.imgur.com/OWFfiE4.png)
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on December 12, 2017, 11:46:36 am
Most likely not. Error states that you didn't put XPATilemap.dll in your project folder. But I know that PE uses its own tilemap rewrite and is built around it.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on January 16, 2018, 03:11:24 am
Updated to version 2.3!

Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Jaiden on January 16, 2018, 09:33:49 am
Oh dang, very nice. Will be testing this out soon!
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on January 29, 2018, 01:06:42 am
Updated to 2.31 to address a potential issue with renamed games using Enigma Virtual Box (http://forum.chaos-project.com/index.php/topic,15507.0.html) as reported by BoisterousHero Jaiden.

Scripts that use Win32API calls like GetPrivateProfileString are often passed with the parameter ".\\Game.ini". If the user wishes to rename their Game.exe, their Game.ini must be renamed accordingly or else the game will not run. However, because the script can no longer find "Game.ini" (because it is renamed), the script will fail somewhere in its functionality.

A new method was created for this behavior.
Spoiler: ShowHide

=begin
================================================================================
Get Game INI
Author: KK20
Version: 1.0
--------------------------------------------------------------------------------
[ Description ]
Return the game's .INI filename by getting the executable's filename. Needed
for any scripts that make DLL calls to 'Game.ini'.
   
If the 'Game.exe' file is renamed, then 'Game.ini' must be renamed accordingly;
e.g. If Game.exe is now MyCoolGame.exe, then Game.ini must be MyCoolGame.ini

If scripts are looking for 'Game.ini', they will obviously not work anymore. As
such, any scripts that are doing this should use this method instead.

[ Instructions ]
There is nothing to do here.
Please keep this script in its current location.

It is highly advised to not modify this script unless you know what you are
doing.
================================================================================
=end
module RPG
  @@_ini_file = nil
  # Optional parameter prepend: a string to add to the INI filename; a common
  #                             value would be '.\\'
  def self.ini_file(prepend='')
    return prepend + @@_ini_file unless @@_ini_file.nil?
    len = Dir.pwd.size + 128
    buf = "\0" * len
    Win32API.new('kernel32', 'GetModuleFileName', 'PPL', '').call(nil, buf, len)
    @@_ini_file = buf.delete("\0")[len - 127, buf.size-1].sub(/(.+)\.exe/, '\1.ini')
    prepend + @@_ini_file
  end
end

Example:

  # Print the game title.
  ini = Win32API.new('kernel32', 'GetPrivateProfileString','PPPPLP', 'L')
  title = "\0" * 256
  ini.call('Game', 'Title', '', title, 256, RPG.ini_file('.\\'))
  p title.delete!("\0")

Title: Re: [XP] Using the VX Ace engine in your XP games - the kiss tutorial!
Post by: Mewtrino on March 28, 2018, 11:38:51 pm
A wild lurker appears! :ninja:

Quote from: ForeverZer0 on August 02, 2014, 05:51:59 pm
Download (https://dl.dropboxusercontent.com/u/20787370/RMXP/XpAceEditor.exe) (8 kB)

Give that a try. Feel free to distribute/share as you please.

Let me know if you need any adjustments.

Source Code: ShowHide

using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;

namespace XpAceEditor
{
static class Program
{
[DllImport("Kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool WritePrivateProfileString(string lpAppName,
   string lpKeyName, string lpString, string lpFileName);

[DllImport("User32")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

[DllImport("Kernel32")]
private static extern IntPtr GetConsoleWindow();

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!File.Exists("Game.ini") || !File.Exists("Game.rxproj"))
{
Console.WriteLine("Missing files!\nGame.ini and Game.rxproj must be located in same folder.");
Console.ReadLine();
Environment.Exit(0);
}
// Hide the console window
var hWnd = GetConsoleWindow();
ShowWindow(hWnd, 0);
// Get current attributes, and remove read-only if needed
var ini = Path.Combine(Environment.CurrentDirectory, "Game.ini");
var attributes = File.GetAttributes(ini);
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
attributes &= ~FileAttributes.ReadOnly;
File.SetAttributes(ini, attributes);
}
var proc = new Process();
proc.StartInfo.FileName = "Game.rxproj";
proc.Start();
// Wait 10 seconds for the editor to start up
Thread.Sleep(10000);
// Set the library name and read-only attribute
WritePrivateProfileString("Game", "Library", "RGSS301.dll", ini);
File.SetAttributes(ini, attributes | FileAttributes.ReadOnly);
// Wait for editor to exit and set attributes back to how they were
proc.WaitForExit();
File.SetAttributes(ini, attributes);
}
}
}


EDIT:
I forgot to mention, you must wait 10 seconds after hitting the launcher for it to take effect. I just picked an arbitrary amount of time to make sure the editor got through all its startup stuff.


So I'm more than a little late to the party when it comes to RMXP, but as a relative newcomer to RM in general (didn't hop on the bandwagon until I got RMXP & RMVXA in a Humble Bundle offer), I only recently found out about XPAce and wanted to give it a try. I got it installed just fine in a new project, but since I'm running XP through Steam, my Game.ini keeps getting overwritten. I know it's a long shot, but does anybody still have a link to ForeverZer0's modified launcher (see above)? I'd try compiling it myself, but I'm nearly out of space on my SSD and don't have enough room to install Visual Studio. :(

And just to clarify, can XPAce be used in commercial projects or is it for non-commercial use only? As I understand it, scripts such as XPA Tilemap (http://forum.chaos-project.com/index.php/topic,14638.0.html) are labeled for non-commercial use, so does that extend to XPA itself? I looked over the licensing info in the XPA documentation but I may have missed something since I didn't see it stated explicitly. Apologies if it's a stupid question, just wanted to make extra sure. For the record, I do have licenses for both RMVXA and RMXP, along with the latest RMMV.

Thanks to everyone who's kept this project and the many other awesome XP scripts updated over the years. This site is a treasure trove of XP goodness and I'm truly grateful that it's stuck around for all this time. Kudos to you guys!
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: ForeverZer0 on March 29, 2018, 01:58:35 am
Holy hell, I have absolutely no recollection of every created that. I will look in my dropbox and fix link. Never fixed them after Dropbox changed all their crap around.


EDIT:

Oi! I actually found it.

https://drive.google.com/open?id=1xxUCKMm89lZRzGhWSy5EQfiqlfwFh6za
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on March 29, 2018, 04:30:22 am
Regarding commercial use, you must reach an agreement with the authors of said scripts. I generally negotiate with a free-copy of the game.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Mewtrino on March 29, 2018, 01:29:02 pm
@ForeverZer0: THANK YOU!! Yeah, I remember Dropbox changed how file sharing works a while back and I had a feeling that had something to do with the broken links. Hope it also helps anyone else out there who was looking for the launcher and was wondering where it went!

@KK20: I understand, thank you for clarifying. I'd definitely check in with the script/plugin writers for licensing terms on a commercial project (if I ever get to that point) before releasing it.

Thank you both again for your help! :D
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on April 18, 2018, 02:12:49 am
Quick update to 2.32


Input.trigger?(Input::C) # XP
Input.trigger?(:C)       # VXA

Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Kise on April 18, 2018, 06:47:14 am
Look like you uploaded wrong version, every script is outdated in XPA_2.32 and tilemap dll is smaller.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on April 18, 2018, 01:57:39 pm
Thanks for the QA, I must have been in a drunken stupor last night.
The DLL is fine by the way.

Reverted to 2.31 until I fix it.
EDIT: 2.32 is back up
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on June 17, 2018, 05:11:06 pm
Update to 2.33
Includes update to XPA_Window (v1.31) which addresses assigning them to a Viewport, so they should now behave exactly like XP Windows

It's not fully tested yet, so keeping 2.32 up for now.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Blizzard on June 18, 2018, 01:28:49 am
Yeah, 1.31 should definitely be tested some more. I had issues with Z-ordering once I stopped using viewports internally. :/
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 25, 2018, 08:55:06 pm
An error with ForeverZero's Advanced Weather when loading game.

Script Zer0 Advanced Weather 1.1 line*' 1700 SyntaxError occurred

unexpected ';'; expecting ')'
starbust_color7 = color.new(189,225,242)

Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on July 25, 2018, 09:00:53 pm
Can you provide a download link? His dropbox links haven't been updated.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 25, 2018, 09:41:50 pm
https://pastebin.com/L95dBzgY

Should be a link to his script. Yeah, it could use a reupload.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on July 25, 2018, 09:46:35 pm
I'm noticing a space between the Color.new and the parentheses. Remove the space and you should be good. It's one of those syntax changes introduced between Ruby 1.8 and 1.9
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 27, 2018, 12:15:27 am
It worked, thank you!

However, I am having a few issues. I currently have 848 maps as of right now in one project. On all 848, everything works fine without XPA but when I install XPA, the 848th map will crash if I attempt to move within it. This is the traceback.log.

undefined method `[]' for nil:NilClass

[0101]Blizz 2:8801:in `tile_check'
[0101]Blizz 2:8740:in `direction_passable?'
[0101]Blizz 2:8705:in `self_passable?'
[0102]Blizz 3:2789:in `jump_passable?'
[0102]Blizz 3:1869:in `jump'
[0102]Blizz 3:2988:in `jump'
[0101]Blizz 2:3679:in `update_control'
[0102]Blizz 3:2081:in `update'
[0077]Scene_Map:56:in `block in update'
[0077]Scene_Map:49:in `loop'
[0077]Scene_Map:49:in `update'
[0096]Ccoa's UMS:329:in `update'
[0097]Tons 1:2475:in `update'
[0098]Tons 2:517:in `update'
[0098]Tons 2:2378:in `update'
[0098]Tons 2:3182:in `update'
[0102]Blizz 3:6806:in `update'
[0077]Scene_Map:25:in `block in main'
[0077]Scene_Map:19:in `loop'
[0077]Scene_Map:19:in `main'
[0097]Tons 1:1797:in `main'
[0097]Tons 1:2438:in `main'
[0098]Tons 2:2372:in `main'
[0098]Tons 2:3172:in `main'
[0102]Blizz 3:6714:in `main'
[0109][XPA] Main:37:in `block in <main>'
:1:in `block in rgss_main'
:1:in `loop'
:1:in `rgss_main'
[0109][XPA] Main:28:in `<main>'
ruby:in `eval'


But on the other 847, it will load as it should.

However, some maps have issues with me clipping through walls and this happens no matter if the tiles are set to an X or not.

Wait, never mind. Well, sort of. I did not have debug mode turned on. Strange, though if I was to launch through the game, it would be normal.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on July 27, 2018, 12:52:29 am
Error is pointing towards Game_Map's virtual_passability, which is related to INTELLIGENT_PASSABILITY. I'm sure you understand this creates a file 'Map_Data.abs' in your project folder so that all the collision data on maps can be loaded quickly. This file is created every time you run your game in debug mode (playtest from inside the editor), running through all the maps in your project.

Basically this error is telling me that you made this Map_Data.abs file before when you had 847 maps, made the 848th map, then attempted to play your game through the Game.exe directly (not through the editor). The 848th map's collision data was never created and stored in the Map_Data.abs, so the game was effectively trying to pull non-existent data.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 27, 2018, 01:31:02 am
So in other words, would it be best to disable intelligent passiblity?

Also, I notice that when talking to NPCs, the talk window is at the top. How do I bring it down to the bottom?
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on July 27, 2018, 01:42:16 am
I mean, all you have to do is playtest your game at least once (just run the game, the file will be generated before you see the title screen) before distributing your game. You can disable it if you want.

Ccoa UMS has a setting where if you're in battle, the window's Y coordinate is set to 16. Makes sense if you're using the default battle system (your party's UI window is at the bottom of the screen) but BlizzABS has a thing where the flag $game_temp.in_battle is almost always on.

So to disable it for good, just look for that variable in Ccoa's script (appears 5 times for me) and replace it with just false, like

    if false #$game_temp.in_battle
      self.y = 16


if $game_system.text_mode == ALL_AT_ONCE #or $game_temp.in_battle
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 27, 2018, 02:46:35 am
Just to clarify, I think I found it 5 or 6 times. Some of them have a self.y = 16, others had @gold_window.y = 192. I did your trick on all of them along with a script patch that gave CCoa's UMS compatibility with custom resolution scripts such as the one you use.

Thank you so much!
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on July 27, 2018, 02:49:47 am
You made sure to replace every single existence of $game_temp.in_battle in the script? That's really the only reason it's showing at the top; nothing else affects it.
Only other thing would be $game_system.message_position is still equal to 0. Set it to 2 instead.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 27, 2018, 02:53:23 am
Yeah, it worked well.

Also, I just noticed a HUGE performance boost in an area with 30 events, which is a lot in this one area as it had the most slow down of all areas. I set the resolution to 800x600 with the priority layers set to 3 and I've never seen anything like this before. This is fantastic!
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on July 27, 2018, 02:57:25 am
Interesting. A higher resolution contributes to more lag and nothing was done to improve event performance. I guess Ruby 1.9 is all the credit for that ¯\_(ツ)_/¯
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Sin86 on July 27, 2018, 08:32:47 am
Higher resolution can cause lag, yes but it also depends on how big you set your resolution to. If you set it to something huge like 1920x1080, regardless of priority layers then yeah, you're going to have some lag but if you set it something a little small like 800x600, then you're fine just as long as you set the priority layers to something like 3.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on March 24, 2019, 12:24:21 am
Updated to v2.34

XPA Tilemap up to v0.42
XPA_Window up to v1.4 - this brought changes to the licensing; Blizzard has provided instructions in the script, or read them on the topic itself: https://forum.chaos-project.com/index.php/topic,15339.0.html
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: kreiss on October 15, 2019, 09:51:02 am
Hi KK20 !

Is it possible to have a compitibility with this script ?

# Scroll Pictures 1.0 for XP, VX & VXAce by Zeus81
 
class Game_Scroll_Picture < Game_Picture
  attr_accessor :z, :map_anchor, :texture, :texture_ox, :texture_oy, :erased
  def initialize(number)
    @z  , @map_anchor, @texture                , @texture_ox, @texture_oy, @erased =
    1000, 1          , Game_Picture.new(number), 0          , 0          , false
    super(number)
  end
  def erase() @erased = true end
  def update
    super
    @texture.update
    @texture_ox -= @texture.x / 10.0
    @texture_oy -= @texture.y / 10.0
  end
end
 
class Sprite_Scroll_Picture < Sprite
  dll = FileTest.directory?('System') ? 'System/ZEUS' : 'ZEUS'
  GrayscaleMaskBlt = Win32API.new(dll, 'GrayscaleMaskBlt', 'iiiiiiiiii', 'i')
  def initialize(viewport, picture)
    super(viewport)
    @picture, @last_args = picture, []
  end
  def dispose
    bitmap.dispose if bitmap
    super
  end
  def update
    return unless self.visible = !@picture.name.empty? && !@picture.texture.name.empty?
    if @last_mask_name != @picture.name
      @last_mask_name = @picture.name.dup
      bitmap.dispose if bitmap
      mask = cache(@picture.name)
      self.bitmap = Bitmap.new(mask.width, mask.height)
    end
    if @picture.origin != 0
      self.ox = bitmap.width / 2
      self.oy = bitmap.height / 2
    else self.ox = self.oy = 0
    end
    self.x = @picture.x - @picture.map_anchor * map_display_x
    self.y = @picture.y - @picture.map_anchor * map_display_y
    self.z = @picture.z
    self.zoom_x = @picture.zoom_x / 100.0
    self.zoom_y = @picture.zoom_y / 100.0
    self.opacity = @picture.opacity
    self.blend_type = @picture.blend_type
    self.angle = @picture.angle
    self.tone = @picture.tone
    return unless self.visible = on_screen?
    super
    args = [bitmap.__id__ << 1, 0, cache(@picture.name).__id__ << 1, 0,
            cache(@picture.texture.name).__id__ << 1, 0,
            @picture.texture_ox.to_i, @picture.texture_oy.to_i,
            @picture.texture.zoom_x.to_i, @picture.texture.zoom_y.to_i]
    return if @last_args == args
    @last_args.replace(args)
    GrayscaleMaskBlt.call(*args)
  end
  def on_screen?
    x1, y1, w1, h1 = x, y, (bitmap.width*zoom_x).to_i, (bitmap.height*zoom_y).to_i
    w2, h2 = screen_width, screen_height
    if angle == 0
      x1, y1 = x1-w1/2, y1-h1/2 if ox != 0
      x1<w2 and x1+w1>0 and y1<h2 and y1+h1>0
    else
      x1, y1, r1 = (x1-w2/=2).abs, (y1-h2/=2).abs, Math.hypot(w1, h1)
      r1 /= 2 if ox != 0
      x1<=w2+r1 and y1<=h2+r1 and (x1<=w2 or y1<=h2 or Math.hypot(x1-w2,y1-h2)<=r1)
    end
  end
  if defined?(Hangup) #xp
    def cache(filename) RPG::Cache.picture(filename) end
    def screen_width()  640                          end
    def screen_height() 480                          end
    def map_display_x() $game_map.display_x / 4      end
    def map_display_y() $game_map.display_y / 4      end
  else                #vx & vxace
    def cache(filename) Cache.picture(filename)      end
    def screen_width()  Graphics.width              end
    def screen_height() Graphics.height              end
    if RUBY_VERSION == '1.8.1' #vx
      def map_display_x() $game_map.display_x / 8    end
      def map_display_y() $game_map.display_y / 8    end
    else                      #vxace
      def map_display_x() $game_map.display_x * 32  end
      def map_display_y() $game_map.display_y * 32  end
    end
  end
end
 
class Game_Map
  attr_reader :scroll_pictures
  alias zeus81_scroll_pictures_setup setup
  def setup(map_id)
    @scroll_pictures = {}
    zeus81_scroll_pictures_setup(map_id)
  end
  alias zeus81_scroll_pictures_update update
  def update(*args)
    @scroll_pictures.delete_if {|i, p| p.erased}
    @scroll_pictures.each_value {|p| p.update}
    zeus81_scroll_pictures_update(*args)
  end
end
 
class Spriteset_Map
  alias zeus81_scroll_pictures_dispose dispose
  def dispose
    @scroll_picture_sprites.each_value {|s| s.dispose}
    zeus81_scroll_pictures_dispose
  end
  alias zeus81_scroll_pictures_update update
  def update
    @scroll_picture_sprites ||= {}
    @scroll_picture_sprites.delete_if do |i, s|
      s.dispose if result = !$game_map.scroll_pictures.has_key?(i)
      result
    end
    for i, p in $game_map.scroll_pictures
      s = @scroll_picture_sprites[i] ||= Sprite_Scroll_Picture.new(@viewport1, p)
      s.update
    end
    zeus81_scroll_pictures_update
  end
end
 
if defined?(Hangup) #xp
 
  class Interpreter
    def execute_command
      if @index < @list.size-1
        @parameters = @list[@index].parameters
        method_name = "command_#{@list[@index].code}"
        return send(method_name) if respond_to?(method_name)
      else command_end
      end
      return true
    end
    def scroll_picture(id)
      $game_map.scroll_pictures[id] ||= Game_Scroll_Picture.new(id)
    end
    def scroll_picture_mask()    scroll_picture_setup(0) end
    def scroll_picture_texture() scroll_picture_setup(1) end
    def scroll_picture_setup(type)
      i = @index
      while(@list[i += 1].code.between?(231, 235))
        @list[i].parameters << type if @list[i].code < 233
        @list[i].code += 810000
      end
      return true
    end
    def command_810231
      picture = scroll_picture(@parameters[0])
      picture = picture.texture if @parameters[-1] != 0
      x, y = @parameters[4], @parameters[5]
      x, y = $game_variables[x], $game_variables[y] if @parameters[3] != 0
      picture.show(@parameters[1], @parameters[2], x, y, @parameters[6],
                  @parameters[7], @parameters[8], @parameters[9])
      return true
    end
    def command_810232
      picture = scroll_picture(@parameters[0])
      picture = picture.texture if @parameters[-1] != 0
      x, y = @parameters[4], @parameters[5]
      x, y = $game_variables[x], $game_variables[y] if @parameters[3] != 0
      picture.move(@parameters[1]*2, @parameters[2], x, y, @parameters[6],
                  @parameters[7], @parameters[8], @parameters[9])
      return true
    end
    def command_810233
      scroll_picture(@parameters[0]).rotate(@parameters[1])
      return true
    end
    def command_810234
      scroll_picture(@parameters[0]).start_tone_change(@parameters[1], @parameters[2]*2)
      return true
    end
    def command_810235
      id = @parameters[0]
      scroll_picture(id).erase if $game_map.scroll_pictures.has_key?(id)
      return true
    end
  end
 
else                #vx & vxace
 
  class Game_Interpreter
    if RUBY_VERSION == '1.8.1' #vx
      def wait(duration) @wait_count = duration end
      def execute_command
        if @index < @list.size-1
          @params, @indent = @list[@index].parameters, @list[@index].indent
          method_name = "command_#{@list[@index].code}"
          return send(method_name) if respond_to?(method_name)
        else command_end
        end
        return true
      end
    end
    def scroll_picture(id)
      $game_map.scroll_pictures[id] ||= Game_Scroll_Picture.new(id)
    end
    def scroll_picture_mask()    scroll_picture_setup(0) end
    def scroll_picture_texture() scroll_picture_setup(1) end
    def scroll_picture_setup(type)
      i = @index
      while(@list[i += 1].code.between?(231, 235))
        @list[i].parameters << type if @list[i].code < 233
        @list[i].code += 810000
      end
    end
    def command_810231
      picture = scroll_picture(@params[0])
      picture = picture.texture if @params[-1] != 0
      x, y = @params[4], @params[5]
      x, y = $game_variables[x], $game_variables[y] if @params[3] != 0
      picture.show(@params[1], @params[2], x, y, @params[6],
                  @params[7], @params[8], @params[9])
      return true
    end
    def command_810232
      picture = scroll_picture(@params[0])
      picture = picture.texture if @params[-1] != 0
      x, y = @params[4], @params[5]
      x, y = $game_variables[x], $game_variables[y] if @params[3] != 0
      picture.move(@params[2], x, y, @params[6], @params[7],
                  @params[8], @params[9], @params[10])
      wait(@params[10]) if @params[11]
      return true
    end
    def command_810233
      scroll_picture(@params[0]).rotate(@params[1])
      return true
    end
    def command_810234
      scroll_picture(@params[0]).start_tone_change(@params[1], @params[2])
      wait(@params[2]) if @params[3]
      return true
    end
    def command_810235
      id = @params[0]
      scroll_picture(id).erase if $game_map.scroll_pictures.has_key?(id)
      return true
    end
  end
 
end

And the DLL (https://www.dropbox.com/s/r58xn30bqkklvnu/zeus.dll?dl=0)

I try de fixed it in different way, but I always have this error :

(https://i81.servimg.com/u/f81/17/98/61/70/sans_t10.png) (https://servimg.com/view/17986170/147)

Thanks for your XPA system !
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on October 15, 2019, 11:59:52 am
Towards the bottom you see
if defined?(Hangup) #xp
Try changing it to
if true
Since this is technically XP, we need the methods defined below it.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: kreiss on October 15, 2019, 01:46:57 pm
Oh my god, it work !
Thanks a lot !
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Degenpy on October 20, 2019, 03:53:09 pm
Hi there,

To begin with I really wanted to thank you for this amazing job, XPA is absolutely awesome and a real game changer (okay sorry about that pun  :^_^': ).

So, I successfully converted my project and all the scripts to be compatible with XPA but I have two issues remaining since I upgraded to XPA.
The first one is the way the text is squeezed to fit in text boxes, especially in the help_window it's either unnecessarily squeezed like here:
(http://img111.xooimage.com/files/b/d/d/game.exe-screensh...09.03.98-56aedcd.png) (second line)

Or it's being cut and rewritten on the text box like so:
(http://img114.xooimage.com/files/7/d/5/game.exe-screensh...07.07.79-56aedc9.png)

I double checked and didn't have those problem before. I also tried to increase the width of the help_window but without any effect.
Is there any way I could fix that or maybe disable the automatic squeezing of the text? I actually don't like this feature that much anyway. My game is running at 854x480p.

My second question has to do with when a Musical Effect is being played and the transition to the BGM. In RMXP the ME would play and when it finishes it would automatedly start the BGM but it seams like now a small fade in is applied to the BGM. Is there any way I could disable this fade in?  :???:
I use a ME to play the intro of my in-game music and the BGM to play the main loop and the fade in makes it sound really weird.

Thank you so much for your help!  :haha:
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on October 20, 2019, 08:26:17 pm
What scripts are you using for those screenshots there? I know in VXA there's actually a hard-coded limit of only being able to draw 640 pixels wide. I think you would have to use this script to get around that.
https://forums.rpgmakerweb.com/index.php?threads/text-cache.1001/

I don't know what you mean by the ME and BGM. The fade-in is present in both XP and VXA (confirmed it just now). If you're using an ME to play the intro and the BGM to do the loop, you should really look into converting your song into one OGG file. Then you can put LOOPSTART and LOOPLENGTH tags. Here's a guide:
https://rpgmaker.net/tutorials/1341/
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Degenpy on October 23, 2019, 08:37:06 am
Thank you so much for your help, both of my problems are now solved!

I was using OGG but I didn't know about the LOOPSTART and LOOPLENGTH tags, was this feature present in the original RMXP as well ? Because if not that's actually a great new feature.
Anyway, now everything works perfectly.

Thanks a lot!
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on October 23, 2019, 02:15:27 pm
I think it was first incorporated into VX's engine, at least that's what others told me.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Metaron on November 01, 2019, 03:30:24 am
Hi there, I've nearly finished moving my game over to the ACE Engine however i've got one error left with one of the scripts I have:

Image of the error found here: https://imgur.com/o6QtEoT

Script '[0132] Advanced Message Script'line 279: RuntimeError occurred

String Modified.

This is from using Dubealex's Advanced Message Script R4, I've placed the script below:

Spoiler: ShowHide

#===================================================
# ■ AMS - Advanced Message Script - R4 [Update #2]
#===================================================
# For more infos and update, visit:
# www.dubealex.com (Creation Asylum)
#
# Edited, Fixed and Enhanced by: Dubealex
# Original Script Core by: XRXS Scripter (Jap Dudes)
# HTML Hexadecimal color feature from: Phylomorphis
#
# Special Thanks:
# Rabu: For enabling the Show Face feature in an encrypted project
#
# To found all my new features, search the following:  #NEW
# To configure the button to skip the dialog, search:  #SKIP_TEXT_CODE
#
# May 18, 2005
#===================================================

LETTER_BY_LETTER_MODE = true  #Set the letter by letter mode ON/OFF         

#===================================================
# ▼ CLASS AMS Begins
#===================================================
class AMS

attr_accessor :name_box_x_offset
attr_accessor :name_box_y_offset
attr_accessor :font_type
attr_accessor :name_font_type
attr_accessor :font_size
attr_accessor :name_font_size
attr_accessor :message_box_opacity
attr_accessor :name_box_skin
attr_accessor :name_box_text_color
attr_accessor :message_box_text_color
attr_accessor :message_box_skin
attr_accessor :name_box_width
attr_accessor :name_box_height
attr_accessor :message_width
attr_accessor :message_height
attr_accessor :message_x
attr_accessor :message_y_bottom
attr_accessor :message_y_middle
attr_accessor :message_y_top
attr_accessor :event_message_x_ofset
attr_accessor :event_message_y_ofset
 
def initialize
 
@name_box_x_offset = 0      #Choose the X axis offset of the name bos. default= 0
@name_box_y_offset = -10    #Choose the Y axis offset of the name bos. default= -10
@name_box_width = 8          #Choose the width of the Name Box. default= 8 
@name_box_height = 26        #Choose the height of the Name Box. default= 26

@font_type = "Tahoma"          #Choose the Font Name (Case Sensitive) for message box
@name_font_type = "Tahoma" #Choose the Font Name (Case Sensitive) for Name Box
@font_size = 22                      #Choose the default Font Size for message box text
@name_font_size = 22            #Choose the deafault Font Size for Name Box text
@name_box_text_color=0        #Choose the Text Color of the Name Box
@message_box_text_color=0  #Choose the Text Color of the Message Box

@message_box_opacity = 160            #Choose the opacity of the message window. Default=160
@message_box_skin = "Pirata"  #Choose the WindowSkin for the Message Box
@name_box_skin = "Angels"      #Choose the WindowSkin for the Name Box

@message_width = 480          #Choose the width size of the message box. Default=480
@message_height = 160        #Choose the height size of the message box. Default=160
@message_x = 80                  #Choose the X position of the message box. Default=80
@message_y_bottom = 304    #Choose the Y bottom position of the message box. Default=304
@message_y_middle = 160    #Choose the Y middle position of the message box. Default=160
@message_y_top = 16          #Choose the Y top position of the message box. Default=16

@event_message_x_ofset = 0  #Choose the X position offset of the event message. Default=0
@event_message_y_ofset = 48  #Choose the Y position offset of the event message. Default=48

end
end
#===================================================
# ▲ CLASS AMS Ends
#===================================================


#===================================================
# ▼ Class Window_Message Begins
#===================================================
class Window_Message < Window_Selectable 

alias xrxs9_initialize initialize

def initialize

@alex_skip = false

xrxs9_initialize

if $soundname_on_speak == nil then
  $soundname_on_speak = ""
end

$gaiji_file = "./Graphics/Gaiji/sample.png"

if FileTest.exist?($gaiji_file)
  @gaiji_cache = Bitmap.new($gaiji_file)
else
  @gaigi_cache = nil
end
@opacity_text_buf = Bitmap.new(32, 32)
end


#--------------------------------------------------------------------------

alias xrxs9_terminate_message terminate_message

def terminate_message

if @name_window_frame != nil
  @name_window_frame.dispose
  @name_window_frame = nil
end

if @name_window_text  != nil
  @name_window_text.dispose
  @name_window_text  = nil
end
xrxs9_terminate_message
end

#--------------------------------------------------------------------------

def refresh

self.contents.clear
self.contents.font.color = text_color($ams.message_box_text_color)
self.contents.font.name = $ams.font_type
self.contents.font.size = $ams.font_size
self.windowskin = RPG::Cache.windowskin($ams.message_box_skin)
@x = @y = @max_x = @max_y = @indent = @lines = 0
@face_indent = 0
@opacity = 255
@cursor_width = 0
@write_speed = 0
@write_wait = 0
@mid_stop = false
@face_file = nil
@popchar = -2

if $game_temp.choice_start == 0
  @x = 8
end

if $game_temp.message_text != nil
  @now_text = $game_temp.message_text
  if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
    @face_file = $1 + ".png"
    @x = @face_indent = 128
    if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")
      self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
    end
    @now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }
  end

  begin
  last_text = @now_text.clone
  @now_text.gsub!(/\\[Vv]\[([IiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }
  end until @now_text == last_text
  @now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
    $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  end
 
  #NEW
  #Dubealex's Stop Skip Text ON-OFF
  @now_text.gsub!(/\\[%]/) { "\100" }
  #End new command
 
  #NEW
  #Dubealex's Show Monster Name Feature
  @now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) do
  $data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""
  end
  #End new command
 
  #NEW
  #Dubealex's Show Item Price Feature
  @now_text.gsub!(/\\[Pp]rice\[([0-9]+)\]/) do
  $data_items[$1.to_i] != nil ? $data_items[$1.to_i].price : ""
  end
  #End new command
 
  #NEW
  #Dubealex's Show Hero Class Name Feature
  @now_text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do
  $data_classes[$data_actors[$1.to_i].class_id] != nil ? $data_classes[$data_actors[$1.to_i].class_id].name : ""
  end
  #End new command
 
  #NEW
  #Dubealex's Show Current Map Name Feature
  @now_text.gsub!(/\\[Mm]ap/) do
  $game_map.name    != nil ? $game_map.name    : ""
  end
  #End new command
 
  #NEW
  #Dubealex's Choose Name Box Text Color
  @now_text.gsub!(/\\[Zz]\[([0-9]+)\]/) do
  $ams.name_box_text_color=$1.to_i
  @now_text.sub!(/\\[Zz]\[([0-9]+)\]/) { "" }
  end
  #End new command
 
  name_window_set = false
  if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil
    name_window_set = true
    name_text = $1
    @now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }
  end

  if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then
    @popchar = $1.to_i
    if @popchar == -1
      @x = @indent = 48
      @y = 4
    end
    @now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }
  end

  @max_choice_x = 0
  if @popchar >= 0
    @text_save = @now_text.clone
    @max_x = 0
    @max_y = 4
    for i in 0..3
      line = @now_text.split(/\n/)[3-i]
      @max_y -= 1 if line == nil and @max_y <= 4-i
      next if line == nil
      line.gsub!(/\\\w\[(\w+)\]/) { "" }
      cx = contents.text_size(line).width
      @max_x = cx if cx > @max_x
      if i >= $game_temp.choice_start
        @max_choice_x = cx if cx > @max_choice_x
      end
    end
    self.width = @max_x + 32 + @face_indent
    self.height = (@max_y - 1) * 32 + 64
    @max_choice_x -= 68
    @max_choice_x -= @face_indent*216/128
  else
    @max_x = self.width - 32 - @face_indent
    for i in 0..3
      line = @now_text.split(/\n/)
      next if line == nil
      line.gsub!(/\\\w\[(\w+)\]/) { "" }
      cx = contents.text_size(line).width
      if i >= $game_temp.choice_start
        @max_choice_x = cx if cx > @max_choice_x
      end
    end
    @max_choice_x += 8
  end
  @cursor_width = 0
  @now_text.gsub!(/\\\\/) { "\000" }
  @now_text.gsub!(/\\[Cc]\[([0123456789ABCDEF#]+)\]/) { "\001[#{$1}]" }
  @now_text.gsub!(/\\[Gg]/) { "\002" }
  @now_text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
  @now_text.gsub!(/\\[Aa]\[(.*?)\]/) { "\004[#{$1}]" }
 
  #NEW
  #Dubealex's Permanent Color Change
  @now_text.gsub!(/\\[Cc]olor\[([0-9]+)\]/) do
    $ams.message_box_text_color= $1.to_i
    @now_text.sub!(/\\[Cc]\[([0-9]+)\]/) { "" }
    end
  #End of new command
 
  #NEW
  #Dubealex's Font Change Feature
    @now_text.gsub(/\\[Tt]\[(.*?)\]/) do
    buftxt = $1.to_s
    $ams.font_type = buftxt
    @now_text.sub!(/\\[Tt]\[(.*?)\]/) { "" }
    end
  #End of new command
 
  @now_text.gsub!(/\\[.]/) { "\005" }
  @now_text.gsub!(/\\[|]/) { "\006" }
  @now_text.gsub!(/\\[>]/) { "\016" }
  @now_text.gsub!(/\\[<]/) { "\017" }
  @now_text.gsub!(/\\[!]/) { "\020" }
  @now_text.gsub!(/\\[~]/) { "\021" }
  @now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "\022[#{$1}]" }
  @now_text.gsub!(/\\[Ii]/) { "\023" }
  @now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\024[#{$1}]" }
  @now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\025[#{$1}]" }
  @now_text.gsub!(/\\[Bb]\[([0-9]+)\]/) { "\026[#{$1}]" }
  @now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "\027[#{$1}]" }
 
  reset_window
 
  if name_window_set
    color=$ams.name_box_text_color
    off_x =  $ams.name_box_x_offset
    off_y =  $ams.name_box_y_offset
    space = 2
    x = self.x + off_x - space / 2
    y = self.y + off_y - space / 2
    w = self.contents.text_size(name_text).width + $ams.name_box_width + space
    h = $ams.name_box_height + space
    @name_window_frame = Window_Frame.new(x, y, w, h)
    @name_window_frame.z = self.z + 1
    x = self.x + off_x + 4
    y = self.y + off_y
    @name_window_text  = Air_Text.new(x, y, name_text, color)
    @name_window_text.z = self.z + 2
  end
end

reset_window

if $game_temp.choice_max > 0
  @item_max = $game_temp.choice_max
  self.active = true
  self.index = 0
end

if $game_temp.num_input_variable_id > 0
  digits_max = $game_temp.num_input_digits_max
  number = $game_variables[$game_temp.num_input_variable_id]
  @input_number_window = Window_InputNumber.new(digits_max)
  @input_number_window.number = number
  @input_number_window.x = self.x + 8
  @input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end

#--------------------------------------------------------------------------

def update

super

if @fade_in
  self.contents_opacity += 24
  if @input_number_window != nil
    @input_number_window.contents_opacity += 24
  end
  if self.contents_opacity == 255
    @fade_in = false
  end
  return
end
@now_text = nil if @now_text == ""

if @now_text != nil and @mid_stop == false
  if @write_wait > 0
    @write_wait -= 1
    return
  end
  text_not_skip = LETTER_BY_LETTER_MODE
  while true
    @max_x = @x if @max_x < @x
    @max_y = @y if @max_y < @y
    if (c = @now_text.slice!(/./m)) != nil
      if c == "\000"
        c = "\\"
      end
     
      if c == "\001"
        @now_text.sub!(/\[([0123456789ABCDEF#]+)\]/, "")
        temp_color = $1
        color = temp_color.to_i
        leading_x = temp_color.to_s.slice!(/./m)
        if leading_x == "#"
          self.contents.font.color = hex_color(temp_color)
          next
        end
        if color >= 0 and color <= 7
          self.contents.font.color = text_color(color)
        end
        next
      end

      if c == "\002"
        if @gold_window == nil and @popchar <= 0
          @gold_window = Window_Gold.new
          @gold_window.x = 560 - @gold_window.width
          if $game_temp.in_battle
            @gold_window.y = 192
          else
            @gold_window.y = self.y >= 128 ? 32 : 384
          end
          @gold_window.opacity = self.opacity
          @gold_window.back_opacity = self.back_opacity
        end
        c = ""
      end

      if c == "\003"
        @now_text.sub!(/\[([0-9]+)\]/, "")
        speed = $1.to_i
        if speed >= 0 and speed <= 19
          @write_speed = speed
        end
        c = ""
      end

      if c == "\004"
        @now_text.sub!(/\[(.*?)\]/, "")
        buftxt = $1.dup.to_s
        if buftxt.match(/\//) == nil and buftxt != "" then
          $soundname_on_speak = "Audio/SE/" + buftxt
        else
          $soundname_on_speak = buftxt.dup
        end
        c = ""
      elsif c == "\004"
        c = ""
      end
     
      if c == "\005"
        @write_wait += 5
        c = ""
      end
     
      if c == "\006"
        @write_wait += 20
        c = ""
      end
     
      if c == "\016"
        text_not_skip = false
        c = ""
      end
     
      if c == "\017"
        text_not_skip = true
        c = ""
      end
     
      if c == "\020"
        @mid_stop = true
        c = ""
      end
     
      if c == "\021"
        terminate_message
        return
      end
     
      if c == "\023"
        @indent = @x
        c = ""
      end

      if c == "\024"
        @now_text.sub!(/\[([0-9]+)\]/, "")
        @opacity = $1.to_i
        color = self.contents.font.color
        self.contents.font.name = $ams.font_type
        self.contents.font.size = $ams.font_size
        self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)
        c = ""
      end

      if c == "\025"
        @now_text.sub!(/\[([0-9]+)\]/, "")
        self.contents.font.size = [[$1.to_i, 6].max, 32].min
        c = ""
      end

      if c == "\026"
        @now_text.sub!(/\[([0-9]+)\]/, "")
        @x += $1.to_i
        c = ""
      end
     
      if c == "\027"
        @now_text.sub!(/\[(.*?)\]/, "")
        @x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)
        if $soundname_on_speak != ""
          Audio.se_play($soundname_on_speak)
        end
      c = ""
      end

      if c == "\030"
        @now_text.sub!(/\[(.*?)\]/, "")
        self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
        if $soundname_on_speak != ""
          Audio.se_play($soundname_on_speak)
        end
        @x += 24
        c = ""
      end

      if c == "\n"
        @lines += 1
        @y += 1
        @x = 0 + @indent + @face_indent
        if @lines >= $game_temp.choice_start
          @x = 8 + @indent + @face_indent
          @cursor_width = @max_choice_x
        end
        c = ""
      end
     
      if c == "\022"
        @now_text.sub!(/\[([0-9]+)\]/, "")
        @x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i)
        c = ""
      end
     
      #NEW
      #Dubealex's Text Skip On/OFF Command
      if c == "\100"
          if @alex_skip==false
            @alex_skip=true
          else
            @alex_skip=false
          end
        c = ""
      end 
      #end of new command
                                 
      if c != ""
        self.contents.draw_text(0+@x, 32 * @y, 40, 32, c)
        @x += self.contents.text_size(c).width
        if $soundname_on_speak != "" then
          Audio.se_play($soundname_on_speak)
        end
      end
     
#SKIP_TEXT_CODE

# B = Escape, 0 (On The NumPad), X
# C = Enter, Space Bar and C
# A = Shift, Z

  if Input.press?(Input::C) # <-- Change the value on that line
    if @alex_skip==false     
    text_not_skip = false
    end
      end
    else
      text_not_skip = true
      break
    end
   
    if text_not_skip
      break
    end
  end
  @write_wait += @write_speed
  return
end

if @input_number_window != nil
  @input_number_window.update
  if Input.trigger?(Input::C)
    $game_system.se_play($data_system.decision_se)
    $game_variables[$game_temp.num_input_variable_id] =
      @input_number_window.number
    $game_map.need_refresh = true
    @input_number_window.dispose
    @input_number_window = nil
    terminate_message
  end
  return
end

if @contents_showing
  if $game_temp.choice_max == 0
    self.pause = true
  end
 
  if Input.trigger?(Input::B)
    if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
      $game_system.se_play($data_system.cancel_se)
      $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
      terminate_message
    end
  end
 
  if Input.trigger?(Input::C)
    if $game_temp.choice_max > 0
      $game_system.se_play($data_system.decision_se)
      $game_temp.choice_proc.call(self.index)
    end
    if @mid_stop
      @mid_stop = false
      return
    else
      terminate_message
    end
  end
  return
end

if @fade_out == false and $game_temp.message_text != nil
  @contents_showing = true
  $game_temp.message_window_showing = true
  refresh
  Graphics.frame_reset
  self.visible = true
  self.contents_opacity = 0
  if @input_number_window != nil
    @input_number_window.contents_opacity = 0
  end
  @fade_in = true
  return
end

if self.visible
  @fade_out = true
  self.opacity -= 48
  if self.opacity == 0
    self.visible = false
    @fade_out = false
    $game_temp.message_window_showing = false
  end
  return
end
end

#--------------------------------------------------------------------------

def get_character(parameter)

case parameter
when 0 
  return $game_player
else
  events = $game_map.events
  return events == nil ? nil : events[parameter]
end
end

#--------------------------------------------------------------------------

def reset_window

#MESSAGE_SIZE
#MESSAGE_POSITION

if @popchar >= 0
  events = $game_map.events
  if events != nil
    character = get_character(@popchar)
    x = [[character.screen_x -  $ams.event_message_x_ofset - self.width / 2, 4].max, 636 - self.width].min
    y = [[character.screen_y - $ams.event_message_y_ofset - self.height, 4].max, 476 - self.height].min
    self.x = x
    self.y = y
  end
elsif @popchar == -1
  self.x = -4
  self.y = -4
  self.width = 648
  self.height = 488
else
  if $game_temp.in_battle
    self.y = 16
  else
    case $game_system.message_position
    when 0 
      self.y = $ams.message_y_top
    when 1 
      self.y = $ams.message_y_middle
    when 2 
      self.y = $ams.message_y_bottom
    end
    self.x = $ams.message_x
    if @face_file == nil
      self.width = $ams.message_width
      self.x = $ams.message_x
    else
      if self.width <= 600
        self.width = 600
        self.x -=60
      end
    end
    self.height = $ams.message_height
  end
end
self.contents = Bitmap.new(self.width - 32, self.height - 32)
self.contents.font.color = text_color($ams.message_box_text_color)
self.contents.font.name = $ams.font_type
self.contents.font.size = $ams.font_size
if @face_file != nil
  self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
end
if @popchar == -1
  self.opacity = 255
  self.back_opacity = 0
elsif $game_system.message_frame == 0
  self.opacity = 255
  self.back_opacity = $ams.message_box_opacity
else
  self.opacity = 0
  self.back_opacity = $ams.message_box_opacity
end
end

#--------------------------------------------------------------------------

def gaiji_draw(x, y, num)

if @gaiji_cache == nil
  return 0
else
  if @gaiji_cache.width < num * 24
    return 0
  end

  if self.contents.font.size >= 20 and self.contents.font.size <= 24
    size = 24
  else
    size = self.contents.font.size * 100 * 24 / 2200
  end

  self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24))

  if $soundname_on_speak != "" then
    Audio.se_play($soundname_on_speak)
  end
  return size
end
end

#--------------------------------------------------------------------------

def line_height
return 32

if self.contents.font.size >= 20 and self.contents.font.size <= 24
  return 32
else
  return self.contents.font.size * 15 / 10
end
end

#--------------------------------------------------------------------------

def ruby_draw_text(target, x, y, str,opacity)

sizeback = target.font.size
target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2
rubysize = [rubysize, 6].max
opacity = [[opacity, 0].max, 255].min
split_s = str.split(/,/)
split_s
  • == nil ? split_s
  • = "" : nil
split_s[1] == nil ? split_s[1] = "" : nil

height = sizeback + rubysize
width  = target.text_size(split_s
  • ).width
target.font.size = rubysize
ruby_width = target.text_size(split_s[1]).width
target.font.size = sizeback

buf_width = [target.text_size(split_s
  • ).width, ruby_width].max
width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0

if opacity == 255
  target.font.size = rubysize
  target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])
  target.font.size = sizeback
  target.draw_text(x, y, width, target.font.size, split_s
  • )
  return width
else
  if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height
    @opacity_text_buf.dispose
    @opacity_text_buf = Bitmap.new(buf_width, height)
  else
    @opacity_text_buf.clear
  end
  @opacity_text_buf.font.size = rubysize
  @opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)
  @opacity_text_buf.font.size = sizeback
  @opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s
  • , 1)
  if sub_x >= 0
    target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
  else
    target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
  end
  return width
end
end

#--------------------------------------------------------------------------

def convart_value(option, index)
option == nil ? option = "" : nil
option.downcase!

case option
when "i"
  unless $data_items[index].name == nil
    r = sprintf("\030[%s]%s", $data_items[index].icon_name, $data_items[index].name)
  end
when "w"
  unless $data_weapons[index].name == nil
    r = sprintf("\030[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)
  end
when "a"
  unless $data_armors[index].name == nil
    r = sprintf("\030[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)
  end
when "s"
  unless $data_skills[index].name == nil
    r = sprintf("\030[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)
  end
else
  r = $game_variables[index]
end

r == nil ? r = "" : nil
return r
end

#--------------------------------------------------------------------------

def dispose
terminate_message

if @gaiji_cache != nil
  unless @gaiji_cache.disposed?
    @gaiji_cache.dispose
  end
end

unless @opacity_text_buf.disposed?
  @opacity_text_buf.dispose
end

$game_temp.message_window_showing = false
if @input_number_window != nil
  @input_number_window.dispose
end
super
end

#--------------------------------------------------------------------------

def update_cursor_rect
if @index >= 0
  n = $game_temp.choice_start + @index
  self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32)
else
  self.cursor_rect.empty
end
end
end
#=========================================
# ▲ CLASS Window_Message Ends
#=========================================


#=========================================
# ▼ Class Window_Frame Begins
#=========================================
class Window_Frame < Window_Base

def initialize(x, y, width, height)
super(x, y, width, height)
self.windowskin = RPG::Cache.windowskin($ams.name_box_skin)
self.contents = nil
end

#--------------------------------------------------------------------------

def dispose
super
end
end
#=========================================
# ▲ CLASS Window_Frame Ends
#=========================================


#=========================================
# ▼ CLASS Game_Map Additional Code Begins
#=========================================
class Game_Map

#Dubealex's Addition (from XRXS) to show Map Name on screen
def name
$map_infos[@map_id]
end
end
#=========================================
# ▲ CLASS Game_Map Additional Code Ends
#=========================================


#=========================================
# ▼ CLASS Scene_Title Additional Code Begins
#=========================================
class Scene_Title

#Dubealex's Addition (from XRXS) to show Map Name on screen
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
  $map_infos[key] = $map_infos[key].name
end

#Dubealex's addition to save data from the AMS in the save files
$ams = AMS.new

end
#=========================================
# ▲ CLASS Scene_Title Additional Code Ends
#=========================================


#=========================================
# ▼ CLASS Window_Base Additional Code Begins
#=========================================
class Window_Base < Window

#Dubealex Addition (from Phylomorphis) to use HTML Hex Code Colors
def hex_color(string)
  red = 0
  green = 0
  blue = 0
  if string.size != 6
    print("Hex strings must be six characters long.")
    print("White text will be used.")
    return Color.new(255, 255, 255, 255)
  end
  for i in 1..6
    s = string.slice!(/./m)
    if s == "#"
      print("Hex color string may not contain the \"#\" character.")
      print("White text will be used.")
      return Color.new(255, 255, 255, 255)
    end
    value = hex_convert(s)
    if value == -1
      print("Error converting hex value.")
      print("White text will be used.")
      return Color.new(255, 255, 255, 255)
    end
    case i
    when 1
      red += value * 16
    when 2
      red += value
    when 3
      green += value * 16
    when 4
      green += value
    when 5
      blue += value * 16
    when 6
      blue += value
    end
  end
  return Color.new(red, green, blue, 255)
end

#--------------------------------------------------------------------------

def hex_convert(character)
  case character
  when "0"
    return 0
  when "1"
    return 1
  when "2"
    return 2
  when "3"
    return 3
  when "4"
    return 4
  when "5"
    return 5
  when "6"
    return 6
  when "7"
    return 7
  when "8"
    return 8
  when "9"
    return 9
  when "A"
    return 10
  when "B"
    return 11
  when "C"
    return 12
  when "D"
    return 13
  when "E"
    return 14
  when "F"
    return 15
  end
  return -1
end
end
#=========================================
# ▲ CLASS Window_Base Additional Code Ends
#=========================================


#=========================================
# ▼ Class Air_Text Begins
#=========================================
class Air_Text < Window_Base

def initialize(x, y, designate_text, color=0)

super(x-16, y-16, 32 + designate_text.size * 12, 56)
self.opacity      = 0
self.back_opacity = 0
self.contents = Bitmap.new(self.width - 32, self.height - 32)
w = self.contents.width
h = self.contents.height
self.contents.font.name = $ams.name_font_type
self.contents.font.size = $ams.name_font_size
self.contents.font.color = text_color(color)
self.contents.draw_text(0, 0, w, h, designate_text)
end

#--------------------------------------------------------------------------

def dispose
self.contents.clear
super
end
end
#==========================================
# ▲ CLASS Air_Text  Ends
#==========================================


#===================================================
# ▼ CLASS Scene_Save Additional Code Begins
#===================================================
class Scene_Save < Scene_File

alias ams_original_write_save_data write_save_data

def write_save_data(file)
  ams_original_write_save_data(file)
  Marshal.dump($ams, file)
end

end
#===================================================
# ▲ CLASS Scene_Save Additional Code Ends
#===================================================


#===================================================
# ▼ CLASS Scene_Load Additional Code Begins
#===================================================
class Scene_Load < Scene_File

alias ams_original_read_save_data read_save_data

def read_save_data(file)
  ams_original_read_save_data(file)
  $ams      = Marshal.load(file)
end

end
#===================================================
# ▲ CLASS Scene_Load Additional Code Ends
#===================================================


Line 279 seems to point to this bit in the script:
Spoiler: ShowHide
 #Dubealex's Font Change Feature
    @now_text.gsub(/\\[Tt]\[(.*?)\]/) do
    buftxt = $1.to_s
    $ams.font_type = buftxt
    @now_text.sub!(/\\[Tt]\[(.*?)\]/) { "" }
    end
  #End of new command


Would anyone have any suggestions on what I can try to get rid of this error?

Many thanks!
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on November 01, 2019, 09:59:48 am
Just first want to point out your link redirects me to the home page, so I don't know what your image looks like.

I'm currently away from my computer for the weekend, so I won't be able to check in a few days.

EDIT: can you try, on the line with the .sub!, to replace it entirely with just an empty string
''
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Metaron on November 01, 2019, 03:19:56 pm
You're a lifesaver KK20, it fixed my error on start up.

It has given an odd display though with the top of the dialogue boxes where the player names shows, the main box seems to cut through it.

I've uploaded an image here for it:  https://imgur.com/grzmFdG

I've also modified the link in my previous post for the error if you need to see it still.

Do you reckon I need to fiddle with the settings in the [XPA] XPA_Window script?

Thanks again for your help :)
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on November 01, 2019, 05:47:49 pm
Might just be a z-layer issue. Check by changing the z value of the window that draws the name in its initialize method.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Metaron on November 02, 2019, 05:03:25 am
This did the trick! Cheers again KK20 :)
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Taylor on January 02, 2020, 09:00:16 pm
This system is a life-saver. Originally I started my project in RMXP, but then I was tempted by VXAce's engine in all the myriad of improvements it had. But god did I underestimate how much anxiety and frustration its mapping UI would cause. (why are there still not layer buttons in MV????)

So I went from XP to Ace and now to this. Now I have my project in XP with various things I've learned from Ace, along with engine improvements.
There is though one element that Ace improved on that I don't seem to see way to do here: Windows inside viewports.

In Ace you could use viewports to move sets of windows or display only portions of windows. You can't do that here - near as I can tell, setting an XPA_Window to be tied to a viewport doesn't change anything. I want to make a scrolling save file list, and I would do that by putting them in a viewport and scrolling that... but, no dice.
I can use viewports by using Ace's native Window module instead of XPA, but that seems to make padding fall apart, and I've made minor adjustments to the code for personal customisation, so I'd lose that.

For now I can just set co-ordinates for each window (i.e. (@file_index * @height) - ($scene.file_index * @height)), but I think the functionality of Ace viewports would still be an improvement.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on January 05, 2020, 10:13:27 pm
Window viewports is actually a thing in XP too. This was something we've known about for some years now; Blizzard's XPA_Window doesn't use viewports correctly. Because the default scripts do not even assign viewports to Windows, for design reasons, it seemed better to use viewports to hold the window's sprites so that moving windows would be easier (changing the viewport x/y instead of each sprite's x/y individually). It wasn't until some user came across complaining about a script incompatibility that we were made aware that scripters were actually assigning windows to viewports.

I don't remember if someone ever provided a rewrite to make the windows behave as they should. I probably looked into it for a few days, but this was a long time ago.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: rfvtgbzxc on January 16, 2020, 06:27:10 am
I'v already forggoten that the RMXP is 40-frame-based since I used the XPA, it's runs so fluently. I found a new game.exe which optimized by using DirectX, and I am trying to use this exe on XPA. However, the customized Tilemap of XPA occured some errors. The Tilemap try to call XPA_Tilemap.dll to implement varies updates, then it crashed, sometimes the Windows 10 would alert that this exe try to visit unauthorized memory such as 0x000000000000000c. I guess the XPA_Tilemap.dll may calculate something and inject them back to the game,but failed for the different exe.

My process of debuging stopped beacuse of my unknown of how this dll runs. May I know why creating and updating the tilemap needs to use the dll while the others(such as sprit) needn't? I'm also confused about the mechanism of Graphics.update, it seems that it don't need any parameter, and it can understand how to update the sprites needed correctly.

The DirectX-optimized exe is called RGD(RGDirect), and here is the link:http://cirno.blog/archives/290#instructions

Just forgive my confusions and my bad grammars, my English is not god. Without the RGD I can still make a fluent RMXP game by XPA but I want to try more. Thanks again for your XPA :)
 
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: KK20 on January 17, 2020, 03:16:13 am
Yeah, I have been following the development of that project for a while now. The reason it won't work with XPA is due to the usage of DirectX. The Bitmap object is handled entirely different now, so the DLL is accessing wrong memory address points to manipulate the color data.

If you want to use that EXE, you need a tilemap rewrite written in pure Ruby. Though, I'm more interested in MKXP since it's designed with XP in mind. I didn't pay much attention to it at first because I could never understand how to set it up and build it, but someone forked the project and provided instructions I could follow.
https://github.com/inori-z/mkxp-z

Again, this handles Bitmaps entirely different too (with OpenGL).
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: rfvtgbzxc on January 17, 2020, 05:53:39 am
Quote from: KK20 on January 17, 2020, 03:16:13 amYeah, I have been following the development of that project for a while now. The reason it won't work with XPA is due to the usage of DirectX. The Bitmap object is handled entirely different now, so the DLL is accessing wrong memory address points to manipulate the color data.

If you want to use that EXE, you need a tilemap rewrite written in pure Ruby. Though, I'm more interested in MKXP since it's designed with XP in mind. I didn't pay much attention to it at first because I could never understand how to set it up and build it, but someone forked the project and provided instructions I could follow.
https://github.com/inori-z/mkxp-z

Again, this handles Bitmaps entirely different too (with OpenGL).
Very well. My first intention is to try to change some places which use the DLL. But now it seems not as easy as I thought to be before. I'll try the MKXP on XPA.
Title: Re: [XP] RMXPAce -- Using the VX Ace engine in your XP games
Post by: Taylor on February 06, 2020, 08:17:03 am
Update regarding viewports: in the end I just placed the contents of each save slot in a single Window_Scrollable, instead of drawing a set of windows for each. I had the feeling that the viewport issue was previously investigated, but it felt like the matter was dropped.

Also on the latter: MKXP is something I would greatly like to use, simply because multi-platform is a good idea, but I've never been sure how to make use of it - XP Ace uses a mix of RGSS1 and RGSS3, and there's no way to use both in MKXP. And of course, Win32API class support is out, which breaks XPA_Tilemap and XPA_Window. Never mind say, XInput support.
... I have no idea how to compile things, but I wonder if simply compiling a version of MKXP which always refers to XP's tilemap and window regardless of RGSS version would be a start...

Though regardless of RGSS setting, MKXP doesn't support OGG LOOPSTART. Loop points and remembering playback position of music after battle was what enticed me to VXA in the first place... before I realised how anxiety inducing the map editor would be.
EDIT: Actually wait it does support loopstart... if you also specify looplength. VXAce doesn't seem bothered by that, curiously, but I've found some other systems before require it.