fleroviux / lunar Goto Github PK
View Code? Open in Web Editor NEWA fast-ish Nintendo DS emulator with a JIT recompiler and multithreading.
License: Other
A fast-ish Nintendo DS emulator with a JIT recompiler and multithreading.
License: Other
Updating the computation results on each singular byte write is pretty inefficient.
This can improved if we implement specialized 16-bit and 32-bit MMIO accessors.
currently the ARM7 is treated like an ARM9 processor with an ARMv5TE ISA
I expect the following things need to be changed for proper ARM7 support:
The sequence of events is:
At the first attempt to read an address above the 0x068A3FFF mark (VRAM 656KB limit) everything blows up.
Could fix it checking before calling VisitVRAMByAddress:
case 0x06: {
if ((address & 0xFFFFF) < 0xa4000) //Check
table[index] = VisitVRAMByAddress<GetUnsafePointerFunctor<u8>>(address);
break;
}
But for current lack of whole design complete understanding and fleroviux intentions, I'm just documenting here and not opening a pull request.
Tested on:
Platform: Win10
Compiler: Clang 11 under MSVCRT (MSVC can't handle the metaprogramming and won't build, at least in the current stable 14.29)
(logically should be an issue in other platforms, logically)
The sequence of events is:
~APU tries to call close on its audio device, but apparently the check for null pointer doesn't help, because despite having an address it's invalid memory since sometime in the recent past(?). So the application crashes trying to access invalid memory.
Since Interconnect it's marked to be extinguished from existence, this rework could fix the destruction order and solve this issue.
Can't really suggest a solution, for currently lacking understanding of the whole program structure.
Tested on:
Platform: Win10
Compiler: Clang 11 under MSVCRT (Tests can only be performed after fixing #22, otherwise won't run)
Apply the same fix I did in NanoBoyAdvance for the switch between FIQ mode and modes other than User/System modes.
the ITCM and DTCM actually can be disabled via CP15 commands. we are not emulating this currently.
Wondering what your goal is, is it to be similar to Noo-DS but focus more on stable releases and/or otther things?
Curious I am, watching this and at least* one other repo to see which turns out better.
Hope all goes well
Culled polygon strips often commit more vertices to vertex RAM than they should.
The wrong code in question it this:
https://github.com/fleroviux/lunar/blob/master/src/lunar/src/nds/video_unit/gpu/primitive_assembly.cpp#L125-L141
Trying to set all IE bits gives FFFFFFFFh (DSi7) or FFFFFF7Fh (DSi9).
SIO/RCNT/RTC IRQ can only be used on the ARM7 core and trying to enable it on the ARM9 doesn't set the bit.
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.