Rally-x freeplay with attract mode?

also if you need a z80 assembler
I HIGHLY recommend this
http://www.oshonsoft.com/z80.html

I think I paid like $15 or $20 for it. it's a nice z80 assembler.

-brian

oh I just looked at the code you posted

if your notes are correct then you might try

ROM: 14CD change to

and 0x40

and then set freeplay to be OFF
see if it goes to the "hit p1 start" when you hit P1

though chaning that to "and 0x40" from just "and a" might actualy add a byte to the code and throw everything off... but you could always just move some of that code somewhere else, and at 0x14C5 jump to the new code then jump back to 14D5 when your done. basically move the code to another location so you can extend the code but ultimately run the exact same code plus whatever changes you made.

anyway too late for me I need to sleep, good luck

---
ROM:14C5 nop
ROM:14C6 push hl
ROM:14C7 push de
ROM:14C8 push bc
ROM:14C9 push af
ROM:14CA ld a, (byte_82AA) ;checks coin dip switch
ROM:14CD and a
ROM:14CE jr nz, loc_14D7 ;if zero
ROM:14D0 ld hl, 8024h ;then free play is on
ROM:14D3 ld (hl), 0FFh ;so set credit counter to FF
ROM:14D5 jr loc_1513
 
I really don't know what i'm doing so dont trust my notes, mostly just talking out loud, but i dont think that will work... 82AA isn't the live dip switch input but rather its the stored setting from when the dips were read

But down below that its checking the input a000 for the coin switch with
ROM:14EE and 0Fh
ROM:14F0 cp 0Ch

So i'm thinking change that to
and 0x40

to have it check for start button input instead of coin switch input, which would then go to the 0717 loop, in which i was able to disable the static screen and go right to a game without waiting for start

I'll try tomight when i get back in front of it, but i'm not sure if the cp above should just be removed (so the and 0x40 flags zero for the next jump)
 
I don't know which ROM set you're playing with, but for the base rallyx set, you'll hate yourself far less if you change address 0x0001 in rom 1b from 0x00 to 0x9e.
 
DIPs only get read on reset
yup, then that data is stored into 82AA

I don't know which ROM set you're playing with, but for the base rallyx set, you'll hate yourself far less if you change address 0x0001 in rom 1b from 0x00 to 0x9e.
i assume that will disable the boot rom/ram check sequences and skip right to the memory clearing?
thanks! will try tonight
 
i assume that will disable the boot rom/ram check sequences and skip right to the memory clearing?
thanks! will try tonight

Yeah... it'll start at the grid screen.

It's going to require a fair amount of coding no matter how you do it... Once it's coined, it exits attract and goes to the 'coined up' screen and just spins in a loop there.

That entire section of code can be nuked, but you need to inject code to display credits/free play during attract mode and do to start button checks, etc.

Fortunately, there's some pretty big blocks of nops to play with.

I started looking at this a while back to add to a high score save kit.
 
Alright made some progress, and have a functioning freeplay with attract for 1 or 2 player game, with two obvious problems to solve (and further testing needed):

Each time a game is started it wants to credit 6 or 7 times... I disabled the credit count incrementing but still get the credit sound multiple times... A little more investigation should be able to solve this (Edit: number of credit sounds is dependent on how long the start button is pressed, so i need to prevent the loop from checking that start input after a detection)

The credit screen comes up for 2 seconds or so, which i like (just like the 2second delay when you start a game with normal credits), but it displays "credit 0" which i dont like... If i change the static text to "starting" or whatever it looks better, but i have to figure out how to remove the "0" from being written to the screen... (also removed the "push start button" line like freeplay mode)


Otherwise i'm happy so far... Thanks for the tips guys, i'm learning slowly but surely (its tougher than the gun fight one) i'll try to make it only affected when freeplay dip switch is on instead of all the time

edit: i've been focusing on the midway roms, so 1b is from "rallyx" and 1e is from "rallyxm" in mame
 

Attachments

  • 1b.txt
    4 KB · Views: 12
  • 1e.txt
    4 KB · Views: 5
Last edited:
Got the version for my kit mostly finished up...

I nuked the 06AB routine completely and wrote new game start code, but I still want to rewrite 06AB to have that screen be part of the attract mode sequence between the game demo and instructions.
 
Sweet, i'm sure people will like adding hss, is the plan a 2114/nvram replacement and rom mods? Or a full on cpu daughterboard replacing all roms from the pcb and adding nvram (or similar)?
 
Got the version for my kit mostly finished up...

I nuked the 06AB routine completely and wrote new game start code, but I still want to rewrite 06AB to have that screen be part of the attract mode sequence between the game demo and instructions.

Ok... that part's done now...

The old "coined up" screen appears for a few seconds between the game demo and "instructions" mode, and is active (can add credits and it'll change from "insert coin" to "press start button", etc).

The only thing I don't like is that the code handles both the coin1 and coin2 inputs, When you hit 9 credits, it'll disable coin1, but coin 2 stays active, and you can count up to 99 credits, and the original credit routine will dump out the count in BCD.

My new credit display will print garbage if the count goes over 9 (only room for one character in CREDIT #), which seems to be OK given the way the game was originally written, and that coin2 isn't actually hooked up in the wiring harness.

FWIW, for small stuff like this, I just hand assemble the code and patch the roms directly rather than using commercial tools, although this was a bit bigger than a standard "patch" with ~330 bytes modified between text changes, patches to the old code and new routines.

Code:
# Never go to start mode from coin check
## 1539: 28 09         jr   z,$1544  
## 153B: 3A 20 80      ld   a,($8020)
# 1539: 00            nop
# 153A: 00            nop
# 153B: 3A 21 80      ld   a,($8021)
rompatch2 1e 539 28 00 00 3a 21 80
 
Last edited:
Are you selling a finished product? I'd like to buy a kit when they are ready if they are for sale
 
Are you selling a finished product? I'd like to buy a kit when they are ready if they are for sale

Eventually... just improved attract mode and save the single high score.

I don't see enough 'spare' bytes in RAM to hold a real high score table or initials, and adding that would add an extra attract mode screen and an initials entry mode and take up more ROM space than what's available.
 
Fixed the Rally-X set and did New Rally-X as well.

For shits and giggles, I fixed the centring of the copyright text on the 'start' screen since I wrote it back into the attract sequence, and the centering of miscellaneous text on the high score screen as well... kicked the tires on both in mame and they seem solid.

I hope to get a chance to test the high score save code on Rally X on real hardware this weekend. New Rally X is a bit more dense, so I've gotta dig around the code find some space to cram the extra code for the serial eeprom routines.
 
Very cool!

Excited to be able to have this. HS saves just transform games, even if it's just the single score.
 
Back
Top Bottom