What's new

Rice's Plugin Source <discussion>

Enzo Dragon

STFU, NAVI
So we've got this AWESOME source code just sitting around, and we have a bunch of people constantly asking for features (like adjust of aspect ratio, for example).

If I'm not mistaken, Rice has already stated that he's done with his plug-in, and that he'd like someone to pick up where he left off. Is anyone planning to do anything with this code? I lack the programming knowledge, or I'd certainly pick it up.
 

mudlord

Banned
I'm personally interested in improving the OpenGL side of the plugin, problem is, it requires VS2005 to compile, which I don't have currently. (and I tried the Express edition, but it won't compile with that....)...I remember doing a patch to fix those tooltips, but I couldnt't compile it in (due to me lacking the suitable compiler set..)..
 

Sirmatto

Member
I think the first step is to make the plugin compilable with GCC/Mingw and also maybe cross platform. This would make it more tempting for Linux developers to join in.
 

Doomulation

?????????????????????????
How exactly does it require 2005 to compile? Perhaps some small modifications will make it compile on other platforms as well.
 

mudlord

Banned
How exactly does it require 2005 to compile? Perhaps some small modifications will make it compile on other platforms as well.

For instance, for me, when I try to load the project workspace in VS.NET 2003, it comes up with a error regarding VS8.0 is needed for opening the workspace (and VS.80 is VS2005). And, I get massive loads of compile errors when I use the Express Edition of VC2005 (possibly due to the lack of include/LIB files, but I'm using the Platform SDK and DX9 SDK....)
 

Sirmatto

Member
I think the first thing is to convert the VC project file into a makefile. From there, it will be a lot easier to remove VC dependencies and get it to compile with GCC, then cross platform can be achieved.
 

Doomulation

?????????????????????????
For instance, for me, when I try to load the project workspace in VS.NET 2003, it comes up with a error regarding VS8.0 is needed for opening the workspace (and VS.80 is VS2005). And, I get massive loads of compile errors when I use the Express Edition of VC2005 (possibly due to the lack of include/LIB files, but I'm using the Platform SDK and DX9 SDK....)

You can easily bypass that by changing the "version" in the project file. Then open it in earlier versions.
 

Shin_Gouki

New member
programming?
i bet a lot of people here have the knowloedge ( coding related) to code an emulator. Thr problem whenu code an emuluator is not in th first place coding (language, ide etc..) .
It is infact knowledge about the source platform. An the N64 is quite complicated...

wbr Shin Gouki
 

mudlord

Banned
You can easily bypass that by changing the "version" in the project file. Then open it in earlier versions.

Oh, never thought of that....Thanks for the info! :)

EDIT: Opening the project file works after that hacking. Also, I found out that Rice left a VS.NET 2003 project file, which saves me doing that...Which solves almost all the issues. Except for the BMGLibPNG.dll's source code (I did find the sources to BMGLib, though)

EDIT 2: Nevermind...BMGLibPNG's source is included with BMGLib......
 
Last edited:

mudlord

Banned
Okay, so now I ran into some issues with DirectX (of all things....)

Here's my compile log..Note that my current modifications only affect Config.cpp:

Compiling...
stdafx.cpp
Compiling...
RSP_S2DEX.cpp
RSP_Parser.cpp
OGLGraphicsContext.cpp
DXGraphicsContext.cpp
DXGraphicsContext.cpp(1933) : error C2660: 'ID3DXFont::DrawTextA' : function does not take 6 arguments
DXGraphicsContext.cpp(1940) : error C2660: 'ID3DXFont::DrawTextA' : function does not take 6 arguments
DXGraphicsContext.cpp(1947) : error C2660: 'ID3DXFont::DrawTextA' : function does not take 6 arguments
RenderTexture.cpp
GraphicsContext.cpp
FrameBufferDX.cpp
FrameBuffer.cpp
DeviceBuilder.cpp
OGLRenderExt.cpp
OGLRender.cpp
OGLExtRender.cpp
D3DRenderExt.cpp
D3DRenderExt.cpp(51) : error C2660: 'ID3DXSprite::Draw' : function does not take 5 arguments
D3DRenderExt.cpp(229) : error C2065: 'D3DXSPRITE_DONOTMODIFY_RENDERSTATE' : undeclared identifier
D3DRenderExt.cpp(229) : error C2065: 'D3DXSPRITE_DONOTSAVESTATE' : undeclared identifier
D3DRenderExt.cpp(229) : error C2660: 'ID3DXSprite::Begin' : function does not take 1 arguments
D3DRender.cpp
VertexShader.cpp
VertexClipper.cpp
RenderExt.cpp
RenderBase.cpp
Render.cpp
OGLFragmentShaders.cpp
Generating Code...
Compiling...
OGLExtCombiner.cpp
OGLDecodedMux.cpp
OGLCombinerTNT2.cpp
OGLCombinerNV.cpp
OGLCombiner.cpp
DirectXDecodedMux.cpp
DirectXCombinerVariants.cpp
DirectXCombiner.cpp
DirectXBlender.cpp
CNvTNTDirectXCombiner.cpp
GeneralCombiner.cpp
DecodedMux.cpp
CombinerTable.cpp
Combiner.cpp
CNvTNTCombiner.cpp
blender.cpp
OGLTexture.cpp
DirectXTexture.cpp
TextureManager.cpp
TextureFilters_hq4x.cpp
Generating Code...
Compiling...
TextureFilters_hq2x.cpp
TextureFilters_2xsai.cpp
TextureFilters.cpp
Texture.cpp
ConvertImage16.cpp
ConvertImage.cpp
Debugger.cpp
Video.cpp
Config.cpp
Generating Code...


---------------------------------------
It appears there is a problem with the D3DX libs...Is there any chance of downloading these updated D3DX9 headers and libs without downloading a whole download of the DX9 SDK (which is way too much for me to download)?

EDIT: Nevermind...Downloading the October 2005 release of the DX9 SDK...Seems that the recent ones have doubled in size (which is my main concern, as 500MB seems a bit much...)
 
Last edited:

mudlord

Banned
Okay, so I managed to get the whole thing to compile correctly..Only problem now (and a very weird one) is that no graphics are shown..On either renderer (DirectX or OpenGL...

here's the attached plugin and updated BMGLib to prove it... No modifications were made to the source at all when I compiled it.
 

Sirmatto

Member
Okay, so I managed to get the whole thing to compile correctly..Only problem now (and a very weird one) is that no graphics are shown..On either renderer (DirectX or OpenGL...

here's the attached plugin and updated BMGLib to prove it... No modifications were made to the source at all when I compiled it.

Maybe he used an older version of the library? Although newer libraries shouldn't break compatibility, you never know. Maybe we can coax Rice into popping in and giving a few pointers on how to build this.
 
OP
Enzo Dragon

Enzo Dragon

STFU, NAVI
Aye. We really should be asking Rice about this. He said he wanted people building on his code, but there's not much we can do if none of us know how to compile it correctly.
 

mudlord

Banned
I managed to solve those issues (graphics now work as they should). It appears Visual Studio.NET 2003's C/C++ compiler compiled broken code..Updating to Visual Studio 2005 Professional completely fixes it (however, there was some deprecation warnings, but still works like it should)..
 

Cyberman

Moderator
Moderator
has anyone attempted to migrate it to cygwin et all? I haven't used MS compilors for a long time. I was quite jaded by VC 5.0 then I bought VC++7 ... argh what a pain.

Cyb
 
OP
Enzo Dragon

Enzo Dragon

STFU, NAVI
You should upload the binary, mudlord, if it's working correctly, and the source.

It'd be sweet if someone could migrate this crap to other libraries. =/
 

Sirmatto

Member
has anyone attempted to migrate it to cygwin et all? I haven't used MS compilors for a long time. I was quite jaded by VC 5.0 then I bought VC++7 ... argh what a pain.

Cyb

I tried to do a quick compile with MSYS+Mingw and got more errors than you can shake a stick at, although I'm sure a good chunk of them are from the fact that my DirectX headers and libraries aren't set up correctly.
 

Doomulation

?????????????????????????
If there's any asm in there, then be careful. Because there's not even a standard at how asm is interpreted. In Microsoft's and Intel's way, it's "mov dest, source", but mingw does it the other way, I believe: "mov src, dest"
Beware!
 
OP
Enzo Dragon

Enzo Dragon

STFU, NAVI
If there's any asm in there, then be careful. Because there's not even a standard at how asm is interpreted. In Microsoft's and Intel's way, it's "mov dest, source", but mingw does it the other way, I believe: "mov src, dest"
Beware!
That's straight retarded. I'd go as far as to say that that is bad for the industry, and drives a $%^#ing monopoly.

Fascists!
 

Top