Yuri Kunde Schlesner
9e084826b8
GPU: Do periodic VBlank updates using CoreTiming
11 years ago
Yuri Kunde Schlesner
e29dd76e12
GPU: Correct wrong default framebuffer address for sub-screen.
It appears this is a mistake, since the sub-screen has no right
framebuffer.
11 years ago
Yuri Kunde Schlesner
5961a2852d
GSP: Update framebuffer info on all interrupts
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.
11 years ago
Yuri Kunde Schlesner
98e3274935
GPU: Fire GPU interrupts at the correct places.
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.
11 years ago
Subv
728c932dba
APTU: Stubbed NotifyToWait, taken from 3dmoo.
Also renamed some handles in the APT:U service to be more descriptive.
Fixed a typo in InquireNotification
11 years ago
Subv
9e2ae289b8
AddrArbiter: Implement arbitration types 3 and 4.
11 years ago
Subv
cf071cd897
Services: Added some missing services.
cfg:s, ptm:sysm, apt:s.
apt:s is almost exactly the same as apt:u as per 3dbrew
11 years ago
Lioncash
9288893d29
vfp: Remove dead code
11 years ago
Lioncash
f7770b83d4
dyncom: Fix 32-bit ASR shifts for immediates
11 years ago
Lioncash
e16b35eb53
dyncom: Remove unused flag macros
11 years ago
Lioncash
2843d1b98b
dyncom: Get rid of unnecessary outer-scope variables in InterpreterMainLoop
11 years ago
Lioncash
3ace75a49f
dyncom: Fix overflow flag setting for ADD/RSB/RSC/SUB/SBC
Also cleans up CMN, and CMP.
11 years ago
Lioncash
9c2c89b7e1
dyncom: Add a helper function for addition with a carry
11 years ago
darkf
67c644e317
Fix building on MinGW
11 years ago
Lioncash
d2a05bbbc6
dyncom: Fix ADC overflow flag setting
11 years ago
Lioncash
eabfa5cf43
dyncom: Fix conditional execution of MSR
11 years ago
Subv
b68d51ed30
Thread: Prevent waking a thread multiple times.
If a thread was woken up by something, cancel the wakeup timeout.
11 years ago
Subv
38da198aa1
SVC: Wake up the thread after the delay in WaitSync1
11 years ago
archshift
3b555e2512
Stubbed y2r:u IsBusyConversion
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.
11 years ago
archshift
95be6ad7ae
Added Archive ID to fs:USER debug logs involving opening the archive.
11 years ago
archshift
228843c43e
Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance.
11 years ago
Yuri Kunde Schlesner
8ad41775cc
Kernel: Start using boost::intrusive_ptr for lifetime management
11 years ago
Yuri Kunde Schlesner
d751de7341
Kernel: Don't re-assign object's handle when duplicating one
11 years ago
Yuri Kunde Schlesner
78ea76e12f
Thread: Fix nullptr access in a logging function
11 years ago
Yuri Kunde Schlesner
7f1557fbbd
Thread: Rename thread_queue => thread_list
11 years ago
Yuri Kunde Schlesner
9bf8462b96
Thread: Reduce use of Handles and move some funcs to inside the class.
11 years ago
Yuri Kunde Schlesner
ba72208cd4
Kernel: Move Thread's definition to the header file
11 years ago
Yuri Kunde Schlesner
7b3452c730
Move ThreadContext to core/core.h and deal with the fallout
11 years ago
Subv
40c1439c34
Core: Fixed a crash and removed some unused variables.
ARM_Disasm only has static methods, so there's no need to have an instance of it.
11 years ago
Subv
07044651ef
SVC: Implemented the Timer service calls.
11 years ago
Subv
fc842963c8
DynCom: Add a comment to GetTicks.
11 years ago
Subv
620d77b7e3
Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
11 years ago
Subv
dfc440785a
SVC: Fixed SleepThread.
It will now properly wait the specified number of nanoseconds and then wake up the thread.
11 years ago
Lioncash
1cef6e92d5
dyncom: Fix UMAAL
These need to be done as a 64-bit operation.
11 years ago
Subv
60a373a786
Threads: Use a dummy idle thread when no other are ready.
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.
11 years ago
bunnei
f7a3f45f1e
GSP: Toggle active framebuffer each frame
11 years ago
Kevin Hartman
63be6aaadd
Warn if a new thread is intended to be run on the system CPU core until we implement correct scheduling for such a thread.
11 years ago
Lioncash
df5e0f9f28
dyncom: Fix SMULWB/SMULWT
Wasn't doing proper sign-extension
11 years ago
Yuri Kunde Schlesner
122c2bb324
Common: Clean up ThreadQueueList
Replace all the C-style complicated buffer management with a std::deque.
In addition to making the code easier to understand it also adds support
for non-POD IdTypes.
Also clean the rest of the code to follow our code style.
11 years ago
Subv
9bf82beb4c
CoreTiming: Ported the CoreTiming namespace from PPSSPP
Implemented the required calls to make it work.
CoreTiming: Added a new logging class Core_Timing.
11 years ago
Yuri Kunde Schlesner
a6ad68190f
Fix double-free in Service manager during shutdown
Fixes #423 .
11 years ago
Lioncash
75c211c10f
dyncom: Fix SWPB
11 years ago
Lioncash
511e13f3e3
dyncom: Move over SMLALXY
11 years ago
Subv
8fbe5d2dca
Archives/Exdata: Don't set concrete_mount_point in the ctor
11 years ago
Subv
32dbb76e00
Archives: Changed the unimplemented archives comment.
It now refers to me as the PoC
11 years ago
Subv
5244ac0e9c
Archives: Addressed some comments
11 years ago
Kevin Hartman
8132c01830
Added exclusive reservation granule from ARMv7 spec to dyncom to protect LDR/STREX.
11 years ago
purpasmart96
379b39e583
Services: Clean up a few things and add a few function names
11 years ago
Subv
123a76c9c8
SaveDataCheck: Fixed a typo
11 years ago
Lioncash
f75def619c
dyncom: Partially emulate BXJ
Just in case some game studio let the intern write inline assembly or something.
11 years ago