What's new

twistedsymphony

Enlightened
Staff member
Immortal
Joined
Jul 21, 2015
Messages
11,655
Reaction score
13,070
Location
NH, USA
I always run my games in FreePlay mode if available a while back I noticed that while TMNT Turtles in Time (2P) has a FreePlay mode and when it's enabled the game sits on the title screen while not being played. Obviously this is bad as it would induce burn-in on the CRT.

I was playing Guardians yesterday and realized that it does the same thing!
I mean it's a great game but not so great that I want the logo burned into my monitors.

I think the root problem is that both of these games go to the static title screen once a coin has been entered while they wait for someone to push start. And then for freeplay the developers simply forced the internal credit value to a positive number. The result is that Attract mode never runs and it sits on the title screen waiting for a player to push Start.

Does anyone know of any other games that do this?
Does anyone know if there are any patches out there to fix this?

I'm thinking about poking around to see if I can patch it myself but I don't want to re-invent the wheel if the work has already been done.
 
I don't think burn-in is a concern in home use. It takes thousands of hours before a static image turns to visible burn in (naturally monitor brightness has some effect).

I put roughly 5000 hours into my F-Zero cabinet with free play turned on. I swapped the monitor just recently and theres no sign of the free play text on a white background on the old monitor.

Anyway, first Turtles is the same. It just sits on a static screen.

I think I remember Diet Go Go also doing this.

I'm making a list, see below.

---

Static screens when set to Free Play
Aurail
Big Run
Captain America and The Avengers
Cisco Heat
Daioh
Diet Go Go
Guardians / Denjin Makai II
Guwange (patch by @Hatsune Mike)
Ikaruga
J. J. Squawkers (patch by @Hatsune Mike)
King of Monsters
Lethal Crash Race
Point Blank 2
Pump It Up Exceed / Exceed II / Prime 2015 (likely others)
SAR - Search And Rescue (US version)
Teenage Mutant Ninja Turtles
Teenage Mutant Ninja Turtles: Turtles In Time (patches by @kuze and Apocalypse)
X-Multiply

Bugged Free Play
After Burner II (no attract mode at all, continuous loop when set to Free Play; After Burner II Enhanced patch)
Out Run (no attract mode at all, continuous loop when set to Free Play; Out Run Enhanced patch)
Super Hang-On (no attract mode at all, continuous loop when set to Free Play, Sega Enhanced patch)
Turbo Out Run (no attract mode at all, continuous loop when set to Free Play)
 
Last edited:
Oh I realize it takes a very long time to see the effects of burn-in, but it still bothers me. Not to mention with lots of Free Play arcades popping up I think it might be useful beyond home-use. Besides, I really enjoy the Attract Mode loop on a lot of these games.
 
  • Like
Reactions: nem
Wire up coin1 to start1 input and press start to insert/play. Use p2 start to empty the credits if needed.
 
I was going to see if I could simply patch out the credit check that takes you to the static screen to begin with, that way after a coin drop it would just continue in attract mode until you push start, or alternatively in free play it would play attract mode until you pushed start.
 
This is a good list to keep together. Identifying games that conversely have attract even when credits are inserted is the first step towards a relatively easy Free Play. Then, the remaining games are the sometimes more challenging ones.

Wiring coin to start "works", but... someone is going to double-press start at some point. The cheapest shitty hack for this is to modify the code to zero out the credits while it is in-game. Better than nothing.

A few games which I have, and am (slowly) working on:

Static "Press Start" screens
Boomer Rang'r (WIP free play & screen flip hack)
Pac-Man (screen flipped; there exists some hacks, but some are quite buggy)
Galaga (screen also flipped)
Bubble Bobble (High Score Saves kit has Free Play)
Donkey Kong (screen also flipped)
I'm Sorry
My Hero
Rolling Thunder
Metal Black (patched)
Raimais
Darius II (patched)
Warrior Blade
X-Multiply
Bonze Adventure / Jigoku Meguri (patched)

Limited Attract (no demo with credits and/or free play)
Fantasy Zone II DX (patched; has attract, but the demo never plays with coins in!)
J. J. Squawkers (patched; just shows the title screen)
B. Rap Boys / Special (jumps straight to character select)
Teenage Mutant Ninja Turtles
The Simpsons
ESP Ra. De. (patched)
Guwange (WIP)

Attract with Credits, but no Free Play
Donpachi (patched)
DoDonPachi (patched)

Other
Thunder Dragon 2 has free play, but you can't bring P2 in without P1

The only classic Cave game without this issue is Dangun Feveron, which actually has a Free Play mode. That forked feature was not reintegrated for ESP Ra. De.
 
Last edited:
Identifying games that conversely have attract even when credits are inserted is the first step towards a relatively easy Free Play. Then, the remaining games are the sometimes more challenging ones.

Wiring coin to start "works", but... someone is going to double-press start at some point. The cheapest shitty hack for this is to modify the code to zero out the credits while it is in-game. Better than nothing.
Glad to see someone else had the same thought process as I did :)
Limited Attract (no demo with credits and/or free play)
Fantasy Zone II DX (has attract, but the demo never plays with coins in! Fixed in old free play patch)
ESP Ra. De. (patched)
Since you've done a couple of these what is the thought process behind the patch? Obviously it varies from game to game but from the ones you've done was there a bit of logic that checks the credit count to determine if it should run attract or the title screen that needed to be NOPed out or were there other considerations? (I'm still very green when it comes to this stuff)
 
Looking at Guardians the Credits are stored at 0x2014F1 in the right nibble. it only stores up to 9 credits. and setting the game to freeplay simply hard sets this number to 9.

I also found that this number is also duplicated in the right nibble at 0x2000CD during credit mode, but in freeplay the value at 0x2000CD is 0
 
R-Type is another game that has static start screen and disables attract when free play is enabled.

I got half way through making a patch years ago, but then I switched to using tokens
 
That's a never ending battle, there are so many games with a fixed screen in freeplay mode or when credited.

People always want their games to be as close to the originals as possible (keys restore and whatnot) but at the same time are asking to modify them to fix what they think is an issue or accomodate their needs.
I'm fine with them wanting the best of both worlds but I'm always a bit reluctant to fix something that isn't broken.

Anyway for those interested in proper freeplay modes, there should still be few patches I made on Aussie Arcade (Crystal Castles comes to my mind, Kangaroo too).
 
Does anyone know of a good Motorola MC68301 instruction reference?

in Guardians I believe it's making the decision to go to the static screen at PC4E6E but I don't know the instructions well enough to follow the logic.
 
Besides, I really enjoy the Attract Mode loop on a lot of these games.
This is the big reason. Diet Go Go got very little play time, probably because you have no idea what kind of game it is if it just sits on a screen that looks like this:

0000.png


At least Turtles is a known entity.

For free play hacks, @Hatsune Mike wrote this tutorial for hacking Fantasy Zone II DX on his site:

http://mikejmoffitt.com/articles/0050-fantzn2x-freeplay.html

He linked to it earlier in his post, but it deserves another mention.

Then there's this tutorial for hacking Ikari Warriors:

http://www.paladingrp.com/brianb/rom_hacks/ikari.html
 
Last edited:
At the dutch National Arcade Museum in Zoetermeer, The Netherlands, the games that do this are just set up to have a credit button on or near the coin door.
 
I used to have a credit button for some games. Every single time people had just hammered the game full of credits. Then you have the same problem, the game just sits on a static screen. Static screens don't invite people to play the games.
 
The thought process is usually a few separate steps. Since doing Fantasy Zone IIDX, I've thought that the best way to do this going forwards is to make Free Play another DIP / menu option, and that without it enabled, the game should behave as if nothing has changed. The exception I would like to make to that is that the game should have a working attract sequence, even with coins inserted.

Solving the coined attract mode is half of the work of solving the Free Play, so we can consider them the same process.

First, we need empty space in the ROM.
Often this is some padding of 0x00/0xFF (could be other values) near the end of a ROM, or the end of a page. Usually less than 1K is needed. I find this spot, and declare it ROM_FREE in the patch source. It is rare that a hack with any sophisticated functionality can fit in-place to where the original code was, so having space to jump to lets us expand routines without a lot of worry. Always be mindful of the amount of code space a jump takes up, because chances are the jump has stomped on the following addresses, so you might find yourself needing to reproduce the logic that got distorted by the jump.

How does the game show credits?
If it prints the credit count, then I find spots that are responsible for drawing it. At the point where a draw or important subroutine call is located, I replace it with a jump / jsr to a new function stuck in ROM_FREE. That function then checks if Free Play is enabled (DIP, or new custom setting, variable, etc). If it's enabled, then it'll skip the credit draw, or write "Free Play", or whatever is appropriate. Otherwise, it'll reproduce whatever logic the jump patch stomped on, and will jump back to where the code was executing.

For example: this patch uses a macro (my first in these kinds of patches) to check if it's in free play, and hides the credit count in attract.

What does the game do with credits inserted?

If it shows the attract sequence anyway (like DonPachi / DoDonPachi), then that's great - all we really need to do is hide the credit count, and always put >=2 credits in the credit counter without any user intervention. That is how the DP patch works.

Otherwise, we need the start buttons to jump to the start screen. That can either be by having these buttons modify the credit count, or just directing the game state machine. For ESP Ra. De. that is how I did it. The checks for credits are conditionalized, and pressing start takes you to the "press start" screen, which has been modified to not sit there forever. Unfortunately, this one is actually a little bit buggy, and I need to re-do it.

For games with static screens, sometimes it's okay to leave them, but then I think it'd be nice to put a timeout so that inaction from the player makes it revert to the attract. I'm working on that right now for Boomer Rang'r, as the start screen shows an otherwise unseeable screen describing the game's premise.
 
Back
Top