Lioncash
8575010a68
dyncom: Handle the ARM A2 encoding of STRT/LDRT
...
These were also missing the shifted register case.
2015-01-17 13:53:35 -05:00
Lioncash
0a5d450e94
dyncom: Handle the ARM A2 encoding of LDRBT/STRBT.
2015-01-16 21:05:27 -05:00
bunnei
2572a62480
APT: Fix typo in setting return code for NotifyToWait
2015-01-15 18:23:53 -05:00
bunnei
350c5a7e32
DSP: Removed useless spam log for SignalInterrupt
2015-01-15 18:20:58 -05:00
bunnei
4b47ed6194
Merge pull request #482 from yuriks/fix-vblank
...
Correctness fixes for GPU flipping and interrupts
2015-01-15 18:11:03 -05:00
bunnei
3ff5a80d46
Merge pull request #481 from Subv/hm_b
...
APTU: Stubbed NotifyToWait, taken from 3dmoo.
2015-01-14 21:39:49 -05:00
Sebastian Valle
fd1b600e05
APT: Fixed the comment style in some variables
2015-01-14 10:14:22 -05:00
bunnei
394d44cf74
Merge pull request #480 from Subv/arb_2
...
AddrArbiter: Implement arbitration types 3 and 4.
2015-01-14 10:04:33 -05:00
Yuri Kunde Schlesner
a09f71521e
GPU: Fix buffer overrun in Display Transfers
...
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.
2015-01-14 05:20:14 -02:00
Yuri Kunde Schlesner
7630b31672
GSP: Fix appending of interrupts to the shared memory buffer
...
The code was previously appending the interrupt to after the end of the
buffer, instead of at the end.
2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner
9e084826b8
GPU: Do periodic VBlank updates using CoreTiming
2015-01-14 05:20:13 -02:00
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.
2015-01-14 05:20:13 -02:00
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.
2015-01-14 05:20:12 -02:00
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.
2015-01-14 05:07:35 -02:00
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
2015-01-13 19:18:10 -05:00
Subv
9e2ae289b8
AddrArbiter: Implement arbitration types 3 and 4.
2015-01-13 14:49:26 -05:00
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
2015-01-13 14:43:30 -05:00
Lioncash
9288893d29
vfp: Remove dead code
2015-01-12 15:24:57 -05:00
Lioncash
f7770b83d4
dyncom: Fix 32-bit ASR shifts for immediates
2015-01-12 14:15:24 -05:00
Lioncash
e16b35eb53
dyncom: Remove unused flag macros
2015-01-12 12:57:15 -05:00
bunnei
f3a7b66267
Merge pull request #472 from lioncash/overflow
...
dyncom: Fix some more V-flag setting ops. Plus some cleanup.
2015-01-12 10:35:19 -05:00
Lioncash
2843d1b98b
dyncom: Get rid of unnecessary outer-scope variables in InterpreterMainLoop
2015-01-12 01:11:46 -05:00
Lioncash
3ace75a49f
dyncom: Fix overflow flag setting for ADD/RSB/RSC/SUB/SBC
...
Also cleans up CMN, and CMP.
2015-01-12 01:03:58 -05:00
Lioncash
9c2c89b7e1
dyncom: Add a helper function for addition with a carry
2015-01-12 00:44:28 -05:00
darkf
67c644e317
Fix building on MinGW
2015-01-11 20:22:08 -08:00
Lioncash
d2a05bbbc6
dyncom: Fix ADC overflow flag setting
2015-01-11 22:27:09 -05:00
bunnei
b33380ca59
Merge pull request #456 from Subv/waitsync1
...
SVC: Wake up the thread after the delay in WaitSync1
2015-01-11 18:52:09 -05:00
Lioncash
eabfa5cf43
dyncom: Fix conditional execution of MSR
2015-01-11 18:45:45 -05:00
bunnei
542b0b0057
Merge pull request #466 from Subv/wake
...
Thread: Prevent waking a thread multiple times.
2015-01-11 13:39:23 -05:00
Subv
b68d51ed30
Thread: Prevent waking a thread multiple times.
...
If a thread was woken up by something, cancel the wakeup timeout.
2015-01-11 13:18:52 -05:00
Subv
38da198aa1
SVC: Wake up the thread after the delay in WaitSync1
2015-01-11 10:42:59 -05:00
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.
2015-01-10 22:47:31 -08:00
archshift
95be6ad7ae
Added Archive ID to fs:USER debug logs involving opening the archive.
2015-01-10 14:32:11 -08:00
archshift
228843c43e
Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance.
2015-01-10 14:32:10 -08:00
Yuri Kunde Schlesner
8ad41775cc
Kernel: Start using boost::intrusive_ptr for lifetime management
2015-01-09 19:43:52 -02:00
Yuri Kunde Schlesner
d751de7341
Kernel: Don't re-assign object's handle when duplicating one
2015-01-09 19:43:51 -02:00
bunnei
6ae12424df
Merge pull request #444 from yuriks/handle-reform2
...
Kernel Lifetime Reform Pt. 2
2015-01-09 12:59:35 -05:00
bunnei
86e07124ad
Merge pull request #436 from kevinhartman/system-core
...
Warn if a new thread is intended to be run on the system CPU core
2015-01-09 11:14:35 -05:00
Yuri Kunde Schlesner
78ea76e12f
Thread: Fix nullptr access in a logging function
2015-01-09 04:02:28 -02:00
Yuri Kunde Schlesner
7f1557fbbd
Thread: Rename thread_queue => thread_list
2015-01-09 04:02:17 -02:00
Yuri Kunde Schlesner
9bf8462b96
Thread: Reduce use of Handles and move some funcs to inside the class.
2015-01-09 04:02:15 -02:00
Yuri Kunde Schlesner
ba72208cd4
Kernel: Move Thread's definition to the header file
2015-01-09 03:51:55 -02:00
Yuri Kunde Schlesner
7b3452c730
Move ThreadContext to core/core.h and deal with the fallout
2015-01-09 03:51:55 -02:00
bunnei
d46f650036
Merge pull request #255 from Subv/cbranch_3
...
Implemented timers
2015-01-08 22:38:33 -05:00
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.
2015-01-08 21:49:41 -05:00
Subv
07044651ef
SVC: Implemented the Timer service calls.
2015-01-08 21:22:14 -05:00
Subv
fc842963c8
DynCom: Add a comment to GetTicks.
2015-01-08 19:46:00 -05:00
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
2015-01-08 19:39:14 -05:00
bunnei
cf1bbe8705
Merge pull request #443 from Subv/sleep_thread
...
SVC: Fixed SleepThread
2015-01-08 18:45:35 -05:00
Subv
dfc440785a
SVC: Fixed SleepThread.
...
It will now properly wait the specified number of nanoseconds and then wake up the thread.
2015-01-08 18:39:12 -05:00