11 March 2016 - Forum Rules

Main Menu

How do I skip an operation, or a section of code?

Started by the_E_y_Es, April 01, 2019, 10:54:23 AM

Previous topic - Next topic


That's some real progress. Now I'm wondering if it's possible to remove the roulette but still display the text for Congratulations, Score, Map Completion and Riskbreaker Rank. In your example, it would display up to and including the "GrandMaster Breaker" text; then it would skip to the loot phase. Specifically, it would remove only the "Press Button" text, the "O" circle button icon and the roulette itself. Maybe it's the difference between skipping a branch entirely and modifying the instruction it leads to.


Quote from: Valendian on April 06, 2019, 04:23:40 PM
The GPU debug window is absolutely one of the best tools pSX has to offer (even if it is extremely buggy). It let's you find things in record time. Here is a walk-through of how to make the most out of it.

Hello I'm trying to accomplish a similar feat with another game called RPG Maker for the Playstation 1 and this thread is very helpful especially the detailed steps provided by Valendian.

So I'm trying to disable a certain effect in the game but I'm having difficulty doing it. Basically I want to transport a character from one area of a map to another area in the same map.

There's a function in game called "Move Location" and it does let you move a character to any part of the grid, however it has fade in/out transitions when doing so. There are 4 effects to choose from (black, white, black melt, white melt) but none for a instant teleport.

The reason I want this feature is because I'm able to replace the game assets with custom art and I want to use it for animation effects such as special moves or FMV style cut scenes. I'm able to load 480x360 sprite sheets and i want to place the frames on different areas of the map so that I can use the Move Location command to instantly transport to the next frames similar to like a flip book. The problem is those transition effects would show in between each frame.

So I've been researching MIPS and following the steps outlined in this thread. However I still can't achieve the effect I want.

Here's a breakdown of what I did:

first I created an event in the game so that when the character touches the treasure chest it'll move the character back 3 steps.

then I went to GPU->Capture to capture the frames when the transition effect is activated

Next I copied the Program Counter 800303d4 and added a breakpoint at the address 0x800303d4

It stopped the game before I touched the treasure chest so I inspected the callstack and tried adding a breakpoint at the address 0x0003003c and this time it stopped when I touch the treasure chest so I assume this one is correct.

now the next step I'm a bit confused where the step is to "Get rid of that conditional branch and test". I assume this means blanking the sequence out with zeros?

I couldn't figure out how to do in PSX so I used NO$PSX instead and went to the 0x0003003c address in memory.

Finally I blanked it out with zeros and tested it

The fade effect was gone however it still blacks out quickly and the time it takes for the character to move the location is the same. I tried randomly adding zeros to other offsets in the memory and at one point the character sprite still displayed rather than disappearing  but I really have no idea how to achieve the desired effect I want or if it's even possible without reverse engineering the game's exe.

It is possible to achieve this effect in the game's Editor mode where if we press the L1/R1 buttons the camera would instantly move to the next event but this is in the Editor mode only.

Any help would be greatly appreciated. Also there's a file named RPG3.exe in the RPG Maker disc and that's where these instruction sequences can be found.

August 14, 2020, 01:06:07 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

The address might be at 0x8001826c rather than 0x0003003c.

This is the best I can do

I'm thinking maybe it reloads the dungeon map data and that's why it's not instant. I might have to look into other event functions in the game like moving the character to a specific point on the map but somehow skipping the walking animation. I don't know sounds intricate.