Need help in clearing mystifications about PSX development

Post a topic about yourself to let others know your skills, hobbies, etc.
Post Reply
8BitMicroGuy
What is PSXDEV?
What is PSXDEV?
Posts: 3
Joined: Jun 04, 2016

Need help in clearing mystifications about PSX development

Post by 8BitMicroGuy » June 4th, 2016, 1:49 am

Hello,
I would like to create a PSX game. Now, I have lots of mystifications about that because, as a kid, I tried to edit some games in Notepad and make funny texts and burning everything back to the CD and testing it on the chipped PS1 console. It just didn't work. Then, I've realized that Notepad saves only the visible ASCII characters and others are saved as zeros. I tried using a hex editor, but that didn't work even. I tried editing an IMG file of Spyro 2 and using that on an emulator and again, it didn't work. I don't know what kind of magic do these PSX images have that they are recognized by the PlayStations.

I was searching for tools online. Classical issues of searching (I don't remember which exactly, but it's at least one of these): download surveys, wrong tutorials that don't explain my problem, wrong versions downloadable, need to register to download, broken link, 404, posts with questions and answers "me too" or no answers at all, etc.. I saw one tool that was supposed to take in an IMG file and modify it while keeping some CRC thing intact. I mean, doesn't MagicISO do that like any other CD burning program??? CRC??? REALLY!? So that tool had greyed buttons so it wasn't functional.

Now, let me introduce myself about my capabilities. I've been programming actively in C since 2012 and C++ since 2013/2014. I've been programming AVR microcontrollers in AVR assembly language, C and C++ since 2014; hence my name is 8BitMicroGuy. I've been into NES development a bit, but I didn't like the graphical limitations as well as the CPU limitations (indexing and pointers). Regarding game development, I've been using The Games Factory 2 since 2008/2009, Game Maker since 2010, Game Maker Studio since 2012 and tried making my own game engine several times due to not liking licenses' terms and conditions.

What should I expect as a hobbyist PSX game developer? What filesystem limitations exist? What kind of burning software should I have to make emulator-compatible images and CDs compatible with a real PSX? Are there any legal issues regarding uploading PSX ROMs that have proprietary code (license or something) in order to be playable? Is that solved in Sega vs Accolade? Do I need to hire a lawyer? May I sell homebrew PSX games like people sell homebrew NES games? Is there a library with 3D functions, audio sample loading/playing functions, etc.? Is the development done in C/C++ or in another programming language? Is there a Standard Template Library possibly compatible with PSX? Does PSX CPU have virtualization? Does it have malloc/free/new/delete? And of course, where do I start as an intermediate C/C++ programmer?

Please excuse me if some questions are ridiculous, but I need to know for sure before getting into this programming.
Thank you all for your time and patience.

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

Post by Shadow » June 4th, 2016, 6:07 am

You should rip out the data files needed and disassemble them or hex edit them. Then, re-inject them back into the image using "CDmage". Each game is different, and some need to be padded to the same sector boundaries. This isn't an easy task, but very feasible.

What should I expect as a hobbyist PSX game developer?
A remarkable system which is truly amazing to develop for.

What filesystem limitations exist?
Not sure what you mean by that, but the CD-ROM directory structure can only hold a certain amount of files per directory. The limit is extremely high however, so don't even worry about it.

What kind of burning software should I have to make emulator-compatible images and CDs compatible with a real PSX?
BUILDCD, STRIPISO and PSXLICENSE. Burn the final licensed ISO using ImgBurn, Nero or whatever else you use as standard burning software.

Are there any legal issues regarding uploading PSX ROMs that have proprietary code (license or something) in order to be playable?
Mmm... not really. Sony doesn't care anymore, and this stuff has been going on since the systems launch in 1994.

May I sell homebrew PSX games like people sell homebrew NES games?
You should not sell PSX glass mastered games with the security licensed 'wobble' code. That is really asking for trouble from Sony. You can however sell them as CD-R's, but it's up to the user to boot it or not on their PSX which had a modchip.

Is there a library with 3D functions, audio sample loading/playing functions, etc.?
Yes.

Is the development done in C/C++ or in another programming language?
Either, but usually always C.

Is there a Standard Template Library possibly compatible with PSX?
Yes. All your library questions are available in Sony's documentation and they have every single example you could ever ask for and or need.

Does PSX CPU have virtualization?
No. However I do think Sony made some sort of a rig back in late nineties that did this for faster development, but there is no documentation surrounding it.

Does it have malloc/free/new/delete?
Yes. It's built into the kernel which is setup from the BIOS, but it has a bug in which nothing actually gets freed correctly. Instead, use "MMGMNEW.OBJ" which handles "malloc3". More information about this is in the documentation.

Where do I start as an intermediate C/C++ programmer?
Right here.
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
gwald
Verified
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » June 4th, 2016, 1:01 pm

Welcome :dance
IMO, there's not the same love for early 3D consoles like the early 2D consoles ie Nintendo and atari have huge investor base (self-collectors), which actively seek and buy overpriced homebrew games for their shelf and upload youtube videos and be cool.
That doesn't exist on PSX (the cd wobble issue is next to impossible to duplicate, requiring a modded PSX or emulator).
:lol: I contacted http://datel.co.uk/ to see if they can produce PSX homebrew cds :lol: .. they never replied :shrug
So basically, don't do it for profit ie: http://www.psxdev.net/forum/viewtopic.php?f=46&t=446

And doing actual 3D on PSX/N64/DOS is hard (limited helper functions) and to make it fun and playable is really requires RISC Assembly.
2D on PSX is simple enough and has a good 2D library (GSlib).

Honestly, the PSX is pretty limited as a 3D machine.
I'd suggest sticking to C/ASM and looking at the Net Yaroze examples/documentations, which for the most part is well documented.

Good luck.

8BitMicroGuy
What is PSXDEV?
What is PSXDEV?
Posts: 3
Joined: Jun 04, 2016

Post by 8BitMicroGuy » June 5th, 2016, 1:25 am

So if I'm going to make a 3D game, I should fork the Net Yaroze examples?
I was thinking about a 3D exploring game where you design your own character. All polygons would be gradients except for those that are close to the camera which become textured.
I've seen Spyro 2 get lots of render distance by doing that. In Metro Speedway, I've seen far-away buildings without texture, but as the camera got closer, I saw it have a fading-in texture. I think that would be a good rendering optimization. I thought that the C environment for PSX has lots of functions regarding rendering models and such, but I guess I'll have to stick to 2D then.

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

Post by Shadow » June 5th, 2016, 1:48 am

8BitMicroGuy wrote:So if I'm going to make a 3D game, I should fork the Net Yaroze examples?
I was thinking about a 3D exploring game where you design your own character. All polygons would be gradients except for those that are close to the camera which become textured.
I've seen Spyro 2 get lots of render distance by doing that. In Metro Speedway, I've seen far-away buildings without texture, but as the camera got closer, I saw it have a fading-in texture. I think that would be a good rendering optimization. I thought that the C environment for PSX has lots of functions regarding rendering models and such, but I guess I'll have to stick to 2D then.
Spyro 2 used custom assembler based rendering that Mark Cerny outsourced to get it how he wanted. The Yaroze SDK is great for starters, but if you want something that's a little less restricted and what real developers used back in the day, go with Psy-Q. It supports everything. Whilst the Yaroze was a great idea back in the day, it has it's cons and pros. It was expensive and was always a low-end cut down version of the full SDK lacking specialised tools from Sony and its libraries, such as XA support for starters.

3D examples on the PSX may be seen here, here, here and here by LameGuy64.

Also, I wrote this a long time ago, but it's still useful.
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.

8BitMicroGuy
What is PSXDEV?
What is PSXDEV?
Posts: 3
Joined: Jun 04, 2016

Post by 8BitMicroGuy » June 8th, 2016, 1:53 am

I used to have a real PSX, but I don't right now. Is it possible to run everything I program in an emulator?

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

Post by Shadow » June 8th, 2016, 3:06 am

8BitMicroGuy wrote:I used to have a real PSX, but I don't right now. Is it possible to run everything I program in an emulator?
Yes, you can use PSXEven to run PS-EXE's, or better yet, NO$PSX by the legendary Martin Korth (NO$CASH).
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
gwald
Verified
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » June 8th, 2016, 9:17 am

@Shadow have you actually used the NY Libs? low-end compared to the pro dev kits? lol
Obviously, Sony wasn't going to sell a complete dev unit for 1/10th the cost of an actual dev kit.

LOL the Net Yaroze was NOT EXPENSIVE!!!
I was a TAFE student on AusStudy and I bought one new from Sony UK, when it was discounted in 1998, I could afford it.
Had I been older and in the work force, 1k is still a bargin.

The Yaroze got a bad rap, because A LOT people bought it expecting to make the next ridge racer/tekken/Spyro/etc by themselves with some programing knowledge and zero games/3D programming knowledge.

I'd say it has 2/3 of the functionality, which IMO is very generous for a hobby environment and the price.
The NY lib has no double sided poly's and no 3D line support, it also didn't have access to the low level library where you could create your own format. It couldn't play video, no multi tap support.. but everything else (cdrom/playing audio etc) was there officially or hacked.
And 1/3 of PSX RAM is used by the NY Lib.

I wrote more about my NY experience here:
http://xpcoin.com/2016/02/22/net-yaroze ... s-console/

@8BitMicroGuy
Spyro 2 came at the end of the PSX life :?
Start with the basics and move forward, don't start at the end, you'll never get anywhere.

I don't use hardware these days, the emulator (no$psx) is the best and quickest way.
I explain my setup in one of my videos.
https://www.youtube.com/user/gwald/vide ... =0&sort=dd

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests