lolni

New Member
Oct 14, 2021
2
4
is out on steam:
Updates:
● Force the game to run with GPU instead of CPU.
● Preload frequently used battle image assets before battle starts.
● Add a configuration to 'force 60 FPS'.

It has been noticed that in some devices the game is not using GPU at all. This version has added some configurations to force using GPU.
Add a 'Force 60 FPS' configuration so player could adjust FPS according to his/her own device status.
 
  • Like
Reactions: bound&gagged

Maxxxing

Member
Sep 2, 2018
246
213
is out on steam:
Updates:
● Force the game to run with GPU instead of CPU.
● Preload frequently used battle image assets before battle starts.
● Add a configuration to 'force 60 FPS'.

It has been noticed that in some devices the game is not using GPU at all. This version has added some configurations to force using GPU.
Add a 'Force 60 FPS' configuration so player could adjust FPS according to his/her own device status.
Is this going to solve that insane stutter problem where the game seems to be freezing every 0.2 seconds?
 
  • Angry
Reactions: Temphere69

Megazombie15

Newbie
Mar 20, 2022
29
65
Is this going to solve that insane stutter problem where the game seems to be freezing every 0.2 seconds?
Very likely, if all the changes work (specifically the force GPU instead of CPU) then it should be fine.

The stutter is very likely related to texture uploads during battle, see it that each popup needs to be loaded into the GPU, which of course will stutter the game no matter how good your PC is.
 

yilkin

dl.rpdl.net
Donor
Feb 23, 2023
9,200
5,031
RuledByRule-1.1.2
You don't have permission to view the spoiler content. Log in or register now.
rpdl torrents are unaffiliated with F95Zone and the game developer.
Please note that we do not provide support for games.
For torrent-related issues use here, or join us on !
, . Downloading issues? Look here.​
 

Z3r0K00l

Member
Aug 30, 2022
180
430
Im playing the game in WebGL mode and it still slows down to 1 fps in battles, making the game unplayable.
 

Z3r0K00l

Member
Aug 30, 2022
180
430
Its obvious that there's a memory leak somewhere in the battle system, the ram usage gets up to insane levels and it's quickly collected by the v8 garbage collector, but the game ends up crashing anyway because not even the GC can keep up with the amount of garbage being generated.
I have a hard time believing that the dev looked at his glorified powerpoint consume over 12 gbs of ram and went "yep, that's alright". lmfao.
 
  • Like
Reactions: randomjohn

nefernefer

Newbie
Feb 9, 2021
23
8
Why is there such a disparity between version 1.0.5 and 1.1.2 in terms of size? Newer version has almost half the weight in MB and half the count in files. Isn't it strange? Both downloaded from here.
 
Last edited:

Z3r0K00l

Member
Aug 30, 2022
180
430
So, i found the leak and fixed it. Turns out the function which drew the time on the top right of the screen was creating a new bitmap object every frame and that resulted in massive ram usage. This leak was most noticeable in battles and caused the game to drop to one fps and crash eventually (unless you got massive amounts of ram and a SSD).
The function in questions was in line 382 of the RBR_Core.js plugin, whose name was "displayText".

JavaScript:
Sprite_Time.prototype.displayText = function () {
  this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
I just added a conditional check to stop it from creating a new object every god damn frame:
JavaScript:
Sprite_Time.prototype.displayText = function () {
  // if the object exists dont instantiate it again.
  if(!this.bitmap) this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
This bug is still present in version 1.1.3 and i dont know if the author fixed it in version 1.1.4 the patch notes dont mention it so im guessing no.

This means that the author can stop downgrading the graphics and give us back the HD pictures that were in the 1.0 release.

You can change the code like i did or you can just overwrite your RBR_Core.js file with mine, just unzip it and drop it in js/plugins/ and overwrite the file.

There might be more bugs left but this one was game breaking, the rest are up to the dev.

EDIT: This patch is NOT necessary in version 1.2.0 and above.
 
Last edited:

lolni

New Member
Oct 14, 2021
2
4
So, i found the leak and fixed it. Turns out the function which drew the time on the top right of the screen was creating a new bitmap object every frame and that resulted in massive ram usage. This leak was most noticeable in battles and caused the game to drop to one fps and crash eventually (unless you got massive amounts of ram and a SSD).
The function in questions was in line 382 of the RBR_Core.js plugin, whose name was "displayText".

JavaScript:
Sprite_Time.prototype.displayText = function () {
  this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
I just added a conditional check to stop it from creating a new object every god damn frame:
JavaScript:
Sprite_Time.prototype.displayText = function () {
  // if the object exists dont instantiate it again.
  if(!this.bitmap) this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
This bug is still present in version 1.1.3 and i dont know if the author fixed it in version 1.1.4 the patch notes dont mention it so im guessing no.

This means that the author can stop downgrading the graphics and give us back the HD pictures that were in the 1.0 release.

You can change the code like i did or you can just overwrite your RBR_Core.js file with mine, just unzip it and drop it in js/plugins/ and overwrite the file.

There might be more bugs left but this one was game breaking, the rest are up to the dev.
This fixed the game for me poggers.You can download the HD Images From the Steam page.
UPDATE NOTES


HD assets Patch


If your device is good enough, you can download this path and replace all image assets to high resolution version.
How to use
1) Download patch from the link above.
2) Unzip the patch to get a folder named 'img'.
3) Copy the whole folder and paste it inside game root folder. The system would confirm about file replacements. Click 'Yes' to replace all files.
 
Aug 4, 2017
280
464
Why is there such a disparity between version 1.0.5 and 1.1.2 in terms of size? Newer version has almost half the weight in MB and half the count in files. Isn't it strange? Both downloaded from here.
The dev noticed how perfomance heavy the game was, his solution? compress the images to a lower quality. As if 2d still images are that intensive.
 
Aug 4, 2017
280
464
So, i found the leak and fixed it. Turns out the function which drew the time on the top right of the screen was creating a new bitmap object every frame and that resulted in massive ram usage. This leak was most noticeable in battles and caused the game to drop to one fps and crash eventually (unless you got massive amounts of ram and a SSD).
The function in questions was in line 382 of the RBR_Core.js plugin, whose name was "displayText".

JavaScript:
Sprite_Time.prototype.displayText = function () {
  this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
I just added a conditional check to stop it from creating a new object every god damn frame:
JavaScript:
Sprite_Time.prototype.displayText = function () {
  // if the object exists dont instantiate it again.
  if(!this.bitmap) this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
This bug is still present in version 1.1.3 and i dont know if the author fixed it in version 1.1.4 the patch notes dont mention it so im guessing no.

This means that the author can stop downgrading the graphics and give us back the HD pictures that were in the 1.0 release.

You can change the code like i did or you can just overwrite your RBR_Core.js file with mine, just unzip it and drop it in js/plugins/ and overwrite the file.

There might be more bugs left but this one was game breaking, the rest are up to the dev.
Holy fucking shit, thanks a lot my man, but i gotta know; how did you come across this? were you going file by file looking for something that caught your eye or were you familiar with issues like this?
Also, how long have you been programming for? Like how much do you have to know for you to just read a function and say "Yea, this function on plugin #34 is causing the memory leak". Or does it just come as common sense as time goes on?
 
  • Haha
Reactions: Z3r0K00l

nefernefer

Newbie
Feb 9, 2021
23
8
The dev noticed how perfomance heavy the game was, his solution? compress the images to a lower quality. As if 2d still images are that intensive.
Thank you for a reply. This would explain the difference in size in MB, but doesn't explain almost twofold difference in the files count.
 
Aug 4, 2017
280
464
but doesn't explain almost twofold difference in the files count.
What files specifically? like the ones in the directory? devs sometimes leave files there that shouldnt be left in the final version because they arent required for the game to run. could you name a few of them?
 

Maxxxing

Member
Sep 2, 2018
246
213
So, i found the leak and fixed it. Turns out the function which drew the time on the top right of the screen was creating a new bitmap object every frame and that resulted in massive ram usage. This leak was most noticeable in battles and caused the game to drop to one fps and crash eventually (unless you got massive amounts of ram and a SSD).
The function in questions was in line 382 of the RBR_Core.js plugin, whose name was "displayText".

JavaScript:
Sprite_Time.prototype.displayText = function () {
  this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
I just added a conditional check to stop it from creating a new object every god damn frame:
JavaScript:
Sprite_Time.prototype.displayText = function () {
  // if the object exists dont instantiate it again.
  if(!this.bitmap) this.bitmap = new Bitmap(Graphics.width, Graphics.height);
  this.bitmap.clear();
  this.opacity = 255;
  if (SceneManager._scene instanceof Scene_Battle)
    this.bitmap.drawText($lgcMgr.formatTime(), Graphics.width - 100 - 150, 60, 100, 30, 'right');
  else if (SceneManager._scene instanceof Scene_Menu)
    this.bitmap.drawText($lgcMgr.formatTime(), 130, 330, 100, 30, 'left');
This bug is still present in version 1.1.3 and i dont know if the author fixed it in version 1.1.4 the patch notes dont mention it so im guessing no.

This means that the author can stop downgrading the graphics and give us back the HD pictures that were in the 1.0 release.

You can change the code like i did or you can just overwrite your RBR_Core.js file with mine, just unzip it and drop it in js/plugins/ and overwrite the file.

There might be more bugs left but this one was game breaking, the rest are up to the dev.
You're a god damn legend! Thanks man!
 
2.90 star(s) 32 Votes