Path: blob/master/libmupen64plus/mupen64plus-video-glide64/src/Changes.txt
2 views
12/09/02 Version 0.04 Released23Sunday, 2/10/02, 4:35 PM4* Completely redid combine modes to allow for multiple equation types5* The new combining method seems to have made enemies in Star Fox flash when you hit them6like they are supposed to.7* Also in the new combine mode system, unimplemented combiners should now show as bright red.89Monday, 2/11/02, -:-- PM10* Added many new combine modes1112Tuesday, 2/12/02, 5:29 PM13* Fixed it so that it will now use the tile descriptor given in uc0:texture instead of14assuming 0.1516Wednesday, 2/13/02, 6:53 PM17* Added 1964 support. The problem was that 1964 reloads the plugin when it switches18to fullscreen. Also, I wasn't logging DllMain, which was why I didn't notice the error.19Now it switches to fullscreen at the next dlist, meaning no reloading the dll since we20last called grGlideInit.2122Monday, 2/18/02, 1:26 PM23* Added triangle caching, now things should run a lot faster since it only has to do matrix24transformations once per vertex instead of every time the vertex is used.25* Also, vertex transformations are now done during the vertex instruction, which fixed the26problem with Banjo's seperated body parts. The vertices were using two different matrices27and doing the transformations at draw time was only using the last matrix that was set.28292:45 PM30* Now it should only calculate lighting once per vertex also, but I didn't see any speed31increase... maybe something went wrong?3233Tuesday, 2/19/02, 8:59 PM34* Started on uCode 2 (5 in the compat. list), F3DEX 2.XX. This is the uCode that Zelda6435uses. So far I have written the instruction table, and implemented uc2:moveword for36segment offset. I'm really amazed that it now runs without ANY undefined instructions.373811:13 PM39* Gugaman has fixed the lighting speed problem! Now it goes a lot faster. The vertex40normals were being normalized in a loop with all the lights, and also a lot of the41variables are now declared as 'register'. We also took out an unused vector.424311:56 PM44* We optimized it again! This time I moved the normalizing code totally out of the light45calculation. I am also now calculating lighting before copying, which now allows it to46only calculate once per frame.4748Thursday, 2/21/02, 8:51 PM49* Yesterday I got my Zelda wireframes working. Today I added textures, and am currently50researching how T1 works.51* Sometimes triangles were empty (all three points were the same), which would mess up52the click detection code. Now it's a lot easier to navigate the triangles, and53it should speed up a little more too (barely).5455Saturday, 2/23/02, 5:14 PM56* Added texture swapping support, things look better now in Super Smash Brothers and57Pilotwings.58598:51 PM60* I found out what's going on with most of my texture problems. I've severely underestimated61the use of mask. Not only can it be used for mirroring, but it can be used to determine62size as well. It's time to do the major change I've been avoiding all this time...63triangle and texture splitting.64* Also, by using mask, it fixes all those very odd settilesize problems, like the Quest6465fireball spell.666711:52 PM68* I've partially implemented texture splitting, it seems to load the two textures correctly.6970Sunday, 2/24/02, 1:49 AM71* Fixed the missing triangles problem with Zelda and Super Smash Brothers, the uc2:tri172command uses cmd0 for it's vertices instead of cmd1.73748:35 AM75* Ok, when I turned on my computer this morning, it deleted my Util.cpp and I lost my76texture splitting. It was already messed up, so I would just have to redo it anyway.77I'm going to do triangle splitting first now, texture splitting isn't as important.78799:15 AM80* Gonetz ([email protected]) submitted a speedup idea, to pre-multiply matrices so that they81do not have to be calculated with each vertex. I had a little trouble implementing it82because I was trying to do model*proj instead of proj*model or vice versa for both.8384Monday, 2/25/02, 6:46 PM85* I've totally redone the combiner86* Texture wraps and mirrors with clamp are now used in texture loading, super smash brothers87almost works correctly now88* Texture CRC checks now should be correct8990Saturday, 3/02/02, 2:58 PM91* Wheeee!!! I've speeded up compiling time by A LOT by using a precompiled header.92* I've figured out how to fake the LOD into letting me do texture interpolation.93* I've implemented many zelda combine modes.9495Tuesday, 3/05/02, 5:35 PM96* YAY!!! Icepir8 has shown me how to do lighting correctly. I was using an unsigned byte when97the light direction requires it to be signed.9899Someday in-between Tuesday and Friday, 3/??/02, whatever PM100* I've implemented the Zelda fire combine mode101102Friday, 3/08/02, 12:04 AM103* Gonetz sent me the file to implement Waverace's ucode. I tested it and it works. He also104gave several suggestions for improving the combiner, which I will do in the next few days.105106Saturday, 3/09/02 9:00 PM107* I've done yet another combiner, this time it doesn't have a gigantic switch statement. This108combiner is based on ideas by Gonetz, and combined with some of my own.109* Icepir8 just told me that if I transformed my normals on vertex load instead of transforming110light vectors, I could save a lot of calculations.11111210:58 PM113* Okay, I'm done with the new lighting system. I don't see any speedup because something else114is seriously slowing my plugin down.115116Sunday, 3/10/02 3:18 PM117* Gonetz has told me how to fix a matrix problem in Waverace. Now there is no large dolphin.118The problem is that I need to clear the matrix stack count every frame. I had this code119before, but took it out for some reason.120121Monday, 3/11/02 8:33 PM122* Implemented a "GFX plugin has caused an exception" dialog, that makes it go back from123fullscreen and prevents it from crashing on exceptions. (try/catch in ProcessDList)124* Figured out how force blending and other such works, not implemented yet though.12512610:12 PM127* Implemented some force blending, for things like mario kart player select.128129Tuesday, 3/12/02 9:48 PM130* Fixed kokiri faces bug, I had read somewhere that palettes had to be aligned to 8-bytes,131but this was obviously not true. The palette in zelda was using an ending value of 'C'.132133Wednesday, 3/13/02 6:17 PM134* Defined the real values for combine modes rather than a shortened, one-for-all-slots135version. Now I don't get odd things like "use prim_lodfrac for starfox menu item alpha",136instead it is "1". All of the combine descriptions need to be converted though :(1371388:21 PM139* I redid lighting again, this time a mixture of both methods. I first translate the light140vector by the inverse model matrix, and then use that in ucx:vertex to calculate lighting.141This way I do not have to transform every single normal, rather, one light vector per group.142143Thursday, 3/14/02 6:55 PM144* Got waverace texrects to show by setting the default alpha for shade in fillrects to 0.145146Saturday, 3/16/02 2:54 PM147* Fixed clamping problem, was using tiles 0 and 1 always, when it should've been rdp.cur_tile148and rdp.cur_tile+1. Now Banjo-Kazooie wraps everything correctly.149* Added many many more combine modes for the new combiner over the past few days.1501515:29 PM152* Revised the debugger, now it can run in any resolution. Also redid the texture viewer153so that it's simpler, and supports TMU1.1541559:12 PM156* Added the two .3df files to the program as resources, they had to be as "RCDATA", even157though nothing specified that. No more extra .3df files are required. The font texture158is now loaded from a 1-bit alpha texture, using some assembly code, and the cursor texture159is the same. I also added a colored text option, so that the combiners and headers of the160debugger are color-coded.161162Sunday, 3/17/02 10:45 PM163* Fixed translucency problems finally. Now Link shows up fully opaque and nothing else164messes up. ALPHA_CVG_SEL does in fact mean full alpha, but I wasn't handling165rdp:setothermode so I was getting it where I shouldn't have been.166* Fixed flickering problems in games such as Snowboard Kids and Paper Mario. The problem was167that some games use more than one DList per frame, and I was flipping on every DList. Now168it flips on UpdateScreen instead of on the DList.169170Tuesday, 3/19/02 4:50 PM171* Made it so that outputting text without scaling is possible, FPS counter doesn't scale in172case of resolution too low to see.173* Added check box for FPS counter1741759:45 PM176* Added a bunch of new options to the dialog but all they do now is save to the INI, nothing177is implemented yet for when they are set.178179Friday, 3/22/02 3:48 PM180* Bleh, I'm sick today, 102.8 temperature, however, the computer isn't causing a headache,181so I will continue working.182* Implemented a bunch of the options yesterday, such as logging, etc. (no more #defines183needed)184* Upgraded computer to Win2k SP2. Mario's face screen goes a little faster now, but not much185else changed.186* Took out the now useless VERTEX_N structure since lighting is now calculated in UC:VERTEX.187* Gonetz sent the software culling I asked for. I'm going to try and improve this by doing188everything I can in UC:VERTEX, and also a flag in vertex for clip_z, to determine whether189we can use a precalculated x/z and y/z value.1901916:21 PM192* Pre-calculated x/z, y/z in UC:VERTEX, use if not z-clipping. The real reason I did this is193for software culling, so they don't have to be re-calculated.194* Made it so that vertices will only calculate u/v coordinates once, or not again until the195texture attributes are updated. z-clipping doesn't matter for this, u/v were calculated196before the clipping in the first place.197* Changed the type passed into DrawTri to VERTEX** to make it work with clip_tri. (modified198from Gonetz's original to allow for u/v calculate once (previous comment)).1992008:12 PM201* Now screen coordinates, 1/z, u/z, and v/z are precalculated also. (unless z-clipping)202* Actually added software culling, I think it sped the plugin up by a lot.203204Saturday, 3/23/02 8:54 PM205* Found that the reason for the Zelda magic bar and Aerogauge fire messing up is that yes,206textures can only be wrapped on powers of two, but they can be clamped anywhere, whatever207is specified by lr-ul. I'm going to redo a lot of my texture code soon, and I will208incorporate this fix (manually clamp to the full power of two texture)209210Monday, 3/25/02 12:53 PM211* STILL sick, 100.9 temperature today.212* Fixed a bug with resolution switches, it wasn't setting the resolution width and height,213only video mode. Also, when you switch resolutions it will turn off the debugger.214215Tuesday, 3/26/02 5:21 PM216* After trying to implement frustrum clipping, I have finally decided that my method of 2d217clipping is better. I am however using the inequalities x<-z, x>z, y<-z, and y>z in several218places though.219* I've implemented culldl for Zelda, not sure of any speedup since I didn't really look at220the speed before I changed it.221222Wednesday, 3/27/02 10:30 AM223* Fixed uc2:geom_mode so that now both clr and set are shifted before they are used, instead224of shifting the final result. Now the culling in zelda works properly.2252263:07 PM227* Fixed culldl in ucode2, was using ||s instead of &&s, &&s didn't work b/c it needs to check228the volume between the vertices instead of the vertices themselves. Now it checks that229each condition is met at least once to decide whether to draw or not.230* Fixed a bug where it would log the alpha combiner also if the color combiner was231unimplemented.232233Thursday, 3/28/02 7:16 PM234* Unimplemented combiner text descriptions now show up as red, the alpha as a brighter red235so you can easily tell them apart.236237Friday, 3/29/02 4:29 PM238* Implemented many many many more combiners.239* Implemented branch_z for ucode 2 so that Death Mountain Trail and the well work.240* Implemented prim depth source and alpha compare for texrects, made lens of truth work241backwards.242243Saturday, 3/30/02 4:27 PM244* Added more descriptive update() function, now outputs everything it's trying to do,245also TexCache outputs things to debug texture loading crashes.246* Converted some things such as texture loads to BMASK/WMASK/DMASK format (different masking247method, fixed one illegal operation in zelda subscreen).248* Manually clamped all textures, which fixed the zelda magic bar, and several other texture249border issues, like the subscreen.250251Tuesday, 4/02/02 8:54 PM252* Gonetz sent many new combiners253* Implemented a lookup for the first byte of combiners254255Wednesday, 4/03/02 5:06 PM256* Gonetz sent new combiners again257* Oops, realized that I didn't do as I had planned with the alpha combine lookup, I meant258to use 0x0FF00000 instead of 0xFF000000 since the first 4 bits are not used. It is fixed259now.260* Now it always uses Glide64.ini no matter what the name of the plugin (dll file) is, so261you can have multiple versions of the plugin using the same ini.262263Thursday, 4/04/02 11:25 PM264* Made shade values full for texrects (for dual heroes)265* !!! Added CMB_MULT and CMB_SET stuff to texrects! A long time ago I thought texrects would266only have textures, and then later forgot to put these in. Now combiners should work MUCH267more often on texrects.268* Changed from full alpha and full color for texrects to just full alpha, and black color269(for the zelda menu).27027112:35 AM272* Changed my mind again about the texrect color thing, now all four values are full (dual273heroes needed this)274275Friday, 4/05/02 6:15 PM276* Made the plugin faster by not drawing fillrects that had an alpha value lower than 5277(usually one fullscreen rect per frame)278* Made it faster again by not setting the uv_calculated for every possible vertex on texture279load, now it acts more like a CRC280* Lemmy has led me to the zelda fixed view problem. There was an unimplemented instruction,281background as he calls it (0x0A), which draws a fullscreen 320x240x16 rectangle. It is282not yet implemented yet though.28328410:55 PM285* FINALLY, after a million hours of working on the temple of time problem, GokuSS4 tells me286that Lemmy can help fix my problem. Lemmy said that there is a command that draws a287320x240x16 texture on the screen. Knowing the command was not enough though, using the288address it gave, I got static. Icepir8 and I eventually figured out that the address289actually pointed to a structure whose fourth element was a pointer to the actual texture.290The temple of time, and all other fixed view problems, now work.291292Sunday, 4/07/02 10:21 PM293* Implemented a bazillion new combiners from Ogy's list.294* Fixed mario texrects, on cycle_mode=copy, it doesn't use combine, but rather texture.29529612:22 AM297* Clipped texrects properly so that they do not stretch as they go off the screen. They298are also clipped to scissor instead of screen now also.299300Monday, 4/08/02 11:40 PM301* Fixed a problem with the scissor rect being too big for the screen.302303Tuesday, 4/09/02 6:17 PM (.04944)304* Fixed the zelda orange texrect problem, Gonetz implemented a combiner for Kirby 64 that305was actually already implemented. I commented his duplicate, and it worked again.30630712:03 AM308* Switched the order of alpha compare/CVG_X_ALPHA309* Made it so that XLU surfaces do not update the z-buffer310311Thursday, 4/11/02 6:34 PM312(0.1 Beta #1 -> Ogy, Jeremy, Quvack, Slougi)313(0.1 Beta #2 -> Ogy, Jeremy, Gugaman)314(0.1 Beta #2+ -> Jeremy, Gonetz)315(0.1 Beta #3 -> Gonetz, Ogy, Scorpiove)316* Gonetz sent new combiners.317* Gonetz has finally agreed that it is time to release. I'll send to Ogy after just a few318more fixes.319* Disabled most recent thing added, xlu surfaces, just in case because of release.320* Changed unimplemented combiners to show T0 instead of the last combiner used, since most321objects use T0 at least somewhere.322* Found bug in texrect clipping, the fast on/off cut return was wrong.32332410:24 PM325* Fixed texture swapping in certain games like Super Smash Bros by swapping the x value326instead of the address.327* Made it so that unimp.txt is not created unless unimp logging is enabled.32832911:44 PM330* Spherical mapping fixed, works now in every instance I've seen.331* Option added for 'Buffer clear on every frame'332333Friday, 4/12/02 4:44 PM334* Bug fixed when Glide64 was not as Glide64.dll, I had typed in "Glide64.dll" instead335of getting the full path.336337(0.1 Beta #4 -> Ogy, Falcon4Ever, Jeremy, Gugaman, McLeod, Scorpiove)338339Sunday, 4/14/02 2:03 PM340* Switched from ac_one on unimplemented to ac_t0, b/c it causes less problems with translucent341things.3423434:00 PM344* Fixed a Ridge Racer crash that had to do with texrects being off the screen. The reason my345previous offscreen clipping code didn't work for the y-axis was because I needed to flip346the coordinates, not the borders, to make ul_y < lr_y.347* Fixed a problem in fillrect. If fillrect used fill color, it would check if it had less348than 5 alpha to determine whether to draw or not. The problem is... fillrect only has3491 bit of alpha and I didn't think about that when I wrote the compare. Now some black350rectangles that didn't show up before now will. The only problem is that this may slow351the plugin b/c of a fullscreen clear that now must occur.3523539:37 PM354(0.1 Beta #5 -> Gugaman, Ogy, Scorpiove, Quvack)3553562:11 PM357(0.1 Beta #6 -> Gonetz, Ogy, Scorpiove, Quvack, IceLord)358* Added ToolTips for all configuration options.359360Monday, 4/15/02 7:31 PM361* Finished up ToolTip text362* Disabled FPS counter because of bugs it has3633648:11 PM365* Finished wireframes for texrects and fillrects.366* Added an option to select the colors to use for wireframes.367368Wednesday, 4/17/02 7:49 PM369* Changed address mask in uc0:displaylist to 0xFFFFFF instead of 0x3FFFFF.370* & also in ProcessDList (Zelda: MM runs now, complete gfx errors).371* Put an &BMASK at the end of segoffset.372* Glanced through ucode02.h replacing incorrect masks.373* Changed a 0x3FFFFF in TexCache374375Thursday, 4/18/02 9:49 PM376* Scissor added to update377* THE INFAMOUS RESOLUTION PROBLEM IS FIXED!!! After a while of looking at things, the378resolution problem that was present in many games is now fixed. I noticed two variables379of name VI_X_SCALE and VI_Y_SCALE. These contained values typically 0x200 and 0x400380normally, but when something was stretched in the y-axis, VI_Y_SCALE = 0x800, double381the original. By using division between the current and original, you get the correct382scaling.383384Friday, 4/19/02 5:32 PM385* Made it so that tooltips can be easily disabled (for those without the platform sdk)386by commenting the line in Gfx #1.3.h that says "#define USE_TOOLTIPS"38738811:20 PM389* CMB_MULT and CMB_ADD/SUB are now completely unrelated in values, and it performs the390add/sub operation first.391392** 0.1 released **393394Tuesday, 4/23/02 10:43 PM395* Made it so that the uc2:BG command doesn't use the z-buffer.396* Added uc2:BG to the log.397* Made uc2:BG use alpha (for alpha compare)398* Going to start on a HUGE texture loading change... allowing modification of textures399while loading and also faster loads, possibly using some assembly.400401Sunday, 5/05/02 6:01 PM402* Figuring out many things about texture sizes, assembly going well so far403* Improved the debugger, allowing a NULL triangle selection. Also, as when you press space404bar to go to the texture of the selected triangle, you can now press the left control key405to go to the last on-screen triangle that used the selected texture. This is useful to406find what a messed-up texture is supposed to be of, since you can see where it was on the407screen. Also, if the texture was not used this frame, it selects NULL, which doesn't display408any triangle information.4094106:27 PM411* Made it so that interpolation of 0.0 or 1.0 ONLY uses the needed texture, because the other412one may not have had its tile descriptor even set, loading a useless noise texture. (INTER413macros in Combine.cpp)4144159:25 PM416* 16-bit RGBA seems to be as far as it can go... starting LoadTile emulation now.417418Saturday, 5/18/02 1:22 PM419* Lots of school recently, no time to work420* Fully re-implemented both LoadBlock and LoadTile in order to account for non-aligned textures421* Implemented a new texture format: 4-bit CI. This should be the hardest of all.422* Made it so that tri_n numbers should be correct even if not in fullscreen mode4234244:22 PM425* Implemented 8-bit CI by slightly modifying the 4-bit CI code.426* Seperated the load functions into different files based on size since they are quite large.4274286:18 PM429* Oops, fixed a problem with building on normal 'debug' and 'release' modes, where it wasn't430including the .obj file.4314326:55 PM433* Finished 4-bit I textures.43443511:27 PM436* *Gugaman* (accidentally typed Gonetz the first time) has helped me implement both 4-bit CI437and 16-bit IA textures.438439Sunday, 5/19/02 8:46 AM440* Oops, from the simplified version of Gugaman's 16-bit IA, I forgot to take out a ror 16.4414425:50 PM443* Remade the whole texture loading routine... The whole thing is completely different.444Combine and TexCache are now somewhat merged to allow for use of the maximum amount of445memory. All vertex coordinates may need swapping to the right tmus since t0 no longer446represents tmu0. Texture loading is now located in TexCache.cpp instead of Util.cpp.447I have tested with multitexturing also, and it works.448* Gugaman sent me 8-bit AI and I this morning. I just changed I to use alpha instead of449intensity. (first time i've seen it)4504516:08 PM452* Changed the debugger: space bar doesn't work the same. You must now select either453page t0 (keyboard 2) or page t1 (keyboard 3) and then press space bar. Then it will454select the CORRECT TMU AUTOMATICALLY and the corresponding texture in it.4554566:29 PM457* Made it so that pressing 'G' will switch on and off a grid for the cache viewer (large view458on page 0).4594607:19 PM461* Fixed Gugaman's routines again... he didn't understand what the << 1 on ext was for in my462routines; it was to multiply by the number of bytes per destination pixel. I had to take463this out on the 8-bit ones.464465Tuesday, 5/28/02 2:22 PM466* School is now out and I have more time to work on the plugin467* Spherical mapping finally fixed for good. The size to use is the scale value >> 6. I found468this information in a really strange place.469* 32-bit textures implemented470471Wednesday, 5/29/02 12:33 PM472* Fixed the fillrect problem. Recently i changed it so that TexCache() is REQUIRED to set the473combine mode from Combine(), even if no texture is used. I had not yet updated fillrect to474reflect this.475476Friday, 5/31/02 8:09 PM477* Wrote all Wrap/Mirror/Clamp functions, for both 16-bit and 8-bit.47847912:27 AM480* Rewrote the tmu selection functions to remove support for 3 tmus and add support for 1 tmu.481* Improved single-tmu support by a lot by forcing it to select a texture.482483Saturday, 6/01/02 9:46 PM484* Added a log flush option to make it so that the log will be completely written before a crash485or exception.486* Made it so that a maximum count of 256 entries can be loaded by loadtlut by masking by 0xFF487instead of 0x3FF. No more goldeneye exception.4884891:58 AM490* Finally cracked the goldeneye triangle instruction. Now triangles in goldeneye show correctly,491but the textures are still messed up. (something about palettes)492493Sunday, 6/02/02 1:54 PM494* Found why goldeneye palettes weren't working correctly. I noticed in the log that the495settextureimage address was not being changed from the texture and the palette. So,496I made loadblock and loadtile increment the settextureimage address as they load.4974983:30 PM499* Slightly optimized the 16-bit RGBA loading by using better RORs and SHLs instead of500masking and shifting to swap the alpha bit.501* Implemented IA-16 format for palettized textures. Now goldeneye works almost perfectly,502but kinda slow.5035044:44 PM505* Found out that you do NOT increment the settextureimage address with loadtile. (HAL logo,506SSB)507508Monday, 6/03/02 3:22 PM509* Figured out why 32-bit texture's pixel swapping was not working correctly. Since I am not510loading 32-bit textures exactly how the N64 would, they need to swap 64-bit words instead511of 32-bit ones.5125134:46 PM514* Ack!!! If you switched to fullscreen before the ROM started running, it would set to single-tmu515mode. I had to move the "rdp.num_tmu = 1" out of rdp_reset and into InitiateGfx so that it516would only occur when the plugin is first loaded.517* Fixed texrects in Mario Kart and probably some other things. Texrects use a different texture518tile # than the one specified in uc0:texture, so it needed updating.5195205:05 PM521* Made it so that both tmu texture caches refresh at once. This may seem like a bad thing,522because then it has more textures to load at once, but it's not. Before, after one tmu523would refresh, it would have the most open memory and therefore get all the textures. If524the other TMU was really close to being filled, it would never be refreshed.5255266:53 PM527* Added Voodoo 1 support. It was 5 lines of code. All I had to do was make it so that528if mirroring was not supported, and was used, it would multiply the size by two.529Then it would automatically mirror the smaller texture to the full size.530* Added a check for clamping/mirroring/wrapping/mask for the cache, so that if anything531changes, the texture can load differently.532533Tuesday, 6/04/02 7:52 PM534* Fixed a bunch of things with alpha compare. Also made it so that it looks more like UltraHLE.535I haven't found a single problem with it that wasn't there before, and the hands in Hexen show,536and SSB is fixed.537* 0.17625385393:17 AM540* Made palette CRCs multiply the content by the location so that even if the contents are the same541but in different locations, the CRC will be different.542* Going to make sure to write version numbers here so I know what has changed.543* 0.177544545VC++ 6.0 SP 5 installed546VC++ 6.0 Processor Pack installed547548Wednesday, 6/05/02 11:05 AM549* Finished adding the negative count checks for mirror/wrap. For some reason, i had only550implemented 2 of the 4.551* Fixed a combiner that caused tony hawk to be bad.552* 0.17715535547:25 PM555* Changed alpha compare some more, making it so that force-blend overrides CVG_X_ALPHA. No556problems observed so far, and it fixed Bomberman Hero.557* Made z-buffer clearing fillrects faster by checking if cimg=zimg.558* 0.17855956010:25 PM561* Implemented basic modifyvtx for texture coordinates, something is still not right.562* Changed it so that coordinates are scaled in vertex instead of when they are drawn (this563is correct).56456511:29 PM566* Improved the debugger again, allowing you to push left/right to cycle throught the triangles567(by ID numbers).568* Added vertex numbers to the debugger so you can tell which vertex is which (remember, 1569is the first vertex because of the way it clips. 2 is the 2nd vertex, and 0 is the third).570* Fixed uc2:modifyvtx. I knew the solution the whole time, and I remember thinking about it,571but when I looked at the macro I didn't see what I wanted so I let it go. Then later I come572back and there it is! I needed to divide the vertex number by two.573* 0.17957457512:52 AM576* Fixed the road in F-Zero by making it so that alpha_cvg_sel can occur with force_blend.577Luckily, i had made a mistake before and thought something was set that really wasn't.578As far as I can tell, nothing new broke.579* Paper Mario wasn't working well because of an odd palette copy, so me & Gonetz decided580just to change the combiner to T1 instead of T0*T1. (0xe2f10054)581* 0.1791582583Saturday, 6/15/02 4:10 PM584* Large textures now load correctly, so now I need to do the math part.5855869:21 PM587* Improved upon the CRC code, removing the need for address checks. Now it multiplies the CRC588by the position so that the O and U in mario are not the same.589* 0.1792590591Monday, 6/24/02 7:41 PM592* Gonetz sent combiners again593* Wrote the texture splitting code for texrects, still not working yet though.594* Triangles in both texrects and triangles are drawn with grDrawVertexArrayContiguous which595allows vertices to be in a linear array, rendering the pointer table i had made useless. I596don't believe I hadn't discovered this function before.597* YAYYYY!!!!!!!! I've finally finished large texture support. Actually half-finished. It works598PERFECTLY for texrects, but not yet for triangles. No seams, nothing. EVERY SINGLE GAME I've599tried so far (using texrects) works. About 80% of games with the problem used texrects.600* 0.1860160210:17 PM603* Made it so that textures with masks that are greater than 8 just use the tile size. I haven't604seen anything broken by this yet, and it speeds up some odd games.605* 0.18160660712:23 AM608* Moved a -1 earlier in texrect, helped fix some coordinate problems. As far as I can tell,609texrects are now good in terms of coordinates. There are still some lines, but that cannot610be helped. It's caused by the fact that there are so many of them. The only way to solve is611to blend between them.6126132:29 AM614* Made split texrects clamp so that if they need to wrap, they can do it without getting black615lines across them.6166175:01 AM618* Added "Automatic" filtering mode.619* Finally found what was causing versions since 0.1792 to go slow. I had called grFinish after620grBufferSwap to see if it helped the FPS counter. It didn't and it made the plugin go REALLY621REALLY SLOW.622* Implemented the rest of rdp:setothermode for uc2. Health meter in Zelda now correct & you623can't see him in the menu.624* 0.182625626Tuesday, 6/25/02 2:21 PM627* Rewrote the texture cache searching algorithm so that it only has to search a few textures628instead of all the textures. It takes the highest byte of the crc and only searches the629textures that had that same value.630* 0.1836316324:26 PM633* Got into really big conversations and all of the sudden, the whole FPS thing hit me at once!634UpdateScreen() is actually a VERTICAL INTERRUPT!!! This is why it is called twice per every635ProcessDList(). The TV is updating at 60hz but mario only at 30. This also explains why636when I used UpdateScreen() instead of the buffer swap, I got the % of speed * 60.6376385:41 PM639* Added 4 types of speed counters. There is the FPS counter (frames per second), VI/s counter640(vertical interrupts per second), NTSC % (percent speed on a (U) game), and PAL % (percent641speed on a (E) game).642* Added an option to clear top/bottom of screen like a NTSC TV.643* 0.1846446451:45 AM646* Re-implemented the uc2:background command. Note to self: whenever textures don't show,647check what's ABOUT to be put into grTexCombine()648649Wednesday, 6/26/02 2:10 AM650* The trees in Majora's Mask were screwed up since I changed the texture code to actually emulate651the tmem. I believe this is because it would wrap to the other side of tmem. I've implemented652a somewhat fix for this. It will work with power of two wraps.653654Thursday, 6/27/02 2:05 PM655* Rearranged clipping code to allow for large texture support. Also it now only performs656z-clipping if NEEDED, and not always. This also allows for vertices to be copied only once,657and not twice.658* OMG. Sooo glad i found this... uCode 1 games were not setting the scr_off flags when they659were off the screen. This is why i noticed problems when rearranging the clipping code.6606616:34 PM662* YAAAAAAY!!!! Large texture code for triangles is now complete!!! I can't find a single game663that has the problem anymore!!!66466512:10 AM666* Added a tmem boundary check for LoadTile. It should fix many exceptions. So far I have seen667it fix the exception in Extreme-G 2 and 1080 Snowboarding.668669Friday, 6/28/02 8:55 PM670* I've been researching this alternate way of getting texture sizes that makes 1080 and several671other games run much better. The only way there appears to be to do this is to make a game672specific INI. I have already done this. It makes it so i can have a [DEFAULT] section and673then override it with other values from each game.674* Bad config error... for some reason, you cannot attach a tooltip hook and then set a lot of675checks or your config dialog goes blank. If you create the hook afterwards though, it works.676* Changed the order of clamping/wrapping so that it can clamp before it wraps if it needs to.67767810:35 PM679* Fixed bug in clamp/wrap, it needs to do ALL of s clamp/wrap before it moves on to t.680* 0.19268168211:18 PM683* Made it so that fill mode (3) doesn't add 1 to the lower right coordinate like copy mode (2)684does. Those things that were fill before are now copy because of when i implemented the rest685of rdp:setothermode.68668712:33 AM688* Added text that says when in windowed mode: "Glide64" "Gfx cannot be drawn in windowed mode"689"Press Alt+Enter to switch to fullscreen".690*0.193691692Sunday, 6/30/02 6:46 PM693* Now allows Alt+Tab and other key combinations to be pressed.694* Gugaman and I have been working with the IRP and I think we've finally found a solution. All695of the games work so far, so we'll keep testing & find out.69669710:46 PM698* No problems observed with the IRP.699* Added clock feature suggested on message board.700701Monday, 7/01/02 3:44 PM702* Put in a "break;" after fog, so it doesn't move right on to lightcol.703* Implemented lots of new combiners for Pokemon Stadium 2 and Megaman.704* Changed alpha compare a little, adding a check for the combination of CVG_ALPHA_SEL and alpha705compare.706*0.1977077088:15 PM709* Fixed alignment for triangles. Now it is how it should be. It has eliminated the line errors710in the Zelda select screens & many other things.711712* 0.2 in final form713714Tuesday, 7/02/02 11:38 PM715* Fixed prim_z for extreme-g 2 by ignoring the matrix it uses.716* TEMPORARILY CHANGED if ((rdp.render_mode & 0x00000C00) == 0x00000C00) to717if (rdp.render_mode & 0x00000800) IN DECAL CHECK - fixes castlevania text, but not sure of718other things.719* Nothing seems to have broken, keeping for now...7207213:47 AM722* Changed enviornment mapping to 0x00080000 instead of 0x00040000 to fix F-Zero car textures.723* Changed combiner for F-Zero cars to look right.724* 0.202725726Wednesday, 7/03/02 8:26 PM727* Realized that non z-clipped vertices did not use the precalculated values like they were728supposed to. [added to beta also]7297309:55 PM731* Changed alpha test value to 0x80, since that will be optimum b/c it is right in the middle732of the texel. Also, it was required for Blues Brothers.733* Fixed 4-bit CI for 16-bit IA textures.734* Took out the C2, C3 init that Gonetz requested.7357361:32 AM737* Added self-jump checking to fix Gauntlet Legends & another check.738* 0.21739740Thursday, 7/04/02 9:02 PM741* Put in some framebuffer support. The copy works ok, but when to use is VERY VERY BUGGY.742* Completely redesigned the othermode functions so that multiple things could be set at once.743Also, there is no such thing as "rdp.rendermode" now, it's a part of rdp.othermode_l,744as rdp.mode_h changed to rdp.othermode_h.74574610:22 PM747* Enhanced the debugger, listing all of the othermode settings, with the current ones748highlighted in green on page 6 and 7 of the debugger.74975010:42 PM751* Now that you can set any combination of othermodes at once, i modified my rdp:setothermode752command to set ALL at once instead of one at a time.753* Fixed alpha compare so that, like there is no compare when ALPHA_CVG_SEL (full alpha),754there is no compare when force-blending to full alpha either.7557561:27 AM757* Worked past 2-3 hours decoding new ucode for Star Wars: Shadow of the Empire. Works near758perfect as far as I can tell now.759760* 0.220761762Saturday, 7/06/02 7:14 PM763* Implemented basic ucode #5, Diddy Kong Racing. Icepir8 and I still need to figure out how764it selects which matrix to use though.765* Fixed a bug where the rdp_setothermode was using an unknown command instead of the othermode766commands in ucodes other than 2.767768Sunday, 7/07/02 1:37 AM769* Did LOTS with Diddy Kong Racing today, the only thing that seems left is the billboarding.770* Billboarding done, uses vtx 0 as offset, then adds the current to it.771772Monday, 7/08/02 3:00 PM773* Gonetz sent some more combines for diddy77477512:47 AM776* Fixed some more stuff in Diddy, like the transparent walls.777* Added texture-modification code. Now it is possible to do things for combiners that would778be impossible otherwise. Now you can see the selection in DKR, and also the LOT of Zelda OOT779works. Don't have save of MM, so can't implement that one yet.780* 0.230781782Tuesday, 7/09/02 6:08 PM783* Fixed cache bug where it wasn't always setting the mod flags, therefore refreshing faster784and faster each time.785* Added culling to DKR ucode, works much better now.786* partially fixed LOT in MM, but the outside is still solid.787* 0.231788789Thursday, 7/12/02790* 0.2 released791792Sunday, 7/14/02 5:51 PM793* Fixed the Great Fairy's hair color using texture modification.794* Fixed the RUSH games, for some reason they have size set to 0, so I used *gfx.VI_WIDTH_REG795instead to determine the size.796* 0.232797* Used texture mod again to fix the SF rush 2049 wings.79879911:44 PM800* Added a whole bunch of impossible combines by using the texture modification.801* Fixed Snowboard Kids by implementing the modifyvtx for ucode 0. (same as 2)802803Monday, 7/15/02 9:07 AM804* Fixed items in Super Smash Brothers by implementing the moveword matrix command. It took805me a while to figure out that it was incrementing in the x direction and not the y, and also806that you actually add the positive decimal part, EVEN WHEN WHOLE NUMBER IS NEGATIVE.807* 0.2358088091:02 PM810* Added new INI code, should be no more corrupting.8118123:21 PM813* Added culling for Diddy Kong Racing & fixed a non-working combine for the background color.814* Added huuuuge semi-combiner for flashing characters in SSB.815* Added support for clearing z-buffer using a texrect (SSB black rectangle).816* 0.2378178181:18 AM819* Added a framebuffer workaround for Zelda: MM LOT. Now it works without needing to use820framebuffer copies.821* 0.240822823Tuesday, 7/16/02 11:30 PM824* Found out that the LOT and telescope problems are with prim_depth. It enables but doesn't set825a depth value.826* Rice gave me plenty more new things to do :)827* The dlist with count command now implemented in f3dex 2.xx ucode. Cruisin' Exotica works.828(Rice's help)829* 0.24183083112:27 AM832* Added the movemem matrix command, WWF No Mercy works now.833* 0.242834835Wednesday, 7/17/02 5:53 PM836* Fixed SERIOUS bug in CI textures, it would not use the correct format.837* Fixed combine for link's sword swirl.838* Added new buffer swapping method that fixes flashing.839* 0.247840841Friday, 7/19/02 4:20 PM842* Made LoadTile boundary checking MUCH better; now checks if >= and also for last write so843even if it's not aligned properly it will cut anything that goes above. Paper Mario844level up fixed.845* Added several combines for xg2.846* V-Sync option added. This only takes effect if it's set to "Software Controlled" in the 3dfx847Hub.8488497:37 PM850* Made it possible to continue after a gfx exception.8518528:29 PM853* Got fillrects to align perfectly now by forcing the coordinates to DWORD instead of float.854* Got rid of the floating point error in fillrects and scissor by adding 0.01f.855856Saturday, 7/20/02 3:54 PM857* Made it so that texrects on copy mode will use full alpha but also have alpha compare.858* 0.250 released85986011:51 PM861* Made it so that fillrects use the z-buffer as specified and not always update, no compare.862Banjo-Tooie fixed.863864Sunday, 7/21/02 8:01 PM865* Fixed 12 PM clock bug, and added 24-hour clock option.866* Made a REAL error log.867* Fixed stats not showing up by redoing alpha compare for texrects.868* 0.253 released869870* Took out if(!force_full_alpha) from alpha compare.8718722:46 AM873* Added first part of S2DEX ucode; the obj_loadtxtr and bg_copy.874* Found out that uc2_bg and uc6_bgcopy were the exact same thing... I think F3DEX sorta875"borrowed" it. Set the F3DEX one to the S2DEX one.876877Tuesday, 7/23/02 11:10 PM878* Added lots more to the S2DEX ucode, yoshi's story is now about as good as it can get. The879background uses framebuffer, so...880* Microcode switching should be ok now for the most part.88188211:31883* Added combiner for WWF No Mercy rules.884* Allowed things to have negative viewport; MK mythologies fixed.885886887/*Gonetz*/888Friday, 10/18/02 12.40889I'm going to fix depth problem890* step 1. Added new coordinate to VERTEX - w. Replaced all .z and ->z by .w and ->w b/c old z is891actually w. Affected files:892rdp.h893Ucode00.h894ucode01.h895ucode02.h896ucode03.h897ucode04.h898ucode05.h899Debugger.cpp900Util.cpp901Tested. Nothing seems to be broken :)902* step 2. z coordinate is now calculated in all ucodes.903* step 3. using z for w buffer. z/w actually. Corrected all clipping functions.904Ops, does not work :( I forgot, z/w is in range (-1,1).905(z/w + 1)/2 does not work well either.906907* Idea: use "screenZ=(z/w)*0x3fe0 + 0x3fe0" formula for z and Z buffer instead of W buffer.908Wow, it's work! Taz and Gex appears at last :) But some problem remains.909Some triangles are missing. I think it's b/c of z clipping910911Saturday, 10/19/02 13.00912* Found stupid bug in clipping functions which is result of cut'n'paste editing.913Now picture is close to perfect. But some triangles are still missing,914for example water near castle in Mario64.915* Replaced all _z slot names by _w.916* Fixed z for texrect and fillrect. Strange, but primdepth does not work well for z -917DukeNukem64 has errors with it.918I use primdepth + 8, all works quite well now. Need to test it more.91992023:15921* According to manual, correct formula for z is:922screenZ = 32*((z/w)*view_scale[2] + view_trans[2])923I use it now, nothing is changed, but may be some games use other value for924view_scale[2] and view_trans[2] then default 0x1ff925926Sunday, 10/20/02 17.20927* Z clipping is finally fixed. I thought that z should be 0 after Z clipping,928but it actually must be clipped the same way as x and y.929Now all works perfect!!! Nokonec to, blin :)930931* Added missing combines for Taz express and Road Rush932* 0.260933934Tuesday, 10/22/02 20.20935* Started to implement ucode for Perfect Dark. I took info about it from Icepir8's plugin.936Changes:937ucode.h - new ucode938ucode07.h - vertex and tri4 implemented939ucode00.h - matrix. mask removed to be compatible with PD940rdp.h - tex_coord_addr added941rdp.cpp - rdp_reset, tex_coord_addr initialization942- rsp_reserved2, tex_coord_addr value943config.cpp - new ucode944945Wednesday, 10/23/02 13.30946* new combines and tex modes added.947948Thursday, 10/31/02949* Fixed Rayman2.950Changes:951ucode00.h - implemented gSPForceMatrix command in movemem. All 3FFFFF mask replaced by FFFFFF952ucode01.h - 3FFFFF mask in vertex replaced by FFFFFF953combine.cpp - implemented missed combines for Rayman2954955956Saturday, 11/9/02 15.30957* rdp_texrect(): float Z = 32704.0f replaced by float Z = 1.0f; That fixed onscreen958info in xg2.959* Fixed combine for Bug's life. Start menu background appears.960* Fixed uc2:modifyvtx. Main menu background in Bug's life appears961* Fixed constant depth processing in do_triangle_stuff(). Main menu in Bug's life works (somehow)962* Fixed combine for Bomberman2. Water is transparent now.963* Monsters poked through walls in DukeNukem64 was caused by depth bias level value.964Replaced depth bias level from 0x20 to 0x18.965No need of "rdp.prim_depth + 8.0f" hack in rdp_texrect() anymore.966967* heap of new combines implemented968969Saturday, 11/16/02970* Since z in N64 is in range [0, 32704], I decided to multiply it by 2.971It improves quality of depth buffer.972Changes:973Util.cpp - do_triangle_stuff()974Rdp.cpp - rdp_texrect()975976Sunday, 11/17/02977* Added hacks in texrect and fillrect to avoid black screen in ZeldaMM978"Link meets princess Zelda" cut scene and in between days.979Changes:980Rdp.h - new flag981Rdp.cpp - hacks in rdp_texrect() and rdp_fillrect()982ucode06.h - hacks in uc6_bg_copy() and DrawImage()983984Monday, 11/18/02985* Added hack into uc2:modifyvtx, (x,z). Tarzan is fixed986* new combines and tex modes added.987* Altered combine for flame in Zeldas. It looks good :) Redone similar combines.988989990Tuesday, 11/19/02991* Added new settings parameter - depth buffer mode.992User can choose either new Z-buffer mode or old W-buffer one.993W-buffer is useful in games, where Z-buffer causes poke-through artefacts.994995996I've got Dave2001's last version. Many things are not finished, but I inserted some of his fixes into current version:997* Made it so games only report ucode error only once.998* Backwards viewport needs backwards culling ;) fixed DKR Adventure 2 mode (mirrored tracks).999I'm not sure about other ucodes, so I haven't changed the culling for them yet.1000* Oops, loadblock boundary check was in bytes instead of qwords. Xena problem fixed.1001* Fixed mod_tex_inter_col_using_col1; it was using a 32-bit color when it was really only 16-bit.1002This fixed the colors of the WWF No Mercy menus.10031004Saturday, 12/14/021005* heap of new combines implemented10061007Sunday, 12/15/021008* Fixed Banjo-Tooie.1009Changes:1010Rdp.cpp - rdp_texrect() - new hack1011rdp_fillrect() - old hack, removed by Dave2001 for some reason after 0.2501012* Fixed backgroung fire on level 23, Doom641013I've modified alpha compare condition in Util.cpp1014* Changed Zelda MM hack in texrect.1015* implemented heap of new combines101610171018Wednesday, 12/18/021019* Changed Zelda MM hack in texrect so it should not affect other games anymore. Konami logo is fixed in many games.1020* implemented new combines10211022Friday, 12/27/021023* Removed perfect dark microcode from final version - need more work b4 release1024* 0.310251026Wednesday, 01/07/031027* Changed fillrect so it usses fillcolor allways, but it calculates it differently depending on cycle mode.1028I don't know why Dave2001 implemented so complex color transformation for this function,1029but 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 use1030normal fillcolor. Car selection screen in SF Rush is fixed.1031* Changed texrect - I force depth compare when primdepth is used. Car selection in SF Rush 2049 is fixed.10321033?1034* Changed fillrect again. Privious modification causes many gfx erorrs.1035* Added depth value check in texrect. Primdepth value can be too high.10361037Sunday, 01/19/031038* Added new buffer swapping method which prevents flicker in Paper Mario (not everywhere yet).1039* Implemented many combiners for Paper Mario.10401041Friday, 01/31/031042* Fixed uc0_moveword LIGHTCOL. n was calculated wrong.1043Background in "star soldier vanishing earth" fixed.10441045Saturday, 02/01/031046* Implemented calls of GS2DEX ucode functions from F3DEX2 ucode.10472D stuff in Bomberman 2 is fixed.1048* Changed uc6_obj_sprite so it uses combiner instead of just texture.1049Required for some objects in Bomberman 210501051* 0.3110521053Wednesday, 02/12/031054* Added new setting - ignore_short_dlist. It allows me to avoid weird bug in Tonic1055Trouble, when game get caught in an endless loop, drawing title screen.1056* Found an error in ini which was the reason why Dave's work for Yoshi Story caused an exception.1057F3DEX1 ucode which Yoshi uses in the begining, was mistakenly set to 6. Yoshi is1058working with last Dave's version now105910601061Thursday, 02/13/031062* Moved Dave's code for Yoshi into current version. It works1063* 0.31210641065Friday, 02/14/031066* Fixed uc6_obj_sprite so sprite can be translucent. It needed for Yoshi statistics screen.1067* Trying to fix garbage appeared on top of the screen in Yoshi. no results :(10681069Saturday, 02/15/031070* While trying to fix topscreen garbage, I begin to understand, how the things work :)1071Texrect function copies texture into framebuffer(DRAM) instead of drawing it.1072Dave chose very strange and complex way to do it - he loaded texture, copied it's data1073into special texture buffer, and then copied it from that buffer into framebuffer.1074I have modified his code. I directly copy data from texture address into framebuffer adress.1075It's faster, more easy and less buggy :) But it does not fix topscreen garbage problem.1076This problem is solved somehow in PJ 1.5 plugin though.10771078Thursday, 02/27/031079* Fixed DrawImage routine, so it works correct with scaled images. Zoom in Yoshi works1080* Implemeted uc6_obj_rectangle. Pokemon Puzzle League is almost playable now. But some textures are broken.10811082Saturday, 03/01/031083* Worked on Pokemon puzzle league:1084Fixed DrawImage routine, so it can draw images with odd value of width and height.1085Added possibility to use combiners with backgrounds.1086(almost) no problems with background remained in this game.1087I need to solve problem with 8bit CI textures, wich became broken after loading of 32bit RGB textures.10881089Saturday, 03/08/031090* Fixed rdp_loadtlut(), so it will not get off pallete array bounds.1091It fixes Inferno area in Banjo 2 and may be some other games.10921093Tuesday, 03/11/031094* Finnaly found why CI textures became broken after 32bit texture load in PPL.1095It was a bug in uc6_obj_loadtxtr (). Dave forgot to set tile size there, so1096after 32bit texture load it was equal to 3, and all non 32bit textures was1097swapped wrong. Now all textures in PPL look correct, the game is almost playable :)10981099Wednesday, 03/12/031100* Implemented loading of title screen in games which draw image before first ProcessDList1101(Rayman2, Tonic Trouble, Wave Race...) I found solution in sources of Rice's great plugin.110211031104Friday, 03/14/031105* Fixed texture problem in PPL when it uses F3DEX 1 ucode!1106Tile's ul_s and lr_s coordinates were set to 0 by settilesize - 1 texel was clamped to all triangle.1107Solution: take ul_s and lr_s from next loadtile. It works!11081109Saturday, 03/15/031110* Fixed bricks in 3D mode. Bricks use CI texture, and for some reason u and v coordinates1111of loaded vertex are two time bigger then they must be, when vertex uses CI.1112Solution: check format in uc0_texture() and change s_scale and t_scale for CI format11131114Sunday, 03/16/031115* Implemented uc0_moveword() move_point. Cruise in USA works perfectly now!11161117Monday, 03/17/031118* Fixed many bugs which causes an exception in PPL.1119* Added new special fix - wrap textures too big for tmem.1120It's Dave's old hack for trees in Zelda MM intro.1121It breaks texture in Zelda's N64 logo and may break other things,1122so I've made it optional11231124Tuesday, 03/18/031125* Fixed candle's flame in Paper Mario - error in alpha combine1126* My fix for car selection screen in SF Rush 2049 breaks particle in Rayman.1127I don't know, how to make both things working :(1128Another special fix for SF Rush 2049 only11291130Wednesday, 03/19/031131* Fixed pointer in Bust a Move 2! This game has the same problem with CI textures,1132as PPL, so fix for PPL fixes this game too :)11331134Saturday, 03/22/031135* Implemented branch_z function for F3DEX 1 ucode. It's used in SF Rush.1136All texture problems in this game are fixed!1137* Added new special fix - "use depth compare for fillrect". Using depth compare1138in fillrect fixes car selection screen in SF Rush, and doing this much better,1139then my previous hack. This option changes N64 logo in Zeldas though, so it's1140off by default.11411142Sunday, 03/23/031143* Fixed most of tecture errors in V-Rally 99. The same problem - too large u and v coordinates.1144This fix is a hack indeed. I'm tired of all that hacks, but I could not find,1145why vertex loaded incorrectly.1146And besides, all in-game statistics is missing :(11471148Monday, 03/17/031149* I forgot to implement call of uc6_ldtx_rect_r from zelda ucode. That's why1150in-game statistics in V-Rally 99 was missing.11511152Wednesday, 03/26/031153* Fixed combiners using in sprite commands. Combine() is not used if in "copy" mode1154V-Rally looks exactly as on N64.11551156Tuesday, 03/27/031157* Allowed negative viewport for zelda ucode. Destruction Derby Professional Championship is fixed.11581159Saturday, 03/29/031160* Fixed crc calculation for 8-bit color textures. Burning cars in Destruction Derby are burned :)11611162Monday, 04/07/031163* Implemented TextureRectangleFlip - text in Wetrix fixed11641165Thursday, 04/10/031166* Fixed uc6_obj_rectangle_r - text in Yoshi has correct size.1167* 0.411681169Friday, 04/17/031170* Fixed trail problem in Zelda OOT. Rice sent me an idea how it can be done.1171Actually it was already implemented by Dave, but values for depth bias level1172were incorrect.11731174Sunday, 04/19/031175* Implemented Sprite2D microcode. Backgrounds in Silicon Valley are fixed1176Fixed primdepth loading. Billboard objects in Silicon Valley are fixed too.11771178Wednesday, 04/30/031179* Fixed palette loading (load_palette). This fixed nemu in StarCraft. Yet again the solution (idea) was found1180in sources of Rice's plugin.1181*0.4111821183?1184* fixed compatibility of Zelda OOT MQ with 196411851186Sunday, 05/18/031187* Added hack for sun in zeldas.11881189Wednesday, 05/21/031190* Implemented palette loading in Sprite2D microcode and fixed many things in it.11912D stuff in wipeout works.11921193Tuesday, 06/03/031194*New hack in texrect to remove black screen in Sin and Punishment119511961197Thursday, 06/05/031198* fixed uc1_line3d - map in Doom641199* changed blender mode for fillrect - sky in Doom641200* fixed combiners for walls and weapons in Doom6412011202Saturday, 06/07/031203* changed texture mods for CI textures. I'm changing palette before texture loading1204instead of modifying already loaded texture. This is more faster and more precise.12051206Sunday, 06/08/031207* added new hotkey - texture filtering mode can be changed during gameplay by1208pressing BACKSPACE. This is Raziel64's idea.12091210* Implemented frame buffer emulation. I use 2 pass approach. First pass - detect frame buffer usage - very fast.1211Second pass - normal display list processing, but with knowledge how frame buffers will be used.12121213* Added ExtendedPlay's Banshee hack.12141215* Added "special game settings" section in the ini12161217* New hotkeys for motion blur and read always12181219* Many other fixes12201221* New configuration dialog, based on property sheets12221223V. 0512241225* Fixed ucode for Perfect Dark. It works without glitches now12261227* Added support for Jet Force Gemini and Mickey's Speedway into Diddy's ucode.12281229* Added partial yuv textures support. I failed to decode them with the method described in the manual - something wrong with the coefficients.1230Thus 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.12311232* Implemented new frame buffer related functions - FBRead and FBWrite. FBRead could help to emulate frame buffer effect which previously required1233"read always" option. FBWrite makes Dr.Mario playable12341235* Implemented hardware texture emulation. Huge and hard work.12361237* Failed to do correct fog emulation. I tried to use fogcoord extension, like in Orkin's plugin. It works, but fog is not smooth.12381239* Added large texture support for sprite microcode12401241* Fixed texrect_flip12421243* Changes in the configuration dialog12441245v. 07 SP812461247- New version12481249* I have switched to RGBA color format. This format is used by N64 itself.1250I can't understand, why Dave decided to use ARGB. With RGBA I don't need1251to do color conversions, and everything is more simple. Besides, OpenGL also uses1252RGBA format only, so port to OpenGL will be more simple.12531254* I've made another attempt to implement fog via fog coord extension.1255This time I set fog coord after all clipping. It still not perfect for clipped surfaces1256but no major glitches this time. I decided to use it.12571258* I have found why kicked out fighter in Super Smash Bros has black rectangle bourder.1259This black rectangle have to be rendered into the depth buffer. Weird thing.1260I've made check that texrect will not be drawn if current color buffer is depth buffer.1261This problem is fixed.12621263* I have found that walls in Perfect Dark are incorrect again. That was caused by my1264hack in the combiner for car setup in Top Gear Rally. I have corrected this hack.1265It does not use LOD if mipmap_level is the same as current_texture.12661267* I have implemented depth buffer render. Of course, it takes a lot of CPU time.1268But I found fast algorithm with fixed point arithmetics, so I can run some1269games fullspeed even on my 1ghz Celeron.12701271* Hacktarux suggested me to use N64 format for z value, so Glide will loose1272precision on the same place as N64 itself. I finally understood what he ment,1273and implemented it. Well, all old poke-through problems with z-buffer are gone,1274but new one appeared. This method does not work. But I noticed, that conversion1275from my z to N64 z is not linear. It gives enough precision for large z1276at the cost of loosing precision with small z. I decided to use floated point1277z conversion which works similary - (z/65535)*z*2. Great! No problems with close1278objects and much less problems with far ones. After that I have removed w-buffer mode1279entirely. It's not compatible with fog-coord anyway. I also removed old fog algorithm.12801281* Implemented 32bit frame buffer support (convert 16bit glide frame buffer into 32bit N64 ones).12821283* Fixed frame buffer effects detection algorithm to support rear-view mirror in Roadsters.1284Later I found how to make it working without fb support - just remove corresponding texrects.1285Rear-view mirror now works full speed on any videocard.12861287Monday, 27 Dec 041288* Fixed grid in Mario Golf. The error appeared after rewriting of modifyvtx function. It was caused by1289unset x,y and zsrc is on.12901291Tuesday, 28 Dec 041292* Fixed combiner for road in Zelda OOT.1293* My ZtoN64Z causes problems for small z. As result text in Tigger Honey Hunt is disappeared.1294Tuned ZtoN64Z so it does not transform small z now. Not sure, it can cause other problems.1295* Added new hack - increase texrect size. Rice uses similar hack to fix new tetris and mega man 64.1296The new tetris is fully playable now with texture coordinate fix.12971298Sunday, 02 Jan 20051299* Added prim_depth using in fillrect.13001301Tuesday, 04 Jan 051302* Rewrited fog again1303* Implemented special fog mode, when object is not fogged, but became transparent instead.13041305Wednesday, 05 Jan 20051306* Fixed depth buffer clear in fillrect.1307* Removed depth compare hack from fillrect1308* Fixed out of range bug in depth render.13091310Sunday, 16 Jan 20051311* Fixed depth problem in Destruction Derby. Maximum depth value must be <= 655341312* Fixed depth problem in sprite microcode - z conversion must not be used in set_sprite_combine_mode.1313* Fixed color combiner for fire electric pen.1314* Fixed fog when fog multiplier is negative.1315* Added combiners for Paper Mario1316* Fixed texcoord hack for Polaris Snow Cross13171318Monday, 17 Jan 20051319* Added combiners for Paper Mario13201321Tuesday, 18 Jan 20051322* Fixed text in Doraemon - Mittsu no Seireiseki. This is the second game, which uses CPU frame buffer writes.1323* Added dithred alpha support. I found 2 undocumented Glide functions: grStippleMode and grStipplePattern.1324They work almost the same as similar functions in OpenGl. Dithred alpha test is used in Mario64, and now1325it works very good.13261327Thursday, 20 Jan 20051328* Added per-pixel LOD calculation. It was quite hard to get decent result. Peach/Bowser portrait's transition1329in Mario64 works fine, Perfect Dark is acceptable too. Only Utils.cpp is changed.13301331Friday, 21 Jan 20051332* Added LOD option to the configuration panel1333* Added missing tooltips1334* Added stipple options to ini file.13351336133722-30 Jan 20051338* RE2. fix in DrawImage.1339* RE2. depth buffer render to video memory to fix depth problem. Slow1340* RE2. Found how movies work. 2 mode implemented - stretched and in the native resoluton.1341* RE2. Added depth buffer render via HWFBE. Fast and perfect.1342* Fixed depth problem with prim depth.1343* Fixed depth problem with texrects which uses prim depth - depth write must be off while depth compare must be on.1344* Fixed some combiners.13451346Tuesday, 1 Feb 20051347* !Changed rdp_loadblock. texture image address will not changed if lr_s is 0. This fixes Twisted Edge Extreme Snowboarding1348background.13491350Thursday, 3 Feb 20051351* Added hack for backgrounds in WCW Nitro.1352* Removed zelda hack from DrawImage. WCW Nitro backgrounds did not work because of this hack.1353* Added hack for texture generation in Chopper Attack. This hack was used for all games and this caused one glitch in1354Super Mario, so I made it optional.1355* Fixed partially Horisont Scaner in Perfect Dark. Glitch was caused by one option on texrect, which prevents to draw1356texrects wich use previous frame as texture. For Horisont Scaner the same color buffer is used each frame (strange).1357* Added missing combiner for Perfect Dark.13581359Friday, 4 Feb 20051360* Added GUI option "Show RE2 videos in native resolution"1361* Fixed videos crash with PJ64. For some reason first frame has height > 256, so I had write above bounds here.1362* Implemented several combiners for Paper Mario and Tony Hawk.13631364Tuesday, 8 Feb 20051365* Fixed "Tidal wave" in Paper Mario. It's quite complex frame buffer effect, many things were changed in FB emulation.1366It still has problem with HWFBE.13671368Wednesday, 9 Feb 20051369* Fixed (rather hacked) viewport problem in RE2.1370137112-13 Feb 20051372* Added suport for cloaking effect in Perfect Dark. It was hard - the game may use about 30 auxilary frame buffers here.1373New frame buffer type was added - aux_copy. HWFBE does not work correct here.13741375Monday, 14 Feb 20051376* Source cleaning.13771378Tuesday, 15 Feb 20051379* More source cleaning1380* Fixed combiner for boost mode in Beetle Adventure Racing.138113821383138423-27 Feb 20051385* A lot of changes in fb emulation and in HWFBE. Tidal wave in Paper Mario, cloaking effect and motion blur in Perfect Dark,1386replay in 1080...138713881 Apr 20051389* Paper Mario intro. There is a kind of fb effect. I have changed main ci height calculation in fb_setcolorimage and1390in rdp_setcolorimage to make it working.1391* Paper Mario intro. Added a hack into blender to remove weird texrect when bowser throw up flame.1392139313941395These changes were originally not mentioned here:1396Glide64 Wonder and Wonder Plus1397* April 2005 to November 200513981399glide64-wonder+-linux1400* unknown14011402glide64-wonder+-linux v101403* March 200714041405glide64-wonder+-linux v111406* April 200714071408glide64-wonder+-linux v121409* May 20071410141114121413Glide64-amd64 v0.91414* forked from glide64-wonder+-linux v121415* Ported all GCC and nasm assembler to AMD64 and corrected various other 64 Bit portability problems1416-- 2008-02-01 Günther <[email protected]>141714181419