the end


vlait

Recommended Posts

The reason for missing sound and player missile is of course the difference in hardware, The End would need all galaxian missiles and the 8255 addressing is a bit more relaxed than in scramble.

i have had almost 10 years to look at the vhdl source for both galaxian and scramble but have managed to avoid it so far and i am shamed to admit i can't follow the scramble code at all :/

would someone be kind enough to to take a peek at mame source (the end is in galaxian game/machine/video drivers) or schematics for the end (they're supposedly available, could not find them) and propose a fix.I'd assume scramble code would be easier to modify as it is the later revision of galaxian hardware.

I'll be happy to try and hack together something come next weekend with some spare hours but someone more experienced with hardware might actually come up with readable code :)

br,

-Ville

Link to comment
Share on other sites

"Scramble" uses a 1 pixel missle, where as "The End" uses 4 pixels.

not sure how you can update the code to fix it tho.

wouldn't we need a new bitfile to inject the rom into?

since the missle is so different than the scramble one.

The End Schematics:: http://arcarc.xmissi..._Schematics.pdf

-- MISSLE bits are middle bottom of page 1, and bottom left of page 2

Scramble Schematics:: http://www.jrok.com/...amble_schem.pdf

looking at mame source, http://mamedev.org/s...galaxian.c.html specifically,


1183 void scramble_draw_bullet(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y)
1184 {
1185 /*
1186 Scramble only has "shells", which begin displaying when the counter
1187 reaches $FA, and stop displaying one pixel clock layer. All shells are
1188 rendered as yellow.
1189 */
1190 x -= 6;
1191 galaxian_draw_pixel(bitmap, cliprect, y, x, MAKE_RGB(0xff,0xff,0x00));
1192 }

adjust x, draw pixel, and thats that. (bullet only not bomb)


1195 void theend_draw_bullet(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y)
1196 {
1197 galaxian_state *state = machine.driver_data<galaxian_state>();
1198 /* Same as galaxian except blue/green are swapped */
1199 x -= 4;
1200 galaxian_draw_pixel(bitmap, cliprect, y, x++, MAKE_RGB(RGB_RED(state->m_bullet_color[offs]), RGB_BLUE(state->m_bullet_color[offs]), RGB_GREEN(state->m_bullet_color[offs])));
1201 galaxian_draw_pixel(bitmap, cliprect, y, x++, MAKE_RGB(RGB_RED(state->m_bullet_color[offs]), RGB_BLUE(state->m_bullet_color[offs]), RGB_GREEN(state->m_bullet_color[offs])));
1202 galaxian_draw_pixel(bitmap, cliprect, y, x++, MAKE_RGB(RGB_RED(state->m_bullet_color[offs]), RGB_BLUE(state->m_bullet_color[offs]), RGB_GREEN(state->m_bullet_color[offs])));
1203 galaxian_draw_pixel(bitmap, cliprect, y, x++, MAKE_RGB(RGB_RED(state->m_bullet_color[offs]), RGB_BLUE(state->m_bullet_color[offs]), RGB_GREEN(state->m_bullet_color[offs])));
1204 }

adjust x, ((draw pixel,increment x),(draw pixel,increment x),(draw pixel,increment x),(draw pixel,increment x))

-- which makes sense, since the screen is flipped.

Link to comment
Share on other sites

thanks for the schematics links... i feel really silly after trying to find a difference in the audio hardware and only after trying

to run The End on Scramble driver in mame i realized the audio roms aren't concatenated in the correct order :D

change :

%romgen_path%\romgen %rom_path_src%\ic55_2.bin ROM_SND_0 11 m r e > %temp_path%\ROM_SND_0.mem

%romgen_path%\romgen %rom_path_src%\ic56_1.bin ROM_SND_1 11 m r e > %temp_path%\ROM_SND_1.mem

%romgen_path%\romgen %rom_path_src%\ic56_1.bin ROM_SND_2 11 m r e > %temp_path%\ROM_SND_2.mem

to:

%romgen_path%\romgen %rom_path_src%\ic56_1.bin ROM_SND_0 11 m r e > %temp_path%\ROM_SND_0.mem

%romgen_path%\romgen %rom_path_src%\ic55_2.bin ROM_SND_1 11 m r e > %temp_path%\ROM_SND_1.mem

%romgen_path%\romgen %rom_path_src%\ic56_1.bin ROM_SND_2 11 m r e > %temp_path%\ROM_SND_2.mem

in the merge/build scripts.

or

<!-- Uses groups as input and creates intermediate mem files by name specified in file atribute-->

<generate src="maincpu" file="ROM_PGM" parameters="entity=ROM_PGM;addrbits=14" />

<generate src="ic55" file="ROM_SND_0" parameters="entity=ROM_SND_0;addrbits=11" />

<generate src="ic56" file="ROM_SND_1" parameters="entity=ROM_SND_1;addrbits=11" />

to

<!-- Uses groups as input and creates intermediate mem files by name specified in file atribute-->

<generate src="maincpu" file="ROM_PGM" parameters="entity=ROM_PGM;addrbits=14" />

<generate src="ic56" file="ROM_SND_0" parameters="entity=ROM_SND_0;addrbits=11" />

<generate src="ic55" file="ROM_SND_1" parameters="entity=ROM_SND_1;addrbits=11" />

in Arcade Blaster's games.xml.

Link to comment
Share on other sites

No luck on the missile front yet I'm afraid... will try to find time over the weekend.

The starfield should be scrolling so there is some work to do as well.

For anyone interested in the logic the galaxian core should have more almost exactly the same missile/star portion as The End.

br,

-V

Link to comment
Share on other sites

Ok, I just added your audio fix to the Arcade Blaster source code. We will be doing a V1.2 release today with the following:

8/14/2012 Version 1.2

Adds following games:

-Galaxian

-Space Invaders

Fixes audio for The End

8/13/2012 Version 1.1

Adds following games:

-Hangly Man 1-3

-PuckMan

-PacMan Fast

-Caterpillar

Thank you all for the contributions!

Jack.

Link to comment
Share on other sites

the missile logic is easy enough to add but the source is for bullets to be one bit high and the source is written for that in mind, ie there is one 8-bit wide counter.

In the Scramble schematics there are 2 161's with Qd from the first one driving T and RC driving P of the second one.

!SHELL is RC from the higher 161 & SLD & Qb of the lower 161

in The End however !SHELL is RC from the higher 161 counter & SLD & Qc of the lower 161

I'm too thick to figure out a nice way around this without changing the code to actually use 2 4-bit counters...

if anyone has any input it's welcomed :)

My apologies for anyone reading this far... I'm trying my best to learn enough not to sound like an idiot :)

br,

-V

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.