Jump to content
IGNORED

Hack'em! / Hangly Man combined :)


Nukey Shay

Recommended Posts

Game mode selection colors corrected in the PAL version. They now correctly match the NTSC's colors of white (dumb, fast), red (smart, fast), blue (dumb, slow), and green (smart, slow). The only missing color now is the one for the alternate game's logo (it still displays as white instead of purple).

 

Also corrected the garbled screen @ level 256...this wasn't being cleared when using the button to reset the game :dunce:

hack_em_pal_.zip

Link to comment
Share on other sites

Damn...out of time in that one :P

 

Another attempt:

I added color to the second logo in the PAL version (tho it displays as pink instead of purple). I also applied the level 256 button press correction to the NTSC version. 54 bytes remained in bank 1, so I included a text message crediting the original game.

bothversions.zip

Link to comment
Share on other sites

Pausing on the 7800...

 

This one I'm not too keen on, since the 7800 B&W switch is functionally the same as the 2600's...except that it springs back to the color position (so if this program was played on a 2600, you'd need to flip to B&W and BACK to color for each selection). But I believe that this one should work on the 7800 for you CC2 users :)

 

 

 

Program changes:

Original

;in the program area...

NoDeath:

      lda    DifSw                  ;3  

      and    #$08                   ;2  check if B&W is toggled

      bne    NoPauseSwitch          ;2³ if not, branch ahead

 

 

 

 

7800 Edit

;in the debounce routine...

      lda    SWCHB                  ;4  load console switches

      tax                           ;2  copy to X (to be used later)

      cmp    DifSw                  ;3  check against the previous frame

      beq    Debounce_ending        ;2³ branch if the same

      and    #$08                   ;2  keep only Color/B&W

      bne    NoPauseChange          ;2³ skip if springing back

      lda    Level                  ;3  

      eor    #$20                   ;2  flip an unused bit

      sta    Level                  ;3  ...and save it

NoPauseChange:

 

;in the program area...

NoDeath:

      lda    Level                  ;3  Now get back that flipped bit

      and    #$20                   ;2  check if B&W is toggled

      beq    NoPauseSwitch          ;2³ if not, branch ahead

 

 

 

Question: is there some kind of test that the program can do to check which console it's being played on? If so, I could fix it.

test_7800pause.zip

Link to comment
Share on other sites

Come to think of it...this might be better regardless (since on a 2600, the game will not be paused if the console happens to have B&W selected when turning it on...it will still require you to throw the switch twice).

Opinions?

 

 

Bugfixes:

The "paused" caption in the green maze game was getting messed up once the switch went back to color...I forgot to change that. Also, some of the bluetimes were getting corrupted. Fixed that too.

test_7800pause.zip

Link to comment
Share on other sites

The pause works good on all the games now. 8) Although I forgot that the game pauses itself after each guy so I don't know how neccessary it is :D

 

I think there might be a problem with Hangly Man 2. When you go over the power pills the maze randomly goes off. I think it may be a feature but it doesn't happen all the time, so I don't know if you want to check that out or not.

Link to comment
Share on other sites

The pause works good on all the games now.  8) Although I forgot that the game pauses itself after each guy so I don't know how neccessary it is :D  

 

I think there might be a problem with Hangly Man 2. When you go over the power pills the maze randomly goes off. I think it may be a feature but it doesn't happen all the time, so I don't know if you want to check that out or not.

 

This is one of the differences between the arcade Pac Man and Pac Man Plus, and I managed to get them all in (besides the differing fruit shapes, that is). Although there wasn't a "Hangly Man Plus" in the arcades, I figured that I might as well allow them in the 2600 Hangly Man game as well (it didn't "cost" anything to do so). All of them should not appear in the blue maze variations of the game.

 

Differences between regular and "squared" mode...

 

-The maze is green instead of blue

 

-The patterns of the monsters are slightly more aggressive

 

-When energized:

The bluetime is of a shorter duration than the normal game

The monsters wear little flags or "apple stems" on their heads

One or two monsters may not become vulnerable, but remain lethal

The maze may turn black (invisible)

 

-Bluetime is given when a fruit is eaten. When it is...:

The bluetime given is a different duration than normal "energized" bluetime

All 4 monsters always become vulnerable, and the point values are doubled

...i.e. 200,400,800,1600 = 400,800,1600,3200

Instead of turning blue, the monsters will be invisible (until they begin flashing)

If the maze was already darkened from a previous energizer, it remains dark. Otherwise, it has the same chances of becoming dark randomly** as the energizers.

 

 

** the word is used loosely here, since in this game everything follows a pattern (i.e. not just the monster movements).

Link to comment
Share on other sites

That's unusual...I never heard of the phantom dots appearing on the left side before (usually, they are in the column to the right). Anyone else seeing this?

 

Anyway, here's the backstory of those:

When creating Hangly Man, I needed to be able to have multiple display kernals to cut down on the space required. What happens is that the display portion that deals with drawing the dots performs an indirect jump once it's finished (and then continues drawing the maze on the following scanlines). The indirect jump solves the problem of getting back to the correct maze info. Only 1 small problem...an indirect jump uses 2 cycles more than a regular jump, and there was virtually no time left to do this if sprites were being displayed on the same scanlines. At first, I robbed a couple of cycles that dealt with clearing out the sprite info...but this left the monsters with glitched scanlines above their heads (sort of like halos). So instead, I rearranged the code a bit so that a portion of the dot display routine is done on another scanline before the program needs it. At first glance, it seemed to work fine...but the phantom dot problem cropped up when sprites moved over to the right column (they're actually an "echo" of the dots that exist on the far left of the screen...as those are cleared, the phantom dots no longer appear). But they used to appear only on the right column :? I never saw them on the left before. Are they always there?

Link to comment
Share on other sites

That's unusual...I never heard of the phantom dots appearing on the left side before (usually, they are in the column to the right).  Anyone else seeing this?

 

Since day one, I believe. :ponder: I assumed that you were aware of this. No big deal in my book.

Link to comment
Share on other sites

Nope...they didn't exist in the cart I have (made just before I added the level 256 "bug"). Only the ones that appear in the right column (same as emulation). I wonder if this an issue only when running it on a CC2?

 

When do they appear? All the time in every maze no matter what monsters are doing or which dots are left? (from the pic, it appears this way).

Link to comment
Share on other sites

When do they appear?  All the time in every maze no matter what monsters are doing or which dots are left? (from the pic, it appears this way).

 

It is like you said in your previous post, they are like an "echo" of the dots on the right of the screen. Its like the problem mirrored itself, because the phantom dots are on the left and the real dots that make them go away are on the right.

 

:idea: But I do think it is from the cc2. Thrust runs with problems also because of tight timing. Sometimes you can get it to run correctly (and I have gotten this game to run without the phantom dots) and most of the time it runs with the timing errors.

 

I think if it runs good on a real cart you shouldn't worry about it.

Link to comment
Share on other sites

When do they appear?  All the time in every maze no matter what monsters are doing or which dots are left? (from the pic, it appears this way).

 

It is like you said in your previous post, they are like an "echo" of the dots on the right of the screen. Its like the problem mirrored itself, because the phantom dots are on the left and the real dots that make them go away are on the right.

 

:idea: But I do think it is from the cc2. Thrust runs with problems also because of tight timing. Sometimes you can get it to run correctly (and I have gotten this game to run without the phantom dots) and most of the time it runs with the timing errors.

 

I think if it runs good on a real cart you shouldn't worry about it.

 

More likely to be the 7800 than the CC2. Have you tested on more than one 7800?

 

Mitch

Link to comment
Share on other sites

Nope...I haven't run it on a 7800 at all, only via emulation and an eprom in a 2600 4-switcher. But since bjk7382 posted that the problem appears in reverse on a 7800, I don't have much of a problem with it :)

(I misunderstood...I thought that his phantom dots were appearing on the left in addition to the ones on the right that I already know about). That pic still worries me tho, since it shouldn't have been showing any at all when the sprites are in the starting position (as they are in the pic).

Link to comment
Share on other sites

I found that I can get all 10 indirect subroutines that deal with the dots within 1 page of memory. This saves 10 cycles leading to that jump, as I don't need to update the high byte address...just load a static value to the high byte when starting the display. Now I need to figure out a way to rearrange all of them to correct that 2-cycle deficit...eliminating the phantom dots completely :)

Link to comment
Share on other sites

I am not sure if this is a timing problem or what. I tried it on z26 and didn't see it. And I am not sure if it does it on an actual 2600 or not either, since I am using the 7800 with the cc2.

 

These "phantom" dots have always appeared on my 7800 with Pesco and Ebivision Pac-Man (Not on any 2600 I've truied). I've emailed Eric Bacher many moons ago about this and he wad unaware of the problem. It would probably take someone like Eckhard to figure what is going on.

 

-Lee

Link to comment
Share on other sites

Too bad...I've got loads of free time in the kernal routines now (up to 20 cycles in a couple of them).

What I think is happening is that the program makes a write to PF2 and it expects that this write will hit too late to have an effect in the middle portion of the display (just left of center)...then it jumps out and does the right half. Apparently, this write happens a bit quicker on a 7800 for some reason.

 

Here I've pushed those writes back as far as I can...

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