Jump to content
IGNORED

Lynx Multi Cart


SainT

Recommended Posts

  • 1 month later...
  • 2 weeks later...

More updates! Woo!

 

I've just finished off the firmware side of things. You can now...

 

Open a dir for read
Read dir entries from open dir

Open file for read or write

Get size of open file

Seek within open file

Read from open file

Write to open file **

Program the cartridge from an open file (file formats are handled on the Lynx this way, no limitations on specific formats)

Switch to low power mode (disable 3v regulator for memory card and shutdown microcontroller when its not going to be used again)

 

 

** Only to existing files can be written to and it cannot be expanded beyond its existing size -- limit of petit fatfs. Still useful for high scores / saves etc.

 

The ROM menu I have now saves the current ROM you were looking at to the memory card when you play it, so when you restart the Lynx it returns you to the last played ROM. This is just testing for all the above functions more than anything, but it works a treat.

 

Next I need to go through and test compatibility of everything and sort that issue out, then its done.

Edited by SainT
  • Like 12
Link to comment
Share on other sites

If anyone has any 1MB ROM images I can test, that would be appreciated. I'm aware there aren't dumps readily available for any 1MB games (like Alpine Games etc), so if anyone could provide me with some for testing it wouldn't go any further. :) Support is in there for carts which use 512 blocks, but not tested.

Link to comment
Share on other sites

Great progress i hope that there will be some redefinements to allow each size of games and save stuff to supported games whatever official games or not.

Trough i assume that 95% of games are compatible with it including homebrew games right?

If a few games not ever gonne work on it,then i suggest those ones can alway's decide to ebay those games whatever the price of it.

Can't wait for the final moment of it.

  • Like 1
Link to comment
Share on other sites

Ok, sorted the compatibility issues by zero'ing out a few more registers before rebooting -- I think everything works ok now. The only thing left to test is A19 controlled by AUDIN. If someone has a 1mb ROM image to test which uses this, or someone who can knock me up a test ROM, that would be great.

 

Just need to try and make some hardware now. ;)

  • Like 3
Link to comment
Share on other sites

If anyone has any 1MB ROM images I can test, that would be appreciated. I'm aware there aren't dumps readily available for any 1MB games (like Alpine Games etc), so if anyone could provide me with some for testing it wouldn't go any further. :) Support is in there for carts which use 512 blocks, but not tested.

 

Alpine Games is 512 KB. I think there is a slideshow ROM which uses 1 MB.

 

 

I'm also interested in your cart! :)

Link to comment
Share on other sites

On 11/23/2015 at 7:14 PM, karri said:

There is no standard way to deal with over 512k carts anyway. So testing this is kind of pointless. I would leave AUDIN alone as it is already used for accessing eeprom based filesystems.

 

A few different carts apparently use the AUDIN pin to do bank switching -- although I think just odd homebrew things by the sounds of it, not any substantial games or anything. Either way, I support this if you want to do it. I'll have to write some test code just to check that it does what it looks like it should.

 

EotB would need to be patched to read / write the save via the memory card if that was wanted.

Edited by SainT
Link to comment
Share on other sites

In some early Atari docs and also in Handy sources there is a way to add a second ROM on one board. No AUDIN needed. Still 1MB.

 

The LNX header looks like this (note bank0 and bank1):

; This header contains data for emulators like Handy and Mednafen
;
	.import		__BLOCKSIZE__
	.export		__EXEHDR__: absolute = 1


; ------------------------------------------------------------------------
; EXE header
	.segment "EXEHDR"
	.byte	'L','Y','N','X'				; magic
	.word	__BLOCKSIZE__				; bank 0 page size
	.word	__BLOCKSIZE__				; bank 1 page size
	.word	1					; version number
	.asciiz	"Cart name                      "	; 32 bytes cart name
	.asciiz	"Manufacturer   "			; 16 bytes manufacturer
	.byte	0					; rotation 1=left
							; rotation 2=right
	.byte	0,0,0,0,0				; spare

The bank1 strobe is currently used as a write strobe for many hobby carts. Even EOTB "misused" the bank1 stobe as a write. I have not seen this 2nd bank used. But the emulators support 1MB through this mechanism - not through AUDIN.

 

Writing to eeprom works using address lines. The bank strobes are not used. So imho we should encourage people to use the bank1 for extending ROM in a way compatible with Handy and Mednafen. And save AUDIN for 1-wire interfaces like eeproms, SPI, i2c.

Edited by karri
Link to comment
Share on other sites

In some early Atari docs and also in Handy sources there is a way to add a second ROM on one board. No AUDIN needed. Still 1MB.

 

The LNX header looks like this (note bank0 and bank1):

; This header contains data for emulators like Handy and Mednafen
;
	.import		__BLOCKSIZE__
	.export		__EXEHDR__: absolute = 1


; ------------------------------------------------------------------------
; EXE header
	.segment "EXEHDR"
	.byte	'L','Y','N','X'				; magic
	.word	__BLOCKSIZE__				; bank 0 page size
	.word	__BLOCKSIZE__				; bank 1 page size
	.word	1					; version number
	.asciiz	"Cart name                      "	; 32 bytes cart name
	.asciiz	"Manufacturer   "			; 16 bytes manufacturer
	.byte	0					; rotation 1=left
							; rotation 2=right
	.byte	0,0,0,0,0				; spare

The bank1 strobe is currently used as a write strobe for many hobby carts. Even EOTB "misused" the bank1 stobe as a write. I have not seen this 2nd bank used. But the emulators support 1MB through this mechanism - not through AUDIN.

 

Writing to eeprom works using address lines. The bank strobes are not used. So imho we should encourage people to use the bank1 for extending ROM in a way compatible with Handy and Mednafen. And save AUDIN for 1-wire interfaces like eeproms, SPI, i2c.

 

Yeah, I don't support the CE2 method as I use that for access to the microcontroller on the cartridge.

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