If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
Proto:Rise of the Robots (SNES)
Jump to navigation
Jump to search
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 | Rise of the Robots |
Arcade | Rise of the Robots |
Game Gear | Rise of the Robots |
SNES | Rise of the Robots (Prototype) |
DOS, PlayStation, Sega Saturn | Rise 2: Resurrection |