Jump to content
IGNORED

.BIN Repository - Images for cartridges that require "burning" - (NO LONGER UPDATED OR SUPPORTED)


Omega-TI

Recommended Posts

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

Rasmus,

Great job man! :thumbsup: 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.

 

post-35226-0-71295100-1456664680.png

 

You've done it again... WE HAVE A WINNER!

  • Like 4
Link to comment
Share on other sites

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

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!

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

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

 

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

 

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

 

  • Like 3
Link to comment
Share on other sites

 

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. :sad:

 

And Rasmus, thanks for reminding me.

Link to comment
Share on other sites

I have updated the Atarisoft multicart to include all the titles.

 

attachicon.gifscreenshot.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.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

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 by ckoba
Link to comment
Share on other sites

  • 2 weeks later...

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

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.

  • Like 4
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...