Asmusr Posted August 23, 2013 Share Posted August 23, 2013 I'm would like to make a (virtual, for now) cartridge version of Titanium, so I need to change the data files into GROMs. Are GROM files used by emulators just raw binary files or is there a specific file format? Thanks, Rasmus. 1 Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/ Share on other sites More sharing options...
RXB Posted August 23, 2013 Share Posted August 23, 2013 (edited) This is a peice of cake to pull off. 1. Make a copy of the memory of the game in the TI memory. 2. Put a copy in the GROM after a GROM header for a Cartridge. 3. The Header points to the first program line that sets up the environment for the computer say like EA Cartridge. 4. After the set up use the GPL MOVE command to move the GPL GROM copy of your game into the TI memory locations. 5. Use the GPL XML command (eXecute Machine Language) to start the Assembly Program now in memory. Using this method the game should be up and running about 1 second after they select the game from the TI Main menu. My GPL demos GPLHOW2A to GPLHOW2K pretty much explain how this works so use GPL HOW 2 SERIES http://atariage.com/...ment-resources/ This is the first demo I did on GPL HOW 2 http://www.youtube.com/watch?v=Cs4D_Gn0Le8&list=TLoBpitlpLjyY Edited August 23, 2013 by RXB Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816537 Share on other sites More sharing options...
Retrospect Posted August 24, 2013 Share Posted August 24, 2013 (edited) The file extension .BIN is used by Classic99 at the very least. Within Classic99, I would place the .BIN file into my MODS folder, then goto the CARTRIDGE tab and then USER / OPEN and select the .BIN file from there to autoload the cartridge image. The RPK files in MESS format are usable by Classic too, we just unzip the RPK using a decent zipper, and we can get to .BIN files from within them. To make a MESS cartridge, we would have to have the .BIN file(s) in a folder with an XML file for MESS with information on it (cart name, etc etc, see any XML layout file within any RPK file to get the structure of it) The MESS RPK folder would then need to be compressed with the RPK format extension, "yourgame.RPK" As for WIN994a, I have no idea whatsoever of how to make a cart image for that .... but I bet other people on here do know. Edited August 24, 2013 by Retrospect Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816610 Share on other sites More sharing options...
Asmusr Posted August 24, 2013 Author Share Posted August 24, 2013 I have 4 x 4K map level files in Titanium. If I concatenate them into a 16K file, call the file titaniumg.bin, and place a line in classic99.ini: rom1=G|6000|4000|mods\titaniumg.bin Is that sufficient to 'mount' the file as GROMs? Will they be mounted as 2 x 8K or 3 x 6K GROMs? As you can probably tell I have no experience with GROMs whatsoever. Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816748 Share on other sites More sharing options...
Tursi Posted August 24, 2013 Share Posted August 24, 2013 I have a Windows tool that will convert an EA#5 program into a properly formatted GROM cartridge: http://harmlesslion.com/software/makecart GROMs are memory devices, and to be recognized as a cartridge, you need a small header on it. Your game runs in CPU space, so has to be copied from GROM to RAM to run, which means you need a small GPL program to do the copy. My tool automates all that. Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816761 Share on other sites More sharing options...
RXB Posted August 24, 2013 Share Posted August 24, 2013 I have a Windows tool that will convert an EA#5 program into a properly formatted GROM cartridge: http://harmlesslion....ftware/makecart GROMs are memory devices, and to be recognized as a cartridge, you need a small header on it. Your game runs in CPU space, so has to be copied from GROM to RAM to run, which means you need a small GPL program to do the copy. My tool automates all that. From what I read of your program it will not work as he needs 16K and as I understand it your program only does 8K? So he would need another bank of 8K GRAM for the 16K of his program? Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816779 Share on other sites More sharing options...
Asmusr Posted August 24, 2013 Author Share Posted August 24, 2013 I have a Windows tool that will convert an EA#5 program into a properly formatted GROM cartridge: http://harmlesslion....ftware/makecart GROMs are memory devices, and to be recognized as a cartridge, you need a small header on it. Your game runs in CPU space, so has to be copied from GROM to RAM to run, which means you need a small GPL program to do the copy. My tool automates all that. Thanks Tursi, I have tried your tool and it worked fine after disabling the boot tracking in my program, but it still needs a companion disk with the map, music and sprite files. My plan for the cartridge was to run the main program from ROM but put the data files into GROMs (of which I understand you can have 40K). When I need a map file I will then copy the relevant part of the GROM into CPU RAM. Will I still need GPL for that? Will that be compatible with the new 512K card? Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816813 Share on other sites More sharing options...
+acadiel Posted August 24, 2013 Share Posted August 24, 2013 Or you can also just copy it from ROM to 32K like Tursi and I did with Arcturus, DM2K, Never-Lander, etc and then branch and execute. Will work with a bank switched ROM cart that way. Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2816963 Share on other sites More sharing options...
Tursi Posted August 24, 2013 Share Posted August 24, 2013 (edited) From what I read of your program it will not work as he needs 16K and as I understand it your program only does 8K? So he would need another bank of 8K GRAM for the 16K of his program? Edited August 24, 2013 by Tursi Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817068 Share on other sites More sharing options...
Tursi Posted August 24, 2013 Share Posted August 24, 2013 From what I read of your program it will not work as he needs 16K and as I understand it your program only does 8K?So he would need another bank of 8K GRAM for the 16K of his program? My program will do up to 32k (since you can't load a PROGRAM image file larger than that). It recognizes all blocks of the memory expansion and also handles 6k GROM boundaries if you choose it to. It can also pre-load the character set and include the Editor/Assembler utilities if your program needs them. Thanks Tursi, I have tried your tool and it worked fine after disabling the boot tracking in my program, but it still needs a companion disk with the map, music and sprite files. My plan for the cartridge was to run the main program from ROM but put the data files into GROMs (of which I understand you can have 40K). When I need a map file I will then copy the relevant part of the GROM into CPU RAM. Will I still need GPL for that? Will that be compatible with the new 512K card? Ah yes... does it load any data at runtime, or only at boot? You can tell Classic99 to save a PROGRAM image file for you containing all the data you use pre-loaded -- it will even save the VDP part (although your code would then need to load it). There's no automated way today to make software that loads files from disk suddenly load from cartridge.Jon's suggestion of using a bank-switched ROM instead of GROM would actually let you get to cartridge faster right now, you would just need to write the code to load. But, you can also write it to copy from GROM, either way works. If you are already running assembly, then no, you don't need GPL.I don't know anything about the new 512k card, but if it affects cartridges it isn't going to be very popular. So I would expect not! (Can't seem to post properly at all from IE, even after wiping cache. Lovely.) Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817074 Share on other sites More sharing options...
Asmusr Posted August 25, 2013 Author Share Posted August 25, 2013 Will work with a bank switched ROM cart that way. Thanks. I don't suppose there is a stash of your 64K cartridge boards hidden somewhere? Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817453 Share on other sites More sharing options...
Asmusr Posted August 25, 2013 Author Share Posted August 25, 2013 Ah yes... does it load any data at runtime, or only at boot? You can tell Classic99 to save a PROGRAM image file for you containing all the data you use pre-loaded -- it will even save the VDP part (although your code would then need to load it). There's no automated way today to make software that loads files from disk suddenly load from cartridge. Yes it loads data both when it returns to the start screen and also between levels. Jon's suggestion of using a bank-switched ROM instead of GROM would actually let you get to cartridge faster right now, you would just need to write the code to load. I don't know how to program for ROM bank switching. Where can I read about it? I don't know anything about the new 512k card, but if it affects cartridges it isn't going to be very popular. So I would expect not! I guess I wasn't clear. I was referring to your new cartridge board project, the one with the GROM emulation. :-) Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817465 Share on other sites More sharing options...
Asmusr Posted August 25, 2013 Author Share Posted August 25, 2013 I don't know how to program for ROM bank switching. Where can I read about it? Found the attached. I guess this is what I need? ROM Command Module 2.0.pdf 2 Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817485 Share on other sites More sharing options...
+OLD CS1 Posted August 25, 2013 Share Posted August 25, 2013 Found the attached. I guess this is what I need? From the PDF: "DEVELOPERS ROM MODULE" I am intrigued... Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817637 Share on other sites More sharing options...
Tursi Posted August 26, 2013 Share Posted August 26, 2013 Yes it loads data both when it returns to the start screen and also between levels. Ah, okay, so you definitely need more than a loader, you need storage as well. I don't know how to program for ROM bank switching. Where can I read about it? Um.. there's a little bit here: http://atariage.com/forums/topic/185680-walking-through-bank-switching/?hl=bank+switching&do=findComment&comment=2341583 The basic concept is that you write to a ROM address to change the address lines, and thus switch which bank you're reading from. In this design the data is ignored, and the least significant address lines are latched for the new 'page'. I guess I wasn't clear. I was referring to your new cartridge board project, the one with the GROM emulation. :-) Oh, yeah.. nothing fancy there when used as a memory device. You can use the ROM or the GROM. The ROM is cheaper, mind you, the GROM chip is around $15, last time I looked. But I was thinking of demonstrating stripped down cheaper versions.. any AVR with enough I/O pins will work, it doesn't have to be the monster we laid out for this board So far as headers go.. there is that old book, but Theirry Nouspikel's page describes it quite nicely as well, including limitations: http://nouspikel.group.shef.ac.uk/ti99/headers.htm Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817714 Share on other sites More sharing options...
+retroclouds Posted August 26, 2013 Share Posted August 26, 2013 (edited) Found the attached. I guess this is what I need? I have a tutorial on how I implemented bank-switching in Pitfall. It is in the Development Resources Thread, section 6 "Tutorials -> Building a multi-bank ROM image". Quite sure there are easier ways, but it did the trick for me and allowed me to have different code at the same memory address. Vector (jump) tables may also work for you. Edited August 26, 2013 by retroclouds 1 Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817799 Share on other sites More sharing options...
Asmusr Posted August 26, 2013 Author Share Posted August 26, 2013 I have a tutorial on how I implemented bank-switching in Pitfall. It is in the Development Resources Thread, section 6 "Tutorials -> Building a multi-bank ROM image" Thank you. I don't know how I could have missed it. Edit: Very impressive. I didn't realize how difficult it must have been until a read your paper. But Pitfall was designed to work on an unexpanded console. It must be possible to cut a lot of corners if you can copy into 32K RAM. Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2817987 Share on other sites More sharing options...
Willsy Posted August 26, 2013 Share Posted August 26, 2013 Rich - what GPL assembler do you use? Do you use the Funnelweb environment as your development environment (programmers editor) worth something like RAG GPL assembler holed up to the Fweb menus? Any chance you could hook me up with copied of your assembler and linker (or the whole Fweb disk if that's what you're using. Mark Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818179 Share on other sites More sharing options...
RXB Posted August 26, 2013 Share Posted August 26, 2013 Rich - what GPL assembler do you use? Do you use the Funnelweb environment as your development environment (programmers editor) worth something like RAG GPL assembler holed up to the Fweb menus? Any chance you could hook me up with copied of your assembler and linker (or the whole Fweb disk if that's what you're using. Mark I use the Ryte Data GPL Assembler and not anything else. I tried all of the others but the RAG and Ryte Data GPL Assembler seem to be the ones I favor the most. (Ryte Data GPL Assembler is the only Endless pass Assembler in the TI99/4A) I use Note Pad and Classic99 paste into EA Editor or sometimes Ti99Dir to convert Note Pad to TI Files. Now when I was on my TI I used FW but my 80 column TIM card died so moved to PC99 and did that for a year. So here is everything I used to use in FW 40 column on PC99. This copy is from Classic99 but runs from RXB LOAD program. Rich GPLRICH.zip Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818213 Share on other sites More sharing options...
RXB Posted August 26, 2013 Share Posted August 26, 2013 Rich - what GPL assembler do you use? Do you use the Funnelweb environment as your development environment (programmers editor) worth something like RAG GPL assembler holed up to the Fweb menus? Any chance you could hook me up with copied of your assembler and linker (or the whole Fweb disk if that's what you're using. Mark I forgot the linker but it is in this GPLHOW2 and you can put it on the other disk. GPLHOW2A.zip Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818222 Share on other sites More sharing options...
Willsy Posted August 27, 2013 Share Posted August 27, 2013 Hi Rich, thanks for the files! And apologies (to all) for the terrible spelling in my earlier post - bloody predictive text on mobiles SUCKS! Rich, I noticed that on the first disk there is the following three files: ASSM1 (9K) ASSM2 (1K) ASSM3 (1K) And the same three files on the second zip that you posted, but the file sizes are different? Is the first disk a 9900 assembler (for FWEB) and the second one is a GPL assembler? I need to try to remember how to configure the FWEB menus so that I can put the 9900 assembler, GPL assembler, and GPL linker onto menu entries. If anyone can remember how in hell to load the menu configuration program, please post!! Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818424 Share on other sites More sharing options...
Willsy Posted August 27, 2013 Share Posted August 27, 2013 Rich, Aha! Just read the README file in the second zip, so things make more sense now. I plan to change the filenames of ASSM1 ASSM2 and ASSM3 on the second ZIP file that you posted, since they are the GPL assembler files. I'll call them GASSM1 GASSM2 and GASSM3 and put them on the FWEB disk, with the linker. Am I correct in thinking that I only need to run the LINK (linker) program if I want to convert the GPL program into something that can be loaded via Editor/Assembler? Let's assume that I don't want to do that for the moment. Let's assume I just want the 'normal' output from the assembler (the GPL object file). I assume I can this file in (for example) Classic99 to build a Classic99 cartridge with? In other words, I just make the appropriate entry in Classic99.ini and point it at the object files (which I will copy over to classic99/mods). Am I on the right track? I'm interested in exploring GPL in it's native environment - i.e. running out of a cartridge, more than simulating it via a E/A5 program, as, if I do use GPL, it'll be used in real cartridge. That leaves GPL manuals. What do you recommend to learn the GPL instruction set? I have a book somewhere from TI (very late 70's I think) called something like TI Home Computer GPL Specification, and it details all the GPL instructions. Is that a good place to start? I don't know of any GPL articles/columns in publications such as Micropendium/Smart Programmer. Are there any? Mark Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818425 Share on other sites More sharing options...
+Lee Stewart Posted August 27, 2013 Share Posted August 27, 2013 ... That leaves GPL manuals. What do you recommend to learn the GPL instruction set? I have a book somewhere from TI (very late 70's I think) called something like TI Home Computer GPL Specification, and it details all the GPL instructions. Is that a good place to start? I don't know of any GPL articles/columns in publications such as Micropendium/Smart Programmer. Are there any? ... There's Heiner Martin's TI99/4A Intern. It has a chapter on all of the GPL commands as well as commented dumps of console GROM0 and ROM (which includes the GPL interpreter so you can see exactly how the GPL commands work). ...lee 1 Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818473 Share on other sites More sharing options...
Willsy Posted August 27, 2013 Share Posted August 27, 2013 Good call, Lee. I think I have that doc here in the office. I'll dig it out! Of course, I'll wrap it up in something like "Hydrualic Valve Statistical Failure Analysis Data - 1981 - 2001" or something equally boring 1 Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818496 Share on other sites More sharing options...
lucien2 Posted August 27, 2013 Share Posted August 27, 2013 (edited) What do you recommend to learn the GPL instruction set? I added bookmarks to the GPL Manual PDF. As always, there's some good docs in Nouspikel's site: http://nouspikel.group.shef.ac.uk//ti99/gpl.htm, http://nouspikel.group.shef.ac.uk//ti99/gpl2.htm. Edited August 27, 2013 by lucien2 Quote Link to comment https://forums.atariage.com/topic/215926-grom-files/#findComment-2818808 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.