| Commit message (Collapse) | Author | Age |
... | |
| | | | |
|
| |_|/
|/| | |
|
|\ \ \
| | | |
| | | | |
APTU: Stubbed NotifyToWait, taken from 3dmoo.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
AddrArbiter: Implement arbitration types 3 and 4.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Display transfers with the horizontal downscaling flag were calculating
the wrong output size, causing them to write double the amount of data
intended. It is likely that this was perceived as correct due to a
separate bug in calculating source indices which caused the image to be
padded unless the previous bug was present.
This fixes both issues, correcting flickering issues in 3dscraft,
blargSnes and more (caused by the transfer overwriting the back buffer
which followed) as well as potentially fixing other crashes.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The code was previously appending the interrupt to after the end of the
buffer, instead of at the end.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It appears this is a mistake, since the sub-screen has no right
framebuffer.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Hardware testing determined that the GSP processes shared memory
framebuffer update info even when no memory transfer or filling GX
commands are used. They are now updated on every interrupt, which isn't
confirmed correct but matches hardware behaviour more closely.
This also reverts the hack introduced in #404. It made a few games
behave better, but I believe it's incorrect and also breaks other games.
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
PDC0 and PDC1 are both VBlank interrupts. PDC0 was being treated as a
HBlank interrupt and fired many more times than it should. They now both
fire together at 60 Hz. This puzzlingly *improves* apparent framerate on
many applications.
A few other interrupts were being fired inside the GSP command
processing instead of on the actual GPU register writes, so they were
moved there, which should cover direct writes tho those registers not
going through the GX command queue.
|
| |/ /
|/| |
| | |
| | |
| | | |
Also renamed some handles in the APT:U service to be more descriptive.
Fixed a typo in InquireNotification
|
| | | |
|
|/ /
| |
| |
| |
| | |
cfg:s, ptm:sysm, apt:s.
apt:s is almost exactly the same as apt:u as per 3dbrew
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
dyncom: Fix some more V-flag setting ops. Plus some cleanup.
|
| | | |
|
| | |
| | |
| | |
| | | |
Also cleans up CMN, and CMP.
|
| | | |
|
|/ / |
|
| | |
|
|\ \
| | |
| | | |
SVC: Wake up the thread after the delay in WaitSync1
|
| | | |
|
|\ \ \
| | | |
| | | | |
Thread: Prevent waking a thread multiple times.
|
| | | |
| | | |
| | | |
| | | | |
If a thread was woken up by something, cancel the wakeup timeout.
|
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
There is no documentation available on this function, but we set the result to false as a stub.
This allows Super Little Acorns to move all the way in game with pp3c.
|
| | | |
|
| | |
| | |
| | |
| | | |
trace logs under release for performance.
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Kernel Lifetime Reform Pt. 2
|
|\ \ \
| | | |
| | | | |
Warn if a new thread is intended to be run on the system CPU core
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
Implemented timers
|
| | | |
| | | |
| | | |
| | | | |
ARM_Disasm only has static methods, so there's no need to have an instance of it.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This will keep track of idle ticks for us, and fixes some tickcount-related issues
|
|\ \ \ \
| | | | |
| | | | | |
SVC: Fixed SleepThread
|
| | |_|/
| |/| |
| | | |
| | | | |
It will now properly wait the specified number of nanoseconds and then wake up the thread.
|
|\ \ \ \
| |/ / /
|/| | | |
dyncom: Fix UMAAL
|
| | | |
| | | |
| | | |
| | | | |
These need to be done as a 64-bit operation.
|
| | | |
| | | |
| | | |
| | | | |
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again.
|