Norrin_Radd Posted June 18, 2008 Share Posted June 18, 2008 I get the feeling that this is a very annoying question to ask, but I've scoured the internet for a couple hours looking for some answers (Including multiple TSB forums).In TSBm 1.3, when you create your own face image, or even if you slightly edit one of the existing ones, are you ever able to save them and see them in the rom? When ever a select a player to have an altered face, TSBm 1.3 shows them as having it, but when I save it and open the rom, they are one of the white guys with the black mullets, but they have all blue for a face.Everything else works fine. I can even change their faces to all ready existing faces. Change attributes, names and jersey numbers. But for some reason that face image just will not save.I notice in the readme that came in the zip that certain player face bugs have been fixed. Is it still in the WIP phase as far as character faces go? Quote Link to comment Share on other sites More sharing options...
BAD_AL Posted June 18, 2008 Share Posted June 18, 2008 As far as I know, the faces are rendered. They are not bitmaps, so in order to change them, I believe that you would have to change the drawing algorithms. Quote Link to comment Share on other sites More sharing options...
buck Posted June 18, 2008 Share Posted June 18, 2008 you can always open it up in Nesticle and do a little plastic surgery. Quote Link to comment Share on other sites More sharing options...
Norrin_Radd Posted June 19, 2008 Author Share Posted June 19, 2008 As far as I know, the faces are rendered. They are not bitmaps, so in order to change them, I believe that you would have to change the drawing algorithms.Ok, so I am not suppsoe to be able to have it work with TSBm 1.3 alone? Ok, that's good to know.Is changing the algorithms super hard? I've no experience in hacking roms. Any chance knowledge in C will help? Quote Link to comment Share on other sites More sharing options...
jstout Posted June 19, 2008 Share Posted June 19, 2008 The faces in the rom are made in tile pieces that get grouped together.So the rom is setup with pointers where the first half are white players and the second half are dark players. Those pointers go to more pointers for the parts (so the face shape, hair, eyes, mouth, etc each have pointers). Those pointers go to the tiles to be used and placement.Not really hard to do once you know what you are doing (I could make an example for better knowledge). But all of it currently requires doing it in hex or an assembler.But when you actually edit a tile then every face using that tile will change and that isn't usually what you want. So any editing program would actually have to be more drag and drop (like the helmet editor by Konforce). Quote Link to comment Share on other sites More sharing options...
TomTupa Posted June 19, 2008 Share Posted June 19, 2008 ahh.. no wonder nobody has updated the rosters with Peyton's big head. Quote Link to comment Share on other sites More sharing options...
BAD_AL Posted June 19, 2008 Share Posted June 19, 2008 The faces in the rom are made in tile pieces that get grouped together.So the rom is setup with pointers where the first half are white players and the second half are dark players. Those pointers go to more pointers for the parts (so the face shape, hair, eyes, mouth, etc each have pointers). Those pointers go to the tiles to be used and placement.Not really hard to do once you know what you are doing (I could make an example for better knowledge). But all of it currently requires doing it in hex or an assembler.But when you actually edit a tile then every face using that tile will change and that isn't usually what you want. So any editing program would actually have to be more drag and drop (like the helmet editor by Konforce).I always thought they were rendered because I could never find the tiles, do where the tiles are at? Quote Link to comment Share on other sites More sharing options...
jstout Posted June 19, 2008 Share Posted June 19, 2008 Bad_Al, x58810 is the location of the face tiles. They will look like this: Quote Link to comment Share on other sites More sharing options...
BAD_AL Posted June 20, 2008 Share Posted June 20, 2008 Bad_Al, x58810 is the location of the face tiles. They will look like this: Cool, I never noticed those before. Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 21, 2008 Share Posted June 21, 2008 For every image, a group of tiles are ordered. Each image group is then mapped back to a pointer. That pointer is then what is used when defining the players image, along with their attributes. One way to make different faces would be to edit the current tiles, which would effect any other image that the tile is included in. Another option would be increase the amount of tiles used for face pictures, which would leave the current images intact. Is it very difficult to increase the number of tiles from which the images are pulled and is there room for more tiles? I'd love to know for the next Repository Rom Bad_Al, x58810 is the location of the face tiles. They will look like this: Quote Link to comment Share on other sites More sharing options...
jstout Posted June 21, 2008 Share Posted June 21, 2008 Rod, currently the game can only handle 256 faces(x00 to xFF) and not all are used so you can use the current face parts for more. The default also has half being light and half being dark (this can be modified with some hex editing and a small amount of code work). There should be plenty of room to create a face to replace a default one that you don't need as well.It isn't overly hard to add a few tiles (unless you have a free bank available you'll need to double the tile section making the rom larger). I have been able to add 64 tiles safely to the face section before (I don't remember the max but it is less than 126 tiles you can add for certain).If you are still interested I can do an example creating a new face with the just the current tiles. Quote Link to comment Share on other sites More sharing options...
Knobbe Posted June 21, 2008 Share Posted June 21, 2008 I'm sure there are combinations of faces that haven't been made from the existing tiles, but i'm thinking of things that currently don't exist, such as a mohawk.Do you have a rom already with added tiles? Quote Link to comment Share on other sites More sharing options...
TomTupa Posted June 22, 2008 Share Posted June 22, 2008 Yes this would truely be awesome for the next Repository rom. When I was doing faces for the 2007 rom the main thing I noticed was that many of the black players now have dreadlocks and there is nothing like that on the rom. Just the guy that looks half bald with the small bit of hair behind him. Also the Deion Sanders jheri curl is nonexistent now. White guys also need a long hair version. Quote Link to comment Share on other sites More sharing options...
jstout Posted June 22, 2008 Share Posted June 22, 2008 I'm sure there are combinations of faces that haven't been made from the existing tiles, but i'm thinking of things that currently don't exist, such as a mohawk.Do you have a rom already with added tiles?I didn't have one saved so I whipped one up using the original rom. I added the maximum of 126 new tiles (at the end of the rom the new usable tiles are the ones with my initials). I used 5 tiles to draw up a test to make sure everything was working (QB Bills has that test face).TSB_Face.zip Quote Link to comment Share on other sites More sharing options...
Knobbe Posted April 27, 2011 Share Posted April 27, 2011 Face PointersThere are FF possible faces or 256 possible facesEach player is assigned a face pointer as part of their attributesThe face pointers link to the following location1C010x to 1C21FxEach pointer consists of two bytes, the first byte being "00 A2", the next being 0C A2", etcThe value for QB Bills is 52 - this corresponds to the value "21 A6"Somewhere else on the rom are pointers that actually draw the picture...the face pointers point to these Quote Link to comment Share on other sites More sharing options...
buck Posted April 28, 2011 Share Posted April 28, 2011 Somewhere else on the rom are pointers that actually draw the picture...the face pointers point to theseand where are the pointers that draw the picture? Quote Link to comment Share on other sites More sharing options...
Knobbe Posted April 28, 2011 Share Posted April 28, 2011 Somewhere else on the rom are pointers that actually draw the picture...the face pointers point to theseand where are the pointers that draw the picture?It was getting late, dog kamphuna8 1 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted May 14, 2013 Share Posted May 14, 2013 2 years later.... The pointers for the tiles for the faces follow immediately after the 256 face pointers, most of which are duplicates of the white dude with the mustache. The first pointer value we saw was "00 A2", which corresponds to A200 which given our relative location + 10 hex for the header = 1c210 and starts "ca 42 cf 21"The next pointer value is to "0C A2" which is 12 bytes away. This means that it should take 6 tiles to build up an image. Since I now know what the heck I'm looking for I should be able to verify this mapping and if so should be able to build a rough Excel based face editor DFM, kamphuna8 and buck 3 Quote Link to comment Share on other sites More sharing options...
buck Posted May 15, 2013 Share Posted May 15, 2013 Since I now know what the heck I'm looking for I should be able to verify this mapping and if so should be able to build a rough Excel based face editor doo it Quote Link to comment Share on other sites More sharing options...
DFM Posted May 15, 2013 Share Posted May 15, 2013 Ha, yea this does sound awesome. STACHES FOR EVERYONE! Quote Link to comment Share on other sites More sharing options...
Knobbe Posted May 15, 2013 Share Posted May 15, 2013 This is going to take me a little while. I more or less have the locations but I really don't know exactly how it's laid out. Quote Link to comment Share on other sites More sharing options...
DFM Posted May 16, 2013 Share Posted May 16, 2013 such a tease Quote Link to comment Share on other sites More sharing options...
Knobbe Posted May 17, 2013 Share Posted May 17, 2013 Got a little frustrated by not being able to figure it out. Started on a rom that numbers roms based on the PPU calls This is Frank Reich I'm numbering from 00-FF though only only 10 through 8F seems necessary. As you notice items are mirrored The mouth is made up of 22 on the left and 22 mirrored on the right The left side is 3A 38 3A Not sure what's going on with the eyes...is there a place I didn't edit yet or do I have multiple tiles on top of each other? Al Edwards uses one tile for a mouth As you can deduct from the side of the heads, he has the same ears/head sides as Frank Reich I'm upping the rom i'm using that needs a bit more work as locations 50 through 8F needs to be finished. I'll also put a border around the tiles to ultimately show their max sizes. tsbFaceNumbers.nes Quote Link to comment Share on other sites More sharing options...
jstout Posted May 20, 2013 Share Posted May 20, 2013 Here is an example of how the faces are done: Frank Reich:x1C054 $A064 (POINTER) = B9A3x1C3C9 $A3B9 (DESIGN) = CC10 CF60 CDCC CEBD CF97 B074x1CC20 $AC10 (HAIR) = 700088 704090 710888 710890 7A0080 7A4098 FEx1CDDC $ADCC (EARS) = 7A0080 7A4098 380800 384818 3A1000 3A5018 FEx1CECD $AEBD (MOUTH) = 221408 225410 FEx1CF70 $AF60 (EYES) = 1B0988 1B4990 FEx1CFA7 $AF97 (LOWER HEAD) = 021008 025010 071808 075810 FEx1D084 $B074 (UPPER HEAD) = 210008 214010 000808 004810 FFFormat: 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 03FE = NEXTFF = END kamphuna8, DFM, keithisgood and 2 others 5 Quote Link to comment Share on other sites More sharing options...
Knobbe Posted May 20, 2013 Share Posted May 20, 2013 Awesome...I'll see if I can follow along in the code oooooooooooooooooooooooh....I get it now. I didn't consider that the pointers were pointing to essentially more pointers. Player Data has a pointer to the "Face Number." Each Face Number corresponds to a two byte address which is a lookup for the Face Design.That address corresponds to 6 values of two bytes. Those six pointers draw out the Hair, Ears, Mouth, Eyes, lower and upper head.All of the individual components are made up of a variable number of blocks. The length of the each block is 3 bytes which corresponds to the tile used, and the vertical and horizontal location of the tile.A FE or FF is thrown to let the system know that no more blocks will be needed to draw that section. One point of clarification...When you have the line *ROW = +00 = NORMAL, +40 = HORIZONTAL MIRROR, +80 = VERTICAL MIRROR, +C0 = HORIZONTAL AND VERTICAL MIRRORDoes that denote that the byte hex value should be broken out into bits as in 55 hex = 01 01 01 01 bin ? 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.