PSn00bSDK - My very own PS1 SDK project

Start a log and update it occasionally with your projects progress
Post Reply
User avatar
LameGuy64
Psy-Q Enthusiast
Psy-Q Enthusiast
Posts: 335
Joined: April 10th, 2013, 3:47 pm
I am a: Hobbyist Game Developer
Motto: Commercial or not, play it!
PlayStation Model: H2000/7000
Skype: lameguy64
Location: Philippines

PSn00bSDK - My very own PS1 SDK project

Post by LameGuy64 » May 14th, 2019, 12:12 pm

Image
As the name suggests, this is an amateur SDK project for the PS1 of my very own creation. I guess I've gotten so good at programming the PS1 that I ended up making my own SDK project :).

Unlike other open source SDK projects for the PS1 that have come and gone, the main goal of the PSn00bSDK project is to develop a 100% open source SDK for the PS1 that tries to be on-par to the official SDK in terms of hardware support. While PSn00bSDK is still a work in progress, it was fit enough to create n00bdemo as it already has the best graphics and 3D support on the hardware compared to other SDK projects that I'm aware of. Other components such as SPU, MDEC, controllers/memory cards and especially the CD-ROM have yet to be implemented fully so proper homebrew games can be made with this SDK.

Screenshot of n00bdemo taken from pSX/psxfin:
Image

Another thing about PSn00bSDK is that it follows the same library syntax as the official SDK as closely as possible not only for familiarity reasons but also to make it easier to port existing homebrew made with the official SDK over to PSn00bSDK with little to no modifications, provided the functions it depends on have already been implemented.

Progress on this project has been pretty slow lately mainly because this has been a one man effort so far and life's been getting in the way a lot for me lately. I also haven't finished working on the video about this SDK project yet either.

Webpage (has more info regarding features and a download of a Win32 build of the GNU GCC 7.2.0 compiler targeting mipsel):
http://lameguy64.tk/?page=psn00bsdk

Github repo (has more info and build instructions):
https://github.com/Lameguy64/PSn00bSDK
Last edited by LameGuy64 on May 17th, 2019, 12:28 pm, edited 1 time in total.
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.

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 50
Joined: November 18th, 2012, 1:13 pm

Re: PSn00bSDK - My very own PS1 SDK project

Post by mrhaboobi » May 17th, 2019, 9:54 am

watching with interest

User avatar
LameGuy64
Psy-Q Enthusiast
Psy-Q Enthusiast
Posts: 335
Joined: April 10th, 2013, 3:47 pm
I am a: Hobbyist Game Developer
Motto: Commercial or not, play it!
PlayStation Model: H2000/7000
Skype: lameguy64
Location: Philippines

Re: PSn00bSDK - My very own PS1 SDK project

Post by LameGuy64 » May 18th, 2019, 11:28 am

I just got controllers working using BIOS controller functions which are implemented as _PadInit(), _PadStart() and _PadStop() in the psxapi library. The advantage of using this is it automatically polls the controller data on every vsync but the downside is you can't send data to the controller yet to activating analog mode on the controllers in software or controlling the vibrators. But you can read controller data from pretty much any controller (except the justifier) with it.

The implementation is up on my SVN repo along with a prototype program to demonstrate it working. I haven't put it up on my github repo yet as I need to do some testing first.

EDIT: Seems my crappy RPi based server has gone read only mode again, preventing me from committing the latest code. I'll get this sorted out and it should hopefully be up by tomorrow for good measure.
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.

jype
What is PSXDEV?
What is PSXDEV?
Posts: 2
Joined: May 19th, 2019, 6:36 am

Re: PSn00bSDK - My very own PS1 SDK project

Post by jype » May 19th, 2019, 7:14 am

Wow, awesome! I've wished for a better open-source alternative to PSYQ and PSXSDK.

I built the PSn00bSDK and tried out examples on an emulator, n00bdemo was really cool.
The demos worked with epsxe, but hang in ResetGraph with pcsxr. Any idea why this happens?

User avatar
LameGuy64
Psy-Q Enthusiast
Psy-Q Enthusiast
Posts: 335
Joined: April 10th, 2013, 3:47 pm
I am a: Hobbyist Game Developer
Motto: Commercial or not, play it!
PlayStation Model: H2000/7000
Skype: lameguy64
Location: Philippines

Re: PSn00bSDK - My very own PS1 SDK project

Post by LameGuy64 » May 20th, 2019, 12:12 am

Likely has something to do with how I'm currently hooking the VSync handler using the PS1 kernel's event system which is not exactly a good way of dealing with VSync IRQs as acknowledging the interrupt there breaks things like BIOS controller support which depends on the VBlank IRQ. PCSXR's high level BIOS clone likely doesn't emulate the VBlank event properly but I've recently got a new handling scheme working that's exactly the same as that used in the official SDK.

Though it would take me a bit of time to have it implemented in the main branch on Github but you can get early access to it via my SVN branch albeit a bit messy.
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.

jype
What is PSXDEV?
What is PSXDEV?
Posts: 2
Joined: May 19th, 2019, 6:36 am

Re: PSn00bSDK - My very own PS1 SDK project

Post by jype » May 20th, 2019, 1:14 am

You were right, all examples worked on pcsxr when not using the HLE bios. Nice!

User avatar
LameGuy64
Psy-Q Enthusiast
Psy-Q Enthusiast
Posts: 335
Joined: April 10th, 2013, 3:47 pm
I am a: Hobbyist Game Developer
Motto: Commercial or not, play it!
PlayStation Model: H2000/7000
Skype: lameguy64
Location: Philippines

Re: PSn00bSDK - My very own PS1 SDK project

Post by LameGuy64 » Yesterday, 11:42 am

Just pushed an update to the main Github repository that adds controller and CD-ROM support using BIOS functions.
Relevant functions for controllers are _PadInit(), _PadStart() and _PadStop() and relevant functions for controllers and _InitCd() is for CD-ROM which basically wraps _96_init() with some additional code that prevents the function from clearing other DMA settings. An RGB24 and bare metal cartridge ROM examples have also been added.

To access files from CD using the BIOS CD-ROM driver use open(), read() and close() with a path name leading with cdrom: (ie. cdrom:/myfile.dat).
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.

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests