Jump to content
IGNORED

F18A ROM-based Updater


Tursi

Recommended Posts

v1.8 - 256k ROM: F18A_GPUUpdate8.bin

512k version (just the 256k version duplicated) - F18A_GPUUpdate512k8.bin

 

I've tested this on my own system with the five boards I have, but it has had limited runtime since then. For my own piece of mind I'd prefer that the first testers can reflash their board if something goes wrong -- though of course the upgrader is very careful.

 

This code should run fine on a stock system with no memory expansion. :)

 

I've also got it up on Github here: https://github.com/tursilion/f18aupdate

Edited by Tursi
  • Like 4
Link to comment
Share on other sites

Since my previous attempts at updating the F18A firmware using the .dsk-based updater failed with my NanoPEB (getting CRC errors at various points in the process), I made an attempt to try using your ROM-based updater.

 

I've never made a cartridge before, but have purchased various equipment in the past year and figured it was worth a shot to try it.

 

I am using an UberGROM board with AT49F040 chip, which I understand to be 512 kilobyte. I used Minipro to program the F18A_GPUUpdate512k8.bin file that was attached above. But when I stick the UberGROM board in the cartridge slot, I only see TI Basic appear on the menu with no other options.

 

As I said, I've never made a cartridge before, so I have no idea if I did it correctly. I didn't see any errors during the programming process. I saw Omega's video that seemed to be doing something with Cortex Basic (

), and my steps appeared to be mostly identical. The only difference I noticed is that I had selected the "AT49F040 @PLCC32" IC type, but Omega had selected AT49F040A. I'm not sure if that's enough to make a difference (have not tried to reflash it yet).

 

So, just was wondering if this 512 kilobyte image is compatible with the UberGROM board, and if so, is there anything special that needs to be done (any special jumpers to indicate that the ATmega1284P is not in the board, etc.)

 

Sorry for the cartridge burning newbie question, but I guess everyone needs to start somewhere.

Link to comment
Share on other sites

Hi B.J.,

I had been holding off on updating, but after reading your message, I just downloaded and burned a AT49F040, stuck it in a UberGROM board and updated my F18A to version 1.8 (now I get that little green ID in the upper left hand corner). BTW - This is the FAST way to update, holy cow!

 

I would try re-burning it with the setting shown in the photo below, but clean your contacts on the chip first.

 

Updating the F18A could not be easier now!

post-35324-0-95431700-1490567217_thumb.jpg

Link to comment
Share on other sites

Omega, thanks for the screenshot. I just tried burning again, and it looks the flash was successful. I have an option "2" in the menu now for the F18A Update when I power up the TI with the UberGROM cartridge. The only thing I did differently this time was to use the non-PLCC32 AT49F040 selection for the IC, and I pushed the "P" for program instead of selecting the Device(D) -> Program(P) menu option. I don't know if that actually made any difference, if it perhaps the chip wasn't seated correctly in the UberGROM originally.

 

When I fire up the program, the program CRC in the top left corner of the screen is 6355. Can someone confirm that is the correct CRC?

 

I want to verify that before letting it attempt to reprogram the F18A. (The old .dsk-based update CRC for F18A for the program, but I understand the program would have been changed to run off ROM.)

  • Like 1
Link to comment
Share on other sites

Yes, 6355 is what came up and comes up on mine. GO FOR IT! Let us know how it works out. I'm shutting down for dinner, hope to see your response around 5:00pm!

 

SUCCESS! My F18A is now running version 1.8.

 

Awesome job on the ROM-based updater, Tursi.

 

I echo Omega's comments: It was fast! Wow.

  • Like 1
Link to comment
Share on other sites

How is the F18 updated?

 

The FPGA that runs the F18A starts by loading its configuration bitstream from EEPROM. Matthew provided a way for the GPU to write to the EEPROM. Viola! We just put the two pieces together, the GPU writes the new bitstream to the EEPROM, and when you power cycle your system, the new data is loaded.

 

Rasmus and Matthew put together a very meticulous updater which checksums the actual code and does an even more careful CRC of the data itself as it's loaded. The data is stored in a temporary staging location on the EEPROM, and only after all the tests pass is the actual bitstream replaced. This helps reduce the odds of an error breaking the F18A - there's a very small window of just a few seconds where a power failure can do it, and the odds of incorrect data being written is exceptionally low.

  • Like 3
Link to comment
Share on other sites

 

... Rasmus and Matthew put together a very meticulous updater ...

 

And Tursi took the time and effort to take the host-system parts of the program and convert it to run almost entirely in the GPU. This paved the way for him to then easily port the updater to other platforms like the ColecoVision, and load data files from places other than disk. His efforts on this are greatly appreciated, and people are already benefiting from it!

  • Like 3
Link to comment
Share on other sites

And Tursi took the time and effort to take the host-system parts of the program and convert it to run almost entirely in the GPU. This paved the way for him to then easily port the updater to other platforms like the ColecoVision, and load data files from places other than disk.

 

Very interesting approach. For my cryptography project that I'm (slowly) working on using TMS-9900 assembly, designing it so that it could run on the F18A could open it up to be usable on many other platforms other than the TI (without having to recode the whole thing in 6502 or Z80 assembly).

 

Are you able to comment on the relative size of the non-TI F18A user community? (Preferably devices that have keyboards and peripherals and not game-only consoles.) I assume the TI community is about 1,000 people (827 members on the Facebook page). Not sure how many of them are F18A, though. 10%?

  • Like 1
Link to comment
Share on other sites

Something I never really did was keeping F18A user statistics. What I can tell you is that there are about 504 F18A boards out in the wild. I have done 5 runs of boards based on demand:

 

1st 150 boards, July 2012 (I did the assembly and reflow myself)

2nd 100 boards, March 2014

3rd 100 boards, Sept 2015

4th 100 boards, Aug 2016

5th 100 boards, Feb 2017 (current batch)

 

It is a steady average of about 100 per year. Probably 50% are in 99/4A consoles, with the other 50% being split between the CV, MSX, and other. There has been some CV and ADAM increases recently, so it is hard to know where they are all going. Again, this is just speculation right now, so take the percentages with a grain of salt. To my knowledge, only one person has used the F18A in a system with a microcontroller (ARM CPU), and a few people here have used them in home-brew systems with CPUs like the 99105 and 9995. Everyone else is putting them in retro consoles and computers.

 

It is hard to know exactly what percentage of 99/4A users have an F18A, but if you want to know do a poll. Or look back in the forums, I think the question has been asked via a poll before (Omega?). Even though I created the F18A, I'm probably the worst advocate for it. I feel sheepish if I try to push it or bring it up constantly in forums. Anyway, other people here usually inject F18A advocacy where necessary and I greatly appreciate that.

 

/begin-rant

IMO, do the project for yourself using whatever hardware and software you want and have fun. If other people can then use it or are interested, consider that icing on the cake. Don't make design goals based on what you think will serve the largest group of people in a given community. If you do, you will always end up having to target the lowest common denominator (which in the TI community is an expanded console). It is frustrating to me when I see new software developments with a stated goal of supporting everyone (which means unexpanded console), which then makes me wonder why we bother doing all this new hardware (mega carts, RAM expansion, storage devices, video enhancements, etc)? If no one will write new software to take advantage of it (usually with the reason that "not everyone has hardware xyx"), then what's the use of making new hardware?

/end-rant

  • Like 1
Link to comment
Share on other sites

The idea of writing cross-system games running mostly on the F18A GPU is quite interesting, especially for those of us who have 9900 assembly as their native language. :) The only part that has to vary between the systems would be a relatively short routine running on the host CPUs to read joystick/keyboard, play sound, load data into VDP RAM, and bootstrap the whole thing. This routine could poll the GPU for commands on a specific VDP memory address, execute them, and report back through a VDP address when done. There's not much VDP memory left for programs, of course, but you could get more data loaded as needed, and the prospect of a wider audience for the finished software might push programmers to try harder.

Link to comment
Share on other sites

 

Probably 50% are in 99/4A consoles...

 

It is hard to know exactly what percentage of 99/4A users have an F18A...

 

It is frustrating to me when I see new software developments with a stated goal of supporting everyone (which means unexpanded console), which then makes me wonder why we bother doing all this new hardware (mega carts, RAM expansion, storage devices, video enhancements, etc)? If no one will write new software to take advantage of it (usually with the reason that "not everyone has hardware xyx"), then what's the use of making new hardware?

 

If I remember correctly, percentage hangs around 50%. At one point I think it was around 60% but with the influx of new or returning TI'ers that percentage decreases for a time until the 1/2 of those returning users realize the F18A is "where it's at" and jump on board. Even so, approximately 250 TI's upgraded with F18A's is a very respectable number. It does make one ponder how many 'lurkers' are hiding in the shadows though. Of course many of us have more than upgraded console as well.

 

I understand your feelings about new hardware not being exploited to it's full potential, but then I also understand how some programmers may not want to devote so much time and effort into something that will only be utilized by a smaller percentage of people. I'm thinking this situation may change when the FinalGROM 99 is finally released and the programming crowd realizes that the GROM component combined with or controlling access to all that RAM can lead to some amazing things. Just recently, the Tursi TechnologyTM icon_wink.gif packed into the new F18A update package showed a glimpse of the possible future.

 

The idea of writing cross-system games running mostly on the F18A GPU is quite interesting, especially for those of us who have 9900 assembly as their native language. icon_smile.gif The only part that has to vary between the systems would be a relatively short routine running on the host CPUs to read joystick/keyboard, play sound, load data into VDP RAM, and bootstrap the whole thing.

 

This is indeed intriguing! It'll be interesting to see where it goes.

Link to comment
Share on other sites

Don't make design goals based on what you think will serve the largest group of people in a given community. If you do, you will always end up having to target the lowest common denominator (which in the TI community is an expanded console). It is frustrating to me when I see new software developments with a stated goal of supporting everyone (which means unexpanded console), which then makes me wonder why we bother doing all this new hardware (mega carts, RAM expansion, storage devices, video enhancements, etc)?

 

I admit, when I first thought about writing programs for the TI, I considered the ability to run on an unexpanded console a prime objective. Part of this was because, when I first started seriously thinking about it, NanoPEB and CF7's were out of production, and one of the only ways to get the 32 KB memory expansion was with the real PEB which presents challenges for lots of different reasons.

 

But with with the NanoPEB, CF7, and new 32 KB sidecar in production, that no longer seems to be as big of a deal. Anyone who wants 32 KB can find a way to do it now. Plus, it's just so much easier to write code that uses real memory instead of VDP memory.

 

By the way, does anyone know what the chances might be for a Super Sidecar Memory Expansion? (Same form factor as the 32 KB sidecar, but with with 1 MB of memory and the functionality of the Super AMS board.) That would really open the floodgates to all kinds of crazy programs.

Link to comment
Share on other sites

By the way, does anyone know what the chances might be for a Super Sidecar Memory Expansion? (Same form factor as the 32 KB sidecar, but with with 1 MB of memory and the functionality of the Super AMS board.) That would really open the floodgates to all kinds of crazy programs.

 

I find it difficult to come up with ideas for programs that require all that memory, and couldn't be done with a ROM cart instead. Do you have some good ideas?

Link to comment
Share on other sites

...

There's not much VDP memory left for programs, of course, but you could get more data loaded as needed, and the prospect of a wider audience for the finished software might push programmers to try harder.

 

Keep in mind there is about 640K worth of Flash memory available to the GPU. The core game could be in the dedicated 2K of GPU RAM, with a 2K block of VRAM dedicated for swapping code in from Flash as needed. It would not be too much different than dealing with a cartridge. The Flash is clocked at 160ns/byte (100K per frame (16.6ms), or 6.2MiB/sec, or 330us for 2K (about 5 scanlines)). The host computer could also be coaxed into being a storage unit for the GPU, along with the I/O.

 

 

If I remember correctly, percentage hangs around 50%. At one point I think it was around 60% but with the influx of new or returning TI'ers that percentage decreases for a time until the 1/2 of those returning users realize the F18A is "where it's at" and jump on board. Even so, approximately 250 TI's upgraded with F18A's is a very respectable number. It does make one ponder how many 'lurkers' are hiding in the shadows though. Of course many of us have more than upgraded console as well.

...

 

I suspect there are more lurkers with F18A updates than people contributing regularly. When I get orders I only see real names, so I have no way to really tell if the buyer is an Atari Age user. It surprises me how many emails I get via my website from people who do not know about this forum. I always suggest they come here, lurk, join, etc. but I have no way to know if they do.

Link to comment
Share on other sites

..., but then I also understand how some programmers may not want to devote so much time and effort into something that will only be utilized by a smaller percentage of people.

 

Wow!—if I had worried about how many folks would likely use my fbForth 2.0 cartridge, I never would have spent so much time developing it. For me, it was the challenge alone that made it worth the effort. Of course, support from a handful of Forthers didn’t hurt.

 

...lee

  • Like 3
Link to comment
Share on other sites

 

Wow!—if I had worried about how many folks would likely use my fbForth 2.0 cartridge, I never would have spent so much time developing it. For me, it was the challenge alone that made it worth the effort. Of course, support from a handful of Forthers didn’t hurt.

 

...lee

 

Yep, and your numbers are still growing. Heck when the F18A came out it was not an instant overnight success either, now it's pretty much the standard. It all proves the adage and movie saying, "If you build it, they will come." Nothing was ever said about how fast. icon_mrgreen.gif

 

I'd like to see what could come out of a project where the F18A, SAM's and the architecture of the FG99 are all exploited to their maximum potential. For instance I bet a TI-99/4A version of something like Castle Wolfenstein IS possible. Granted it would take more than one guy to pull it off, and probably take a year or two, but oh man those programmers would go down in the annals of TI godhood.

Link to comment
Share on other sites

I guess you could argue that about many community projects. Classic99 was not only unused, it was outright rejected when I first released it. I was accused of creating it only to destroy PC99's market, and if not for the support of people I'd long respected like Ben Yates (who unfortunately still hasn't joined us here ;) ) I might have given up on public updates altogether. But, it was using it for development that drove me to keep updating it - thus my goals occasionally seem at odds with people who just want to play games. Sorry about that! ;)

 

But sometimes new developments are a runaway success and make people wonder about the future. The FlashROM99 is a great example - practically overnight it dominated the field and appeared to crush the future market for anything larger than 32k. ;) Thankfully development continued so we'll see the larger one soon enough, but note how every release - even the F18A updater in this thread - is now answered with "can I run it on the FlashROM99?"

 

I'm not going to stop developing cartridges for that, though, and my apologies in advance, my next project is too large for even the FlashGROM99. So guys, don't solder down your cart ports yet. ;)

 

As for Wolf3D... the F18A GPU has more than enough horsepower to pull off a decent raycaster. ;)

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