Unlocking the Secrets of my Favorite Childhood Game.
Вставка
- Опубліковано 6 вер 2024
- When I was a kid, I was horrible at video games. So, I hacked Aladdin for the Super Nintendo (SNES), got infinite apples for Aladdain, infinite hearts and finally defeated Jafar. The way I did this was through assembly, hacking, reverse engineering and a little bit of passion. Watch the end for a special treat ;)
🏫 COURSES 🏫
Learn to code like the pros at lowlevel.academy
🔥🔥🔥 SOCIALS 🔥🔥🔥
Low Level Merch!: lowlevel.store/
Follow me on Twitter: / lowleveltweets
Follow me on Twitch: / lowlevellearning
Join me on Discord!: / discord
If the goal is to p0wn Jafar, you should have hacked his health to 1 by tracking the reduction of his health after hitting him.
Jafar has two boss fights. Human Jafar's health is at $7E0B6C. Snake Jafar uses $7E0C0C
@@InsaneFirebat When the boss talks shit to you so instead of his IP address, you name his health address 💀😂
Keep in mind that this dude just spent all this time doing what is essentially the same shit a game shark/game genie cartridge does, just to teach us about reverse engineering. Mad respect.
and cheat engine for windows :D
I did the same thing as a kid with Prince of Persia 2. I printed out saved games files on a dot matrix printer using Norton Commander. Was able to find where levels, time, level and player spirits could be changed.
I was only years later I learnt that Norton Commander Hex-Editor had a diff function so I did not need to do it manually.
Think was one of the first steps to me now working in IT and IT Security.
what? thats a very standard technique that you apply to using a hex editor anyways. also, its not about how much memory the game has, its missing a battery rather. totally different concept.
My thoughts exactly xD
I tried this game on Game Genie and it always stuck on a black screen after the code screen, even if no codes were entered. I think it’s one of those games with extra security because Nintendo didn’t like Game Genie, and eventually GameShark on N64 if you’re familiar with how it permanently makes DK64 cartridges a pain to play.
I remember, as a kid, we played this game to death. We even got the special credits that happen if you collect all 70 Red Gems scattered throughout the game (10 per stage), which MUST be done in a single session because they aren't encoded into your level password.
cuz the password dont encode anything
Man, that sucks.
Though memory limitations were a real thing in those days.
You got lucky here, as most games that used passwords did not, in fact, keep a list of valid passwords. Instead, the passwords were actually directly related to flags such as boss kills, items you owned, and where in the game you were. The easiest example of this I can think if is Faxandu (and Metroid) where you're effectively programming the ram with your desired weapons, magic, armor, usable items, starting gold, exp level (which is what actually determined your starting gold), and starting location. AFIAK, most games actually did it that way, instead of the way Aladdin seems to have gone, and many of them had a checksum as part of the password, and that in and of itself was what determined if the password was valid.
Exactly. I was wonder that as well. Which brings up the question: Did Mega Man 2 work that way as well?
Ever seen how people speedrun Earthbound? Their position in the level and combination of movement inputs will determine what RNG table is called (I'm butchering the terminology) so you can use your inputs to produce predictable glitches.
I'd say it's not quite luck. The short nature of the passwords and the fact that the password for the next level always seems to be the same suggests a table.
I remember when i was kid i would do that on Road Rash, i think the third one, from Mega-Drive, and it would change the amount of money i had, or something like this. So i would keep changing it in hopes for the better, lol...
@@darpmosh6601I can't remember 2, but I know 3 did as they had a grid with red dots and I actually cracked that on paper. Luckily it was a very basic pattern.
It wasn't that they didn't have a lot of space to save your save game (though technically a true statement, when they did); it was that the save games were stored in battery backed-up RAM in the cartridge. It was far cheaper to exclude the battery and RAM leaving just the game ROM in the cart.
This applies to console games. But there were also PC games that had this kind of store the level progress in the form of a password that you could write down.
One example is Historyline: 1914-1918. If I'm not mistaken, Lemmings was also such a game where you could unlock or jump to further levels by entering passwords.
@@OpenGL4ever Mainly because hard drives were a luxury at the time and likely was running the game on a floppy disk, and kinda don't want to modify your game disk just to store saves.
@@davidmcgill1000 When these two games were released hard-drives were already common on PCs. And another possibility was to just use extra floppies as savegame disk. Many games used the latter option.
Yeah. The funny thing is, if this game had a save file that corresponded to its password system, the save file would literally only need to be 3 bits in size (there are only 8 possible stages you can start from).
But you are right, just having the battery was the general bottleneck for games of this era. This game’s extremely simple save state certainly didn’t justify the extra cost.
This brings so many memories. As a kid I never went past the second level , I was 5
Game was SO hard
@@LowLevelLearning I had the genisis version it had a code to skip levels
Why do people suck at this game? It's not hard at all.
Doesn't the '0x10' mean 16 in decimal? It even says so in the debugger. Shouldn't it have been 0x0A?
I was looking for this comment (1min30 into the video), unless it's encoded in BCD
Yeah, LLL isn't the best resource
No. Hex goes like this: 01 02 03 04 … 09 where 09 hex = 9 int 0A is 10, 0A- 0F = 10-15 as seen bc FF is 255, (15*15). So 10 hex is 16
@@speedrunme1943 what's the no for? that's exactly what they said
@@SadKris 😂😂😂😂😂😂
In school years I played around games memory patching. Which leads me to an engineering position later in life. Unfortunately every time you do this game doesn’t feel fun anymore. There many ways to hack a game, adding items in level editor, patching saves, patching textures, so on. The coolest one I did was Mac program for Baldurs Gate 2 which reads the screen and throwing dices during character creation.
It wasn't about room to save a game in the 90's, it was the added expense of adding battery backed SRAM chips to the cartridge vs password systems in software.
Very cool! :)
For anyone who wants more like this there's an excellent mini-series from Double Fine productions where Brandon Dillon hacks Zelda 1 from the NES and writes his custom ROM image back to a modified cartridge so they can play his mod on original hardware. The first video in the 4-part series is called: "Devs Play" S01E04 - Legend of Zelda (Part 1: Explorer's Club)
Nothing delights Jafar more than knowing you had to cheat to beat him
This was super interesting to watch as a fan of these old games. Great video fam!
YO! sup man thanks for watching :)
I have a lot of these old skool game hacking videos
This was one of the fastest games that my brother and I beat. I'm a little baffled that you never beat this
It was literally the game that I’d play if I just wanted to beat a fun game really quick, and I am/was far from an elite gamer, like I think it took me two years to beat Zelda: LttP. I was born in 87 so maybe I was a little older?
@@6maniac6metal6 You're a year younger than I, and my brother has 3 years on me. Goes to show how easy the game is. LttP was a little cryptic for me in some parts so it makes sense. Not everyone had the right issue of Nintendo Power to figure it all out. 😄
A reverse engineering tutorial using the tools you use for this video, would be awesome. Not necessary to be a snes game but something to begin with.
Agreed!
Definitely agreed! :)
Yep, I would love to see how you see the binary streaming while playing the game.
@@makerbit3970 I'm pretty sure he's using a tool called Cheat Engine
Just download an emulator with a debugger. Load the rom and pause it mid game, open the debugger, search for the value, edit it and resume play. Not to be a dick but anybody has been able to do this for over 20 years and a super simple Google search would have shown you how.
Reminds me of the French TAS I did on Family Feud for the SNES. The answers are stored in memory as string and sorted by most popular to less popular (except for fast money). The strings also contains capital letters and lowercase. When you answer, the game will look only for the order of the capital letters and, if your answer has the correct order, you can pretty answer something stupid and it will work.
Oh hey, I did the English TAS of that!
This video has taught me something very important: my sense of fairness outweighs my intellectual curiosity, thus despite being a software engineer, my solution to the Aladdin conundrum would've always been to get good and beat the game fairly instead of busting out Cheat Engine at al.
If you had difficulty with the SNES Aladdin, all I can say is, be prepared for the Genesis version. It's 10 times harder. That one will take a lot more hacking. No passwords or progress saving there. Getting to the end without a game over is required.
done this like around 30 years ago.. lmao.. and the Aladdin was one of the easiest game to hack ..good times also other games like, duke nukem, Cyberia, Full throttle, Phatasmagoria..etc... omg such a good times I remembered here :D thanks for this vid.!!
Isn't it awfully nice to be running in an emulator with live debugging tools? Thanks for confirming that it's probably impossible to get that far without making some changes.
what tools is he using? this sounds fun and i wanna get into it. any advice please?
@@css2165 He is using a fork of bsnes, called bsnes plus
@@undefined06855 thank you
@@undefined06855 thank you
This is basically how the game genie worked back in the 90s
Game hacking is one of the best learning resources, Ty for uploading content!!!
"Hacker": 0x10 - 1 == 0x9
Me: Huh?
Cool! This is so much easier/faster using an emulator! i did something similar in the late 90's on a playstation 1, but, on bare metal. My brother was obsessed with the new southpark rally game, and wanted to unlock everything, there were no "cheat codes" available at the time; the "cheat codes" were memory address:value pairs. I used an action replay card to connect the psx to a PC running a remote debugger. It was a bit time-consuming to have to reboot the game off the CD every time it crashed, but I got there in the end. Process: unlocked one car new track and did a save game. Reboot the playstation, took memory dump before and after the previous saved game loaded, checked the diffs and found the memory locations and values. A bit of fuzzing and unlocked everything :-).
wait so you are telling me that you never, NEVER could beat aladdin from SNES? really? i actually could pass it like for ever
7:21 "How many lifes do you have? Jesus!" - the guy who literally cheated to have infinite lifes hahahaha
Ohh, man. You've just brought back memories. I had Aladdin on Sega Genesis and the level where you're escaping the collapsing cave on the magic carpet comes to mind. Glad somebody else is talking about old Aladdin video games, despite your troubles lol
I'm pretty sure it's easier and faster to beat the game with infinite lives and apples than it is to reverse engineer the password system to levelskip to the end
I grew up playing Aladdin on the SNES and the only level that truly gave me any trouble was the escape from the Cave of Wonders, those lava waves are brutal, but I did overcome it in the end. What I *THOUIGHT* the video was about was hacking Aladdin on the Genesis to end the insanity because that game is bullshit hard from cover to cover
Definitely had trouble with this game as a kid, but I was able to beat it normally a few years ago. The hitboxes for grabbing ledges etc are kinda janky but once you get used to them it’s doable. Lion king though… that game is still as impossible as ever lol.
next video
Man, that takes me back to my teenage years, hacking infinite lives or invulnerability into games on my C=64. That really honed my skills at debugging other people's code.
infinite apples, Time warp (to last stage), and immortal. You have used your three wishes. Pray that you do not regret these decisions.
Man's just found out how to use Cheat Engine
lol that's what I was thinking
I went and learned the game and beat it legit.
Seeing someone hack a game to win doesn't impress me anymore.
Seeing someone beat a game legit impresses me now.
This is pretty much how the old game genie worked back in the day. You would scan memory for values, then change the value in game to deduct which your looking for
Yeah the search was wild. Doing it on the Gameboy was so much fun. It's fun when you realize the codes were usually just a combination of the memory address and the value. If you set the value, it'd lock the value. If you set then cleared it, it would set the value and return it to writeable status.
I couldn't for the life of me figure out how you were losing to Jafar and then I realized, "he isn't using the towel" and/or "he doesn't have the towel?", or maybe it's a sheet? Aladdin uses it in the movie as a parachute in the one jump ahead song IIRC, and in the game it's a permanent upgrade you get in level 1 or 2. You only have one chance to get it, but once you have it, this becomes literally the easiest game on the SNES. It let's you hold R (maybe L? I can't remember, it's been years man), but it let's you hold a shoulder button to hover in the air for a bit. Makes the platforming infinitely easier, and the Jafar battle a breeze. Give it a try, your inner child will thank you. ✌️
What about for the Genesis version? I've never found the towel and never gotten past level two because this game was so hard.
If there's an inventory upgrade, I would expect that it would need to be reflected in the password. Yet he found the passwords in a table. I wonder how the game keeps track of whether you got it.
Or do you always get it after a certain level?
I have several of these game hacking videos and what you see me do is actually change the code where I overwrite the byte(s) that subtract lives or change it into adding 1 (which you can still die) or do a complete hack hook; Which I had to do in getting to the kill screen of pacman video.
Man, I vividly remember getting my butt kicked by this game constantly when I was a kid. I'd spend hours trying to beat it, and as far as I recall, I eventually returned the cartridge to my friend (we used to swap SNES games a lot back in the day). Watching you kick the game's ass like you did... it's just gorgeous.
That bit at 2:00 had my sides in stitches
I followed this exact process as a 10 year old using game shark. I had no idea little me was a hacker.
I wish I had this kind of info when I was a kid. Companies made third party tools for Nintendo and I remember GameShark was one of the most popular ones for Pokemon on the GBC/GBA.
Good times
I had a lot of fun using the gameshark pro. The "debugger" was built into it, but if you instead connected it to your PC with a parallel port you could use provided software and it allowed you to do tons of crazy stuff. Not only run the cheat engine but you could take screenshot, backup and restore save data, and even dump ROM. (you could also update the GS firmware and save/restore your codes list).
Nobody liked me because I could lock and unlock doors in multiplayer with controller combinations in Goldeneye, and there was a comprehensive guide that explained how make those.
I'll have you know I beat Aladdin and Lion King as a kid.
Tried on a sim a few years back, didn't even beat 4 stages even with saves.
I ran through this doing no damage runs at like 6.
I used to do a Lion king, Aladdin into all SMB games in a row as a kid.
Was it amazingly fast and good? no but easily beatable.
Glad to find this channel, you are hilarious and explain your thoughts well, thank you for creating!
Thanks for watching!
I really like to see this kind of hacks. Of course your not gaming related are also interesting, but the (single player) gaming hack is somehow more relaxing to watch than a real life threat.
Can you please show the process of this? Like how you got to edit memory for an emulated game (im assuming its emulated). And I can only assume the mem addresses were constant so you didnt need to do any pointer maps or anything like modern games require ( due to OS paging etc ). If possible, could you show in depth videos on how to hack more modern games (non multiplayer titles) cos I really want to get better at it but i only ever get as far as finding a value in current memory and then changing it and then losing the address when the game reloads (cant find the pointer offset)
He has a link to his twitch channel in the description which has the full 2 hour version of SNES hacking.
0:55 Isn´t that basicly what the Action Replay modules did back in the 16-bit era?
The fact that you didn't do any ASM hacking made me die a little inside.
I am a Software Developer and a Ethical Hacker in my hobbies, I LOVE SO HARD when you make videos like that. Hacking is way cooler. I doubt AIs take over that field
That's so good! Thanks for that. I also watched the baby monitor videos
That last boss looks super easy. I used to play this game, but never played it much. I really liked the Lion King on either SNES or Genesis, I forget, but I think they're different games but not sure. I liked the one most people considered better though, I remember that.
Hahaha the last hack should have been YOU flying with Jazmin, not Aladdin.
That looks like a 16-bit int for the hearts in LSB which would make that 64k hearts...but I might be mistaken.
1:03 Saying 10 (decimal) and then showing 10 (hexadecimal) really, really grinds my gears. I like your channel, please don't do that. I **know** you know the difference and so do your viewers.
Man, I can't remember how often I speedran this game as an 10 year old. I only had 3 SNES games. Aladdin, Yoshi's Island, and Mario Paint. I also had Mega Man X for about a day until my dad saw that it involves me shooting people with a gun, so he returned it to the store. So, endless Aladdin and Yoshi's Island speedruns it was! Thanks for the interesting video that also induced a bunch of nostalgia!
Also: I literally never realized what the pass code screen was! I always started from the beginning and had to play until the end! Thanks to you I finally realized what this weird screen was supposed to do. LOL
Reminds me of the game genie. Exactly how I used to find the infinite lives and ammo numbers. It allowed for searching for number in the hex after each death or weapon use. Great vid!!
The programmer in me:
Impressive
The gamer in me:
Pathetic
I remember doing this with an emulator back in high school. Taught my other classmates who played on it during class too. While they apply simple hacks like infinite health and ammo, I was like "that's small time now" and doing things like infinite stun timer that made me intangible to enemies and invulnerable to instant death spikes in Mega Man X, and always fully charged which lets me fire off charged weapons instantly dealing massive DPS. Fun times! Now I work in the game industry.
Wow
This is a great video! Although I've played the same game on Sega Mega and on PC, but it's a bit different. First level almost looks equivalent, but the last one is definitely not against the big snake.
It's probably a different game.
Awesome video! Thanks.
they were made by different companies. the snes was made by Capcom whereas the other versions were made by Virgin
Veni, vedi, feeli... Awesome! Childhood memories reloaded. I never made it further than the point where you fly away from the lava.
this was one of my favorite games growing up too. I couldn't beat it either. 🍻to you beating it mate.
So much effort to figure out the password system, when you could have just searched for a RAM address that increased when you advance to the next level. Poke that address to some higher number and boom, after finishing level 1 you get put to level 9 for example.
It is very easy to hack all games if you have an Amiga 500 game console and Action Replay MK-III cartridge 😊 Good old times !!
Classic
lol, REALLY!? Me and my brother got Aladdin and we beat the game in the first 2 hours - I remember being massively disappointed. 😅
Lust for money, and lust for robux. My whole personality in one sentence.
"Did u find the milk yet?" nice one
I remember seeing some kids finishing this game, they were revered like gods on Earth.
I might be remembering it wrong as a kid but I thought SNES Alladin wasn't that hard I thought I beat it using only like 1 or 2 continues ( I was probably 7 or 8), but SNES Lion King that game is fuckin brutal.
I actually owned this game as a kid. I remember beaten it start to finish dozens of times.
I just used snes mini and its save state functionality and rewind
This reminds me of using a GAME Genie for Sega Genesis. They had a tool for creating your own codes that used a similar system
Used this techinique a lot like a decade ago but then I got into software where you can't just simply modify memory directly from outside so I had to change the actual code e.g. in this case changing the actual rom to never subtract any hearts instead of just setting the value from outside.
Genuinely good explanations & visualisations for a topic scary to many people! A wonderful introduction to get hooked on this technical stuff!
A better approach to the health problem would be to simply attach the debugger and find out what writes to the currentHP value and just replace it with the snes equivalent of NOP (no operation).
We used to play with ArtMoney application in order to mess with application memory in RF when I was a kid.
Back in the day, my gameshark on gameboy had an option to create cheats yourself which involved starting the game, changing only the value you wanted to edit (ex throw an apple, gain a life, etc) and then pressing a button on the gameshark. I assume this attempted to inspect memory to see what changed and try to tell you the address. Pretty neat.
over at retoachievements this is basically how we ram dig to make achievements for old games
Aladdin on the SNES is my favourite game too!!!
1:10 My man, with the manual cheat engine tactics
This takes me back to my childhood. The memory hacking, not the game.
This was one of the first games I ever beat. The carpet ride through the Cave of Wonders was so stressful it gave me hives no bs.
This is one of the better hacking videos.
Now if you could show how to cross refrence values, set breakpoints when an address is accessed, and how to nop the instructions which allow death you can obtain true immortality.
It would be fun if the OG Deck ended up more powerful than the OLED.
I'm disappointed that devs had a password system implemented and not a single secret password with some fun wacky stuff.
As a kid i was so good at this game that the other kids in the neighborhood hanged around in my house to watch me defeat jafar and i ended up being a psychologist, maybe being good or bad at this game determines if you're gonna be a programmer or not 😅😅😅
Thank you for the casual remider how much i hate hearing 'Lets go'
Reminds me of the time I made a zero-day cheat for Pokemon Silver to catch shiny pokemon. It was fun.
a game that appears unbeatable to me is ActRaiser on the SNES, some maps don't have enough time to even reach the end even if you were to perfectly platform and had no monsters... but then again i read reviews of people beating it... i wonder if there is multiple versions of the game... anyhow the rental version is gone and i tried to beat is on emulator and it was the same... had to cheat infinite time to do some levels! (the character walks too slow.)
Back in those days, we had true hackers and super wildcard or profighter units. Those hackers made intros where you could have infinite lives, apples, choose your level directly ingame on your snes, no need for a computer and emulator
7:43 all you have to do is sit back, relax, and... inject yourself into the cheesy ending.
You can save lots of time, if you do this with cheat engine. (work on most of single player games) even on old games.
Paraphrasing raziel at Avernus catedral 😂
SNES Aladdin is the game of my childhood 😭
I haven't played that game in a long time, though my version was for the Genesis. I would definitely like to see you do a series on making a game for an old system like the NES or SNES. Even though I was a Genesis kid I think the 6502 would be a lot easier to program for than the m68k.
Beating Aladdin on the sgen was the first great accomplishment of my life that took half a school year to do. Might still be where I peaked in life 😂
I also do the same kind of cheats with ps4, editing the memory values, the easy stuff were infinite money as your just going to search it from memory. Doing infinite lives can be easy or hard to do, if iy relies on value sure easy stuff but if its not you basically have to do assembly and basically disable a instruction responsible for increasing/decreasing life.
Awesome video! Been doing the same thing with an old sega rpg Buck Rogers Countdown to Doomsday, found the level select code and was super pumped to find a test level left in by the devs where you can choose what types of enemies to fight and with what equipment etc
This is gitting gud to avoid gitting gud as much as possible.
That reminds me of how I created my own Gameshark codes back then
So I guess this doesn't work like Game Genie. They would set a value in memory to a fixed number. That's how infinite lives or item codes worked--the counter logic could never actually decrement the memory value.
I guess the equivalent for you would have been to find the logic that actually decrements the value and turn it into a no-op. That would truly make it infinite, instead of just a high number.
I just recently bought one of those little Chinese handhelds and it includes this game, I had one go and thought ‘Narp’, what were they thinking to make it so insanely tough?
Great video! One other idea instead of giving you 0/255 hearts is to remove the subtraction command that will cause you to lose lifes when hit :)