Zelda Warrior Princess
Vložit
- čas přidán 27. 06. 2024
- In this episode I’ll show you how to use the popular graphics editor YY-CHR to hack an NES game’s sprite graphics.
Support the channel on Patreon: / neshacker
YY-CHR Website: w.atwiki.jp/yychr
Chapters:
0:00 Introduction
1:12 Installing YY-CHR
1:48 YY-CHR Overview
3:58 Finding Sprite Graphics
7:20 Jump Lists
8:59 Temporary Bitmaps
11:16 Drawing Zelda
13:10 The Final Result - Věda a technologie
No demons were summoned in the making of this episode. Heads up: the game hack is NOT available for download, nor are any patch files… sorry about that! Regardless, I hope you enjoyed the video!
What a shame. I assume other players would love this graphics hack!
YY-CHR has to be around 20yo at this point. I remember using it to make custom Final Fantasy graphics in the early 2000's. I'm amazed that it's still being used and that nobody made a better version without all the quirks. Great vid by the way. I've been out of the NES hacking scene for too long :)
Thanks! Yeah I really love this video in particular, it was a blast to make. Hopefully it inspired you to pick up YY-CHR and get back to doing some hacking :D
The production quality, that t-shirt, the technical jargon is off the chain!
Haha, thank you :D
100%!!!
The scratchpad naming sequence was comedy gold!
Thanks! I was having trouble trying to understand how to align the sprites!
Finally I will play Zelda with my custom monsters.
It’s so cool, right? :)
Fantastic video! Your content and production are next level.
Thanks, man :)
You went through the trouble of making a Windows user called ユーザー (User) just for a one-second visual gag!? Amazing...
It’s all about the little things :)
@@NesHacker it is =)
This is great! I don’t do ROM hacking, but it’s nice to see that there are other people interested in 6502 assembly. I’ve recently been working on implementing IEEE754-compliant floats and associated subroutines for the 6502. Been slow going what with being busy with classes, but I’ve learned a lot about floats and some stuff about assembly too!
That’s great! I love working on library projects like that :)
I took your suggestion mid video: learn Japanese and then finally got to play Valkyrie no Densetsu
Patiently waiting for 6502 assembly part 4
Hahaha, I'm working on it xD!
You should rename it to The Legend of Link now.
I just discovered your channel and have been binging the old videos. Upvote for hilarious shirt.
Haha thanks
Yay new episode!!!!!!!
Haha you're fast, man ;)
awesome- cant wait to try this :D
It’s super fun :)
The title screen at the end! 😂
This would be fun to change up subtle things at first, like a pixel "spot" missing on an enemy. Then dino has five horns... Building up oddities as you progress. Ending having a yellow ring, master sword shots technicolor, and ganon flashing on screen briefly as an h.p. lovecraft abomination as you battle it. Bonus if abomination flashes throughout playthrough, like when hitting a boss and it flashes, one frame could be ganon.
...then make some repo carts, and give them away for free at a convention. Start a new haunted cart schoolyard story.
That’s an amazing idea, hahaha! But WAY beyond just a graphics substitution methinks xD. Did you see all those blank spots in the rom? There’re just filled with kilobytes of straight $FFs… might be something one could do if they were so inclined…
@@NesHacker I am guessing it is a "pallet shift" when an enemy is hit, and it flashes? Not two different sprites?
While more than sprite substitution for sure, not nearly as complex. Have a timer running at beginning of game, and at preprogrammed times (not sure how random number generator works with NES), flash monsters. In dungeons, different ruleset possibly with shorter time between flashes. Boss rooms would have to be programmed individually, and would be most complex if the pallet shift occurs when hit versus sprite substitution.
@@bluesteelbass RNG is a whole topic unto itself (probably going to dedicate a whole video to it at some point). Palette shifting is simply changing the palette colors between frames. I can be used to make all sorts of effects, like the enemy flashing you mentioned, or even the waterfall animations on the Zelda 1 title screen.
Nice! Great explanation. I imagine that there is some sort of tool out there to also make an IPS patch of your changes.
I would have watched this video many months ago if I had realized it was about YY-CHR. Looks like I need to grab the latest version. I like the labels and scratch post.
Yeah this is easily the best poorly performing video I’ve made. But I like the title, so I’m sticking with it xD
That was awesome! Loved seeing the end result. They should've done an RE4 Separate Ways storyline haha. It is weird how Zelda is the name of the game but she's barely in it. Imagine if Super Mario was Super Peach or something
Thanks, this was very helpful!
Sweet, I’m glad it helped :)
Very impressive video!!!
Great channel, subbed
Thanks for sharing factual knowledge on the architecture, programming interfaces and how to use the tools !! This is absolutely worthwhile content =)
Based catgirl art uwu
Haha
Great video and information! Thanks for your time putting all those together and delivering high quality content. A question I have: is there any "programmatic" way of finding out where the tilesets are located into the PRGROM? Is this related to a mapper?
Straight algorithmic? Most likely not, as it’s somewhat hard to differentiated between graphics and code in a raw ROM. I bet an AI could be trained to figure it out though, since it’s definitely a pattern matching problem. Not that I know anything about training AIs though, haha.
Actually if it's an .nes file, you can read the 5th byte (at index 4), multiply that by 16384, add 16 and go to that location in the file. That's where the chr roms usually start. Does not work for all games though
more vids on 6502 nitty gritty!!
also nice job on zelda sprites!! looks awesome
Soon. SOON. ;)
Just found your channel. This is great! Keep it up sir!
Wow your final result is really great! is there anywhere to d/l your hack? Did you really change the intro story too? If you did. how was that done?
Unfortunately, no it’s not available for download. I did indeed redo the story text! It’s a little hard to explain here, but I’m planning on doing an episode where I show how to do that kind of hack in the future, so keep an eye out for it :)
@@NesHacker excellent!! Can't wait for it! Maybe you could upload your hack. Why not to the same places as others?
やっと日本語の勉強が役に立てます!
本当にだよ
Zelda Warrior Princess AKA how The Legend of Zelda should've been, because everyone thought you play as Zelda when the game first came out when it's actually Link.
Man i love the T-Shirt.
Yeah it’s one of my favorites 😆
Could you make a video on how to change palettes ingame ?
dang if i still use Mac this must be my whole day with editing Dragon Warrior rom
Well, that FTW sprite somehow snuck in after all at 14:14 lol
I originally wanted to use the “woooow” anime SFX from Fairytale when I showed that for the first time but I couldn’t find a decent copy to mix in. So I went with the record scratch 😂
Hi! Thanks for your video.
I have a question and maybe you have the answer.
Recently I have hacked the color of Ghosts n' Goblins.
The process is quite easy, once discovered. I have used the debugger of mesen > memory tools > palette RAM. Played a bit with the palette in order to understand how things work.
Then I have used a hex editor to change the nes rom permanently.
I tried the same process with other roms and it still works.
One thing I've noticed though is that every nes rom has a different palette values adress and it is never the same spot.
So my question is: how assembly understands that it is dealing with color?
Thanks!
So check out my Nes Graphics Explained video. Basically there’s a special spot in Video RAM connected to the PPU where the palette values are written. So, basically, a game will write values to video ram at run time to tell the PPU what colors to use. Generally these values are stored in a table somewhere and there will be a loop that goes through and loads them. Finding the palette locations in a ROM is pretty tough, but you can do it using debugger breakpoints that look for specific values to be written to video RAM memory locations. I’m hoping to do a video on some more advanced rom hacking techniques like this in the future.
Hey Ryan, I have a question for you. Is there any way you can go over how rom flash cartridges work? Like the Everdrive cartridge. I know the NES used a bunch of different mappers for the cartridges over the years. I'm wondering how those flash cartridges feed the roms to the NES and how or if they emulate the different mappers. Essentially, I'd really like to know how they work. It would be great if you could do a video on that or if you could point me in the right direction. Running roms on original hardware is like the ultimate NES hack. Thank you. Keep up the great work!!!
Hey Paul, that’s a super good question. I am planning on doing a “Mappers” explained video that goes into the details at the hardware and software level for how mappers work in general, along with some specific examples (I’m thinking the MMC1 chip would be a good one to dive into). So, yes, I plan on covering it… But that said it requires a bit more research than a normal video because I’ll want to do some hardware hacking alongside the software to test things out myself.
@@NesHacker Hey thanks for the reply. I've been digging through this topic for the last few days and this rabbit hole goes deep. The more I looked into it, the more I realized I didn't know. I'm only a hobbyist, but I know a thing or two about a thing or two. This topic may be way beyond the scope of your channel. I'm not saying you couldn't do it. I'm sure you could. I'm just saying it is very involved. There's all sorts of different hardware on these various mappers that need to be considered. That's only something an ASIC or FPGA could handle. Info on all the different chips is hard to come by. It's like each circuit board needs to be reverse engineered individually. It's quite a project.
It would be cool though if you could go over the sequence of operations of the NES. Like when you put in a cartridge and press the power button, what happens? I'd like to see somebody show that visually and point out how the NES communicates with the cartridge and all the different chips.
Either way, whatever you plan on doing, I'll be here. Your videos have really helped me out. Looking forward to the next one. Thanks!!!
@@NesHacker Also, do you have Twitter or Facebook or even an email address for your channel? If you did, it would help if you fill out your "About" profile.
Where'd you get the shirt, though?
9:40 - yeah, YY-CHR is strange, and in more than one way. Pretty sure the load state button STILL only supports ZSNES save states for god-knows-why
At least Lunar Magic can work around this with palette exporting, but still, ugh
Indeed, but overall I’m a pretty big fan of the tool.
that would be the real legend of zelda, playing as zelda
Does that run on Mintsu?
Canonical version imo
PEGI 17
TIL why it's named YY-CHR.
I wish more folks would watch this video, I really enjoyed making it.
Zelda was the original protagonist/warrior in the original games Gameboy❤ the character was named zelda in the original game
Why did they change thatZelda was the original protagonist/warrior in the original games Gameboy
I can't hear a goddamn thing you're saying over that incredible t-shirt.
"what if zelda was a girl?"
Is question, must kno
How dare u show a non downloadable rom....didn't mom teach you to share
WOKE! lmao