Jump to content

retroclouds

+AtariAge Subscriber
  • Content Count

    2,123
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by retroclouds


  1. Another thing that comes to mind is to dump the pattern data and map data as binary files.

    That way a game developer could write their own converter for doing what they want do for their specific need (e.g. add RLE compression, colecovision format, ...).


  2. Here is an idea for a basic exporter for assembly language. It's real simple as it doesn't invoke any RLE compression or such.

    However, the advantage would be is that the generated source is not heavily depending on specific player code.

    (You could just dump it to the VDP with VMBW for example).

     

    It means you basically just dump the data as a text file.

    EDIT: Coming to think of it, perhaps it makes sense to add an option for generating 2 files (1 with the color & pattern data and 1 for the map data).

     

    For the pattern data, I would propose to:

    1) Add possibility to automatically generate a label for each pattern

     

    For the data map, I would propose to:

     

    1) Add a label for each row (max label length; 6 characters).

    You could add some kind of autoincrement label generating thingy.

     

    2) Put 8 tiles in 1 assembly source row. That way if -in a future

    version- you have like maps with 80 columns you just add the additional

    source rows.

     

    ***************************************************************
    * Color data
    ***************************************************************
    BGCOLR  DATA 15                        ;
    COLORS  DATA >0B0D,>F000,>8060,>B0A0   ; 
           DATA >7050,>F0E0,>F0F0,>E0E0   ;
           DATA >E0F0,>F0F0,>C0A0,>7030   ; 
           DATA >0000,>0000,>0000,>0000   ;
    ***************************************************************
    * Pattern data
    ***************************************************************
    PAT1    DATA >FFFF,>FFFF,>FFFF,>FFFF   ; 
    PAT2    DATA >AF81,>0180,>1988,>85DB   ; 
    PAT3    DATA >36C0,>20A0,>9088,>00DD   ;
    PAT4    DATA >6F03,>1D20,>0101,>01DF   ; 
    PAT5    DATA >0000,>0000,>0000,>0000   ;
    PAT6    DATA >0000,>0000,>0000,>0000   ; 
    PAT7    DATA >0000,>0000,>0000,>0000   ; 
    PAT8    DATA >0000,>0000,>0000,>0000   ;
    PAT9    DATA >0000,>0000,>0000,>0000   ; 
    PAT10   DATA >021E,>7C7D,>FBFB,>F734   ; 
    PAT11   DATA >203E,>CFEF,>DF3E,>7840   ; 
    PAT12   DATA >3058,>68FE,>954A,>6438   ; 
    PAT13   DATA >0000,>0000,>0000,>0000   ; 
    PAT14   DATA >0000,>0000,>0000,>0000   ; 
    PAT15   DATA >0000,>0000,>0000,>0000   ; 
    PAT16   DATA >0000,>0000,>0000,>0000   ; 
           ....  
    ***************************************************************
    * MAP Data
    ***************************************************************
    *--------------------------------------------------------------
    * Line 0
    *--------------------------------------------------------------
    LABEL0  DATA >0203,>0000,>0000,>0203   ;  0-7 
           DATA >0000,>0000,>0000,>0000   ;  8-15
           DATA >0000,>0000,>0000,>0000   ; 16-23
           DATA >0000,>0000,>3038,>020A   ; 24-31
    *--------------------------------------------------------------
    * Line 1
    *--------------------------------------------------------------
    LABEL1  DATA >0203,>0000,>0000,>0203   ;  0-7 
           DATA >0000,>0000,>0000,>0000   ;  8-15
           DATA >0000,>0000,>0000,>0000   ; 16-23
           DATA >0000,>0000,>3038,>020A   ; 24-31
    *--------------------------------------------------------------
    * Line 2
    *--------------------------------------------------------------
    LABEL2  DATA >0000,>0000,>0000,>0000   ;  0-7
           DATA >0000,>0000,>0000,>0000   ;  8-15
           DATA >0000,>0000,>0000,>0000   ; 16-23
           DATA >0000,>0000,>0000,>0203   ; 24-31
           .....
    


  3. Thanks for the update! :thumbsup:

     

    Just gave the "character look" a try. One suggestion; would it be possible to show the character definition without having to click on the tile on the map, e.g. by just "hovering" over the map? Dunno if this might cause a performance issue.

    Also once you click, the "character look" mode ends automatically. Would be cool if it would stay in that mode until it gets explicitly turned off by the user.

     

    Anyway, these are just some suggestions. Magellan is already very intuitive and I like to play around with it.

     

    Here are some more suggestions:

    1) Would be cool if you could define "areas" in the map that serve a special purpose

    (e.g. exit for maze or stuff like that). In magellan you could then add a code + description to these areas.

    I know this would highly depend on the export format AND the game engine processing the map.

    But you could define extra data statements that contain the code + tile positions of these "areas".

     

    2) Sprites: Not really sure hiw to fit them in. But you could add a sprite layer on top of the tiles.

     

    3) Except for the format of the data it exports, Magellan is actually a TMS9918 drawing tool so it would be easy to support colecovision as well. Just an idea ;-)


  4. At this time it is not a graphics game, it has bursts of graphics but it is closer to a true text adventure (at least at the moment). This is a project I have been working on for a long time and the interest comes and goes but maybe starting a thread and sharing my work might motivate me to put some more time into actually completing it.

     

    Hi Bones-69, why not start your own thread on your adventure game here in the TI-99/4A programming subgroup ;)

    Would you might sharing some more details on the storyline and also what programming language you will be using.

    Will it require the 32K memory expansion and disk ?


  5. You can grab the module archive right here.

    The .bin files are ROM/GROM dumps that you can use in one of the popular TI emulators.

     

    If you want to run the modules on a real TI-99/4A you will need to transfer them to a disk or CF7+ disk image AND

    you will need a gram kracker or comparable device.

     

    Most of the games also exist in a "disk" version allowing them to run from 32K RAM memory expansion. These are either hacked or prototype versions. Dunno if these are available in a single collection, so you'll have to look around for those.


  6. Played around with Magellan during my lunchbreak, and it looks very promising. Well done!

     

    For Tutankham I'm thinking of doing some additional levels. Perhaps even make a little contest out of it

    where folks can submit a screen and the best ones get included. I was thinking of building a map editor myself,

    but after seeing Magellan ... :-)

     

    Here are some more ideas:

    * It would be nice if you could toggle a mode where you don't set a character tile in the map.

    Instead if you move over a grid cell it could highlight the matching character in the charset and show its pattern.

     

    * Possibility to have multiple screens in memory where you can jump from one screen into the next one.

    * Possibility to set number of columns/rows on a per screen basis.

    * Example: Screen 1 = screen of 22 rows with 60 columnsm, screen of 22 rows with 100 columns, ...

     

    * I know that adding more and more features can easily make a tool unusable for novice users, perhaps a menu

    level "novice" or "pro" could then be set for hiding the more advanced features.

    * Would be cool if you could "import" screen data into Magellan, e.g. raw VDP dump.

    Guess that the map file format is not yet finalized, would you mind sharing details how it is setup ?

    * Export functions for assembly language usage (I'd love to do something for SPECTRA)


  7. Now that I have a CF7+ coming my way, I want to know what games are available in .DSK format. Specifically which cartridge and prototype games have been converted over. I know there are a ton of homebrew games out there on disk, but for the moment I want to concentrate on offical TI cartridges and prototypes (3rd party or otherwise).

     

    Tempest

     

    hhmmm, I think all games are available in .DSK format :)


  8. Hey, I just thought of something. Maybe I could get an emulator going with a loaded ROM and "save" the program (I would imagine there would be some kind of audio output/audio file support) while "reading" it from my TI-99 ... :)

     

    I'm afraid it won't work like that. If you bought a bare TI-99/4A console it only has 256 bytes real memory.

    It does have 16K memory attached to the video processor but you can't run assembly programs there.

    The easiest way to get going is to get a CF7+ compact flash device. The CF7+ has 32K real memory and most of the game roms

    are also available in a disk version which you can store on the compact flash card.

     

    It should be possible to load the disk version of the assembly game via cassette, but you still need the 32K memory.

    There was an article about that in one of the Smart Programmer issues. Then again I don't think it's that much fun

    waiting for ages while the game loads from tape. :D


  9. Looking forward seeing how this further develops. Tried it with my company computer (which has an older java runtime) and can confirm that it doesn't work there. Will try with my home computer, I mean my PC at home :D

     

    As far as the export function is concerned; You might want to add an option for generating the DATA statement for

    inclusion in assembly language source. If this turns into a real map editor, we could perhaps work out a format for easily

    drawing the generated screens in assembly language? I would be interested in adding such routines to my SPECTRA library ;)


  10. retroclouds, that is a good list and I can get started on some of those right away. I only need to know these things:

     

    * What level of understanding should I assume the reader has?

     

    * What level of detail do I need to go down to?

    Matthew

     

    * What level of understanding should I assume the reader has?

    I'd say the reader should already have some assembly language experience on other retro console/computer systems.

     

    * What level of detail do I need to go down to?

    Tough question. Perhaps it would be good to release intermediate versions of the articles and get feedback from the audience.

    That way you'd get a feeling where the attention needs to go to.

     

    Good luck! :)


  11. The problem I started running in to with my book was that when explaining one topic, I realized I needed to provide the background for something I was talking about. It is really hard to do if you assume your reader has little to no understanding or experience with low level languages.

     

    Agree, that is why I was thinking of a tutorial for homebrewers who already have programmed assembly language on other retro systems. ;)


  12. Updated the resources:

     

    TECH MANUALS

    1. Assembly Language

    - Added reference to COMPUTE'S Beginner's Guide to Assembly Language on the TI-99/4A

     

    2. Basic / Extended Basic

    - Added reference to COMPUTE!'s Programmer's Reference Guide to the TI-99/4A

    - Added reference to COMPUTE!'s TI Collection volume one


  13. Excellent work! I will add a reference in the development resources thread. :)

     

    I'd really love to see a PDF scan for Compute's Beginners guide to assembly language on the TI-99/4A.

     

    The hard-copy of the book is pretty hard to get by now and there are close to none good beginner tutorials on TMS9900 assembly language available.

     

    Although I'm not so impressed with the book now, it is the book that opened the door of 9900 assembly to me and made it possible for me to make working programs; so for that I will always give it due credit (and I will not give up the copy I have had since 1984.)

     

    As for beginner tutorials, I am willing to write some (I have already started, although it is panning out to be more of a book than individual tutorials.) However, instead of trying to guess what to write, if anyone has something they would like to see in the way of a tutorial, please post it here and I (or anyone else who is interested) will try to write it up. If you plan on making a request, please be somewhat specific, since "how do I write a game in 9900 assembly" is not a tutorial.

     

    Matthew

     

    Well reading your posts about the assembly language sound player, I'd say you have a clear, precise and interesting way to describe stuff.

    I'd love to see you write a full tutorial (book) on "how do I write a game in 9900 assembly" :D

     

    Seriously, something in the line of the Lottrup book, but updated and addressing todays' needs.

    I don't think we have homebrewers who want to code using the mini memory line-by-line assembler ;)

     

    Perhaps a tutorial focusing on coders from other retro gaming platforms (atari 2600, 7800, colecovision, ...) who

    already know how to program assembler.

     

    Here are some of the topics I can think about (in no particular order)

     

    1. Short introduction on TMS9900 CPU (register usage, TI memory architecture) and cross-assemblers targeting the TMS9900.

    2. How do I communicate with the VDP processor (VDP memory, graphic modes, SAT, color tables, pattern tables, ...)

    3. How to setup sprites in assembly language, how to move them without using ISR routine.

    4. Collision detection for sprites without using ISR routine.

    5. How do I play a sound or tune.

    6. How do I read the keyboard and joysticks

    7. How to use the speech synthesizer in assembler

    8. How to deal with 256 bytes of scratch pad memory

    9. How to setup a game loop (or basic task scheduler)

    10. Format of the cartridge header

    11. What is bank-switching, how do I use it (trampoline code in scratchpad, jump tables in each bank, ...)

    12. Debugging tricks, how to test using MESS debugger and classic99 debugger.

    How to test on the TI-99/4A using a 8K supercart.

     

    It would be great that, after reading the book, the future homebrewer has a good overview on how to write a (bank-switched) game running from the cartridge space :)


  14. I found a PDF of Compute!'s Beginner's Guide to Assembly Language a while back after trying to buy a copy for ages. Not sure where I found it but I don't remember it being easy and unfortunately it is not text-searchable. Anyway, I've uploaded it to Scribd at the link below.

     

    COMPUTE!'s Beginner's Guide to Assembly Language on the TI-99/4a

     

    Thanks for putting this online!

     

    This is the only book I'm aware of that specifically addresses TMS9900 assembly language for writing games.

    It covers the Mini Memory line-by-line assembler, which I personally wouldn't use when writing arcade games for the TI ;)

    Nonetheless, the book does cover the basics on Sprites, Sound, TI graphic modes.

×
×
  • Create New...