ID member m_flags has been replaced with m_type, which stores the type
of the object referenced by the ID and added std::set<IDType> to the ID
manager to group relevant IDs in order to use them later in some
lv2/sys_process functions and the Kernel Explorer.
There is already a setting on the menu (Settings > HLE > Always start
after boot) to do that. Make it active by default since disabling it is
only useful for debugging purposes.
Very small commit to take care of one thing missing in #409.
Reasons for that change:
<Nekoteki>AlexAltea: it's fatal error that shouldn't be ignored
<Nekoteki>AlexAltea: the second reason, ps3 can handle page faults by
itself
* Removed Plugins.h file as I assume setting up a plugin hell is a bad
idea (does anyone disagree?).
* Removed FnIdGenerator, and moved FnIdGenerator::GenerateFnId to
getFunctionId in Modules.cpp
* Disabled RSX Debugger and Memory Viewer when the emulator is stopped.
* ELF64Loader::LoadPhdrData refactored.
* Replace `int` with `s32` as return type for syscalls.
* Renamed `SC_Something.*` files with the proper lv2 name
`sys_something.*`.
* Moving away from the lv2, those functions and folders that doesn't
correspond to lv2 functions. E.g. module functions from sys_io,
sysPrxForUser, cellGcmSys.
* Splitted some files (memory -> memory+mmapper) and merged other ones
(event+event_flag ->event, spu+spu_thread -> spu), according to common
sense, PSDevWiki docs, and checking firmware files.
* Removed external functions from `SysCalls.h`.
NOTE: What should we do about: cellGcmCallback? It's not a lv2 syscall
but it appears on the sc_table and it is actually called in games. Is
this some kind of hack?
* Splitted the file in SC_Process.h and SC_Process.cpp.
* Some argument data types modified on sys_process_* functions.
* Implemented sys_process_get_number_of_object and sys_process_get_id.
* Added dummy versions of other sys_process_* functions based on the old
SysCalls::lv2Process* code (which I deleted).
* Improved BE <-> LE comparisons on SC_Mutex, SC_Lwmutex and SC_Lwcond.
* Updated some SC_Memory functions to use mem_ptr_t<T>.
NOTE: There are probably better ways to get the active objects that
don't imply creating a new data type filled with std::set<u32>'s.
TODO: For some types, the corresponding std::set<u32> isn't being
updated when an object is created/destroyed. I'll take care of this
soon.
* cellSaveDataFixedSave2 and cellSaveDataFixedLoad2 implemented. Still a
little buggy.
* Small fix the cellSaveDataList(Save|Load)2 problem in Disgaea D2 and
other games.
NOTE: cellSysutil_SaveData.cpp is a total mess: some blocks of code
appear in all the syscalls. I just want to wait until most of the
SaveData functions are implemented and working to do some serious
refactoring.
* Replaced ddx/ddy with dFdx/dFdy in FP recompiler.
* SysCalls table edited. It should now be easier to read / edit. Tell me
if you disagree with this.
* This commit solves the cellPngDec GetMemFromAddr(0x0) error when
loading PNGs from files.
* cellVideoOutGetResolution, cellRtc* syscalls rewritten to use the use
the mem*_t data types.
* Replaced int/uint with s32/u32 in some syscall arguments and structs.
* cellSaveData improvements: cellSaveDataListLoad2 should work perfectly
(ignoring the fact that there is no dialog, and the first entry is
chosen automatically). cellSaveDataListSave2 has improved too. Some code
refactoring is required though.
* Reverted (deleted) Emu/SysCalls/Dialogs/ folder which I accidentally
included while merging Nekotekina's branch (including minor SaveData
changes).
* Modified some small things in cellGcmSys.
* Reverted commit
https://github.com/DHrpcs3/rpcs3/commit/950fcfe4ef6da8aad5198fc12b029862545cfc4e
(Reverted ConLog changes) that fixed the "Bad flip!" error since there
is a better way of solving it. It will be fixed soon.
* Moved cellSaveData to cellSysutil (but preserving the functions in a
separated file named: cellSysutil_SaveData.cpp).
* Progress on cellSaveDataList* functions.
* Added a small margin to the new Settings dialog. :-)
* Improved PSF Loader: Now you can get the value of the PARAM.SFO
entries directly with the GetString(key), GetInteger(key) methods.
GameInfo related lines were removed since they have nothing to do with
PSF files.
* cellGame, cellSysutil, and GameViewer are modified because of the PSF
Loader changes.
* Removed unnecessary null pointer checks:
https://github.com/DHrpcs3/rpcs3/issues/126
* Added cellSaveData.cpp to the project.
* Fixed wrong cellSaveData structs.
* Fixed compilation problem caused by the switch/case statements
introduced in sceNpTrophy and TROPUSR.cpp in the last commit
* Added a loader for the TROPUSR.DAT files.
* Added a few structs/enums to sceNpTrophy.h
* Added more sceNpTrophy functions and updated other ones.
* Updated cellHddGame error codes in cellSysutil.h
* Added addresses of cellHddGame to cellSysutil_init.
NOTE: There is a known problem in the `if
(!Emu.GetVFS().ExistsFile(filepath))` in `TROPUSRLoader::Load` which
causes the games to overwrite their TROPUSR.DAT file every time they
boot and they "forget" the unlocked trophies. However, as long as the
game is running the unlocked trophies should be still there.
* Fixed tabs/spaces problem in cellSysutil.h too.
NOTE: The problem with cellFont (crash on line 604) has been fixed, but
for a high price: There is now a huge memory leak when a NULL pointer is
passed to cellFontRenderSurfaceInit.
* TRP Loader and sceNpTrophyRegisterContext improved.
* cellSysutil constants moved to cellSysutil.h
* cellGameBootCheck bug fixed that makes size->hddFreeSizeKB be 0.
* Added system language selector (this is *not* RPCS3's language).
cellSysutilGetSystemParamInt(0x111) will return the selected language.
NOTE: The problems caused by the last commit (pull request #104 merged)
are not yet fixed.
* sys_net; Added some functions using winsock.h | sys/socket.h
* sys_net: Renamed overloaded function/structs "*" to "sys_net_*"
* Added SetAddr function to mem_base_t
* Some SPU instructions updated:
- Updated wrong instructions: SHLH, FRDS
- Added UNIMPLEMENTED warning to: HBR, HBRA, HBRR
* Updated sys_mmapper_allocate_memory declaration in SysCalls.h
* Added sceNp.cpp to project
* Added checkbox in the Settings menu for exiting RPCS3 when
sys_process_exit (SC_Process.cpp) is called. Unfortunately, due to some
problems, this checkbox doesn't have a real effect yet.
* sceNpManagerGetStatus
* sys_mmapper_free_memory
* Minor changes in sys_mmapper_allocate_memory
* Changed the layout of the sys_vm functions in SysCalls.cpp
* Using be_t in CellGcmControl, CellGcmConfig, CellGcmContextData and
CellGcmTileInfo.
* Fixed wrong names in Emu/SysCalls/Modules/sceNp.cpp
* Fixed ConLog's mount info strings in System.cpp
* Fixed incorrect time displayed on NV4097_GET_REPORT.
* Fixed small bug in PKGLoader::UnpackEntry
* Moved some code in SC_Time.cpp
* Auxiliary function declarations of SC_Time.cpp in SC_Time.h
* Updated cellFsUnlink. *This won't work until ExistsFile is fully
implemented*.
* Moved RSXTexture from RSXThread.h to RSXTexture.h
* Renamed RSXTexture::Getmipmap to RSXTexture::GetMipmap
* Used more GCM texture format constants in GLGSRender.h
* PKG Loader: Added an "Overwrite?" dialog in case the folder
dest+titleID (i.e. "/dev_hdd0/game/"+titleID) already exists. Note that
in that case, the game won't be installed regardless of the option you
choose on the dialog.
* Rewritten unpkg.c -> Loader/PKG.cpp
* MainFrame::InstallPkg now *only* installs the PKG.
* Fixed crash when unpacking big debug PKG files.
* Debug PKGs are no longer recrypted.
* 'About...' dialog updated to remove PKG-related notice.
* Unpkg removed.
NOTE: The class PKGLoader is using wxWidgets functions to access the
files. I think VFS would be better, but the Emulator isn't necessarily
running when installing the PKG. In the other hand, initializing VFS
with RPCS3 may be somewhat risky... Any alternatives?
TODO: Get rid of the decrypted "*.dec" files, and try to decrypt and
read contents of the PKG on the fly using the information stored in
m_entries.
* Removed Compiler ELF references from rpcs3.cpp
* Reordered the menu bar lines.
* Moved the construction of some panels of MainFrame from rpcs3.cpp to
MainFrame.cpp
* Added checkbox in the Settings dialog for logging/editing shader
programs.
* Added "Programs" tab to the RSX Debugger. Double-click on the entries
to view/edit the shaders. Click on "Yes" after closing the editor will
recompile your program even if no changes were done.
* Replaced "Ctrl+C" shortcut for running the emulator with "Ctrl+E" to
avoid accidentally unpausing the emulator when copying text.
* Added glDetachShader to GLProcTable.tbl
NOTE: There is a known bug: For some reason, certain shaders refuse to
compile again, even if you save the original shader as the "new" one.
* Fixed identation inconsistency after last merge.
* Replaced uint32_t with u32 in LinearToSwizzleAddress.
* Replaced hardcoded values with defined GCM constants (in Emu/GS/GCM.h)
in some switch statements.
This commit won't produce any changes in the RPCS3 executable. It's just
to make the code easier to read.
* Restored deleted functions in FuncList.cpp
* Fixed bugs in TRPLoader.
* Implemented some sceNpTrophy syscalls.
* Added sceNp headers (required for sceNpTrophy).
* Updated .gitignore to ignore trophies.
NOTE: Thanks to the new sceNpTrophy syscalls, RPCS3 can install the
trophy contents in dev_hdd0/home/00000001/trophy/. Remember this is
still on an experimental stage.
* cellGameContentPermit and cellGameBootCheck updated.
* Checkbox in the Settings dialog, for enabling logging.
* Fixed GUI issue in the InterpreterDisAsmFrame.
* Fixed -dirty flag in wxWidgets submodule.
* cellFsOpendir, cellFsReaddir, cellFsClosedir functions implemented.
* vfsDirBase: m_entryes, GetEntryes renamed to m_entries, GetEntries
respectively.
* vfsLocalDir: Read() function added to get the entries one by one.
* Moved IsExists() from vfsLocalDir to vfsDirBase to avoid "R6025 pure
virtual function call" error.
* Other minor changes in some functions of sys_fs
-Now, all the games using rendering text using
cellFontRenderCharGlyphImage and all the related functions should work,
or at least don't crash.
-There are still issues with the character position on surface, and in
some cases, it renders the text with a different font than the one the
game specified. A lot of cellFont stuff is still missing or may be not
properly implemented.
-For games using system-embedded fontsets you have to find a *legal* way
to copy the .TTF files from your PS3 into dev_flash/data/font.
* Small cleanup in cellJpgDec and cellPngDec.
* cellPamf added to the project and a few test lines added to
cellPamfGetHeaderSize(2).
* Improved speed of the Raw Image Preview on the the Memory Viewer.
* Now you can click on the shown buffers / textures in the RSX Debugger
in order to see them in full size. More settings added to the tabs.
* Fixed cellFsStat in order to fix the crash aused by opening
directiories. The solution is really *really* ugly. Once vfsDir is
ready, I will replace it with something better.
RSX Debugger:
*Better way to add name:value pairs to the tabs.
*Added some entries in the Settings/Texture/Lightning tabs.
*Experimental DisAsm.
*Support for previewing RGB textures (buggy!).
*Minor cleanups and improvements
cellFont:
*Added cellFontOpenFontMemory, cellFontOpenFontFile,
cellFontOpenFontset. They still need some modifications (e.g. bind these
functions to stblib/stb_truetype.h).
RSX Debugger:
Currently, it can preview the color buffers while the RSX Thread is
running, view and modify the render flags, and act as a memory viewer in
the RSX command buffers (no disasm yet). You can press F5, to update the
information (buffers, memory, flags, etc.) of the frame. There are *a
lot* of TODO's here that will be done in the future.
Minor changes:
*Added /dev_flash/ to VFS (required for cellFont in the future).
*cellMsgDialogOpenErrorCode implemented using wxMessageBox. The
information for each error code comes from PSDevWiki. There are lots
error codes missing.
*Updated sys_memory_get_page_attribute
Happy new year to everyone! :-)
* Edited .gitignore
* Moved some functions to cellFontFT.
* Now cellFont initializes correctly, but it doesn't render anything
yet. There are still several things to change and functions to
implement. I will take care of it.