本文整理汇总了C++中BurnMalloc函数的典型用法代码示例。如果您正苦于以下问题:C++ BurnMalloc函数的具体用法?C++ BurnMalloc怎么用?C++ BurnMalloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了BurnMalloc函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: K053936Init
void K053936Init(INT32 chip, UINT8 *ram, INT32 len, INT32 w, INT32 h, void (*pCallback)(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *sx, INT32 *sy, INT32 *fx, INT32 *fy))
{
ramptr[chip] = ram;
nRamLen[chip] = len;
if (rambuf[chip] == NULL) {
rambuf[chip] = (UINT8*)BurnMalloc(len);
}
nWidth[chip] = w;
nHeight[chip] = h;
if (tscreen[chip] == NULL) {
tscreen[chip] = (UINT16*)BurnMalloc(w * h * 2);
}
if (chip == 0) {
pTileCallback0 = pCallback;
}
if (chip == 1) {
pTileCallback1 = pCallback;
}
KonamiAllocateBitmaps();
KonamiIC_K053936InUse = 1;
}
示例2: tms34061_init
void tms34061_init(UINT8 rowshift, UINT32 ram_size, void (*partial_update)(), void (*callback)(INT32 state))
{
DebugDev_Tms34061Initted = 1;
m_partial_update = partial_update;
m_rowshift = rowshift;
m_vramsize = ram_size;
/* resolve callbak */
m_interrupt_cb = callback;
/* reset the data */
m_vrammask = m_vramsize - 1;
/* allocate memory for VRAM */
m_vram = (UINT8*)BurnMalloc(m_vramsize + 256 * 2);
/* allocate memory for latch RAM */
m_latchram = (UINT8*)BurnMalloc(m_vramsize + 256 * 2);
/* add some buffer space for VRAM and latch RAM */
m_vram += 256;
m_latchram += 256;
/* point the shift register to the base of VRAM for now */
m_shiftreg = m_vram;
}
示例3: K053247Init
void K053247Init(UINT8 *gfxrom, INT32 gfxlen, void (*Callback)(INT32 *code, INT32 *color, INT32 *priority), INT32 flags)
{
K053247Ram = (UINT8*)BurnMalloc(0x1000);
K053246Gfx = gfxrom;
K053246Mask = gfxlen;
K053247Callback = Callback;
K053247_dx = 0;
K053247_dy = 0;
K053247_wraparound = 1;
if (konami_temp_screen == NULL) {
INT32 width, height;
BurnDrvGetVisibleSize(&width, &height);
konami_temp_screen = (UINT16*)BurnMalloc(width * height * 2);
}
K053247Temp = konami_temp_screen;
K053247Flags = flags; // 0x02 highlight, 0x01 shadow
KonamiIC_K053247InUse = 1;
}
示例4: CavePalInit
INT32 CavePalInit(INT32 nPalSize)
{
CavePalette = (UINT32*)BurnMalloc(nPalSize * sizeof(UINT32));
memset(CavePalette, 0, nPalSize * sizeof(UINT32));
CavePalCopy = (UINT16*)BurnMalloc(nPalSize * sizeof(UINT16));
memset(CavePalCopy, 0, nPalSize * sizeof(UINT16));
pBurnDrvPalette = CavePalette;
return 0;
}
示例5: LoadUpSplit
static INT32 LoadUpSplit(UINT8** pRom, INT32* pnRomLen, INT32 nNum, INT32 nNumRomsGroup)
{
UINT8 *Rom;
struct BurnRomInfo ri;
UINT32 nRomSize[8], nTotalRomSize = 0;
INT32 i;
ri.nLen = 0;
for (i = 0; i < nNumRomsGroup; i++) {
BurnDrvGetRomInfo(&ri, nNum + i);
nRomSize[i] = ri.nLen;
}
for (i = 0; i < nNumRomsGroup; i++) {
nTotalRomSize += nRomSize[i];
}
if (!nTotalRomSize) return 1;
Rom = (UINT8*)BurnMalloc(nTotalRomSize);
if (Rom == NULL) return 1;
INT32 Offset = 0;
for (i = 0; i < nNumRomsGroup; i++) {
if (i > 0) Offset += nRomSize[i - 1];
if (BurnLoadRom(Rom + Offset, nNum + i, 1)) {
BurnFree(Rom);
return 1;
}
}
*pRom = Rom;
*pnRomLen = nTotalRomSize;
return 0;
}
示例6: LoadUp
// Allocate space and load up a rom
static INT32 LoadUp(UINT8** pRom, INT32* pnRomLen, INT32 nNum)
{
UINT8 *Rom;
struct BurnRomInfo ri;
ri.nLen = 0;
BurnDrvGetRomInfo(&ri, nNum); // Find out how big the rom is
if (ri.nLen <= 0) {
return 1;
}
// Load the rom
Rom = (UINT8*)BurnMalloc(ri.nLen);
if (Rom == NULL) {
return 1;
}
if (BurnLoadRom(Rom,nNum,1)) {
BurnFree(Rom);
return 1;
}
// Success
*pRom = Rom; *pnRomLen = ri.nLen;
return 0;
}
示例7: DrvGfxDecode
static INT32 DrvGfxDecode()
{
INT32 Plane0[4] = { 0, 4, RGN_FRAC(0x04000, 1,2), RGN_FRAC(0x04000, 1,2)+4 };
INT32 Plane1[4] = { 0, 4, RGN_FRAC(0x40000, 1,2), RGN_FRAC(0x40000, 1,2)+4 };
INT32 Plane2[4] = { 0, 4, RGN_FRAC(0x40000, 1,2), RGN_FRAC(0x40000, 1,2)+4 };
INT32 XOffs[16] = { STEP4(0,1), STEP4(8,1), STEP4(16,1), STEP4(24,1) };
INT32 YOffs0[8] = { STEP8(0,16) };
INT32 YOffs1[16] = { STEP16(0,32) };
UINT8 *tmp = (UINT8*)BurnMalloc(0x40000);
if (tmp == NULL) {
return 1;
}
memcpy (tmp, DrvGfxROM0, 0x04000);
GfxDecode(0x0200, 4, 8, 8, Plane0, XOffs, YOffs0, 0x080, tmp, DrvGfxROM0);
memcpy (tmp, DrvGfxROM1, 0x40000);
GfxDecode(0x0800, 4, 16, 16, Plane1, XOffs, YOffs1, 0x200, tmp, DrvGfxROM1);
memcpy (tmp, DrvGfxROM2, 0x40000);
GfxDecode(0x0800, 4, 16, 16, Plane2, XOffs, YOffs1, 0x200, tmp, DrvGfxROM2);
BurnFree (tmp);
return 0;
}
示例8: crushermInit
static INT32 crushermInit()
{
INT32 nLen;
BurnSetRefreshRate(CAVE_REFRESHRATE);
// Find out how much memory is needed
Mem = NULL;
MemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
return 1;
}
memset(Mem, 0, nLen); // blank all memory
MemIndex(); // Index the allocated memory
// Load the roms into memory
if (crushermLoadRoms()) {
return 1;
}
EEPROMInit(&eeprom_interface_93C46_8bit);
{
SekInit(0, 0x68000); // Allocate 68000
SekOpen(0);
// Map 68000 memory:
SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
SekMapMemory(CaveTileRAM[0], 0x100000, 0x107FFF, MAP_RAM);
SekMapMemory(CaveSpriteRAM, 0x180000, 0x187FFF, MAP_RAM);
SekMapMemory(CavePalSrc, 0x200000, 0x207FFF, MAP_RAM);
SekMapMemory(Ram01, 0x340000, 0x34FFFF, MAP_RAM);
SekSetReadWordHandler(0, korokoroReadWord);
SekSetReadByteHandler(0, korokoroReadByte);
SekSetWriteWordHandler(0, korokoroWriteWord);
SekSetWriteByteHandler(0, korokoroWriteByte);
SekClose();
}
nCaveRowModeOffset = 1;
CavePalInit(0x8000);
CaveTileInit();
CaveSpriteInit(1, 0x400000);
CaveTileInitLayer(0, 0x200000, 4, 0x4400);
YMZ280BInit(16934400, &TriggerSoundIRQ, 0x200000);
YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
bDrawScreen = true;
DrvDoReset(); // Reset machine
return 0;
}
示例9: DrvGfxDecode
static INT32 DrvGfxDecode()
{
INT32 Plane0[4] = { 0x200000, 0x300000, 0x000000, 0x100000 };
INT32 XOffs0[8] = { 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007 };
INT32 YOffs0[8] = { 0x038, 0x030, 0x028, 0x020, 0x018, 0x010, 0x008, 0x000 };
INT32 Plane1[4] = { 0x000004, 0x000000, 0x100004, 0x100000 };
INT32 XOffs1[16] = { 0x10b, 0x10a, 0x109, 0x108, 0x103, 0x102, 0x101, 0x100,
0x00b, 0x00a, 0x009, 0x008, 0x003, 0x002, 0x001, 0x000 };
INT32 YOffs1[16] = { 0x0f0, 0x0e0, 0x0d0, 0x0c0, 0x0b0, 0x0a0, 0x090, 0x080,
0x070, 0x060, 0x050, 0x040, 0x030, 0x020, 0x010, 0x000 };
UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
if (tmp == NULL) {
return 1;
}
for (INT32 i = 0; i < 0x80000; i++) tmp[i] = DrvGfxROM0[i] ^ 0xff;
GfxDecode(0x4000, 4, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
for (INT32 i = 0; i < 0x40000; i++) tmp[i] = DrvGfxROM1[i] ^ 0xff;
GfxDecode(0x0800, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x200, tmp, DrvGfxROM1);
BurnFree (tmp);
return 0;
}
示例10: Sf2mdtSoundInit
INT32 Sf2mdtSoundInit()
{
Sf2mdtZ80Ram = (UINT8*)BurnMalloc(0x800);
ZetInit(0);
ZetOpen(0);
ZetSetReadHandler(Sf2mdtZ80Read);
ZetSetWriteHandler(Sf2mdtZ80Write);
ZetMapArea(0x0000, 0x7fff, 0, CpsZRom + 0x00000);
ZetMapArea(0x0000, 0x7fff, 2, CpsZRom + 0x00000);
ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + 0x08000);
ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + 0x08000);
ZetMapArea(0xd000, 0xd7ff, 0, Sf2mdtZ80Ram );
ZetMapArea(0xd000, 0xd7ff, 1, Sf2mdtZ80Ram );
ZetMapArea(0xd000, 0xd7ff, 2, Sf2mdtZ80Ram );
ZetClose();
BurnYM2151Init(3579540);
BurnYM2151SetAllRoutes(0.35, BURN_SND_ROUTE_BOTH);
MSM5205Init(0, Sf2mdtSynchroniseStream, 24000000 / 64, Sf2mdtMSM5205Vck0, MSM5205_S96_4B, 1);
MSM5205Init(1, Sf2mdtSynchroniseStream, 24000000 / 64, Sf2mdtMSM5205Vck1, MSM5205_S96_4B, 1);
MSM5205SetRoute(0, 0.25, BURN_SND_ROUTE_BOTH);
MSM5205SetRoute(1, 0.25, BURN_SND_ROUTE_BOTH);
nCpsZ80Cycles = 3579540 * 100 / nBurnFPS;
Sf2mdtNumZ80Banks = (nCpsZRomLen / 0x4000) - 1;
return 0;
}
示例11: DrvInit
static INT32 DrvInit()
{
GenericTilesInit();
AllMem = NULL;
MemIndex();
INT32 nLen = MemEnd - (UINT8 *)0;
if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(AllMem, 0, nLen);
MemIndex();
{
if (BurnLoadRom(Drv68KROM + 0x000000, 0, 1)) return 1;
if (BurnLoadRom(Drv68KROM + 0x080000, 1, 1)) return 1;
if (BurnLoadRom(DrvGfxROM + 0x000000, 2, 2)) return 1;
if (BurnLoadRom(DrvGfxROM + 0x000001, 3, 2)) return 1;
if (BurnLoadRom(DrvGfxROM + 0x100000, 4, 2)) return 1;
if (BurnLoadRom(DrvGfxROM + 0x100001, 5, 2)) return 1;
if (BurnLoadRom(YMZ280BROM + 0x000000, 6, 1)) return 1;
if (BurnLoadRom(YMZ280BROM + 0x080000, 7, 1)) return 1;
if (BurnLoadRom(YMZ280BROM + 0x100000, 8, 1)) return 1;
if (BurnLoadRom(YMZ280BROM + 0x180000, 9, 1)) return 1;
DrvGfxDecode();
}
SekInit(0, 0x68000);
SekOpen(0);
SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
SekMapMemory(Drv68KRAM, 0x400000, 0x407fff, MAP_RAM);
SekMapMemory(DrvPalRAM, 0xb00000, 0xb03fff, MAP_RAM);
SekMapMemory(DrvPalRAM, 0xb04000, 0xb047ff, MAP_ROM);
SekSetWriteWordHandler(0, bishi_write_word);
SekSetWriteByteHandler(0, bishi_write_byte);
SekSetReadWordHandler(0, bishi_read_word);
SekSetReadByteHandler(0, bishi_read_byte);
SekClose();
K055555Init();
K054338Init();
K056832Init(DrvGfxROM, DrvGfxROMExp, 0x200000, bishi_tile_callback);
K056832SetGlobalOffsets(29, 16);
K056832SetLayerOffsets(0, -2, 0);
K056832SetLayerOffsets(1, 2, 0);
K056832SetLayerOffsets(2, 4, 0);
K056832SetLayerOffsets(3, 6, 0);
K056832SetLayerAssociation(0);
YMZ280BInit(16934400, bishi_sound_irq);
YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
DrvDoReset();
return 0;
}
示例12: DrvInit
static INT32 DrvInit()
{
INT32 nLen;
#ifdef DRIVER_ROTATION
bToaRotateScreen = false;
#endif
nGP9001ROMSize[0] = 0x800000;
// Find out how much memory is needed
Mem = NULL;
MemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
return 1;
}
memset(Mem, 0, nLen); // blank all memory
MemIndex(); // Index the allocated memory
// Load the roms into memory
if (LoadRoms()) {
return 1;
}
{
SekInit(0, 0x68000); // Allocate 68000
SekOpen(0);
SekMapMemory(Rom01, 0x000000, 0x07FFFF, SM_ROM);
SekMapMemory(Ram01, 0x100000, 0x103FFF, SM_RAM);
SekMapMemory(RamPal, 0x400000, 0x400FFF, SM_RAM);
SekSetReadWordHandler(0, kbash2ReadWord);
SekSetReadByteHandler(0, kbash2ReadByte);
SekSetWriteWordHandler(0, kbash2WriteWord);
SekSetWriteByteHandler(0, kbash2WriteByte);
SekClose();
}
MSM6295Init(0, 1000000 / 132, 100.0, 1);
MSM6295Init(1, 1000000 / 132, 100.0, 1);
nSpriteYOffset = 0x0011;
nLayer0XOffset = -0x01D6;
nLayer1XOffset = -0x01D8;
nLayer2XOffset = -0x01DA;
ToaInitGP9001();
nToaPalLen = nColCount;
ToaPalSrc = RamPal;
ToaPalInit();
bDrawScreen = true;
DrvDoReset(); // Reset machine
return 0;
}
示例13: DrvInit
static int DrvInit()
{
int nLen;
BurnSetRefreshRate(CAVE_REFRESHRATE);
// Find out how much memory is needed
Mem = NULL;
MemIndex();
nLen = MemEnd - (unsigned char *)0;
if ((Mem = (unsigned char *)BurnMalloc(nLen)) == NULL) {
return 1;
}
memset(Mem, 0, nLen); // blank all memory
MemIndex(); // Index the allocated memory
EEPROMInit(&eeprom_interface_93C46_8bit);
// Load the roms into memory
if (LoadRoms()) {
return 1;
}
{
SekInit(0, 0x68000); // Allocate 68000
SekOpen(0);
// Map 68000 memory:
SekMapMemory(Rom01, 0x000000, 0x07FFFF, SM_ROM); // CPU 0 ROM
SekMapMemory(CaveTileRAM[0], 0x100000, 0x107FFF, SM_RAM);
SekMapMemory(CaveSpriteRAM, 0x180000, 0x187FFF, SM_RAM);
SekMapMemory(CavePalSrc, 0x200000, 0x207FFF, SM_RAM);
SekMapMemory(Ram01, 0x300000, 0x30FFFF, SM_RAM);
SekSetReadWordHandler(0, korokoroReadWord);
SekSetReadByteHandler(0, korokoroReadByte);
SekSetWriteWordHandler(0, korokoroWriteWord);
SekSetWriteByteHandler(0, korokoroWriteByte);
SekClose();
}
nCaveRowModeOffset = 1;
CavePalInit(0x8000);
CaveTileInit();
CaveSpriteInit(1, 0x300000);
CaveTileInitLayer(0, 0x200000, 4, 0x4400);
YMZ280BInit(16934400, &TriggerSoundIRQ, 3);
bDrawScreen = true;
DrvDoReset(); // Reset machine
return 0;
}
示例14: CpsInit
INT32 CpsInit()
{
INT32 nMemLen, i;
if (Cps == 2)
BurnSetRefreshRate(59.629403);
if (!nCPS68KClockspeed) {
nCPS68KClockspeed = 11800000;
}
nCPS68KClockspeed = nCPS68KClockspeed * 100 / nBurnFPS;
nMemLen = nCpsGfxLen + nCpsRomLen + nCpsCodeLen + nCpsZRomLen + nCpsQSamLen + nCpsAdLen;
// Allocate Gfx, Rom and Z80 Roms
CpsGfx = (UINT8*)BurnMalloc(nMemLen);
if (CpsGfx == NULL) {
return 1;
}
memset(CpsGfx, 0, nMemLen);
CpsRom = CpsGfx + nCpsGfxLen;
CpsCode = CpsRom + nCpsRomLen;
CpsZRom = CpsCode + nCpsCodeLen;
CpsQSam =(INT8*)(CpsZRom + nCpsZRomLen);
CpsAd =(UINT8*)(CpsQSam + nCpsQSamLen);
// Create Gfx addr mask
for (i = 0; i < 31; i++) {
if ((1 << i) >= (INT32)nCpsGfxLen) {
break;
}
}
nCpsGfxMask = (1 << i) - 1;
// Offset to Scroll tiles
nCpsGfxScroll[1] = nCpsGfxScroll[2] = nCpsGfxScroll[3] = 0x800000;
#if 0
if (nCpsZRomLen>=5) {
// 77->cfff and rst 00 in case driver doesn't load
CpsZRom[0] = 0x3E; CpsZRom[1] = 0x77;
CpsZRom[2] = 0x32; CpsZRom[3] = 0xFF; CpsZRom[4] = 0xCF;
CpsZRom[5] = 0xc7;
}
#endif
SepTableCalc(); // Precalc the separate table
CpsReset = 0; Cpi01A = Cpi01C = Cpi01E = 0; // blank other inputs
// Use this as default - all CPS-2 games use it
SetCpsBId(CPS_B_21_DEF, 0);
return 0;
}
示例15: pic16c5xInit
void pic16c5xInit(INT32 /*nCPU*/, INT32 type, UINT8 *mem)
{
DebugCPU_PIC16C5XInitted = 1;
nPic16c5xCpuType = type;
pic16c5xDoReset(type, &rom_address_mask, &ram_address_mask);
pic16c5x_rom = mem;
pic16c5x_ram = (UINT8*)BurnMalloc(ram_address_mask + 1);
}