"This style of programming is called 'absolutely terrible.'" I love this line. I have this on while working. I'm a software engineer. So, that line caught me off guard, and I had to stop to laugh.
In truth this was endemic to a _lot_ of NES games. Very few developers were actually super clever and in tune with the hardware, 90s era CAPCOM was one example of someone who pulled lots of fantastic tricks. I don't know if I can fully blame these old devs; computer science was kind of in its infancy, and programming an NES was an esoteric experience. Can't utilize high level programming languages here like we can easily do today, with tons of resources, autocomplete, prepackaged libraries, etc. You not only had to know how to "talk" to the hardware, but also speak the CPU's native language while trying to figure it out. And it's not like there were infinite resources on game programming, and UA-cam was only a thing of sci-fi imagination. They're still terrible games often not fun to play, however I kind of understand why they were the way they were.
@@CaptainSouthbirdThis is more true for game development than computing more generally. By the late 80s, many home computer programs were developed in high level languages. HLLs were even more common for minicomputer and mainframe programs.
@@HowManyRobot Storing data in CHR ROM was actually a pretty common technique in early NES games (up to 1986 or so) and was still used in a few later games (such as every game Culture Brain developed). The first bankswitched cartridges available only bankswitched the CHR ROM, not PRG ROM. I think Dragon Quest has a higher ratio of data to actual graphics in CHR ROM than any other game, though--more than half the CHR ROM is data.
Well, I can't confirm (no interest in playing the game, haha), but I heard some people in other videos mention you can use the cane attack to diffuse the bombs...
Aww. That is never my intention. I've made mistakes, felt the crunch of deadlines, had last second changes asked of me that I didn't implement well - we all have. I might make jokes about the code here or there, but I'll always defend the programmers.
@@DisplacedGamers Haha, I know it's all in good jest. I'd be so blessed if anyone ever cared enough to reverse engineer the code I've written, yet alone talk about it!. Your videos are the best man, keep it up 💜
@@DisplacedGamers True, but I believe the point is that it serves as healthy motivation to not forget about the details (as opposed to the kind of unhealthy motivation many employers use that increases stress and often leads to mistakes like this in the first place). “Not a big deal, but still something to keep in mind,” sort of thing.
The thing I find incredibly fascinating about this game is that when it “lags”, the game actually speeds up. I have no idea what could possibly cause this, but it’s most apparent in the city stage when a woman is singing while there are barrels. The more sprites on screen, the faster everything moves.
Game trying to compensate for CPU slowdown by upping the speed per cycle, to try and make the speed per delta time stay the same? Later games like Rare's N64 games pulled that trick off.
Some older games were programmed to detect if things were starting to run slowly and speed up *everything* to compensate. This can lead to funny things when running on much stronger hardware.
There is a decentish game hidden behind the final, shoddy product. Your suggestions would make it more playable (especially the smaller bomb blast radius)...and possibly even enjoyable.
I've always liked what this game is TRYING to do. Honestly it needs so much work under the hood it'd probably be better to remake it from scratch. I'd make the bomb radius smaller, the bomb timer longer and have it knock you away from the bomb instead of to the left regardless.
Heck, if we are remaking it, scrap bombs altogether. Make it so you have to avoid the people because they shove you, or something. Give the player more ground to go around things with, like a Double Dragon style ground. etc.
You are thinking of the game strictly as a game and not as a piece of art. By which I mean that making the bomb knock you to the right in any circumstance is antithetical to the point of the game.
How random is this! I just played through this whole game, US and the Japanese versions, and I was really thinking the same thing. "Is it fun?" Because in the abstract it's really a brilliant game. It even has multiple endings, the hidden one accessed by avoiding being struck by lightning for venturing past Jekyll as Hyde by using the rooftops of the final level. So many small and just bizarre changes in localization too, multiple levels removed and enemies as well. Really interesting stuff for game grognards like me.
This game really kind of shows how game programming was evolving back then. And even more, how much of a huge leap games like SMB1 were. Standards for scrolling and hitboxes just weren't there yet, everyone was finding out what they thought the best way to do it was. Trying to fit a puzzle piece in the large puzzle of gaming history.
Would be interesting to tie the run to the stress meter. Have it increase slightly as you run. Using the run to dodge things that will significantly increase stress, at the cost of a little stress.
The cane attack wouldn't be missed that much anyway, even for the bees, as, if you duck at the right time, you can actually headbutt the bees, and not take damage. Yes, this works....assuming the bees fly low enough. Anyway, nice dissection of the code! I haven't really seen anybody else tackle Jekyll and Hyde's code like this before.
Great video! The code reminds me of the first game I made in university, where everything moved in lockstep because I was a new programmer. Refactoring that sort of thing into something dynamic is very satisfying. If it were me, I'd make a run mechanic add to your stress. He's going to be late for the wedding! It would let you run as much as you want at the risk of taking self-damage, basically.
I would like to see the logic of using the cane. Why does it only work on bees. is that by design or bug. I've also seen from one source the can can be used to defuse the bomb. Again, it would be good to see if that is true. There is also a bug seen in AVGN videos of this where if you fall off a wall instead of jumping off, you die. I think this happens as Jekyll Again love to see the logic there.
What brilliant timing, I just played through this whole game, and was wondering pretty hard about how the bizarre and infuriating bomb collisions worked! This channel always answers my most burning questions. The spiders are definitely one of the most maddening enemies ever conceived.
2:59 I’ve watched this video about five times in the past month, and this part cracks me up every single time. I love your videos. I only wish they were longer.
It’s always interesting to see what kind of improvements can be made by just a few tweaks. Makes me wonder how they landed on certain decisions they made
Reprogramming the cane "attack" button would almost make this game fun to play if it actually becomes useful, for example, pushing bombs away, killing enemies, breaking obstacles, etc. As for the jerky walking speed, having a subpixel and velocity counter would go a long way over the arguably disgusting movement code in place, lots of things could make this game almost good lol
every time this channel uploads i get excited. i love these code dives on games you wouldn't immediately think about. we've beaten SMB1-3 to death, let's bring on dissecting the regrettable rentals we all made at Blockbuster
I've heard some people mention that the cane can also be used to diffuse the bombs (by hitting the wick), I've never played the game to say if that's true though, haha...
An interesting mechanic with the bombs in that running to the left means the bomb will knock you out of range if you get caught. Running to the right basically guarantees full damage if you get caught. Might be why the damage range to the right is shorter.
ok this last change the code looks actually awesome, it's v cool to have a notion on how this game loads in VRAM by seeing it... Not being able to load properly due to speedy scrolling
Aww I was hopeing you were gonna make the cane not useless. But i doubt the jekyll sprites had collision and that would have been some massive reprogramming. So i get why not, but still would have been cool.
Awesome video. Whenever a new video comes out I always make sure to take time to pay 100% attention. Some videos I just let play in the background, not these. Thanks !
So that's why the bombs do varying amounts of damage. They have a big damage area that lingers for 15 frames, and you take damage every frame you're inside it. If you try to run back left away from the bomb but don't make it, you'll get sent flying left and out of danger so you won't take much damage. If you try to run right past it but don't make it, you'll be bounced left back into the danger zone and take maximum damage...
yeah honestly this game is so close to being decent. it's a game that absolutely deserves a remake or reimagining. a jekyll/hyde game where you can only get the good ending if you manage to balance good/evil is such a good idea imo.
Another awesome episode!! Would be cool to make a Game Genie code to damage all enemies with that useless cane 😂😂 Are you familiar with the Famicom exclusive Sweet Home? There's a super crazy glitch that breaks the game in multiple ways, such as moving at 2x speed. I've even done some speedruns using it. I know how to do the glitch, but I'd love a technical explanation of exactly what is happening.
I would add paralax scrolling. I think it can be done when the foreground moving twice the speed of the midground Hyde is on and the background moving half that.
y'know, i was gonna comment on that recent avgn vid something along the lines of "welp, can't wait for the behind the code followup vid!" i should've known to commit to the bit
16:10 "This method of programming is what we call..." ...Terrible? "...Absolutely terrible." Ah, right, I forgot to account for making negative values still count toward the same direction.
Do an isometric game, like Racing Destruction Set on the C64 or something like that. I'm curious how they went about programming the movement regarding the slopes and whatnot. Same with Marble Madness! Your vids are awesome
I live when a new BTC video cones up. I like the idea of using pixels regarding hit detection I don't know why it isn't implemented more with early games. Also, I love how self reflecting this video is. The more you tinker with the code the more warped and horrendous the game becomes. As if you're turning the game into an NES version of Mr Hyde itself.
I speedrun this game from time to time and have noticed on parts with too many sprites (mainly the final level) that game speedsup on its own about 300% for a duration until you turn into Hyde or you can wait it out. Any idea how this game does reverse slowdown from too many sprites.
I think AVGN said it best, if you want an example of a game that does nothing to explain its rules and boundaries, this is a great case study. Less RNG would probably help a lot, as I think its also a great showcase of randomness is not more fun as it leads to frustrating waits and enemy patterns that feel unfair. Reducing that would likely make the game much more playable.
I am super interested in why running into elevated ground with the increased walking speed causes the level to change. That's such an odd bug. Wonder if it's possible to trigger under normal circumstances?
Perhaps the end of the level check is implemented by an object that doesn't trigger the normal hit detection, so when Jekyll clips into it the level is ended. However the faster walking speed means that you clip into all solid objects, triggering the end of the level, which only checked to see if you were clipping into an object.
amazing work as always, not a fan of these infamous nes games, but quite nice to fix some of those weird behaviours. Would you consider doing a video explaining how the scenes load in The last ninja games for C64 ? that was super advanced, and uses the same cpu as the NES
@@DisplacedGamers hey ! thanks for reading me legend ! yes, in fact they are very similar to NES ones in terms of showing raster position, audio debugging, sprites, etc. The most complete one is C64 65XE Debugger, you can see in real time all the memory and video working. I managed to reverse engineer Battleship and Tapper with it and no other emu. Let me know if I can give you more info or help in any way. And thanks again
I'd probably add some type of meter for Hyde that lets you know how close you are to getting out of the Hyde state or failing. And make the cane more useful.
Great video! Has an original game developer ever commented on one of your videos about their work? This one especially I'd love to hear the background story to the development.
"Let's double Jekyll's walking speed from 2 pixels to 4 pixels...." should NOT have to be followed with "This is the most reprogramming work I've done for Behind the Code so far."
As an avid fan of the original novel and of the general concept of JnH, i can confirm that this game is about as well held together as the main man himself, which fittingly means it's on the constany verge of breaking down entirely
I unironically love this game and wouldn’t change a thing about it. Yeah it’s a bizarre, cryptic, frustrating, slow mindfuck that seems to actively have it out for the player but it’s such a unique and one of a kind game that tries something different; with a lot of genuinely cool symbolism and imagery. While changing some of the design to make it more “game-like” is a cool concept that would probably make it more accessible to others, I think it also takes away a lot of the game’s alien charm. That’s just my two cents at least
If you wanted to do a stamina mechanic for running, the Stress meter sounds like a perfect candidate. Slowly drop the meter from J(ekyll) to H(yde) the more the run is relied on.
This is the kind of game (and analysis) that makes me want to create a more competent clone of it. As you said, the idea for the game is brilliant, and it's a shame that such poor execution meant that nobody has attempted something like this again.
Very interesting channel. Glad I checked it out. I wish you would do the SNES game of Lord of the Rings. I feel that game has the potential to be great, if fixed.
Now let's see you dissect Clash at Demonhead, I want to know if it's possible to beat the demon without the Sword of Apollo. You die in one hit during that boss fight so let's see if you can reprogram it where it can be beaten.
What if an added run mechanic adds to Jekylls stress? So yeah you can outrun a bomb to dodge a big stress hit but run too much and you still turn into Hyde?
Given that the Hyde portions of the game are auto-scrolling with automatic death if Hyde gets too close to Jekyll that would make the Run function too dangerous to actually use since stress can change so dramatically due to just one bomb blast (and the bombs are relentlessly being placed). Plus there would always be the issue of having only a little stress to go and accidentally hitting the run button. The only way I can see that possibly working is if there was a delay before stress started changing. Better to have a separate stamina better. Someone else mentioned Clocktower 1 and yeah I totally understand. In that game Jennifer's health and stamina are the same value and she too is slow-moving so there's always an impetus to run. You can stop and rest but this requires you to stop and its rather slow and cumbersome. There's a reason later games in the series have health and stamina as different values.
2:32 I don't understand what he means the by increment the sprites x position in RAM? Does he mean that each sprite has an address in RAM to store its x position, dont all NES sprites have that data for sprites? How's this different from say how SMB draws mario at a certain position. doesn't SMB update the sprites' position data to draw him at the correct location?
Great video! You truly have content unlike anything else on this platform, and it's amazing! Also quick question, I wanted to try out dissecting games, and I was wondering what program do you use to see all the machine code and the sprites in the ROM?
I am curious how you make videos of the game and change things (like moving a piece of the player character, putting it somewhere else on the screen), then continue walking. Is this an emulator, decompiled code of the original game, or how does this work?
The emulator translates the machine code into assembly and lets you debug it. I figure out what the code does, label and comment it, and then make changes from there.
What about making his cane attack work on more enemies? Being able to poke the spider would be very helpful! The video mentions that Jekyll doesn't move every frame. Would it possible to speed him up by moving him 2 pixels every frame?
Since he isn't programmed to move each frame even when holding a direction on the d-pad, it is likely that the game uses a frame counter in order to split game logic across specific frames - i.e. "move jekyll on this frame, do collision detection on this other frame, handle enemy actions and spawning on this one other frame." My gut says it would break the game even more than the method I used, but we'd have to try it to find out.
another janky game you should look into if you have a chance is hydlide. theres probably so much goofy shit in the inner workings of that game lol great video as always!
The AVGN is rising from his exorcised body to shake your hand
Didn't James even complete the game eventually?
@@WikiHL newest avgn ep
Whats avgn
@@serbonkers4130angry video game nerd
@@serbonkers4130 You poor soul...
"This style of programming is called 'absolutely terrible.'" I love this line. I have this on while working. I'm a software engineer. So, that line caught me off guard, and I had to stop to laugh.
It made me smile as well.
In truth this was endemic to a _lot_ of NES games. Very few developers were actually super clever and in tune with the hardware, 90s era CAPCOM was one example of someone who pulled lots of fantastic tricks. I don't know if I can fully blame these old devs; computer science was kind of in its infancy, and programming an NES was an esoteric experience. Can't utilize high level programming languages here like we can easily do today, with tons of resources, autocomplete, prepackaged libraries, etc. You not only had to know how to "talk" to the hardware, but also speak the CPU's native language while trying to figure it out. And it's not like there were infinite resources on game programming, and UA-cam was only a thing of sci-fi imagination.
They're still terrible games often not fun to play, however I kind of understand why they were the way they were.
@@CaptainSouthbird all true. I wasn't laughing at their coding skills, though. It was just his comment and delivery.
@@CaptainSouthbirdThis is more true for game development than computing more generally. By the late 80s, many home computer programs were developed in high level languages. HLLs were even more common for minicomputer and mainframe programs.
@@HowManyRobot Storing data in CHR ROM was actually a pretty common technique in early NES games (up to 1986 or so) and was still used in a few later games (such as every game Culture Brain developed). The first bankswitched cartridges available only bankswitched the CHR ROM, not PRG ROM. I think Dragon Quest has a higher ratio of data to actual graphics in CHR ROM than any other game, though--more than half the CHR ROM is data.
This game is the programming equivalent of outsider art. It's fascinating how strangely implemented every mechanic is.
..."And it's only useful against bees." Makes as much sense as any other decision made in this game.
Well, I can't confirm (no interest in playing the game, haha), but I heard some people in other videos mention you can use the cane attack to diffuse the bombs...
@@mikeluna2026 I remember trying that trick after I heard that rumor - it doesn't seem to work.
I don't think this is the "deadly bee weapon" Batman was thinking of in Amazons Attack...
As a programmer, these videos remind me to not be lazy with my code because in 30 years or so someone might dig through it and roast me posthumously.
Aww. That is never my intention. I've made mistakes, felt the crunch of deadlines, had last second changes asked of me that I didn't implement well - we all have. I might make jokes about the code here or there, but I'll always defend the programmers.
@@DisplacedGamers Haha, I know it's all in good jest. I'd be so blessed if anyone ever cared enough to reverse engineer the code I've written, yet alone talk about it!. Your videos are the best man, keep it up 💜
@@DisplacedGamers
True, but I believe the point is that it serves as healthy motivation to not forget about the details (as opposed to the kind of unhealthy motivation many employers use that increases stress and often leads to mistakes like this in the first place). “Not a big deal, but still something to keep in mind,” sort of thing.
The stress meter could have doubled as a stamina meter for a run function.
Stressing out about making your suit all sweaty before you get married.
I had the same thought.
It would add a risk/reward mechanic which is always interesting.
That's what I was thinking! Sprinting to outrun a bomb can be stressful in of itself.
That's perfect
Was gonna say the same thing.. Works conceptually, imagining Jekyll breaking into a brisk “gentlemanly” speed walk to get to the chapel on time :p
The thing I find incredibly fascinating about this game is that when it “lags”, the game actually speeds up. I have no idea what could possibly cause this, but it’s most apparent in the city stage when a woman is singing while there are barrels. The more sprites on screen, the faster everything moves.
Game trying to compensate for CPU slowdown by upping the speed per cycle, to try and make the speed per delta time stay the same? Later games like Rare's N64 games pulled that trick off.
More sprites onscreen means more update calls to the main game loop?
Some older games were programmed to detect if things were starting to run slowly and speed up *everything* to compensate. This can lead to funny things when running on much stronger hardware.
This channel has a new video describing the real reason just went up 2 week ago
"Oh damn you got blown up are you hurt?"
Jekyll: "I guess. Mostly mad though. >:("
that's a mood.
There is a decentish game hidden behind the final, shoddy product. Your suggestions would make it more playable (especially the smaller bomb blast radius)...and possibly even enjoyable.
I've always liked what this game is TRYING to do. Honestly it needs so much work under the hood it'd probably be better to remake it from scratch. I'd make the bomb radius smaller, the bomb timer longer and have it knock you away from the bomb instead of to the left regardless.
Heck, if we are remaking it, scrap bombs altogether. Make it so you have to avoid the people because they shove you, or something. Give the player more ground to go around things with, like a Double Dragon style ground. etc.
You are thinking of the game strictly as a game and not as a piece of art. By which I mean that making the bomb knock you to the right in any circumstance is antithetical to the point of the game.
How random is this! I just played through this whole game, US and the Japanese versions, and I was really thinking the same thing. "Is it fun?" Because in the abstract it's really a brilliant game. It even has multiple endings, the hidden one accessed by avoiding being struck by lightning for venturing past Jekyll as Hyde by using the rooftops of the final level. So many small and just bizarre changes in localization too, multiple levels removed and enemies as well. Really interesting stuff for game grognards like me.
"I just played through this whole game, US and the Japanese versions" Damn man, self harm is a serious issue.
This game really kind of shows how game programming was evolving back then. And even more, how much of a huge leap games like SMB1 were. Standards for scrolling and hitboxes just weren't there yet, everyone was finding out what they thought the best way to do it was. Trying to fit a puzzle piece in the large puzzle of gaming history.
it was the dark ages and we learned a lot by doing things we shouldn't have, lol.
Would be interesting to tie the run to the stress meter. Have it increase slightly as you run. Using the run to dodge things that will significantly increase stress, at the cost of a little stress.
This channel is truly in a league of extraordinary gentlemen!
Thanks, Ben!
The cane attack wouldn't be missed that much anyway, even for the bees, as, if you duck at the right time, you can actually headbutt the bees, and not take damage. Yes, this works....assuming the bees fly low enough. Anyway, nice dissection of the code! I haven't really seen anybody else tackle Jekyll and Hyde's code like this before.
Great video! The code reminds me of the first game I made in university, where everything moved in lockstep because I was a new programmer. Refactoring that sort of thing into something dynamic is very satisfying.
If it were me, I'd make a run mechanic add to your stress. He's going to be late for the wedding! It would let you run as much as you want at the risk of taking self-damage, basically.
The only thing I don't like about your videos is that there can't be a new one every single day. Seriously my favorite thing in all of UA-cam.
Thank you!
I would like to see the logic of using the cane. Why does it only work on bees. is that by design or bug. I've also seen from one source the can can be used to defuse the bomb. Again, it would be good to see if that is true.
There is also a bug seen in AVGN videos of this where if you fall off a wall instead of jumping off, you die. I think this happens as Jekyll Again love to see the logic there.
What brilliant timing, I just played through this whole game, and was wondering pretty hard about how the bizarre and infuriating bomb collisions worked! This channel always answers my most burning questions.
The spiders are definitely one of the most maddening enemies ever conceived.
2:59 I’ve watched this video about five times in the past month, and this part cracks me up every single time.
I love your videos. I only wish they were longer.
Most of humanities problems can be traced back to this one game. Imagine what life would be like if they would have gotten it right.
This and The Terminator are my favourite videos you've done. Please, keep explaining the code behind why the AVGN is so angry.
It’s always interesting to see what kind of improvements can be made by just a few tweaks. Makes me wonder how they landed on certain decisions they made
Probably ran out of time/money. That's the usual reason 😂
Running should perhaps fill the stress meter?
Edit: I guess I mean deplete, since it drains when you get hit and you turn when it empties.
oh god clock tower 1 flashbacks
Nah man, its that runner's high.
18:29 I love Jekyll’s 40 foot long jump while he was booking it at 16 pixels per second lol
he's absolutely GOING
Reprogramming the cane "attack" button would almost make this game fun to play if it actually becomes useful, for example, pushing bombs away, killing enemies, breaking obstacles, etc.
As for the jerky walking speed, having a subpixel and velocity counter would go a long way over the arguably disgusting movement code in place, lots of things could make this game almost good lol
Holy moly! Someone who says “composed of” instead of “comprised of”. Finally! 😂
17:46 - Watching you outrun the bird poop was giving me flashbacks to outrunning Robotnik's bomber at the end of Act 1 of Sonic 3. It made me laugh.
AVGN GOT HIS CHRISTMAS PRESENT EARLY
Thanks for having proper captions on your videos 😊
every time this channel uploads i get excited. i love these code dives on games you wouldn't immediately think about. we've beaten SMB1-3 to death, let's bring on dissecting the regrettable rentals we all made at Blockbuster
Lol more like Video Paradise for me. That was my 80s and 90s NES era rental store.
Same. It always feels like Christmas came early every time I see the notification.
I've heard some people mention that the cane can also be used to diffuse the bombs (by hitting the wick), I've never played the game to say if that's true though, haha...
Man, this is one of the best UA-cam channels. I can’t thank you enough for sharing your knowledge.
I'd love for you to go into detail about how the Supersonic Jekyll causes memory underruns due to oversped scrolling.
Displaced Gamers made a video about a similar bug in Castlevania. You might want to check that out.
"'Supersonic Jekyll causes memory underruns" is a sentence I didn't know needed to be said until now.
@@LonelySpaceDetective That's what we're here for brother
Oh good grief, Jekyll is hitting _ludicrous speed_ in that outro sequence! D:
Even though it breaks a lot of things, it was satisfying to see!
This dude is brilliant. He knows his shit
This is the perfect companion channel to the excellent "Retro game Mechanics Explained" if you're into retro games, their code and their quirks.
The nerd needs to see this.
An interesting mechanic with the bombs in that running to the left means the bomb will knock you out of range if you get caught. Running to the right basically guarantees full damage if you get caught. Might be why the damage range to the right is shorter.
ok this last change the code looks actually awesome, it's v cool to have a notion on how this game loads in VRAM by seeing it... Not being able to load properly due to speedy scrolling
Aww I was hopeing you were gonna make the cane not useless.
But i doubt the jekyll sprites had collision and that would have been some massive reprogramming. So i get why not, but still would have been cool.
Awesome video. Whenever a new video comes out I always make sure to take time to pay 100% attention. Some videos I just let play in the background, not these. Thanks !
When I was watching the AVGN followup last week I actually thought for a moment he was going to call on you in the episode.
Ha!
You're assuming he already knows about this channel, which he may not.
So that's why the bombs do varying amounts of damage. They have a big damage area that lingers for 15 frames, and you take damage every frame you're inside it.
If you try to run back left away from the bomb but don't make it, you'll get sent flying left and out of danger so you won't take much damage. If you try to run right past it but don't make it, you'll be bounced left back into the danger zone and take maximum damage...
You press the bee button to attack bees. Seems reasonable to me.
AVGN would be proud of this dissection.
3:00 that startled me cus I was standing 😆
Ha!
yeah honestly this game is so close to being decent. it's a game that absolutely deserves a remake or reimagining. a jekyll/hyde game where you can only get the good ending if you manage to balance good/evil is such a good idea imo.
Another awesome episode!! Would be cool to make a Game Genie code to damage all enemies with that useless cane 😂😂
Are you familiar with the Famicom exclusive Sweet Home? There's a super crazy glitch that breaks the game in multiple ways, such as moving at 2x speed. I've even done some speedruns using it. I know how to do the glitch, but I'd love a technical explanation of exactly what is happening.
I know of it, but I haven't investigated it. Moving at 2x speed sounds... interesting.
Babe wake up, new Displaced Gamers just dropped
I would add paralax scrolling. I think it can be done when the foreground moving twice the speed of the midground Hyde is on and the background moving half that.
the NES only has 1 background layer. there is no foreground and background, just one background
Nice.. I was waiting for another DG video!
But running would be too unseemly for a proper gentleman such as Dr. Jekyll.
I love this channel
Running increasing the stress meter would probably make sense.
Perfect.
Fantastic! Glad you pointed out the genius behind the concept.
It really is a good day when a new DG video comes out.
y'know, i was gonna comment on that recent avgn vid something along the lines of "welp, can't wait for the behind the code followup vid!"
i should've known to commit to the bit
16:10 "This method of programming is what we call..." ...Terrible? "...Absolutely terrible." Ah, right, I forgot to account for making negative values still count toward the same direction.
Very enjoyable video, as always.
Do an isometric game, like Racing Destruction Set on the C64 or something like that. I'm curious how they went about programming the movement regarding the slopes and whatnot. Same with Marble Madness! Your vids are awesome
I live when a new BTC video cones up. I like the idea of using pixels regarding hit detection I don't know why it isn't implemented more with early games.
Also, I love how self reflecting this video is. The more you tinker with the code the more warped and horrendous the game becomes. As if you're turning the game into an NES version of Mr Hyde itself.
finally uploaded again. my will to live has been restored
I speedrun this game from time to time and have noticed on parts with too many sprites (mainly the final level) that game speedsup on its own about 300% for a duration until you turn into Hyde or you can wait it out. Any idea how this game does reverse slowdown from too many sprites.
banked bytes to get RNG? wild!
I love that in the first example, with bank 6, LDA RNG_1DF is used as RNG data.
I think AVGN said it best, if you want an example of a game that does nothing to explain its rules and boundaries, this is a great case study. Less RNG would probably help a lot, as I think its also a great showcase of randomness is not more fun as it leads to frustrating waits and enemy patterns that feel unfair. Reducing that would likely make the game much more playable.
Love your videos, always learn something interesting
:( I wish you made videos more often, but since your videos are so awesome I'm willing to wait.... You're awesome.
Thanks. It takes a long time to crank out each one of them.
I am super interested in why running into elevated ground with the increased walking speed causes the level to change. That's such an odd bug. Wonder if it's possible to trigger under normal circumstances?
Perhaps the end of the level check is implemented by an object that doesn't trigger the normal hit detection, so when Jekyll clips into it the level is ended. However the faster walking speed means that you clip into all solid objects, triggering the end of the level, which only checked to see if you were clipping into an object.
I'm thinking it's an out of bounds failsafe like how mario bros pushes you, if you're inside a block.
someone should 100% send this video to cinemassacre
There is always danger on the left
Yes. Everyone knows you never turn your back on a detonating bomb.
Using the games code itself for an rng seed is so nifty
Doing the lords work my friend!!!
amazing work as always, not a fan of these infamous nes games, but quite nice to fix some of those weird behaviours. Would you consider doing a video explaining how the scenes load in The last ninja games for C64 ? that was super advanced, and uses the same cpu as the NES
I have a C64, but I haven't messed with the emulators for it. Are they pretty good as far as debugging?
@@DisplacedGamers hey ! thanks for reading me legend ! yes, in fact they are very similar to NES ones in terms of showing raster position, audio debugging, sprites, etc. The most complete one is C64 65XE Debugger, you can see in real time all the memory and video working. I managed to reverse engineer Battleship and Tapper with it and no other emu. Let me know if I can give you more info or help in any way. And thanks again
I'd probably add some type of meter for Hyde that lets you know how close you are to getting out of the Hyde state or failing. And make the cane more useful.
that 8 pixel scrolling is great. Someone make a Rom and call it Jekyll and Hyde Turbo. I bet Mike Metai would live stream it
Great video! Has an original game developer ever commented on one of your videos about their work? This one especially I'd love to hear the background story to the development.
love your content!
With how much you know 650s Assembly, I bet you could make your own NES game lol
of course he can
"Let's double Jekyll's walking speed from 2 pixels to 4 pixels...." should NOT have to be followed with "This is the most reprogramming work I've done for Behind the Code so far."
Ha!
I would replace the music track with a faithful NES sound chip recreation of Men at Work's "Dr. Heckyll and Mr. Jive". That's it.
As an avid fan of the original novel and of the general concept of JnH, i can confirm that this game is about as well held together as the main man himself, which fittingly means it's on the constany verge of breaking down entirely
I unironically love this game and wouldn’t change a thing about it. Yeah it’s a bizarre, cryptic, frustrating, slow mindfuck that seems to actively have it out for the player but it’s such a unique and one of a kind game that tries something different; with a lot of genuinely cool symbolism and imagery. While changing some of the design to make it more “game-like” is a cool concept that would probably make it more accessible to others, I think it also takes away a lot of the game’s alien charm. That’s just my two cents at least
If you wanted to do a stamina mechanic for running, the Stress meter sounds like a perfect candidate. Slowly drop the meter from J(ekyll) to H(yde) the more the run is relied on.
Excellent explanation.
Glad you understood it man
This is the kind of game (and analysis) that makes me want to create a more competent clone of it. As you said, the idea for the game is brilliant, and it's a shame that such poor execution meant that nobody has attempted something like this again.
I never heard of this game, but conceptually I think it's brilliant. Too bad they didn't get the balancing right.
Very interesting channel. Glad I checked it out. I wish you would do the SNES game of Lord of the Rings. I feel that game has the potential to be great, if fixed.
Now let's see you dissect Clash at Demonhead, I want to know if it's possible to beat the demon without the Sword of Apollo. You die in one hit during that boss fight so let's see if you can reprogram it where it can be beaten.
What if an added run mechanic adds to Jekylls stress? So yeah you can outrun a bomb to dodge a big stress hit but run too much and you still turn into Hyde?
Given that the Hyde portions of the game are auto-scrolling with automatic death if Hyde gets too close to Jekyll that would make the Run function too dangerous to actually use since stress can change so dramatically due to just one bomb blast (and the bombs are relentlessly being placed). Plus there would always be the issue of having only a little stress to go and accidentally hitting the run button. The only way I can see that possibly working is if there was a delay before stress started changing.
Better to have a separate stamina better. Someone else mentioned Clocktower 1 and yeah I totally understand. In that game Jennifer's health and stamina are the same value and she too is slow-moving so there's always an impetus to run. You can stop and rest but this requires you to stop and its rather slow and cumbersome. There's a reason later games in the series have health and stamina as different values.
@@ladyabaxa great reference to another game with a mechanic like this. Thanks!
2:32 I don't understand what he means the by increment the sprites x position in RAM? Does he mean that each sprite has an address in RAM to store its x position, dont all NES sprites have that data for sprites? How's this different from say how SMB draws mario at a certain position. doesn't SMB update the sprites' position data to draw him at the correct location?
I think it was a general explanation for how that was done, not specific for this game
I love these videos
Great video! You truly have content unlike anything else on this platform, and it's amazing! Also quick question, I wanted to try out dissecting games, and I was wondering what program do you use to see all the machine code and the sprites in the ROM?
Thanks! I use an emulator called Mesen.
@@DisplacedGamers Thank you! This is more than what I was looking for!
great video!
I am curious how you make videos of the game and change things (like moving a piece of the player character, putting it somewhere else on the screen), then continue walking.
Is this an emulator, decompiled code of the original game, or how does this work?
The emulator translates the machine code into assembly and lets you debug it. I figure out what the code does, label and comment it, and then make changes from there.
What about making his cane attack work on more enemies? Being able to poke the spider would be very helpful!
The video mentions that Jekyll doesn't move every frame. Would it possible to speed him up by moving him 2 pixels every frame?
Since he isn't programmed to move each frame even when holding a direction on the d-pad, it is likely that the game uses a frame counter in order to split game logic across specific frames - i.e. "move jekyll on this frame, do collision detection on this other frame, handle enemy actions and spawning on this one other frame."
My gut says it would break the game even more than the method I used, but we'd have to try it to find out.
This game does have potential
another janky game you should look into if you have a chance is hydlide. theres probably so much goofy shit in the inner workings of that game lol
great video as always!
Now Jekyll is the fastest thing alive.