Jump to content

ScumSoft's Photo

ScumSoft

Member Since 16 Sep 2009
OFFLINE Last Active Nov 18 2011 2:42 PM

Topics I've Started

EggVenture 2600

Thu May 26, 2011 9:48 PM

EggVenture 2600
This game is currently on hold till further notice

RC3 introduces major changes from RC2, download the RC3 beta attached below.

The game is playable to the end, however the Adventure minigame isn't completed 100%. Also the pitfall minigame is not implemented in this build and will be included in the next testing release. There is no special ending just yet, but there is an end of game indication.

Adventure is triggered by taking the key to the hero
Pitfall will be triggered by taking the gold to the harry statue. I'm attempting to implement the entire original(recreation by me) game of pitfall, there will be some compromises, but the objective is to have enough gameplay to augment a higher score. You will also want to retrieve the Golden Eggs from the Adventure and Pitfall minigames as they double your score.

The game currently crashes on the Harmony when bringing the key to the Hero, however the game plays fine on Stella 3.4.1
Have fun and let me know what you think of the changes!

Posted Image
Posted Image
Posted Image
Posted Image


[INSTRUCTIONS]
  • You play as an alien Egg hunter named Beezo, equipped with the latest PSGS(Poultry Solar Glide Suit) allowing you free flight on all worlds.
  • Your mission is to collect all 8 Golden eggs from a dangerous cave bringing any you find back to your ship.
  • Your ship will spawn items after collecting Golden eggs, these items will be used to solve basic puzzle elements found in the cave.
  • Your PSGS power meter is constantly running down and will increase every time you bring an Egg back to your ship.
  • It is the goal of all PSGS users to have the highest power rating. More Golden Eggs = more power and glamour.
  • Beezo can bounce off walls and enemies but this causes harm, watch your red life meter, if it goes to zero then you will respawn back at your ship.
  • Your ship can heal any wounds you have if you bring it an Egg.
  • Your ship can only respawn you five times before it's fuel cells wear out, in which case the PSGS will kindly turn into a tombstone to commemorate your failure.
  • Player is controlled with the joystick
  • Fire button will make the player flap its arms
  • Joystick down will make you fall a bit faster than normal
  • Pickup items and Eggs by touching them
  • Good Luck
[Special Thanks]
  • Philsan thank you for L.E.M which gave me the Knowledge on how to assemble this game.
  • RevEng thanks for being a dev supporter and helping me squish DPC+ issues, also with play testing.
  • PAC-MAN-RED thanks for making extremely well done sprites and allowing us to use them, game wouldn't look the same without them.
  • Random Terrain a BIG THANK YOU for setting up your batari Basic site, it's been an invaluable reference time and time again!
  • A very special thanks to Batari, you've open the doors to many and even allowed myself to develop a working 2600 game, your Harmony cart is second to none and also an invaluable resource.
  • Stephena without Stella, I don't know how I would have managed to crank this game out in a little over a months time. Thanks for your continuing support and making sure Stella is the best damned VCS emulator to date.
  • Also Jeff Wierer, Visual Batari is a great IDE to program in, the internal editors alone make it worth using.
  • Thanks to SeaGtGruff for his Adventure template and introduction to using data types for room layouts
  • and a thank you to everyone who've I've forgotten.
The roms are playable on Harmony cart or Stella Stella 3.4.1

Coding tricks

Wed Mar 2, 2011 5:47 AM

Hello again everyone, I've been busy since last week programming up my games framework(see blog for details).
Its great to be back here and to start coding again.

I have come up with a neat interlaced routine (not sure if something similar has been posted) and
I need to flip a single bit on and off every frame which sets the interlace routine to even/odd frames:

So what happens is during the kernal I manage it all like this:
            ldy Scanlines           ;[]+3     ;Our Scanline count for our interlaced loops
                                              ;-Loaded from VBLANK to save precious playfield cycles

PF_LOOP:    tya                     ;[3]+2    ;Interlace frame check
            eor #1                  ;[5]+2    ;Toggle bit, this switches between Draw & Logic scanlines
            and #$01                ;[7]+2    ;Mask all but bit 1
            beq PF_LOGIC            ;[9]+2/3  ;Branch to Logic scanline

PF_DRAW:    ;********************************
            ; [DRAW SCANLINE]
            ; * 96 Scanlines of visible graphics
            ; * Scanline [??], S.cyc [11]
            ; * PixelPos [-35], Color clock [33]
            ;********************************
            
            ;***DO STUFF like draw graphics

            jmp PF_Return           ;[]+3    ;Jump out of Draw

PF_LOGIC:   ;********************************
            ; [LOGIC]
            ; * 96 scanlines for logic
            ; * Scanline [39 to ??], S.cyc [12]
            ; * PixelPos [-32], Color clock [36]
            ;********************************
            ;***DO STUFF LIKE
            ;***Blank out graphics so they are not visible on this scanline
            ;***Process updates ect
            ;-Fall through to PF_Return

PF_Return:  dey                     ;Decrement scanline
            sta WSYNC               ;-
            bne PF_LOOP             ;If more scanlines left, loop 
            ;All done? Fall through to overscan

And in the Overscan I do this:
     
            ;***Interlaced display settings***
            lda Interlace           ;This will interlace the display
            eor #1                  ;-toggle bit between 0 and 1
            sta Interlace           ;-store value for next pass
            bne .ODD                ;-if its a 1 then setup for ODD frames
                lda #191              ;Set to 192 scanlines total (191 to 0)
                sta Scanlines         ;-used during PF_LOOP
                lda #33               ;Compensate 1 more scanline for interlace
                sta TIM64T            ;Will total 262 scanlines
                jmp .OS_LOGIC         ;Proceed to Overscan logic
            
.ODD:       lda #192                ;We want 193 scanlines (192 to 0)
            sta Scanlines           ;-store value for next pass
            lda #34                 ;Compensate 1 less scanline for interlace
            sta TIM64T              ;Will total 262 scanlines
            ;-proceed to Overscan logic

Is this a typical way of doing an interlaced kernal? Every frame is alternated starting at Logic->Draw to Draw->Logic and so forth, I find this gives minimal flicker and allows for an entire frames worth of time for logic and drawing collectively.

What I would like to know is if someone invented a better way to do interlaced kernals. This seems to work fine right now for my game, but I am very curious as to what others have done before me.

Okay sleep time, cya all tomorrow.