mirror of
https://github.com/mupen64plus/mupen64plus-oldsvn.git
synced 2025-04-02 10:52:35 -04:00
1417 lines
60 KiB
Text
1417 lines
60 KiB
Text
|
|
2/09/02 Version 0.04 Released
|
|
|
|
Sunday, 2/10/02, 4:35 PM
|
|
* Completely redid combine modes to allow for multiple equation types
|
|
* The new combining method seems to have made enemies in Star Fox flash when you hit them
|
|
like they are supposed to.
|
|
* Also in the new combine mode system, unimplemented combiners should now show as bright red.
|
|
|
|
Monday, 2/11/02, -:-- PM
|
|
* Added many new combine modes
|
|
|
|
Tuesday, 2/12/02, 5:29 PM
|
|
* Fixed it so that it will now use the tile descriptor given in uc0:texture instead of
|
|
assuming 0.
|
|
|
|
Wednesday, 2/13/02, 6:53 PM
|
|
* Added 1964 support. The problem was that 1964 reloads the plugin when it switches
|
|
to fullscreen. Also, I wasn't logging DllMain, which was why I didn't notice the error.
|
|
Now it switches to fullscreen at the next dlist, meaning no reloading the dll since we
|
|
last called grGlideInit.
|
|
|
|
Monday, 2/18/02, 1:26 PM
|
|
* Added triangle caching, now things should run a lot faster since it only has to do matrix
|
|
transformations once per vertex instead of every time the vertex is used.
|
|
* Also, vertex transformations are now done during the vertex instruction, which fixed the
|
|
problem with Banjo's seperated body parts. The vertices were using two different matrices
|
|
and doing the transformations at draw time was only using the last matrix that was set.
|
|
|
|
2:45 PM
|
|
* Now it should only calculate lighting once per vertex also, but I didn't see any speed
|
|
increase... maybe something went wrong?
|
|
|
|
Tuesday, 2/19/02, 8:59 PM
|
|
* Started on uCode 2 (5 in the compat. list), F3DEX 2.XX. This is the uCode that Zelda64
|
|
uses. So far I have written the instruction table, and implemented uc2:moveword for
|
|
segment offset. I'm really amazed that it now runs without ANY undefined instructions.
|
|
|
|
11:13 PM
|
|
* Gugaman has fixed the lighting speed problem! Now it goes a lot faster. The vertex
|
|
normals were being normalized in a loop with all the lights, and also a lot of the
|
|
variables are now declared as 'register'. We also took out an unused vector.
|
|
|
|
11:56 PM
|
|
* We optimized it again! This time I moved the normalizing code totally out of the light
|
|
calculation. I am also now calculating lighting before copying, which now allows it to
|
|
only calculate once per frame.
|
|
|
|
Thursday, 2/21/02, 8:51 PM
|
|
* Yesterday I got my Zelda wireframes working. Today I added textures, and am currently
|
|
researching how T1 works.
|
|
* Sometimes triangles were empty (all three points were the same), which would mess up
|
|
the click detection code. Now it's a lot easier to navigate the triangles, and
|
|
it should speed up a little more too (barely).
|
|
|
|
Saturday, 2/23/02, 5:14 PM
|
|
* Added texture swapping support, things look better now in Super Smash Brothers and
|
|
Pilotwings.
|
|
|
|
8:51 PM
|
|
* I found out what's going on with most of my texture problems. I've severely underestimated
|
|
the use of mask. Not only can it be used for mirroring, but it can be used to determine
|
|
size as well. It's time to do the major change I've been avoiding all this time...
|
|
triangle and texture splitting.
|
|
* Also, by using mask, it fixes all those very odd settilesize problems, like the Quest64
|
|
fireball spell.
|
|
|
|
11:52 PM
|
|
* I've partially implemented texture splitting, it seems to load the two textures correctly.
|
|
|
|
Sunday, 2/24/02, 1:49 AM
|
|
* Fixed the missing triangles problem with Zelda and Super Smash Brothers, the uc2:tri1
|
|
command uses cmd0 for it's vertices instead of cmd1.
|
|
|
|
8:35 AM
|
|
* Ok, when I turned on my computer this morning, it deleted my Util.cpp and I lost my
|
|
texture splitting. It was already messed up, so I would just have to redo it anyway.
|
|
I'm going to do triangle splitting first now, texture splitting isn't as important.
|
|
|
|
9:15 AM
|
|
* Gonetz (Gonetz@ngs.ru) submitted a speedup idea, to pre-multiply matrices so that they
|
|
do not have to be calculated with each vertex. I had a little trouble implementing it
|
|
because I was trying to do model*proj instead of proj*model or vice versa for both.
|
|
|
|
Monday, 2/25/02, 6:46 PM
|
|
* I've totally redone the combiner
|
|
* Texture wraps and mirrors with clamp are now used in texture loading, super smash brothers
|
|
almost works correctly now
|
|
* Texture CRC checks now should be correct
|
|
|
|
Saturday, 3/02/02, 2:58 PM
|
|
* Wheeee!!! I've speeded up compiling time by A LOT by using a precompiled header.
|
|
* I've figured out how to fake the LOD into letting me do texture interpolation.
|
|
* I've implemented many zelda combine modes.
|
|
|
|
Tuesday, 3/05/02, 5:35 PM
|
|
* YAY!!! Icepir8 has shown me how to do lighting correctly. I was using an unsigned byte when
|
|
the light direction requires it to be signed.
|
|
|
|
Someday in-between Tuesday and Friday, 3/??/02, whatever PM
|
|
* I've implemented the Zelda fire combine mode
|
|
|
|
Friday, 3/08/02, 12:04 AM
|
|
* Gonetz sent me the file to implement Waverace's ucode. I tested it and it works. He also
|
|
gave several suggestions for improving the combiner, which I will do in the next few days.
|
|
|
|
Saturday, 3/09/02 9:00 PM
|
|
* I've done yet another combiner, this time it doesn't have a gigantic switch statement. This
|
|
combiner is based on ideas by Gonetz, and combined with some of my own.
|
|
* Icepir8 just told me that if I transformed my normals on vertex load instead of transforming
|
|
light vectors, I could save a lot of calculations.
|
|
|
|
10:58 PM
|
|
* Okay, I'm done with the new lighting system. I don't see any speedup because something else
|
|
is seriously slowing my plugin down.
|
|
|
|
Sunday, 3/10/02 3:18 PM
|
|
* Gonetz has told me how to fix a matrix problem in Waverace. Now there is no large dolphin.
|
|
The problem is that I need to clear the matrix stack count every frame. I had this code
|
|
before, but took it out for some reason.
|
|
|
|
Monday, 3/11/02 8:33 PM
|
|
* Implemented a "GFX plugin has caused an exception" dialog, that makes it go back from
|
|
fullscreen and prevents it from crashing on exceptions. (try/catch in ProcessDList)
|
|
* Figured out how force blending and other such works, not implemented yet though.
|
|
|
|
10:12 PM
|
|
* Implemented some force blending, for things like mario kart player select.
|
|
|
|
Tuesday, 3/12/02 9:48 PM
|
|
* Fixed kokiri faces bug, I had read somewhere that palettes had to be aligned to 8-bytes,
|
|
but this was obviously not true. The palette in zelda was using an ending value of 'C'.
|
|
|
|
Wednesday, 3/13/02 6:17 PM
|
|
* Defined the real values for combine modes rather than a shortened, one-for-all-slots
|
|
version. Now I don't get odd things like "use prim_lodfrac for starfox menu item alpha",
|
|
instead it is "1". All of the combine descriptions need to be converted though :(
|
|
|
|
8:21 PM
|
|
* I redid lighting again, this time a mixture of both methods. I first translate the light
|
|
vector by the inverse model matrix, and then use that in ucx:vertex to calculate lighting.
|
|
This way I do not have to transform every single normal, rather, one light vector per group.
|
|
|
|
Thursday, 3/14/02 6:55 PM
|
|
* Got waverace texrects to show by setting the default alpha for shade in fillrects to 0.
|
|
|
|
Saturday, 3/16/02 2:54 PM
|
|
* Fixed clamping problem, was using tiles 0 and 1 always, when it should've been rdp.cur_tile
|
|
and rdp.cur_tile+1. Now Banjo-Kazooie wraps everything correctly.
|
|
* Added many many more combine modes for the new combiner over the past few days.
|
|
|
|
5:29 PM
|
|
* Revised the debugger, now it can run in any resolution. Also redid the texture viewer
|
|
so that it's simpler, and supports TMU1.
|
|
|
|
9:12 PM
|
|
* Added the two .3df files to the program as resources, they had to be as "RCDATA", even
|
|
though nothing specified that. No more extra .3df files are required. The font texture
|
|
is now loaded from a 1-bit alpha texture, using some assembly code, and the cursor texture
|
|
is the same. I also added a colored text option, so that the combiners and headers of the
|
|
debugger are color-coded.
|
|
|
|
Sunday, 3/17/02 10:45 PM
|
|
* Fixed translucency problems finally. Now Link shows up fully opaque and nothing else
|
|
messes up. ALPHA_CVG_SEL does in fact mean full alpha, but I wasn't handling
|
|
rdp:setothermode so I was getting it where I shouldn't have been.
|
|
* Fixed flickering problems in games such as Snowboard Kids and Paper Mario. The problem was
|
|
that some games use more than one DList per frame, and I was flipping on every DList. Now
|
|
it flips on UpdateScreen instead of on the DList.
|
|
|
|
Tuesday, 3/19/02 4:50 PM
|
|
* Made it so that outputting text without scaling is possible, FPS counter doesn't scale in
|
|
case of resolution too low to see.
|
|
* Added check box for FPS counter
|
|
|
|
9:45 PM
|
|
* Added a bunch of new options to the dialog but all they do now is save to the INI, nothing
|
|
is implemented yet for when they are set.
|
|
|
|
Friday, 3/22/02 3:48 PM
|
|
* Bleh, I'm sick today, 102.8 temperature, however, the computer isn't causing a headache,
|
|
so I will continue working.
|
|
* Implemented a bunch of the options yesterday, such as logging, etc. (no more #defines
|
|
needed)
|
|
* Upgraded computer to Win2k SP2. Mario's face screen goes a little faster now, but not much
|
|
else changed.
|
|
* Took out the now useless VERTEX_N structure since lighting is now calculated in UC:VERTEX.
|
|
* Gonetz sent the software culling I asked for. I'm going to try and improve this by doing
|
|
everything I can in UC:VERTEX, and also a flag in vertex for clip_z, to determine whether
|
|
we can use a precalculated x/z and y/z value.
|
|
|
|
6:21 PM
|
|
* Pre-calculated x/z, y/z in UC:VERTEX, use if not z-clipping. The real reason I did this is
|
|
for software culling, so they don't have to be re-calculated.
|
|
* Made it so that vertices will only calculate u/v coordinates once, or not again until the
|
|
texture attributes are updated. z-clipping doesn't matter for this, u/v were calculated
|
|
before the clipping in the first place.
|
|
* Changed the type passed into DrawTri to VERTEX** to make it work with clip_tri. (modified
|
|
from Gonetz's original to allow for u/v calculate once (previous comment)).
|
|
|
|
8:12 PM
|
|
* Now screen coordinates, 1/z, u/z, and v/z are precalculated also. (unless z-clipping)
|
|
* Actually added software culling, I think it sped the plugin up by a lot.
|
|
|
|
Saturday, 3/23/02 8:54 PM
|
|
* Found that the reason for the Zelda magic bar and Aerogauge fire messing up is that yes,
|
|
textures can only be wrapped on powers of two, but they can be clamped anywhere, whatever
|
|
is specified by lr-ul. I'm going to redo a lot of my texture code soon, and I will
|
|
incorporate this fix (manually clamp to the full power of two texture)
|
|
|
|
Monday, 3/25/02 12:53 PM
|
|
* STILL sick, 100.9 temperature today.
|
|
* Fixed a bug with resolution switches, it wasn't setting the resolution width and height,
|
|
only video mode. Also, when you switch resolutions it will turn off the debugger.
|
|
|
|
Tuesday, 3/26/02 5:21 PM
|
|
* After trying to implement frustrum clipping, I have finally decided that my method of 2d
|
|
clipping is better. I am however using the inequalities x<-z, x>z, y<-z, and y>z in several
|
|
places though.
|
|
* I've implemented culldl for Zelda, not sure of any speedup since I didn't really look at
|
|
the speed before I changed it.
|
|
|
|
Wednesday, 3/27/02 10:30 AM
|
|
* Fixed uc2:geom_mode so that now both clr and set are shifted before they are used, instead
|
|
of shifting the final result. Now the culling in zelda works properly.
|
|
|
|
3:07 PM
|
|
* Fixed culldl in ucode2, was using ||s instead of &&s, &&s didn't work b/c it needs to check
|
|
the volume between the vertices instead of the vertices themselves. Now it checks that
|
|
each condition is met at least once to decide whether to draw or not.
|
|
* Fixed a bug where it would log the alpha combiner also if the color combiner was
|
|
unimplemented.
|
|
|
|
Thursday, 3/28/02 7:16 PM
|
|
* Unimplemented combiner text descriptions now show up as red, the alpha as a brighter red
|
|
so you can easily tell them apart.
|
|
|
|
Friday, 3/29/02 4:29 PM
|
|
* Implemented many many many more combiners.
|
|
* Implemented branch_z for ucode 2 so that Death Mountain Trail and the well work.
|
|
* Implemented prim depth source and alpha compare for texrects, made lens of truth work
|
|
backwards.
|
|
|
|
Saturday, 3/30/02 4:27 PM
|
|
* Added more descriptive update() function, now outputs everything it's trying to do,
|
|
also TexCache outputs things to debug texture loading crashes.
|
|
* Converted some things such as texture loads to BMASK/WMASK/DMASK format (different masking
|
|
method, fixed one illegal operation in zelda subscreen).
|
|
* Manually clamped all textures, which fixed the zelda magic bar, and several other texture
|
|
border issues, like the subscreen.
|
|
|
|
Tuesday, 4/02/02 8:54 PM
|
|
* Gonetz sent many new combiners
|
|
* Implemented a lookup for the first byte of combiners
|
|
|
|
Wednesday, 4/03/02 5:06 PM
|
|
* Gonetz sent new combiners again
|
|
* Oops, realized that I didn't do as I had planned with the alpha combine lookup, I meant
|
|
to use 0x0FF00000 instead of 0xFF000000 since the first 4 bits are not used. It is fixed
|
|
now.
|
|
* Now it always uses Glide64.ini no matter what the name of the plugin (dll file) is, so
|
|
you can have multiple versions of the plugin using the same ini.
|
|
|
|
Thursday, 4/04/02 11:25 PM
|
|
* Made shade values full for texrects (for dual heroes)
|
|
* !!! Added CMB_MULT and CMB_SET stuff to texrects! A long time ago I thought texrects would
|
|
only have textures, and then later forgot to put these in. Now combiners should work MUCH
|
|
more often on texrects.
|
|
* Changed from full alpha and full color for texrects to just full alpha, and black color
|
|
(for the zelda menu).
|
|
|
|
12:35 AM
|
|
* Changed my mind again about the texrect color thing, now all four values are full (dual
|
|
heroes needed this)
|
|
|
|
Friday, 4/05/02 6:15 PM
|
|
* Made the plugin faster by not drawing fillrects that had an alpha value lower than 5
|
|
(usually one fullscreen rect per frame)
|
|
* Made it faster again by not setting the uv_calculated for every possible vertex on texture
|
|
load, now it acts more like a CRC
|
|
* Lemmy has led me to the zelda fixed view problem. There was an unimplemented instruction,
|
|
background as he calls it (0x0A), which draws a fullscreen 320x240x16 rectangle. It is
|
|
not yet implemented yet though.
|
|
|
|
10:55 PM
|
|
* FINALLY, after a million hours of working on the temple of time problem, GokuSS4 tells me
|
|
that Lemmy can help fix my problem. Lemmy said that there is a command that draws a
|
|
320x240x16 texture on the screen. Knowing the command was not enough though, using the
|
|
address it gave, I got static. Icepir8 and I eventually figured out that the address
|
|
actually pointed to a structure whose fourth element was a pointer to the actual texture.
|
|
The temple of time, and all other fixed view problems, now work.
|
|
|
|
Sunday, 4/07/02 10:21 PM
|
|
* Implemented a bazillion new combiners from Ogy's list.
|
|
* Fixed mario texrects, on cycle_mode=copy, it doesn't use combine, but rather texture.
|
|
|
|
12:22 AM
|
|
* Clipped texrects properly so that they do not stretch as they go off the screen. They
|
|
are also clipped to scissor instead of screen now also.
|
|
|
|
Monday, 4/08/02 11:40 PM
|
|
* Fixed a problem with the scissor rect being too big for the screen.
|
|
|
|
Tuesday, 4/09/02 6:17 PM (.04944)
|
|
* Fixed the zelda orange texrect problem, Gonetz implemented a combiner for Kirby 64 that
|
|
was actually already implemented. I commented his duplicate, and it worked again.
|
|
|
|
12:03 AM
|
|
* Switched the order of alpha compare/CVG_X_ALPHA
|
|
* Made it so that XLU surfaces do not update the z-buffer
|
|
|
|
Thursday, 4/11/02 6:34 PM
|
|
(0.1 Beta #1 -> Ogy, Jeremy, Quvack, Slougi)
|
|
(0.1 Beta #2 -> Ogy, Jeremy, Gugaman)
|
|
(0.1 Beta #2+ -> Jeremy, Gonetz)
|
|
(0.1 Beta #3 -> Gonetz, Ogy, Scorpiove)
|
|
* Gonetz sent new combiners.
|
|
* Gonetz has finally agreed that it is time to release. I'll send to Ogy after just a few
|
|
more fixes.
|
|
* Disabled most recent thing added, xlu surfaces, just in case because of release.
|
|
* Changed unimplemented combiners to show T0 instead of the last combiner used, since most
|
|
objects use T0 at least somewhere.
|
|
* Found bug in texrect clipping, the fast on/off cut return was wrong.
|
|
|
|
10:24 PM
|
|
* Fixed texture swapping in certain games like Super Smash Bros by swapping the x value
|
|
instead of the address.
|
|
* Made it so that unimp.txt is not created unless unimp logging is enabled.
|
|
|
|
11:44 PM
|
|
* Spherical mapping fixed, works now in every instance I've seen.
|
|
* Option added for 'Buffer clear on every frame'
|
|
|
|
Friday, 4/12/02 4:44 PM
|
|
* Bug fixed when Glide64 was not as Glide64.dll, I had typed in "Glide64.dll" instead
|
|
of getting the full path.
|
|
|
|
(0.1 Beta #4 -> Ogy, Falcon4Ever, Jeremy, Gugaman, McLeod, Scorpiove)
|
|
|
|
Sunday, 4/14/02 2:03 PM
|
|
* Switched from ac_one on unimplemented to ac_t0, b/c it causes less problems with translucent
|
|
things.
|
|
|
|
4:00 PM
|
|
* Fixed a Ridge Racer crash that had to do with texrects being off the screen. The reason my
|
|
previous offscreen clipping code didn't work for the y-axis was because I needed to flip
|
|
the coordinates, not the borders, to make ul_y < lr_y.
|
|
* Fixed a problem in fillrect. If fillrect used fill color, it would check if it had less
|
|
than 5 alpha to determine whether to draw or not. The problem is... fillrect only has
|
|
1 bit of alpha and I didn't think about that when I wrote the compare. Now some black
|
|
rectangles that didn't show up before now will. The only problem is that this may slow
|
|
the plugin b/c of a fullscreen clear that now must occur.
|
|
|
|
9:37 PM
|
|
(0.1 Beta #5 -> Gugaman, Ogy, Scorpiove, Quvack)
|
|
|
|
2:11 PM
|
|
(0.1 Beta #6 -> Gonetz, Ogy, Scorpiove, Quvack, IceLord)
|
|
* Added ToolTips for all configuration options.
|
|
|
|
Monday, 4/15/02 7:31 PM
|
|
* Finished up ToolTip text
|
|
* Disabled FPS counter because of bugs it has
|
|
|
|
8:11 PM
|
|
* Finished wireframes for texrects and fillrects.
|
|
* Added an option to select the colors to use for wireframes.
|
|
|
|
Wednesday, 4/17/02 7:49 PM
|
|
* Changed address mask in uc0:displaylist to 0xFFFFFF instead of 0x3FFFFF.
|
|
* & also in ProcessDList (Zelda: MM runs now, complete gfx errors).
|
|
* Put an &BMASK at the end of segoffset.
|
|
* Glanced through ucode02.h replacing incorrect masks.
|
|
* Changed a 0x3FFFFF in TexCache
|
|
|
|
Thursday, 4/18/02 9:49 PM
|
|
* Scissor added to update
|
|
* THE INFAMOUS RESOLUTION PROBLEM IS FIXED!!! After a while of looking at things, the
|
|
resolution problem that was present in many games is now fixed. I noticed two variables
|
|
of name VI_X_SCALE and VI_Y_SCALE. These contained values typically 0x200 and 0x400
|
|
normally, but when something was stretched in the y-axis, VI_Y_SCALE = 0x800, double
|
|
the original. By using division between the current and original, you get the correct
|
|
scaling.
|
|
|
|
Friday, 4/19/02 5:32 PM
|
|
* Made it so that tooltips can be easily disabled (for those without the platform sdk)
|
|
by commenting the line in Gfx #1.3.h that says "#define USE_TOOLTIPS"
|
|
|
|
11:20 PM
|
|
* CMB_MULT and CMB_ADD/SUB are now completely unrelated in values, and it performs the
|
|
add/sub operation first.
|
|
|
|
** 0.1 released **
|
|
|
|
Tuesday, 4/23/02 10:43 PM
|
|
* Made it so that the uc2:BG command doesn't use the z-buffer.
|
|
* Added uc2:BG to the log.
|
|
* Made uc2:BG use alpha (for alpha compare)
|
|
* Going to start on a HUGE texture loading change... allowing modification of textures
|
|
while loading and also faster loads, possibly using some assembly.
|
|
|
|
Sunday, 5/05/02 6:01 PM
|
|
* Figuring out many things about texture sizes, assembly going well so far
|
|
* Improved the debugger, allowing a NULL triangle selection. Also, as when you press space
|
|
bar to go to the texture of the selected triangle, you can now press the left control key
|
|
to go to the last on-screen triangle that used the selected texture. This is useful to
|
|
find what a messed-up texture is supposed to be of, since you can see where it was on the
|
|
screen. Also, if the texture was not used this frame, it selects NULL, which doesn't display
|
|
any triangle information.
|
|
|
|
6:27 PM
|
|
* Made it so that interpolation of 0.0 or 1.0 ONLY uses the needed texture, because the other
|
|
one may not have had its tile descriptor even set, loading a useless noise texture. (INTER
|
|
macros in Combine.cpp)
|
|
|
|
9:25 PM
|
|
* 16-bit RGBA seems to be as far as it can go... starting LoadTile emulation now.
|
|
|
|
Saturday, 5/18/02 1:22 PM
|
|
* Lots of school recently, no time to work
|
|
* Fully re-implemented both LoadBlock and LoadTile in order to account for non-aligned textures
|
|
* Implemented a new texture format: 4-bit CI. This should be the hardest of all.
|
|
* Made it so that tri_n numbers should be correct even if not in fullscreen mode
|
|
|
|
4:22 PM
|
|
* Implemented 8-bit CI by slightly modifying the 4-bit CI code.
|
|
* Seperated the load functions into different files based on size since they are quite large.
|
|
|
|
6:18 PM
|
|
* Oops, fixed a problem with building on normal 'debug' and 'release' modes, where it wasn't
|
|
including the .obj file.
|
|
|
|
6:55 PM
|
|
* Finished 4-bit I textures.
|
|
|
|
11:27 PM
|
|
* *Gugaman* (accidentally typed Gonetz the first time) has helped me implement both 4-bit CI
|
|
and 16-bit IA textures.
|
|
|
|
Sunday, 5/19/02 8:46 AM
|
|
* Oops, from the simplified version of Gugaman's 16-bit IA, I forgot to take out a ror 16.
|
|
|
|
5:50 PM
|
|
* Remade the whole texture loading routine... The whole thing is completely different.
|
|
Combine and TexCache are now somewhat merged to allow for use of the maximum amount of
|
|
memory. All vertex coordinates may need swapping to the right tmus since t0 no longer
|
|
represents tmu0. Texture loading is now located in TexCache.cpp instead of Util.cpp.
|
|
I have tested with multitexturing also, and it works.
|
|
* Gugaman sent me 8-bit AI and I this morning. I just changed I to use alpha instead of
|
|
intensity. (first time i've seen it)
|
|
|
|
6:08 PM
|
|
* Changed the debugger: space bar doesn't work the same. You must now select either
|
|
page t0 (keyboard 2) or page t1 (keyboard 3) and then press space bar. Then it will
|
|
select the CORRECT TMU AUTOMATICALLY and the corresponding texture in it.
|
|
|
|
6:29 PM
|
|
* Made it so that pressing 'G' will switch on and off a grid for the cache viewer (large view
|
|
on page 0).
|
|
|
|
7:19 PM
|
|
* Fixed Gugaman's routines again... he didn't understand what the << 1 on ext was for in my
|
|
routines; it was to multiply by the number of bytes per destination pixel. I had to take
|
|
this out on the 8-bit ones.
|
|
|
|
Tuesday, 5/28/02 2:22 PM
|
|
* School is now out and I have more time to work on the plugin
|
|
* Spherical mapping finally fixed for good. The size to use is the scale value >> 6. I found
|
|
this information in a really strange place.
|
|
* 32-bit textures implemented
|
|
|
|
Wednesday, 5/29/02 12:33 PM
|
|
* Fixed the fillrect problem. Recently i changed it so that TexCache() is REQUIRED to set the
|
|
combine mode from Combine(), even if no texture is used. I had not yet updated fillrect to
|
|
reflect this.
|
|
|
|
Friday, 5/31/02 8:09 PM
|
|
* Wrote all Wrap/Mirror/Clamp functions, for both 16-bit and 8-bit.
|
|
|
|
12:27 AM
|
|
* Rewrote the tmu selection functions to remove support for 3 tmus and add support for 1 tmu.
|
|
* Improved single-tmu support by a lot by forcing it to select a texture.
|
|
|
|
Saturday, 6/01/02 9:46 PM
|
|
* Added a log flush option to make it so that the log will be completely written before a crash
|
|
or exception.
|
|
* Made it so that a maximum count of 256 entries can be loaded by loadtlut by masking by 0xFF
|
|
instead of 0x3FF. No more goldeneye exception.
|
|
|
|
1:58 AM
|
|
* Finally cracked the goldeneye triangle instruction. Now triangles in goldeneye show correctly,
|
|
but the textures are still messed up. (something about palettes)
|
|
|
|
Sunday, 6/02/02 1:54 PM
|
|
* Found why goldeneye palettes weren't working correctly. I noticed in the log that the
|
|
settextureimage address was not being changed from the texture and the palette. So,
|
|
I made loadblock and loadtile increment the settextureimage address as they load.
|
|
|
|
3:30 PM
|
|
* Slightly optimized the 16-bit RGBA loading by using better RORs and SHLs instead of
|
|
masking and shifting to swap the alpha bit.
|
|
* Implemented IA-16 format for palettized textures. Now goldeneye works almost perfectly,
|
|
but kinda slow.
|
|
|
|
4:44 PM
|
|
* Found out that you do NOT increment the settextureimage address with loadtile. (HAL logo,
|
|
SSB)
|
|
|
|
Monday, 6/03/02 3:22 PM
|
|
* Figured out why 32-bit texture's pixel swapping was not working correctly. Since I am not
|
|
loading 32-bit textures exactly how the N64 would, they need to swap 64-bit words instead
|
|
of 32-bit ones.
|
|
|
|
4:46 PM
|
|
* Ack!!! If you switched to fullscreen before the ROM started running, it would set to single-tmu
|
|
mode. I had to move the "rdp.num_tmu = 1" out of rdp_reset and into InitiateGfx so that it
|
|
would only occur when the plugin is first loaded.
|
|
* Fixed texrects in Mario Kart and probably some other things. Texrects use a different texture
|
|
tile # than the one specified in uc0:texture, so it needed updating.
|
|
|
|
5:05 PM
|
|
* Made it so that both tmu texture caches refresh at once. This may seem like a bad thing,
|
|
because then it has more textures to load at once, but it's not. Before, after one tmu
|
|
would refresh, it would have the most open memory and therefore get all the textures. If
|
|
the other TMU was really close to being filled, it would never be refreshed.
|
|
|
|
6:53 PM
|
|
* Added Voodoo 1 support. It was 5 lines of code. All I had to do was make it so that
|
|
if mirroring was not supported, and was used, it would multiply the size by two.
|
|
Then it would automatically mirror the smaller texture to the full size.
|
|
* Added a check for clamping/mirroring/wrapping/mask for the cache, so that if anything
|
|
changes, the texture can load differently.
|
|
|
|
Tuesday, 6/04/02 7:52 PM
|
|
* Fixed a bunch of things with alpha compare. Also made it so that it looks more like UltraHLE.
|
|
I haven't found a single problem with it that wasn't there before, and the hands in Hexen show,
|
|
and SSB is fixed.
|
|
* 0.1762
|
|
|
|
3:17 AM
|
|
* Made palette CRCs multiply the content by the location so that even if the contents are the same
|
|
but in different locations, the CRC will be different.
|
|
* Going to make sure to write version numbers here so I know what has changed.
|
|
* 0.177
|
|
|
|
VC++ 6.0 SP 5 installed
|
|
VC++ 6.0 Processor Pack installed
|
|
|
|
Wednesday, 6/05/02 11:05 AM
|
|
* Finished adding the negative count checks for mirror/wrap. For some reason, i had only
|
|
implemented 2 of the 4.
|
|
* Fixed a combiner that caused tony hawk to be bad.
|
|
* 0.1771
|
|
|
|
7:25 PM
|
|
* Changed alpha compare some more, making it so that force-blend overrides CVG_X_ALPHA. No
|
|
problems observed so far, and it fixed Bomberman Hero.
|
|
* Made z-buffer clearing fillrects faster by checking if cimg=zimg.
|
|
* 0.178
|
|
|
|
10:25 PM
|
|
* Implemented basic modifyvtx for texture coordinates, something is still not right.
|
|
* Changed it so that coordinates are scaled in vertex instead of when they are drawn (this
|
|
is correct).
|
|
|
|
11:29 PM
|
|
* Improved the debugger again, allowing you to push left/right to cycle throught the triangles
|
|
(by ID numbers).
|
|
* Added vertex numbers to the debugger so you can tell which vertex is which (remember, 1
|
|
is the first vertex because of the way it clips. 2 is the 2nd vertex, and 0 is the third).
|
|
* Fixed uc2:modifyvtx. I knew the solution the whole time, and I remember thinking about it,
|
|
but when I looked at the macro I didn't see what I wanted so I let it go. Then later I come
|
|
back and there it is! I needed to divide the vertex number by two.
|
|
* 0.179
|
|
|
|
12:52 AM
|
|
* Fixed the road in F-Zero by making it so that alpha_cvg_sel can occur with force_blend.
|
|
Luckily, i had made a mistake before and thought something was set that really wasn't.
|
|
As far as I can tell, nothing new broke.
|
|
* Paper Mario wasn't working well because of an odd palette copy, so me & Gonetz decided
|
|
just to change the combiner to T1 instead of T0*T1. (0xe2f10054)
|
|
* 0.1791
|
|
|
|
Saturday, 6/15/02 4:10 PM
|
|
* Large textures now load correctly, so now I need to do the math part.
|
|
|
|
9:21 PM
|
|
* Improved upon the CRC code, removing the need for address checks. Now it multiplies the CRC
|
|
by the position so that the O and U in mario are not the same.
|
|
* 0.1792
|
|
|
|
Monday, 6/24/02 7:41 PM
|
|
* Gonetz sent combiners again
|
|
* Wrote the texture splitting code for texrects, still not working yet though.
|
|
* Triangles in both texrects and triangles are drawn with grDrawVertexArrayContiguous which
|
|
allows vertices to be in a linear array, rendering the pointer table i had made useless. I
|
|
don't believe I hadn't discovered this function before.
|
|
* YAYYYY!!!!!!!! I've finally finished large texture support. Actually half-finished. It works
|
|
PERFECTLY for texrects, but not yet for triangles. No seams, nothing. EVERY SINGLE GAME I've
|
|
tried so far (using texrects) works. About 80% of games with the problem used texrects.
|
|
* 0.18
|
|
|
|
10:17 PM
|
|
* Made it so that textures with masks that are greater than 8 just use the tile size. I haven't
|
|
seen anything broken by this yet, and it speeds up some odd games.
|
|
* 0.181
|
|
|
|
12:23 AM
|
|
* Moved a -1 earlier in texrect, helped fix some coordinate problems. As far as I can tell,
|
|
texrects are now good in terms of coordinates. There are still some lines, but that cannot
|
|
be helped. It's caused by the fact that there are so many of them. The only way to solve is
|
|
to blend between them.
|
|
|
|
2:29 AM
|
|
* Made split texrects clamp so that if they need to wrap, they can do it without getting black
|
|
lines across them.
|
|
|
|
5:01 AM
|
|
* Added "Automatic" filtering mode.
|
|
* Finally found what was causing versions since 0.1792 to go slow. I had called grFinish after
|
|
grBufferSwap to see if it helped the FPS counter. It didn't and it made the plugin go REALLY
|
|
REALLY SLOW.
|
|
* Implemented the rest of rdp:setothermode for uc2. Health meter in Zelda now correct & you
|
|
can't see him in the menu.
|
|
* 0.182
|
|
|
|
Tuesday, 6/25/02 2:21 PM
|
|
* Rewrote the texture cache searching algorithm so that it only has to search a few textures
|
|
instead of all the textures. It takes the highest byte of the crc and only searches the
|
|
textures that had that same value.
|
|
* 0.183
|
|
|
|
4:26 PM
|
|
* Got into really big conversations and all of the sudden, the whole FPS thing hit me at once!
|
|
UpdateScreen() is actually a VERTICAL INTERRUPT!!! This is why it is called twice per every
|
|
ProcessDList(). The TV is updating at 60hz but mario only at 30. This also explains why
|
|
when I used UpdateScreen() instead of the buffer swap, I got the % of speed * 60.
|
|
|
|
5:41 PM
|
|
* Added 4 types of speed counters. There is the FPS counter (frames per second), VI/s counter
|
|
(vertical interrupts per second), NTSC % (percent speed on a (U) game), and PAL % (percent
|
|
speed on a (E) game).
|
|
* Added an option to clear top/bottom of screen like a NTSC TV.
|
|
* 0.184
|
|
|
|
1:45 AM
|
|
* Re-implemented the uc2:background command. Note to self: whenever textures don't show,
|
|
check what's ABOUT to be put into grTexCombine()
|
|
|
|
Wednesday, 6/26/02 2:10 AM
|
|
* The trees in Majora's Mask were screwed up since I changed the texture code to actually emulate
|
|
the tmem. I believe this is because it would wrap to the other side of tmem. I've implemented
|
|
a somewhat fix for this. It will work with power of two wraps.
|
|
|
|
Thursday, 6/27/02 2:05 PM
|
|
* Rearranged clipping code to allow for large texture support. Also it now only performs
|
|
z-clipping if NEEDED, and not always. This also allows for vertices to be copied only once,
|
|
and not twice.
|
|
* OMG. Sooo glad i found this... uCode 1 games were not setting the scr_off flags when they
|
|
were off the screen. This is why i noticed problems when rearranging the clipping code.
|
|
|
|
6:34 PM
|
|
* YAAAAAAY!!!! Large texture code for triangles is now complete!!! I can't find a single game
|
|
that has the problem anymore!!!
|
|
|
|
12:10 AM
|
|
* Added a tmem boundary check for LoadTile. It should fix many exceptions. So far I have seen
|
|
it fix the exception in Extreme-G 2 and 1080 Snowboarding.
|
|
|
|
Friday, 6/28/02 8:55 PM
|
|
* I've been researching this alternate way of getting texture sizes that makes 1080 and several
|
|
other games run much better. The only way there appears to be to do this is to make a game
|
|
specific INI. I have already done this. It makes it so i can have a [DEFAULT] section and
|
|
then override it with other values from each game.
|
|
* Bad config error... for some reason, you cannot attach a tooltip hook and then set a lot of
|
|
checks or your config dialog goes blank. If you create the hook afterwards though, it works.
|
|
* Changed the order of clamping/wrapping so that it can clamp before it wraps if it needs to.
|
|
|
|
10:35 PM
|
|
* Fixed bug in clamp/wrap, it needs to do ALL of s clamp/wrap before it moves on to t.
|
|
* 0.192
|
|
|
|
11:18 PM
|
|
* Made it so that fill mode (3) doesn't add 1 to the lower right coordinate like copy mode (2)
|
|
does. Those things that were fill before are now copy because of when i implemented the rest
|
|
of rdp:setothermode.
|
|
|
|
12:33 AM
|
|
* Added text that says when in windowed mode: "Glide64" "Gfx cannot be drawn in windowed mode"
|
|
"Press Alt+Enter to switch to fullscreen".
|
|
*0.193
|
|
|
|
Sunday, 6/30/02 6:46 PM
|
|
* Now allows Alt+Tab and other key combinations to be pressed.
|
|
* Gugaman and I have been working with the IRP and I think we've finally found a solution. All
|
|
of the games work so far, so we'll keep testing & find out.
|
|
|
|
10:46 PM
|
|
* No problems observed with the IRP.
|
|
* Added clock feature suggested on message board.
|
|
|
|
Monday, 7/01/02 3:44 PM
|
|
* Put in a "break;" after fog, so it doesn't move right on to lightcol.
|
|
* Implemented lots of new combiners for Pokemon Stadium 2 and Megaman.
|
|
* Changed alpha compare a little, adding a check for the combination of CVG_ALPHA_SEL and alpha
|
|
compare.
|
|
*0.197
|
|
|
|
8:15 PM
|
|
* Fixed alignment for triangles. Now it is how it should be. It has eliminated the line errors
|
|
in the Zelda select screens & many other things.
|
|
|
|
* 0.2 in final form
|
|
|
|
Tuesday, 7/02/02 11:38 PM
|
|
* Fixed prim_z for extreme-g 2 by ignoring the matrix it uses.
|
|
* TEMPORARILY CHANGED if ((rdp.render_mode & 0x00000C00) == 0x00000C00) to
|
|
if (rdp.render_mode & 0x00000800) IN DECAL CHECK - fixes castlevania text, but not sure of
|
|
other things.
|
|
* Nothing seems to have broken, keeping for now...
|
|
|
|
3:47 AM
|
|
* Changed enviornment mapping to 0x00080000 instead of 0x00040000 to fix F-Zero car textures.
|
|
* Changed combiner for F-Zero cars to look right.
|
|
* 0.202
|
|
|
|
Wednesday, 7/03/02 8:26 PM
|
|
* Realized that non z-clipped vertices did not use the precalculated values like they were
|
|
supposed to. [added to beta also]
|
|
|
|
9:55 PM
|
|
* Changed alpha test value to 0x80, since that will be optimum b/c it is right in the middle
|
|
of the texel. Also, it was required for Blues Brothers.
|
|
* Fixed 4-bit CI for 16-bit IA textures.
|
|
* Took out the C2, C3 init that Gonetz requested.
|
|
|
|
1:32 AM
|
|
* Added self-jump checking to fix Gauntlet Legends & another check.
|
|
* 0.21
|
|
|
|
Thursday, 7/04/02 9:02 PM
|
|
* Put in some framebuffer support. The copy works ok, but when to use is VERY VERY BUGGY.
|
|
* Completely redesigned the othermode functions so that multiple things could be set at once.
|
|
Also, there is no such thing as "rdp.rendermode" now, it's a part of rdp.othermode_l,
|
|
as rdp.mode_h changed to rdp.othermode_h.
|
|
|
|
10:22 PM
|
|
* Enhanced the debugger, listing all of the othermode settings, with the current ones
|
|
highlighted in green on page 6 and 7 of the debugger.
|
|
|
|
10:42 PM
|
|
* Now that you can set any combination of othermodes at once, i modified my rdp:setothermode
|
|
command to set ALL at once instead of one at a time.
|
|
* Fixed alpha compare so that, like there is no compare when ALPHA_CVG_SEL (full alpha),
|
|
there is no compare when force-blending to full alpha either.
|
|
|
|
1:27 AM
|
|
* Worked past 2-3 hours decoding new ucode for Star Wars: Shadow of the Empire. Works near
|
|
perfect as far as I can tell now.
|
|
|
|
* 0.220
|
|
|
|
Saturday, 7/06/02 7:14 PM
|
|
* Implemented basic ucode #5, Diddy Kong Racing. Icepir8 and I still need to figure out how
|
|
it selects which matrix to use though.
|
|
* Fixed a bug where the rdp_setothermode was using an unknown command instead of the othermode
|
|
commands in ucodes other than 2.
|
|
|
|
Sunday, 7/07/02 1:37 AM
|
|
* Did LOTS with Diddy Kong Racing today, the only thing that seems left is the billboarding.
|
|
* Billboarding done, uses vtx 0 as offset, then adds the current to it.
|
|
|
|
Monday, 7/08/02 3:00 PM
|
|
* Gonetz sent some more combines for diddy
|
|
|
|
12:47 AM
|
|
* Fixed some more stuff in Diddy, like the transparent walls.
|
|
* Added texture-modification code. Now it is possible to do things for combiners that would
|
|
be impossible otherwise. Now you can see the selection in DKR, and also the LOT of Zelda OOT
|
|
works. Don't have save of MM, so can't implement that one yet.
|
|
* 0.230
|
|
|
|
Tuesday, 7/09/02 6:08 PM
|
|
* Fixed cache bug where it wasn't always setting the mod flags, therefore refreshing faster
|
|
and faster each time.
|
|
* Added culling to DKR ucode, works much better now.
|
|
* partially fixed LOT in MM, but the outside is still solid.
|
|
* 0.231
|
|
|
|
Thursday, 7/12/02
|
|
* 0.2 released
|
|
|
|
Sunday, 7/14/02 5:51 PM
|
|
* Fixed the Great Fairy's hair color using texture modification.
|
|
* Fixed the RUSH games, for some reason they have size set to 0, so I used *gfx.VI_WIDTH_REG
|
|
instead to determine the size.
|
|
* 0.232
|
|
* Used texture mod again to fix the SF rush 2049 wings.
|
|
|
|
11:44 PM
|
|
* Added a whole bunch of impossible combines by using the texture modification.
|
|
* Fixed Snowboard Kids by implementing the modifyvtx for ucode 0. (same as 2)
|
|
|
|
Monday, 7/15/02 9:07 AM
|
|
* Fixed items in Super Smash Brothers by implementing the moveword matrix command. It took
|
|
me a while to figure out that it was incrementing in the x direction and not the y, and also
|
|
that you actually add the positive decimal part, EVEN WHEN WHOLE NUMBER IS NEGATIVE.
|
|
* 0.235
|
|
|
|
1:02 PM
|
|
* Added new INI code, should be no more corrupting.
|
|
|
|
3:21 PM
|
|
* Added culling for Diddy Kong Racing & fixed a non-working combine for the background color.
|
|
* Added huuuuge semi-combiner for flashing characters in SSB.
|
|
* Added support for clearing z-buffer using a texrect (SSB black rectangle).
|
|
* 0.237
|
|
|
|
1:18 AM
|
|
* Added a framebuffer workaround for Zelda: MM LOT. Now it works without needing to use
|
|
framebuffer copies.
|
|
* 0.240
|
|
|
|
Tuesday, 7/16/02 11:30 PM
|
|
* Found out that the LOT and telescope problems are with prim_depth. It enables but doesn't set
|
|
a depth value.
|
|
* Rice gave me plenty more new things to do :)
|
|
* The dlist with count command now implemented in f3dex 2.xx ucode. Cruisin' Exotica works.
|
|
(Rice's help)
|
|
* 0.241
|
|
|
|
12:27 AM
|
|
* Added the movemem matrix command, WWF No Mercy works now.
|
|
* 0.242
|
|
|
|
Wednesday, 7/17/02 5:53 PM
|
|
* Fixed SERIOUS bug in CI textures, it would not use the correct format.
|
|
* Fixed combine for link's sword swirl.
|
|
* Added new buffer swapping method that fixes flashing.
|
|
* 0.247
|
|
|
|
Friday, 7/19/02 4:20 PM
|
|
* Made LoadTile boundary checking MUCH better; now checks if >= and also for last write so
|
|
even if it's not aligned properly it will cut anything that goes above. Paper Mario
|
|
level up fixed.
|
|
* Added several combines for xg2.
|
|
* V-Sync option added. This only takes effect if it's set to "Software Controlled" in the 3dfx
|
|
Hub.
|
|
|
|
7:37 PM
|
|
* Made it possible to continue after a gfx exception.
|
|
|
|
8:29 PM
|
|
* Got fillrects to align perfectly now by forcing the coordinates to DWORD instead of float.
|
|
* Got rid of the floating point error in fillrects and scissor by adding 0.01f.
|
|
|
|
Saturday, 7/20/02 3:54 PM
|
|
* Made it so that texrects on copy mode will use full alpha but also have alpha compare.
|
|
* 0.250 released
|
|
|
|
11:51 PM
|
|
* Made it so that fillrects use the z-buffer as specified and not always update, no compare.
|
|
Banjo-Tooie fixed.
|
|
|
|
Sunday, 7/21/02 8:01 PM
|
|
* Fixed 12 PM clock bug, and added 24-hour clock option.
|
|
* Made a REAL error log.
|
|
* Fixed stats not showing up by redoing alpha compare for texrects.
|
|
* 0.253 released
|
|
|
|
* Took out if(!force_full_alpha) from alpha compare.
|
|
|
|
2:46 AM
|
|
* Added first part of S2DEX ucode; the obj_loadtxtr and bg_copy.
|
|
* Found out that uc2_bg and uc6_bgcopy were the exact same thing... I think F3DEX sorta
|
|
"borrowed" it. Set the F3DEX one to the S2DEX one.
|
|
|
|
Tuesday, 7/23/02 11:10 PM
|
|
* Added lots more to the S2DEX ucode, yoshi's story is now about as good as it can get. The
|
|
background uses framebuffer, so...
|
|
* Microcode switching should be ok now for the most part.
|
|
|
|
11:31
|
|
* Added combiner for WWF No Mercy rules.
|
|
* Allowed things to have negative viewport; MK mythologies fixed.
|
|
|
|
|
|
/*Gonetz*/
|
|
Friday, 10/18/02 12.40
|
|
I'm going to fix depth problem
|
|
* step 1. Added new coordinate to VERTEX - w. Replaced all .z and ->z by .w and ->w b/c old z is
|
|
actually w. Affected files:
|
|
rdp.h
|
|
Ucode00.h
|
|
ucode01.h
|
|
ucode02.h
|
|
ucode03.h
|
|
ucode04.h
|
|
ucode05.h
|
|
Debugger.cpp
|
|
Util.cpp
|
|
Tested. Nothing seems to be broken :)
|
|
* step 2. z coordinate is now calculated in all ucodes.
|
|
* step 3. using z for w buffer. z/w actually. Corrected all clipping functions.
|
|
Ops, does not work :( I forgot, z/w is in range (-1,1).
|
|
(z/w + 1)/2 does not work well either.
|
|
|
|
* Idea: use "screenZ=(z/w)*0x3fe0 + 0x3fe0" formula for z and Z buffer instead of W buffer.
|
|
Wow, it's work! Taz and Gex appears at last :) But some problem remains.
|
|
Some triangles are missing. I think it's b/c of z clipping
|
|
|
|
Saturday, 10/19/02 13.00
|
|
* Found stupid bug in clipping functions which is result of cut'n'paste editing.
|
|
Now picture is close to perfect. But some triangles are still missing,
|
|
for example water near castle in Mario64.
|
|
* Replaced all _z slot names by _w.
|
|
* Fixed z for texrect and fillrect. Strange, but primdepth does not work well for z -
|
|
DukeNukem64 has errors with it.
|
|
I use primdepth + 8, all works quite well now. Need to test it more.
|
|
|
|
23:15
|
|
* According to manual, correct formula for z is:
|
|
screenZ = 32*((z/w)*view_scale[2] + view_trans[2])
|
|
I use it now, nothing is changed, but may be some games use other value for
|
|
view_scale[2] and view_trans[2] then default 0x1ff
|
|
|
|
Sunday, 10/20/02 17.20
|
|
* Z clipping is finally fixed. I thought that z should be 0 after Z clipping,
|
|
but it actually must be clipped the same way as x and y.
|
|
Now all works perfect!!! Nokonec to, blin :)
|
|
|
|
* Added missing combines for Taz express and Road Rush
|
|
* 0.260
|
|
|
|
Tuesday, 10/22/02 20.20
|
|
* Started to implement ucode for Perfect Dark. I took info about it from Icepir8's plugin.
|
|
Changes:
|
|
ucode.h - new ucode
|
|
ucode07.h - vertex and tri4 implemented
|
|
ucode00.h - matrix. mask removed to be compatible with PD
|
|
rdp.h - tex_coord_addr added
|
|
rdp.cpp - rdp_reset, tex_coord_addr initialization
|
|
- rsp_reserved2, tex_coord_addr value
|
|
config.cpp - new ucode
|
|
|
|
Wednesday, 10/23/02 13.30
|
|
* new combines and tex modes added.
|
|
|
|
Thursday, 10/31/02
|
|
* Fixed Rayman2.
|
|
Changes:
|
|
ucode00.h - implemented gSPForceMatrix command in movemem. All 3FFFFF mask replaced by FFFFFF
|
|
ucode01.h - 3FFFFF mask in vertex replaced by FFFFFF
|
|
combine.cpp - implemented missed combines for Rayman2
|
|
|
|
|
|
Saturday, 11/9/02 15.30
|
|
* rdp_texrect(): float Z = 32704.0f replaced by float Z = 1.0f; That fixed onscreen
|
|
info in xg2.
|
|
* Fixed combine for Bug's life. Start menu background appears.
|
|
* Fixed uc2:modifyvtx. Main menu background in Bug's life appears
|
|
* Fixed constant depth processing in do_triangle_stuff(). Main menu in Bug's life works (somehow)
|
|
* Fixed combine for Bomberman2. Water is transparent now.
|
|
* Monsters poked through walls in DukeNukem64 was caused by depth bias level value.
|
|
Replaced depth bias level from 0x20 to 0x18.
|
|
No need of "rdp.prim_depth + 8.0f" hack in rdp_texrect() anymore.
|
|
|
|
* heap of new combines implemented
|
|
|
|
Saturday, 11/16/02
|
|
* Since z in N64 is in range [0, 32704], I decided to multiply it by 2.
|
|
It improves quality of depth buffer.
|
|
Changes:
|
|
Util.cpp - do_triangle_stuff()
|
|
Rdp.cpp - rdp_texrect()
|
|
|
|
Sunday, 11/17/02
|
|
* Added hacks in texrect and fillrect to avoid black screen in ZeldaMM
|
|
"Link meets princess Zelda" cut scene and in between days.
|
|
Changes:
|
|
Rdp.h - new flag
|
|
Rdp.cpp - hacks in rdp_texrect() and rdp_fillrect()
|
|
ucode06.h - hacks in uc6_bg_copy() and DrawImage()
|
|
|
|
Monday, 11/18/02
|
|
* Added hack into uc2:modifyvtx, (x,z). Tarzan is fixed
|
|
* new combines and tex modes added.
|
|
* Altered combine for flame in Zeldas. It looks good :) Redone similar combines.
|
|
|
|
|
|
Tuesday, 11/19/02
|
|
* Added new settings parameter - depth buffer mode.
|
|
User can choose either new Z-buffer mode or old W-buffer one.
|
|
W-buffer is useful in games, where Z-buffer causes poke-through artefacts.
|
|
|
|
|
|
I've got Dave2001's last version. Many things are not finished, but I inserted some of his fixes into current version:
|
|
* Made it so games only report ucode error only once.
|
|
* Backwards viewport needs backwards culling ;) fixed DKR Adventure 2 mode (mirrored tracks).
|
|
I'm not sure about other ucodes, so I haven't changed the culling for them yet.
|
|
* Oops, loadblock boundary check was in bytes instead of qwords. Xena problem fixed.
|
|
* Fixed mod_tex_inter_col_using_col1; it was using a 32-bit color when it was really only 16-bit.
|
|
This fixed the colors of the WWF No Mercy menus.
|
|
|
|
Saturday, 12/14/02
|
|
* heap of new combines implemented
|
|
|
|
Sunday, 12/15/02
|
|
* Fixed Banjo-Tooie.
|
|
Changes:
|
|
Rdp.cpp - rdp_texrect() - new hack
|
|
rdp_fillrect() - old hack, removed by Dave2001 for some reason after 0.250
|
|
* Fixed backgroung fire on level 23, Doom64
|
|
I've modified alpha compare condition in Util.cpp
|
|
* Changed Zelda MM hack in texrect.
|
|
* implemented heap of new combines
|
|
|
|
|
|
Wednesday, 12/18/02
|
|
* Changed Zelda MM hack in texrect so it should not affect other games anymore. Konami logo is fixed in many games.
|
|
* implemented new combines
|
|
|
|
Friday, 12/27/02
|
|
* Removed perfect dark microcode from final version - need more work b4 release
|
|
* 0.3
|
|
|
|
Wednesday, 01/07/03
|
|
* Changed fillrect so it usses fillcolor allways, but it calculates it differently depending on cycle mode.
|
|
I don't know why Dave2001 implemented so complex color transformation for this function,
|
|
but I think it was a reason for that, so I left it as is for FILL mode, but for 1 and 2 cycle mode I use
|
|
normal fillcolor. Car selection screen in SF Rush is fixed.
|
|
* Changed texrect - I force depth compare when primdepth is used. Car selection in SF Rush 2049 is fixed.
|
|
|
|
?
|
|
* Changed fillrect again. Privious modification causes many gfx erorrs.
|
|
* Added depth value check in texrect. Primdepth value can be too high.
|
|
|
|
Sunday, 01/19/03
|
|
* Added new buffer swapping method which prevents flicker in Paper Mario (not everywhere yet).
|
|
* Implemented many combiners for Paper Mario.
|
|
|
|
Friday, 01/31/03
|
|
* Fixed uc0_moveword LIGHTCOL. n was calculated wrong.
|
|
Background in "star soldier vanishing earth" fixed.
|
|
|
|
Saturday, 02/01/03
|
|
* Implemented calls of GS2DEX ucode functions from F3DEX2 ucode.
|
|
2D stuff in Bomberman 2 is fixed.
|
|
* Changed uc6_obj_sprite so it uses combiner instead of just texture.
|
|
Required for some objects in Bomberman 2
|
|
|
|
* 0.31
|
|
|
|
Wednesday, 02/12/03
|
|
* Added new setting - ignore_short_dlist. It allows me to avoid weird bug in Tonic
|
|
Trouble, when game get caught in an endless loop, drawing title screen.
|
|
* Found an error in ini which was the reason why Dave's work for Yoshi Story caused an exception.
|
|
F3DEX1 ucode which Yoshi uses in the begining, was mistakenly set to 6. Yoshi is
|
|
working with last Dave's version now
|
|
|
|
|
|
Thursday, 02/13/03
|
|
* Moved Dave's code for Yoshi into current version. It works
|
|
* 0.312
|
|
|
|
Friday, 02/14/03
|
|
* Fixed uc6_obj_sprite so sprite can be translucent. It needed for Yoshi statistics screen.
|
|
* Trying to fix garbage appeared on top of the screen in Yoshi. no results :(
|
|
|
|
Saturday, 02/15/03
|
|
* While trying to fix topscreen garbage, I begin to understand, how the things work :)
|
|
Texrect function copies texture into framebuffer(DRAM) instead of drawing it.
|
|
Dave chose very strange and complex way to do it - he loaded texture, copied it's data
|
|
into special texture buffer, and then copied it from that buffer into framebuffer.
|
|
I have modified his code. I directly copy data from texture address into framebuffer adress.
|
|
It's faster, more easy and less buggy :) But it does not fix topscreen garbage problem.
|
|
This problem is solved somehow in PJ 1.5 plugin though.
|
|
|
|
Thursday, 02/27/03
|
|
* Fixed DrawImage routine, so it works correct with scaled images. Zoom in Yoshi works
|
|
* Implemeted uc6_obj_rectangle. Pokemon Puzzle League is almost playable now. But some textures are broken.
|
|
|
|
Saturday, 03/01/03
|
|
* Worked on Pokemon puzzle league:
|
|
Fixed DrawImage routine, so it can draw images with odd value of width and height.
|
|
Added possibility to use combiners with backgrounds.
|
|
(almost) no problems with background remained in this game.
|
|
I need to solve problem with 8bit CI textures, wich became broken after loading of 32bit RGB textures.
|
|
|
|
Saturday, 03/08/03
|
|
* Fixed rdp_loadtlut(), so it will not get off pallete array bounds.
|
|
It fixes Inferno area in Banjo 2 and may be some other games.
|
|
|
|
Tuesday, 03/11/03
|
|
* Finnaly found why CI textures became broken after 32bit texture load in PPL.
|
|
It was a bug in uc6_obj_loadtxtr (). Dave forgot to set tile size there, so
|
|
after 32bit texture load it was equal to 3, and all non 32bit textures was
|
|
swapped wrong. Now all textures in PPL look correct, the game is almost playable :)
|
|
|
|
Wednesday, 03/12/03
|
|
* Implemented loading of title screen in games which draw image before first ProcessDList
|
|
(Rayman2, Tonic Trouble, Wave Race...) I found solution in sources of Rice's great plugin.
|
|
|
|
|
|
Friday, 03/14/03
|
|
* Fixed texture problem in PPL when it uses F3DEX 1 ucode!
|
|
Tile's ul_s and lr_s coordinates were set to 0 by settilesize - 1 texel was clamped to all triangle.
|
|
Solution: take ul_s and lr_s from next loadtile. It works!
|
|
|
|
Saturday, 03/15/03
|
|
* Fixed bricks in 3D mode. Bricks use CI texture, and for some reason u and v coordinates
|
|
of loaded vertex are two time bigger then they must be, when vertex uses CI.
|
|
Solution: check format in uc0_texture() and change s_scale and t_scale for CI format
|
|
|
|
Sunday, 03/16/03
|
|
* Implemented uc0_moveword() move_point. Cruise in USA works perfectly now!
|
|
|
|
Monday, 03/17/03
|
|
* Fixed many bugs which causes an exception in PPL.
|
|
* Added new special fix - wrap textures too big for tmem.
|
|
It's Dave's old hack for trees in Zelda MM intro.
|
|
It breaks texture in Zelda's N64 logo and may break other things,
|
|
so I've made it optional
|
|
|
|
Tuesday, 03/18/03
|
|
* Fixed candle's flame in Paper Mario - error in alpha combine
|
|
* My fix for car selection screen in SF Rush 2049 breaks particle in Rayman.
|
|
I don't know, how to make both things working :(
|
|
Another special fix for SF Rush 2049 only
|
|
|
|
Wednesday, 03/19/03
|
|
* Fixed pointer in Bust a Move 2! This game has the same problem with CI textures,
|
|
as PPL, so fix for PPL fixes this game too :)
|
|
|
|
Saturday, 03/22/03
|
|
* Implemented branch_z function for F3DEX 1 ucode. It's used in SF Rush.
|
|
All texture problems in this game are fixed!
|
|
* Added new special fix - "use depth compare for fillrect". Using depth compare
|
|
in fillrect fixes car selection screen in SF Rush, and doing this much better,
|
|
then my previous hack. This option changes N64 logo in Zeldas though, so it's
|
|
off by default.
|
|
|
|
Sunday, 03/23/03
|
|
* Fixed most of tecture errors in V-Rally 99. The same problem - too large u and v coordinates.
|
|
This fix is a hack indeed. I'm tired of all that hacks, but I could not find,
|
|
why vertex loaded incorrectly.
|
|
And besides, all in-game statistics is missing :(
|
|
|
|
Monday, 03/17/03
|
|
* I forgot to implement call of uc6_ldtx_rect_r from zelda ucode. That's why
|
|
in-game statistics in V-Rally 99 was missing.
|
|
|
|
Wednesday, 03/26/03
|
|
* Fixed combiners using in sprite commands. Combine() is not used if in "copy" mode
|
|
V-Rally looks exactly as on N64.
|
|
|
|
Tuesday, 03/27/03
|
|
* Allowed negative viewport for zelda ucode. Destruction Derby Professional Championship is fixed.
|
|
|
|
Saturday, 03/29/03
|
|
* Fixed crc calculation for 8-bit color textures. Burning cars in Destruction Derby are burned :)
|
|
|
|
Monday, 04/07/03
|
|
* Implemented TextureRectangleFlip - text in Wetrix fixed
|
|
|
|
Thursday, 04/10/03
|
|
* Fixed uc6_obj_rectangle_r - text in Yoshi has correct size.
|
|
* 0.4
|
|
|
|
Friday, 04/17/03
|
|
* Fixed trail problem in Zelda OOT. Rice sent me an idea how it can be done.
|
|
Actually it was already implemented by Dave, but values for depth bias level
|
|
were incorrect.
|
|
|
|
Sunday, 04/19/03
|
|
* Implemented Sprite2D microcode. Backgrounds in Silicon Valley are fixed
|
|
Fixed primdepth loading. Billboard objects in Silicon Valley are fixed too.
|
|
|
|
Wednesday, 04/30/03
|
|
* Fixed palette loading (load_palette). This fixed nemu in StarCraft. Yet again the solution (idea) was found
|
|
in sources of Rice's plugin.
|
|
*0.41
|
|
|
|
?
|
|
* fixed compatibility of Zelda OOT MQ with 1964
|
|
|
|
Sunday, 05/18/03
|
|
* Added hack for sun in zeldas.
|
|
|
|
Wednesday, 05/21/03
|
|
* Implemented palette loading in Sprite2D microcode and fixed many things in it.
|
|
2D stuff in wipeout works.
|
|
|
|
Tuesday, 06/03/03
|
|
*New hack in texrect to remove black screen in Sin and Punishment
|
|
|
|
|
|
Thursday, 06/05/03
|
|
* fixed uc1_line3d - map in Doom64
|
|
* changed blender mode for fillrect - sky in Doom64
|
|
* fixed combiners for walls and weapons in Doom64
|
|
|
|
Saturday, 06/07/03
|
|
* changed texture mods for CI textures. I'm changing palette before texture loading
|
|
instead of modifying already loaded texture. This is more faster and more precise.
|
|
|
|
Sunday, 06/08/03
|
|
* added new hotkey - texture filtering mode can be changed during gameplay by
|
|
pressing BACKSPACE. This is Raziel64's idea.
|
|
|
|
* Implemented frame buffer emulation. I use 2 pass approach. First pass - detect frame buffer usage - very fast.
|
|
Second pass - normal display list processing, but with knowledge how frame buffers will be used.
|
|
|
|
* Added ExtendedPlay's Banshee hack.
|
|
|
|
* Added "special game settings" section in the ini
|
|
|
|
* New hotkeys for motion blur and read always
|
|
|
|
* Many other fixes
|
|
|
|
* New configuration dialog, based on property sheets
|
|
|
|
V. 05
|
|
|
|
* Fixed ucode for Perfect Dark. It works without glitches now
|
|
|
|
* Added support for Jet Force Gemini and Mickey's Speedway into Diddy's ucode.
|
|
|
|
* Added partial yuv textures support. I failed to decode them with the method described in the manual - something wrong with the coefficients.
|
|
Thus I found correct formula in Internet, it works. I have optimized decode procedure specially for Ogre Battle 64, it hardly will work with other game.
|
|
|
|
* Implemented new frame buffer related functions - FBRead and FBWrite. FBRead could help to emulate frame buffer effect which previously required
|
|
"read always" option. FBWrite makes Dr.Mario playable
|
|
|
|
* Implemented hardware texture emulation. Huge and hard work.
|
|
|
|
* Failed to do correct fog emulation. I tried to use fogcoord extension, like in Orkin's plugin. It works, but fog is not smooth.
|
|
|
|
* Added large texture support for sprite microcode
|
|
|
|
* Fixed texrect_flip
|
|
|
|
* Changes in the configuration dialog
|
|
|
|
v. 07 SP8
|
|
|
|
- New version
|
|
|
|
* I have switched to RGBA color format. This format is used by N64 itself.
|
|
I can't understand, why Dave decided to use ARGB. With RGBA I don't need
|
|
to do color conversions, and everything is more simple. Besides, OpenGL also uses
|
|
RGBA format only, so port to OpenGL will be more simple.
|
|
|
|
* I've made another attempt to implement fog via fog coord extension.
|
|
This time I set fog coord after all clipping. It still not perfect for clipped surfaces
|
|
but no major glitches this time. I decided to use it.
|
|
|
|
* I have found why kicked out fighter in Super Smash Bros has black rectangle bourder.
|
|
This black rectangle have to be rendered into the depth buffer. Weird thing.
|
|
I've made check that texrect will not be drawn if current color buffer is depth buffer.
|
|
This problem is fixed.
|
|
|
|
* I have found that walls in Perfect Dark are incorrect again. That was caused by my
|
|
hack in the combiner for car setup in Top Gear Rally. I have corrected this hack.
|
|
It does not use LOD if mipmap_level is the same as current_texture.
|
|
|
|
* I have implemented depth buffer render. Of course, it takes a lot of CPU time.
|
|
But I found fast algorithm with fixed point arithmetics, so I can run some
|
|
games fullspeed even on my 1ghz Celeron.
|
|
|
|
* Hacktarux suggested me to use N64 format for z value, so Glide will loose
|
|
precision on the same place as N64 itself. I finally understood what he ment,
|
|
and implemented it. Well, all old poke-through problems with z-buffer are gone,
|
|
but new one appeared. This method does not work. But I noticed, that conversion
|
|
from my z to N64 z is not linear. It gives enough precision for large z
|
|
at the cost of loosing precision with small z. I decided to use floated point
|
|
z conversion which works similary - (z/65535)*z*2. Great! No problems with close
|
|
objects and much less problems with far ones. After that I have removed w-buffer mode
|
|
entirely. It's not compatible with fog-coord anyway. I also removed old fog algorithm.
|
|
|
|
* Implemented 32bit frame buffer support (convert 16bit glide frame buffer into 32bit N64 ones).
|
|
|
|
* Fixed frame buffer effects detection algorithm to support rear-view mirror in Roadsters.
|
|
Later I found how to make it working without fb support - just remove corresponding texrects.
|
|
Rear-view mirror now works full speed on any videocard.
|
|
|
|
Monday, 27 Dec 04
|
|
* Fixed grid in Mario Golf. The error appeared after rewriting of modifyvtx function. It was caused by
|
|
unset x,y and zsrc is on.
|
|
|
|
Tuesday, 28 Dec 04
|
|
* Fixed combiner for road in Zelda OOT.
|
|
* My ZtoN64Z causes problems for small z. As result text in Tigger Honey Hunt is disappeared.
|
|
Tuned ZtoN64Z so it does not transform small z now. Not sure, it can cause other problems.
|
|
* Added new hack - increase texrect size. Rice uses similar hack to fix new tetris and mega man 64.
|
|
The new tetris is fully playable now with texture coordinate fix.
|
|
|
|
Sunday, 02 Jan 2005
|
|
* Added prim_depth using in fillrect.
|
|
|
|
Tuesday, 04 Jan 05
|
|
* Rewrited fog again
|
|
* Implemented special fog mode, when object is not fogged, but became transparent instead.
|
|
|
|
Wednesday, 05 Jan 2005
|
|
* Fixed depth buffer clear in fillrect.
|
|
* Removed depth compare hack from fillrect
|
|
* Fixed out of range bug in depth render.
|
|
|
|
Sunday, 16 Jan 2005
|
|
* Fixed depth problem in Destruction Derby. Maximum depth value must be <= 65534
|
|
* Fixed depth problem in sprite microcode - z conversion must not be used in set_sprite_combine_mode.
|
|
* Fixed color combiner for fire electric pen.
|
|
* Fixed fog when fog multiplier is negative.
|
|
* Added combiners for Paper Mario
|
|
* Fixed texcoord hack for Polaris Snow Cross
|
|
|
|
Monday, 17 Jan 2005
|
|
* Added combiners for Paper Mario
|
|
|
|
Tuesday, 18 Jan 2005
|
|
* Fixed text in Doraemon - Mittsu no Seireiseki. This is the second game, which uses CPU frame buffer writes.
|
|
* Added dithred alpha support. I found 2 undocumented Glide functions: grStippleMode and grStipplePattern.
|
|
They work almost the same as similar functions in OpenGl. Dithred alpha test is used in Mario64, and now
|
|
it works very good.
|
|
|
|
Thursday, 20 Jan 2005
|
|
* Added per-pixel LOD calculation. It was quite hard to get decent result. Peach/Bowser portrait's transition
|
|
in Mario64 works fine, Perfect Dark is acceptable too. Only Utils.cpp is changed.
|
|
|
|
Friday, 21 Jan 2005
|
|
* Added LOD option to the configuration panel
|
|
* Added missing tooltips
|
|
* Added stipple options to ini file.
|
|
|
|
|
|
22-30 Jan 2005
|
|
* RE2. fix in DrawImage.
|
|
* RE2. depth buffer render to video memory to fix depth problem. Slow
|
|
* RE2. Found how movies work. 2 mode implemented - stretched and in the native resoluton.
|
|
* RE2. Added depth buffer render via HWFBE. Fast and perfect.
|
|
* Fixed depth problem with prim depth.
|
|
* Fixed depth problem with texrects which uses prim depth - depth write must be off while depth compare must be on.
|
|
* Fixed some combiners.
|
|
|
|
Tuesday, 1 Feb 2005
|
|
* !Changed rdp_loadblock. texture image address will not changed if lr_s is 0. This fixes Twisted Edge Extreme Snowboarding
|
|
background.
|
|
|
|
Thursday, 3 Feb 2005
|
|
* Added hack for backgrounds in WCW Nitro.
|
|
* Removed zelda hack from DrawImage. WCW Nitro backgrounds did not work because of this hack.
|
|
* Added hack for texture generation in Chopper Attack. This hack was used for all games and this caused one glitch in
|
|
Super Mario, so I made it optional.
|
|
* Fixed partially Horisont Scaner in Perfect Dark. Glitch was caused by one option on texrect, which prevents to draw
|
|
texrects wich use previous frame as texture. For Horisont Scaner the same color buffer is used each frame (strange).
|
|
* Added missing combiner for Perfect Dark.
|
|
|
|
Friday, 4 Feb 2005
|
|
* Added GUI option "Show RE2 videos in native resolution"
|
|
* Fixed videos crash with PJ64. For some reason first frame has height > 256, so I had write above bounds here.
|
|
* Implemented several combiners for Paper Mario and Tony Hawk.
|
|
|
|
Tuesday, 8 Feb 2005
|
|
* Fixed "Tidal wave" in Paper Mario. It's quite complex frame buffer effect, many things were changed in FB emulation.
|
|
It still has problem with HWFBE.
|
|
|
|
Wednesday, 9 Feb 2005
|
|
* Fixed (rather hacked) viewport problem in RE2.
|
|
|
|
12-13 Feb 2005
|
|
* Added suport for cloaking effect in Perfect Dark. It was hard - the game may use about 30 auxilary frame buffers here.
|
|
New frame buffer type was added - aux_copy. HWFBE does not work correct here.
|
|
|
|
Monday, 14 Feb 2005
|
|
* Source cleaning.
|
|
|
|
Tuesday, 15 Feb 2005
|
|
* More source cleaning
|
|
* Fixed combiner for boost mode in Beetle Adventure Racing.
|
|
|
|
|
|
|
|
23-27 Feb 2005
|
|
* A lot of changes in fb emulation and in HWFBE. Tidal wave in Paper Mario, cloaking effect and motion blur in Perfect Dark,
|
|
replay in 1080...
|
|
|
|
1 Apr 2005
|
|
* Paper Mario intro. There is a kind of fb effect. I have changed main ci height calculation in fb_setcolorimage and
|
|
in rdp_setcolorimage to make it working.
|
|
* Paper Mario intro. Added a hack into blender to remove weird texrect when bowser throw up flame.
|
|
|
|
|
|
|
|
These changes were originally not mentioned here:
|
|
Glide64 Wonder and Wonder Plus
|
|
* April 2005 to November 2005
|
|
|
|
glide64-wonder+-linux
|
|
* unknown
|
|
|
|
glide64-wonder+-linux v10
|
|
* March 2007
|
|
|
|
glide64-wonder+-linux v11
|
|
* April 2007
|
|
|
|
glide64-wonder+-linux v12
|
|
* May 2007
|
|
|
|
|
|
|
|
Glide64-amd64 v0.9
|
|
* forked from glide64-wonder+-linux v12
|
|
* Ported all GCC and nasm assembler to AMD64 and corrected various other 64 Bit portability problems
|
|
-- 2008-02-01 Günther <guenther.emu@freenet.de>
|