2010-07-30, 02:00 AM
Here is something I've worked on the last couple nights. You can get your paws on it by downloading the latest SomEx.dll which will be available soon over in the DirectX9 thread (wish I had a link at my fingertips)
It squeezes into 640x480 (assuming you end up with the same font maybe ... no worries, the font can be standardized) but can also come in two columns and double wide mode depending on your resolution / preferences. The double wide mode probably won't be accessible in the first release.
I really need to add some stuff to the ini file for customizing things. And there's a lot more memory to sift thru than I expected (which is probably a good thing because it means Som uses the heap little if at all) so just paging thru all the memory is really too cumbersome, so I need to add some features like jump to and find.
Oh BTW this is a realtime memory inspector. You can see Som's memory while you play. So like if you see a number changing while you're turning, then it stops changing when you stop turning, and so on, then you've found the memory where Som stores the player's turn angle. This will really revolutionize Som. We just need to map out all the memory like Game Genie people do for games... so you can have infinite HP for example.
I think maybe I see the clock, but I could be wrong. Hopefully that would allow me to fix the clock reset bug for example. Another important piece of memory would be the current map number. That would let us get started doing things like adding a better background to each map (one that sits still for example)
Of course there are other benefits like setting up events that let you detect what the player has equipped. So anyway, I advise everyone to take this quite seriously.
That said it's still not super useful for every day use until I can add some features. I can already find some memory pretty easy by building a search into the code. But that's not super practical. I also want to build some notation into the inspector so like if it's known what some memory is it will print that on the line above. There will most likely be two addresses for everything, one for som_db.exe and one for the game exe (som_rt.exe) but hopefully they will overlap enough to build a mapping, but the ini file will have to let you specify both just in case... especially for new memory.
I spent a lot of time setting up a way to input what address you wanted to look at, but it wasn't practical to do with dinput in the end, so I will have to rethink it a little in terms of more traditional window input. If you use the traditional Som key layout it's pretty simple, but I can imagine if you wanted to map the movement keys to WASD that would make trouble for typing in hexadecimal addresses (which would need A/D) for example.
I wish it worked with the pause extension but it doesn't because the pause extension literally pauses everything. It would take a bit of work to pause the game but still have access to the overlay etc, but I think that might eventually happen. Especially if we start using the overlay for other types of stuff (like printing out stats about the game while you work with your map)
I think Todd really wants a falling damage extension. So first person to find the memory that stores the player's position in space gets a cookie (I think the HP parameter will be pretty easy to pin down... in fact I hope all the other player related stuff is nearby)
It squeezes into 640x480 (assuming you end up with the same font maybe ... no worries, the font can be standardized) but can also come in two columns and double wide mode depending on your resolution / preferences. The double wide mode probably won't be accessible in the first release.
I really need to add some stuff to the ini file for customizing things. And there's a lot more memory to sift thru than I expected (which is probably a good thing because it means Som uses the heap little if at all) so just paging thru all the memory is really too cumbersome, so I need to add some features like jump to and find.
Oh BTW this is a realtime memory inspector. You can see Som's memory while you play. So like if you see a number changing while you're turning, then it stops changing when you stop turning, and so on, then you've found the memory where Som stores the player's turn angle. This will really revolutionize Som. We just need to map out all the memory like Game Genie people do for games... so you can have infinite HP for example.
I think maybe I see the clock, but I could be wrong. Hopefully that would allow me to fix the clock reset bug for example. Another important piece of memory would be the current map number. That would let us get started doing things like adding a better background to each map (one that sits still for example)
Of course there are other benefits like setting up events that let you detect what the player has equipped. So anyway, I advise everyone to take this quite seriously.
That said it's still not super useful for every day use until I can add some features. I can already find some memory pretty easy by building a search into the code. But that's not super practical. I also want to build some notation into the inspector so like if it's known what some memory is it will print that on the line above. There will most likely be two addresses for everything, one for som_db.exe and one for the game exe (som_rt.exe) but hopefully they will overlap enough to build a mapping, but the ini file will have to let you specify both just in case... especially for new memory.
I spent a lot of time setting up a way to input what address you wanted to look at, but it wasn't practical to do with dinput in the end, so I will have to rethink it a little in terms of more traditional window input. If you use the traditional Som key layout it's pretty simple, but I can imagine if you wanted to map the movement keys to WASD that would make trouble for typing in hexadecimal addresses (which would need A/D) for example.
I wish it worked with the pause extension but it doesn't because the pause extension literally pauses everything. It would take a bit of work to pause the game but still have access to the overlay etc, but I think that might eventually happen. Especially if we start using the overlay for other types of stuff (like printing out stats about the game while you work with your map)
I think Todd really wants a falling damage extension. So first person to find the memory that stores the player's position in space gets a cookie (I think the HP parameter will be pretty easy to pin down... in fact I hope all the other player related stuff is nearby)