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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Trax

Pages: [1] 2 3 4 5 6 ... 23
I understand ifightdragons's point, and I agree that fighting mechanics in Zelda 1 are limited. Compare to Zelda II, which is the complete opposite. But I'm also in the "harder is better" team, so making it hard is a welcome endeavor. But, it has to be adequate difficulty. What should make fights more interesting in Zelda 1 is the use of items. Could we make the boomerang essential to kill him? It's the first dungeon item, so it makes sense.

Aquamentus is as challenging as one would expect of a 1st dungeon boss, but if you have the Magical Shield, then he's almost no threat at all. My suggestions to make him more threatening :

- Totally unblockable energy balls.
- Variable angles for energy balls.
- Variable number of energy balls per attack.
- Could he spit fire? That would be cool.
- To make him vulnerable to the sword, you need to first hit him with your boomerang, but only on the return of the round-trip.

The3Dude, if you intend to have 2 quests to your hack, your trick with the cracked walls and other secret tiles may break on the Overworld. It gave us some trouble in the Redux hack, so you may want to check it out on the Zelda 1 Redux thread.

Out of curiosity, why these very specific changes? Why not play the game as is?

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: March 17, 2020, 05:43:09 pm »
Download Xcode. It will let you compile C++. What I don't understand is why this project is not just a bunch of IPS files that you individually apply to a ROM according to the aspects of the game you want changed.

Looks like an ambitious project. Note that your screenshots don't work. Bad link?

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: March 06, 2020, 08:09:45 pm »
Oh, good catch. For some reason, I thought that in order to have a secret available in both quests, you had to have both bits set to 1, and I coded with that in mind. But no such screen exists. So, the bits 6-7 should be labeled "1st/2nd Quest Only" in the docs. Having both bits set to 0 simply means the secret is always there. I wonder what quest takes precedence if someone decided to set both bits to 1...

As for the tile collision, I'm still in the dark on that one. I have at least two theories, but we'll have to take a look at the routines that control Link's movements and comb the code to find out how a tile is set to "blocked", "staircase" or "walk-through". One theory is that it's done arbitrarily in the code, and check for specific tile ranges, and assign collision accordingly. My second hunch is that there's a small table somewhere in the ROM that represents the tile codes where the type changes. Like in Contra. If we assume Zelda 1 has only three types of collision, then this table could be as small as 2 bytes. For example, first byte defines the limit between walk-through and staircase, and the second byte defines the limit between staircase and blocked. Are there any other tile type?

I'll let you know if I find something. In the meantime, something that could help is to document precisely the type of each tile, especially the places where the type changes.

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: March 06, 2020, 12:24:11 am »
I tamed the beast. Here's the code:

Zelda 1
Alternate Secret Tiles


16AD0: BD 76A9   LDA $A976,X

Replace with :

16AD0: 20 90AC   JSR $AC90


Alternate Secret Tile Codes Table

16C80: C8 D8 C4 BC C0 C0

Replace with any Tile Code needed


16C90: A4 EB   LDY $EB      ; Current Location
16C92: B9 FE6A   LDA $6AFE,Y   ; Screen Attributes - Table 5 (VRAM)

16C95: 30 0E   BMI $q2      ; Bit 7 - 2nd Quest
16C97: 0A   ASL
16C98: 30 02   BMI $q1      ; Bit 6 - 1st Quest

16C9A: 10 10   BPL $normalTile


16C9C: A4 16   LDY $16      ; Selected Save Slot (0-2)
16C9E: B9 2D06   LDA $062D,Y   ; 2nd Quest Flag (0 = 1st Quest, 1 = 2nd Quest)
16CA1: F0 0D   BEQ $altTile
16CA3: D0 07   BNE $normalTile


16CA5: A4 16   LDY $16      ; Selected Save Slot (0-2)
16CA7: B9 2D06   LDA $062D,Y   ; 2nd Quest Flag (0 = 1st Quest, 1 = 2nd Quest)
16CAA: D0 04   BNE $altTile


16CAC: BD 76A9   LDA $A976,X
16CAF: 60   RTS



16CB0: BD 80AC   LDA $AC80,X   ; Alternate Secret Tile Codes Table
16CB3: 60   RTS


Feel free to move the code around if necessary. It doesn't solve the problem of tile collision, obviously.

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: March 04, 2020, 09:04:35 pm »
Quote from: ShadowOne333
As for your question, you mean unused tile space, as in unused tiles and their IDs?
If that so, then I have already added the tiles. I think I am currently using tiles 54 (or was it 56?) and onwards for the secret caves cracked walls.
They can be seen by patching a ROM with the Redux.ips from the GitHub page on the OP, inside the /output/ folder, then opening the PPU Viewer while on the Overworld.

Well, obviously, we'll need the tiles, as in 8x8 pixels tiles. But we need "tile definitions" as in 2x2 tiles TSAs. One for each secret you want to be different. I figure it would be walls, but maybe also trees that are a bit different? The table at $16976 reads like this:

16976: C8 D8 C4 BC C0 C0   Table for Secret Tiles Codes (6 bytes)

Codes E5 to EA

C8   Pushable Rock   (C8 C9 CA CB)
D8   Bombable Wall   (D8 D9 DA DB)
C4   Burnable Tree   (C4 C5 C6 C7)
BC   Pushable Tomb   (BC BD BE BF)
C0   Armos Statue   (C0 C1 C2 C3)
C0   Armos Statue   (C0 C1 C2 C3)

I guess there's 2 Armos entries because one type reveals a stairway and another reveals an item (Bracelet). We need as many Tile Codes as we have different tiles for these secrets. It really depends on how many secret tiles we want to have slight differences for a more reasonable secret hunt.

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: March 03, 2020, 11:02:36 pm »
I'd think the first solution would be too much overkill to be practical. The 6 tables in Bank 6 are ubiquitous, they are used everywhere in the code. Also, most of the time, the tables are referred to directly, not through pointers.

The relevant code is around $16ABF, bank 5. I'll have to revise my docs because it's been some since I worked with Zelda 1, but I have a fairly good idea on how to proceed. From the original Tile Codes in Column Definitions, Codes E5 to EA represent a secret tile (wall, tree, Armos, etc.), which should either be replaced by its "found" equivalent (staircase for tree, cave for wall, etc.) if the secret has been found already, or to the same tile visually, but with a different Tile Code, to finally be processed and mached to its Tile Mappings. The table at $16976 does that. What we need to do is to check whether we are currently in Quest 1 or 2, compare it to the relevant bits in Screen Attributes Table 5, and if it matches, select an alternate Tile Code (wall with crack, for example) from a custom table. If it doesn't match, use the regular Tile Code.

I will conjure some code and let you know if I can find a solution. Do we have unused Tile Codes for the 6 new Secret Tiles? Because if we don't, we have a problem.

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: February 16, 2020, 01:58:17 am »
What Lex said about the cracks in the wall is on point. Visually speaking, the tile itself is the same no matter if a secret is present or not. Bombable wall tiles have code E6. When the game loads the tiles, it goes through a routine to check if the tile should be replaced by something else. But that's for when the secret has been revealed vs not revealed yet. Now for the crack to show up only on its relevant quest (1st, 2nd or both), I think that would need some extra code.

A precision about the movable blocks in Dungeons. There is no such thing as a "movable block", in the sense that you can't set a specific block in the room to be movable. You can only set the room itself as having a secret, and then the game automatically sets the leftmost block of the middle row as movable. Yeah, it's arbitrary like that.

This intro screen is very good. Is it real or a mockup?

I see that you didn't get any reply, so I'm throwing in something here, even if it's a bit late. I'm no artist, but you sure are. The graphics in the video are superb. With the possible exception of certain tiles (e.g. checkerboard) that are sometimes rough on the eyes with high speed scrolling. If you still interested in the Mario's Destiny hack, I can give the Overworld map design a shot.

Some of my ideas (that would certainly contradict other people's) :

- Make difficulty ramp up slowly but surely.
- Only normal boomerang, and stun is enough. Magic Rod could hurt and stun at the same time.
- If burning trees is key to finding secrets that are important, then only have Red Candle, found earlier.
- Make 2-3 dungeons accessible by normal means, and others more hidden, requiring items to reach, and with reasonable hints.
- My opinion on good hinting for dungeon location is: one general hint, easy to find, and one more precise hint that you find using an essential item.
- Don't hide the first sword far away from the beginning. Hacks that abuse this are awful.

I can help with ASM.

You could have a specific area that is icy, like the graveyards in the original, with a specific palette.

Personal Projects / Re: Zelda II Redux
« on: January 20, 2020, 02:03:37 am »
Red Lad in the second part of Rauru. The original text is "ONLY THE HAMMER CAN DESTROY A ROADBLOCK." Seems correct to me.

Personal Projects / Re: Zelda II Redux
« on: January 09, 2020, 09:32:12 pm »
Well, I did the best I could to remove music in Zelda II, and I couldn't find a way to remove the Intro music. I also left the Credits music because I thought it was more appropriate, but if someone thinks having slient credits is better (more dramatic, like in a TV series), you can change ROM offset 0x14C5B from 08 to 00. My patch has 10 changes in it (11 if you include Credits), which mostly consist of changing the value written to $EB to 00 instead of whatever non-zero music code. Sound effects and short fanfares (Demon Hit, Get Item, Crystal Placed, etc.) are still there and will also play.

Download the IPS patch here:

Personal Projects / Re: Blaster Master (Wastelands) Progress on my hack
« on: January 05, 2020, 07:14:01 pm »
Dang, I didn't know the Overworld could be larger than it already is. What would be the comparison in size between the original, this hack and the theoretical limit?

As for the tile mappings, which is, what tile goes where, you have to find the information somewhere in the ROM. The placement of the tiles in the graphics banks have no relation to their relative placement in the background matrix or the sprites composition, although most tiles are usually placed in some orderly fashion in the graphics banks. I'm not really familiar with the game, so I can't say where the various tile mappings are, but that's what you would be looking for if you wanted to have, say, different terrain parts, or create different sprites. I presume the editor doesn't have a feature for that.

Personal Projects / Re: Zelda II Redux
« on: December 21, 2019, 08:57:37 pm »
I wish no-music was a trivial task, but it happens to be harder than I thought. Some sound effects are "music-like" and use the Music Code RAM address $EB. Some examples of sounds that you may want to keep, but are treated as music by the game: sounds in the Selection Screens (letter entered, letter cursor moving, fairy cursor, game erased), item found/level up, spell learned. It's an interesting challenge.

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: December 18, 2019, 09:50:08 pm »
See you next year, ShadowOne, and hopefully in good shape.

As for the secrets, whether they appear in Quest 1 or 2 or both, yes, there is a separate flag for each quest. The bits are in Screen Attributes Table 5. The byte structure is as follows:

.... .xxx   Vertical Position Out of Caves (0 = second row from top)
.... x...   Enemies appear from the sides of the screen
..xx ....   Stairs Position Code (when something is pushed)
.x.. ....   Secret in 1st Quest
x... ....   Secret in 2nd Quest

All pointers for Attributes Tables (both quests) are right at the beginning of Bank 6, starting at 0x18000. See my docs for Bank 6.

Pages: [1] 2 3 4 5 6 ... 23