* WARNING * - IT'S STILL BUGGY - TOO BAD!
** Happy birthday to all ColecoVision fans! **
I've decided to take a look at Destructor ROM file today and after 6 hours this is the result of patching the code and giving the option to play with a regular Coleco controller instead of the steering wheel.
I know that some people asked for this kind of hack, and this is my response.
Please note that this hack should be able to support joystick and steering wheel. And you can even use a SuperAction controller if you want.
I'm not gonna make cartridges of this game. Consider that you also don't have my aproval to publish this game into cartridges and to hack back the title screen of it. If you understand my conditions, you can proceed to download :
ROM : dantructor.zip 21.08KB 157 downloads
* FOR Z80 PROGRAMMERS *
The hack is in 2 parts
First - you can select the game difficulty seting with joystick in port #1, not only with joystick in port #2.
Second - You play with the joystick in port #1, which emulates the steering wheel setup pretty well. But, I've decided to use the secondary fire button instead of pressing a key to shoot, which is more convenient.
This hack is about replacing calls to $1FEB ( aka POLLER routine ) by appropriate routines that makes the calls but also override the resulting values $7014-$701F to simulate the effect of the steering wheel movements by the LEFT and RIGHT of joystick port #1, the move forward and backward also possible with joystick port #1, and making the secondary fire button on port #1 acting like a keypress on port #2.
;; Destructor joystick support hack ;; By Daniel Bienvenu ;; July 2010 ;; NOTE : ;; Add the following code to the end of the 32KB ROM ( filled with useless 0FFH anyway ) hack: push hl ld a, 00FH ld (0701FH),a call $1FEB ; POLLER with $7014 as BUFFER ;;; HACK PATCH JOYSTICK INPUT ld a,(07014H+5) or a jr z,hack_pass_shooting ld a,1 ld (0701FH),a hack_pass_shooting: ld a,(07014H+3) and 5 ld l,a ld a,(07014H+<img src='http://www.atariage.com/forums/public/style_emoticons/<#EMO_DIR#>/icon_cool.gif' class='bbc_emoticon' alt='8)' /> or l ld (07014H+<img src='http://www.atariage.com/forums/public/style_emoticons/<#EMO_DIR#>/icon_cool.gif' class='bbc_emoticon' alt='8)' />,a ld a,(07014H+3) ;;; SIMULATE STEERING WHEEL EFFECT WITH LEFT AND RIGHT bit 1,a jr nz, hack_right bit 3,a jr nz, hack_left jr hack_end hack_right: ld a,($716F) dec a jr hack_save hack_left: ld a,($716F) inc a hack_save: and 03Fh ld ($716F),a hack_end: pop hl ret hack_keypad: call $1FEB ld a,(07014H+6) cp 00CH ret nc ld (07014H+11),a ld a,00FH ld (07014H+6),a ret ;; Replace the call at the address $80B3 for " call hack_keypad " ;; Replace the call at the address $CCBC for " call hack_keypad " ;; Replace the first call to $1FEB from the routine started at $A6A3 for " call hack " ;; Enjoy!
Edited by newcoleco, Thu Jul 8, 2010 6:23 PM.