Jump to content

Photo

M.U.L.E. for TI

PROGRAMMING ATARI MULE

120 replies to this topic

#1 hloberg OFFLINE  

hloberg

    Dragonstomper

  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Wed Jan 2, 2013 5:34 PM

One of my favorite games on the Atari 800 was MULE. Ozark made several copies for other machines but never got around to the Ti. For a (very) long term project I'm thinking of doing a MULE copy for the TI.
Some advice, if you have played or seen MULE what do you think i should program it in? The graphics aren't very fast paced or complex but very Atari-centric.
What you think ? C, Forth, XB, assembler ?
Anyway, suggestions welcome.

#2 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,726 posts
  • Location:Eagan, MN, USA

Posted Wed Jan 2, 2013 11:47 PM

I unfortunately have never played that game before although did hear of it quite a bit. I'm going to try to get a copy for my PCjr and give it a spin. From what I know about it though, this could easily be coded in XB, unless you want high res graphics in which case assembly or TI Forth are your best bets. For speed with ease of programming, Turbo Forth and Harry Wilhelm's XB compiler are probably the way to go.
I would steer away from c99 because of the laborious edit/compile process and the limited user program space available.
Clearly many choices are available based on your preferences and your familiarity with specific programming languages.
I would love to see this on the TI :)

#3 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 744 posts
  • Location:Belgium

Posted Thu Jan 3, 2013 4:37 AM

For me it depends on what you're familiar with, but don't discount C because of C99... GCC is a very capable development environment for the TI, as long as you're working in emulators. My makefiles basically just start the emulator with the automatically generated cartridge image. So between saving and running there is exactly one step for me: "make". Plus, it gives you assembly-like speeds and access to the full system hardware. Downside is that you would probably have to design some of the higher-level XB type functions yourself. It's easy enough, but an extra step for your first program.

#4 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 419 posts
  • Location:Montgomery, IL

Posted Thu Jan 3, 2013 9:11 AM

You can now play mule online here - http://www.planetmule.com/

#5 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 419 posts
  • Location:Montgomery, IL

Posted Thu Jan 3, 2013 9:14 AM

Also looks like its coming to mobile

http://mulereturns.com/screenshots/

Think I really need to spin up my Atari 800xl and drop in my mule cart and try it out and yes I would like to see this on the new TI99/4a/F18a
:-)

#6 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Thu Jan 3, 2013 9:54 AM

Hum, thought about C (I know C) but if it has limited space that could be a problem. The graphics in MULE are not complex but my initial setup show that they can't be emulated using XB character based graphics very well. I'm still thinking about XB compiled but it may not have the look and feel I want.
I know TI assembler some what, tell me more about the GCC. I checked out some of the articles and it looks interesting.

#7 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 419 posts
  • Location:Montgomery, IL

Posted Thu Jan 3, 2013 10:58 AM

Also consider Forth

One developer on the forums created an Advance Wars type game using TurboForth. Your choice of course ;-)

#8 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Thu Jan 3, 2013 11:04 AM

Being ignorant of forth I have one question. with Assembler or XB you can create an auto boot disk that starts straight into the game. Can you do that with forth?
Also JonnyBritish, got a link to that game so I can check it out.

Edited by hloberg, Thu Jan 3, 2013 11:05 AM.


#9 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,311 posts
  • Location:Silver Run, Maryland

Posted Thu Jan 3, 2013 11:54 AM

Being ignorant of forth I have one question. with Assembler or XB you can create an auto boot disk that starts straight into the game. Can you do that with forth?
Also JonnyBritish, got a link to that game so I can check it out.


Both TI Forth and TurboForth can "auto-start" a program at boot time. I am unaware that you can auto-start a program with Assembler. You must select the E/A cartridge menu's #3 or #5 option and give a filename. Then, of course, the loaded file can auto-start.

With both TIF and TF, you do not need to know the name of the program if the programmer set it up to run at boot time for a given game disk.

...lee

#10 Rod Van Orden OFFLINE  

Rod Van Orden

    Space Invader

  • 39 posts

Posted Thu Jan 3, 2013 12:58 PM

Hi gang!
I think you could probably do MULE in RXB 2012 with assembler routine interaction.
However, I would strongly encourage you all to gravitate towards TurboForth. If you do
TMS-9900 assembly language, do it in TurboForth.....
The bitmap graphics support needs to get squared away first (or else use TI Forth).
I have found that programming in Forth allows you to test and develop so much easier
than the typical development cycle. And you generally have more memory to mess with.

By the way, Happy New Year!


Rod Van Orden
San Diego, California

#11 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Thu Jan 3, 2013 2:24 PM

Here's a short display of MULE:
the main program consist of three screens: the map, the store and the bidding. I should be able to create those screens with XB and assembler extensions. the only problem would be quickly switch between the screens.
The opening I have no idea how emulate to look like that in XB.

#12 Willsy OFFLINE  

Willsy

    River Patroller

  • 3,009 posts
  • Location:Uzbekistan (no, really!)

Posted Thu Jan 3, 2013 2:54 PM

From what I've seen so far, I don't think bitmap graphics are required. TurboForth, TI Forth, and of course Assembly would let you re-define all 256 ASCII characters rather than the 100 odd in XB, which allows a lot of flexibility.

As an example, I did this in 32 character mode; no bitmap:



#13 OX. OFFLINE  

OX.

    Moonsweeper

  • 458 posts

Posted Thu Jan 3, 2013 6:26 PM

From what I've seen so far, I don't think bitmap graphics are required. TurboForth, TI Forth, and of course Assembly would let you re-define all 256 ASCII characters rather than the 100 odd in XB, which allows a lot of flexibility.

As an example, I did this in 32 character mode; no bitmap:

http://www.youtube.com/watch?v=bZzq-ebcM80


Willsy, when will we get to play Manic Miner on the TI99? Please make it so ;-)

#14 InsaneMultitasker OFFLINE  

InsaneMultitasker

    Stargunner

  • 1,690 posts

Posted Thu Jan 3, 2013 6:31 PM

I enjoyed playing M.U.L.E. when I had a C64 alongside the TI. It's easy to envision a nice TI version then throw in some optional SID sound/music using Marc's SIDBlaster.... ;)

#15 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Thu Jan 3, 2013 8:58 PM

So far...
Not many fans of TI version of C which is too bad as I'm a fairly good C programmer.
XB with extensions or XB compiled looks like a possibility. easy to program and fast to test but limited in capability.
Straight Assembler (which I know somewhat) would give me the most prototypical like program by accessing all the capabilities of the TI (bit mapped graphics etc..) . But programming time would be long. Still a possibility though.
Forth looks like a good balance (fast, easy testing, capable ) with lots of enthusiast. Unfortunately I know less than zilch about the language. If the learning curve isn't too bad maybe that's the way too go.

Hum?

#16 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Thu Jan 3, 2013 9:51 PM

Just took a look at the Turbo Forth tutorial. Forth looks a lot like Java (except the RPN stuff :) )
Java was easy enough to learn.

#17 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 744 posts
  • Location:Belgium

Posted Fri Jan 4, 2013 3:19 AM

Not many fans of TI version of C which is too bad as I'm a fairly good C programmer.


The TI version of C (C99) is based on small C, and as such probably more limited than what you would want anyway. That's why I mentioned GCC, it's full C (or theoretically even C++, or any of the other languages gcc supports. Only C has been thouroughly tested on the TI though). Since you say you're a fairly good C programmer with some assembly skills, I would really suggest you go this path if you want to achieve good results quickly. Just to give you an idea, the below game that I'm working on (Alex Kidd clone for my bastardized TI + sega master system VDP) is done completely in GCC (99% C code with some inline assembly).

http://www.youtube.com/watch?v=AGOY3sjD4AM

The most difficult thing about gcc is probably setting up your toolchain, but there's a thread around here where you can find good step-by-step instructions for windows (I'm a Linux guys, so I can't help you there...), just do a search for gcc on this forum and you should be good to go. Also, try searching for Lucien's sample C applications, he's written some low level libraries to give you access to stuff like sprites and sound without having to go through assembler yourself.

Edited by TheMole, Fri Jan 4, 2013 3:21 AM.


#18 Willsy OFFLINE  

Willsy

    River Patroller

  • 3,009 posts
  • Location:Uzbekistan (no, really!)

Posted Fri Jan 4, 2013 5:48 AM

Just took a look at the Turbo Forth tutorial. Forth looks a lot like Java (except the RPN stuff Posted Image )
Java was easy enough to learn.


Forth is very simple to learn, because it has no syntax at all. Therefore there aren't many/any rules to learn - you can do what you want, how you want. If anything, the obstacle to learning Forth is the stunning simplicity of it. It takes people with previous programming experience some time to adjust to the lack of complexity. They tend to see the lack of complexity as a complexity! There's a certain amount of un-learning one has to do! You have to try it and let it get under your skin a little to know what I mean.

Don't discount C entirely; we now have GCC for the TI. As a previous poster mentioned, the only issue is that there are no support libraries; but that would be a goof project in itself - create some support libraries! From what I've seen, GCC now produces excellent assembly output, very efficient.

When I talk about the C support libraries, what I mean is, as things currently stand (AFAIK) there are no libraries for things like sprites; you'd have to do it in raw C by poking the VDP via the VDP port - it's just pointer stuff, but a useful

sprite(y,x,pattern,color);

type C function would be useful. It's just a matter of writing them.

Something like MULE might be a bridge too far for you in Forth if you are new to the language; likely you'd get frustrated before you completed it (probably the same with XB too, you'd just get frustrated, it's far too limiting IMHO). If you are interested in Forth, I personally would lower the bar for the first project(s) before diving in with a Forth version of MULE. Just my 2 cents. I'm certain Forth is up to the job though, both TI Forth and TurboForth.

Cheers

Mark

#19 Willsy OFFLINE  

Willsy

    River Patroller

  • 3,009 posts
  • Location:Uzbekistan (no, really!)

Posted Fri Jan 4, 2013 5:52 AM

...Since you say you're a fairly good C programmer with some assembly skills, I would really suggest you go this path if you want to achieve good results quickly.


I'm inclined to agree. Unless the real objective is to learn another language like Forth, where the writing of the game itself is just a means to an end, then play to your strengths and use the language that is most comfortable to you.

Until recently I'd have said "no way" to C on a TI - I did a project with C99 and it was like pulling teeth. But GCC is another matter entirely.

So, since the game is the end-goal for you, I'd say play to your strengths - do it in C. There's plenty of time to play with Forth and XB! :D

#20 lucien2 OFFLINE  

lucien2

    Moonsweeper

  • 282 posts
  • Location:Switzerland

Posted Fri Jan 4, 2013 9:26 AM

Also JonnyBritish, got a link to that game so I can check it out.


Here is the thread.
Here is the latest version.

When I talk about the C support libraries, what I mean is, as things currently stand (AFAIK) there are no libraries for things like sprites; you'd have to do it in raw C by poking the VDP via the VDP port - it's just pointer stuff, but a useful

sprite(y,x,pattern,color);


There is a library. Check here "lib.c" and "lib.h" in the NYOG'SOTHEP zip file.


I can't say what is the best language for you, but here are the main advantages for each language for me:
- Assembly: Small executable size, easy to find your code in the classic99 debugger
- Forth: Small executable size, Small source size
- GCC: Quick to code, easiest language (for me)

The main disadvantages:
- Assembly: Source code is big and hard to read
- Forth: The stack
- GCC: Big executable size, hard to find your code in the classic99 debugger

Edited by lucien2, Fri Jan 4, 2013 9:40 AM.


#21 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Fri Jan 4, 2013 10:06 AM

Well this latest info has made the decision for me; GCC.
I'm going to research the post on the subject to set it up and try it out.
I'm also going to 're-learn' myself TI assembler since C usually needs some assembler routines or two.

I will say that I was impressed with what I saw of Forth. It's very much like Java and get the idea that the people who created Java must had some Forth programmers in the fold. Since I enjoy learning new programming languages I'm going to put it in my 'todo' list.

thanks to all.
HLO

#22 Willsy OFFLINE  

Willsy

    River Patroller

  • 3,009 posts
  • Location:Uzbekistan (no, really!)

Posted Fri Jan 4, 2013 10:18 AM

Forth first the light of day in 1970, so it's not new, but I know what you mean ;)

If you do develop MULE in C for the TI, open a blog and document what you're doing. Or post here of course. The more TI exposure the better. We might attract a few others to have a go too.

Atariage has a blog facility too. I use it for TurboForth, though I need to update it. I'd be really interested to track the development of the code, one way or the other, and I'm sure a few us could chip in with suggestions and words of encouragement.

You never know, maybe I'll port the finished game to Forth to see if it can be done! (I'm sure it can). But only after I've finished Manic Miner, otherwise I'll have OX to deal with :-D

#23 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 419 posts
  • Location:Montgomery, IL

Posted Fri Jan 4, 2013 10:54 AM

Here is the thread with the Forth game in it like advance ars - http://www.atariage..../207087-coding/

#24 hloberg OFFLINE  

hloberg

    Dragonstomper

  • Topic Starter
  • 656 posts
  • Location:in the San Antonio/Austin area? drop me a line, trying to get a retro computer club together.

Posted Fri Jan 4, 2013 12:12 PM

I'm inclined to agree. Unless the real objective is to learn another language like Forth, where the writing of the game itself is just a means to an end, then play to your strengths and use the language that is most comfortable to you.

Until recently I'd have said "no way" to C on a TI - I did a project with C99 and it was like pulling teeth. But GCC is another matter entirely.

So, since the game is the end-goal for you, I'd say play to your strengths - do it in C. There's plenty of time to play with Forth and XB! :D

What do you use as an IDE for GCC? I used eclipse and some have recommended code:blocks.

#25 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 744 posts
  • Location:Belgium

Posted Sat Jan 5, 2013 4:40 AM

Full IDE integration for cross-platform development is probably not easy to achieve, seeing the relative obscurity of our platform. However, you can ofcourse any code editor that is C syntax aware, notepad++ and the likes would probably do fine. Debugging is done in the emulator of your choice (I hear MESS has good debugging facilities).





Also tagged with one or more of these keywords: PROGRAMMING, ATARI, MULE

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users