English Amiga Board


Go Back   English Amiga Board > Support > support.Games

 
 
Thread Tools
Old 06 October 2002, 09:16   #1
gary
Junior Member
 
gary's Avatar
 
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
Stuntcar Racer on a CD32

I have the Pyrodex single-file crack of this game which runs fine on a standard CD32 with one problem - You must enter a name before starting the game - which is not easy when you don't have a keyboard. The Joypad button can be used instead of <ENTER> but the routine won't allow a blank name to be entered.

I thought I could throw in a couple of NOP's at the right place but it turned out not to be as straight forward as I thought (eg: like bypassing a wait-for-mouse-button press in many intros).

Can anyone tell me how I can make changes to bypass the name entry in this game by changing the hex codes?
gary is offline  
Old 07 October 2002, 03:35   #2
Codetapper
2 contact me: email only!
 
Codetapper's Avatar
 
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
Angry Removing name entry

Unfortunately it won't be as easy as changing a few bytes because Pyrodex packed the file into a single load. It depacks the full game and it would be at that point that you need to patch it, after decrunching.

It would require running another program first which runs it, depacks and patches it or tacking on a new part to the current single file.

Would an adjustment to the WHDLoad version so that a blank name can be entered be any use instead? You could burn that onto a CD and that way it wouldn't require stuffing around with Pyrodex' often dodgy code.
Codetapper is offline  
Old 07 October 2002, 04:21   #3
gary
Junior Member
 
gary's Avatar
 
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
I have already decrunched the file and am running that version so i think I could change the bytes safely, but as far as adding extra code - I don't think so.

Yes, a WHDload slave that could achieve the same thing would be better as WHDload is usually more system friendly than the single-file versions of the games I've seen. The only disadvantage with a WHDload version is the extra memory usually required for the games, but I think in the case of StuntCar Racer this is not a problem.
gary is offline  
Old 23 April 2004, 02:13   #4
spiff
Oh noes!
 
spiff's Avatar
 
Join Date: Mar 2003
Location: Neverland
Posts: 766
Gary
Did you ever get anywhere with this? I'm in the exact same position with a couple of games using f1 or input name/number + enter.
A general cd32 button = key function in whd would be nice.. but I guess a bit far fetched.

The jst install for shadow of the beast is one of the best I've seen for this.

Quote:
Short: HD Installer for Shadow Of The Beast III V1.3

...

JOYPAD tooltype allows to use the joypad extra buttons

- RED: normal fire
- BLUE (second button on a 2 button joystick): weapon change
- START: pause
- FORWARD: invincibility
- BACKWARDS: remove invincibility
- GREEN: restart part
spiff is offline  
Old 23 April 2004, 03:19   #5
gary
Junior Member
 
gary's Avatar
 
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
Quote:
Did you ever get anywhere with this? I'm in the exact same position with a couple of games using f1 or input name/number + enter.
No. I tried using Action Replay (under emulation) to trace the assembler code at the point at which StuntCar racer was waiting for ENTER to be pressed in the hope that I could throw in some NOP's or RTS at an appropriate place but my assembler skills are poor and I couldn't follow the code. I think I managed to change a couple of games (eg: Monty Python) where it was waiting for ENTER but the code was very obvious.

It was frustrating to come accross games that required F1 or F10 to start, yet at other points the FIRE button was used to proceed.
gary is offline  
Old 23 April 2004, 05:37   #6
Codetapper
2 contact me: email only!
 
Codetapper's Avatar
 
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
If you guys don't report the keyboard requirements to the WHDLoad authors they won't know anybody wants them! I have changed a few games like Plutos and Puzznic which required you to press keys to start and it's usually very easy to do.
Codetapper is offline  
Old 23 April 2004, 08:08   #7
spiff
Oh noes!
 
spiff's Avatar
 
Join Date: Mar 2003
Location: Neverland
Posts: 766
Well.. um.. eh .. that would be to easy..and I'll sound all whiny about blodmoney or sumethin' eh..

yea will do
*Fires up cd32*
spiff is offline  
Old 28 April 2004, 02:53   #8
gary
Junior Member
 
gary's Avatar
 
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
I received this email from Amiga Boy and after making the changes I now have a version of StuntCarRacer that does not require a keyboard:

Code:
================
 - The name enter screen of Stunt Car Racer requires you to press enter to
submit your name. Obviously, this isn't possible on a CD32.
 - Boot Stunt Car Racer with an Action Replay attached.
 - On the name screen, set a memory breakpoint on 0x1ED5B (it never changed for
me but if it did, find out where it's storing your name). Now type a character.
You'll break into AR at 0x5B80C:
 
  0005b802 247c 0001 ecab           MOVEA.L #$0001ecab,A2
  0005b808 1580 2000                MOVE.B D0,(A2, D2.W*1, $00) == $0001ed5c
  0005b80c 5201                     ADD.B #$00000001,D1
  0005b80e 4ef9 0005 b744           JMP.L $0005b744
  0005b814 1401                     MOVE.B D1,D2 

 - The line we're on is adding 1 to D1. Obviously this is a character count.
What we want to do is find out where enter is pressed and change that. The code
for Carriage Return is 0xD. Scroll up. Eventually you'll hit:
 
  0005b740 123c 0000                MOVE.B #$00,D1
  0005b744 1401                     MOVE.B D1,D2
  0005b746 d439 0001 bbd5           ADD.B $0001bbd5,D2
  0005b74c 4eb9 0005 9850           JSR.L $00059850
  0005b752 4a39 0006 2bb5           TST.B $00062bb5
  0005b758 6a00 0012                BPL.W #$0012 == 0005b76c
  0005b75c 4eb9 0005 9928           JSR.L $00059928
  0005b762 4a39 0005 b83d           TST.B $0005b83d
  0005b768 6600 00c2                BNE.W #$00c2 == 0005b82c
  0005b76c 0c00 000d                CMP.B #$0d,D0
  0005b770 6700 00ba                BEQ.W #$00ba == 0005b82c
 

 - 0x5B76C checks D0 against 0xD. This must be it. Temporarily change the
following BEQ to BRA. Now when you have at least 1 character and you press any
other button, it goes into the game. Good. Some progress!
 - EDIT: Button already works! Type stuff and press your button and it
continues. heh. Silly me. Forgot what I just said :-)
 - The next thing we need to do is make it so you don't need any characters in
there. Well, once you press enter, we go to 0x5B82C. Let's go there:

  0005b82a 5201                     ADD.B #$00000001,D1       ; Add 1 to number
of letters entered
  0005b82c b239 0005 b83c           CMP.B $0005b83c,D1        ; Compare entered
letters to 0xC (12)
  0005b832 6d00 ffe0                BLT.W #$ffe0 == 0005b814  ; If we've entered
too many, go somewhere
  0005b836 4ef9 0006 4834           JMP.L $00064834           ; Jump
  
 - hmmmm. It adds 1 to the number of letters entered. Perhaps this only happens
when the letter has been validated?
 - ok. Figured it out. Sorry to skip ahead :-)
 - At 0x5B76C, change to:
 
  0005b76c 103c 0078                MOVE.B #$78,D0
  0005b770 6000 00a2                BT .W #$00a2 == 0005b814
 
 - This says move the letter 'x' into D0. Then we branch to 0x5B814.
 
  0005b814 1401                     MOVE.B D1,D2
  0005b816 d439 0001 bbd5           ADD.B $0001bbd5,D2
  0005b81c 103c 0020                MOVE.B #$20,D0
  0005b820 247c 0001 ecab           MOVEA.L #$0001ecab,A2
  0005b826 1580 2000                MOVE.B D0,(A2, D2.W*1, $00) == $0001ed5c
  0005b82a 5201                     ADD.B #$00000001,D1       ; Add 1 to number
of letters entered
  0005b82c b239 0005 b83c           CMP.B $0005b83c,D1        ; Compare entered
letters to 0xC (12)
  0005b832 6d00 ffe0                BLT.W #$ffe0 == 0005b814  ; If we've entered
too many, go somewhere
  0005b836 4ef9 0006 4834           JMP.L $00064834           ; Jump
  
 - Now at 0x5B81C, change to:
 
  0005b81c 4e71                     NOP.L
  0005b81e 4e71                     NOP.L
 
 - Now at 0x5B832, change to:

  0005b832 4e71                     NOP.L
  0005b834 4e71                     NOP.L 
  
 - So what's happening?
  * Put 'x' into D0 (ie. Pretend we typed this)
  * Move 'x' into D2
  * Prepare D2
  * Set A2 to 0x1ECAB
  * Move 'x' into name storage area
  * Add 1 to number of characters in name
  * Do a useless compare
  * Jump to the game
 - Now in the game, your name is 'x' :-)
========
gary is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Combo Racer mai support.Games 1 24 September 2010 01:54
StuntCar Racer multiplayer link Bloodwych Nostalgia & memories 43 03 June 2010 01:12
T-Racer MethodGit request.Modules 1 05 April 2007 19:31
F1 Racer Solid Snake request.Old Rare Games 2 15 May 2006 17:42
StuntCar Racer Pro canned Bloodwych Retrogaming General Discussion 9 18 December 2005 14:23

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 18:43.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08381 seconds with 13 queries