Jump to content





menu is finished

Posted by SpiceWare, in Frantic 15 September 2011 · 271 views

though I might end up redoing it in 6507 code as I think it'll take less ROM space and processing time is not an issue when displaying the menu.
  • Up/Down to select option to change.
  • Left/Right/Fire to change an option.
  • Only Fire works on the Start option, and it starts the game when Fire is released.
Attached Image

The options are:
  • Maze Type (berzerk style on the left, frenzy style on the right)
  • Homing - tank robots shoot homing missiles (frenzy only)
  • Wall Flicker - controls how the reflective walls are drawn (frenzy only). The frenzy maze at the top of the menu will flicker at the select rate as well.
  • Robot Shots - maximum shots the robots can shoot at 1 time.
  • Stealth - invisible robots
  • Lives - 1/3/5 lives
  • Bonus Life - when bonus lives are awarded. X/1K/2K/5K
  • Continue - lets you continue the game on the last level you played with score reset to 0.
With the exception of Homing and Continue, all menu options should have an affect on the game. Let me know if something doesn't work correctly.

ROM
Attached File  frantic_harmony_20110915.bin (32KB)
downloads: 56

ROM with ghosting fix & timing change for menu
Attached File  frantic_harmony_20110916.bin (32KB)
downloads: 53

ROM with darker disabled options/selected flash
Attached File  frantic_harmony_20110916b.bin (32KB)
downloads: 53

Source
Attached File  Frantic20110915.zip (673.4KB)
downloads: 50


This shows the tradeoff of the 2-color 48 pixel graphic kernel. The VBLANK on/off is noticeable if the display's brightness adjustment is set to high.
Attached Image Attached Image




That looks very nice. I assume the ARM is feeding a 48 pixel style kernel on to generate the menu. If there isn't too much animation, I don't see any reason that the 2600 couldn't generate it on it's own. Have the ARM instead do some music generation!

PS Put me down for a signed cartridge when you get to that stage. This much effort deserves a purchase.

Frantic - the Donkey Kong Country of 2600 homebrews
  • Report
Title screen music: a conversion of 'going berzerk' from the Pac-man Fever album :P
  • Report
Added a ROM with some minor fixes based on espire8's feedback.

Thanks. Yep, it's a 48 pixel kernel that utilizes the DPC+ data fetchers in fast fetcher mode (it overrides LDA #) to provide just enough time to do a 2 color 48 pixel graphic. The colors are done by coloring the background and the play field, not by coloring the sprites (which are black - all graphics are inverted). The primary color in a line is put into the background, the secondary into the PF. I then turn on PF bits (as well as strategically position the ball) to show the 2nd color. VBLANK is used to turn the signal off on either side of the 48 pixel graphic. Since the timing isn't exact, 8x wide missiles are placed adjacent to the left/right sides of the graphic to provide time for changing VBLANK.

There is a tradeoff with using the VBLANK trick though - it's noticeable if the brightness on the display is set to high. I've added a couple photos showing this.

I've only got 1K of ARM space left and much to do, so I don't foresee adding title screen music. Once I add the doors to make Frantic playable, and add the homing missile logic, I plan to review the code to see what I can do as I'll need some space for adding Frenzy's special room logic.
  • Report
If you're interested, here's the code.
; Two Color Graphic routine
; this works by using a "negative" image when drawing the sprites.
; The sprites are colored black while the background is the color
; that shows up as though it were the sprites.  The 2nd color is 
; achieved by using the playfield and/or ball.
;
; The missiles (also black) and turning on/off VBLANK is used together
; to hide the screen and playfield beyond the 48 pixel image.
ShowTwoColorGraphic:
	ldx #2
	stx VBLANK
	lda #<DF1DATA		; 2 62
	sta COLUBK		; 3 65
	lda #<DF1DATA		; 2 
	sta COLUPF		; 3 38
	sta WSYNC
S2CGloop:	; time critical loop - cannot have a page break in it
	lda #<AMPLITUDE		; 2  2
	sta AUDV0		; 3  5
	sty ScoreKernelCounter	; 3  8
	lda #<DF2DATA		; 2 10
	sta GRP0		; 3 13
	lda #<DF3DATA		; 2 15
	sta GRP1		; 3 18
	lda #<DF4DATA		; 2 20
	sta.w GRP0		; 4 24
	ldx DF6DATA		; 4 28
	ldy DF7DATA		; 4 32
	lda ZERO4		; 4 36
	sta VBLANK		; 3 39
	lda #<DF5DATA		; 2 41
	sta GRP1		; 3 44
	stx GRP0		; 3 47
	sty GRP1		; 3 50
	sty GRP0		; 3 53
	ldx #2			; 2 55
	stx VBLANK		; 3 58
	lda #<DF1DATA		; 2 60
	sta COLUBK		; 3 63
	lda #<DF1DATA		; 2 65
	sta COLUPF		; 3 68
	ldy ScoreKernelCounter	; 3 71
	dey 			; 2 73
	bne S2CGloop		; 3 76 
	lda #<AMPLITUDE		; 2  2
	sta AUDV0		; 3  5
	sty PF0			; 3  8
	sty PF1			; 3 11
	sty VBLANK		; 3 14
	sty GRP0		; 3 26
	sty GRP1		; 3 29
	sty GRP0		; 3 32
	rts			; 6 38	            


This could be done w/out DPC+ by unrolling the loop and replacing the DFxDATA with hard coded graphics and color values. Would take a lot of ROM though.
  • Report
Added another ROM with a color tweak to the main menu
  • Report

Search My Blog

Latest Visitors

0 user(s) viewing

0 members, 0 guests, 0 anonymous users