NO$PSX V2.0 Released (12th Aug 2017)

Problems or feedback about the NO$PSX emulator by Martin Korth
User avatar
nocash
PSX Aficionado
PSX Aficionado
Posts: 541
Joined: Nov 12, 2012
Contact:

Post by nocash » October 27th, 2017, 12:16 am

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.

User avatar
LameGuy64
Psy-Q Enthusiast
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:

Post by LameGuy64 » October 27th, 2017, 5:02 pm

Here's the contents of GTEREG.H from the SDK:

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"
And here's the contents of INLINE_A.H containing GTE macros:

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
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.
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.

User avatar
nocash
PSX Aficionado
PSX Aficionado
Posts: 541
Joined: Nov 12, 2012
Contact:

Post by nocash » October 28th, 2017, 1:48 am

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?

Code: Select all

  MVMVA(sf,mx,v,cv,lm)
  or
  MVMVA sf,mx,v,cv,lm
And that parameters, are they just entered as numeric values, or are there symbolic names for them?

Code: Select all

  MVMVA 1,0,2,1,0
  or
  MVMVA 1,RT,V2,BK,0
  or yet different...?
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:

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
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:

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=???
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).

Someone
Curious PSXDEV User
Curious PSXDEV User
Posts: 20
Joined: Aug 07, 2016

Post by Someone » November 4th, 2017, 7:57 pm

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.

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » February 19th, 2018, 1:27 am

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.

nanyman
What is PSXDEV?
What is PSXDEV?
Posts: 1
Joined: Apr 27, 2018

Post by nanyman » April 28th, 2018, 12:06 am

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.

User avatar
ViLXDRYAD
Curious PSXDEV User
Curious PSXDEV User
Posts: 19
Joined: May 03, 2018
I am a: Avocado lover
Motto: FR E SH A VOCA DO
PlayStation Model: SCPH1001

Post by ViLXDRYAD » May 9th, 2018, 3:24 pm

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
Image

PCSXR
Image

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 :D)

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

User avatar
Squaresoft74
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 303
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » September 23rd, 2018, 3:57 pm

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. :praise

User avatar
Squaresoft74
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 303
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » November 10th, 2018, 7:31 am

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. :?

User avatar
NITROYUASH
Serious PSXDEV User
Serious PSXDEV User
Posts: 124
Joined: Jan 07, 2018
I am a: Game Designer
PlayStation Model: SCPH-5502
Location: Russian Federation
Contact:

Post by NITROYUASH » November 10th, 2018, 10:33 am

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.

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » November 10th, 2018, 8:11 pm

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.

User avatar
NITROYUASH
Serious PSXDEV User
Serious PSXDEV User
Posts: 124
Joined: Jan 07, 2018
I am a: Game Designer
PlayStation Model: SCPH-5502
Location: Russian Federation
Contact:

Post by NITROYUASH » November 10th, 2018, 9:28 pm

oh
It's sad

rama3
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 510
Joined: Apr 16, 2017

Post by rama3 » November 11th, 2018, 4:42 am

Interest comes and goes. Don't write him off yet ;p

User avatar
Squaresoft74
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 303
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » November 11th, 2018, 12:20 pm

Hope to see him back someday, his work is truly amazing. :clap

User avatar
Squaresoft74
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 303
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » July 2nd, 2019, 12:53 pm

If any work is ever made again on this project, SPU ram monitoring would be very welcome.

Z3R0X
Interested PSXDEV User
Interested PSXDEV User
Posts: 8
Joined: Jul 31, 2018

Post by Z3R0X » July 17th, 2019, 1:08 am

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.

ejack
What is PSXDEV?
What is PSXDEV?
Posts: 1
Joined: Sep 08, 2019

Post by ejack » November 20th, 2019, 9:42 am

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 :cry:
And as already said I hope he will come back

PSXTrainer7
What is PSXDEV?
What is PSXDEV?
Posts: 1
Joined: Jan 07, 2021

Post by PSXTrainer7 » January 7th, 2021, 2:55 am

Z3R0X wrote: July 17th, 2019, 1:08 am 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.
Me too I hope soo.... :roll:

FatherlyNick
Interested PSXDEV User
Interested PSXDEV User
Posts: 9
Joined: Jan 23, 2015

Post by FatherlyNick » January 15th, 2021, 8:10 am

Shadow wrote: November 10th, 2018, 8:11 pm 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.
Even the site is down now. Namely https://problemkaputt.de/
=(

User avatar
Squaresoft74
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 303
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » August 22nd, 2022, 4:26 am

no$psx v2.1 just got released.
Really happy to see a new version, thanks a lot nocash for it ! :dance

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests