Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Rom Hacking

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
sunnyTRIO
How do I cheat?
Reputation: 0

Joined: 06 Jan 2010
Posts: 0

PostPosted: Tue Jan 12, 2010 5:53 pm    Post subject: Rom Hacking Reply with quote

Hacking Roms with cheat engine is easy. But I would like to know if anybody knows how to hack a rom and change its address so that the next time you play that particular rom you don't have to hack it again. The best example of this is the classic NES Contra. You will start playing with 3 lives. But recently I downloaded hack version of that rom which enable you to play with 99 lives from the very begining of the game without using Cheat engine or codes.
Anybody out there knows how to do this, please share it here. I will like to learn it myself.
I've googled for like days for an explaination but to no avail. Mad

_________________
Learning is a life time journey, so why don't start now.
Back to top
View user's profile Send private message Send e-mail
Farr.
Grandmaster Cheater
Reputation: 0

Joined: 11 Aug 2008
Posts: 749

PostPosted: Tue Jan 12, 2010 11:01 pm    Post subject: Reply with quote

I believe what you're looking for it a pointer tutorial which you can find by searching

Just F.Y.I
Pointer=> points to the value you want to change. You keep redoing the steps to find the address because most of the time the address for that value has changed. But if you make a pointer, all you have to do is re-open your cheat table and the pointer will automatically point to the new address given to that value.
Back to top
View user's profile Send private message
sunnyTRIO
How do I cheat?
Reputation: 0

Joined: 06 Jan 2010
Posts: 0

PostPosted: Tue Jan 12, 2010 11:34 pm    Post subject: Reply with quote

Thanks for your reply RAV3N.
Well, actually I already know about the pointer. But my question was how I can actually alter the NES Contra address to 99 lives so that I can play the rom without using the cheat engine and the cheat table. Just assume that I'm going to use the Contra rom to play on my PSP.
As far as I know, this method is not IMPOSSIBLE coz I just download a Contra rom which has 99 lives when the game starts.
Any help?

_________________
Learning is a life time journey, so why don't start now.
Back to top
View user's profile Send private message Send e-mail
Fantasy
I post too much
Reputation: 13

Joined: 29 Jul 2007
Posts: 3113

PostPosted: Wed Jan 13, 2010 1:14 am    Post subject: Reply with quote

That would require you to decompile whatever code it's written in, and learn to re-program it, I guess.. It's alot easier just to stick with CE and Tables, than to learn a new programminglanguage :]
Back to top
View user's profile Send private message
Erez Zrihen
Advanced Cheater
Reputation: 0

Joined: 26 Feb 2016
Posts: 65

PostPosted: Mon May 11, 2020 8:11 pm    Post subject: Reply with quote

You can also try to disassembling the rom rather than decompiling it, but of course that what do you want to achieve probably requires that you to reverse engineering the game's rom.

Also you may not need to decompile and disassembly the rom at all.

If you just want to start the game with 99 lives instead of 3, just open the rom with any hex editor (Hedit 3.2 of Yuri software is my favorite) and then simply find a 03 byte and change it to 63 (63 in hex is equal to 99 in decimal).

Probably you will find a lot of 03 bytes in the rom and there is only one 03 byte that you need to change to 63 (already explained why 63 and not 99 above).

To know which 03 byte is the "lives" initial value, you probably have to either decompile or disassembly the code, then read it and then try to find out where the data segment begins and what is the offset of the "lives" initial value in the data segment.

The initial value of "lives", which is constant 03, may also appear in the code segment only as an immediate operand of a "mov" instruction.

In that case you will have to find out where the code segment begins and where is the "mov" instruction that you are looking for.

Once in the past I have managed to find the data file that Alone in the Dark of Infogrames is reading every time starting a new game.

This data file is binary and I modified the first 14 byte to 63, because 14 in hex is equal to 20 in decimal and 63 in hex is equal to 99 in decimal.

When I started a new game (with DOSBox 0.74) as either Edward Carnby or Emily Hartwood, their initial health was 99 instead of 20.

I also managed to get the rifle with 99 ammo/cartridges instead of 4 that way.

This was simply modifying the first 04 byte to 63 again.

I just used the Hedit 3.2 of Yuri software to do all that.

Later I wanted that Carnby to start with 1000 health and get the rifle with 1000 ammo/cartridges, but 1000 requires two bytes, not one, because 1000 is larger/greater/bigger than 255 and 1000 in decimal is equal to 3E8 in hex.

For health I simply modified the 14 byte to 03 and the next byte (on the right or below most left) I changed from 00 to E8.

For the rifle's ammo/cartridges I modified the 04 byte to 03 and the next byte (on the right or below most left) I changed from 00 to E8.

OR

The 14 and 04 bytes had to be replaced by E8 and the next byte 00 had to be replaced by 03.

I don't remember which of the two above is correct, but one of them must be correct.

But this change in the data file of the game allowed me to start with 1000 health and 1000 ammo/cartridges for the rifle without needing Cheat Engine at all.

Now you want to start the game with 99 lives, but in the future you may want to start the game with more than 255 lives, so this is the reason I was telling you that too.


Last edited by Erez Zrihen on Wed May 13, 2020 9:10 am; edited 23 times in total
Back to top
View user's profile Send private message
Corroder
Grandmaster Cheater Supreme
Reputation: 75

Joined: 10 Apr 2015
Posts: 1668

PostPosted: Mon May 11, 2020 8:23 pm    Post subject: Reply with quote

RED means STOP!
_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL
Back to top
View user's profile Send private message
Erez Zrihen
Advanced Cheater
Reputation: 0

Joined: 26 Feb 2016
Posts: 65

PostPosted: Mon May 11, 2020 8:27 pm    Post subject: Reply with quote

Corroder wrote:
RED means STOP!


Hello there!
Back to top
View user's profile Send private message
Corroder
Grandmaster Cheater Supreme
Reputation: 75

Joined: 10 Apr 2015
Posts: 1668

PostPosted: Mon May 11, 2020 8:31 pm    Post subject: Reply with quote

Helllloooo Worlds Laughing Laughing Laughing
_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL
Back to top
View user's profile Send private message
Erez Zrihen
Advanced Cheater
Reputation: 0

Joined: 26 Feb 2016
Posts: 65

PostPosted: Mon May 11, 2020 8:32 pm    Post subject: Reply with quote

Corroder wrote:
Helllloooo Worlds Laughing Laughing Laughing


I just wrote something that I believe that future readers may find this information both helpful and useful.

By the way, where can I find all my topics and posts? Or the history of all my topics and posts?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites