emu-russia / pureikyubu Goto Github PK
View Code? Open in Web Editor NEWNintendo GameCube Emulator (WIP)
License: Creative Commons Zero v1.0 Universal
Nintendo GameCube Emulator (WIP)
License: Creative Commons Zero v1.0 Universal
Read SDK Fifo docs. Check my reversing of GxFifo module.
Implement Fifo and WPAR right way.
Move debugger code base in standalone library.
Implement the work of the main subsystems by threads:
Locate bug and fix it...
Where I can find it? :)
Test it when MMU ready.
Need to implement convenient debug interface to DVD subsystem.
Implement AI DMA playback
DSP JITC aka recompiler
Add to HW a module for low-level DSP emulation and a pedals for controlling it (it works in its own thread).
Replace alien GekkoDisasm with an analyzer, similar to how it was done for DSP. Later use the analyzer for the interpreter and recompiler.
Found that games on AX Ucode freeze after writing the 0xDCD10000 value to the DSP Mailbox.
Research how AX Ucode sending DSP interrupt to CPU, by writing into DSP Mailbox.
Need to research Dolphin OS Idle thread and possibilities to skip it.
Test command list execution
0C00 [00 00] [80 19 70 00] [00 07] [80 19 2C E0] [00 02] [80 19
0C08 70 40] [00 03] [00 12] [80 00] [00 0A] [80 0D F9 80] [00 0E]
0C10 [80 19 2C E0] [80 19 2A 60] [00 0F] [00 00] 00 00 00 00
0C18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Decoded:
[00 00] [80 19 70 00] Init
[00 07] [80 19 2C E0] Load last played 640B Frame buffer (STEREO)
[00 02] [80 19 70 40] Setup first Voice Parameters Block
[00 03] Mix
[00 12] [80 00] [00 0A] [80 0D F9 80]
[00 0E] [80 19 2C E0] [80 19 2A 60] Copy out 640B + 640B bytes (2 Frames)
[00 0F] [00 00] End
Need to research how L1/L2 cache affects emulation.
Json.hpp test
Implement debugger working in its own thread.
(non-invasive presence)
Required sometimes.
Why is it necessary
Some games freeze in one of the threads, polling something. If you look from the debugger, the context switches back and forth and it is difficult to catch such moments.
Dumping current Dolphin OS threads will simplify the task.
Unicode support in UI.
Implement a recompiler that works correctly in all operating modes (with debugger and breakpoints, with Mmu)
Make some.
What happen here?
006E 0A 13 lris ax1.l, 19 // ax1.l = 19 (const)
006F C1 00 cmpar ac0, ax0.h // ax0 -- Where? :p Must be cmpar ac0, ax1.l ??
Wtf?
Other cmpar looks good.
Implement DSP DMA <-> Main memory.
DSP IFW regs are known.
Implement visual studio-like sampling profiler for Gekko (to see bottlenecks in emulated software).
Debug commands arguments to vector
Few additional methods to Json engine.
Implement and debug DSP Mailbox Logic.
Try DirectX shaders at minimal (RnD demo).
Add commands to debug the DSP and view its status.
Implement MMU to run GC-Linux and Star Wars: Rogue Squadron II โ Rogue Leader
Remove IROM mapping (was ILLRI opcode)
Accelerator which returns zeros (no sound). Enough for the DSP code to work.
When we make sound, add ADPCM decoding for it.
Implement DSP disassembler.
To test DolphinSDK demos, need to mount the DolphinSDK folder as a virtual DVD.
Alternatively, you can create GCM with DolphinSDK disk data, but mounting a folder can come in handy, plus it's an interesting task.
Need to check how unlocking of memory cards goes when DSP Ucode works to unlock cards.
The best way to check is to try the demos from the SDK.
JAudio (Zelda) microcodes should not block application execution. Since they are designed in such a way that the command exchange is performed by the Mailbox polling - an error in the execution of the microcode followed by the DSP shutdown causes the JAudio DspSendCommand method to freeze in the endless Mailbox poll, and the application also freezes.
Need to refactor all the UI code into a separate project.
Research the pinout of the connector and how DDU is involved in playing streaming audio.
Common JSON serialization component.
I'm a bit outdated, need to read more about modern GPUs.
Reverse DVDConvertPathToEntrynum
There is no money for a paid IDA Pro, and downloading a pirate conscience is not allowed (plus I stream progress). Therefore, we will try to reverse this branching bitch with improvised means.
Test it, when DSP interpreter is ready:
Examine existing documentation and consider the architecture of the GX emulation module.
Add IPL support and establish correct operation in it, including setting the time (RTC) and dynamic change of DVDs.
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.