What's new

Rice's Plugin Source <discussion>

mudlord

Banned
Yes, it depends on the emulator itself, as well as the RSP plugin. A timing issue with MusyX, which is what this game uses for compressed sound, causes the speech glitches. It also causes glitches in some other games. To a degree, most of these errors are fixed in the current Mupen64 and PJ64 builds (private beta).
 

The Siskoo

Member
Yes, it depends on the emulator itself, as well as the RSP plugin. A timing issue with MusyX, which is what this game uses for compressed sound, causes the speech glitches. It also causes glitches in some other games. To a degree, most of these errors are fixed in the current Mupen64 and PJ64 builds (private beta).
Okay thanks again to explain this :) I'm not confortable with all technical stuff ^^
I prefer to test with 1964 0.9.9. 'Cause I was a 0.9.9 beta tester, and I know this emulator. Mupen seems a nice emu too. I try to give the better compatibility ini to 1964. About PJ64 1.7, I don't know, I'm not a beta tester.
 
Last edited:

mudlord

Banned
I prefer to test with 1964 0.9.9. 'Cause I was a 0.9.9 beta tester, and I know this emulator. Mupen seems a nice emu too. I try to give the better compatibility ini to 1964.

Ah I see, best keep to your strengths. I think I might let Jabo know of these RE2 bugs, to see if he can fix them in the beta...
 

The Siskoo

Member
I was interested to be beta testing PJ64, but donations are down ^^ I like beta testing (Satourne, Saturnin, Nestopia,...).
 

mudlord

Banned
Kool!

Anyways, can you test this config pls?

Code:
{134d9d76fe3f23da-45}
Name=DR.MARIO 64
AccurateTextureMapping=1
FastTextureCRC=1
NormalAlphaBlender=2
NormalColorCombiner=1
TexRectScaleHack
FrameBufferEmulation=10
RenderToTexture=3
ScreenUpdateSetting=5
 

jackschmidt

EmuTalker
I haven't confirmed this but I'm having doubts with this being a breakthrough. I think UsedUcodes is just a stack of ucodes used during the game session.

Means, this one only saves the ucode data extracted and does nothing else. I'm going to test it on Super Mario 64 to see if I get similar results.

I haven't posted for a while. Been extremely busy with different stuff and I don't see myself making time for this yet, but I ran a test and it does confirm my fears.

Code:
Video::ProcessDListStep2
RSP::DLParser_Process
RDP::ExtractedUcode: 0
RDP::New ucode has been detected:
RSP SW Version: 2.0D, 04-01-96, ucode=0RDP_SetUcodeMap - ucode: 0

This is from Super Mario 64. That means this part of the code is really just nabbing the ucodes as they come. And hence, this isn't where the problem is. At least I don't think so.
 

The Siskoo

Member
Emulator : 1964 0.9.9
Plugins : Mudlord's Rice Video Build (Stable) - VC6

Bakuretsu Muteki Bangaioh (J) [!] --> Big problem in game. FPS decrease and that's unplayable.
 

Cyberman

Moderator
Moderator
Emulator : 1964 0.9.9
Plugins : Mudlord's Rice Video Build (Stable) - VC6

Bakuretsu Muteki Bangaioh (J) [!] --> Big problem in game. FPS decrease and that's unplayable.
So... do you know if this is the plugin or emulation?
Is this different from other plugins (Rice or otherwise) performance with the same game?

Please be specific, it's very helpful IE if it normally is slow in said game, it MAY be something to do with the video plugin.

Mudlord
On a seperate subject how about a dummy mode for the plugin? IE it just displays what it's being told (IE status information), to do. This can eliminate slowdowns as being a problem with the plugin.
Or I could see if I can make an intermediating plugin that runs the other plugin (clear as mud right?) and logs statistics (FPS and performance information).

Erstwhile it's a busy weekedn BLEAH! I hate consultant work! :)

Cyb
 

The Siskoo

Member
So... do you know if this is the plugin or emulation?
Is this different from other plugins (Rice or otherwise) performance with the same game?

Please be specific, it's very helpful IE if it normally is slow in said game, it MAY be something to do with the video plugin.

The problem comes from the plugin. With Ziggy, that's "perfect". ^^
What is IE (guess it's not Internet Explorer ^^) ?
 

mudlord

Banned
I haven't posted for a while. Been extremely busy with different stuff and I don't see myself making time for this yet, but I ran a test and it does confirm my fears.

Its okay, I've been busy too (been at a university seminar this weekend, and having celebrations due to my very high academic grades I got awarded for last semester). Have you been poking around the ucode handling headers by any chance? I might have a looksee too, in the RDP/RSP handling, to see how they are done. I really should invest in time to spend more with this too. Atm, its all just been in my spare time, really, which I had little off this last week, due to Real Life(tm).

Mudlord
On a seperate subject how about a dummy mode for the plugin? IE it just displays what it's being told (IE status information), to do. This can eliminate slowdowns as being a problem with the plugin.
Or I could see if I can make an intermediating plugin that runs the other plugin (clear as mud right?) and logs statistics (FPS and performance information).

Erstwhile it's a busy weekedn BLEAH! I hate consultant work!

Well, there already is a OCD for DList, FPS, and other core information =] , maybe a log based on that?:unsure:

Stats logging, I should have done ages ago, but never got around to :saddam:
I should look into a proper log too, but I had that planned and it not quite made it in. I'm hoping to make a real update 10, when your "idea" has been finished :king: , though. I might add the logs in the later RC's (I think there will be quite a few more till the big 10)
 

The Siskoo

Member
Emulator : 1964 0.9.9
Plugins : Mudlord's Rice Video VC6

Battlezone - Rise of the Black Dogs (U) [!] --> GFX problems (remanence ?!?)(pic 1)
 

dartdude6

Mmm... Retextures....
When someone starts with the source code, can someone please put in a way to import/export character models?
 

jackschmidt

EmuTalker
Its okay, I've been busy too (been at a university seminar this weekend, and having celebrations due to my very high academic grades I got awarded for last semester). Have you been poking around the ucode handling headers by any chance? I might have a looksee too, in the RDP/RSP handling, to see how they are done. I really should invest in time to spend more with this too. Atm, its all just been in my spare time, really, which I had little off this last week, due to Real Life(tm).

I've got some theories on how it works. Basically for every frame the ucode is extracted. There's an array called LoadedUcode, I think and this basically points to different functions for performing several rendering calls to be performed by the RDP/RSP. Check the source, you should see that every rendering function entry point is prepended with the RSP tag. The RSP render functions will eventually be broken down into Open GL calls or in your case, DirectX calls. So when DLParser_Process gets busy with the actual rendering on the posts I placed a couple of posts back, it should go through these loaded ucode functions when needed. These also seem to be referenced by hex digits on array. That's as far as I see right now.

For the TR 2 problem, I perceive this to be a possible cause of problem. Last Legion UX ucode and TR 2 ucode are assumed to be the same in terms of mapping, and I wonder if that is the case.

I hope this helps you a bit. I'm sorry I've not been helpful (nor productive at all). Real life is a real b*tch at times.

By the way, congrats on the high marks there.
 

olivieryuyu

New member
I've got some theories on how it works. Basically for every frame the ucode is extracted. There's an array called LoadedUcode, I think and this basically points to different functions for performing several rendering calls to be performed by the RDP/RSP. Check the source, you should see that every rendering function entry point is prepended with the RSP tag. The RSP render functions will eventually be broken down into Open GL calls or in your case, DirectX calls. So when DLParser_Process gets busy with the actual rendering on the posts I placed a couple of posts back, it should go through these loaded ucode functions when needed. These also seem to be referenced by hex digits on array. That's as far as I see right now.

For the TR 2 problem, I perceive this to be a possible cause of problem. Last Legion UX ucode and TR 2 ucode are assumed to be the same in terms of mapping, and I wonder if that is the case.

I hope this helps you a bit. I'm sorry I've not been helpful (nor productive at all). Real life is a real b*tch at times.

By the way, congrats on the high marks there.

Dark Rift, TR 1 and 2, Last Legion UX are using the same microcode :)
 

mudlord

Banned
I've got some theories on how it works. Basically for every frame the ucode is extracted. There's an array called LoadedUcode, I think and this basically points to different functions for performing several rendering calls to be performed by the RDP/RSP. Check the source, you should see that every rendering function entry point is prepended with the RSP tag. The RSP render functions will eventually be broken down into Open GL calls or in your case, DirectX calls. So when DLParser_Process gets busy with the actual rendering on the posts I placed a couple of posts back, it should go through these loaded ucode functions when needed. These also seem to be referenced by hex digits on array. That's as far as I see right now.

Ah I see. :) However, in the Windows port, we can also use OGL too.

I've heavily updated the debugger plugin, which might be of assistance in code tracing. Though, its only for Windows.

Unknown or difficult ucode perhaps?

According to the output from my updated debugger build, its a unknown microcode to the plugin. So, its not in the plugin's ucode tables.

I hope this helps you a bit. I'm sorry I've not been helpful (nor productive at all). Real life is a real b*tch at times.

By the way, congrats on the high marks there.

Its okay, this info certainly has helped me in understanding more on the internal structures, and how things tick. And thanks for the kudos, I appreciate it. I hope this semester is just as productive as the last. :)
 
Last edited:

Top