Primary Zelda Hacking
April 21, 2014, 09:23:28 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: The website has switched hosts and now has the domain zeldahacking.net!
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Progress of Seasons  (Read 663 times)
Lin
ZOLE Creator
Administrator
Hero Member
*****
Online Online

Posts: 580



View Profile
« on: February 11, 2011, 02:45:55 AM »

Well, I posted this because ZOLE 1.18 has taken a lot longer to release than I had expected. Honestly, it has advanced a lot since 1.17, and many features including warps, interactions, and chests have been added. Problem is, there are 4 bugs that exist because of 1.17's patches. I've fixed two of these which are Subrosia's bottom maps being messed up when they appear in the overworld and Level 6's wall movement failing. The ones remaining are the animal maps not working and maps not being swapped, although these could be from the same bug.

I'm sure when 1.18 will come out, but when it does it will be worth it.

~Lin
Logged
Jigglysaint
Hacking Guru
Full Member
*****
Offline Offline

Posts: 150


View Profile
« Reply #1 on: February 11, 2011, 05:09:26 AM »

What is happening with the animal maps?  Do they stay as the default animal map, or do they grab data from somewhere it's not supposed to?  If I recall correctly, each season should contain it's own set of pointers, though it shares all the same data.  If that's the case, then the code that checks to see what animal you are riding is not triggering correctly and going to that alternate pointer list like it should.  If I recall, the new pointer list is not only somewhere else, but it's not in the same format.  Most likely the code that handles the animal's maps is still referencing the original pointer list, which is now in a format that the game doesn't understand, and thus leads to junk code.
Logged
Lin
ZOLE Creator
Administrator
Hero Member
*****
Online Online

Posts: 580



View Profile
« Reply #2 on: February 11, 2011, 02:08:31 PM »

That's not what's happening. The maps work fine for Ricky, but when I set the flute value to O3 for Moosh, the animal maps pull map data from Dimitri's area and some of Mooch's and they don't look right because of the tileset. I've debugged and everything should be loading fine, like the proper value getting written to CD24 (atleast if I remember correctly). I wish it were as simple as you thought it to be Tongue
Logged
Jigglysaint
Hacking Guru
Full Member
*****
Offline Offline

Posts: 150


View Profile
« Reply #3 on: February 11, 2011, 07:00:42 PM »

This is off topic, but Lin, I just discovered somthing incredibly awesome scripting wise.  Somthing that makes interaction 72 very redundant.
Logged
Lin
ZOLE Creator
Administrator
Hero Member
*****
Online Online

Posts: 580



View Profile
« Reply #4 on: February 11, 2011, 09:56:54 PM »

Oh? And also, there are several "scripting engines" in-game, where certain bytes substitute for assembly procedures. Although, I think the one you found is the only real one used for creating events.
Logged
Jigglysaint
Hacking Guru
Full Member
*****
Offline Offline

Posts: 150


View Profile
« Reply #5 on: February 11, 2011, 10:42:19 PM »

For opcode 83, basically it's the bank number, then the pointer in that bank.  It assumes the data pointed to is a script.  It's a three byte pointer to anywhere in the rom.  If this is the case, then most of what interaction 72 does is redundant.  Furthermore, opcode 83 actually puts the starting address of the script plus whatever else fits into C300.  For example, the wall crushing event in Seasons(the one that's broken), is set up in a manner that when bit 20 is set(by obtaining the decoy rupee), it will then bankswitch to bank 14 01 48, or 50801, and excecute the script from there.  There's the element that closes the door, the part where the Armos statues disappear, and finally, interaction 65 is set which starts the crushing walls ASM.

What seems to be missing is a call ASM opcode that has the same 3 byte addressing, and of course there is no "call script on x" native command.  Perhaps FF could be retooled to switch between jmp condition and jmp ASM. 
Logged
Lin
ZOLE Creator
Administrator
Hero Member
*****
Online Online

Posts: 580



View Profile
« Reply #6 on: February 12, 2011, 11:55:10 PM »

For opcode 83, basically it's the bank number, then the pointer in that bank.  It assumes the data pointed to is a script.  It's a three byte pointer to anywhere in the rom.  If this is the case, then most of what interaction 72 does is redundant.  Furthermore, opcode 83 actually puts the starting address of the script plus whatever else fits into C300.  For example, the wall crushing event in Seasons(the one that's broken), is set up in a manner that when bit 20 is set(by obtaining the decoy rupee), it will then bankswitch to bank 14 01 48, or 50801, and excecute the script from there.  There's the element that closes the door, the part where the Armos statues disappear, and finally, interaction 65 is set which starts the crushing walls ASM.

What seems to be missing is a call ASM opcode that has the same 3 byte addressing, and of course there is no "call script on x" native command.  Perhaps FF could be retooled to switch between jmp condition and jmp ASM. 
Knowing that months ago would've been great.

Also, I FINALLY found out what's causing the maps to not work! However, I will be doing my own thing to make it work to allow more flexibility. Basically, the game only wrote the new pointers to the FFxx spots in the memory after loading the original ones, and I wasn't pulling the data based on those pointers. Oh well!
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!