+  RHDN Forum Archive
|-+  Romhacking
| |-+  General Romhacking
| | |-+  NES: Finding Text Routines the Visual Way
Pages: [1] 2
Author Topic: NES: Finding Text Routines the Visual Way  (Read 1538 times)
RedComet
Guest
« on: October 25, 2006, 09:22:19 am »

http://www.rpgclassics.com/subsites/twit/docs/text/

I'd been meaning to do something like this for a while. Suggestions and/or constructive criticism is welcome, especially from people learning this. The goal is to be helpful and break everything down as much as possible.

I went with the NES because I've got the most experience on it oding this sort of thing and everything is transferable to more complex systems.
Cless
Guest
« Reply #1 on: October 25, 2006, 11:41:39 am »

Although I don't usually work with NES games I think the general knowledge contained may be of use to me at some point. Thanks!
Nightcrawler
Guest
« Reply #2 on: October 25, 2006, 11:51:50 am »

Not too shabby.  One complaint I have is your document seems to expect people to know a decent amount already. For example using words such as 'the LDA uses the indirect indexed addressing mode' is going to go over the head of alot of people. You're expecting them to know some assembly concepts already by saying something like that. And people who KNOW assembly already probably won't need your document!

I would suggest trying to take it down a notch to be accessible to a wider range of people. 'Dumb' it down some more. What's your target audience skill level? I get the impression it is those who are just starting out with some basic assembly hacking or those coming from relative searching. If so, I think your document will be difficult for them to fully grasp.
RedComet
Guest
« Reply #3 on: October 25, 2006, 01:59:14 pm »

Quote from: Nightcrawler on October 25, 2006, 11:51:50 am
And people who KNOW assembly already probably won't need your document!

I knew most of the 6502's instruction set and what each instruciton did when I first started, but I had no idea how to use it to find/do anything with it. Tongue

I see waht you're saying though. Ideally, I want this to be helpful to people just starting out with basic assembly hacking. I kind of thing explaining what LDA, indirect indexed addressing, and what $2007 are is a little beyond the scope of the document. I do think I need to include a disclaimer of sorts at the beginning and a list of files here on RHDN that the reader should check out if they're not familiar with low level programming.

If you guys think explaining that stuff (or even just reiterating) would help, I got no qualms with adding it. As long as it helps someone, I'll add whatever.
Nightcrawler
Guest
« Reply #4 on: October 25, 2006, 02:29:33 pm »

See, I don't think a brief explanation is beyond the scope of the document. I don't expect you to explain all assembly terms or indexed addressing, but at least give that extra sentence ot two of explanation. I think that would really help reach a wider audience. It will re-enforce that knowledge for those that knew it already and it will help give that extra edge so somebody can understand and get something out of it because they don't quite understand well.

It's your document, do what you want, but I just don't think there are that many people that know entire instruction sets, what each instruction does, and don't know what to do with them. I'd guess there are more people that are still learning the instruction sets and getting a feel for assembly and what it's all about. Tongue
RedComet
Guest
« Reply #5 on: October 25, 2006, 03:29:47 pm »

Alright, I added a couple explanations. Care to give it the once over and tell me what you think?
Nightcrawler
Guest
« Reply #6 on: October 25, 2006, 06:34:35 pm »

OK. That's better. It looks good enough to me now. The next step is to get feedback from somebody at the level that need that document.
KingMike
Guest
« Reply #7 on: October 25, 2006, 09:09:23 pm »

Actually, couldn't you skip the first couples steps and look at the nametable viewer? Get the tile #s and the PPU address at once. Grin
RedComet
Guest
« Reply #8 on: October 26, 2006, 05:14:12 am »

Quote from: KingMike on October 25, 2006, 09:09:23 pm
Actually, couldn't you skip the first couples steps and look at the nametable viewer? Get the tile #s and the PPU address at once. Grin

Hehe. Yeah, I guess you could. I forgot all about the name table viewer since I rarely use it. Thanks Mike. Smiley
hippiejake
Guest
« Reply #9 on: October 30, 2006, 07:35:44 pm »

Quote from: Nightcrawler on October 25, 2006, 06:34:35 pm
The next step is to get feedback from somebody at the level that need that document.

That's good. I don't know [much] about assembly, and that really made sense. I have no complaints, it's great!

Quote from: RedComet on October 25, 2006, 01:59:14 pm
Quote from: Nightcrawler on October 25, 2006, 11:51:50 am
And people who KNOW assembly already probably won't need your document!
I knew most of the 6502's instruction set and what each instruction did when I first started, but I had no idea how to use it to find/do anything with it. Tongue

Yeah, the "indirect indexed" stuff really needed an explanation, but most people who are ready to try and learn assembly already DO have a decent idea of what most opcodes do. I knew pretty much what they all did before I even tried, except for the obscure ones like CLC or BNE or TYX, which you rarely read about. Great tutorial! Smiley
RedComet
Guest
« Reply #10 on: October 30, 2006, 07:54:08 pm »

Glad you like! Is there anything in particular you'd like to see beyond this?
KingMike
Guest
« Reply #11 on: October 31, 2006, 12:36:47 am »

Quote from: hippiejake on October 30, 2006, 07:35:44 pm
Yeah, the "indirect indexed" stuff really needed an explanation, but most people who are ready to try and learn assembly already DO have a decent idea of what most opcodes do. I knew pretty much what they all did before I even tried, except for the obscure ones like CLC or BNE or TYX, which you rarely read about. Great tutorial! Smiley

I wouldn't call any of those three obscure.
CLC you should do before any ADC statement. Unless you're trying to increment a multibyte value (since NES can only do 1 byte reads/stores, you'd have to do like LDA $00: CLC: ADC #$50: STA $00: LDA $01: ADC #$00: STA $01, if you wanted to add $50 to the two byte value at $00-01. (or my preference, LDA $00: CLC: ADC #$50: STA $00: BCC $02: INC $01. It saves a couple bytes, though it's not as clear.)
BNE (Branch not equal) is a VERY common one. Smiley
TYX isn't in the NES, but still important.
Now TRB, there's one I've only seen a couple times, as well as the SNES-only ones that transfer between A, DB, D and all that fun stuff.
Oh, yeah, can't forget the :police: COP instruction! Though I've never seen it before, maybe because I don't work on abnormal games. Grin
Ryusui
Guest
« Reply #12 on: October 31, 2006, 12:54:36 am »

I remember seeing TSB in Patlabor. >_>

TRB is Test and Reset Bits, TSB is Test and Set Bits. Right?
tomaitheous
Guest
« Reply #13 on: October 31, 2006, 11:08:34 am »

Quote from: KingMike
LDA $00: CLC: ADC #$50: STA $00: BCC $02: INC $01

Nice. Would be nice if INC was effect by Decimal mode though.
Disch
Guest
« Reply #14 on: October 31, 2006, 12:48:25 pm »

Quote from: tomaitheous on October 31, 2006, 11:08:34 am
Nice. Would be nice if INC was effect by Decimal mode though.

It would be even nicer if the NES's 6502 had a working Decimal mode -- however it doesn't for whatever reason.  ADC/SBC are unaffected by the D flag.
Pages: [1] 2  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC