Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - I need a place to start O_o | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Zer0wned

Cheep-cheep
Level: 17

Posts: 4/181
EXP: 21472
For next: 3271

Since: 08-16-05
From: Hermosa Beach, CA

Since last post: 30 days
Last activity: 30 days
Posted on 08-17-05 08:05 AM Link | Quote
I'm trying to get a good understanding of the 65c816 (the operations, equations, behaviors, and the graphical aspects), and I've been searching long and hard for a place to start, but keep turning up in places that require previous assembly knowledge.

I already downloaded SNES ASM dev. kit, and I can tell this will be extremely helpful, but no examples, no samples, no "try it yourself" kinds of things, but definitely a great reference and (although buggy and not exactly perfect) a great program when I have a clue or two as to what I'm doing. I've also acquired zz-chr for graphical purposes (please tell me there's something a little better out there...) and I've been using XVI32 for my hex needs for a while now (most of my hacking experience lies in save state hacking, and that built in version of it in znes)

I do know:
•some basic assembly terminology ($, #, %; and tags like CLC and SBC, although I'm having trouble figuring out what they accomplish)
•hex and converting to/from decimal form, and I think enough binary to get me by
•historical basics (65816 is from the 6502, NES used th 6502, blah blah blah, motorola)
•that there's some way to import/export GIFs to and from ROMS (I just need to find it again)
•that I'm not gonna mess with music, that's just not my department

I don't know:
•How to trace (I'm not even be 100% if I know what that is)
•the purpose and results of tags a good majority of the three letter tags (SBC, CLC, etc)
•what in the HELL X and Y are for (in the sense of assembly)
•an XP compatable 65816 assembly program that isn't SNES specific, so i can tinker around with things**

**not a big priority

If there's like a walkthrough or something that covers these , and is interactive sort of like this, but with a lot more to it, I think that would be best. ( I did that afore mentioned tutorial, and it made sense to me, so I'm not completely stupid )

I read the stickies that I think would cover my questions before I bothered, but didn't see anything, and had a good look to see if any previous threads covered it either, and no such luck.

Any and all help is appreciated, and I apologize for bringing my n00bishness upon you like this.. Just please don't tell me I have to learn C++ and 6502 T_T.
Jathys

Red Goomba
Level: 11

Posts: 41/48
EXP: 5916
For next: 69

Since: 12-21-04

Since last post: 8 days
Last activity: 8 days
Posted on 08-17-05 09:31 AM Link | Quote
3 tips :
1) http://softpixel.com/~cwright/sianse/docs/65816NFO.HTM <-- excellent reference on 65816
2) http://www.obelisk.demon.co.uk/6502/reference.html <-- great 6502 page . . . You don't need to learn 6502... There's nothing new to learn. The two languages are nearly identical and this site is a very easy starting point.
3) Look in a ROM for examples . . . You don't need to understand it fully to have it be useful. Just remember that:
a) most codes end with 20 or 22 (JSR or JSL) . . . assuming another code immediately follows, that'd be a good place to start cracking something (just to interpret)
b) Any value in RAM is accessed somehow. Let's say HP is located at $7E:8090 . . . Somewhere in the ROM, there will be STA $8090 (the $8090 will be viewed as 90 80 in the ROM) . . . Know the hex value of STA (aka- the opcode) and you should be able to find the code that stores a value to your HP. Try translating the hex into code you can translate into english.

BTW- ASM is hard to get started with, but after the first bits of knowledge, it gets very easy, very fast.


(edited by Jathys on 08-17-05 12:35 AM)
Gideon Zhi

Red Tektite
Level: 13

Posts: 51/79
EXP: 10265
For next: 2

Since: 04-02-05

Since last post: 47 days
Last activity: 2 days
Posted on 08-17-05 11:23 AM Link | Quote
Here's another reference you might find useful:
DMA Transfers etc

It covers just about everything from ground zero up to finding compressed data and coding bypasses for it.
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2128/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 08-17-05 12:52 PM Link | Quote
a) most codes end with 20 or 22 (JSR or JSL)

I do believe you mean begin with... O_o

Here's a list of opcodes you will need to know to do assembly hacking on the snes, they are extremely frequent:

Loading and storing the A register: A5, A9, AD, AF, B9, BD, BF, 85, 8D, 8F, 99, 9D, 9F

Loading and storing the X and Y registers: A0, A2, A4, A6, AC, AE, 84, 86, 8C, 8E

storing zero to a memory location: 64, 9C, 9E

branching instructions: 80, D0, F0, 10, 30, (50, 70 - somewhat rare in my experience), 90, B0, 82

increment and decrementing registers and addresses:
C8, E8, 88, CA, 1A, 3A, CE, DE, EE, FE, E6, C6

jumping and subroutine instructions: 20, 22, 4C, 5C, 6C, 7C, FC

adding and subtracing: 69, 6D, E9, ED

So I counted it out, these are about 58 opcodes you should know out of around 255 total. This is if you want to do minor asm edits via a hex editor.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - I need a place to start O_o | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.027 seconds.