Page 2 of 3

Re: how to make PS1 trainer patching cheats codes

Posted: April 2nd, 2021, 6:04 pm
by alimadhi
Unfortunately it just works with EPSXE v2.0.5 and its freezing with original hardware
EDIT:
its work fine need good redump game

Re: how to make PS1 trainer patching cheats codes

Posted: April 2nd, 2021, 9:52 pm
by inc^lightforce
Ok, do i understand it right?
It is working for you with epsxe 2.0.5
But it does Not work if you burn it on a CD and try to play on real Hardware, the play Station?
To burn this game correctly on a CD, we must need a 1:1 cdrwin bin and cue file. Not this copied Version that exist in the net.
But i could not find a original ps1 disc. I have the Original EU disc, but it's only german.

Re: how to make PS1 trainer patching cheats codes

Posted: April 3rd, 2021, 2:36 am
by Dedok179
inc^lightforce, Thank you for the fairly simple and efficient menu structure! I used his basic principle on PS2.

Re: how to make PS1 trainer patching cheats codes

Posted: April 3rd, 2021, 2:47 am
by inc^lightforce
Plain and simple ;) that's the way.

Props for your trainer for SH 3
Loved this game.

Re: how to make PS1 trainer patching cheats codes

Posted: April 3rd, 2021, 4:52 am
by alimadhi
@inc^lightforce
its works fine

Re: how to make PS1 trainer patching cheats codes

Posted: April 10th, 2021, 11:47 pm
by inc^lightforce
alimadhi wrote: April 3rd, 2021, 4:52 am @inc^lightforce
its works fine
thanks for feedback. Image

Re: how to make PS1 trainer patching cheats codes

Posted: April 11th, 2021, 2:14 am
by Rabatini
Hello dear Fellows.

a nice information:
i did test a lot emulators and consoles and i can tell you guys this:
All alteration like, splash, trainer, selector, etc...
will work in every emulators and original console.

except in EPSXE below 2.0.5, like 2.0.2, 1.90, 1.70 etc.
the game will not work, will give you an error of opcode after your splash/trainer/etc...

Regards.

Re: how to make PS1 trainer patching cheats codes

Posted: April 11th, 2021, 5:41 am
by ShadowGeist
inc^lightforce wrote: April 2nd, 2021, 7:41 am Tomb Raider 1 US NTSC to PAL Selector +6.
:cool:

Gran Turismo 60fps would be kinda cool. ;)

Re: how to make PS1 trainer patching cheats codes

Posted: April 12th, 2021, 2:27 am
by szalay_1
hmm - "Invincibility" code.. interesting
who made these cheat codes ?
also what about jokered codes like moonjump etc ?

Re: how to make PS1 trainer patching cheats codes

Posted: April 12th, 2021, 3:15 am
by inc^lightforce
There are so many Codes. But i used this 6. This was the request

Re: how to make PS1 trainer patching cheats codes

Posted: June 20th, 2021, 8:28 am
by szalay_1
hey x7502x, sent PM.

Re: how to make PS1 trainer patching cheats codes

Posted: September 25th, 2022, 5:11 am
by alimadhi
EDIT: i forget put (Decrunch) and (Exec address) :) now its working

Where is the problem with this?
I tried to add Trainer to the Dino Crisis (U) (SLUS-00922)
I just changed MAIN.C and trainer.asm
and file SLUS-00922 to GAME.RNC
Everything is fine, but after pressing X or O, the game freeze at Trainer menu :(
all project from TR1US-PSX_Patch from @inc^lightforce
menu ok;
Image

freezing after X or O;
Image

Re: how to make PS1 trainer patching cheats codes

Posted: September 26th, 2022, 12:34 am
by alimadhi
Question: How do I add more than one code to trainer ?

Example: add 2 codes to the trainer.asm
#Play Bio Hazard 2 Mode
D000E3A4 0000
300CFB74 0000

Code: Select all

Mode:
LUI     a0,0x8000                        
ORI     a0,a0,0xE800          ;
ORI     t0,zero,0x0001        ;v0 == 1               
LB      t9,0x0000(a0)         ;load a byte from a0 8000E800 to v1
NOP 
BNE     t0,t9,pop_stack         ;compare v0 and v1
NOP 

li	  t0,$!!!!!!!!  		;ar part 1   
ori	  s0,zero,0x!!!!  		;the value to be written ar part2
nop
sh	  s0,0x00(t0)		;write the value
nop 

Re: how to make PS1 trainer patching cheats codes

Posted: September 28th, 2022, 8:39 pm
by alimadhi
please help me
EDIT:
It's not easy but i got it :D
Example:
Open All The Copters
E00EB1D3 0001
300EB1D3 0004

if you want to add 2 values it will be like this

Code: Select all

Copters:
 LUI a0,0x8000 
 ORI a0,a0,0xE800
 ORI t0,zero,0x0001
 LB t9,0x0000(a0)
 NOP
 BNE t0,t9,pop_stack
 NOP
 LUI a0,0x800E            //first value
 ORI a0,a0,0xB1D3      //first value
 LB t9,0x0000(a0)
 ORI t0,zero,0x0001
 BNE t0,t9,pop_stack
 nop
 XOR s0,s0,s0
 li t0,$300EB1D3   //second value
 ori s0,s0,$0004
 nop
 sb s0,0x00(t0)
 nop

Re: how to make PS1 trainer patching cheats codes

Posted: November 16th, 2022, 10:42 pm
by Gsscc
Gsscc wrote: alimadhi I can't find this project to download, would you be able to send this project to my email? [email protected]

Image

Re: how to make PS1 trainer patching cheats codes

Posted: November 17th, 2022, 11:01 am
by inc^lightforce
I'm so sorry, but i don't have time at the moment to help you all. Trainer coding is really very easy. i hope i find time around xmas to help with all your questions. i think i create a Workshop especially for trainer coding

by the way.


i helped month ago and wrote the trainer for Resident Evil. why is this game still discussed?

Re: how to make PS1 trainer patching cheats codes

Posted: November 20th, 2022, 4:21 pm
by Gsscc
Gsscc wrote: inc^lightforce How do I edit the font and enlarge the two lines of the Trainer Cheats picker?

Re: how to make PS1 trainer patching cheats codes

Posted: November 23rd, 2022, 3:47 am
by inc^lightforce
the font is a transparent bmp image. if you wanna use another font, you must use another font-image.bmp

more lines can be added in the main.c and in the trainer.asm file

Example for Main.C

Code: Select all

//-------------------------------------------------------------------------------
// THE TRAINER MENU LINES
//-------------------------------------------------------------------------------
void init_Menu()
{
	int	i;
	for(i=0;i<NUMTRAIN;i++)
	{
		choice[i]=0;
	}
	//-----------------
	// Line 1-1/2
	//-----------------
	mline[0].attribute=0;
	mline[0].x0=36;	mline[0].y0=170-1;
	mline[0].x1=160;mline[0].y1=170-1;
	mline[0].r0=0;	mline[0].r1=43;
	mline[0].g0=0; mline[0].g1=250;
	mline[0].b0=0;mline[0].b1=250;//line color 1/2 / 4
	//-----------------
	// Line 1-2/2 
	//-----------------
	mline[1].attribute=0;
	mline[1].x0=160;mline[1].y0=170-1;
	mline[1].x1=282;mline[1].y1=170-1;
	mline[1].r0=43;mline[1].r1=0;///ro 255 vert
	mline[1].g0=250;mline[1].g1=0;
	mline[1].b0=250;mline[1].b1=0;
	//-----------------
	// Line 2-1/2
	//-----------------
	mline[2].attribute=0;
	mline[2].x0=36;	mline[2].y0=170+FONT_H-1;
	mline[2].x1=160;mline[2].y1=170+FONT_H-1;
	mline[2].r0=0;	mline[2].r1=43;
	mline[2].g0=0; mline[2].g1=250;
	mline[2].b0=0;mline[2].b1=250;
	//-----------------
	// Line 2-2/2
	//-----------------
	mline[3].attribute=0;
	mline[3].x0=160;mline[3].y0=170+FONT_H-1;
	mline[3].x1=282;mline[3].y1=170+FONT_H-1;
	mline[3].r0=43;mline[3].r1=0;
	mline[3].g0=250;mline[3].g1=0;
	mline[3].b0=250;mline[3].b1=0;
}
//-------------------------------------------------------------------------------
// Options-Menu showing
//-------------------------------------------------------------------------------
void do_Menu()
{
	int	h,i,j,k=0;
	int	numSprites=0;
	int	yPos=145;
	int	len,offi;
	static int startat=0;
	static int colcnt=30,coladd=4;
	static int coly=144,coloff=0;		
	//--------------------------------------
	// calculate the corresponding sprites
	//--------------------------------------
	for(h=0;h<5;h++)//////nombre de trainer +1
	{
		offi=startat+h+(choice[startat+h]*NUMTRAIN);
		len=strlen(options[offi]);
		for(i=0;i<len;i++)
		{
			numSprites++;
			for(j=0;j<anzfontabc;j++)
			{
				//-------------------------------------------------
				// if SPACE just doesn't display sprites
				//-------------------------------------------------
				if(options[offi][i]==' ') // tab ??
				{
					sprMenu[k++].w=0;
					break;
				}
				//------------------------------------------------
				//  enter the sprite corresponding to the letter
				//------------------------------------------------
				if(options[offi][i]==fontabc[j])
				{	
					fontspr1[j].g=(logosin[logosinoff2]%110)+130;//200;  //color text trainer
					fontspr1[j].r=43;
					fontspr1[j].b=250;
					sprMenu[k  ]=fontspr1[j];
					sprMenu[k  ].x=(160-(len*FONT_W)/2)+(i*FONT_W);
					sprMenu[k++].y=yPos;
					break;
				}
			}
		}
		yPos+=FONT_H;
		if((h+1)==NUMTRAIN)
		{
			break;
		}
	}
	//-----------------------
	// Sprites entries
	//-----------------------
	for(i=0;i<numSprites;i++)
	{
		GsSortFastSprite(&sprMenu[i],&othWorld[currentBuffer],0);
	}
	//------------------------------
	// Y-Position of Selector-Bars
	//------------------------------
	mline[0].y0=mline[0].y1=(coloff*FONT_H)+coly;
	mline[1].y0=mline[1].y1=(coloff*FONT_H)+coly;
	mline[2].y0=mline[2].y1=(coloff*FONT_H)+coly+FONT_H;
	mline[3].y0=mline[3].y1=(coloff*FONT_H)+coly+FONT_H;

	if(--colcnt==0)
	{
		colcnt=60;
		coladd*=-1;
	}
	//------------------------
	// Selector-Bar entries
	//------------------------
	GsSortGLine(&mline[0],&othWorld[currentBuffer],0);
	GsSortGLine(&mline[1],&othWorld[currentBuffer],0);
	GsSortGLine(&mline[2],&othWorld[currentBuffer],0);
	GsSortGLine(&mline[3],&othWorld[currentBuffer],0);
	//---------------
	// Check Joypad 
	//---------------
	if(delay==0)
	{
		//-------------------
		// Joypad still up?
		//-------------------
		if(PADstatus&Pad1Up)		// coloff == bar position 0..6
		{				// startat == menu position 0..NUMTRAIN
			if(coloff==0)		// if the bar is at the top of it`s range
			{
				if(startat!=0)  //  if the first option is not at the top of menu
				{
					startat--;	// shift menu DOWN one position
				}
			}
			else
			{
				coloff--;	// reduce the position fo the bar by one if it is 						// not at the top of it`s range
			}
		}
		//--------------------
		// Joypad down?
		//--------------------
		if(PADstatus&Pad1Down)
		{
			if((coloff==2)||(coloff==NUMTRAIN-1)) // 10 values option 0..9
			{				    //if option bar is at bottom of range
							    //or if the bar is at the final 							    //trainer option
				if((startat+3)<NUMTRAIN)    // if more options to be shown
				{
					startat++;	// first option on display +1 position
				}
			}
			else
			{
				coloff++;	// coloff == position of option bar
			}
		}
		//-------------------------
		// Joypad to the left(NO)?
		//-------------------------
		if(PADstatus&Pad1Left)
		{
			choice[startat+coloff]=0;
		}
		//---------------------------
		// Joypad to the right(YES)?
		//---------------------------
		if(PADstatus&Pad1Right)
		{
			choice[startat+coloff]=1;
		}
	}
}

Re: how to make PS1 trainer patching cheats codes

Posted: November 26th, 2022, 6:06 am
by Gsscc
inc^lightforce What is your contact email address?

Re: how to make PS1 trainer patching cheats codes

Posted: November 27th, 2022, 9:48 am
by inc^lightforce
Gsscc wrote: November 26th, 2022, 6:06 am inc^lightforce What is your contact email address?
You can add me in Skype. I think it's the easiest and fasted way.
Since Microsoft took over Skype, i'm not sure which name of my account is correct to reach me.
Try: alien5ive or a5recordings
One of them must lead you directly into my account.
Please leave a message that include, you are from here, the psxdev.net.


Have a nice Weekend.