Jump to content
IGNORED

Zonik Lynx


TailChao

Recommended Posts

Actually, you can extend the size using both the AUDIO_IN and the switched power line as well as putting a second chip on the board.  That gives a possible 4MBytes of game space.  This, of course, would require another custom circuit board and a few bytes of bank-switching code.

 

I immediately rushed to see the schematics after this. And you are correct! How on earth have I not undestood this before. The Lynx has an unlimited expansion of cart memory by just adding one cheap chip on the cart!

 

You can simply add a shift register that you clock with the switched power line just as you do inside the Lynx. The reset of the shifter is done using AUDIO_IN. This means that you can easily use 16MB StrataFlash chips and give the Lynx total access to 16MBytes while still being compatible with every game produced so far... Time to dig out my soldering iron.

 

By adding an analog switch chip and a big capacitor I can even create a system that will replace the dip-switches on my developers cart and allow soft control over block sizes,.

 

It may even solve the L-SOUND problem.

 

Once you have a flash-based design there is no reason to limit the cart to Zonic only. You can flash several games on it. So why not include a FPGA with ARM and a HW-sound synthesizer on it.

 

With a little HW-magic we could use the second data-port in the Lynx for passing the sounds directly to the speaker system like:

 

SOUND interrupt routine at 4kHz

lda 2nd_data_port

sta sound_channel_0

rts

 

This would use very little CPU time and would be compatible with every Lynx. The ARM could even emulate EEPROM access and AUDIO_IN bank switching. It could even have an USB-port to show up as a removable disk for dropping new *.lnx files and sound files in it.

 

The total design would have just 4 components:

- an FPGA that interfaces to the Lynx cartridge-port

- a 16MB StrataFlash

- a clock chip

- a capacitor

 

I'm interested.

 

--

Karri

Link to comment
Share on other sites

I can't say if the BLL tool will build an image that big, but the HMS one I modified for the latest release of CM2 won't without another addition.  I would suspect that Bastian didn't anticipate games that large either.

 

As far as the AUDIO_IN line, it's used as the read/write line for EEPROM access on cards that support it so it is available for whatever your program needs it for.

Hmm, so I may need to modify lynxer, or find a new utility... But at least the AUDIO_IN line is free, as I don't expect to use EEPROM. Thanks!

 

lynxer is available for 1024, 2048 and 4096 bytes/block called lynxer, lyxner2 and lynxer4 (guess what the numbers mean). but yes if you want to use a different ROM layout you have to rewrite stuff.

the src for 1024 byte version is flying around on my harddisk, for 2048 or more you have to rewrite it. Ask when you need it.

Link to comment
Share on other sites

I can't say if the BLL tool will build an image that big, but the HMS one I modified for the latest release of CM2 won't without another addition.  I would suspect that Bastian didn't anticipate games that large either.

 

As far as the AUDIO_IN line, it's used as the read/write line for EEPROM access on cards that support it so it is available for whatever your program needs it for.

Hmm, so I may need to modify lynxer, or find a new utility... But at least the AUDIO_IN line is free, as I don't expect to use EEPROM. Thanks!

 

lynxer is available for 1024, 2048 and 4096 bytes/block called lynxer, lyxner2 and lynxer4 (guess what the numbers mean). but yes if you want to use a different ROM layout you have to rewrite stuff.

the src for 1024 byte version is flying around on my harddisk, for 2048 or more you have to rewrite it. Ask when you need it.

 

You have a typo here....

 

The sizes can be any power of 2 up to 2048 bytes/block.

 

The sizes I have seen so far are 512 (Warbirds - 128k), 1024 (Lemmings - 256k) and 2048 (Ninja Gaiden III - 512k).

 

Harry had a 410-byte long encrypted loader for 1024 bytes/block carts. It would be nice to get similar loaders for 512 bytels/block designs and 2048 bytes/block designs. Then we could create a generic lynxer that produces any kind of cart images.

 

--

karri

Link to comment
Share on other sites

Actually, you can extend the size using both the AUDIO_IN and the switched power line as well as putting a second chip on the board.  That gives a possible 4MBytes of game space.  This, of course, would require another custom circuit board and a few bytes of bank-switching code.

 

I immediately rushed to see the schematics after this. And you are correct! How on earth have I not undestood this before. The Lynx has an unlimited expansion of cart memory by just adding one cheap chip on the cart!

 

You can simply add a shift register that you clock with the switched power line just as you do inside the Lynx. The reset of the shifter is done using AUDIO_IN. This means that you can easily use 16MB StrataFlash chips and give the Lynx total access to 16MBytes while still being compatible with every game produced so far... Time to dig out my soldering iron.

 

By adding an analog switch chip and a big capacitor I can even create a system that will replace the dip-switches on my developers cart and allow soft control over block sizes,.

 

It may even solve the L-SOUND problem.

 

Once you have a flash-based design there is no reason to limit the cart to Zonic only. You can flash several games on it. So why not include a FPGA with ARM and a HW-sound synthesizer on it.

 

With a little HW-magic we could use the second data-port in the Lynx for passing the sounds directly to the speaker system like:

 

SOUND interrupt routine at 4kHz

lda 2nd_data_port

sta sound_channel_0

rts

 

This would use very little CPU time and would be compatible with every Lynx. The ARM could even emulate EEPROM access and AUDIO_IN bank switching. It could even have an USB-port to show up as a removable disk for dropping new *.lnx files and sound files in it.

 

The total design would have just 4 components:

- an FPGA that interfaces to the Lynx cartridge-port

- a 16MB StrataFlash

- a clock chip

- a capacitor

 

I'm interested.

 

--

Karri

I never thought of including a synth on the L-SOUND but it sounds like a good idea (I was thinking of having only software sound) and I see now that you have all figured out this could not only be of just sound use =P As for having more than one thing on the Zonik cart, I am usure, but will consider it . Also, I was considering not having the sound data run through the lynx, but instead have the Lynx sound output run through the L-SOUND (so it may have higher quality, and put less stress on the CPU, plus it would be neat to mix the lynx harware sound with this) Perhaps this could turn into quite an interesting Dev. tool... However, I would prefer to keep my original design with all of the actual software on the cartridge instead of in the L-SOUND itself (reduced cost, updates), and keep the L-SOUND embedded in the lynx itself, instead of in a cart (also reudced cost)..

 

 

And thankies sage for offering the various versions of lynxer, I'll be sure to contact you as they are needed.

Link to comment
Share on other sites

Also, I was considering not having the sound data run through the lynx, but instead have the Lynx sound output run through the L-SOUND (so it may have higher quality, and put less stress on the CPU, plus it would be neat to mix the lynx harware sound with this) Perhaps this could turn into quite an interesting Dev. tool... However, I would prefer to keep my original design with all of the actual software on the cartridge instead of in the L-SOUND itself (reduced cost, updates), and keep the L-SOUND embedded in the lynx itself, instead of in a cart (also reudced cost)..

 

Well, there is one problem with this. To fit in more functionality you need more lines. It helps if the hardware that extends the addresses are on the same side of the connector with the ROM chip. To have them on different sides of the connector requires more wires. Besides FPGA's drop in price all the time :)

 

For high quality audio you could put a headphone connector on the cart. Mixing in Lynx audio is not necessary as we could create any kind of audio by the ARM.

 

--

Cheers,

 

Karri

Link to comment
Share on other sites

lynxer is available for 1024' date=' 2048 and 4096 bytes/block called lynxer, lyxner2 and lynxer4 (guess what the numbers mean). but yes if you want to use a different ROM layout you have to rewrite stuff.

the src for 1024 byte version is flying around on my harddisk, for 2048 or more you have to rewrite it. Ask when you need it.[/quote']

 

You have a typo here....

 

The sizes can be any power of 2 up to 2048 bytes/block.

 

The sizes I have seen so far are 512 (Warbirds - 128k), 1024 (Lemmings - 256k) and 2048 (Ninja Gaiden III - 512k).

 

I didnt say that there exist any game using it. Its the BLL troyan horse used for it. But anyway chaning the blocksize withing the hardware limit is only a work of some minutes.

 

Harry had a 410-byte long encrypted loader for 1024 bytes/block carts. It would be nice to get similar loaders for 512 bytels/block designs and 2048 bytes/block designs. Then we could create a generic lynxer that produces any kind of cart images.

 

-> maybe we should switch discussion the mail-list

Link to comment
Share on other sites

Just a few notes about some of the issues here...

 

1. Using the switched power line for a clock line could be a problem. Check the Lynx documentation for a description of the bug. It's not hard to set it on/off, but

I think one of the other routines toggle it as a side effect.

 

2. The (generic) encypted loader is easy to change for different block sizes (above 512). It's just a source code change (1 byte), recompile, and re-encrypt. The ROM builder and program code take a few more bytes. The Epyx/Atari routines kept all that in sync with a single source file read by both the assembler and rom builder.

Link to comment
Share on other sites

  • 2 weeks later...

Zonik now features assembling/collapsing level title cards, as in some sonic games.

NewToxyopn.gif

Its better to see it in motion, but this'll have to do for now, also those extra scanlines are a fault in Handy, not the sprite's positioning.

 

additionally, the background has a bit more depth to it in the main game, if zonik moves up, the background moves down, and vice versa. It creates an interesting effect.

Link to comment
Share on other sites

Hi

 

looks promising.  

BTW is there parallax-scrolling for the ocean water used?

Thanks, and yes, there is parallax scrolling on the ocean background, about 7 or 8 different speeds. The DOCK-OEI platform is an additional layer, scrolling in sync with the second ocean sprite down from the top on the BG.

 

Tailchao, the Sonic sprite under your nickname, is it an actual sprite from your game?

Yes, it is used in the bonus round, and has no base.

Link to comment
Share on other sites

Thank you for your prompt answer.

 

If that's so then this game looks EXTREMELY competent so far.

 

BTW what special fx does "Zonik" gonna use:

 

Do you make full use of the sprite effects the Lynx is capable to do (scaling, stretching, skewing)?  :)  

 

And what about the explosions?  :love:

Thanks!

As for the lynx's scaling abilities, I make some use of them, but not alot, as it distorts the sprites, and I don't like that for whatever reason it may be :P . The explosions.... hmmm.... for now most of them are just flashing sprites, but I'll try to cram in full animations later.

Link to comment
Share on other sites

  • 1 month later...

Unfortunately, I'm not gonna be able to make PhillyClassic 5 (bloody schoolwork!) If anyone would like to bring a short video of Zonik running (or what little bit of it IS running :roll: ) there, I can make a little presentation (in MPEG format) and send it to you.

 

Edit: The first appearence of RINGS with SOFTWARE COLLISIONS (wow I am an incredibly lazy coder!)

Firstring.gif

Link to comment
Share on other sites

Edit: The first appearence of RINGS with SOFTWARE COLLISIONS (wow I am an incredibly lazy coder!)

Actually, if you only have a few things that can collide, the software tests end up being both faster and use less memory than with Suzy collision detection.

Exactly, and it leaves Suzy free to do other things.

 

Edit: and also, it give a general "real area of damage" feel to the game with ease, IE- Zonik will not die if an enemy touches just his outline, whereas in hardware collisions, if any parts of the sprites touch, it will register, and to avoid this, one must make the sprite uncollideable and add a small "desired effect area" sprite underneath it.

Link to comment
Share on other sites

Exactly, and it leaves Suzy free to do other things.

 

Edit: and also, it give a general "real area of damage" feel to the game with ease, IE- Zonik will not die if an enemy touches just his outline, whereas in software collisions, if any parts of the sprites touch, it will register, and to avoid this, one must make the sprite uncollideable and add a small "desired effect area" sprite underneath it.

 

The Lynx designers thought of this and they designated certain "pens" to be uncollidable. Too bad the Suzy chip didn't match the specs so it doesn't quite work the way they wanted.

Link to comment
Share on other sites

  • 2 weeks later...

Itty Bitty Update-

FirstEn.gif

Zonik shooting up some of the first enemies in the game, these come in formations of three, one just exploded. The smoke continues in the direction that the enemy was moving in, all software collisions work and several optimisations were made. Seeing that this was accomplished in less than two hours, a little demo may be coming by soon...

Link to comment
Share on other sites

  • 4 weeks later...

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