Jump to content
IGNORED

Alex Kidd Port


TheMole

Recommended Posts

@TheMole, you don't even have to limit yourself to 512K in the cartridge space. If you need end up needing more, you could go up to 2048K without having to change to your basic banking scheme--and the hardware to run it on is available. :)

 

Yeah, I looked at that, just to be sure :). Now, with the current design, each level will need somewhere between 13.5k and 18.5k of uncompressed data for the 9918a version, of which at least 8k can easily be compressed; for the F18A graphics, we need roughly 4k less per level (2k less for the pattern data, and the collision detection data can be reused across both versions). I'll probably do around 12 to 13 levels. Adding all the music, title screen, story text, etc... I think I'll hit 400k of data and roughly 24k of code. The 512k version should be good enough. If I go over that, I would probably look at compressing the data first though, there's plenty of room for improvement with that (I could win 6k per level by not pre-calculating the scrolling patterns for instance, but that would increase the loading times for the levels).

 

I'm also assuming a 512k cart is slightly cheaper to make if I want to do a physical cartridge release :).

  • Like 2
Link to comment
Share on other sites

The real price difference between the boards is about $5 on a standard cartridge release due to the higher cost of the EPROMs on the 2048K boards.

 

Looks like you have an excellent plan for putting the fame in there--and it will be the first game specifically designed to use the full capability of the 512K cartridge board.

  • Like 1
Link to comment
Share on other sites

Just wanted to let you know that we are following this new game over on Retro Gaming Magazine- looks amazing.

 

http://retrogamingmagazine.com/2015/08/29/alex-kidd-is-coming-to-the-ti-994a-computer-thanks-to-homebrew-developer/

 

Why on Earth did you write that Flappy Bird is programmed in Extended Basic?

http://retrogamingmagazine.com/2015/03/03/new-game-flappy-bird-released-for-texas-instruments-ti-994a/

  • Like 2
Link to comment
Share on other sites

 

Why on Earth did you write that Flappy Bird is programmed in Extended Basic?

http://retrogamingmagazine.com/2015/03/03/new-game-flappy-bird-released-for-texas-instruments-ti-994a/

I believe that was from one of the sources that I read on it, that is why it was included in the article. Is this not true?

 

Seems I may have misunderstood this section of comments on your Youtube video - http://retrogamingmagazine.com/wp-content/uploads/2015/08/Untitled.jpg

 

I have removed/edited the offending section of the article. Thanks for bringing that up as I try to do my best to present the facts with our coverage.

Edited by triverse
  • Like 2
Link to comment
Share on other sites

I have a question for you Mole. Since you are planning on making a cartridge version of this game, I was curious, are you planning on using the Uber Cart? I was wondering because if you are planning on writing this in switchable 8K blocks, it occurred to me that you could use and setup a GRAM area to the store game data and carry it over for retrieval upon loading the next block. Also, you could give the user the ability to save the data in this area to disk for later retrieval... so they could save a game in progress and 'start where they left off' another day, or possibly even keep a permanent high scores list. Just pondering...

Link to comment
Share on other sites

If you were going to use the Ubercart for that, why save to disk? Use the EEPROM, that's what it's for. There's almost 4k of non-volatile storage there.

 

But I think the AVR is overkill for the stuff you list - the data can be easily stored in VDP RAM and persist between loads, if it ends up doing loads instead of running from the banks themselves. :)

 

That said, if you wanted it JUST for the non-volatile EEPROM, you could build a cart with a smaller, cheaper AVR. :) The code ports - it was always my intention that the 1284 be a development chip rather than the be-all-end-all. ;)

  • Like 1
Link to comment
Share on other sites

If you were going to use the Ubercart for that, why save to disk? Use the EEPROM, that's what it's for. There's almost 4k of non-volatile storage there.

 

But I think the AVR is overkill for the stuff you list - the data can be easily stored in VDP RAM and persist between loads, if it ends up doing loads instead of running from the banks themselves. :)

 

That said, if you wanted it JUST for the non-volatile EEPROM, you could build a cart with a smaller, cheaper AVR. :) The code ports - it was always my intention that the 1284 be a development chip rather than the be-all-end-all. ;)

 

Ah so, thanks for schooling me on that K4 of NV RAM, I was unaware of it. Saving to disk can be a good thing though, for instance if someone wanted to use their cartridge for something else, and come back months or years later, the data would still be available. One could even send the file to a friend saying, "Beat this sucker and try to knock me off the score list". It would give a little extra versatility to the cartridge, as well as a few extra selling features. This new cartridge gives the programmer multiple ways to think out of the box and develop some pretty cool stuff. I mean look what Gazoo has done with it!

 

Obviously you are right about the VDP RAM, dunno why I missed the obvious.

 

I guess I've been thinking exactly 180 degrees opposite from you. Where you never intended the Uber Cart to be the "be-all-end-all", that is exactly were I was heading. I was thinking in terms of standardization and the coming decade, possibly two. Why? Well, sadly as many of our experts in the ranks pass away, we are going to lose a great amount of knowledge. So, with some standardization in the cartridge hardware used, and a specific burner being used, there would be an opportunity for some You Tube instructional videos that people down the line could easily follow. It may give a few extra years of R.I. use and the more of one type of cartridge floating around the better. And since this cartridge is so damn awesome, why not this one? Well that's my thinking.

Link to comment
Share on other sites

 

Ah so, thanks for schooling me on that K4 of NV RAM

 

It's an important distinction - it's EEPROM, not NVRAM. NVRAM is infinitely re-writable, EEPROM you need to count your writes as erases are limited. ;)

 

 

 

Where you never intended the Uber Cart to be the "be-all-end-all", that is exactly were I was heading.

 

I said the 1284. ;) Atmel makes a huge line of AVR microprocessors, the 1284 is just the biggest DIP-package in the lot. For the cost and the availability, my hope was people making new products would select an appropriately sized chip to their needs and save a few bucks.

 

I hope people do use the GROM simulation. That's why I made it and why I put so many extra bells and whistles into it.

 

It's kind of off topic for this thread anyway. ;)

Link to comment
Share on other sites

Ok, we're finally back where we were before the move from disk to cartridge and we have enemies walking around our levels! This took a lot longer than I expected due to unexpected alignment issues and me stupidly forgetting that my tools needed to convert data to big endian format for the TI... (crazy that I hadn't ran into this before, but apparently all my previous tools only generated bytes and never words or double words... go figure...). Also, I now have more than 64k of data being loaded, which meant I had to revamp the way I let gcc pass on the location of data in the cartridge image: ld exports pointers to the data, which meant I was limited to 16bit. I had to write a script that pre-links the resource files, so I know where they will end up in the image and generates an include file from the linker's map file... cumbersome, but I think I found a cross-platform way of doing this in shell script. Added bonus: I no longer need to manually add external resources to my code, every file that I add to the resources folder will automatically get linked into the image :).

 

The first level in the clip is a relatively faithful copy of a level in the original game, including the enemy positions. For the second level, I just slapped some enemies where it looked ok to test the routines. Will need to do some serious tweaking to make the levels feel fair... :).

 

 

Next up (and before I release a demo cartridge image):

  • Clean up collision detection with enemies a bit (I'm not going for pixel perfect, but currently it's way off sometimes)
  • Add a third level
  • Add some different looking enemies for the other 2nd and 3rd levels
  • Add an F18A rendering path

 

 

  • Like 8
Link to comment
Share on other sites

I have a question for you Mole. Since you are planning on making a cartridge version of this game, I was curious, are you planning on using the Uber Cart? I was wondering because if you are planning on writing this in switchable 8K blocks, it occurred to me that you could use and setup a GRAM area to the store game data and carry it over for retrieval upon loading the next block. Also, you could give the user the ability to save the data in this area to disk for later retrieval... so they could save a game in progress and 'start where they left off' another day, or possibly even keep a permanent high scores list. Just pondering...

 

I'm targeting a standard 512k image, for price reasons (I want to make sure it stays affordable, and leave some room to splurge on packaging, manual, labels, ...). I have thought about saving your status in between levels though, but I'm not sure if I want to add it. Typically, these types of games have an average play-through time of 30-60 minutes once you know how to play it (there are 15 minute speed-runs of the original Alex Kidd on youtube...). A lot of the replay value comes from the fact that you'll need to start over again a number of times before you're good enough to get through it in one sitting.

 

Having said that, times have changed, and modern gamers expect save functionality. If I do add it (undecided) it will be via a password system though (again, for that old skool type of feel). The cool thing about that approach is that all save data is encoded in the password, meaning you don't have to actually save anything on disk or NVRAM/battery backed RAM.

 

Also, note that this game will require the 32k expansion. There's just no way I can fit the dynamic levels and graphics data in VRAM, AND keep the game running at an enjoyable speed.

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

Thanks for the kind words everyone. Here's another update video, this time with ECM3 sprites and f18a graphics for the second level as well. Some small bugs here and there in my export tools (red edge on blue balls in first level, glitchy fire sprite in second level), but the engine is humming along nicely and getting more flexible by the day.

 

 

Oh, remind me to do something about those moonwalking scorpions... :D

  • Like 9
Link to comment
Share on other sites

Holy sh***! Had I been shown that video without knowing its origin, I would never have thought in my wildest dreams that it was for the TI. Absolutely mind blowing! The best demo yet of what the F18A is capable of. So are you planning on creating 2 versions, one for the stock 9918 and one for the F18A?

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