VIC-20 on the Gameboy Advance!

Discussion, Reviews & High-scores

Moderator: Moderators

Post Reply
User avatar
Ghislain
Realms of Quest
Posts: 1282
Joined: Sun Aug 08, 2004 12:54 am

VIC-20 on the Gameboy Advance!

Post by Ghislain »

I like to download games to my Gameboy Advance using a flash cart. There is a large development scene for the GBA which includes very talented programmers writing emulators for NES, arcade games, Coleco Vision, etc.

There hasn't been a VIC-20 emulator for the GBA yet, but I found something almost as good by accident.

As I was downloading roms for the Turbo Grafx 16 emulator, I stumbled upon "15 in 1 Mega Collection". Apparently these were VIC-20 games ported (or maybe even emulated) for the Turbo Grafx 16!

I've uploaded a GBA ROM with these games here:

http://www.geocities.com/classicspiderman/vic20-gba.zip

I haven't uploaded the rom to real hardware yet (I'll do this tonight) but it works on a GBA emulator although the speed is not 100%. Emulated games on GBA emulators don't look very good but look much better on the actual hardware. I'll let you know the results tonight.

If you want to adjust the screen size, after you selected a VIC-20 game, simply push L+R at the same time (the two shoulder buttons), go to Display and select "unscaled" mode.

The games included in this package are:

-Sargon II Chess
-Choplifter
-Gridrunner
-Jelly Monsters
-Money Wars
-Mutant Hero
-Omega Race
-Poker
-Radar Ratrace
-Seawolf
-Shamus
-Submarine Commander
-Super Lander (Jupiter Lander)
-Super Slot
-Star Battle
"A slave is one who waits for someone to come and free him." -- Ezra Pound
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

It appears Turbo Grafx 16 = NEC PC Engine? You could download an emulator for that system and run it directly instead of going through GBA emulation. :-)

Mobsie posted about this 15-in-1 pack before:
http://sleepingelephant.com/ipw-web/bul ... .php?t=305

Jeff has also posted about VIC games on Gameboy Advance, maybe it is the same kind of approach as you took:
http://sleepingelephant.com/ipw-web/bul ... .php?t=523

There is also the Omega Race for Sega Megadrive:
http://sleepingelephant.com/ipw-web/bul ... .php?t=187

By the way, I went to a ROMZ site and found six different variations on the 15-in-1 file. After unzipping, the files have three different sizes; one is 12288 bytes (broken?), three are 262144 bytes each and the last two are 262656 bytes each. All files seem to differ, and I believe the two largest ones contain an emulator header while the other three are just binary dumps.

I'll get an emulator and see if the games differ.


(mod: links repaired)
Anders Carlsson

Image Image Image Image Image
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Ok, Hu-Go doesn't work for me (just like it does not work for anyone else who uses Win98SE, and the author doesn't bother much about it). I downloaded the demo version of MagicEngine so I at least can play the ROM, although only five minutes at a time.

As far as I can see, four of the files are credited to Image 1992. The fifth file appears to be identical but is credited Pure-Byte 1992, i.e. same group or handle as Kari with the Omega Race game for Megadrive. Does this tell something about one group cracked another group's program?

They have removed all kinds of copyrights or traces back to the original Commodore games, even renamed Sargon II into Chess II (changed graphics). The credit screen on Jelly Monsters does not exist at all. Super Slot has a brand new credit screen - although with VIC graphics - showing a PC Engine gamepad. Many games are patched so it says "Press run to start".

So, are these changes applied to VIC-20 code inside an emulator, or are the games faithfully ported? Well, the "Image" and "Pure-Byte" logotypes displayed inside the games contain some blue colours not existing on VIC-20, so if it is an emulation, it is a superset of VIC-20.

I loaded the ROM image into Emacs, located a portion of Jupiter/Super Lander, cut out a few kB, saved it as another file and loaded it into VICE. I'm not saying that the code is executable, but when viewing it through the monitor, it looks like valid 6502 code:

Code: Select all

  LDA $00
  CLC
  ADC #$17
  STA $00
  BCC *
  INC $01
* DEX
   .. and so on ..
  LDA $EC6A,X
  JSR $5457
  DEX
  BPL (somewhere)
  BMI (somewhere else)
The alternative explanation is that the native processor HuC6280 has identical op-codes with the 6502, but I doubt it.

Then I downloaded the ROM image of Jupiter Lander, tried to locate the same position in both parts of code and get some interesting results:

Code: Select all

LDA #$41 ; Real "Jupiter Lander" ROM
STA $1D49
LDA #$44
STA $1D4D
LDA #$46
STA $1CAF
STA $1CDD
STA $1D0B
LDA #$31
STA $1CB0
LDA #$33
STA $1CDE
LDA #$35
STA $1D0C
LDA #$4F
STA $1CF9 .. etc

Code: Select all

LDA #$41 ; PC Engine "15-in-1"
LDA #$44
LDA #$46
LDA #$31
LDA #$33
LDA #$35
LDA #$4F
JSR $557B .. etc
I don't know what the routine at $557B would do, but it almost looks like the VIC emulation or whatever it is has a burst-LDA, or the combination of values is a giant co-incidence.
Anders Carlsson

Image Image Image Image Image
User avatar
Ghislain
Realms of Quest
Posts: 1282
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

carlsson wrote:

Code: Select all

LDA #$41 ; PC Engine "15-in-1"
LDA #$44
LDA #$46
LDA #$31
LDA #$33
LDA #$35
LDA #$4F
JSR $557B .. etc
I don't know what the routine at $557B would do, but it almost looks like the VIC emulation or whatever it is has a burst-LDA, or the combination of values is a giant co-incidence.
Wow... thanks for doing all of that. I was thinking about possibly taking apart the "15-in-1" ROM, analyzing it and seeing if I could put in some other VIC-20 ROMS. It sounds like it would be too much work because it seems that the VIC-20 ROM has to be optimized to work on the special emulator that was programmed for the "15-in-1 Mega Pack".
"A slave is one who waits for someone to come and free him." -- Ezra Pound
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Yes, I don't quite know what it is - a custom 6502 emulator with VIC chip simulation? A lot more disassembly and probably knowledge of the NEC PC Engine platform would be required to get a good idea about how comprehensive it is. Maybe those are actual VIC games that were hacked apart instruction for instruction. The console should have at least 8 kB RAM, so it should not be a problem to allocate a writable memory area to the VIC emulation, if it is an emulation. Quite fascinating none the less.
Anders Carlsson

Image Image Image Image Image
User avatar
Ghislain
Realms of Quest
Posts: 1282
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

I played the "15 in 1 mega pack" on the PC engine emulator on the Gameboy Advance. All of the games except four seemed to be running at about half speed. The four that seemed to run at normal speed were:

Gridrunner
Money Wars
Mutant Herd
Star Battle

Gridrunner I wasn't sure about, but it seemed to run at about a reasonable speed.

Maybe I should look at the ROM and see if there are any places where I can look for delay loops to speed things up.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Maybe you want to compare with a PC Engine emulator on the PC too.
Anders Carlsson

Image Image Image Image Image
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Another bit of information:
Groepaz on cc65 mailing list wrote:the PCEngine has a HuC6280, which is basically a 65c02 with a couple of extra instructions.
http://www.cc65.org/mailarchive/2003-05/2940.html

I wrote before that maybe the HuC6280 was op-code compatible with 6502, but I didn't believe it would.. it appears I should trust my first instincts. In that case, the 15-in-1 would just as well be 15 VIC-20 games adapted line by line and reasonably disassemblable (?!) for a 6502 disassembler.
Anders Carlsson

Image Image Image Image Image
Post Reply