Let's make a ROM

 

Probably the hardest part to understand , but , you do not have to understand it to do it!

 

Now we need to make a .bin file to program the EPROM that you have chosen ( or have laying around!) .

 

Just a reminder of what can fit on what eprom.

Eprom

( or compatible )

8KB Images

for the +8

32KB images

for the +32

27c010 16 4
27c020 32 8
27c040 64 16
27c080 128 32

 

Remeber this is the MAXIMUM number of images , if you only want 1 or 2 then you can put 1 or 2 it is up to you provided you set the RomMax value on the arduino program .

 

I use a file editing program called HxD , It has shortcuts that make it easier and , it is FREE!

 

The easiest way to start is with a blank file of the right size and a directory with the bin files for the images you want on your multicart .

Here are blank files for the Eprom's (in zip format you will need to unzip them ) , download the one that you need ( or download them all to use later ) .

 

27c010 Blank

27C020 Blank

27C040 Blank

27C080 Blank

Now we need to talk about image sizes the main problem people have is understanding Hexadecimal numbering ( you need to know where to start each rom from when you paste it into the file! ) , however i have created a chart for each to show you where it should start . Don't worry about the end it does not have to fill the whole space but MUST start at a specific point.

 

For up to (8192 bytes) 8KB ( on the +8 ) images it is:-

 

1 00000000 17 00020000 33 00040000 49 00060000 65 00080000 81 000A0000 97 000C0000 113 000E0000
2 00002000 18 00022000 34 00042000 50 00062000 66 00082000 82 000A2000 98 000C2000 114 000E2000
3 00004000 19 00024000 35 00044000 51 00064000 67 00084000 83 000A4000 99 000C4000 115 000E4000
4 00006000 20 00026000 36 00046000 52 00066000 68 00086000 84 000A6000 100 000C6000 116 000E6000
5 00008000 21 00028000 37 00048000 53 00068000 69 00088000 85 000A8000 101 000C8000 117 000E8000
6 0000A000 22 0002A000 38 0004A000 54 0006A000 70 0008A000 86 000AA000 102 000CA000 118 000EA000
7 0000C000 23 0002C000 39 0004C000 55 0006C000 71 0008C000 87 000AC000 103 000CC000 119 000EC000
8 0000E000 24 0002E000 40 0004E000 56 0006E000 72 0008E000 88 000AE000 104 000CE000 120 000EE000
9 00010000 25 00030000 41 00050000 57 00070000 73 00090000 89 000B0000 105 000D0000 121 000F0000
10 00012000 26 00032000 42 00052000 58 00072000 74 00092000 90 000B2000 106 000D2000 122 000F2000
11 00014000 27 00034000 43 00054000 59 00074000 75 00094000 91 000B4000 107 000D4000 123 000F4000
12 00016000 28 00036000 44 00056000 60 00076000 76 00096000 92 000B6000 108 000D6000 124 000F6000
13 00018000 29 00038000 45 00058000 61 00078000 77 00098000 93 000B8000 109 000D8000 125 000F8000
14 0001A000 30 0003A000 46 0005A000 62 0007A000 78 0009A000 94 000BA000 110 000DA000 126 000FA000
15 0001C000 31 0003C000 47 0005C000 63 0007C000 79 0009C000 95 000BC000 111 000DC000 127 000FC000
16 0001E000 32 0003E000 48 0005E000 64 0007E000 80 0009E000 96 000BE000 112 000DE000 128 000FE000

 

For up to (32768 bytes) 32KB ( on the +32 ) images it is:-

 

1 00000000 5 00020000 9 00040000 13 00060000 17 00080000 21 000A0000 25 000C0000 29 000E0000
2 00008000 6 00028000 10 00048000 14 00068000 18 00088000 22 000A8000 26 000C8000 30 000E8000
3 00010000 7 00030000 11 00050000 15 00070000 19 00090000 23 000B0000 27 000D0000 31 000F0000
4 00018000 8 00038000 12 00058000 16 00078000 20 00098000 24 000B8000 28 000D8000 32 000F8000

 

 

Don't worry about the letters in there it will match with the numbers in HxD.

 

Right , got your rom list ready? Installed HxD? Got your unzipped blank Eprom file?

Got all the roms to put on the multicart in one directory?

 

If the answer is YES then we are ready to start!

 

My roms and blank file I have put in a folder in my 'documents' directory called 'MyCart' . 

 

Let us open HxD.

 

 

The first file i am going to open is the blank eprom file ( i am using the 27c010 for this demonstration ) and creating one for the +8 version ( 8k roms ) you can do the +32 in exactly the same way but remember to use the addresses from the +32 table for the start address for each rom!

Click file and Open a standard file selection window will open up . Navigate to your directory and click on the blank file for the eprom you have chosen and then click the Open button.

 

 

 

You should now have something like the above .

You could now do the same for each image file but there is a quicker way.

 

 

The folder button with a green arrow underneath the file menu is a quick way to open things . Click on it and the file selection window opens up .

 

 

If i click on BEDLAM and then hold the shift key and click on Web Warp it will select all those files to open . Click open and it will open all of them!

 

The left and right arrows by the file title will allow you to scroll through the list of files.

I am going to do mine in alphabetical order , but you can do yours any way you like. 

So i scroll to the first of the roms i want to put on ( BEDLAM ) and click on it.

 

 Now this is where the shortcuts make it easy!!

Hold the ctrl key and press A then C and let it go. Ctrl-a selects all the data from this rom and ctrl-c copies it.

Now goto the blank rom file and put the cursor at the very begining ( if it is not already there ) beside 00000000 (first rom start address ).

Hold ctrl and press B ( not V like copy and paste because that will INSERT it and make your rom file bigger! ) . Ctrl-B writes it into the existing data. Your data will now turn red indicating that it has not been saved yet.

At this point ( and after each cartridge I 'write in' ) I am going to save it , but i want to rename it this time so that i don't overwrite the empty rom file.

 Select 'Save as' from the file menu and name it for your rom . I have named mine MyCart.BIN.

Once you have saved the data will turn black again. Now i will close the BEDLAM.VEC tab so that i know it is on the cartridge . This will bring me to my next rom .

The same again ctrl-A and ctrl-C to select and copy.

Goto your rom file and find 00002000 ( rom 2 start address from the +8 table ).

I like to select the first Byte ( FF ) just to check it is the one beside 00002000 and then ctrl-B to write it into the file.

As I have already done save as , all I have to do this time is click on the disk icon underneath the word Edit to save it to my rom file.

and then close the Berzerk.vec tab because it is now written in to my rom file.

 

Do this for each rom you have , using the start addresses for each rom from the table (have you noticed the mixture of letters and numbers , I told you the start addresses would match with HxD! ) .

 

When all the tabs are gone except your rom file you have finished .

 

I told you you did not have to understand it to do it!

 

Now you just need to burn the file to an eprom!!

 

Rember to set the RomMax value to the number of roms on your cartridge when programming the arduino.

 

I am sure there are people who will help if you ask ( in the USA you could ask at your local makerspace ) or in forums ( AmiBay , vectorgaming.proboards.com or other retro/electronics forums. )

If you are in the UK and don't mind paying the postage back and forth you can contact me :- This email address is being protected from spambots. You need JavaScript enabled to view it..

 

Here it is plugged into a Vectrex!

 

Please excuse the stray hair from the dog!!

 

Here are some images I have made for you too download , if you want an easier way .