Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Determine EEPROM Writing Solution #76

Closed
cspang1 opened this issue May 23, 2019 · 8 comments
Closed

Determine EEPROM Writing Solution #76

cspang1 opened this issue May 23, 2019 · 8 comments
Assignees
Labels
Projects

Comments

@cspang1
Copy link
Owner

cspang1 commented May 23, 2019

This is looking somewhat further down the proverbial development road.

I will be using a 1Mbit SPI EEPROM for static game resource storage (tile map, tile/sprite pixel palettes, tile/sprite color palettes), which would allow for ~50 full tile maps worth of canvas. This data will be loaded into a 1Mbit SPI SRAM at system instantiation.

The question is: what's a reasonable way to load 128K worth of data into the EEPROM, when the Propeller can only handle 32K at programming time. Should an in-circuit programmer be used? Should some shenanigans be implemented to load the data piecemeal via the Propeller? Should the data be sent serially to the Prop via the Prop Plug and stored one at a time?

I'm certain there is a best practice well accepted solution to this, but nothing is really popping out in my searches.

Ideally the solution would be one-click, as during game development the graphics resources would be constantly updated and tested, so if there's a solution that wouldn't require overwriting the boot EEPROM of the Propeller (so as not to overwrite the CPU code itself, necessitating a re-load) or even better wouldn't require the Prop at all, it would be ideal.

@cspang1 cspang1 self-assigned this May 23, 2019
@cspang1 cspang1 added this to To Do in JCAP Kanban via automation May 23, 2019
@cspang1
Copy link
Owner Author

cspang1 commented May 23, 2019

Looks like Macca was investigating this exact same problem, but doesn't seem to really elaborate on his solution - plus it looks like he's using a C compiled solution.

@konimaru
Copy link
Collaborator

konimaru commented May 23, 2019

There is the Hydra-Asset-Manager (HAM). It needs some tweaking (the back end on the P1) but worked fine for me in the past. I believe up to 128MB was possible (in fact GUI allows for 512MB).

HAM_1_09.zip

@cspang1
Copy link
Owner Author

cspang1 commented May 23, 2019

Outstanding - any elaboration for "tweaks on the back end"?

@konimaru
Copy link
Collaborator

konimaru commented May 23, 2019

The original backend used the TV driver + the Graphics object. I commented that out (there was some kind of progress bar). I believe you have the tweaked version already in that archive.

@cspang1
Copy link
Owner Author

cspang1 commented May 23, 2019

Oh nice. I'm thinking though... the Propeller's boot EEPROM is I2C, but the ones I'm attempting to write to are SPI - so I'll certainly have to replace the I2C logic with SPI logic, as well as change the GPIO ports used.

@konimaru
Copy link
Collaborator

konimaru commented May 23, 2019

Ah, yes. I forgot. But it shouldn't be too much effort.

@cspang1
Copy link
Owner Author

cspang1 commented May 23, 2019

Nah, especially with a great deal of SPI logic already available in the Propeller library.

@cspang1
Copy link
Owner Author

cspang1 commented May 25, 2019

Will be satisfied w/ HAM.

@cspang1 cspang1 closed this as completed May 25, 2019
JCAP Kanban automation moved this from To Do to Complete May 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
JCAP Kanban
  
Complete
Development

No branches or pull requests

2 participants