News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Zelda 1 Redux / The Legend of Zelda Redux  (Read 92549 times)

jimstrom

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #240 on: April 19, 2020, 04:51:21 pm »
I love em, so much beter than the original sprites, i also really like your Ganon, reminds me of my own mockup i did based on his Oracle of Ages/Seasons appearance which in my opinion is his best appearance. Waiting with excitement for Gleeok and Aquamentus!

The3Dude

  • Full Member
  • ***
  • Posts: 172
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #241 on: April 19, 2020, 05:06:59 pm »
Mandhandla and Digdogger are looking great! Love the improvements. :thumbsup:
~The3Dude~

jimstrom

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #242 on: April 19, 2020, 05:14:45 pm »
I tried giving your Manhandla sprite the Aquamentus palette, and in my opinion it fit's better making it much more plantlike, maybe something to concider, or maybe not.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #243 on: April 19, 2020, 11:34:25 pm »
Okay I think I'm done with the Boss sprites for now.
Let me know what you guys think.


The3Dude

  • Full Member
  • ***
  • Posts: 172
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #244 on: April 20, 2020, 12:16:41 am »
Okay I think I'm done with the Boss sprites for now.
Let me know what you guys think.



I think it looks great! :D

Now I just can't wait for the patch. ;D
~The3Dude~

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #245 on: April 20, 2020, 01:32:00 am »
I just remembered something :P

There's is another somewhat official source for artwork on all the enemies, one which is not listed anywhere and not many know about it.

That other source being...
BS The Legend of Zelda

Here's the sprites for all the enemies used for it in 16bit:


As you can see, most of them follow the official artwork, and Ganon's follows a similar design pattern to that of ALttP.

Still though, I'm quite happy with how the sprites I made turned out in the end compared to the 16bit ones :)

EthansDreamLand

  • Jr. Member
  • **
  • Posts: 12
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #246 on: April 20, 2020, 03:01:06 am »
I think your redesigned sprites are cool while sticking true to the original sprites and artwork.

This is more related to the Link's Awakening GFX patch, but what is the sprite used for Ganon? Is it that Moblin King sprite from the Oracle games or is it similar to Ganon from the Oracle series.

mdtauk

  • Jr. Member
  • **
  • Posts: 25
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #247 on: April 20, 2020, 04:04:24 am »
Just to throw some more artwork into the conversation...
















AdamDravian

  • Jr. Member
  • **
  • Posts: 47
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #248 on: April 20, 2020, 07:26:45 am »
Let me know what you guys think.

I think the new bosses look great. Ganon, in particular, is a vast improvement. Excellent work.
Writer of the '80s-themed webcomic Satan Ninja 198X

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #249 on: April 20, 2020, 05:43:28 pm »
Thank you, guys!
I'll take some time to implement the redesigns into the actual sprites, so maybe next week.

I think your redesigned sprites are cool while sticking true to the original sprites and artwork.

This is more related to the Link's Awakening GFX patch, but what is the sprite used for Ganon? Is it that Moblin King sprite from the Oracle games or is it similar to Ganon from the Oracle series.

Iirc it's the Moblin King sprite.
Tbh it looks really off and not good looking to me.

EthansDreamLand

  • Jr. Member
  • **
  • Posts: 12
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #250 on: April 21, 2020, 12:58:18 am »
Iirc it's the Moblin King sprite.
Tbh it looks really off and not good looking to me.

TBH, I don't think the sprite itself is bad, it's just:

A. There's already a Ganon sprite in the Oracle games.
B. The Moblin King sprite is too goofy to be considered a final boss.

IDK how easy it would be to port the Oracle Ganon sprite, but if it's possible, I would like to see that in a future update for the Link's Awakening GFX patch. But I think the main Redux hack should take more priority though. Also, thanks for letting me know; I have been busy since my Spring college quarter started and I haven't gotten time to do another Zelda 1 playthrough.

pocket

  • Full Member
  • ***
  • Posts: 128
  • Super Mario Bros. Super Nerd
    • View Profile
    • my gaming tumblr
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #251 on: April 22, 2020, 06:08:30 am »
Okay I think I'm done with the Boss sprites for now.
Let me know what you guys think.



Wowzers, this is crazy improvement that I didn't think was even possible, Ganon is the most impressive of all i'd say.
Somebody alert me when a user friendly BS Zelda hacking tool is made. I will give my soul to work on a faithful SNES remake of Zelda 1.

Vanya

  • Hero Member
  • *****
  • Posts: 1722
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #252 on: April 22, 2020, 03:45:40 pm »
I have a suggestion for Manhandla.
The original had some pretty severe perspective going on with the body.
This new version does a much better job with that.

In contrast, the thing that still feels off that the original did as well is that the upper maw id just a flipped-over version of the lower one.
That really throws off the perspective. And even the SNES version has the same issue.

My actual suggestion is to either make the two side maws have the same overhead perspective as the other two (probably easier, but also less cool-looking) or give the upper maw some perspective so it makes more sense visually.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #253 on: April 22, 2020, 04:34:33 pm »
TBH, I don't think the sprite itself is bad, it's just:

A. There's already a Ganon sprite in the Oracle games.
B. The Moblin King sprite is too goofy to be considered a final boss.

IDK how easy it would be to port the Oracle Ganon sprite, but if it's possible, I would like to see that in a future update for the Link's Awakening GFX patch. But I think the main Redux hack should take more priority though. Also, thanks for letting me know; I have been busy since my Spring college quarter started and I haven't gotten time to do another Zelda 1 playthrough.

That's what makes it look bad for me...
The goofiness of it lol
I'll see what can be done about the LA GFX patch for Ganon's sprite specifically. The fact that his sprite is only half of the body and mirrored for all of the 4-5 poses he does will make it hard to accommodate to LA's one.

Wowzers, this is crazy improvement that I didn't think was even possible, Ganon is the most impressive of all i'd say.

Coming from you, that's a great compliment, thanks! :D

I have a suggestion for Manhandla.
The original had some pretty severe perspective going on with the body.
This new version does a much better job with that.

In contrast, the thing that still feels off that the original did as well is that the upper maw id just a flipped-over version of the lower one.
That really throws off the perspective. And even the SNES version has the same issue.

My actual suggestion is to either make the two side maws have the same overhead perspective as the other two (probably easier, but also less cool-looking) or give the upper maw some perspective so it makes more sense visually.

I think I kind of understand what you mean, but just to be sure, could you make a mockup for reference?
I think the problem with most sprites in Zelda 1 is that they really save up on GFX by mirroring graphics like there's no tomorrow.
The side and up/down jaws I think are mirrored, but I haven't implemented this enemy yet, so I have yet to test in-game.

Actually, I have already implemented all the enemies and NPCs, and most bosses.
I'm only missing Manhandla, Gleeok and Aquamentus, and test everything in-game.


-----------------------------------------------------------------------------------------------


The newly redesigned sprites are now implemented!
Please be sure to give the game a full test, also Ganon has a new palette now ;)

The only sprite which I couldn't implement as I desired is Digdogger.
For some weird reason, the Digdogger loads both the big sprite and half of the little digdogger within the same sprite, so I had to make both the little and big Digdoggers share the same eye so they don't look off.

If someone has a better idea on how to implement Digdogger, let me know.
But outside of that, everything else got in quite smoothly :D

Let me know if there's anything wrong!
Oh and I have also updated the OP to reflect the current updates.
« Last Edit: April 23, 2020, 08:35:55 pm by ShadowOne333 »

pleasejust

  • Full Member
  • ***
  • Posts: 101
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #254 on: April 23, 2020, 09:30:20 pm »
Just tried out the latest patches. Redux with optional patches:

-5 bomb upgrade
-rearranged bosses
-recolored dungeons

On initial impressions I noticed that
-seems like the rupee counter is only 2 digits. I thought 999 was the max)
-Arrows do appear as enemy drops right from the start. I thought you mentioned that you're only supposed to be able to buy arrows.
-Bombable walls hint on overworld is still a bit too obvious but it's ok. Would've been nice if it was more subtle, like a couple of odd pixels or something.
-I guess going through breakable wall tiles is a know thing...

Thanks.
« Last Edit: April 24, 2020, 03:37:24 pm by pleasejust »

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #255 on: April 26, 2020, 07:49:11 pm »
Just tried out the latest patches. Redux with optional patches:

-5 bomb upgrade
-rearranged bosses
-recolored dungeons

On initial impressions I noticed that
-seems like the rupee counter is only 2 digits. I thought 999 was the max)
-Arrows do appear as enemy drops right from the start. I thought you mentioned that you're only supposed to be able to buy arrows.
-Bombable walls hint on overworld is still a bit too obvious but it's ok. Would've been nice if it was more subtle, like a couple of odd pixels or something.
-I guess going through breakable wall tiles is a know thing...

Thanks.

  • All the counters in the game work in the same way.
    Meaning, you won't see 3 digits in the counter until you actually get to that amount of items.
    So it won't show the third digit until you get 100 rupees at least, the same applies to the Arrows and Bombs, although the bombs are limited to a max of 16 I think in vanilla.
  • Arrows are only obtainable in amounts of 5 from enemy drops. The arrows in the shops are a bundle of 30 when purchased, to accommodate for the price tag which I think is a reasonable price for the amount you get. Later on, when Arrow limits are implemented, you will pretty much max out on arrows (without the upgrade) with a simple purchase on shops.
  • You are using the Link's Awakening graphics, right? I had to make the cracked walls sprites based on Link's Awakening myself, since the original LA graphics hack didn't have cracked walls, so if they clash a lot it's because of the original graphics not being suited for actual rock-like tiles. A new custom tile for the overworld walls is needed for it, so it plays well alongside the theme of Zelda 1. Here's an example from LA DX:


  • Yeah that is a known problem. We still haven't figured out what exactly tells the game which tiles are solid and which are not (collision). Once that's figured out, the cracked walls feature should be 100% complete.

----------------------------------------------------------------------------

I modified the cracked wall tiles to be more akin to what the original LA GFX had, please redownload the patch and try again, let me know what you guys think:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/raw/master/patches/optional/Link's%20Awakening%20GFX.ips
« Last Edit: April 29, 2020, 02:39:18 pm by ShadowOne333 »

stratoform

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #256 on: May 03, 2020, 10:59:32 pm »
Dropping by to say that this project so far is beyond amazing! Played this oldie so many times over, and now it feels refreshing. The QoL adjustments and care taken to improve this game for fans is top-notch (finished Dungeon 1 using Redux only, no optional). Looking forward to using the add-ons later.

I'm amazed how the community has come together to give this game such careful love. And the project still has more goals to achieve! Doubt I can help anywhere but obviously all the smart and clever people have done milestones of progress. Thank you everyone. :)


====================
====================
====================


For PRG 0, USA. Likely can be modified to work with Japan too.


Let's you use flute to kill Pols Voice.
Code: [Select]
; x11C46 = $04:9C36
JSR flute_pols_call



; x13F40 = $04:BF30

flute_pols_call:
JSR $79D0        ; detour code

; -----------------------

LDA $051B        ; flute (0) = unused, exit
BEQ flute_pols_exit

; -----------------------

LDA $28,X        ; timer (0) = start sfx
BNE flute_pols_timer

LDA #$44+$80-1   ; timer = x44 frames
STA $28,X
RTS

; -----------------------

flute_pols_timer:
BMI flute_pols_exit    ; timer (x80+) = playing sfx
                       ; timer (x7F) = done

JSR $FEA6              ; kill all pols

; -----------------------

flute_pols_exit:
RTS

Note that pols don't use timers so it should be okay.


Code: [Select]
Famicom release
    $04:9C50: AD 18 05  LDA $0518   ; check microphone level
    $04:9C53: C9 14     CMP #$14
    $04:9C55: 90 03     BCC $9C5A

    $04:9C57: 20 90 FE  JSR $FE90   ; kill all Pols

Note that $0518 looks unused in USA. So might be free variable to play with.


Code: [Select]
USA PRG 0
$04:9C31: A9 FE     LDA #$FE
$04:9C33: 9D B2 04  STA $04B2,X
$04:9C36: 20 D0 79  JSR $79D0
==> insert new code here
$04:9C39: 60        RTS


================
================
================


Code: [Select]
05:B06A: B9 54 B0  LDA $B054,Y @ $B058 = #$89  (overworld)
05:B06D: 9D 46 03  STA $0346,X @ $034A = #$89

05:B06A: B9 54 B0  LDA $B054,Y @ $B05D = #$78  (dungeon)
05:B06D: 9D 46 03  STA $0346,X @ $034A = #$78


5-byte mystery table (B054-B058, B059-B05D)
05:B070: C8        INY
05:B071: E8        INX
05:B072: E0 05     CPX #$05
05:B074: D0 F4     BNE $B06A
05:B076: 60        RTS -----------------------------------------



$07:F119: CD 4A 03  CMP $034A = #$89  ; collision tile (range check)
$07:F11C: 90 30     BCC $F14E         ; bcc = always walkable

Some information on collision tiles. The cracked dungeon tiles maybe work because they are hybrid (DE 58 | DE 59). Overworld tiles as we know are problem (54-57).


================
================
================


How to flip heart rows. Make these hex changes.

; write cursor
05:AC71  [x16C81] = 82 08
05:AC7C  [x16C8C] = A2 08

; in-game vram ptrs
[x671B] = 69 12
[x6728] = 69 07


Code: [Select]
Original

         $6E97: A2 00     LDX #$00                                     A:05 X:08 Y:0C S:F8 P:nvUBdIzC
         $6E99: 98        TYA                                          A:05 X:00 Y:0C S:F8 P:nvUBdIZC
         $6E9A: 18        CLC                                          A:0C X:00 Y:0C S:F8 P:nvUBdIzC
         $6E9B: 69 07     ADC #$07                                     A:0C X:00 Y:0C S:F8 P:nvUBdIzc
         $6E9D: 85 0B     STA $0B = #$65                               A:13 X:00 Y:0C S:F8 P:nvUBdIzc

         $6EA5: A5 0D     LDA $0D = #$0C                               A:F2 X:08 Y:FF S:F8 P:nvUBdIZC
         $6EA7: 18        CLC                                          A:0C X:08 Y:FF S:F8 P:nvUBdIzC
         $6EA8: 69 12     ADC #$12                                     A:0C X:08 Y:FF S:F8 P:nvUBdIzc
         $6EAA: 85 0B     STA $0B = #$0B                               A:1E X:08 Y:FF S:F8 P:nvUBdIzc


 05:B8A2: B9 70 AC  LDA $AC70,Y @ $AC71 = #$A2
>05:B8A5: 99 02 03  STA $0302,Y @ $0303 = #$A2


Reload game for changes to show. RAM looks persistent.

Or hack RAM to fix savestates
x6E9C = 12
x6EA9 = 07


================
================
================


You may want to update the OP as 999 rupees looks finished?


================
================
================


To move game over text closer,

x1ACE5 = AC 08  ; continue text pos
x1ACF0 = EC 04  ; save text pos
x14AF5 = 50 27 37 47  ; heart cursor pos


================
================
================


fix game over flashing text


Code: [Select]
; x14B65 = 05:8B55

JSR gameover_flash_call
NOP
STA $0305
RTS



; x17F50 = 05:BF40

gameover_flash_call:
BEQ gameover_flash_done   ; old detour code


LDA $13      ; get save option (0-2)
AND #$03

TAY          ; load correct palette
LDA gameover_flash_attr,Y


gameover_flash_done:
RTS


gameover_flash_attr:
db $05,$50,$55


; flash text position
x14AFC = 05:8AEC = 23 D2 43 00 FF CB CB D3


old code:
Code: [Select]
05:8B49: B9 F1 8A  LDA $8AF1,Y @ $8B46 = #$29
 05:8B4C: 8D 03 03  STA $0303 = #$C2
 05:8B4F: A0 00     LDY #$00
 05:8B51: A5 29     LDA $29 = #$3F
 05:8B53: 29 04     AND #$04
 05:8B55: F0 02     BEQ $8B59

 05:8B57: A0 55     LDY #$55
>05:8B59: 8C 05 03  STY $0305 = #$00
 05:8B5C: 60        RTS -----------------------------------------
« Last Edit: May 05, 2020, 03:17:24 pm by stratoform »

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #257 on: May 05, 2020, 06:30:24 pm »
Oh wow @stratoform!

I didn't notice you replied to this thread at all, since I didn't get the notification by mail, but hot damn!
That's a lot of code lol

Let me go through each one:

---------------------------------------------------------------------------

1. POLLS VOICE:

I went through your Pols code, and it seems to be working just fine!
I tested killing the Pols with the normal Arrow method, and also with the flute, and they both work as intended!
Arrows kill only the Pols they touch, and using the Flute kills all the Pols in the room, just like the microphone feature from the Famicom release!

Also, interesting thing there about the RAM address $0518.
Indeed, if that's the address used by the Famicom release for the microphone, then that's an unused entry on the USA release.

---------------------------------------------------------------------------

2. COLLISION DATA:

Man that will surely come in handy.
While we still don't know how to make tiles $54-$57 react as solid tiles, that information might be helpful later on to fix that long-dreaded bug.
Once that's settled, cracked walls should be finished and properly implemented into Zelda 1!
(That's the only remaining bug with cracked walls)

---------------------------------------------------------------------------

3. FLIP HEART ROWS:

There seems to be a bit of confusion with this one.
From what I can see, your code modifies the heart rows in-game.

What I was attempting was to flip over the heart rows in the File Selection screen:


I want to flip them over so the first 3 hearts (and its subsequent hearts) appear next to the name, instead of next to the Death counter, and the ones from the Death counter move them upwards, next to the name
I can already change the row below next to the player's name, but the problem I have is that I haven't found a way to move the ones currently in the player's name to below.

Here's the data I've collected about that:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/06b9403e3aadb3e1dd7e0b1961d1eb0935ad5d46/code/redux.asm#L38-L54

---------------------------------------------------------------------------

4. GAME OVER TEXT AND FLASHING:

I'm having issue with this code.
While the text and cursor have been moved properly, when I select any of the options (CONTINUE/SAVE/RETRY), for some reason, instead of getting the Red flashing, I get background tiles.
It shifts between $05 (Number 5 in tiles), $50 (one of the heart tiles from the meter) and $55 (which is one of the rock tiles).
It doesn't change colours, it instead shows sprites/tiles.

I'm not sure if my implementation was wrong or something, but here's the code for that particular part, including your newly implemented code:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/06b9403e3aadb3e1dd7e0b1961d1eb0935ad5d46/code/redux.asm#L120-L206

---------------------------------------------------------------------------

Let me know if you need any clarification or if you have any doubt :)
Thanks for the help and code you did!

PS: I forgot to tell you that I added your name to the code you made as credits, and will also add you to the main README inside the Credits section for this work.

stratoform

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #258 on: May 05, 2020, 07:20:55 pm »
#2
My thought was to do this for collisions. I haven't tried the code yet but seems like it would work?

Code: [Select]
$07:F119
JSR collision_tiles_call


collision_tiles_call:
CMP #$54        ; $00-53 = old detour code
BCC collision_tiles_normal
CMP #$58        ; $54-57 = secret tiles, solid
BCC collision_tiles_solid

; add more secret tile checks if needed


collision_tiles_normal:
CMP $034A    ; old range check
RTS


collision_tiles_solid:
SEC          ; solid tile, no walk
RTS


Code: [Select]
original code

$07:F119: CD 4A 03  CMP $034A = #$89  ; collision tile (range check)
$07:F11C: 90 30     BCC $F14E         ; bcc = always walkable


I'll check #3 and #4 and (edit) report back. Thanks again!


===================
===================


#3
Here's how it appears for me:


Could you do a mockup of what it should look like? I'm bad with text descriptions. :lol:


#4
Maybe missing a hex edit. Let me double check..


=========================
=========================

#4

Missed this hex edit:

; flash text position
x14AFC = 05:8AEC

20 D2 43 00 FF CB CB D3
==>
23 D2 43 00 FF CB CB D3


===========================
===========================


#2
Don't see any free space in bank 07. Maybe have to bankswap out to 05, run the code, then bankswap back to (original)?
« Last Edit: May 20, 2020, 11:54:26 pm by stratoform »

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1423
    • View Profile
Re: Zelda 1 Redux / The Legend of Zelda Redux
« Reply #259 on: May 05, 2020, 08:13:56 pm »
#2. CRACKED WALL OVERWORLD COLLISION

Oooh that looks interesting.
I already wrote down the code in my file, but as you said, there's no free space in bank 7 anymore, so seems like we'll have to use bank switching for it.

I think Bank 5 gets loaded when you are in the overworld, so anything from Bank 5 might do.
It's just... I simply forgot how to bank switch lol.

----------------------------------------------------------

#3. FLIP HEARTS

Oh my, I see my mistake now.
So you see, the thing about the code you wrote for that, is that it flips not only the File Select screen hearts...
But ALSO the in-game ones!
So I was trying out the code in-game and it was changing the hearts there, I didn't notice it also changed them in the File Select screen.

So with those slight changes you made, I un-did the change I made through PPU transfers to flip the hearts in the HUD, and now both the File Select and HUD hearts are flipped with the same code :)
That should be it for that! Thank you so much!

----------------------------------------------------------

#4: GAME OVER RED FLASH

I'm not sure what the problem is.
I did have that very change you mention in here:

Code: [Select]
bank 5;
// (Changes Y position of the "Continue/Save/Retry text)
org $8AE5 // $14AF5
db $50,$27,$37,$47 // Originally 4F 67 7F
// (Changes Y position of the red/white flashing when selecting an option)
org $8AEC // 0x14AFC
db $20,$D2,$43
db $00,$FF,$CB,$CB,$D3

However, I am still getting numbers and sprites instead of the red flashing.
Did I miss anything else?

----------------------------------------------------------

Thank you yet again for the help!