Emuforums.com

Go Back   Emuforums.com > Handheld Emulation > DeSmuME Discussion
Home Register Downloads FAQ Members List Calendar Arcade Mark Forums Read


Reply
 
LinkBack Thread Tools Display Modes
Old January 26th, 2008   #1 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
Talking DeSmuME mods !!!

Hi,

IMPORTANT : I DON'T SUPPORT THESE MODS ANYMORE. I'M NOW WORKING ON THE OFFICIAL DESMUME SVN AS "luigi__" . THIS ALSO MEANS THAT I DON'T ANSWER ANYMORE TO N00BISH QUESTIONS LIKE "the mod says it couldn't find sdl.dll what must I do pleazze ?" .

(as an answer to the example question above, Google is your friend.)

I've decided to start modding DesMuMe. I release here my first mod. It does not improve game compatibility but it has more features. It is only for Win32 users.
-First, I've added joystick support through SDL. That was easy.
-Next, I've added support for SDL sound core under Win32. That was easy too, the SDL sound core was here already.
-Added Vertical resize option. It was harder, I spent some time to add this. When activated, the window can be resized only vertically, the screens keep their size and the gap between the screens will be filled with your favourite colour (approximative). This allows users to set a gap depending on the game to get better gameplay.

Enjoy !!! Mod 2 is out with some fixes !!!
-New GUI, added a toolbar and a statusbar to make it more user-friendly.
-Fixed LDR and LDM** opcodes, now opcodes are 100% correct (Thanks to Shash)
-Fixed Frame limitation when frameskip is 0
-Fixed some opcodes which prevented the emu to continue execution
-Fixed a stupid bug in the 3D core, this fixes Rayman Raving Rabbids 2, this should fix all other games that send unpacked commands to GXFIFO with reversed byte order (ie 0x1b000000)
-Added Wireframe 3D
-Fixed New Super Mario Bros minigames, thanks to Shash
-Added Video Capture option (sound & compress don't work yet)
-Started implementation of RTC (doesn't work yet)
-Started a new 2D core (doesn't work yet, this version uses old 2D core)
-Added Fold/Unfold option (doesn't work as expected)
-Fixed ITCM (hope it won't break anything)

Enjoy more !!! Mod 3 is out with more fixes !!! This emu is getting better and better !!!
(there is still no linux version... but this will come soon)
-Added Alpha-test in 3D core, no more color squares around the textures
-Fixed blending in 3D core
-Implemented GXFIFO IRQ : this is a ugly hack but games needing this (ie. New Super Mario Bros) now work
-Fixed depth clearing in 3D core, this fixes black sky bug in Mario64
-Implemented 3D PosTest, this fixes a mini-game in RRR2 (next version will probably feature BoxTest and VecTest)
-Noticeable speed-up, thanks to Shash (now executes 16 instructions at a time)
-Fixed 2 bugs in sound core (loop feature) :
-----Fixed sound length being increased on multiple channel status (key-on) writes
-----Added ability to write Loopstart and Length registers while sound is playing
-----For info : these fixes also fix garbage sound when using "Fold NDS" option
-Added a sound resampling func
-The GUI now uses DirectDraw to display the framebuffer
-----This was hard to implement, but it is WAY faster and better than GDI
-----When you stretch the window, the emu doesn't slow down and the image keeps beautiful (not pixellized)
-----If DirectDraw init fails, the emu will simply use GDI instead
-----DirectDraw is not used when using rotation
-Added CPU low-power mode, this allows RaymanDS to show 3 intros (it is better, but it still doesn't work)
-Fixed 2 bugs in capture unit :
-----Captured bitmap was "invisible" due to alpha values not set.
-----The captured image was only the half of the requested size (128 pixels in width instead of 256)
-----These fixes fix some NSMB/Mario64 mini-games, displaying 3D on both screens (no more flicker, but 3D is still reversed )
-----Now, DeSmuME is able to pass 4/6 tests (see further posts, NDS graphic test app)
-Added some hacks in VRAM handling, the sprites in NSMB minigames look correct, but now the pause buttons are incorrect (I plan to rewrite all VRAM handling in next release, current handling is crappy, plenty of TODO and FIXME)
-Wiimote support is not ready, so disabled
-And others...

Credits :
-shashClp for all his help

Download Mods in attachment.
Each rar contains a mod of DeSmuME and its sources.
Attached Files
File Type: rar desmume0.7.3mod1.rar (663.0 KB, 1338 views)
File Type: rar desmume0.7.3mod2.rar (720.5 KB, 2321 views)
File Type: rar desmume0.7.3mod3.rar (851.8 KB, 1207 views)
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.

Last edited by Luigi__; December 11th, 2008 at 18:25. Reason: Some small text formatting changes...
Luigi__ is offline   Reply With Quote

Advertisement [Remove Advertisement]
Old January 26th, 2008   #2 (permalink)
The Alpha and Omega
 
ShakirMole's Avatar
 
Join Date: Mar 2007
Location: Tanzania
Posts: 304
very nice dude
I am pretty sure that u are capable to fix a major portion of this emu
__________________
------------------------------------------------------
Join Irc server #thegoldcafe on channel irc.star-fleet.net and get rom compatibility lists for iDeaS,no$gba,and others and all your emulation needs
Alternatively, you could join through the java website which links directly to thegoldcafe channel
http://www.dscompatibilitydatabases.co.nr/

Professor Layton Walkthrough with excellent coverage and pics http://professorlaytonwalkthrough.blogspot.com/
ShakirMole is offline   Reply With Quote
Old January 26th, 2008   #3 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
thanks.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.
Luigi__ is offline   Reply With Quote
Old January 26th, 2008   #4 (permalink)
Emu author
 
shashClp's Avatar
 
Join Date: Sep 2006
Location: VisualC
Posts: 1,054
Emh, please update your sources to lastest CVS, else you're working on an old unssupported source code base. For example, I can't retrofit this changes to official CVS if you're working on an old version, atleast not easily. Not to mention 0.7.3 has a few bugs I fixed on CVS.
__________________
Emulator development blog
shashClp is offline   Reply With Quote
Old January 26th, 2008   #5 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
okay.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.
Luigi__ is offline   Reply With Quote
Old January 27th, 2008   #6 (permalink)
BLEACH CORP.®
 
MASTERXZ's Avatar
 
Join Date: Jul 2006
Location: Panamá
Posts: 38
woa thanks for the file great
__________________
..::BLEACH CORPORATION ®::..
MASTERXZ is offline   Reply With Quote
Old January 27th, 2008   #7 (permalink)
Registered User
 
lukeskyd's Avatar
 
Join Date: May 2003
Posts: 41
Question any progress..?

Quote:
Originally Posted by shashClp View Post
Emh, please update your sources to lastest CVS, else you're working on an old unssupported source code base. For example, I can't retrofit this changes to official CVS if you're working on an old version, atleast not easily. Not to mention 0.7.3 has a few bugs I fixed on CVS.
Shash any progress with the official Desmume?
The new 3d graphic what's going on?
What about wifi?

Anyhow I am thinking about M And L P in T saves location in some points i think it shifted to another address or undocumented.. because all emu crash in that points..

Luke
lukeskyd is offline   Reply With Quote
Old January 27th, 2008   #8 (permalink)
Emu author
 
shashClp's Avatar
 
Join Date: Sep 2006
Location: VisualC
Posts: 1,054
Quote:
Originally Posted by lukeskyd View Post
Shash any progress with the official Desmume?
No, I stopped commiting my "big" chances to the CVS long ago. I just fixed some minor regression bugs (some games stopped working after some changes in 0.7.2, and Mario 64 DS crashed on 0.7.2 too).

Quote:
Originally Posted by lukeskyd View Post
The new 3d graphic what's going on?
What you can read on my blog, of course that's not official desmume.

Quote:
Originally Posted by lukeskyd View Post
What about wifi?
Not interested in wifi, at all. I don't even play multiplayer games on my DS, why I would do so on my PC?

Quote:
Originally Posted by lukeskyd View Post
Anyhow I am thinking about M And L P in T saves location in some points i think it shifted to another address or undocumented.. because all emu crash in that points..
As I already said in my blog, it's fully playable after fixing it a few months back. Of course, not on official. And that won't change for motives already explained here.
__________________
Emulator development blog
shashClp is offline   Reply With Quote
Old January 28th, 2008   #9 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
Shash : you say on your blog you only needed to implement GFX FIFO IRQ to get New Super Mario Bros to work. Well, the GFX FIFO support needs to be entirely rewritten, the GXFIFO control reg uses the IPC FIFO. 3D core also needs to be arranged.
I've removed a call to cflash_build_fat(), it didn't affect the good work of the emu and the roms now don't spend about one hour to load.

Ps : I talk about my sources.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.

Last edited by Luigi__; January 28th, 2008 at 20:11. Reason: Automerged Doublepost
Luigi__ is offline   Reply With Quote
Old January 28th, 2008   #10 (permalink)
Emu author
 
shashClp's Avatar
 
Join Date: Sep 2006
Location: VisualC
Posts: 1,054
Quote:
Originally Posted by NHervé View Post
Shash : you say on your blog you only needed to implement GFX FIFO IRQ to get New Super Mario Bros to work. Well, the GFX FIFO support needs to be entirely rewritten, the GXFIFO control reg uses the IPC FIFO. 3D core also needs to be arranged.
I know, it's quite a lot of work to do. Been there, done that. And it'll be a bit slower than current 3D core, but it does pay off. Of course, that's only if you want to do it the proper and accurate way :P

Quote:
Originally Posted by NHervé View Post
I've removed a call to cflash_build_fat(), it didn't affect the good work of the emu and the roms now don't spend about one hour to load.
That's because you've lots of ROMs in a single folder. That call is meant to build a virtual FAT system to emulate a flash card, which is a must for homebrew development, thus it won't EVER be removed from official version, at least not while I'm still in the official team. If you want to speed up loading without touching the code, rearrange your folders :P
__________________
Emulator development blog
shashClp is offline   Reply With Quote
Old February 1st, 2008   #11 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
Hi !

My first fixes to DesMuMe :
I've fixed all buggy opcodes, so DesMuMe has now perfect (or almost) opcode emulation.
First, all LDR opcodes were buggy, due to incorrect data rotating when address is not word-aligned. I written 3 new ROR funcs to solve this problem. Thanks to Nocash DS specs.
Next, I fixed LDMI*! and LDMD*! opcodes by a copy-past from 0.7.4 sources. This was easy but it works. Thanks to Shash.

PS : if you don't believe you can run ArmWrestler. It is an homebrew designed to test the ARM and THUMB opcodes of the NDS.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.

Last edited by Luigi__; February 1st, 2008 at 20:53. Reason: Automerged Doublepost
Luigi__ is offline   Reply With Quote
Old February 1st, 2008   #12 (permalink)
Emu author
 
shashClp's Avatar
 
Join Date: Sep 2006
Location: VisualC
Posts: 1,054
Quote:
Originally Posted by NHervé View Post
Hi !

My first fixes to DesMuMe :
I've fixed all buggy opcodes, so DesMuMe has now perfect (or almost) opcode emulation.
First, all LDR opcodes were buggy, due to incorrect data rotating when address is not word-aligned. I written 3 new ROR funcs to solve this problem. Thanks to Nocash DS specs.
Next, I fixed LDMI*! and LDMD*! opcodes by a copy-past from 0.7.4 sources. This was easy but it works. Thanks to Shash.

PS : if you don't believe you can run ArmWrestler. It is an homebrew designed to test the ARM and THUMB opcodes of the NDS.
NICE! I've those fixed since long ago, in fact it's the first thing I did, as armwrestler was so nice, that I couldn't resist to fix it. If I remember correctly, when I committed my fixes to the official desmume CVS, something got broken, that's why CVS code didn't work as expected Anyway, Normmatt, that's were the 0.7.4 sources you say to have used should come, should have a copy of my cpu fixes, so that might be correct. On the DS all the opcodes are green, so do I've on my version
__________________
Emulator development blog
shashClp is offline   Reply With Quote
Old February 1st, 2008   #13 (permalink)
Registered User
 
dreampeppers99's Avatar
 
Join Date: Jul 2006
Location: you know...
Posts: 504
Nice to see the converstation between the well-know about ds emulation.
And NHervé good job !
dreampeppers99 is offline   Reply With Quote
Old February 1st, 2008   #14 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
thanks. I've noticed another bug, with homebrews, screens are reversed. I'll try to fix it.
About Video capture, I've problems reversing the image (wrong colors) and sound is very bad. But I'll get it to work.

PS : when I say reversed, I mean the top screen contents are displayed on the bottom screen and vice-versa.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.

Last edited by Luigi__; February 1st, 2008 at 22:48. Reason: Automerged Doublepost
Luigi__ is offline   Reply With Quote
Old February 1st, 2008   #15 (permalink)
Emu author
 
shashClp's Avatar
 
Join Date: Sep 2006
Location: VisualC
Posts: 1,054
NHervé: On which homebrews? I've tested compared a few homebrews on Desmume with the real thing, and they were perfect. And, also, I've tested a few hundred ones and compared with author done screenshots and looked OK. Of course, I could have missed something :P

About AVI capturing, keep in mind that desmume uses BGR 15 bit color for the emulated screen buffers, I know it's rare, but that's how official version works :P
__________________
Emulator development blog
shashClp is offline   Reply With Quote
Old February 2nd, 2008   #16 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
I have now good colors but I've problems with sound.
About screens, they are reversed with ArmWrestler and PSGPlayer for example.

About screens : when you use PAlib homebrews, the screens are not reversed.
This is because the apps where the screens are reversed use real text, whereas PAlib apps use 8*8 tiles from a font image file and not real text.
Real text is always displayed whereas PAlib fake text can be disabled by disabling the bg layer of the text.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.

Last edited by Luigi__; February 2nd, 2008 at 23:54. Reason: Automerged Doublepost
Luigi__ is offline   Reply With Quote
Old February 4th, 2008   #17 (permalink)
Emu author
 
shashClp's Avatar
 
Join Date: Sep 2006
Location: VisualC
Posts: 1,054
Quote:
Originally Posted by NHervé View Post
I have now good colors but I've problems with sound.
Nice, good luck

Quote:
Originally Posted by NHervé View Post
About screens, they are reversed with ArmWrestler and PSGPlayer for example.
I'll have to retry them on my DS, whenever I've it back (in a week's time, more or less).

Quote:
Originally Posted by NHervé View Post
About screens : when you use PAlib homebrews, the screens are not reversed.
This is because the apps where the screens are reversed use real text, whereas PAlib apps use 8*8 tiles from a font image file and not real text.
Real text is always displayed whereas PAlib fake text can be disabled by disabling the bg layer of the text.
There's no "real text" on the DS. It's because PSGPlayer and ArmWreslet are using directly the framebuffer :P
__________________
Emulator development blog
shashClp is offline   Reply With Quote
Old February 6th, 2008   #18 (permalink)
Banned
 
Join Date: Dec 2007
Location: Portugal
Posts: 7
Exclamation

NHervé's Avatar

Join Date: Jul 2007
Location: Nulle part
Posts: 182

okay.
__________________
Pcsx2 is great emulator and Megapad is great pad plugin !!!
luiskynet is offline   Reply With Quote
Old February 6th, 2008   #19 (permalink)
Emu author
 
Lino's Avatar
 
Join Date: May 2007
Location: Italy
Posts: 328
OMG a spy OMG
__________________
iDeaS Emulator
Lino is offline   Reply With Quote
Old February 7th, 2008   #20 (permalink)
Plugin author
 
Luigi__'s Avatar
 
Join Date: Jul 2007
Location: Peach__'s castle
Posts: 703
A new :

I think the 2D GFX system needs to be rewritten. It slows down the emu.
I started rewriting it. Now the emu is much faster (20-30 fps instead of 5 in the menu of New Super Mario Bros) but the screen is white, so the games aren't very playable :P:P.
__________________
If you're wondering where Mario__ is, he is currently saving Peach__ once again.
Luigi__ is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 02:03.

© 2006 - 2008 Emu Forums | About Emu Forums | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5