I have been messing with my XBOX which is TSOP modded to do XDK with 4627 dash, I am using Visual Studio 2003, and I cannot get the API monitor working, I get errors, which cannot connect to the xbox, I have tried using Yelo Debug as well to see running code during game play or dump running code. I have had no luck with this as well...doesnt work.. I have tried using Dr Watson, I see the start up and thats it. Hence that is more useful for debug Here is what i am trying to do, cause you might ask that question:I would like to see the game as its playing and the code that is running if possible and then be able to dump it to take a look at what was running and see if i can use some of the code for my own development. I am specifically looking for memory dumping and how memory is being used during applications and gameplay, i know some from reading the XDK development documentation but i would like to see how it calls memory to each of the banks and how it is being utilized as "virtual" memory which the xbox has this ability.If can get how it calls it to the banks i would then like to see how it is reserved as cache on the hard drive and work it into an actual program which uses virtual memory as actual available memory for the xbox in reserve. Granted this memory would run slower as its using a section of the hard drive as working memory. I know this is possible as the XDK documentation states this the question becomes, can I reverse engineer the code to be implemented and used? Thanks Ckilla
Wow, heavy code question here Welcome by the way. Im not sure if its posible to get any info on games running without having the sourcecode of them, and reverseengineering code can be "easier" with IDA, the disassembler for like x86 code (the have xbe plugins) I never tried remote xbox memory investicating before, but I think the documentation and sample codes must give an idea, maybe one can write an beter example. also normal pc programming aplies here, so maybe looking at this as an normal pc app from the 2001's is maybe also an idea. My reply isnt very helpfull i think, but I can say, maybe someone here knows what your talking about and can give beter idea's. but most "trainers" and "memory" editors work using these tools and lookup variables changes and stuff and a bit of puzzeling, some halo1 and especialy halo2 trainers and tools out there might give hints/tools and tricks to get something. you want to read/dump the memory to the pc or just manipulate it on the xbox? good luck
Sounds like it might be a good start on the halo trainers, I will look into that aspect, thanks for the reply and yes this is a heavy question which someone might know the answer to, I am thinking maybe doing it over XBMC and using python since that is an easier language to use, concept is there, execution almost there I know it can be done as games do this already and memory swap multiple times to get the games to run without glitches and go into sequence with the GPU to give good frame rates while the memory swap happens over and over as the game is executing. So games already have this in place question becomes can you reverse engineer that code if it is found to add additional virtual memory to the xbox.? You should in theory be able to do this as long as you dont use up the reserve memory that the xbox needs to run its base system. IDA looks like the ticket, so im looking into that now, and seeing what can be done with disassembly and see if there is some clues to what i am looking for.
Maybe some tools on X-s can help: http://xboxscene.com/software/software.php?page=utilities#newsitemEEFEEEuFypYjseytwf some APU logs and stuff. ALso many things are encrypted. not sure about the memory, but if you dont have access to source code its like trying to get keys, intercept calls and maybe some hackery at the game code to prefent encryption or send it "also" to some other readable location. But if memory is crypted, mostly ur out of luck there, but still be able to figure something out im sure. What did you find in the sdk sofar about memory managment?
Heres what i know based on reading, and experimenting...most games already swap from the hard drive to the memory by default to run graphics and games. drives x,y,z are there for that reason, these are virtual memory spaces. question is can you convert these to memory that is visually available and adjustable by using multiple calls to the memory space that is available on the ram? I am also questioning why i can not get the API monitor working on my dev kit mod.. if anyone knows how to let me know, it would be much appreciated.. I have a program even if it is encrypted to see code openly and open xbe files, that is not even an issue... i am investigating further.....
Not sure about your networking problems. However, I previously started writing a Chihiro Emulator for xbox and that re-implemented (partly) virtual memory which is a Windows feature which was dropped for xbox. The memory management the XDK doc mentions is probably the ability to map files to memory. However, that is not very much like virtual memory because the address space stays the same. Basicly it installs a pagefault handler and all access is routed to files. With virtual memory you do something similar but with invalid memory regions. However - for the memory access to work you have to reroute the CPU to an actually working memory section. Re-implementing that involves lots of advanced page magic (locking the swap pages, wait for access, move memory to hdd, move new memory to swappage, keep track of everything...) - It's a pain in the ass and did not work that good because you also have to keep track of HW mappings like vertex buffers or APIs which attempt to stream the memory - they usually result in way too many interrupts for the pagefaults so even normal xbox games are way too slow. I figured that it is somewhat easier to just add more physical RAM. Take with a grain of salt - haven't done anything xbox related in a year
Chihiro emu? Nice, whats working now? Memory mapping in chihiro but not in xbox? Do shogun and/or cautix know Stuff bout this?
JayFoxRox, Thats basically how it works, but its more streamlined like that for games. The idea was to either use the x,y,z drive area as games already swap to that and enlarge it to register as additional ram on the system. Since games already use this area it would not be too hard to do, it is possible to lock multiple areas but they must show as ONE execution. Thats the answer to the xbox it needs to be one execution then the next and the next swapping to memory and hard drive space creating a virtual memory space and additional ram as it goes along in the process. Games do that now,if you decompile any xbe and full game you can see this process in real time using IDA. This is how the xbox works and processes games with intense graphics which work in line with the GPU. I am still looking into more code and I do have some source code,and looking into possibilities.