Jump to content
IGNORED

Uncle Hairy's Nosehair


atari2600land

Recommended Posts

I think I figured out the problem. What I need is a uniform NoseHairCutMark value (way to get a value that works) to compare to the NoseHairLength value. But this might be hard since the NoseHairLength value increases and the NoseHairCutMark decreases as it's drawing the screen going down. I went and cleaned up the code a little. If you compile this as is it will not work correctly, because it needs a NoseHairCutMark value to cut the hair.

nosehair45.asm

Link to comment
Share on other sites

New version.

I had an idea: If I set the CutMark variable to change the same time as the PlayerY variable, I could then not have any issues with the cutting. This meant having a set of valid values that CutMark could be, regardless of where PlayerY was on the screen. It took a lot of fine-tuning, but I think I got it:


        sec
        lda #255
        sbc PlayerY
        lsr
        adc #41
        sta NoseHairCutMark   

I don't know why I had to add 41, though. Let me know if any bugs pop up or if I didn't solve the problem. A few sound-related bugs popped up, but I think I got them all.

nosehair46.zip

Link to comment
Share on other sites

  • 2 weeks later...

ZeroPage Homebrew is playing UNCLE HAIRY'S NOSEHAIR on tomorrow's (Tue Feb 23, 2021) stream LIVE on Twitch at 6PM PT | 9PM ET | 2AM GMT! Hope everyone can watch!

 

 

Games:

 

 (SET VIDEO TO 1080P60 FOR FULL QUALITY)

 

 

Edited by ZeroPage Homebrew
Link to comment
Share on other sites

I made the nosehair's fastest speed faster so it should be more difficult.

I tried watching the Twitch thing for the first time but I tuned in too late because they were talking about Chaser. What did they say about my game?

My high score in version 49 is 482.

nosehair49.thumb.png.ade16c8c8b20c41837b1259785aaf0b3.png

 

nosehair49.bin

  • Like 1
Link to comment
Share on other sites

16 hours ago, atari2600land said:

I made the nosehair's fastest speed faster so it should be more difficult.

I tried watching the Twitch thing for the first time but I tuned in too late because they were talking about Chaser. What did they say about my game?

My high score in version 49 is 482.

It was a ton of fun playing your game last night! Just like you, I felt that it did need to be more difficult quicker so I think the change to make the nosehair faster is the right thing to do. I'll have to check out your new versions you just posted. Below is the top score I got last night!

 

I'll post the YouTube video when it's available after 6PM tonight so you can watch our playthrough. An incredible game for using only 2K!

 

- James

 

 

image.thumb.png.256029f4edd561654927b0a0b1a7f944.png

  • Like 1
Link to comment
Share on other sites

Version 51, very minor fixes. The tiny bit of hair showing up before you start the game has been removed. It gives the nose a much cleaner look I think. Also, the game does not change color right after you press the reset switch, instead it waits for a few seconds before it changes colors.

nosehair51.bin

  • Like 4
Link to comment
Share on other sites

522 points in my first try of version 51. Yep, it turned more difficult since version 48.

 

I think that it could be a little more difficult if diagonal movement is slower, I mean, horizontal movement of the csissors is 1 pixel per frame, as it also is for vertical. But in diagonal movement the csissors can move 1 pixel horizontally and 1 pixel vertically at the same time, giving a real speed near 1.5 pixels per frame. I don't remember if subpixels are being used, but if they are used, try to use 0.7 pixels per frame on both axis when the csissors move diagonally.

 

If this rule does not apply to the demon, it will give him a power!

 

Link to comment
Share on other sites

Over 500 point it turns impossible to reach the boxes in the right side of the screen. All the latest changes have improved the game (nostril, score, bugfixes). I like the new music, but I also liked the old one. My score in version 52 was 579 at the first try.

 

There was an issue: I'm testing a QuadTari, and I used a joystick in port 1 to select the ROM from the PlusCart. After the game started, I couldn't use the joystick's trigger to start the game. I had to use the joystick in port 2 to start the game and change back to port 1 to play, where the trigger worked OK. I think that while the music is playing (game over mode), the VBLANK is sending the signal in bit 7 that makes the QuadTari to check for the alternate joystick.

 

Link to comment
Share on other sites

from the guide:



12.2 Latched Input Ports (INPT4, INPT5)
These two ports have latches that are both enabled by writing a "1" or disabled by writing a "0" to D6 of VBLANK. When disabled the microprocessor reads the logic level of the port directly. When enabled, the latch is set for logic one and remains that way until its port goes LO. When the port goes LO the latch goes LO and remains that way regardless of what the port does. The trigger buttons of the joystick controllers connect to these ports.
 
So what I did was set it at 48, and I set VBLANK to $C2 (it was set at $82). I also set a number set at 48 to 49, which caused it to go and be port three, so I lowered it to 47. I don't know about the Quadtari, perhaps if this doesn't solve the problem, someone could look into it?

nosehair54.bin

Link to comment
Share on other sites

From the QuadTari page:

Quote

 

When using the QuadTari, you generally read the joysticks as usual, but you can select which input joystick to use (1 & 2 or 3 & 4) by setting or clearing bit 7 of VBLANK (ie register $01. By setting bit 7, it drags INPT0-3 to ground). Changing this bit will toggle the inputs for both halves of the QuadTari.

After changing bit 7, the QuadTari will need some time to stabilize with the new input. It is safest to wait at least one scanline (76 cycles) before reading the new joystick ports.

Example:


  ; to acivate ports 1 and 2:
  lda #$00|$02     ;0 for bit 7, 2 to continue blanking. (ie DISABLE_TIA)
  sta VBLANK
  sta WSYNC        ;wait a scanline to stabilize (you could do other things here instead)

  ; to activate ports 3 and 4
  lda #%10000000|$02 ;set bit 7, continue blanking
  sta VBLANK
  sta WSYNC        ;wait a scanline

 

 

So, to latch the joystick triggers, you have to set the bit 6 (D6), which it is 64 or $40. Bit 7 (D7), which it is 128 or $80, it is used to discharge the pots (paddles), and it is used by the QuadTari device to detect which pair of joystick controllers to read.

 

Obviously, you should only use bit 1 (D1), which it is 2 ($02), to start the vertical blank and D6 if you want to latch the triggers. D7 is not required by your game.

 

So, the only values you should use are:

66 ($42): Start VB + trigger latch

64 ($40): Stop VP +  trigger latch

2 ($02): Start VB without trigger latch

0 ($00): Stop VB without trigger latch 

 

Any value higher than 127 ($7F) in VBLANK will make the QuadTari read joysticks 3 and 4.

 

I shouldn't be using the QuadTari, but it was supposed that it could not make any problems in games that do not use paddles. Oh... the Harmony cartridge can read paddles to navigate the menus, so most of the times it is required to use the joystick on port 3 of the QuadTari to select a ROM file.

 

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