| |||
Views: 88,496,026 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-28-24 10:20 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 1 guest |
Main - ROM Hacking - Zelda - The Legend of Link (v3-12-20) Released | New thread | New reply |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 945/968 EXP: 2368432 Next: 93419 Since: 05-24-07 Last post: 960 days Last view: 816 days |
ExRAM is not battery backed. I use ExRAM for various functions.
The way I'm able to load the different roms, is by having code loaded into ExRAM that sets up the various banks for whichever game, so that when I'm in $5C00-$5FFF, I can swap out all of the NES's RAM, then I jump to the reset vector which then kicks on the selected rom. Once within whichever game, I use the ExRAM for whatever I need it to. It's a main function for Super Mario Bros. 2 JPN, because I had to restore the missing PRG-RAM the game uses originally in the famicom. The ExRAM also includes registers near the end of it, to determine if certain actions were performed by the user. As for the header, yeah it's a mess. Both my mmc5 games only use 32kb sram. I use CHR-ROM because I swap out swaths of pages to perform animation. Both All-Stars, & Legend of Link, use 1024kb for CHR-ROM. I'm dependant on mmc5's $5130 function, which allows me to determine which section through the entire CHR-ROM to load the graphics from. |
Dracula X |
| ||
Red Paragoomba Level: 19 Posts: 60/64 EXP: 31145 Next: 4632 Since: 03-11-14 From: Dracula's Castle Last post: 1739 days Last view: 702 days |
Try this code to see if it will fix most of the problem:
|
NetSplit |
| ||
Level: 32 Posts: 177/178 EXP: 188061 Next: 18381 Since: 02-26-07 Last post: 2219 days Last view: 2144 days |
When you're doing a code dump on the forums, can you explain where in the ROM you intend the code to go and how the code is different from what you're replacing? Your code has no comments and little context, so even for technical people like myself, it's not clear what its purpose is supposed to be or if it's even at all correct. |
Dracula X |
| ||
Red Paragoomba Level: 19 Posts: 61/64 EXP: 31145 Next: 4632 Since: 03-11-14 From: Dracula's Castle Last post: 1739 days Last view: 702 days |
This is a bankswitch bugfix. The code fixes some of the problems like if something happened in the original game but not the mapper converter hack that's because something was wrong with the original code. This code should fix some of the problems.
This code is for this ROM hack. |
NetSplit |
| |||
Level: 32 Posts: 178/178 EXP: 188061 Next: 18381 Since: 02-26-07 Last post: 2219 days Last view: 2144 days |
Your update helped enough that I was able to look into this now, but I should probably be more specific about what I was looking for. In particular, things you should probably include when posting a block of code are what game it's for (we're talking about both SMB and Zelda here. Is it both?), what it is (bankswitching routine), where it's located ($FFAC in several banks for Zelda, or give the actual file address if relevant), what bug you're fixing, what's wrong with the original code, and what your fix does to solve that. I haven't been able to figure out the answers to those last 3 points yet.
This code looks pretty crazy to me in general, so I decided to look into it. First, I don't know what you think your change fixes, but it should have no effect. STA doesn't change processor flags, so there's no reason to PHP before and PLP after. Second, the pushes originally present in this function are all totally unnecessary. One can have a fully equivalent function without them:
The register writes also seemed a little strange to me, so I looked up the MMC5 documentation. Looking at Legend of Link, this game runs in PRG mode 1 ($5100 == 1), which has two 16 KB banks. These are configured through registers $5115 (PRG bank 1) and $5117 (PRG bank 3). In mode 1, register $5114 is completely ignored, so there's no reason to be writing it in this function. These registers also only take one write, but this function writes to each twice, so the effect of the first write is lost. Finally, in mode 1, the lowest bit of the write is ignored, so there's no reason to be OR'ing by 1. That means this is a totally equivalent function:
Further still, I can't find any reference to a register $A001 in the documentation. I have no clue what this is intended to do, and removing the write to it doesn't seem to cause any noticeable problems in the emulators I've tried. This function should probably just be:
All-Stars is probably similar, but could be more complex because the different games it has to run may have different requirements. Edit: Assuming the value being passed in is always a constant, that constant could be changed to already be shifted left by 1 and OR'ed by #$80. Then the JSR to this function could be replaced with just the STA $5115. No need to call a bankswitch function at all. |
hossbags2 |
| ||
Micro-Goomba Level: 9 Posts: 10/14 EXP: 3106 Next: 56 Since: 09-12-14 Last post: 706 days Last view: 503 days |
I noticed if you go to your inventory screen and accidentally choose a blank item and hit enter to go back to the game, the game crashes. |
erpster2 |
| ||
Red Goomba Level: 17 Posts: 18/48 EXP: 24268 Next: 475 Since: 09-29-09 Last post: 20 days Last view: 20 days |
a different data corrupting bug was reported on this review of Zelda - Legend of Link on the RH site in late November 2018:
http://www.romhacking.net/reviews/3859/#review by the way, the game seems to work okay on Mesen emulator as I ran it myself on a Windows 10 computer. Posted by hossbags2 yup, I was able to easily reproduce this problem on the NES emulators (FCEUX, Nestopia, Nintendulator & Mesen) edit 12/26: it would be nice in a future release that the selection "cursor" on the inventory screen would "skip" empty or blank spaces like in the original unmodified Zelda 1 game. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 948/968 EXP: 2368432 Next: 93419 Since: 05-24-07 Last post: 960 days Last view: 816 days |
I looked up that inventory crash, (good find, people) turns out I missed a JMP that needed to be changed, after I shifted some code to free up additional rom space. The problem is, is that I need to sift through my rom versions to figure out exactly where that JMP originally went to.
I'm barely on his site due to working 60 hours every week, my free time is slim to none so I haven't been able to do any sort of projects or upkeep on them. I'm not sure when I'll be able to get to this and release a new patch, but this WILL be fixed I can assure you all on that. As for requests, cosmetic uplifts, etc, I'm just not interested. The game the way it is (gameplay and visuals) will remain the way it has been for years. However, those that wish to modify or tweak my work are more than welcome to release their own patches with their desired changes. Thanks for the report, to those that are active on romhacking.net, please report over there that I am aware of the crash, have found the issue, and will release a fix down the road. This site (acmlm) will be the first to know of it. Enjoy the holidays, and thank you to everyone for continuously enjoying my work, means alot! :-) |
Googie |
| ||
Giant Red Paratroopa Level: 77 Posts: 1388/1407 EXP: 4181755 Next: 9374 Since: 02-19-07 From: Brooklyn, NY Last post: 11 days Last view: 11 days |
Posted by infidelity Make that money, bro. ____________________ My Linktree |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 949/968 EXP: 2368432 Next: 93419 Since: 05-24-07 Last post: 960 days Last view: 816 days |
Posted by GoogiePosted by infidelity Hahaha! Tryin' to! :-D Anyway, the new patch has been released. Be sure to read the readme. :-) |
Alien-Type-0 |
| ||
Level: 20 Posts: 70/92 EXP: 42392 Next: 47 Since: 01-02-18 Last post: 1689 days Last view: 1537 days |
Posted by infidelityPosted by GoogiePosted by infidelity Money kills don't work too hard for it, its not worth it in the end. I read the readme just now, good grief was I pissed after reading 4. I had almost beaten you're game, but I had used a game genie code to acquire 1 item. Came back home from work one night and began playing again to finish it off. Battery save file got corrupted and sent me all the way to beginning with half of my items. Even the save state I had couldn't get it back, I was recording at the time and ruined everything. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 950/968 EXP: 2368432 Next: 93419 Since: 05-24-07 Last post: 960 days Last view: 816 days |
Posted by erpster2 You can do that in my game, by pressing the select button. |
erpster2 |
| ||
Red Goomba Level: 17 Posts: 21/48 EXP: 24268 Next: 475 Since: 09-29-09 Last post: 20 days Last view: 20 days |
I wanted to be BOLD enough to play Legend of Link in NES emulators other than FCEUX/Nestopia/Nintendulator on my PC and I have found a few of them that can handle the game very well.
Mesen v0.9.7 (bug fixes with MMC5 started with v0.8.1, i think): https://github.com/SourMesen/Mesen/releases/tag/0.9.7 puNES (NES) Emulator v0.1.03 released a few days ago: https://github.com/punesemu/puNES/releases/tag/v0.103 this one contains crucial mapper MMC5 and 213 bug fixes that make Legend of Link run correctly in puNES as v0.1.02 & earlier could not properly run the game. |
X2 Whiskey |
| ||
Newcomer Level: 3 Posts: 1/2 EXP: 124 Next: 4 Since: 01-18-19 Last post: 1924 days Last view: 1919 days |
Hello,
Yeah this is my first post. Anyways, I like soldering things and I put together my first repro of this game using the last 2018 version on a ETROM board from an Uncharted Waters donor. The game plays fine, but for some reason the save doesn't work. I rechecked the board by uninstalling the EPROMS and replacing the original Uncarted Waters ROMs and the save feature was working fine there. Is anyone else having this problem on their physical cart versions? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 951/968 EXP: 2368432 Next: 93419 Since: 05-24-07 Last post: 960 days Last view: 816 days |
Posted by X2 Whiskey I have a reply to this from the man who built me my personal cartridge of this, and who's helped me be able to beta test my work on his nes. “ETROM doesn’t have enough SRAM. But the etrom board will work. You have to remove the SRAM and the WRAM chips , install 256kb chips. Then find the two solder pads labeled CL15 and SL15. On the CL15 pad you’ll see a small connector in between the two halves of the solder pad. Cut this line so the CL15 is not working any longer. Then just solder the SL15 pad. Doing this enables the use of the larger SRAM chips. The save should work fine after that. “ |
X2 Whiskey |
| ||
Newcomer Level: 3 Posts: 2/2 EXP: 124 Next: 4 Since: 01-18-19 Last post: 1924 days Last view: 1919 days |
@infidelity
Thank you good sir for both the perfect answer and being civil, and not to mention the cool hack along with all of the work you've put into it. I don't have any appropriate SRAM on hand, so it's going to be a few weeks before I can complete assembly. |
Mattiac |
| ||
Newcomer Level: 2 Posts: 1/1 EXP: 42 Next: 4 Since: 06-18-19 Last post: 1775 days Last view: 1745 days |
Hello, infidelity-san! How are you doing?
Your Zelda 1 patch is impressive! I'm now gonna try to translate Zelda 1 to my native language Swedish, but I'm not skilled enough to add the Swedish characters Å, Ä and Ö. The Japanese version of Zelda 1 has five rows of letters. Do you think it would possible to apply that to the PAL version? I haven't been able to figure out how the nametable works. I'm using the PAL version of the ROM that I extracted from the PAL version of the Wii WAD:s. I would provide you with the ROM file if you can help me out. I need similar help with Zelda 2, but I've asked a guy and awaits his response... Thank you for reading my e-letter! Have a nice day! All the best, Mattiac |
Toucan2 |
| ||
Newcomer Level: 2 Posts: 1/1 EXP: 40 Next: 6 Since: 12-06-19 Last post: 1604 days Last view: 1604 days |
Posted by Chris Miller I am playing "The Legend of Link" for the first time and have replicated this situation (hack version: v12-23-18). If you beat Ganon in the Light World (Skull Dungeon) and haven't yet picked up the master sword, you cannot pick up the master sword; returning to that spot and pressing 'A' has no effect. However, beating the first three dungeons and then going for the master sword works as expected. I have Nestopia save states for both situations, if anyone is interested. |
erpster2 |
| ||
Red Goomba Level: 17 Posts: 26/48 EXP: 24268 Next: 475 Since: 09-29-09 Last post: 20 days Last view: 20 days |
Posted by Toucan2Posted by Chris Miller Problem also confirmed on latest FCEUX git/SVN nightly build (and possibly other NES EMUs like Mesen, puNES & Nintendulator) as the Master sword becomes un-collectible after beating the 1st skull dungeon in the light world with only the Wooden Sword. Definitely a bug with the game itself. Edit 1/21 - Also not getting the master sword after beating Ganon in the 1st Skull dungeon will not only prevent the game from obtaining the master sword later on, it will also not allow upgrading to the Tempered Sword (aka level 3 sword), even if having at least 12 hearts on the life meter. the Master Sword is required in order for that to be upgraded to the Tempered Sword as the game won't allow upgrading directly from the Wooden Sword to the Tempered Sword. well Toucan2 & Chris - since you guys did not get the master sword before clearing the 1st skull dungeon in the light world, you're gonna have to use a cheat code to change your wooden sword into the master sword (I'm not gonna mention that code as you can find it out there on the internet) |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 954/968 EXP: 2368432 Next: 93419 Since: 05-24-07 Last post: 960 days Last view: 816 days |
UPDATE
New .ips released. Link on the first page updated. You are only supposed to pick up the Master Sword once you've collected the first 3 triforce pieces in the light world. I made it so that when register $671 is FF, which is the green triforce pieces, you are able to pull the master sword. I have 2 other registers doing checks, $688 & $659, but it has been many years since I've dicked around with code, and I didnt log what those 2 registers are for. I will examine this when I can, and if I can replicate the error you guys are pointing out, I'll release a patch asap. I sincerely appreciate everyone still enjoying this game, and the reports of major glitches/breaks/etc. -infidelity :-) |
Main - ROM Hacking - Zelda - The Legend of Link (v3-12-20) Released | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 117, rows: 156/157, time: 0.040 seconds. |