56Fermer58
BEYLe 22/08/2014 à 11:28
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 oui

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/26630


The "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