NO$PSX V2.0 Released (12th Aug 2017)
I've spend some hours on searching for GTE source code. That's really hard to find, almost looks as if nobody has ever programmed or disassembled GTE code yet, so there doesn't seem to be any common syntax for GTE stuff. The only public code that I've found is this: https://github.com/iamgreaser/psx-chain ... /GL/draw.c
"\tcop2 0xXXX" are opcodes, %nn are variables (as defined in following "r"() lines), and $nn must be cop2 register numbers (in decimal). in other words, it looks like crap.
Oh, and, here's some japanese source code: http://archives.dcemulation.org/berodc/ ... gte_vp.htm this is actually using symbolic register names like C2_MAC0, but it doesn't use macro/symbols for opcodes... do those macros really exist? And did anybody ever use them? If not, then I am rather clueless about if/how/why to support those nonexisting macros in no$psx.
"\tcop2 0xXXX" are opcodes, %nn are variables (as defined in following "r"() lines), and $nn must be cop2 register numbers (in decimal). in other words, it looks like crap.
Oh, and, here's some japanese source code: http://archives.dcemulation.org/berodc/ ... gte_vp.htm this is actually using symbolic register names like C2_MAC0, but it doesn't use macro/symbols for opcodes... do those macros really exist? And did anybody ever use them? If not, then I am rather clueless about if/how/why to support those nonexisting macros in no$psx.
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
Here's the contents of GTEREG.H from the SDK:
And here's the contents of INLINE_A.H containing GTE macros:
Be warned that the DWORD codes are actually not GTE cop2 instructions. The way you deal with them in the official SDK is that you'd run the compiled object file of your assembly source that uses said macros through DMPSX which translates those DWORD codes into the correct GTE cop2 instructions. I don't know why Sony made it this way.
Code: Select all
;
; $PSLibId: Run-time Library Release 4.7$
;
;
; gtereg.h
; Copyright(C) 1995,1996,1997 Sony Computer Entertainment Inc.
; All rights reserved.
;
;
; GTE data registers
;
C2_VXY0 equs "r0"
C2_VZ0 equs "r1"
C2_VXY1 equs "r2"
C2_VZ1 equs "r3"
C2_VXY2 equs "r4"
C2_VZ2 equs "r5"
C2_RGB equs "r6"
C2_OTZ equs "r7"
C2_IR0 equs "r8"
C2_IR1 equs "r9"
C2_IR2 equs "r10"
C2_IR3 equs "r11"
C2_SXY0 equs "r12"
C2_SXY1 equs "r13"
C2_SXY2 equs "r14"
C2_SXYP equs "r15"
C2_SZ0 equs "r16"
C2_SZ1 equs "r17"
C2_SZ2 equs "r18"
C2_SZ3 equs "r19"
C2_RGB0 equs "r20"
C2_RGB1 equs "r21"
C2_RGB2 equs "r22"
C2_MAC0 equs "r24"
C2_MAC1 equs "r25"
C2_MAC2 equs "r26"
C2_MAC3 equs "r27"
C2_IRGB equs "r28"
C2_ORGB equs "r29"
C2_LZCS equs "r30"
C2_LZCR equs "r31"
;
; GTE control registers
;
C2_R11R12 equs "r0"
C2_R13R21 equs "r1"
C2_R22R23 equs "r2"
C2_R31R32 equs "r3"
C2_R33 equs "r4"
C2_TRX equs "r5"
C2_TRY equs "r6"
C2_TRZ equs "r7"
C2_L11L12 equs "r8"
C2_L13L21 equs "r9"
C2_L22L23 equs "r10"
C2_L31L32 equs "r11"
C2_L33 equs "r12"
C2_RBK equs "r13"
C2_GBK equs "r14"
C2_BBK equs "r15"
C2_LR1LR2 equs "r16"
C2_LR3LG1 equs "r17"
C2_LG2LG3 equs "r18"
C2_LB1LB2 equs "r19"
C2_LB3 equs "r20"
C2_RFC equs "r21"
C2_GFC equs "r22"
C2_BFC equs "r23"
C2_OFX equs "r24"
C2_OFY equs "r25"
C2_H equs "r26"
C2_DQA equs "r27"
C2_DQB equs "r28"
C2_ZSF3 equs "r29"
C2_ZSF4 equs "r30"
C2_FLAG equs "r31"
Code: Select all
; $PSLibId: Run-time Library Release 4.7$
;
; Macro definitions of DMPSX version 3 for Assembler programs
; inline_a.h
; Copyright(C) 1996, Sony Computer Entertainment Inc.
; All rights reserved.
;
;
; GTE commands with 2 nops
;
nRTPS macro
nop
nop
dw $0000007f
endm
nRTPT macro
nop
nop
dw $000000bf
endm
nDCPL macro
nop
nop
dw $00000dff
endm
nDPCS macro
nop
nop
dw $00000e3f
endm
nDPCT macro
nop
nop
dw $00000e7f
endm
nINTPL macro
nop
nop
dw $00000ebf
endm
nNCS macro
nop
nop
dw $00000f7f
endm
nNCT macro
nop
nop
dw $00000fbf
endm
nNCDS macro
nop
nop
dw $00000fff
endm
nNCDT macro
nop
nop
dw $0000103f
endm
nNCCS macro
nop
nop
dw $0000107f
endm
nNCCT macro
nop
nop
dw $000010bf
endm
nCDP macro
nop
nop
dw $000010ff
endm
nCC macro
nop
nop
dw $0000113f
endm
nNCLIP macro
nop
nop
dw $0000117f
endm
nAVSZ3 macro
nop
nop
dw $000011bf
endm
nAVSZ4 macro
nop
nop
dw $000011ff
endm
nMVMVA macro sf,mx,v,cv,lm
nop
nop
dw $000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18
endm
nSQR macro sf
nop
nop
dw $000013ff|sf<<25
endm
nOP macro sf
nop
nop
dw $0000143f|sf<<25
endm
nGPF macro sf
nop
nop
dw $0000147f|sf<<25
endm
nGPL macro sf
nop
nop
dw $000014bf|sf<<25
endm
;
; GTE commands without nops
;
RTPS macro
dw $0000007f
endm
RTPT macro
dw $000000bf
endm
DCPL macro
dw $00000dff
endm
DPCS macro
dw $00000e3f
endm
DPCT macro
dw $00000e7f
endm
INTPL macro
dw $00000ebf
endm
NCS macro
dw $00000f7f
endm
NCT macro
dw $00000fbf
endm
NCDS macro
dw $00000fff
endm
NCDT macro
dw $0000103f
endm
NCCS macro
dw $0000107f
endm
NCCT macro
dw $000010bf
endm
CDP macro
dw $000010ff
endm
CC macro
dw $0000113f
endm
NCLIP macro
dw $0000117f
endm
AVSZ3 macro
dw $000011bf
endm
AVSZ4 macro
dw $000011ff
endm
MVMVA macro sf,mx,v,cv,lm
dw $000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18
endm
SQR macro sf
dw $000013ff|sf<<25
endm
OP macro sf
dw $0000143f|sf<<25
endm
GPF macro sf
dw $0000147f|sf<<25
endm
GPL macro sf
dw $000014bf|sf<<25
endm
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Many thanks! Good to know that the data/control registers are internally just called r0-r31 (I was thinking that they might use different names like c0-c31 and d0-d31 to distinguish between cpu, data, and control registers - but apparently, they don't do so).
The macros are also very interesting. How would they look like in actual source code? Is it required/allowed/prohibited to specify the parameters in brackets?
And that parameters, are they just entered as numeric values, or are there symbolic names for them?
Hardware-wise, the "sf" and "lm" bits can be used with a couple more GTE opcodes, ie. even in cases where the macros don't allow to specify them as parameters. So the bits must have some fixed/default setting when using the macros...
sf (bit19)) can be also used in these opcodes:
From what I know, they are always using sf=1, right? Would be great if somebody could assemble the macros, and check that the resulting EXE really has bit19 set for all of those opcodes.
lm (bit10) can be also used in these opcodes:
Some seem to have lm=0, some lm=1, and some I don't know what. Can somebody assemble the macros, and check how they do set bit10 in the reyulting EXE?
When knowing the default sf/lm values, I'll program the disassembler to show some "???" warning when the sf/lm bits are set to non-default values (of course unless the original macros allow to specify variable settings for sf and lm).
The macros are also very interesting. How would they look like in actual source code? Is it required/allowed/prohibited to specify the parameters in brackets?
Code: Select all
MVMVA(sf,mx,v,cv,lm)
or
MVMVA sf,mx,v,cv,lm
Code: Select all
MVMVA 1,0,2,1,0
or
MVMVA 1,RT,V2,BK,0
or yet different...?
sf (bit19)) can be also used in these opcodes:
Code: Select all
RTPS/RTPT with fixed sf=1
CC/CDP with fixed sf=1
NCS/NCT/NCCS/NCCT/NCDS/NCDT with fixed sf=1
DCPL/DPCS/DPCT/INTPL with fixed sf=1
lm (bit10) can be also used in these opcodes:
Code: Select all
GPF/GPL with fixed lm=???
OP with fixed lm=zero
CC/CDP with fixed lm=1
NCS/NCT/NCCS/NCCT/NCDS/NCDT with fixed lm=1
DCPL/DPCS/DPCT/INTPL with fixed lm=???
When knowing the default sf/lm values, I'll program the disassembler to show some "???" warning when the sf/lm bits are set to non-default values (of course unless the original macros allow to specify variable settings for sf and lm).
I've found some new bugs. Some games from Eidos have boot menu where you can try demos and watch trailers, so far I tested two such discs: Akuji The Heartless and Fighting Force. Both of them fail to boot demos from that menu, screen goes black, music continues to play and nothing happens but when you choose trailer it plays without problems.
Another bug was in Quake 2. Changing music volume has no effect but sound volume works as intended.
Another bug was in Quake 2. Changing music volume has no effect but sound volume works as intended.
-
Shadow Verified
- Admin / PSXDEV
- Posts: 2670
- Joined: Dec 31, 2012
- PlayStation Model: H2000/5502
- Discord: Shadow^PSXDEV
Found two annoying bugs. First, NO$PSX doesn't remember the directory you were last in, so if you go to for example 'Upload a PS-EXE', you have to keep going back and navigating to the directory you are working in. Secondly, in the options menu, under the 'Emulator' tab, "Number of Emulated Consoles" has the arrows to increase or decrease the number backwards (down increases, and up decreases).
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
Hello nocash I noticed a problem when starting the game, namely Harry Potter and the Sorcerer's Stone the main problem is this input lag if it can be fixed, then I would like to know how. I also noticed that when starting the game there is a certain ripple of pixels Screenshot: I would like to remove, smooth the picture for example, as it is done in ePSXe. (This is not advertising) Waiting for an answer, thank you.
- ViLXDRYAD
- Curious PSXDEV User
- Posts: 19
- Joined: May 03, 2018
- I am a: Avocado lover
- Motto: FR E SH A VOCA DO
- PlayStation Model: SCPH1001
Hii! first of all let me thank you for making this amazing emulator!, after i found it it quickly became my to-go choice for ps1 emulation, mad props! \o/
though i found a graphic glitch using the Loser's Boot Menu, NO$PSX doesn't display the stars BUT PCSXR and real hardware does:
NO$PSX
PCSXR
my bad for the frame drops lol
i can hand you the iso i tested there by PM (i have uploaded this NES and SMS emulators compilation to other sites and a lot of mirrors, just look for Sega Vs. Family PS1 ISO on google and check the last comment on any of the first results tho )
thanks a lot developing NO$PSX!, it has helped me a huge lot in developing! =' D
EDIT: also perhaps this is bug related? http://www.psxdev.net/forum/viewtopic.p ... 436#p14434 =' 3
though i found a graphic glitch using the Loser's Boot Menu, NO$PSX doesn't display the stars BUT PCSXR and real hardware does:
NO$PSX
PCSXR
my bad for the frame drops lol
i can hand you the iso i tested there by PM (i have uploaded this NES and SMS emulators compilation to other sites and a lot of mirrors, just look for Sega Vs. Family PS1 ISO on google and check the last comment on any of the first results tho )
thanks a lot developing NO$PSX!, it has helped me a huge lot in developing! =' D
EDIT: also perhaps this is bug related? http://www.psxdev.net/forum/viewtopic.p ... 436#p14434 =' 3
-
Squaresoft74 Verified
- /// PSXDEV | ELITE ///
- Posts: 309
- Joined: Jan 07, 2016
- PlayStation Model: SCPH-7502
- Location: France
- Contact:
Could the "Utility>Upload to PSX" menu be tweaked a little bit ?
I mainly test PSF rips (.exe form).
Currently, starting from this menu, once you've uploaded an executable you must close the emulator and run it again if you want to send another one.
Else it will upload the same executable again leaving you no choice to select a new one.
(Unless you load another one first in the emulator itself using "File>Load DiskImage" but it would more convenient if that could be bypassed when you want to send many different ones).
Also could PSF support be added ?
That would avoid to convert to exe first if done on the fly when loaded.
I mainly test PSF rips (.exe form).
Currently, starting from this menu, once you've uploaded an executable you must close the emulator and run it again if you want to send another one.
Else it will upload the same executable again leaving you no choice to select a new one.
(Unless you load another one first in the emulator itself using "File>Load DiskImage" but it would more convenient if that could be bypassed when you want to send many different ones).
Also could PSF support be added ?
That would avoid to convert to exe first if done on the fly when loaded.
-
Squaresoft74 Verified
- /// PSXDEV | ELITE ///
- Posts: 309
- Joined: Jan 07, 2016
- PlayStation Model: SCPH-7502
- Location: France
- Contact:
Is it just me or Parasite Eve II won't get any further than the intro cinematic and then get stuck on a black screen ?
I tried Japanese and Usa versions.
I tried Japanese and Usa versions.
-
NITROYUASH Verified
- Serious PSXDEV User
- Posts: 124
- Joined: Jan 07, 2018
- I am a: Game Designer
- PlayStation Model: SCPH-5502
- Location: Russian Federation
- Contact:
Look's like this emulator has a problems with right analog (R3) or what? It work's only in two directions - left and right (and only if you put the stick on up or down). Up/Down directions just isn't working. This problem is existing only on NO$PSX.
On EPSXE,PCSXR and PS3 everything is fine.
Dualshock 3.
Tested with PadTest 1.0, ANLGCTRL (from Psy-Q examples) and on my program.
On EPSXE,PCSXR and PS3 everything is fine.
Dualshock 3.
Tested with PadTest 1.0, ANLGCTRL (from Psy-Q examples) and on my program.
-
Shadow Verified
- Admin / PSXDEV
- Posts: 2670
- Joined: Dec 31, 2012
- PlayStation Model: H2000/5502
- Discord: Shadow^PSXDEV
There's a lot of games that don't work with NO$PSX, but NO$CASH has fled the PSX Development scene and doesn't seem interested in it anymore.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
-
NITROYUASH Verified
- Serious PSXDEV User
- Posts: 124
- Joined: Jan 07, 2018
- I am a: Game Designer
- PlayStation Model: SCPH-5502
- Location: Russian Federation
- Contact:
oh
It's sad
It's sad
Interest comes and goes. Don't write him off yet ;p
-
Squaresoft74 Verified
- /// PSXDEV | ELITE ///
- Posts: 309
- Joined: Jan 07, 2016
- PlayStation Model: SCPH-7502
- Location: France
- Contact:
Hope to see him back someday, his work is truly amazing.
-
Squaresoft74 Verified
- /// PSXDEV | ELITE ///
- Posts: 309
- Joined: Jan 07, 2016
- PlayStation Model: SCPH-7502
- Location: France
- Contact:
If any work is ever made again on this project, SPU ram monitoring would be very welcome.
I love this emulator is just pure gold, I hope some day he come back and fix compatibility for games like Parasite Eve 1 and 2.
If he decided to quit forever would be great if he release the source code to this masterpiece.
If he decided to quit forever would be great if he release the source code to this masterpiece.
The last version of NO$GBA is from 10 Jul 2019 so he isn't too far but there is no published work on NO$PSX for more than 2 years
And as already said I hope he will come back
And as already said I hope he will come back
-
- What is PSXDEV?
- Posts: 1
- Joined: Jan 07, 2021
-
- Interested PSXDEV User
- Posts: 9
- Joined: Jan 23, 2015
-
Squaresoft74 Verified
- /// PSXDEV | ELITE ///
- Posts: 309
- Joined: Jan 07, 2016
- PlayStation Model: SCPH-7502
- Location: France
- Contact:
no$psx v2.1 just got released.
Really happy to see a new version, thanks a lot nocash for it !
Really happy to see a new version, thanks a lot nocash for it !
Who is online
Users browsing this forum: No registered users and 2 guests