[XP] RMXPAce -- Using the VX Ace engine in your XP games

Started by KK20, February 17, 2013, 04:38:51 pm

Previous topic - Next topic

KK20

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.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Blizzard

The font things is fixed in my XPA_Window, KK20. So it will resolve itself when you update XPA.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

KK20

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.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

PhoenixFire

-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.
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

Blizzard

Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

KK20

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.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Sase

Am I imagining things or are the blacks much more black, and the contrast/colors more vibrant in general?

KK20


Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

KK20

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~

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Blizzard

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
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

orochii

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.

KK20

@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

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

orochii

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)

Blizzard

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.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

LiTTleDRAgo

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

KK20

Yeah, you're better off just removing that part of the code entirely, or putting a check if XPAce is being used.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

PhoenixFire

KK20, etc...   Are there any new scripts or fixes to add into this?
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

KK20

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.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

PhoenixFire

Okay, because, I have the site back up, and have scripts and such to work into it.
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

KK20

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.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!