Jump to content
IGNORED

Lynx coding contest


Lynxman

Recommended Posts

I think a common anything would be good for newbies. I'm all for integrated development environments with included ready-to-compile examples. I wonder if something like NESICIDE could be subverted towards Lynx development?

http://www.nesicide.com/?s=about

 

Also, did somebody say sprites?

post-13304-0-25481000-1348870485_thumb.jpg

 

That looks awesome on the sprites! Yeah I'm working on getting Karri's/Wookie's CC65 up and running with LX.NET tutorial guide, I think if we, them, me, or us, can put together some very simple demos and have a detailed instruction guide on how to get it all together and running that will help. Once I have a better understanding of how all of it works, I want to see if I can get it working outside of Windows, I'm a Mac person myself but I don't mind doing development in Windows on a VM if I have to!

Link to comment
Share on other sites

If someone gives me a palette and tile/sprite size restrictions I could contribute to a sprite library. Those two sprites in my previous post were using an 8 color 12x12 pixel restriction.

 

I know at one point in the 2600 programming thread they had come up with a 2600 mascot that was going to be free to use for anyone programming for the system, maybe we could come up with a character like that for the Lynx? I'm going to have to go and look that up again . . .

 

Also I don't know what the sprite restrictions are for the Lynx, I think we will have to get Karri, Wookie, LX.NET to answer that one.

Link to comment
Share on other sites

It would probably be better to specify some themes for the sprite sheets needed before hand. So for example if you specified a "cave theme" you'd have several loose rocks of different sizes, stalactites, stalagmites, different rock platforms to walk on, tileable rock formations and so on. That way you could make vertical and horizontal shmups and platformers (or anything else you wanted). You might also want to set a limit on the number of colours given to background elements. That way if you have a selection of animated foreground characters (humans, bats, snails whatever) they can be used on all the backgrounds without needing to be recoloured. The same logic would apply to weapons fire, explosions and so on.

 

You'd also need some rules as to what you can do with the sprites e.g. are flipping, rotating, scaling and recolouring allowed and so on.

Link to comment
Share on other sites

I think a good idea would be to grab a bunch of sprite and tile sheets from OpenGameArt, create a universal 12bit 16 colour palette and start resizing and remapping the graphics to this new palette. Then any of the objects can be used in the same game without needing to be remapped again, and the palette can always be changed afterwards.

Link to comment
Share on other sites

Personally I'd rather see what the pixel artists in the AA community can come up with given a loose specification. That way they get to contribute to the contest and also see their own work used in a game too.

 

I agree its why I suggested getting PAC-MAN-RED involved, he's done a slew of work for the 2600 people.

Link to comment
Share on other sites

I'm in also. 12 by 12 pixel and 8 colors is good. We could keep to that. I would like to have the graphics animated. 2 frames for walking. The sprite can be flipped for left/right.

 

I would also like to have pulsating objects like hearts, jewels, stars.

 

--

Karri

Link to comment
Share on other sites

A project like this would be a good thing for testing out the new features in cc65 also.

 

Things I have in mind are:

- sp65 to compile bitmaps to sprites that can be accesses by C code and ASM code

- BLL style structured programming using ca65 assembler. There is pretty good macro support in cc65 already.

- use of Sage's sound player

- interruptor for real-time timekeeping in the game

 

But of course you should be allowed to use any tools for creating your game.

 

I could contribute with a small Makefile that links in all the needed stuff mentioned above plus a simple Hello World-application with sound and timekeeper.

  • Like 1
Link to comment
Share on other sites

Hey, this sounds great. I'm up for the challenge.

As for the tutorials, I've already promised to work on the sprites part. This will most certainly be done in multiple parts as there is a lot to be told on the sprite engine.

Before that I will also release the tutorial source code, which covers all tutorials already done, plus basic sprites, joystick and interrupts. Tutorials this evening. The sprite part 1 this week.

  • Like 1
Link to comment
Share on other sites

Personally I'd rather see what the pixel artists in the AA community can come up with given a loose specification. That way they get to contribute to the contest and also see their own work used in a game too.

 

I didn't suggest it to prevent anyone from making their own graphics, but to help out those programmers who might not find someone to help them out. I was going to do this myself, but if everyone disagrees then I'll leave you to it.

Link to comment
Share on other sites

I didn't suggest it to prevent anyone from making their own graphics, but to help out those programmers who might not find someone to help them out. I was going to do this myself, but if everyone disagrees then I'll leave you to it.

 

I'm talking about sprite sheets prepared in advance for everybody in the contest to use. Then programmers don't have to find an artist they can just take whatever tiles and sprites they need from any of the themes to make their game.

  • Like 1
Link to comment
Share on other sites

I would like to have the graphics animated. 2 frames for walking. The sprite can be flipped for left/right.

 

The player character should have at least a 4 frame (or more) walk animation. You spend all your time looking at him/her so they should be well animated in my opinion. A two frame animation (minimum) is adequate for enemies. But again a 3 or 4 frame animation would be nicer.

  • Like 1
Link to comment
Share on other sites

A project like this would be a good thing for testing out the new features in cc65 also.

 

Things I have in mind are:

- sp65 to compile bitmaps to sprites that can be accesses by C code and ASM code

- BLL style structured programming using ca65 assembler. There is pretty good macro support in cc65 already.

- use of Sage's sound player

- interruptor for real-time timekeeping in the game

 

But of course you should be allowed to use any tools for creating your game.

 

I could contribute with a small Makefile that links in all the needed stuff mentioned above plus a simple Hello World-application with sound and timekeeper.

 

That sounds perfect! It always better to have other people test your code than yourself!

 

Hey, this sounds great. I'm up for the challenge.

As for the tutorials, I've already promised to work on the sprites part. This will most certainly be done in multiple parts as there is a lot to be told on the sprite engine.

Before that I will also release the tutorial source code, which covers all tutorials already done, plus basic sprites, joystick and interrupts. Tutorials this evening. The sprite part 1 this week.

 

LX.NET we also need a collision detection tutorial. I haven't looked into it all that much, but I know we are going to need one!

 

I'm talking about sprite sheets prepared in advance for everybody in the contest to use. Then programmers don't have to find an artist they can just take whatever tiles and sprites they need from any of the themes to make their game.

 

I think this is a great way to get others involved in the contest and won't to contribute but don't have programming skills. I know for myself I absolutely suck at graphics, so the idea of having other contributing graphics is awesome!

 

The player character should have at least a 4 frame (or more) walk animation. You spend all your time looking at him/her so they should be well animated in my opinion. A two frame animation (minimum) is adequate for enemies. But again a 3 or 4 frame animation would be nicer.

 

Agreed, I know for Chips Challenge, Chip had 4 frames which made him look so smooth walking around the screen!

 

-Grant

Link to comment
Share on other sites

I'm talking about sprite sheets prepared in advance for everybody in the contest to use. Then programmers don't have to find an artist they can just take whatever tiles and sprites they need from any of the themes to make their game.

 

You know, TIGSource has had contests broken down into two parts: The first involves contestants making assets and the last bit involves people using those assets strictly for their game entries.

Link to comment
Share on other sites

That sounds perfect! It always better to have other people test your code than yourself!

 

Well I sure won't be using that crap myself. I just confuse the competition so they waste time in trying to find the bugs while I code my competition entry with the old proven BLL kit.

 

Oh crap. This was going to be a PM. Now it went to the forum instead.

Edited by karri
  • Like 2
Link to comment
Share on other sites

Well I sure won't be using that crap myself. I just confuse the competition so they waste time in trying to find the bugs while I code my competition entry with the old proven BLL kit.

 

Oh crap. This was going to be a PM. Now it went to the forum instead.

This remark, coming from the guy that has made the biggest Lynx contribution to the CC65 tools suite, brought a big smile/grin to my face.

Link to comment
Share on other sites

Well I sure won't be using that crap myself. I just confuse the competition so they waste time in trying to find the bugs while I code my competition entry with the old proven BLL kit.

 

Oh crap. This was going to be a PM. Now it went to the forum instead.

 

Ahah karri, I knew that you had a master plan from day 1 to conquer the Lynx scene!!

Link to comment
Share on other sites

BLL, was/is I believe an assembler with some macro support and some pre-built library functions for the Lynx. There was also a port of cc65 (termed "newcc65") that often seemed to go hand in hand with BLL (probably because the same people were involved).

 

Then there is the CC65 (www.cc65.org) toolchain (assembler: ca65, compiler: cc65, linker: ld65) which is a cross-compiler for many 6502 based systems, has active development, supports (mosty) C standards (C89 and some of C99), and typically produces better code than the deprecated "newcc65".

Link to comment
Share on other sites

The BLL makes assembler programming almost as easy as using C. 42Bastian has created lots of great macros. He also made a macro package that can be used with cc65. But only a small part of the macros have been ported to cc65. Sage has been working on this port also. A small example of the power of BLL:

 

		 run LOMEM

Start::		
		 START_UP
		 CLEAR_MEM
		 CLEAR_ZP +STACK

		 INITMIKEY
		 INITSUZY

;Initialize board area
; set tactics $02 is the most desired place $80 the least
;
		 ldx #Rows*Columns
		 lda #$20
		 _WHILENE
			 dex
			 sta board,x
		 _WEND

		 lda n
		 cmp pos
		 _IFEQ
			 lda #CursorBkg
		 _ELSE
			 lda #PegBkg
		 _ENDIF
		 sta sprite_bkg
		 sta drawit
		 ldx n
		 lda board,x
		 _SWITCH
		 _CASE
			 lda #PlayerCol
		 _CASE #1
			 lda #ComputerCol
		 _ELSES
;
; Cursor color chooser
;
		 lda n
		 cmp pos
...
		 _ENDS
		 sta sprite_col

 

I have included a competition entry of Othello. It is called ottelo and was part of the 1k competition. The code is exactly 1024 bytes and completely written in BLL.

You really cannot even get close to this compactness by using C-language.

 

This is a 10 by 10 square Othello game for the Lynx.

post-2099-0-91494200-1349928880_thumb.jpg

 

In the far future I would like to have a macro kit that allows people to code in BLL using the ca65 assembler. The good thing is that the ld65 linker has more power that can be used with ca65. So cc65 suite should not only be for C-people. It could be the toolkit for ASM people as well. You could easily use the interruptor, the tgi-libraries, conio, joypad and ComLynx libraries from ASM also.

 

In Startdreamer I have large parts written in ASM. Like the 3D engine using Lynx hardware multiply, accumulate and divide to get a decent update speed of the 3D graphics. The rest is C for easier understanding of a large program.

--

enjoy,

Karri

ottelo.zip

Edited by karri
Link to comment
Share on other sites

The BLL macro kit can only be compiled by lyxass assembler. The syntax is different from ca65 so a BLL program requires lots of changes to compile on ca65.

 

In a way it is good to have many kind of tools available. The lyxass + BLL has produced many good game carts. ASM has better power and more control over the code. Therefore many hard-core coders prefer it over C.

 

Wookie is maintaining a similar developers tool called hla. It is a structured macro assembler like BLL+lyxass. I believe the hla supports a few different targets.

 

There may be other compilers out there also. The right tools are the ones that you feel comfortable with. I definitely recommend BLL+lyxass for ASM work and cc65 for mixing C with ASM.

--

Karri

Link to comment
Share on other sites

The BLL macro kit can only be compiled by lyxass assembler. The syntax is different from ca65 so a BLL program requires lots of changes to compile on ca65.

 

In a way it is good to have many kind of tools available. The lyxass + BLL has produced many good game carts. ASM has better power and more control over the code. Therefore many hard-core coders prefer it over C.

 

Wookie is maintaining a similar developers tool called hla. It is a structured macro assembler like BLL+lyxass. I believe the hla supports a few different targets.

 

There may be other compilers out there also. The right tools are the ones that you feel comfortable with. I definitely recommend BLL+lyxass for ASM work and cc65 for mixing C with ASM.

--

Karri

 

Ok that makes sense. I've never been able to wrap my head around assembly, I understand that it is incredibly powerful, but I just can't wrap my head around it, C makes more sense to me, so I'd rather sacrifice power and have simplicity instead.

 

What is the maximum game size with CC65 in kilogytes/megabytes?

 

-Grant

Link to comment
Share on other sites

What is the maximum game size with CC65 in kilogytes/megabytes?

 

There is none. The power of cc65 lies in segmentation. You can split your program in segments that can be loaded in on demand. The size of the program is limited by the size of the cart only. For a program without segmentation the max size is 64 kilobytes minus screen buffers, stack and Lynx registers. Roughly 40 kbytes is usable for your code.

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