daah, kristian is right dudes, just like doom comunitty, they are long dead by now irl, the real huge communities are on PUBG right now fucking loosers (it is sarcasm)
Gameplays CCXXI doesn’t mean it isn’t good it’s still a very good clone with a easy way to add songs and it is comparable to gh3 it makes sense to change
Nice man. I'm trying to write a QB decompiler (and compiler) for THPS scripts at the moment but it's difficult to figure out how the QB bytecode works. Did you ever work with QB scripts?
Getting highest possible score in levels (check) Increasing quality of videos (check) Analyzing the games code in detail (check) ExileLord is becoming the new Pannenkoek confirmed
This is incredible! It's almost like you have a love/hate relationship with reverse engineering this game. Congrats on getting this far, and thank you for all the hours spent for the community. I wanna learn more about coding in video games now.
why do you have to hate on the man, he clearly put more effort into this than you have. you claim you are oh so much better than him, why dont you fully solve the bug
@KICKTHE..: What he did is literally the definition of reverse engineering. Namely the act of analyzing something in order to learn the details of its design/construction/operation. That the intent is often to create something similar, or to improve upon what you have reverse engineered, is separate from the actual act of reverse engineering. It's really all in the name. You can engineer (create), and you can reverse engineer (take apart something that was previously created). Using knowledge from reverse engineering to create something new, is just engineering.
As a programmer who hasn't ever had to work at the assembly level (and hasn't even used a C-level language in well over a decade), I applaud you for explaining this well enough for me to follow along!
I'm too lazy" *Has been making sick update for 10 year old game that has a questionable community* Thank you for all these updates tho... I probably wouldnt even be playing gh3 anymore if it wasnt for your amazing patches!
@@g0dsm4ck100 It's not though, for him, going through the process of evading SecuRom is a total pain in the ass, but simply fixing smaller things into he code is not. But making a counter bit of code to add objects to the text pool would take a fair bit of time and creativity, and he was probably tired from other work and didn't want to do it.
in all seriousness though, this is really interesting; i assume a similar process goes for any reverse engineering process (especially for obfuscated stuff, like this). being able to figure out functions and methods from a seemingly random chunk of bytes is something i can barely comprehend, so reverse engineers (and people who deal with assembly in general) have my utmost respect. thanks for all the work you've been doing on GH3, and for this video.
It usually isn't hard to tell if a random chunk of data is code. You simply try to interpret it as code at a few different places and see what you get. In a sane compiler this would actually be really easy since most code is surrounded by "0xCC" padding. Securom makes this more difficult since it throws in essentially "random x86" padding at parts. Also after staring at disassemblers alongside hex editors for a while you start to spot some patterns as well.
This, kids, is why we don't use SecuROM. It make people who want to make mods no longer want to. Seriously though, thanks for this. I have an old Kramer PS2 guitar and dongle, it's about time I got a PS2 to USB adapter and an eyepatch.
I've watched this video time and time again over the years, as I learn programming concepts more and more of this inspiring video becomes understandable. Fascinating!
Excellent stuff! Your editing went a long way in making this type of subject approachable for everyone. I look forward to more videos from you like this!
Just hearing the guy talking about it I am thinking "A few hours for a fucking function call? HOW DOES THAT GAME EVEN RUN!?" and "Sounds like a great way to ruin the job of your bug testers" and most importantly "I am pretty sure that doing something in such a long winded way would cause a whole lot of errors due to lack of communication between the game programmers"
There's no evidence that the copy protection is hampering substantially the game here. Define long winded for a processor that handles a million instructions per second. The only sketchy thing that is called out in the video is using undocumented behavior of the x86 instruction set. More specifically padding the unused parameter part of instruction boundaries with garbage data.
If Securom is causing a bug they aren't going to be able to fix it anyway. I doubt it would cause stalls. From what he showed it did in the video, any stalling would happen only on first call. If there were any stalls they'd just look like loading time. If someone was really concerned with how it affected their code, then they could just turn it on when looking for bugs. When they find a bug they'd turn it off, and try and replicate the bug. If the bug stays they know Securom has nothing to do with it, and they can keep Securom turned off while debugging like normal. The same process works with performance testing, but if the performance issue left when they turned Securom off they could do something to fix it. They could just add a bunch of dummy calls to the methods to resolve the obfuscation ahead of time. Oh and if the obfuscation isn't deterministic, which it probably isn't, they might be able to fix a Securom caused bug just be reapplying it. If this is the case, then testing for bugs with Securom enabled would only make sense if it was a final build candidate.
I came onto TH-cam tonight tipsy, I left with a new subscription to a impressive looking coder who I could still understand why things happened through the haze of alcohol. Solid work.
You're seriously the hero of the community, even if not as many people play GH3 anymore, you did something fucking incredible. Awesome job, Exile. Love everything you do
This was so informative, thank you. I've always wondered what it was like to work the code of an allready compiled game. I never considered that they would put preventative measures into it to stop you. Impressive how you figured out a way around it anyway.
I have been playing vanilla Guitar Hero for years now and didn’t discover Clone Hero until a couple of months ago thanks to TH-cam. I am constantly blown away by what comes out of your brain dude. Thank you for making the world an easier place to live in. ❤️
dude, this was a great video. I didn't even realize Guitar Hero 3 has a major bug in it. Played it only on the 360 until that red ringed. Looking forward to what that next error brings.
Oh man, how much I've learned in the past 5 years. I can actually understand what you're saying now :D (Everything other than the disassembly workflow, that's still a mystery to me though) On the chance you feel this comment is worth responding to, quick question: At 5:14 Was the string "You Are Now Entering a Restricted Area" actually part of the rom?? If so would it be part of all SecuROM routines?
No. It's in green text, meaning that they're comments left by Exile/IDA. The function name "You Are Now Entering a Restricted Area" was set by Exile too.
Never was interested in my learning assembly in college and my professors didn't make it interesting but this video right here is fantastic! I love GH and you are an incredible dev!
This was absolutely amazing and as a cs student, I am super jealous of your skill the only suggestion I have is to keep the text up longer for example the one at 3:47. I don't have trouble reading English and most of them were pretty fast for me so for non-first language speakers it would be too fast for sure again, just some constructive criticism, but the video was 10/10 otherwise :)
This is fantastic! I'm currently taking Assembly Lang. at my University, this is actually a great way to understand this stuff for people like me. You turned my procrastination into motivation for this project!
This is amazing! I am such a geek for this because I program here and there and dream of becoming a game developer, so when I see something like this I just don't know what to say other than how awesome it is. You, my friend, are great and have the patience of a saint, and some pretty awesome reverse-engineering skills.
This video is 12 minutes long. I hate programming but I watched whole video. I think you just earned another achievement. It is really well made, good job :)
Well... if they used a raw array and not a list object that should expand it's internal array when used properly... Just like they created a pool of text objects and didn't add more to it when it reached a threshold... What's wrong, activision? :(
Presumably because they want to know the exact compiled size of the game for retail purposes and aren't concerned with putting limits on a potential modding community (at the time)
My guess is more or less than 256, most likely an arbitrary number like 400/300/200/150... This is a pool, there's absolutely no need to have the end of it aligned to the bus size. The programmer goal here is to estimate the maximum visible objects, make the pool too big and you're overspending on memory budget. It's not the kind of number that I would pick to align because there is no repetitive copy/read/write to that memory block. The number of song is quite irrelevant to the maximum number of text objects, some could be instantiated and hidden/culled from display.
As someone who is not a programmer but personally associated with people who do similar work in the japanese arcade game scene, this was really fascinating to me to get an insight on how all the magic is done. Thanks for making this!
from a computer engineer working for a certain seattle based e commerce and cloud computing company: the IT sector always needs competent people like you
Where would I start learning stuff like this with the only coding language I've dabbled in being lua? This seems really interesting to me and I'd like become a programmer. To reiterate: Where should I start? Also, fantastic work on the video. Not only did you show and explain what you did, you talked about it in a way that was easy for a noob to understand and in a way that was entertaining. Serious props, man.
Making these video is your calling you need to start making how to videos about this stuff, and get people interested in the basic! Very informative and put together video!
This is an awesome video. Glad I found it. I've done some blind reverse engineering of file formats, I'm looking forward to a part 2 for that next bug :)
I don't even play this game or know how to write code on such a complex and involved level, but this video was seriously fucking cool. Also, I caught those Vektor songs near the end. Great taste.
I don't play thid game, nor do I care about anything about this But the world needs more people like you. This is amazing, even for someone outside this kinda community. Well done
Always fun diving into a game to find out how it works right? The best part is that it would take a dev with source code like 5 minutes to fix this. Don't worry bro, I've spent countless hours debugging war3 lol. keep doing what you doing ♥
This is Brilliant, awesome video, I hope one day I can learn to do this as well. I have only recently gotten into reverse engineering but this was truly awesome to see the thought process behind this fix.
This is actually really interesting. I only have basic knowledge of C and Java so it was kinda hard to follow you at times but hell was it worth it! xD
Even though I know little about C++ (or whatever syntax the PC release uses) and even less about Guitar Hero: With my very decent understanding of 86x I understood about 90% of what you said. Also the killer ending to your trials. I know that feel man, at least you somewhat made it better. :)
It is not only your knowledge of 86x, he is actually pretty good at explaining that if you don't know the details you can follow him anyway. Oh, and the legos in the background help lol
Very informative, even thou I'm unable to completely follow you in the explanaition I kinda get a good grasp of what you did in the video, god I need to dust off my books and start studying a bit
Wow! It would be great to include that feature in the Guitar Hero World Tour with the MOD All-in-One 2.0 and put all the songs in the same setlist ordered according to the type of game.
This DRM sounds like a great way to slow down the calling of the constructor to a crawl(really dumb design) and also a great way to cause random bugs. Calling a function a thousand times increases the odds that bits may be lost in the process.
fixes 10 year old bug for a huge community
community switches to a new game
rip
leglaff "huge" lol you think the gh3 community is huge? The game has been dead for years.
daah, kristian is right dudes, just like doom comunitty, they are long dead by now irl, the real huge communities are on PUBG right now fucking loosers (it is sarcasm)
I hate how they all changed to clone hero... I mean its easier to add customs but its not even official
GH3 with a bunch of mods attached isn't official either.
Gameplays CCXXI doesn’t mean it isn’t good it’s still a very good clone with a easy way to add songs and it is comparable to gh3 it makes sense to change
The ELI5 bits are fucking incredible. Thank you for all the good shit Exile
SB Gaming TF?
SB Gaming stfu
the term 'explain like i'm 5' doesn't apply to just reddit, dumbass
Acai ya he's a fuck head you're the only one I swear who doesn't do fake gh3 vids I love them
+J-rod H he doesn't play Guitar Hero anymore
This is an understatement: You're fucking incredible.
Language plezz :P
"No cursing on my Christian app please 😇"
SORRY SIR YOU ARE IN A CHRISTIAN COMMENT SECTION
ALL SWEARING PROHIBITED
Hi Jason :)
Well, fuck.
Well done! As an ex-NS developer, that was a cool trip down memory lane. :) Funny to see how many "Skater" references shipped in GH3!
As LocalH loves to say, GH3 is a note hitting engine glued to a skateboarding engine with Pritt Stick
Nice man. I'm trying to write a QB decompiler (and compiler) for THPS scripts at the moment but it's difficult to figure out how the QB bytecode works. Did you ever work with QB scripts?
Dude, this shit is surprisingly fun to watch even though all the actual learning just goes in one ear and out the other.
But you will remember to detest the name of the House of SecuROM until the end of days...
or Denuvo, nowadays
dude. not only are your software reverse engineering skills insane, but this video is incredibly well put together. you got my thumbs up.
Getting highest possible score in levels (check)
Increasing quality of videos (check)
Analyzing the games code in detail (check)
ExileLord is becoming the new Pannenkoek confirmed
Wait until this man crosses QPU's with a guitar controller first.
Supah slayah With half of a note press, no less.
How to beat TTFAF with 0.5 strums
Soulless 7 confirmed to build up speed for 12 hours until the track launches into a parallel universe.
>tfw he actually puts in some pannenkoek memes during the directions part
This is incredible! It's almost like you have a love/hate relationship with reverse engineering this game. Congrats on getting this far, and thank you for all the hours spent for the community. I wanna learn more about coding in video games now.
It's not the game that's the issue. It's SecuRom. If not for that this would've been a relatively quick and easy fix.
please take your stupidity elsewhere
KICKTHEBASSWITHTHEFACE! You can’t spell correctly so I know you can’t program
why do you have to hate on the man, he clearly put more effort into this than you have. you claim you are oh so much better than him, why dont you fully solve the bug
@KICKTHE..: What he did is literally the definition of reverse engineering. Namely the act of analyzing something in order to learn the details of its design/construction/operation. That the intent is often to create something similar, or to improve upon what you have reverse engineered, is separate from the actual act of reverse engineering.
It's really all in the name. You can engineer (create), and you can reverse engineer (take apart something that was previously created). Using knowledge from reverse engineering to create something new, is just engineering.
As a programmer who hasn't ever had to work at the assembly level (and hasn't even used a C-level language in well over a decade), I applaud you for explaining this well enough for me to follow along!
I'm too lazy" *Has been making sick update for 10 year old game that has a questionable community*
Thank you for all these updates tho... I probably wouldnt even be playing gh3 anymore if it wasnt for your amazing patches!
9:47 "Because I'm lazy..." after watching this, surely you cant be serious
lol dude it was a joke, the fact that he's going through all of this mind boggling shit and then says, "Im lazy" is just ridiculous.
If you were a software developer, you would understand.
@@g0dsm4ck100 It's not though, for him, going through the process of evading SecuRom is a total pain in the ass, but simply fixing smaller things into he code is not. But making a counter bit of code to add objects to the text pool would take a fair bit of time and creativity, and he was probably tired from other work and didn't want to do it.
You are the Guitar Hero.
in all seriousness though, this is really interesting; i assume a similar process goes for any reverse engineering process (especially for obfuscated stuff, like this). being able to figure out functions and methods from a seemingly random chunk of bytes is something i can barely comprehend, so reverse engineers (and people who deal with assembly in general) have my utmost respect. thanks for all the work you've been doing on GH3, and for this video.
It usually isn't hard to tell if a random chunk of data is code. You simply try to interpret it as code at a few different places and see what you get. In a sane compiler this would actually be really easy since most code is surrounded by "0xCC" padding. Securom makes this more difficult since it throws in essentially "random x86" padding at parts. Also after staring at disassemblers alongside hex editors for a while you start to spot some patterns as well.
Stack winding/unwinding is a pretty good tell, three sequential pop/push instructions and you're on to something.
"Yeah, after a while you just start seeing the Matrix and stuff"
can we all build a shrine to ExileLord
BC Richard No, _A SHRINE'S NOT GOOD ENOUGH!_ we need to get this man a mansion _with_ a shrine.
BC Richard WE NEED MORE THAN A SHRINE!
*WE NEED A SHRINE WITH A 50 FEET TALL STATUE OF EXILELORD!*
Need to give him a job at Activision/Aspur
+donnaken15 *aspyr
I want to like this comment, but it has 420 likes.
the bug was _exiled_
HaaH
99 problems and bugs in the code,
99 problems and bugs;
Debug one down and patch it around,
117 bugs in the code!
;' ) someone give a prize to this man please
Bethesda and Ubisoft follow this religiously.
This is the funniest comment I’ve seen in a while
5:22
Defeat Gywn Lord Of Cinder on NG+ Ohh Exile, you sneaky sneaky man you.
This, kids, is why we don't use SecuROM.
It make people who want to make mods no longer want to.
Seriously though, thanks for this. I have an old Kramer PS2 guitar and dongle, it's about time I got a PS2 to USB adapter and an eyepatch.
I've watched this video time and time again over the years, as I learn programming concepts more and more of this inspiring video becomes understandable.
Fascinating!
Excellent stuff! Your editing went a long way in making this type of subject approachable for everyone. I look forward to more videos from you like this!
4:40 In case you've never heard of SecuRom, it's a piece of shit that fucks with everything it touches.
Just hearing the guy talking about it I am thinking "A few hours for a fucking function call? HOW DOES THAT GAME EVEN RUN!?" and "Sounds like a great way to ruin the job of your bug testers" and most importantly "I am pretty sure that doing something in such a long winded way would cause a whole lot of errors due to lack of communication between the game programmers"
There's no evidence that the copy protection is hampering substantially the game here. Define long winded for a processor that handles a million instructions per second. The only sketchy thing that is called out in the video is using undocumented behavior of the x86 instruction set. More specifically padding the unused parameter part of instruction boundaries with garbage data.
Securom is probably turned off for debug builds.
Securom could probably cause bugs and stalls, so not testing it is dumb.
If Securom is causing a bug they aren't going to be able to fix it anyway.
I doubt it would cause stalls. From what he showed it did in the video, any stalling would happen only on first call. If there were any stalls they'd just look like loading time.
If someone was really concerned with how it affected their code, then they could just turn it on when looking for bugs. When they find a bug they'd turn it off, and try and replicate the bug. If the bug stays they know Securom has nothing to do with it, and they can keep Securom turned off while debugging like normal.
The same process works with performance testing, but if the performance issue left when they turned Securom off they could do something to fix it. They could just add a bunch of dummy calls to the methods to resolve the obfuscation ahead of time.
Oh and if the obfuscation isn't deterministic, which it probably isn't, they might be able to fix a Securom caused bug just be reapplying it. If this is the case, then testing for bugs with Securom enabled would only make sense if it was a final build candidate.
The main take I got out of this is that fixing bugs without the source code is a pain in the ass. And for that I commend your dedication!
Literally haven't played this game in years and have a very shallow programming background. Enjoyed every bit of this vid. Congrats, man!
I came onto TH-cam tonight tipsy, I left with a new subscription to a impressive looking coder who I could still understand why things happened through the haze of alcohol. Solid work.
You're seriously the hero of the community, even if not as many people play GH3 anymore, you did something fucking incredible. Awesome job, Exile. Love everything you do
This was so informative, thank you. I've always wondered what it was like to work the code of an allready compiled game. I never considered that they would put preventative measures into it to stop you. Impressive how you figured out a way around it anyway.
The preventative measures are mostly to stop people from cracking games and copying them
They make it a pain in the ass for me anyways though even if that's what they say they're for. Denuvo and SecuROM are both incredibly invasive.
I'm crying. I understood like 5% of anything you said but I love you so much
Dude, the amount of work to fix a glitch like this is epic. You make me want to play the damn game.
I have been playing vanilla Guitar Hero for years now and didn’t discover Clone Hero until a couple of months ago thanks to TH-cam. I am constantly blown away by what comes out of your brain dude. Thank you for making the world an easier place to live in. ❤️
Your programming and editing is orgasmic.
man this guy knows a lot about x86 assembler.
2:45
That Double D constructor image. XD
5:28
dude, this was a great video. I didn't even realize Guitar Hero 3 has a major bug in it. Played it only on the 360 until that red ringed. Looking forward to what that next error brings.
Oh man, how much I've learned in the past 5 years. I can actually understand what you're saying now :D
(Everything other than the disassembly workflow, that's still a mystery to me though)
On the chance you feel this comment is worth responding to, quick question:
At 5:14 Was the string "You Are Now Entering a Restricted Area" actually part of the rom?? If so would it be part of all SecuROM routines?
No. It's in green text, meaning that they're comments left by Exile/IDA. The function name "You Are Now Entering a Restricted Area" was set by Exile too.
@@serraramayfield9230 You're supposed to read the code before commenting
Never was interested in my learning assembly in college and my professors didn't make it interesting but this video right here is fantastic! I love GH and you are an incredible dev!
This was absolutely amazing and as a cs student, I am super jealous of your skill
the only suggestion I have is to keep the text up longer for example the one at 3:47. I don't have trouble reading English and most of them were pretty fast for me so for non-first language speakers it would be too fast for sure
again, just some constructive criticism, but the video was 10/10 otherwise :)
This is fantastic! I'm currently taking Assembly Lang. at my University, this is actually a great way to understand this stuff for people like me. You turned my procrastination into motivation for this project!
This is amazing! I am such a geek for this because I program here and there and dream of becoming a game developer, so when I see something like this I just don't know what to say other than how awesome it is. You, my friend, are great and have the patience of a saint, and some pretty awesome reverse-engineering skills.
You got a kudos from Ilfak Guilfanov himself in his latest tweet. Amazing video, congratulations. Make a series on reverse engineering. Subscribed.
This video is 12 minutes long. I hate programming but I watched whole video.
I think you just earned another achievement. It is really well made, good job :)
I know nothing about coding or programming and yet this video enthralled me all the way through.
You are our Demigod of the GH3! :D This really looked interesting btw.
i can't believe plumato is fucking dead
wait, what ?
???????
he died in irma
Is this a sick joke? Is Tristan okay?
i hope this is a joke :(
Around 260 songs? Array pointer overflow at 255/256 maybe?
My guess is that they have an array holding 256 objects and that we're getting memory corruption when going over that.
Yeah, wouldn't surprise me, and depending on where that limit is set it might take a bit more doing to fix that.
Well... if they used a raw array and not a list object that should expand it's internal array when used properly...
Just like they created a pool of text objects and didn't add more to it when it reached a threshold...
What's wrong, activision? :(
Presumably because they want to know the exact compiled size of the game for retail purposes and aren't concerned with putting limits on a potential modding community (at the time)
My guess is more or less than 256, most likely an arbitrary number like 400/300/200/150... This is a pool, there's absolutely no need to have the end of it aligned to the bus size. The programmer goal here is to estimate the maximum visible objects, make the pool too big and you're overspending on memory budget. It's not the kind of number that I would pick to align because there is no repetitive copy/read/write to that memory block. The number of song is quite irrelevant to the maximum number of text objects, some could be instantiated and hidden/culled from display.
11:40 Amalgamation 2 YES FUCK YEA
Right!
what
Could've been!
This wasn't just informative, it was an entire saga. Thank you for this.
when skill goes out of control , good job
As someone who is not a programmer but personally associated with people who do similar work in the japanese arcade game scene, this was really fascinating to me to get an insight on how all the magic is done. Thanks for making this!
I'd love just a series as well edited and informative for any game. This was super interesting
Thank god for the ELI5 parts. I understand coding to a degree but a lot of that stuff went straight over my head! Good work though ExileLord
Dude.. you series need to begin a reverse engineering channel or series... This was amazing.
This is the best video on reverse engineering I ever watched - great job!
Not sure why or what triggered this into my feed, but now I know where to go when I need to explain stuff like this to friends, great stuff :)
Excellent explanation and editing! Indeed, that's an usual day when modding/fixing GTA ;)
This is incredibly cool. I always wanted to learn a bit more about debugging and maybe fixing games but I don't even know where to start.
hey dude, that is really awesome. As a programmer, watching this is just even more awesome. Keep up the work. You earned my sub
Please do continue this! I'd love to see what else you do to fix the new limitation!
from a computer engineer working for a certain seattle based e commerce and cloud computing company: the IT sector always needs competent people like you
Where would I start learning stuff like this with the only coding language I've dabbled in being lua? This seems really interesting to me and I'd like become a programmer. To reiterate: Where should I start?
Also, fantastic work on the video. Not only did you show and explain what you did, you talked about it in a way that was easy for a noob to understand and in a way that was entertaining. Serious props, man.
i love these types of vids from you, they're really good tbh
also, nice song.
That is informative as hell, and *very* digestible for entry-level coders.
honestly, I always hated assembly but you make it look so fun ! props to you!
great vid man, it kept me really interested through the whole video. nice edits btw
Making these video is your calling you need to start making how to videos about this stuff, and get people interested in the basic! Very informative and put together video!
This is an awesome video. Glad I found it. I've done some blind reverse engineering of file formats, I'm looking forward to a part 2 for that next bug :)
Had literally zero clue about anything in this video, but was still entertained. :D
Legitimately amazing to watch. Well done, Sir.
I don't even play this game or know how to write code on such a complex and involved level, but this video was seriously fucking cool. Also, I caught those Vektor songs near the end. Great taste.
i know nothing of code yet i watched this in awe and fascination. well done good sir
I don't play thid game, nor do I care about anything about this
But the world needs more people like you. This is amazing, even for someone outside this kinda community. Well done
Please make more videos like this, really interesting to watch the reverse engineering process
I'm so proud of myself for being able to mostly follow what you were doing here
Always fun diving into a game to find out how it works right? The best part is that it would take a dev with source code like 5 minutes to fix this. Don't worry bro, I've spent countless hours debugging war3 lol. keep doing what you doing ♥
You sure know your stuff man. I can only applaud to you
Oh my god this is so amazing.
This is Brilliant, awesome video, I hope one day I can learn to do this as well. I have only recently gotten into reverse engineering but this was truly awesome to see the thought process behind this fix.
This is more interesting than a Vsauce video, keep up the good work Exile!
Some seriously impressive reverse engineering of the assembly code!
This is actually really interesting. I only have basic knowledge of C and Java so it was kinda hard to follow you at times but hell was it worth it! xD
Young software dev here..this was amazing. Absolutely thank you, and keep up the holy work.
Even though I know little about C++ (or whatever syntax the PC release uses) and even less about Guitar Hero: With my very decent understanding of 86x I understood about 90% of what you said.
Also the killer ending to your trials. I know that feel man, at least you somewhat made it better. :)
It is not only your knowledge of 86x, he is actually pretty good at explaining that if you don't know the details you can follow him anyway.
Oh, and the legos in the background help lol
didnt know there was a bug and I'm nearing 100 songs now. thanks for not letting me be disappointed
Awesome video, crazy amount of work put into this.
I dont even play this game or knew anything about the BUG but i watched the entire video and it was pretty interesting!! good work!
This is incredible, love the video style and the content. You sir have my vote and my sub
Thank you for everything - Exile. We all love you, I mean it.
I got a kick out of this video, i know some people that would do too.
You are great man keep the good work
Years ago I was in this deep so I salute you - nice work.
Very informative, even thou I'm unable to completely follow you in the explanaition I kinda get a good grasp of what you did in the video, god I need to dust off my books and start studying a bit
Subbed. There's something so satisfying about debugging.
I wish I could understand all of this.
blacklightgamer97 same
"Defeat Lord Gwyn of cinder on NG+" hahahaha man, you rock, I wish I could understand everything you said because it looks so damn interesting!
"Cross the gap with only 0.5x A presses"
i recently learned that apparently the people that made securom made denuvo as well
That was so fucking intesting, I'd love to see more of this reversr engineering videos.
Wow! It would be great to include that feature in the Guitar Hero World Tour with the MOD All-in-One 2.0 and put all the songs in the same setlist ordered according to the type of game.
An absolute joy to see those skills!
You, my dear sir are a pure genius
This DRM sounds like a great way to slow down the calling of the constructor to a crawl(really dumb design) and also a great way to cause random bugs. Calling a function a thousand times increases the odds that bits may be lost in the process.
Very cool video, I love seeing code picked apart.
This is so fun to watch, love it!