Post Reply 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Newbie Tutorial
08-10-2011, 06:07 AM
Post: #1
Newbie Tutorial
Hello everybody

I read the other thread on this forum and I realize that i'm really a newbie (or dumb) in understanding the roms, in that even if I try to read some 6800 books and manuals.

Is there some kind of tutorial for
- Disassembled roms (I dissasemble them , but i'm not sure if I got the right method to do it)
- Find the switch matrix and sound matrix in the roms
- Explained what the different roms do, ( U4 U26 U27 U20 etc.) and how they communicate with each others
- is there some kind of debugger for pin roms ??

in other words a tutorial for dumb

thanks everybody
Find all posts by this user
Quote this message in a reply
08-20-2011, 07:07 AM
Post: #2
RE: Newbie Tutorial
AFIK there is no single location for all of the information you're looking for. There might be other forums that have some of the info you want. For example pinMame might know more about the different ROMs and if they have particular functions. I think on the pre-WPC (I don't remember their name, System-11?) use a couple roms for the game software and a few others for the sound ROMs. I don't think you can necessarily point to a single ROM and say it has a particular function since the just spread the software out over multiple ROMs (although I'm sure one set of ROMs has to do with game software and the other has to do with sound and maybe another for music).

A lot of it is just trial and error and messing around with pinMame with debug mode. Personally it has taken me years to figure out what I have so far (not doing this full time by any means). It was a mix of watching how pinmame runs through the game code, and then going through the disassembly (DASM command output) and hand-editing the disassembly into human readable code. A lot of functions pass in parameters (a few meaningful bytes after the actual function call which the function itself uses) and the disassembly isn't smart enough to distinguish between parameter bytes and instruction opcodes so there's a lot of editing of the disassembly just to figure out what's real code and what's just data bytes.

It's possible that different game architecture's have different code layout all together. In other words there may not necessarly be a neat "sound table" in Bonzai Run, for example on the coin-up sounds when the code that detects the coin switch and decides to play the sound, might directly call the sound logic with an instruction to play the desired sound number, where in WPC they call an abstract function, sort of an extra layer, that gets the desired sound number from a neat table of sound numbers and then call the sound logic with that data.

It all starts with trial and error and curiosity. Back to the coin-up stuff, for example. Lets say you set a break point in pinMame whenever it references the CREDITS text in the ROM. Then you can single step and get an idea where the code is going (probably a lot of code related to copying text around and possibly determining which segments on the display to illuminate. Eventually it'll back out to more general code and get to the part that plays the coin-up sound effect (or maybe it played it prior to referencing CREDITS text). Then you can mess around with the code that plays the coin-up sound effect and see where that same code gets called for the sound-effect you might really be wanting to modify. Also this can lead to the logic that reads the coin-switches however the coin switches are usually not in the switch-matrix but the code may be close. In WPC the coin switches are read just after the switch-matrix is scanned. So you can see it just takes a bit of time and playing around (and a bit of the "hacker spirit").
Find all posts by this user
Quote this message in a reply
Post Reply 

Forum Jump:

User(s) browsing this thread: 1 Guest(s)