|
166
|
The Site / Announcements / TwoFlatProductions
|
on: October 25, 2011, 04:59:03 AM
|
I'd thought I'd take this opportunity to use my powers wisely and post the Announcement section about a YouTube channel Fatories and I just launched, dedicated to us playing games. It's called TwoFlatProductions, and you can view it Here. The content is pretty good, although there's not much (as of the date of this posting), but it's still entertaining to watch. Be sure to tell your friends if you actually like it, and subscribe because it helps us. Same thing with likes, comments, and favorites!  Thanks a lot, ~Lin
|
|
|
|
|
167
|
The Site / Announcements / Re: Forums Back Up... Again!
|
on: October 20, 2011, 04:22:48 AM
|
Yay c: Glad to see that this will be worked on some more, hopefully..  Actually, I brought the forums back up in hopes to see the community grow and more hacks on these games develop. I likely won't be working on ZOLE or doing anything to the games outside of Oracle of Nature, so don't get your hopes up too much. ZOLE and the rest of the tools are already developed enough to create some decent works with Ages.
|
|
|
|
|
168
|
The Site / Announcements / Forums Back Up... Again!
|
on: October 18, 2011, 04:06:10 AM
|
|
Yes, after the longest time the forums have been down, they're back up again. The payment should be more stable now, and if not I should be prepared for next month. Sorry for the inconvenience and happy hacking!
~Lin
|
|
|
|
|
169
|
Oracles Hacking / Help / Re: Startup, When Link falls
|
on: July 23, 2011, 09:10:03 PM
|
|
The intro color is not changeable. The palette is shared with many other objects and we were forced to change it back. The only way you'll be able to make Link on his back is through assembly, or maybe even some sort of script. I don't mean to sound negative but I doubt you'll be able to get either of them added into your hack.
|
|
|
|
|
170
|
Oracles Hacking / ZOLE / Redoing Some Stuff
|
on: July 20, 2011, 07:25:24 PM
|
|
For the past year, ZOLE hasn't been a perfect program. The assembly has broken the original game very little, but it's still broken. ZOSE's assembly has done the same, and I've just about had enough. Very recently I wrote a Gameboy assembler capable of jumping to and calling labels and actually writing multi-lined code. It's the only modern assembler that assembles code through a GUI and has the previous two features. Now, because of this, I want to rewrite the game code that I've changed, even with ZOSE despite the fact that I've only just redid the code. However, I still cut ends when doing i because of the assembler I was forced to use. Redoing all the code I've done will mean no more in-game bugs but also no actual updates for a long time. I don't know exactly how long it'll all take, but actually starting it will take a while because of checking all of the old stuff and making the new code work after it's gone.
~Lin
|
|
|
|
|
171
|
Other / General Discussion / Favorite Hockey Team
|
on: July 18, 2011, 09:12:49 AM
|
|
I'll go first: Chicago Blackhawks, with Jonathan Toews being my favorite player on the team, and Dustin Byfuglien being my favorite player of all time (He played for the Blackhawks 2007-2010).
Central Division: Chicago Blackhawks Northwest Division: Tough choice. I hate Vancouver, but they're just special and I've hated them so much since they defeated the Blackhawks but oddly enough I was kind of rooting for them over Boston in game 7. Pacific Division: San Jose Sharks - They have Ben Eager and Antti Niemi, both 09-10 Blackhawks players. Atlantic Division: New York Rangers - They were like the first team I was rooting for in a hockey game I randomly started to watch. Northeast Division: Boston Bruins Southeast Division: Winnipeg Jets - Previously the Atlanta Thrashers, they ended up getting a bunch of 09-10 Blackhawks players, including Dustin Byfuglien.
What's yours?
~Lin
|
|
|
|
|
172
|
Oracles Hacking / Opinions and Experiments / Re: Interesting Hero
|
on: July 18, 2011, 05:46:42 AM
|
|
Oh glorious day, somebody other than me knows assembly, and even better yet, how to trace using BGB (perhaps)! Anyway, at C6xx is where the game stores a bunch of the player's game progress, like collected essences, the acquired items, etc... And at C602 is where the name is stored, and the game looks to be modifying C613 (If I did the math with your provided code right), which isn't part of the name. Maybe it's the triforce, or maybe I did the math wrong. Still odd though.
|
|
|
|
|
173
|
Oracles Hacking / Tutorials / A Brief Overview on Palette Fades
|
on: July 18, 2011, 04:10:16 AM
|
|
Warning: This is kind of confusing, but it was even harder to figure out, so if you're not up to the challenge, back off.
Okay. In the games, there is a few bytes in the RAM that control a palette fade, and is probably used during the palette transitions, but I don't know for sure. Now, this guide will only cover Oracle of Ages since I don't know any memory addresses for Seasons.
Memory address C4AB is a very important byte. It's a procedure index and will point to procedures that do math to some more values we'll cover and mess with the palette. For this guide, I'll only be using 03, since it's used strictly for fading to black and I'm sure the same things apply to 01, and then partially 02/04. But anyway, let's begin.
After C4AB is C4AC, and this is the "subtraction factor". C2FF and C4AC are together in which C4AC is subtracted from C2FF, and when a second carry is reached (so it seems) or the result is 00, the palette should be black, and if the second carry is reached, it will stop (This is how you get near-black results). I recommend you leave C2FF as 00 and set C4AC to 01-03. The lower the value, the faster.
There are 4 more important values next. They control which palettes change, and are paired in two's, meaning the pairs have to have the same values. Pair 1's values are at C4B1 and C4B3, and they control the background palette indexes to fade. For example, bit 0 controls the first 4 colors, bit 1 controls the second 4 colors, and so on. If C4B1 is FF (Which would mean all colors), then C4B3 would have to be FF as well. The other pair's values are C4B2 and C4B4, and they control the sprite palettes to fade. If you wanted to fade the background to black and leave sprites visible, you'd set these values to 00.
Now example time - if you wanted to make the screen fade to black while having the top header and all sprites visible, here's how the values would go.
C4AB = 03 C4AC = 01+ C4B1 = FC C4B2 = 00 C4B3 = FC C4B4 = 00 C2FF = 00
And that's all. Enjoy, learn from it. I do know some more stuff but I mainly just wanted to go over this.
~Lin
|
|
|
|
|
174
|
Oracles Hacking / Discussion / Re: Oracles Music Format
|
on: July 14, 2011, 04:02:22 AM
|
|
Yeah I noticed that. That's what confused me at first. I think the values might be hardcoded to be specific values that need to be written to some sort of registers, because if any of the values are wrong then music stays glitched until the game is restarted.
|
|
|
|
|
175
|
Oracles Hacking / Discussion / Re: Oracles Music Format
|
on: July 13, 2011, 10:54:46 PM
|
|
I already knew that, and tried it for the first byte in the 4 pointers for the instruments, but they never led to the data, so it seems only the first byte is the relative bank pointer, which I pointed out in the topic.
|
|
|
|
|
177
|
Oracles Hacking / Discussion / Oracles Music Format
|
on: July 13, 2011, 03:24:02 AM
|
|
Well, I decided to dive into the wonderful world of music in Oracle of Ages, and I've been studying the format for a little bit, and here's what I have so far.
First off, music pointers (and I suppose sound) are stored at 0xE5748 and each music pointer gets 3 bytes. The first byte is the bank - 0x39, so whatever is there add to 0x39. The next 2 bytes are the actual pointer and point to the instrument headers. From there, there are 3 bytes per channel (4 channels), so 12 bytes total. I'm not sure what the first byte does, but the next 2 bytes point to the music data using the 0x39 + x as the bank. Here's what I know about the music header:
Anything under E0 is a note, following this format: -Note pitch (Byte) Only seems to go up to 40 -Note length (Byte)
From E0-EF is an instrument effect that uses this format: -First 3 bits of the Ex is the effect, although they seem to be a fade-in -Effect length (byte) For example, E0 will fade in to the next note and I guess last the length byte's length
From F0-FF is a special code that references different assembly. Here's my table so far: F0 = ? F1 = ? F2 = ? F3 = ? F4 = ? F5 = ? F6 = Set instrument (Next byte), Set Volume (Next byte, although the right nybble controls volume. I don't know what the left does) F7 = ? F8 = ? F9 = Set Vibrato (Next byte) FA = ? FB = ? FC = ? FD = ? FE = ? FF = End
I'll surely be updating this more, and when I've got it all figured out I'll make a tool that edits music and can export/import music from Seasons and vice-versa.
~Lin
|
|
|
|
|
179
|
Oracles Hacking / Tutorials / Creating Enemy Statues
|
on: July 11, 2011, 10:21:00 AM
|
This is a tutorial for creating those lifeless statues that come to life once touched. I spent a great deal of time figuring them out, so a little thanks would be appreciated. First off, their enemy ID is 1D80. 1D81 is a blue statue that gets hurt via sword. Create an enemy interaction and place it over a 26 tile. However, when you're setting the Y coordinate, instead of Y8, make it Y6. For some reason their alignment is weird. Next, you're gonna need to make a script, or else the tile they create will just be tile 00. The tile that gets replaced is read from DxB0, with X being the enemy index. So, for every statue you have, you're going to increment the 'x' and write A0 (or whatever floor tile you're using) to the memory. So, if you were to make a room that had 4 statues in it, you'd do something like this. writelocation 10A7AD setinteraction72 1f setmemory d0b0 a0 setmemory d1b0 a0 setmemory d2b0 a0 setmemory d3b0 a0 That just happens to be the script I used in Fatories's and my hack. So yeah, pretty short, but they caused me some trouble (Mainly because I traced the wrong interaction originally) and nobody had documented their enemy ID. ~Lin
|
|
|
|
|
180
|
Oracles Hacking / Opinions and Experiments / Interaction 60
|
on: July 11, 2011, 09:24:41 AM
|
|
I was tracing some stuff trying to find out how to make those statue things turn into enemies, and I came across code for interaction 2109 that would I guess create a key, and what I found was interaction 60. It appears to be an item, and when in the room as soon as you enter, you'll acquire the item. When created by something like a script, an item will appear. The ID is specified by the second byte in the interaction ID. If the interaction was a type 9 with another byte, you could set Dx43, which controls the item's level.
Pretty interesting.
~Lin
|
|
|
|
|