October 19th, 2010 6:05 AMShiny Quagsire
Alright, I'll do that.
October 18th, 2010 10:34 PMcolcolstyles
Well, if I told you where the palette buffer was, then you wouldn't be a hacker. If you really want, I can tell you but if you're anything like me, you'll want to figure it out for yourself.
October 15th, 2010 7:50 PMShiny Quagsire
Hey, it turns out the pallet came out to haunt me. I've found the pallet buffer, but it still won't get the pallet loaded. It's at 020371F8, but when I set the values, it doesn't change
September 26th, 2010 6:31 PMShiny Quagsire
Yeah, I might just test it on fire red now, since I managed to load everything.
September 26th, 2010 6:30 PMcolcolstyles
I don't really know but if the tilemap is large, you might want to use CpuFastSet. Though if it's really large, you might consider compressing it and using one of the decompression BIOS functions instead.
I can't say. It could be any of those three. You'll have to debug it yourself because I don't have your ROM.
September 26th, 2010 1:55 PMShiny Quagsire
Yeah, I'll probably make mine monospaced (Or use the NTME thing I said earlier, since it's monospaced.), maybe a different font, since it might be carved into the sign if you think about it.
As for the cpuset, I'll try that. The fastset didn't even do it at all, and I have no other pallets being written. Also, should I use the fastset for a tilemap, or the cpuset?
edit: I've got it to load the pallet, tiles, and tilemap, but it shows up white. What's up with that?
September 25th, 2010 10:00 PMcolcolstyles
If I recall correctly, Coolboyman's signs use a monospaced font, which makes displaying text quite easy. With the 3rd generation games, the letters are taller than 8px and many aren't a full 8px in width. The game uses some special code to configure the letters in the VRAM each time text needs to be displayed. That's why it's so hard.
As for your routine, I have two suggestions. One, use CpuSet ('swi 0xB') instead of CpuFastSet. While your code will work, the game uses CpuSet more often and I usually go with whatever the programmers use. I can't tell you the appropriate situations for each but I think that CpuFastSet is better for larger copies because it copies in sets of 32 bytes.
Secondly, you are copying a palette from the ROM directly into the Palette Memory. This won't cause any noticeable change because once per frame, the Palette Memory is overwritten with the contents of a Palette Buffer somewhere in the WRAM. I don't have the address on me right now but you can find it easily with either VBA-H or VBA-SDL-H. You should write to the buffer instead.
September 25th, 2010 8:04 PMShiny Quagsire
Interesting... then why does NTME have a text bookmark? It might just be a GSC leftover text.
I already have my image binaries ready, so I can at least display the sign image. If it comes down to text, I might just take a screenshot of each different letter, and make a table of LZ77 compressed letters, and load them out into the tiles. As for reading the string, that'll be hard
I guess it'll take a while anyways. I was aiming for imitating coolboyman's signs, but on GBA.
Sorry to pester again, but this one I think shouldn't be too hard.
What is a good method of loading a 16 color pallet into the pallet area? I'm having trouble getting my test ROM to cooperate...
I've tried this:
@set up pallet
ldr r0, =pal
@add r0, r3, r0
ldr r1, pallet
@mov r1, #0xA0
@lsl r1, r1, #0x13 @r1 = 0x05000000 = Palette Memory
mov r2, #0x08 @0x08 32bit writes
pal is an incorperated binary with the pallet, and pallet is just a pointer to the pallet ram.
September 25th, 2010 4:59 PMcolcolstyles
1. If you're asking for the location of the text in the ROM, I can't help you there. All I know is that it's stored in 2BPP format so if you want to try looking for it in Tile Molester, remember to change your settings.
If you're asking how to display text via an ASM routine, sadly I won't be much help with that either. The font is not monospaced which makes displaying it very difficult. What I did for my flashback hack was actually taking a screenshot of the text I wanted (after making a script to display it) and then inserting that image in the ROM. It makes editing the text even harder but if you know what you want it to say, it's a perfectly reasonable method, in my opinion.
2. If you can, I would advise you to stick with editing BG0. Unless you want to back up the tiles and tilemaps for the other backgrounds, you should limit yourself to one background (which shouldn't actually be very limiting).
September 25th, 2010 2:45 PMShiny Quagsire
Hey, quick question I want to ask real quick:
Alright, so I'm going further in my hacking, and making a signpost routine. I have a few questions I thought you might know. If you don't, that's fine too
1. How can I retrieve text so I can write it to video RAM? (At lease give the adress :p)
2. Should I switch modes and start with fresh pallets, or keep it simple and write to BG0 and just refresh the screen?
Any help would be nice
September 21st, 2010 6:19 AMShiny Quagsire
Yeah, because some people just pester a lot when it takes long.
September 20th, 2010 9:26 PMcolcolstyles
That's good. After all, entertainment is the reason why we hack. If you're not having fun doing it, why bother?
Of course, I've also noticed that I get a lot more work done when I'm working on something that I enjoy, rather than on something that I'm being forced to do.
September 20th, 2010 5:11 PMShiny Quagsire
Thanks. I'm actually having fun hacking the seasons in.
September 20th, 2010 4:51 PMcolcolstyles
That looks pretty cool! Good luck with that!
September 20th, 2010 6:08 AMShiny Quagsire
The seasons hacks the routine that loads the pallet from the tileset, so that it checks the time, and loads a different pallet depending on it. You can see it here:
Meanwhile, I'm also hacking the worldmap pallet, block loading, and behavior loading. So, if I wanted, I could make small ponds freeze in winter, so you can skate across