a few people have asked if there is any pre-written routines
for use with goldroad ARM assembler, well i have made some string
priniting routines which you can find in these source
today, pocketSMS demo 5 is released. Get it from the new pocketSMS site, here
- full sound on hardware !! (sound emulation is by JustBurn)
- added pause button emulation
- re-orientated display slightly (fixes Alex Kidd level 2)
download asm demo 4f
- fixed bug when used with multiboot menu
- improved vdp emulation - no more ghost sprites
- optimised cycle counting on CB and DE opcodes
- some other small optimisations
download asm demo 4e
I found a new way to emulate the master system's virtual screen size. There is now NO background flickering! plus, it may be slightly faster because hblank interrupts are no longer being used. We have finally got sound running on hardware!! this should be hopefully included in the next version. I also optimised cycle counting a little more.
I really need to sort out a proper site for pocketSMS :). If there are any budding artists out there who would like to design a logo for the emulator (for the site & in the emulator's menus) that would be great!
download pocketSMS demo 4d
try action fighter on this version! almost perfect and very fast. I've disabled sound output in this version because the code uses our cycle counter as a work register, but hopefully we can get sound up and running on hardware soon.
- slightly optimised rendering
- freed a register and now use it as cycle counter (saves between 2 and 4 ARM instructions per z80 instruction)
- changed cycle counting (removes 2 load instructions per z80 instruction)
- optimised SBC HL,ss and fixed flag
- optimised cycle counting on ED opcodes
download asm demo 4c
I carried out some optimisations on the cpu core. This
removes all stack use from the cpu emulator, saving
between 1 and 3 ARM instructions per z80 instruction. Also added some missing timing code and culled a few more opcodes here and there. The compatible games are significantly faster.
download asm demo 4b
fixed some bugs,added some opcodes...sonic runs much better, and especially for woo at gbaemu...
download asm demo 4a
I'm releasing a 4th demo today, to which you can for the first time attach your own roms. Compatibility is very low, but at least a handful of nice games are running. I'm going to disappear for a bit to revise for exams (finals), then i'll be back to increase compatibility, fix bugs, increase speed and so on, so don't bug be about it until then. Enjoy!
download asm demo 4
full speed? not quite YET, but they will be...but already fast enough to be prefectly playable...
Here are some shots in shrunk screen mode. I am currently trying to utilise 2 scanline tricks: one to shrink the screen, and another to simulate the size of the virtual screen which is smaller than the smallest available to the gba. So far, i have both effects working but not at the same time ;(.
how fast? far from fully optimised, but probably
70% full speed with zero frameskipping :)
Here's an updated version of gbaslide...with not 1 but 3 transitions, plain, colour fade and mosaic.
Grab it here .
err...not exactly pocketSMS news, but i was making some menus for pocketSMS and decided to make a slideshow generator for gba, needs no programming and makes slideshows with mosaic transitions between pictures. Grab it here . Its really simple, just make a list of bitmaps you want in the slideshow, save this as a text file and then run the utility. Here's a little slideshow for Melissa Joan Hart fans (i only spend 10mins on this, honest :) :) )... download demo
pocketSMS asm demo 3
hmm, try taking screenshots, uploaded files and editing html all without the aid of a mouse...yes, my mouse has died ;(
Anyway, fixed some critical bugs and things are really starting to happen. Heliophobe's excellent tetris game is fully playable and so you can give that a try in the new demo i just uploaded. This runs very slightly less than full speed, but the reason for this is that the very expensive z80 opcodes like ldir, cpir,otir etc are emulated but are not yet correctly timed, so my emulated cpu is doing more work in a frame than it really should. As you can see, commerical games are also starting to work better :). By the way, Heliophobe's sms site is here if you'd like to try the compare the rom running on psms against a pc emulator.
fixed some palette problems, and further optimised the graphics rendering, now "happy looser" is prefectly emulated, so i've updated asm demo 2 so you can give it a go. The vortex effect now works, as does the raster based effects on the happy looser logo. This is definitely a good sign... it seems that the emulator is emulating 1 z80 frame in almost exact sync with a gba frame. I think when the source is released, you will be suitably impressed by the rendering code, which is little more than a planar to chunky converter and as such takes only a few cycles & by its nature, doesn't do a single bit of overdraw.
JustBurn has been working on sound emulation! this is sounding very promising and it seems the overhead of translating sound from the ms to gba is very small. Meanwhile, i'm writing z80 test progams to track down those nasty bugs in the cpu.
download pocketSMS asm demo 2
Here's another demo to try, one of Zoop's sms demos Happy Loser. I'm fixing bugs in the cpu core and optimising instructions still, but there still some bugs left to find :)
If anyone has any sms demos (with source) that are NOT available on the s8dev site, please email them to me because they seem to be few and far between, but they really help with debugging.
Once again, the emulator runs much faster on hardware than emulators! Another thing, it may not work at all on Visual Boy Advance which seems to give unimplemented opcode errors, but i may not have the newest version.
Well, this isn't nearly as much as i was hoping to release, but i think it shows how good speed is going to be...hell, this thing runs faster on gba than on
my 400mhz pc!! Dont judge speed on a emulator, because it runs A LOT faster on hardware.
Theres still some missing opcodes (quite a lot actually, in the DD and DE prefixed group) and that
plus some bugs is preventing commercial games running just yet, but i expect a day or two longer is all it will take.
Basically, at the moment the registers AF,BC,DE,HL
are constantly cached in ARM registers, but i plan
to move DE back into memory (we're running from iwram
here, so addressing memory variables isn't too slow). This will free up 2 registers and allow me to cut the
dispatch loop from 12/13 instructions to 4/5, which will speed up ALL opcodes. Plus I keep forgetting that
I'm writing for a decent processor (i.e. ARM), not
intel and as a result some of the assembler could be
optimised quite a bit more.
Strangely, the emulator currently writes straight into OAM, but still works ok on hardware. I figured doing this didn't matter for testing as the emulators don't mind, but the fact it works on hardware suggests the emulator may already be (strangely) synched with the gba, any way we'll see :)
Oh yeah, JustBurn has written a very nice injector which will be available with the first non-demo release, thanks man!
One other thing, the source will be released with the
first full version :-)
download pocketSMS asm demo 1
As with the C demo, this includes checksum code so that
only this rom can be run.
goldroad ARM assembler
whats new in 1.5c?
- bug when using a very large number of macros or includes fixed
- instructions/directives can now be placed on the same line as a label
- @ without a directive name now acts in same way as ; to begin a comment
- added missing adc opcode (how did this go un-noticed so long ??)
- macro files now delete themselves (i've heard of no problems related to macros...)
UPDATE: binasm has been revised to include the capability to output c arrays as well as assembler