This page details one or more prototype versions of Rise of the Robots (SNES).
|
|
This prototype is documented on Hidden Palace. |
A prototype of the Japanese version has been released into the wild and contains additional source code not present in the European version.
General Differences#
- AI is set to its hardest level, no matter what difficulty option is selected. This makes it hard to progress through the game.
Text Differences#
- The prototype has the text "JAMES (J) 1994 RISE OF THE ROBOTS", which is not in the final version.
Visual Differences#
- Only the Mirage logo is shown when booting up the game, and even that is missing "Created and Designed by" and the trademark.
- The player robot character on the title screen has the hip glitched.
- The opening and ending cinematics are not present. The robot analysis and arrival cinematics take place on the main menu rather than on unique screens.
- Health bars are split into sections.
|
Proto |
Final |
|---|---|
|
|
|
Unlike the final version, the title screen image is static.
|
Proto |
Final |
|---|---|
|
|
|
The results graphics are more arcade game-like than the final version, which combines the results into one monitor.
Uncompiled Source Code#
0x578A:
lr_pal incbin data\dat_back\finalr.pal
final incbin data\dat_back\finala.dat
final_pal incbin data\dat_back\finala.pal
round1 incbin data\dat_bso
0x61F0:
5
ds_sp_074 incbin data\dat_back\ds_sp074.dat ;1550
ds_jp_023 incbin data\dat_back\ds_jp023.dat ;2779
ds_ml_003 incbin data\dat_back\ds_ml003.dat ;3001
ds_ml_004 incbin data\dat_back\ds_ml004.dat ;2871
ds_ml_005 incbin data\dat_back\ds_ml005.dat ;2959
ds_ml_006 incbin data\dat_back\ds_ml006.dat ;2891
ds_ml_007 incbin data\dat_back\ds_ml007.dat ;2873
ds_ml_008 incbin data\dat_back\ds_ml008.dat ;2796
ds_ml_009 incbin data\dat_back\ds_ml009.dat ;2852
ds_ml_010 incbin data\dat_back\ds_ml010.dat ;2804
ds_ml_011 incbin data\dat_back\ds_ml011.dat ;2808
ds_cb_004 incbin data\dat_back\ds_cb004.dat ;2767
ds_cb_005 incbin data\dat_back\ds_cb005.dat ;2857
ds_cb_012 incbin data\dat_back\ds_cb012.dat ;2943
ds_cb_015 incbin data\dat_back\ds_cb015.dat ;3127
ds_cb_016 incbin data\dat_back\ds_cb016.dat ;3129
ds_cb_017 incbin data\dat_back\ds_cb017.dat ;3033
ds_cb_018 incbin data\dat_back\ds_cb018.dat ;3012
ds_cb_021 incbin data\dat_back\ds_cb021.dat ;2801
SECTION m59,m_59 ;65479
ds_sp_013 incbin data\dat_back\ds_sp013.dat ;2685
ds_sp_034 incbin data\dat_back\ds_sp034.dat ;2727
ds_sp_036 incbin data\dat_back\ds_sp036.dat ;2620
ds_sp_037 incbin data\dat_back\ds_sp037.dat ;2624
ds_sp_039 incbin data\dat_back\ds_sp039.dat ;2318
ds_sp_042 incbin data\dat_back\ds_sp042.dat ;2207
ds_ld_010 incbin data\dat_back\ds_ld010.dat ;144
ds_ml_012 incbin data\dat_back\ds_ml012.dat ;2765
ds_ml_013 incbin data\dat_back\ds_ml013.dat ;2720
ds_ml_014 incbin data\dat_back\ds_ml014.dat ;2746
ds_ml_015 incbin data\dat_back\ds_ml015.dat ;2682
ds_ml_016 incbin data\dat_back\ds_ml016.dat ;2696
ds_ml_017 incbin data\dat_back\ds_ml017.dat ;2621
ds_ml_018 incbin data\dat_back\ds_ml018.dat ;2622
ds_ml_019 incbin data\dat_back\ds_ml019.dat ;2617
ds_ml_020 incbin data\dat_back\ds_ml020.dat ;2754
ds_cb_002 incbin data\dat_back\ds_cb002.dat ;2643
ds_cb_003 incbin data\dat_back\ds_cb003.dat ;2696
ds_cb_006 incbin data\dat_back\ds_cb006.dat ;2419
ds_cb_007 incbin data\dat_back\ds_cb007.dat ;2741
ds_cb_008 incbin data\dat_back\ds_cb008.dat ;2604
ds_cb_009 incbin data\dat_back\ds_cb009.dat ;2643
ds_cb_010 incbin data\dat_back\ds_cb010.dat ;2694
ds_cb_011 incbin data\dat_back\ds_cb011.dat ;2186
ds_cb_013 incbin data\dat_back\ds_cb013.dat ;2651
ds_cb_020 incbin data\dat_back\ds_cb020.dat ;2654
SECTION m60,m_60 ;65528
ds_sp_012 incbin data\dat_back\ds_sp012.dat ;2163
ds_sp_040 incbin data\dat_back\ds_sp040.dat ;2125
ds_sp_041 incbin data\dat_back\ds_sp041.dat ;2113
ds_sp_043 incbin data\dat_back\ds_sp043.dat ;2165
ds_sp_044 incbin data\dat_back\ds_sp044.dat ;2023
ds_sp_045 incbin data\dat_back\ds_sp045.dat ;2088
ds_sp_046 incbin data\dat_back\ds_sp046.dat ;2065
ds_sp_047 incbin data\dat_back\ds_sp047.dat ;2006
ds_sp_048 incbin data\dat_back\ds_sp048.dat ;1975
ds_sp_049 incbin data\dat_back\ds_sp049.dat ;2001
ds_sp_050 incbin data\dat_back\ds_sp050.dat ;1966
ds_sp_051 incbin data\dat_back\ds_sp051.dat ;2055
ds_sp_052 incbin data\dat_back\ds_sp052.dat ;1930
ds_sp_053 incbin data\dat_back\ds_sp053.dat ;1865
ds_sp_054 incbin data\dat_back\ds_sp054.dat ;1906
ds_sp_055 incbin data\dat_back\ds_sp055.dat ;1876
ds_sp_056 incbin data\dat_back\ds_sp056.dat ;1872
ds_sp_057 incbin data\dat_back\ds_sp057.dat ;1749
ds_sp_058 incbin data\dat_back\ds_sp058.dat ;1817
ds_sp_059 incbin data\dat_back\ds_sp059.dat ;1727
ds_sp_060 incbin data\dat_back\ds_sp060.dat ;1796
ds_sp_061 incbin data\dat_back\ds_sp061.dat ;1781
ds_sp_063 incbin data\dat_back\ds_sp063.dat ;1737
ds_sp_064 incbin data\dat_back\ds_sp064.dat ;1799
ds_sp_065 incbin data\dat_back\ds_sp065.dat ;1766
ds_sp_066 incbin data\dat_back\ds_sp066.dat ;1735
ds_sp_067 incbin data\dat_back\ds_sp067.dat ;1696
ds_sp_068 incbin data\dat_back\ds_sp068.dat ;1754
ds_sp_070 incbin data\dat_back\ds_sp070.dat ;1620
ds_ld_002 incbin data\dat_back\ds_ld002.dat ;1768
ds_ld_003 incbin data\dat_back\ds_ld003.dat ;1648
ds_ld_006 incbin data\dat_back\ds_ld006.dat ;1670
ds_ld_007 incbin data\dat_back\ds_ld007.dat ;1731
ds_cr_004 incbin data\dat_back\ds_cr004.dat ;886
ds_cr_007 incbin data\dat_back\ds_cr007.dat ;531
ds_cb_019 incbin data\dat_back\ds_cb019.dat ;2123
SECTION m61,m_61 ;33144
ds_cb_mc include data\dat_back\ds_cb.mac ;791
ds_ld_mc include data\dat_back\ds_ld.mac ;506
ds_ap_mc include data\dat_back\ds_ap.mac ;411
ds_cr_mc include data\dat_back\ds_cr.mac ;525
ds_ml_mc include data\dat_back\ds_ml.mac ;392
ds_jp_mc include data\dat_back\ds_jp.mac ;449
ds_sp_mc include data\dat_back\ds_sp.mac ;1494
ds_sp_069 incbin data\dat_back\ds_sp069.dat ;1595
ds_sp_071 incbin data\dat_back\ds_sp071.dat ;1525
ds_sp_072 incbin data\dat_back\ds_sp072.dat ;1596
ds_sp_073 incbin data\dat_back\ds_sp073.dat ;1472
ds_sp_075 incbin data\dat_back\ds_sp075.dat ;1546
ds_sp_076 incbin data\dat_back\ds_sp076.dat ;1532
ds_sp_077 incbin data\dat_back\ds_sp077.dat ;1521
ds_sp_078 incbin data\dat_back\ds_sp078.dat ;1440
ds_ld_005 incbin data\dat_back\ds_ld005.dat ;1510
ds_ld_008 incbin data\dat_back\ds_ld008.dat ;220
ds_ld_011 incbin data\dat_back\ds_ld011.dat ;226
ds_ld_012 incbin data\dat_back\ds_ld012.dat ;303
ds_ld_013 incbin data\dat_back\ds_ld013.dat ;309
ds_ld_014 incbin data\dat_back\ds_ld014.dat ;343
ds_ld_015 incbin data\dat_back\ds_ld015.dat ;442
ds_ld_017 incbin data\dat_back\ds_ld017.dat ;564
ds_ld_018 incbin data\dat_back\ds_ld018.dat ;440
ds_ld_019 incbin data\dat_back\ds_ld019.dat ;472
ds_ld_020 incbin data\dat_back\ds_ld020.dat ;457
ds_ld_021 incbin data\dat_back\ds_ld021.dat ;339
ds_ld_022 incbin data\dat_back\ds_ld022.dat ;345
ds_ld_023 incbin data\dat_back\ds_ld023.dat ;340
ds_ld_024 incbin data\dat_back\ds_ld024.dat ;316
ds_ld_025 incbin data\dat_back\ds_ld025.dat ;219
ds_cr_002 incbin data\dat_back\ds_cr002.dat ;850
ds_cr_005 incbin data\dat_back\ds_cr005.dat ;859
ds_cr_008 incbin data\dat_back\ds_cr008.dat ;490
ds_cr_009 incbin data\dat_back\ds_cr009.dat ;492
ds_cr_010 incbin data\dat_back\ds_cr010.dat ;458
ds_cr_011 incb
0xF400:
1sc
lda #(sc_2n_scrn/2)>>8
sta w_bg2sc
stz w_bg1hofs
stz w_bg1hofs ;two writes required/upper byte zero
lda #3 ;sc1 (256 color) , sc2 (16 color)
sta w_bgmode
lda #bg12nme ;effective global nme offset for each sc
sta w_bg12nba ;
lda #$13
sta |w_tm
lda #$01
sta |w_ts
lda #%01010010
sta |w_cgadsub
lda #$02
sta |w_cgswsel
lda #-1
sta |w_bg1vofs
lda #0
sta |w_bg1vofs
lda #-1
sta |w_bg2vofs
lda #0
sta |w_bg2vofs
a16
rts
init_vars:
stz |time_count
stz |spr_blit_flag
stz |playback
stz |play_mode ;return from demo to play a game
stz |stop
stz |spr_frame
stz |sjoy0
stz |ljoy0
stz |sjoy1
stz |ljoy1
stz |overflow
stz |game_over
stz |v_offset
lda #0
sta scroll_h
stz bout_number
stz num_frames
stz nrg_dsp_flg
stz nrg_dsp_flg+2
stz message_1+ms_ptr
stz message_1+ms_cnt
lda #mess_init_spd
sta message_1+ms_tim
stz message_1+ms_delcount
stz message_2+ms_ptr
stz message_2+ms_cnt
lda #mess_init_spd
sta message_2+ms_tim
stz message_2+ms_delcount
lda #mess_cue_1
sta message_1+ms_cue_head
sta message_1+ms_cue_tail
lda #mess_cue_2
sta message_2+ms_cue_head
sta message_2+ms_cue_tail
if en_inimess
; lda #mess1
; jsr message1
lda robot_opponent
asl
tax
; lda >ms_tbl,x
; jsr message2
endif
ldy #(no_shards*shard_parm_size)/2
ldx #shard_buff
lda #0
!lp: sta 0,x
inx
inx
dey
bne !lp
stz rest
rts
message1 phx
ldx message_1+ms_cue_tail
sta 0,x
inx
inx
cpx #mess_cue_1+mess_cue_len
bne !ok1
ldx #mess_cue_1
!ok1 stx message_1+ms_cue_tail
plx
stz robot_1+robot_state
rts
message2 phx
ldx message_2+ms_cue_tail
sta 0,x
inx
inx
cpx #mess_cue_2+mess_cue_len
bne !ok2
ldx #mess_cue_2
!ok2 stx message_2+ms_cue_tail
plx
stz robot_2+robot_state
rts
tog_spr_bank:
lda #fsn
sta |sprite_bank
rts
lda |sprite_bank
cmp #fsn
beq !bnk0
lda #fsn
!cont:
clc
adc #$08
and #$f0
sta |sprite_bank
rts
!bnk0:
lda #127 ;|dec_start
sec
sbc #10
clc
adc #fsn
lsr
bra !cont
csp:
ldx |time_count
cpx #-1
beq !nit
inx
!nit: stx |time_count
cpx #4
bcc !exit
lda #robot_sp
sta sprite_number
if en_sp1
lea robot1_sprite,<a0
ldx #robot_1_sc
jsr cn_spr
endif
if en_sp2
lea robot2_sprite,<a0
ldx #robot_2_sc
jsr cn_spr
endif
0x29F16B:
a1 ; <d4+2 - xOfs
and #$ff
eor #-1
sec ; inc a : clc
adc <d4
a08
sta sprite_buffer,x
xba
beq !no_x
a16
lda >spt,x
tay
a08
lda >spt+2,x
ora 0,y
sta 0,y
!no_x:
lda [a1]
clc
adc <d5
sta sprite_buffer+1,x
a16
lda <d3
inc a
inc a
bit #$0010
beq !not_adjust
clc
adc #$0010
!not_adjust:
sta <d3
inc <a1
inx
inx
inx
inx
dec <d0
bne !loop
!exit:
rts
;###############################################################################
sh_spr:
sty <a0
stz <a0+2
sta <d6
lda spr_mult_disp,y
bne !exit
stx <d3
lda sprite_number
asl a
asl a
tax
lda spr_mult_add,y
sta <a1
lda spr_mult_add+2,y
sta <a1+2
lda spr_mult_x,y
clc
adc scroll_h
sta <d4
lda [a1] ; # of sprites
sta <d0
clc
adc sprite_number
sta sprite_number
lda <a1
clc
adc #spr_off
sta <a1
lda >shadow_floor
sec
sbc v_offset
adc <d5
sta <d5
lda spr_mult_height,y
dec a
asl a
asl a
asl a
clc
adc <d5
sta <d5
lda spr_mult_xflip,y
bit #1<<6
beq sh_spr_forwards
jmp sh_spr_back
!exit:
rts
sh_spr_forwards:
!loop:
cpx #128*4 ;point to x,y etc
bcs !exit
a08
lda <d3
sta sprite_buffer+2,x
lda <d3+1 ;now high + vflip/hflip/priority/color
and #1
ora #%10110000
ora <d6
sta sprite_buffer+3,x
a16 ; set up x
inc <a1
lda [a1]
inc <a1
and #$ff
clc
adc <d4
a08
sta sprite_buffer,x
xba
beq !no_x
a16
lda >spt,x
tay
a08
lda >spt+2,x
ora 0,y
sta 0,y
!no_x:
a16
lda [a1]
and #$ff
lsr a
eor #-1
sec ; inc a : clc
adc <d5
cmp #230
bcs !skip
a08
sta sprite_buffer+1,x
a16
inx
inx
inx
inx
!skip:
inc <a1
lda <d3
inc a
inc a
bit #$0010
beq !not_adjust
clc
adc #$0010
!not_adjust:
sta <d3
dec <d0
bne !loop
!exit:
rts
sh_spr_back:
lda spr_mult_width,y ; adjust x position
dec a
asl a
asl a
asl a
asl a
clc
adc <d4
sta <d4
!loop:
cpx #128*4 ;point to x,y etc
bcs !exit
a08
lda <d3
sta sprite_buffer+2,x
lda <d3+1 ;now high + vflip/hflip/priority/color
and #1
ora #%11110000
ora <d6
sta sprite_buffer+3,x
a16 ; set up x
inc <a1
lda [a1]
inc <a1
and #$ff
eor #-1
sec ; inc a : clc
adc <d4
a08
sta sprite_buffer,x
xba
beq !no_x
a16
lda >spt,x
tay
a08
lda >spt+2,x
ora 0,y
sta 0,y
!no_x:
a16
lda [a1]
and #$ff
lsr a
eor #-1
sec ; inc a : clc
adc <d5
cmp #230
bcs !skip
a08
sta sprite_buffer+1,x
a16
inx
inx
inx
inx
!skip:
a16
inc <a1
lda <d3
inc a
inc a
bit #$0010
beq !not_adjust
clc
adc #$0010
!not_adjust:
sta <d3
dec <d0
bne !loop
!exit:
rts
endif
********************************************************
* enable the NMI interrupts *
********************************************************
v_blank_on a08
lda #%10000001
sta |w_nmitimen
a16
rts
vbl_vect_off:
sei
cli
rts
update_frame:
lda |frame_blit_frm
sta |frame_blit_frm+2
lda |frame_blit_size
cmp |frame_blit_size+2
bcc !nok
sta |frame_blit_size+2
lda |frame_blit_count
sta |frame_blit_count+2
!nok: rts
zero_frame: lda #0
sta |frame_blit_size
sta |frame_blit_count
sta |frame_blit_frm
rts
vbl_vect_on:
sei
ldx #0
txa
!1:
sta |dma_tab+log_lenth,x
inx
inx
cpx #max_dma_logs*log_blk_size
bcc !1
stz |log_offset_in
stz |log_offset_out
cli
rts
process_nmi:
(Source: evilhamwizard)
|
The Rise of the Robots series | |
|---|---|
|
3DO |
|
|
Arcade |
|
|
Game Gear |
|
|
SNES |
|
|
DOS, PlayStation, Sega Saturn |
|