DeSmuME is a Nintendo DS emulator.
tasemulators / desmume Goto Github PK
View Code? Open in Web Editor NEWDeSmuME is a Nintendo DS emulator
Home Page: http://desmume.org
License: GNU General Public License v2.0
DeSmuME is a Nintendo DS emulator
Home Page: http://desmume.org
License: GNU General Public License v2.0
DeSmuME is a Nintendo DS emulator.
https://gbatemp.net/threads/bad-apple-for-the-nintendo-ds.466504/
As the title states, the homebrew soft freezes after one minute in DeSmuME, but only if DeSmuME detects it as homebrew. If you alter the four bytes in the header at 0xC0(logo) to '24 FF AE 51' so it's not detected as homebrew, it will play through with no problems.
On main title screen, the top screen title is corrupted on both renderer.
On OpenGL 3.2, there is a brown rectangle:
On Softrasterizer the title is cut in half and stretched:
--- ROM INFO ---
ROM game code: AWQP
ROM serial: NTR-AWQP-EUR
ROM chipID: 00000FC2
ROM internal name: TPARTY
ROM developer: Unknown
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
As you can see from the screenshot, many of the graphical elements have some garbage on the bottom of it. This affect both render.
--- ROM INFO ---
ROM game code: YUTP
ROM serial: NTR-YUTP-EUR
ROM chipID: 00003FC2
ROM internal name: ULTIMATE MK
ROM developer: Midway (before it was Tradewest)
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
memset functions for 32bit don't compile without setting them to sizeof(x)*elementcount
x=16,32 ..
actually LENGTH is capital sometimes ..
btw: commandline doesn't work ? --option tries loading --option.rom
(linux 32build)
Just like PCSX2, to make it possible to have per game settings.
Something I noticed with using an Xbox 360 controller and that is both the LT and RT can cancel each other out. This makes mapping those triggers to the L and R buttons on a DS a pain during game play. This is a symptom of using the DirectInput API for Xbox 360 controllers. XInput API doesn't have this issue. I was wondering if this was being considered at all during development of DeSmuME?
after comit 53c4a27
Step to reproduce this bug:
(1) grab latest code and build with vs2015
(2) run Mario Kart DS
(3) select Mushroom CUP
(4) select Cheep Cheep Beach track.
https://i.imgur.com/5zCWerg.png
The corrupted part of the graphics are the previous screen's graphics with a different palette.
I think this game is DMA'ing its upper pause screen background to 0x06210000, and any parts it tries to do at 0x06218000+ don't seem to take hold?
The intro screens use that same addresses, but VRAM is set up differently. Some pics of no$gba's IO map:
https://i.imgur.com/ejRR42o.png
https://i.imgur.com/VuIGSGV.png (no$gba doesn't show any of the upper pause screen correct)
Is this some sort of mirroring issue or something?
Since SVN 5195 (fec691b). Tested with Final Fantasy IV.
Console log:
DeSmuME 0.9.12 git#1e96e738 x64-JIT SSE2
- compiled: Dec 24 2016 16:16:18
Microphone successfully inited.
DeSmuME 0.9.12 git#1e96e738 x64-JIT SSE2
Attempting change to 3d core to: OpenGL Old
WGL OpenGL mode: hardware
OpenGL: Successfully created shaders.
OpenGL: Successfully created postprocess shaders.
OpenGL: Successfully created FBOs.
OpenGL: Successfully created multisampled FBO.
OpenGL: Renderer initialized successfully (v2.1.0).
[ Driver Info -
Version: 3.1.0 - Build 9.17.10.4459
Vendor: Intel
Renderer: Intel(R) HD Graphics 3000 ]
GL display context pixel format: 4
ROM game code: YF4E
ROM serial: NTR-YF4E-USA
ROM chipID: 00007FC2
ROM internal name: FF4
ROM developer: Square-Enix
Slot1 auto-selected device type: Retail MC+ROM
Slot2 auto-selected device type: None (0xFF)
BackupDevice: size = 512 Kbit
CPU mode: JIT
JIT: max block size 15 instruction(s)
Already decrypted.
Loading C:\Software\NDS\Roms\Final Fantasy IV.nds was successful
Emulation unpaused
Texture unpack functions are called frequently and current Desmume only has SSE2 version of texture unpack functions for texcache.cpp. If it won't cost too many efforts to implement AVX2 version of these functions, it should improve Desmume perfomance a lot.
In the Preferences menus, the HUD boxes don't seem to do anything. I don't know whether it's because it's reading from another settings file, but the HUD settings only seem to work when changing them from the View settings in the menu bar. Hopefully the pictures illustrate what I'm talking about.
Also, where is the settings file located? As in, when I save the settings, where does it go? I can't seem to find it in ~/Library.
After the main title screen, when you start a game, it simply shows a black screen but DesMuMe isn't hanged (infinite loop)?
More info from SourceForge bugtracker:
The regression on the intro was introduced on 3396, as mtabachenko commented:
"core:- fix timings in THUMB CPU mode (fix bug #2879374 and break SW: CW JA intro :(, maybe mistake in WiFi emulation);"
--- ROM INFO ---
ROM game code: CLWP
ROM serial: NTR-CLWP-EUR
ROM chipID: 0000FFC2
ROM internal name: SW:CW JA
ROM developer: LucasArts Entertainment
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
Please make an android port official , on Android have Drastic but you have to paid , and the other it's port unofficial from Desmume and it's have a poor perfomance
Mario Kart DS stuck in black screen if press "start" or "A" to skip intro after start a match.
Tested with win32 latest test build downloaded from https://ci.appveyor.com/project/zeromus/desmume/build/artifacts .
OS: Windows 8.1 x64
display card: nVidia GTX 760M
Steps to reproduce this bug:
(1) download desmume test build from https://ci.appveyor.com/project/zeromus/desmume/build/artifacts
(2) load Mario Kart DS (US)
(3) start a racing:
GRAND PRIX --> 150 CC --> select Yoshi --> MUSHROOM CUP
(4) press start button quickly to skip the intro
(5) if not stuck in black screen, just quit the match and repeat step (3) to step (5)
I always get stuck in black screen by repeat step (3) to step (5) less than 3 times.
my desmume.ini can download from here: http://www.mediafire.com/file/gaj3ka3farze3r8/desmume_ini.zip
Instead of replace, add. Context:
I'm glad this moved on from SourceForge. GitHub is better. I was thinking about creating an account there to submit this bug report. Good thing I waited. Didn't expect this. Props for the move.
Anyways, someone on Reddit made an unofficial build where DeSmuME stopped using the CPU so heavily when no game is loaded or when the emulation is paused.
Build that fixes the CPU intensity when idling:
https://filebin.net/pceyvokrb4ltjqyt
The user claims that input is being checked too often and the window is being redrawn when nothing is changing.
Only regression with that is HUD display (FPS, pressed buttons, etc.) cannot be drawn on-screen regardless if enabled/disabled in the menus. I was hoping that maybe this CPU idle intensity fix could be included along with fixing the HUD code to display as well.
Build instructions for linux have not been updated to reflect the new location of the autotools scripts. As well, they still reference subversion.
When running desmume (gtk frontend) commit 241f50e compiled under Linux Mint 18.1 the following assertion failure is encountered in the first level of Water Horse Legend Of The Deep:
desmume: ../../matrix.cpp:287: void MatrixStackLoadMatrix(MatrixStack*, size_t, const s32*): Assertion `pos<31' failed.
Looking quickly at matrix.cpp, it looks like the assert may be off by one and should be:
assert(pos<=31);
My reasoning here is that where this is called in gfx3d.cpp, the size_t argument is masked with 31.
Adjusting this assert (and another identical assert in matrix.cpp on line 276) and recompiling results in no further assertion failures in Water Horse.
But I don't otherwise know anything about the code, so the developers should confirm whether this is correct or not.
The wireframe rendering in the OpenGL renderer has some differences with hardware in this game(and probably others that use it?).
https://i.imgur.com/AviL83A.jpg
https://i.imgur.com/tEZXjSy.png
https://i.imgur.com/7QRKg5p.jpg
https://i.imgur.com/9jMSzu0.png
I don't really know my 3D terminology, but there are some edges facing the camera that don't render on the DS. Also, there is something going on at the edge of the screen where the wireframe gets clipped(?).
Hello,
The ReadByte, ReadWord and their Write counterpart methods in SPU.cpp are filled with the following wrong code:
(u8)(thischan.timer + 1)
The intention was probably to take the second byte of a 2-byte u16 field. Endianess issues aside, this is wrong - it adds 1 to thischan.timer field value (not address) and converts it to u8 pointer before dereferencing. You probably meant:
((u8)&thischan.timer + 1)
This first takes thischan.timer pointer, converts the pointer to u8*, increments the address and deferences it.
I have created a patch for gentoo 0.9.11 version. It contains many things (most of them already fixed here) but it also has chunks for this file.
Complied with VS 2015 and already change to release build (DeSmuME-VS2015-x64-Release)
Setting: Both OpenGL and Software mode (Native resolution).
It's still slow down as before.
Any other debug option I need to disable ?
Source code:
https://github.com/TASVideos/desmume
Start a race and then pause it with Start. Press Select and you will go back to the menu. The top screen is not clearly corrected and show the cars from the race in front of the title.
--- ROM INFO ---
ROM game code: AMXP
ROM serial: NTR-AMXP-EUR
ROM chipID: 00001FC2
ROM internal name: MONSTERTRUCK
ROM developer: Majesco Sales Inc
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
http://www.pouet.net/prod.php?which=53631
nothing but black screens
With the last commit Golden Sun: Dark Dawn reboots immediately after the Camelot Logo.
I was browsing the wiki and noticed that there was work being done on a cross platform QT GUI. Is that still a thing? Also, if it isn't a thing, could you give me some pointers of where i could start to learn how to do it?
In the 12/06 Git compile, some games are skipping video and attempting to skip opening logos. Ex: Rune Factory 3. Attempts to skip opening logo's, and skips the following animation altogether, going straight to the title menu. Didn't do it on the 12/05 Compile.
The italian version of this game shows black screen after you start a new game. The (U) version works perfectly.
--- ROM INFO ---
ROM game code: AFZI
ROM serial: NTR-AFZI-ITA
ROM chipID: 00003FC2
ROM internal name: TRANSFORMERS
ROM developer: Activision
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
http://forums.desmume.org/viewtopic.php?id=10998
recorded here because it's somewhat confirmed as a good test case for a fixable bug
http://www.pouet.net/prod.php?which=53004
the first screen is missing the text and planets (top screen)
then after that the top screen goes black during the demo
When using the mouse to send input to the touch screen on the Mac, it is mapped incorrectly. See the video for details. The touch input looks like it's mapped to the upper right corner?
Running on MacBook Pro 2016 15 inch.
GPU: AMD Radeon Pro 460 (probably irrelevant here)
This bug only happens on Grand Prix 150 cc mirror tracks, and I suspect the shadow is filter out by back face culling.
steps to reproduce this bug:
(1) download latest test build from official web site.
(2) change renderer to OpenGL 3.2
(3) run Mario Kart DS
(4) select GRAND PRIX mode 150 cc mirror tracks
`Render3DError OpenGLRenderer_3_2::SetupPolygon(const POLY &thePoly)
{
const PolygonAttributes attr = thePoly.getAttributes();
// Set up depth test mode
static const GLenum oglDepthFunc[2] = {GL_LESS, GL_EQUAL};
glDepthFunc(oglDepthFunc[attr.enableDepthEqualTest]);
// Set up culling mode
if ( (attr.polygonMode == POLYGON_MODE_SHADOW) && (attr.polygonID != 0) )
{
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
}
else
{
......
}
`
disable OpenGL face culling for shadow polygons should fix this bug.
Mario Kart DS save file:
Mario Kart DS (USA).zip
This crash happens when ROM loading is set to streaming. This is caused by the code interpreting the "Full" region option as the "CartROM" option, and vice versa.
Another issue with the memory viewer is that the region options don't update if you close the ROM and change the ROM loading option, which can lead to crashes.
void GPUEngineBase::_RenderPixelsCustomVRAM(GPUEngineCompositorInfo &compInfo)
{
.........
if (OUTPUTFORMAT == NDSColorFormat_BGR666_Rev)
{
ColorspaceConvert555To6665Opaque_SSE2(src16[0], src[0], src[1]);
ColorspaceConvert555To6665Opaque_SSE2(src16[1], src[2], src[3]);
}
else
{
ColorspaceConvert555To8888Opaque_SSE2(src16[0], src[0], src[1]);
ColorspaceConvert555To8888Opaque_SSE2(src16[1], src[2], src[3]);
}
..............
}
C:\Software\Development\projects\desmume\desmume\src\frontend\windows\DeSmuME.vcxproj : error : Unable to read the project file "DeSmuME.vcxproj".
C:\Software\Development\projects\desmume\desmume\src\frontend\windows\desmume.props(65,14): A numeric comparison was attempted on "$(NDS_VSVER)" that evaluates to "" instead of a number, in condition "'$(NDS_VSVER)' < '14' AND '$(SSE_Level)' > '20'".
C:\Software\Development\projects\desmume\desmume\src\frontend\windows\DeSmuME.vcxproj : error : Unable to read the project file "DeSmuME.vcxproj".
C:\Software\Development\projects\desmume\desmume\src\frontend\windows\desmume.props(65,14): A numeric comparison was attempted on "$(NDS_VSVER)" that evaluates to "" instead of a number, in condition "'$(NDS_VSVER)' < '14' AND '$(SSE_Level)' > '20'".
After loading the game, DesMuMe hangs with "ARM9: Undefined instruction: 0x002D40F8 PC=0x01FB8000" on the output console.
This problem affect also the (U) version of the game (Puppy Palace).
--- ROM INFO ---
ROM game code: YPTP
ROM serial: NTR-YPTP-EUR
ROM chipID: 00001FC2
ROM internal name: MYPUPPYSHOP
ROM developer: Ubi Soft Entertainment
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
On the racer selection screen, the top screen should show the selected racer (3d model).
--- ROM INFO ---
ROM game code: YHRE
ROM serial: NTR-YHRE-USA
ROM chipID: 00000FC2
ROM internal name: HOMIEROLLERZ
ROM developer: Unknown
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
Since DirectDraw is only for windows xp and doesn't have any advantage on modern OS. Drop DirectDraw display method make it possible to reuse the new implement scaler shaders on windows port.
If request accepted, I can help to remove DirectDraw related code.
If the users tries to add a lua script (windows 10 - desmume x64 with lua51.dll for x64 version) the emulator freezes. I tried the Metroid Prime Hunters script: http://forums.desmume.org/viewtopic.php?pid=26016
Tested the same scripts and dll files with DeSmuME_0.9.11_x64, which was working without issues.
Start a new game, skip the intro then click on the door at your right, press the "tick" button on bottom right and the entire background is missing, with the flashing furniture. This problem affect both render.
--- ROM INFO ---
ROM game code: CITP
ROM serial: NTR-CITP-EUR
ROM chipID: 00000FC2
ROM internal name: TEACHER
ROM developer: Ubi Soft Entertainment
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
On the character selection screen, on OpenGL render the character silouette is in front of the character itself:
--- ROM INFO ---
ROM game code: ARGP
ROM serial: NTR-ARGP-EUR
ROM chipID: 00001FC2
ROM internal name: POKE RANGER
ROM developer: Nintendo
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
In the newest build the Title screen started to filcker (main screen and sub screen are changing regularly).
The latest build which I used and which did not have the issue was:
f50f9d3
As you can see from the screenshot, on the top screen there is a line that corrupt the image on the background. Sometimes the same line corrupt the bottom screen. This problem affect both render.
--- ROM INFO ---
ROM game code: CWSP
ROM serial: NTR-CWSP-EUR
ROM chipID: 00001FC2
ROM internal name: WINTERSPORTS
ROM developer: Unknown
--- PC INFO ---
CPU: Intel i5-4670K
GPU: AMD Radeon 7950
Driver version: Crimson ReLive Edition 16.12.2 (December 2016)
OS: Windows 7 x64
OpenGL render is broken when using single core and internal resolution higher than 1x, tested with latest test x64 build on windows 8.1.
3x internal resolution:
emulator will crash immediately
Step to reproduce:
(1) download test build git#7b13501 from official web site.
(2) run emulator and change render to opengl 3.2, HD prescale to 2 or 3
(3) close emulator
(4) run emulator with command line parameter "--num-cores 1" to force using single core.
(5) 2x internal resolution will cause graphic glitch as picture above.
(6) 3x internal resolution will crash immediately.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.