If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Andro Dunos (Neo Geo)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Andro Dunos (Neo Geo)

Developer: Visco[1]
Publisher: SNK
Platforms: Neo Geo, Arcade (Neo Geo)
Released internationally: June 15, 1992[1] (MVS), July 17, 1992[1] (AES)


SourceIcon.png This game has uncompiled source code.
CopyrightIcon.png This game has hidden developer credits.


Developer Credit

A small dev credit string can be seen at 0x3E in 049-m1.m1.

Ver 2.0a by MAKOTO.03/04/05 to SK
(Source: Original TCRF research)

Source Code Fragment

Cacti speak Japanese.
...But what does it mean?
This game has text or audio that needs to be translated. If you are fluent with this language, please read our translation guidelines and then submit a translation!
Hmmm...
To do:
There's even more code!

An insane amount of code can be found at 0xFEF0 in 049-m1.m1. This is only mildly restored for a handful of instructions that were cut off.

                andi.w		#$1f,d0
		add.w		d0,d0
		_push		d2
		move.l		a4,d2
		andi.l		#$ffffffc0,d2
		add.w		d0,d2
		movea.l		d2,a4
		_pop		d2


	move.w		#GAMY/2+1-1,d2
scr_t1:
	_push		d1-d2/a0
	jsr		block_put00		; <- d1,a0
	_pop		d1-d2/a0
	addq.w		#4,d1
	move.w		SCR_WX(a5),d0
	lea.l		(a0,d0.w),a0
		lea.l		$40*2(a4),a4
		move.w		d1,d0
		andi.w		#$3f,d0
		bne		scr_t10
		subi.w		#$40,d1
		move.l		a4,d0
		andi.l		#$3f,d0
		addi.l		#ATRI_WORK,d0
		movea.l		d0,a4
scr_t10:
	dbra		d2,scr_t1
	rts

;------------------------------------------------------------------------------
;	( Y ) put
;------------------------------------------------------------------------------
scr_dput:
	tst.w		scr_stop
	bne		scr_d5
	tst.b		SCR_PUT(a5)		; screen_put
	bne		scr_d3
	tst.w		d7
	beq		scr_d3
	bmi		scr_uput

	move.w		HIY(a5),d0		; screen max
	andi.w		#$1f,d0
	bne		scr_d3

	moveq.l		#0,d0
	move.w		#GAMY/2,d1
	bra		za_puty

scr_uput:
	move.w		HIY(a5),d0		; screen max
	andi.w		#$1f,d0
	bne		scr_d3

	moveq.l		#0,d0
	moveq.l		#-1,d1
	bra		za_puty

scr_d5:
	move.w		#1,scr_stop
	moveq.l		#0,d7
scr_d3:
	rts

;------------------------------------------------------------------------------
;	( Y ) scrol
;------------------------------------------------------------------------------
scr_down:
	tst.w		scr_stop
	bne		scr_d5
	tst.w		d7
	beq		scr_d3
	bmi		scr_up

	_dec.w		d7			; screen_count
	_inc.w		HIY(a5)
	_dec.w		VCY(a5)
	move.w		HIY(a5),d0
	andi.w		#$1f,d0
	bne		scr_d3

	addi.w		#2,SCY(a5)
	cmpi.w		#32,SCY(a5)
	bcs		scr_d3
	move.w		#0,SCY(a5)
	move.w		#0,VCY(a5)
	rts

scr_up:
	move.w		HIY(a5),d0		; screen_count
	andi.w		#$1f,d0
	bne		scr_u2

	subi.w		#2,SCY(a5)
	bpl		scr_u2
	move.w		#30,SCY(a5)
	move.w		#0,VCY(a5)
scr_u2:
	_inc.w		d7
	_dec.w		HIY(a5)
	_inc.w		VCY(a5)
	rts

;------------------------------------------------------------------------------
;	za_puty : 横方向、書き換え
;
;		input parameter
;			d0.w ... block_x
;			d1.w ... block_y
;------------------------------------------------------------------------------
za_puty:
	_push.w		d1			; plas or minas
	move.w		d0,d3
	move.w		d1,d4
	jsr		map_zahyo

	move.w		SCR_NO(a5),d1
	add.w		d3,d3
	add.w		SCX(a5),d3
	bpl		za_py2
*	addi.w		#22,d3
*	bra		za_py1
za_py2:
	cmpi.w		#22,d3
	bcs		za_py1
	subi.w		#22,d3
za_py1:
	add.w		d3,d1
	lsl.w		#6,d1			; *32*2

	add.w		d4,d4
	add.w		SCY(a5),d4
	andi.w		#$1f,d4
	add.w		d4,d4
	add.w		d4,d1
	_pop.w		d2

	move.w		#14,d0
	tst.w		d2
	bpl		scr_y
	move.w		#-1,d0
scr_y:						; 横方向、表示
	_push.w		d0
	move.w		SCR_NO(a5),d2
	lsl.w		#5+1,d2			; *32*2
	add.w		d4,d2
	movea.l		peas_data,a2
	movea.l		atri_data,a6
	jsr		aadrs_set
	_pop.w		d0
		_push		d2
		move.b		base_hix,work_hix
		move.b		base_hiy,d2
		ext.w		d2
		add.w		d2,d0
		andi.w		#$1f,d0
		lsl.w		#5+1,d0
		move.l		a4,d2
		andi.l		#$3f,d2
		addi.l		#ATRI_WORK,d2
		movea.l		d2,a4
		lea.l		(a4,d0.w),a4
		_pop		d2

	move.w		#GAMX/2+1-1,d4
scr_y1:
	_push		d1-d4/a0-a1
	jsr		block_put		; <- d1,a0
	_pop		d1-d4/a0-a1
	addi.w		#$40*2,d1

	lea.l		2(a0),a0
*	move.w		SCR_NO(a5),d0		; 
		move.w		d2,d0
	addi.w		#$40*22,d0
	cmp.w		d0,d1
	bcs		scr_y3
	subi.w		#$40*22,d1
scr_y3:
		lea.l		2*2(a4),a4
		move.l		a4,d0
		andi.w		#$3f,d0
		bne		scr_40r
		suba.l		#32*2,a4
scr_40r:
	dbra		d4,scr_y1
	rts

;------------------------------------------------------------------------------
;	aadrs_set : アタリ VRAM address set
;
;		input parameter
;			a5 ... scrol work adrs
;------------------------------------------------------------------------------
aadrs_set:
	lea.l		ATRI_WORK,a4
	cmpa.l		#scr1_work,a5
	bne		aads_pass

	move.w		HIX(a5),d0
	lsr.w		#4,d0
	andi.w		#$1f,d0
	move.b		d0,base_hix
	add.w		d0,d0
	lea.l		(a4,d0.w),a4

	move.w		HIY(a5),d0
	lsr.w		#4,d0
	andi.w		#$1f,d0
	move.b		d0,base_hiy
	lsl.w		#5+1,d0
	lea.l		(a4,d0.w),a4

	move.l		a4,atri_pos
aads_pass:
	rts

;------------------------------------------------------------------------------
;	map_zahyo : マップ座標算出
;
;		input parameter
;			d0 ... block_x
;			d1 ... block_y
;		output parameter
;			a0 ... 座標 address
;------------------------------------------------------------------------------
map_zahyo:
	movea.l		SCR_ADR(a5),a0
	move.w		HIY(a5),d2
	lsr.w		#5,d2			; /32
	add.w		d2,d1
	mulu		SCR_WX(a5),d1
	move.w		HIX(a5),d2
	lsr.w		#5,d2			; /32
	add.w		d2,d0
	lsl.w		#1,d0
	andi.l		#$0ffff,d0
	add.l		d1,d0
	lea.l		(a0,d0.l),a0
	rts

;------------------------------------------------------------------------------
;	block_put : ブロック・ヒョウジ (32*32dot)
;
;		input parameter
;			d1.w ... vram address
;			a0   ... キャラ&カラー・data
;			a2   ... キャラクタ&カラー・data_base
;			a5   ... screen work
;------------------------------------------------------------------------------
block_put00:
	lea.l		LSP_WRR,a1		; ライト・データ・reg
	move.w		#1,LSP_AIR		; auto・1・inc
	move.w		(a0)+,d2
	andi.l		#$ffff,d2
	lsl.l		#4,d2
	lea.l		(a2,d2.l),a3
	move.w		d1,d2
	move.w		d2,LSP_ADR		;	 [16クロック]

	cmpa.l		#scr1_work,a5		; screen 1 init
	beq		block_put200

	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	addi.w		#32*2,d2
	move.w		d2,LSP_ADR		;	 [16クロック]
	nop
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	rts

block_put200:
	jsr		bput00
	move.w		d0,(a4)
	jsr		bput00
	move.w		d0,32*2(a4)
	addi.w		#32*2,d2
	move.w		d2,LSP_ADR		;	 [16クロック]
	nop
	jsr		bput00
	move.w		d0,2(a4)
	jsr		bput00
	move.w		d0,32*2+2(a4)
	rts

bput00:
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,d0		; カラー	 [12クロック]
	ori.w		#$8000,d0
	move.w		d0,(a1)
	clr.w		d0
	rts


*----------------------------------------------------------------
*----------------------------------------------------------------
*----------------------------------------------------------------

block_put:
	lea.l		LSP_WRR,a1		; ライト・データ・reg
	move.w		#1,LSP_AIR		; auto・1・inc
	move.w		(a0)+,d2
	andi.l		#$ffff,d2
	lsl.l		#4,d2
	lea.l		(a2,d2.l),a3
	move.w		d1,d2
	move.w		d2,LSP_ADR		;	 [16クロック]

	cmpa.l		#scr1_work,a5		; screen 1 init
	beq		block_put2

	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	addi.w		#32*2,d2
	move.w		d2,LSP_ADR		;	 [16クロック]
	nop
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	move.w		(a3)+,(a1)		; キャラクター [12クロック]
	move.w		(a3)+,(a1)		; カラー	 [12クロック]
	rts

block_put2:
	jsr		bput
	move.w		d0,(a4)
	jsr		bput
	move.w		d0,32*2(a4)
	addi.w		#32*2,d2
	move.w		d2,LSP_ADR      ;	 [�X        %02X
        extern		kuwa3_data 	; ミギナナメウエ
	extern		kuwa4_data 	; ミギナナメシタ
	extern		zaurus1_data	; ザウルス1(fireヲ ウチ ツッコム)a
	extern		zaurus2_data	; ザウルス2(フユウ fire)a
	extern		mushi_data	; イモムシ
	extern		tobi_data  	; トビムシ
	extern		howan1_data	; ホワン

	extern		zim_data	; wave ウエシタ(ミギヘ)
	extern		zim2_data	; wave シタウエ
	extern		zim3_data	; wave ウエシタ(ヒダリヘ)
	extern		zim4_data	; wave シタウエ
	extern		kurage_data	; クラゲ
	extern		nikuman_data	; ニクニク

	extern		howan2_data	; ホワン2
	extern		howan3_data	; ホワン3
	extern		hati1_data	; ハチ ヒダリ ヘ
	extern		hati2_data	; ハチ ミギ ヘ

;/////////////////////////////////////////////////////////////////////////////
;	' enemy.h ' end
;/////////////////////////////////////////////////////////////////////////////


	extern		titeiko_data		; 1st
	extern		titectl_data
	extern		iwa11_data
	extern		iwa12_check
	extern		kaminari_data
	extern		guard_shell_data
	extern		meka_tank_data

	extern		star_data		; 2st
	extern		star2_data
	extern		big_star_data
	extern		mid_star_data

	extern		mhasira_data		; 3st
	extern		mhasira2_data
	extern		door_data
	extern		elebeta_data
	extern		roll_crash_data
	extern		press_crash_data

	extern		niku_data		; 4st
	extern		nikuv_data
	extern		nik2_data
	extern		nik2v_data
	extern		nik3_data
	extern		nik3v_data

	extern		nict_data
	extern		nictv_data
	extern		nik4_data
	extern		nik4v_data
	extern		nik5_data
	extern		nik5v_data
	extern		nik6_data
	extern		nik6v_data
	extern		nik7_data
	extern		nik7v_data
	extern		nik8_data
	extern		nik8v_data
	extern		nik61_data
	extern		nik61v_data
	extern		nikx_data
	extern		nikxv_data

	extern		honda_beat_data
	extern		hiper_brain_data
	extern		ccgg_data

	extern		killer_meteo_data	; 5st

	extern		kure_b_data		; 6st
	extern		kure_s_data
	extern		ana_data
	extern		yousai_data
	extern		airfun_data
	extern		star6_data

	extern		flying_city_data	; 7st
	extern		scrct_data

	extern		st8pal_data		; 8st
	extern		star8_data
	extern		kaku_unit_data
	extern		bee_tank_data

*-------< h_zako.asm >-------------------------------------------------------

	extern		open3_data	; レーザー open
	extern		enbt4_data
	extern		spib3_data
	extern		spib4_data
	extern		spic3_data
	extern		spic4_data

	extern		enct1_data	; カクダイ カエル
	extern		enct2_data	; ヒダリ カクダイ ミギ モドル
	extern		rola1_data	; ホノボノ ヤロウ

	extern		enat1_data	; チドリアシ
	extern		datk1_data	; ミサイル ダッコ

	extern		spia1_data	; ウエーブ・タマ・ウエーブ 4キ ヘンタイ
	extern		spic6_data	; カイテン move 4キ ヘンタイ

	extern		ship1_data	; オオガタ セントウキ 2キ
	extern		vbas1_data	; ミサイル ハッシャダイ シタ
	extern		vbas2_data	; ミサイル ハッシャダイ ウエ
	extern		spia2_data	; ウエカラユーターン ミギニススム
	extern		spia3_data	; シタカラユーターン ミギリニススム
	extern		spia4_data	; ウエカラユーターン ヒダリニススム
	extern		spia5_data	; シタカラユーターン ヒダリニススム
	extern		enbt6_data	; セマッテキテ シタニカエル
	extern		toci1_data	; トーチカ

	extern		teis1_data	; teisatu ボディ ウエ
	extern		jump1_data	; ジャンプヤロウ
	extern		zbas1_data	; ヒダリ カラ ミギヘ モドル ( シタ )
	extern		zbas2_data	; ヒダリ カラ ミギヘ モドル ( ウエ )
	extern		zbas3_data	; ジャンプヤロウ オトス ( ウエ )
	extern		zbas4_data	; マワル ( シタ )
	extern		spib5_data	; サークル・ufo

	extern		npen1_data	; ノビルペン シタ
	extern		npen6_data	; ノビルペン ウエ
	extern		moza1_data	; モザイク
	extern		hant2_data	; ドアトビダシ
	extern		mete1_data	; チュウボス メテオ
	extern		enat2_data	; サンキヨッテキテ カエル

	extern 		hira1_data	; ヒライテ タマウチ
	extern 		suna1_data	; スナ1
	extern 		suna2_data	; スナ2
	extern 		suna3_data	; スナ3
	extern 		suna4_data	; スナムシクン

	extern 		shoue1_data	; 3メンホウダイミギ
	extern 		shoue2_data	; 3メンホウダイヒダリ
	extern		hhou1_data	; エッチホウダイ
	extern		tuka1_data	; ジキツカミ

	extern		enat5_data	; エスノジmoveシタカラ
	extern		enat6_data	; エスノジmoveウエカラ
	extern		rolb1_data	; エルノジmoveマエウエカラ
	extern		rolb2_data	; エルノジmoveマエシタカラ
	extern		rolb3_data	; エルノジmoveウシロウエカラ
	extern		rolb4_data	; エルノジmoveウシロシタカラ
	extern		datk2_data	; ミサイルダッコ マッスグクル2
	extern		datk3_data	; ミサイルダッコ マッスグクル3

	extern		mekaeru1_data	; メカエルシタカラウエ
	extern		mekaeru7_data	; メカエル16*7
	extern		mekaeru8_data	; メカエル16*8
	extern		mekaeru10_data	; メカエル16*10
	extern		mekaeru11_data	; メカエル16*11
	extern		mekaeru12_data	; メカエル16*12

	extern		iwahou1_data	; イワバホウダイシタ
	extern		iwahou4_data	; イワバホウダイウエ
	extern		iwamisair1_data	; イワバチュウキャラ

	extern		bitkun1_data	; ビットクン
	extern		daioubos_data	; キョウフノダイオウ
	extern		daibit4_data	; トビビット2


	extern		dorisyat1_data	; ドリルシャッター16*4
	extern		dorisyat3_data	; ドリルシャッター16*7
	extern		dorisyat4_data	; ドリルシャッター16*8
	extern		syater1_data	; シャッター エスノジ シタ
	extern		syater4_data	; シャッター サーチツゥコミ	シタ
	extern		syater5_data	; シャッター 16カイテンマッスグ
	extern		syater6_data	; シャッター サーチツゥコミ	ウエ
	extern		syater7_data	; オキ シャッター シタ
	extern		syater8_data	; オキ シャッター ウエ

	extern		rold1_data	; マッスグヒダリウエ45ド
	extern		rold2_data	; マッスグヒダリシタ45ド
	extern		enat7_data	; エスノジヒダリウエ45ド
	extern		enat8_data	; エスノジヒダリシタ45ド
	extern		zakodai1_data	; ザコダイジャンプヤロウ

	extern		endt3_data	; サンキヘンタイカクダイ
	extern		endt4_data	; サンキヘンタイカクダイ

*-------< h_zako stage 4 >---------------------------------------------------

	extern		boto1_data	; ボトボトオチル
	extern		moko1_data	; ニクモコモコ
	extern		tanp1_data	; タンパク ムスコ1
	extern		tanp2_data	; タンパク ムスコ2
	extern		hana1_data	; ハナタカ1
	extern		hana2_data	; ハナタカ2
	extern		enft1_data	; オッカケ エイリアン
	extern		enft2_data	; オッカケ エイリアン2

*-------< h_zako stage 5 >---------------------------------------------------

	extern		ncbos1_data	; ニセチュウボス
	extern		dmet31_data	; オキダイメテオ キカイシタ
	extern		dmet41_data	; オキダイメテオ キカイウエ
	extern		mmet4_data	; コメテオ オキインセキ

	extern		dmet11_data	; ダイメテオ(1fシタ)
	extern		dmet21_data	; ダイメテオ(1fウエ)
	extern		ken1_data 	; ケンセツチュウ1(1A)
	extern		ken2_data	; ケンセツチュウ2(1B)
	extern		ken3_data	; ケンセツチュウ3(1C)
	extern		mmet11_data	; コメテオ コウソク
	extern		mmet21_data	; コメテオ チュウソク
	extern		mmet31_data	; コメテオ テイソク
	extern		paip11_data	; パイプ1(21)
	extern		paip21_data	; パイプ2(1D)
	extern		paip31_data	; パイプ3(1E)
	extern		paip41_data	; パイプ4(20)

*-------< r_zako.asm >-------------------------------------------------------
* r_1
	extern		hufo_data	; 10キ ヘンタイ
	extern		hufo2_data	; シュクショウ リターン
	extern		time_up_data	; ムテキ ボウシ

	extern		mcanon_data	; ホウダイ
	extern		mcanon2_data	; ホウダイ (シタムキ)
	extern		en_at_data	; アメンボー
	extern		hugu_data	; ワープ・チョウチン

	extern		kirai_data	; キライ
	extern		kirai2_data	; クルットマワル
	extern		spin_ct_data	; ワープ・トッコウタイ
	extern		rol_canon_data	; 3ウエイ・センシャ
* r_2
	extern		teku_data	; テクテク
	extern		hebi_data	; ヘビ・キャラ
	extern		mame_data	; ミチヅレ・キャラ
	extern		bbase1_data	; スイコミレーザー・シタ
	extern		bbase2_data	; スイコミレーザー・ウエ
	extern		water_data	; ウォーター・ジャンプ

	extern		ran_data	; ランチャー・ロボ (マルダマ)
	extern		fcanon1_data    ; フユウ・ホウダイ1
	extern		fcanon2_data    ; タマ ヲ ウッテ uターン
	extern		mspin_data      ; スピン・ツッコミ
* r_3
	extern		vten_data	; ツリ・テンジョウ 1 (3st)
	extern		nten_data	; ツリ・テンジョウ 2 (3st)

	extern		en2_at_data	; 90ヘンカン
	extern		bspin_data	; ビッグ・スピン(チョクシン)
	extern		bspin2_data	; ビッグ・スピン(サンカク1)
	extern		bspin3_data	; ビッグ・スピン(サンカク2)
	extern		machine_data	; カイテン・ビットマシン

	extern		dspin_data	; 3Dクルクル(ヒダリヘ)
	extern		dspin2_data	; 3Dクルクル(ウエヘ)
	extern		dspin3_data	; 3Dクルクル(シタヘ)

	extern		ahiko1_data	; ユラユラ・ヒコウ
	extern		ahiko2_data	; キュウコウカ
	extern		ahiko3_data	; キュウジョウショウ
	extern		bhiko1_data	; ツッコミ
	extern		bhiko2_data	; 4キ シタ ヘ オリテ サーチ
	extern		bhiko3_data	; 4キ ウエ ヘ オリテ サーチ
	extern		spin2_ct_data	; カソク シテ マッスグ ツッコミ

	extern		batt1_data	; 3キ デ ヒダリ ススミ シタ サーチ
	extern		batt2_data	; 3キ デ ミギ 	"
	extern		batt3_data	; ヒダリ ヘ  クルットススム
	extern		batt4_data	; ミギ ヘ		"
	extern		batt5_data	; ウエ ヘ		"
	extern		batt6_data	; シタ ヘ		"

	extern		driru1_data	; ドリル・ミサイル ( ウエ ヘ )
	extern		driru2_data	; ドリル・ミサイル ( シタ ヘ )
	extern		gspin_data	; カイテンホウシャ
	extern		vten2_data	; カベ

	extern		kirai3_data	; クロス・カイテン
	extern		datk4_data	; ミサイルダッコ(カクダイ)

*-------< r_zako stage4 >----------------------------------------------------
* r_4
	extern		sando1_data	; ハンバーグ (ヒダリヘ)
	extern		sando2_data	; ハンバーグ (ミギヘ)
	extern		kuwa1_data 	; ヒダリナナメウエ
	extern		kuwa2_data 	; ヒダリナナメシタ
	exter
(Source: Original TCRF research)

References