Commit Graph

3436 Commits

Author SHA1 Message Date
Unknown W. Brackets
fa42426d21 Clamp the final sample count during decode.
Some games depend on / expect this, or else they'll let important data get
overwritten.
2014-09-23 11:33:20 -07:00
Unknown W. Brackets
68f4a1e7f7 Return the correct next sample at the beginning. 2014-09-23 11:33:20 -07:00
Unknown W. Brackets
0aa7247fea Fix seeking in atrac after the start.
Not sure the very start is right though, arg.
2014-09-23 11:33:19 -07:00
Unknown W. Brackets
4702ae0e41 Add breakpoints to most sceAtrac mem access. 2014-09-23 11:33:18 -07:00
Unknown W. Brackets
6b6bf3f8e6 Correct the dataOff member of atrac context. 2014-09-23 11:33:18 -07:00
Unknown W. Brackets
ac1fcdb269 Skip samples in the first chunk of atrac output.
This seems to be what the PSP actually does, although not sure.  The first
result is always smaller by this amount (numerous atrac files tested.)
2014-09-23 11:32:11 -07:00
Unknown W. Brackets
70705d4a9d Remove incorrect atrac decode ptr nullcheck.
Already shown in decode test to be valid.
2014-09-23 08:32:09 -07:00
daniel229
d452d02aba Update replace function for Toaru Majutsu to Kagaku no Ensemble. 2014-09-21 10:58:56 +08:00
daniel229
a657da91c3 Replace download frame in Toaru Majutsu to Kagaku no Ensemble 2014-09-18 15:37:12 +08:00
daniel229
48b774d143 Replace download frame in Rezel Cross 2014-09-18 15:29:59 +08:00
daniel229
2dd3ab6c20 Replace frame download in suikoden1&2 2014-09-15 00:19:22 +08:00
Henrik Rydgard
f84ebf6bff sprintf->snprintf, fix some too short buffers 2014-09-14 00:14:11 +02:00
Henrik Rydgard
02a89306d1 Warning fixes, sprintf->snprintf 2014-09-13 23:51:07 +02:00
Unknown W. Brackets
a892779f89 Merge pull request #6880 from daniel229/func_replace_sakurasou
Replace frame download in Sakurasou No Pet Na Kanojo

Conflicts:
	Core/HLE/ReplaceTables.cpp
2014-09-12 22:28:27 -07:00
daniel229
5f4a95cdd5 Update as unknown's suggestion 2014-09-13 10:21:00 +08:00
Unknown W. Brackets
4bad83b12b Move a couple funcs outside of loops.
Will cut down on the performance hit.
2014-09-11 22:56:53 -07:00
daniel229
7c1d4234ab Replace frame download in Sakurasou No Pet Na Kanojo 2014-09-11 15:32:07 +08:00
daniel229
22fa431f89 Replace frame download in Ore no Imouto ga Konnani Kawaii Wake ga Nai 2014-09-11 14:34:17 +08:00
daniel229
81ec625d0a Update the hook for Kirameki School Life SP 2014-09-11 12:01:58 +08:00
daniel229
e8efab6d21 Change function name 2014-09-11 00:47:06 +08:00
daniel229
7f6f52a904 Fixes saveicons in Kirameki School Life SP. 2014-09-11 00:18:59 +08:00
daniel229
b1d9461779 Replace frame download in Narisokonai Eiyuutan 2014-09-09 14:33:15 +08:00
Unknown W. Brackets
420eb1bed3 Replace frame download in SD Gundam G Generation. 2014-09-08 22:44:27 -07:00
Unknown W. Brackets
ee6960ff7a Hook the saveicon creation func in Growlanser IV. 2014-09-08 19:10:46 -07:00
Unknown W. Brackets
cddc289675 Use fixed dates for rtc adjusted and reincarnated.
This may be safer in case a game thinks funny business is going on if the
user changed the clock very recently, which wouldn't be the case on a
real PSP.
2014-09-05 09:34:09 -07:00
Unknown W. Brackets
1e31fd54eb Implement rtc date formatting funcs. 2014-09-05 09:13:33 -07:00
Unknown W. Brackets
0180d18449 Correct sceRtcGetDayOfWeek() for odd years. 2014-09-05 09:13:08 -07:00
Andrew Church
6afa948d06 s32 -> int because it doesn't need to explicitly be 32 bits. 2014-09-05 00:31:25 +09:00
Andrew Church
0512a17654 Read lw offset as a signed value. 2014-09-05 00:25:48 +09:00
Andrew Church
230bbad1c6 Read the offset for the framebuffer index from the instruction stream
instead of using a literal constant, so the hook works for other games
using the same function but a different offset (e.g. Zero no Kiseki).
Also remove the memcpy() since the original function will do it anyway
(and may do it differently if other games call the function with
different arguments).
2014-09-04 23:44:32 +09:00
Andrew Church
33264a6b8f Hook Brandish frame capture for menu fadeout and save screenshots. 2014-09-04 17:36:56 +09:00
Henrik Rydgård
8b67f427b0 Merge pull request #6826 from thedax/hle-stub
Add a non-functional stub for sceNetResolverInit.
2014-09-02 22:42:15 +02:00
The Dax
c2afa8f221 Add a non-functional stub for sceNetResolverInit.
Lets a Quake II homebrew port by CROW_BAR boot again.
2014-09-02 15:40:42 -04:00
Henrik Rydgård
b2f5efaa50 Merge pull request #6822 from unknownbrackets/thread-funcs
Improve some timing / thread funcs
2014-09-02 09:49:46 +02:00
Unknown W. Brackets
c9df66a450 Initialize the VFPU revision from a PSP-3000 value. 2014-09-01 23:16:50 -07:00
Unknown W. Brackets
d637de8b4c Eat some cycles when signaling semaphores.
Seems to match tests.
2014-09-01 21:12:56 -07:00
Unknown W. Brackets
2923800217 Eat some cycles when starting a thread.
Seems to improve a test a bit, based on tests.
2014-09-01 21:12:13 -07:00
Unknown W. Brackets
84231c0188 Eat some cycles when canceling/deleting fpls.
Improves tests measuing timeouts remaining after delete.
2014-09-01 21:11:41 -07:00
Unknown W. Brackets
c5b15cc9fc Adjust semaphore timing slightly.
This matches tests a bit better.
2014-09-01 20:03:58 -07:00
Unknown W. Brackets
6599430c04 Improve some timing in msgpipes.
Probably not super important, but makes tests happier.

Also, when unscheduling an event, return the current time left, including
already spent time since last Advance.
2014-09-01 20:03:58 -07:00
Unknown W. Brackets
a42a2864a6 Protect against vtimers scheduled in past. 2014-09-01 20:03:57 -07:00
Unknown W. Brackets
f78712ec3a Simplify alarm timing.
This is from when it seemed like sceKernelSetAlarm() was by cycles.
Corrects handling of large timer / sysclock params.
2014-09-01 20:03:57 -07:00
Unknown W. Brackets
2cad35ad59 Put a 250us minimum on all vtimer scheduling. 2014-09-01 20:03:56 -07:00
Unknown W. Brackets
4e9f54a400 Require 250us lead time to start a vtimer.
Matches tests, improves the threads/vtimers/delete test.
2014-09-01 20:03:56 -07:00
Unknown W. Brackets
baf465500a Fix a bad iterator dereference in sceMpeg.
Though not sure it should actually reach here, let's at least not crash.
2014-08-31 21:15:04 -07:00
sum2012
06fae5bcbc Add a "no loop information" log 2014-09-01 04:47:12 +08:00
sum2012
55cb292bad Correct sceKernelSelfStopUnloadModule 's name and logging 2014-08-29 20:36:21 +08:00
sum2012
26b25052c2 Fix sceKernelSelfStopUnloadModule parameters
According to http://code.google.com/p/jpcsp/source/detail?r=3597
2014-08-29 20:31:25 +08:00
Henrik Rydgard
1d7642fa48 Remove most mentions of the "_XBOX" define 2014-08-24 14:21:35 +02:00
Henrik Rydgard
0f973a3276 Get it running on Android again 2014-08-23 09:48:08 +02:00
Henrik Rydgard
dfbb0bdea2 Hack: Return -1 specifically for trying to load SFO's as modules. Works around #6748
Will test properly later and return the correct value but this should be zero-impact.
2014-08-21 10:34:56 +02:00
Henrik Rydgård
d52c87d82c Merge pull request #6722 from sum2012/wwe
check for duplicated stack addresses by JimLee168
2014-08-20 16:34:02 +02:00
Henrik Rydgård
2de6b471ce Merge pull request #6616 from unknownbrackets/modules
Improve module loading and allocation
2014-08-19 08:00:47 +02:00
Henrik Rydgård
72d5a55791 Merge pull request #6675 from unknownbrackets/threadman
Correct sceKernelThreadmanIdList behavior
2014-08-19 07:56:54 +02:00
Henrik Rydgård
e7a1761147 Merge pull request #6597 from unknownbrackets/ge-minor
Unpause lists after wait signals with no handler
2014-08-19 07:56:37 +02:00
Henrik Rydgård
5f8f3633a8 Merge pull request #6685 from unknownbrackets/kill-volume
Remove bgm and sfx volume settings
2014-08-19 07:56:01 +02:00
Unknown W. Brackets
3fbab33c91 Only loop at video end.
In case of a short video that runs out of data but isn't ready to loop
yet.
2014-08-17 15:46:04 -07:00
Unknown W. Brackets
909ac62669 Return a proper error for fake TMIDs. 2014-08-17 14:38:56 -07:00
Unknown W. Brackets
6852e32d6b Support other thread TMIDs in uid listing. 2014-08-17 14:38:55 -07:00
Unknown W. Brackets
b8f8707ea1 Allow a bad pts on zero size when listing uids. 2014-08-17 14:38:55 -07:00
Unknown W. Brackets
feeb03b5ff Fix return values in sceKernelGetThreadmanIdList().
Support other object types as well, but not threads/etc. properly yet.
2014-08-17 14:38:54 -07:00
Unknown W. Brackets
774589aa4f Correct the Tlspl TMID value. 2014-08-17 14:38:54 -07:00
Unknown W. Brackets
dc16ad3744 Report forwarding module load to loadexec.
Shouldn't do this probably.
2014-08-17 14:26:01 -07:00
Unknown W. Brackets
abacba4e31 Clarify some module loading code. 2014-08-17 14:26:00 -07:00
Unknown W. Brackets
a16ccf52e7 Allocate kernel modules that fail to decrypt.
This corrects some memory semantics to match real firmware.
2014-08-17 14:25:59 -07:00
Unknown W. Brackets
f864b6be63 Allocate 0x4000 at the bottom like real firmware.
Should fix #4056.
2014-08-17 14:25:59 -07:00
Unknown W. Brackets
71e8c0f6e0 Sum all .bss* sections when counting bss size. 2014-08-17 14:25:58 -07:00
Unknown W. Brackets
0a14fd5ee9 Skip zero size segments in module segment info. 2014-08-17 14:25:58 -07:00
Unknown W. Brackets
bf03e32027 Add a safety check for freeing kernel modules. 2014-08-17 14:25:57 -07:00
Unknown W. Brackets
7c37d64717 Load kernel modules into kernel memory.
This way they don't eat up user memory space.
2014-08-17 14:25:55 -07:00
Unknown W. Brackets
99d96218e1 Correct some loadmodule error codes. 2014-08-17 14:25:55 -07:00
Unknown W. Brackets
cf4b607113 Validate the elf position argument more. 2014-08-17 14:25:54 -07:00
Unknown W. Brackets
1d310ad8bb Allocate module memory from top/bottom per request. 2014-08-17 14:25:54 -07:00
Unknown W. Brackets
1d195a37e4 Cleanup modules on unloadself. 2014-08-17 14:25:53 -07:00
Unknown W. Brackets
5c470a1923 Remove bgm and sfx volume settings.
They don't actually work in all games, and this only confuses users.

Also, the default 7 lowers the volume of audio detected as bgm or sfx, but
not other volume.  This means that some audio may have played too loud in
some games by default, which will be fixed by this change.
2014-08-17 14:16:59 -07:00
Unknown W. Brackets
413523c8ac Unpause lists after wait signals with no handler.
This stops the gpu/displaylist/state test from hanging, and appears to be
the correct behavior.  It makes sense.
2014-08-17 14:14:25 -07:00
Henrik Rydgard
8560e317d0 Reload the stream on loop. Fixes #6703. Thanks to @unknownbrackets 2014-08-17 22:29:01 +02:00
sum2012
6024fe7e13 Don't need duplicate the whole table 2014-08-15 23:30:51 +08:00
sum2012
9f4efaf142 Add sceLibFttt
Same as sceFont
2014-08-15 22:42:08 +08:00
JimLee168
8099281928 check for duplicated stack addresses
Based on https://code.google.com/p/jpcsp/source/detail?r=3569

Fix WWE SmackDown! vs. RAW 2006
2014-08-13 21:28:22 +08:00
daniel229
a1f922baff fix typo,add sceUsbGpsGetState() function 2014-08-13 01:47:24 +08:00
daniel229
88124952a2 add sceUsbGpsOpen() function 2014-08-13 01:18:03 +08:00
daniel229
1ff9507f7c Add sceUsbGps module 2014-08-13 00:11:26 +08:00
Unknown W. Brackets
3bd945c2a8 Ignore displaybuf in psmfplayer when warming up.
Should fix #6704.
2014-08-10 21:56:05 -07:00
Unknown W. Brackets
5525c0a485 Use a lookup for function replacements.
Ought to be a tiny bit quicker.
2014-08-03 13:17:55 -07:00
Unknown W. Brackets
d060a06fa6 Disable a bunch of function replacements.
These are just for speed, let's turn them off.  Using a flag because:
 * I think there's still some issue with savestates, not sure.
 * We might swap this flag to a separate option.
2014-08-03 13:15:41 -07:00
Unknown W. Brackets
f198a7f587 Use checked pointers in all function replacements.
Some games are still hitting bugs and there's no way to disable this "fast
memory" without losing graphical effects.  Better to do it evenly than
weird hacks and extra logging/checks.
2014-08-03 13:04:00 -07:00
Henrik Rydgard
bc3b4c5512 Disk swap: Remount the ISOBlockSystem too. Should fix #6662 2014-08-02 12:35:27 +02:00
Henrik Rydgard
b7ac539420 Fix crash after loading state from within Psmf movie
(a variable was not initialized)
2014-07-28 00:01:28 +02:00
Henrik Rydgård
936dd58367 Merge pull request #6640 from JimLee168/master
Atrac buffer validate RIFF header
2014-07-27 21:08:32 +02:00
sum2012
21e024eeda sceMpegRingbufferAvailableSize might use a different
Based on http://code.google.com/p/jpcsp/source/detail?r=1813
Fix #5112
2014-07-27 23:40:46 +08:00
JimLee168
9722e1eb03 Atrac buffer validate RIFF header 2014-07-27 19:02:01 +08:00
Unknown W. Brackets
c7a2753a00 Fix savestates when there are psmfplayers.
Oops.  Fixes #6613.
2014-07-25 09:19:07 -07:00
Henrik Rydgard
85cb55cb84 Check some addresses in sceAtracDecodeData 2014-07-21 10:30:52 +02:00
Henrik Rydgård
0e5679c833 Revert "Detect Peace Walker's anti-cheat hash func" 2014-07-20 23:39:11 +02:00
The Dax
c1fc04ee64 Remove the "Change MAC Address" screen, and simply generate a new (random) one upon pressing the button. 2014-07-18 16:58:26 -04:00
Henrik Rydgård
06f058de54 Merge pull request #6506 from unknownbrackets/replace-funcs
Detect Peace Walker's anti-cheat hash func
2014-07-18 09:34:46 +02:00
Unknown W. Brackets
a59d8b5c1f Override the codehashing func used in Peace Walker.
This makes the demo work fine even with jit enabled.  May help the full
game when fighting a certain boss.
2014-07-18 00:23:26 -07:00
Sacha
cd20288d99 Fix some compiler warnings. 2014-07-17 00:49:58 +10:00
Unknown W. Brackets
9581de449a Fix some logging in sceNetAdhoc. 2014-07-15 23:35:19 -07:00
Unknown W. Brackets
2f90c8d35a Fix a bad == comparison typo. 2014-07-15 23:33:01 -07:00
Sacha
1ce39d7e95 Improve frame timing on non-Windows. Disable IdleTiming when audio is disabled. 2014-07-16 01:04:43 +10:00
Unknown W. Brackets
ff7c3ab10d Oops, would still infinite loop on a bad module.
Should really fix #6552 this time.
2014-07-15 07:14:13 -07:00
Unknown W. Brackets
2da02f97c8 Null check modules on loadexec.
Should fix #6552.
2014-07-14 22:14:23 -07:00
Henrik Rydgård
c4bebda182 Merge pull request #6549 from unknownbrackets/modules
Correct some module func return values, info values, and clear on unload
2014-07-14 14:11:29 +02:00
Unknown W. Brackets
bddeba5901 Add a safety check for lots of segments. 2014-07-13 23:51:36 -07:00
Unknown W. Brackets
4ced0e86b1 Return an error code when module load fails.
If we're out of memory, we need to tell the game, of course.
2014-07-13 22:00:33 -07:00
Unknown W. Brackets
7c4aab3cc2 Warn on exports from syslib.
They don't seem to hook up properly on hardware by the module name.
2014-07-13 22:00:33 -07:00
Unknown W. Brackets
50402a3d49 Return NOT_YET_LINKED for unlinked module funcs. 2014-07-13 22:00:32 -07:00
Unknown W. Brackets
292a9ea567 Clear module text and bss on unload.
Text is set to break instructions, data/bss to -1.  Matches results on a
PSP.
2014-07-13 22:00:32 -07:00
Unknown W. Brackets
ede29179c6 Cleanup remaining modules on loadexec. 2014-07-13 22:00:31 -07:00
Unknown W. Brackets
729377881c Protect against modules with no start address.
Generally, fake ones.
2014-07-13 19:58:30 -07:00
Unknown W. Brackets
4a94a30ba6 Calculate the module info data/text/bss size. 2014-07-13 19:53:00 -07:00
Unknown W. Brackets
1c7873e2f5 Fill the module info segment addresses and sizes. 2014-07-13 19:16:25 -07:00
Unknown W. Brackets
399d4d1ba9 Correct sceKernelModuleStart() return value. 2014-07-13 15:16:03 -07:00
Unknown W. Brackets
3fa1481fe9 Cut down on "remaining data in packet" reports.
Looks potentially like a bug in FFmpeg.
2014-07-13 11:26:00 -07:00
Unknown W. Brackets
8dd783f719 Correct HLE function name per sha. 2014-07-13 11:03:23 -07:00
Unknown W. Brackets
81096f6bd0 Hook Dissidia's avi record func.
This makes it so replays can be recorded.  Though you could probably just
record separately anyway.
2014-07-13 08:36:34 -07:00
Unknown W. Brackets
98d3dc4be8 Typos. 2014-07-12 13:48:30 -07:00
Unknown W. Brackets
ef4847b6f5 Don't double decrease g_inCbCount.
Happened when a thread was deleted, it seems like.  Fixes #6542.
2014-07-12 09:57:13 -07:00
Unknown W. Brackets
b370621a3a Fix sceCtrl buffer update timing drift.
Spotted by xsacha.  Only when not using vblank timing (most commonly used
by games.)
2014-07-06 01:08:44 -07:00
Unknown W. Brackets
2910f7e7a2 Flush icache before memcpys.
Maybe there's a way to optimize this better...
2014-07-05 13:23:47 -07:00
Unknown W. Brackets
cd78e1676d Fix savestates broken by #6493. 2014-07-05 07:30:03 -07:00
Sacha
2bb87bbe23 HLE: sceUsb stubs. 2014-07-04 06:27:01 +10:00
Sacha
135c79ee78 Implement sceGzipDecompress and sceDeflateDecompress. Some games (eg. Suto Mani / Strobe Mania) required this. They are now playable. Fixes #146 2014-07-03 13:58:47 +10:00
Karen Tsai
1d1096633f Removed some extraneous tabs in sceKernelModule.cpp 2014-07-02 13:21:27 -04:00
Henrik Rydgård
da32e5d4e3 Merge pull request #6481 from sum2012/sceKernelModule
Correct sceKernelSelfStopUnloadModule
2014-07-02 18:30:38 +02:00
Unknown W. Brackets
2d54c1cf4e Reset the audio rate on save/load state.
Should fix #6484.
2014-07-02 08:11:26 -07:00
sum2012
96c6a53e58 Fix space bug 2014-07-02 20:27:17 +08:00
sum2012
0256c7e056 Use with same code with sceKernelStopUnloadSelfModuleWithStatus 2014-07-02 20:08:27 +08:00
Unknown W. Brackets
b73c1ba29b Reduce audio drift from 44.1kHz.
Although, not sure what the PSP's actual exact timing is...
2014-07-01 23:08:38 -07:00
sum2012
eecd9038cd Init exitCode variable 2014-07-02 08:00:41 +08:00
sum2012
bc4a9149d3 Correct sceKernelSelfStopUnloadModule
Fix #4237
2014-07-02 07:25:49 +08:00
Unknown W. Brackets
e505655c2b Fix a potential crash/race condition.
If anything is behind, it might run __AudioWakeThreads() within
reschedule, and get confused.
2014-07-01 08:02:34 -07:00
Unknown W. Brackets
5cd4a17e88 Fix periodic events drifting when eating cycles.
Need to set the next timer before rescheduling threads or etc.
2014-07-01 00:26:15 -07:00
Henrik Rydgård
bfffe33438 Merge pull request #6469 from unknownbrackets/logging
Enforce semicolons at the end of log lines
2014-06-30 11:44:02 +02:00
Unknown W. Brackets
c6f5ddd7a4 Reset replacements on loadexec.
Just to make sure we don't get confused.
2014-06-30 00:27:05 -07:00
Unknown W. Brackets
0a33eb4c42 Fix missing log semicolons only affecting logging. 2014-06-29 19:09:39 -07:00
Unknown W. Brackets
0078faef8b Fix some log semicolons that might affect logic.
But, these should all be right.
2014-06-29 19:09:38 -07:00
Unknown W. Brackets
5db79dcf11 Fix some missing semicolons on log statements. 2014-06-29 19:09:37 -07:00
Henrik Rydgard
38609f3e6b Cleam up thread names a bit, name the Main thread.
Also makes some logging VERBOSE.
2014-06-29 12:53:03 +02:00
Unknown W. Brackets
1c3b60a8ee Allow changing software skinning at runtime. 2014-06-28 21:46:43 -07:00
Henrik Rydgård
b379109380 Merge pull request #6450 from unknownbrackets/gpu-blocktransfer
Clear framebuffers/textures upon sceKernelLoadExec()
2014-06-29 01:48:34 +02:00
Unknown W. Brackets
b4594c7bc5 Avoid Advance() twice, cleanup some comments. 2014-06-28 16:20:35 -07:00
Unknown W. Brackets
b68ad3844e Simplify __KernelReSchedule().
It no longer needs all these checks, and we can Advance within callbacks,
interrupts, etc. safely.
2014-06-28 16:17:52 -07:00
Unknown W. Brackets
0edeb085ab Allow rescheduling within callbacks. 2014-06-28 14:58:56 -07:00
Unknown W. Brackets
ac2c44ddd9 Revert the early wake of threads for io waits.
This reverts commit 610ada8721.

It makes sense to let these run longer.  Apparently this caused problems
in Castlevania, see #6432.
2014-06-28 12:29:55 -07:00
Unknown W. Brackets
745c453b33 Remove hleAfterCheckAllCallbacks().
Not being used, doesn't make sense - rescheduling is what does that, only.
2014-06-28 03:10:30 -07:00
Unknown W. Brackets
10096b94f2 Correctly remember callback status when sleeping.
If a callback triggered right away after a sceKernelSleepThreadCB(), it
would trigger the "current callback" and remember callback status as
false, instead of true (since it was set later.)

This corrects that by ignoring it if both are set.
2014-06-28 03:06:30 -07:00
Unknown W. Brackets
5ab3750186 Reduce the thread switching cost.
Maybe it was actually too high.  Some tests fail with it that high.
2014-06-27 01:00:11 -07:00