6502 code hacking, atari, commodore, nes, gottlieb system 80 mpu and speech

ixtlann

Active member
Joined
Dec 25, 2009
Messages
1,960
Reaction score
6
Location
Ohio
6502 code hacking, atari, commodore, nes, gottlieb system 80 mpu and speech

Looking to modify the game behavior of a gottlieb system80 pinball. Ideas. On. Hacking. The. Original. Code?
Do I Need a Decompiler? Use which one?
Will I need to. Decompile the other. 2 roms. Which do not. Vary. From machine to. Machine, and do not. Hold the code I want to modify, only in an effort to understand how it works in first place?


P.s. the gottlieb system. 80 mpu is. 6502 based. With 6532 riots.
 
check out pinhacks.com

but yes: you will need a decompiler, and learn the assembly langauge of said processor, I don't know if virtual pin has a "debugger" interface like mame, but you will most likely need that to test your "mods" in.
 
FWIW, I've done some System 80 hacking. I have made some custom speech for BH. This is mostly data hacking; only required a little code tracing (of the sound board CPU code) to find what data was being sent to the SC-01; and the datasheet for the SC-01 showing the phoeneme codes.

I've toyed with the idea of commenting all of the system and game-specific code for HH, so I could re-write some of the crumby ruleset for that game, but I never have time to finish it...
 
I've toyed with the idea of commenting all of the system and game-specific code for HH, so I could re-write some of the crumby ruleset for that game, but I never have time to finish it...

you sound like me, never enough time to finish things :(
 
FWIW, I've done some System 80 hacking. I have made some custom speech for BH. This is mostly data hacking; only required a little code tracing (of the sound board CPU code) to find what data was being sent to the SC-01; and the datasheet for the SC-01 showing the phoeneme codes.

I've toyed with the idea of commenting all of the system and game-specific code for HH, so I could re-write some of the crumby ruleset for that game, but I never have time to finish it...

I have a similar idea. Sounds like you might be able to point me in the right direction, what would be a good way to contact you for information?
 
Sounds like you might be able to point me in the right direction, what would be a good way to contact you for information?

You already have contacted me. I'll be glad to point you in the right direction, right here on the forum.
 
IDA Pro is an excellent disassembler, but it's commercial. However they did release an older free version that includes 6502. There's a link for that particular version on here: http://nesdev.com/#PC6502

(edit: on that site it's called "Interactive Disassembler")

There are a few other disassemblers I know of, that create output that can be reassembled (NESrev on that link, right below the IDA Pro download is one of them). The nesdev.com page is outdated..
 
Last edited:
You already have contacted me. I'll be glad to point you in the right direction, right here on the forum.
. Very cool, btw I Was Looking to primarily Do The Same thing, rewrite HH Crummy Rules.

IDA Pro is an excellent disassembler, but it's commercial. However they did release an older free version that includes 6502. There's a link for that particular version on here: http://nesdev.com/#PC6502

(edit: on that site it's called "Interactive Disassembler")

There are a few other disassemblers I know of, that create output that can be reassembled (NESrev on that link, right below the IDA Pro download is one of them). The nesdev.com page is outdated..
Awesome! Home internet Is down right now Due To Storm Will Download And Report Back Then!!
I'd also be glad to help in any way I can, I'm not familiar with the system 80 but I've got plenty of experience with coding on the 6502.
I def could some resources on. 6502 coding and 6502 projects!
 
OK. While IDA Pro is a great tool, IMHO it's a little much for the project at hand. I recommend disassembling with either MAME's debugger, or with one of many stand-alone tools available on the 'net, such as dasm6502.exe

As far as assembling, I recommend hand-assembly. This accomplishes a couple of things:
1) ensures that you'll be writing a minimum amount of new code :)
2) minimizes the difficulty of getting it to re-assemble from source just the way the original was; as you'll just be modifying existing code, or writing small new routines in unused space.

However, before even disassembling, there's a lot of "prerequisites" to talk about:

-Are you comfortable with binary and hexadecimal numbering systems? And converting between them and decimal? You'll need to be.

-Read up every 6502 datasheet and opcode reference you can find. Use google, it'll lead you to plenty. Be sure to understand where the reset vector is located, and how it works--that's important to knowing where code execution begins. Also be sure to find and read a datasheet for the 6532 (RIOT), as it's very important to how a System 80 works.

-Find or make a memory map. The MAME source is a good start. Some knowledge of hardware, while not explicitly necessary, sure helps when it comes to figuring out address decoding and building a memory map...

After all that, you're about ready to disassemble some code and start following it and commenting.
 
Back
Top Bottom