What's new

Z64 - a LLE graphics plugin

Sri Narayan

New member
for the linux user here is the diff for r5-release this should also compile on freebsd (if there is no #include <malloc.h> in the sourcecode didn't check this)


ciu
 

Doomulation

?????????????????????????
I have good news...
I got ahold of newer drivers (for some reason, the latest drivers weren't on the publisher's download page, pfft) and now we got progress!
The test tool reports the 4 first tests succeed, but the last one still fails.
The plugin now works, but I get an ASSERT pretty quick. I tried the "normal" latest version.

A screenie for you:


If I keep ignoring, eventually I get a crash. Log files are empty, though.
 
OP
Z

ziggy

New member
Good new, have you tried the version R5 on the first post of this thread ?

The test that fails in gltest , which is it ? Is it non power of two textures ? That would explain the crash you get in z64 ... Also could you test the various versions I posted earlier (z64-p2, nodepthtex, noalpha)
 
Last edited:

Flash

Technomage
I can't compile r5 :
[flash@stardome z64-r5]$ make
g++ -g -DGCC -DUSE_GTK `sdl-config --cflags` `pkg-config gtk+-2.0 --cflags` -D_GTK2 -I/include `freetype-config --cflags` -I/usr/include/FTGL -O2 -mtune=athlon-xp -ffast-math -funroll-loops -m3dnow -mmmx -msse -mfpmath=sse -fomit-frame-pointer rdp-mess.cpp -c -o rdp-mess.o
rdp-mess.cpp:29:1: warning: "rdram" redefined
In file included from rdp-mess.cpp:9:
Gfx #1.3.h:116:1: warning: this is the location of the previous definition
rdp-mess.cpp:31:1: warning: "rsp_imem" redefined
Gfx #1.3.h:117:1: warning: this is the location of the previous definition
rdp-mess.cpp:33:1: warning: "rsp_dmem" redefined
Gfx #1.3.h:118:1: warning: this is the location of the previous definition
rdp-mess.cpp:37:1: warning: "vi_origin" redefined
Gfx #1.3.h:119:1: warning: this is the location of the previous definition
rdp-mess.cpp:39:1: warning: "vi_width" redefined
Gfx #1.3.h:120:1: warning: this is the location of the previous definition
rdp-mess.cpp:41:1: warning: "vi_control" redefined
Gfx #1.3.h:121:1: warning: this is the location of the previous definition
rdp-mess.cpp:44:1: warning: "dp_start" redefined
Gfx #1.3.h:123:1: warning: this is the location of the previous definition
rdp-mess.cpp:46:1: warning: "dp_end" redefined
Gfx #1.3.h:124:1: warning: this is the location of the previous definition
rdp-mess.cpp:48:1: warning: "dp_current" redefined
Gfx #1.3.h:125:1: warning: this is the location of the previous definition
rdp-mess.cpp:50:1: warning: "dp_status" redefined
Gfx #1.3.h:126:1: warning: this is the location of the previous definition
rdp-mess.cpp:1083:1: warning: "TEXTURE_PIPELINE" redefined
rdp-mess.cpp:1025:1: warning: this is the location of the previous definition
g++ -g -DGCC -DUSE_GTK `sdl-config --cflags` `pkg-config gtk+-2.0 --cflags` -D_GTK2 -I/include `freetype-config --cflags` -I/usr/include/FTGL -O2 -mtune=athlon-xp -ffast-math -funroll-loops -m3dnow -mmmx -msse -mfpmath=sse -fomit-frame-pointer disasm.cpp -c -o disasm.o
g++ -g -DGCC -DUSE_GTK `sdl-config --cflags` `pkg-config gtk+-2.0 --cflags` -D_GTK2 -I/include `freetype-config --cflags` -I/usr/include/FTGL -O2 -mtune=athlon-xp -ffast-math -funroll-loops -m3dnow -mmmx -msse -mfpmath=sse -fomit-frame-pointer main.cpp -c -o main.o
g++ `pkg-config gtk+-2.0 --libs` -o z64.so rdp-mess.o disasm.o main.o -g -rdynamic -lGL -lGLU -L/usr/X11R6/lib -lglui -lglut `freetype-config --libs` -lftgl `sdl-config --libs` -lz -fomit-frame-pointer -shared -Wl,-Bsymbolic
/usr/bin/ld: warning: creating a DT_TEXTREL in a shared object.
g++ -g -DGCC -DUSE_GTK `sdl-config --cflags` `pkg-config gtk+-2.0 --cflags` -D_GTK2 -I/include `freetype-config --cflags` -I/usr/include/FTGL -O2 -mtune=athlon-xp -ffast-math -funroll-loops -m3dnow -mmmx -msse -mfpmath=sse -fomit-frame-pointer rsp.cpp -c -o rsp.o
rsp.cpp: In function `UINT32 get_cop0_reg(RSP_REGS&, int)':
rsp.cpp:167: error: `exit' was not declared in this scope
rsp.cpp: In function `void set_cop0_reg(RSP_REGS&, int, UINT32)':
rsp.cpp:183: error: `exit' was not declared in this scope
rsp.cpp: In function `void unimplemented_opcode(UINT32)':
rsp.cpp:227: error: `exit' was not declared in this scope
rsp.cpp: In function `void rsp_init(RSP_INFO)':
rsp.cpp:278: error: `memset' was not declared in this scope
rsp.cpp: In function `void handle_lwc2(RSP_REGS&, UINT32)':
rsp.cpp:535: error: `exit' was not declared in this scope
rsp.cpp:537: error: `exit' was not declared in this scope
rsp.cpp:542: error: `exit' was not declared in this scope
rsp.cpp:566: error: `exit' was not declared in this scope
rsp.cpp:596: error: `exit' was not declared in this scope
rsp.cpp: In function `void handle_swc2(RSP_REGS&, UINT32)':
rsp.cpp:896: error: `exit' was not declared in this scope
rsp.cpp:900: error: `exit' was not declared in this scope
rsp.cpp: In function `void handle_vector_ops(RSP_REGS&, UINT32)':
rsp.cpp:1700: error: `exit' was not declared in this scope
rsp.cpp: In function `void sp_dma(int)':
rsp.cpp:2931: error: `exit' was not declared in this scope
make: *** [rsp.o] Error 1
 

Gonetz

Plugin Developer (GlideN64)
OMG!!! Open-source LLE video plugin!! My dream comes true :D
I haven’t tested it yet, but as I see on screenshots, it really can do some stuff, which HLE plugins currently can’t, e.g. GE sky. I hope it can help me with reverse engineering of these problems. Good luck with your work, ziggy!
 
OP
Z

ziggy

New member
Flash : add this line in rsp.h :

#include <stdlib.h>

Gonetz : hey thanks :) Indeed I think it could be very useful for HLE plugin developpers, what more, there's an embedded debugger. Unfortunatly at the moment it's using SDL so it works only in the linux version , but it should be easy to port to Win32, the SDL part is just to read keyboard and mouse.
 

PsyMan

Just Another Wacko ;)
OK. The depth issue when switching between window and fullscreen is fixed.

However, the depth issue on Mario 64 is still there (same on R6):
attachment.php


Only the version with disabled FBO made Mario 64 look correct. It's wrong on every other "fast" version. I didn't actually have the patience to check if it happened with the "slow" versions.
 

Doomulation

?????????????????????????
Good new, have you tried the version R5 on the first post of this thread ?

The test that fails in gltest , which is it ? Is it non power of two textures ? That would explain the crash you get in z64 ... Also could you test the various versions I posted earlier (z64-p2, nodepthtex, noalpha)

Yes, the power of two test fails. Also, now I would test Windows XP. Although, initial wrapper tests shows power of two textures are still not supported here either. I will take a moment to make sure all drivers and software are up-to-date, however.

I'll test Vista later.

EDIT: With Windows XP, z64 plugin (R6) & z64 RSP, speed is average 30 VI/s. With PJ64/Z64, it's around 40-45 VI/s.
However, just a little while after the intro in Banjo-Kazooie, speed drops to <= 1 VI/s.
 
Last edited:
OP
Z

ziggy

New member
Another release (R7) that should fix the other depth issue on ATI cards. It was a depth bias issue (similar to the one in the glide wrapper by the way). Now depth bias will be identical for all cards, however it's not yet perfectly tuned.
 

firefox

New member
my video card (ATI x1900GT) fails the "non power-of-two texture support" test, and all the emus i've tried crash with your plugin with all possible combinations.
i'm under win XP
 
Last edited:

Sri Narayan

New member
does anybody have noticed that sm64 us version destroys the emu? (v5,6 linux)

(edit) z64bench:

Code:
test #00 17.4144
test #01 36.5143
test #02 36.6146
test #03 36.5487
test #04 36.5705
test #05 36.5797
test #06 36.5371
test #07 37.0084
test #08 36.9962
test #09 17.4388
test #10 91.0377
test #11 36.5445

Not that bad with my stone age video card. :p

ciu
 
Last edited:

PsyMan

Just Another Wacko ;)
Depth issues seem finally fixed on R7. Nice. :)

Regarding the major fps drop on some games... I noticed two occasions of the fps dropping at ~1fps on the same spot (or near the same spot). Here they are:

GoldenEye 007: If you shoot a bullet on a wall (and make a hole) from near distance some smoke comes out from the hole. The smoke results in major slowdown. (check attached pic)
Getting near an enemy also results in major slowdown.

Chameleon Twist: Major slowdowns occur when specific plants are drawn on the screen (check attached pics). This specific spot is from the first stage of the game (at the very beginning).
 

SWAT_Marc

Ind. Design Student
The smoke results in major slowdown. (check attached pic)

I don't know if that's related to the N64 hardware or the code for that smoke, but having lot of smoke in GoldenEye and PerfectDark caused BIG slowdowns in N64 real console playing.
 
OP
Z

ziggy

New member
Thanks PsyMan, that should help a lot to find the problem. I'm having a problem with Mupen64 to boot Chameleon Twise (the game complains about the Rumble Pack malfunctionning), would you have a saved snapshot of the game so that I can skip this check ?
 

PsyMan

Just Another Wacko ;)
ziggy: Just remove the memory pack (from the input plugin configuration). ;)

SWAT_Marc: You're right, but this is smoke from a single bullet (no explosion or or other "heavy" stuff). Plus, the speed drops to less than 1fps as the smoke fades out.

As a side note, my ATi x600 also fails the "non power-of-two texture support" ogl test.
 
OP
Z

ziggy

New member
Ah, my bad, I had removed the memory pack, but only from the first controller, forgot the second one :) Ok, so, the impression I get is that the problem is with non power of two textures. The plants as well as the smoke are using textures of that type (for example the smoke has a texture with 56 as width)

The solution is to use another extension, it's called texture_rectangle, it's more limited and a bit a pain to use, but it's probably supported. Could you check wheither you have this extension ? EDIT : there might be several texture_rectangle extension, the best would be ARB_texture_rectangle, but also tell me if you have other ones.
 
Last edited:
OP
Z

ziggy

New member
Ok, R8 is out , hopefully fix this slowness issue related to non power of two textures and certain use of clamping mode on ATI.
 

Top