Jump to content
IGNORED

Hack'em! / Hangly Man combined :)


Nukey Shay

Recommended Posts

I had a problem with the EPROMS as well; everything else was working fine with bankswitching and initialization codes except when using the actual EPROMS. After fixing the problem through a lot of trial and error over long distance communication, I'm now tempted to buy an EPROM burner if I do this sort of thing again so that I can test it myself and not keep hounding certain people. ;)

 

I think the emulators are a little too forgiving with code, but I can't really complain because I wouldn't know how to start programming my own. They are great for what they do, but it would be nice if they were a bit more accurate with the hardware.

Link to comment
Share on other sites

By removing the lower display, I was able to trim out 6 more scanlines and allocate that cycle time to the program (I just gave half to each bank). The game level indicator is now just in the center of the screen...and bonus lives are just dots down below. Hopefully this was enough to resolve the eprom time difference.

 

Test:

hack_em_.zip

Link to comment
Share on other sites

Eproms are definately much slower than ram or whatever those other guys are using. But they still respond fast enough to make the clock cycle so it shouldn't really matter. When I tried haunted adventure last week I went ahead and burnt your 8k pac and hackem from each bank and tried them they both started ok. Was there any place in particular that was having problems?

Link to comment
Share on other sites

After changing the reset vectors, I was told that it boots correctly from eprom 100% of the time. The problem is in-game - it gives occasional screen rolls (likely due to INTIM hitting zero before the loops are reached). The first 2 test versions more-or-less confirmed this, since the rolls happened less frequently once I increased the time allotment slightly. Hopefully this new one keeps the count-down timer high enough so that those screen rolls won't happen.

A secondary problem is that a screen roll would also happen after every intermission. I don't know if this problem was related to the above - or if it's due to the program jumping between display kernals.

Since none of the above problems happen in emulation, needless to say I'm rather blind at fixing them. So I can only post kludge that I *hope* corrects it :P

 

 

2 more scanlines removed here by cutting out the lower display routine completely. I then used playfield GFX instead to display the reserve lives (sent twice so that those dots are a bit thicker). The cycle time difference between this one and the original "final" version is 256 free cycles added to bank 1, 384 free cycles added to bank 2...that's a pretty good chunk of change :)

In addition, the missing pixel in the Hanglyman maze's lower line has been fixed.

hack_em_.zip

Link to comment
Share on other sites

A couple of corrections:

 

The game now checks all collisions, so moving through monsters should have no possibility of happening. One drawback to this is that the game might not pause when eating 2 monsters at the same time (for example rather than displaying "200" and then "400", it will just display "400"). The points collected will be correct though (600 in that example), so it's not such a big deal. The improved collision detection was worth it IMO.

 

When in the starting position, the player sprite's "mouth" will be closed (per arcade).

 

When B&W is toggled, the game will display the text "PAUSED" in place of the score. It will still flash if a game is active. This was added because the original didn't have a visual reminder of B&W being selected when starting a new game. The problem of this text not being displayed correctly in green maze games has been fixed.

 

Also, I've been putting leftover bytes toward the fruit objects (they are all 7 scanlines now except cherries - which is still only 6 scanlines).

 

 

Zero bytes free :)

hack_em_.zip

Link to comment
Share on other sites

No prob. It would have been impossible without all of the feedback that I'd gotten. That allowed me to quickly correct errors as they cropped up (and which don't always show up in emulation).

 

Another remaining bug is that the 2nd intermission will repeat if pause is used when that one is running (this is due to the patch of code that is supposed to kill the intermission partway though the tune (as in the arcade) being skipped over - so that the timer value no longer matches what it needs to be. Nothing serious, since the intermission would just play for a second time.

Link to comment
Share on other sites

A couple of corrections:

 

Zero bytes free :)

 

I'm getting no screen jumps on my CC2.

 

Truth be told, I did end up seeing the occasional jump after the "final" version in September. They were very infrequent and relatively minor so I just didn't mention it. Maybe I should have but you said that you were done with the hack and I didn't want to be a bitch. :ponder:

 

The changes (loss of a few lines, the extra life counters at the top, etc) are small and well worth a final, stable game IMO.

 

Has anyone who has the capacity to burn to EPROM reported back about findings on this last posted version? I'm crossing my fingers that it's finally in the bag for you. Lord knows, I would have simply given up long ago. :wink:

 

- SS

Link to comment
Share on other sites

Hello all:

 

I made an EPROM of this and tried it -

 

Unfortunately, the screen jumped once - right as I was caught. I also did notice the occasional quick appearance of 'ghost dots'.

 

IMHO, none of this is a big deal. It doesn't take away from the gameplay whatsoever - again, IMHO.

 

Nukey, any time you need me to burn an eprom for you, just let me know. You have done (and continue to do) excellent work.

 

Bob

Link to comment
Share on other sites

Truth be told, I did end up seeing the occasional jump after the "final" version in September.  They were very infrequent and relatively minor so I just didn't mention it.  Maybe I should have but you said that you were done with the hack and I didn't want to be a bitch.  :ponder:

No, when I posted the "final" version, that basically meant that I was through adding things to it. I still want to correct errors if I can find them :) Once I killed the lower lines, it was too hard not to use up all that free space left over, so I just added in the "paused" caption and corrected the collision routine.

 

 

 

Unfortunately, the screen jumped once - right as I was caught.

The very instant (while the monsters are still on the screen)? Or just as the "folding wings" animation begins?

 

 

I also did notice the occasional quick appearance of 'ghost dots'.

Yup...those will always have a possibility of appearing, since the display kernal remains the same as the "final" version. I don't have any other way of coming up with the 2 cycles I needed after implementing multiple screens (besides having halos above the monsters...and these phantom dots are less annoying than the halos).

 

 

IMHO, none of this is a big deal.  It doesn't take away from the gameplay whatsoever - again, IMHO.

That meets the first requirement of just giving up on the problem...as long as it doesn't affect gameplay. Tho it does look ugly to have a screen roll at all...it's not as bad as having it roll when you are trying to play it. If I can track down the cause, it will be fixed (but it's hard, since I can't see it in emulation).

Link to comment
Share on other sites

  • 4 weeks later...

Updated the binary again to include a garbled screen @ level 256 8)

Below is a pic of that level (circles indicate where the energizers are). Since there's not enough dots on the board (and some are unreachable), this makes an effective kill screen.

 

Note: score shows the level # -1 in this sample pic. I haven't worked out the top score possible.

hack_em.zip

post-222-1102072177_thumb.jpg

Link to comment
Share on other sites

I finally got around to checking the game on real hardware at the Chatterbox :lol:

The game seemed to run flawless for a few levels...but I got a slight flicker on level 5 right when being caught by Clyde (the brown monster) - tho the screen didn't roll :? Also, Pinky didn't seem to follow the "randomness" occasionally - it would catch me at different points between Hack'em and Hangly Man (on the same levels). Both errors look to be extremely insignificant :)

Link to comment
Share on other sites

What happened at screen 256 before? Was it just another key screen? I could see putting a real "end" into the game, but simulating a bug that filled who knows many players with crushing disappointment after the best game of their lives hardly seems like something you'd deliberately want to do.

Link to comment
Share on other sites

Maybe. But since it would take quite a bit of effort just to reach that point, it's something that won't be seen in a casual game ;) Just a little something for the hardcore to shoot for (besides attempting to replicate the bug that appears in the real thing).

 

BTW there was no "before"...since the game only had 22 levels before (if it tried to go higher, the level was trimmed off back to level 21...so the 9th and 10th keys used to repeat forever - I had to use 2 levels since the Hanglyman version uses 2 screens). The "bug" was added by using an unused ram location to keep track of the ACTUAL level number...once it wraps to zero, the dot data is collected from a random location when the new screen appears. Since the dots aren't moved into ram correctly, they will be messed up on the screen, making the "zero" board unable to complete. The previous version is identical to this one...it just repeats forever ;)

 

One thing I'm not to sure about is if that ram location was really free to use or not...this added feature might reach the "zero" board too soon if multiple games are played (or when starting from a higher level). I have verified that it happens correctly if you are playing a game from power-up.

Link to comment
Share on other sites

I still see you haven't gotten the B&W switch to toggle on the 7800 yet.

 

I am saying this because "Man Goes Down" does that with the 7800 b&w switch, to change between the 3 different video standards. (ntsc, pal60, and pal)

 

Maybe you could get in touch with him to see how he made that work. :ponder: then the pause button on the 7800 would actually pause the game :)

Link to comment
Share on other sites

Nah...I understand how the switch works on the 7800...it's really identical to the 2600's (except that it doesn't "stay" in the B&W position). It was never changed since coding it this way didn't take any ram and very little romspace - just check the status of a bit in SWCHB to see if it's on or off. In order to do the same thing on the 7800, the routine would need to be longer...and save that status to a bit in ram memory - which can then be used to do the on/off check. I think it would go something like this:

 

;deal with the switch...

LDA SWCHB ;load the console switches

CMP DIFSW ;same as they were before?

BEQ NoChange ;if so, skip

AND #$08 ;check B&W/Color

BEQ NoChange ;if Color, skip

LDA RAM ;load the ram location holding the new bit

EOR #$80 ;flip it

STA RAM ;...and save

NoChange:

 

...then in the pause routine, I'd just check to see if the variable "RAM" was positive or negative to decide when to pause:

 

BIT RAM ;check the status of pause

BPL NoPause ;if positive, skip the pause routine

 

 

 

Since the game already pauses between boards anyway, the B&W pause feature was just a little frill for the 2600 because it was so much easier to accomplish:

 

LDA DIFSW ;load the saved switches

AND #$08 ;check the B&W/Color switch only

BNE GamePaused ;if Color, skip the pause routine

 

No ram needed...and only 6 bytes of romspace used.

Link to comment
Share on other sites

  • 2 weeks later...

When it comes to this game, one quote comes to mind. In the words of Jesse Ventura....

 

"I am impressed, and I dont impress easily".

 

Saying you did an awesome job, is putting it mildly. I am REALLY impressed. If you were at Atari 20 years ago, this thing would be there top seller without a doubt

 

1ej

Link to comment
Share on other sites

Another request done :)

Here's binaries for NTSC and PAL colors. One small problem with PAL is that I don't know if I'll be able to get the alternate game's maze to be green (right now, it's purple). But at least all the other colors are correct.

In addition, the points for eating a monster will be displayed in white (in both versions) instead of yellow.

bothversions.zip

Link to comment
Share on other sites

Fixed the maze color, it's now a dull green :D

 

Also, I corrected the bug where the maze would always go dark in the green maze game when energizing, the flash when finishing boards...and the messed up energizer sound (in a dark maze) as well.

 

I also forgot that PacMan uses the color cyan for monster bonuses, so I changed it (in both versions).

 

I had to rob a couple cycles up top...so hopefully these corrections won't cause a problem :ponder:

 

 

BTW the previously mentioned board #256 "bug" is present in both of these versions. Give a hollar if you'd like one posted that doesn't include that feature.

bothversions.zip

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...