Editing User talk:Kozarovv

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 794: Line 794:
0x657C90  ppu_emitter_xor
0x657C90  ppu_emitter_xor
0x657CA8  ppu_emitter_xori
0x657CA8  ppu_emitter_xori
</pre>
<pre>


===ps2_netemu vu1-to-spu emitter===
===ps2_netemu vu1-to-spu emitter===
Line 827: Line 827:
0x737048 sub_1469AC
0x737048 sub_1469AC
0x737060 VU_REC_xgkick_146A6C
0x737060 VU_REC_xgkick_146A6C
</pre>
===ps2_gxemu vu1-to-spu emitter===
I need to clean this up little bit before posting on ps2 emu page. This is opd list of recompiler functions that are responsible for emitting vu1 to spu translated opcodes (so called VRC). #ToDo sub_xxx are unknown, or unused (so i was too lazy to look at them).
<pre>
0x6583F8  spu_emitter_stop_0x1234
0x658410  sub_146084
0x658428  spu_emitter_brasl_0x8B00_xgkick
0x658440  spu_emitter_ai_r57_r57_0x10
0x658458  spu_emitter_rt_rb_ra_rc
0x658470  spu_emitter_rb_ra_rt
0x658488  sub_146568
0x6584A0  sub_146670
0x6584B8  spu_emitter_i16_rt
0x6584D0  spu_emitter_brasl_efu_helpers___todo
0x6584E8  spu_emitter_brasl_efu_helpers
0x658500  sub_1469AC
0x658518  sub_146A88
0x658530  sub_146B6C
0x658548  sub_146C74
0x658560  sub_146D94
0x658578  sub_146EB4
0x658590  spu_emitter_binz_r60_r62_______todo_more
0x6585A8  spu_emitter_move_r53_r54
0x6585C0  spu_emitter_move_r55_r56
0x6585D8  sub_1472CC
0x6585F0  sub_1473B0
0x658608  spu_emitter_brasl_0x8A80
</pre>
</pre>


===EE recompiler===
===EE recompiler===
Generally main r5900 recompiler subruntime is located at 0x174188 for ps2_netemu and at 0xC9C38 for gxemu. This is the place where r5900 (MIPS/COP0/COP1(FPU)/COP2(VU0-macromode)) opcodes are directed to emitter and analyzed. Jump table as is. Many opcodes jump out to different runtime due to complicated EE nature.
Generally main r5900 recompiler subruntime is located at 0x174188. This is the place where r5900 (MIPS/COP0/COP1(FPU)/COP2(VU0-macromode)) opcodes are directed to emitter and analyzed. Jump table as is. Many opcodes jump out to different runtime due to complicated EE nature.
<pre>
<pre>
jpt_1741D8: // net
jpt_1741D8:
jpt_C9C7C:  // gx
---------debug_stuff------------
---------debug_stuff------------
case 0:
case 0:
ee_r
ee_r
ee_NOP   (real op, gxemu have flag to REALLY emit or r31,r31,r31)
ee_NOP
ee_SPECIAL
ee_SPECIAL
ee_REGIMM
ee_REGIMM
Line 1,588: Line 1,559:
  unused_ee_ADDI_UNK2      0x17000C 0x6C
  unused_ee_ADDI_UNK2      0x17000C 0x6C
  unused_ee_JR              0x170C1C 0xB0
  unused_ee_JR              0x170C1C 0xB0
== Softemu questions ==
Hi,
You are clearly the one familiar with ps2 emus on ps3. I'm researching stuff about softemu, and I wanted to try and run some games on it. There used to be a list of the games that ran on tortuga-cave site ( can be accessed through wayback archive). Anyways, I also noticed the only emulator that was tested was version 2.6 ? But softemu was however still released up to FW 4.01. Did nobody test the latest revision of it? I was trying to record some gameplays because it's a fun topic and nobody has really recorded gameplays from it directly. But I can't for the love of god get any games to work. I tried on a slim and now on CECHL. I only have a couple of official disc games, and I tried to run them from FSM mode. PS2 discs are recognised but go to black screen. I suppose my games were not supported all that well. So I was wondering could you make some type of emulator-switcher tool that would simply allow us to switch back to softemu on latest firmwares? Something that would work on evilnat perhaps?
* I think testing on tortuga was done on 3.41 emulator (they used cobra dongle which i think was first available somewhere around 3.55 fw). I'm not familiar with FSM method, i read about it on wiki, but never heard about it working anywhere else. Your best bet will be downgrade to firmware like 3.55 and try there. Getting softemu to run on newer firmware require more work. Simple fact that softemu is old enough to use different keyset makes it impossible to just switch emus. Sadly, i can't help with getting it to run. I only know emulator side of things, firmware patches required to get it to work is not something i can do by myself. I know you want to do this for fun, but softemu had broken HW shaders and its compatibility was rather pure due to few different factors. Broken HW shaders mean visual glitches in many titles. Rushed development resulted in mostly copy pasted SPU code from gxemu, which was later heavily changed for netemu (dedicated software renderer on SPU, abandon of magic gate which allowed to use one more SPE core for emu, etc.). Like i said above your best bet is downgrade to 3.55 and trying there. Maybe searching for Cobra dongle with firmware for 3.55 too, but they will be probably highly overpriced now due to collectible value. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 22:31, 7 August 2024 (CEST)
Well I have tested the version you shared with your friend mrjaredbeta. The one taken from fw 4.01. And it's great, but cannot recognise memory cards. So I finally got the cobra dongle, and turns out that one is able to recognise memory cards and save games.  But cobra dongle thing only works with its own firmware sadly. I tried to replace the softemu file with 4.01 , the one you patched and also ofw one, but it would not boot any games with those. So now I am wondering, could it be possible to patch softemu 4.01 so that would also work with cobra dongle? I can send you the one that cobra uses , maybe you can take a look. I know the emulator is glitched and all, but I have a strange obsession with it lol.
* Getting new emu to work with cobra is not easy. Getting all hooks ported, etc. I have no plan to do that. Cobra version recognizes memory cards because cobra launches emulator with prepared ps2bootparam. Probably patch to handle one memory card with hardcoded name can be done to make it work on new emu, not sure. I don't think there is anything i can do to help you with any of that.--[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 09:10, 11 September 2024 (CEST)
Another question related to how ps2 upscaler works on CECHA consoles. So when the ps2 upscaler setting is on, some PAL PS2 games load into black screen on CECHAs. So I was wondering if anybody has researched how that upscaler functions or why it prevents PAL games to boot correctly? Is it something that can be potentially fixed? Do you know if this problem is present on DECHA consoles ?
* I never heard about issue like that. It's probably TV that don't like mix of 50Hz and some resolutions. I know someone who have CECH A and DECH A, everything works fine for him regardless of applied settings and game region, but he lives in EU, so TV is 50/60Hz ready for whole range of screen resolutions. I know that some 60Hz TVs don't like 576i input in PSX games on PS3 too. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 20:03, 27 September 2024 (CEST)
It is actually a known issue (well, known to people who have tried it). I have several PAL-games that will not boot on CECHAs unless upscaler is turned off. Call of Duty Finest hour and Death by Degrees are two examples of that. I also live in EU and my TV does support both 50 and 60hz too. Hmm, not sure about specific resolutions though. It also could be that your friend got lucky and never tried those specific games. I don't have a DECHA to test it out though, maybe he could try to test the games I mentioned?
* My friend tested that on his PS3 and indeed Death by Degrees is throwing no signal after memory card check when upscaler is active (btw. it's important to know when exactly issue occur, this helps people without CECHA look into it). I don't know how this is known issue when people that can potentially fix it are not aware of it. :) Anyway. You may want to create thread on psx-place or other place with active Cobra/CFW developers to let them know that issue exist. Info which games fail at which point will be help too. Without that there is slim chance to fix it. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 09:33, 30 September 2024 (CEST)
I suppose you are correct, I wrongly assumed it is a known issue. But maybe it is not. Devs seem to often ignore CECHA models, they focus on slims and the later ones. But I can post a message, yeah. Btw, I have seen your latest progress on gx-emu, and I was also wondering if you can check if it is realistically possible to add GSM options to ps2-emu (on CECHAs) ? Because GSM is a tool that can force ps2 games into different video modes, like 1080i. And since it works on CECHAs as well (through OPL), perhaps it could be integrated somehow into the emulator to simply switch resolutions when opening the settings? I am talking about this tool https://www.ps2-home.com/forum/viewtopic.php?f=12&t=53
* GSM operates by intercepting communications between EE and GS to set required registers. There is no way to do that on ps2_emu, since EE+GS is not exposing this communication outside of chip.
== Syscon Thermal Zones ==
*0x00: 1st BE Primary
*0x01: RSX Primary
*0x02: XDR Primary
*0x03: BE VR
*0x04: RSX VR
*0x05: GDDR3 VR
*0x06: XDR VR
*0x07: AC/DC
*0x08: BD Primary
*0x09: BD Secondary
*0x0A: Air Intake
*0x0B: inside chasis
*0x0C: XIO trace
*0x0D: IOIF0 trace
*0x0E: IOIF1 trace
*0x0F: GbE
*0x10: USB
*0x11: misc
*0x12: 1st HDD
*0x13: 2nd HDD
*0x14: SB
*0x15: EE+GS
Most of that is unavailable even in late Cytology...
== fsck on ps3 ==
Write to 0x10520 raw HDD offset (using ps3 "simple fs"). This match UFS2 superblock offset 0x520, which is "fs_flags". Write old value ored with 4. Value 4 means FS_NEEDSFSCK. All this is quite standard UFS2 behavior.
== Temp - Waiting for release ==
{{BoxcommGX|id=0x2C|net_id=0x0A|data=FIXME|}}
Patch 32 bit opcodes of EE executable code. '''Warning! This is custom command and it is not available in not patched emulator!'''
Format:
32 bit ID  | 32 bit align | 64bit ptr to emu memory | 32 bit count | 32 bit align
0x0000002C |  0x00000000  |  0x0000000000341190    |  0x00000002  |  0x00000000
Additional example data at 0x341190 looks like this:
  32 bit EE offset  | 32 bit align | 32 bit original opcode | 32 bit align | 32 bit replace opcode | 32 bit align 
    0x00122780    |  0x00000000  |      0x27BDFE10      |  0x00000000  |      0x27BDFD00      |  0x00000000
due to patch count == 2 in this example, there is next set of data right after first one:
  32 bit EE offset  | 32 bit align | 32 bit original opcode | 32 bit align | 32 bit replace opcode | 32 bit align 
    0x00122AE8    |  0x00000000  |      0x27BD01F0      |  0x00000000  |      0x27BD0300      |  0x00000000
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:Show}}" data-collapsetext="{{int:Hide}}" style="width:1000px; background:#cccccc;">'''More info'''
<div class="mw-collapsible-content" style="text-align:left;">
This command read and write opcodes as a 32 bit value. Command implementation helps with netemu 0x0A ports.
Example ps2_netemu 0x0A config translation.
<br>Original config.
3D 00 00 00 57 44 00 00 <-- not relevant.
0A 00 00 00 02 00 00 00 <-- CMD 0x0A, count 0x02
80 27 12 00 10 FE BD 27 00 FD BD 27 <-- addr, org opcode, replace opcode
E8 2A 12 00 F0 01 BD 27 00 03 BD 27 <-- addr, org opcode, replace opcode
Gx config.
00 00 00 84 79 85 29 05 00 34 11 78 00 00 00 01 <-- single command in this example, count is elsewhere
00 00 00 2C 00 00 00 00 00 00 00 00 00 34 11 90 00 00 00 02 00 00 00 00 <-- CMD 0x2C, ptr to command data, count 0x02.
00 12 27 80 00 00 00 00 27 BD FE 10 00 00 00 00 27 BD FD 00 00 00 00 00 <-- addr, org opcode, replace opcode
00 12 2A E8 00 00 00 00 27 BD 01 F0 00 00 00 00 27 BD 03 00 00 00 00 00 <-- addr, org opcode, replace opcode
Single line explanation, gx command is big endian, netemu is little endian:
    00 12 27 80    | 00 00 00 00 |  27 BD FE 10  | 00 00 00 00 |  27 BD FD 00  | 00 00 00 00
ee addr from 0x0A |    align    | original opcode |    align    | replace opcode |    align
</div>
</div>
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)

Template used on this page: