Trovsky's Burning Questions

View previous topic View next topic Go down

Trovsky's Burning Questions

Post by Trovsky on Sun 21 May 2017 - 15:02

Inspired by SunGodPortal, this is my dedicated topic for asking questions. All answers will be used for Zeldix Magic.

Question 1: Where does the game store the width of the characters for the font?
Question 2: I want to import an indexed bitmap in .NET and have it stored as a byte array. C++ or C#, I don't care at this point. How would I go about doing this? C#'s drawing class changes imported bitmaps to 32BPP nonindexed for some reason (and it's annoying).


Last edited by Trovsky on Fri 16 Jun 2017 - 16:52; edited 1 time in total

Trovsky
    
    

Since : 2014-04-10

Back to top Go down

Re: Trovsky's Burning Questions

Post by SunGodPortal on Mon 22 May 2017 - 2:20

Trovsky wrote:Question 1: Where does the game store the width of the characters for the font?

Have you checked the disassembly?

I wish I could help but this one is a little beyond my current skill set.
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Trovsky's Burning Questions

Post by Trovsky on Mon 22 May 2017 - 15:58

D'oh. I didn't and checked. The width's are stored from 0x74ADF to 0x74B5D. Thanks!

Trovsky
    
    

Since : 2014-04-10

Back to top Go down

Re: Trovsky's Burning Questions

Post by Trovsky on Thu 25 May 2017 - 17:33

Okay, so I'm working on figuring out the overworld. I'm going to explain all I know:


The overworld is separated into quadrants of 4 or 2. The 32 by 32 tiles are compressed with LZ2 compression. The pointers are stored in two table from 0x1794D to 0x17D0C. The two tables are called high_byte_packs and lower_byte_packs in MoN's dissembly. These byte are interlaced for some reason.

Right now I'm trying to use the pointers, read the compressed data, and decompress it. Right now, I'm getting decompression errors from two separate code libraries. The first high_byte pointer at 0x1794D is stored as so in the ROM: 00 80 0B which maps to 0x0B8000 (SNES address) or 0x58000 (PC address). At 0x58000 in the ROM I should theoretically be able to decompress with no problem, no?

Trovsky
    
    

Since : 2014-04-10

Back to top Go down

Re: Trovsky's Burning Questions

Post by SunGodPortal on Thu 25 May 2017 - 19:22

By 32x32 tiles, are you referring to how they are arranged on the overworld or which tiles are in each 32x32 tile configuration? If it's the latter, I believe those aren't compressed. I believe I did some experimentation with those some months back just to get a better understanding of how they work. Unfortunately I have no idea where my notes on that could be. If this is in fact what you are looking for I seem to remember that it was pretty straightforward. Something like 4 tiles = 4 hex values in the order of something like top left, bottom left, top right, bottom right.


Last edited by SunGodPortal on Thu 25 May 2017 - 19:33; edited 1 time in total
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Trovsky's Burning Questions

Post by Trovsky on Thu 25 May 2017 - 19:32

The former.

Trovsky
    
    

Since : 2014-04-10

Back to top Go down

Re: Trovsky's Burning Questions

Post by SunGodPortal on Thu 25 May 2017 - 19:34

Ah. Then sorry, I haven't messed with that then.
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Trovsky's Burning Questions

Post by Trovsky on Fri 26 May 2017 - 0:01

I appreciate the effort and caring. Smile

Trovsky
    
    

Since : 2014-04-10

Back to top Go down

Re: Trovsky's Burning Questions

Post by Trovsky on Thu 15 Jun 2017 - 12:43

[You must be registered and logged in to see this image.]

Curently confused on how the game loads graphics into the VRAM. For each blockset, an ID exist. For the main blockset, there's double the bytes than the other ones. The bottom row doesn't show any changes in Hyrule Magic. The other blocksets seems to overwrite other blockset data. Can some explain how this graphic scheme window works? The hacking compendium on page 230 explains some of the window but doesn't explain all of the bytes and how everything works.

Trovsky
    
    

Since : 2014-04-10

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum