Jump to content

Advanced stat collector and play by play program update


bruddog

Recommended Posts

Hey,

Just wanted to give an update on the program I've been working on seemingly forever. Haven't had much time lately so its been slow progress.

HOW IT WORKS:

The program forces nestopia to save a state every x amount of time. For some of the advanced stats this needs to be less than a second I'm pretty sure. It then analyzes the hex

in the state to generate the stats. Nestopia must have focus for the program to work. Most of the advanced stats will not work if you played a movie file at high speed.

ISSUES: Haven't figured out how to get it to run on windows 7 as a single click java program yet but I'm hoping I can find a way. I forget the exact technical issue but it has to due with the windows 7 security.

WHAT IT DOES:

1. Creates a master comma separated value file with the following variables. Each line represents a single play.

GAME_DATE_MAT = 0;

PLAY_INDEX_MAT = 1;

QTR_MAT = 2;

TIM_MAT = 3;

HOME_SCORE_MAT = 4;

AWAY_SCORE_MAT = 5;

SCORE_CHANGE_MAT = 6;

SCORE_CHANGE_VALUE_MAT = 7;

SCOREDIFF_MAT = 8;

POSS_MAT = 9;

DOWN_MAT = 10;

TO_GO_MAT = 11;

YARDS_AWAY_MAT = 12;

//drive indicators

REDZONE_MAT = 13;

DRV_STRT_MAT = 14;

DRV_END_MAT = 15;

DRV_YRDS_GAIN_MAT = 16;

//play call stats

HOME_CALL_MAT = 17;

AWAY_CALL_MAT = 18;

BLITZ_MAT = 19;

MATCH_MAT = 20;

RUN_CALL_MAT = 21;

PASS_CALL_MAT = 22;

DEF_CALL_MAT = 23;

FG_ATT_MAT = 24;

PUNT_MAT = 25;

// play result information

DEFENDER_USED_MAT = 26;

FINAL_BALLCAR_MAT = 27;

FIRST_DOWN_MAT = 28;

STOP_DWN_MAT = 29;

PLAY_YARDS_MAT = 30;

RUN_YARDS_MAT = 31;

QBRUN_YARDS_MAT = 32;

PASS_YARDS_MAT = 33;

PLY_SUC_MAT = 34;

TACKLEDBY_MAT = 35;

//type of score

FG_MAT = 36;

OFF_TD_MAT = 37;

RUN_TD_MAT = 38;

PASS_TD_MAT = 39;

KR_TD_MAT = 40;

PR_TD_MAT = 41;

DEF_TD_MAT = 42;

//negative play resuslts

SACK_MAT = 43;

FUMBLER_MAT = 44;

FUMBLEFORCE_MAT = 45;

FUMBLE_MAT = 46;

FUMBLE_KEPT = 47;

FUM_LOST_MAT = 48;

FUM_OOB_MAT = 49;

FUM_RECOVERER_MAT = 50;

TURNOVER_MAT = 51;

INT_MAT = 52;

INT_FUMBLE_MAT = 53;

//advanced running stats

RUN_OOB_MAT = 54;

GRAPPLE_MAT = 55;

BROKEN_GRAPPLE_MAT = 56;

YARDS_AFTER1ST_GRAPPLE_MAT = 57;

//advanced receiving stats

YARDS_AFTERCATCH_MAT = 58;

// advanced passing stats

TARGET_MAT = 59;

TOTAL_TARGETS_MAT = 60;

OPEN_TARGETS_MAT = 61;

PASS_BLOCKED_MAT = 62;

PASS_DROP_MAT = 63;

PASS_ATT_MAT = 64;

TARGET_COVERAGE_MAT = 65;

PASS_DEFENSED_MAT = 66;

PASS_OOB_MAT = 67;

PASS_MISTHROW_MAT = 68;

PASS_COMPLETE_MAT = 69;

PASS_COMPFUMB_MAT = 70;

PASS_JJ_MAT= 71;

PASS_DISTANCE_MAT = 72;

PASS_LOCATION_MAT = 73; // 1 = top, 2 = middle, 3= bottom, 4= OOB

PASS_INT_MAT = 74;

PASS_JJINT_MAT = 75;

//Drive stats

DRV_RUN_MAT = 76;

DRV_RUNY_MAT = 77;

DRV_PASS_PLY_MAT = 78;

DRV_PASS_ATT_MAT = 79;

DRV_PASS_COM_MAT = 80;

DRV_PASS_YARD_MAT = 81;

DRV_QBRUN_YARD_MAT = 82;

DRV_FD_RUN_MAT = 83;

DRV_FD_PASS_MAT = 84;

DRV_FD_SCRAM_MAT = 85;

DRV_FD_TOTAL_MAT = 86;

DRV_TOP_MAT = 87;

DRV_RESULT_MAT = 88;

//kickoff stats

KICKOFF_MAT= 89;

KICK_TEAM_MAT= 90;

ONSIDE_KICK_MAT= 91;

KICKOFF_YARDLINE_MAT= 92;

KICKRET_DISTANCE_MAT= 93; //not implemented

KICKRET_OOB_MAT= 94;

KICKRET_FUM_MAT= 95;

KICK_FUMANDONSIDESRECOV_MAT= 96;

2. It generates a text based play by play of the game. It would look similar to something you would see on ESPN.com or cbs.sportsline.

Example (This is from a COM vs COM game which is why defender selected is always RE)

BILLS at (0:32) SCORE: ( 7--14 )

(0:32) 1-10 60 Yards From Endzone DEF CTRL ( RE ). qb BILLS throws SHORT to the MIDDLE of the field for 10 yards intended for Keith MCKELLER who is DOUBLE COVERED. Pass is DEFENSED by mike HARDEN and l .WASHINGTON.

(0:21) 2-10 60 Yards From Endzone DEF CTRL ( RE ). qb BILLS drops back to pass but decides to SCRAMBLE and gains 2 yards and is tackled by LILB Shane CONLAN.

(0:05) 3-8 58 Yards From Endzone DEF CTRL ( RE ). qb BILLS throws DEEP to the BOTTOM of the field for 26 yards intended for andre REED. Pass is DEFENSED by mike HARDEN.

3. It generates a situational play call breakdown of you and your opponent. As well as the how often the picked a certain play on offense and defense.

4. It generates a comma separated player stat file that includes additional stats not tracked by tecmo as well as the ones tracked by tecmo. These are the stats tracked.

RUN_ATT_OFFPL = 0;

QB_SCRM_OFFPL = 1;

RUN_YARD_OFFPL = 2;

RUN_TD_OFFPL = 3;

RUN_FD_OFFPL = 4; (run resulted in a first down)

RUN_FUM_OFFPL = 5;

RUN_FUMLST_OFFPL = 6;

STUFF_OFFPL = 7;(run for loss)

ROOB_OFFPL = 8; (run out of bounds)

BG_OFFPL = 9; (broken grapple)

YAG_OFFPL = 10; (yards after grapple)

//receiving

TAR_OFFPL = 11; (player targeted for pass)

OPENTAR_OFFPL = 12; (target is open)

REC_OFFPL = 13

RECY_OFFPL = 14;

YAC_OFFPL = 15; (yards after catch)

RECTD_OFFPL = 16;

FDREC_OFFPL = 17; (reception resulted in a first down)

JJ_OFFPL = 18 ; (leaping reception)

DROP_OFFPL = 19; (pass droped)

PDEF_OFFPL = 20; (pass defensed)

TIP_OFFPL = 21; (pass tipped)

UNCATCH_OFFPL = 22; (pass not catachable)

REC_FUM_OFFPL = 23;

REC_FUMLST_OFFPL = 24;

FNL_COVG_OFFPL = 25; (final coverage)

PDIST_OFFPL = 26; (average distance of pass targets for that player)

PLOC_OFFPL = 27; (average location of pass targets for that player)

//QB only

//passing

PASS_ATT_OFFPL = 11;

PASS_COMP_OFFPL = 12;

PASS_YARD_OFFPL = 13;

PASS_TD_OFFPL = 14;

PASS_INT_OFFPL =15;

PASS_JJ_OFFPL = 16;

PASS_COMPFUM_OFFPL = 17;

JJ_INT_OFFPL = 18;

PASS_PRESS_OFFPL = 19;

PASS_SACK_OFFPL = 20;

PASS_BLOCK_OFFPL = 21;

PASS_TIP_OFFPL = 22;

PASS_DROP_OFFPL = 23;

PASS_DEF_OFFPL = 24;

PASS_OOB_OFFPL = 25;

PASS_MIS_OFFPL = 28;

//advanced defender stats

SNAPS_USED_DFNDR = 0;

TACKLES_DFNDR = 1;

STOP_LOSS_DFNDR = 2;

FF_DFNDR = 3;

FUM_RECOV_DFNDR = 4;

PRESSURES_DFNDR = 5;

SACKS_DFNDR = 6;

PASS_BLOCK_DFNDR = 7;

TARGETS_DFNDR = 8;

PASS_DEF_DFNDR = 9;

PASS_COMP_DFNDR = 10;

PASS_TD_DFNDR = 11;

INT_DFNDR = 12;

JJ_INT_DFNDR = 13;

DEF_TD = 14;

Working on some bugs right now but its pretty close. Some of the stats aren't perfect such as if a WR is open as well as whether or not a QB is pressured and could probably be optimized more.

Happy to send the current non-working source code if anyone is interested.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...