Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(PoC) Gettings PSP Remasters running #1494

Closed
B1ackDaemon opened this issue Apr 23, 2013 · 63 comments
Closed

(PoC) Gettings PSP Remasters running #1494

B1ackDaemon opened this issue Apr 23, 2013 · 63 comments

Comments

@B1ackDaemon
Copy link

After some experiments i managed to get some PSP remasters at least show something. :D

Dialog message from Shin Sangoku Musou - Multi Raid 2 HD [NPJB-40003]
http://rghost.net/45500313/image.png

Ingame from K-ON Houkago Live HD [NPJB-40002]
http://rghost.net/private/45499838/86e3a668a65543ec3a05c75cee37176c

Unfortunately due to lack of mine coding skills this method needs improvements. Ok, how it works:
Core/MemMap.h

  • line 67, " inline u32 PSP_GetUserMemoryEnd() { return 0x0B800000;} "
    according to http://www.ps3devwiki.com/wiki/Emulation#PSP_HD_Remasters max. size of RAM, which is used in Eiyuu Densetsu Sora no Kiseki FC Kai HD Edition is 0x03000000 (another remasters using 0x02800000)
  • line 103, " RAM_SIZE = 0x4000000, "

Unfortunately, just those changes isn't enoght, and i got error messages with allocating additional memory. Log - http://rghost.net/45501037

As temporary solution to avoid this i done changes below. I know, it's wrong, but at least it do the trick with few remasters.
Core/MemmapFunctions.cpp
else if ((address & 0x3E000000) != 0x08000000)

Thanks in advance! :)

@hrydgard
Copy link
Owner

Cool stuff :)

@VIRGINKLM
Copy link
Contributor

Just, wow.

@hrydgard
Copy link
Owner

It appears the PS3 has an emulator that emulates an enhanced PSP with support for more RAM and bigger textures than a real one, and this is how the PSP remasters are done. Crazy stuff :)

@VIRGINKLM
Copy link
Contributor

@hrydgard I pointed this out like a year ago on PS3HaX forum, I can even see what's going on with a debug firmware. The emulator on PS3 actualy emulates the developer version of PSP (higher specs). There were 2 revisions of that dev console, one had 128MB of RAM and the other 192MB. They intrestingly also offered 2 video feeds, saperately one on the device itself which was 480x272 and another one with an external cable that was showing debug info or was actually showing the game as is on 1024x580. There's a very simmilar thing for PSVita and 3DS.

@Darth1701
Copy link
Contributor

1024x580? Very interesting. This could explain why there are graphic errors on JPCSP when using 2x (960x544)

@VIRGINKLM
Copy link
Contributor

@Darth1701 PS3 renders PSP/minis as default at 1024x580, you can also change that to 480x272 and 960x544 but you need to modify some stuff on your PS3. PSVita does something simmilar. This though doesn't explain anything about JPCSP and other emulator errors.

@unknownbrackets
Copy link
Collaborator

It may fix it to change the 0x3E000000 to 0x3C000000 in MemmapFunctions. This should allow 64 mb, I think.

-[Unknown]

@B1ackDaemon
Copy link
Author

Monster Hunter Portable 3rd HD now goes ingame, and looks very nice! :) Unfortunately, it requires right analog stick to control camera. :(

http://www.youtube.com/watch?v=lOlvkMS2D_s

@hrydgard
Copy link
Owner

It should be very easy to add support for the right analog stick, JPCSP has got it figured out recently:

https://code.google.com/p/jpcsp/source/detail?r=3112

@B1ackDaemon
Copy link
Author

Dynasty Warriors Strikeforce 2 HD now also goes ingame (still unstable, but :P) after changing u32->u64 "SimpleBuf tmpTexBufRearrange;" (TextureCache.h, line 148).
http://rghost.ru/private/45620103/88bf1b3e1e25d173f3bef8d10426d04d

@hrydgard , thanks a lot for getting this one also working! ;)

@hrydgard
Copy link
Owner

Send a pull request whenever you feel like it :)

@unknownbrackets
Copy link
Collaborator

@B1ackDaemon do textures work fine without that change now in master?

-[Unknown]

@srdjan1995
Copy link

Are those PSP remastered games for PS3 or just HD version of PSP games? On internet i found only some informations about PSP remastered games for PS3, but nothing about HD versions of PSP games. So, which one are those HD games?

@VIRGINKLM
Copy link
Contributor

Well, what you said actually answered the question since one of the possibility doesn't actualy make sense so the other must be correct. PSP is not an HD console. Those games are PSP "Remasters" (pun intended) for PS3 that they run on PS3's PSP emulator. They are a pkg file that is mostly the contents of the PSP iso with updated textures etc, I guess you could make a PSP run them too, not sure how good but very theoriticaly it's kinda compatible.

@srdjan1995
Copy link

Ok.. But how to run those HD games on PPSSPP? I saw BlackDeamon runned Monster Hunter 3rd HD ver. on PPSSPP..

@VIRGINKLM
Copy link
Contributor

It's not really easy and you need to own a PS3 that is hacked.

@srdjan1995
Copy link

@VIRGINKLM Oh, then i can't do it.. I don't have a hacked PS3. :( :(

@B1ackDaemon
Copy link
Author

@hrydgard , unfortunately, i think it's still not finished for pull request - some games, like Pirates of Caribbean: Dead Man's Chest (this one using external loader) brokes after adding more ram (although, it's working on Jpcsp with forced more ram :p) (Log - http://pastie.org/7746924 ) ; / (Log from normal version, without memory patching - http://pastie.org/7746937 )

Btw, checked latest remaster - Eiyuu Densetsu Sora no Kiseki SC Kai HD, this one using >64Mb ram, after adding additional 16Mb i got it working on Jpcsp. (0x0BBFFFFF to 0x0CBFFFFF)
http://rghost.ru/private/45666833/7e46f0584369892ed1cbc767e87e4b33

@VIRGINKLM
Copy link
Contributor

Well if PSP remasters start to work properly then the last thing that is left to make Sony look stupid is implement that:
https://code.google.com/p/psp3dplugin/

@B1ackDaemon
Copy link
Author

Thanks a lot to [Unknown] for recent findings, Dynasty Warriors Strikeforce 2 HD looks like playable now. ;)
http://www.youtube.com/watch?v=theSpPyIHjs
And some graphics improvements in K-ON Houkago Live HD. :)
http://rghost.ru/private/45701515/c59b3b42f975288406bff5743739cd5a

Requires adding changes to GPU\GLES\TextureCache.cpp, based on 42a4a1e

  • line 304, "int mask = 0x7FF;"
  • line 820, "int bufw = gstate.texbufwidth[0] & 0x7ff;"
  • line 867, "int bufw = gstate.texbufwidth[0] & 0x7ff;"
  • line 954, "int mask = 0x7ff;"
  • line 1244, "int mask = texaddr < 0x08800000 ? 0x1FFF : 0x7ff;"

@zzq920817
Copy link

Cool !!!!!!! :P

@VIRGINKLM
Copy link
Contributor

If I remember correctly, PSP remasters support Force Feedback too right?

@VIRGINKLM
Copy link
Contributor

Just for the record, as I said above, ALOT of those functions on PS3's PSP emulator that PS3 takes advantage for the remasters are basicaly straight from the developer hardware of PSP, for example, you could choose the available RAM manually (revisions would let you select up to 512MB of RAM, obviously for debugging headroom, later used for remasters)
Here's a video: http://www.youtube.com/watch?v=b_CUwB5Fma0

@thedax
Copy link
Collaborator

thedax commented May 20, 2013

Were any texture changes needed to make Monster Hunter 3rd HD start a new game/load a saved game? On the latest builds it just crashes when trying to go ingame with these edits.

@VIRGINKLM
Copy link
Contributor

What about moving the changes needed to load a PSP remaster to a separate part so you would be able to normaly boot normal PSP games and PSP remasters without one affecting the other's compatibility?

@Venlorz
Copy link

Venlorz commented Jun 9, 2013

@B1ackDaemon : sir.. when I load the MHP3rd... it says, "the fail is corrupted"... though i downloaded the file without any interruption and the .iso is safe... how did you play on PPSSPP?? Pls reply.. tnx sir....

@hrydgard
Copy link
Owner

hrydgard commented Jun 9, 2013

@B1ackDaemon are you planning to put together a pull request soon? Do you know if we can easily detect that a game is a remaster so that we can turn on the bigger RAM and texture sizes etc?

@VIRGINKLM
Copy link
Contributor

@hrydgard The PARAM.SFO is different. Also you could make a list of remasters that check the name inside the PARAM.SFO that would trigger a RAM capacity change.

@hrydgard
Copy link
Owner

hrydgard commented Jun 9, 2013

Would be nicer to check for a common difference in the PARAM.SFO than having a list to check. What is the difference exactly?

@Darth1701
Copy link
Contributor

You could close the issue but the whole Sora no Kiseki series still does not work. Maybe because of the lack of implementation of the exdata feature or maybe memory related:

56:16:156 EmuThread.cpp:122 I[BOOT]: Done.
56:21:531 EmuScreen.cpp:57 I[BOOT]: Starting up hardware.
56:21:531 System.cpp:71 I[HLE]: PPSSPP v0.8.1-331-g7960bd0
56:21:531 MemArena.cpp:369 I[MM]: Found valid memory base at 08400000 after 30 tries.
56:21:531 MemMap.cpp:93 I[MM]: Memory system initialized. RAM at 08420000 (mirror at 0 @ 10400000, uncached @ 10400000)
56:21:593 Loaders.cpp:132 I[LOAD]: Identifying file...
56:21:593 PSPLoaders.cpp:107 I[LOAD]: ULJM05170 : Þï▒Úøäõ╝ØÞ¬¼ÒÇÇþ®║Òü«Þ╗îÞÀí´╝ª´╝ú
56:21:593 PSPLoaders.cpp:172 I[LOAD]: Loading disc0:/PSP_GAME/SYSDIR/EBOOT.BIN...
56:21:593 HLE\sceKernelMemory.cpp:164 I[HLE]: Kernel and user memory pools initialized
56:21:593 HLE\sceIo.cpp:298 I[HLE]: Starting up I/O...
56:21:593 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path C:\PPSSPP\ppsspp-org\memstick\
56:21:593 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists C:\PPSSPP\ppsspp-org\memstick\
56:21:593 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path C:\PPSSPP\ppsspp-org\flash0\
56:21:593 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists C:\PPSSPP\ppsspp-org\flash0\
56:21:609 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path cheats
56:21:609 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists cheats
56:21:609 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path C:\PPSSPP\ppsspp-org\memstick\PSP\PPSSPP_STATE
56:21:609 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists C:\PPSSPP\ppsspp-org\memstick\PSP\PPSSPP_STATE
56:21:656 HLE\sceKernel.cpp:133 I[HLE]: Kernel initialized.
56:21:656 HLE\sceKernelModule.cpp:452 I[HLE]: Decrypting ~PSP file
56:21:734 C:\PPSSPP\ppsspp-org\Core/ELF/ElfReader.h:58 I[LOAD]: ElfReader: 0EBE0020
56:21:734 Util\BlockAllocator.cpp:359 I[HLE]: -----------
56:21:734 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
56:21:734 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08804000 - 08a33000 size 0022f000 taken=1 tag=ELF
56:21:734 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08a33000 - 0a000000 size 015cd000 taken=0 tag=(untitled)
56:21:750 ELF\ElfReader.cpp:516 N[LOAD]: ELF loading completed successfully.
56:21:796 HLE\sceKernelModule.cpp:554 I[LOAD]: Module kernel: 08a16fc0 089d6964 089d697c
56:21:796 HLE\sceKernelModule.cpp:721 I[HLE]: Exporting ent 0 named kernel, 2 funcs, 4 vars, resident 089d6d44
56:21:796 HLE\sceKernelModule.cpp:944 I[LOAD]: Module entry: 08804108
56:21:953 root         N[BOOT]: EmuScreen.cpp:101 Loading D:\GAMES\PSP\UMD\ULJM-05170.iso...
56:21:953 root         I[HLE]: HLE\sceKernelThread.cpp:1889 276=sceKernelCreateThread(name=user_main, entry=08804228, prio=20, stacksize=327680)
56:21:953 root         I[HLE]: HLE\sceKernelThread.cpp:1932 sceKernelStartThread(thread=276, argSize=33, argPtr=09fffe00)
56:21:953 root         I[HLE]: HLE\sceKernelThread.cpp:2018 __KernelReturnFromThread: 0
56:21:953 user_main    E[HLE]: Util\BlockAllocator.cpp:58 Clearly bogus size: 024a3000 - failing allocation
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:359 -----------
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08804000 - 08a33000 size 0022f000 taken=1 tag=ELF
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08a33000 - 09fafc00 size 0157cc00 taken=0 tag=(untitled)
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fafc00 - 09fffc00 size 00050000 taken=1 tag=stack/user_main
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fffc00 - 0a000000 size 00000400 taken=0 tag=stack/root
56:21:953 user_main    E[HLE]: HLE\sceKernelMemory.cpp:527 ARGH! sceKernelAllocPartitionMemory failed
56:21:953 user_main    E[HLE]: Util\BlockAllocator.cpp:58 Clearly bogus size: 024a3000 - failing allocation
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:359 -----------
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08804000 - 08a33000 size 0022f000 taken=1 tag=ELF
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08a33000 - 09fafc00 size 0157cc00 taken=0 tag=(untitled)
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fafc00 - 09fffc00 size 00050000 taken=1 tag=stack/user_main
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fffc00 - 0a000000 size 00000400 taken=0 tag=stack/root
56:21:953 user_main    E[HLE]: HLE\sceKernelMemory.cpp:527 ARGH! sceKernelAllocPartitionMemory failed
56:21:953 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //----------------------------------------------//
56:21:953 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout:
56:21:953 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //                                              //
56:21:953 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout:
56:21:953 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: // YamanekoCoreSystem Init                      //
56:21:953 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout:
56:21:953 user_main    E[HLE]: Util\BlockAllocator.cpp:58 Clearly bogus size: 024a3000 - failing allocation
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:359 -----------
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08804000 - 08a33000 size 0022f000 taken=1 tag=ELF
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08a33000 - 09fafc00 size 0157cc00 taken=0 tag=(untitled)
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fafc00 - 09fffc00 size 00050000 taken=1 tag=stack/user_main
56:21:953 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fffc00 - 0a000000 size 00000400 taken=0 tag=stack/root
56:21:953 user_main    E[HLE]: HLE\sceKernelMemory.cpp:527 ARGH! sceKernelAllocPartitionMemory failed
56:21:953 user_main    W[MM]: MemmapFunctions.cpp:122 WriteToHardware: Invalid address 00000000

@unknownbrackets
Copy link
Collaborator

Hmm, sceKernelAllocPartitionMemory(). Sounds like it doesn't have enough memory.

Hmm, Clearly bogus size: 024a3000 is 36.6367 MB. That is not clearly bogus. So it definitely seems like this game is not being given the larger amount of memory.

@Darth1701, does it help to change anything in Core/HDRemaster.h?

Also, what was the exdata feature again? I remember you mentioned it before. It was for data outside the iso?

-[Unknown]

@Darth1701
Copy link
Contributor

I have not looked into the file yet but this is surely wrong:
{ "BLJM85004", 0x4000000, 0x0BBFFFFF, true }, // Eiyuu Densetsu Sora no Kiseki FC Kai HD Edition
As you can see in the log before it uses the some ID as the UMD game: ULJM05170. Changing the line to:
{ "ULJM05170", 0x4000000, 0x0BBFFFFF, true }, // Eiyuu Densetsu Sora no Kiseki FC Kai HD Edition
makes the game at least allocate the memory:

59:48:484 EmuThread.cpp:122 I[BOOT]: Done.
59:52:859 EmuScreen.cpp:57 I[BOOT]: Starting up hardware.
59:52:859 System.cpp:71 I[HLE]: PPSSPP v0.8.1-332-ga599bf7
59:52:859 MemArena.cpp:369 I[MM]: Found valid memory base at 0C400000 after 46 tries.
59:52:859 MemMap.cpp:93 I[MM]: Memory system initialized. RAM at 08100000 (mirror at 0 @ 14400000, uncached @ 14400000)
59:52:921 Loaders.cpp:132 I[LOAD]: Identifying file...
59:52:921 PSPLoaders.cpp:107 I[LOAD]: ULJM05170 : Þï▒Úøäõ╝ØÞ¬¼ÒÇÇþ®║Òü«Þ╗îÞÀí´╝ª´╝ú
59:52:921 PSPLoaders.cpp:172 I[LOAD]: Loading disc0:/PSP_GAME/SYSDIR/EBOOT.BIN...
59:52:921 HLE\sceKernelMemory.cpp:164 I[HLE]: Kernel and user memory pools initialized
59:52:921 HLE\sceIo.cpp:298 I[HLE]: Starting up I/O...
59:52:921 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path C:\PPSSPP\ppsspp-org\memstick\
59:52:921 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists C:\PPSSPP\ppsspp-org\memstick\
59:52:921 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path C:\PPSSPP\ppsspp-org\flash0\
59:52:921 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists C:\PPSSPP\ppsspp-org\flash0\
59:52:937 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path cheats
59:52:937 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists cheats
59:52:937 FileUtil.cpp:204 I[COMMON]: CreateFullPath: path C:\PPSSPP\ppsspp-org\memstick\PSP\PPSSPP_STATE
59:52:937 FileUtil.cpp:208 I[COMMON]: CreateFullPath: path exists C:\PPSSPP\ppsspp-org\memstick\PSP\PPSSPP_STATE
59:52:984 HLE\sceKernel.cpp:133 I[HLE]: Kernel initialized.
59:52:984 HLE\sceKernelModule.cpp:452 I[HLE]: Decrypting ~PSP file
59:53:062 C:\PPSSPP\ppsspp-org\Core/ELF/ElfReader.h:58 I[LOAD]: ElfReader: 10C00020
59:53:062 Util\BlockAllocator.cpp:359 I[HLE]: -----------
59:53:062 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
59:53:062 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08804000 - 08a33000 size 0022f000 taken=1 tag=ELF
59:53:062 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08a33000 - 0bbfffff size 031ccfff taken=0 tag=(untitled)
59:53:078 ELF\ElfReader.cpp:516 N[LOAD]: ELF loading completed successfully.
59:53:125 HLE\sceKernelModule.cpp:554 I[LOAD]: Module kernel: 08a16fc0 089d6964 089d697c
59:53:125 HLE\sceKernelModule.cpp:721 I[HLE]: Exporting ent 0 named kernel, 2 funcs, 4 vars, resident 089d6d44
59:53:125 HLE\sceKernelModule.cpp:944 I[LOAD]: Module entry: 08804108
59:53:281 root         N[BOOT]: EmuScreen.cpp:101 Loading D:\GAMES\PSP\UMD\ULJM-05170.iso...
59:53:281 root         I[HLE]: HLE\sceKernelThread.cpp:1889 276=sceKernelCreateThread(name=user_main, entry=08804228, prio=20, stacksize=327680)
59:53:281 root         I[HLE]: HLE\sceKernelThread.cpp:1932 sceKernelStartThread(thread=276, argSize=33, argPtr=0bbffd00)
59:53:281 root         I[HLE]: HLE\sceKernelThread.cpp:2018 __KernelReturnFromThread: 0
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:359 -----------
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08804000 - 08a33000 size 0022f000 taken=1 tag=ELF
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 08a33000 - 0aed6000 size 024a3000 taken=1 tag=UserSbrk
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 0aed6000 - 0bbafb00 size 00cd9b00 taken=0 tag=(untitled)
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 0bbafb00 - 0bbffb00 size 00050000 taken=1 tag=stack/user_main
59:53:281 user_main    I[HLE]: Util\BlockAllocator.cpp:363 Block: 0bbffb00 - 0bbfffff size 000004ff taken=0 tag=stack/root
59:53:296 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //----------------------------------------------//
59:53:296 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //                                              //
59:53:296 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: // YamanekoCoreSystem Init                      //
59:53:406 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //                                              //
59:53:406 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: // YamanekoFileSystem Init                      //
59:53:406 user_main    I[HLE]: HLE\sceKernelThread.cpp:1889 299=sceKernelCreateThread(name=AR_THREAD, entry=08978f88, prio=20, stacksize=49152)
59:53:406 user_main    I[HLE]: HLE\sceKernelThread.cpp:1932 sceKernelStartThread(thread=299, argSize=0, argPtr=00000000)
59:53:406 user_main    I[HLE]: HLE\scePower.cpp:243 scePowerSetClockFrequency(333,333,166)
59:53:406 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //                                              //
59:53:406 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: // YamanekoGraphicSystem Init Start...          //
59:53:406 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //     Texture Manager Format Finished...       //
59:53:421 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //     Memory Format Finished...                //
59:53:421 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //     Draw Format Finished...                  //
59:53:421 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: // Yamaneko All Green                           //
59:53:421 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //                                              //
59:53:421 user_main    I[HLE]: HLE\sceIo.cpp:581 stdout: //----------------------------------------------//
59:53:421 user_main    W[HLE]: FileSystems\MetaFileSystem.cpp:83 RealPath: inPath is all prefix and no path: "umd0:"
59:53:421 user_main    W[HLE]: FileSystems\MetaFileSystem.cpp:83 RealPath: inPath is all prefix and no path: "umd0:"
59:53:578 user_main    W[MM]: MemmapFunctions.cpp:122 WriteToHardware: Invalid address 04800000

In JPCSP the UMD_DATA.bin was used to difference between the UMD version and the HD version.

Yes, the exdata are files outside the ISO file. It is called like this: exdata0:/data/map3/t0311.map and it points to a directory outside the ISO. In JPCSP it is in the same directory as Memstick and so on but preferable it would be at the same location as the ISO with some unique ID, f.e. ULJMxxxx-exdata0

@unknownbrackets
Copy link
Collaborator

04800000 is the address of the end of VRAM, so I think this game needs more VRAM too.

-[Unknown]

@thedax
Copy link
Collaborator

thedax commented Jul 12, 2013

I got my hands on Eiyuu FC and it seems to need 76MB of system RAM as Darth1701 suggested, but it also seems to need double the VRAM as well, to stop the invalid errors, as unknown thought.

As for the exdata thing(it's an extra folder that comes with the game, external to the ISO, having about 1.8GBytes of supplemental maps and such, required for gameplay it seems), I tried implementing it as a DirectoryFileSystem, but it didn't seem to work(still saying file not found, etc.). Thoughts? Should it be a VFS object instead, like flash0? Hmm..

@Darth1701
Copy link
Contributor

I think Sora FC only needs 64 MB but SC and 3rd need 76 MB RAM.

@unknownbrackets
Copy link
Collaborator

How far off are these games nowadays?

-[Unknown]

@hrydgard
Copy link
Owner

hrydgard commented Sep 2, 2013

Hm, they mostly run, don't they?

@Darth1701
Copy link
Contributor

The Kiseki series HD does not work for various reasons: missing implementation of exdata, same UMD-ID as original non-HD releases, other unknown problems

@B1ackDaemon
Copy link
Author

Update for "Eiyuu Densetsu Sora no Kiseki" remasters using latest git builds. :)

How to:

  1. Uncomment game strings in Core\HDRemaster.h
  2. Place decrypted exdata0 contents to memstick folder and add following code in Core\HLE\sceIo.cpp
    pspFileSystem.Mount("exdata0:", memstickSystem);
    pspFileSystem.Unmount("exdata0:", memstickSystem);

Results:
Eiyuu Densetsu Sora no Kiseki the 3rd Kai HD [NPJB-00360] - crashes PPSSPP.
Eiyuu Densetsu Sora no Kiseki FC Kai HD [NPJB-00293] - it's possible to reach menu and start new game. Unfortunately, it will stuck on loading screen.
Eiyuu Densetsu Sora no Kiseki SC Kai HD [NPJB-00334] - game seems running fine.

Debug logs from modified e6320f2 for "Eiyuu Densetsu Sora no Kiseki the 3rd Kai HD [NPJB-00360]" and "Eiyuu Densetsu Sora no Kiseki FC Kai HD [NPJB-00293]"
http://rghost.ru/private/50196378/249d92ceb14bb1f270ad31b0a69001f8

Debug log from modified e6320f2 for "Eiyuu Densetsu Sora no Kiseki SC Kai HD [NPJB-00334]":
http://rghost.ru/private/50199672/aa379321dda6602aad2edbba74b6693b

Video from "Eiyuu Densetsu Sora no Kiseki SC Kai HD [NPJB-00334]" running:
http://rghost.ru/private/50197456/82d6798290f4eaf18a3fc69b914b7921

@VIRGINKLM
Copy link
Contributor

http://www.psdevwiki.com/ps3/Emulation#Special_notes
Some intresting stuff inside PS3's PSP emulator that could potentialy help PSP Remasters on PPSSPP.

@thedax
Copy link
Collaborator

thedax commented Jan 13, 2014

Eiyuu FC HD is booting now, but even with added exdata support, it's still got a few problems. Here's a snippet of what it's complaining about:

user_main    E[IO]: HLE\sceIo.cpp:752 sceIoRead Reading into bad pointer 00000000
user_main    I[IO]: HLE\sceIo.cpp:841 stdout: !Err! mem damage
-A bunch of Read/Write warnings generated by PPSSPP omitted-
user_main    I[IO]: HLE\sceIo.cpp:841 stdout: !Err! mem tarine
-Some time later-
user_main    I[IO]: HLE\sceIo.cpp:841 stdout: !Err! mallocv size 0

If someone could translate what "tarine" means, it might give us a valuable clue.

@thedax
Copy link
Collaborator

thedax commented Jan 14, 2014

Here's a log with the sceIo stuff cranked up to notice log/verbose log:

https://gist.github.com/thedax/82361295dd0386a60403/raw/c6c8220ebb79a622667c5511d580acc50d96b434/gistfile1.txt

@unknownbrackets
Copy link
Collaborator

I think that Trails in the Sky also reads into a null pointer. From initial testing, this causes a PSP to crash... so I still need to figure out what we're doing wrong. It seemed atrac related.

Edit: but that looks maybe mpeg related.

-[Unknown]

@B1ackDaemon
Copy link
Author

Rechecked "Eiyuu Densetsu Sora no Kiseki FC Kai HD [NPJB-00293]" and "Eiyuu Densetsu Sora no Kiseki the 3rd Kai HD [NPJB-00360]" on latest commit 652008e - now they also working fine.

Video test: rghost.net/52106268

@unknownbrackets
Copy link
Collaborator

So the only problems left here are:

  • Detecting remasters in a few remaining cases.
  • exdata

Is that right?

-[Unknown]

@B1ackDaemon
Copy link
Author

@unknownbrackets, there is another one issue, of which i forgot a bit - 720p videos in avi container (USRDIR\data\movie).
http://pastie.org/private/9dmbzgca5mxnq0pzbh2q

@hrydgard
Copy link
Owner

hrydgard commented Feb 1, 2014

@B1ackDaemon, looks like ffmpeg detects the video channel of that movie just fine - but I guess the emulator isn't equipped to handle such high resolution output from ffmpeg. What happens and which game is that?

@B1ackDaemon
Copy link
Author

@hrydgard, games just skipping videos. Looking into logs i noticed this:

57:50:429 user_main I[ME]: hle\scempeg.cpp:365 sceMpegInit()
57:50:429 idle0 D[KERNEL]: hle\scekernelthread.cpp:3207 Context switch: user_main -> idle0 (276->272, pc: 089f9e28->08000000, mpeg init) +0us
57:50:429 user_main D[KERNEL]: hle\scekernelthread.cpp:3207 Context switch: idle0 -> user_main (272->276, pc: 08000000->089f9e28, idle) +750us
57:50:429 user_main W[MM]: core\memmapfunctions.cpp:94 ReadFromHardware: Invalid address 00000001
57:50:429 user_main W[ME]: hle\scempeg.cpp:1505 UNIMPL sceMpegAvcResourceInit(00000001): bad mpeg handle
57:50:430 user_main D[KERNEL]: hle\scekernelsemaphore.cpp:249 sceKernelDeleteSema(335)
57:50:430 user_main W[ME]: hle\scempeg.cpp:735 sceMpegAvcDecodeStop(0a7f6af0, 00000200, 0cbfeab4, 0cbfeab0): bad mpeg handle
57:50:430 user_main I[ME]: hle\scempeg.cpp:1121 sceMpegFinish(...)

HD remasters, which affected:

  • Eiyuu Densetsu Sora no Kiseki FC Kai HD [NPJB-00293]
  • Eiyuu Densetsu Sora no Kiseki SC Kai HD [NPJB-00334]
  • Eiyuu Densetsu Sora no Kiseki the 3rd Kai HD [NPJB-00360]

Debug logs: http://rghost.ru/52118915

@unknownbrackets
Copy link
Collaborator

It looks like sceMpegAvcResourceInit isn't supposed to take a pointer, so possibly that is caused by b28f224.

-[Unknown]

@raven02
Copy link
Contributor

raven02 commented Feb 1, 2014

I tested some other games which use sceMpegAvcResourceInit , looks like it return either 0 or 1 (may be init = 1 , not init = 0 ?) . Check mpeg there is definitely wrong.

@B1ackDaemon
Copy link
Author

@unknownbrackets, ok, here is debug log from 53deef1
http://rghost.ru/52128010

@unknownbrackets
Copy link
Collaborator

It's using sceMp4 which we don't support yet.

-[Unknown]

@unknownbrackets
Copy link
Collaborator

So, it sounds like the videos actually do work now. And with the latest change, the games are all recognized by default.

Does anyone (ideally who has and therefore can test the remasters) want to summarize remaining issues? It sounds like they may be fully working.

-[Unknown]

@daniel229
Copy link
Collaborator

Just the MP4 still not play.

@unknownbrackets
Copy link
Collaborator

Given that remasters do run now, and we already have #1755 for mp4, I'm going to close this. #1755 even has a trace of syscalls.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests