Zelda Warrior Princess

  Рет қаралды 14,851

NesHacker

NesHacker

Күн бұрын

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

Пікірлер: 79
@NesHacker
@NesHacker 2 жыл бұрын
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!
@FloatingSunfish
@FloatingSunfish 2 жыл бұрын
What a shame. I assume other players would love this graphics hack!
@christopherdemichiei
@christopherdemichiei 2 жыл бұрын
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 :)
@NesHacker
@NesHacker 2 жыл бұрын
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
@mest1589
@mest1589 2 жыл бұрын
The production quality, that t-shirt, the technical jargon is off the chain!
@NesHacker
@NesHacker 2 жыл бұрын
Haha, thank you :D
@atomicnoexcept
@atomicnoexcept 2 жыл бұрын
100%!!!
@Bullfrog245
@Bullfrog245 Жыл бұрын
The scratchpad naming sequence was comedy gold!
@Ribiveer
@Ribiveer 2 жыл бұрын
You went through the trouble of making a Windows user called ユーザー (User) just for a one-second visual gag!? Amazing...
@NesHacker
@NesHacker 2 жыл бұрын
It’s all about the little things :)
@SuperColdLemonade
@SuperColdLemonade 2 жыл бұрын
@@NesHacker it is =)
@user-zm4ro7yh4e
@user-zm4ro7yh4e 2 жыл бұрын
Thanks! I was having trouble trying to understand how to align the sprites! Finally I will play Zelda with my custom monsters.
@NesHacker
@NesHacker 2 жыл бұрын
It’s so cool, right? :)
@crashandsideburns
@crashandsideburns 2 жыл бұрын
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!
@NesHacker
@NesHacker 2 жыл бұрын
That’s great! I love working on library projects like that :)
@pedroepires
@pedroepires 2 жыл бұрын
I took your suggestion mid video: learn Japanese and then finally got to play Valkyrie no Densetsu Patiently waiting for 6502 assembly part 4
@NesHacker
@NesHacker 2 жыл бұрын
Hahaha, I'm working on it xD!
@bluesteelbass
@bluesteelbass 2 жыл бұрын
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.
@NesHacker
@NesHacker 2 жыл бұрын
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…
@bluesteelbass
@bluesteelbass 2 жыл бұрын
@@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.
@NesHacker
@NesHacker 2 жыл бұрын
@@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.
@HobokerDev
@HobokerDev 2 жыл бұрын
You should rename it to The Legend of Link now.
@chadrem
@chadrem 2 жыл бұрын
Fantastic video! Your content and production are next level.
@NesHacker
@NesHacker 2 жыл бұрын
Thanks, man :)
@brandonbert
@brandonbert 2 жыл бұрын
Nice! Great explanation. I imagine that there is some sort of tool out there to also make an IPS patch of your changes.
@InsaneFirebat
@InsaneFirebat Жыл бұрын
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.
@NesHacker
@NesHacker Жыл бұрын
Yeah this is easily the best poorly performing video I’ve made. But I like the title, so I’m sticking with it xD
@3vi1J
@3vi1J 9 ай бұрын
I just discovered your channel and have been binging the old videos. Upvote for hilarious shirt.
@NesHacker
@NesHacker 8 ай бұрын
Haha thanks
@helloww_
@helloww_ 2 жыл бұрын
awesome- cant wait to try this :D
@NesHacker
@NesHacker 2 жыл бұрын
It’s super fun :)
@LukeAvedon
@LukeAvedon 2 жыл бұрын
Yay new episode!!!!!!!
@NesHacker
@NesHacker 2 жыл бұрын
Haha you're fast, man ;)
@alpagkrati
@alpagkrati 2 жыл бұрын
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?
@NesHacker
@NesHacker 2 жыл бұрын
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.
@dentjoener
@dentjoener Жыл бұрын
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
@WillSams
@WillSams 2 жыл бұрын
Thanks, this was very helpful!
@NesHacker
@NesHacker 2 жыл бұрын
Sweet, I’m glad it helped :)
@jarrodkober
@jarrodkober 3 ай бұрын
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
@SuperColdLemonade
@SuperColdLemonade 2 жыл бұрын
Thanks for sharing factual knowledge on the architecture, programming interfaces and how to use the tools !! This is absolutely worthwhile content =)
@jessebillson
@jessebillson 2 жыл бұрын
Very impressive video!!!
@InfinityDz
@InfinityDz 2 жыл бұрын
Great channel, subbed
@sheboltaev
@sheboltaev 8 ай бұрын
やっと日本語の勉強が役に立てます!
@NesHacker
@NesHacker 7 ай бұрын
本当にだよ
@downscale
@downscale 2 жыл бұрын
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?
@NesHacker
@NesHacker 2 жыл бұрын
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 :)
@downscale
@downscale 2 жыл бұрын
@@NesHacker excellent!! Can't wait for it! Maybe you could upload your hack. Why not to the same places as others?
@laggianput
@laggianput 2 жыл бұрын
Based catgirl art uwu
@NesHacker
@NesHacker 2 жыл бұрын
Haha
@BillAnt
@BillAnt 8 ай бұрын
Well, that FTW sprite somehow snuck in after all at 14:14 lol
@NesHacker
@NesHacker 8 ай бұрын
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 😂
@JB-mm5ff
@JB-mm5ff 2 жыл бұрын
more vids on 6502 nitty gritty!! also nice job on zelda sprites!! looks awesome
@NesHacker
@NesHacker 2 жыл бұрын
Soon. SOON. ;)
@dcdondon
@dcdondon 2 жыл бұрын
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!
@NesHacker
@NesHacker 2 жыл бұрын
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.
@paulcrandall2534
@paulcrandall2534 2 жыл бұрын
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!!!
@NesHacker
@NesHacker 2 жыл бұрын
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.
@paulcrandall2534
@paulcrandall2534 2 жыл бұрын
​@@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!!!
@paulcrandall2534
@paulcrandall2534 2 жыл бұрын
@@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.
@thelargesmoke4197
@thelargesmoke4197 8 күн бұрын
Could you make a video on how to change palettes ingame ?
@dotapark
@dotapark Жыл бұрын
dang if i still use Mac this must be my whole day with editing Dragon Warrior rom
@marting5308
@marting5308 Жыл бұрын
Man i love the T-Shirt.
@NesHacker
@NesHacker Жыл бұрын
Yeah it’s one of my favorites 😆
@kirby0louise
@kirby0louise 2 жыл бұрын
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
@NesHacker
@NesHacker 2 жыл бұрын
Indeed, but overall I’m a pretty big fan of the tool.
@IncredibleMD
@IncredibleMD 4 ай бұрын
Where'd you get the shirt, though?
@Ribula1
@Ribula1 Жыл бұрын
Does that run on Mintsu?
@theonlinezone6904
@theonlinezone6904 Жыл бұрын
that would be the real legend of zelda, playing as zelda
@kingbrettpro
@kingbrettpro 4 ай бұрын
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.
@jamesrivettcarnac
@jamesrivettcarnac 2 жыл бұрын
Canonical version imo
@mario.szkaradek
@mario.szkaradek Жыл бұрын
PEGI 17
@khatharrmalkavian3306
@khatharrmalkavian3306 2 жыл бұрын
TIL why it's named YY-CHR.
@NesHacker
@NesHacker 2 жыл бұрын
I wish more folks would watch this video, I really enjoyed making it.
@goddessofdestructiondiana
@goddessofdestructiondiana Жыл бұрын
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
@huntercoleherr
@huntercoleherr 2 жыл бұрын
I can't hear a goddamn thing you're saying over that incredible t-shirt.
@ShignBright
@ShignBright 10 ай бұрын
"what if zelda was a girl?"
@NesHacker
@NesHacker 10 ай бұрын
Is question, must kno
@retrogamestudios7649
@retrogamestudios7649 Жыл бұрын
How dare u show a non downloadable rom....didn't mom teach you to share
@radthadd
@radthadd Жыл бұрын
WOKE! lmao
Computing Pi on the NES
9:43
NesHacker
Рет қаралды 164 М.
The Code That Makes Mario Move
9:53
NesHacker
Рет қаралды 509 М.
Айттыңба - істе ! | Synyptas 3 | 7 серия
21:55
kak budto
Рет қаралды 1,5 МЛН
小路飞第二集:小路飞很听话#海贼王  #路飞
00:48
路飞与唐舞桐
Рет қаралды 11 МЛН
Don’t take steroids ! 🙏🙏
00:16
Tibo InShape
Рет қаралды 7 МЛН
Зомби Апокалипсис  часть 1 🤯#shorts
00:29
INNA SERG
Рет қаралды 6 МЛН
Making a Metroidvania for the Playdate
13:45
SquidGod
Рет қаралды 130 М.
Coding NES Loops
17:10
NesHacker
Рет қаралды 26 М.
NES Sprites, OAM, and the Battle for Priority - Behind the Code
19:17
Displaced Gamers
Рет қаралды 39 М.
How Zelda Saves Your Game
10:03
NesHacker
Рет қаралды 202 М.
The Making of The Legend of Zelda: Breath of the Wild Video - The Beginning
10:03
Nintendo of America
Рет қаралды 3,8 МЛН
Coding NES Subroutines
8:15
NesHacker
Рет қаралды 53 М.
I Played Zelda 1 NES in 2023, and it was NOT What I Expected
23:33
Offbeat Drill
Рет қаралды 197 М.
[TAS] NES The Legend of Zelda by Lord Tom in 22:17.53
23:38
TASVideosChannel
Рет қаралды 155 М.