Skip to content

Commit

Permalink
decompiler
Browse files Browse the repository at this point in the history
  • Loading branch information
xem committed May 24, 2015
1 parent d909d95 commit 67f2d2e
Show file tree
Hide file tree
Showing 30 changed files with 3 additions and 127 deletions.
1 change: 0 additions & 1 deletion ROM/BLINKY.c8k

This file was deleted.

File renamed without changes.
1 change: 0 additions & 1 deletion ROM/CAVE.c8k

This file was deleted.

28 changes: 0 additions & 28 deletions ROM/HIDDEN.txt

This file was deleted.

File renamed without changes.
83 changes: 0 additions & 83 deletions ROM/JOUST.txt

This file was deleted.

1 change: 0 additions & 1 deletion ROM/KALEID.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/LANDING.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/MERLIN.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/PUZZLE.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/ROCKET.c8k

This file was deleted.

Binary file added ROM/ROM.zip
Binary file not shown.
File renamed without changes.
File renamed without changes.
1 change: 0 additions & 1 deletion ROM/SPACEF.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/SQUASH.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/SYZYGY.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/TANK.c8k

This file was deleted.

File renamed without changes.
File renamed without changes.
1 change: 0 additions & 1 deletion ROM/TETRIS.c8k

This file was deleted.

File renamed without changes.
1 change: 0 additions & 1 deletion ROM/VBRIX.c8k

This file was deleted.

1 change: 0 additions & 1 deletion ROM/WALL.c8k

This file was deleted.

File renamed without changes.
2 changes: 1 addition & 1 deletion c8.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<canvas id=C width=64></canvas><a href=//github.com/xem/chip8><img style="position:absolute;top:0;right:0;border:0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a><h1>1kb chip8 emulator</h1><h2>Commented cource code, with sound</h2><div><a href=.>Homepage</a><br><br>Choose a ROM:<br><a href="c8.html?1#ROM/TEST/C8PIC.ch8">C8PIC</a><br><a href="c8.html?2#ROM/TEST/IBM.ch8">IBM</a><br><a href="c8.html?3#ROM/TEST/Rocket2.ch8">Rocket2</a> (press Y to launch)<br><a href="c8.html?4#ROM/TEST/X-MIRROR.ch8">X-MIRROR</a> (press 2,4,6,8 to draw)<br><a href="c8.html?5#ROM/TEST/TAPEWORM.ch8">TAPEWORM</a> (Y to start, 2,4,6,8 to move)<br><a href="c8.html?6#ROM/TEST/TIMEBOMB.ch8">TIMEBOMB</a> (set up with 2 and 8, start with 5)<br><a href="c8.html?8#ROM/AIRPLANE.ch8">AIRPLANE</a> (send bombs with 2)<br><a href="c8.html?10#ROM/BLITZ.ch8">BLITZ</a> (send bombs with 2)<br><a href="c8.html?11#ROM/BREAKOUT.ch8">BREAKOUT</a> (move with 4 and 6)<br><a href="c8.html?12#ROM/BRIX.ch8">BRIX</a> (move with 4 and 6)<br><a href="c8.html?13#ROM/CAVE.ch8">CAVE</a> (start with Y, move with 2,4,6,8)<br><a href="c8.html?14#ROM/CONNECT4.ch8">CONNECT4</a><br><a href="c8.html?15#ROM/FIGURES.ch8">FIGURES</a><br><a href="c8.html?16#ROM/FILTER.ch8">FILTER</a><br><a href="c8.html?17#ROM/GUESS.ch8">GUESS</a><br><a href="c8.html?18#ROM/HIDDEN.ch8">HIDDEN</a><br><a href="c8.html?19#ROM/INVADERS.ch8">INVADERS</a><br><a href="c8.html?20#ROM/KALEID.ch8">KALEID</a><br><a href="c8.html?21#ROM/LANDING.ch8">LANDING</a><br><a href="c8.html?22#ROM/MAZE.ch8">MAZE</a><br><a href="c8.html?23#ROM/MERLIN.ch8">MERLIN</a><br><a href="c8.html?24#ROM/MISSILE.ch8">MISSILE</a><br><a href="c8.html?25#ROM/PADDLES.ch8">PADDLES</a><br><a href="c8.html?26#ROM/PONG (1P).ch8">PONG (1P)</a><br><a href="c8.html?27#ROM/PONG.ch8">PONG</a><br><a href="c8.html?28#ROM/PONG2.ch8">PONG2</a><br><a href="c8.html?29#ROM/PUZZLE.ch8">PUZZLE</a><br><a href="c8.html?30#ROM/ROCKET.ch8">ROCKET</a><br><a href="c8.html?31#ROM/SOCCER.ch8">SOCCER</a><br><a href="c8.html?32#ROM/SPACEF.ch8">SPACEF</a><br><a href="c8.html?33#ROM/SQUASH.ch8">SQUASH</a><br><a href="c8.html?34#ROM/SYZYGY.ch8">SYZYGY</a><br><a href="c8.html?35#ROM/TANK.ch8">TANK</a><br><a href="c8.html?36#ROM/TETRIS.ch8">TETRIS</a><br><a href="c8.html?37#ROM/TICTAC.ch8">TICTAC</a><br><a href="c8.html?38#ROM/TRON.ch8">TRON</a><br><a href="c8.html?39#ROM/UFO.ch8">UFO</a><br><a href="c8.html?40#ROM/VBRIX.ch8">VBRIX</a><br><a href="c8.html?41#ROM/VERS.ch8">VERS</a><br><a href="c8.html?42#ROM/WALL.ch8">WALL</a><br><a href="c8.html?43#ROM/WIPEOFF.ch8">WIPEOFF</a><br><br></div><style>*{text-indent:-9999;color:#fff;font-family:arial}h1,h2,div{color: #000;text-indent:0}a{color:blue}h1,h2,canvas{position:absolute;left:10px}canvas{overflow:hidden;top:100px;-webkit-transform:scale(4);transform:scale(4);-webkit-transform-origin:0 0;transform-origin:0 0}h1{top:0;text-indent:0}h2{top:40px;text-indent:0}div{position:absolute;top:250px}</style><script>
<canvas id=C width=64></canvas><a href=//github.com/xem/chip8><img style="position:absolute;top:0;right:0;border:0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a><h1>1kb chip8 emulator</h1><h2>Commented cource code, with sound</h2><div><a href=.>Homepage</a><br><br>Choose a ROM:<br><a href="c8.html?1#ROM/C8PIC.ch8">C8PIC</a><br><a href="c8.html?2#ROM/IBM.ch8">IBM</a><br><a href="c8.html?3#ROM/Rocket2.ch8">Rocket2</a> (press Y to launch)<br><a href="c8.html?4#ROM/X-MIRROR.ch8">X-MIRROR</a> (press 2,4,6,8 to draw)<br><a href="c8.html?5#ROM/TAPEWORM.ch8">TAPEWORM</a> (Y to start, 2,4,6,8 to move)<br><a href="c8.html?6#ROM/TIMEBOMB.ch8">TIMEBOMB</a> (set up with 2 and 8, start with 5)<br><a href="c8.html?8#ROM/AIRPLANE.ch8">AIRPLANE</a> (send bombs with 2)<br><a href="c8.html?10#ROM/BLITZ.ch8">BLITZ</a> (send bombs with 2)<br><a href="c8.html?11#ROM/BREAKOUT.ch8">BREAKOUT</a> (move with 4 and 6)<br><a href="c8.html?12#ROM/BRIX.ch8">BRIX</a> (move with 4 and 6)<br><a href="c8.html?13#ROM/CAVE.ch8">CAVE</a> (start with Y, move with 2,4,6,8)<br><a href="c8.html?14#ROM/CONNECT4.ch8">CONNECT4</a><br><a href="c8.html?15#ROM/FIGURES.ch8">FIGURES</a><br><a href="c8.html?16#ROM/FILTER.ch8">FILTER</a><br><a href="c8.html?17#ROM/GUESS.ch8">GUESS</a><br><a href="c8.html?18#ROM/HIDDEN.ch8">HIDDEN</a><br><a href="c8.html?19#ROM/INVADERS.ch8">INVADERS</a><br><a href="c8.html?20#ROM/KALEID.ch8">KALEID</a><br><a href="c8.html?21#ROM/LANDING.ch8">LANDING</a><br><a href="c8.html?22#ROM/MAZE.ch8">MAZE</a><br><a href="c8.html?23#ROM/MERLIN.ch8">MERLIN</a><br><a href="c8.html?24#ROM/MISSILE.ch8">MISSILE</a><br><a href="c8.html?25#ROM/PADDLES.ch8">PADDLES</a><br><a href="c8.html?26#ROM/PONG (1P).ch8">PONG (1P)</a><br><a href="c8.html?27#ROM/PONG.ch8">PONG</a><br><a href="c8.html?28#ROM/PONG2.ch8">PONG2</a><br><a href="c8.html?29#ROM/PUZZLE.ch8">PUZZLE</a><br><a href="c8.html?30#ROM/ROCKET.ch8">ROCKET</a><br><a href="c8.html?31#ROM/SOCCER.ch8">SOCCER</a><br><a href="c8.html?32#ROM/SPACEF.ch8">SPACEF</a><br><a href="c8.html?33#ROM/SQUASH.ch8">SQUASH</a><br><a href="c8.html?34#ROM/SYZYGY.ch8">SYZYGY</a><br><a href="c8.html?35#ROM/TANK.ch8">TANK</a><br><a href="c8.html?36#ROM/TETRIS.ch8">TETRIS</a><br><a href="c8.html?37#ROM/TICTAC.ch8">TICTAC</a><br><a href="c8.html?38#ROM/TRON.ch8">TRON</a><br><a href="c8.html?39#ROM/UFO.ch8">UFO</a><br><a href="c8.html?40#ROM/VBRIX.ch8">VBRIX</a><br><a href="c8.html?41#ROM/VERS.ch8">VERS</a><br><a href="c8.html?42#ROM/WALL.ch8">WALL</a><br><a href="c8.html?43#ROM/WIPEOFF.ch8">WIPEOFF</a><br><br></div><style>*{text-indent:-9999;color:#fff;font-family:arial}h1,h2,div{color: #000;text-indent:0}a{color:blue}h1,h2,canvas{position:absolute;left:10px}canvas{overflow:hidden;top:100px;-webkit-transform:scale(4);transform:scale(4);-webkit-transform-origin:0 0;transform-origin:0 0}h1{top:0;text-indent:0}h2{top:40px;text-indent:0}div{position:absolute;top:250px}</style><script>
/** Initialization **/

// Vars
Expand Down
2 changes: 1 addition & 1 deletion c8.min.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<canvas id=V width=64></canvas><a href=//github.com/xem/chip8><img style="position:absolute;top:0;right:0;border:0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a><h1>1kb chip8 emulator</h1><h2>Minified & golfed source code</h2><div><a href=.>Homepage</a><br><br>Choose a ROM:<br><a href="c8.min.html?1#ROM/TEST/C8PIC.ch8">C8PIC</a><br><a href="c8.min.html?2#ROM/TEST/IBM.ch8">IBM</a><br><a href="c8.min.html?3#ROM/TEST/Rocket2.ch8">Rocket2</a> (press Y to launch)<br><a href="c8.min.html?4#ROM/TEST/X-MIRROR.ch8">X-MIRROR</a> (press 2,4,6,8 to draw)<br><a href="c8.min.html?5#ROM/TEST/TAPEWORM.ch8">TAPEWORM</a> (Y to start, 2,4,6,8 to move)<br><a href="c8.min.html?6#ROM/TEST/TIMEBOMB.ch8">TIMEBOMB</a> (set up with 2 and 8, start with 5)<br><a href="c8.min.html?8#ROM/AIRPLANE.ch8">AIRPLANE</a> (send bombs with 2)<br><a href="c8.min.html?10#ROM/BLITZ.ch8">BLITZ</a> (send bombs with 2)<br><a href="c8.min.html?11#ROM/BREAKOUT.ch8">BREAKOUT</a> (move with 4 and 6)<br><a href="c8.min.html?12#ROM/BRIX.ch8">BRIX</a> (move with 4 and 6)<br><a href="c8.min.html?13#ROM/CAVE.ch8">CAVE</a> (start with Y, move with 2,4,6,8)<br><a href="c8.min.html?14#ROM/CONNECT4.ch8">CONNECT4</a><br><a href="c8.min.html?15#ROM/FIGURES.ch8">FIGURES</a><br><a href="c8.min.html?16#ROM/FILTER.ch8">FILTER</a><br><a href="c8.min.html?17#ROM/GUESS.ch8">GUESS</a><br><a href="c8.min.html?18#ROM/HIDDEN.ch8">HIDDEN</a><br><a href="c8.min.html?19#ROM/INVADERS.ch8">INVADERS</a><br><a href="c8.min.html?20#ROM/KALEID.ch8">KALEID</a><br><a href="c8.min.html?21#ROM/LANDING.ch8">LANDING</a><br><a href="c8.min.html?22#ROM/MAZE.ch8">MAZE</a><br><a href="c8.min.html?23#ROM/MERLIN.ch8">MERLIN</a><br><a href="c8.min.html?24#ROM/MISSILE.ch8">MISSILE</a><br><a href="c8.min.html?25#ROM/PADDLES.ch8">PADDLES</a><br><a href="c8.min.html?26#ROM/PONG (1P).ch8">PONG (1P)</a><br><a href="c8.min.html?27#ROM/PONG.ch8">PONG</a><br><a href="c8.min.html?28#ROM/PONG2.ch8">PONG2</a><br><a href="c8.min.html?29#ROM/PUZZLE.ch8">PUZZLE</a><br><a href="c8.min.html?30#ROM/ROCKET.ch8">ROCKET</a><br><a href="c8.min.html?31#ROM/SOCCER.ch8">SOCCER</a><br><a href="c8.min.html?32#ROM/SPACEF.ch8">SPACEF</a><br><a href="c8.min.html?33#ROM/SQUASH.ch8">SQUASH</a><br><a href="c8.min.html?34#ROM/SYZYGY.ch8">SYZYGY</a><br><a href="c8.min.html?35#ROM/TANK.ch8">TANK</a><br><a href="c8.min.html?36#ROM/TETRIS.ch8">TETRIS</a><br><a href="c8.min.html?37#ROM/TICTAC.ch8">TICTAC</a><br><a href="c8.min.html?38#ROM/TRON.ch8">TRON</a><br><a href="c8.min.html?39#ROM/UFO.ch8">UFO</a><br><a href="c8.min.html?40#ROM/VBRIX.ch8">VBRIX</a><br><a href="c8.min.html?41#ROM/VERS.ch8">VERS</a><br><a href="c8.min.html?42#ROM/WALL.ch8">WALL</a><br><a href="c8.min.html?43#ROM/WIPEOFF.ch8">WIPEOFF</a><br><br></div><style>*{text-indent:-9999;color:#fff;font-family:arial}h1,h2,div{color:#000;text-indent:0}a{color:blue}h1,h2,canvas{position:absolute;left:10px}canvas{overflow:hidden;top:100px;-webkit-transform:scale(4);transform:scale(4);-webkit-transform-origin:0 0;transform-origin:0 0}h1{top:0;text-indent:0}h2{top:40px;text-indent:0}div{position:absolute;top:250px}</style>
<canvas id=V width=64></canvas><a href=//github.com/xem/chip8><img style="position:absolute;top:0;right:0;border:0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a><h1>1kb chip8 emulator</h1><h2>Minified & golfed source code</h2><div><a href=.>Homepage</a><br><br>Choose a ROM:<br><a href="c8.min.html?1#ROM/C8PIC.ch8">C8PIC</a><br><a href="c8.min.html?2#ROM/IBM.ch8">IBM</a><br><a href="c8.min.html?3#ROM/Rocket2.ch8">Rocket2</a> (press Y to launch)<br><a href="c8.min.html?4#ROM/X-MIRROR.ch8">X-MIRROR</a> (press 2,4,6,8 to draw)<br><a href="c8.min.html?5#ROM/TAPEWORM.ch8">TAPEWORM</a> (Y to start, 2,4,6,8 to move)<br><a href="c8.min.html?6#ROM/TIMEBOMB.ch8">TIMEBOMB</a> (set up with 2 and 8, start with 5)<br><a href="c8.min.html?8#ROM/AIRPLANE.ch8">AIRPLANE</a> (send bombs with 2)<br><a href="c8.min.html?10#ROM/BLITZ.ch8">BLITZ</a> (send bombs with 2)<br><a href="c8.min.html?11#ROM/BREAKOUT.ch8">BREAKOUT</a> (move with 4 and 6)<br><a href="c8.min.html?12#ROM/BRIX.ch8">BRIX</a> (move with 4 and 6)<br><a href="c8.min.html?13#ROM/CAVE.ch8">CAVE</a> (start with Y, move with 2,4,6,8)<br><a href="c8.min.html?14#ROM/CONNECT4.ch8">CONNECT4</a><br><a href="c8.min.html?15#ROM/FIGURES.ch8">FIGURES</a><br><a href="c8.min.html?16#ROM/FILTER.ch8">FILTER</a><br><a href="c8.min.html?17#ROM/GUESS.ch8">GUESS</a><br><a href="c8.min.html?18#ROM/HIDDEN.ch8">HIDDEN</a><br><a href="c8.min.html?19#ROM/INVADERS.ch8">INVADERS</a><br><a href="c8.min.html?20#ROM/KALEID.ch8">KALEID</a><br><a href="c8.min.html?21#ROM/LANDING.ch8">LANDING</a><br><a href="c8.min.html?22#ROM/MAZE.ch8">MAZE</a><br><a href="c8.min.html?23#ROM/MERLIN.ch8">MERLIN</a><br><a href="c8.min.html?24#ROM/MISSILE.ch8">MISSILE</a><br><a href="c8.min.html?25#ROM/PADDLES.ch8">PADDLES</a><br><a href="c8.min.html?26#ROM/PONG (1P).ch8">PONG (1P)</a><br><a href="c8.min.html?27#ROM/PONG.ch8">PONG</a><br><a href="c8.min.html?28#ROM/PONG2.ch8">PONG2</a><br><a href="c8.min.html?29#ROM/PUZZLE.ch8">PUZZLE</a><br><a href="c8.min.html?30#ROM/ROCKET.ch8">ROCKET</a><br><a href="c8.min.html?31#ROM/SOCCER.ch8">SOCCER</a><br><a href="c8.min.html?32#ROM/SPACEF.ch8">SPACEF</a><br><a href="c8.min.html?33#ROM/SQUASH.ch8">SQUASH</a><br><a href="c8.min.html?34#ROM/SYZYGY.ch8">SYZYGY</a><br><a href="c8.min.html?35#ROM/TANK.ch8">TANK</a><br><a href="c8.min.html?36#ROM/TETRIS.ch8">TETRIS</a><br><a href="c8.min.html?37#ROM/TICTAC.ch8">TICTAC</a><br><a href="c8.min.html?38#ROM/TRON.ch8">TRON</a><br><a href="c8.min.html?39#ROM/UFO.ch8">UFO</a><br><a href="c8.min.html?40#ROM/VBRIX.ch8">VBRIX</a><br><a href="c8.min.html?41#ROM/VERS.ch8">VERS</a><br><a href="c8.min.html?42#ROM/WALL.ch8">WALL</a><br><a href="c8.min.html?43#ROM/WIPEOFF.ch8">WIPEOFF</a><br><br></div><style>*{text-indent:-9999;color:#fff;font-family:arial}h1,h2,div{color:#000;text-indent:0}a{color:blue}h1,h2,canvas{position:absolute;left:10px}canvas{overflow:hidden;top:100px;-webkit-transform:scale(4);transform:scale(4);-webkit-transform-origin:0 0;transform-origin:0 0}h1{top:0;text-indent:0}h2{top:40px;text-indent:0}div{position:absolute;top:250px}</style>
<script>
q=(C=V.getContext("2d")).createImageData(64,32);
e=eval;
Expand Down
Binary file added c8.min.pack.html
Binary file not shown.
1 change: 1 addition & 0 deletions decompiler.min.pack.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<input onchange="with(f=new FileReader)readAsArrayBuffer(files[0]),onload=s"type=file><script>s=z=>{u=new Uint8Array(f.result);for(i=0;i<u.length;i+=2)o=u[i]<<8|u[i+1],p=o>>12,l=("00"+(o&4095).toString(16)).slice(-3),q=o&255,m=(0+q.toString(16)).slice(-2),n=o&15,N=n.toString(16),X=(o>>8&15).toString(16),Y=(o>>4&15).toString(16),a.innerHTML+=(1E3+(+i+512).toString(16)).slice(-4)+" | "+(1E3+o.toString(16)).slice(-4)+" | "+([n?"RET | return":"CLS | clear screen","JP 0x"+l+" | jump to 0x"+l,"CALL 0x"+l+" | call subprogram at 0x"+l,"SE V"+X+", 0x"+m+" | skip next if V"+X+" == 0x"+m,"SNE V"+X+", 0x"+m+" | skip next if V"+X+" != 0x"+m,"SE V"+X+", V"+Y+" | skip next if V"+X+" == V"+Y,"LD V"+X+", 0x"+m+" | set V"+X+" to 0x"+m,"ADD V"+X+", 0x"+m+" | add 0x"+m+" to V"+X,["LD V"+X+", V"+Y+" | set V"+X+" to V"+Y,"OR V"+X+", V"+Y+" | set V"+X+" to V"+X+" OR V"+Y,"AND V"+X+", V"+Y+" | set V"+X+" to V"+X+" AND V"+Y,"XOR V"+X+", V"+Y+" | set V"+X+" to V"+X+" XOR V"+Y,"ADD V"+X+", V"+Y+" | add V"+Y+" to V"+X+" (VF = carry)","SUB V"+X+", V"+Y+" | substract V"+Y+" to V"+X+" (VF = NOT borrow)","SHR V"+X+" | right shift V"+X+" (VF = shifted bit)","SUBN V"+X+", V"+Y+" | substract V"+X+" to V"+Y+" (VF = NOT borrow)",,,,,,"SHL V"+X+" | left shift V"+X+" (VF = shifted bit)"][n],"SNE V"+X+", V"+Y+" | skip next if V"+X+" != V"+Y,"LD I, 0x"+l+" | set I to 0x"+l,"JP V0, 0x"+l+" | jump to 0x"+l+" + V0","RND V"+X+", 0x"+m+" | set V"+X+" to a random number < 0x"+m,"DRW V"+X+", V"+Y+", 0x"+N+" | draw the 8*"+N+ "px sprite at @I at ["+X+":"+Y+"]",q-158?"SKNP V"+X+" | skip next if the key in V"+X+" is not pressed":"SKP V"+X+" | skip next if the key in V"+X+" is pressed",["LD DT, V"+X+" | set timer to V"+X,"LD F, V"+X+" | set I to the character at V"+X,,"LD ST, V"+X+" | set sound timer to V"+X,"LD V"+X+", [I] | load V0 to V"+X+" from @I to @I+"+X,"LD V"+X+", DT | load timer value in V"+X,,"LD [I], V"+X+" | store V0 to V"+X+" in @I to @I+"+X,"LD V"+X+", K | store key pressed in V"+X,"ADD I, V"+X+" | add V"+X+" to I (VF = I overflow)",,"LD B, V"+X+" | store V"+X+" in base 10 at I (hundreds), I+1 (dozens) and I+2"][q%19-2]][p]||"? | ?")+"\n"}</script><pre id=a>
Binary file modified index.html
Binary file not shown.

0 comments on commit 67f2d2e

Please sign in to comment.