I will be trying to make a PPC Emulator.
What this application will do is emulate the PPC like a real Wii.
With this it will be easier to debug ASM codes. (it will be more like an ASM Debugger than a PPC Emulator, but PPC Emulator sounds more awesome)
(http://romaap.com/PPCEmulator/ppc%20emu.png)
Download it Here (http://romaap.com/PPCEmulator/publish.htm)
It has an auto-update function, so every time you start the application it will check automatically for updates.
Source is found here (http://romaap.com/PPCEmulator/src.rar).
At this moment it supports the following OPCodes:
lis, li, addi, add, addis, and, andi, andis, mr, not, oris, ori, slwi, srwi, subis, subi, sub, lwz, stw, lhz, sth, lbz, stb
To-Do:
- More OPCodes
- Better warnings when the OP is invalid
- Alter the Condition Register when needed (it doesn't do that atm)
- Branches
- Some bugfixes
- More cool stuff
- Using RAM dumps (?)
Mirrors:
http://www.mediafire.com/?8nsqoar0xbc5106
Boo windows exe
Awesome. I'm looking forward to seeing it expand! =D
great, you do a RAM Dump and then debug the game without doing it live on the Wii *_*
But will be able to see, if your code worked or just if it crashed/not crashed the game? :confused:
This way you don't need the wii on to debug a game. I like it. Eventhough I can't do ASM :(
Quote from: Romaap on January 25, 2011, 11:50:24 PM
So what do you guys think of this, and do you have any suggestions?
Its pretty neat idea, good for learning PPC asm.
this will be useful when completed... do want :o
Updated :)
See first post.
Skiller had a good idea a while ago...make it so you can load a RAM dump into the disassembly tab of Gecko.NET so you can poke through ASM without the game running.
It might not be a bad idea to fork the disassembly tab from Gecko.NET and into your Emulator. It looks like you're using .NET, so that wouldn't be too difficult to do. Do you plan to open-source your app?
BTW, stw r1,0(r0) wouldn't work the way you're trying to make it work. stw is one of those (rA|0) instructions. That means that when rA = r0, it uses the value 0 instead of the value in r0. Therefore, your stw is actually writing to address 0, not 80000000.
Quote from: dcx2 on February 03, 2011, 05:06:12 PM
Skiller had a good idea a while ago...make it so you can load a RAM dump into the disassembly tab of Gecko.NET so you can poke through ASM without the game running.
It might not be a bad idea to fork the disassembly tab from Gecko.NET and into your Emulator. It looks like you're using .NET, so that wouldn't be too difficult to do. Do you plan to open-source your app?
BTW, stw r1,0(r0) wouldn't work the way you're trying to make it work. stw is one of those (rA|0) instructions. That means that when rA = r0, it uses the value 0 instead of the value in r0. Therefore, your stw is actually writing to address 0, not 80000000.
Thanks for the reminder.
And that's definitely a good idea.
I added the source to the first post, but beware of the wasteland of randomness.
I'm not that much of a 'clean' programmer, but I tried my best to keep it neat this time.
O0 Love your magic! You were my first mentor.
I'm really hyped, could you do a clip for it? It would fit perfectly with your previous clips.
Awesome work Romaap, I'm also looking forward to where this is going.
Quote from: dcx2 on February 03, 2011, 05:06:12 PM
Skiller had a good idea a while ago...make it so you can load a RAM dump into the disassembly tab of Gecko.NET so you can poke through ASM without the game running.
It might not be a bad idea to fork the disassembly tab from Gecko.NET and into your Emulator. It looks like you're using .NET, so that wouldn't be too difficult to do. Do you plan to open-source your app?
BTW, stw r1,0(r0) wouldn't work the way you're trying to make it work. stw is one of those (rA|0) instructions. That means that when rA = r0, it uses the value 0 instead of the value in r0. Therefore, your stw is actually writing to address 0, not 80000000.
THis kinda thing would be great to add to a Load Dump kinda function it would alow u to check the asm thats in the game and as well debug the ASM u build .. Making sure branch functions are working right and alow u to build branchs alot easyer :P B 0x8000a000 ahh nice :)
nice work will for sure check this out ..
this is pretty pointless if you cant load ram dumps....
You're pretty pointless if you're not contributing and talking shit about things you know nothing about.
I'll go ahead and take care of that though. *bans*
Hey Romaap, this tool is very helpful! Hope you finished yet :)
i'm learn PPC ASM and i use this tool for Basic Opcodes to understand :cool:
And the Emulator can help find errors in ASM Code.
I'm using this tool for now
Romaap, important Basic Opcode list for the future:
[spoiler]
lis âœ"
li âœ"
ori âœ"
oris âœ"
lbz âœ"
lhz âœ"
lwz âœ"
lfs
stb âœ"
sth âœ"
stw âœ"
stfs
addi âœ"
subi âœ"
mulli
add âœ"
sub
mullw
cmpwi
cmpw
b
beq-
bne-
blt-
bgt-
ble-
bgt-
[/spoiler]
I think, this list is important to learn PPC Assembler for beginners. Bully@Wiiplaza has sended me a list with this Basic Opcodes and with Description.
Hope you implement the rest list for basic ASM Codes :)
half of those are just simplified mnemonics. if he covers bc he has all the bottom ones. lis/li are oris/ori
covering just a basic list seems like a terrible idea. better to just go through the spec sheet and either go by form or just start at the top and do them all
I recently wrote another PPC asm parser and it really only took about a day once I sat down with the opcodes and knocked em out
hi Romaap
also das Tool ist wirklich gut.
eine Frage bzw. Verbesserungsvorschlag wen es geht?
Kannst du es so machen, das wen man die ASM geschrieben hat auf einen Button klickt
der in einer txt den code ausgibt und hinter die ASM Zeile schreibt was die zeile macht.
zb.
lis r5,0x1234 # schreibe in die ersten 16 Bit des Registers (r5) den Wert (1234) und lösche die zweiten 16 Bit
(schreibe in die ersten 16 Bit des Registers # xxxxxx # und lösche die zweiten 16 Bit)
der Text bleibt bei dem Befehl lis ja immer gleich, nur die Werte ändern sich.
So ist es für Anfänger noch einfacher fehlerhafte Anweisungen zu erkennen.
--------------------------------------------------------------------------------------
hi Romaap
So the tool is really good.
a question or suggestion for improvement who are you?
Can you make it so that one who wrote the ASM clicks on a button
of the code in a txt output and behind-the-line ASM writes what makes the line.
for example.
lis r5, 0x1234 # write in the first 16 bits of the register (r5) the value (1234) and delete the second 16-bit
(write in the first 16 bits of register # xxxxx # and delete the second 16-bit)
the text remains in the command lis always the same, only the values ​​change.
So it is easier for beginners to recognize faulty instructions.
This is moronic. Suppose the PPC emulator would have some commands and because of massive PowerPC has, he has to describe everything. In the network there are plenty of documents for PowerPC opcodes.
ok es war nur eine idee, nicht mehr nicht weniger.
------------------------------------------------
ok it was just an idea no more, no less.
Does anyone have a backup or mirror of both app and source? Site appears to be down
PPC Emulator + Source ReUploaded --> DOWNLOAD (http://jafile.com/uploads/ozelot/ppc_emulator_romaap.rar)
Credits by: Romaap
The Setup doesn't work. Romaap's site is down and the Setup checks for Updates and Download the Main Application by startup.
When Romaap has fixed the Website, i'm Remove this link then.
Romaap has retired, hasn´t he?
Quote from: WiiOs-Ozelot on February 22, 2012, 06:24:56 AM
When Romaap has fixed the Website, i'm Remove this link then.
Unfortunately, I think it might not happen.
PS C:\Users\XeR> nslookup romaap.com
Serveur : SpeedTouch.lan
Address: 10.0.0.138
*** Aucun enregistrement internal type for both IPv4 and IPv6 Addresses (A+AAAA) disponible pour romaap.comThis happens when the domain name has expired, or never existed.
I could get the hoster's IP address here (http://www.webboar.com/www/romaap.com)
However, his hosting seems to have been terminated as the only thing I could get is this:
(http://img210.imageshack.us/img210/3451/477ce36af4de4edb8a6a83d.png)
Any way for you to reupload it Ozelot? The current link gives an error 404.
the program is relatively useless.
It doesn´t even know stfs, lfs or mulli. :S
Only basic stuff like lis, ori, stw, lwz and addi, not more.
I could reupload, if you still want it.