Mini update

Nostalgia ain't what it used to be...
Post Reply
User avatar
Markie
Baaaaaaa!
Baaaaaaa!
Posts: 8004
Joined: Tue Apr 23, 2002 7:30 pm 0
Location: OX ford
Contact:

Re: Mini update

Post by Markie »

gilesgoat wrote:
Markie wrote:
gilesgoat wrote:I fear "someone can't wait to make an annoucement" .. but it's not me .. but I think you'll hear something about it .. soon ..
Are we to be mowing lawns sometime soon then? ;-) :skip:
That's ANOTHER thing ... "an extra" ... :wink:
I'LL TAKE THAT! :skip: :tea:
User avatar
Rhythm
Baaaaaaa!
Baaaaaaa!
Posts: 6124
Joined: Tue Sep 28, 2004 11:57 am 0
Location: Limbo

Re: Mini update

Post by Rhythm »

gilesgoat wrote: I fear "someone can't wait to make an annoucement" .. but it's not me .. but I think you'll hear something about it .. soon ..
Oh man, hope it's what I caught a glimpse of last year :-D
Steam: SteelyDamn
User avatar
Markie
Baaaaaaa!
Baaaaaaa!
Posts: 8004
Joined: Tue Apr 23, 2002 7:30 pm 0
Location: OX ford
Contact:

Re: Mini update

Post by Markie »

Rhythm wrote:
gilesgoat wrote: I fear "someone can't wait to make an annoucement" .. but it's not me .. but I think you'll hear something about it .. soon ..
Oh man, hope it's what I caught a glimpse of last year :-D
Feel free to expand! :-)
User avatar
Rhythm
Baaaaaaa!
Baaaaaaa!
Posts: 6124
Joined: Tue Sep 28, 2004 11:57 am 0
Location: Limbo

Re: Mini update

Post by Rhythm »

Bah, just seen Jeff's latest Tweet and it's probs not what I saw. Dammit :-D
Steam: SteelyDamn
User avatar
Misfit
Sheepie Whore
Sheepie Whore
Posts: 10446
Joined: Sat Sep 28, 2002 2:43 pm 0
Location: Nottingham UK
Contact:

Re: Mini update

Post by Misfit »

Rhythm wrote:Bah, just seen Jeff's latest Tweet and it's probs not what I saw. Dammit :-D
But classic arcade lawn mowing is pretty exciting isn’t it?
User avatar
Markie
Baaaaaaa!
Baaaaaaa!
Posts: 8004
Joined: Tue Apr 23, 2002 7:30 pm 0
Location: OX ford
Contact:

Re: Mini update

Post by Markie »

HoverBovver is cool, nice remake, anyone know how to load it? and onto what?
User avatar
Rhythm
Baaaaaaa!
Baaaaaaa!
Posts: 6124
Joined: Tue Sep 28, 2004 11:57 am 0
Location: Limbo

Re: Mini update

Post by Rhythm »

Misfit wrote:
Rhythm wrote:Bah, just seen Jeff's latest Tweet and it's probs not what I saw. Dammit :-D
But classic arcade lawn mowing is pretty exciting isn’t it?
It is, but man do I want the other project to come to fruition
Steam: SteelyDamn
User avatar
Misfit
Sheepie Whore
Sheepie Whore
Posts: 10446
Joined: Sat Sep 28, 2002 2:43 pm 0
Location: Nottingham UK
Contact:

Re: Mini update

Post by Misfit »

https://www.dropbox.com/s/6v1pva07b621plw/scramble.zip

From the readme.txt file:
WHAT THE SMEG IS THIS?

It's a version of Hover Bovver made for Galaxian/Scramble arcade hardware.

WHY'VE YOU MADE THIS YOU DAFT TWONK?

Just for fun. Back in the dawn of time me and the Naughurst Piano Wizard used to go down the Hinds Head in Aldermaston village for a few beers and while there we'd usually play a bit of bar bills and also a few games of whatever was on the cocktail cab in there. It'd usually be some strangeness built on Galaxian/Scramble hardware, I recall playing stuff in there like Checkman, Uniwar S, Scorpion - that kind of thing.
A few years later when we did Hover Bovver I remember thinking it'd've probably gone well on that kind of hardware, I could just imagine playing it on the tabletop cab down the Hinds Head.
Fast forward far too long and I was browsing the web one day and came across the 8bitworkshop.com site where they had an in-browser IDE supporting, amongst other things, Galaxian/Scramble hardware. I had a look and there wasn a little example program that showed how the machine worked.
I pulled that apart to learn for myself, and before I knew it I'd started coding Hover Bovver, in odd spare moments.

IS IT COMPLETE?

In terms of gameplay, pretty much, there are 8 lawns to mow and the traditional Hover Bovver gameplay is there. At the moment there is no audio, in part because when we add audio it'll make the game more machine specific as Galaxian audio is much simpler than Scramble audio.
As it is, the build is near identical for Scramble hardware or Galaxian hardware (with 16k program rom). Eventually we'll do builds for each with sound.

WILL IT WORK ON REAL HARDWARE?

We think it ought! We've actually bought Galaxian and Scramble boards, and we'll be trying it out on those when we can. Galaxian would need modded to run 16k program ROM but that didn't ought to be too hard (Giles says). This ROM runs on the latest MAME, which I would think is a decent indicator that it'll work on real hardware, given that Galaxian/Scramble must be some of the best emulated stuff out there given how old it is and how long it's successfully been emulated.

Enjoy, have fun, let me know if you have any problems with it or find anything in the gameplay egregiously bad, maybe I can fix it.

There's not a huge amount of room to add more, the game is almost full to the 16k brim. I am sure if written in proper assembler it could probably be made to fit in a lot less memory. I have been lazy and just using the C compiler in the 8bitworkshop IDE, which makes for relaxed tinkering but which isn't necessarily optimal.

There are a couple of "hidden bonuses" in the game, "DOGLESS" and "VINDICTIVE". I'll let you find out for yourselves how to get them. Combine them both for maximum bonus points!
User avatar
Whiteball
Baaaaa!
Baaaaa!
Posts: 1810
Joined: Sat Nov 24, 2007 12:39 pm 0
Location: At the computer

Re: Mini update

Post by Whiteball »

Firing this up now. Looks pretty nice from the Twitter posts....
User avatar
Whiteball
Baaaaa!
Baaaaa!
Posts: 1810
Joined: Sat Nov 24, 2007 12:39 pm 0
Location: At the computer

Re: Mini update

Post by Whiteball »

Come on Giles hurry up with that audio :D :D

Must say I like it, but did get cuaght out by the diagonal movement and occasional turn that flung me into the flowers unexpectedly.

Top stuff!
User avatar
Markie
Baaaaaaa!
Baaaaaaa!
Posts: 8004
Joined: Tue Apr 23, 2002 7:30 pm 0
Location: OX ford
Contact:

Re: Mini update

Post by Markie »

Whiteball wrote:Come on Giles hurry up with that audio :D :D

Must say I like it, but did get cuaght out by the diagonal movement and occasional turn that flung me into the flowers unexpectedly.

Top stuff!
And how are you running the game? I'm completely lost lol
User avatar
Whiteball
Baaaaa!
Baaaaa!
Posts: 1810
Joined: Sat Nov 24, 2007 12:39 pm 0
Location: At the computer

Re: Mini update

Post by Whiteball »

The zip file is loaded as you would normally load a game using mame.

Personally, RetroArch is what I use as I have that set up already so I just put the zip in the folder along with all my other roms and select it from there.
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Mini update

Post by gilesgoat »

Whiteball wrote:Come on Giles hurry up with that audio :D :D

Must say I like it, but did get cuaght out by the diagonal movement and occasional turn that flung me into the flowers unexpectedly.

Top stuff!
I am GETTING TOTALLY STUPID with the second CPU .. even IF, for our "real HW purpose" I know how I could disable that crap ..

The CRAP seems to be "Custom IC 6J KIOS" as in the schematics that is a sort of "protection PAL", as you look at the schematics you'll note it seems to drive/get an "RESTS" line ( I suppose it's open collector ) that goes directly into the secondary Z80 board.

After a whole morning of "vaffanculonism" where NOTHING was even remotely working ( and that IDE does NOT allow to check/test this thing ) .. I got a suspect "don't tell me that chip drives that reset line" ? .. which apparently it does ...

After lot more fanculonism thanks to the disassembly of the original Scramble code done by someone I manage to extrapolate/create this :

Code: Select all

void Protection() __naked {
__asm

//
//  Invoked from CLEAR_RAM_THEN_JP_0069
//
//
//
		push 	ix
		ld	ix,#0x421E
		
		ld   a,(#0x7000)             // kick watchdog
		xor  a
		ld   (#0x6801),a             // disable interrupts 


		ld   a,#0x9B
		ld   (#0x8103),a             // does nothing
		ld   a,#0x88
		ld   (#0x8203),a             // does nothing
		ld   a,#0x08
//		ld   (#0x4242),a             // set IRQTRIGGER_CTRL
		ld   (#0x8201),a             // bit 3 = interrupt trigger on audio CPU


// 007B: 31 00 48    ld   sp,$4800

// Protection related code. 
// It appears the protection chip needs specific values in a specific sequence to be written to it,
// in order to return a specific value indicating that the protection check succeeded (see $00C0)
//
// I wonder if the protection chip would reset the system if it doesnt get the values written to it in the correct sequence?
// Or would it lock the system completely? 

	    	ld   a,#0x28
		rlca
		add  a,#0x32
		ld   h,a
		and  #0x0F
		ld   l,a
		add  a,#0x0D
		ld   (hl),a                 // write $0F to protection                

		ld   b,#0x07
		ld   e,#0x09
_dlp:
        	ld   c,a
		ld   d,a
		djnz _dlp
		ld   (hl),b                 // write 0 to protection

// It appears the scramble hardware sets IX to $421E when the system boots up (ie: hits address 0). 
		ld   b,#0x03
_rdlp:		ld   c,3(ix)            	// read from $4221  
		djnz _rdlp
		ld   (hl),a                // write $0F to protection  

		ld   e,c
		ld   (hl),b                // write 0 to protection
		ld   b,#0xFA
		add  a,b
		ld   (hl),a                 // write $09 to protection

		ld   c,#0x10
		ld   b,#0x20
		add  a,c
		add  a,b
		ld   e,(hl)                // reads $F9 from protection...
		ld   a,#0xF0
		and  e                     // produces $F0..
		cpl                        // produces $0F..
		and  #0xF0                 // produces 0. Or should do - if it doesn't, protection kicks in.

// 00AE: C0          ret  nz                    ; return if protection is triggered. Someone's hacking.

		ld   h,#0x82
		ld   a,h
		and  #0x3F
		ld   l,a                   // set HL to $8202 (protection)
		ld   (hl),#0x0A            // write 10 to protection 
		add  a,#0x02
		ld   (hl),a                // write 4 to protection
		add  a,#0x05
		ld   (hl),a                // write 9 to protection
		ld   a,(hl)                // reads $B9 from protection check
		and  #0xF0                 // produces $B0 
		cp   #0xB0                 // compare to $B0, which is value if protection check succeeds

// 00C2: C2 DC 05    jp   nz,$05DC              ; if protection check does not succeed, corrupt memory state by jumping to text strings, not code..

// When we get here, the preliminary protection checks have passed. 

		ld   a,(#0x7000)             // kick watchdog
		xor  a
		inc  a
		
		ld   (#0x6801),a             // enable interrupts 

		pop	ix
		ret
		
__endasm;

}

Apparently if you don't run at least once that crap the second CPU NEVER STARTS in some way I have NOT managed to find out exactly where the MAME emulator emulates this too.

Now for our "custom code" we don't give a shit but if the second CPU keeps in reset state you can't run any audio code.

Now I still have shit, still investigating .. it would LOOK LIKE IF "after X time" probably that PAL wants "something else" maybe at some intervals otherwise it resets again ?

I have very odd behaviour with my SW and LOOKS LIKE "something is resetting the CPU" or such, not sure yet but I am absolutely sure the audio CPU don't even start if I don't run that "Protection()" at least once at startup.

The Scramble code does "shit" with it "in many places" and every time seems to do "something different", I found out one part in the MAME sources where "they kinda say what that custom chip does" but they don't say/mention anything about that RESETS line so I am not super sure what's going on yet.

So yeah the audio is making me a bit nuts at the moment ..
Giles the billy goat
"Baa"
User avatar
Jamesac
Baaaaaaa!
Baaaaaaa!
Posts: 6677
Joined: Thu Jun 19, 2003 7:23 am 0
Location: Maine
Contact:

Re: Mini update

Post by Jamesac »

Markie wrote:
Whiteball wrote:Come on Giles hurry up with that audio :D :D

Must say I like it, but did get cuaght out by the diagonal movement and occasional turn that flung me into the flowers unexpectedly.

Top stuff!
And how are you running the game? I'm completely lost lol
I tossed the zip file into the ROMs directory of MAME. Seeing as it was named Scramble I chose Scramble from the MameUI games list and ran that. It grumbled a bit about the ROM being wrong but then ran it with no complaints.
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Mini update

Post by gilesgoat »

Markie wrote:
Whiteball wrote:Come on Giles hurry up with that audio :D :D

Must say I like it, but did get cuaght out by the diagonal movement and occasional turn that flung me into the flowers unexpectedly.

Top stuff!
And how are you running the game? I'm completely lost lol
You get the ROMs file ( or you zip ALL the individual rom files ) into "scramble.zip" then you put into the "roms" directory of MAME ( of course you'll need to re-name the original scramble.zip ROM into something like "scramble-orig.zip" if you don't want to loose it.

Then you run "MAME scramble" from command line and/or GUI interface but the GUI could refuse to run the ROMs for "non matching CRC and SHA-1 signature".

HAS TO BE SAID I did/could compute the CRC-32 and SHA-1 signature BUT, the PROBLEM is that "the silly mame" gets the "roms definitions and expected CRCs/SHA-1" DIRECTLY FROM THE SOURCES, i.e. they are contained in scramble.cpp/galaxian.cpp "hard coded" AND it would appear in some .XML file too.

However without creating a NEW "definition" and a "new" modified "driver" ( and re-compiling it all ) there's no way to make those roms being recognized as "something else legit".

Which means "compiling a new version of MAME" this to me is a bit of a "bad planning" on the MAME sources.
Giles the billy goat
"Baa"
Post Reply