Jump to content
IGNORED

Dantructor


newcoleco

Recommended Posts

Hello,

 

* WARNING * - IT'S STILL BUGGY - TOO BAD!

 

8) ** Happy birthday to all ColecoVision fans! ** 8)

 

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.

 

My Conditions

 

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

 

 

* 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+
   or  l
   ld (07014H+,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
  • Like 1
Link to comment
Share on other sites

Was wondering....

 

Can this hack can be performed on Turbo ?

 

Well, I was about to make another thread for the Turbo hack. :D

 

Same conditions apply : You enjoy the ROM file but no one is allowed to make cartridges of it. :x

 

ROM : danielturbo.zip

 

It seems that my hack for Turbo is less buggy, or even no bug at all, compared to Destructor.

 

The hack (or patch if you prefer), is very similar. In fact, this time there is only one place where the POLLER routine is called (into the NMI routine), making it easier to edit this time. It took me only 2 hours because of my experience with Destructor.

Edited by newcoleco
  • Like 2
Link to comment
Share on other sites

Um, Daniel? You might want to have a look at this... :ponder:

I don't think I'll do the modifications suggested in your web page. I'm happy with the current controls and I did it for fun. But, good news, you can use my work as a clue to modify the game the way you want it. Have a nice day!

Link to comment
Share on other sites

Um, Daniel? You might want to have a look at this... :ponder:

I don't think I'll do the modifications suggested in your web page. I'm happy with the current controls and I did it for fun. But, good news, you can use my work as a clue to modify the game the way you want it. Have a nice day!

Okay, but you're the one who's cheating himself out of 250$US.

Link to comment
Share on other sites

What should I reply... Well, yes, I'm a fool.

 

Maybe I should makes everyone pay for whatever I've done so far for Coleco fans. Because, after all, if you're good at something makes sure you can be paid for that.

 

I've done this modification because I wanted to see if I can do it for these games based on the ColecoVision documentations and, obviously, I can.

 

Destructor and Turbo are games that Coleco fans already have (or can have pretty easily). And these games are playable "as is", with a steering wheel of course, but it's playable.

 

My work is not based on selling hacked rom files, it's based on having fun first, trying to do my own projects, and get the support of ColecoVision fans.

 

Destructor is not my game, so I don't feel comfortable to sell it for such a small modification. It took me less time than writing music.

 

Find someone else, or do it yourself! It's pretty easy when you figure it out.

Link to comment
Share on other sites

I'll try to make my own Turbo hack (based on yours)

Great! Have fun doing it!

 

Do you think Slither could be hack in kind of same way?

I think I'll give a try at it

Good question. Unfortunately, to give you the correct answer, I'll need to try it.

Link to comment
Share on other sites

I'll try to make my own Turbo hack (based on yours)

Great! Have fun doing it!

 

Do you think Slither could be hack in kind of same way?

I think I'll give a try at it

Good question. Unfortunately, to give you the correct answer, I'll need to try it.

 

Thanks Daniel

 

I wonder if playing Slither with regular controller could be great....

I do like to play it using the roller Controller, but those modules takes too much space at my place...

That's why I do like those hacks

Link to comment
Share on other sites

My work is not based on selling hacked rom files, it's based on having fun first, trying to do my own projects, and get the support of ColecoVision fans.

 

Destructor is not my game, so I don't feel comfortable to sell it for such a small modification. It took me less time than writing music.

 

Find someone else, or do it yourself! It's pretty easy when you figure it out.

I'm sorry you feel that way, because as you know, I'm having my Team Pixelboy boxes reprinted this fall, and I could have had the Destructor SCE box done at the same time. I already have the european box of the game at home, so I can scan that box art at any time, and the manual could have been prepared relatively quickly as well.

 

But oh well, it's no big deal. Releasing the game wasn't on my 2010 agenda anyhow (although it could have been, given the opportunity). :)

Edited by Pixelboy
Link to comment
Share on other sites

I'm sorry you feel that way, because as you know, I'm having my Team Pixelboy boxes reprinted this fall, and I could have had the Destructor SCE box done at the same time. I already have the european box of the game at home, so I can scan that box art at any time, and the manual could have been prepared relatively quickly as well.

 

But oh well, it's no big deal. Releasing the game wasn't on my 2010 agenda anyhow (although it could have been, given the opportunity). :)

Being sorry regarding my convictions? Or because I'm not directly helping you?

 

With the big clue I've posted here regarding my solution to patch this game, almost ANY z80 programmer can do the modifications you're asking for, even you can do it in a day.

 

Use DASMx with this symbol file. Name this file the same as the rom file, except the extension should be ".SYM", and put it in the same directory, with the DASMx program.

 

cpu		z80
org		0x8000

byte		0x8000	Header	2
word		0x8002	Pointer	3
word		0x8008	PollerBuf 1
vectab		0x800a	StartWhere
code		0x800c	Rst08
code		0x800f	Rst10
code		0x8012	Rst18
code		0x8015	Rst20
code		0x8018	Rst28
code		0x801b	Rst30
code		0x801e	Rst38
code		0x8021	NMI

 

Type (in DOS) : DASMx -w -a -t FILENAME.ROM

 

Then open the resulting ASM file. Get rid of the bunch of "db 0FFH,0FFH,0FFH,..." lines at the end of the file. Change back false labels into hex values like "L0008" should be "00008H". Remark that "RST L0008H" should be something more like "RST 008H". Replace all RAM addresses identified with an X like "X7000", and change them back to something like this "$7000".

 

When done, add the following lines at the top of your ASM file.

 

       FNAME "desct2.rom"
       CPU Z80         ; switch to Z80 mode
       
; BIOS CALLS

L080B:  EQU 0080BH ; PUT FRAME ( for complex image or to simulate sprites with characters )
L1F61:  EQU 01F61H ; PLAY SONGS
L1F79:  EQU 01F79H ; DECODER ( INPUT H as port#, L as fire or not ; OUTPUT H as fire state, L as joystick or keyboard state, E as spinner
L1F7F:  EQU 01F7FH ; LOAD DEFAULT ASCII FONT PATTERN
L1F82:  EQU 01F82H ; FILL VRAM
L1F88:  EQU 01F88H ; UPDATE SPINNER
L1FB8:  EQU 01FB8H ; INIT TABLE
L1FBB:  EQU 01FBBH ; GET VRAM
L1FBE:  EQU 01FBEH ; PUT VRAM
L1FC4:  EQU 01FC4H ; WRITE SPRITE NAME TABLE
L1FC7:  EQU 01FC7H ; INIT TIMER
L1FCD:  EQU 01FCDH ; REQUEST SIGNAL
L1FD0:  EQU 01FD0H ; TEST SIGNAL
L1FD3:  EQU 01FD3H ; TIMER MANAGER
L1FD9:  EQU 01FD9H ; WRITE REGISTER
L1FDC:  EQU 01FDCH ; READ REGISTER
L1FDF:  EQU 01FDFH ; WRITE VIDEO RAM
L1FE2:  EQU 01FE2H ; READ VIDEO RAM
L1FEB:  EQU 01FEBH ; POLLER
L1FEE:  EQU 01FEEH ; SOUND INIT
L1FF1:  EQU 01FF1H ; PLAY SOUND
L1FF4:  EQU 01FF4H ; SOUND MANAGER
L1FFD:  EQU 01FFDH ; RANDOM

 

Download and use TNIASM to compile the resulting asm file you just made. If there is any error, just fix it. Otherwise, you should get a valid ROM file named "desct2.rom"

 

Congratulations, first step done! ... well, it's enough for begginers. A more serious z80 programmer will certainly put more time working into the symbols file for DASMx : adding up lines to identify each code sections, even those not discovered by the decompiler, and various other things.

 

Test the new rom file, it should works fine.

 

Now, time to patch the assembly code. Do as stated in my previous message here and you should get my hack done... and change only the routine to fit the configuration you want and there you go.

 

That's it! It should takes you less than an hour!

 

And please note that this little trick regarding DASMx and TNIASM works for many many commercial ColecoVision games, with a few minor changes here and there.

Edited by newcoleco
Link to comment
Share on other sites

Being sorry regarding my convictions? Or because I'm not directly helping you?

Because I'm offering good money in exchange for a service, with full credit given where credit due. Gulkave, Girl's Garden and Pitfall II Arcade were ported upon such an arrangement, and I'm certainly not going to apologize for being a ColecoVision publisher.

Link to comment
Share on other sites

Because I'm offering good money in exchange for a service, with full credit given where credit due. Gulkave, Girl's Garden and Pitfall II Arcade were ported upon such an arrangement, and I'm certainly not going to apologize for being a ColecoVision publisher.

Err... it's not my intention to ask you to apologize for anything. Publish all the games you want, these are great projects and should be released for the joy of the fans. My question now should be : Why suddently my question about why you feel sorry about my answer turned into this situation?

 

I don't want you to change... specially because I'm not modifying a game as you proposed in your web site; it's ridiculous.

 

Yes, I'm telling everyone here how I've proceeded so anybody (including you) can make similar modifications and even produce a ROM file that fits the specifications of your web site. This way, more sooner than later, you'll publish the game you want. Isn't that great?

 

You know, part of the joy of any homebrew scene is to try modifying things that already exist to see how it works and what we can do. And that's what I did and I've shared the results with the fans, even with the "behind the scene" secrets on how I did it.

 

Let me try to clarify my point of view. Again, it's not to prevent you to publish a hacked Destructor; you are a publisher, I understand that. See, if I've accepted your offer, then I'll have to accept a situation like someone doing a re-skin of Ghostblaster and sell it credited to his great hacking work. I'm sorry, I can't accept this situation regarding my games, so my feeling about not being comfortable to get money for hacking a game is a legitimate feeling.

 

I don't feel guilty regarding the hack I've done to these games, that was pretty cool, but I don't want to make a benefit of it; it simply doesn't sound right to me. So, I'm sharing the result with you, with all the secrets, in the hope that someone will appreciate.

 

And with all the secrets revealed, it may also help others to make even more cool hacks, which is pretty cool.

 

Call it a stupid programmer ethic issue, but it's the way I feel about this situation and I don't see why you should feel sorry about it. Yes, I know, I should take the opportunity, it's $250 and I certainly need it, but I prefer to not get any money for a hack.

 

IF YOU APPROVE THIS MESSAGE, PLEASE RATE IT (just kidding)

Edited by newcoleco
  • Like 4
Link to comment
Share on other sites

Daniel,

 

Tremendous work on these two hacks and VERY MUCH APPRECIATED!! I never truly liked using the Steering Wheel with Destructor and I'm sure this is the reason why I didn't spend as much time with this game in my youth. Now thanks to your efforts and kindness in sharing this modified version with the community, I have the opportunity to re-explore this game.

 

Jim

Link to comment
Share on other sites

Because I'm offering good money in exchange for a service, with full credit given where credit due. Gulkave, Girl's Garden and Pitfall II Arcade were ported upon such an arrangement, and I'm certainly not going to apologize for being a ColecoVision publisher.

Err... it's not my intention to ask you to apologize for anything. Publish all the games you want, these are great projects and should be released for the joy of the fans. My question now should be : Why suddently my question about why you feel sorry about my answer turned into this situation?

Ah, okay, I see where the misunderstanding is. :) "I'm sorry you feel that way" is a common english expression, Daniel. It simply expresses disappointment. The word "sorry" in this expression doesn't carry a specific meaning.

 

I don't want you to change... specially because I'm not modifying a game as you proposed in your web site; it's ridiculous.

I just tried Dantructor with blueMSX. It works pretty well, I have to say, although I still have to try it on a real CV. As far as your hack is concerned, the only mod I would have suggested is to use the other fire button to toggle between reverse and foward gear. :)

 

Yes, I'm telling everyone here how I've proceeded so anybody (including you) can make similar modifications and even produce a ROM file that fits the specifications of your web site. This way, more sooner than later, you'll publish the game you want. Isn't that great?

Well, sure, it would be great... if I were a Z80 programmer. Which I'm not. Not yet anyway. Seriously, I can take every line of the code you posted in this thread, and say "Why do you do this? Why do you do that?" I'll have to learn this stuff if I want BasicVision to become reality, but I'm not there yet. Not by a long shot.

 

Let me try to clarify my point of view. Again, it's not to prevent you to publish a hacked Destructor; you are a publisher, I understand that. See, if I've accepted your offer, then I'll have to accept a situation like someone doing a re-skin of Ghostblaster and sell it credited to his great hacking work. I'm sorry, I can't accept this situation regarding my games, so my feeling about not being comfortable to get money for hacking a game is a legitimate feeling.

Okay, I can understand that. I'm not sure I can agree with it 100%, but I understand.

 

I don't feel guilty regarding the hack I've done to these games, that was pretty cool, but I don't want to make a benefit of it; it simply doesn't sound right to me. So, I'm sharing the result with you, with all the secrets, in the hope that someone will appreciate.

You know, dvik-&-joyrex didn't ask to get payed for their CV port of Peek-a-boo, aside from a free copy of the cart. They discarded the payment option because they wanted the game to be as cheap to buy as possible. That's why Peek-a-boo will have a lower pricetag than the other upcoming games I will offer. I could have done that with Destructor SCE too. You know I don't make a dime of profit from the sale of my Team Pixelboy titles in any case. I sell my games at cost. :)

 

And with all the secrets revealed, it may also help others to make even more cool hacks, which is pretty cool.

Would you mind if I added a link to this AA forum thread from my own web site, on the Destructor SCE page?

 

Call it a stupid programmer ethic issue, but it's the way I feel about this situation and I don't see why you should feel sorry about it. Yes, I know, I should take the opportunity, it's $250 and I certainly need it, but I prefer to not get any money for a hack.

Yeah, you could make money from Jewel Panic instead... ;) (Okay, that was low. Sorry... :P )

Link to comment
Share on other sites

I just tried Dantructor with blueMSX. It works pretty well, I have to say, although I still have to try it on a real CV. As far as your hack is concerned, the only mod I would have suggested is to use the other fire button to toggle between reverse and foward gear. :)

Wait, forget it. I just realized that doesn't make any sense. You're already using one button for the pedal, and the other to fire crystals.

 

I noticed that (under blueMSX) you can't return to foward gear after you've put the RamCar in reverse gear. Is that what you meant when you said the game is still buggy?

Link to comment
Share on other sites

I noticed that (under blueMSX) you can't return to foward gear after you've put the RamCar in reverse gear. Is that what you meant when you said the game is still buggy?

Yes, it's a bug regarding the "debounce" the joystick input done by the BIOS Poller routine. I've fixed it later, but I didn't post it yet... because we are in a discussion and I can't edit my own messages in this forum, which is very annoying.

 

Anyway, as for the ROM you have actually, you can "fix" the issue during the game by using the second controller like if it was set with the steering wheel. The bug is due to my wish to support both settings : steering wheel and joystick.

Link to comment
Share on other sites

I noticed that (under blueMSX) you can't return to foward gear after you've put the RamCar in reverse gear. Is that what you meant when you said the game is still buggy?

Yes, it's a bug regarding the "debounce" the joystick input done by the BIOS Poller routine. I've fixed it later, but I didn't post it yet... because we are in a discussion and I can't edit my own messages in this forum, which is very annoying.

If I'm not mistaken, posts are editable without restriction in the Homebrew Discussion forum. Perhaps you can post the new ROM there, and place a link to this other thread here.

 

Anyway, thanks for the info. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...