Jump to content

BAD_AL

Members
  • Posts

    557
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by BAD_AL

  1. Hi Guys, I'be been working on this one over the last few weeks.

    It is TSBTool for the SNES versions of TSBII & TSBIII.

     

    Features:

    • Edit Player Names, attributes, sim values
    • Edit Team strings (name, city, abb)
    • Edit Team Playbooks 
    • Edit Schedules
    • Edit Free Agents (TSBIII)
    • Edit all time greats (TSBIII)
    • Edit All 3 seasons of TSBII
    • Convert data between TSBI, TSBII & TSBIII
    • Auto Update Player Sim Values (formulas editable and defined in "Formulas\" directory)

     

    Go ahead and try it out.

    It does not yet mess with the player photos in TSBIII (anyone know how to change those?).

     

    TSBTool2_0_1_0.zip

     

    TSBTool2 is now deprecated.

    The functionality to edit TSBII & TSBIII has been rolled into the latest version of TSBToolSupreme (which should make converting between the versions easier).

    Latest releases should be here:

    https://github.com/BAD-AL/tsbtools/releases

     

  2. This is the Info I'm going with for Simulation for TSBII & TSBIII.

     

    Sim data Guide
    https://tecmobowl.org/forums/topic/2968-simulation-hex-values-for-tsb-iii-snes/
    FYI: nibble = hex digit
    Free Agent Value (TSB3 only): Is used in simming. Higher is better. 
        It is the second nibble of 'Face'. Example: Face=0x89 --> Free Agent value = 9
    *********QBs*********
    QB byte 1 Sim Carries [00-1C]: Higher value => More rushes & less pass attempts
    QB Byte 2 Sim Rushing ability[00-08]:  00=> Marino, 08=> Steve Young
    QB byte 3, nibble 1 Passing ability (completion %)[1-F]: 1 => Scott Zolak, F => Steve Young
    QB byte 3, nibble 2 sim scramble[0-3]: 0 => Dan Marino, 3 => Randall Cunningham
    
    *********Skill Players*********
    Byte 1: Rushing Ability [00-AD]
    Byte 2: Sim Carries [00-0B]
    Byte 3: Sim Return  ????
    Byte 4 nibble 1: Sim yards per catch
    Byte 4 nibble 2: Sim catches 
    
    *********Defense*********
    Byte 1: Sim Sacking 
    Byte 2: Sim Interception
    Byte 3: Sim Tackling 
    
    *********K/P*********
    Nibble 1: Kicking/punting ability


    Gonna work on formulas to 'Auto Update' the Sim Data. I'll incorporate it into the editor, with a possible chance to have it user configurable.

    Also gotta work on a converter for TSBII <--> TSBIII data.

  3. Update (0.5)

    • Fixed the Sim Locations (I have previously made an error where I used the start of the sim pointers as the start of the sim data)
    • Added support for TSB3.
    • Added info on What the SimData does (using TSB3 as the guide).
  4. It's amazing just how similar the ROM structure for TSBII and TSBIII (SNES) are.

    The differences I found so far:

    • QB1 bills name pointer is 8 bytes higher
    • there are 2 more teams
    • Each player has a new 'agility' attribute
    • qbs have 1 more byte of attributes assigned to them.
    • The schedule has different indexes for the teams, but the schedule is in the same place.

    So do we know about how TSBIII assigns Sim data?

    I'm guessing that would be the same for TSBII

  5. 3 hours ago, bruddog said:

    There are additional schedule pointers right after the 1992, 1993, 1994 schedule pointers. These are for the trade mode 19XX schedule. The trade mode schedules are after the 1992, 1993, 1994 schedules. 

    Looks like there's 3 more schedules in there 16F610, 16F808, 16FA00.

    Shouldn't take much more time to get editing to work for those too.

  6. On 9/26/2019 at 10:51 AM, Knobbe said:

     

    My rough working theory based on messing with the sim data:

    qb - 3 bytes (6 total) (bit 5 = passing, bit 6 = scramble)

    rb/wr/te - 4 bytes (40 bytes)

    18 defenders - 3 bytes each (sacks/int/tackles) (unlike TSB NES they are grouped per player) (54 bytes) - **CONFIRMED** 

    kicker/punter/rush defense yards allowed /pass defense yards allowed  (last 4 bits/2 bytes) - **CONFIRMED** 

     

    That gets me to 102

     

    Nice that we have the info on the defense.

    Did you confirm by simulating seasons and making edits and simulating again, code inspection, other?

     

  7. 2 hours ago, Knobbe said:

    Playbooks

     

    Start at E5D20

    First 6 bytes are pointers to 92,93,94

    Each playbook slot has 16 options.  Each team has 2 playbooks with 8 plays (16)

    Each team is represented by 8 bytes in the order of PBrun1, PBpass1, PBrun2, PBpass2

    Thus the playbook for the 92 bills is 62 60 40 48 05 E3 3E 39

     

    The order goes

    28 teams from 92

    Pro Bowl Teams

    28 teams from 93

    28 teams from 94 (the end is 01 D8 F0 07 50 5C 34 2C for the 94 49ers)

     

     

    Cool!

    I'll get that into the editor pretty soon. Probably work on schedule too.

  8. For those working to figure out more about TSB2 you can use this editor to play around with stuff.

    As of now, we don't know what the Sim data does (although Burddog did find it).

    The program can currently do the following:

    • Change player names
    • Change player abilities
    • Change Player Race
    • Change Team abbreviation, city & name
    • View and edit the SimData (although like I said, we haven't figured out what the different things do yet)
    • Lists the schedules (and modify them).

     

     

    We don't yet know where/what the following are:

    • Offensive preference
    • The second nibble of a player's 'Face' (nibble = half a byte)
    • Uniform colors

     

    If you'd like to contribute to finding stuff or follow the discovery of stuff, check out this thread.

     

    I'll move this editor to the proper forum once the program is mature enough:

     

     

    Minor update version 0.0.3

    • Sim data is broken out by player (using Knobbe's guesses )
    • Playbook (team) modification form is implemented
    • Scheduler working

     

    Update version 0.0.4

    • Player Edit Form
    • TSB1 <--> TSB2 Data converter

     

    Update Version 0.0.5

    • TSB3 Support
    • Fixed Sim data location
    • Added sim data description (On modify player form)
    • Added functionality to Debug Dialog to list players by position
    • List/modify Free Agents & All time team (TSB3)

     

    TSBTool2.zip

     

    Latest 

     

     

     

     

  9. I just got into this game after Knobbe inquired about the possibility of writing an editor for it. 

    At first I thought 'Why would we want one? Nobody plays this.'

    I played it for like 10 minutes once a long time ago and thought I'd stick to TSB1. 

    But after playing it for a bit longer, I really, really like it and am working on an editor for it now. 

    It's like $50 for a non-boxed US copy on eBay now. I never remember seeing it in stores back in the day. I just saw TSB3 one day and thought they skipped TSB2 for some weird reason. 

    I think all TSB fans should try it for a few games. 

  10. With more thought from the previous idea that we might look for consecutive spans of 11 bytes that add up to 255 to look for the defensive simdata...

    If they use the same method for TSB2, then we should find places where those locations are 48 bytes apart.

    But in the data I extracted, I found no locations that were 48 bytes apart. :( 

    I think I'll concentrate on implementing the player editor so more experiments can be run.

     

    Anyone found the playbooks yet?

  11. In TSB nes and TSB1 SNES the the Sim PI & SIM Pass Rush of a defensive Team add up to 255 each.

    If they use the same formula for defensive sim data as they did for the TSB NES and TSB1 SNES, then the following logic should find the possible locations for Defensive Sim data:

    			for (int i = 0; i < Tool.OutputRom.Length -50; i++)
    			{
    				tmp = Tool.OutputRom[i] + Tool.OutputRom[i + 1] + Tool.OutputRom[i + 2] + Tool.OutputRom[i + 3] + 
                      Tool.OutputRom[i + 4] + Tool.OutputRom[i + 5] + Tool.OutputRom[i + 6]
    					+ Tool.OutputRom[i + 7] + Tool.OutputRom[i + 8] + Tool.OutputRom[i + 9] + Tool.OutputRom[i + 10];
    				tmp2 = Tool.OutputRom[i + 0xB] + Tool.OutputRom[i + 0xB + 1] + Tool.OutputRom[i + 0xB + 2] + 
                      Tool.OutputRom[i + 0xB + 3] + Tool.OutputRom[i + 0xB + 4] + Tool.OutputRom[i + 0xB + 5] + Tool.OutputRom[i + 0xB + 6]
    					+ Tool.OutputRom[i + 0xB + 7] + Tool.OutputRom[i + 0xB + 8] + Tool.OutputRom[i + 0xB + 9] + Tool.OutputRom[i + 0xB + 10];
    				if (tmp == 255 && tmp2 == 255)
    				{
    					Console.WriteLine("Possible Location:" + i.ToString("X") + "\n");
    				}
    			}

    Running that logic on TSB2.smc yields 113 possible locations (Attached File). It's more than the 84 (28 teams*3) I was hoping for, but it might get us closer to finding the Sim data.

     

     

    TSB2_possible_sim_locations.txt

  12. If it helps you study at all, I'm attaching the listing for all 3 seasons.

    It'll list out stuff like the following:

    # Key 
    # Attribute Order
    # QBs   RS RP MS HP PS PC PA AR CO BB
    # Skill RS RP MS HP BC RC BB
    # OL    RS RP MS HP BB
    # DEF   RS RP MS HP PI QU BB
    # K     RS RP MS HP KP KA AB BB 
    # P     RS RP MS HP KP AB BB
    
    YEAR 1
    TEAM = bills
    TEAM_ABB=BUF.,TEAM_CITY=buffalo,TEAM_NAME=BILLS
    QB1,jim KELLY,Face=0x00,#12,69,25,13,13,63,81,69,69,75,13,|a3 11 00 9c aa 2b 1c 
    QB2,frank REICH,Face=0x00,#14,69,25,13,13,44,44,44,56,50,13,|a3 11 00 66 68 47 16 
    RB1,hb BILLS,Face=0x8f,#34,69,38,69,19,56,56,63,|a5 a2 8f 88 9f

    In the text, the stuff after the '|' is the raw bytes of the player's attribute section. 

    TSB2_extract_9-23-2019.7z

  13. Knobee was asking me if I might be interested in making an editor for TSB2 and I studied  the ROM a bit and found the following locations (SNES):

    1992 Player Name string table: 0x1e8038

    1992 Player Attributes start: 0x1ec800

     

    1993 Player Name string table: 0x1f0038

    1993 Player Attributes start: 0x1f4800

     

    1994 Player Name string table: 0x1f8038

    1994 Player Attributes start: 0x1fc800

     

    Team Name, city, abbrv. String table: 0x7000

     

    EDIT:

    schedule_start_1992 = 0x16f00c; 
    schedule_start_1993 = 0x16f204; 
    schedule_start_1994 = 0x16f418; 

     

    For a player's attributes it starts with: RS RP MS HP crammed into the first 2 bytes.

    The 3rd byte (the Face attribute in nes TSB) contains race in the first nibble (0=white, 8=black) and something else in the second nibble; not sure what.

    Anyone know what is supposed to be held in the 3rd byte second nibble?

     

    Here's a listing of the TSB2 '92 bills:

    TEAM = bills
    TEAM_ABB=BUF.,TEAM_CITY=buffalo,TEAM_NAME=BILLS
    QB1,jim KELLY,Face=0x00,#12,69,25,13,13,63,81,69,69,75,13,
    QB2,frank REICH,Face=0x00,#14,69,25,13,13,44,44,44,56,50,13,
    RB1,hb BILLS,Face=0x8f,#34,69,38,69,19,56,56,63,
    RB2,kenneth DAVIS,Face=0x87,#23,69,44,44,38,81,25,31,
    RB3,carwell GARDNER,Face=0x84,#35,69,38,19,56,56,19,13,
    RB4,eddie FULLER,Face=0x82,#33,69,25,31,19,56,25,31,
    WR1,james LOFTON,Face=0x88,#80,69,31,19,13,63,56,19,
    WR2,andre REED,Face=0x8c,#83,69,38,56,13,44,69,50,
    WR3,don BEEBE,Face=0x06,#82,69,25,63,13,56,44,25,
    WR4,steve TASKER,Face=0x06,#89,63,38,50,38,69,13,38,
    TE1,keith MCKELLER,Face=0x86,#84,69,25,38,44,56,44,25,
    TE2,pete METZELAARS,Face=0x06,#88,56,19,13,63,50,31,13,
    C,kent HULL,Face=0x0b,#67,69,44,25,69,13,
    LG,jim RITCHER,Face=0x08,#51,69,31,25,63,13,
    RG,glenn PARKER,Face=0x09,#74,69,31,25,56,13,
    LT,will WOLFORD,Face=0x0c,#69,69,25,19,75,13,
    RT,howard BALLARD,Face=0x8b,#75,69,25,25,69,13,
    RE,de BILLS,Face=0x8d,#78,50,38,63,69,19,75,13,
    NT,jeff WRIGHT,Face=0x06,#91,31,44,38,44,19,38,13,
    LE,phil HANSEN,Face=0x07,#90,44,31,44,50,19,56,13,
    RE2,keith WILLIS,Face=0x85,#93,38,38,31,44,19,38,13,
    NT2,mark PIKE,Face=0x04,#94,38,25,19,44,19,31,13,
    LE2,mike LODISH,Face=0x03,#73,25,38,25,38,19,25,13,
    ROLB,c. BENNETT,Face=0x8d,#97,56,38,69,56,19,75,25,
    RILB,carlton BAILEY,Face=0x87,#54,38,38,44,56,19,50,19,
    LILB,shane CONLAN,Face=0x09,#58,44,38,50,56,31,63,19,
    LOLB,darryl TALLEY,Face=0x8c,#56,44,50,56,69,25,69,19,
    LB5,marvcus PATTON,Face=0x84,#53,19,38,31,50,19,25,19,
    RCB,nate ODOMES,Face=0x88,#37,50,44,50,13,50,50,44,
    LCB,kirby JACKSON,Face=0x86,#47,50,38,38,13,38,31,44,
    FS,james WILLIAMS,Face=0x85,#31,44,44,38,13,38,25,44,
    SS,clifford HICKS,Face=0x84,#27,44,25,44,13,13,38,44,
    DB1,henry JONES,Face=0x8c,#20,44,44,56,63,69,63,25,
    DB2,mark KELSO,Face=0x0a,#38,44,38,50,56,63,50,25,
    DB3,matt DARBY,Face=0x85,#43,31,25,31,38,38,19,25,
    K,steve CHRISTIE,Face=0x08,#2,81,56,81,31,75,56,50,13,
    P,chris MOHR,Face=0x09,#9,81,25,44,31,44,69,13,

     

     

  14. On 9/11/2019 at 11:04 AM, Knobbe said:

     

    This one also did not install. It doesn't seem to be asking me for rights to modify or delete SD content like the previous versions

    Hmm...

    Not sure what to do about that.

    I've verified that it works on a Galaxy S7. Only thing I can think of is to ensure that you first un-installed any previous version and then install the 1.0.3 version.

     

     

  15. 2 hours ago, Knobbe said:

     

    I'm not able to install 1.0.3. I also tried 1.0.1 from github and have the same crashing issue.

    I then uninstalled and installed the 1.0.1 debug version and that also crashed. Is there data from there that would be helpful and if so where can I find it.

    TSBToolSupreme1.0.3.apk

    Try this one.

    I think it might have failed because I used a different computer (different key) to sign it.

    Let me know if you're able to use this one.

  16. 1 hour ago, cowboyschamps said:

    I actually got to it work on my Samsung Galaxy Note 8. But, I'm still having the same problem of some players names and attributes not saving. When and if you do decide to write your own version, I hope it's a success. I'll be waiting on it

    After making changes, you have to press the "Save" button on the initial page of the App.

    Generally Android apps save on app exit, but I wanted to make it explicit. 

  17. I posted an update (version 1.0.2) in the initial thread post that may work well enough for some Android versions.

    I've tested on Marshmallow (galaxy S5), KitKat (Galaxy S4) and Android TV (Nvidia Shield). 

     

    Status:

    1. Marshmallow (Galaxy S5): Working fine.
    2. KitKat (Galaxy S4): Needed to install ES File Explorer to browse to a ROM.
    3. Android TV (Nvidia Shield) Could not browse to a ROM (even with ES File Explorer installed)

    I'm thinking about writing my own file browser just to get it to work on my Android TV.

×
×
  • Create New...