Author
|
Topic: doh! two stupid questions (Read 551 times)
|
leep
Guest
|
|
« on: December 18, 2006, 11:55:08 am » |
|
1) What do you call poking around in the memory addresses of a Rom? Is that considered Romhacking? I know, I know, I'm one of the great unwashed compared to game modders, but I honestly don't know what keywords to use to look for fellow, uh, hands-on cheaters.
2) Regarding the above: What's up with multiple duplicate address ranges? Where, say, B12x, C12x, D12x, E12x, etc all show exactly the same values, to control the current music or graphics or whatnot? Why not just use one set? I have done non-rom programming, so I can generally tell what the data is doing, but goodness, I don't get this at all.
Thanks.
|
|
|
|
creaothceann
Guest
|
|
« Reply #1 on: December 18, 2006, 12:27:04 pm » |
|
1) What do you call poking around in the memory addresses of a Rom? Is that considered Romhacking? I know, I know, I'm one of the great unwashed compared to game modders, but I honestly don't know what keywords to use to look for fellow, uh, hands-on cheaters. Corrupting? 2) Regarding the above: What's up with multiple duplicate address ranges? Where, say, B12x, C12x, D12x, E12x, etc all show exactly the same values, to control the current music or graphics or whatnot? Why not just use one set? I have done non-rom programming, so I can generally tell what the data is doing, but goodness, I don't get this at all.
Depends on the game, I guess... maybe they had some space left, and having the same data made the source code easier to read. Or something.
|
|
|
|
Ryusui
Guest
|
|
« Reply #2 on: December 18, 2006, 02:16:24 pm » |
|
I'm pretty sure what he's talking about with #2 is called "mirroring".
Like when different memory addresses point to the same place in the ROM, right?
|
|
|
|
leep
Guest
|
|
« Reply #3 on: December 18, 2006, 08:46:04 pm » |
|
Examples...
1) Super Mario Bros. 3 00ED = Current Form: 00-Small, 01-Super, 02-Fireball, 03-Racoon, 04-Frog, 05-Tanooki, 06-Hammer
2) Tetris 00Ex: 15 E0 81 E4 FF 00 FF FF 00 00 55 00 01 0C 02 08Fx: 15 E0 81 E4 FF 00 FF FF 00 00 55 00 01 0C 02 10Ex: 15 E0 81 E4 FF 00 FF FF 00 00 55 00 01 0C 02 18Ex: 15 E0 81 E4 FF 00 FF FF 00 00 55 00 01 0C 02 etc. (This happens in many different games.)
Mirroring might be it, I'll look it up. Still, I don't understand why. Is there a master set somewhere that all of these read from, or what?
|
|
|
|
leep
Guest
|
|
« Reply #4 on: December 18, 2006, 08:55:26 pm » |
|
According to http://en.wikibooks.org/wiki/NES_Programming the mirroring appears to be a function of the NES itself. That explains why I run across it so often! Still slightly boggled as to how this could be helpful. ...Page swapping, maybe?
|
|
« Last Edit: December 18, 2006, 09:02:31 pm by leep »
|
|
|
|
RedComet
Guest
|
|
« Reply #5 on: December 18, 2006, 10:21:38 pm » |
|
It's just the way the hardware is. I don't know of any games that access memory via the mirrored areas of ram.
|
|
|
|
Gideon Zhi
Guest
|
|
« Reply #6 on: December 18, 2006, 10:49:41 pm » |
|
Yeah, that's mirroring. Various sections of some of the NES games I recently translated were mirrored; it made finding data (and free ram space) an interesting but enlightening task.
|
|
|
|
leep
Guest
|
|
« Reply #7 on: December 19, 2006, 05:41:58 pm » |
|
Okay. Thanks, guys.
What about the first question? No one here plays with that?
(...Does anyone here need sprite artwork? I'd love to try my artistic skill out on a couple.)
|
|
|
|
Gideon Zhi
Guest
|
|
« Reply #8 on: December 19, 2006, 11:26:27 pm » |
|
When we tinker with ram, it's usually targetted tinkering. For instance, I figure out which parts of ram are "empty" or overwritable, and which parts are related to the routine I'm working with - a decompression buffer, tilemap prepped for vram transfer, equivalency tables, that sort of thing.
Otherwise, if I fix values for cheat purposes, it's usually to try to get to a particular part of a game as quickly as possible. It's pretty easy to do; most emulators these days have a cheat searcher module that'll do most of the work for you.
|
|
|
|
|