hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.14k stars 2.16k forks source link

(PoC) Gettings PSP Remasters running #1494

Closed B1ackDaemon closed 5 years ago

B1ackDaemon commented 11 years ago

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

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 commented 11 years ago

Cool stuff :)

VIRGINKLM commented 11 years ago

Just, wow.

hrydgard commented 11 years ago

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 commented 11 years ago

@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.

realrunners commented 11 years ago

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

VIRGINKLM commented 11 years ago

@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 commented 11 years ago

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

-[Unknown]

B1ackDaemon commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

Send a pull request whenever you feel like it :)

unknownbrackets commented 11 years ago

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

-[Unknown]

srdjan1995 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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

VIRGINKLM commented 11 years ago

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

srdjan1995 commented 11 years ago

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

B1ackDaemon commented 11 years ago

@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 commented 11 years ago

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 commented 11 years ago

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 42a4a1e4ba2561677f71e519d4ca5060974a9bf1

zzq920817 commented 11 years ago

Cool !!!!!!! :P

VIRGINKLM commented 11 years ago

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

VIRGINKLM commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

@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 commented 11 years ago

@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 commented 11 years ago

@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 commented 11 years ago

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

VIRGINKLM commented 11 years ago

Ugh, the version. You still need a list. But there aren't many Remasters and I highly doubt that alot more will come out.

srdjan1995 commented 11 years ago

I wanted to ask something.. Does these remastered games have to be in iso format? My friend have Monster Hunter 3rd HD for PS3 and it's not in iso format.. I will take the game from here, so i ask do i have to make iso of those files, or there is some file inside game that PPSSPP can open? Tnx in advance, and sorry for my bad english. I hope you understood what i was asking. :)

VIRGINKLM commented 11 years ago

Long story short, you'll have to pick the instalation folder from PS3's HDD which requires a CFW. I guess there's no other way.

srdjan1995 commented 11 years ago

@VIRGINKLM, hey man, can u picture folder of game so i can see what files are in there? So then i can compare to my friends.. If u have game, and if ur willing to do that.. Tnx u :)

VIRGINKLM commented 11 years ago

I don't own anymore a PS3, it YLOD'd a year ago but I remember the structure of the games and I can guess what PPSSPP does to load them.

srdjan1995 commented 11 years ago

@VIRGINKLM, ok, tnx u for answer... I will get game tomorrow and try it.. Tnx again ;)

betrayedAngel commented 11 years ago

This thread is interesting, after i read the whole conversation actually I had a question. Is there any plan for further build so that ppsspp could boot-up/run PSP-Remaster games? I mean if our platform support to run those kind of games, and the dev teams have a good reason to make it possible it would be great.

thanks in advance. :)

thedax commented 11 years ago

@hrydgard @unknownbrackets This issue can probably be closed safely now, since HD Remasters work. Opinions?

realrunners commented 11 years ago

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 commented 11 years ago

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]

realrunners commented 11 years ago

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 commented 11 years ago

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

-[Unknown]

thedax commented 11 years ago

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..

realrunners commented 11 years ago

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

unknownbrackets commented 11 years ago

How far off are these games nowadays?

-[Unknown]

hrydgard commented 11 years ago

Hm, they mostly run, don't they?

realrunners commented 11 years ago

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 commented 10 years ago

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 e6320f27269906962cfc97761ed9d18c920b294d 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 e6320f27269906962cfc97761ed9d18c920b294d 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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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