Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libmupen64plus/mupen64plus-video-glide64/src/Changes.txt
2 views
1
2
2/09/02 Version 0.04 Released
3
4
Sunday, 2/10/02, 4:35 PM
5
* Completely redid combine modes to allow for multiple equation types
6
* The new combining method seems to have made enemies in Star Fox flash when you hit them
7
like they are supposed to.
8
* Also in the new combine mode system, unimplemented combiners should now show as bright red.
9
10
Monday, 2/11/02, -:-- PM
11
* Added many new combine modes
12
13
Tuesday, 2/12/02, 5:29 PM
14
* Fixed it so that it will now use the tile descriptor given in uc0:texture instead of
15
assuming 0.
16
17
Wednesday, 2/13/02, 6:53 PM
18
* Added 1964 support. The problem was that 1964 reloads the plugin when it switches
19
to fullscreen. Also, I wasn't logging DllMain, which was why I didn't notice the error.
20
Now it switches to fullscreen at the next dlist, meaning no reloading the dll since we
21
last called grGlideInit.
22
23
Monday, 2/18/02, 1:26 PM
24
* Added triangle caching, now things should run a lot faster since it only has to do matrix
25
transformations once per vertex instead of every time the vertex is used.
26
* Also, vertex transformations are now done during the vertex instruction, which fixed the
27
problem with Banjo's seperated body parts. The vertices were using two different matrices
28
and doing the transformations at draw time was only using the last matrix that was set.
29
30
2:45 PM
31
* Now it should only calculate lighting once per vertex also, but I didn't see any speed
32
increase... maybe something went wrong?
33
34
Tuesday, 2/19/02, 8:59 PM
35
* Started on uCode 2 (5 in the compat. list), F3DEX 2.XX. This is the uCode that Zelda64
36
uses. So far I have written the instruction table, and implemented uc2:moveword for
37
segment offset. I'm really amazed that it now runs without ANY undefined instructions.
38
39
11:13 PM
40
* Gugaman has fixed the lighting speed problem! Now it goes a lot faster. The vertex
41
normals were being normalized in a loop with all the lights, and also a lot of the
42
variables are now declared as 'register'. We also took out an unused vector.
43
44
11:56 PM
45
* We optimized it again! This time I moved the normalizing code totally out of the light
46
calculation. I am also now calculating lighting before copying, which now allows it to
47
only calculate once per frame.
48
49
Thursday, 2/21/02, 8:51 PM
50
* Yesterday I got my Zelda wireframes working. Today I added textures, and am currently
51
researching how T1 works.
52
* Sometimes triangles were empty (all three points were the same), which would mess up
53
the click detection code. Now it's a lot easier to navigate the triangles, and
54
it should speed up a little more too (barely).
55
56
Saturday, 2/23/02, 5:14 PM
57
* Added texture swapping support, things look better now in Super Smash Brothers and
58
Pilotwings.
59
60
8:51 PM
61
* I found out what's going on with most of my texture problems. I've severely underestimated
62
the use of mask. Not only can it be used for mirroring, but it can be used to determine
63
size as well. It's time to do the major change I've been avoiding all this time...
64
triangle and texture splitting.
65
* Also, by using mask, it fixes all those very odd settilesize problems, like the Quest64
66
fireball spell.
67
68
11:52 PM
69
* I've partially implemented texture splitting, it seems to load the two textures correctly.
70
71
Sunday, 2/24/02, 1:49 AM
72
* Fixed the missing triangles problem with Zelda and Super Smash Brothers, the uc2:tri1
73
command uses cmd0 for it's vertices instead of cmd1.
74
75
8:35 AM
76
* Ok, when I turned on my computer this morning, it deleted my Util.cpp and I lost my
77
texture splitting. It was already messed up, so I would just have to redo it anyway.
78
I'm going to do triangle splitting first now, texture splitting isn't as important.
79
80
9:15 AM
81
* Gonetz ([email protected]) submitted a speedup idea, to pre-multiply matrices so that they
82
do not have to be calculated with each vertex. I had a little trouble implementing it
83
because I was trying to do model*proj instead of proj*model or vice versa for both.
84
85
Monday, 2/25/02, 6:46 PM
86
* I've totally redone the combiner
87
* Texture wraps and mirrors with clamp are now used in texture loading, super smash brothers
88
almost works correctly now
89
* Texture CRC checks now should be correct
90
91
Saturday, 3/02/02, 2:58 PM
92
* Wheeee!!! I've speeded up compiling time by A LOT by using a precompiled header.
93
* I've figured out how to fake the LOD into letting me do texture interpolation.
94
* I've implemented many zelda combine modes.
95
96
Tuesday, 3/05/02, 5:35 PM
97
* YAY!!! Icepir8 has shown me how to do lighting correctly. I was using an unsigned byte when
98
the light direction requires it to be signed.
99
100
Someday in-between Tuesday and Friday, 3/??/02, whatever PM
101
* I've implemented the Zelda fire combine mode
102
103
Friday, 3/08/02, 12:04 AM
104
* Gonetz sent me the file to implement Waverace's ucode. I tested it and it works. He also
105
gave several suggestions for improving the combiner, which I will do in the next few days.
106
107
Saturday, 3/09/02 9:00 PM
108
* I've done yet another combiner, this time it doesn't have a gigantic switch statement. This
109
combiner is based on ideas by Gonetz, and combined with some of my own.
110
* Icepir8 just told me that if I transformed my normals on vertex load instead of transforming
111
light vectors, I could save a lot of calculations.
112
113
10:58 PM
114
* Okay, I'm done with the new lighting system. I don't see any speedup because something else
115
is seriously slowing my plugin down.
116
117
Sunday, 3/10/02 3:18 PM
118
* Gonetz has told me how to fix a matrix problem in Waverace. Now there is no large dolphin.
119
The problem is that I need to clear the matrix stack count every frame. I had this code
120
before, but took it out for some reason.
121
122
Monday, 3/11/02 8:33 PM
123
* Implemented a "GFX plugin has caused an exception" dialog, that makes it go back from
124
fullscreen and prevents it from crashing on exceptions. (try/catch in ProcessDList)
125
* Figured out how force blending and other such works, not implemented yet though.
126
127
10:12 PM
128
* Implemented some force blending, for things like mario kart player select.
129
130
Tuesday, 3/12/02 9:48 PM
131
* Fixed kokiri faces bug, I had read somewhere that palettes had to be aligned to 8-bytes,
132
but this was obviously not true. The palette in zelda was using an ending value of 'C'.
133
134
Wednesday, 3/13/02 6:17 PM
135
* Defined the real values for combine modes rather than a shortened, one-for-all-slots
136
version. Now I don't get odd things like "use prim_lodfrac for starfox menu item alpha",
137
instead it is "1". All of the combine descriptions need to be converted though :(
138
139
8:21 PM
140
* I redid lighting again, this time a mixture of both methods. I first translate the light
141
vector by the inverse model matrix, and then use that in ucx:vertex to calculate lighting.
142
This way I do not have to transform every single normal, rather, one light vector per group.
143
144
Thursday, 3/14/02 6:55 PM
145
* Got waverace texrects to show by setting the default alpha for shade in fillrects to 0.
146
147
Saturday, 3/16/02 2:54 PM
148
* Fixed clamping problem, was using tiles 0 and 1 always, when it should've been rdp.cur_tile
149
and rdp.cur_tile+1. Now Banjo-Kazooie wraps everything correctly.
150
* Added many many more combine modes for the new combiner over the past few days.
151
152
5:29 PM
153
* Revised the debugger, now it can run in any resolution. Also redid the texture viewer
154
so that it's simpler, and supports TMU1.
155
156
9:12 PM
157
* Added the two .3df files to the program as resources, they had to be as "RCDATA", even
158
though nothing specified that. No more extra .3df files are required. The font texture
159
is now loaded from a 1-bit alpha texture, using some assembly code, and the cursor texture
160
is the same. I also added a colored text option, so that the combiners and headers of the
161
debugger are color-coded.
162
163
Sunday, 3/17/02 10:45 PM
164
* Fixed translucency problems finally. Now Link shows up fully opaque and nothing else
165
messes up. ALPHA_CVG_SEL does in fact mean full alpha, but I wasn't handling
166
rdp:setothermode so I was getting it where I shouldn't have been.
167
* Fixed flickering problems in games such as Snowboard Kids and Paper Mario. The problem was
168
that some games use more than one DList per frame, and I was flipping on every DList. Now
169
it flips on UpdateScreen instead of on the DList.
170
171
Tuesday, 3/19/02 4:50 PM
172
* Made it so that outputting text without scaling is possible, FPS counter doesn't scale in
173
case of resolution too low to see.
174
* Added check box for FPS counter
175
176
9:45 PM
177
* Added a bunch of new options to the dialog but all they do now is save to the INI, nothing
178
is implemented yet for when they are set.
179
180
Friday, 3/22/02 3:48 PM
181
* Bleh, I'm sick today, 102.8 temperature, however, the computer isn't causing a headache,
182
so I will continue working.
183
* Implemented a bunch of the options yesterday, such as logging, etc. (no more #defines
184
needed)
185
* Upgraded computer to Win2k SP2. Mario's face screen goes a little faster now, but not much
186
else changed.
187
* Took out the now useless VERTEX_N structure since lighting is now calculated in UC:VERTEX.
188
* Gonetz sent the software culling I asked for. I'm going to try and improve this by doing
189
everything I can in UC:VERTEX, and also a flag in vertex for clip_z, to determine whether
190
we can use a precalculated x/z and y/z value.
191
192
6:21 PM
193
* Pre-calculated x/z, y/z in UC:VERTEX, use if not z-clipping. The real reason I did this is
194
for software culling, so they don't have to be re-calculated.
195
* Made it so that vertices will only calculate u/v coordinates once, or not again until the
196
texture attributes are updated. z-clipping doesn't matter for this, u/v were calculated
197
before the clipping in the first place.
198
* Changed the type passed into DrawTri to VERTEX** to make it work with clip_tri. (modified
199
from Gonetz's original to allow for u/v calculate once (previous comment)).
200
201
8:12 PM
202
* Now screen coordinates, 1/z, u/z, and v/z are precalculated also. (unless z-clipping)
203
* Actually added software culling, I think it sped the plugin up by a lot.
204
205
Saturday, 3/23/02 8:54 PM
206
* Found that the reason for the Zelda magic bar and Aerogauge fire messing up is that yes,
207
textures can only be wrapped on powers of two, but they can be clamped anywhere, whatever
208
is specified by lr-ul. I'm going to redo a lot of my texture code soon, and I will
209
incorporate this fix (manually clamp to the full power of two texture)
210
211
Monday, 3/25/02 12:53 PM
212
* STILL sick, 100.9 temperature today.
213
* Fixed a bug with resolution switches, it wasn't setting the resolution width and height,
214
only video mode. Also, when you switch resolutions it will turn off the debugger.
215
216
Tuesday, 3/26/02 5:21 PM
217
* After trying to implement frustrum clipping, I have finally decided that my method of 2d
218
clipping is better. I am however using the inequalities x<-z, x>z, y<-z, and y>z in several
219
places though.
220
* I've implemented culldl for Zelda, not sure of any speedup since I didn't really look at
221
the speed before I changed it.
222
223
Wednesday, 3/27/02 10:30 AM
224
* Fixed uc2:geom_mode so that now both clr and set are shifted before they are used, instead
225
of shifting the final result. Now the culling in zelda works properly.
226
227
3:07 PM
228
* Fixed culldl in ucode2, was using ||s instead of &&s, &&s didn't work b/c it needs to check
229
the volume between the vertices instead of the vertices themselves. Now it checks that
230
each condition is met at least once to decide whether to draw or not.
231
* Fixed a bug where it would log the alpha combiner also if the color combiner was
232
unimplemented.
233
234
Thursday, 3/28/02 7:16 PM
235
* Unimplemented combiner text descriptions now show up as red, the alpha as a brighter red
236
so you can easily tell them apart.
237
238
Friday, 3/29/02 4:29 PM
239
* Implemented many many many more combiners.
240
* Implemented branch_z for ucode 2 so that Death Mountain Trail and the well work.
241
* Implemented prim depth source and alpha compare for texrects, made lens of truth work
242
backwards.
243
244
Saturday, 3/30/02 4:27 PM
245
* Added more descriptive update() function, now outputs everything it's trying to do,
246
also TexCache outputs things to debug texture loading crashes.
247
* Converted some things such as texture loads to BMASK/WMASK/DMASK format (different masking
248
method, fixed one illegal operation in zelda subscreen).
249
* Manually clamped all textures, which fixed the zelda magic bar, and several other texture
250
border issues, like the subscreen.
251
252
Tuesday, 4/02/02 8:54 PM
253
* Gonetz sent many new combiners
254
* Implemented a lookup for the first byte of combiners
255
256
Wednesday, 4/03/02 5:06 PM
257
* Gonetz sent new combiners again
258
* Oops, realized that I didn't do as I had planned with the alpha combine lookup, I meant
259
to use 0x0FF00000 instead of 0xFF000000 since the first 4 bits are not used. It is fixed
260
now.
261
* Now it always uses Glide64.ini no matter what the name of the plugin (dll file) is, so
262
you can have multiple versions of the plugin using the same ini.
263
264
Thursday, 4/04/02 11:25 PM
265
* Made shade values full for texrects (for dual heroes)
266
* !!! Added CMB_MULT and CMB_SET stuff to texrects! A long time ago I thought texrects would
267
only have textures, and then later forgot to put these in. Now combiners should work MUCH
268
more often on texrects.
269
* Changed from full alpha and full color for texrects to just full alpha, and black color
270
(for the zelda menu).
271
272
12:35 AM
273
* Changed my mind again about the texrect color thing, now all four values are full (dual
274
heroes needed this)
275
276
Friday, 4/05/02 6:15 PM
277
* Made the plugin faster by not drawing fillrects that had an alpha value lower than 5
278
(usually one fullscreen rect per frame)
279
* Made it faster again by not setting the uv_calculated for every possible vertex on texture
280
load, now it acts more like a CRC
281
* Lemmy has led me to the zelda fixed view problem. There was an unimplemented instruction,
282
background as he calls it (0x0A), which draws a fullscreen 320x240x16 rectangle. It is
283
not yet implemented yet though.
284
285
10:55 PM
286
* FINALLY, after a million hours of working on the temple of time problem, GokuSS4 tells me
287
that Lemmy can help fix my problem. Lemmy said that there is a command that draws a
288
320x240x16 texture on the screen. Knowing the command was not enough though, using the
289
address it gave, I got static. Icepir8 and I eventually figured out that the address
290
actually pointed to a structure whose fourth element was a pointer to the actual texture.
291
The temple of time, and all other fixed view problems, now work.
292
293
Sunday, 4/07/02 10:21 PM
294
* Implemented a bazillion new combiners from Ogy's list.
295
* Fixed mario texrects, on cycle_mode=copy, it doesn't use combine, but rather texture.
296
297
12:22 AM
298
* Clipped texrects properly so that they do not stretch as they go off the screen. They
299
are also clipped to scissor instead of screen now also.
300
301
Monday, 4/08/02 11:40 PM
302
* Fixed a problem with the scissor rect being too big for the screen.
303
304
Tuesday, 4/09/02 6:17 PM (.04944)
305
* Fixed the zelda orange texrect problem, Gonetz implemented a combiner for Kirby 64 that
306
was actually already implemented. I commented his duplicate, and it worked again.
307
308
12:03 AM
309
* Switched the order of alpha compare/CVG_X_ALPHA
310
* Made it so that XLU surfaces do not update the z-buffer
311
312
Thursday, 4/11/02 6:34 PM
313
(0.1 Beta #1 -> Ogy, Jeremy, Quvack, Slougi)
314
(0.1 Beta #2 -> Ogy, Jeremy, Gugaman)
315
(0.1 Beta #2+ -> Jeremy, Gonetz)
316
(0.1 Beta #3 -> Gonetz, Ogy, Scorpiove)
317
* Gonetz sent new combiners.
318
* Gonetz has finally agreed that it is time to release. I'll send to Ogy after just a few
319
more fixes.
320
* Disabled most recent thing added, xlu surfaces, just in case because of release.
321
* Changed unimplemented combiners to show T0 instead of the last combiner used, since most
322
objects use T0 at least somewhere.
323
* Found bug in texrect clipping, the fast on/off cut return was wrong.
324
325
10:24 PM
326
* Fixed texture swapping in certain games like Super Smash Bros by swapping the x value
327
instead of the address.
328
* Made it so that unimp.txt is not created unless unimp logging is enabled.
329
330
11:44 PM
331
* Spherical mapping fixed, works now in every instance I've seen.
332
* Option added for 'Buffer clear on every frame'
333
334
Friday, 4/12/02 4:44 PM
335
* Bug fixed when Glide64 was not as Glide64.dll, I had typed in "Glide64.dll" instead
336
of getting the full path.
337
338
(0.1 Beta #4 -> Ogy, Falcon4Ever, Jeremy, Gugaman, McLeod, Scorpiove)
339
340
Sunday, 4/14/02 2:03 PM
341
* Switched from ac_one on unimplemented to ac_t0, b/c it causes less problems with translucent
342
things.
343
344
4:00 PM
345
* Fixed a Ridge Racer crash that had to do with texrects being off the screen. The reason my
346
previous offscreen clipping code didn't work for the y-axis was because I needed to flip
347
the coordinates, not the borders, to make ul_y < lr_y.
348
* Fixed a problem in fillrect. If fillrect used fill color, it would check if it had less
349
than 5 alpha to determine whether to draw or not. The problem is... fillrect only has
350
1 bit of alpha and I didn't think about that when I wrote the compare. Now some black
351
rectangles that didn't show up before now will. The only problem is that this may slow
352
the plugin b/c of a fullscreen clear that now must occur.
353
354
9:37 PM
355
(0.1 Beta #5 -> Gugaman, Ogy, Scorpiove, Quvack)
356
357
2:11 PM
358
(0.1 Beta #6 -> Gonetz, Ogy, Scorpiove, Quvack, IceLord)
359
* Added ToolTips for all configuration options.
360
361
Monday, 4/15/02 7:31 PM
362
* Finished up ToolTip text
363
* Disabled FPS counter because of bugs it has
364
365
8:11 PM
366
* Finished wireframes for texrects and fillrects.
367
* Added an option to select the colors to use for wireframes.
368
369
Wednesday, 4/17/02 7:49 PM
370
* Changed address mask in uc0:displaylist to 0xFFFFFF instead of 0x3FFFFF.
371
* & also in ProcessDList (Zelda: MM runs now, complete gfx errors).
372
* Put an &BMASK at the end of segoffset.
373
* Glanced through ucode02.h replacing incorrect masks.
374
* Changed a 0x3FFFFF in TexCache
375
376
Thursday, 4/18/02 9:49 PM
377
* Scissor added to update
378
* THE INFAMOUS RESOLUTION PROBLEM IS FIXED!!! After a while of looking at things, the
379
resolution problem that was present in many games is now fixed. I noticed two variables
380
of name VI_X_SCALE and VI_Y_SCALE. These contained values typically 0x200 and 0x400
381
normally, but when something was stretched in the y-axis, VI_Y_SCALE = 0x800, double
382
the original. By using division between the current and original, you get the correct
383
scaling.
384
385
Friday, 4/19/02 5:32 PM
386
* Made it so that tooltips can be easily disabled (for those without the platform sdk)
387
by commenting the line in Gfx #1.3.h that says "#define USE_TOOLTIPS"
388
389
11:20 PM
390
* CMB_MULT and CMB_ADD/SUB are now completely unrelated in values, and it performs the
391
add/sub operation first.
392
393
** 0.1 released **
394
395
Tuesday, 4/23/02 10:43 PM
396
* Made it so that the uc2:BG command doesn't use the z-buffer.
397
* Added uc2:BG to the log.
398
* Made uc2:BG use alpha (for alpha compare)
399
* Going to start on a HUGE texture loading change... allowing modification of textures
400
while loading and also faster loads, possibly using some assembly.
401
402
Sunday, 5/05/02 6:01 PM
403
* Figuring out many things about texture sizes, assembly going well so far
404
* Improved the debugger, allowing a NULL triangle selection. Also, as when you press space
405
bar to go to the texture of the selected triangle, you can now press the left control key
406
to go to the last on-screen triangle that used the selected texture. This is useful to
407
find what a messed-up texture is supposed to be of, since you can see where it was on the
408
screen. Also, if the texture was not used this frame, it selects NULL, which doesn't display
409
any triangle information.
410
411
6:27 PM
412
* Made it so that interpolation of 0.0 or 1.0 ONLY uses the needed texture, because the other
413
one may not have had its tile descriptor even set, loading a useless noise texture. (INTER
414
macros in Combine.cpp)
415
416
9:25 PM
417
* 16-bit RGBA seems to be as far as it can go... starting LoadTile emulation now.
418
419
Saturday, 5/18/02 1:22 PM
420
* Lots of school recently, no time to work
421
* Fully re-implemented both LoadBlock and LoadTile in order to account for non-aligned textures
422
* Implemented a new texture format: 4-bit CI. This should be the hardest of all.
423
* Made it so that tri_n numbers should be correct even if not in fullscreen mode
424
425
4:22 PM
426
* Implemented 8-bit CI by slightly modifying the 4-bit CI code.
427
* Seperated the load functions into different files based on size since they are quite large.
428
429
6:18 PM
430
* Oops, fixed a problem with building on normal 'debug' and 'release' modes, where it wasn't
431
including the .obj file.
432
433
6:55 PM
434
* Finished 4-bit I textures.
435
436
11:27 PM
437
* *Gugaman* (accidentally typed Gonetz the first time) has helped me implement both 4-bit CI
438
and 16-bit IA textures.
439
440
Sunday, 5/19/02 8:46 AM
441
* Oops, from the simplified version of Gugaman's 16-bit IA, I forgot to take out a ror 16.
442
443
5:50 PM
444
* Remade the whole texture loading routine... The whole thing is completely different.
445
Combine and TexCache are now somewhat merged to allow for use of the maximum amount of
446
memory. All vertex coordinates may need swapping to the right tmus since t0 no longer
447
represents tmu0. Texture loading is now located in TexCache.cpp instead of Util.cpp.
448
I have tested with multitexturing also, and it works.
449
* Gugaman sent me 8-bit AI and I this morning. I just changed I to use alpha instead of
450
intensity. (first time i've seen it)
451
452
6:08 PM
453
* Changed the debugger: space bar doesn't work the same. You must now select either
454
page t0 (keyboard 2) or page t1 (keyboard 3) and then press space bar. Then it will
455
select the CORRECT TMU AUTOMATICALLY and the corresponding texture in it.
456
457
6:29 PM
458
* Made it so that pressing 'G' will switch on and off a grid for the cache viewer (large view
459
on page 0).
460
461
7:19 PM
462
* Fixed Gugaman's routines again... he didn't understand what the << 1 on ext was for in my
463
routines; it was to multiply by the number of bytes per destination pixel. I had to take
464
this out on the 8-bit ones.
465
466
Tuesday, 5/28/02 2:22 PM
467
* School is now out and I have more time to work on the plugin
468
* Spherical mapping finally fixed for good. The size to use is the scale value >> 6. I found
469
this information in a really strange place.
470
* 32-bit textures implemented
471
472
Wednesday, 5/29/02 12:33 PM
473
* Fixed the fillrect problem. Recently i changed it so that TexCache() is REQUIRED to set the
474
combine mode from Combine(), even if no texture is used. I had not yet updated fillrect to
475
reflect this.
476
477
Friday, 5/31/02 8:09 PM
478
* Wrote all Wrap/Mirror/Clamp functions, for both 16-bit and 8-bit.
479
480
12:27 AM
481
* Rewrote the tmu selection functions to remove support for 3 tmus and add support for 1 tmu.
482
* Improved single-tmu support by a lot by forcing it to select a texture.
483
484
Saturday, 6/01/02 9:46 PM
485
* Added a log flush option to make it so that the log will be completely written before a crash
486
or exception.
487
* Made it so that a maximum count of 256 entries can be loaded by loadtlut by masking by 0xFF
488
instead of 0x3FF. No more goldeneye exception.
489
490
1:58 AM
491
* Finally cracked the goldeneye triangle instruction. Now triangles in goldeneye show correctly,
492
but the textures are still messed up. (something about palettes)
493
494
Sunday, 6/02/02 1:54 PM
495
* Found why goldeneye palettes weren't working correctly. I noticed in the log that the
496
settextureimage address was not being changed from the texture and the palette. So,
497
I made loadblock and loadtile increment the settextureimage address as they load.
498
499
3:30 PM
500
* Slightly optimized the 16-bit RGBA loading by using better RORs and SHLs instead of
501
masking and shifting to swap the alpha bit.
502
* Implemented IA-16 format for palettized textures. Now goldeneye works almost perfectly,
503
but kinda slow.
504
505
4:44 PM
506
* Found out that you do NOT increment the settextureimage address with loadtile. (HAL logo,
507
SSB)
508
509
Monday, 6/03/02 3:22 PM
510
* Figured out why 32-bit texture's pixel swapping was not working correctly. Since I am not
511
loading 32-bit textures exactly how the N64 would, they need to swap 64-bit words instead
512
of 32-bit ones.
513
514
4:46 PM
515
* Ack!!! If you switched to fullscreen before the ROM started running, it would set to single-tmu
516
mode. I had to move the "rdp.num_tmu = 1" out of rdp_reset and into InitiateGfx so that it
517
would only occur when the plugin is first loaded.
518
* Fixed texrects in Mario Kart and probably some other things. Texrects use a different texture
519
tile # than the one specified in uc0:texture, so it needed updating.
520
521
5:05 PM
522
* Made it so that both tmu texture caches refresh at once. This may seem like a bad thing,
523
because then it has more textures to load at once, but it's not. Before, after one tmu
524
would refresh, it would have the most open memory and therefore get all the textures. If
525
the other TMU was really close to being filled, it would never be refreshed.
526
527
6:53 PM
528
* Added Voodoo 1 support. It was 5 lines of code. All I had to do was make it so that
529
if mirroring was not supported, and was used, it would multiply the size by two.
530
Then it would automatically mirror the smaller texture to the full size.
531
* Added a check for clamping/mirroring/wrapping/mask for the cache, so that if anything
532
changes, the texture can load differently.
533
534
Tuesday, 6/04/02 7:52 PM
535
* Fixed a bunch of things with alpha compare. Also made it so that it looks more like UltraHLE.
536
I haven't found a single problem with it that wasn't there before, and the hands in Hexen show,
537
and SSB is fixed.
538
* 0.1762
539
540
3:17 AM
541
* Made palette CRCs multiply the content by the location so that even if the contents are the same
542
but in different locations, the CRC will be different.
543
* Going to make sure to write version numbers here so I know what has changed.
544
* 0.177
545
546
VC++ 6.0 SP 5 installed
547
VC++ 6.0 Processor Pack installed
548
549
Wednesday, 6/05/02 11:05 AM
550
* Finished adding the negative count checks for mirror/wrap. For some reason, i had only
551
implemented 2 of the 4.
552
* Fixed a combiner that caused tony hawk to be bad.
553
* 0.1771
554
555
7:25 PM
556
* Changed alpha compare some more, making it so that force-blend overrides CVG_X_ALPHA. No
557
problems observed so far, and it fixed Bomberman Hero.
558
* Made z-buffer clearing fillrects faster by checking if cimg=zimg.
559
* 0.178
560
561
10:25 PM
562
* Implemented basic modifyvtx for texture coordinates, something is still not right.
563
* Changed it so that coordinates are scaled in vertex instead of when they are drawn (this
564
is correct).
565
566
11:29 PM
567
* Improved the debugger again, allowing you to push left/right to cycle throught the triangles
568
(by ID numbers).
569
* Added vertex numbers to the debugger so you can tell which vertex is which (remember, 1
570
is the first vertex because of the way it clips. 2 is the 2nd vertex, and 0 is the third).
571
* Fixed uc2:modifyvtx. I knew the solution the whole time, and I remember thinking about it,
572
but when I looked at the macro I didn't see what I wanted so I let it go. Then later I come
573
back and there it is! I needed to divide the vertex number by two.
574
* 0.179
575
576
12:52 AM
577
* Fixed the road in F-Zero by making it so that alpha_cvg_sel can occur with force_blend.
578
Luckily, i had made a mistake before and thought something was set that really wasn't.
579
As far as I can tell, nothing new broke.
580
* Paper Mario wasn't working well because of an odd palette copy, so me & Gonetz decided
581
just to change the combiner to T1 instead of T0*T1. (0xe2f10054)
582
* 0.1791
583
584
Saturday, 6/15/02 4:10 PM
585
* Large textures now load correctly, so now I need to do the math part.
586
587
9:21 PM
588
* Improved upon the CRC code, removing the need for address checks. Now it multiplies the CRC
589
by the position so that the O and U in mario are not the same.
590
* 0.1792
591
592
Monday, 6/24/02 7:41 PM
593
* Gonetz sent combiners again
594
* Wrote the texture splitting code for texrects, still not working yet though.
595
* Triangles in both texrects and triangles are drawn with grDrawVertexArrayContiguous which
596
allows vertices to be in a linear array, rendering the pointer table i had made useless. I
597
don't believe I hadn't discovered this function before.
598
* YAYYYY!!!!!!!! I've finally finished large texture support. Actually half-finished. It works
599
PERFECTLY for texrects, but not yet for triangles. No seams, nothing. EVERY SINGLE GAME I've
600
tried so far (using texrects) works. About 80% of games with the problem used texrects.
601
* 0.18
602
603
10:17 PM
604
* Made it so that textures with masks that are greater than 8 just use the tile size. I haven't
605
seen anything broken by this yet, and it speeds up some odd games.
606
* 0.181
607
608
12:23 AM
609
* Moved a -1 earlier in texrect, helped fix some coordinate problems. As far as I can tell,
610
texrects are now good in terms of coordinates. There are still some lines, but that cannot
611
be helped. It's caused by the fact that there are so many of them. The only way to solve is
612
to blend between them.
613
614
2:29 AM
615
* Made split texrects clamp so that if they need to wrap, they can do it without getting black
616
lines across them.
617
618
5:01 AM
619
* Added "Automatic" filtering mode.
620
* Finally found what was causing versions since 0.1792 to go slow. I had called grFinish after
621
grBufferSwap to see if it helped the FPS counter. It didn't and it made the plugin go REALLY
622
REALLY SLOW.
623
* Implemented the rest of rdp:setothermode for uc2. Health meter in Zelda now correct & you
624
can't see him in the menu.
625
* 0.182
626
627
Tuesday, 6/25/02 2:21 PM
628
* Rewrote the texture cache searching algorithm so that it only has to search a few textures
629
instead of all the textures. It takes the highest byte of the crc and only searches the
630
textures that had that same value.
631
* 0.183
632
633
4:26 PM
634
* Got into really big conversations and all of the sudden, the whole FPS thing hit me at once!
635
UpdateScreen() is actually a VERTICAL INTERRUPT!!! This is why it is called twice per every
636
ProcessDList(). The TV is updating at 60hz but mario only at 30. This also explains why
637
when I used UpdateScreen() instead of the buffer swap, I got the % of speed * 60.
638
639
5:41 PM
640
* Added 4 types of speed counters. There is the FPS counter (frames per second), VI/s counter
641
(vertical interrupts per second), NTSC % (percent speed on a (U) game), and PAL % (percent
642
speed on a (E) game).
643
* Added an option to clear top/bottom of screen like a NTSC TV.
644
* 0.184
645
646
1:45 AM
647
* Re-implemented the uc2:background command. Note to self: whenever textures don't show,
648
check what's ABOUT to be put into grTexCombine()
649
650
Wednesday, 6/26/02 2:10 AM
651
* The trees in Majora's Mask were screwed up since I changed the texture code to actually emulate
652
the tmem. I believe this is because it would wrap to the other side of tmem. I've implemented
653
a somewhat fix for this. It will work with power of two wraps.
654
655
Thursday, 6/27/02 2:05 PM
656
* Rearranged clipping code to allow for large texture support. Also it now only performs
657
z-clipping if NEEDED, and not always. This also allows for vertices to be copied only once,
658
and not twice.
659
* OMG. Sooo glad i found this... uCode 1 games were not setting the scr_off flags when they
660
were off the screen. This is why i noticed problems when rearranging the clipping code.
661
662
6:34 PM
663
* YAAAAAAY!!!! Large texture code for triangles is now complete!!! I can't find a single game
664
that has the problem anymore!!!
665
666
12:10 AM
667
* Added a tmem boundary check for LoadTile. It should fix many exceptions. So far I have seen
668
it fix the exception in Extreme-G 2 and 1080 Snowboarding.
669
670
Friday, 6/28/02 8:55 PM
671
* I've been researching this alternate way of getting texture sizes that makes 1080 and several
672
other games run much better. The only way there appears to be to do this is to make a game
673
specific INI. I have already done this. It makes it so i can have a [DEFAULT] section and
674
then override it with other values from each game.
675
* Bad config error... for some reason, you cannot attach a tooltip hook and then set a lot of
676
checks or your config dialog goes blank. If you create the hook afterwards though, it works.
677
* Changed the order of clamping/wrapping so that it can clamp before it wraps if it needs to.
678
679
10:35 PM
680
* Fixed bug in clamp/wrap, it needs to do ALL of s clamp/wrap before it moves on to t.
681
* 0.192
682
683
11:18 PM
684
* Made it so that fill mode (3) doesn't add 1 to the lower right coordinate like copy mode (2)
685
does. Those things that were fill before are now copy because of when i implemented the rest
686
of rdp:setothermode.
687
688
12:33 AM
689
* Added text that says when in windowed mode: "Glide64" "Gfx cannot be drawn in windowed mode"
690
"Press Alt+Enter to switch to fullscreen".
691
*0.193
692
693
Sunday, 6/30/02 6:46 PM
694
* Now allows Alt+Tab and other key combinations to be pressed.
695
* Gugaman and I have been working with the IRP and I think we've finally found a solution. All
696
of the games work so far, so we'll keep testing & find out.
697
698
10:46 PM
699
* No problems observed with the IRP.
700
* Added clock feature suggested on message board.
701
702
Monday, 7/01/02 3:44 PM
703
* Put in a "break;" after fog, so it doesn't move right on to lightcol.
704
* Implemented lots of new combiners for Pokemon Stadium 2 and Megaman.
705
* Changed alpha compare a little, adding a check for the combination of CVG_ALPHA_SEL and alpha
706
compare.
707
*0.197
708
709
8:15 PM
710
* Fixed alignment for triangles. Now it is how it should be. It has eliminated the line errors
711
in the Zelda select screens & many other things.
712
713
* 0.2 in final form
714
715
Tuesday, 7/02/02 11:38 PM
716
* Fixed prim_z for extreme-g 2 by ignoring the matrix it uses.
717
* TEMPORARILY CHANGED if ((rdp.render_mode & 0x00000C00) == 0x00000C00) to
718
if (rdp.render_mode & 0x00000800) IN DECAL CHECK - fixes castlevania text, but not sure of
719
other things.
720
* Nothing seems to have broken, keeping for now...
721
722
3:47 AM
723
* Changed enviornment mapping to 0x00080000 instead of 0x00040000 to fix F-Zero car textures.
724
* Changed combiner for F-Zero cars to look right.
725
* 0.202
726
727
Wednesday, 7/03/02 8:26 PM
728
* Realized that non z-clipped vertices did not use the precalculated values like they were
729
supposed to. [added to beta also]
730
731
9:55 PM
732
* Changed alpha test value to 0x80, since that will be optimum b/c it is right in the middle
733
of the texel. Also, it was required for Blues Brothers.
734
* Fixed 4-bit CI for 16-bit IA textures.
735
* Took out the C2, C3 init that Gonetz requested.
736
737
1:32 AM
738
* Added self-jump checking to fix Gauntlet Legends & another check.
739
* 0.21
740
741
Thursday, 7/04/02 9:02 PM
742
* Put in some framebuffer support. The copy works ok, but when to use is VERY VERY BUGGY.
743
* Completely redesigned the othermode functions so that multiple things could be set at once.
744
Also, there is no such thing as "rdp.rendermode" now, it's a part of rdp.othermode_l,
745
as rdp.mode_h changed to rdp.othermode_h.
746
747
10:22 PM
748
* Enhanced the debugger, listing all of the othermode settings, with the current ones
749
highlighted in green on page 6 and 7 of the debugger.
750
751
10:42 PM
752
* Now that you can set any combination of othermodes at once, i modified my rdp:setothermode
753
command to set ALL at once instead of one at a time.
754
* Fixed alpha compare so that, like there is no compare when ALPHA_CVG_SEL (full alpha),
755
there is no compare when force-blending to full alpha either.
756
757
1:27 AM
758
* Worked past 2-3 hours decoding new ucode for Star Wars: Shadow of the Empire. Works near
759
perfect as far as I can tell now.
760
761
* 0.220
762
763
Saturday, 7/06/02 7:14 PM
764
* Implemented basic ucode #5, Diddy Kong Racing. Icepir8 and I still need to figure out how
765
it selects which matrix to use though.
766
* Fixed a bug where the rdp_setothermode was using an unknown command instead of the othermode
767
commands in ucodes other than 2.
768
769
Sunday, 7/07/02 1:37 AM
770
* Did LOTS with Diddy Kong Racing today, the only thing that seems left is the billboarding.
771
* Billboarding done, uses vtx 0 as offset, then adds the current to it.
772
773
Monday, 7/08/02 3:00 PM
774
* Gonetz sent some more combines for diddy
775
776
12:47 AM
777
* Fixed some more stuff in Diddy, like the transparent walls.
778
* Added texture-modification code. Now it is possible to do things for combiners that would
779
be impossible otherwise. Now you can see the selection in DKR, and also the LOT of Zelda OOT
780
works. Don't have save of MM, so can't implement that one yet.
781
* 0.230
782
783
Tuesday, 7/09/02 6:08 PM
784
* Fixed cache bug where it wasn't always setting the mod flags, therefore refreshing faster
785
and faster each time.
786
* Added culling to DKR ucode, works much better now.
787
* partially fixed LOT in MM, but the outside is still solid.
788
* 0.231
789
790
Thursday, 7/12/02
791
* 0.2 released
792
793
Sunday, 7/14/02 5:51 PM
794
* Fixed the Great Fairy's hair color using texture modification.
795
* Fixed the RUSH games, for some reason they have size set to 0, so I used *gfx.VI_WIDTH_REG
796
instead to determine the size.
797
* 0.232
798
* Used texture mod again to fix the SF rush 2049 wings.
799
800
11:44 PM
801
* Added a whole bunch of impossible combines by using the texture modification.
802
* Fixed Snowboard Kids by implementing the modifyvtx for ucode 0. (same as 2)
803
804
Monday, 7/15/02 9:07 AM
805
* Fixed items in Super Smash Brothers by implementing the moveword matrix command. It took
806
me a while to figure out that it was incrementing in the x direction and not the y, and also
807
that you actually add the positive decimal part, EVEN WHEN WHOLE NUMBER IS NEGATIVE.
808
* 0.235
809
810
1:02 PM
811
* Added new INI code, should be no more corrupting.
812
813
3:21 PM
814
* Added culling for Diddy Kong Racing & fixed a non-working combine for the background color.
815
* Added huuuuge semi-combiner for flashing characters in SSB.
816
* Added support for clearing z-buffer using a texrect (SSB black rectangle).
817
* 0.237
818
819
1:18 AM
820
* Added a framebuffer workaround for Zelda: MM LOT. Now it works without needing to use
821
framebuffer copies.
822
* 0.240
823
824
Tuesday, 7/16/02 11:30 PM
825
* Found out that the LOT and telescope problems are with prim_depth. It enables but doesn't set
826
a depth value.
827
* Rice gave me plenty more new things to do :)
828
* The dlist with count command now implemented in f3dex 2.xx ucode. Cruisin' Exotica works.
829
(Rice's help)
830
* 0.241
831
832
12:27 AM
833
* Added the movemem matrix command, WWF No Mercy works now.
834
* 0.242
835
836
Wednesday, 7/17/02 5:53 PM
837
* Fixed SERIOUS bug in CI textures, it would not use the correct format.
838
* Fixed combine for link's sword swirl.
839
* Added new buffer swapping method that fixes flashing.
840
* 0.247
841
842
Friday, 7/19/02 4:20 PM
843
* Made LoadTile boundary checking MUCH better; now checks if >= and also for last write so
844
even if it's not aligned properly it will cut anything that goes above. Paper Mario
845
level up fixed.
846
* Added several combines for xg2.
847
* V-Sync option added. This only takes effect if it's set to "Software Controlled" in the 3dfx
848
Hub.
849
850
7:37 PM
851
* Made it possible to continue after a gfx exception.
852
853
8:29 PM
854
* Got fillrects to align perfectly now by forcing the coordinates to DWORD instead of float.
855
* Got rid of the floating point error in fillrects and scissor by adding 0.01f.
856
857
Saturday, 7/20/02 3:54 PM
858
* Made it so that texrects on copy mode will use full alpha but also have alpha compare.
859
* 0.250 released
860
861
11:51 PM
862
* Made it so that fillrects use the z-buffer as specified and not always update, no compare.
863
Banjo-Tooie fixed.
864
865
Sunday, 7/21/02 8:01 PM
866
* Fixed 12 PM clock bug, and added 24-hour clock option.
867
* Made a REAL error log.
868
* Fixed stats not showing up by redoing alpha compare for texrects.
869
* 0.253 released
870
871
* Took out if(!force_full_alpha) from alpha compare.
872
873
2:46 AM
874
* Added first part of S2DEX ucode; the obj_loadtxtr and bg_copy.
875
* Found out that uc2_bg and uc6_bgcopy were the exact same thing... I think F3DEX sorta
876
"borrowed" it. Set the F3DEX one to the S2DEX one.
877
878
Tuesday, 7/23/02 11:10 PM
879
* Added lots more to the S2DEX ucode, yoshi's story is now about as good as it can get. The
880
background uses framebuffer, so...
881
* Microcode switching should be ok now for the most part.
882
883
11:31
884
* Added combiner for WWF No Mercy rules.
885
* Allowed things to have negative viewport; MK mythologies fixed.
886
887
888
/*Gonetz*/
889
Friday, 10/18/02 12.40
890
I'm going to fix depth problem
891
* step 1. Added new coordinate to VERTEX - w. Replaced all .z and ->z by .w and ->w b/c old z is
892
actually w. Affected files:
893
rdp.h
894
Ucode00.h
895
ucode01.h
896
ucode02.h
897
ucode03.h
898
ucode04.h
899
ucode05.h
900
Debugger.cpp
901
Util.cpp
902
Tested. Nothing seems to be broken :)
903
* step 2. z coordinate is now calculated in all ucodes.
904
* step 3. using z for w buffer. z/w actually. Corrected all clipping functions.
905
Ops, does not work :( I forgot, z/w is in range (-1,1).
906
(z/w + 1)/2 does not work well either.
907
908
* Idea: use "screenZ=(z/w)*0x3fe0 + 0x3fe0" formula for z and Z buffer instead of W buffer.
909
Wow, it's work! Taz and Gex appears at last :) But some problem remains.
910
Some triangles are missing. I think it's b/c of z clipping
911
912
Saturday, 10/19/02 13.00
913
* Found stupid bug in clipping functions which is result of cut'n'paste editing.
914
Now picture is close to perfect. But some triangles are still missing,
915
for example water near castle in Mario64.
916
* Replaced all _z slot names by _w.
917
* Fixed z for texrect and fillrect. Strange, but primdepth does not work well for z -
918
DukeNukem64 has errors with it.
919
I use primdepth + 8, all works quite well now. Need to test it more.
920
921
23:15
922
* According to manual, correct formula for z is:
923
screenZ = 32*((z/w)*view_scale[2] + view_trans[2])
924
I use it now, nothing is changed, but may be some games use other value for
925
view_scale[2] and view_trans[2] then default 0x1ff
926
927
Sunday, 10/20/02 17.20
928
* Z clipping is finally fixed. I thought that z should be 0 after Z clipping,
929
but it actually must be clipped the same way as x and y.
930
Now all works perfect!!! Nokonec to, blin :)
931
932
* Added missing combines for Taz express and Road Rush
933
* 0.260
934
935
Tuesday, 10/22/02 20.20
936
* Started to implement ucode for Perfect Dark. I took info about it from Icepir8's plugin.
937
Changes:
938
ucode.h - new ucode
939
ucode07.h - vertex and tri4 implemented
940
ucode00.h - matrix. mask removed to be compatible with PD
941
rdp.h - tex_coord_addr added
942
rdp.cpp - rdp_reset, tex_coord_addr initialization
943
- rsp_reserved2, tex_coord_addr value
944
config.cpp - new ucode
945
946
Wednesday, 10/23/02 13.30
947
* new combines and tex modes added.
948
949
Thursday, 10/31/02
950
* Fixed Rayman2.
951
Changes:
952
ucode00.h - implemented gSPForceMatrix command in movemem. All 3FFFFF mask replaced by FFFFFF
953
ucode01.h - 3FFFFF mask in vertex replaced by FFFFFF
954
combine.cpp - implemented missed combines for Rayman2
955
956
957
Saturday, 11/9/02 15.30
958
* rdp_texrect(): float Z = 32704.0f replaced by float Z = 1.0f; That fixed onscreen
959
info in xg2.
960
* Fixed combine for Bug's life. Start menu background appears.
961
* Fixed uc2:modifyvtx. Main menu background in Bug's life appears
962
* Fixed constant depth processing in do_triangle_stuff(). Main menu in Bug's life works (somehow)
963
* Fixed combine for Bomberman2. Water is transparent now.
964
* Monsters poked through walls in DukeNukem64 was caused by depth bias level value.
965
Replaced depth bias level from 0x20 to 0x18.
966
No need of "rdp.prim_depth + 8.0f" hack in rdp_texrect() anymore.
967
968
* heap of new combines implemented
969
970
Saturday, 11/16/02
971
* Since z in N64 is in range [0, 32704], I decided to multiply it by 2.
972
It improves quality of depth buffer.
973
Changes:
974
Util.cpp - do_triangle_stuff()
975
Rdp.cpp - rdp_texrect()
976
977
Sunday, 11/17/02
978
* Added hacks in texrect and fillrect to avoid black screen in ZeldaMM
979
"Link meets princess Zelda" cut scene and in between days.
980
Changes:
981
Rdp.h - new flag
982
Rdp.cpp - hacks in rdp_texrect() and rdp_fillrect()
983
ucode06.h - hacks in uc6_bg_copy() and DrawImage()
984
985
Monday, 11/18/02
986
* Added hack into uc2:modifyvtx, (x,z). Tarzan is fixed
987
* new combines and tex modes added.
988
* Altered combine for flame in Zeldas. It looks good :) Redone similar combines.
989
990
991
Tuesday, 11/19/02
992
* Added new settings parameter - depth buffer mode.
993
User can choose either new Z-buffer mode or old W-buffer one.
994
W-buffer is useful in games, where Z-buffer causes poke-through artefacts.
995
996
997
I've got Dave2001's last version. Many things are not finished, but I inserted some of his fixes into current version:
998
* Made it so games only report ucode error only once.
999
* Backwards viewport needs backwards culling ;) fixed DKR Adventure 2 mode (mirrored tracks).
1000
I'm not sure about other ucodes, so I haven't changed the culling for them yet.
1001
* Oops, loadblock boundary check was in bytes instead of qwords. Xena problem fixed.
1002
* Fixed mod_tex_inter_col_using_col1; it was using a 32-bit color when it was really only 16-bit.
1003
This fixed the colors of the WWF No Mercy menus.
1004
1005
Saturday, 12/14/02
1006
* heap of new combines implemented
1007
1008
Sunday, 12/15/02
1009
* Fixed Banjo-Tooie.
1010
Changes:
1011
Rdp.cpp - rdp_texrect() - new hack
1012
rdp_fillrect() - old hack, removed by Dave2001 for some reason after 0.250
1013
* Fixed backgroung fire on level 23, Doom64
1014
I've modified alpha compare condition in Util.cpp
1015
* Changed Zelda MM hack in texrect.
1016
* implemented heap of new combines
1017
1018
1019
Wednesday, 12/18/02
1020
* Changed Zelda MM hack in texrect so it should not affect other games anymore. Konami logo is fixed in many games.
1021
* implemented new combines
1022
1023
Friday, 12/27/02
1024
* Removed perfect dark microcode from final version - need more work b4 release
1025
* 0.3
1026
1027
Wednesday, 01/07/03
1028
* Changed fillrect so it usses fillcolor allways, but it calculates it differently depending on cycle mode.
1029
I don't know why Dave2001 implemented so complex color transformation for this function,
1030
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
1031
normal fillcolor. Car selection screen in SF Rush is fixed.
1032
* Changed texrect - I force depth compare when primdepth is used. Car selection in SF Rush 2049 is fixed.
1033
1034
?
1035
* Changed fillrect again. Privious modification causes many gfx erorrs.
1036
* Added depth value check in texrect. Primdepth value can be too high.
1037
1038
Sunday, 01/19/03
1039
* Added new buffer swapping method which prevents flicker in Paper Mario (not everywhere yet).
1040
* Implemented many combiners for Paper Mario.
1041
1042
Friday, 01/31/03
1043
* Fixed uc0_moveword LIGHTCOL. n was calculated wrong.
1044
Background in "star soldier vanishing earth" fixed.
1045
1046
Saturday, 02/01/03
1047
* Implemented calls of GS2DEX ucode functions from F3DEX2 ucode.
1048
2D stuff in Bomberman 2 is fixed.
1049
* Changed uc6_obj_sprite so it uses combiner instead of just texture.
1050
Required for some objects in Bomberman 2
1051
1052
* 0.31
1053
1054
Wednesday, 02/12/03
1055
* Added new setting - ignore_short_dlist. It allows me to avoid weird bug in Tonic
1056
Trouble, when game get caught in an endless loop, drawing title screen.
1057
* Found an error in ini which was the reason why Dave's work for Yoshi Story caused an exception.
1058
F3DEX1 ucode which Yoshi uses in the begining, was mistakenly set to 6. Yoshi is
1059
working with last Dave's version now
1060
1061
1062
Thursday, 02/13/03
1063
* Moved Dave's code for Yoshi into current version. It works
1064
* 0.312
1065
1066
Friday, 02/14/03
1067
* Fixed uc6_obj_sprite so sprite can be translucent. It needed for Yoshi statistics screen.
1068
* Trying to fix garbage appeared on top of the screen in Yoshi. no results :(
1069
1070
Saturday, 02/15/03
1071
* While trying to fix topscreen garbage, I begin to understand, how the things work :)
1072
Texrect function copies texture into framebuffer(DRAM) instead of drawing it.
1073
Dave chose very strange and complex way to do it - he loaded texture, copied it's data
1074
into special texture buffer, and then copied it from that buffer into framebuffer.
1075
I have modified his code. I directly copy data from texture address into framebuffer adress.
1076
It's faster, more easy and less buggy :) But it does not fix topscreen garbage problem.
1077
This problem is solved somehow in PJ 1.5 plugin though.
1078
1079
Thursday, 02/27/03
1080
* Fixed DrawImage routine, so it works correct with scaled images. Zoom in Yoshi works
1081
* Implemeted uc6_obj_rectangle. Pokemon Puzzle League is almost playable now. But some textures are broken.
1082
1083
Saturday, 03/01/03
1084
* Worked on Pokemon puzzle league:
1085
Fixed DrawImage routine, so it can draw images with odd value of width and height.
1086
Added possibility to use combiners with backgrounds.
1087
(almost) no problems with background remained in this game.
1088
I need to solve problem with 8bit CI textures, wich became broken after loading of 32bit RGB textures.
1089
1090
Saturday, 03/08/03
1091
* Fixed rdp_loadtlut(), so it will not get off pallete array bounds.
1092
It fixes Inferno area in Banjo 2 and may be some other games.
1093
1094
Tuesday, 03/11/03
1095
* Finnaly found why CI textures became broken after 32bit texture load in PPL.
1096
It was a bug in uc6_obj_loadtxtr (). Dave forgot to set tile size there, so
1097
after 32bit texture load it was equal to 3, and all non 32bit textures was
1098
swapped wrong. Now all textures in PPL look correct, the game is almost playable :)
1099
1100
Wednesday, 03/12/03
1101
* Implemented loading of title screen in games which draw image before first ProcessDList
1102
(Rayman2, Tonic Trouble, Wave Race...) I found solution in sources of Rice's great plugin.
1103
1104
1105
Friday, 03/14/03
1106
* Fixed texture problem in PPL when it uses F3DEX 1 ucode!
1107
Tile's ul_s and lr_s coordinates were set to 0 by settilesize - 1 texel was clamped to all triangle.
1108
Solution: take ul_s and lr_s from next loadtile. It works!
1109
1110
Saturday, 03/15/03
1111
* Fixed bricks in 3D mode. Bricks use CI texture, and for some reason u and v coordinates
1112
of loaded vertex are two time bigger then they must be, when vertex uses CI.
1113
Solution: check format in uc0_texture() and change s_scale and t_scale for CI format
1114
1115
Sunday, 03/16/03
1116
* Implemented uc0_moveword() move_point. Cruise in USA works perfectly now!
1117
1118
Monday, 03/17/03
1119
* Fixed many bugs which causes an exception in PPL.
1120
* Added new special fix - wrap textures too big for tmem.
1121
It's Dave's old hack for trees in Zelda MM intro.
1122
It breaks texture in Zelda's N64 logo and may break other things,
1123
so I've made it optional
1124
1125
Tuesday, 03/18/03
1126
* Fixed candle's flame in Paper Mario - error in alpha combine
1127
* My fix for car selection screen in SF Rush 2049 breaks particle in Rayman.
1128
I don't know, how to make both things working :(
1129
Another special fix for SF Rush 2049 only
1130
1131
Wednesday, 03/19/03
1132
* Fixed pointer in Bust a Move 2! This game has the same problem with CI textures,
1133
as PPL, so fix for PPL fixes this game too :)
1134
1135
Saturday, 03/22/03
1136
* Implemented branch_z function for F3DEX 1 ucode. It's used in SF Rush.
1137
All texture problems in this game are fixed!
1138
* Added new special fix - "use depth compare for fillrect". Using depth compare
1139
in fillrect fixes car selection screen in SF Rush, and doing this much better,
1140
then my previous hack. This option changes N64 logo in Zeldas though, so it's
1141
off by default.
1142
1143
Sunday, 03/23/03
1144
* Fixed most of tecture errors in V-Rally 99. The same problem - too large u and v coordinates.
1145
This fix is a hack indeed. I'm tired of all that hacks, but I could not find,
1146
why vertex loaded incorrectly.
1147
And besides, all in-game statistics is missing :(
1148
1149
Monday, 03/17/03
1150
* I forgot to implement call of uc6_ldtx_rect_r from zelda ucode. That's why
1151
in-game statistics in V-Rally 99 was missing.
1152
1153
Wednesday, 03/26/03
1154
* Fixed combiners using in sprite commands. Combine() is not used if in "copy" mode
1155
V-Rally looks exactly as on N64.
1156
1157
Tuesday, 03/27/03
1158
* Allowed negative viewport for zelda ucode. Destruction Derby Professional Championship is fixed.
1159
1160
Saturday, 03/29/03
1161
* Fixed crc calculation for 8-bit color textures. Burning cars in Destruction Derby are burned :)
1162
1163
Monday, 04/07/03
1164
* Implemented TextureRectangleFlip - text in Wetrix fixed
1165
1166
Thursday, 04/10/03
1167
* Fixed uc6_obj_rectangle_r - text in Yoshi has correct size.
1168
* 0.4
1169
1170
Friday, 04/17/03
1171
* Fixed trail problem in Zelda OOT. Rice sent me an idea how it can be done.
1172
Actually it was already implemented by Dave, but values for depth bias level
1173
were incorrect.
1174
1175
Sunday, 04/19/03
1176
* Implemented Sprite2D microcode. Backgrounds in Silicon Valley are fixed
1177
Fixed primdepth loading. Billboard objects in Silicon Valley are fixed too.
1178
1179
Wednesday, 04/30/03
1180
* Fixed palette loading (load_palette). This fixed nemu in StarCraft. Yet again the solution (idea) was found
1181
in sources of Rice's plugin.
1182
*0.41
1183
1184
?
1185
* fixed compatibility of Zelda OOT MQ with 1964
1186
1187
Sunday, 05/18/03
1188
* Added hack for sun in zeldas.
1189
1190
Wednesday, 05/21/03
1191
* Implemented palette loading in Sprite2D microcode and fixed many things in it.
1192
2D stuff in wipeout works.
1193
1194
Tuesday, 06/03/03
1195
*New hack in texrect to remove black screen in Sin and Punishment
1196
1197
1198
Thursday, 06/05/03
1199
* fixed uc1_line3d - map in Doom64
1200
* changed blender mode for fillrect - sky in Doom64
1201
* fixed combiners for walls and weapons in Doom64
1202
1203
Saturday, 06/07/03
1204
* changed texture mods for CI textures. I'm changing palette before texture loading
1205
instead of modifying already loaded texture. This is more faster and more precise.
1206
1207
Sunday, 06/08/03
1208
* added new hotkey - texture filtering mode can be changed during gameplay by
1209
pressing BACKSPACE. This is Raziel64's idea.
1210
1211
* Implemented frame buffer emulation. I use 2 pass approach. First pass - detect frame buffer usage - very fast.
1212
Second pass - normal display list processing, but with knowledge how frame buffers will be used.
1213
1214
* Added ExtendedPlay's Banshee hack.
1215
1216
* Added "special game settings" section in the ini
1217
1218
* New hotkeys for motion blur and read always
1219
1220
* Many other fixes
1221
1222
* New configuration dialog, based on property sheets
1223
1224
V. 05
1225
1226
* Fixed ucode for Perfect Dark. It works without glitches now
1227
1228
* Added support for Jet Force Gemini and Mickey's Speedway into Diddy's ucode.
1229
1230
* Added partial yuv textures support. I failed to decode them with the method described in the manual - something wrong with the coefficients.
1231
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.
1232
1233
* Implemented new frame buffer related functions - FBRead and FBWrite. FBRead could help to emulate frame buffer effect which previously required
1234
"read always" option. FBWrite makes Dr.Mario playable
1235
1236
* Implemented hardware texture emulation. Huge and hard work.
1237
1238
* Failed to do correct fog emulation. I tried to use fogcoord extension, like in Orkin's plugin. It works, but fog is not smooth.
1239
1240
* Added large texture support for sprite microcode
1241
1242
* Fixed texrect_flip
1243
1244
* Changes in the configuration dialog
1245
1246
v. 07 SP8
1247
1248
- New version
1249
1250
* I have switched to RGBA color format. This format is used by N64 itself.
1251
I can't understand, why Dave decided to use ARGB. With RGBA I don't need
1252
to do color conversions, and everything is more simple. Besides, OpenGL also uses
1253
RGBA format only, so port to OpenGL will be more simple.
1254
1255
* I've made another attempt to implement fog via fog coord extension.
1256
This time I set fog coord after all clipping. It still not perfect for clipped surfaces
1257
but no major glitches this time. I decided to use it.
1258
1259
* I have found why kicked out fighter in Super Smash Bros has black rectangle bourder.
1260
This black rectangle have to be rendered into the depth buffer. Weird thing.
1261
I've made check that texrect will not be drawn if current color buffer is depth buffer.
1262
This problem is fixed.
1263
1264
* I have found that walls in Perfect Dark are incorrect again. That was caused by my
1265
hack in the combiner for car setup in Top Gear Rally. I have corrected this hack.
1266
It does not use LOD if mipmap_level is the same as current_texture.
1267
1268
* I have implemented depth buffer render. Of course, it takes a lot of CPU time.
1269
But I found fast algorithm with fixed point arithmetics, so I can run some
1270
games fullspeed even on my 1ghz Celeron.
1271
1272
* Hacktarux suggested me to use N64 format for z value, so Glide will loose
1273
precision on the same place as N64 itself. I finally understood what he ment,
1274
and implemented it. Well, all old poke-through problems with z-buffer are gone,
1275
but new one appeared. This method does not work. But I noticed, that conversion
1276
from my z to N64 z is not linear. It gives enough precision for large z
1277
at the cost of loosing precision with small z. I decided to use floated point
1278
z conversion which works similary - (z/65535)*z*2. Great! No problems with close
1279
objects and much less problems with far ones. After that I have removed w-buffer mode
1280
entirely. It's not compatible with fog-coord anyway. I also removed old fog algorithm.
1281
1282
* Implemented 32bit frame buffer support (convert 16bit glide frame buffer into 32bit N64 ones).
1283
1284
* Fixed frame buffer effects detection algorithm to support rear-view mirror in Roadsters.
1285
Later I found how to make it working without fb support - just remove corresponding texrects.
1286
Rear-view mirror now works full speed on any videocard.
1287
1288
Monday, 27 Dec 04
1289
* Fixed grid in Mario Golf. The error appeared after rewriting of modifyvtx function. It was caused by
1290
unset x,y and zsrc is on.
1291
1292
Tuesday, 28 Dec 04
1293
* Fixed combiner for road in Zelda OOT.
1294
* My ZtoN64Z causes problems for small z. As result text in Tigger Honey Hunt is disappeared.
1295
Tuned ZtoN64Z so it does not transform small z now. Not sure, it can cause other problems.
1296
* Added new hack - increase texrect size. Rice uses similar hack to fix new tetris and mega man 64.
1297
The new tetris is fully playable now with texture coordinate fix.
1298
1299
Sunday, 02 Jan 2005
1300
* Added prim_depth using in fillrect.
1301
1302
Tuesday, 04 Jan 05
1303
* Rewrited fog again
1304
* Implemented special fog mode, when object is not fogged, but became transparent instead.
1305
1306
Wednesday, 05 Jan 2005
1307
* Fixed depth buffer clear in fillrect.
1308
* Removed depth compare hack from fillrect
1309
* Fixed out of range bug in depth render.
1310
1311
Sunday, 16 Jan 2005
1312
* Fixed depth problem in Destruction Derby. Maximum depth value must be <= 65534
1313
* Fixed depth problem in sprite microcode - z conversion must not be used in set_sprite_combine_mode.
1314
* Fixed color combiner for fire electric pen.
1315
* Fixed fog when fog multiplier is negative.
1316
* Added combiners for Paper Mario
1317
* Fixed texcoord hack for Polaris Snow Cross
1318
1319
Monday, 17 Jan 2005
1320
* Added combiners for Paper Mario
1321
1322
Tuesday, 18 Jan 2005
1323
* Fixed text in Doraemon - Mittsu no Seireiseki. This is the second game, which uses CPU frame buffer writes.
1324
* Added dithred alpha support. I found 2 undocumented Glide functions: grStippleMode and grStipplePattern.
1325
They work almost the same as similar functions in OpenGl. Dithred alpha test is used in Mario64, and now
1326
it works very good.
1327
1328
Thursday, 20 Jan 2005
1329
* Added per-pixel LOD calculation. It was quite hard to get decent result. Peach/Bowser portrait's transition
1330
in Mario64 works fine, Perfect Dark is acceptable too. Only Utils.cpp is changed.
1331
1332
Friday, 21 Jan 2005
1333
* Added LOD option to the configuration panel
1334
* Added missing tooltips
1335
* Added stipple options to ini file.
1336
1337
1338
22-30 Jan 2005
1339
* RE2. fix in DrawImage.
1340
* RE2. depth buffer render to video memory to fix depth problem. Slow
1341
* RE2. Found how movies work. 2 mode implemented - stretched and in the native resoluton.
1342
* RE2. Added depth buffer render via HWFBE. Fast and perfect.
1343
* Fixed depth problem with prim depth.
1344
* Fixed depth problem with texrects which uses prim depth - depth write must be off while depth compare must be on.
1345
* Fixed some combiners.
1346
1347
Tuesday, 1 Feb 2005
1348
* !Changed rdp_loadblock. texture image address will not changed if lr_s is 0. This fixes Twisted Edge Extreme Snowboarding
1349
background.
1350
1351
Thursday, 3 Feb 2005
1352
* Added hack for backgrounds in WCW Nitro.
1353
* Removed zelda hack from DrawImage. WCW Nitro backgrounds did not work because of this hack.
1354
* Added hack for texture generation in Chopper Attack. This hack was used for all games and this caused one glitch in
1355
Super Mario, so I made it optional.
1356
* Fixed partially Horisont Scaner in Perfect Dark. Glitch was caused by one option on texrect, which prevents to draw
1357
texrects wich use previous frame as texture. For Horisont Scaner the same color buffer is used each frame (strange).
1358
* Added missing combiner for Perfect Dark.
1359
1360
Friday, 4 Feb 2005
1361
* Added GUI option "Show RE2 videos in native resolution"
1362
* Fixed videos crash with PJ64. For some reason first frame has height > 256, so I had write above bounds here.
1363
* Implemented several combiners for Paper Mario and Tony Hawk.
1364
1365
Tuesday, 8 Feb 2005
1366
* Fixed "Tidal wave" in Paper Mario. It's quite complex frame buffer effect, many things were changed in FB emulation.
1367
It still has problem with HWFBE.
1368
1369
Wednesday, 9 Feb 2005
1370
* Fixed (rather hacked) viewport problem in RE2.
1371
1372
12-13 Feb 2005
1373
* Added suport for cloaking effect in Perfect Dark. It was hard - the game may use about 30 auxilary frame buffers here.
1374
New frame buffer type was added - aux_copy. HWFBE does not work correct here.
1375
1376
Monday, 14 Feb 2005
1377
* Source cleaning.
1378
1379
Tuesday, 15 Feb 2005
1380
* More source cleaning
1381
* Fixed combiner for boost mode in Beetle Adventure Racing.
1382
1383
1384
1385
23-27 Feb 2005
1386
* A lot of changes in fb emulation and in HWFBE. Tidal wave in Paper Mario, cloaking effect and motion blur in Perfect Dark,
1387
replay in 1080...
1388
1389
1 Apr 2005
1390
* Paper Mario intro. There is a kind of fb effect. I have changed main ci height calculation in fb_setcolorimage and
1391
in rdp_setcolorimage to make it working.
1392
* Paper Mario intro. Added a hack into blender to remove weird texrect when bowser throw up flame.
1393
1394
1395
1396
These changes were originally not mentioned here:
1397
Glide64 Wonder and Wonder Plus
1398
* April 2005 to November 2005
1399
1400
glide64-wonder+-linux
1401
* unknown
1402
1403
glide64-wonder+-linux v10
1404
* March 2007
1405
1406
glide64-wonder+-linux v11
1407
* April 2007
1408
1409
glide64-wonder+-linux v12
1410
* May 2007
1411
1412
1413
1414
Glide64-amd64 v0.9
1415
* forked from glide64-wonder+-linux v12
1416
* Ported all GCC and nasm assembler to AMD64 and corrected various other 64 Bit portability problems
1417
-- 2008-02-01 Günther <[email protected]>
1418
1419