keeping an app in RAM?
keeping an app in RAM?
can someone explain to me (or help me) how i can keep my programme "alive" in RAM. Im guessing it involes modifying your BIOS so you can call your function constantly. Does PS2Link stay "alive" in RAM or does it have aother method so you can capture output from your elfs?
Thanks in advance
Thanks in advance
Um im not very good at explaining things, I want my appliction to stay alive in RAM and not be over written when i load another elf. For example
http://forums.ps2dev.org/viewtopic.php?t=5436
Moonlight modifies the bootstrap so his patching function is called all the time so it is not overwritten.
http://forums.ps2dev.org/viewtopic.php?t=5436
Moonlight modifies the bootstrap so his patching function is called all the time so it is not overwritten.
PS2 and PSP are not even remotely the same when it comes to this.
If you look at the toolchain you'll see that by default homebrew programs are loaded at a specific address, just below that is a small piece of ram where ps2link lives, and between that and kernel memory is a tiny bit of space where loaders launch a loader core so they can safely load other programs into memory.
You can find the memory addresses, how to load there, and how to load a program as a thread all in ps2link. If you can't figure it out from there, then no offense but what you want to do is probably well above your head.
Keep in mind that the only reason ps2link can survive how it does is because of a other programs letting it. Once another program is launched you have no choice but to sit back and hope it doesn't use the memory you are in, and you have no guarentee it'll give up control and let your program do anything anymore.
If you look at the toolchain you'll see that by default homebrew programs are loaded at a specific address, just below that is a small piece of ram where ps2link lives, and between that and kernel memory is a tiny bit of space where loaders launch a loader core so they can safely load other programs into memory.
You can find the memory addresses, how to load there, and how to load a program as a thread all in ps2link. If you can't figure it out from there, then no offense but what you want to do is probably well above your head.
Keep in mind that the only reason ps2link can survive how it does is because of a other programs letting it. Once another program is launched you have no choice but to sit back and hope it doesn't use the memory you are in, and you have no guarentee it'll give up control and let your program do anything anymore.
Shoot Pixels Not People!
Makeshift Development
Makeshift Development
Really couldn't tell ya, and I doubt you'll get much of a response about it here.
Shoot Pixels Not People!
Makeshift Development
Makeshift Development
Yes. This is how cheat devices work. They are loaded in unused memory space (0x80000, for instance) and hook some syscalls to "keep alive."JorDy wrote:yeah ive noticed that programs like hdloader kill ps2link so it must be over written. I know how to change were my games are loaded that is fine its just getting the right address. Do programs like cheat devices survive by loading in unused memory?
Of course LOADEE (which is loaded by LoadExecPS2 to start your new app) will be loaded into some part of user memory, probably 0x80000 but don't remember that for a fact so 0x80000 -> 0x90000 is probably out. Of course just cause your memory survives doesn't mean that your code will still work without effort at least if you are utilising SIFRPC stuff as EELOAD will reset the IOP and remove any IOP sides of your handlers. It will also remove threads, dmac and interrupts handlers if I remember rightly so you need to do something clever to find a way of getting your code restarted ;)
All depends what you actually want to achieve I guess.
All depends what you actually want to achieve I guess.