Posted: Sun Jan 05, 2014 11:14 am Post subject: Command & Conquer Red Alert 1 v3.03 map reveal
I'm looking for some help with a map reveal/remove shroud hack for C&C Red Alert 1. I have been reading up on these forums and followed the CE tutorials.
I am able to find the memory address that relate to squares on the map. 0 = shrouded, 4 = partially shrouded and 12 = revealed. I have also noticed other values such as 40 when the sqaure is revealed, e.g changing to 12 or above reveals it.
The problem is the memory addresses change each game so I'm not able to just overwrite them all to 12 without first finding the addresses every time.
I believe I need to view which code access the address as the next step, which I have tried but I can't seem to find the correct piece of code to change. I am basically hacking around changing bits of code but I have only made the graphics bug out or the game crashes.
I've searched for values like 12 or 0C which there are a few but again I can't get it to reveal the map. What I think is the correct approach is to find the code that asks for the sqaure's status and then always return 12. Also I found a tip on this forum to only do it with the radar built which I think helps.
I am a coder by day so understand the fundementals but I code in higher level languages not assembler. Can anyone point me in the right direction?
PS if anyone has a trainer for version 3.03 I would appreciate a link so I can try to reverse engineer.
try finding again one address that works when you shroud or reveal that part.
shroud it than and do a "find out what writes". now walk there and let the game itself reveal that part.
ce should have found something.
now use that assembler part and always set the needed register at the needed value.
if the code is used alot on other things too, you need to filter / compare
another solution is finding the start of the first square, than you can (in asm too) set all squares (given with the registers base) to a desired value
Posted: Wed Jan 22, 2014 2:40 am Post subject: Response
Hello.
I can somewhat help you with this as I'm doing trainer for this game.
Only problem is that it doesn't update automatically (you need to move cursor/make the game update the screen) and I haven't found the update routine (I'd have use for it).
Delphi/Pascal code:
Code:
//@ReadMemory: Wrapper for Win32 ReadProcessMemory function
// This function reads value (4 bytes by default) from game process
//@WriteMemory: Wrapper for Win32 WriteProcessMemory function
// This function writes specified value (4 bytes by default) to game process
procedure ShroudReveal;
var
// Variables for iterator and memory address
// Cardinal type equals Unsigned Integer
I, Buffer: Cardinal;
const
// Revealed shround value
TILE_OPEN = 12;
// Maximum map size (hidden tiles too)
MAP_SIZE = ( 128 * 128 );
begin
// Read base pointer and move to first "tile"
Buffer := ReadMemory( $66826C ) + $3C;
// Loop through each "tile"
for I := 0 to MAP_SIZE do
begin
// Write value to game memory
WriteMemory( Buffer, TILE_OPEN );
// Move to next "tile"
Inc( Buffer, $3A );
end;
end;
Anyone have clues where RA "screen update" routine lies?
You might be interested in the method and map revealers posted here: http://forum.cheatengine.org/viewtopic.php?p=5515484
They are for tiberium wars and red alert 2 but IIRC they both use the same engine as red alert 1. _________________
DO NOT PM me if you want help on making/fixing/using a hack.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum