KaioShin
Guest
|
|
« on: January 17, 2007, 04:53:22 am » |
|
After I pushed this away from me for months now I finally ask for help on this. I need a vwf for Dragon Quest Monsters: Caravan Heart.
I have problems programming in ASM, changing little things here and there is ok, but as soon as the routines become of a slightly bigger scope I'm terribly lost and give up easily. Before I drag this on for another year I thought I'd ask if someone would be willing to code a vwf for me. The game is not hard to work with, I can tell you the address of the routine which copies the characters directly into VRAM. All you'd need to do is changing this routine to do the vwf magic. I already have a completely translated script for the game, it's time I get this done. I'd really appreciate every help. In the meantime I'll code the insertion tool, I'm better with this kind of programming.
Thanks in advance.
|
|
|
|
Normmatt
Guest
|
|
« Reply #1 on: January 17, 2007, 06:40:21 am » |
|
if you could post the offsets for the routines which copy the font data and the locations they get copied too. along with the table i'm sure someone will work it out.
I'll take a look and see if i can work something out, but this would be my first vwf so i might not get it working
|
|
|
|
KaioShin
Guest
|
|
« Reply #2 on: January 17, 2007, 07:26:35 am » |
|
http://download.yousendit.com/D2F43A366ABC58B7Here I bundled up some files, that should be everything needed. There is an ips file which will insert an English font. It's not properly aligned and not the final font, I use it for testing. The patch will also translate the second line into English, again, best for checking purposes, the rest will still be Japanese. There is also a table file for that font. Furthermore there is a mini trace of the game's drawing routine, you can use the address of that as a breakpoint as well. The comments are half English and half German and are sometimes intelligent but usually guesswork :p So better ignore them Last but not least there is a file where I wrote down important memory locations. It contains the RAM addresses of things like where the pointers to the tiles are stored, I think this will be very helpful. I hope that is enough, it's pretty much all I have. If you need anything else I'll see if I can provide it. Thanks!
|
|
|
|
Normmatt
Guest
|
|
« Reply #3 on: January 17, 2007, 07:38:50 am » |
|
i can understand why your getting confused this game has got the most confusing assembly code ever. I've narrowed the copy char to ram code down to the exact instruction r3 = 84000010 r4 = 040000D4 08013E88 str r3,[r4,8h] Now thats whats confusing me as soon as no$gba executes that instruction it loads the whole character into ram at 06000FXXX but i don't see how it can do that with just one instruction
|
|
|
|
KaioShin
Guest
|
|
« Reply #4 on: January 17, 2007, 07:41:12 am » |
|
I figured that one out before. It uses DMA!
r3 holds the control word and r4 the DMA register.
|
|
|
|
Normmatt
Guest
|
|
« Reply #5 on: January 17, 2007, 07:53:52 am » |
|
ahh it is too, i never thought to check dma.
hmm i dont think i'm gonna be able to do this as it'd require a massive rewrite of the whole drawing routine which is far outside of my league
|
|
|
|
KaioShin
Guest
|
|
« Reply #6 on: January 17, 2007, 07:54:52 am » |
|
ahh it is too, i never thought to check dma.
hmm i dont think i'm gonna be able to do this as it'd require a massive rewrite of the whole drawing routine which is far outside of my league
I see, no problem. At least others who read this now know what kind of deal they get themselves into
|
|
|
|
Normmatt
Guest
|
|
« Reply #7 on: January 17, 2007, 08:01:40 am » |
|
thats probably not a good thing DaMarsMan a fellow staff member from romhacking.net and a very talented romhacker is going to help me with the vwf Has he lost interest or something?
|
|
|
|
KaioShin
Guest
|
|
« Reply #8 on: January 17, 2007, 08:08:36 am » |
|
thats probably not a good thing DaMarsMan a fellow staff member from romhacking.net and a very talented romhacker is going to help me with the vwf Has he lost interest or something? Well, he had other things to do so he couldn't help me after all, yeah.
|
|
|
|
RadioShadow
Guest
|
|
« Reply #9 on: January 17, 2007, 12:56:33 pm » |
|
That reminds me I got to work out how to change the VWF in F-Zero Climax. That will be fun. I need to make a topic about it. I hope it can be change because l o o k i n g a t w o r d s l i k e t h i s s u c k s . :laugh:
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #10 on: January 17, 2007, 03:15:04 pm » |
|
D o n o t m o c k t h e T e r r a n i g m a f o n t !
|
|
|
|
DaMarsMan
Guest
|
|
« Reply #11 on: January 17, 2007, 06:47:12 pm » |
|
Well...I could help but I really don't have that much experience with GBA. Not to mention the assembly tools suck. Maybe we can rip some code from another game and just change the offsets.
|
|
|
|
KaioShin
Guest
|
|
« Reply #12 on: January 18, 2007, 08:10:12 am » |
|
A question to those with some experience:
Would implementing a half width font be a lot easier than a full vwf? I think I would have to rewrite the whole routine as well, so I'm not sure if it wouldn't be better to go for a vwf right away.
|
|
|
|
Normmatt
Guest
|
|
« Reply #13 on: January 18, 2007, 08:24:11 am » |
|
well seeing as this game draws the characters directly to vram i don't see the point in implementing a hwf when you would need to recode the entire routine to do so you might aswell go the whole way and implement a vwf
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #14 on: January 18, 2007, 09:58:24 am » |
|
Ok. I think I'm going to have to step in here and start offering some help. I've taken a brief look at the information. I don't think it's going to be all that horrible at all. Yes, it's usually always easier to do a fixed width hack versus VWF, especially for a first timer.
So, let's get this straight. The current routine simply DMA's characters DIRECTLY from the ROM to VRAM? I don't know the GBA hardware off the top of my head, so how many bytes does it DMA? What is the size of the font in question here? What is the size you want it to be? It is most likely an even tile length or it would have to use RAM.
If it's 16x16, it might be a matter of simply reducing the amount of bytes transferred and altering the tilemap to reflect it. That would easily get you to 8x16 potentially.
For a fixed width hack, all you're doing is changing the size of your font. You just need to figure out how to reduce the amount of data loaded and probably fix the tilemap to reflect that so you don't have gaps between letters.
The VWF route will be much more difficult becuase you WILL need to use RAM and therefore need to add code to load characters to RAM and then get those tiles to VRAM. And of course deal with the actual VWF logic itself which is hard enough for new people.
|
|
|
|