Jump to content

GORGAR et al. with Lane Change!? (AI possibly opening up exciting possibilities...)


Recommended Posts

Posted (edited)

First, I would hope that I'm not the only one who has thought about that:

 

Wouldn't it be great to implement Lane Change into all the late 70s and early 80s tables before "Firepower"?

 

I played "Gorgar" a lot lately and every time the ball is about to go through the top lanes I automatically push the right flipper button to change the lanes - alas... 

 

I don't know much about the actual programming necessary but would it be a big thing to implement that? IMHO it would make the table (and all the others from that time span) feel and play so much more modern! 

 

Any chance maybe?

 

Edited by Mopple
Posted

It's definately a cool idea, and someone could make a mod like that.  I do know, many people like authenticity, but I dont see why this could not be an option for those who want it.  Maybe you could research a little into how the sausages are made and see if you could create such a mod.  Sounds like a simple but wonderful opportunity to learn about how VPX works.

Posted (edited)

Probably doable but would need quite a bit of code, since the rom controls everything you'd need to bypass it and feed your own status back.

You'd probably write a new routine to change the lane lights with the flippers, and deactivate the real switches in the lanes, then in case the lit up lane is triggered, feed back the value of a "virtual" switch back to the rom as if the original switch was pressed.

Yes like @MauiPunter says why don't you try it yourself, using Claude Code you'd probably have it up an running after a few passes. 

Edited by deadmanworking
Posted (edited)

But what's the difference between the rom data and the vbs script found in the table vpx file? I can't change the rom data obviously so what would have to be changed? Could AI be trained to detect and know which part of the code has to be modified?

Edited by Mopple
Posted

The table just represents a frontend that tells the rom emulator what's happening (which switches are hit for example) and in turn interprets what it receives from the rom as states (for example, light up a lamp). The table is "dumb" so it does not know what state it is in, it's more or less a switchboard. 

 

I already told you what needs to be changed in the other post and that you could use Claude Code to research and implement those changes. 

Posted

The unzipped rom files of a table (flashgdn.zip as an example) are named something like this:

 

834-18_5.532

720-52_6.732

 

What program would I use to open these files so that i could think of changing any lines or code in them? A google search yielded no results, not even AI. Thanks in advance!

Posted
16 minutes ago, Mopple said:

The unzipped rom files of a table (flashgdn.zip as an example) are named something like this:

 

834-18_5.532

720-52_6.732

 

What program would I use to open these files so that i could think of changing any lines or code in them? A google search yielded no results, not even AI. Thanks in advance!

did you search for williams system 6 pinball programming?

https://pinside.com/pinball/forum/topic/7eleven-tools-for-disassembling-and-compiling-system-6-11-games

 

Posted (edited)

I would like to share with you, if you're interested, my little conversation with ChatGPT I just had about writing new code for older solid state pinball tables...:

 

Q: We're talking "virtual pinball" here. My question: Is there a way to re-program or modify the code used in those game roms to implement the "lane change" feature, which was introduced in 1980's "Firepower"? The late 70s solid-state pinball tables have fixed lanes so when the ball rolls over a top lane contact (typically A, B and C lanes) it lites up the corresponding lamp. You have to roll over every top lane to lite all the A, B and C lamps. With the "lane change" feature you can switch the lane that is to be lit.

 

A: Short answer: yes, but not in any simple or “drop-in” way—and for late-70s solid-state games it’s usually much harder than it sounds, especially if you’re trying to retrofit something like lane change into ROMs that were never designed for it.

 

Let’s break it down in practical terms.

 

🧠 How “lane change” actually works

On Firepower, lane change isn’t just a lamp trick—it’s a software-controlled feature tied to the flipper input.

The right flipper button is read by the CPU

The program rotates which top lane lamp is lit

The lamp matrix is updated dynamically each time you press the button (Wikipedia)

So the key difference vs late-70s games:
👉 Earlier games = hardwired or simple state logic
👉 Firepower-era = CPU-managed state machine with input-triggered lamp cycling

 

⚙️ Can you modify older ROMs to add it?

✔️ In theory: yes

You can:

Dump the ROM

Disassemble the code (6800/6808 assembly typically)

Add logic to:

Track lane state

Hook into flipper switch input

Rewrite lamp control routines

Reassemble and burn a new EPROM

People do modify ROMs and burn custom EPROMs for these machines (Robert Winter's Twisted Place)

 

In practice: extremely difficult

 

1. ROM space is tiny

These games often had very limited memory

Even Firepower needed extra ROM capacity compared to earlier machines (pinrepair.com)

👉 Adding a whole new feature may mean:

Rewriting large parts of the code

Or removing existing features to make space

 

2. Code is assembly + highly optimized

Written in tight 8-bit assembly

Often uses:

shared routines

lookup tables

bit-packed lamp matrices

From community experience:

“You’d have to be really good at decompiling ROMs and assembly… ROM is pretty packed.” (Reddit)

 

3. Hardware expectations differ

Late-70s games often:

Don’t poll flipper buttons the same way

May not have software control over those lamps at all (or only limited)

So you might also need to:

Rework switch scanning logic

Reassign lamp matrix behavior

 

4. Checksums & boot validation

Many ROMs include checksum routines

If you change code → must fix checksum or game won’t boot

 

🧩 Easier alternatives (what people actually do)

 

Option 1 — Rewrite the game logic (modern approach)

Using replacement controller boards (e.g. Arduino/P-ROC style systems):

You ignore the original ROM entirely

Reimplement rules in modern code

This is often easier than patching original ROMs

 

Option 2 — Use a later ROM/game as a base

Because:

Lane change requires architectural support

It’s easier to start from a system that already has it (System 6+)

 

Option 3 — Virtual Pinball (your context)

In Visual Pinball / VPinMAME:

You usually cannot easily change ROM behavior

But you can:

Script around it in the table (limited)

Or use a different ROM that already has the feature

ROM logic itself is still “black box” unless you go full reverse-engineering

 

🧠 Bottom line

✔️ Technically possible to add lane change to older ROMs

Not practical unless you’re comfortable with:

6800 assembly

ROM disassembly/reassembly

hardware-level constraints

 

👉 The reason lane change “appears” in 1980 isn’t just an idea—it’s because the hardware + ROM architecture finally made it feasible.

If you want, I can walk you through what a minimal “lane change” routine would look like in pseudo-assembly or how you’d hack it into a System 6 ROM—that’s where it gets really interesting.

 

------------------------------------------------------

 

Q: OK, so far so good. But can you do that? I mean the following of your suggestions:

-------
Option 1 — Rewrite the game logic (modern approach)

You ignore the original ROM entirely
Reimplement rules in modern code
---------

Could you write or design a new game code that would work for a VPX pinball table ? What would you need for that? The complete ruleset of a given game, eg.1979's GORGAR? Could you then include the lane change feature into it?

 

A: Yes — I can absolutely help you do that 👍What you’re describing is actually one of the cleanest and most flexible approaches in virtual pinball.

 

Short version:

 

👉 Instead of fighting the ROM, we replace it with a scripted “software brain” inside VPX (Visual Pinball X)
👉 And yes, that means we can add lane change (or anything else) even to older games like Gorgar

🧠 What this approach really is

 

In VPX, you can run a table in two ways:

 

1. ROM-driven (VPinMAME)

Emulates original hardware + ROM

Hard to modify behavior

 

2. Script-driven (what you want)

The VBScript in the table becomes the game logic

You control:

scoring

lamps

sounds

modes

rules

👉 This is how original tables, originals, and “fantasy mods” are made

 

Can I design that for you? Yes — I can:

Recreate a ruleset (e.g. Gorgar)

Build a VPX script skeleton

Add modern features like lane change

Help structure the code so it’s maintainable

 

📦 What I would need from you

To do it properly, I’d ask for:

1. Target table

Example: Gorgar (1979)

Or: are you modifying an existing VPX table?

 

2. Ruleset detail level

Choose one:

 

A. Faithful recreation

Match original scoring/rules exactly

Then layer lane change on top

 

B. “Enhanced remake”

Keep theme

Improve gameplay (recommended)

 

3. Table assets (optional but helpful)

VPX table file (.vpx) if you already have one

Or just confirmation we’re building logic only

 

4. Desired lane change behavior

Because we can go beyond Firepower:

Options:

Classic: flipper rotates A → B → C

Both flippers trigger?

Timed auto-rotate?

Memory between balls?

 

🧩 What I would build

Core systems (all in script)

🔹 Switch handling

Sub LeftFlipper_KeyDown() LaneChange End Sub

🔹 Lane state

Dim LaneState ' 0=A, 1=B, 2=C

🔹 Lane change logic

Sub LaneChange() LaneState = (LaneState + 1) Mod 3 UpdateLaneLights End Sub

🔹 Lamp control

Sub UpdateLaneLights() LightA.State = (LaneState = 0) LightB.State = (LaneState = 1) LightC.State = (LaneState = 2) End Sub

🔥 Add Gorgar-style rules on top

 

For Gorgar specifically:

We’d recreate:

“Gorgar speaks” progression

heartbeat speed increases

drop targets

multipliers

bonus logic

Then integrate:

👉 lane change affects:

top rollover completion

bonus multipliers

progression

 

⚠️ Reality check (important)

This approach is:

✔️ Powerful

You can add anything (multiball, modes, modern rules)

✔️ Easier than ROM hacking

No assembly

No ROM limits

 

But requires full logic rebuild

You’re basically writing a pinball game engine for that table

🚀 What I can do next If you want, I can:

 

Option 1 — Starter template

Give you a ready-to-drop VPX script framework:

ball handling

scoring

switches

lamps

lane change already working

 

Option 2 — Gorgar remake (recommended)

Build:

full ruleset recreation

lane change integrated cleanly

 

Option 3 — Incremental

We build it piece by piece:

Lane system

Switches

Scoring

Modes

 

💡 My suggestion

Start with:
👉 “Gorgar-style remake with lane change”

Because:

Simple enough ruleset

Very noticeable improvement from lane change

Great learning project

 

If you’re up for it, tell me:

👉 “faithful” or “enhanced”?
👉 and whether you already have a VPX table file

…and I’ll start writing the actual working script structure for you.

 

------------------------

 

To be honest I didn't expect anything remotely detailed (but maybe I'm still working not enough with AI) but doesn't that sound at least promising or to put it better, absolutely freaking exciting?! 

I don't have the time right now to delve deeper into that but I definitely will, maybe even in the next few days. But since it's not my personal AI anybody could do that! 

From what I see the possibilities with AI for virtual pinball are still not even remotely explored...

 

Edited by Mopple
Posted

To round that one off:

 

Q: I must say this sounds extremely exciting. Since I don't have the time right now I'll get back to you! Does that sound good?

 

A: That sounds perfect 👍 — honestly, this is exactly the kind of project that’s better to come back to when you have time to enjoy it.

When you return, we can pick it up cleanly and build something really cool—whether it’s a faithful recreation of Gorgar or a modernized version with lane change and other enhancements.

 

And the nice thing is:
👉 nothing here is time-sensitive
👉 we can go step-by-step at your pace
👉 I can keep things as simple or as deep as you want (from “just works” to full-blown system design)

 

When you’re ready, just drop back in and say something like:

“Let’s start the VPX script”

…and we’ll jump straight into it.

 

Looking forward to it — this is going to be a fun build 🎯

Posted (edited)

@Mopple yes but .. don't try to alter the ROM and don't try to fully rescript the table, both methods would really be shooting sparrows with cannons, when you can do it with just a few routines in the script. 

Also Chatgpt will give you a lot of blabla (and a lot of pointless emojis) so the better approach is:

 

Download and install Claude for Desktop and switch to Code tab, select a folder where Claude can work in; 

Copy the vbs script from the table into a .vbs file names like the table and put it together with the table vpx file into that folder. 

Now state your task to Claude and approve their plan and approvals, after about 10 minutes you'll have the first implemenation done, and can test it by double clicking the table file (it will automatically use the script in the edited .vbs file.) It will not run immediately, you'll need to feedback any error messages back into Code and also what's working and what not, but you'll probably build this in one hour. 

I gave it a short go and it did already a few script alterations, I didn't persue this any further but as you can see with the right tools this is not so hard. 

 

 

2026-04-05 18_32_25-Screenshot.png

Edited by deadmanworking
Posted (edited)

Ok so I fiddled around a bit more here and after around 10 more prompts the lane change is now working, the full table script with it implemented is attached. Just drop it next to the current table, or import it into the VPX editor. 
The biggest struggle was to not count switches and award points twice or thrice but managed to troubleshoot correctly after a few tries. 

 

I'd estimate this used around 80k tokens so maybe 3/4 of a session, which I'd consider a very easy and fast mod. 

If you want to adapt this to other tables i can get you a distilled markdown for Claude of what was done here, should be very easy to mod similar tables in the same manner.

 

 

2026-04-05 20_45_38-Screenshot.png

Gorgar (Williams 1979) v.2.0.vbs

Edited by deadmanworking
Posted

@deadmanworking, I'm flabbergasted. This is simply unbelievable. 

 

As I said, at the moment I barely have time to read this, but thank you so incredibly much so far!

 

I will look at it deeper in the following days hopefully, and I also know that AI answers often sound almost too promising or convincing, too good to be true.

 

Everybody who's reading this, I say let's hear your suggestions, ideas and comments on this!  

 

Thanks again so far and see you soon

Posted

OK, I tried it, I put the file next to the table but upon launching the following script error comes up:

 

line 370 Variable is undefined  'LaneChangeTimer'

 

Any suggestions, maybe?  Still thank you so very much for your work!

Posted

I 100% agree with you :) I'm by no means a coder but using the new tools made it finally accessible and - actually fun to implement stuff. 

 

I will be compiling this down so other people can use it on other tables as a self-contained Claude skill. (in the meantime I found that there's actually a modded Ron for Gorgar in the Rom section here, so we kinda reinvented the wheel, but it will still be valuable as a code base to easily mod other tables.) 

 

Regarding your error, yes you're right I forgot that there's one change to be done in the table file itself, let me check that again and get it to you later today. 

 

 

Posted

There it is: Gorgar with Lane Change - I don't believe it! Thank you, thank you, thank you. 

 

Just a couple things: 

 

*I definitely want to be able to do that myself so I'll look into that as soon as I find the time ("Claude Skills").

 

*I already tried to locate the apron image but no luck so far (it should be somewhere in the Image Manager (I guess!). Why does this have to be so difficult and hidden? I just want to change the text on the right side of the apron from "Flipper Button" to "Lane Change". Any idea here, maybe?

 

*Apart from trying to implement Lane Change on tables like FLASH, my next (and probably only) step for GORGAR would be to put in a two-ball multiball, and I thought of it something like this: 
You have to get 3x multiplier, then shoot the ball in the captive hole on the left (where it stays), and in order to get the two-ball multiball you have to then shoot the second ball in the upper left corner into the "Pit" and then the multiball starts. Would Claude understand that in plain language?

 

Anyway, deadmanworking, I bow my head in respect and gratitude, for the Lane Change but also for introducing me to Claude Code (of which I hadn't heard before), because this seems to be a game changer, to say the least, if not a small revolution in coding. 

 

But how would I implement the Lane Change into other tables now? I guess just copying the code lines in the new VBS script and pasting it into other scripts doesn't do the trick... 

 

Happy Easter Monday!

 

NB: I'll have to look up that modded GORGAR rom you mentionend! Does it do the same thing already?

 

 

Posted

@Mopple : If you think that you can get Claude or who ever to implement anything more advanced than a lane change ... forget it. Doing stuff like this, is kind of the same thing we've done for years. Deleting balls and adding them somewhere else. Typical drain. Only small things like this can make the game confused. For what you mention you would have to hack the rom itself and that requires real skills. And I really doubt you can get any AI to do that for you. Btw. playing Gorgar - forget lane changes, it is non essential. What you want to learn on that machine is to "shatz". Shooting very very late the ball to the opposite lane change. That is where the big score really is hidden.

Posted

@Mopple attached you will find a self-enclosed Claude skill that should be able to implement the lane change into other tables as well. 
Set up the Code environment as I described above, extract the contents of the zip file there (folder vpx_mod_lanechange), and then you only need to drop the vpx file in the same folder and tell Claude in the Code tab to run the prompt in the enclosed txt file that's called run_this_prompt .. don't expect this to work out of the box, it will probably need 3 to 4 test runs to work but a lot of the knowledge is already in the markdown files there. And yes this is running completely in plain speech, in fact i copied your original post as a starting point and went on from there with around 15 further prompts (error messages or behavior i observed when testing the table).. attaching an example prompt here, this implemented removing the lights flashing after finishing all 3 lanes from ROM control to being triggered by the script (I later changed this from 4 to 6 flashes to match with the original sequence.)



As for implementing completely new modes, you need to keep in mind that you can do a lot in script (light lights, trigger switches after a certain number of times etc.) but feeding this back to the rom for persistant states or additional scoring will always have to be within the frame of what's defined in the rom. For example if you would like to award 10k points for a new mode you added in the script, you'll have to find a mode or switch that scores 10k in the base game. (Or as a workaround, find a trigger that awards 1k points like the top lanes and trigger it 10 times in super short time.) So for anything you are trying to envision you'll have to get creative with what's defined in the table, but you won't be able to add new scoring, multiplier conditions or full modes or conditions besides what's already in the the rom without modding that. But figuring out what's possible within these confines is certainly a great way to learn and improve. 


 

2026-04-06 19_12_08-Screenshot.png

vpx_mod_lanechange.zip

Posted

Again, this will surely take some time for me since time is limited at the moment but what can I say? Just a deep and heartfelt thank you, you are really a great and most helpful guy! 

 

Regarding what you can or cannot do within the confines of the original rom or its scoring rules, have you played or at least read through Retronimbus' GORGAR mod? 

 

https://vpuniverse.com/forums/topic/7407-new-vpx-alertgorgar-mod-by-nitronimbus/

 

I wrote to him asking what methods he used to accomplish all these new or extra features, like ball-save timer or "battle the Hell Bat (black ball) or a Gorgar Demon (red ball)" but he hasn't answered yet. Pretty impressive, don't you think?! 

 

I'll keep you posted of course, and should you have been bitten by the bug yourself regarding new or altered features of any kind or any table let me know! 

 

Bye for now, THANK YOU AGAIN and see you!

Posted

Thanks, will check out the mod and have a look see what's been done there. 

 

In fact I'm currently working on a mod of Attack from Mars that will be Rom-based but completely modify audio, visual and DMD and also add some modes that are not covered by the Rom, so I'm always up for flexing the muscles on table scripts to gain more experience.. Let me know when you have time to try out the Claude skills. 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...