I always thought there was a little genie that traveled into the cartridge, and he flipped some switches and turned some knobs on the computer chips...
What I always wanted to know is: How did it work on an NES without physically being able to push the cartridge down in? If you just have an NES game, and you push it in but not down, it absolutely won't play. The game genie made that connection not only possible, but sometimes IMPROVED as a connection. Many were the times I would not even put in a code, but just connect the Game Genie in order to get a stubborn game to work. It was very stable.
simple the PCB on the Game Genie is little bit thick then the regular game's PCB so they made an adapter with regular PCB thickness for the NES 2 (Top loader)
Still, you'd need quite the programing knowledge to be able to read the memory on any of those consoles, read the assembly code and and make any sense out of it. I dont think "making it magical" would stop anyone with that knowledge as they could just as will read how the game genie decoded the codes and then make their own encoder and beyond that point its as if there was no magical code at all. It was either marketing retardedness, or someone was actually retarded. I can think of quite an easy way to make the required equipment for that with a few chips, and a 486 PC with DOS, and it should be able to dump the ram, the rom do single instructions and all, and all with things available in the early 90s and your could probably hook it into any console
As I said above, it made it harder for the user to generate their own codes through experimentation. But actually, the memory addresses might've been an issue too, recalling this article: www.eurogamer.net/articles/2016-09-24-game-genie-declassified-that-summer-i-played-230-game-boy-games
As someone who grew up with these devices, namely the NES, SNES and Genesis Game Genies, Thank you! I used to have notebooks full of codes for all my games which unfortunately I lost in a move years ago. Now that I'm old, this makes perfect sense as to why certain codes did not work. One of these days, I'll hook up the old systems and grab a notebook and start playing around with it again. The feeling of discovery when you found a working code was wonderful, and I'd love to get back into it. Great video!
I love these videos, the explanations are thorough and the diagrams are well done. That being said, I still have no idea what you're saying in any of them. If somebody had me watch this video and asked how the game genie works, I could probably tell them with great certainty: "it hijacks and modifies game code." which was exactly as much as I knew before watching the video 😅
RISC vs CISC doesn't refer to the format of the machine code, but the way in which the instruction set is designed to access and work with data. A RISC architecture is almost synonymous with the load-store paradigm, where memory must be accessed as either reads or writes with a register, whereas CISC is known for having an abundance of addressing modes, many times applying to the same fundamental operation. Furthermore, RISC machine code can have variable-length instructions, such as the V810 used in the Virtual Boy.
The funny thing is that you can do everything that game genie can do and more by using an emulator to write the game onto a CPU, or get the game's source code and run it with the program that was used to write the original game. You can then make changes to the code so that different things happen in the game just like game genie and run it on a computer. But that is basically all game genie is. It is just tweaking the game's source code so that something different will happen, albeit without your typical CPU. But you may as well say that the system itself is the CPU.
Yeah, frustrating to day the least. It got overly technical very fast, and skipped the ROM/RAM basics which are necessary prerequisites to understand how the Game Genie works. Look up "create Game Genie codes", you'll get more hands-on explanations that way. I've just started learning myself. Good luck
I combined two codes for Super Mario Bros. out of the Enclosed Instruction Book(tm), and it made Mario turn small when he got a Fire Flower, still Fire Mario-colored, and turning big for a half-second when he threw a fireball. He may or may not have also been impervious to losing the power.
Can't wait for the Game Shark episode, I've seen some of the weirdest glitching when cheats are enabled from it! Really interesting to see what can be done with a Game Genie for arbitrary code execution, completely rewriting a game from scratch, almost creepy to see SMW turn into Flappy Bird.
I'm an electrical engineer and I have to ask...how/where the heck did you learn all of this and where can we dig more into it too? Awesome channel and excellent videos!
Start with the language C and the reverse engineer little programs you make in assembly (it'll probably be x86_64) the cpu's instruction set and stack protection will be different (they didn't have stack protection then or not in the same sense as today) but the concept will be the same. As it is for all devices from cell phones, routers, smart tvs, the apple 1, every video game console ever invented and 99.9% of all devices with a processor period. If you would like to know more on the subject just Google information on x86_64 assembly. It will be pretty hard to understand at first which is why I recommend starting with C and then going down to asm. If you already have a grasp on programming especially complied and not interpreted programming then you may be able to switch to just learning asm without a ton of difficulty but it's so close to the actual hardware it's not very easy for a human to read it. At all. But it is possible and many of us do. I develop buffer overflows and rce's which requires me to know assembly (for the modern desktop computer aka mainly x86_64). The entire reason I watched this video was because it was in my recommendations and I wanted to see if my hypothesis on it was correct. It was close, not entirely I didn't know they had any sort of changing of addresses back then. Hopefully this helps.
@@n111254789 The code that is stored on the cartridge chips in Nintendo games is read-only to prevent corruption, so I don't know how even the game genie is able to skirt around this. If this were possible by any means, then a person could easily make unlimited changes to the game using a computer if they can transfer ROM files onto a computer from a game cartridge because this allows you to make changes to the code. I don't know how anyone could get the cartridge contents onto a computer though without using an illegal emulator, especially back in the days before computers were mainstream. But if you can then you could change what happens in the game without the limits imposed by game genie. I assume that you could even possibly run the game on a computer too using C or C++ platform which is probably how people on youtube create TAS content.
@@wrestlerx8494 The Game Genie skirts around the "read-only" limitation because it does not attempt to write to the cartridge. It intercepts the data signals between the cart and console and sends its own signals based on the codes that the player put in. As an aside, there is no such thing as "illegal emulation"; it's the ROMs that are protected under copyright, not the console BIOS, and even then you are allowed to make a backup copy of the ROM as long as you don't distribute it to others. (There may be other caveats, though. I'm no legal expert.)
@@spritemeister SpriteMeister OK I did not know that it was legal to use an emulator even if you were just copying the game for yourself. There is an article on Wikipedia that talks about emulators that were used to write the ROM source code for cartridge-based games such as SNES games onto a computer, then the code could be used to reproduce the game and make copies. But these emulators were said to be illegal to own or use, and in fact with the game cube the game disks were purposely made in such a way that a computer disk drive could not read them to prevent piracy. This seems to suggest that they didn't want anyone to copy games even just to use without the intent to distribute them. Another thing is that most early games (NES, SNES) did not have stack protection in the source code at the time they were made since it was not used then. I don't know if this would affect the ability to "rewrite" the game using a modern version of C/C++, but chances are that any ROM code that you get from an original cartridge using an emulator might not run in a modern version of C. I know that there is a website with open source code for the NES version of SMB and you can run the code in C, but I have not tried doing this and I don't know if it works. I do know that the code can be used for TAS speed runs, as this was explained in another video.
Dude, you have talent! I can only imagine how much work went into these animations themselves not to even mention research needed for such topic. Soilid thumb up right there!
The English "Genie" is derived from the Arabian word "Jinni" of "Djinni" which are supernatural creatures capable of manipulating reality, like the Genie from Aladdin.
Dargonhuman Actually they are believed to be paranormal beings in Islamic culture that are somewhat like a species that live and do not interfere with human beings (mostly), is what the idea was inspired by.
i hope you'll do a video explaining in depth how action replay worked; that was what i had as a kid and i was so fascinated with it, i used it on pokemon pearl all the time i remember picking up some patterns in the hexadecimal code (iirc pearl codes always started with the same 16 bytes or something...) and always wondered what exactly the values meant
This video reminded me that I used to have a GG for GB. I'd completely forgotten about it for I don't even know how long (several years at least). I don't remember what games I used it for, though. Also I did remember using a GG for SNES (I always liked just putting in random codes just to see what would happen. Usually nothing, sometimes weird things like Flashing Negative Rainbow Mario), but I can't remember if I actually owned it or if I just borrowed the one my brother's friends had.
M68000 uses a reduced set of instructions??? I have my doubts... RISC is not only defined by ortogonality of the instruction set, but it depends on a number of characteristics that I think M68000 haven't. By the way: great, great video and content. I don't lose any of your episodes... Thank you!!
Even as a kid I had a fairly decent idea of how this thing worked. I knew it couldn’t have just been pre-programmed with codes since the code book actually *encouraged* experimentation and a lot of those experiments did horrible, eldritch things to the game. I even picked up patterns in, e.g. infinite lives codes after a while w.r.t. which letters give you how many lives. So that just made it more fascinating to me as I was amazed the thing could somehow hit the same data with the same exact code every time.
I first got my nes when I was 5. I got my game Genie I think at 7. I think I vaguely remember learning certain patterns in the codes and playing around with it. But dang that was over 30 years ago
I still think the marketing for Game Genie was pretty fucking brilliant. It's basically a primitive hardware version of Cheat Engine -- just a memory address editor -- but they encrypted everything into "codes" to obfuscate what was really going on and to sell code books. It wasn't until the days of the PS1 GameShark and PC emulators that I learned how these "codes" really work and started learning how to find and edit memory addresses on my own.
Great video! The only thing I would add, for those too young to remember or who have never encountered a Game Genie, you didn't have to know any of this to just sit down and type in random codes to see what they did! I'm sure most people watching an explanation video already knew this, but mentioning it just in case.
If you had the game's source code, you could also determine what codes to enter to make specific changes through a trial and error method. This can be done with computers today.
3:48 I hate the designer that thought this was okay. You already encoded your bits with a custom character set, and it wasn't enough to merely shuffle around the nibbles/bytes, no, you had to shuffle the bits themselves. Insane to try and come up with a game genie code from scratch
Please do a GameShark explained video, I know the codes on that are much simpler and correspond much more closely to actual RAM values. The GBC GameShark actually taught me how Hex editing worked!
PS2 Action replac uses iirc disk swapping to arive at the same conclussion... disk swapping wasnt even unheard of in PS2 games(one of the Dragonball games had it implemented officaly for example)
@@weberman173 Correct to an extent. Action Replay on PS2 loaded into RAM exactly like other systems, allowing you to then swap the disc to the game you wanted to play.
I used the Action Replay on SNES (which was more widespread in Germany, as someone else commented already). I'd love a video on that. One of the greatest mysteries of existence that have nagged me my entire life is why almost all its codes started with 7E.
Yeah, the difference is not really about RISC or CISC at all. It's just that the Z80 and 6502 used by most early consoles were very simple 8-bit microprocessors (and thus cheap enough to go in those early consoles and home computers), and had very short, often 8-bit instructions. The 68000, on the other hand, was a more complex 32-bit architecture that typically had much larger instructions as a result.
Ah, I made a mistake. From the few examples I looked at the architecture looked similar to MIPS, which I am familiar with being RISC. I see now that there are many instructions that can be several 16-bit words long.
I think it was just a brain fart to be honest. :) The 68000 can do more than an 8 bit, has longer operands etc so you need to mess with more data. I think a RISC machine would be a different problem though. You would need to mess with more instructions because the amount of work per instruction is less.
The 68000 may be considered CISC, but in truth it's more in the middle between the extremes that genuinely belong under the CISC and RISC labels. Although the 8086 itself wasn't quite as much of a CISC CPU as its current descendants are, the 68000 has a far simpler and more straightforward ISA. 68000 was chosen for Genesis and Apple's Macintosh and Lisa because of its simplicity and power, while Nintendo chose the 65816 for the SNES mostly because it is backward compatible with the 6502 (and, in terms of code execution, was very fast in its day).
>truth it's more in the middle between the >extremes that genuinely belong under the CISC and RISC labels. The original 68000 at least has many instructions that do multiple memory accesses and take multiple cycles to execute and other than the weird pre-fetch thing they aren't pipelined. I'd say that puts it right in the CISC camp.
Hey, you missed something minor in the NES example; with those lives codes, the T could also be a V (AAVOZE/PAVOZE), since the first bit of that letter is never read. And you never show us how to do a Game Boy/Gear code without a conditional check, though it would be pretty easy to remove the bits for that from the code, and presumably the rest would map the same way. Also, a lot of people seem to complain that you get technical too fast, and skip over explaining the basis of ROM and RAM to make everything else make sense. I don’t have a problem with it, but that’s because I already have a good grasp of it, so I can’t be the judge of that.
I just found this channel and while I don't fucking understand 90% of it, I love this channel and I'm jealous of how much you understand this stuff. Even though it would make NO difference in my life to get this stuff, like at all. It would be neat.
i still have my original NES game genie and manual. i used to spend hours writing new codes and finding out all kinds of weird stuff i could make games do. lots of fun lol
What's interesting, is that you can probably make a modern version of this, which doesn't sound very interesting at first, seeing as we have modern day mods, except that the game genie is essentially just a piece of hardware, and can make huge changes to the entire system, they're of course less useful back then when everything was stored on ROM, but now that lots of things are stored on RAM, you could probably do some really interesting things, as it would essentially be getting around some of the safety measures put in place by Windows. The way you'd make it is through the fact that you can plug in RAM extensions. If you had something to plug in that would do what the Game genie did, it could be very interesting. Of course, it'd also be less of a fun thing you can mess around with, since it could likely break the entire system due to everything being stored on RAM.
I actually dug up my Game Genie for my Genesis not too long ago. I found out that you could use it to play imported games without having to worry about the cartridge shape not matching.
Maybe in other videos, you could talk about famous codes like IKAAAE and why a code switch like 8080:4D so consistently screws up so many games so spectacularly?
Not that it really matters but the 68000 Processor family aren't RISC processors, they're CISC processors. I understand why, given your reasoning you believe it is though. The main giveaway is that instructions for the 68k have multiple addressing modes, and can work with differing word sizes. So for example if you want to add two numbers, your source can be either a data register, or it could be a memory address, or it could be a direct number, or even an address in the address register ; it's been a while, but I think the destination has to be either a memory address, a data register, or a memory register. Anyways, depending on which modes and the word sizes used you use your resulting instruction could be 1-3 words long (resulting in 1-3 cycles). One of the main factors or RISC is that every instruction must execute in a single cycle, so for example add instructions would have to be register to register, since you only need a couple bits to address them. Also the whole multiple modes for an instruction type goes against the whole reducing instructions philosophy. The reason the 6502 op codes are the way they are is because they've got an 8 bit data width, but a 16 bit address width. I don't know if that'd make it RISC or CISC; I dont know if that was really a consideration at that point. Anyways, none of this really detracts from your great video, it's just not often I get to talk about assembly and machine code. The 68k family just happens to be the one processor I've written a lot of code for in school.
@@karisasani7006 The source code for SMB can be found online, so just run the C or C++ program and copy/paste the code into the program. Then run the program. If you want different things to happen in the game, then all you have to do is change the code. For example you can change the code for goombas to a different set so that they don't appear in the game. This is mostly a trial and error process, as you have to determine what set of code controls the goombas and how to change it to eliminate them, but once you make the distinction it should be relatively easy.
I was trying to find a video that explained Action Replay and how such short codes could make such large changes to a game(I didn't find one), but found this interesting one I assume it works similarly
68000 is a CISC processor too, not RISC. And the instruction sets of 6502(NES) and 65C816(SNES) are actually simpler. But yes, 68000 uses 16-bit opcodes and 16-bit data bus while the SNES CPU uses 8-bit opcodes and 8-bit bus(this is probably why they named it 65816) and therefore one must substitute 16-bit values for the MD/Genesis.
On the Super Nintendo game genie I own which is a version 2 I can only seem to use only 1 code instead of 5 please help me how to use all 5 I’m trying to cheat on my games
Came here to learn.... Leaving here very confused... I hardly understood majority of it. I think Mario made a little sense... Didn't understand a word of the Genesis bit though. I don't think I'd be able to come up with my own codes anytime soon haha.
Welcome to the world of hacking, haha. It's not THAT hard. RAM is a loong ribbon of *EVERY* number (lives, score, coins, ...) a game remembers, each has its dedicated place called address. A cheat device can modify some of those, and game runs as if that is how it's supposed to be. To find such an address you can, for example: * start a level with 3 lives, * somehow get a copy of every number in the RAM at that point (requires a much more elaborate/expensive hacking device or just an emulator) * find all number that equals 3 * kill Mario, he now has 2 lives remaining * get another copy of the RAM * see which RAM addresses contain a number that was "3" last time, but now is "2" * repeat the process if you happen to find too many candidate addresses * by using a code table explained in the video we now can convert our address and a desired number of lives to a cheat-device code -- this may seem complicated but isn't; most likely there's a program that can do the conversion for you * input the code into the cheat device -- as long as it's active you have as many lives as you specified, no matter how many times Mario dies, because when game tries to read number of remaining lives it gets the number you specified instead -- that means your code works! And that is how you create a cheat code! There may be a lot of quirks with this kind of stuff, but it's not rocket science (unless you are trying to cheat Kerbal Space Program or something) One of PC versions of "game genie" is called "ArtMoney", you can find it on the internet. It has a convenient tool to create codes. You can try it with some old PC game. But don't try it on any online game, or you will be banned forever!
Very interesting i didn't know a lot of the information in the video. The only game shark i have used was one of the versions made for the PS1. I might pick a GS for an SNES. Thanks for the info!
what i always wondered is how they developed their codes in the first place. i guess they were able to monitor the values being read in, and maybe they could even set up a system to find specific values or increasing/decreasing values over time like you can in most emulators now. but i have a feeling their tools would have a lot less sophisticated, since they weren't starting with decades of experience and an entirely emulated console, lol.
You should do an episode on Action Replay and/or Gecko OS. GOS and every AR iteration works effectively the same, but I know little about the specifics
This is true, but with the correct source code you can achieve the same result with more or less characters. The codes for game genie were likely tested prior to it's release, but for what it's worth I will also say that I have had a number of codes that didn't work for whatever reason.
would be intresting to see a video (eventually) on the Gameshark/Action Replay. but given how long console generations it pasted barring into the Wii(then PS3/Xbox era) it still leave s a broad range of platforms and versions overall to cover. would be intresting to dig thru if theres any unintended side effects of using Say the gameshark/Action replay for PS2 *on a Backwards Compatible* PS3 (its possible but you haveto modify the system that gives you access to the Disc Drive and Swap, since theres only simple disc ID checks that prevent them from launching on said models at insertion time. incidently, the PS3 doesnt verify on *disc boot* what's in the drive be for all 3 platform disc types, again only at insertion time. a flaw that persisted since the PS1, and fixed with the 4 and presumably the 5 as theres no way at the time to dump a 1:1 copy of PS5 discs and burn them to check.)
Frellyouall they just bit shuffle standard info. So 'hello' becomes 'llohe' to stop companies like action replay from stealing their hacks. Also they add a cheapass checksum code that matches the previous code to make this theft harder. Hope this helped. :)
Amazing work! To clarify, the 6th place comes first and is always flipped correct? Or could another of the address values be flipped and in that case the 6th place could hold a value of 1-7. I didn't find any situations where this works. So I'm supposing that the 6th value is always complimentary to the rom or banks. Thanks again for all the work. It is spectacular.
The Game Genie is more fun now than it was when it came out. You had to get the magazines and cheat books. And how does any kid figure out this stuff if they are not a genius themselves. Now with the emulators and the internet information the Game Genie codes are fun. Slightly changed values can turn in to weird stuff LOL. Finally !
Wait, could you technically shove some assembly code through this? Like interrupting a jmp line to jump to an entire different address executing stuff at the given location?
I always thought there was a little genie that traveled into the cartridge, and he flipped some switches and turned some knobs on the computer chips...
killgruz
No, that's the glitch gremlin
That's actually adorable.
Not joking.
Yo keep up the good vids
Imma subscribe to u.
killgruz Otherwise, why would they put levers and knobs inside?
What I always wanted to know is:
How did it work on an NES without physically being able to push the cartridge down in? If you just have an NES game, and you push it in but not down, it absolutely won't play. The game genie made that connection not only possible, but sometimes IMPROVED as a connection. Many were the times I would not even put in a code, but just connect the Game Genie in order to get a stubborn game to work. It was very stable.
I've never owned an NES, so I didn't know about that. Crazy how the Game Genie improved the console, even without cheat codes !
You could never accuse them of false advertisement on the “game enhancer” thing!
Someone correct me if I'm wrong but doesn't the game genie bypass the nes10 lockout chip?
@@dana8190 I don't think it would need to if it requires a game cartridge to work (which would contain the lockout chip).
simple the PCB on the Game Genie is little bit thick then the regular game's PCB so they made an adapter with regular PCB thickness for the NES 2 (Top loader)
It wasn't to make the codes seem magical. It was so they could sell code books. Otherwise, terrific video!
Not that they couldn't print them in a book otherwise.
MaakaSakuranbo It made it harder to hack your own codes if you didn't know the substitution process, like you could with the Action Replay.
Couldn't they just sell memory addresses books? Was that illegal?
Still, you'd need quite the programing knowledge to be able to read the memory on any of those consoles, read the assembly code and and make any sense out of it.
I dont think "making it magical" would stop anyone with that knowledge as they could just as will read how the game genie decoded the codes and then make their own encoder and beyond that point its as if there was no magical code at all.
It was either marketing retardedness, or someone was actually retarded.
I can think of quite an easy way to make the required equipment for that with a few chips, and a 486 PC with DOS, and it should be able to dump the ram, the rom do single instructions and all, and all with things available in the early 90s and your could probably hook it into any console
As I said above, it made it harder for the user to generate their own
codes through experimentation. But actually, the memory addresses
might've been an issue too, recalling this article: www.eurogamer.net/articles/2016-09-24-game-genie-declassified-that-summer-i-played-230-game-boy-games
All this video needs is the sm64 file select theme playing in the background
But first we need to talk about parallel universes
I feel like a collab between RGME, Stryder7x and PannenKoek2012 is something humanity dearly needs.
@@blara2401 and TheZZAZZGlitch. Definitely
I wasn't aware this channel existed. I was about to comment on how they don't explain the glitches they showcase, but they do in more recent videos.
I actually did it. And I don't regret it.
As someone who grew up with these devices, namely the NES, SNES and Genesis Game Genies, Thank you! I used to have notebooks full of codes for all my games which unfortunately I lost in a move years ago. Now that I'm old, this makes perfect sense as to why certain codes did not work. One of these days, I'll hook up the old systems and grab a notebook and start playing around with it again. The feeling of discovery when you found a working code was wonderful, and I'd love to get back into it. Great video!
I love these videos, the explanations are thorough and the diagrams are well done. That being said, I still have no idea what you're saying in any of them. If somebody had me watch this video and asked how the game genie works, I could probably tell them with great certainty: "it hijacks and modifies game code." which was exactly as much as I knew before watching the video 😅
Great video. I used to have a GameShark for my GB Color, Pokemon was never the same again.
@Raider 2747 under a car
I loved playing with the genie. It made playing old games that I was tired of fun again.
Good video, glad you explained the difference between GameGenie's ROM value substitution and the GameShark/PAR methods
RISC vs CISC doesn't refer to the format of the machine code, but the way in which the instruction set is designed to access and work with data. A RISC architecture is almost synonymous with the load-store paradigm, where memory must be accessed as either reads or writes with a register, whereas CISC is known for having an abundance of addressing modes, many times applying to the same fundamental operation. Furthermore, RISC machine code can have variable-length instructions, such as the V810 used in the Virtual Boy.
The funny thing is that you can do everything that game genie can do and more by using an emulator to write the game onto a CPU, or get the game's source code and run it with the program that was used to write the original game. You can then make changes to the code so that different things happen in the game just like game genie and run it on a computer. But that is basically all game genie is. It is just tweaking the game's source code so that something different will happen, albeit without your typical CPU. But you may as well say that the system itself is the CPU.
How dumb I was to believe I'd actually understand this
Yeah, frustrating to day the least. It got overly technical very fast, and skipped the ROM/RAM basics which are necessary prerequisites to understand how the Game Genie works. Look up "create Game Genie codes", you'll get more hands-on explanations that way. I've just started learning myself. Good luck
A T I didn’t have a problem with that, but then again I’m already familiar with this stuff, so I can’t really be the judge of that.
I combined two codes for Super Mario Bros. out of the Enclosed Instruction Book(tm), and it made Mario turn small when he got a Fire Flower, still Fire Mario-colored, and turning big for a half-second when he threw a fireball. He may or may not have also been impervious to losing the power.
I didnt have enough rom value to understand this video
I sorta get it
You get a well-deserved thumbs up from me. Exactly what I was looking for.
Can't wait for the Game Shark episode, I've seen some of the weirdest glitching when cheats are enabled from it! Really interesting to see what can be done with a Game Genie for arbitrary code execution, completely rewriting a game from scratch, almost creepy to see SMW turn into Flappy Bird.
I'm an electrical engineer and I have to ask...how/where the heck did you learn all of this and where can we dig more into it too? Awesome channel and excellent videos!
Good question.
Start with the language C and the reverse engineer little programs you make in assembly (it'll probably be x86_64) the cpu's
instruction set and stack protection will be different (they didn't have stack protection then or not in the same sense as today) but the concept will be the same. As it is for all devices from cell phones, routers, smart tvs, the apple 1, every video game console ever invented and 99.9% of all devices with a processor period. If you would like to know more on the subject just Google information on x86_64 assembly. It will be pretty hard to understand at first which is why I recommend starting with C and then going down to asm. If you already have a grasp on programming especially complied and not interpreted programming then you may be able to switch to just learning asm without a ton of difficulty but it's so close to the actual hardware it's not very easy for a human to read it. At all. But it is possible and many of us do. I develop buffer overflows and rce's which requires me to know assembly (for the modern desktop computer aka mainly x86_64). The entire reason I watched this video was because it was in my recommendations and I wanted to see if my hypothesis on it was correct. It was close, not entirely I didn't know they had any sort of changing of addresses back then. Hopefully this helps.
@@n111254789 The code that is stored on the cartridge chips in Nintendo games is read-only to prevent corruption, so I don't know how even the game genie is able to skirt around this. If this were possible by any means, then a person could easily make unlimited changes to the game using a computer if they can transfer ROM files onto a computer from a game cartridge because this allows you to make changes to the code. I don't know how anyone could get the cartridge contents onto a computer though without using an illegal emulator, especially back in the days before computers were mainstream. But if you can then you could change what happens in the game without the limits imposed by game genie. I assume that you could even possibly run the game on a computer too using C or C++ platform which is probably how people on youtube create TAS content.
@@wrestlerx8494 The Game Genie skirts around the "read-only" limitation because it does not attempt to write to the cartridge. It intercepts the data signals between the cart and console and sends its own signals based on the codes that the player put in.
As an aside, there is no such thing as "illegal emulation"; it's the ROMs that are protected under copyright, not the console BIOS, and even then you are allowed to make a backup copy of the ROM as long as you don't distribute it to others. (There may be other caveats, though. I'm no legal expert.)
@@spritemeister SpriteMeister OK I did not know that it was legal to use an emulator even if you were just copying the game for yourself. There is an article on Wikipedia that talks about emulators that were used to write the ROM source code for cartridge-based games such as SNES games onto a computer, then the code could be used to reproduce the game and make copies. But these emulators were said to be illegal to own or use, and in fact with the game cube the game disks were purposely made in such a way that a computer disk drive could not read them to prevent piracy. This seems to suggest that they didn't want anyone to copy games even just to use without the intent to distribute them.
Another thing is that most early games (NES, SNES) did not have stack protection in the source code at the time they were made since it was not used then. I don't know if this would affect the ability to "rewrite" the game using a modern version of C/C++, but chances are that any ROM code that you get from an original cartridge using an emulator might not run in a modern version of C. I know that there is a website with open source code for the NES version of SMB and you can run the code in C, but I have not tried doing this and I don't know if it works. I do know that the code can be used for TAS speed runs, as this was explained in another video.
Dude, you have talent! I can only imagine how much work went into these animations themselves not to even mention research needed for such topic. Soilid thumb up right there!
Imagine how we take the game genie for granted... It's actually more interesting, on the inside, than just being a cheat device.
Love this video.
Me at the start of video : Wow it looks interesting
Me at the end: WAT
Awesome, I loved playing around with Game Genie codes as a kid, and it's really fun to see how they work.
TL;DW
*Magic*
*Mathemagics*
@@rarebeeph1783 lmfao my new favorite word
genie is dutch for genius so I was misunderstanding the name for many years
it's also french for genius ;)
The English "Genie" is derived from the Arabian word "Jinni" of "Djinni" which are supernatural creatures capable of manipulating reality, like the Genie from Aladdin.
Dargonhuman Actually they are believed to be paranormal beings in Islamic culture that are somewhat like a species that live and do not interfere with human beings (mostly), is what the idea was inspired by.
@@Dargonhumani know this arabic stuff
@@Lee-mv3im read the other comment on this comment
i hope you'll do a video explaining in depth how action replay worked; that was what i had as a kid and i was so fascinated with it, i used it on pokemon pearl all the time
i remember picking up some patterns in the hexadecimal code (iirc pearl codes always started with the same 16 bytes or something...) and always wondered what exactly the values meant
the Retro Game Mechanic is the blue-collar equivalent of the Game Genie
This video reminded me that I used to have a GG for GB. I'd completely forgotten about it for I don't even know how long (several years at least). I don't remember what games I used it for, though. Also I did remember using a GG for SNES (I always liked just putting in random codes just to see what would happen. Usually nothing, sometimes weird things like Flashing Negative Rainbow Mario), but I can't remember if I actually owned it or if I just borrowed the one my brother's friends had.
tacos
I loved the Game Genie! What a unique and useful product it was!
The 68K series was CISC. The term you may be thinking of is "orthogonal"
maboroshi1986 it’s probably one of the most CISC CPU
@@lotrbuilders5041 If you think that, you haven't ever seen the S390x mainframe architecture used by IBM.
M68000 uses a reduced set of instructions??? I have my doubts... RISC is not only defined by ortogonality of the instruction set, but it depends on a number of characteristics that I think M68000 haven't. By the way: great, great video and content. I don't lose any of your episodes... Thank you!!
"Explain it to me like I'm 5."
-Michael Scott
"Explain it like I'm 5."
"Where are your parents!?"
Even as a kid I had a fairly decent idea of how this thing worked. I knew it couldn’t have just been pre-programmed with codes since the code book actually *encouraged* experimentation and a lot of those experiments did horrible, eldritch things to the game. I even picked up patterns in, e.g. infinite lives codes after a while w.r.t. which letters give you how many lives. So that just made it more fascinating to me as I was amazed the thing could somehow hit the same data with the same exact code every time.
I first got my nes when I was 5. I got my game Genie I think at 7. I think I vaguely remember learning certain patterns in the codes and playing around with it. But dang that was over 30 years ago
I still think the marketing for Game Genie was pretty fucking brilliant. It's basically a primitive hardware version of Cheat Engine -- just a memory address editor -- but they encrypted everything into "codes" to obfuscate what was really going on and to sell code books. It wasn't until the days of the PS1 GameShark and PC emulators that I learned how these "codes" really work and started learning how to find and edit memory addresses on my own.
Great video! The only thing I would add, for those too young to remember or who have never encountered a Game Genie, you didn't have to know any of this to just sit down and type in random codes to see what they did! I'm sure most people watching an explanation video already knew this, but mentioning it just in case.
If you had the game's source code, you could also determine what codes to enter to make specific changes through a trial and error method. This can be done with computers today.
So what you're saying is ... it's magic! Wow, I can't believe the game genie was magic!
Fuck you, hipster. You look like a sim after I hit the randomise button. 😂
tacos
Pumpkin yo cool it
I love these technical explanations
3:48 I hate the designer that thought this was okay. You already encoded your bits with a custom character set, and it wasn't enough to merely shuffle around the nibbles/bytes, no, you had to shuffle the bits themselves. Insane to try and come up with a game genie code from scratch
Please do a GameShark explained video, I know the codes on that are much simpler and correspond much more closely to actual RAM values. The GBC GameShark actually taught me how Hex editing worked!
IIRC, the GS and AR were literally hex editors.
Ah the father of Cheat Engine. Gods I was strong then.
I absolutely loved Action Replay on PS2 & Nintendo DS. Best shit ever.
PS2??? It didn't even have cartridges!
PS2 Action replac uses iirc disk swapping to arive at the same conclussion... disk swapping wasnt even unheard of in PS2 games(one of the Dragonball games had it implemented officaly for example)
@@weberman173 Correct to an extent. Action Replay on PS2 loaded into RAM exactly like other systems, allowing you to then swap the disc to the game you wanted to play.
I used Action Replay for Planet Puzzle League on the DS to unlock Lips stage kn
I think I watched all your videos now, including your most recent upload. I really like the channel.
me too
I appreciate that someone made this video but it is above my understanding of coding. I might have to come back to this one.
I used the Action Replay on SNES (which was more widespread in Germany, as someone else commented already). I'd love a video on that. One of the greatest mysteries of existence that have nagged me my entire life is why almost all its codes started with 7E.
work ram on snes is mapped to banks 7E and 7F
Cool video! I was not expecting it to be so in-depth but I'm glad it was!!
Where has this channel been all my life
Pretty sure the 68000 is considered CISC. ;)
Yeah, the difference is not really about RISC or CISC at all. It's just that the Z80 and 6502 used by most early consoles were very simple 8-bit microprocessors (and thus cheap enough to go in those early consoles and home computers), and had very short, often 8-bit instructions. The 68000, on the other hand, was a more complex 32-bit architecture that typically had much larger instructions as a result.
Ah, I made a mistake. From the few examples I looked at the architecture looked similar to MIPS, which I am familiar with being RISC. I see now that there are many instructions that can be several 16-bit words long.
I think it was just a brain fart to be honest. :)
The 68000 can do more than an 8 bit, has longer operands etc so you need to mess with more data. I think a RISC machine would be a different problem though. You would need to mess with more instructions because the amount of work per instruction is less.
The 68000 may be considered CISC, but in truth it's more in the middle between the extremes that genuinely belong under the CISC and RISC labels. Although the 8086 itself wasn't quite as much of a CISC CPU as its current descendants are, the 68000 has a far simpler and more straightforward ISA. 68000 was chosen for Genesis and Apple's Macintosh and Lisa because of its simplicity and power, while Nintendo chose the 65816 for the SNES mostly because it is backward compatible with the 6502 (and, in terms of code execution, was very fast in its day).
>truth it's more in the middle between the
>extremes that genuinely belong under the CISC and RISC labels.
The original 68000 at least has many instructions that do multiple memory accesses and take multiple cycles to execute and other than the weird pre-fetch thing they aren't pipelined. I'd say that puts it right in the CISC camp.
[Waiting for the Gameshark video]
Me too
Hey, you missed something minor in the NES example; with those lives codes, the T could also be a V (AAVOZE/PAVOZE), since the first bit of that letter is never read. And you never show us how to do a Game Boy/Gear code without a conditional check, though it would be pretty easy to remove the bits for that from the code, and presumably the rest would map the same way.
Also, a lot of people seem to complain that you get technical too fast, and skip over explaining the basis of ROM and RAM to make everything else make sense. I don’t have a problem with it, but that’s because I already have a good grasp of it, so I can’t be the judge of that.
I was wondering how these things work! Great timing on the video!
This is so interesting! Man I wish I had more memory myself to be able to hold this info!
I just found this channel and while I don't fucking understand 90% of it, I love this channel and I'm jealous of how much you understand this stuff. Even though it would make NO difference in my life to get this stuff, like at all. It would be neat.
i still have my original NES game genie and manual. i used to spend hours writing new codes and finding out all kinds of weird stuff i could make games do. lots of fun lol
Thank you so much! This answers so many questions I've had for years!
Great video! Lots of description! It helped me understand how it works now!
What's interesting, is that you can probably make a modern version of this, which doesn't sound very interesting at first, seeing as we have modern day mods, except that the game genie is essentially just a piece of hardware, and can make huge changes to the entire system, they're of course less useful back then when everything was stored on ROM, but now that lots of things are stored on RAM, you could probably do some really interesting things, as it would essentially be getting around some of the safety measures put in place by Windows. The way you'd make it is through the fact that you can plug in RAM extensions. If you had something to plug in that would do what the Game genie did, it could be very interesting. Of course, it'd also be less of a fun thing you can mess around with, since it could likely break the entire system due to everything being stored on RAM.
I actually dug up my Game Genie for my Genesis not too long ago. I found out that you could use it to play imported games without having to worry about the cartridge shape not matching.
Was really wondering how this thing works, thx!!
I had a gameshark, look forward to that video!
How do you make the animations in your videos?
MarioTGP He also draws the pictures wearing the power glove.
The majority of video editing is done in After Effects.
Do you manually define each of those bit/line animations?? :o How many hours does that take?
all these comments are great xD
@@FalconFour 2 weeks thats why animation channels dont have enough videos to fulfill demand
I had a NES Game Genie and never knew they were available for other systems!
Maybe in other videos, you could talk about famous codes like IKAAAE and why a code switch like 8080:4D so consistently screws up so many games so spectacularly?
Not that it really matters but the 68000 Processor family aren't RISC processors, they're CISC processors. I understand why, given your reasoning you believe it is though. The main giveaway is that instructions for the 68k have multiple addressing modes, and can work with differing word sizes.
So for example if you want to add two numbers, your source can be either a data register, or it could be a memory address, or it could be a direct number, or even an address in the address register ; it's been a while, but I think the destination has to be either a memory address, a data register, or a memory register. Anyways, depending on which modes and the word sizes used you use your resulting instruction could be 1-3 words long (resulting in 1-3 cycles).
One of the main factors or RISC is that every instruction must execute in a single cycle, so for example add instructions would have to be register to register, since you only need a couple bits to address them. Also the whole multiple modes for an instruction type goes against the whole reducing instructions philosophy.
The reason the 6502 op codes are the way they are is because they've got an 8 bit data width, but a 16 bit address width. I don't know if that'd make it RISC or CISC; I dont know if that was really a consideration at that point.
Anyways, none of this really detracts from your great video, it's just not often I get to talk about assembly and machine code. The 68k family just happens to be the one processor I've written a lot of code for in school.
0:19
I love that sound.
Dude. I love your videos although I can understand 10% of it. I want to see more!
I'm hype for a gameshark video, I can program my own codes in then!
the game genie in a sense could be comparable to a simple rom corruptor
Do you mean I could make a corruption video by entering random game genie codes?
In theory, yes.
Indeed like say the ikaaee code for super mario bros.
@@karisasani7006 The source code for SMB can be found online, so just run the C or C++ program and copy/paste the code into the program. Then run the program. If you want different things to happen in the game, then all you have to do is change the code. For example you can change the code for goombas to a different set so that they don't appear in the game. This is mostly a trial and error process, as you have to determine what set of code controls the goombas and how to change it to eliminate them, but once you make the distinction it should be relatively easy.
@@wrestlerx8494 Game genie does not change the program at all though. it's just changing the value in the memory more like CE in primitive form.
Remember the little blue backpack that came with it? Got one for Christmas and said game genie on it.
This all happened before my time, so I never really knew much about it. Thanks for the information! :D
I was trying to find a video that explained Action Replay and how such short codes could make such large changes to a game(I didn't find one), but found this interesting one
I assume it works similarly
68000 is a CISC processor too, not RISC. And the instruction sets of 6502(NES) and 65C816(SNES) are actually simpler. But yes, 68000 uses 16-bit opcodes and 16-bit data bus while the SNES CPU uses 8-bit opcodes and 8-bit bus(this is probably why they named it 65816) and therefore one must substitute 16-bit values for the MD/Genesis.
Game genie in a nutshell: "YOU AIN'T NEVER HAD A FRIEND LIKE ME"
On the Super Nintendo game genie I own which is a version 2 I can only seem to use only 1 code instead of 5 please help me how to use all 5 I’m trying to cheat on my games
Came here to learn.... Leaving here very confused... I hardly understood majority of it. I think Mario made a little sense... Didn't understand a word of the Genesis bit though. I don't think I'd be able to come up with my own codes anytime soon haha.
Welcome to the world of hacking, haha. It's not THAT hard.
RAM is a loong ribbon of *EVERY* number (lives, score, coins, ...) a game remembers, each has its dedicated place called address. A cheat device can modify some of those, and game runs as if that is how it's supposed to be.
To find such an address you can, for example:
* start a level with 3 lives,
* somehow get a copy of every number in the RAM at that point (requires a much more elaborate/expensive hacking device or just an emulator)
* find all number that equals 3
* kill Mario, he now has 2 lives remaining
* get another copy of the RAM
* see which RAM addresses contain a number that was "3" last time, but now is "2"
* repeat the process if you happen to find too many candidate addresses
* by using a code table explained in the video we now can convert our address and a desired number of lives to a cheat-device code -- this may seem complicated but isn't; most likely there's a program that can do the conversion for you
* input the code into the cheat device -- as long as it's active you have as many lives as you specified, no matter how many times Mario dies, because when game tries to read number of remaining lives it gets the number you specified instead -- that means your code works!
And that is how you create a cheat code!
There may be a lot of quirks with this kind of stuff, but it's not rocket science (unless you are trying to cheat Kerbal Space Program or something)
One of PC versions of "game genie" is called "ArtMoney", you can find it on the internet. It has a convenient tool to create codes. You can try it with some old PC game. But don't try it on any online game, or you will be banned forever!
Jack White this comment explained more than this whole fucking video. Thank you.
Jack White OHH this whole time I have known how to do this then, a program called Cheat Engine works in the same exact way
I never even heard of game genie until later in life, it was all about gameshark as a kid for me
I have some damn good memories of the Game Genie 3DS
0:00 - 0:18 Wow, that was pretty quick!
Very interesting i didn't know a lot of the information in the video. The only game shark i have used was one of the versions made for the PS1. I might pick a GS for an SNES. Thanks for the info!
I feel so old knowing how entering an NES Genie Code works
This vid is both confusing and entertaining/ interesting at the same time
You are so smart! How do you figure out those things?
what i always wondered is how they developed their codes in the first place. i guess they were able to monitor the values being read in, and maybe they could even set up a system to find specific values or increasing/decreasing values over time like you can in most emulators now. but i have a feeling their tools would have a lot less sophisticated, since they weren't starting with decades of experience and an entirely emulated console, lol.
"Explained" is quite the understatement.
In my opinion, he explained it perfectly. Could maybe do with a disassembly of the Game Genie but whatever.
Beautiful work, as always.
You should do an episode on Action Replay and/or Gecko OS. GOS and every AR iteration works effectively the same, but I know little about the specifics
Very interesting, I only missed viewing demos.
From what I understood, it's better to write smaller types of code(6 characters instead of 8) to have better chances at getting any result?
This is true, but with the correct source code you can achieve the same result with more or less characters. The codes for game genie were likely tested prior to it's release, but for what it's worth I will also say that I have had a number of codes that didn't work for whatever reason.
WTF this channel surely is very technical
What are your sources for this information? I'm impressed with the research you did on this and would love to know more.
Nice job--I've been wondering about Game Genie for a while. Your videos are always top- notch. I love this!
My favorite code generation!
Feel up to take my codes and convert them too game genie code from memory address.
Thanks for explain how it works, very informative video:)
I didn't understand a thing but it was still interesting to watch.
I wonder if that Action Replay video will ever be made.
would be intresting to see a video (eventually) on the Gameshark/Action Replay. but given how long console generations it pasted barring into the Wii(then PS3/Xbox era) it still leave s a broad range of platforms and versions overall to cover. would be intresting to dig thru if theres any unintended side effects of using Say the gameshark/Action replay for PS2 *on a Backwards Compatible* PS3 (its possible but you haveto modify the system that gives you access to the Disc Drive and Swap, since theres only simple disc ID checks that prevent them from launching on said models at insertion time. incidently, the PS3 doesnt verify on *disc boot* what's in the drive be for all 3 platform disc types, again only at insertion time. a flaw that persisted since the PS1, and fixed with the 4 and presumably the 5 as theres no way at the time to dump a 1:1 copy of PS5 discs and burn them to check.)
Thanks! Great explanation! Love it!
Never realized the conversion from Code the values was so arbitrary. I had always assumed the snes codes were just direct 1 to 1 hex values.
This was far more complex than I expected. So much jargon.
Frellyouall they just bit shuffle standard info. So 'hello' becomes 'llohe' to stop companies like action replay from stealing their hacks.
Also they add a cheapass checksum code that matches the previous code to make this theft harder.
Hope this helped. :)
"called a game enhancer to skirt around copyright laws"
What else might they have called it? That's pretty much exactly what it is
I think it was never in copyright danger. It inherently checked for owning the original to make its modifications.
Amazing work! To clarify, the 6th place comes first and is always flipped correct? Or could another of the address values be flipped and in that case the 6th place could hold a value of 1-7. I didn't find any situations where this works. So I'm supposing that the 6th value is always complimentary to the rom or banks. Thanks again for all the work. It is spectacular.
The Game Genie is more fun now than it was when it came out.
You had to get the magazines and cheat books. And how does any kid figure out this stuff if they are not a genius themselves.
Now with the emulators and the internet information the Game Genie codes are fun. Slightly changed values can turn in to weird stuff LOL.
Finally !
I was always curious about this! Thanks! =)
Great explanation as always!!!
I remember being able to stack 2 NES game Genies and having them work.
Thanks so much! I requested this!
Wait, could you technically shove some assembly code through this? Like interrupting a jmp line to jump to an entire different address executing stuff at the given location?