CSword123
Posts: 2
Joined: Mon Sep 17, 2018 7:48 pm

Confused about KIller Instinct address map

I take a look at kinst.cpp and the MAME debugger and notice that the are two regions of program memory. "user1" and "dcs". If I am to believe that dcs is simply sound data and instructions. Why does the debugger and map include an immense amount of values past address 0x7ffff for user1?

The only conclusion i reached is that there are more instructions in the hard drive image and sure enough when I run the converted .chd binary into Binary Ninja, I get functions with mipsel assembly.

So do the read instructions of region "user1" from the HDD begin at 0x00080000?

Code: Select all

	map.unmap_value_high();
	map(0x00000000, 0x0007ffff).ram().share("rambase");
	map(0x08000000, 0x087fffff).ram().share("rambase2");
	map(0x10000080, 0x100000ff).rw(FUNC(kinst_state::control_r), FUNC(kinst_state::control_w)).share("control");
	map(0x10000100, 0x1000013f).rw(FUNC(kinst_state::ide_r), FUNC(kinst_state::ide_w));
	map(0x10000170, 0x10000173).rw(FUNC(kinst_state::ide_extra_r), FUNC(kinst_state::ide_extra_w));
	map(0x1fc00000, 0x1fc7ffff).rom().region("user1", 0).share("rombase");
Arbee
Posts: 28
Joined: Fri Nov 14, 2014 4:27 pm
Contact: Website

Re: Confused about KIller Instinct address map

The "user1" ROM is equivalent to the BIOS in your PC - it does just enough to load a program off of the harddisk into RAM and transfer control to it. No game code or data exists in that ROM. KI doesn't have an operating system, it just loads the game itself and runs. Some later Midway games like Skins Game actually boot Linux from the harddisk and then the init process loads and starts the game.

The dcs ROMs contain both ADSP210x code and compressed sample data; in the case of KI all audio code and data is in those ROMs, but later DCS games allowed loading some or all of the sounds and ADSP code from the disk as well.
CSword123
Posts: 2
Joined: Mon Sep 17, 2018 7:48 pm

Re: Confused about KIller Instinct address map

Arbee wrote: Fri Sep 21, 2018 3:20 pm The "user1" ROM is equivalent to the BIOS in your PC - it does just enough to load a program off of the harddisk into RAM and transfer control to it. No game code or data exists in that ROM. KI doesn't have an operating system, it just loads the game itself and runs. Some later Midway games like Skins Game actually boot Linux from the harddisk and then the init process loads and starts the game.
Ahh that clears it up. So the first 5 address ranges in the address map pertains to actual KI code in the HDD whilst the 6th is the system initialization procedures? So the very first line in the memory viewer of MAME debugger corresponds to the first line of kinst.bin/.img after converted to .chd?

Return to “MAME Discussion”