+adamantyr Posted February 6, 2010 Share Posted February 6, 2010 (Copied and reposted from Homebrew Discussions, now that we have a 99'ers board on Atari Age) Greetings all. I decided I should make a semi-permanent topic about my ongoing project. Some lengthy background... While finishing my C.S. degree in college, I was overwhelmed with a desire to dig out my old computer from the basement and fire it up again. The old hardware actually still worked, although I had to get the keyboard replaced. The old membrane-driven keyboards decay over time. The mechanical in there now that should outlast the silicon. After playing around with it for awhile, and finding some great resources on the web I completely lacked in the old days, I decided I wanted to do some vintage assembly projects. Why? Well, I blame the fact I hadn't programmed in ten years, and that hobby-wise, I was still back there, a 13-17 year old, desiring to write a game but lacking the skills, patience, and knowledge to do so. My first project was to convert a game written in BASIC to pure assembly. I learned a lot about the process by doing so, and I was amazed that the complete assembly program was only about 5k, roughly half the size of the BASIC listing. And WAY faster. My second project, which is incomplete, was to covert the famous "Eastern Front: 1941" game for the Atari 8-bit home computers to my TI. I got the bemused permission from Chris Crawford himself to do so. (He remarked that the project was rather quixotic.) I had a complete listing of the program in 6502 assembly, with a few comments thrown in. I got a decent amount of the way into it before stopping. Part of the problem was it just wasn't that fun converting someone else's work. The other was trying to understand how the A.I. worked was maddening from the assembly perspective... and I realized I could never be certain I had captured the original game play or not. I may go back and finish this one later. Having decided to set out on my own original project instead, it was a quick decision as to what I wanted to make: a disk-based CRPG. The TI-99/4a lacked a great deal of the more sophisticated software of other computers of its time, because very few 99'ers owned disk systems when it was still actively supported. Complicating matters was the unique assembly language it had. Unlike the Apple, Commodore, and Atari systems which all had 6502 chips, porting programs was much more difficult. So all of the CRPG greats like Wizardry, Ultima, Might & Magic, were nowhere to be found on the TI... it had a very good dungeon crawler called Tunnels of Doom, but that was it. A later developer created a decent clone of Phantasie called Legends, but it ran in Extended BASIC and was rather small-scale, about comparable to Ultima I in scope and complexity. Anyway, it's been five years since I started... the project's been interrupted by job hunting, loss of interest, emulator problems, design issues, and so forth. I'm fired back up recently thanks to a brisk emulation development curve, but work slowed me down a bit... I'm presently working on the combat engine controls, a terrible task I've put off for far too long. Feel free to read up on my efforts, and offer your comments and criticisms. (The two I usually hear are "why in assembly?" and "why waste time on a vintage system?") Preliminary title screen First project: TI Trek Second project: Eastern Front 1941 CRPG Page (updated seldomly) Ongoing Development Blog Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/ Share on other sites More sharing options...
Opry99er Posted February 6, 2010 Share Posted February 6, 2010 Glad you're here. . I hope we can be of some service to you and I have to say that your title screen looks lovely!!! Check out my "Legend of Beryl Reichardt" thread.... I'm nowhere near as far along as you are, but I think we are running on similar tracks here. I am creating an XB/AL hybrid RPG, "disk based", and intend for the scope of it to be fairly large. With Classic99 as my emulator of choice, the sky's the limit on what can be accomplished. As long as it can reside in 360k of space, all is well. The majority of the memory-hogging stuff will be in assembly, and disk access will be widely used. Please keep us posted on your progress... I will certainly be monitoring your posts, and I am certainly glad to see you posting here! Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936087 Share on other sites More sharing options...
The Codex Posted February 6, 2010 Share Posted February 6, 2010 Woot, welcome to the TI space, man! Been following your blog regularly and the game remains a fascinating project. Hurrah for TI RPGs! Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936090 Share on other sites More sharing options...
+retroclouds Posted February 6, 2010 Share Posted February 6, 2010 Feel free to read up on my efforts, and offer your comments and criticisms. (The two I usually hear are "why in assembly?" and "why waste time on a vintage system?") Because programming TMS9900 assembly language is sexy and I rather waste my time on a vintage system as hanging in front of the TV all evening Welcome! I've been reading your blog for a while now and find it very interesting. Looking forward seeing how your CRPG develops Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936102 Share on other sites More sharing options...
+adamantyr Posted February 6, 2010 Author Share Posted February 6, 2010 Also, I recently moved my blog to Wordpress, after Blogspot decided not to support FTP publishing anymore. Like I'd trust Google's servers now... the reason they got hacked was they didn't bother to upgrade past IE6 and an older version of Adobe on their servers. And the hackers KNEW it and wrote a zero-day hack to deliberately target them. The target controls are going to be really a bother to code and debug. I think I'm in the home stretch; I just need to do the actual controls for moving the cursor about or scrolling a menu. As a bonus, I get the item/spell handling for travel for free, since it and combat use the same system. Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936114 Share on other sites More sharing options...
InfernalKeith Posted February 6, 2010 Share Posted February 6, 2010 Also, I recently moved my blog to Wordpress, after Blogspot decided not to support FTP publishing anymore. Like I'd trust Google's servers now... the reason they got hacked was they didn't bother to upgrade past IE6 and an older version of Adobe on their servers. And the hackers KNEW it and wrote a zero-day hack to deliberately target them. The target controls are going to be really a bother to code and debug. I think I'm in the home stretch; I just need to do the actual controls for moving the cursor about or scrolling a menu. As a bonus, I get the item/spell handling for travel for free, since it and combat use the same system. Adamantyr Adam, Very happy to see you surface here! I've had your blog bookmarked since well before I started my own programming 'rebirth,' and I check it regularly for updates. I hope this forum inspires you; it definitely seems to have kicked off a little bit of a frenzy of activity. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936177 Share on other sites More sharing options...
Opry99er Posted February 6, 2010 Share Posted February 6, 2010 Any chance we can see some in-game screen shots, or is this an "under-wraps" project? Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936238 Share on other sites More sharing options...
+adamantyr Posted February 7, 2010 Author Share Posted February 7, 2010 Any chance we can see some in-game screen shots, or is this an "under-wraps" project? I have some on my blog site. Whenever I hit an "interesting" update stage where there's something visual to share I'll put it up. Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1936328 Share on other sites More sharing options...
matthew180 Posted February 11, 2010 Share Posted February 11, 2010 Feel free to read up on my efforts, and offer your comments and criticisms. (The two I usually hear are "why in assembly?" and "why waste time on a vintage system?") Because programming TMS9900 assembly language is sexy and I rather waste my time on a vintage system as hanging in front of the TV all evening Welcome! I've been reading your blog for a while now and find it very interesting. Looking forward seeing how your CRPG develops I second retroclouds' comments. Anyone who asks "why assembly" really has no clue, which is also probably why they ask the second question. I have also been watching your project since you started it, and I read the pages you set up a few times a year. The review of CRPG's you did is awesome, and I like reading about your progress. Personally I like your original page better than the blog format you moved to, but I also like Wordpress so I'll have to go check out the changes. Keep up the good work! Can't wait to play the game. Matthew Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1939169 Share on other sites More sharing options...
+adamantyr Posted February 11, 2010 Author Share Posted February 11, 2010 I have also been watching your project since you started it, and I read the pages you set up a few times a year. The review of CRPG's you did is awesome, and I like reading about your progress. Personally I like your original page better than the blog format you moved to, but I also like Wordpress so I'll have to go check out the changes. Yeah, I wasn't happy to switch blog sites, but Blogspot left me little choice. Their servers or the highway. I chose the highway. Wordpress does have decent tools, and the spam filter's already proven itself. My only complaint is their "themes" are not edit-friendly; despite changing background or font for the entry of a given tag, NO change on the blog appeared. My original site is nice, I would like to write more articles to put up on it. However, it's not a blog, and a blog structure works better. I'm not particularly keen on investigating writing my own blog software; it's a bit of time and expense, and why reinvent the wheel? I figure when I hit a major milestone I'll put up a new article... preferably about the combat engine. Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1939584 Share on other sites More sharing options...
Opry99er Posted February 11, 2010 Share Posted February 11, 2010 Ooooh.... Combat engines... . Can't wait to read up on that.... It's really the logic that gets me hung up there... Deciphering how to randomize all the different variables into tiny windows of acceptable output.... I'm working on it though. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1939586 Share on other sites More sharing options...
+adamantyr Posted February 25, 2010 Author Share Posted February 25, 2010 Ooooh.... Combat engines... . Can't wait to read up on that.... It's really the logic that gets me hung up there... Deciphering how to randomize all the different variables into tiny windows of acceptable output.... I'm working on it though. Yeah, combat engines are TOUGH. I've ran the gambit from rough clone of other CRPG's like Avernum to actually crafting my own system from absolute scratch. Mainly because the complexities of assembly language dictated it be so. With such a small memory space, you need to prioritize what you really want. Complicated simulationist mechanics like a lot of tabletop RPG's have is just not worth the hassle. I've got the combat controls done, now it's translating those orders into on-screen action. I'm having to step back and do a little re-design here and there; I hadn't had all the mechanics fully worked out. It will be awhile before I have a full "playable" combat engine. Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1950418 Share on other sites More sharing options...
Opry99er Posted February 25, 2010 Share Posted February 25, 2010 Well, I look forward to watching your progress and learning what I can from it. . Thanks for your suggestions for my game as well. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1950429 Share on other sites More sharing options...
matthew180 Posted February 25, 2010 Share Posted February 25, 2010 Adamantyr, can you describe briefly what some of the complexities are? I'm assuming the combat will be turn based, and in that I'm not understanding where all the complexity comes from. Of course I've never written such a thing, so it could just be that the problem does not look hard until you try to solve it. Matthew Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1950438 Share on other sites More sharing options...
+adamantyr Posted February 25, 2010 Author Share Posted February 25, 2010 (edited) Adamantyr, can you describe briefly what some of the complexities are? I'm assuming the combat will be turn based, and in that I'm not understanding where all the complexity comes from. Of course I've never written such a thing, so it could just be that the problem does not look hard until you try to solve it. Well, if you look at a lot of old CRPG's from the late 70's/early 80's, many of them are basically just a clone of the Dungeons & Dragons rules systems. For example, nearly every one has ability scores for strength, dexterity, etc. I think a lot of old game designers not only didn't know how to really craft their own systems, they also were afraid if they deviated too much, people would say "that's not an RPG!" and not play it. Early marketing woes, I suppose. So, when I first sat down and sketched out a character system, I had something pretty advanced with ability scores, a complex skill system, and no real classes beyond what was defined in the mechanics. The problems became apparent, when I actually started looking at the code. Combat resolution in almost all CRPG's always boils down to two numbers; an attacker and a defender score. If one is greater than the other, an attack either succeeds or fails. So let's look at a system example: We have a system multiple ability scores like Strength (STR) and Dexterity (DEX). So, let's say you have a melee attack. You decide it's Strength + half the Dexterity score + character level + a class bonus for the attempted hit. In BASIC, this would be calculated like this: HIT = INT(STR + LVL + CLASS_BONUS + (DEX/2)) In assembly, though, things get much more complicated: MOV @STR,R0 A @LVL,R0 A @CBS,R0 MOV @DEX,R1 SLA R1,1 A R1,R0 MOV R0,@HIT Consider that for a single attack type, I just spent about 10 bytes in memory variables and 24 bytes in opcodes. Doesn't seem so bad, right? Wait a moment... how are those memory variables getting filled? Let's say I got all my player data stored in an array that's 80 bytes with static positions: * Level - Offset 2 (byte) * Strength - Offset 6 (byte) * Deterity - Offset 7 (byte) * Class bonus (melee) - Offset 20 (byte) * W80 - Data word, value 80 MOV @PACTIVE,R0 MPY @W80, R0 MOVB @CHRDAT+2(R1),R0 SRL R0,8 MOV R0,@LVL MOVB @CHRDAT+6(R1),R0 SRL R0,8 MOV R0,@STR MOVB @CHRDAT+7(R1),R0 SRL R0,8 MOV R0,@DEX MOVB @CHRDAT+20(R1),R0 SRL R0,8 MOV R0,@CBS Well, that's looking a little more involved. Of course, this is a pretty linear and inefficient way to read static data in. I could make the process simpler by doing it like this: MELEEH DATA 4,2,6,7,20 ... MOV @PACTIVE,R0 MPY @W80, R0 MOV @MELEEH,R3 LI R4,MELEEH+2 CLR R0 MLOOP MOV *R4+,R2 LI R5,CHRDAT A R2,R5 MOVB *R5,R6 SRL R6,8 A R6,R0 DEC R3 JNE MLOOP MOV R0,@HIT This method is data-driven, and while not as easy to read, is better structured for the computer. Ideally, values that have synergistic qualities should be kept close together or in an order that makes sense for the computer, NOT the user. Except... I didn't get my dexterity divided it half! Argh! Now I ask myself, is it REALLY worth the trouble to create this system? Or maybe find something that's more agreeable to the language and platform? More to come... Adamantyr Edited February 25, 2010 by adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1950509 Share on other sites More sharing options...
Opry99er Posted February 25, 2010 Share Posted February 25, 2010 That's pretty in-depth stuff man! . Can't wait to read more. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1950558 Share on other sites More sharing options...
+adamantyr Posted March 3, 2010 Author Share Posted March 3, 2010 I've put up a video recorded in Classic99 on my blog. However, I've had at least one complaint that nothing could be seen. Is anyone else having difficulty viewing it? It's at http://www.adamantyr.com/blog Thanks, Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955041 Share on other sites More sharing options...
InfernalKeith Posted March 3, 2010 Share Posted March 3, 2010 I've put up a video recorded in Classic99 on my blog. However, I've had at least one complaint that nothing could be seen. Is anyone else having difficulty viewing it? It's at http://www.adamantyr.com/blog Thanks, Adamantyr Not working for me. I'm seeing the same little 'lightshow' I see when I play a CD through Windows Media Player. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955051 Share on other sites More sharing options...
Opry99er Posted March 3, 2010 Share Posted March 3, 2010 Oh hell yes, man!!! I love it!!! You know what you should do? Upload that sucker to youtube and post it here. You can post it right to this forum. I really like the user interface... It's very involved, but simple at the same time. Eric Seablade looks like a bad MoFo. =) Great stuff, keep up the great work! Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955055 Share on other sites More sharing options...
Opry99er Posted March 3, 2010 Share Posted March 3, 2010 (edited) I just subscribed to your blog... now I won't miss an entry. =) BTW, is there a way to see all subscribers? I'm new to this blog thing, and if I wanted to view who's watching the feed for my blog, how would I do that? Edited March 3, 2010 by Opry99er Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955058 Share on other sites More sharing options...
The Codex Posted March 3, 2010 Share Posted March 3, 2010 Video's not working here either, Adamantyr. It's all black, sorry. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955069 Share on other sites More sharing options...
Opry99er Posted March 3, 2010 Share Posted March 3, 2010 Adamantyr--- I read in your blog that you use Excel spreadsheets for your array maintenance... I've just started working on my array variables and was wondering if there was a better way to maintain them other that notepad... Thanks for the tip. Also, would you care to attach a small example of your spreadsheet to the list here? Seeing how you handle that stuff would be a great help to me. . If you'd rather not, I totally understand. Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955075 Share on other sites More sharing options...
Christophero Sly Posted March 3, 2010 Share Posted March 3, 2010 The video only gives me about 5 secs. of this: Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955106 Share on other sites More sharing options...
+adamantyr Posted March 3, 2010 Author Share Posted March 3, 2010 (edited) The video only gives me about 5 secs. of this: If you're using Firefox, be sure to download the Firefox Windows Media Player plug-in. Meanwhile, you can download the video directly from here: http://www.adamantyr.com/video/Combat1.avi If the raw file doesn't work, then it's probably some codec issue or something. I recorded it through Classic99, then used AVS4You's Video editor to convert it to MPG4 format. Adamantyr Edited March 3, 2010 by adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955163 Share on other sites More sharing options...
+adamantyr Posted March 3, 2010 Author Share Posted March 3, 2010 Adamantyr--- I read in your blog that you use Excel spreadsheets for your array maintenance... I've just started working on my array variables and was wondering if there was a better way to maintain them other that notepad... Thanks for the tip. Also, would you care to attach a small example of your spreadsheet to the list here? Seeing how you handle that stuff would be a great help to me. . If you'd rather not, I totally understand. Well, Excel files are hard to share out. Like any Office file, they can have macros embedded in them that could be a security hazard. And any screen shot or truncated file I attach has to be stored somewhere on the web; it won't let me directly embed them. Basically, I use a spreadsheet to space out the individual bits/bytes with a numeric index. Then I can use comments and a text line underneath it to indicate blocks of array data. I also use a sheet to track what's going on in VDP memory. I make use of the DEC2HEX function in Excel to calculate the hexidecimal values for easier tracking purposes. In the pre-2007 versions of Office, you may need to activate the scientific module to have access to them. Typically, I'll have a few worksheets to store raw data, then I'll have a sheet that compiles it into a series of hex strings. I can then use Hex Workshop (a very useful stand-alone hex editor) to directly insert the data into pre-existing files. I don't use this technique for everything... creating maps, for example, I went to the trouble to write an editor for. Not much fun drawing landscapes abstractly. Adamantyr Quote Link to comment https://forums.atariage.com/topic/157742-ti-994a-disk-based-crpg/#findComment-1955239 Share on other sites More sharing options...
Recommended Posts
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.