Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

TheUnproPro

185
Posts
12
Topics
458
Followers
16
Following
A member registered Oct 22, 2017 · View creator page →

Creator of

Recent community posts

Most likely not~ its been a while but iirc RMMV used a different filter padding, so you'll probably end up with a black screen~

Make sure you extracted the plugin as instructed ~ And use the plugin command

If it doesnt work after doing both, let me know 

I haven't tested it in the most recent RPG Maker, haven't touched RM in a while but it should; as for if I worked it out, Kinda but... it's still horrifically jank, I don't understand why PIXI went that route without clear documentation at the time

Send a screenshot of the whole error~ or press F8 and copy the console log in a reply

BRO YOU SPEAK MY LANGUAGE~

Yeah xD This was pre-MZ

You could make it happen tho but~
Ty for reminding me this existed lol, I remember how fun it was making this

It is indeed quite impressive, as for MV/MZ while they are fantastic, every export no matter the device will export to a web format, on PC it uses NW.js (node webkit), like CrossCode does, this makes games easier to hack and even flat out edit, though to be 100% honest, no game is safe from that regardless of the engine lol. 

As for reverse engineering the shader, turns out now you need to link your own gl program it looks like, and store the frag/vert shaders in an object, I just need to figure out why/how a glProgram is now required and how to tie that to the renderer, gonna attempt to just bootleg it and use the main app's glProgram

I appreciate the offer though~
But yeah, the TL;DR version is WebGPU is significantly faster, also optimized asf for newer mobile devices (or even some older ones with updated web rendering, w/e browser you use), The down side is, GLSL code wont work out of the box with it, apparently? Idk man, some jank sh* going down rn on PIXI's side lol, like they're improving which is amazing, but they've also made custom shaders obscure asf, I'll try deconstructing a built in shader and see if I can't figure out クソ何で  makes them work~

Very lol, especially in the latest PIXI (non-rpg maker versions), which is 7 and 8, 8 seems to completely remove the methods for shaders entirely, and relies on WebGPU now, with GL as a backup, but there's next to no documentation on where the heck to put a frag / vert shader in the new system lol

yw! Thanks for being interested <3

You're welcome~ Sorry I couldn't be much help

It doesn't have any dependencies, but PIXI.JS has updated (the rendering engine) since this, and it seems to be breaking a lot of my plugins annoyingly~

Most likely not without some kind of direct editing to the code~ in particular the shader's padding might be an issue since if I recall correctly, the changes made by PIXI when they introduced an updated version for some reason caused the UV coords for a few of my plugins to jank out

Email me at TheUnproPro@gmail.com xD

The title names should be the name of the image file you want to add to the list of swappable title screen images :)
"

i've been trying to logic the code but i keep getting reminded that i have the most rudimentary coding experience  (think: hello world) ;;

"
^ Welcome to the world of coding =D It's always awesome to hear someone putting in the effort to learn, though it can be a real headache;

About toggling plugins mid-game, yeah atm that's not really an option, I mean it -kind of- can be, but it'd be a bit bootleg on how it needs to be done lol~ Anyway here's the commented version:

// Extending Scene_Title prototype to add custom properties
(() => {
  // Custom properties for the title scene
  Scene_Title.prototype.title_timer = 0; // Timer for tracking time
  Scene_Title.prototype.title_image_index = 0; // Index to track the current title image
  Scene_Title.prototype.title_images = [
    "title_1_name",
    "title_2_name",
    "etc",
  ].map(t => ImageManager.loadTitle1(t)); // Array of title images loaded using ImageManager
  // Save the original update function of Scene_Title
  const originalUpdate = Scene_Title.prototype.update;
  // Override the update function to add custom logic
  Scene_Title.prototype.update = function() {
    // Call the original update function
    originalUpdate.call(this, arguments);
    // Increment the title timer
    this.title_timer++;
    // Check if 2.5 seconds (2500 milliseconds) have passed
    if (this.title_timer >= 2500) {
      // Increment the title image index
      this.title_image_index++;
    }
    // Check if the current title image is loaded
    if (this._backSprite1._imageLoaded != this.title_image_index) {
      // Update the loaded image index
      this._backSprite1._imageLoaded = this.title_image_index;
      
      // Set the bitmap of _backSprite1 to the current title image
      this._backSprite1.bitmap = this.title_images[this.title_image_index];
    }
    // Wrap around the title_image_index to prevent going beyond the array length
    this.title_image_index = this.title_image_index % this.title_images.length;
  };
})();
(2 edits)

Ah~ I can give you a rundown way to do it-
Make a "title_change.js" file, put it in plugins, give it the following content:

(()=>{
Scene_Title.prototype.title_timer = 0;
Scene_Title.prototype.title_image_index= 0;
Scene_Title.prototype.title_images = [
"title_1_name",
"title_1_name",
"etc",
].map(t=>ImageManager.loadTitle1(t)); const osu = Scene_Title.prototype.update;
Scene_Title.prototype.update = function() {
osu.call(this, arguments);
this.title_timer++;
if(this.title_timer>=2500) //2.5 seconds
this.title_image_index++; if(this._backSprite1._imageLoaded != this.title_image_index) {
this._backSprite1._imageLoaded = this.title_image_index;
this._backSprite1.bitmap = this.title_images[this.title_image_index];
}
this.title_image_index = this.title_image_index%this.title_images.length;
} })();


Put it on top of the other plugins;I don't know if this will work right off the bat, but~ play around with it, it should work :)

Sadly no~
I lost interest in this project ages ago since nobody really cared about it lol

idr if I tested that or not, but it should, unless PIXI did something different again with the autoDensity thing

https://theunpropro.itch.io/rpg-maker-mz-epic-filter-pack-1/devlog/662988/bug-fi...

gonna try to patch it now~

That would be cool, but I'm not sure I have that kind of functionality built into this version lol; Sorry~ but I may return to this project

Yeah it seems RPG Maker isn't treating you well at all... I'm so sorry it's doing that to you. VERY strange also for electron to not allow you to use modern JS... something unknown is going on from a deeper level, I'm willing to work with you to try and get it figured out but maybe we should Discord from here, as we might need to do some *cracks knuckles* anti-jank special methods I've developed from dealing with my own "this makes no f*ing sense" problems xD
Though imo, you might be better using Godot

(1 edit)

VERY interesting, it means that for some mysterious reason it's not allowing you to use an updated javascript interpreter... hmm...

No worries, I'm very sorry you're experiencing such troubles over this. If you're willing to keep going, I'd love to work with you to solve it~ game dev can be a headache, but generally it never involves this level of debugging. But hey =D once we solve it, you'll be able to solve this issue for other developers who might run into the rare problem as well!

Replace the js code I sent with this, for 'editor.js'

const { app, BrowserWindow } = require('electron');
function createWindow() {
  mainWindow = new BrowserWindow({
    width: 816,
    height: 624,
    frame: true,
    webSecurity: false,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      webSecurity: false,
    },
  });
  mainWindow.loadFile(require('path').resolve('./', 'index.html'));
  mainWindow.webContents.openDevTools();
}
app.whenReady().then(createWindow);
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

then run electron ./editor.js from the powershell~ remember to hold left shift, right click an empty space in your RPG Maker's project directory first and select "Open powershell here"

EDIT:

Also, I really don't mind, feel free to vent lol, don't hold back I 100% get it. sometimes I wanna scream and rip my hair out (whenever it grows back from the previous ripout!)

(2 edits)

Not a chance, your system is more than capable. Lets try going outside the box a little~

Do you have Node.js and NPM installed? If not, install it here:
https://nodejs.org/dist/v20.10.0/node-v20.10.0-x64.msi

After that, you might need to restart~ When you do, open your games project folder and hold shift when you right click on an empty space in the folder, you should see something like "Open powershell here". Run that, then type "npm install -g electron", When that's done, close the powershell window and re-open it (so that it refreshes with the new electron command enabled), from there, create a file called "editor.js", place these contents in it:

const { app, BrowserWindow } = require('electron') const path = require('node:path')  const createWindow = () => {   // Create the browser window.   const mainWindow = new BrowserWindow({     width: 800,     height: 600,     webPreferences: {       preload: path.join(__dirname, 'preload.js')     }   })    // and load the index.html of the app.   mainWindow.loadFile('index.html')    // Open the DevTools.   // mainWindow.webContents.openDevTools() }  // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.whenReady().then(() => {   createWindow()    app.on('activate', () => {     // On macOS it's common to re-create a window in the app when the     // dock icon is clicked and there are no other windows open.     if (BrowserWindow.getAllWindows().length === 0) createWindow()   }) })  // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits // explicitly with Cmd + Q. app.on('window-all-closed', () => {   if (process.platform !== 'darwin') app.quit() })

Finally, with all of that out of the way, in the powershell window type "electron ./editor.js" and --IF-- all went well, it should open the RPG Maker game again, but this time using electron which, while it does rely on chromium, might support something with your PC that Node Webkit (NWJS) doesnt

If that also doesn't work, we can try one more thing :

EDIT:

editor.js should be in the same place as index.html in your project folder


Lmk if this helps, gl!


EDIT 2:

I'm used to dealing with jank that makes zero sense, lol, so I'm not stressed at all in trying to help you figure out why the performance here is being crustier than a hookers underboob

Now I'm even more confused. There's zero reason it should be lagging. Lets try to Force-Update your nwjs ~ 

https://nwjs.io/

Or direct link (will likely be outdated soon though) https://dl.nwjs.io/v0.82.0/nwjs-sdk-v0.82.0-win-x64.zip

Download the SDK version, then go to Steam/steamapps/common/RPG Maker MZ/ and there should be a folder called "nwjs-win" Drag/drop the new files from the zip to this and then try (remember to make a backup just in case)

My guess is it has to do with the CSS styling I decided to go with, but even then, there's absolutely -no- reason it should be this laggy

(1 edit)

That means theres probably some other kind of interference~ try disabling every other plugin while using the editor
EDIT:
Also, I notice you said different browsers, the editor part will only work on the RPG Maker playtest run, since it makes use of Node.js functionality

(1 edit)

Wut?That's super weird, press F2 when playtesting and see if WebGL is enabled

Edit:
Yeah no, that absolutely shouldn't be happening, something jank's going down and I intend to find out what xD

Yeah I end up getting burnt out every time I try to come back to this, it's too time consuming and you end up having to write your own modules entirely, scrapping the already existing ones lol because "editing" them is more like going through a maze

If all you need is the color filter I can jimmy up one of those for ya~

*insert bitmap heart*

Just different algorithms and more optimized performance, generally though it shouldn't be too noticable in terms of visuals, maybe slight differences? I recommend copying the shader code from the Max one over to the superretroplus one

Might not have been the goal, but it worked xD
Ima start soon

Ffs, you're making me really wanna get back into it xD
now that I have a real CRT again, I can examine the phospher glowing effect when output at 240p via composite, and then emulate that to make an even more realistic filter

Plus generally, "scanlines" are done incorrectly, as you really need 4 to 8 times the resolution for the lines to apply the distorted image edges of each line to better match the visuals of a real scanline, instead of just a dark spot

I really should make an update for it to work with MZ- I keep procrastinating then forgetting xD

but yeah~ Ik what you mean, it's bugged the living sh* out of me that I couldn't find a proper "composite" filter, or retro filter of any other kind, so I just made one xD

No worries, I gotcha~

So, to activate it, use the event "script" tag, and put

$gameVariables.vhsFilter = true;

To configure it:

$gameVariables.vhsAmp = value

$gameVariables.vhsLines = value

$gameVariables.vhsSpeed = value

$gameVariables.vhsStatic = value
vhsAmp is the amplitude
vhsLines is the amount of lines, iirc
vhsSpeed is how fast it goes
vhsStatic is how much noise there is

It does, but you have to remove the "PluginManager" function calls since MV's a different setup, but if you delete that it should work right away

I think theres a plugin command I've included to change the wind, maybe link that with a common event ^.^

Oh def!

At the moment no; but I may write a plugin for that