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

This is something I've discussed with @Nop90 some time back when Biniax came out and received a number of updates.

ROM versions/history.

 

Right now I've only added it for 8bit-Slicks (https://atarigamer.com/lynx/game/8-Bit Slicks/623529361#romhistory)...

 

2071739008_ScreenShot2021-01-27at14_08_55.thumb.png.86f91ba9f324a0ff64854c3411176e14.png

 

It's not a full-fledged feature that I wanted, but in the backend it still does keep all the previous version ROMs, I just need to spend more time to make those downloadable (where allowed).

 

I probably will not go back and fill this in for any games that are listed already, but as new revisions come out, I will update them.

Share this post


Link to post
Share on other sites

I have a new request for the Atarigamer site.

 

I would like to release some WIP lynx games of mine for testing (Finel Melee for example), but without sharing the ROM, and since Atarigamer site already gives the possibility to play some commercial roms that can't be downloaded, it could be extended to testing roms.

 

A beta testing page where can be listed homebrews released as preview could be a nice feature, and you @Igor should not worry about loading on your site a lot of alpha end beta versions in the main roms repository, but only wait the final version while the last wip version are in the testing page.

 

As advanced feature to evaluate, the beta testing could be time limited to one month (renewable on request by the developer) so to not leave dead progects there too long.

 

  • Like 3

Share this post


Link to post
Share on other sites

That's a good suggestion @Nop90! I think this can be done without having to create an entry in the game database, instead asking the developer to submit a README file that will be displayed. The ROM will then playable on the same page (without the Lynx background image maybe) and the comments section will be there for feedback. Time limited can be made optional.

 

This should not take long to put together, thanks for the suggestion!

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Great, as soon as this feature is available I'll use it to make test Final Melee.

  • Like 1

Share this post


Link to post
Share on other sites
On 2/15/2021 at 6:47 PM, Nop90 said:

Great, as soon as this feature is available I'll use it to make test Final Melee.

I know that I said it won't take long together, that was assuming I was working on site code 😅 I'm working on it again now though. There have been some other changes to the website, including a side menu that should hopefully make navigation easier.

 

For the beta test utility, I am thinking that it will require you to submit a LNX ROM (so that the header info can be displayed), as well as have an area for you to add a description/README. You can then also choose a duration of the beta test (1-7 days). Once you submit, you will be issued with a URL to share your ROM's play page. There won't be an option to update any info or ROM once submitted, but the entire submission will be deleted once the time expires. These pages will not be listed publicly either so you will need to know the URL in order to play-test it.

  • Like 1

Share this post


Link to post
Share on other sites
2 minutes ago, Igor said:

I know that I said it won't take long together, that was assuming I was working on site code 😅 I'm working on it again now though. There have been some other changes to the website, including a side menu that should hopefully make navigation easier.

 

For the beta test utility, I am thinking that it will require you to submit a LNX ROM (so that the header info can be displayed), as well as have an area for you to add a description/README. You can then also choose a duration of the beta test (1-7 days). Once you submit, you will be issued with a URL to share your ROM's play page. There won't be an option to update any info or ROM once submitted, but the entire submission will be deleted once the time expires. These pages will not be listed publicly either so you will need to know the URL in order to play-test it.

Seems fine.

  • Like 1

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