+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  I created a tiny bug
Pages: 1 [2]
Author Topic: I created a tiny bug  (Read 2 times)
RedComet
Guest
« Reply #15 on: January 17, 2009, 02:44:18 pm »

The attribute tables are probably to blame, I would think. I'm not really familiar with how they work, other than they specify the palette to use for a certain area (I think). Might wanna look into that. Smiley
Tauwasser
Guest
« Reply #16 on: January 17, 2009, 05:22:21 pm »

Code:
$A905:AD 30 60  LDA $6030 = #$09           
$A908:C9 08     CMP #$08                   
$A90A:F0 0A     BEQ $A916                 
The problem is most likely in there.

Are you sure this thing does what you think it does? It just compares your "String length" to 08 and 10 and if none of those, it copies certain data to 22. This seems illogical. Actually, 08 and 10 would correspondent to the x values after the string which are red and not imho.

Seriously guys, get away from trace logs and give full source at least for one routine you want help with.

cYa,

Tauwasser
Disch
Guest
« Reply #17 on: January 17, 2009, 05:33:44 pm »

This is unrelated to the code you pasted (at least from what I can tell)

This is an attribute problem.  Attribute tables operate on 16x16 blocks.  Adding the 9th character moved it into a new 16x16 block, which apparently is set to use a different palette.

You need to find out where/how the game loads the attribute tables for this screen and change them so that that column of 16x16 blocks uses a different palette.  In my experience it's not uncommon for attribute tables for screens like this to be stored in full and as-is in the ROM somewhere, so look at the $23C0 in the PPU and look for the same $40 byte string in the ROM somewhere.  Then tweak it to get it the way you want.

EDIT - now that I look at this closer it appears the game updates attributes in order to highlight different names, which means you'll have to find the routine that modifies the attributes and change them to update the next column as well.

Attribute stuff is tricky.
Kagemusha
Guest
« Reply #18 on: January 18, 2009, 05:24:24 pm »

Did any of the code I posted have anything to do with attribute tables? I've looked at pretty much all of it and I can more or less understand what's going on, but I'm not quite making the connection between the two.

Edit: I've commented a bit on that code I pasted a page back.
« Last Edit: January 18, 2009, 05:52:32 pm by Pennywise »
KingMike
Guest
« Reply #19 on: January 18, 2009, 07:04:25 pm »

Attribute tables are at PPU $23C0-23FF, 27C0-27FF, 2BC0-2BFF, 2FC0-2FFF.
Look for any writes those PPU areas (the address is set by writing twice to $2006, first write is the high byte, second is the low byte). Each 2 bits affects a 16x16 area of the screen.
(so, look for when the game writes 23, 27, 2B or 2F to $2006, followed by another write to $2006 with a value C0 or higher. That will affect the attribute table)
Pages: 1 [2]  


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