News: 11 March 2016 - Forum Rules

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 - njosro

Pages: [1] 2 3 4 5
1
Personal Projects / Re: Faxanadu - Unused items and saving unlocked doors
« on: September 22, 2021, 01:27:00 pm »
Quote
Maybe it's also possible to make the towers in Mist land more useful?
Yes! I want to make all the towers have cool stuff in them. That useless tower is so stupid!

Quote
Would also love the last boss to be more of a fight. You can now blast it with your strongest Magic and be done with in seconds. Even though the game states that shouldn't be possible.
I completely agree. I don't think it'll be too hard to implement. It's near the same code that I had to get into for the fire crystal to work.

Quote
And while we're at it, could you give the fighting master in the first town some more meaning? Now he just heals your, which is pretty redundant. I always thought they had some other use for him, but ultimately never found the time to implement it.
I've thought the exact same thing. Thanks for reminding me about that! He needs to do something useful. Any ideas?

2
Personal Projects / Re: Faxanadu - Fire Crystal, Brown Potion, and Hourglass
« on: September 08, 2021, 04:03:18 pm »
This is great stuff!

Your idea makes sense to me. Feel free to use this thread for your updates :)
I updated the thread title to accommodate it.

3
Personal Projects / Re: Faxanadu - Fire Crystal, Brown Potion, and Hourglass
« on: September 08, 2021, 11:20:06 am »
Good find.
My code actually does do a bit of jumping. Some of it changes the existing code but a lot of it is in a new spot.
You'll have to check the bank that the door code is in. You can't jump to the spot I used unless the place you're jumping from is in the same bank.

For the bank with the item usage code, the free space was at the end of the bank.

Since you're using FCEUX, you can set a breakpoint for when the door requirement code executes, then use the debugger to look through the bank that it stopped at for free space. It'll probably be at the end of the bank as well.

4
These are all very welcome additions. Hopefully you will add the patch to the site when it's done!
For sure!

Faxanadu! It's great to see this getting some attention.  :)

I like the changes so far. The fire crystal text is more than appropriate, too.

I've been thinking of hacking this game to change the doors -- once you use a key, the door should stay open permanently. And I'd like to make the jump smoother and less restricted, if possible. After doing a little bit of SNES asm, I feel more confident in attempting these two things.

Thanks for this :beer:

I'm happy you're interested! The keys definitely need that change, and so does the physics engine. The only thing with the keys is that the mantra system wasn't designed to remember which doors were unlocked. But, since this is based on umaggot's restoration hack with saving, we could manually read/write the appropriate bytes to SRAM during the same routine that auto reads/writes the mantra to SRAM. So it shouldn't be a problem!

September 03, 2021, 09:16:22 am - (Auto Merged - Double Posts are not allowed before 7 days.)
patch on google drive has been updated and the OP has the link.

5
Personal Projects / Faxanadu - Unused items and saving unlocked doors
« on: August 28, 2021, 01:17:42 pm »
I decided to have fun and work on a little hack to make the unused items Brown Potion (BLACK POTION) and Fire Crystal (CRYSTAL) have functionality!

The hack is based on UnsavoryMaggot's Faxanadu Restoration hack v1.04. (Thanks for all your hard work!!)

It's a work in progress and currently none of the items have their own text. They just say the Red Potion text.

Video:
https://youtu.be/g6q201wMLRE

- The brown potion refills magic, and the refill animation is faster and smoother than the red potion in the original game.
- The hourglass doesn't halve your remaining health, and it lasts twice as long (just because!)
- The fire crystal deals massive damage to the enemies on screen. It will usually kill them all but some enemies like the cobra and the bosses have enough HP that they won't get killed.
- bread restores magic by half as much as it restores health.

Here's what I was thinking for the message that appears when you use the fire crystal:
Code: [Select]
I struck the fire crystal.
Next, I want to make the Holy Bible (BOOK) teleport you to the priest (guru) you would appear at if you died. But using the Bible you won't lose any EXP or gold. So it's like an emergency exit from the battle field.

As for the lamp, I think it should just be changed into another item. I was thinking of using the graphics for the FIRE CRYSTAL (not the one featured here, but the one in the original that has a diamond graphic) and then go from there.
What functionality would you give to an extra item?

Here's some code snippets.

Brown Potion:
Code: [Select]
C48B    LDA EquippedItem         
C48E    JSR $FE60               

@FE60:
FE60    ASL A                   
FE61    TAY                     
FE62    CPY #$22    ;check if item used * 2 is 22 (brown potion)
FE64    BNE $FE69   ;exit if not
FE66    LDY #$20    ;set Y to 20 otherwise (will point to red potion code)
FE68    CLC                     
FE69    RTS

@C491:
C491    NOP                     
C492    BCS $C49C   ;if the item index used is too high then exit
C494    LDA $C49E,Y ;get low byte of location to jump to based on item used (red potion in this case)
C497    PHA         ;push onto the stack
C498    LDA $C49D,Y ;get high byte of location to jump to based on item used (red potion in this case)
C49B    PHA         ;push             
C49C    RTS         ;pull the two bytes from the stack and jump there.

@C533:
C533    LDA #$80           ;index of red potion message     
C535    JSR ShowMessage
C538    .db 0c 41 82       ;idk what this is but it's required for the ShowMessage function to work
C53B    LDA EquippedItem         
C53E    STA $A0                 
C540    JSR RemoveSelectedItem   
C543    LDX #$50           ;max health is 50 so this is the max countdown for refill
C545    TXA                     
C546    PHA                ;save onto stack
C547    AND #$01           ;check if the countdown is at an even number
C549    BEQ $C550          ;if so, allow the refill sound to play
C54B    LDA #$13           ;(I did this ^ to prevent the refill sound from sounding weird)
C54D    JSR PlaySound           
C550    LDA #$02                 
C552    LDX $A0            ;retrieve the item that was actually used (brown potion or red potion)
C554    NOP                     
C555    JSR $FE06               

@FE06:
FE06    CPX #$11             ;if brown potion, skip to the mana part.   
FE08    BEQ $FE10               
FE0A    JSR AddHealthPoints     
FE0D    JMP $FE13               
FE10    JSR AddMana             
FE13    JSR $DC46              ;do something?
FE16    JSR $CA25              ;do a frame of refill 
FE19    JSR $CBA8               
FE1C    JSR $CA25              ;do another frame of refill 
FE1F    JSR $CBA8               
        RTS

C558    LDA $A0               ;again check which item was used   
C55A    CMP #$11              ;check if brown potion   
C55C    BNE $C563             ;skip to health part if not
C55E    LDA ManaPoints       
C561    BCS $C566               
C563    LDA HealthPoints         
C566    STA $B0               ;store current mana/health (whichever one is refilling) into B0   
C568    NOP                     
C569    NOP                     
C56A    NOP                     
C56B    NOP                     
C56C    PLA                     
C56D    TAX                     
C56E    LDA $B0                 
C570    NOP                     
C571    CMP #$50           ;if the amount of mana/health reached max then exit, else loop.     
C573    BCS $C578               
C575    DEX                     
C576    BNE $C545               
C578    RTS                     

Fire Crystal:
Code: [Select]
C48B    LDA EquippedItem         
C48E    JSR $FE60               

@FE60:
FE60    ASL A                   
FE61    TAY                     
FE62    CPY #$22    ;check if item used * 2 is 22 (brown potion)
FE64    BNE $FE69   ;exit if not (will exit because fire crystal is not)
FE66    LDY #$20
FE68    CLC                     
FE69    RTS

@C491:
C491    NOP                     
C492    BCS $C49C   ;if the item index used is too high then exit
C494    LDA $C49E,Y ;get low byte of location to jump to based on item used (fire crystal in this case)
C497    PHA         ;push onto the stack
C498    LDA $C49D,Y ;get high byte of location to jump to based on item used (fire crystal in this case)
C49B    PHA         ;push             
C49C    RTS         ;pull the two bytes from the stack and jump there.

@FE23:

FE23    LDA #$80     ;index of message to show (red potion because I dont know how to make a new text)           
FE25    JSR ShowMessage           
--------data block--------
FE28  .db $0C $41 $82         
----------------         
FE2B    LDX #$07     ;loop through the 8 enemies that could possibly be on the screen
FE2D    LDA $02CC,X  ;Check if the current enemy's ID is FF           
FE30    CMP #$FF                 
FE32    BEQ $FE44    ;skip to the next loop if it is.
FE34    STX $A0      ;store the current loop index.
FE36    TXA                     
FE37    STA $0378    ;set CurrentEnemyToHandle to the current loop index.           
FE3A    LDA #$27     ;amount of damage to deal
FE3C    STA $00      ;used by subroutine below.
FE3E    JSR $8891    ;This subroutine handles damage dealing. I jump into the middle of it.
FE41    LDA $A0      ;retrieve current loop index.
FE43    TAX                     
FE44    DEX                     
FE45    BPL $FE2D               
FE47    JSR $C4BF    ;Remove fire crystal from inventory
FE4A    RTS                     


You can play around with my progress so far by downloading the patch here:
https://drive.google.com/uc?export=download&id=1UNejlrLYrWfi-QpIg2E3JdXDJQoPXpHW
I think this one is just for the fire crystal but it might also have all the other changes... I haven't been good at keeping track.
You have to first apply umaggot's faxanadu restoration v1.04 on a japanese faxanadu rom and then apply this patch.

6
Personal Projects / Re: Zelda - Link's Awakening Hack WIP (update thread)
« on: February 15, 2021, 04:33:01 pm »
As an addendum to the previous update, the dungeons are nearing completion too!
Things are coming together quite quickly (though we still aren't sure when it'll be done!)

The static inventory item slots also create a new question: What should the Select + A or B shortcuts do? With that we're open to suggestions! IcePenguin has become master of inventory modding haha

MysticLord, thanks for the links. We're trying to keep the music sounding like classic gameboy Zelda.

Satoshi_Matrix, Actually if harsh yet empty is how a listener would describe it, then it's hit its goal. Harsh, yet empty, and slowly building up tension.
(Don't worry; We're thinking of having a pitch black area, and the music will probably be repurposed for that. The dark caves are the closest we have right now.)

7
Personal Projects / Re: Zelda - Link's Awakening Hack WIP (update thread)
« on: February 14, 2021, 02:39:02 pm »
We have a cool update for today!

After a couple of weeks of experimentation, we cracked the music format of the game!
I've composed a few new tunes so far. Here's one possibility for caves at night...

https://youtu.be/YQxfQ5pQucU


We also added a stats portion to the pause menu. Page 3 shows your completion percentage for treasure chests and screens visited, along with a kill counter and play timer.
Plus, item selection is much easier! Items are in fixed positions on the menu and an A/B marker appears over the selected items.




Quote
The new 8x8 font here is looking fantastic. Can I see all of the characters please?
IcePenguin is away right now, but when he's back he might be able to show off more of his custom font.

8
Personal Projects / Re: Zelda - Link's Awakening Hack WIP (update thread)
« on: December 24, 2020, 07:31:33 pm »
Christmas Eve update!

IcePenguin and I have some exciting updates to share with you. I have been helping out on this project for about a year now, and we've made some great progress.

The first update has to do with the pause screen. You can now see 3 pages of your (widely expanded array of) passive inventory items!

 

Page 3 is under construction, but it will show your stats like play time, and what percentage of treasure chests you've opened.

The SELECT menu that opens on the pause screen has been relocated to overlay your passive inventory items.



Another QOL we've included is an improvement to the warps.
We've greatly increased the number of warps on the overworld, and we programmed a selection system on a map similar to the oracle games



The overworld has a few new aspects to it as well. IcePenguin has done an amazing job with it. It gives a sense of wonder and curiosity on every screen.
There are a few new elements on it as well.



The hack is making excellent progress, and we're excited to share more updates as they come!

9
ROM Hacking Discussion / Re: Interesting Zelda 2 screen transition problem
« on: November 30, 2020, 09:14:13 am »
It just puts Link at the bottom of the screen and keeps moving him up one cell until he and the tile above his head are free from collision.

So with the way the game is, no you cannot change the height he walks in from unless you program something yourself.

10
Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: November 07, 2020, 03:31:32 pm »
Sent you an email :)

11
Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: November 07, 2020, 01:21:34 pm »
Hey! I just downloaded the patch today and applied it to the rom matching the SHA checksum.

I came across a big issue: When I go into L1 dungeon, Link's left/right sprite glitches up, and stays that way even after exiting the dungeon, until I delete the file and start over.

 

Tried it on Mesen, Fceux, and Nestopia.
Applied only the base patch.
base rom SHA1: DAB79C84934F9AA5DB4E7DAD390E5D0C12443FA2

12
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: October 06, 2020, 08:00:49 pm »
And here I was thinking everyone else had abandoned translation efforts.

I'm glad it's still being worked on.

EDIT: I've translated a bunch of menu stuff. Would you be interested in having it or were you thinking of doing it yourself?

13
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: September 27, 2020, 12:26:43 pm »
Quick update.

Spill Village - 99% translated
Celemo's tutorials - 100% translated

Rock Island - 70%
Shipwreck - 10 %
Ouch Concert Hall - 5%

Gimmick Palace - 99%
Ending sequence - 99%


Most gimmicks have been translated, except the ones I haven't got.

All the cool move names and descriptions have been translated.

All of this is possible thanks to [Unknown]'s tools and Clyde Madelin's Youtube live translation playthrough! I use that as my main translation source, and use Google to fill in the blanks, or come up with my own interpretation somewhere in between.



All of Celemo's tutorials are translated now, which will help new players.


14
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: September 22, 2020, 01:54:55 pm »
Excellent!! Thanks for sharing.

I've added convenience buttons to insert the common special text commands, like [WAIT].



I've saved the HTML and JavaScript code into text files. Let me know if you're interested in updating your fiddle with them.

This tool will really help. Thanks for making it.

15
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: September 21, 2020, 06:20:49 pm »
https://github.com/unknownbrackets/tomatotrans#mock-insertion

Use the mock insertion / force translation mode.  It will replace normal characters in any untranslated text with for example S123 to indicate script 123.  Note that it currently only replaces Japanese, so if the text is "A-A-Achoo" it'd replace with "S-1-23AAA", if you get the idea.

-[Unknown]

Thank you! I was wondering what that meant. That makes things so much easier.

You wouldn't happen to have made some sort of previewing tool, would you? I'm making one for myself right now for dialog boxes but it's just based on my own observations of the text. I'd rather not reinvent something that already exists.

16
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: September 18, 2020, 12:42:08 pm »
Thanks for letting me know. I updated the link with a different file host this time.

Now I got to the part of the game where I'm in a halloween town and there's another quiz guy there. The quiz is really neat with 3 parts: a regular quiz, a name-that-character quiz, and a speed round! But of course I understood none of the questions :P

The hardest part about trying to insert a translation without knowing Japanese is finding the right indexes to add text to.

Here's my English script file. Again, it's not the best, and it only has some text from the lagoon place and the quiz guy in the christmas ship, but it's something.

Feel free to add to it. Maybe we can collectively translate a good chunk of important text. :)

English script

17
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: September 17, 2020, 09:13:44 pm »
Thanks guys!
You can use the text file to change it to whatever you want. The limit is the visual space in pixels.

Here's an updated version that has descriptions for a bunch of gimmicks that I was able to piece together:

Updated english menu text

It's not perfect, but it's good enough for me right now.

 


As a quick bonus, I also tried my hand at translating one of the quizzes. Again, I'm no translator, but it's good enough for me!
   


18
Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: September 14, 2020, 03:44:15 pm »
The insertion tool with VWF is great.

I played around with translating so I could at least understand the items and menus in the game.

Since I can't find any translated stuff beyond the bare basics, here's what I've got. I'm no translator but I figured stuff out.
I made a few small changes to make things fit. For example I changed chameleo cologne (which doesn't fit) to spy spray.

ta_menus_eng.txt




19
ROM Hacking Discussion / Re: Adventures of link side view editing
« on: March 26, 2019, 09:45:26 pm »
Hey glad to see you're back into hacking.

The locked doors always appear at the same Y position even though the game doesn't classify them as fixed-Y objects. I know the editor makes it seem like you can put the locked doors as high or low as you want, but that's only because it's the way the game stores it internally. It ignores the y position you want and just puts it at the predetermined height. (unfortunately)

As for the hidden town and hidden palace, it's kind of weird. Sorry about that. Here are the steps (It's a bit of a process):

Modifying the Hidden Areas
In East Hyrule, right-click on any other area and choose Seek Index.
Type 49 for New Kasuto or 53 for the hidden palace and click OK. The index you typed should then be displayed in the top pane.
Press B to access a very low-level binary encoding of the area's properties. Bits 2 to 8 (inclusive, counting from 1, from left to right) encode the y position. Notice that it's zero. This is how the game hides the area. change it to any seven bit value of at least thirty and then save. (Thirty is the minim y coordinate on the map. Lower than that goes out of bounds.)
To help you out, you can paste this binary value for the y-position to make the area appear near the top of the map: 0100000
You'll see the white square at the new coordinate. You can edit the area freely. If you want to hide the area once again, press B and set the y position back to 0000000

20
Personal Projects / Re: Zelda II Redux
« on: February 11, 2019, 07:23:38 am »
I've learned that loops in asm aren't that bad as long as they're not too complicated!
I looked at your code IcePenguin. Here is a way to use a loop:

Instead of doing LDA/STA repeatedly, put in a table of values for the desired LDA values:
$2A6D: 40 89 02 70 40 8B ... etc.

Then, (assuming register X isn't being used for something else) do this:
Code: [Select]
LDX #$0
loopstart:
LDA $2A6D, X
STA $0244, X
INX
CPX number of iterations
BNE loopstart

There's a way to optimize that further by starting from the last entry and looping backwards, but it saves only 1 instruction and is a little bit confusing to keep track of (in my opinion).

Pages: [1] 2 3 4 5