68000 Arcade systems programming

Talk about anything else you want

Moderator: BigEvilCorporation

Post Reply
tryphon
Very interested
Posts: 246
Joined: Sat Aug 17, 2013 9:38 pm
Location: France

68000 Arcade systems programming

Post by tryphon » Fri Feb 08, 2019 4:48 pm

I'm looking for documentation about programamtion on 68000 based arcade systems, especially Capcom CPS-1 or Sega System 16 (in particular gfx chips).

Do you know where to find them ?

I bet mame source code is one source, but where and what to read ?

For the moment, I have that :

https://patpend.net/technical/arcade/cps1.html

djcouchycouch
Very interested
Posts: 678
Joined: Sat Feb 18, 2012 2:44 am

Re: 68000 Arcade systems programming

Post by djcouchycouch » Fri Feb 08, 2019 10:09 pm

Here's an SDK used to build games on the original Outrun hardware.

http://www.aaldert.com/outrun/sdk.html

tryphon
Very interested
Posts: 246
Joined: Sat Aug 17, 2013 9:38 pm
Location: France

Re: 68000 Arcade systems programming

Post by tryphon » Sat Feb 09, 2019 8:36 am

Thanks, it helps.

The topic title is maybe misleading though : I don't want to program for these boards. My goal would be closer to an emulator. So programming notes like Charles McDonald's genvdp, but for CPS-1/system16 (and I can add X68000) is closer to what I'm looking for.

MetalliC
Interested
Posts: 27
Joined: Sat Aug 25, 2012 12:45 pm
Location: UA

Re: 68000 Arcade systems programming

Post by MetalliC » Sun Feb 10, 2019 6:44 pm

I doubt you'll be able to find such notes. I'd recommend to learn MAME emulator structure.

for example CPS1:
src/mame/drivers/cps1.cpp - this is base CPS1 driver, you may find where:
void cps_state::main_map(address_map &map) - main CPU memory map
void cps_state::sub_map(address_map &map) - sound CPU memory map
MACHINE_CONFIG_START(cps_state::cps1_10MHz) - all the CPS1 hardware components
and other parts, most of them is not hard to understand if you a bit familiar with emulator development in general.

src/mame/video/cps1.cpp - video part
you may start from
WRITE16_MEMBER(cps_state::cps1_cps_a_w)
READ16_MEMBER(cps_state::cps1_cps_b_r)
WRITE16_MEMBER(cps_state::cps1_cps_b_w)
routines, which handle read/write from/to GPU registers.

tryphon
Very interested
Posts: 246
Joined: Sat Aug 17, 2013 9:38 pm
Location: France

Re: 68000 Arcade systems programming

Post by tryphon » Mon Feb 11, 2019 2:37 pm

I guess you're right. Fortunately there are some documents describing the source code. Seems doable, though I don't speak C++ fluently :D

Mask of Destiny
Very interested
Posts: 583
Joined: Thu Nov 30, 2006 6:30 am

Re: 68000 Arcade systems programming

Post by Mask of Destiny » Mon Feb 11, 2019 6:48 pm

They're not on his site anymore, but Charles MacDonald actually wrote docs describing various Sega Arcade boards and they are archived at various places:
Pre-System 16
System 16B
System 18
System C2
X-Board
System 24

tryphon
Very interested
Posts: 246
Joined: Sat Aug 17, 2013 9:38 pm
Location: France

Re: 68000 Arcade systems programming

Post by tryphon » Wed Feb 13, 2019 10:06 am

Thanks a lot, it'll be very useful.

I'm digging into MAME source code. It's really interesting. But file locations are sometimes weird. Why is the Megadrive VDP code (315_5313.cpp) in devices subdir and not in video ? Header files can be anywhere and some of them contains code...

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest