#21692 - greenbayrules - Thu Jun 03, 2004 2:06 am
is anyone planning on making a gbc emulator for the gba? just wondering because i would love to be able to play gbc only games on my f2a
#21694 - sajiimori - Thu Jun 03, 2004 2:51 am
Yeah, there are a few listings at zophar.net.
#21717 - tepples - Thu Jun 03, 2004 6:42 pm
Last time I checked, all three GBA hosted Game Boy emulators listed at zophar.net supported the DMG (Game Boy mono) system only.
If you want to play GBC games stored on a Flash2Advance cartridge (not the F2A Ultra), get a GB Bridge.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#21721 - mr_schmoe - Thu Jun 03, 2004 8:13 pm
why would you want to emulate the GBC on the GBA? I thought the GBA plays GBC games already.
_________________
How many boards could the Mongols hoard, if the Mongol Hored got bored
#21722 - sajiimori - Thu Jun 03, 2004 8:28 pm
Oh sorry, my bad.
#21723 - dagamer34 - Thu Jun 03, 2004 10:45 pm
mr_schmoe wrote: |
why would you want to emulate the GBC on the GBA? I thought the GBA plays GBC games already. |
No flash cart directly supports GBC ROMs simply because one of the connecting pins that switches the GBA to GBC mode is too short (pin 31, I think).
_________________
Little kids and Playstation 2's don't mix. :(
#21727 - tepples - Thu Jun 03, 2004 11:56 pm
Actually, the pin that switches isn't electronic but mechanical, at the side of the Game Pak connector. Look at the backs of a GB/GBC Game Pak and a GBA Game Pak, and you'll see two little notches. The GBA uses these to distinguish GBC from GBA. Why a flash cart maker hasn't made a slide switch to put a single flash cart into either GBC or GBA mode, I don't know. Such a switch would change both 1. the shape of the cart (to let the GBA detect a GBC cart) and 2. the wire protocol (5v vs. 3.3v and whether data is multiplexed over the address bus).
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#21731 - dagamer34 - Fri Jun 04, 2004 12:54 am
I assume trying to physically modify your cart to remove those notches by placing something there won't help, right?
_________________
Little kids and Playstation 2's don't mix. :(
#21732 - greenbayrules - Fri Jun 04, 2004 2:51 am
ok thx guys, because i didn't know why no one had ever made a gbc to gba emulator. but now i understand
#21734 - sajiimori - Fri Jun 04, 2004 4:18 am
Those difficulties don't preclude a GBC emulator on GBA -- you could still put GBC ROMs on a flash cart. It's a speed issue, right? The 8 MHz GBC processor is too fast to emulate on the 16 MHz ARM7.
#21737 - tepples - Fri Jun 04, 2004 4:44 am
A Z80 processor at a given clock rate typically gets as much done as a 6502 processor at half the clock rate. Therefore it'd be equivalent to a 6502 at 4 MHz, which isn't far off from what SNES Advance emulates. So yes, it may in theory become possible.
Besides, not all GBC games put the processor into double-speed mode; many just use the extra pattern tables, deeper nametables, and general-purpose DMA channels.
One problem that may get in the way is Teh Patent. SNES Advance uses speed hacks selected by title. It's against the law in the United States for a handheld emulator to switch on speed hacks based on a ROM's hash.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#21752 - keldon - Fri Jun 04, 2004 12:25 pm
tepples wrote: |
A Z80 processor at a given clock rate typically gets as much done as a 6502 processor at half the clock rate. Therefore it'd be equivalent to a 6502 at 4 MHz, which isn't far off from what SNES Advance emulates. So yes, it may in theory become possible.
Besides, not all GBC games put the processor into double-speed mode; many just use the extra pattern tables, deeper nametables, and general-purpose DMA channels.
One problem that may get in the way is Teh Patent. SNES Advance uses speed hacks selected by title. It's against the law in the United States for a handheld emulator to switch on speed hacks based on a ROM's hash. |
Well the Z80 processor in the Gameboy has multiples 4 cycle operations, so it runs more like 1Mhz in normal speed and 2Mhz in double (per instruction), whereas the Gameboy Advanced is 1 cycle per (most) operations.
#21762 - Miked0801 - Fri Jun 04, 2004 4:36 pm
Whoa
Quote: |
A Z80 processor at a given clock rate typically gets as much done as a 6502 processor at half the clock rate.
|
The GBC is not even close to a real Z80. It runs as people say at 4 to 1 cycles so we pretty much treated it as a 1Mhz (2Mhz in double) CPU. On top of that, it has no shadow registers, and it's missing 1/2 the normal Z80 intructions (no xfer function is the big one.) It also is missing the 16-bit utility registers leaving you with a,b,c,d,e,h,l. or a, bc, de, hl for 16-bit sutff of which only hl and a together can access things with auto incrementing at 2 cycles per. Also, some of the intructions do take more than 1 cycle to run. Push, Pop, and a few others I can't remember at the moment.
Yes I know that 7 registers is better than 3 (a,x,y), but I doubt a GBC is twice the CPU of a 6502.
Man, this brings back memories of GBC dev. Bleh ;)
#21770 - ampz - Fri Jun 04, 2004 5:46 pm
keldon wrote: |
Well the Z80 processor in the Gameboy has multiples 4 cycle operations, so it runs more like 1Mhz in normal speed and 2Mhz in double (per instruction), whereas the Gameboy Advanced is 1 cycle per (most) operations. |
The proper term for "number of instructions per second" is MIPS, not MHz.
GB runs at ~1MIPS, GBC in double speed mode runs at ~2MIPS, GBA runs at ~16MIPS (Assuming Internal RAM/BIOS).
#21773 - poslundc - Fri Jun 04, 2004 6:11 pm
ampz wrote: |
The proper term for "number of instructions per second" is MIPS, not MHz.
GB runs at ~1MIPS, GBC in double speed mode runs at ~2MIPS, GBA runs at ~16MIPS (Assuming Internal RAM/BIOS). |
Also assuming you are only using the ALU subset of instructions with no register-specified shifts. Anything else and the MIPS drops. A lot.
Dan.
#21780 - ampz - Fri Jun 04, 2004 8:28 pm
poslundc wrote: |
ampz wrote: | The proper term for "number of instructions per second" is MIPS, not MHz.
GB runs at ~1MIPS, GBC in double speed mode runs at ~2MIPS, GBA runs at ~16MIPS (Assuming Internal RAM/BIOS). |
Also assuming you are only using the ALU subset of instructions with no register-specified shifts. Anything else and the MIPS drops. A lot.
Dan. |
True.
Instructions with register specified shifts require two cycles, memory loads, memory stores, and branches typically require three cycles. ALU instructions with or without a constant shift only require one cycle.
On the other hand, the z80 cannot do combined ALU+shift instructions, or even register specified shifts (since it is a 8bit CPU). Theese operations require several instructions on the z80.