Post by oompa loompa on Apr 16, 2005 1:03:16 GMT -5
Finally got myself a Sega Genesis Radica =P, the volume 1 type with the sonic the hedghog and flicky and stuff. Well, i really didn't want to rip it all apart yet because i plan to do something else with the 6 in 1 later. Here are some things that i poked around at:
the circuit on the back side of the board (the side without the glob top chips) is a banking circuit. it looks like radica didn't want to recompile sources to reallocate the gaming codes, so they made a simple OR bank switcher. what this bank switcher does is take the upper addresses and block them with a high level if a latch is on, or buffer the signal when the latch is off.
Here's the joypad color codes: Brown - SEL Red - B/A Orange - UP Yellow - DOWN Green - LEFT/0 Blue - RIGHT/0 Purple - C/START Gray - +3.3V Black - GND White - !RESET
The joypad connections follow the usual 74ls157 data selector convention
I've also found the cpu clock signals and some test points, i'll post more info on these later. if anyone would like to add anything to this, feel free =D, i dunno how much "hacking" has been done on the radica by others yet. i'll get to desoldering the mask rom board, and dissassembling the source later
Post by oompa loompa on Apr 21, 2005 21:45:54 GMT -5
oh yea, the exodus, i remember now, people were on these boards trying to get help on to figure out the pinouts for the rom =P. at that time, if i knew exactly were the gnd and vcc lines went, i would have automatically said it was the standard 16 bit mask rom pinout =D. maybe if i were to look more on the net, i'd find more info myself .
still haven't desoldered the mask rom yet, waiting for summer so i could start on this project =P
Post by oompa loompa on Apr 29, 2005 23:34:02 GMT -5
hehe, dunno how to say this in one word, but i've done lots of work on the radica today =D, hacking it inside-out. things done:
1) desoldered the board holding the glue rom 2) soldered the rom to an empty cartridge and hooked up dip switches for the banking 3) dumped the rom onto hard drive 4) dissassembled rom source 5) solder on a connector onto the radica, much like my "sega genesis 50 pin bus" 6) ran games and test programs on the radica
all this was done in complete succession , so got lots done quickly today =P. i'll have the rom dump, dissassemblies, hardware notes, etc whenever i get to it
Post by oompa loompa on May 2, 2005 23:21:49 GMT -5
hehe, i don't see anything the original radica already does that the street fighter one will do, except for the extra 2 player port =P (can't find any traces that are for the second port). a 6 button controller can already be interfaced to the radica. it also has write signals, so games with backup sram can be used ;D
Post by oompa loompa on May 11, 2005 14:48:16 GMT -5
yay, i didn't know there'd be many people interested in the radica =P. anyways, i don't have a lot of time to respond since i'm in a rush
i'll upload the menu portion of the rom later. don't want to put the whole 4mbyte rom on cause it eats bandwidth =), and most importantly - the games that are on the radica are the exact same copies of the games that are in their respected individual cartridges (except for kid chameleon). the menu rom does not run on real hardware, but for some reason will run on emulators
as for the bank switching, there are no emulators that emulate this. to connect dip switches to act as a manual bank switcher, you will need to connect one pin of a SPST switch directly to the rom. You will also need to connect this pin to a pull-up resistor so the pin stays in logic high when the switch is open. On the other poll of the switch, connect this pin to the cartrdige address that matches the address line of the rom. do this for the top 6 address lines. look at the bank switching schematic for automatic switching to verify everything.
i think i described the banking mechanism already. when the latch is logic high, the address stays logic high. when the latch is logic low, the address follows the address line that is fed into the or-gate. knowing this, you can connect a dip switch different to what i've described above also =)
when i dumped the rom, i dumped the entire rom with the switches on, so that addresses are fed directly to the rom instead of making it "dominantly" high
the banking latch in the schematic latches data when some funky address $A13xxx i think is put on the bus, only on the radica hardware. on the original genesis, there are no signals that tell us when this space is being accessed. to make switching automatic, there would need to be extra logic to detect for this address space so that the menu program can write to the latch appropriately. i have not gotten the menu program to run on real hardware yet, and have not figured out why it locks up, so using automatic switching like on the radica is going to take more work than it really is worth. using the dip switches, kid chameleon does not work because the initial vector program counter is changed to jump to the menu code (see the memory map on the schematic, kid chameleon is put at the begining of the rom, and the vector table is located at the begining of the rom so something needs to be done so that when the radica is turned on, kid chameleon isn't immediately played)
also, i got an email asking about region detection =). i guess there's been lots of talk about whether the radica has region detection or not, and why many games don't run, and people are thinking its region detection but don't really know the answer. the real answer is that the radica does include the region code, and that region code is the same as the sega genesis model 1, version 2 system =D. for experts, this region code in $A10001 reports as $A1 =P (look in sega docs for what this means)
any other questions i'm willing to ask later, don't be afraid to ask because i spend more time answering questions on the forum rather than making documents =P
Hmm...let me get this straight...(using ASCII art!) ;D
-- |A16---|---./ .---1 R |A17---|---./ .---2 O |A18---|---./ .---3 M |A19---|---./ .---4 |A20---|---./ .---5 |A21---|---./ .---6 -- | | R1 | | VCC CART PIN
Points 1-6 = A16-A21 at base of cart
Okay Q/A again...
1. What resistor value do you recommend?
2. So ALL of the pins are constant logic HIGH, unless switched to their respective cart pins...correct?
3. Which 'test points' did you find (a picture with red labels would be useful) and did you find a way of doing the overclock 'hack'...i.e. - a test point for the 13MHz signal and a way to send a halt signal between switching?
Post by oompa loompa on May 12, 2005 11:54:15 GMT -5
uhm, the ascii art suxorz =P. also each signal needs an individual resistor of its own so that each signal is not tied together, and the flow of current isn't divided. i just quickly made a schematic for the switches, and you can find it here devster.retrodev.com/pub/radicav1manualbankswitch.gif. i used the usual 10k pull ups, but something between 4.7k and 10k is good. you can also connect the signal to your 3.3v reference, but this is where you'll need a smaller resistor value
i uploaded the entire 4mbyte rom at eidolons-inn, so tell all your friends =o! you can find it in the file manager under genesis dev
EDIT: notice i only used 3 switches in the manual bank switching diagram when i told you to use 6. i used 3 because i didn't think anyone wants to run the menu program since its not going to work anyways =P. also for kid chameleon, you can make that game work if you have a game genie. you will need to enter 2 patches: