Jump to content





Photo

19x19 update

Posted by Zach, 26 June 2006 · 27 views

Three years ago I would not have thought this kernel was possible. :ponder:



There is no game logic at this point. The program just allows three players to place their stones on the board, all using the left joystick.

Note that the cursor does not move into the top row yet. There is certainly room for improvement, but this is good enough to show how a Go-Moku kernel would work. The next steps will be to implement the top row, make the cursor more responsive to the joystick, and to put in diagonal movement. I would have done more before releasing it, but I need to get back to Four-Play.

Attached Thumbnails

  • Attached Image

Attached Files






Wow. Very impressive. I wonder if this game might benefit some from the EEPROM cart once I get that working. The EEPROM isn't terribly fast, but it would allow for some semi-scratchpad space if used in moderation. Even the board itself requires a rather large amount of RAM to store, so doing any sort of backtracking algorithm may be difficult.
  • Report
Hi Zach,

I've just started programming the 2600 and I've been learning a lot by loading up games, disabling players, missiles, playfields etc and seeing how different tricks were acomplished.

I was blown away when I ran your demo - and tried to figure out how you did it. But you dont seem to use any player/playfields etc. Is it all done with backgrounds?! I tried to step through it with the Stella debugger... but that just made things more confusing... why does it sit on JMP $0080 for most of the drawing?

Any hints?! :)
  • Report

supercat, on Mon Jun 26, 2006 11:12 PM, said:

Wow. Very impressive. I wonder if this game might benefit some from the EEPROM cart once I get that working. The EEPROM isn't terribly fast, but it would allow for some semi-scratchpad space if used in moderation. Even the board itself requires a rather large amount of RAM to store, so doing any sort of backtracking algorithm may be difficult.
Thanks. Yeah, extended memory would really help. As for the EEPROM, you can probably answer your question better than I. Of course the board data and other information change frequently during the backtracking.

The way I see it, these are the options, all of which have pros and cons:
(in rough chronological order)
  • Make the best of the existing RAM and registers
  • Supercharger
  • Superchip
  • 3E bankswitching
  • 4A50
  • EEPROM
  • Report

nmoog, on Tue Jun 27, 2006 7:32 PM, said:

Hi Zach,

I've just started programming the 2600 and I've been learning a lot by loading up games, disabling players, missiles, playfields etc and seeing how different tricks were acomplished.
Hi There,

Studying past games is a great way to start learning how the VCS works. A good way to approach this is to start with the 70's games and work your way up to the homebrews, which use the most advanced techniques.

Quote

I was blown away when I ran your demo - and tried to figure out how you did it. But you dont seem to use any player/playfields etc.
Thanks. I'm actually using everything but the ball. Disabling objects does not work on this kernel because I only draw them once at startup. After that all I do is recolor them. When you enable/disable an object in an emulator it only updates when the object itself is updated. (It took me a long time to figure this out.)

Here are the objects that draw the 19 pieces. The PF fills the gaps in between.
BK P0 BK P1 BK P0 BK P1 BK P0 BK P1 BK M0 BK M1 BK M0 BK

Quote

I tried to step through it with the Stella debugger... but that just made things more confusing... why does it sit on JMP $0080 for most of the drawing?
Because JMP $0080 moves the program counter into RAM, where the code can be modified by the program itself. This is where I set the colors, either STA for light brown (background), STY for white, STX for blue, or SAX for black. I don't think the Stella debuger is able to show code in RAM yet, but you can see the numbers from $0080 to $00a6 and watch them change. They represent the following code (before it is modified):

	  sta COLUP0; 2nd piece	  
	  sta COLUP1; 4th		  
	  stx COLUBK; 3rd		  
	  sta COLUP0	; 6th	 
	  sax COLUBK	 ; 5th   
	  sta COLUP1	 ; 8th	 
	  stx COLUBK	 ; 7th	  
	  sta COLUP0	 ; 10th		
	  sty COLUBK  ; 9th		  
	  sta COLUP1  ; 12th		
	  stx COLUBK	 ; 11th		   
	  sta COLUP0	 ; 14th		
	  stx COLUBK	 ; 13th			
	  stx COLUBK	 ; 15th			 
	  sta COLUP1	 ; 16th			 
	  stx COLUBK	 ; 17th
	  sta COLUP0	 ; 18th
	  sax COLUBK	 ; 19th
	  jmp returnFromRAM
  • Report
Now that CPUWIZ is selling Superchip boards, it's settled which extended memory scheme I will use. :D
  • Report
YAY :D
  • Report
I just took another look at this and it really is a freakin amazing kernel. You could do a lot of things with it.
  • Report

mos6507, on Fri Dec 15, 2006 4:47 AM, said:

I just took another look at this and it really is a freakin amazing kernel.
Thanks!

Quote

You could do a lot of things with it.
Well, for starters it was the inspiration for the Toyshop Trouble title screen, which actually became simpler because the lights did not need to blink independently.
  • Report

February 2012

S M T W T F S
   1234
56789 10 11
12131415161718
19202122232425
26272829   

Recent Comments