bruddog Posted March 19, 2007 Share Posted March 19, 2007 jstout or anyone know if the value is hardcoded somewhere. Quote Link to comment Share on other sites More sharing options...
jstout Posted March 19, 2007 Share Posted March 19, 2007 I haven't checked over this too much but I know of the basic areas. I'll look into it some more though.x28360 to x28383 has a short routine that jumps to others.$8350:B1 AE LDA ($AE),Y ; Offensive HP from x3DFFF to x3E00E$8352:38 SEC$8353:F1 3E SBC ($3E),Y ; Defensive HP from x3DFFF to x3E00E$8355:90 0E BCC $8365 ; if D.HP > O.HP goto $8365$8357:C9 10 CMP #$10$8359:90 18 BCC $8373 ; if (O.HP - D.HP) < x10 goto $8373$835B:C9 20 CMP #$20$835D:B0 03 BCS $8362 ; if (O.HP - D.HP) > x20 goto $8362$835F:4C CF 83 JMP $83CF ; Defensive Player Thrown$8362:4C 0F 84 JMP $840F ; Defensive Player Immediately Thrown$8365:C9 F1 CMP #$F1$8367:B0 0A BCS $8373 ; if (O.HP - D.HP) > xF1 goto $8373$8369:C9 E1 CMP #$E1$836B:90 03 BCC $8370 ; if (O.HP - D.HP) < xE1 goto $8370$836D:4C 4A 84 JMP $844A ; Offensive Player Thrown$8370:4C 84 84 JMP $8484 ; Offensive Player Immediately Thrown$8373:20 36 B1 JSR $B136 ; Players GrappleRoughly, each routine has a likely outcome listed above but there is a chance that instead of what happens that the players will just grapple (maybe the weaker player will win but never studied that). I just haven't looked too far past that at any time. Quote Link to comment Share on other sites More sharing options...
BO FB Offtackle Left Posted March 19, 2007 Share Posted March 19, 2007 What about boosts? For example, the defense gets boosted on called plays, and OL appears to get boosted on certain run plays. Do you know how this is determined? One example of how I'd want to apply this is for DLs with a strong pass rush but weak against the run (like Indy during the regular season last year) I would have their HP boosted when both the offense and defense calls a pass play, but have their normal hp around 50-56. Quote Link to comment Share on other sites More sharing options...
jstout Posted March 19, 2007 Share Posted March 19, 2007 What about boosts? For example, the defense gets boosted on called plays, and OL appears to get boosted on certain run plays. Do you know how this is determined? One example of how I'd want to apply this is for DLs with a strong pass rush but weak against the run (like Indy during the regular season last year) I would have their HP boosted when both the offense and defense calls a pass play, but have their normal hp around 50-56.That is in the play design for the offense and defense. Similar to when the DL gets boosts to be faster on called plays there is a command that boosts HP. So the players HP would be the score + boost = HP here. Quote Link to comment Share on other sites More sharing options...
bruddog Posted March 19, 2007 Author Share Posted March 19, 2007 The problem is that it would apply to every team. What about boosts? For example, the defense gets boosted on called plays, and OL appears to get boosted on certain run plays. Do you know how this is determined? One example of how I'd want to apply this is for DLs with a strong pass rush but weak against the run (like Indy during the regular season last year) I would have their HP boosted when both the offense and defense calls a pass play, but have their normal hp around 50-56. Quote Link to comment Share on other sites More sharing options...
bruddog Posted December 4, 2007 Author Share Posted December 4, 2007 things that would be cool:1. To be able to manipulate this a bit to change the scales. 2. To change the amount of time before the OL busts in. 3. To possibly use a different OL attribute for run blocking. Quote Link to comment Share on other sites More sharing options...
TomTupa Posted December 4, 2007 Share Posted December 4, 2007 things that would be cool:1. To be able to manipulate this a bit to change the scales. 2. To change the amount of time before the OL busts in. 3. To possibly use a different OL attribute for run blocking.#3 is brilliant, I like it! Maybe for rs and rp we could find a middle ground for both and draw both from one rating, kind of like tecmo did for the pc and pa. Then you could put run block into that empty slot and have hp drawn from hit on run plays. I'm sure it's probably insanely hard to do for the superflous purpose it would serve, but I like the idea.I'm just going to bring up again, that I'd like to see HP mean something in man vs man games on nes tecmo much the way it is important in tecmo III. Like the farther away you get from even hp's the harder it is to outtap someone. Noone has even been able to answer if there is even any effect of hp on man vs. man grapples. I personally think the player on defense has an edge, and hp doesn't come into play but that's just an opinion. Quote Link to comment Share on other sites More sharing options...
bruddog Posted September 8, 2009 Author Share Posted September 8, 2009 I came up with some code for more dynamic DL vs OL play but unfortunately the jumps to the random HP boosts need to be applied before the other play commands. So my implentation didn't work as expected since the players basically grapple before the HP boost gets applied even if I apply them before the jump to the SET to grapple commands and the jumps to pass rush. Doesn't make sense but that was the case. I guess thats why in the blitz commands they apply the boosts before any of the other commands. I guess I will have to implement this if I ever get around to making the man-man rom that is like yaks. This could probably be done in the actual grappling code but 1. I'm not sure there is enough room do do it....especially with all the recent hacks 2. For me to figure out how to do it might be painful. 2. The logic would go roughly like very rough psuedocode LOAD random COMP random if < 40% SET DEF HP 38HP COMP random if < 47% LOAD DEF HP ADD 50HP COMP random if < 54% LOAD DEF HP ADD 44HP .... If random >93% =regular DEF HP resume normal grappling code. Quote Link to comment Share on other sites More sharing options...
GameplayLoop Posted November 5, 2010 Share Posted November 5, 2010 Did this ever work out for you, Bruddog? Anything worth putting into the Directory of Hacking Docs thread? Quote Link to comment Share on other sites More sharing options...
bruddog Posted September 22, 2011 Author Share Posted September 22, 2011 Here is a hack that will make DL vs OL play more variable for basic roms. This hack slightly modifies the code jsout posted aboveIt gives an evenly matched DL 63vs 63 69 vs 69 a 20% chance of breaking through. Like wise a evenly matched OL has a 10% chance of popcorn. I think the DL bust through goes up about 10% for each differential. I'll plot the table when get a chance. @28360 B1 AE ; Offensive HP from x3DFFF to x3E00E91AE ; Store valueA5 3D ; load random number from 3D29 1F ; Make Random 0-1F (0-31)18 ; Clear Carry71 AE ; Add Random to offensive HP F1 3E ; (OFF HP + Random) - Defensive HP from x3DFFF to x3E00E90 08 ; if value less than 0 goto Offensive PLayer ThrownC9 1D ; Compare value with 1D (value - 1D)B0 07 ; if value > 16 goto Defensive player thrownC9 04 ; compare with 4B0 06 ; if value greater than 4 goto Players Grapple else do next instruction4C 84 84 ;Offensive Player Immediately Thrown4C 0F 84 ; Defensive Player Immediately Thrown20 36 B1; players grapple for awhileEA ; no operation space fillersEAEAEAEAEASET (0x28360, 0xB1AE91AEA53D291F1871AEF13E9008C91DB007C904B0064C84844C0F842036B1EAEAEAEAEAEA) Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted September 23, 2011 Share Posted September 23, 2011 xplozv gave this to me for the SNES version (he's an NES hack port master!). SET(0x18DB8,0xB1639163AD0002291F187163F1039008C91DB007C904B0064C158D4C8E8C20B0C3EAEAEAEAEA)I haven't tested it 100% yet...I love having xplozv around. Finally I don't have to bug jstout to try and figure out hacks for NES. Now SNES gets love too. Quote Link to comment Share on other sites More sharing options...
buck Posted September 24, 2011 Share Posted September 24, 2011 Here is a hack that will make DL vs OL play more variable for basic roms. This hack slightly modifies the code jsout posted aboveIt gives an evenly matched DL 63vs 63 69 vs 69 a 20% chance of breaking through. Like wise a evenly matched OL has a 10% chance of popcorn. I think the DL bust through goes up about 10% for each differential. I'll plot the table when get a chance. @28360 B1 AE ; Offensive HP from x3DFFF to x3E00E91AE ; Store valueA5 3D ; load random number from 3D29 1F ; Make Random 0-1F (0-31)18 ; Clear Carry71 AE ; Add Random to offensive HP F1 3E ; (OFF HP + Random) - Defensive HP from x3DFFF to x3E00E90 08 ; if value less than 0 goto Offensive PLayer ThrownC9 1D ; Compare value with 1D (value - 1D)B0 07 ; if value > 16 goto Defensive player thrownC9 04 ; compare with 4B0 06 ; if value greater than 4 goto Players Grapple else do next instruction4C 84 84 ;Offensive Player Immediately Thrown4C 0F 84 ; Defensive Player Immediately Thrown20 36 B1; players grapple for awhileEA ; no operation space fillersEAEAEAEAEASET (0x28360, 0xB1AE91AEA53D291F1871AEF13E9008C91DB007C904B0064C84844C0F842036B1EAEAEAEAEAEA)this is interesting. I've been trying it out for a few games - but can't tell any difference, yet. Quote Link to comment Share on other sites More sharing options...
xplozv Posted September 24, 2011 Share Posted September 24, 2011 If you lower the value in red, the defender will be thrown more often. If you raise the value in blue closer to the value in red, the offensive player will be thrown more often. The wider the gap in the two values will cause a normal grapple to happen more often.SET (0x28360, 0xB1AE91AEA53D291F1871AEF13E9008C91DB007C904B0064C84844C0F842036B1EAEAEAEAEAEA)The SET command for the SNES a few posts above is for an SNES rom with a header. Here is the one for a headerless rom:SET(0x18BB8,0xB1639163AD0002291F187163F1039008C91DB007C904B0064C158D4C8E8C20B0C3EAEAEAEAEA) Quote Link to comment Share on other sites More sharing options...
buck Posted September 24, 2011 Share Posted September 24, 2011 If you lower the value in red, the defender will be thrown more often. If you raise the value in blue closer to the value in red, the offensive player will be thrown more often. The wider the gap in the two values will cause a normal grapple to happen more often.by 'normal grapple' do you mean that the two players' HP is used instead of this random stuff? Quote Link to comment Share on other sites More sharing options...
xplozv Posted September 24, 2011 Share Posted September 24, 2011 Right. In the original TSB I have tested it and if either player isn't thrown, they'll grapple as if this random hack hasn't been applied. I haven't tested it on a rom with the HP grapple hack though. Quote Link to comment Share on other sites More sharing options...
bruddog Posted September 24, 2011 Author Share Posted September 24, 2011 Sorry think I had a few errors with that code. Though i think it still should have been noticeable. The ORIGINAL ROM code does this1. DEF HP is 50 more than OFF HP Throw offense immediately2. DEF HP is 25 more than OFF HP Throw offense (variable amount of time before OL thrown)3. OFF HP is 50 more than DEF HP throw defense immediately4. OFF HP is 25 more than DEF HP throw defense immediately (variable amount of time before DL thrown)otherwise it goes to the 20 36 B1 routine where the players engage in a lengthy grapple. The problem is almost never do player matchups reach the 25 or 50 HP threshold so almost always they engage in a lengthy grapple. The use of fixed threseholds means the same thing essentially happens on every play with regards to the OL DL play.Here is the fixed code. It should work this time.B1 AE ; Offensive HP from x3DFFF to x3E00E38 ; set carryF1 3E ; (OFF HP - Defensive HP) from x3DFFF to x3E00E91 AE ; Store valueA5 3D ; load random number from 3D29 3F ; Make Random 0-1F (0-31)18 ; Clear Carry71 AE ; Add Random to offensive HP30 0Bc9 0E ; compare wit 0090 07 ; if value neg carry set goto Offensive PLayer ThrownC9 34 ; compare with 5290 06 ; < 52 go to players grapple4C 0F 84 ; Defensive Player Immediately Thrown4C 84 84 ; Offensive Player Immediately Thrown20 36 B1; players grapple for awhileEA ; no operation space fillersEAEAEAEAEAMaking the the "OE" in C9 0E larger will increase the percentage of defenders busting in and decreasng it will decrease the percentage. Likewise changing the "34" to a lower number will have more OL popcorning defenders. Quote Link to comment Share on other sites More sharing options...
xplozv Posted September 25, 2011 Share Posted September 25, 2011 Great job with this hack bruddog! I am loving new feel it gives especially in the passing game. Sometimes you have all the time you need to hit your WR. Sometimes the one of the DL is on you pretty quick and you have to scramble to throw or scramble to pick up a couple of yards. I enjoy the balanced realistic OL/DL play with this hack.Here is the corrected code ported to SNES TSB1:SET(0x18BB8,0xB16338F1039163AD0002293F187163300BC90E9007C93490064C8E8C4C158D20B0C3EAEAEAEAEA) Quote Link to comment Share on other sites More sharing options...
quince3800 Posted September 7, 2012 Share Posted September 7, 2012 (edited) Sorry think I had a few errors with that code. Though i think it still should have been noticeable. The ORIGINAL ROM code does this1. DEF HP is 50 more than OFF HP Throw offense immediately2. DEF HP is 25 more than OFF HP Throw offense (variable amount of time before OL thrown)3. OFF HP is 50 more than DEF HP throw defense immediately4. OFF HP is 25 more than DEF HP throw defense immediately (variable amount of time before DL thrown)otherwise it goes to the 20 36 B1 routine where the players engage in a lengthy grapple.@ x8360... what do E1 and F1 stand for? How can you use this to manipulate the different differentials?I'd like the offensive player to be thrown if the differential is +25 and to loop to 844a if the differential is 13. Edited September 14, 2012 by quince3800 Quote Link to comment Share on other sites More sharing options...
quince3800 Posted October 17, 2012 Share Posted October 17, 2012 (edited) I haven't checked over this too much but I know of the basic areas. I'll look into it some more though.x28360 to x28383 has a short routine that jumps to others.$8350:B1 AE LDA ($AE),Y ; Offensive HP from x3DFFF to x3E00E$8352:38 SEC$8353:F1 3E SBC ($3E),Y ; Defensive HP from x3DFFF to x3E00E$8355:90 0E BCC $8365 ; if D.HP > O.HP goto $8365$8357:C9 10 CMP #$10$8359:90 18 BCC $8373 ; if (O.HP - D.HP) < x10 goto $8373$835B:C9 20 CMP #$20$835D:B0 03 BCS $8362 ; if (O.HP - D.HP) > x20 goto $8362$835F:4C CF 83 JMP $83CF ; Defensive Player Thrown$8362:4C 0F 84 JMP $840F ; Defensive Player Immediately Thrown$8365:C9 F1 CMP #$F1$8367:B0 0A BCS $8373 ; if (O.HP - D.HP) > xF1 goto $8373$8369:C9 E1 CMP #$E1$836B:90 03 BCC $8370 ; if (O.HP - D.HP) < xE1 goto $8370$836D:4C 4A 84 JMP $844A ; Offensive Player Thrown$8370:4C 84 84 JMP $8484 ; Offensive Player Immediately Thrown$8373:20 36 B1 JSR $B136 ; Players GrappleRoughly, each routine has a likely outcome listed above but there is a chance that instead of what happens that the players will just grapple (maybe the weaker player will win but never studied that). I just haven't looked too far past that at any time.I'm guessing this is already known in some way, but I think I've figured this out for the defense. The values at 28370 were originally:c9 e1 to throw immediately (although this is not 100% of the time, it's just like 80+) andc9 f1 to (grapple for a time?) and then throw (i.e., the throw may be immediate, or take some time)These correspond to tecmo rating differentials as follows (the hex coefficient is +/- 4):fd = 6 (tested)f9 = 13 (tested)f5 = 19 (tested)f1 = 25ed = 31 (should)e9 = 38 (should)e5 = 44 (should)e1 = 50I tested this with DL's at 56 and 50 against an OL with all 44 HP and it worked the way I expected. The only hitch was that the immediate throwing differential is not 100%.I'm not able to figure out the offensive range yet though. In counting backwards, I got 50 (HP differential) at c9 20, but a 19 at c9 10. The 25 was at c9 12 when I charted it. I don't know if this means the code really says to throw variably with a 19 HP differential (offense over defense) or if I miscounted. This is how I corresponded the numbers:19 = 1025 = 1231 = 1438 = 1644 = 1850 = 20I should probably toy with this some more, but that's what I arrived at tonight from testing.*Note: if you put the differential bytes in the wrong order (i.e., the higher value before the lower one), it will cause the grapples to be uneven. I had a (modified) completely 44 HP Colts (1991) OL defeating the Raiders DL's in grapples consistently. There seemed to be about a 50-50 split with this in place. I didn't return to it, but it's something maybe to look into.*Edit:I couldn't find the offensive numbers because I was thinking about it the wrong way. The coefficient is again 4, thus:25 = 1031 = 14 (should be)38 = 18 (should be)44 = 1c (should be)50 = 20 Edited October 19, 2012 by quince3800 Quote Link to comment Share on other sites More sharing options...
bruddog Posted September 17, 2013 Author Share Posted September 17, 2013 After checking this over Tecmomonster I found a few errors. One saving the result was wrong because then the modified result is used as the offensive players HP for any other interactions during the play. 2. I had an extra EA in the code above that overwrote something. I'm not sure what the effect of that would be. There are more EA's below but that is because I removed the saving portion. TecmoA5 3D ; load random number from 3D29 3F ; Make Random 0-1F (0-31)18 ; Clear Carry71 AE ; Add Offensive HP from x3DFFF to x3E00E38 ; set carryF1 3E ; (OFF HP - Defensive HP) from x3DFFF to x3E00E + Random30 0Bc9 0E ; compare with 1490 07 ; BCC, if value neg carry set go to Offensive Player ThrownC9 34 ; compare with 5290 06 ; < 52 go to players grapple4C 0F 84 ; Defensive Player Immediately Thrown4C 84 84 ; Offensive Player Immediately Thrown20 36 B1; players grapple for awhileEAEAEAEAEAEAEAEAEA Quote Link to comment Share on other sites More sharing options...
buck Posted September 18, 2013 Share Posted September 18, 2013 (edited) [email protected]:COMMENTS/QUESTION - the original code used B1AE to "load offensive HP" - Why does your new version use 71AE? Is it because it "adds" instead? alsoI did like how the previous version worked. I thought it did the job fine, seemed more "dynamic" than this one. Are the only two practical differences between this latest and the previous version is that individual OL HP *was unintentionally* modified; and that extra "EA"? After checking this over Tecmomonster I found a few errors. One saving the result was wrong because then the modified result is used as the offensive players HP for any other interactions during the play. 2. I had an extra EA in the code above that overwrote something. I'm not sure what the effect of that would be. There are more EA's below but that is because I removed the saving portion. TecmoA5 3D ; load random number from 3D29 3F ; Make Random 0-1F (0-31)18 ; Clear Carry71 AE ; Add Offensive HP from x3DFFF to x3E00E38 ; set carryF1 3E ; (OFF HP - Defensive HP) from x3DFFF to x3E00E + Random30 0Bc9 0E ; compare with 1490 07 ; BCC, if value neg carry set go to Offensive Player ThrownC9 34 ; compare with 5290 06 ; < 52 go to players grapple4C 0F 84 ; Defensive Player Immediately Thrown4C 84 84 ; Offensive Player Immediately Thrown20 36 B1; players grapple for awhileEAEAEAEAEAEAEAEAEA Edited September 18, 2013 by buck Quote Link to comment Share on other sites More sharing options...
bruddog Posted September 18, 2013 Author Share Posted September 18, 2013 Yes this change just adds the value instead of loading it first. I switched the order of things so that I didn't need to save a temporary result. Yes this is the same as the previous version. Quote Link to comment Share on other sites More sharing options...
SBlueman Posted April 23, 2017 Share Posted April 23, 2017 (edited) On 9/24/2011 at 0:02 PM, bruddog said: Sorry think I had a few errors with that code. Though i think it still should have been noticeable. The ORIGINAL ROM code does this 1. DEF HP is 50 more than OFF HP Throw offense immediately 2. DEF HP is 25 more than OFF HP Throw offense (variable amount of time before OL thrown) 3. OFF HP is 50 more than DEF HP throw defense immediately 4. OFF HP is 25 more than DEF HP throw defense immediately (variable amount of time before DL thrown) otherwise it goes to the 20 36 B1 routine where the players engage in a lengthy grapple. The problem is almost never do player matchups reach the 25 or 50 HP threshold so almost always they engage in a lengthy grapple. The use of fixed threseholds means the same thing essentially happens on every play with regards to the OL DL play. Here is the fixed code. It should work this time. B1 AE ; Offensive HP from x3DFFF to x3E00E 38 ; set carry F1 3E ; (OFF HP - Defensive HP) from x3DFFF to x3E00E 91 AE ; Store value A5 3D ; load random number from 3D 29 3F ; Make Random 0-1F (0-31) 18 ; Clear Carry 71 AE ; Add Random to offensive HP 30 0B c9 0E ; compare wit 00 90 07 ; if value neg carry set goto Offensive PLayer Thrown C9 34 ; compare with 52 90 06 ; < 52 go to players grapple 4C 0F 84 ; Defensive Player Immediately Thrown 4C 84 84 ; Offensive Player Immediately Thrown 20 36 B1; players grapple for awhile EA ; no operation space fillers EA EA EA EA EA Making the the "OE" in C9 0E larger will increase the percentage of defenders busting in and decreasng it will decrease the percentage. Likewise changing the "34" to a lower number will have more OL popcorning defenders. so the updated nes command would be: #Changing the differential for popcorning/ dl busting through #http://tecmobowl.org/forums/topic/8388-changing-the-differential-for-popcorning-dl-busting-through/ #Visit link to see author's notes on variables to edit to modify code below SET(0x28360,0xB1AE38F13E91AEA53D293F1871AE38F13E300BC90E9007C93490064C0F844C84842036B1EAEAEAEAEAEAEAEAEA) @bruddog is this correct? Edited April 23, 2017 by SBlueman Quote Link to comment Share on other sites More sharing options...
bruddog Posted April 23, 2017 Author Share Posted April 23, 2017 The set command looks right but the old code looks like it might have a bug Quote Link to comment Share on other sites More sharing options...
SBlueman Posted April 23, 2017 Share Posted April 23, 2017 so you take this part of the original code as posted here: SET(0x28360,0xB1AE38F13E91AE and then add this edit as per this post: A53D293F1871AE38F13E300BC90E9007C93490064C0F844C84842036B1EAEAEAEAEAEAEAEAEA) now one can fiddle with items in red above as so: Quote Making the the "OE" in C9 0E larger will increase the percentage of defenders busting in and decreasng it will decrease the percentage. Likewise changing the "34" to a lower number will have more OL popcorning defenders. just trying to have a concise post that summarizes this code and makes is accessible for readers. 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.