Editor, Reviewer, Experienced player (969)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
I haven't watched the WIPs. Yet. But I remember the enthusiasm for the previous CS glitch video was very low, and I didn't find it that interesting to watch either. I would go with submitting the regular run only. EDIT: I watched both now. The non-cs run is definately a lot more entertaining.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3599)
Joined: 11/3/2004
Posts: 4739
Location: Tennessee
Truncated wrote I watched both now. The non-cs run is definately a lot more entertaining Thanks, I sped up those fights considerably (250 frames each on average) But I remember the enthusiasm for the previous CS glitch video was very low Doesnt seem that either are going to stir up much attention. Phil and Genisto's didn't either. Phil Wrote: We have tested a lot of things but not enough apparently Well you certainly were very thorough. Just to improve Sandman by one notch reflects at least 5 hrs of work including spreadsheets of frame counts and damage charts and many many calculations. I spent at least that much time on Bull 2 only to come up empty handed.
It's hard to look this good. My TAS projects
Player (70)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
Um... First off... Shouldn't the three punch-out topics be merged? http://tasvideos.org/forum/viewtopic.php?t=537 http://tasvideos.org/forum/viewtopic.php?t=1339 http://tasvideos.org/forum/viewtopic.php?t=1170 Secondly, this is my real question, have either of you guys seen or heard about this before? (Thanks to Adon who told me about it): In an interview (found here: http://us.wii.com/iwata_asks/punchout/vol1_page4.jsp) one of the designers tell about an Easter egg when fighting Bald Bull. When Bald Bull is doing his super-attack, the camera man in the bottom right corner of the ring side makes a flash with his camera when you should hit the punch button to make Bald Bull get knocked out. If you want to check it out, the small flash appears between 1:49 and 1:50 into this video: http://www.youtube.com/watch?v=U_iVHVGqMIU According to the designer it was a hidden thing for 22 years. :) Just thought that I should share it with you guys. Wonder how many secrets like this there are in old games out there? Maybe we should start a topic about that separately? Cheers!
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
You could also do the Another World Circuit for TASing.
Experienced player (699)
Joined: 2/19/2006
Posts: 742
Location: Quincy, MA
Highness wrote:
Um... First off... Shouldn't the three punch-out topics be merged? http://tasvideos.org/forum/viewtopic.php?t=537 http://tasvideos.org/forum/viewtopic.php?t=1339 http://tasvideos.org/forum/viewtopic.php?t=1170 Secondly, this is my real question, have either of you guys seen or heard about this before? (Thanks to Adon who told me about it): In an interview (found here: http://us.wii.com/iwata_asks/punchout/vol1_page4.jsp) one of the designers tell about an Easter egg when fighting Bald Bull. When Bald Bull is doing his super-attack, the camera man in the bottom right corner of the ring side makes a flash with his camera when you should hit the punch button to make Bald Bull get knocked out. If you want to check it out, the small flash appears between 1:49 and 1:50 into this video: http://www.youtube.com/watch?v=U_iVHVGqMIU According to the designer it was a hidden thing for 22 years. :) Just thought that I should share it with you guys. Wonder how many secrets like this there are in old games out there? Maybe we should start a topic about that separately? Cheers!
That;s the kind of thing I always think are just coincidences. I notice things like that from time to time (not that specifically), but that's how I do well with some games. Using the background of the game has always been a big key in my speedrunning ;) That and the music... 8)
Super Mario Bros. console speedrunner - Andrew Gardikis
Former player
Joined: 8/31/2009
Posts: 236
BAMP. A little "freerun TAS" if you will. More to come when I can. I'm considering doing a High Score TAS, but I might just do individual fights at random. I'm also going to look into beating them faster than what the current times are.
Editor, Player (53)
Joined: 12/25/2004
Posts: 634
Location: Aguascalientes, Mexico
If Glass Joe can refill when he hits you, couldn't you go to the next round with more health to let him hit you, so that you could him more times? (and therefore obtaining more points) Other than that, looks good :)
I'm the best in the Universe! Remember that!
Former player
Joined: 8/31/2009
Posts: 236
Of course, and I could also KO him 3 more times before winning the fight (just that 3 KOs within the same round is a TKO), but I decided to do a mix of things.
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
I would like to see a Another World Circuit run.
Post subject: adelikat, I've altered the code once more!
Editor, Skilled player (1172)
Joined: 9/27/2008
Posts: 1085
adelikat asked me to create a new piece of lua to help out in timing the hits perfectly in realtime. Could use some tweaking, as I only put in a minimal amount of testing, and this is mostly for adelikat, but I figure why the heck wouldn't I dump the script on the public? The basic idea is to help one time hits perfectly for a certain competitor. Something about how after he blocks your punch, you can punch an exact number of frames after that block to get a star or something. There's a false positive when you get hit, which I haven't bothered to put in a check for. Seeing as I don't have access to the FCEUX SVN for some odd reason, I'm pasting the code here. Download PunchOutTraining_Tiger.lua
Language: lua

-- For Mike Tyson's Punch Out!! when fighting Tiger -- Intended to help time hits in real time. --FatRatKnight local AutoCheat= true local CLOCK= 0x0306 --Game clock local HEART= 0x0324 --Mac's low digit for his heart counter. local EHP= 0x0398 -- Enemy HP address local HRT= 0x0325 -- Mac's Heart's been dropped indicator local TMR= 75 -- Frames in advance for your punches. local UPP= 19 -- Frames prior to the golden zone to display. local BND= -8 -- KEEP NEGATIVE!! Frames after the golden zone. local threshold= 22-- How many frames before the target timing does it allow? local deadzone= 18 -- Frames to ignore a block following a failed punch. local DISPx= 180 local DISPy= 180 local DISPx2= DISPx+11 -- Right side of box. Adjust that plus to your need local Dsp= {line= true, bar= true, stealth= 0, stick= 30} local deviation= 0 local accuracy= 0 local perfect= 0 local earlies= 0 local lates= 0 local accearly= 0 local acclate= 0 local LastHit local HitTiming local DEBUG_Status= "nil" local keys= input.get() local lastkeys= keys --***************************************************************************** function UpdateKeys() lastkeys= keys; keys= input.get() end function Press(btn) return (keys[btn] and not lastkeys[btn]) end function NULLFn() end --***************************************************************************** --***************************************************************************** local function Is_Blocked() return (memory.readbyte(HRT) == 0x80) end --***************************************************************************** --***************************************************************************** local function AB1() local p= joypad.get(1); return (p.A or p.B) end --***************************************************************************** local Pad, LastPad= {}, {} --***************************************************************************** local function AB2() --***************************************************************************** LastPad= Pad Pad= joypad.get(1) return ( (Pad.A and LastPad.A) or (Pad.B and LastPad.B) ) end local timer= 0 --***************************************************************************** local function IdleStuffs() --***************************************************************************** timer= timer-1 if timer <=0 then LastHit= nil emu.registerafter(NULLFn) end end local MainLoop -- There exists a MainLoop. Needed for a few function. local DZ --***************************************************************************** local function ForcedWait() --***************************************************************************** DEBUG_Status= "Deadzone, ignoring you!!" DZ= DZ-1 if DZ <= 0 then emu.registerbefore(MainLoop) end end --***************************************************************************** local function Reset() --***************************************************************************** DEBUG_Status= "Reset" HitTiming= nil end --***************************************************************************** local function ScanHit() --***************************************************************************** DEBUG_Status= "Scanned!" timer= Dsp.stick emu.registerafter(IdleStuffs) LastHit= HitTiming deviation= deviation + HitTiming if HitTiming < 0 then accuracy= accuracy - HitTiming lates= lates+1 acclate= acclate - HitTiming elseif HitTiming > 0 then accuracy= accuracy + HitTiming earlies= earlies+1 accearly= accearly + HitTiming else perfect= perfect+1 end end --***************************************************************************** local function WaitForIt() --***************************************************************************** DEBUG_Status= "Timing..." HitTiming= HitTiming-1 if HitTiming < BND then Reset(); emu.registerbefore(MainLoop) else if AB2() and HitTiming < threshold then ScanHit() DZ= deadzone emu.registerbefore(ForcedWait) end end end --***************************************************************************** local function NewHit() --***************************************************************************** DEBUG_Status= "BLOCKED" HitTiming= TMR emu.registerbefore(WaitForIt) end --***************************************************************************** function MainLoop() --***************************************************************************** DEBUG_Status= "Main" if Is_Blocked() then NewHit() end end emu.registerbefore(MainLoop) --***************************************************************************** function ResetStats() --***************************************************************************** deviation= 0 accuracy= 0 perfect= 0 earlies= 0 lates= 0 accearly= 0 acclate= 0 end local SparklyJoy= 0 local SparkyColors={"red","white","green","blue"} --***************************************************************************** local function DisplayStuffs() --***************************************************************************** --I'm handling options just for you!! UpdateKeys() if Press("insert") then Dsp.line= not Dsp.line end if Press("delete") then Dsp.bar= not Dsp.bar end if Press("home") then Dsp.stealth= Dsp.stealth+1 end if Press("end") then Dsp.stealth= math.max(Dsp.stealth-1,0) end if Press("pageup") then Dsp.stick= Dsp.stick+1 end if Press("pagedown") then Dsp.stick= math.max(Dsp.stick-1,0) end if Press("numpad5") then ResetStats() end if Press("numpad0") then AutoCheat= not AutoCheat end if keys.leftclick and lastkeys.leftclick then DISPx= DISPx + keys.xmouse - lastkeys.xmouse DISPx2= DISPx2 + keys.xmouse - lastkeys.xmouse DISPy= DISPy + keys.ymouse - lastkeys.ymouse end -- Okay, enough options handling. On we go! if Dsp.bar then for i= BND, UPP do if i <= 0 or i > Dsp.stealth or LastHit then local Y = DISPy - i*4 if i < 0 then Y= Y+2 elseif i > 0 then Y= Y-2 end local color= "black" if i == LastHit then color= "red" elseif i == HitTiming then color= "green" end gui.box(DISPx, Y, DISPx2, Y+2, 0, color) end end if LastHit == 0 then --Sparkly joy! SparklyJoy= (SparklyJoy%3)+1 gui.drawbox(DISPx-2, DISPy-2, DISPx2+2, DISPy+4, 0, SparkyColors[SparklyJoy]) gui.drawbox(DISPx, DISPy, DISPx2, DISPy+2, 0, SparkyColors[SparklyJoy+1]) else SparklyJoy= 0 gui.drawbox(DISPx-2, DISPy-2, DISPx2+2, DISPy+4, 0, "green") end end if Dsp.line then local ThisX= 240 local ThisY= 100 gui.box(ThisX-1,ThisY,ThisX+1,ThisY+2+TMR-BND, "black", "white") gui.pixel(ThisX,ThisY+1+TMR,"white") if HitTiming then gui.pixel(ThisX,ThisY+1+TMR-HitTiming,"green") end end if LastHit then if LastHit < 0 then gui.text(128,80,"Late " .. -LastHit) elseif LastHit > 0 then gui.text(128,80,"Early " .. LastHit) else gui.drawbox(127,79,142,88,"green") gui.text(128,80,"OK") end end gui.text( 1,110,"Timing error: " .. accuracy) gui.text( 1,120,"Deviation: " .. deviation) gui.text( 1,140,"Perfect hits: " .. perfect) gui.text( 1,160,"Early: " .. earlies .. " : " .. accearly) gui.text( 1,170,"Late: " .. lates .. " : " .. acclate) local Tot=(perfect + earlies + lates) if Tot ~= 0 then local temp= perfect / Tot temp= math.floor(temp*1000)/10 gui.text( 1,185,"Accuracy: " .. temp .. "%") temp= deviation / Tot temp= math.floor(temp*100)/100 gui.text(1,195,"Dev.Rate: " .. temp) else gui.text( 1,185,"Accuracy: --.-%") gui.text(1,195,"Dev.Rate: -.--") end gui.text(145, 14,memory.readbyte(EHP)) gui.text( 1, 1,DEBUG_Status) gui.text(230, 1,Dsp.stick) if AutoCheat then gui.text(88,1,"Eternal Cheat Acitve!") end end gui.register(DisplayStuffs) --***************************************************************************** function CheatEternalBattle() --***************************************************************************** memory.writebyte(CLOCK, 0) memory.writebyte(EHP, 96) memory.writebyte(HEART, 7) end while true do if AutoCheat then CheatEternalBattle() end emu.frameadvance() end
EDIT: Added a deadzone, and fixed a mixup of early/late stuffs. EDIT2: Added a ResetStats button, at numpad5. It resets stats. Joy. EDIT3: Now has cheats and shows deviation!
Post subject: adelikat, here's a King Hippo script
Editor, Skilled player (1172)
Joined: 9/27/2008
Posts: 1085
Apparently, I was asked to go ahead and mess with more lua stuff. So here's more. It seems to work well, I think, but maybe the lower BND should be more negative. Maybe the cheat function needs tweaking. Hrm... Still, much of the same old code is used. Yay. Download PunchOutTraining_Hippo.lua
Language: lua

-- For Mike Tyson's Punch Out!! when fighting King Hippo -- Intended to help time hits in real time. --FatRatKnight local AutoCheat= true local CLOCK= 0x0306 -- Game clock local HEART= 0x0324 -- Mac's low digit for his heart counter. local ETMR= 0x0039 -- Enemy timer address local EHP= 0x0398 -- Enemy HP address local HRT= 0x0325 -- Mac's Heart's been dropped indicator local RN= 0x0018 -- Some sort of random number stuff? local ACT= 0x0090 -- Something to do with Hippo's thoughts. local TMR=120 -- For the silly line. local UPP= 25 -- Frames prior to the golden zone to display. local BND= -8 -- KEEP NEGATIVE!! Frames after the golden zone. local OFFSET= 13 -- Timing frames after Hippo decides his punch. local DISPx= 180 local DISPy= 180 local DISPx2= DISPx+11 -- Right side of box. Adjust that plus to your need local Dsp= {line= true, bar= true, stealth= 0, stick= 45} local deviation= 0 local accuracy= 0 local perfect= 0 local earlies= 0 local lates= 0 local accearly= 0 local acclate= 0 local LastHit local HitTiming local DEBUG_Status= "nil" local keys= input.get() local lastkeys= keys --***************************************************************************** function UpdateKeys() lastkeys= keys; keys= input.get() end function Press(btn) return (keys[btn] and not lastkeys[btn]) end function NULLFn() end --***************************************************************************** --***************************************************************************** local function ForceRNToBehave(addr) --***************************************************************************** if memory.readbyte(addr) ~= 9 then memory.writebyte(addr,9) end end if AutoCheat then memory.registerwrite(RN,ForceRNToBehave) end local Pad, LastPad= {}, {} --***************************************************************************** local function AB() --***************************************************************************** LastPad= Pad Pad= joypad.get(1) return ( (Pad.A and LastPad.A) or (Pad.B and LastPad.B) ) end local timer= 0 --***************************************************************************** local function IdleStuffs() --***************************************************************************** timer= timer-1 if timer <=0 then LastHit= nil emu.registerafter(NULLFn) end memory.writebyte(RN, 9) end local MainLoop -- There exists a MainLoop. Needed for a few function. --***************************************************************************** local function ForgetIt() --***************************************************************************** DEBUG_Status= "... Yeesh..." HitTiming= nil emu.registerbefore(MainLoop) end --***************************************************************************** local function ScanHit() --***************************************************************************** DEBUG_Status= "Scanned!" timer= Dsp.stick emu.registerafter(IdleStuffs) LastHit= HitTiming deviation= deviation + HitTiming if HitTiming < 0 then accuracy= accuracy - HitTiming lates= lates+1 acclate= acclate - HitTiming elseif HitTiming > 0 then accuracy= accuracy + HitTiming earlies= earlies+1 accearly= accearly + HitTiming else perfect= perfect+1 end HitTiming= nil emu.registerbefore(MainLoop) end --***************************************************************************** local function PunchLoop() --***************************************************************************** DEBUG_Status= "He's punching!" HitTiming= HitTiming-1 if HitTiming < BND then ForgetIt() elseif AB() then ScanHit() end end --***************************************************************************** local function NewPunch() --***************************************************************************** DEBUG_Status= "Oh, snap!" emu.registerbefore(PunchLoop) HitTiming= OFFSET end --***************************************************************************** local function WatchLoop() --***************************************************************************** DEBUG_Status= "He's waiting..." local HippoStatus= memory.readbyte(ACT) if (HippoStatus == 23) or (HippoStatus == 24) then NewPunch() elseif HippoStatus ~= 1 then HitTiming= nil emu.registerbefore(MainLoop) else HitTiming= OFFSET+memory.readbyte(ETMR) end end --***************************************************************************** local function NewWatch() --***************************************************************************** DEBUG_Status= "Oh, shiny!" HitTiming= OFFSET+memory.readbyte(ETMR) emu.registerbefore(WatchLoop) end --***************************************************************************** function MainLoop() --***************************************************************************** DEBUG_Status= "Sleeping" local HippoStatus= memory.readbyte(ACT) if HippoStatus == 1 then NewWatch() end end emu.registerbefore(MainLoop) --***************************************************************************** function ResetStats() --***************************************************************************** deviation= 0 accuracy= 0 perfect= 0 earlies= 0 lates= 0 accearly= 0 acclate= 0 end local SparklyJoy= 0 local SparkyColors={"red","white","green","blue"} --***************************************************************************** local function DisplayStuffs() --***************************************************************************** --I'm handling options just for you!! UpdateKeys() if Press("insert") then Dsp.line= not Dsp.line end if Press("delete") then Dsp.bar= not Dsp.bar end if Press("home") then Dsp.stealth= Dsp.stealth+1 end if Press("end") then Dsp.stealth= math.max(Dsp.stealth-1,0) end if Press("pageup") then Dsp.stick= Dsp.stick+1 end if Press("pagedown") then Dsp.stick= math.max(Dsp.stick-1,0) end if Press("numpad5") then ResetStats() end if keys.leftclick and lastkeys.leftclick then DISPx= DISPx + keys.xmouse - lastkeys.xmouse DISPx2= DISPx2 + keys.xmouse - lastkeys.xmouse DISPy= DISPy + keys.ymouse - lastkeys.ymouse end if Press("numpad0") then AutoCheat= not AutoCheat if AutoCheat then memory.registerwrite(RN,ForceRNToBehave) else memory.registerwrite(RN,nil) end end -- Okay, enough options handling. On we go! if Dsp.bar then for i= BND, UPP do if i <= 0 or i > Dsp.stealth or LastHit then local Y = DISPy - i*4 if i < 0 then Y= Y+2 elseif i > 0 then Y= Y-2 end local color= "black" if i == LastHit then color= "red" elseif i == HitTiming then color= "green" end gui.box(DISPx, Y, DISPx2, Y+2, 0, color) end end if LastHit == 0 then --Sparkly joy! SparklyJoy= (SparklyJoy%3)+1 gui.drawbox(DISPx-2, DISPy-2, DISPx2+2, DISPy+4, 0, SparkyColors[SparklyJoy]) gui.drawbox(DISPx, DISPy, DISPx2, DISPy+2, 0, SparkyColors[SparklyJoy+1]) else SparklyJoy= 0 gui.drawbox(DISPx-2, DISPy-2, DISPx2+2, DISPy+4, 0, "green") end end if Dsp.line then local ThisX= 240 local ThisY= 60 gui.box(ThisX-1,ThisY,ThisX+1,ThisY+2+TMR-BND, "black", "white") gui.pixel(ThisX,ThisY+1+TMR,"white") if HitTiming then gui.pixel(ThisX,ThisY+1+TMR-HitTiming,"green") end end if LastHit then if LastHit < 0 then gui.text(128,80,"Late " .. -LastHit) elseif LastHit > 0 then gui.text(128,80,"Early " .. LastHit) else gui.drawbox(127,79,142,88,"green") gui.text(128,80,"OK") end end gui.text( 1,110,"Timing error: " .. accuracy) gui.text( 1,120,"Deviation: " .. deviation) gui.text( 1,140,"Perfect hits: " .. perfect) gui.text( 1,160,"Early: " .. earlies .. " : " .. accearly) gui.text( 1,170,"Late: " .. lates .. " : " .. acclate) local Tot=(perfect + earlies + lates) if Tot ~= 0 then local temp= perfect / Tot temp= math.floor(temp*1000)/10 gui.text( 1,185,"Accuracy: " .. temp .. "%") temp= deviation / Tot temp= math.floor(temp*100)/100 gui.text(1,195,"Dev.Rate: " .. temp) else gui.text( 1,185,"Accuracy: --.-%") gui.text(1,195,"Dev.Rate: -.--") end gui.text(145, 14,memory.readbyte(EHP)) gui.text( 1, 1,DEBUG_Status) gui.text(230, 1,Dsp.stick) gui.text( 1, 50,"Punches: " .. Tot) if AutoCheat then gui.text(88,1,"Eternal Cheat Acitve!") end end gui.register(DisplayStuffs) --***************************************************************************** function CheatEternalBattle() --***************************************************************************** memory.writebyte(CLOCK, 0) memory.writebyte(EHP, 96) -- memory.writebyte(HEART, 7) end while true do if AutoCheat then CheatEternalBattle() end emu.frameadvance() end
Edit: Now forces the memory to stay put sub-frame.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
sinster1 has beaten the TAS time for Piston Honda II by a sizeable amount due to a new mechanic discovery: http://www.twitch.tv/sinisterwon/c/2734183
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3599)
Joined: 11/3/2004
Posts: 4739
Location: Tennessee
Actually, technically it isn't a new mechanic. It was a known mechanic that is exploited on Super Macho Man, that has been discovered to work on Honda II. In hindsight, I'm surprised we never at least stumbled upon it by accident many years ago, let alone at least try it. I'm most surprised that it is such a large improvement as a result. Such a significant improvement hasn't happened in almost 8 years in this game :o Also, you can expect I'll have a submission in the upcoming weeks ^_^
It's hard to look this good. My TAS projects
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
adelikat wrote:
Also, you can expect I'll have a submission in the upcoming weeks ^_^
Excellent!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 7/10/2007
Posts: 280
For the less informed, can you explain what's going on?
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3599)
Joined: 11/3/2004
Posts: 4739
Location: Tennessee
When uppercutting both Honda 2, and Super Macho Man they will raise their guard a few frames before the punch lands. If they successfully do this, the punch will do less damage. Therefore, the trick is to find ways to prevent them from doing this, and thus do max damage with as many uppercuts as possible. With macho, it is pretty easy to always do this by tapping up at the right time during the punch, it will cause him to raise his guard in response to you pressing up, and dropping it in response to you letting go. With the right timing, you can do this so that he doesn't have time to react to the actual uppercut in time. The discovery with Honda 2 is that there is actually a timing by which we can do this exact maneuver. Prior to this, the only known way to do max damage was to hit him during his eyebrow shake (which was only a few opportunities during a TAS/Speedrun attempt).
It's hard to look this good. My TAS projects
Player (50)
Joined: 4/1/2016
Posts: 285
Location: Cornelia Castle
feitclub wrote:
I understood the Bison/Tyson problem, but I wish they hadn't swapped Vega as well.
What's wrong with Bison?
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Spikestuff
They/Them
Editor, Publisher, Expert player (2312)
Joined: 10/12/2011
Posts: 6342
Location: The land down under.
DJ Incendration wrote:
feitclub wrote:
I understood the Bison/Tyson problem, but I wish they hadn't swapped Vega as well.
What's wrong with Bison?
Did-- Did you just respond to a post from 2004? Did you also not know about the story behind Bison/Tyson/Vega? From Japan to America: M.Bison is Vega, Vega is Balrog and Balrog is M.Bison
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 5/12/2009
Posts: 748
Location: Brazil
We all got used to the last boss beeing M. Bison, but the Boxer is the original M. Bison which should sound like Mike Tyson as the character was inspired in him.
Post subject: Mike Tyson's Punch Out, more mem locations
opnix
He/Him
Joined: 1/7/2021
Posts: 1
Hey everyone, I noticed the memory map for Mike Tyson's Punch Out (http://tasvideos.org/GameResources/NES/MikeTysonsPunchout/RamMap.html) is missing the ram locations for the number star punches, heart block things, and each fighter's health. I needed these for an ai project I'm working on, so here they are for anyone looking for them :) 0x0342 = Star Punches 0x0323 = Hearts (10's place) 0x0324 = Hearts (1's place) 0x0391 - 0x0393 = Your Health (each address shares the same value) 0x0398 - 0x039A = Opponent's Health (each address shares the same value)
Post subject: Re: Mike Tyson's Punch Out, more mem locations
Sand
He/Him
Player (125)
Joined: 6/26/2018
Posts: 154
opnix wrote:
I noticed the memory map for Mike Tyson's Punch Out (http://tasvideos.org/GameResources/NES/MikeTysonsPunchout/RamMap.html) is missing the ram locations for the number star punches, heart block things, and each fighter's health.
I added your addresses in /diff.exe?page=GameResources%2FNES%2FMikeTysonsPunchout%2FRamMap&rev=5&prev=4.