Hi NeoHomeBrew,
thanks for your playing test on real machine, I'm glad that you enjoyed with this last version.
Still have a lot of work and bugfix to do on NeoPhoenix.
I hope to find some spare time on bug fixed Rel.009 in the future.
It's very funny work on this little project for me
There aren't any cheat or god-mode.
After you complete wave 5, it cycles again back to wave 1.
The only difference is in some of the scores and the enemies get faster.
Phoenix FAQ:
http://www.gamefaqs.com/arcade/564009-phoenix/faqs/26630The "Insert Coin" functionality it's very simple, I read the NeoGeo ram button mapping with poll_joystick() and send the result code through hexdata var into Phoenix's hardware emulated ram and the Z80 emu do the rest.
Here's the code:
DWORD input;
// z80 emulator functions
// Reading from buttons
unsigned Z80_RDMEM (dword A)
{
hexdata = 0xff;
// $0000-$3FFF ROM
if (A < 0x4000)
return PHOENIX_ROM[A];
else
// $4000-$4FFF RAM/VRAM
if (A < 0x5000)
return (RAM[A-0x4000]);
else
if (A < 0x7000)
return (0xFF);
else
// $7000-$73FF Buttons
if (A < 0x7400)
{
// Reading from buttons port
input = poll_joystick(PORT1, READ_BIOS);
if (input & JOY_LEFT ) {
//exdata &= ~(1<<6);
hexdata &=~0x40;
}
if (input & JOY_RIGHT ) {
//hexdata &= ~(1<<5);
hexdata &=~0x20;
}
if (input & JOY_A ) {
//hexdata &= ~(1<<4); // fire
hexdata &=~0x10;
}
if (input & JOY_B ) {
//hexdata &= ~(1<<7); // shield
hexdata &=~0x80;
}
if (input & JOY_START){
//hexdata &= ~(1<<1); // 1p start
hexdata &=~0x02;
}
if (input & JOY_SELECT){
// hexdata &= ~(1<<0); // coin 1
hexdata &=~0x01;
}
return (hexdata);
}
else
if (A < 0x7800)
return (0xFF);
else
// unmapped
return (0xFF);
}
Grazie!
Ciao
BEY