Help with modding a PS1 game to skip a section of code

Post a topic about yourself to let others know your skills, hobbies, etc.
Post Reply
ponlork
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Mar 16, 2020

Help with modding a PS1 game to skip a section of code

Post by ponlork » August 15th, 2020, 1:25 am

Hello I'm working on modding a PS1 game called RPG Maker and there's a effect in the game that I want to disable but I'm not very knowledgeable in Assembly or programming.

Basically there's a function in the game called "Move Location" that let's us transport a character from one area on a map to another area of the same map, but the problem is that it has transition effects such as a fade in/out or melting effects. There's no effect for a instant teleport.

The reason I want this feature is because I'm able to replace the assets in the game with custom art and the game has these dungeon sample bitmaps which range anywhere from 240x240 to 480x360 in resolution and i want to use it as a sprite sheet to create animation effects for special attacks or FMV style cut scenes. My idea is to draw one frame on the map, then place the other frames outside the visible area and then use the Move Location function to have it jump from one frame to another.

The problem is there's like a 2-3 second transition effect in between each frame. I've detailed this dilemma on this romhacking site here: http://www.romhacking.net/forum/index.p ... #msg398877

What I did was tinker around with psxfin and NO$PSX even though I don't have any knowledge of ASM but I followed the steps outlined in the thread above to the best of my ability and used the debugger to capture frames just before the fade out effect is activated, then I placed a breakpoint analyzed the call stack to pin point where it's located. Then I used NO$PSX to add zeros to where the address was located in memory.

I believe the address is at 8001826c. i searched for the line of hex code in a file called RPG3.exe that's on the RPG Maker PS1 disc, and I patched 09 f8 40 00 21 20 c0 00 with zeros and here's what I got:

The fade in/out effect is gone but the screen still goes black. I was wondering if it's possible to modify it so the the screen doesn't go black? I assume that instead of moving the character, the RPG Maker engine is reloading the Map data which is why there's loading time and a black screen. I'll be content with the loading as long as it still has the image displayed before the next frame.

I also tried other ideas such as "moving the party" to another point on the grid where the characters walk there, that way it won't require loading, however the background would have to scroll unless I dim the screen before the party move.

interestingly enough, the effect that I want is possible in the Editor mode where if we press the L1/R1 buttons it'll immediately jump from one event to the next on the map grid. It only works in the editor mode though. I might demonstrate that later with a custom animation. It doesn't work in the actual game though.

So I was just wondering if it's feasible to achieve the desired effect I want? or is it too intricate. Any guidance would be greatly appreciated. Someday I would like to learn C and develop a real homebrew PS1 game using the official Psy-Q SDK but for now I'm only capable of modding games. and since RPG maker is a highly customizable game I thought it'll be a fun project to try making a little game with it. Thank you for your time.

Yagotzirck
Verified
Extreme PSXDEV User
Extreme PSXDEV User
Posts: 131
Joined: Jul 17, 2013

Post by Yagotzirck » August 15th, 2020, 7:47 am

You would increase your chances of someone actually helping you if you provided all the necessary resources to be analyzed, e.g. the exe/iso of the game + a savestate to the point you're talking about; otherwise, the best you can aim for is more or less accurate guesses.

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests