package ps3test; import com.zerosplace.*; import java.awt.Color; import javax.swing.ButtonGroup; import javax.swing.JOptionPane; public class MainForm extends javax.swing.JFrame { public jCCAPI PS3 = new jCCAPI(); public MainForm() { initComponents(); this.setLocationRelativeTo(null); ButtonGroup btnGroup = new ButtonGroup(); btnGroup.add(cidBtn); btnGroup.add(psidBtn); } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); buttonGroup2 = new javax.swing.ButtonGroup(); ipText = new javax.swing.JTextField(); connectBtn = new javax.swing.JButton(); infoPanel = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); cellTemp = new javax.swing.JLabel(); rsxTemp = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); statusLbl = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); cidTxt = new javax.swing.JTextField(); resetBtn = new javax.swing.JButton(); cidBtn = new javax.swing.JRadioButton(); psidBtn = new javax.swing.JRadioButton(); setBtn = new javax.swing.JButton(); attachBtn = new javax.swing.JButton(); statusLbl1 = new javax.swing.JLabel(); statusLbl2 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("jCCAPI Control Panel [LIGHT]"); ipText.setText("PS3 IP"); ipText.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR)); ipText.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { ipTextMouseClicked(evt); } }); connectBtn.setText("Connect"); connectBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { connectBtnActionPerformed(evt); } }); infoPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("PS3 Info")); jLabel1.setText("CELL Temp:"); jLabel2.setText("RSX Temp:"); cellTemp.setText("0 ℃"); rsxTemp.setText("0 ℃"); javax.swing.GroupLayout infoPanelLayout = new javax.swing.GroupLayout(infoPanel); infoPanel.setLayout(infoPanelLayout); infoPanelLayout.setHorizontalGroup( infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(infoPanelLayout.createSequentialGroup() .addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel1) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cellTemp) .addComponent(rsxTemp)) .addGap(0, 0, Short.MAX_VALUE)) ); infoPanelLayout.setVerticalGroup( infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(infoPanelLayout.createSequentialGroup() .addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(cellTemp)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(rsxTemp))) ); jLabel3.setText("Status: "); statusLbl.setForeground(new java.awt.Color(255, 0, 0)); statusLbl.setText("Not Connected"); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Functions")); jButton1.setText("SetMemory"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Set w/ Get"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setText("Write String"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton4.setText("Read String"); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); cidTxt.setText("Enter ID"); resetBtn.setText("Reset"); resetBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { resetBtnActionPerformed(evt); } }); cidBtn.setText("Console ID"); psidBtn.setText("PSID"); setBtn.setText("Set"); setBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { setBtnActionPerformed(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(cidBtn) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(psidBtn) .addGap(18, 18, 18) .addComponent(resetBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(cidTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 230, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(setBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton2) .addComponent(jButton4)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cidTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(setBtn)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cidBtn) .addComponent(psidBtn) .addComponent(resetBtn)) .addContainerGap(19, Short.MAX_VALUE)) ); attachBtn.setText("Attach"); attachBtn.setToolTipText(""); attachBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { attachBtnActionPerformed(evt); } }); statusLbl1.setForeground(new java.awt.Color(255, 0, 0)); statusLbl1.setText("Not Attached"); statusLbl2.setText("|"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(ipText, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(connectBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(attachBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(infoPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(statusLbl) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(statusLbl2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(statusLbl1))) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addComponent(ipText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(connectBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(attachBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(infoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(6, 6, 6) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(16, 16, 16) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 5, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(statusLbl) .addComponent(statusLbl1) .addComponent(statusLbl2)) .addContainerGap()) ); pack(); }// //GEN-END:initComponents private void ipTextMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ipTextMouseClicked ipText.setText(""); }//GEN-LAST:event_ipTextMouseClicked private void connectBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_connectBtnActionPerformed if (PS3.connect(ipText.getText())) { PS3.notify(NotifyIcon.Info, "Connected to jCCAPI."); PS3.ringBuzzer(BuzzerTypes.Single); statusLbl.setText("Connected"); statusLbl.setForeground(Color.BLUE); cellTemp.setText(PS3.getCellTempCelsius() + ", " + PS3.getCellTempFahrenheit() + "℉"); rsxTemp.setText(PS3.getRsxTempCelsius() + ", " + PS3.getRsxTempFahrenheit() + "℉"); } else { JOptionPane.showMessageDialog(null, "Failed to connect to PS3, please check your connection and try again."); } }//GEN-LAST:event_connectBtnActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed PS3.setMemory(0x00000000, new int[] {0x00, 0x00, 0x00, 0x00, 0x00}); /*OR int[] buffer = new int[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00} PS3.setMemory(0x0000000, buffer); */ }//GEN-LAST:event_jButton1ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed int[] buffer = PS3.getMemory(0x00000000, 5); PS3.setMemory(0x00000000, buffer); }//GEN-LAST:event_jButton2ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed PS3.writeString(0x00000000, "Hi, my name is Zero and my string is now in your memory xD"); }//GEN-LAST:event_jButton3ActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed String ret = PS3.readString(0x00000000, 6); //Returns 6 bytes as a string JOptionPane.showInputDialog(ret); }//GEN-LAST:event_jButton4ActionPerformed private void resetBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetBtnActionPerformed if (!cidBtn.isSelected() && !psidBtn.isSelected()) { JOptionPane.showMessageDialog(null, "Please select the type of ID you will be resetting."); } else { if (cidBtn.isSelected()) { PS3.resetBootConsoleID(); PS3.notify(NotifyIcon.Friend, "Boot Console ID succesfully reset!"); } else { PS3.resetBootPsid(); PS3.notify(NotifyIcon.Friend, "Boot PSID succesfully reset!"); } } }//GEN-LAST:event_resetBtnActionPerformed private void setBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setBtnActionPerformed if (!cidBtn.isSelected() && !psidBtn.isSelected()) { JOptionPane.showMessageDialog(null, "Please select the type of ID you will be setting."); } else { if (cidBtn.isSelected()) { PS3.setBootConsoleID(cidTxt.getText()); PS3.notify(NotifyIcon.Friend, "Boot Console ID succesfully set!"); } else { PS3.setBootPsid(cidTxt.getText()); PS3.notify(NotifyIcon.Friend, "Boot PSID succesfully set!"); } } }//GEN-LAST:event_setBtnActionPerformed private void attachBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_attachBtnActionPerformed if (PS3.attach()) { PS3.notify(NotifyIcon.Friend, "Successfully attached to process."); PS3.ringBuzzer(BuzzerTypes.Double); statusLbl1.setText("Attached"); statusLbl1.setForeground(Color.blue); } else { JOptionPane.showMessageDialog(null, "Failed to connect to PS3, please check your connection and try again."); } }//GEN-LAST:event_attachBtnActionPerformed public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Windows".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MainForm().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton attachBtn; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.ButtonGroup buttonGroup2; private javax.swing.JLabel cellTemp; private javax.swing.JRadioButton cidBtn; private javax.swing.JTextField cidTxt; private javax.swing.JButton connectBtn; private javax.swing.JPanel infoPanel; private javax.swing.JTextField ipText; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JSeparator jSeparator1; private javax.swing.JRadioButton psidBtn; private javax.swing.JButton resetBtn; private javax.swing.JLabel rsxTemp; private javax.swing.JButton setBtn; private javax.swing.JLabel statusLbl; private javax.swing.JLabel statusLbl1; private javax.swing.JLabel statusLbl2; // End of variables declaration//GEN-END:variables }