Charles MacDonald's Satvaders

vbt

Staff member
I've compiled it and it runs fine 🙂
 

Attachments

  • satvaders.jpg
    satvaders.jpg
    50.3 KB · Views: 78
Would someone help to replace the Z80 core with cz80 ?

I tried but it crashes before displaying the big invader.

Here is what i did :


Cz80_Init(&Cz80_struc);

Cz80_Set_Fetch(&Cz80_struc, 0x0000, 0x1fff, (u32)&ram[0x0000]);

Cz80_Set_ReadB(&Cz80_struc,(CZ80_READ *)&cpu_readmem8);

Cz80_Set_WriteB(&Cz80_struc,cpu_writemem8);

Cz80_Set_ReadW(&Cz80_struc,(CZ80_READ *)&cpu_readmem16);

Cz80_Set_WriteW(&Cz80_struc,cpu_writemem16);


Cz80_Set_INPort(&Cz80_struc,(CZ80_READ *)&cpu_readport16);

Cz80_Set_OUTPort(&Cz80_struc,(CZ80_WRITE *)&cpu_writeport16);

Cz80_Set_IRQ_Callback(&Cz80_struc,sms_irq_callback);

Cz80_Reset(&Cz80_struc);


...


Cz80_Exec(&Cz80_struc,228*262);

Cz80_Set_IRQ(&Cz80_struc, 1);

Cz80_Clear_IRQ(&Cz80_struc);


...


unsigned int cpu_readport16(unsigned int port)

{

return 0xFF;

}


void cpu_writeport16(unsigned int port, unsigned int data)

{

}


static u8 cpu_readmem8(unsigned int address)

{

return ram[address&0xffff];

}


static unsigned short cpu_readmem16(unsigned int address)

{

return cpu_readmem8(address) | (cpu_readmem8(address + 1) << 8);

}


static void cpu_writemem8(unsigned int address, unsigned int data)

{

ram[address&0xffff]=data;

}


static void cpu_writemem16(unsigned int address, unsigned int data)

{

cpu_writemem8(address, data & 0xFF);

cpu_writemem8(address + 1, data >> 8);

}


instead of


z80_reset(0);


...


z80_execute(228*262);

z80_set_irq_line(0, ASSERT_LINE);

z80_set_irq_line(0, CLEAR_LINE);


...


#define cpu_readop(a) ram[(a)]

#define cpu_readop_arg(a) ram[(a)]

#define cpu_readmem16(a) ram[(a)]

#define cpu_writemem16(a,v) ram[(a)]=(v)
 
Back
Top