Author
|
Topic: Some questions about DTE and Pointers (Read 2 times)
|
yugisokubodai
Guest
|
 |
« on: November 24, 2009, 12:44:19 am » |
|
Hi everyone. I have some stupid questions about DTE and Pointers to ask you veterans. I don't know anything about Asm but some tiny experience in Rom Hacking. Here are my questions
Question 1
- How to modify DTE code. For example, my table has 5A=aa, 5B=ab, 5D=ac, etc. But now I want 5A=ac, 5B=er,.... How to do this?
Question 2
- Is there any pointer point to the font tile in the game. For example, I have a game that has font begins at 2DFE00. Character A in the font begin at 2DFE00, character B begins at 2DFF00 and so on, character Z begins at 2EFE00... I want to ask that is there any pointer point to the address which the character begin?
Question 3
- I have encountered a game that uses pointers point to another pointer table. Say, the 3 bytes pointers point to the 2 bytes pointer table. And this 2 bytes pointers point to text. So I want to ask that is it possible to have pointer 1 point to pointer 2, pointer 2 pointer pointer 3 and so on, the final pointer points to the text? And, in many RPG game, when some event occur, the pointers which points to the dialogue is triggered. Say, you enter the shop and the owner says "Hello". But I want that when I enter the shop, no pointer is triggered but when leave the shop, the pointer points to "Hello" is trigger. Does this require any Asm knowledge? I mean I want to modify the condition for which text to be displayed in which context.
Thank you very much
|
|
« Last Edit: November 24, 2009, 07:58:53 am by yugisokubodai »
|
|
|
|
Ryusui
Guest
|
 |
« Reply #1 on: November 24, 2009, 03:47:27 am » |
|
Good God, man! You've broken the forums! Code tags are not meant to be abused like that!
Fix your post, and then read on!
Answer 1: This will require ASM. Full stop.
Answer 2: It depends. In most cases, games will take the easy way out: the basic form is "get the character code, multiply it by the tile size and add it to the font address". They won't bother with complicated pointer tables to determine which character corresponds with what code. Sometimes there are special systems for deciding when to add dakuten, but generally, they use simple multiplication to figure out which character to print. If you absolutely must change this for some reason, again, you'll need ASM.
I'm not going to give any more detailed answers unless you edit your post. Code tags and quote tags are not interchangeable, and furthermore no one here is stupid enough to need your questions signposted like that in order to understand them.
|
|
|
|
yugisokubodai
Guest
|
 |
« Reply #2 on: November 24, 2009, 07:59:45 am » |
|
Thank you Ryusui. I'm sorry about the code tags. I edited my post.
|
|
|
|
Ryusui
Guest
|
 |
« Reply #3 on: November 24, 2009, 02:25:47 pm » |
|
Sorry I was rude about the code tags. As for your third question...
Answer 3a: Sylvanian Families used that exact same method you're describing there. Short answer: yes, it's possible (and even necessary, if the pointer table is located at the end of the text block like it was in SF1). In Atlas, this can be accomplished simply by adding an extra pointer block and making sure to write to it at the start of each script section.
Answer 3b: Technically, it doesn't. You probably won't have to actually modify the game's code in order to achieve this effect; you will, however, need to modify its event data, which is probably the single most difficult thing you've listed here. ASM knowledge is useful for figuring out how the event data works, or where it's stored in the first place. Basically, out of all the hacks you've suggested you want to do, this is the one that requires the most comprehensive grasp of how the game functions.
All this said, ASM is not as difficult as it might seem at first, and despite your lapse in netiquette, I suspect that if you've gotten this far already, you have what it takes to go all the way. ASM's not so much about specific knowledge as it is a general mindset, an understanding of the relationship between CPU and hardware, and you build on that understanding with console-specific knowledge. There are plenty of docs here at RHDN on the subject; I suggest you find the ones that apply to the console you're working with and start digging. :3
Oh, and about Answer 1? I didn't read your question thoroughly the first time. ^_^; Yeah, this should be doable without ASM: the DTE data is likely stored in the ROM like string data somewhere. There's a chance the values could be hard-coded, but it'd be easy enough to fix with a little ASM tracing.
|
|
|
|
hanhnn
Guest
|
 |
« Reply #4 on: November 25, 2009, 05:17:16 am » |
|
Question 3
- I have encountered a game that uses pointers point to another pointer table. Say, the 3 bytes pointers point to the 2 bytes pointer table. And this 2 bytes pointers point to text. So I want to ask that is it possible to have pointer 1 point to pointer 2, pointer 2 pointer pointer 3 and so on, the final pointer points to the text? And, in many RPG game, when some event occur, the pointers which points to the dialogue is triggered. Say, you enter the shop and the owner says "Hello". But I want that when I enter the shop, no pointer is triggered but when leave the shop, the pointer points to "Hello" is trigger. Does this require any Asm knowledge? I mean I want to modify the condition for which text to be displayed in which context. @yugisokubodai : are you talking about the scripts that pilots speak when they fight/die .... why don't you ask you-know-who GVN ?
|
|
« Last Edit: November 25, 2009, 05:34:45 am by hanhnn »
|
|
|
|
yugisokubodai
Guest
|
 |
« Reply #5 on: November 25, 2009, 07:51:59 am » |
|
Thank you for your reply, Ryusui. I'm reading Jay's Asm doc. I have just one more question to ask Question 4 - Can I modify the character tile without Asm knowledge? Say, normally games use 8x8 for their font tile. Sometimes it's 12x12 or so. But I like 8x12 title. So do I need Asm knowledge to do this? Thank you very much. @hanhnn: I posted my questions here because they're in general. If I have any specific question on Srw or FF, then GVN is the place. I guess I'm going to have something to ask the one-I-know there 
|
|
|
|
Ryusui
Guest
|
 |
« Reply #6 on: November 25, 2009, 12:26:08 pm » |
|
It depends.
If you're not working on a DS game, the answer is an unambiguous "yes". Fortunately for you, it's probably easier to turn a 12x12 font into an 8x12 one than vice versa.
If it is a DS game you're working on, though...the answer is a tentative "no". DS games tend to store their font data in standardized files where the font width data is stored immediately after the font graphics themselves. It's possible to turn a fixed-width font into a proportional one simply by editing the width table. Of course, the games themselves tend to have their own ideas about formatting, so your mileage may vary: neither Death Note: The Kira Game nor Chou Soujuu Mecha MG used the width tables consistently and I had to implement ASM hacks to fix this issue.
|
|
|
|
hanhnn
Guest
|
 |
« Reply #7 on: November 28, 2009, 01:20:11 pm » |
|
post some screenshots it's help everyone understands your question
|
|
|
|
|