tbag said:
I tend to pickup on things rather quickly
It's not possible to pick up C++ and consider yourself an intermediate programer in 3 6 9 or 12 months.. beginner yes.. no way on intermediate. It's not possible, not because you can't pick it up or any such thing, it's a very BIG language and you can do a LOT of things in it you may never use. OOP is NOT visual basic. VB is designed to be EASY and SIMPLISTIC. C++ and C are NOT, they are designed to be as low level as possible or as complex as possible depending on your need. If you didn't know VB is written in C++ that's how they have all those cool abilities to add things and add in Active X components.
C++ is OOP, which is an extension of structured programing. In C++ your program consists of messages sent between objects where the object do most if not all the work. Lets talk EMU now. Say you want to emulate a GBC, you have a number of objects you should make now. A form for the layout of the EMU, (1 objecT), menus for the EMU (several objects there), in fact a typical windows program has 100's of objects just in setting up the GUI. Next the processor (modified Z80). That's an object as well. Memory? Another object. Cartridge memory? Yet another object... Bottom line is it's not as simple as taking a bunch of lego blocks and putting them together. Fortunately with VC++ or BCB a lot of the work has been done for you. BCB would be much easier to use though. Also for graphics it's not too bad, you have to grab your 'frame buffer' created by the emulated GBC and convert it too a bitmap. I'm wondering if dynamic recompilation would improve speed a lot on emulating it.. not that one needs speed.
tbag said:
I have but the thing im confused about is in the Opcodes for the gameboy the emulator has noone of these opcodes.. nor any of the registers etc..??
It's a modified Z80?
you have 8 8 bit registers
A B C D E F H L (I forget the other threw out the z80 references I had

)
you have an R register too for refresh control of dynamic ram.
4 16 bit registers
X Y PC S
Also register pairs
AF BC DE HL
Additionally you have alternate registers
A' F' B' C' D' E' H' L'
these are for context switching in interrupts to allow you not to have to push everything on the stack.
IO has 256 address memory 65536 unless they are supporting the segmented Z180 (which is more complicated).
I suggest making a 'CPU' that emulates the z80 as closely as possible. Then look at the particulars unique to the CPU the GBC has, and 'inherit' the Z80 into the new CPU object.
Good luck!
Cyb