TheFes75 Posted September 11, 2015 Share Posted September 11, 2015 For the original Tecmo Bowl!! HUGE thanks to Jstuout for helping me find this. To change individual plays: Each play is made up of 8 bytes. The first 2 bytes change the play and the last 6 are most likely the blitz bytes. I just replaced all 8 and it worked perfect. You can put any play in any slot. Indianapolis x18010 Play 1: 02 00, 02 55, 02 5B, 02 5B Play 2: 02 53, 02 01, 02 5C, 02 5C Play 3: 02 02, 02 1A, 02 1C, 02 1B Play 4: 02 0F, 02 03, 02 1D, 02 1F Miami x18030 03 04 03 62 03 04 03 04 03 05 03 22 03 3C 03 21 03 06 03 23 03 25 03 24 05 07 05 26 05 27 05 28 Cleveland x18050 02 00 02 55 02 5B 02 5B 02 53 02 01 02 5C 02 5C 02 08 02 2A 02 2B 02 29 02 2C 02 09 02 2D 02 2E Denver x18070 03 0A 03 57 03 60 03 60 03 55 03 00 03 5B 03 5B 03 03 03 2F 03 1F 03 1D 05 31 05 0B 05 32 05 33 Seattle x18090 03 0A 03 57 03 60 03 60 03 55 03 00 03 5B 03 5B 03 03 03 2F 03 1F 03 1D 03 36 03 0C 03 37 03 38 LA x180B0 04 0D 04 58 04 61 04 61 04 0E 04 0E 04 0E 04 0E 04 63 04 1E 04 3B 04 20 04 39 04 10 04 3A 04 3B Wash x180D0 02 00 02 55 02 5B 02 5B 02 11 02 11 02 11 02 11 02 05 02 3D 02 22 02 21 02 3E 02 13 02 3F 02 40 SF x180F0 03 5B 03 5B 03 5B 03 5B 03 03 03 1F 03 1D 03 34 03 08 03 29 03 2B 03 2A 05 12 05 41 05 42 05 43 Dal x18110 03 14 03 54 03 5D 03 5D 03 59 03 15 03 5F 03 5F 03 06 03 44 03 25 03 45 05 46 05 16 05 47 05 48 NY x18130 03 14 03 54 03 5D 03 5D 03 59 03 15 03 5F 03 5F 03 05 03 3C 03 22 03 21 03 2C 03 09 03 2D 03 2E Chi x18150 03 0A 03 57 03 60 03 60 03 59 03 15 03 5F 03 5F 03 17 03 49 03 4B 03 4A 03 4C 03 18 03 4D 03 4E Min x18170 02 0A 02 57 02 60 02 60 02 19 02 19 02 19 02 19 02 13 02 4F 02 40 02 3F 02 2A 02 08 02 29 02 2B 02 00 02 55 02 5B 02 5B (Washington's Run 1 from a single back set) If you change the 4 sets of 02 to one of the Hex numbers below you will get the corresponding formation and you can run the play from it. 00=Kick Return 01=Kickoff 02=Single back 03=Single back offset 04=Split backs 05=Shotgun 06=3-4 defense 07=4-3 defense 08=FG offense 09=FG defense 0A=Punt Offense 0B=Punt Return Playbook Pics Unfortunately, the picture does not change with the play. You'll have to do that manually, it's VERY easy, just copying and pasting with a good hex editor like hex workshop. The pictures are in perfect order: IND run 1, run 2, pass 1, pass 2, MIA run 1, pass 1, pass 2, pass 3, CLE, etc. Each picture has 62 bytes. You don't want to change the last 4 bytes on any play, as this tells the game which slot to use. You can tell the begging and end of a play by: 2060616263 is run 1 2060616264 is run 2 5C5D5E5F63 is pass 1 5C5D5E5F64 is pass 2 5C5D5E5F65 is pass 3 (these make up the text for run 1 pass 1, etc. so change 63,64,65 for 1,2,3). IND x890C MIA x8A04 CLE x8AFC DEN x8BF4 SEA x8CEC LA x8DE4 WAS x8EDC SF x8FD4 DAL x90CC NY x91C4 CHI x92BC MIN x93B4 The next section immediatly after the playbooks, x18190, may have to do with individual routes and such. the defense "routes" are also affected. Have fun. ------------------------------------------------------------------------------------------------------------------------------------- The Blitz bytes are in red. In order, play 1, 2, 3, 4. Here are the Def play bytes to match offensive plays: VS IND x1A51006 03 06 02 06 00 06 01 06 06 06 03 06 05 06 04 06 08 06 14 06 0B 06 0D 06 09 06 07 06 0A 06 0E VS MIA x1A55006 03 06 11 06 0F 06 10 06 07 06 0E 06 0A 06 14 06 12 06 0C 06 0E 06 13 06 08 06 30 06 15 06 2F VS CLE x1A59006 03 06 02 06 00 06 01 06 06 06 03 06 05 06 04 06 08 06 0C 06 42 06 16 06 09 06 08 06 16 06 0E VS DEN x1A5D006 03 06 19 06 17 06 18 06 02 06 03 06 01 06 00 06 07 06 09 06 0E 06 0A 06 1C 06 08 06 1D 06 2F VS SEA x1A61006 03 06 19 06 17 06 18 06 02 06 03 06 01 06 00 06 07 06 09 06 0E 06 0A 06 14 06 08 06 13 06 0E VS LA x1A65006 03 06 21 06 1F 06 20 06 25 06 03 06 24 06 23 06 08 06 40 06 3D 06 41 06 3E 06 08 06 3F 06 3D VS WAS x1A69006 03 06 02 06 00 06 01 06 2E 06 03 06 2D 06 2C 06 07 06 09 06 0E 06 16 06 0C 06 1A 06 13 06 0E VS SF x1A6D006 03 06 02 06 00 06 01 06 07 06 0E 06 0A 06 14 06 12 06 14 06 42 06 0A 06 08 06 31 06 32 06 2F VS DAL x1A71006 03 06 06 06 04 06 05 06 35 06 03 06 34 06 33 06 12 06 0C 06 0E 06 13 06 32 06 08 06 36 06 2F VS NY x1A75006 03 06 06 06 04 06 05 06 35 06 03 06 34 06 33 06 07 06 0C 06 0E 06 16 06 09 06 08 06 14 06 0E VS CHI x1A79006 03 06 19 06 17 06 18 06 35 06 03 06 34 06 33 06 08 06 14 06 3B 06 2B 06 14 06 08 06 09 06 0E VS MIN x1A7D006 03 06 19 06 17 06 18 06 3A 06 03 06 39 06 38 06 1A 06 0C 06 0E 06 13 06 0C 06 12 06 16 06 42 The Def play pointers seem to begin at x1A810. The second byte in the pointers above are the actual defensive play numbers. For example, the blitz byte pointer "06 03", "03" is the defensive play number. To get to the defensive play instructions you must do the following in hex: 03 * 12 + 1A810 = x1A846 That would be the location of def play #03 pointers. You will find these pointers: 3D B1 8C AD 50 B1 63 B1 76 B1 89 B1 94 B1 A7 B1 C2 B1 Take each pointer such as "3D B1", swap the bytes to get "B13D", add x10 in hex to get "B14D", now finally add a "1" in front of it to get "x1B14D". That is where that particular player instructions are located. So far I have found that each defender's instructions start with a "21". If you change it, the defender's graphic is messed up and the most of the time misplays. I'm find the offensive plays and instructions next. I hope this helps out. --------------------------------------------------------------------------------------------------------------------- Using the offensive playbooks you posted, here is how the offense play pointers go. The player order is like this (Offense going right on screen): Singleback Set: Top WR, TE, RB, QB, Bot WR, LG, C, RG, LT. Two Back Set: TE, Top RB, Bot RB, QB, Bot WR, LG, C, RG, LT (9 sets of pointers; 18 bytes total) The second byte is play number just like on defense. Here is an example using IND's play 1: Indianapolis x18010 Play 1: 02 00, 02 55, 02 5B, 02 5B To get offensive play instructions, do the following in hex: 00 * 12 + 18190 = x18190 You'll find these pointers: 88 88 95 88 A5 88 B6 88 DF 88 EF 88 FD 88 08 89 16 89 Take each pointer such as "95 88", swap the bytes to get "8895", add x10 in hex to get "88A5", now finally add a "1" in front of it to get "x188A5". That is where that particular player instructions are located. I notice that majority of offensive player instructions start with "20". Then only exception I've seen with this so far is the QB always uses "02". I will be looking for offensive formation pointer next. You can swap the play pointers for QB & RB and make wildcat plays, however, they stay in their original positions. I have found all the play graphics. They are 62 bytes long. Ignore the first 2 bytes(just tells part of screen to place play graphics). The next 60 bytes are 6 rows of 10 tiles across from x8908 until x94A7. They are in order: play 1, 2, 3, 4. IND x8908 x8946 x8984 x89C2 MIA x8A00 x8A3E x8A7C x8ABA CLE x8AF8 x8B36 x8B74 x8BB2 DEN x8BF0 x8C2E x8C6C x8CAA SEA x8CE8 x8D26 x8D64 x8DA2 LA x8DE0 x8E1E x8E5C x8E9A WAS x8ED8 x8F16 x8F54 x8F92 SF x8FD0 x900E x904C x908A DAL x90C8 x9106 x9144 x9182 NY x91C0 x91FE x923C x927A CHI x92B8 x92F6 x9334 x9372 MIN x93B0 x93EE x942C x946A Team names as they appear on the playcall screen, starts at x94A8 until x951F, they are up to 10 bytes long. I am also figuring out what some of the offensive instructions do. I will use the IND Run 1 as an example again. The QB pointer is "B6 88", which is at x188C6. There you will find: 02 13 FF 02 00 00 00 00 00 01 C6 88 06 00 1F FE 1D 12 50 C4 9D 12 70 09 9E 12 60 15 9E 09 10 00 00 00 00 17 00 20 FF 1F FC I took it that "02" means pitch to RB since he is third in the player order. So since the WR1 is first in player order, I changed "02" to "00" and the QB now pitch to the WR1 at the sideline just like a quick screen. So now soon we will be able to create our own plays for TB as well, but their is much more for me to figure out. I will post a copy of the rom with that new play & new play graphic. Team uniform colors white players then black players: IND x10350 x10354 MIA x10360 x10364 CLE x10370 x10374 DEN x10380 x10384 SEA x10390 x10394 LA x103A0 x103A4 WAS x103B0 x103B4 SF x103C0 x103C4 DAL x103D0 x103D4 NY x103E0 x103E4 CHI x103F0 x103F4 MIN x10400 x10404 ---------------------------------------------------------------------------------------------------------------------------------------- Roms are hexidecimal based. That means that they are base 16 instead of base 10. The range is from 0-F. A=10, B=11, C=12, D=13, E=14, F=15, 10=16, 11=17, 1F=31, etc... Bo Jackson 43 0B 50 8ABit 1: 4 -> Acceleration time (Rushing Power) - The larger the number, the more time it takes for the player to get to max speed. Every offensive player in the game has a 3 for this value except Bo with 4 and Indy WR Bill Brooks with an 8 (I believe they messed up on the RP for Bill Brooks and John Elway. Elway is a 3 when all other QB's are an 8 and Brooks is an 8 when all other WR's are a 3.) Bo is likely this way to nerf the fact that he has the highest max speed. For defensive players this varies from 7 to 9. Most players are 8 or 9 with several of your elite guys like a LT at 7. All kickers and punters have a value of A meaning they change direction slower than anyone else in the game. Bit 2: 3 -> Initial speed (Running Speed) - This is the speed you run at while you are accelerating to max speed. For offensive players this number varies from 0-4. For defensive players, it varies from 0-3 though only Ronnie Lott and LT have a 3 value.Bit 3 and 4: 0B -> Max speed - The speed at which players top out at after accelerating from their initial speed. Offensive players vary from 05 to 0B while defensive players vary from 0C to 12. You can really tell the difference in offensive players when this is changed but I had a hard time finding differences in defensive players. It be nice if someone could verify or disprove the defensive part.Bit 5 and 6: 50 -> Hitting Power - The higher the hitting power, the more likely you are to win grapples or "popcorn" the other player. Offensive players vary from 20-60 though 30-38 is the norm. Defensive players vary from 30-56. My guess is that there is a equation for popcorn, grapple, and tackles based on the variences between hitting powers. (A 32 point difference will create "popcorn" i.e 56HP defender and 88HP Kevin Mack or 48HP defender and 80HP Herschel Walker or Bo Jackson)Bit 7: 8 -> Race - Tecmo has it's basic black or white player setting. 0 is used for white and 8 is used for black. Any value from 0-7 is white or any value from 8-F is black. (Washington uses a different color "black" than the other teams due to their dark red uniform color)Bit 8: A -> Special Ability -Quarter Backs: All QBs have the value 8 here except for John Elway, who has the value 3. I have no idea why this is or what it does. Any one notice anything different about Elway than the other QBs besides the fact he is fast. (His other stats make him faster) Does he run more than other QBs? If so this could be a scrambling number similar to the one TSB has.RBs, WRs, TE: This value controls the QB passing speed/pitching speed plus it possibly might control the receiving ability. The numbers vary from 8-E here while most players on the same team have the same values.Kickers and Punters - These probably control either the max distance the ball travels or the speed of the kick meter, but I honestly didn't care enough to figure it out. Kickers vary from 5 - A while Punters vary from 6 to E.Kick Returners and Defensive players - These players all have a value of 0 which means that they don't use this bit. Changing it also seems to have no affect. ----------------------------------------------------------------------------------------------------------------------------------------- The place to edit team uniform colors begins at address 10350. That line is for Indianapolis. Miami begins at 10360, Cleveland at 10370, etc. Indy's line breaks down like this: 0F 30 36 11 0F 30 15 11 0F 19 12 30 The first four bytes are four white players. The second four are for black players. The third four are for the field. You can use the TSB Manager to get the hex values for each color. If you go to where you edit team colors you get a 4 x 16 chart. The four rows represent the first digit, beginning with 0. The 16 columns represent the second digit, also start with 0. So Dark Gray is 00, Green is 0A, White is 30, Black 8 is 3F. The green numbers are for the team's helmets & pants. The blue numbers are for the team's jerseys. The red numbers are for the players' skin color. 36 is used for all white players. Black players have 15, 05, or 0F depending on the team. The violet numbers are for the team's end zone. This is generally just a variation on one of the uniform colors, but not exactly the same, or else players would partially disappear. The other numbers are constant for all teams. 0F is black, the first two times this appears in each team line does not seem to affect anything. The third 0F is for the black parts of the field. The 19 is green, the color of the field. The 30 is the white part of the field. Another place you might want to edit is the data for the touchdown screen, where the players jump & high-five each other. This begins at address 12510 and each team has one line, beginning with Indy. Their line looks like this:30 11 0F 30 21 11 0F 36 21 11 The green numbers are again for the players' helmets. The first two blue numbers are for the players' jerseys. The third occurrence seems to be one of the colors in the background crowd. All the other numbers are constant for all teams. ------------------------------------------------------------------------------------------------------------------------------------------ TECMO BOWL PLAYER COMMANDS 0x00 = Hike Under Center 0x01 = Hike From Shotgun 0x02 = Take Snap Under Center 0x03 = Take Snap From Shotgun 0x04 = Take Snap For Field Goal/Extra Point 0x05 = Stand (Time) 0x06 = Turn (Time) 0x07 = Wait (Chance, Start Time, End Time) 0x08 = Move-Relative (Location, Player) 0x09 = Move-Ball Placement (Location, Player) 0x0A = Run Rush (Player) 0x0B = Vertically Mirror Ball Carrier (Player) 0x0C = Pass Rush (Player) 0x0D = Run Rush (Player) *Same as 0x0A 0x0E = Pass Route 0x0F = Run Block (Man, Player) 0x10 = Pass Block (Player) 0x11 = Man-to-Man (Man, Player) 0x12 = Random (Chance, Pointer) 0x13 = Pass (Chance, Receiver, Pointer) 0x14 = Punt 0x15 = Set RS (Value) 0x16 = Set HP (Value) 0x17 = Computer Takes Control (Player) 0x19 = Kickoff 0x1A = Field Goal/Extra Point 0x1B = Kickoff Return Stance 0x1C = Kickoff Stance 0x1D = Player Takes Control 0x1E = Face Direction (Direction) 0x1F = Loop (Amount) 0x20 = Offensive 4-Point Stance 0x21 = Defensive 4-Point Stance 0x22 = Punt Return Stance *Set RS*2 to x12 and switches icon for return 0x23 = Set MS (Value) 0x24 = COA/COM Jump To (Pointer) 0x25 = COA/COM Random (Week, Pointer) 0x26 = Move-Relative (Location, Location, Location, Location) 0x27 = Random (Week, Pointer, Pointer) 0x28 = Take Snap For Punt ----------------------------------------------------------------------------------------------------------------------------------------- Fix for Bo Jackson Run so top defender is blocked: SET(0x19062, 0x20163809D4E01000000F031000001FFB); SET(0x19DF2, 0x250172A01505230A0F070100001FF715); SET(0x1907E, 0x201505230A0F008000001FF7); -------------------------------------------------------------------------------------------------------------------------------------------------------- Fix for Pat Beach play so he is covered on play pick: Still to come -------------------------------------------------------------------------------------------------------------------------------------------------------- Knobbe and buck 2 Quote Link to comment Share on other sites More sharing options...
QuackQuack Posted September 12, 2015 Share Posted September 12, 2015 AWESOME. Thanks for gathering all this! As someone who's just starting out hacking the original, this is insanely helpful. 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.