CoBB wrote:I didn’t want to contaminate your minds.
Bah -- we have our fair share of hacks, but the device code is happily quite clean. You should see the code to access some of the COM events for Drag n Drop ...
Both of us being ceaseless Z80 coders, we essentially wrote this to get the features into the debugger that we want. Of course, this will allow for things useless to others, such as zelda specific tools, but also for the things we considered quite necessary -- stack trace and memory watch.
Game developers in general might find some of the things we're doing useful. Jim thought of the great idea to watch how often the LCD is updated by the software running to make an FPS indicator. I found out Zelda actually runs at 39 FPS, something I couldn't calculate easily due to ocassional DIs.
Have you ever loaded a BASIC program onto your emulator before? A lot of the subprograms involved need to go to archive. Well, highlight the archives progs, drag over the emu and the screen splits into two sections: red for RAM and green for archive. Two drags and 30 programs can be on calc.
Wow, thats a neat feature, you dont even need to be prompted! (Who thought of that one? ).
The FPS counter is a neat one too, though im not sure about grayscale games since they update the LCD at a constant rate, independant of the program ... though i guess it would be easy to calculate on your own then.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Yes, but you can still calculate, for instance, how fast the screen is switched from the back buffers to the front. This will give you a good indication of speed, regardless of greyscale interaction.
I also like the idea of user specific tools, like specifically memory watch. I like to use a lot of external variables, to keep things straight, and I generally keep these always in the same place, so a way to have the emulator watch those places and present them in a specific format with a legible name (aka display numbers in either hex or decimal, display 16 bit numbers instead of having to manually decode memory, display a string area as text, etc, etc.) would be quite useful, even if it took a little work.
I wonder something else as well. Is it possible for a dissassembler to, given the right information, include the original label names and original defines in its displayed code? That info has got to be compiled down somewhere along the line, perhaps the emu could read it if present and provide the extra info? That was the most annoying thing about debugging your greyscale routine Jim when I was modding it, I had trouble figuring out just where in the code the calc was, because it kept jumping around a lot. (I was stepping through)
This sounds like it will end up being really neat. Um, will it feature a way to customize your keyboard layout? That was one aspect of PTI that kept me guessing, I never could figure out the key layout...
Well with TASM you can assemble with a -s flag to output a Symbol file containing all your label equates. This could be used by the emulator/debugger for label names.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
It would make more sense to me if the emulator simply accepted assembly source as well as binaries and allowed source level debugging. That would also make comments accessible besides labels. The toolchain contains a fairly mature assembler already, it could be tightly integrated.
After many fights and squabbles, many of us near "I'm quitting the band" at times, we've struggled through to a beta release.
Just kidding, actually it was a very smooth and quick development process. We started this project in early December, and now we're pleased to present the beta first release of Wabbitemu.
While we're fairly confident you'll find this little program useful, please drop by and let us know when you find bugs. We know some areas are lacking -- keep in mind we are still working on this. Now we don't quite have a readme, so I'm going to outline some features you're going to want to try out.
Go ahead, pick a model. Any model - Just drag or send a ROM and be on your way. Wabbitemu supports the TI-73, 82, 83, 83+, 83+ SE, and 84+SE
Drag and drop - Grab a full handful of files and throw them at the emulator. Depending on where you drop them on the screen, it will put them in ram or archive. Great for you basic programmers
Instant APPs - Instantly send apps, no reseting required
Play sounds - Have you ever heard RealSound? I don't have an SE, so the first time I heard Realsound was on wabbitemu. Just start an SE ROM and right click on the LCD and choose the sound menu option.
Link up with wabbitspasm - Run your source code through wabbitspasm with -L switch to export labels. Load label files into the emulator
Debug - Get closer to your source while debugging than ever before. Press 'g' and type in a label name - if you've loaded a label file, it will effortlessly go to that memory address.
Mouse scrollwheel - How I've missed you
Frames per second - Ever wonder how many fps you're getting? With most games, Wabbitemu will calculate your frames per second based on how often you update the screen. I just found out zelda runs at 40 fps!
Pipe in files - run a separate instance of wabbitemu with filenames as arguments, and those files will be transfered to an already running wabbitemu. You can also start up wabbitemu with files to transfer on the commandline
Break it - Export breakpoint files with wabbitspasm to stop your program at desired points. Any addresses listed in breakpoints.brk will be loaded when wabbitemu starts.
Screen capture - Open up the options pane to configure gif animations as much as you want. Click the presets for familiar options.
Lock down keys - Right click on a key in the keypad to open a context menu, and lock keys down (middle click works too).
Enjoy the view - Wabbitemu will display extremely smooth grayscale, great for playing games and taking animations
Save your state - Right on the LCD for save state options
Cut it out - Enter the skin options pane to enable cutout view or not.
I tried it with an ancient 1.12 dump (only one I have on me) and it sticks at "Defragmenting". I'll try again tonight with my larger collection of ROMs at home...
Edit: Entering the debugger doesn't appear work either ("wabbitemu.exe has stopped working"). I'm running Vista, if that's of any relevance.
Debugger crashes the program for me as well, thats with OS 1.12 on XPSP2. It has the defrag problem that other emus have when you create/delete temp programs ... not sure why that happens.
Screenshotting works really nice and the gui is pretty good (tad dark on my monitor though).
Great stuff so far guys!
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
I have noticed some.. oddness.. with regards to SE rom's:
If you're tired of searching for what's odd, this is a SE running on a not-SE? It might be just me, but I think that's just weird.
I have not yet found out whether it behaves like an SE or not
edit: loading ROM's is a bit inconsistent with it's extentions, when you start the emulator it ask for a ROM or SAV (savestate), but when you reload one it asks for ROM or BIN.. Not a major problem, but a bit odd, I would think one should be able to load a BIN when it starts as well..
edit again: the debugger crashed when I tried it - it didn't even show up before it did so..