I succeeded in lauch hdloader game(dbz spaking neo) with usbmcemu, it work perfectly(i have rebuile the image with usbmcemu in)
I have test with burnout dominator but freeze on cheking memorycard(maybe with a real cd too)
I have activate mode3
|
|
|
|
Would you like to get all the new info from
PSX-Scene in your email each day?
Want to learn more about the team keeping you up to date with the latest scene news?
Read about them now! Check out our Developer bios, too! | ||
|
|
I succeeded in lauch hdloader game(dbz spaking neo) with usbmcemu, it work perfectly(i have rebuile the image with usbmcemu in)
I have test with burnout dominator but freeze on cheking memorycard(maybe with a real cd too)
I have activate mode3
I Got It !!!![]()
I solve my problem concerning passing modules ee ram pointer to mcs2emul elf.
It's "SifLoadElf" fonction which wipe memory, so modules are removed from ee ram.
But just after "SifLoadElf" call there is a "IopReset" call, so both ee and iop ram are wiped.
To solve this problem, gui place modules into iop with "MOD_INFO" struct like discuss earlier, and between "SifLoadElf" and "IopReset" calls, mcs2emul copy modules from iop to ee ram. It have just to load them before reseting iop, and load elf game.![]()
Sifsetdma work bidirectionaly, but you have to be in ee to send to iop, and in iop to send in ee, so that's not the way to copy iop data to ee ram from mcs2emul. For that i use some code from smem, diseabe interupt, enter in kernel mode, memcpy iop pointer + sub virtual memory to ee pointer, exit kernel mode, enable interupt. The job is done, and how fast !!!![]()
I replace all resetiop, loadmem, ... fonctions by ps2sdk ones, and port fakeboot under ps2sdk, so there remain just hdd modules ( dev9, atad, hdd, pfs ) which are not build under ps2sdk environnement. Everything work fine.![]()
To finish, mcs2emul is now only 27kb, instead of 201Kb, so we are maybe able to use a new gp adress to gain game compatibility ? Romz ?![]()
Other things, i'd like to release this version, but i'd like to know if i can use xmodules without any risks ?
Can i comment "lookmcman", "freemcman" calls in mcdump, or should it be better to remove access to mcdump for the moment ?
Best regards
Polo
I just can't understand how it is possible to gain game compatibility by changing GP register value. Games can have their own GP register settings and you can get the proper GP value from SifLoadElf when game's ELF is loaded.
You can add a code like this to MCDUMP:
and additional parameter "-nolock" to set nolock variable.Code:if (!nolock) VOIDPTR(pMcGetIoSema) = GetLibraryEntry("mcman", version, 53); else pMcGetIoSema = NULL;
You say sometinme ago, you want to use 0x82000 in linkfile but your elf didn't fit in this adress so i just wanted to know if that can be posible now ?
Great, i will add it to my code. Thanks.
I'd like to add usb virtual mc to the gui.![]()
I have to make some test with ffgriever module, but i prefer building it from the source, so i'll wait for them to release the V1.06 of our gui.![]()
Best regards
Polo
Last edited by Polo35; 06-04-2007 at 07:30 PM.
hey corentin could you explain how you went about loading it with hdloader? im interested and if i could get it to work that way i could start putting together somekind of compat list.
I don't think he means running with hdl. at best from what I read of his posts, he's running the elf stored on the hdd in a user created partition, and launching via uLE. And it seems, (but I can't be for sure since thier out of bandwidth for a while) that he's using the tutorial I had setup as SKSApps on it (alternate location for this tutorial is located here)
Nah, he has rebuilt game image (added usbmcemul.elf) and changed system.cnf to load usbmcemul.elf instead of the game (wait, hdloader stores the path to executable in game options..), he then hardcoded (changed default values) files to be executed in the emu. It works with some games, that don't need a whole much of iop memory (usb modules, mcemu, default modules and game modules have to fit i a little bit less than 2MB).
---------------
The sources.
Sorry, it's total mess, yet it works.
usbloader src: just mcemu loader (previous version), some code added to let it redirect iop printfs by the network (only method to debug for me after iop reset) - it's commented out.
mcsioemu_04: it's mcsioemu0.5 based in fact (despite the name, told you... it's a mess ;P ). It has some useless code I placed here and there (mainly printfs to debug in some games). I had to use greater than standard stack size (that's why new thread - how to wait for thread to finish on iop? I'm kind of used to windows api style and pthread style... kind of workaround).
usbd: it's original version (the one I tried to optimize didn't work properly)... just one minor change (but it's useless since it doesn't provide any real memory save).
usbhdfsd: not needed fs_ functions replaced with dummy call, cache size decreased to 12kB, max files decreased to 3, compiled with size optimization (this gives ~1.5kB and I think it's worth at this time - this let me increase cache from 8kB to 12kB).
As you see, there is nothing special... Just some plain memory optimization and one workaround to make it load at all (stack overflows). I didn't really look into the mass driver to check what causes overflows... I'm just glad it now works as is.
New version of mcsioemu is in development and it will support sceMcReadFast & sceMcWriteFast calls (I hope). Here is a log for Resident Evil 4:
The game became partially compatible since it can save and load its data but ... it says "save failed" all the time while it is possible to use those "failed saves" to continue game.Code:Ps2 connected. hdd: 07:46:49 06/05/2007 ATA: error: iocmd err 0x51, 0x04 ATA: error: ATA failed, -503 ATA Warning: This is not SCE genuine Hdd. hdd: disk0: 0x0df94bb0 sectors, max 0x00400000 hdd: checking log... hdd: drive status 0, format version 00000002 hdd: version 0203 driver start. pfs: max mount 1, max open 1, 8 bufs pfs: warning: you may need 10 buffers, but I have only 8. pfs: version 0201 driver start. Memory Card Emulator for SIO2 (HDD) ver 0.6 mcsioemu: Power-off thread priority 0x10, stack size 0x1000 mcsioemu: pfs mount result: 0 mcsioemu: Unable to open file 'pfs0:/MemoryCards/memorycard0.mci' - error: -2 pfs: error: there is no free file slot mcsioemu: Unable to open file 'pfs0:/MemoryCards/memorycard1.mci' - error: -24 pfs: error: there is no free file slot Reboot request from EE. Reboot complete CRI ADX Driver Ver.9.42(Feb 8 2005 17:53:57) CRI ADX Driver : sceSdInit Call = 0 CRI ADX Driver : Main Thread Priority = 39 CRI ADX Driver : PSM Thread Priority = 39 CRI ADX Driver : DTX Thread Priority = 48 CRI ADX Driver : SPU CORE Number = 1 mcsioemu: SecrAuthCard(0x2, 0x0, 0x0) mcsioemu: 0x81 0x27 - 0x55 sceMcReadFast(0, 0x466380, 0x20) sceMcReadFast(0, 0x466380, 0x20) sceMcWriteFast(0, 0x1CF35A0, 0xA560) sceMcWriteFast(0, 0x1D5F8C0, 0xDA78) sceMcReadFast(0, 0x466380, 0xA560) sceMcReadFast(0, 0x466380, 0xA560) sceMcWriteFast(0, 0x1CEE070, 0xA560) sceMcWriteFast(0, 0x1D5A640, 0xDA78) sceMcReadFast(0, 0x466380, 0xA560) Peer lost.
| « Previous Thread | Next Thread » |