jstout Posted May 20, 2013 Share Posted May 20, 2013 One point of clarification... When you have the line *ROW = +00 = NORMAL, +40 = HORIZONTAL MIRROR, +80 = VERTICAL MIRROR, +C0 = HORIZONTAL AND VERTICAL MIRROR Does that denote that the byte hex value should be broken out into bits as in 55 hex = 01 01 01 01 bin ? I wouldn't say that is entirely right. The high 2 bits control mirroring and the low 6 bits control the row as %VHRRRRRR (V = Vertical Mirror, H = Horizontal Mirror, R = Row). So: x00-x3F = Set Tile Normally (Row 00 to 3F) x40-x7F = Set Tile with Horizontal Mirror (Row 00-3F) x80-xBF = Set Tile with Vertical Mirror (Row 00-3F) xC0-xFF = Set Tile with Horizontal and Vertical Mirror (Row 00-3F) Knobbe and DFM 2 Quote Link to comment Share on other sites More sharing options...
DFM Posted May 20, 2013 Share Posted May 20, 2013 jstout > Knobbe Seriously though, creating a team stache just became a reality. Knobbe 1 Quote Link to comment Share on other sites More sharing options...
buck Posted May 21, 2013 Share Posted May 21, 2013 (edited) dude, I've written so many number and letter sequences on tiles to try to understand graphics... Got a little frustrated by not being able to figure it out.Started on a rom that numbers roms based on the PPU calls Edited May 21, 2013 by buck Knobbe 1 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted May 21, 2013 Share Posted May 21, 2013 I wouldn't say that is entirely right. The high 2 bits control mirroring and the low 6 bits control the row as %VHRRRRRR (V = Vertical Mirror, H = Horizontal Mirror, R = Row). So: x00-x3F = Set Tile Normally (Row 00 to 3F) x40-x7F = Set Tile with Horizontal Mirror (Row 00-3F) x80-xBF = Set Tile with Vertical Mirror (Row 00-3F) xC0-xFF = Set Tile with Horizontal and Vertical Mirror (Row 00-3F) Cool, gotcha Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 23, 2013 Share Posted June 23, 2013 Here is a document breaking down the rom pointers.xlsx Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 23, 2013 Share Posted June 23, 2013 Here are the faces in a PDF TecmoFaces.pdf Quote Link to comment Share on other sites More sharing options...
DFM Posted June 24, 2013 Share Posted June 24, 2013 Wow! How did you compile the images for each piece - hair, faces, mouths, etc? The individual frames were jpgs and then the master you pasted is a png. Any chance of the individuals in png format? I could script it up in Photoshop and you could automagically rearrange faces that way as well. buck 1 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 24, 2013 Share Posted June 24, 2013 Wow! How did you compile the images for each piece - hair, faces, mouths, etc? The individual frames were jpgs and then the master you pasted is a png. Any chance of the individuals in png format? I could script it up in Photoshop shop and you could automagically rearrange faces that way as well. I essentially arranged them in Excel and then just snipped them into one image. Saving the individual images into files from Excel would be trivial in time compared to generating them out of an emulator. I might need to rethink how I did this...which could be faster than saving them out of Excel. If the blue backgrounds were made transparent then combining the images would be as simple as layering PNGs. I have yet to breakdown how many times each individual tiles was used. This will play a big role in determining how easy the components are to replace. DFM 1 Quote Link to comment Share on other sites More sharing options...
DFM Posted June 24, 2013 Share Posted June 24, 2013 So you compile in Excel and then took a screenshot? Where did the tile pictures come from? Quote Link to comment Share on other sites More sharing options...
keithisgood Posted June 25, 2013 Share Posted June 25, 2013 This is beyond cool. Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 25, 2013 Share Posted June 25, 2013 So you compile in Excel and then took a screenshot? Where did the tile pictures come from? The way the image building works is that each feature ends with a FE or FF. FE = get more tiles. FF = Done. I first changed every tile to FF so it would only draw one tile. Then I changed the pointer of QB Bill's image one by one and snipped the screen. It was very brute force. kamphuna8 and DFM 1 1 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 25, 2013 Share Posted June 25, 2013 This is a fairly crappy view that I'll edit later. There are 256 tiles here, starting 00 going through FF Following is the breakdown of the number of times each tile is used. Just because a number isn't listed below doesn't mean it's free...it's probably being used for a big helmet or something else 00 - 14 01 - 4 02 - 4 03 - 6 04 - 2 05 - 2 06 - 4 07 - 8 08 - 4 09 - 6 0A - 10 0B - 4 0C - 8 0D - 2 0E - 2 0F - 2 10 - 2 11 - 2 12 - 2 13 - 4 14 - 2 16 - 2 17 - 1 18 - 2 1B - 2 1C - 3 1D - 2 1E - 2 1F - 2 20 - 6 21 - 12 22 - 4 23 - 2 24 - 4 25 - 2 26 - 6 27 - 4 28 - 3 29 - 1 2A - 1 2B - 4 2C - 1 2D - 4 2E - 3 2F - 2 31 - 2 32 - 2 33 - 4 34 - 3 35 - 13 36 - 2 37 - 12 38 - 2 3A - 8 3B - 2 3C - 4 3D - 4 3E - 2 3F - 4 40 - 2 41 - 4 42 - 3 43 - 6 44 - 4 45 - 9 46 - 8 47 - 9 48 - 11 49 - 4 4A - 2 4B - 1 4C - 6 4D - 18 4E - 10 4F - 2 50 - 6 51 - 6 52 - 6 53 - 6 54 - 4 55 - 4 56 - 2 57 - 2 58 - 5 59 - 3 5A - 10 5B - 2 5C - 2 5E - 4 60 - 4 61 - 3 62 - 7 63 - 2 64 - 2 65 - 2 66 - 4 67 - 12 68 - 1 69 - 2 6A - 2 6B - 1 6D - 4 6E - 2 6F - 12 70 - 4 71 - 4 72 - 2 73 - 2 74 - 2 76 - 6 78 - 12 79 - 2 7A - 20 7B - 2 7C - 2 7E - 1 FE - 1 DFM 1 Quote Link to comment Share on other sites More sharing options...
DFM Posted June 25, 2013 Share Posted June 25, 2013 Got it. Totally awesome. I'm not sure how else to ask this. EXAMPLES: - These are compressed jpegs. They cannot be split because of the dithering caused by the compression. ^^ Can these be exported into uncompressed png format? I should be able to write a script for Photoshop to rearrange these based on some arbitrary criteria making creating new faces a piece of cake. Knobbe 1 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 25, 2013 Share Posted June 25, 2013 Got it. Totally awesome. I'm not sure how else to ask this. EXAMPLES: - These are compressed jpegs. They cannot be split because of the dithering caused by the compression. ^^ Can these be exported into uncompressed png format? I should be able to write a script for Photoshop to rearrange these based on some arbitrary criteria making creating new faces a piece of cake. I know what you mean...i'll get that done in the near future Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 27, 2013 Share Posted June 27, 2013 Faces sent.You can view them via this rom.All of them reside on the the Bills through the AFC East teams to the Cleveland Brownstsbfacehack.nes Quote Link to comment Share on other sites More sharing options...
DFM Posted June 27, 2013 Share Posted June 27, 2013 Face editing glory will soon be upon us. GameplayLoop and Knobbe 2 Quote Link to comment Share on other sites More sharing options...
GameplayLoop Posted June 27, 2013 Share Posted June 27, 2013 Knobbe, should you create a new thread dedicated to your work, so we can document it's benefits / uses, etc? Knobbe 1 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 27, 2013 Share Posted June 27, 2013 Knobbe, should you create a new thread dedicated to your work, so we can document it's benefits / uses, etc? http://tecmobowl.org/topic/53200-reference-of-the-tecmo-faces/ BTW. this is the sort of stuff that tags were MADE for. The "Tecmo Faces" tag allows me to easily find these threads back. Quote Link to comment Share on other sites More sharing options...
Knobbe Posted November 2, 2013 Share Posted November 2, 2013 Did I forget to post these? Quote Link to comment Share on other sites More sharing options...
kamphuna8 Posted November 26, 2013 Share Posted November 26, 2013 This has all been a fascinating read. Nice work to all. Quote Link to comment Share on other sites More sharing options...
averagetsbplayer Posted February 6 Share Posted February 6 (edited) On 5/20/2013 at 2:11 PM, jstout said: Here is an example of how the faces are done: Frank Reich: x1C054 $A064 (POINTER) = B9A3 x1C3C9 $A3B9 (DESIGN) = CC10 CF60 CDCC CEBD CF97 B074 x1CC20 $AC10 (HAIR) = 700088 704090 710888 710890 7A0080 7A4098 FE x1CDDC $ADCC (EARS) = 7A0080 7A4098 380800 384818 3A1000 3A5018 FE x1CECD $AEBD (MOUTH) = 221408 225410 FE x1CF70 $AF60 (EYES) = 1B0988 1B4990 FE x1CFA7 $AF97 (LOWER HEAD) = 021008 025010 071808 075810 FE x1D084 $B074 (UPPER HEAD) = 210008 214010 000808 004810 FF Format: TILE ROW COLUMN *ROW = +00 = NORMAL, +40 = HORIZONTAL MIRROR, +80 = VERTICAL MIRROR, +C0 = HORIZONTAL AND VERTICAL MIRROR *COLUMN = +00 = PALETTE 0, +40 = PALETTE 01, +80 = PALETTE 02, +C0 = PALETTE 03 FE = NEXT FF = END There's a bit of magic in here that I'm hoping someone can help me understand. I get in concept how x1C054 points to x1C3C9. - I don't really understand how the CC10 gets us to x1CC20 / $AC10, especially when the pattern is different for the B074 -> x1D084/ $B074. -------------------- Problem #2 (bruddog let me know I was misunderstanding this issue a it). - x1C010 has 56 bytes that represent 28 pointers to "Designs" - Designs aren't just a sequence of pointer "pairs" - These appear to be some instructions (including x04->x1C018->x1C240) - I noticed some that have a value (or two) between x80-x9F that appear to be some modifier before the "Feature" instructions that do the TILE-ROW-COLUMN 3-byte pattern. - So, I for x04->x1C018->x1C240, there's some x82 modifier that is then followed by the xCA x7A with 7-tile instructions starting at x1CA8A - Anyone know if I'm on the right track with this modifier concept? Previous Background I think understanding that will better help me understand Face x04 that looks like it starts at x1C018. - The values/pointer at x1C018 are x30 xA2 which would take us to the Design at x1C240, I believe - though I'm not certain. - The first pair at x1C240 is x82 xCA, and I was going to guess that took us to x1A2DA. But that looks like it has 246 bytes of instructions before an xFE or xFF (at x1A3D0 which looks like just empty space). Edited February 6 by averagetsbplayer Quote Link to comment Share on other sites More sharing options...
jstout Posted February 6 Share Posted February 6 2 hours ago, averagetsbplayer said: There's a bit of magic in here that I'm hoping someone can help me understand. I get in concept how x1C054 points to x1C3C9. - I don't really understand how the CC10 gets us to x1CC20 / $AC10, especially when the pattern is different for the B074 -> x1D084/ $B074. The design section acts different than a true pointer. The first byte is checked for if >x80, then >xA0, then >xC0, then >xE0 with each moving to a different branch of code. So when the design starts with xCC, the branch of >xC0 and <xE0 is ran and that part of the code subtracts x20. When the design starts with xB0, the branch of >xA0 and <xC0 is ran and that part of the code keeps the value intact. Short answer without a lot of details but hopefully that helps clarify why. Quote Link to comment Share on other sites More sharing options...
Knobbe Posted February 6 Share Posted February 6 8 hours ago, jstout said: The design section acts different than a true pointer. The first byte is checked for if >x80, then >xA0, then >xC0, then >xE0 with each moving to a different branch of code. So when the design starts with xCC, the branch of >xC0 and <xE0 is ran and that part of the code subtracts x20. When the design starts with xB0, the branch of >xA0 and <xC0 is ran and that part of the code keeps the value intact. Short answer without a lot of details but hopefully that helps clarify why. For face 02 you have CA50CF36CDDF9FCE7E80CFA4B074 which breaks into CA50 (Hair) CF36 (Eyes) CDDF (Ears) 9F CE7E 80 (Mouth) CFA4 (Bottom background) B074 (Top Background) From what I can decipher, there are various 'command codes' for lack of a better descriptor that tells me i'm going to do something special, which is eventually followed by a '80' to signify i'm going to back normal. It looks like at some point if I have a 81, 82, or 83, eventually I'll have a 80 to end that command. Otherwise I have a 9E or 9F, which also seems to be escaped out of with a 80. What do 81, 82, 83, 9E and 9F do? Quote Link to comment Share on other sites More sharing options...
Knobbe Posted February 6 Share Posted February 6 1 hour ago, Knobbe said: What do 81, 82, 83, 9E and 9F do? These shift the tiles up or down. Tony Jones hair starting with a 83 Starting with a 81 Starting with a 9E Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.