Jump to content
IGNORED

Bee3 - Its alive!


Recommended Posts

Any coordination with nanochess to make the fancy features accessible to IntyBASIC users?

Once nanochess adds support for on-cart RAM then that'll be supported right out of the box. The game save stuff will take some thinking about but integrating the functionality with IntyBASIC is on my todo list.

  • Like 1
Link to comment
Share on other sites

Once nanochess adds support for on-cart RAM then that'll be supported right out of the box. The game save stuff will take some thinking about but integrating the functionality with IntyBASIC is on my todo list.

 

So, just to be sure, the on-cart RAM is complete but the "Flash" RAM is still being defined, right? Are you planning on completing that as part of Bee3, or for Bee4?

 

-dZ.

  • Like 1
Link to comment
Share on other sites

So, just to be sure, the on-cart RAM is complete but the "Flash" RAM is still being defined, right? Are you planning on completing that as part of Bee3, or for Bee4?

Sorry, I'm confused by your terminology. The on cart resources vary, depending on what microcontroller you use on the PCB. I have a command line tool that mangles ROM images into a suitable file format which then bolts into the driver source code. This is then assembled into a binary and burned into the flash of the microcontroller. From the Inty's point of view the driver+game becomes the game ROM.

 

The EEPROM is a separate memory space in the AVR ATmegas used in the design. It has a higher number of writes (approx 100k) compared to the 10k writes of normal flash - flash can only handle a finite number of writes during its lifetime. When you combine the higher number of EEPROM writes with auto-wear levelling it'll last much, much longer. Not that I'd expect EEPROM's 100k writes to be exhausted in normal use but its always better to be safe than sorry.

 

The RAM size increases/decreases depending on the ATmega chip used.

 

The auto-wear levelling code is the part that needs finishing off. Effectively, the code walks a singly linked list to find the last entry and thus the read/write memory pointers.

 

Every time the game writes to the EEPROM the Bee3 "BIOS*" adds an "object" to the singly linked list. If the game attempts to write data and the data block extends over the end of the EEPROM then the whole EEPROM is erased and the data block dropped into place near the start of the EEPROM (there is some housekeeping overhead).

 

* The Bee3 doesn't have a BIOS that the Inty can actually execute. All interactions with the internal workings of the Bee3 are carried out through dual port RAM and memory mapped I/O registers.

Link to comment
Share on other sites

Sorry, I'm confused by your terminology. The on cart resources vary, depending on what microcontroller you use on the PCB. I have a command line tool that mangles ROM images into a suitable file format which then bolts into the driver source code. This is then assembled into a binary and burned into the flash of the microcontroller. From the Inty's point of view the driver+game becomes the game ROM.

 

The EEPROM is a separate memory space in the AVR ATmegas used in the design. It has a higher number of writes (approx 100k) compared to the 10k writes of normal flash - flash can only handle a finite number of writes during its lifetime. When you combine the higher number of EEPROM writes with auto-wear levelling it'll last much, much longer. Not that I'd expect EEPROM's 100k writes to be exhausted in normal use but its always better to be safe than sorry.

 

The RAM size increases/decreases depending on the ATmega chip used.

 

The auto-wear levelling code is the part that needs finishing off. Effectively, the code walks a singly linked list to find the last entry and thus the read/write memory pointers.

 

Every time the game writes to the EEPROM the Bee3 "BIOS*" adds an "object" to the singly linked list. If the game attempts to write data and the data block extends over the end of the EEPROM then the whole EEPROM is erased and the data block dropped into place near the start of the EEPROM (there is some housekeeping overhead).

 

* The Bee3 doesn't have a BIOS that the Inty can actually execute. All interactions with the internal workings of the Bee3 are carried out through dual port RAM and memory mapped I/O registers.

 

Sorry, I'm not experienced in hardware or circuit design, so I don't know the proper terminology. What I meant was the difference between on-board "scratch" RAM that can be mapped to the Intellivision's writable memory map and made available to the executing game; vs. non-volatile RAM that can be used to save game state.

 

I don't pretend to understand what you meant by "auto-wear levelling code" (or much of the details you mentioned) but my guess is that this refers to the second type of memory I mentioned above. Right?

 

Joe's JLP board offers access to the non-volatile RAM via an API library that can be included with the game. This library encapsulates the low-level details of communicating with the firmware. Would the Bee3 provide something similar.

 

Thanks for the information. :)

 

-dZ.

Edited by DZ-Jay
  • Like 1
Link to comment
Share on other sites

I don't pretend to understand what you meant by "auto-wear levelling code" (or much of the details you mentioned) but my guess is that this refers to the second type of memory I mentioned above. Right?

Wear levelling is what happens in consumer items like SD cards or SSDs to extend the flash lifetime. You are correct in that writing data to EEPROM means that data is always in the cart until its erased or updated. For example, high scores will be there until you beat them ;). I'll be adding high score saves to Rocketeer, as well as the ability to reset/erase them.

 

Joe's JLP board offers access to the non-volatile RAM via an API library that can be included with the game. This library encapsulates the low-level details of communicating with the firmware. Would the Bee3 provide something similar.

There is no API as such, because its just a bunch of memory writes with a simple ISR and a polling loop which are both located in the Inty internal system RAM. The donkey work is done by the Bee3 BIOS behind the scenes (so to speak).

 

I'll be publishing full details and an example on how to access the EEPROM in due course.

 

Thanks for the information. :)

No worries!

Link to comment
Share on other sites

Holy Crap, did Mars Minis just win Inty soundtrack of the year? It did up here!

Mystery Musician done good on that one :D. The music is a bit out of key and also a bit out of tempo because its played on a PAL machine.

 

As an aside Rocketeer has quite a bit more music in it too.

Link to comment
Share on other sites

Mystery Musician done good on that one :D. The music is a bit out of key and also a bit out of tempo because its played on a PAL machine.

 

As an aside Rocketeer has quite a bit more music in it too.

 

Mars - The Bringer Of War. Classic is coming to Intellivision (ok, not for the first time...Buzz Bombers)

Link to comment
Share on other sites

No way! say it ain't so!

im going to jump the intelli ship now and head to the lush green shores of the 7800.

Screw you guys...see ya on the other side, and in some color.

Meh. Color is overrated. In my day, we didn't have any of that fancy colors you kids have. We played our video games on ruled notebook paper. We had one color, PENCIL, and we liked it. :P
  • Like 2
Link to comment
Share on other sites

No way! say it ain't so!

im going to jump the intelli ship now and head to the lush green shores of the 7800.

Screw you guys...see ya on the other side, and in some color.

 

Come BACKTAB! Don't decele to do anything drastic! We could change into color stack mode and interfere with the hater MOBs!

  • Like 2
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...