Jump to content
Igor

Requested updates to the Atari Gamer website

Recommended Posts

4 hours ago, Igor said:

I've made it so if there is an itch.io download link for the game, the 'Download ROM' will use that link instead of the ROM that is stored in the Atari Gamer database. This should (hopefully) drive more people to use itch downloads and maybe will turn into purchases for the devs.

 

The downloads from itch.io are marked with the itch.io logo...

833410511_ScreenShot2020-10-09at20_54_54.thumb.png.dc1e202519137bb8642f92f3a0ffbd39.png

 

 

That's a good idea but do you link the actual rom file or the itch.io page? The latter sounds a bit better imo since it would bring the player to the creator "universe" and give him a chance to read about the game and potentially other games :)

Share this post


Link to post
Share on other sites
Spoiler

BLL Comlynx Loader/Debugger

(I wont talk about BLL nor the BLL workaround for the Lynx encryption. The following focuses only on the Comlynx loader/debugger included in BLL.)

Several homebrew ROMs (e.g. Alpine Games, Championship Rally, SIMIS) claim that they contain a BLL loader. So what is the technology behind this and how can you make use of it?

Simply speaking, it is a small piece of code which listens on the comlynx port in the background for some specific command sequences.
Depending on what had been enabled at compile time, these command can be used for debugging the Lynx over comlynx (reading/writing memory, registers, breakpoints), upload and start programs, reset and make screenshots (and send them back to a connected PC).
The most useful feature is the game upload, which can be used for debugging on real hardware. It is much faster than using a flash or sd card which need to swap cards, cables and switching the Lynx off/on. It is very useful for comlynx game development as you can upload the game to several units in parallel by one adapter within only a few seconds.

What do you need hardware wise? At least of the loader cards (or the rom on some flash card). A comlynx-serial adapter or a USB serial adapter with 5V level (see below).
 
The following cartridges contain a BLL comlynx loader. But it might only be active in a specific screen:

* BLL Loader Card: selectable speed.
* SIMIS: Main menu only, 9600 baud.
* Lynx Reloaded: Main menu only, selectable speed.
* Alpine Games: Read manual
* Championship Rally: BLL Loader im Tournament screen (after pressing "New Game"), 9600 baud.
* PATW: Loader menu, speed selectable
* most homebrews where the developer forgot to disable the loader: always active, 9600 baud
* Not to forget the flashcard designed by Karri, which allows to flash a ROM via Comlynx.


Comlynx is a serial protocol. Because of hardware limitations on the Lynx side, it uses always 8 bit 1 stop bit and even parity (8E1). The speed is limited to 2400, 9600, 31250, 62500 baud. 9600 is compatible with any PC hardware and adapters, but 31250 and 62500 are not so common, even so 31250 matches the speed of the MIDI standard. In summary, if you want to use 31250 or 62500 baud, you need to chose your your hardware carefully.
Uploading a game which is close to the memory limit of ~56kb, the upload with 62500 baud takes about 10 seconds, but 60 second with only 9600 baud.

Limitations and file format:
The game must fit into the Lynx memory. You cannot upload ROM images, but have to upload the binaries which build up the rom image.
The bll assmbler (lyxass) and newcc65/ld65 will produce these binaries directly. For the uptodate version of cc65 you need to create the binary with a special config file (add lynx-bll.cfg to the command line).
Game code can start from $200 on until the position of the hardware registers.


Technical details:
The loader itself is placed at the end of the memory ($FFC0), thus it can not be overwritten by any game code.

Documentation from the BLL kit:

The Debugger supports the follwing commands:
$81,"P" - Program
$81,"R" - Reset
$81,"S" - Send screenshot (palette+data)
$82 - continue
$83 - set registers
$84 - write : 0 - byte
              1 - word (hi first!)
              2 - bytes
$85 - read  : 0/1/2
$86 - get registers


The ComLynx-Loader wants:

start-sequence : $81,"P" ; command : load program
init-sequence : LO(Start),HI(Start) ; start address = dest.
                LO(Len XOR $FFFF),HI(Len XOR $FFFF) ; and len of data

Xmit-sequence : Len bytes .... ; data

There is no checksum! If there is an com error, it will not be detected. The upload might stall or the program might crash.
If you read from a file, do not forget to skip the header (and reduce the length accordingly).

 

How to include it in games:

BLL/lyxass:
define the "Baudrate", default is 9615
include serial.inc and debug.inc
call "jsr InstallLoader"

ancient cc65 code (newcc65 compiler):
call "InstallUploader();"

current cc65:
You can add the uploader to any program by compiling it with lynx-uploader.cfg. This will add an interruptor that listens to ComLynx traffic. But you need to set up the baudrates by yourself to make it usable.

 

 

I didnt find it, but I copied together some information.

I suggest to add the schematics from the BLL kit with the max chip. I can did out some USB-CL 5V converters, too.

 

And here are some threads with more and deeper info:

https://atariage.com/forums/topic/132551-bll-carts
https://atariage.com/forums/topic/213073-what-do-i-need-to-load-homebrews
https://atariage.com/forums/topic/14967-lynxpc-serial-cable-back-ordered

  • Like 1

Share this post


Link to post
Share on other sites

@LordKraken I link the download to the itch download page, the one that asks for a donation, etc. I also link to the game's info page in the 'other links' section

@sage thanks, I'll have a look at those threads

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, Igor said:

 

4 hours ago, Igor said:

@sage thanks, I'll have a look at those threads

feel free to copy what i put together in the spoiler, sorry, that i havent formatted it nicely. If you use it, please add proper credits.

  • Like 1

Share this post


Link to post
Share on other sites
On 10/9/2020 at 10:35 PM, sage said:
  Reveal hidden contents

BLL Comlynx Loader/Debugger

(I wont talk about BLL nor the BLL workaround for the Lynx encryption. The following focuses only on the Comlynx loader/debugger included in BLL.)

Several homebrew ROMs (e.g. Alpine Games, Championship Rally, SIMIS) claim that they contain a BLL loader. So what is the technology behind this and how can you make use of it?

Simply speaking, it is a small piece of code which listens on the comlynx port in the background for some specific command sequences.
Depending on what had been enabled at compile time, these command can be used for debugging the Lynx over comlynx (reading/writing memory, registers, breakpoints), upload and start programs, reset and make screenshots (and send them back to a connected PC).
The most useful feature is the game upload, which can be used for debugging on real hardware. It is much faster than using a flash or sd card which need to swap cards, cables and switching the Lynx off/on. It is very useful for comlynx game development as you can upload the game to several units in parallel by one adapter within only a few seconds.

What do you need hardware wise? At least of the loader cards (or the rom on some flash card). A comlynx-serial adapter or a USB serial adapter with 5V level (see below).
 
The following cartridges contain a BLL comlynx loader. But it might only be active in a specific screen:

* BLL Loader Card: selectable speed.
* SIMIS: Main menu only, 9600 baud.
* Lynx Reloaded: Main menu only, selectable speed.
* Alpine Games: Read manual
* Championship Rally: BLL Loader im Tournament screen (after pressing "New Game"), 9600 baud.
* PATW: Loader menu, speed selectable
* most homebrews where the developer forgot to disable the loader: always active, 9600 baud
* Not to forget the flashcard designed by Karri, which allows to flash a ROM via Comlynx.


Comlynx is a serial protocol. Because of hardware limitations on the Lynx side, it uses always 8 bit 1 stop bit and even parity (8E1). The speed is limited to 2400, 9600, 31250, 62500 baud. 9600 is compatible with any PC hardware and adapters, but 31250 and 62500 are not so common, even so 31250 matches the speed of the MIDI standard. In summary, if you want to use 31250 or 62500 baud, you need to chose your your hardware carefully.
Uploading a game which is close to the memory limit of ~56kb, the upload with 62500 baud takes about 10 seconds, but 60 second with only 9600 baud.

Limitations and file format:
The game must fit into the Lynx memory. You cannot upload ROM images, but have to upload the binaries which build up the rom image.
The bll assmbler (lyxass) and newcc65/ld65 will produce these binaries directly. For the uptodate version of cc65 you need to create the binary with a special config file (add lynx-bll.cfg to the command line).
Game code can start from $200 on until the position of the hardware registers.


Technical details:
The loader itself is placed at the end of the memory ($FFC0), thus it can not be overwritten by any game code.

Documentation from the BLL kit:

The Debugger supports the follwing commands:
$81,"P" - Program
$81,"R" - Reset
$81,"S" - Send screenshot (palette+data)
$82 - continue
$83 - set registers
$84 - write : 0 - byte
              1 - word (hi first!)
              2 - bytes
$85 - read  : 0/1/2
$86 - get registers


The ComLynx-Loader wants:

start-sequence : $81,"P" ; command : load program
init-sequence : LO(Start),HI(Start) ; start address = dest.
                LO(Len XOR $FFFF),HI(Len XOR $FFFF) ; and len of data

Xmit-sequence : Len bytes .... ; data

There is no checksum! If there is an com error, it will not be detected. The upload might stall or the program might crash.
If you read from a file, do not forget to skip the header (and reduce the length accordingly).

 

How to include it in games:

BLL/lyxass:
define the "Baudrate", default is 9615
include serial.inc and debug.inc
call "jsr InstallLoader"

ancient cc65 code (newcc65 compiler):
call "InstallUploader();"

current cc65:
You can add the uploader to any program by compiling it with lynx-uploader.cfg. This will add an interruptor that listens to ComLynx traffic. But you need to set up the baudrates by yourself to make it usable.

 

 

I didnt find it, but I copied together some information.

I suggest to add the schematics from the BLL kit with the max chip. I can did out some USB-CL 5V converters, too.

 

And here are some threads with more and deeper info:

https://atariage.com/forums/topic/132551-bll-carts
https://atariage.com/forums/topic/213073-what-do-i-need-to-load-homebrews
https://atariage.com/forums/topic/14967-lynxpc-serial-cable-back-ordered

USB to Serial adapter:

 

Share this post


Link to post
Share on other sites
3 hours ago, 42bs said:

USB to Serial adapter:

 

yep, the diode is needed. I wonder why it was not needed in the old schematics with the MAX232

Share this post


Link to post
Share on other sites
5 minutes ago, sage said:

yep, the diode is needed. I wonder why it was not needed in the old schematics with the MAX232

Because the MAX232 could pull down the line against a high level.

Share this post


Link to post
Share on other sites

Thank you both! I will get around to looking at this soon (had a family matter come up and didn't have time to look at this).

Share this post


Link to post
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.

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