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).
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 |