Hacking Emulation POPS on PSP/Vita - Config Research

mrjaredbeta

Well-Known Member
Member
Joined
Mar 30, 2022
Messages
120
Trophies
0
Location
Wisconsin
XP
720
Country
United States
Hello, now I'm really curious, the latest Digimon 2003/3 CONFIGs besides fixing one another, I saw that cmd 0x11 in value: 0x80020D09 also fixes Bugs Bunny Lost in Time without any additional commands.
That means that specific address in PS1’s virtual memory is hit, and then the emulator does a cache clear (and event test in this case). I think it is really lucky that this works! Probably is not the best address to use, but if it works, it works.

@Webardo Very good description, I couldn’t have said it any better. The only thing is there is not necessarily a tolerance per se, but the game probably just hits that instruction in the function elsewhere. If the address was even +4 bytes, the game might not hit it as it would be in the game’s next function. So it really depends on where it hits. You can always breakpoint the offset in no$psx and see if it is hit, I am guessing it does so for Bugs Bunny.
 
  • Love
Reactions: The_Ho

Webardo

Well-Known Member
Member
Joined
Dec 13, 2022
Messages
207
Trophies
0
Age
19
XP
849
Country
Argentina
@Webardo Very good description, I couldn’t have said it any better. The only thing is there is not necessarily a tolerance per se, but the game probably just hits that instruction in the function elsewhere. If the address was even +4 bytes, the game might not hit it as it would be in the game’s next function. So it really depends on where it hits. You can always breakpoint the offset in no$psx and see if it is hit, I am guessing it does so for Bugs Bunny.
Oh, I understand. I though it was more of a per specific instruction and some more bytes. It's more of a way to flush cache for the function that uses this adress, right?

Then this means we can know which function is the one that crashed Bugs Bunny, so it should be possible to get a better adress for it (if there is any, of course).
 

mrjaredbeta

Well-Known Member
Member
Joined
Mar 30, 2022
Messages
120
Trophies
0
Location
Wisconsin
XP
720
Country
United States
Oh, I understand. I though it was more of a per specific instruction and some more bytes. It's more of a way to flush cache for the function that uses this adress, right?
Yeah, it clears emulator cache at that address, so it is pretty much entirely unrelated to the function it attaches to. It is more like command 0x11 is hooking the instruction in a function and telling it “Hey, I’m gonna stay right here and clear cache every time program counter is here, okay? You can do whatever you want, and I don’t necessarily care, but I’m going to do what I do.”

Then this means we can know which function is the one that crashed Bugs Bunny, so it should be possible to get a better adress for it (if there is any, of course).
Kind of. It is less about a specific function crashing the emulator and more about the game as a whole and how it works. I am really surprised that this just so happens to hit a spot that results in a working game, cause honestly I can see the emulator getting pretty picky on where to clear the cache. But yeah, there is probably a better place to land this command, unless this one perfectly hits somewhere that like is only ran once during loading or something.
 

NoobCycle

Active Member
Newcomer
Joined
Jun 22, 2019
Messages
34
Trophies
0
Age
31
XP
480
Country
Indonesia
here are the videos... above is FFV PAL converted to NTSC and then inserted a config...below is FFV 1.1 NTSC no config applied..
Post automatically merged:


here are the videos... above is FFV PAL converted to NTSC and then inserted a config...below is FFV 1.1 NTSC no config applied..
Looking at your video, the difference I noticed is the upper one is slightly quicker to load right? It's like using "Fast" Disc Load Speed on PS Vita. I forgot is PSP has that option as well?
Post automatically merged:

I can test it in a few hours. Amazing to know that this also helps with Bugs Bunny! Guess it also hits the adress by chance when loading comes into play (I did update the config before, disabling cmd 0x04 to make loading faster, perhaps you had a config from before that? Sorry about it). I'll see which has better performance overall, and re-submit if necessary.


You don't have a save before the Steam Knight, do you? As to compare wether or not the lag was there on PS1 too.


Did you try with disc speed set to fast?
Sorry, I don't have the save file for the Steam Knight boss fight anymore. The save file I have is already after the fight with Skullpion. Oh the slowdown is also occured in Skullpion fight when we attack the orb in Skullpion and then there's heavy glow effect. It's not really bothering the fight, but it's there.

For Jackie Chan Stuntmaster, yes I set my disc speed to Fast. The stuttering or slowdown is not as heavy as other game and appear more like a hiccup, but maybe because this is an action game and platforming, when it happens it can messed up the jump or combo. Or maybe it just my lack of skill to play this game hahahaha:lol:
 
Last edited by NoobCycle,
  • Like
Reactions: The_Ho and Webardo

Webardo

Well-Known Member
Member
Joined
Dec 13, 2022
Messages
207
Trophies
0
Age
19
XP
849
Country
Argentina
Kind of. It is less about a specific function crashing the emulator and more about the game as a whole and how it works. I am really surprised that this just so happens to hit a spot that results in a working game, cause honestly I can see the emulator getting pretty picky on where to clear the cache. But yeah, there is probably a better place to land this command, unless this one perfectly hits somewhere that like is only ran once during loading or something.
Guess you reverse-jinxed it? That one adress gets hit only once when loading a new scenario. I'm astonished at this.

Thanks @The_Ho, you found a pretty clean fix!

Wait, with working FMVs?
It'd be amazing if he had it working with FMVs, but the most likely answer is that he has a modified game file. Check this out.
 
Last edited by Webardo,

OPPAI_DAISUKI

Well-Known Member
Member
Joined
Jan 12, 2021
Messages
165
Trophies
0
Age
35
XP
512
Country
Philippines
Looking at your video, the difference I noticed is the upper one is slightly quicker to load right? It's like using "Fast" Disc Load Speed on PS Vita. I forgot is PSP has that option as well?
Post automatically merged:
Above video is set to Normal while the NTSC below is already set to FAST...thats why im surprised with the results...you dont even need that option...even on PE2...i inserted the config and set to FAST the MAP sometimes glitches but if its NORMAL is not glitching..
 
  • Like
Reactions: Webardo and The_Ho

The_Ho

Well-Known Member
OP
Member
Joined
Feb 5, 2022
Messages
248
Trophies
0
Location
RJ
XP
1,242
Country
Brazil
It's because the different regions of the game have differing memory offsets. They all have (mostly) the same instructions, just in different memory sections, so the only thing to do is search for the same instructions as the JP DW3 in the other versions. You can use no$psx to do this.
The adress I uploaded is the one that DW2003 has the same instructions in, and the one @mrjaredbeta uploaded does the same, but for the NTSC-U release.

The reason you had lag and other issues with the Parasite Eve 2 adress is because that one hit a specific instruction lots of times, flushing caché for every time it was called upon. The times it crashed was because the adress wasn't even used when loading new data.
The DW2003 adress must be hit much less often, and used in loading, thus working fine.

Seeing that the DW2003 config and the DW3 config both worked for the game shows that there's tolerance in a difference between adresses of at least 0x3F0.

That means that specific address in PS1’s virtual memory is hit, and then the emulator does a cache clear (and event test in this case). I think it is really lucky that this works! Probably is not the best address to use, but if it works, it works.

@Webardo Very good description, I couldn’t have said it any better. The only thing is there is not necessarily a tolerance per se, but the game probably just hits that instruction in the function elsewhere. If the address was even +4 bytes, the game might not hit it as it would be in the game’s next function. So it really depends on where it hits. You can always breakpoint the offset in no$psx and see if it is hit, I am guessing it does so for Bugs Bunny.

Ah yes, I think I know the method :unsure:, in this case I used BizHawk or Cheat Engine, I was mistaken thinking that the memory addresses were already easily described in the internal list haha, I'm an innocent boy haha

Thank you for your detailed explanation <3

===========================================

Guess you reverse-jinxed it? That one adress gets hit only once when loading a new scenario. I'm astonished at this.

Thanks @The_Ho, you found a pretty clean fix!


It'd be amazing if he had it working with FMVs, but the most likely answer is that he has a modified game file. Check this out.
Firstly I would like to thank you because you and @mrjaredbeta saved me the adventure of reducing yet another huge amount of bits, which I was about to give up on.

I'll report in detail and I think we can find a solution for Destruction Derby or Star Wars with the same method, but it was quite boring for me to do this, it took about 3 hours or more.

I remembered that I once tested BB LiT with SLPS02480 and the game started with good speed but it crashed at several points or had severe slowdowns when the effects appeared on the screen.

When comparing with @Webardo's CONFIg Cruzada I saw that there weren't many similarities as to why the game works with SLPS02480 and the first thing that came to mind was the memory address 0x11, so I left all the other commands aside and just applied 0x11 and yes it was him.

However, it worked very poorly, so I saw that 0x11 of the European PE2, despite being slower, was still stable, without crashes.

It was then that my suffering began, I decided to open the calculator in programmer mode and reduce the value 80023395 bit by bit (I made the decision to reduce it because the 0x11 in the JP version was superior and had less stability).

I reduced the decimal value between 100 and 200, finding several similar behaviors and sometimes with some improvement, until I reached "80020DC9" and the game seemed to work normally, but I found it very close to 0x11 from Digimon 2003 and decided to test that to my surprise it worked perfectly, so I preferred to report the ones from Digimon than 80020DC9 which is a less safe custom (???) perhaps.

What do I mean by DD2 or StarWars, that we can try in isolation to test in an "intuitive" way all the 0x11s from other games and observe if any cause any strange reactions, if so that means it can have some effect on and using a check of the memory instructions could shorten the path to finding a CONFIg for these that are unplayable...

What does POPs 3.02 have or do that makes DD2 work?, has anyone managed to observe this?
 
Last edited by The_Ho,

Webardo

Well-Known Member
Member
Joined
Dec 13, 2022
Messages
207
Trophies
0
Age
19
XP
849
Country
Argentina
What does POPs 3.02 have or do that makes DD2 work?, has anyone managed to observe this?
From 3.03 onwards, the GTE emulation probably changed. The GTE works in tandem with the GPU, doing lots of math. You can try games like CTR or Bugs Bunny in 3.02 and you'll see gaps between polygons.
"Unfortunately, I cannot get Destruction Derby 2 working. It seems like it is a problem with the GTE emulation of POPS. They must have changed it at some point and that is why it is working fine in early versions (but pause menu is working correctly in newer versions)." is what @mrjaredbeta said about this.
I've seen on another forum (elotrolado.net) that there was a patch for DD2 to be used with the PS2's POPS, but being posts from 9 years ago, I can't find it. :(
 

OPPAI_DAISUKI

Well-Known Member
Member
Joined
Jan 12, 2021
Messages
165
Trophies
0
Age
35
XP
512
Country
Philippines
here's another video... FFV PAL (ABOVE) converted to NTSC injected config VS FFV 1.1 (BELOW) NTSC injected config... Settings NORMAL
 

Attachments

  • 1.mp4
    43.4 MB
  • 2 (2) (2).mp4
    40 MB
  • Like
Reactions: The_Ho

mrjaredbeta

Well-Known Member
Member
Joined
Mar 30, 2022
Messages
120
Trophies
0
Location
Wisconsin
XP
720
Country
United States
I've seen on another forum (elotrolado.net) that there was a patch for DD2 to be used with the PS2's POPS, but being posts from 9 years ago, I can't find it.
Kozarovv and I already tested the POPStarter patch, reversed from POPStarter’s executable. It seems to be a different issue and does not fix the freeze, unfortunately.
Post automatically merged:

Guess you reverse-jinxed it? That one adress gets hit only once when loading a new scenario. I'm astonished at this.

Thanks @The_Ho, you found a pretty clean fix!
This is actually so hilarious and random, lol. The odds of this happening are very slim, so it is honestly kind of incredible. Very nice find @The_Ho !
 
Last edited by mrjaredbeta,
  • Like
Reactions: The_Ho and Webardo

NoobCycle

Active Member
Newcomer
Joined
Jun 22, 2019
Messages
34
Trophies
0
Age
31
XP
480
Country
Indonesia
Wait, with working FMVs?
No... all the FMVs were skipped.
Post automatically merged:

I also want to inform, After I tried creating custom EBOOT with pop_fe for Digimon World 2003 NTSC hack, I noticed the performance in battle is smoother. But I tried to start a new game, and then the game start crashing in the infamous spot (Asuka City Inn and Underground Path, West Wired Forest, Forest Inn, or in the Seabed) but the crash seems to happened randomly.

For now I'm back to using the eboot with fixes from @The_Ho. I already got to West Sector (Desert Area) without any crashing using this eboot.
Post automatically merged:

here's another video... FFV PAL (ABOVE) converted to NTSC injected config VS FFV 1.1 (BELOW) NTSC injected config... Settings NORMAL
So even on normal Disc Load Speed, there seems to be a speedup on screen transition. If this can be applied to FF VI and Chrono Trigger, it will be the fixed we all needed to make PSX version not be the worst version.
 
Last edited by NoobCycle,

OPPAI_DAISUKI

Well-Known Member
Member
Joined
Jan 12, 2021
Messages
165
Trophies
0
Age
35
XP
512
Country
Philippines
So even on normal Disc Load Speed, there seems to be a speedup on screen transition. If this can be applied to FF VI and Chrono Trigger, it will be the fixed we all needed to make PSX version not be the worst version.
i already tested Chrono Trigger 1.1 NTSC it really improved the game and for FFV and FFVI its gonna be tough to choose one between PAL/Converted to NTSC and real NTSC because of the big improvements... this is the code:
70 00 07 06 00 00 06 06 00 00 00 00 FF FF FF FF EE 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 05 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF EE 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 05 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 FF FF FF FF
Post automatically merged:

@The_Ho Hi Sir!!! how are you... i copied and tested your alundra 2 config to Xenogears and Grandia and it really help although there are still some minor slowdowns but its really different than before... maybe you can adjust one of those codes for further testing...or maybe there is still other code who will work for them... my current save in Grandia is at LUC Village... and when you test the code...just go outside the village inside the forest you will already notice the slowdown while running without the config...and then for Xenogears im currently at the city where the tournament will be held and its save called Operation Aveh... ill be here if you needed my save...and ive tested Chrono Trigger its even better in performance... for Chrono Cross maybe im gonna try other configs as the one i used for FFV and FFVI had the same performance with the original Chrono Cross without config...Legaia doesnt need also...im gonna be testing now Megaman X5 and X6 i know theres a long loading time before the stage starts but i cant remember which one of them....
 
Last edited by OPPAI_DAISUKI,
  • Love
Reactions: The_Ho

OPPAI_DAISUKI

Well-Known Member
Member
Joined
Jan 12, 2021
Messages
165
Trophies
0
Age
35
XP
512
Country
Philippines
@OPPAI_DAISUKI thank you for the code. If it's not troubling, is there a guide on how to apply this code to create the custom EBOOT? I read the threads and still confuse on how to do it.
thanks for sir @The_Ho and @Webardo for helping me and guiding me also.... if you are using HxD as hex editor just ctrl+f then type either the ID number of your PS1 game or the _SLUS_ _SCES_ SLES_ then on the offset left side... 2 offsets below the game id... it starts at 420 and 00 paste the code there... and ends at 520...im not really expert but the code i tested was on FFV worked well and also worked on FFVI then Chrono Trigger... FFV and VI are the most luckiest games..im happy now my favorite games ("which the majority said the worst") had the biggest improvement..no need to set FAST...
Post automatically merged:

@The_Ho GOOD NEWS SIR!!! your FF9 Config works on Digimon Rumble Arena... theres no more slowdown at the start of the battle... A BIG YESSSS FOR ME!!!.... hahahaha
 

Attachments

  • Untitled.png
    Untitled.png
    155.1 KB · Views: 16
Last edited by OPPAI_DAISUKI,
  • Love
  • Like
Reactions: Webardo and The_Ho

NoobCycle

Active Member
Newcomer
Joined
Jun 22, 2019
Messages
34
Trophies
0
Age
31
XP
480
Country
Indonesia
thanks for sir @The_Ho and @Webardo for helping me and guiding me also.... if you are using HxD as hex editor just ctrl+f then type either the ID number of your PS1 game or the _SLUS_ _SCES_ SLES_ then on the offset left side... 2 offsets below the game id... it starts at 420 and 00 paste the code there... and ends at 520...im not really expert but the code i tested was on FFV worked well and also worked on FFVI then Chrono Trigger... FFV and VI are the most luckiest games..im happy now my favorite games ("which the majority said the worst") had the biggest improvement..no need to set FAST...
Post automatically merged:

@The_Ho GOOD NEWS SIR!!! your FF9 Config works on Digimon Rumble Arena... theres no more slowdown at the start of the battle... A BIG YESSSS FOR ME!!!.... hahahaha
Thank you for the guide @OPPAI_DAISUKI and of course to @Webardo and @The_Ho. This is very informative and new learning experience for me.
 
Last edited by NoobCycle,
  • Like
Reactions: Webardo and The_Ho

The_Ho

Well-Known Member
OP
Member
Joined
Feb 5, 2022
Messages
248
Trophies
0
Location
RJ
XP
1,242
Country
Brazil
Thank you @OPPAI_DAISUKI then I will carry out some tests and compare.

Thank you for the results and your commitment.

The page contains a lot of teaching material in HEX on the subject, a lot of it is now on PSPDevWiki, it has super intelligent collaborators, capable of both teaching and learning from each other, I am also surprised by everyone's patience and politeness.

@NoobCycle .... Yes, convert it to EBOOT and then apply the CONFIGs and tests. Please, I recommend using "pop fe" for this, it already has some PPF patches, CONFIGs, and also audio conversion, which can avoid a lot of work that if it were an Eboot from another converter would generate a false-positive problem.
Post automatically merged:

Furthermore, if you find any errors with pop fe you can let us know here.

NOTE: Conversion errors using games with Hack, report here, I think reporting on the pop fe page could be polluting.

The focus at first is the nativity.

Regarding any Hack game, generally the problem is not with the po fe, but with the Hack.

And by posting here, contributors can try to create an individual patch.
Post automatically merged:

About you reconverting and the problems returning, it is not related to Pop fe... this occurred because the correction was not applied when you converted again.
 
Last edited by The_Ho,

mrjaredbeta

Well-Known Member
Member
Joined
Mar 30, 2022
Messages
120
Trophies
0
Location
Wisconsin
XP
720
Country
United States
Honestly, any PAL->NTSC hack shouldn’t even be necessary with POPS anyways as cmd -1 bit 3 exists. A proper configuration could be made for it and could be implemented in pop-fe-psp as a checkbox to force enable it for any PAL game you want to convert, whether it has a config or not. Something like this was already implemented by Ronnie for pop-fe-ps3.
 

The_Ho

Well-Known Member
OP
Member
Joined
Feb 5, 2022
Messages
248
Trophies
0
Location
RJ
XP
1,242
Country
Brazil
Honestly, any PAL->NTSC hack shouldn’t even be necessary with POPS anyways as cmd -1 bit 3 exists. A proper configuration could be made for it and could be implemented in pop-fe-psp as a checkbox to force enable it for any PAL game you want to convert, whether it has a config or not. Something like this was already implemented by Ronnie for pop-fe-ps3.
This implementation would already avoid a lot of pain. :rofl:

It would be brilliant.
 

NoobCycle

Active Member
Newcomer
Joined
Jun 22, 2019
Messages
34
Trophies
0
Age
31
XP
480
Country
Indonesia
Once again many thanks to @The_Ho and @OPPAI_DAISUKI for the guidance. I managed to create and test 3 custom EBOOT (Digimon World 2003 NTSC, Chrono Trigger USA v1.1, Final Fantasy 6 USA --> I think both of them are NTSC too):

1. Digimon World 2003 NTSC: using the fixes provided by @Webardo in page 35, haven't encountered any crash on the infamous spot (Asuka City Inn (Going inside and outside repeatedly and going to underground passage, sewer, and outside); West Wired Forest, and Forest Inn). The performance is also significantly better especially in battles.

2. Chrono Trigger v1.1: using the code given by @OPPAI_DAISUKI , on my vita using "Normal Disc Load Speed" there is an improvement on battle transition reducing the speed by 1 second, but opening party menu still has 4 second load. If I use "Fast Disc Load Speed", the battle transition and menu load got reduced by 1 second again, so the battle now start at 2 second and the party menu load at 3 seconds.

3. Final Fantasy VI v1.1: now this one interesting, using the same code for Chrono Trigger; I got the opposite result. Using "Normal Disc Load Speed", all transition become faster; but using "Fast Disc Load Speed", all transition become slower as if using normal disc load speed without applying the code.
 

Attachments

  • Chrono Trigger PSX Test.png
    Chrono Trigger PSX Test.png
    277 KB · Views: 26
  • Digimon World 2003 NTSC PSX Test.png
    Digimon World 2003 NTSC PSX Test.png
    233.9 KB · Views: 29
  • Final Fantasy 6 USA PSX Test.png
    Final Fantasy 6 USA PSX Test.png
    228.3 KB · Views: 28

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    BakerMan @ BakerMan: +1