I've been working with the MegaCD lately, and after some research, I've come to understand how the ASIC works...for the most part.
The only thing I have been rather confused on is how the trace table is formatted and how it works. Looking at a manual didn't really help me much, and experimenting didn't help much. I've tried all I could to look it up, but to no avail. All I understand is that it involves a starting X and Y value, and X delta and Y delta values for each entry.
ASIC Trace Table Question
Moderator: Mask of Destiny
-
- Very interested
- Posts: 3131
- Joined: Thu Nov 30, 2006 9:46 pm
- Location: France - Sevres
- Contact:
Re: ASIC Trace Table Question
From what i remember you have a vector table giving :
- the X,Y start position in source image
- a list of X,Y vector which give you the X, Y step to add after each pixel read in source image.
you have as many entry in the vector list than the Y size of the output buffer (one vector per Y line).
- the X,Y start position in source image
- a list of X,Y vector which give you the X, Y step to add after each pixel read in source image.
you have as many entry in the vector list than the Y size of the output buffer (one vector per Y line).
Re: ASIC Trace Table Question
After doing more experimenting with what Stef said in mind, it definitely has helped me understand the trace table more.
Thanks!
Thanks!
Re: ASIC Trace Table Question
Yeah, it's pretty trivial actually. For future reference if somebody else needs (remember start/delta values aren't integers):
Code: Select all
x = start x
y = stary y
for each pixel
draw texture[x][y]
x = x + delta x
y = y + delta y
Sik is pronounced as "seek", not as "sick".
Re: ASIC Trace Table Question
can someone post a source code example on how to use this rotation feature of the mega cd ?
the official sega sdk documentation is not very crystal clear on how to use it, and I didn't find any open source example of this :/
the official sega sdk documentation is not very crystal clear on how to use it, and I didn't find any open source example of this :/
Retro game programming !
Re: ASIC Trace Table Question
So, I've managed to get rotation to work, but I have one more problem: it's not centered. Right now, I have the start X and Ys use the standard rotation algorithm and I have the deltas be the cosine and sine of the angle. I am not sure how I would put centering into the equation.
EDIT: Solved, I subtracted the center to the x and y and then add them back at the end and it worked.
EDIT: Solved, I subtracted the center to the x and y and then add them back at the end and it worked.