+Ksarul Posted February 28, 2016 Share Posted February 28, 2016 I'll burn this to an EPROM later today and let the boys play with it. I have an experimental board that forces >6000 as the start point, so this makes a good test case for it. Link to comment Share on other sites More sharing options...
Tursi Posted February 28, 2016 Share Posted February 28, 2016 For the menu I have used a modified version Tursi's Multimenu where I have changed the graphics and reversed the order of searching to fit a non-inverted cart. Why did you have to change the search order? I expected it should work regardless (the order of the listing would vary, but otherwise it should have been fine?) Just curious if I missed something. I have a GPL stub that I have offered up in other threads that starts the Multicart menu from GPL so that it always has the right bank selected, I need to get around to publishing that. Link to comment Share on other sites More sharing options...
Omega-TI Posted February 29, 2016 Author Share Posted February 29, 2016 Rasmus, Great job man! Making this work on an un-expanded cartridge was an excellent decision as this will let newbies or returning TI'ers have some fun right out of the gate before they start expanding. I've found that my reset button does not take it back to the menu, I have to do a power recycle, but honestly that's not a problem. The only problem I have is that this cartridge is so nice, it's taken my last spare UberCart and cartridge shell and now I have to find time to design a label for it too. You've done it again... WE HAVE A WINNER! 4 Link to comment Share on other sites More sharing options...
Asmusr Posted February 29, 2016 Share Posted February 29, 2016 Why did you have to change the search order? I expected it should work regardless (the order of the listing would vary, but otherwise it should have been fine?) Just curious if I missed something. I have a GPL stub that I have offered up in other threads that starts the Multicart menu from GPL so that it always has the right bank selected, I need to get around to publishing that. It worked fine, but I had added the games in alphabetic order and they came out in reverse. Link to comment Share on other sites More sharing options...
Tursi Posted February 29, 2016 Share Posted February 29, 2016 It worked fine, but I had added the games in alphabetic order and they came out in reverse. Ah, beauty. Is alphabetizing desirable? there's no dependency order in the menu, I could add a sort to it. Love the color and title, thanks for the pic Ohm! 1 Link to comment Share on other sites More sharing options...
+Vorticon Posted February 29, 2016 Share Posted February 29, 2016 A quick mention about the HDX battery: I replaced the button battery with an external AA battery holder which I glued to the outside of my RS232 card. Since then, I have not had to change the batteries for probably a couple of years now and still going 1 Link to comment Share on other sites More sharing options...
Omega-TI Posted February 29, 2016 Author Share Posted February 29, 2016 Love the color and title, thanks for the pic Ohm! Hi Tursi, Thanks, but I cannot take credit for that graphic, that was entirely a Rasmus' creation. I just linked to it so it would display slightly larger. Link to comment Share on other sites More sharing options...
sparkdrummer Posted March 15, 2016 Share Posted March 15, 2016 I don't suppose robotron and superstorm are available anywhere that would load thru ea with disk like the other titles? Link to comment Share on other sites More sharing options...
+Lee Stewart Posted March 15, 2016 Share Posted March 15, 2016 I don't suppose robotron and superstorm are available anywhere that would load thru ea with disk like the other titles? Robotron on WHTech: ftp://ftp.whtech.com/games/Atarisoft/robotron.dsk ...lee Link to comment Share on other sites More sharing options...
sparkdrummer Posted March 16, 2016 Share Posted March 16, 2016 Thanks Lee But, I've been there - I think those are gram files. Link to comment Share on other sites More sharing options...
+arcadeshopper Posted March 16, 2016 Share Posted March 16, 2016 Thanks Lee But, I've been there - I think those are gram files. rom files.. can be loaded into any 16k cart rom setup.. Easier to get/make the atarisoft multicart tho Link to comment Share on other sites More sharing options...
Omega-TI Posted March 17, 2016 Author Share Posted March 17, 2016 Rasmus, Thanks for the update! I have already ordered a couple more UberCart boards (which should already be in the mail) and I'll be getting a couple of 1284P's from Greg at Fest West, so I'll probably do this for my own cart. If I decide I can't wait, I'll just recycle my RXB cart. Link to comment Share on other sites More sharing options...
Omega-TI Posted March 17, 2016 Author Share Posted March 17, 2016 You know since it's just ONE teeny weenie little program, why not a cheaper AVR? I was thinking << THESE >> might be a more affordable chip if a person is going to make any quantity of the Atarisoft cartridges and wants them all to startup in the menu even after a warm reset. Link to comment Share on other sites More sharing options...
Omega-TI Posted March 20, 2016 Author Share Posted March 20, 2016 17 March 2016: Added a GROM file that, when added to an UberGROM cart using GROMCFG, should fix the issue of starting up in the right bank after a soft reset. The GROM contains a tiny startup routine that selects the first bank by writing to >6000. I tried it multiple times, but still needs a hard reset. I've removed the 1284P and re-programmed it so many times now that I have a very soft and weak pin. One more time will probably destroy the chip. Did anyone else have any success with it? Now that I read it again it say's "using GROMCFG". I programmed it with the MiniPRO, but I fail to see why it would make any difference. Link to comment Share on other sites More sharing options...
Asmusr Posted March 20, 2016 Share Posted March 20, 2016 I tried it multiple times, but still needs a hard reset. I've removed the 1284P and re-programmed it so many times now that I have a very soft and weak pin. One more time will probably destroy the chip. Did anyone else have any success with it? Now that I read it again it say's "using GROMCFG". I programmed it with the MiniPRO, but I fail to see why it would make any difference. I'm sorry to hear you have almost damaged the chip, but to my knowledge the 1284P is (was ) already programmed with the GROM emulation program and any installation of GROMs on the cart should be done from the TI side using GROMCFG. Edit: I have posted a disk image with GROMCFG and STARTUPG here: http://atariage.com/forums/topic/243766-bin-repository-images-for-burning-cartridges/page-6?do=findComment&comment=3452932 3 Link to comment Share on other sites More sharing options...
Omega-TI Posted March 20, 2016 Author Share Posted March 20, 2016 I'm sorry to hear you have almost damaged the chip, but to my knowledge you the 1284P is (was ) already programmed with the GROM emulation program and any installation of GROMs on the cart should be done from the TI side using GROMCFG. Edit: I have posted a disk image with GROMCFG and STARTUPG here: http://atariage.com/forums/topic/243766-bin-repository-images-for-burning-cartridges/page-6?do=findComment&comment=3452932 As far as I know, that 1284P was a blank slate when I purchased it. It's my own fault though, I've been using the MiniPRO every time I burn something simply out of habit. Because it's something I know, I just found it easier and more convenient. I figured, "hey it works", well up to now anyway. At Fest West I'll be getting a couple more AVR's from Greg, so I'll do the right thing and set it up to program from the TI, but until then it'll have to wait. Honestly, it makes more sense to do it Tursi's way as I'll not have to keep removing the AVR every time I want to program it. I guess I'll need to find time to learn how to do it properly. I know there is that video and instructions sheet he took the time to make around here somewhere. I guess I'm a fine example of what cutting corners, taking the easy way, and trying to save time will get you. And Rasmus, thanks for reminding me. Link to comment Share on other sites More sharing options...
Omega-TI Posted March 20, 2016 Author Share Posted March 20, 2016 20 March 2016: Attached a disk image with GROMCFG and the GROM file (STARTUPG). Thanks! I downloaded it from your message and put it into a file on my desktop for future use. I'm late getting ready for work though, and I have to go NOW. Link to comment Share on other sites More sharing options...
Davvel Posted March 21, 2016 Share Posted March 21, 2016 I have updated the Atarisoft multicart to include all the titles. screenshot.png The cart works on a unexpanded console without the 32K. It is a 256K non-inverted image that can be doubled to work on a 512K EPROM (both versions attached). It needs a board that starts up in the first or the last bank in order to see the menu. Soft resetting will not reset the bank, so you need to press a reset button or power cycle to get back to the menu. Perhaps someone with knowledge of GPL can make a version for the Ubergrom cart that doesn't have these issues? Edit: See below. For the menu I have used a modified version Tursi's Multimenu where I have changed the graphics and reversed the order of searching to fit a non-inverted cart. Each 16K game has been hacked to change the ROM bank numbers. For Pac-Man and Ms Pac-Man this was particularly challenging because the ROM words used to change the bank (>6068, >646C) are also used to select sprite patterns of the ghosts when they are blue/escaping (>68 or >6C). So when I changed these words the blue ghosts showed up as random patterns. The solution was to add some code that uploaded the patterns to the right place in VDP RAM, but there was only one available location that also selected the right ROM bank so the blue ghosts are no longer animated. I haven't had time for careful testing, and I haven't tried it one hardware yet, so it's possible that some games crash later on. Please report any problems you find. Enjoy! 17 March 2016: Added a GROM file that, when added to an UberGROM cart using GROMCFG, should fix the issue of starting up in the right bank after a soft reset. The GROM contains a tiny startup routine that selects the first bank by writing to >6000. 20 March 2016: Attached a disk image with GROMCFG and the GROM file (STARTUPG). I find this kind of work mesmerising. Well done for a wonderful job Rasmus it must have consumed a lot of your free time. 1 Link to comment Share on other sites More sharing options...
ckoba Posted March 31, 2016 Share Posted March 31, 2016 (edited) Thanks for that. That's one of the methods that I tried (others being CLI via Linux and heavy cursing). The resulting .dsk is filled with 0xF6 and only 0xF6. I'm debugging the source of the Linux utility, which is a convoluted mess of interdependent libraries and non-POSIXy CLI flags. Unpleasant. Edit: attach the .hfe, because why not. I have finally, FINALLY gotten around to debugging the HxC .hfe -> .dsk problem I was seeing with 80-track-per-side disks. It turns out that both the encoding and decoding functions in one of the HxC libraries assume disk geometry/density/encoding based on source file length. A double-sided 80tps disk size matches with the third-party double-density controllers, so the decode routine tries to decode MFM and fails. I have no idea why the encoding routine was even working, because the TI controller won't handle double-density. I'd have to dig further, but for now here's the snippet of code for libhxcfe that fixes .hfe -> .dsk conversion. diff --git a/sources/loaders/ti99v9t9_loader/ti99v9t9_loader.c b/sources/loaders/ti99v9t9_loader/ti99v9t9_loader.c index 895439e..ef630d4 100644 --- a/sources/loaders/ti99v9t9_loader/ti99v9t9_loader.c +++ b/sources/loaders/ti99v9t9_loader/ti99v9t9_loader.c @@ -255,13 +255,20 @@ int32_t getDiskGeometry(FILE * f,int32_t * numberoftrack,int32_t * numberofside, // third-party DD disk controllers, but reportedly not supported by // the original TI DD disk controller prototype) *numberofside=2; - *numberoftrack=40; - *numberofsector=18; + if (vib.tracksperside == 80) { + *numberoftrack=80; + *numberofsector=9; + *interleave=5; + *density=1; + } else { + *numberoftrack=40; + *numberofsector=18; + *interleave=5; + *density=2; + } *bitrate=250000; - *density=2; *skewside0=0; *skewside1=0; - *interleave=5; break; case 2*80*18*256: diff --git a/sources/loaders/ti99v9t9_loader/ti99v9t9_writer.c b/sources/loaders/ti99v9t9_loader/ti99v9t9_writer.c index ba0d0e4..b9943f5 100644 --- a/sources/loaders/ti99v9t9_loader/ti99v9t9_writer.c +++ b/sources/loaders/ti99v9t9_loader/ti99v9t9_writer.c @@ -124,11 +124,12 @@ int TI99V9T9_libWrite_DiskFile(HXCFE_IMGLDR* imgldr_ctx,HXCFE_FLOPPY * floppy,ch // third-party DD disk controllers, but reportedly not supported by // the original TI DD disk controller prototype) numberofside=2; - numberoftrack=40; - numberofsector=18; + numberoftrack=80; + numberofsector=9; + density=ISOIBM_FM_ENCODING; + interleave=5; + fprintf(stderr, "Modified for 80tps TI controller ckoba\n"); bitrate=250000; - density=ISOIBM_MFM_ENCODING; - interleave=5; break; case 2*80*18*256: I'll submit this upstream to the original author once I figure out how to get it to gracefully handle both DSDD and DSSD. Edit: the reason that .dsk -> .hfe encoding worked was sort of an accident: if (((*numberofsector * *numberoftrack * *numberofside) == totsecs) && ((vib.density <= 4) && (totsecs >= 2)) && (filesize == totsecs*256) && !memcmp(vib.id, "DSK", 3)) { return 1; } ... prepends all of that nasty size-based hardcoding. If the .dsk has a internally-consistent header sector, hxcfe will use that data to construct the .hfe. Thus, it was working because the author actually adhered to protocol definition Edited March 31, 2016 by ckoba Link to comment Share on other sites More sharing options...
Asmusr Posted April 13, 2016 Share Posted April 13, 2016 Re-posting: Java program to invert a cartridge image. bankinvert.zip 4 Link to comment Share on other sites More sharing options...
+mizapf Posted April 13, 2016 Share Posted April 13, 2016 Do we have a HFE format specification? I'd be interested. Link to comment Share on other sites More sharing options...
ckoba Posted April 13, 2016 Share Posted April 13, 2016 HFE as in "the format the HxC uses"? If so, then yes, the format is documented at http://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_HFE_file_format.pdf 1 Link to comment Share on other sites More sharing options...
Davvel Posted April 13, 2016 Share Posted April 13, 2016 Can anyone indicate how TI builds it's menu items. Example: Scans all address spaces in GROM space >6000,>8000,>A000 etc... and looks for a particular header? Does this apply to ROM and GROM inside machine and in cartdrige ? If more than one header is found which will be option 2, 3 etc.... How did Gazoo totally bybass this menu build process? I am not expecting a lengthy time consuming explanation but a few pointers. Thanks. Link to comment Share on other sites More sharing options...
Asmusr Posted April 13, 2016 Share Posted April 13, 2016 Can anyone indicate how TI builds it's menu items. Example: Scans all address spaces in GROM space >6000,>8000,>A000 etc... and looks for a particular header? Does this apply to ROM and GROM inside machine and in cartdrige ? If more than one header is found which will be option 2, 3 etc.... How did Gazoo totally bybass this menu build process? I am not expecting a lengthy time consuming explanation but a few pointers. Thanks. Thierry Nouspikel holds the answer (as usual) here. Gazoo was using a power-up routine to bypass the menu. 4 Link to comment Share on other sites More sharing options...
Davvel Posted April 13, 2016 Share Posted April 13, 2016 Thierry Nouspikel holds the answer (as usual) here. Gazoo was using a power-up routine to bypass the menu. Excellent, thanks. Link to comment Share on other sites More sharing options...
Recommended Posts