I don't want to release it as an official version, but rather as a beta version, so you guys can try and see if it can solve the base texture replication problems which was encountered in Super Smash Brothers 64.
The new debugger version has also been uploaded to the official 6.1.0 thread.
To fix the problem I am talking about here for SSB 64, you need to redump the related textures. The plugin will dump the base textures, not the replicated and enlarged textures. Texture enhancement works should be done on these new dumpped base textures.
If you want to use the debugger DLL to dump the texture, you need to find the base texture files under your D:\. The image shown in the popup image viewer window is not the base texture, but the whole replicated and enlarged texture.
You still need to enable the option "Try to Use Smaller Textures (faster)" in order for the new hires textures to work. You must also disable the option "Alternative texture size calculation".
EDIT #1:
Fix the CI bmp dump/reload problem for texture scan lines not 32bit aligned
EDIT #2:
Beta 3 fixes the mirror texture replication problem when using the "Use smaller textures" option for SSB64. it also supports for JPEG image format, and generates screen shot image files in JPEG instead of PNG. For hires project, JPEG files can be used only for *_rgb and *_a files, not for *_all or *_ci files. Paired *_rgb and *_a files must be both in same format (JPEG, PNG or BMP). To use the new beta, you need to copy the BMGlib.dll file to your emulator folder. Filename extensio for JPEG files is ".jpg", not ".jpeg".
Note:
When comparing to PNG, JPEG does not give better texture quality since it uses lossy compression. The intention to support JPEG format is to provide the 2nd option for large textures. Even JPEG files are smaller on disk (for large textures), such textures will take the same amount of memory after loaded. JPEG works better for screen shot feature then PNG. JPEG screen shot files are usually much smaller than PNG files, and we don't need a lossless screen shot anyway.
EDIT #3:
Beta 4 fixes a stupid bug (misplacing a single line) which causes the mirror hires texture replication problem with opengl.
EDIT #4:
Beta 5 adds the ability to load RGBA texture in PNG format for CI textures. Please see my following post for more details about how to use it.
EDIT #5: Beta 6
Try to solve the mirrored texture replication problem again, and the minor texture dump bug reported for beta 5. The minor bug is actually a big one, especially for games using CI mirror texture but not using the "Using smaller texture" option.
Sorry for some of you. If you find some of your hires textures stop working after this beta, check the dumpped texture with the new plugin against the textures you created. The plugin need you to provide replicated textures, you may need to mirror-replicate your texture as the newly dumpped texture. (It should not be a big deal for you.)
This beta should also fix some weired problems that half dumpped texture is black, and problems with hires textures won't load because of the mirror/non-mirror texture size mismatch.
EDIT #6: Beta 7
Fix the hires texture problem with clamped textures as the bug reported by _pm_ for the link shield in SSB 64.
EDIT #7: beta 8
Try to solve the hires texture loading problem at mirroring and clamping situations (again).
Forget about the changes in beta 6. We are now back to use the base textures, not the mirror-replicated textures for the mirroring situation. This is for both CI and RGBA textures. Beta 5 was in this way for CI textures only.
The new beta 8 works in all situations as I tested.
Again, if your texture stop working after beta 8 but was working before it, try to dump it again and check your texture against the dumpped one. You may need to half your textures.
Please don't complain about the such changes. This is the reason why I call the release as a beta, which is supposed to change. And I am sure that each change is making the plugin to a better direction.
To dump a perticular texture, it is much easier to use the debugger version. This is the reason why I am included the debugger version in the release.
EDIT: for beta 9
- Display initialization messages to tell the status of texture file searching progress
- Won't remember the texture dump option value anymore. This option will be disabled when the plugin is loaded. In order to use the texture dump feature, you have to manually turn it on every time after you restart the emulator. This prevents the texture dump option is accidentally left on.
- Fix the graphic tearing problem at Super Mario head (This is a general bug in many games) and related polygon depth bias problems.
- Textures are now dumpped into subfolders and texture dump will also check into the subfolders.
- Using sorted list to manage the texture info, and using binary search to speed up texture checking/loading process. This should speed up the game when texture dump is enabled, also speed up hires texture loading a little bit.
- Palette CRC calculation is only up to the maximum palette values really used by a texture. This will reduce the duplicated texture dump for different palette CRC values.
- Other extra checking to reduce duplicated texture dump
- For Mario Kart. You want to enable the option "Fast loading tiles". The new beta will give you much better texture dump for this game because of new implementation and extra check on texture size for this game. For most textures used by this game, you can have them dumped in complete textures instead of broken sub-textures.
Edit for beta 10
I don't know why beta 9 has the bug. C++ template didn't do the job as it should do. So I have to add extra check on the Sorted List search result to make sure it is valid.
And there was no problem with the DEBUG build.
Now beta 10 should be work as beta 9 should.
EDIT #1: Great!! The textures are dumped correctly now.
The screenshots below show the modified textures (4X resized and with some numbers to identify them better).
However, there is one texture that seems to be ignored (second shot). Take a look at the RAR, it seems to be that one in PNG format, and it is also a replicated version of the "Number 5" texture. Considering that it has a different filename, I think you're working on something else, so I'm not going to ask about this. Just a comment.
EDIT #2: Rice, sorry to bother again, but I didn't realize about this before
It seems that the beta fix adds a new bug with some textures which are replicated where they shouldn't. Please take a look at the third screenshot, at Mario's 'M' and Pikachu's face. Hope this helps.
Rice, could you make it so that CI textures are dumped to a CI folder, ALL textures to ALL, rgb to rbg, and alpha to alpha?
It takes about 30 mins to load the folder with over 10000 files.
Also, if the dump folder is filled with textures (and the dump feature is enabled), the game will take hours to load, it seems as if it's checking each file inside the dump folder, for X reason. Can anything be done?
--------------------
MSI 975X Power Up Edition | Intel Core 2 Duo E6600 | 2GB Corsair XMS2 DDR2-800 4-4-4-12 | Seagate 60 7200RPM PATA UDMA5 & 320 SATA2| Visiontek HD 3870 | Dell 2007WFP 20.1" | SoundBlaster Audigy 2 | Jazz Speakers JS300 2.1 | LG GSA-H12N UDMA4 | Logitech G5 & G15 | Logitech Rumblepad 2 | Epson Stylus CX4700 | Windows XP+SP3 | DirectX 9.0c
Rice:
I thought that this would make a nice feature, an option (possibly a checkbox) for the texture dump to not dump a texture if it already exists in the hires folder. Would make post-dump-cleanup a lot easier. Just an idea.
Thanks a lot, Rice!! It seems you've finally fixed all those annoying texture replications problems!
The screenshots below show some textures which have mirrored replications (the Bonus Stages are good for this). I took at texture at random and added a yellow square to make sure the plugin was loading it.
The first is from 6.1.0. The other screenshots were taken from 6.1.1beta3, one with the DirectX renderer and the other with OpenGL.
I posted screenshots for both renderers because I found a bug in the OpenGL renderer. Maybe you already know about it, but I wanted to inform anyways. (third screenshot) EDIT: Fixed in beta4, thanks!
Also, thanks for adding JPEG support to your plugin. I'll give it a try later
Keep the good work