what tools are out there?
We usually write our own. I usually just write command line converter/utilities in C for PC - no GUI stuff. Nothing fancy. The assemblers and compilers also have some support for converting palettes, maps, tiles, and graphics for you. Though nothing fancy.
which should i use?
If you go the C route, then you have access of the internal function that can import MAPPY tilemaps. But the compiler generally generates slower code than even unoptimized assembly by hand.
are there any tutorials or source code or smaller programs that i can look at to see how things work?
I have a WIP tutorial -
here. Even if you choose not to code in assembly, the tutorial can help you understand the other hardware at a low level.
is there a special library to help with developement?
Both HuC C compiler and Magickit Assembler have a large library of useful functions. Though some of us are purists and and write out own libs for more speed and/or more functionality

It's not as difficult as it might sound.
and is there a place to get a flash hucard?
I highly recommend tototek over neoflash. The only down side to tototek cards is that they require a parallel port VS Neoflash USB connection. I never could get the tototek card to communicate with the parallel port on my laptop either. I didn't try to hard since it works with my PC.
You can also make your own if you have a general rom programmer. Hack up one of those 'barney' import converters and solder a DIP zif. Zif makes taking the DIP flash chip out for programming real nice

. Flash is easy to find (AM29F040B DIP version).
also from what i've been able to gather you can code in asm or c++ which is best?
Whatever suits your needs. HuC compiler
is pretty decent IMO, but like all 65x based solutions speed comes from low level optimizations. HuC supports inline ASM functionality, but you have to be really careful not to step on the toes of the compiler's generated setup. Otimizations for speed on the PCE also come from having complete control of mapping in near/far data. You have much less control over this in HuC with inline ASM because of the compiler's setup/needs. If the PCE had a flat memory layout, then this wouldn't be an issue for the
C plus inline ASM route.
A weird thing with HuC is that it only has support for 16bit variables. You can define "chars", but the compiler will treat the char as a 16bit var with the top half zero'd out. It also has some issues with treating some near data as far data, creating quite a bit of overhead in cycles. The compiler also has an its own stack system (not the real stack) for argument passing and it's really slow if you pass more than a single argument (single arguments are passed in two registers). So you'll have to use global variables for speed (write values to the global variables, then call the function), etc.
know of any resources/books to learn assembly?
There are a ton of 65x (6502) tutorials, docs, books, forums, etc on the net. The PC-Engine CPU is based on that 65x. It has additional instructions that Rockwell added when WDC licensed they 'C02 out in trade for fabrication (WDC weren't a large enough company to fabricate their own chips). Rockwell chips are usually referred to as 'CS02 or 'C02S. Anyway, you can learn on the original 6502 instruction set just fine, then take advantage of the newer instructions later. The original 6502 instruction set is very simple and easy to understand. It's an easy processor to learn on. Among the many sites, the 6502.org forum is pretty good for help in learning the 65x.
i know it may be a ton of questions, but i have yet to find any place that could answer them. even getting back into programming like i have was a headache theres so many languages out there that its hard to know where to start or which to start with. i would appreciate it if anyone with any experience could point me in the right direction or share how they got started.
thanks
My recommendation would be to go the ASM route. There's are a ton of
retro platforms that used the 65x that are still very active (atari systems and computers, apple computers, C64/plus4/plus16, nes, lynx, etc) so the CPU is extremely popular. And there are people who still build small computer systems (SBC's) with the 65x, not to mention it's still widely sold for embedded systems. It's
not a dead cpu

Even the 65816 (16bit version) is almost identical in code except the regs and arithmetic have been extended to 16bit. Almost exact same instructions. My point is, that you'll find plenty of support because of its wide use across platforms.