Psy-Q TIM EXAMPLE

Programming examples for the Psy-Q SDK
Post Reply
User avatar
t0rxe
C Programming Expert
C Programming Expert
Posts: 140
Joined: December 19th, 2012, 8:08 pm
IRC: t0rxe
Motto: /\OX[]
PlayStation Model: SCPH-5502
Location: Australia

Psy-Q TIM EXAMPLE

Post by t0rxe » June 3rd, 2013, 4:30 pm


PlayStation 1 Psy-Q TIM EXAMPLE

Username: PSXDEV.net
Project Title: TIM EXAMPLE
Time to Complete: 30 minutes
SDK: PSY-Q
Genre: Example
Latest Release: Version 1.2
In Development: No
Initial Release Date: 26-JANUARY-2013
Last Date Updated: 02-JUNE-2013
Controller: N/A
Players: N/A
Memory Card: N/A
Languages: Eng
Region: Auto
Burn and Play: No
Executable Included: Yes
Source Included: Yes

A simple TIM demo for Psy-Q. Draws in 320x256 at 16-bits PAL and 320x240 NTSC.
Read the comments carefully in the main.c file for information.

Image

PS-EXE and Source Code:
timexample.zip

You do not have the required permissions to view the files attached to this post.
"Nostalgia isn't a big enough word to describe the PlayStation from my eyes"

Chris
Active PSXDEV User
Active PSXDEV User
Posts: 47
Joined: July 3rd, 2013, 4:38 am
Location: USA
Contact:

Re: Psy-Q TIM EXAMPLE

Post by Chris » July 3rd, 2013, 5:37 pm

I tried to put my own image in here, but I get this error:
Image
You do not have the required permissions to view the files attached to this post.

User avatar
t0rxe
C Programming Expert
C Programming Expert
Posts: 140
Joined: December 19th, 2012, 8:08 pm
IRC: t0rxe
Motto: /\OX[]
PlayStation Model: SCPH-5502
Location: Australia

Re: Psy-Q TIM EXAMPLE

Post by t0rxe » July 3rd, 2013, 5:56 pm

That is because the file 'image.h' contains the character to parse through into the linker.
In this case, I named it 'image' IE: unsigned char image[] = { 0x00 ... }
If you make a new header/binary, make sure you rename the u_char to the one that matches the extern u_char (unsigned char).

You make a TIM using TIMTOOL. Import your image (BMP, PNG, etc) and make it 16-BIT while placing it at 320x0, as those are the coordinates I programmed it to use.

Then you convert your TIM to a binary by using BIN2H (included) naming the u_char 'image'.

I didn't have to make the example like this. I could have just loaded the TIM directly, but for simplistic example reasons this way works fine.
"Nostalgia isn't a big enough word to describe the PlayStation from my eyes"

Chris
Active PSXDEV User
Active PSXDEV User
Posts: 47
Joined: July 3rd, 2013, 4:38 am
Location: USA
Contact:

Re: Psy-Q TIM EXAMPLE

Post by Chris » July 3rd, 2013, 7:55 pm

OK, I drew a 320x240 picture, and I put it in the tim making tool, and this is what I got when I ran it on a PSX emulator. What's going on?
Image
You do not have the required permissions to view the files attached to this post.

User avatar
t0rxe
C Programming Expert
C Programming Expert
Posts: 140
Joined: December 19th, 2012, 8:08 pm
IRC: t0rxe
Motto: /\OX[]
PlayStation Model: SCPH-5502
Location: Australia

Re: Psy-Q TIM EXAMPLE

Post by t0rxe » July 3rd, 2013, 8:08 pm

Ah! Sorry, there is a small mistake in my code :(
Change it to this: image1[1].tpage=GetTPage(1, 2, 576, 0);

Before it was at 320 which is why it was messing up. My apologies.
I have updated the code to Version 1.2 above :)
"Nostalgia isn't a big enough word to describe the PlayStation from my eyes"

Chris
Active PSXDEV User
Active PSXDEV User
Posts: 47
Joined: July 3rd, 2013, 4:38 am
Location: USA
Contact:

Re: Psy-Q TIM EXAMPLE

Post by Chris » July 3rd, 2013, 8:33 pm

Hurrah! It works! Thank you.

atm959
What is PSXDEV?
What is PSXDEV?
Posts: 4
Joined: April 16th, 2016, 10:12 am
I am a: Programmer
PlayStation Model: SCPH-9001
Want to Find: Awesome games!
Looking to: Make awesome games!
Skype: amurph333@outlook.com
Steam: atm959
Contact:

Re: Psy-Q TIM EXAMPLE

Post by atm959 » April 16th, 2016, 12:50 pm

I am having trouble. When I use bin2h, it crashes. I followed the steps leading up to it. I am running Windows 7 32 bit.

atm959
What is PSXDEV?
What is PSXDEV?
Posts: 4
Joined: April 16th, 2016, 10:12 am
I am a: Programmer
PlayStation Model: SCPH-9001
Want to Find: Awesome games!
Looking to: Make awesome games!
Skype: amurph333@outlook.com
Steam: atm959
Contact:

Re: Psy-Q TIM EXAMPLE

Post by atm959 » April 16th, 2016, 1:09 pm

Here are some images. I don't know what I did wrong.

Image

Image

Image
You do not have the required permissions to view the files attached to this post.

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2296
Joined: December 31st, 2012, 5:37 pm
PlayStation Model: H2000/5502

Re: Psy-Q TIM EXAMPLE

Post by Shadow » April 16th, 2016, 1:49 pm

Use a different binary conversion program. Preferably a command line based one.
http://psxdev.net/tools/bin2h.exe
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.

atm959
What is PSXDEV?
What is PSXDEV?
Posts: 4
Joined: April 16th, 2016, 10:12 am
I am a: Programmer
PlayStation Model: SCPH-9001
Want to Find: Awesome games!
Looking to: Make awesome games!
Skype: amurph333@outlook.com
Steam: atm959
Contact:

Re: Psy-Q TIM EXAMPLE

Post by atm959 » April 16th, 2016, 2:33 pm

Thanks for the reply! I found out what was wrong.

atm959
What is PSXDEV?
What is PSXDEV?
Posts: 4
Joined: April 16th, 2016, 10:12 am
I am a: Programmer
PlayStation Model: SCPH-9001
Want to Find: Awesome games!
Looking to: Make awesome games!
Skype: amurph333@outlook.com
Steam: atm959
Contact:

Re: Psy-Q TIM EXAMPLE

Post by atm959 » August 1st, 2018, 7:13 pm

I wish that I could delete these old comments lol. I didn't know what I was doing back then, but I've learned since then.

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2296
Joined: December 31st, 2012, 5:37 pm
PlayStation Model: H2000/5502

Re: Psy-Q TIM EXAMPLE

Post by Shadow » August 1st, 2018, 7:25 pm

atm959 wrote:
August 1st, 2018, 7:13 pm
I wish that I could delete these old comments lol. I didn't know what I was doing back then, but I've learned since then.
It's good because if others have the same issue, they might find it 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.

User avatar
MrQuetch
Curious PSXDEV User
Curious PSXDEV User
Posts: 24
Joined: April 1st, 2018, 9:34 am
Motto: You can accomplish anything.
Looking to: Create professional homebrew.
Location: United States

Re: Psy-Q TIM EXAMPLE

Post by MrQuetch » December 20th, 2018, 4:51 pm

Forgive me if this question is absurd... I'm sure I've asked this somewhere before... But, it's been awhile...

Is it possible to manually manipulate the pixels in those texture sheets?

I'm not referring to the actual texture sheets themselves, but rather the program that edits them.

Is there another method to get textures working besides the TIM editor?

I was thinking I could just have an array of colors in my project, and somehow tell a textured primitive to take that data and use it. Is this possible?

Thank you.

User avatar
gwald
1997 Yaroze Enthusiast
1997 Yaroze Enthusiast
Posts: 256
Joined: September 18th, 2013, 8:44 am
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Location: Australia
Contact:

Re: Psy-Q TIM EXAMPLE

Post by gwald » December 21st, 2018, 8:18 am

Not sure what you mean by 'TIM editor'.
If you want to create TIM's in PS1 RAM dynamically, you can, the 16bit format was the easiest for me anyway :roll:
MrQuetch wrote:
December 20th, 2018, 4:51 pm
I was thinking I could just have an array of colors in my project, and somehow tell a textured primitive to take that data and use it. Is this possible?
"textured primitive" I'm assuming you're talking about 3D polygons.
If you want a solid or gradient colours then just use the RGB polygon values and don't bother with UV's coords?
If want a small text sample, you can too, you just set the UV's and if you want to colour the textures with RGB that's also possible, to give you that N64 look :lol:

Maybe saying what you want to achieve would help? ie easiest way to make a 3D textured object flash in a solid colour.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest