>>47563985 Oh, and that was the other thing that I forgot. The LP links to a bunch of videos, but they were hosted on Viddler which is dead or something. Thankfully, Metroixer saved some of the videos to his Youtube channel.
In no particular order: https://www.youtube.com/watch?v=PiFepiv-hnc https://www.youtube.com/watch?v=WqNbUpyIrGU https://www.youtube.com/watch?v=EM7VeWqT25M https://www.youtube.com/watch?v=ENduR6w_xos https://www.youtube.com/watch?v=30p2lISWECQ https://www.youtube.com/watch?v=lGlTbYMbjHY https://www.youtube.com/watch?v=GpQY0R1TbiI https://www.youtube.com/watch?v=RcdEModRqrk https://www.youtube.com/watch?v=shzFDxj-Z24 https://www.youtube.com/watch?v=FR9cmR5rsaQ https://www.youtube.com/watch?v=-rlDfl7MY_Q https://www.youtube.com/watch?v=m9y_7nD9nIU
I'm sure most of you are familiar with this kind of shit, but whatever. Here's the fastest known tool-assisted run of Pokémon Red, in under 70 seconds (ignoring credits etc): https://www.youtube.com/watch?v=8ELAXJ4XpBs
And here's how it works: http://tasvideos.org/4431S.html
>When resetting the game while saving, it is possible to end up with a loadable save state where the complete party Pokémon data is filled with 0xff. This makes the game think we have 255 Pokémon in your party, which allows us to swap Pokémon after the 6th and thereby manipulate the following RAM areas. Specifically, we can change the ID of the current map (at $d35e) and the pointer to the map script (at $d36e) to execute the Hall of Fame cutscene and end the game right away.
>>47564806 I always found TAS pretty boring but writing code yourself into the RAM and executing it by mere controller inputs and forcing the game to jump into a wrong subroutine is pretty impressive https://www.youtube.com/watch?v=ZHQaYc8OwlA
>>47563774 >success or failure? It was no error handling. More modern shit would crash on sight of some of this stuff (memory fiddling, etc). I'd hate to see what the XONE or the PS4 does, probably shouts "YOU'VE VIOLATED THE LAW", bans you from the online service and bricks itself.
>>47563774 Awesome. I went to sleep and woke up to a dead thread.
Reading the last post was like a little present.
Can we start talking about more than just pokemon errors? Pokemon was the main subject of the last thread but I think we should at least expand it to gameboy games in general.
Let's talk about the memory layout of the gameboy. The game had full control of the hardware and many games never appeared to use dynamic memory intentionally. Many games didn't even need a memory manager.
>>47566670 For a while, I actually wanted to learn GB programming. I figured it'd be an interesting way to get into embedded shit. However, it was really hard to find much in the way of resources, and I lost motivation after a while anyway.
But if folks are interested, here's some of the stuff I found.
>>47567651 No, everyone did. Like everyone thought mew was under the truck. I remember trying to catch the legendary dogs that always ran away from battle, and almost breaking the b button cause i tried to catch them at first sight.
>>47567480 >there will never be games with actually fun/interesting glitches again I think the reason the old glitches were so interesting was that by freely reading (and sometimes writing) the wrong areas of memory, they could actually create content.
Think about, for example, MissingNo. or G'Mp. Despite never being intended to exist, they were actual pokemon that you could fight and train. Upon encountering them, it took very little imagination to continue the suspension of disbelief, and simply incorporate them as part of the game..
>>47567699 >I think the reason the old glitches were so interesting was that by freely reading (and sometimes writing) the wrong areas of memory, they could actually create content. Homoiconicity is always interesting.
I'm the Metroid II guy from last thread. I wonder how tedious it was to keep track of all of the sprites that many of these characters used.
I wonder what techniques were used to keep them all together. I wonder if Nintendo used an assembler that had structures or if they just used a ton of macros.
Another interesting thing about this topic is how all of the old websites that are still up hold the information you can find scattered all over the place. You can also read mentions of the games in old magazines and instruction manuals that you just can't seem to find on the internet.
>>47567742 I know that the root cause is poor programming and no safeguards. But what's interesting to me is how people actually reacted to those glitches. From a certain perspective, those glitches are a bizarre form of procedural content generation, with vastly more creative freedom than most PCGs at the price of also being able to break the game.
>>47567778 >Homoiconicity is always interesting. I'm not sure most of these glitches require that. From what I understand most were just reading the wrong ROM data and using that to construct "glitch entities". Very few glitches required ACE or anything clever.
>Another interesting thing about this topic is how all of the old websites that are still up hold the information you can find scattered all over the place. I know. It feels weird as fuck. A lot of this stuff seems to be turning into archaeology.
>>47567509 >Tfw you have a B&W Game Boy but your Red cartridge's battery is dead >Can play, but doomed to lose your save as soon as you're out of batteries, restarting again and again At least it's still alive. My GBA died years before my GB.
>>47567945 That red cartridge is surprisingly still alive, my other silver cartridge died like 4 years ago and had to replace the clock battery inside it, lost like 225 pokemon all caught without any cheats. Also yeah my GBAsp died too even before the original DS came out and this GBC is still alive.
>>47567922 >From a certain perspective, those glitches are a bizarre form of procedural content generation, with vastly more creative freedom than most PCGs at the price of also being able to break the game. It really is interesting. Most higher level languages wouldn't allow it.
>I'm not sure most of these glitches require that. From what I understand most were just reading the wrong ROM data and using that to construct "glitch entities". Very few glitches required ACE or anything clever. I don't know for certain, but at least some of the glitches appear to be reading data at random, which could very well be instructions. I suppose the lack of types is also very important for this. Homoiconicity usually isn't hindered much with types though.
>>Another interesting thing about this topic is how all of the old websites that are still up hold the information you can find scattered all over the place. >I know. It feels weird as fuck. >A lot of this stuff seems to be turning into archaeology. Indeed.
What do you think about the other things I was saying?
>>47568273 it was novel and everyone wanted one from the ads, right up until they saw it in meatspace, suddenly they realized that it was shitty and didn't take pictures so much as composite black white blobs inspired by real images
>>47567715 >planetside 2 I think my favorite glitch was with deployable vehicles, which was sadly patched out a few months ago. Deploying a Sunderer or anchoring a Prowler would save that vehicle's deployed location to whichever player had deployed the vehicle rather than to the vehicle itself.
To do the glitch, the driver would pick a spot somewhere and deploy (location A). While still deployed, the driver would then swap seats with the gunner or someone, who could then undeploy it and deploy it somewhere else (location B).
At that point the driver's deployed location would be stored at location A and the gunner's location would be stored at location B. The driver and gunner could then swap seats to warp between location A and B at will.
One time I did it wrong and pissed off the physics engine, so webm related happened.
>>47567589 Actually Pokémon Red and blue were tinted their respective colours throughout the game, as in, they were fully blue or red rather than black and white. Yellow did try changing all the towns' colours whenever you changed maps.
>>47571306 Yeah, R/B are tinted but you can still change the palette at the logo screen. Since Yellow controls colors from inside the game, you can't. This can be slightly annoying since setting R/B to the pastel choice can make it fairly easy to get through Rock Tunnel without using Flash -- they made the walls have bits of damn-near-black in them, and in the pastel one damn-near-black is pastel blue. Yellow forces it to dark brown on black so it's much less visible.
>>47570967 Almost all glitches will function exactly the same as on a real system. The only exception is things that require you to power off at the right moment as it saves, because you aren't going to be able to get to menu, reset, ok quick enough after the last A button press to save. Any link trade glitches also obviously won't work because there's no link cable emulation on the phone GB emulators.
GameBoy link cables are bit-at-a-time duplex. A byte is set in a register to send, and a "go" flag is set. The bits then shift out into the link cable as bits from the other GB's byte shift in. When it's done, a flag indicates this to the game, which can now use the byte that was received.
Bluetooth and NFC are packet-at-a-time and not duplex. A packet is formatted with headers and sent to the other phone, which isn't sending something back at the same instant.
GB link emulation might be possible: Pause the emulator after the right number of cycles for the byte to have transferred fully, wait for the other phone to reply with a single byte in a packet, write it there and continue emulation. If it works, it'll almost certainly be really slow.
>>47567778 Seriously. How did they keep these larger sprites together? I was reading earlier about how the largest sprite the GBA supported was 8X16. That means they had to use more sprites. I wonder what they did to alleviate the pain of tracking those.
I wonder what assembler Nintendo used. They probably wrote these games with assembler. I doubt they used C with hardware that weak.
I wonder if they had an assembler with structures or other conveniences past what most assemblers provide.
>>47572062 >Seriously. How did they keep these larger sprites together? I was reading earlier about how the largest sprite the GBA supported was 8X16. That means they had to use more sprites. I wonder what they did to alleviate the pain of tracking those. I believe the GB/GBC was stuck with 8x8 sprites, so yeah that's a lot of them. But are you sure they're all sprites and not just sprites on the parts that move around and background tiles for the rest of it?
>I wonder what assembler Nintendo used. They probably wrote these games with assembler. I doubt they used C with hardware that weak. I'm not sure whether GB games tended to be written in C or asm. I think I've seen some code in games that looks like it was compiled from a higher level thing.
>>47561990 Not shown: a bug found not even a year ago where a move that can deal status effect can't deal that effect at all if it's type matches the one defending example: Body Slam can never paralyze a normal type
Cue simulator players dawning on them the realization that even after all those years their sims were still lacking.
>>47562155 It was originally from SA if I remember correctly
>>47546205 (from previous thread) Interesting idea that was brought up in the previous thread: >trade RBY poke up to GSC >evolves and learns a GSC-only move >trade it back to RBY and obtain glitch move The game doesn't normally let you trade something back to RBY if it has a GSC-only move. However it only checks this when you enter the Time Capsule, not when you start the trade itself. So, if you obtain the move while in the Time Capsule, you should be able to trade it back.
Alakazam doesn't learn any GSC-only moves by level-up so this guy was obviously remembering wrong. But I wonder if other pokes do...
-->Are there any Pokemon that can evolve and learn a move when traded up?
-->What about other ways to accomplish the same thing? >feed rare candies while in the Time Capsule to get a level-up move >use a TM
>>47572129 I got this info from http://peterwynroberts.com/2014/05/11/gameboy-programming-tutorial-hello-world/
>I believe the GB/GBC was stuck with 8x8 sprites, so yeah that's a lot of them. But are you sure they're all sprites and not just sprites on the parts that move around and background tiles for the rest of it? The GameBoy can store and display two different kinds of images: “tiles”, which are 8×8 images; and “sprites”, which are either 8×8 pixel images, or 8×16 pixel images. I was talking about characters like Samus in which all parts move and change. All parts except the middle also need to respond to the environment. I'm not sure about what approaches they would've taken, but I imagine working with sprites is at least slightly easier to work with when you have to worry about collisions with other sprites. Doesn't hardware usually help with detecting sprite collision a little?
>I'm not sure whether GB games tended to be written in C or asm. I think I've seen some code in games that looks like it was compiled from a higher level thing. >Also, http://gbdk.sourceforge.net/ >Plenty of Z80 computers have had C compilers. I could swear they would have used assembler. Here's an interesting link I've been meaning to read for a few months. I'm finally going to start making my way through it now.
>>47567480 WoW had some interesting stuff you could do in the past with packet editing, scripts and other stuff.
A few years ago you could get ported (at least the server thought so) to a different map while physically remaining on the old one. Resulted in floating NPCs and chairs and you were able to reach places you normally couldn't due to the different maps. Look up Otherworld if you're interested.
Just recently there has also been an exploit where you could level your professions without spending resources and money thanks to packet editing.
Simply exploring was also pretty fun when you couldn't fly yet because there is a hilarious amount of unfinished or duplicated places around there.
No really I'm super cereal. For instance, I have a NES classics metroid GBA cart. Do you think I wouldn't be able to do the wall jump trick to the secret worlds? I would need to do it on my actual NES because it's technically being emulated on the GBA?
>>47574003 I got as far as stripping all the wires in a parallel cable before realizing I don't have a soldering iron to do any soldering. The cable's actually lying like 5 feet away, just begging to be soldered up to the GameBoy
I remember there was a site dedicated to Missingno and other pokemon glitches, it had a black background and white text, in old web 1.0 format and was a creepy read. Does anyone know the site I'm talking about?
>>47563774 It was a obvious failure of error handling, though it's not like it mattered much to the average fuck since they probably wouldn't ever encounter it unless they were told how to do it. Gen 3 and later did it best with bad eggs and giant ?s.
>>47575008 I would imagine using a structure is the best way to keep track of multiple sprites for objects that need it. I wondered if the assembler Nintendo wrote for supported structures. You could always get structures with plain macros though, if the assembler supported macros.
>>47575033 What's so hard about tracking them? It's not like you have to detect collisions between all of them. You only need pointers to all the sprites and hitboxes of the monster in one array (or simply define one large rectangular hitbox for the whole thing), and the 3 sprites for the player in another (its hitbox is a simple rectangle). Then have an array with ALL sprites on screen in it for redraw purposes.
This is not difficult, even in asm, even with no macros.
Actually, there IS one way, but it's cheating. Run the game itself on a PC and stream a compressed picture to the GBA over the linkport, and controls from the GBA to the PC.
>>47571618 >>47571306 Red and Blue had some of the most extensive and interesting use of the Super GameBoy's color palettes for the time, displaying very similarly to Yellow's GBC palette.
The Super GameBoy was a sadly underutilized peripheral, you could do some pretty crazy stuff with it, up to and including loading whole SNES games from the GB cart. I'm somewhat surprised more games didn't take advantage of that.
So I'm the Alakazam guy and I recorded a video. It's 10 minutes long, 1280x720 and 1 GB. I converted it to a 30 MB webm without really knowing what I did. Where should I upload it? Any suggestion about a better conversion and compression?
>>47581265 Holy shit, I love this video site. The video played fine without needing to whitelist anything in NoScript, and their <noscript> box even tells you what domains you should whitelist if you have trouble playing it.
The Old Man battle copies your player name into the wile encounters array to store it while it changes your name to OLD MAN so it will display during that battle. You then fly to Cinnabar where there are no wild Pokemon defined, so your name is still in that array. Now you go to a strip of water that's still part of Cinnabar yet has a nonzero encounter rate. So, you encounter whatever Pokemon the bytes in your name represent.
The bug is that Cinnabar contains some tiles where you can encounter Pokemon, but has no encounter list defined. Other than that, the hack of stashing the player name in the encounter list would be just fine.
>>47567452 There's a BASIC for just about everything, even the 2600. Batari basic wasn't a thing when the 2600 was still being sold though. >tfw people hate BASIC Guess my college just fucked computing's shit up that one time.
>>47585803 >Were those intentional for punishing players for "cheating"? They're the result of error checking and anti-cheat code. They mapped all undefined Pokedex numbers to a "?" sprite so you don't get blocks of garbage like Missingno or glitches that make the game go insane or crash.
The Pokemon data structures are protected a bit. They added a checksum at the end, over all the data. If the checksum is invalid, it changes into a Bad Egg. The data is also divided into 4 blocks that are scrambled in an order defined by the Pokemon ID (PID). After being scrambled, the data structure is xor'd with the PID and the trainer ID (TID). It's set up this way to make life harder for people trying to make GameShark codes. You no longer know the exact memory address of what you want to change without doing some calculation, and to change it you have to decrypt and re-encrypt it. And if you alter the encrypted data, PID or TID without knowing exactly what you're doing, you get a bad egg and no hints as to what your changes did. Normally you could fuzz the data structure a bit to find a byte that changes HP, species, etc. and mess with different values, but now unless you already know exactly what you're doing, any change has the same result, Bad Egg.
>>47586142 cont'd Starting with gen 3, save file corruption is way less of a problem.
Go ahead and power off in the middle of saving. You won't lose your file. The game will just announce that the save is corrupted and that it's loading the previous version you saved. The game actually has 2 save slots and alternates between them, and knows which is the latest by using a serial number that increments each time you save.
The save is divided up into blocks that are checksummed individually and written in a different order each save. I'm not sure whether the block reordering is for flash wear leveling, or an attempt to confuse save editors. I'm inclined to believe it's wear leveling; putting them back in the right order is pretty trivial since there's a block number at the end or each block.
When loading a save, if one block's checksum is wrong, not all blocks in a save slot have the same serial number, or not all blocks are present, it detects the save as corrupted. If both saves are corrupted, it tells you the save is deleted. The only real ways to have that happen are if the flash chip is failing or you've been mucking with the save data.
All this serves to stop the cloning glitches that were popular in gens 1 and 2, as well as avoid losing you save if your battery dies while you're saving. Now if you try something like that, it'll just make it load the last save. -- However, in Emerald they slipped a bit with the battle tower, doing some sort of partial save that you can exploit to clone Pokemon.
>>47586142 Thanks. That makes everything clearer. I've heard of stories of bad eggs deleting Pokemon or whole boxes but that doesn't seem to be true, going off what you said. So do programs like Pokemon Trainer generate genuine data? And did they need a new safety check for online trades?
>All this serves to stop the cloning glitches that were popular in gens 1 and 2, as well as avoid losing you save if your battery dies while you're saving. Now if you try something like that, it'll just make it load the last save. -- However, in Emerald they slipped a bit with the battle tower, doing some sort of partial save that you can exploit to clone Pokemon. That's really cool, I didn't know about the savegame bit.
All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.
If a post contains personal/copyrighted/illegal content you can contact me at email@example.com with that post and thread number and it will be removed as soon as possible.